ESP8266学习笔记一 互联网通讯协议

2023-05-16

互联网协议 TCP/IP协议

协议作用简单来说 就是规范不同的语言;

包含的协议有 TCP/IP实际上是一个协议组

 

  • 不同的协议处于不同的层次上 (由下到上) 链路层WIFI 网络层IP 传输层TCP/UDP 应用层 HTTP
    • 链路层: WIFI Ethernet 就是实实在在的进行数据传输的物理连接层
  • ESP32的三种模式: 链路层 数据帧

    • 1,接入点模式:access point 简单来说就是此时esp8266就相当于一个WiFi热点 建立起一个局域网供 外联设备使用

    • 2,无线终端模式: wireless station 就是在局域网内 此时手机 电脑 esp8266都是节点

    • 3,混合模式:就是在建立起自身WiFi热点网络时同时又可以接入本地局域网

  • 网络层
    • IP地址 就是为数据传输(包)提供相应的地址 发件人 与收件人的地址 相当于快递单号 是一个32位的二进制数
      • IP地址的分类:首先知道IP地址由网络号码和本地计算机号码组成
      • 大类: 公有类: 私有类 ;
      • 小类: IP地址编制方案将IP地址分为 A B C D E 五类,A B C 为基本类 ;D E为多播和保留使用
        • 首先 A类IP的 第一位为网络号码,剩下3位就为本地计算机号码;B类为前两位为网络号码,剩下两位为 本地计算机号码;依次C类 网络号为3位。。。。;
        • 由上可知 A类地址网络有 126个由8位的网络标识长度决定 但是每个网络可以分到1600多万台主机为256的3次方减2,A类范围在1.0.0.0~127.255.255.255;同时A类IP的子网掩码为255.0.0.0 由此可知B C D类的特性 B类的网络号码为前两段网络标识 每个网络可以容纳(256的2次方-2)台主机 用于中等规模 C D IP 依次
          • 除去公有类ip 剩下了三类私有IP 用于解决IP地址不足的问题,A类10.0.0.0~10.255.255.255 B类172.16.0.0~172.31.255.255 C类 192.168.0.0~192.168.255.255
        • IPV4 与IPV6 : IPV6的推出是为了补充IPV4的有限性,32位地址的IPv4即将有被使用殆尽的可能,同时IPv4是点分十进制,ipv6是16进制 帽分16进制
          • IPV6优点:1扩大了地址空间 让端对端传输成为可能,
          • 2提高了网络整体的吞吐量 利用最大传输单元MTU可以获得更快,更高效的传输,让数据包可以远远超过64k字节
          • 3,使得整个服务质量得到改善 报头中的业务级别和流标记通过路由器配置可以实现优先级控制和QOS保障
          • 4,安全性得到了极大的提高,采用的IPSec可以为上层协议和应用提供有效的端到端的安全保证 能提高在路由器水平上的安全性
          • 5,支持即插即用和移动性, 简单来说就是设备接入网络时通过自动配置可以自动获取IP地址和必要参数
          • 6,更好的实现了多播功能,在IPV6的多播功能中增加了“范围”与“标识”;用于区分永久性的地址 和 临时性的地址
          • 举个例子: 你家的路由器有三台设备接入局域网,此时局域网内三台设备就会被路由器分配一个独一 唯一的地址;当手机要为nodemcu发送数据时就会指明 发件人为 手机(IP:192.168.0.3)收件人为(IP:192.168.0.2) 这样才能完成传输。

          • win+r 调出命令面板 然后输入 ipconfig 就可以查看电脑此时的局域网ip地址

        • 默认网关: 解释网关就是出口路由器的地址 网关就是连接网络与网络之间的接口 借上图网关地址就是路由器的地址

          • 注意一点 在局域网内的地址在互联网中会发生改变,是因为中国联通服务器又相当于一个网关 这个网关接通了联通网络与全球互联网 就是说对于不同的网络 设备的IP地址是不同的
        • 网关:其实就是一个网络通向其他网络的IP地址, 举个例子:现在网络A和网络B,在没有路由的情况下是不能进行TCP/IP通信的,即使两个网络连接在同一台交换机上也会根据TCP、IP协议根据子网掩码判定为不在同一个网络内;因此要进行这两个网络的通讯就必须通过网关。简单来说有了网关之后当A网络的主机发现数据包的目的地址不在自己的本地网络内就会把数据包转发给他自己的网关,再由网关转发给B网络的网关,网络B的网关再转发给网络B的某个主机,这样就完成了网络A向网络B转发数据包的过程。
        • 子网掩码(NetMask):局域网中的设备的IP开头 如192.168.0.1 中前三段192.168.0就是子网地址 而结尾的.1就是本机地址 ;同一网络内的计算机依旧处于同一广播域内,划分通过VLAN 然后为每一个VLAN指定不同的IP网段来达到减少广播域的目的
        • DNS服务器:计算机域名系统,由解析器和域名服务器组成。域名服务器是指保存有该网络中的所有主机的域名和对应的IP地址,并具有将域名转换为IP地址功能的服务器。其中域名必须对应一个IP地址,而IP地址不一定要有域名。域名系统采用类似目录树的等级结构,域名服务器为客户机、服务器模式中的服务器方,它有两种形式:主服务器与转发服务器。域名解析 就是将域名映射为IP地址的过程。
          • 在命令行中输入 ping www.baibu.com 可以得到网站的IP地址 也可以用来检查网络连接 通过 nslookup 可以对域名进行解析

  • 传输层TCP/UDP
    • TCP协议 稳 (三次握手) : 保证所有数据都能被接收端接收,数据的传输顺序不会被打乱, 数据传输有损坏则重新发送受损数据;常用于电子邮件,文件传输
    • UDP协议 快 : 简单来说就是发送端只管发送 不管你接收端是否成功接收,一旦数据受损,UDP协议将抛弃受损数据,不会重传; 常用于 在线语音,视频,网游
  • 运用层 HTTP协议
    • HTTP协议:模式简化理解就是一问一答的形式,请求头 请求体 request 响应头和响应体 response (三次挥手 四次握手)
      • 当我们要访问百度网站时 首先打开电脑在浏览器中输入www.baidu.com按下回车enter之后电脑就会生成一个请求数据包,通过互联网之后到百度网站服务器,之后百度服务器就会返回一个相应数据包改数据包里就包含了百度网站首页的信息。

      • 我们尝试来分析一个请求 一个请求数据包通常包含 请求行 请求头 请求体

        • 请求行: 一般通过get (读取)来请求 在HTTP1.0协议中 规定了三种请求方法 【get,post,head解释:与get请求相似,但是响应报文中没有响应体,只有响应头】 ;在HTTP1.1协议中 还有 post(发送),put ,update,delete请求 。如图就是一个读取网站首页的一个请求,而后的协议就是为了告诉服务器我们协议的版本是1.1的
        • 请求头:就是告诉互联网所请求的服务器主机为太极创客的服务器主机
          • 当我们不再是读取信息 是发送信息的时候就是用post请求 用该请求来向目的主机发送数据
          • 请求头剩下的部分 分析:第二行是所发送请求的电脑系统环境,第三行为网页的编程语言,第四行为浏览器支持的语言为中文,第五行为所支持的文件下载类型,第六行为响应之后是否保持连接
        • 响应包:状态行 响应头 响应体
          • 状态行:HTTP1.1 即响应的http的协议版本号为1.1版本;200 OK 或者404 not found 是服务器接收到请求之后的状态码 就是返回有没有找到相应的资源。 其他的响应状态码
          • 响应头:第一行就是响应请求的时间,第二行 响应体的内容类型,为网页HTML代码;字符集为utf-8类型 可以想象ascll码表用数字可以表示符号,字母一样;
            • 图像信息的相应如此:
          • 响应体:就是所请求的网页信息,如图就是太极创客网站的首页HTML代码 即正文
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ESP8266学习笔记一 互联网通讯协议 的相关文章

  • Python第三章函数

    函数 文章目录 函数一 函数基础1 参数2 拆分参数列表3 参数传递位置传递地址传递传对象引用 4 函数返回值5 变量的作用域局部变量全局变量nonlocal关键字 7 包8 猴子补丁9 python标准库的应用1 random模块2 ti
  • 无显示器怎么玩树莓派

    无显示器怎么玩树莓派 文章目录 无显示器怎么玩树莓派 前言一 给树莓派烧系统二 设置WiFi及ssh端口三 远程连接四 注意事项 前言 很多时候我们在使用树莓派的时候身边都没有显示器 xff0c 关于这个问题 xff0c 我也十分苦恼 xf
  • ROS智能车定位导航仿真(Gazebo搭建赛道)

    ROS智能车定位导航仿真 xff08 Gazebo搭建赛道 xff09 前言一 ROS仿真功能包下载二 安装运行所需的插件三 racecar功能包编译四 测试程序运行五 运行功能包赛道六 注意事项 前言 Ubuntu版本 xff1a 18
  • 阿木实验室PX4开发课程整理

    1 1 xff1a alt 43 ctrl 43 t 打开终端 cd Desktop 进入到桌面目录 cd 返回上次访问目录 cd 返回上一目录 gedit circular cpp 进入某文件 roscd px4 control 进入文件
  • Java并发编程—CompletableFuture的异步执行案例

    在博主前几篇博客中 xff0c https blog csdn net qq 52545155 article details 128167519 spm 61 1001 2014 3001 5501 xff0c 给大家分享了关于多线程中异
  • 手写rtos的第一天

    唉 xff0c 不自不觉已经大三了啊 xff0c 大二的智能车生涯已经结束了 xff0c 不得不说 xff0c 省二是我不太能接受的 结果 xff0c 虽然嘴上说着没啥 xff0c 真正面对全省排名的时候 xff0c 内心的寂寥真的难以言表
  • FreeRTOS任务(动态)创建与删除(一)

    FreeRTOS学习总结 文章目录 前言一 浅浅了解二 创建任务1 动态任务创建2 动态实践 总结 前言 听朋友说 xff0c FreeRTOS很好用 xff0c 就在无聊的上网课期间浅学一下 提示 xff1a 以下是本篇文章正文内容 xf
  • FreeRTOS操作系统队列及队列API函数(五)

    FreeRTOS学习总结 文章目录 前言一 队列功能1 数据存储2 多任务访问3 出队阻塞4 入队阻塞 二 队列操作过程图示1 创建队列2 向队列发送第一个消息3 向队列发送第二个消息4 从队列中读取消息 二 API函数1 队列创建函数2
  • php导出word文件,打开损坏或者乱码

    下载Word文件 fileinfo 61 pathinfo fullname ob end clean header 39 Content type application x 39 fileinfo 39 extension 39 hea
  • FreeRTOS操作系统优先级翻转问题(八)

    FreeRTOS总结 文章目录 前言一 浅浅了解优先级翻转二 模拟 优先级翻转实验1 代码 总结 前言 在使用二值信号量的时候会遇到很常见的一个问题 优先级翻转 xff0c 优先级翻转在可剥夺 内核中是非常常见的 xff0c 在实时系统中不
  • 伽马分布,指数分布,卡方分布三者关系

    1 伽马分布是一个连续概率分布 xff0c 具有两个参数 alpha 和 lambda xff0c 记为
  • 数据结构 马踏棋盘 栈应用 C++

    include lt iostream gt 包含其它头文件 using namespace std const int StackInitSize 61 10 const int StackInc 61 10 typedef int SE
  • STM32智能小车------红外遥控

    文章目录 一 原理讲解1 实物图2 工作原理 xff1a 3 接线 xff1a 二 软件驱动代码1 驱动函数2 获取键值 总结最终效果 大家好哇 xff01 我是小光 xff0c 嵌入式爱好者 xff0c 一个想要成为系统架构师的普通大学生
  • UCOS学习(一)——前后台系统、RTOS系统

    大家好哇 xff01 我是小光 xff0c 嵌入式爱好者 xff0c 一个想要成为系统架构师的大二学生 最近开始学习UCOS操作系统 xff0c 后面会更新一些关于UCOS学习笔记 今天了解了UCOS操作系统 xff0c 总结一下知识点 感
  • UCOS学习(二)——UCOS-II、UCOS-III移植到STM32F103

    大家好哇 xff01 我是小光 xff0c 嵌入式爱好者 xff0c 一个想要成为系统架构师的大二学生 最近开始学习UCOS操作系统 xff0c 后面会更新一些关于UCOS学习笔记 今天学习了如何将UCOS II和UCOS III移植到ST
  • UCOS学习(三)——任务管理基础

    大家好哇 xff01 我是小光 xff0c 嵌入式爱好者 xff0c 一个想要成为系统架构师的大二学生 最近开始学习UCOS操作系统 xff0c 后面会更新一些关于UCOS学习笔记 今天学习了任务管理基础知识 感谢你的阅读 xff0c 不对
  • UCOS学习(七)——信号量详解

    信号量 信号量简介信号量保护共享资源举个栗子 xff1a 如果不使用信号量信号量解决公共资源问题创建信号量 xff1a 信号量实现任务同步总结 信号量简介 信号量像是一种上锁机制 xff0c 代码必须获得对应的钥匙才能继续执行 xff0c
  • Altium Designer(AD)的简易使用

    一 绘制原理图 原理图库 首先来说明原理图的概念 根据百度百科 xff0c 原理图 xff0c 顾名思义就是表示电路板上各器件之间连接原理的图表 也就是表示芯片上的引脚连接什么元件 xff0c 各个元件谁和谁相连 xff0c 电源电压的大小
  • STM32CubeIDE---HAL库PWM使用速记

    一 如何计算 理论分析 xff1a HAL库函数之呼吸灯 PWM波 简书 jianshu com 预分频系数 PSC 自动重装载值 ARR 捕获 比较寄存器值 CCR 频率计算 xff1a 定时器频率 PSC 43 1 ARR 43 1 占
  • mac常用命令

    mac清除电脑DNS缓存 sudo dscacheutil flushcache

