首页
归档
友情链接
留言
更多
关于
动态
Search
1
[分享栈]centos7安装gcc10.2.0
7,292 阅读
2
[技术栈]CRC校验原理及C#代码实现CRC16、CRC32计算FCS校验码
6,785 阅读
3
[技术栈]C#利用Luhn算法(模10算法)对IMEI校验
6,351 阅读
4
[分享栈]esxi6.7虚拟机安装omv(openmediavault)教程
6,085 阅读
5
[分享栈]centos7安装python3.8.5
4,964 阅读
分享栈
技术栈
经验栈
登录
Search
标签搜索
C#
centos
winform
仪器
IPV4
IPV6
测速
crc
crc16
crc32
fcs
luhn
模10
算法
sql
gcc
python
紫光展锐
omv
openmediavault
武小栈
累计撰写
21
篇文章
累计收到
38
条评论
首页
栏目
分享栈
技术栈
经验栈
页面
归档
友情链接
留言
关于
动态
搜索到
1
篇与
的结果
2021-02-07
[技术栈]网络协议1协议栈
1.前言接下来我打算写几篇文章简单的介绍一下我们常用的一些通信协议,当然所有描述都是基于我自己现有了解,肯定会有所纰漏,甚至错误的地方,望各位大佬不吝指正。2.网络模型介绍以中移ML302模组为例,在模组部官网中查询到的产品规格中网络协议支持以上这几项,所以以测IPv4,IPv6,TCP,UDP,PPP,FTP,HTTP,NTP,MQTT这八种协议为例说明。既然要测网络协议,那就先找一个网络协议模型瞧一瞧,个人比较喜欢看五层协议,就找个五层协议说说。上面这个就是TCP/IP五层模型,不熟悉的也了解过,不了解的也听说过。IPv4,IPv6这俩位于第3层,网际层。TCP,UDP这俩位于第4层,传输层。PPP位于第2层,网络接口层FTP,HTTP,NTP,MQTT这四个都位于第5层,应用层。2.通信示例介绍2.1通信流程就以我们最耳熟能详的TCP为例来讲讲一次数据的发送和接收发生了什么,总得来说就如下图所示。从用户A操作发送信息开始,经过了协议栈层层“打包”,然后数据终于通过网线传到了用户B处,然后这个数据经过了用户B设备的协议栈层层“拆包”,最终用户B拿到了用户A发送的原内容。2.2演示方式图上看着是这样,但是实际上是不是这样呢,眼见为实,这次的演示方式如下:在B电脑创建TCP SERVER服务,并开启抓包软件进行抓包。 在A电脑创建TCP CLIENT连接B电脑服务。 从A电脑向B电脑发送一段数据。 在B电脑通过抓包软件观测A电脑传过来的数据。2.3 实例演示做好环境准备工作,首先通过TCP连接发送36个字节长度的数据,如下图所示2.3.1 TCP协议根据上面流程中的描述,我这里点击了“发送”按钮,然后数据被传到传输层,在这里经过TCP协议的加工,给添加上TCP报头,先看一下TCP报头是什么样的。从图中也可以看到,TCP报头基础长度为20个字节,每个字节代表的含义图中也有相应的说明。详细的可以自己去查阅https://tools.ietf.org/html/rfc793#page-15原文,下表为各字段的简要说明。看一下抓包软件抓到的数据是不是这样组成的,下面图中蓝色部分的20字节就是TCP(Transmission Control Protocol)报文头,简单的对比一下前面4个字节,看看是不是向上图中所描述的那样。从TCP报文头说明图中可以看到前面2个字节(16位)是源端口,后面2个字节(16位)是目标端口,前面连个字节是0x1030用计算器一算就可以得出0x1030正是源端口4144。后面的目标端口也是一样的。传输层的TCP协议处理完了,根据流程图,接下来就应该把数据传给网络层处理了。2.3.2 IP协议同样呢,先看看网络层中IP协议的头部定义描述可以看到,IP协议头部同样基础长度为20字节。下图就是抓包的数据,其中蓝色部门的20字节就是IP协议头部,同样我们选取几个字段来对比看看,可以从上图中看到,IP协议头部基础的20个字节长度里,最后8个字节分别为源地址和目标地址,就看看抓包数据中最后8个字节是不是原地址和目标地址。从图中的标注也可以明确的看到,最后8个字节的确分别是源地址和目标地址。从流程图上来看,下面就应该传到数据链路层,由以太网协议来蹂躏它了。2.3.3 以太网协议网络层的事情到现在完成了,然后网络层将IPv4报文传到第2层,数据链路层。在数据链路层还会将数据再封装一层,这一层会将IP数据包封装成以太帧,如下图所示,这一步的主要目的是加入MAC地址,所以这里记录了当前以太帧需要由网卡发送到哪一个屋里设备上去,在不同的设备或者系统中,这里的帧格式不一定相同。到了这一层了,自己也不甚了解,就不大言不惭了,这一层已经比较接近物理层了,对于我一个软件开发的来说,基本上难以言传。总了个之,数据链路层和物理层就是将数据加以处理,使数据能在物理设备中转发后达到指定设备上。3.后记其实除了TCP/IP网络协议之外还有很多,基本上各个大厂都出过,比如微软、苹果、思科等等都搞过,不过随着互联网的飞速发展,TCP/IP协议可以说已经应用到了互联网的每一个角落,所以,这里讲述网络协议模型就采取了TCP/IP协议为例。4.网络协议关系图4.1 TCP/IP协议关系图4.2 网络通信协议关系图
2021年02月07日
911 阅读
0 评论
0 点赞