随机推荐

  • IMU初介绍及里程计相关补充

    IMU原理 xff1a 以牛顿力学定律为基础 xff0c 通过测量载体在惯性参考系的加速度 xff0c 将它对时间进行积分 xff0c 且把它变换到导航坐标系中 xff0c 就能够得到在导航坐标系中的速度 偏航角和位置等信息 IMU xff
  • C语言变量的定义与声明,为什么全局变量不能赋值

    文章目录 一 对C语言程序的一些补充二 定义域声明2 1 什么是变量2 2 如何定义变量2 3 为什么要定义变量2 4 定义变量的本质2 5 变量声明的本质2 6 定义和声明的区别 三 全局变量无法赋值 一 对C语言程序的一些补充 对于一个
  • 野火PID上位机通信移植

    野火PID上位机通信移植 一 简介 在调试pid参数的时候 xff0c 需要用到上位机 xff0c 这里选用 野火多功能调试助手 使用调试助手 xff0c 需要下位机与上位机之间的通信协议 xff0c 下载野火关于电机的相关例程 xff0c
  • 实验报告数字图像的基本操作

    一 实验目的 了解Matlab的基本功能及操作方法练习图像读写和显示函数的使用方法掌握如何利用MATLAB来获取图像的大小 颜色 高度 宽度等等相关信息熟悉常用的图像文件格式与格式转换 xff1b 二 实验环境 PC计算机MatLab软件
  • 【meArm机械臂】第二篇·Arduino控制程序

    系列文章目录 meArm机械臂 第一篇 结构设计及搭建 meArm机械臂 第二篇 Arduino控制程序 文章目录 系列文章目录前言一 测试程序1 单个电机测试程序2 四舵机控制测试程序3 极限位置测量 二 基本控制程序三 最终控制程序总结
  • 【树莓派4B】安装Ubuntu Mate20.04+ROS Noetic+使用电脑自带的xrdp和VNC进行PC端远程控制

    目录 前言 一 烧录Ubuntu Mate20 04 1 下载Ubuntu Mate 20 04 2 格式化SD卡并烧录系统 3 打开SSH功能 二 配置Ubuntu环境 1 初次开机进行简单的配置 2 更换国内源 3 更新软件列表和软件
  • 【STM32】STM32F103C8T6+L298N通过PWM控制直流电机转速

    系列文章目录 STM32 新建工程模板及配置 STM32 STM32与PC端 HC 06 ROS进行USART串口通信 ROS ROS上位机使用Serial库和boost asio库与STM32进行USART通讯 STM32 STM32F1
  • 【ROS】ROS上位机使用Serial库和boost::asio库与STM32进行USART通讯

    系列文章目录 STM32 新建工程模板及配置 STM32 STM32与PC端 HC 06 ROS进行USART串口通信 ROS ROS上位机使用Serial库和boost asio库与STM32进行USART通讯 STM32 STM32F1
  • 【STM32】STM32F103C8T6使用外部中断法和输入捕获法进行编码器测速

    系列文章目录 STM32 新建工程模板及配置 STM32 STM32与PC端 HC 06 ROS进行USART串口通信 ROS ROS上位机使用Serial库和boost asio库与STM32进行USART通讯 STM32 STM32F1
  • 【STM32】STM32F103C8T6实现直流电机速度PID控制

    系列文章目录 STM32 新建工程模板及配置 STM32 STM32与PC端 HC 06 ROS进行USART串口通信 ROS ROS上位机使用Serial库和boost asio库与STM32进行USART通讯 STM32 STM32F1
  • Linux配置Supervisor 配置遇到的坑

    在linux中web 应用部署到线上后之后发现退出终端后网站就无法访问了 所以需要用Supervisor来守护进程 xff0c 它可以保证应用一直处于运行状态 xff0c 在遇到程序异常 报错等情况 xff0c 导致 web 应用终止时 x
  • 【基于MATLAB的数字图像处理】第四章·图像增强

    系列文章 基于MATLAB的数字图像处理 第一章 绪论 基于MATLAB的数字图像处理 第二章 视觉系统与图像处理系统 基于MATLAB的数字图像处理 第三章 基本图像变换 基于MATLAB的数字图像处理 第四章 图像增强 基于MATLAB
  • 【ROS】学习路线与方法-个人感悟篇

    文章目录 目录 文章目录 前言 视频学习 书籍学习 个人建议 前言 前前后后 xff0c 对于ROS的学习已经很多遍了 xff0c 可以说走的弯路有点多 xff0c 导致浪费了很多时间 xff0c 其实ROS不应该是一个专门需要去学习的东西
  • 【基于FreeRTOS的STM32F103系统】Heap_4内存管理机制程序详解

    系列文章目录 基于FreeRTOS的STM32F103系统 简介及官方文件移植 基于FreeRTOS的STM32F103系统 编写FreeRTOS程序 基于FreeRTOS的STM32F103系统 内存管理及任务调度 基于FreeRTOS的
  • 【问题解决】虚拟机打开gazebo黑屏、闪退、模型加载不出来

    1 缺少模型库 可以在github上下载模型库 xff0c 但是速度极慢 xff0c 因为服务器在国外 此处提供快速下载方法 xff0c 通过码云快速git clone cd gazebo git clone https gitee com
  • 【ROS】package.xml文件解析

    文章目录 文章目录 前言 一 基本格式 1 基本结构 2 必要标签 3 依赖关系 二 Metapackage包 总结 前言 ros每个功能包中都有一个包清单 xff0c 它是一个名为package xml的XML 文件 xff0c 它必须包
  • 【ROS】dynamic_reconfigure配置详细说明

    文章目录 文章目录 前言 一 编写 cfg文件 二 为节点配置dynamic reconfigure 总结 前言 dynamic reconfigure配置是ROS中为了方便用户对程序中的参数进行实时调整而推出的工具 xff0c 配置好自己
  • 【ROS】使用pluginlib自定义costmap地图层

    文章目录 文章目录 前言 一 重写地图层 1 包含头文件 2 onInitialize 3 updateBounds 4 updateCosts 二 向ROS注册 1 插件描述文件 2 向ROS注册插件 3 在costmap配置文件中使用
  • 【问题解决】Ubuntu20.04下move_base发送目标Bug

    项目场景 xff1a 虚拟机 xff1a Linux的Ubuntu20 04 ROS版本 xff1a Noetic 场景 xff1a 使用虚拟机在gazebo中进行差速机器人仿真 问题描述 在自己编写多目标导航功能包时 xff0c 选择好目
  • ESP8266学习笔记一 互联网通讯协议

    互联网协议 TCP IP协议 协议作用简单来说 就是规范不同的语言 xff1b 包含的协议有 TCP IP实际上是一个协议组 不同的协议处于不同的层次上 xff08 由下到上 xff09 链路层WIFI 网络层IP 传输层TCP UDP 应