概述
给大家简单梳理一下几种学习中常会出现的协议格式,咋们数通就像交通,各种各样的协议规则来规范大家,制定科学的管理手段来帮助大家快速,安全的到家。
一、 HDLC协议
HDLC叫高级链路控制协议(High Level Data Link Control)。该协议一般广泛用于公用数据网,支持全半双工模式,一种同步传输数据,面向比特的数据链路层协议。
HDLC数据帧结构
Falg字段 | Address字段 | Control字段 | 信息info字段 | FCS字段 | Falg字段 |
1、 Flag字段:HDLC用一种特殊的位模式01111110用以标志帧的开始与结束,也可以作为帧与帧之间的填充字符,发送的数据比特序列一旦发现0有连着的5个1,则在第七位插入0。
2、 Address字段:用于表示从站的地址,用在点对多点的链路中,通常地址是8位长,也可以采用更长的地址段,需是8的整数倍。用于描述数据帧是否属于单播、组播、广播帧。
3、 Control字段:用于构成各种命令及响应,以便对链路进行监视与控制。发送方利用控制字段来通知接收方来执行约定的操作;相反,接收方用该字段作为对命令的响应,报告已经完成的操作或状态的变化。
3.1 信息帧用于传送有效信息或数据,简称为I帧
3.2 监控帧用于差错控制和流量控制,简称S帧(监控帧中不能有Information字段)
3.3 无编号帧用于提供对链路的建立、拆除以及多种控制功能,简称U帧。
- Information字段:可以包含任意长度的二进制数,其上限由FCS字段或通讯节点的缓存容量来决定,目前用得较多的是1000-2000比特,而下限可以是0,即无信息字段。
- FCS字段:可以使用16位CRC对两个标志字段之间的内容进行校验
二、 IPV4 协议
网际协议版本4(Internet Protocol version 4,IPv4)是一种无连接的协议,操作在使用分组交换的链路层(如以太网)上。此协议会尽最大努力交付数据包,意即它不保证任何数据包均能送达目的地,也不保证所有数据包均按照正确的顺序无重复地到达。这些方面是由上层的传输协议(如传输控制协议)处理的。
IPV4数据报格式
版本号:占 4 比特,指 IP 协议的版本,目前广泛使用 IPv4。
首部长度(IHL):IP 头长度,占 4 比特,最大值 15 个单位(1 个单位 4 字节)。
服务类型(TOS):该字段包括一个 3 比特的优先级子字段(现在已废弃不用),还包括一个 4 比特的 ToS子字段,最后 1 比特必须置 0。ToS 中的 4 比特分别代表:最小时延(D)、最大吞吐率(T)、最高可靠性(R)和最小费用(C),只能有 1 比特置 1。如果所有 4 比特均为 0,那就是一般服务。
总长度:总长度指首部和数据之和的长度,单位为字节。总长度字段为16位,因此数据报的最大长度为2^16-1=65535字节。
标识符:由主机指定同样的标识符。当原主机对数据分段时,对同一上层协议数据单元划分出的各。
个数据报指定同样的标识符,目标主机上层协议用这个字段进行重装配。
标志:包括三个标志位。一个标志位没有使用;M 标志用于分段和重装配;D 标志为禁止分段标志。
片偏移:其表示较长分组分片后,某一片在原分组中的相对位置,也就是说相对于用户数据字段的起点,该片从何处开始。这也就是说,除了最后一个分片,每个分片的长度一定是8字节的整数倍
生存时间(TTL):用经过的路由器个数表示,源站设置一个数(32 或 64),每经过一个路由器减 1。如果某个路由器发现 TTL 字段为 0,则丢弃该数据报,不再转发。
协议:上层协议(TCP 或 UDP)。
首部验和:对 IP 头的检验序列。
源目地址:各占32位。
数据部分:可变长,包含发送者想要发送的控制数据。
三、 ICMP 协议
ICMP(Internet Control Message Protocol)因特网控制报文协议;是一种面向无连接的协议,工作第三层,封装在 IP 数据报中传输,传送有关网络层通信问题的信息。ICMP 常见应用有:1. 报告访问失效(报告源主机网络不可达);2. 报告网络拥塞(发送源抑制报文给源主机,降低发送速率);3. 帮助排错(利用 ICMP 回声功能,ping 工具);4. 声明报文超时(TraceRoute 工具,利用较小的 TTL 值发现中间设备)。
ICMP 报文格式
类型:占8位,用来表类型;
代码:一个8位代码域,表示指定类型中的一个功能,如果一个类型中只有一种功能,代码域置为 0;
检验和:数据包中 ICMP 部分上的一个16位检验和;
ICMP数据部分:包含了所有接受到的数据报的IP报头,还包含IP数据报中前8个字节的数据。
四、TCP
传输控制协议(TCP,Transmission Control Protocol)是面向连接,可靠(三次握手机制),基于字节流的传输层协议,。
TCP 报文格式
TCP报文由首部和数据两部分组成。首部一般由20-60字节(Byte)构成,长度可变。其中前20B格式固定,后40B为可选。因为,TCP报文还得传给下层网络层,封装成IP包,而一个IP包最大长度为65535,同时IP包首部也包含最少20B,所以一个IP包或TCP包可以包含的数据部分最大长度为65535-20-20=65495B。
TCP报文中数据部分是可选的,即TCP报文可以不包含数据(同理IP包也可以不包含数据)。不含数据的TCP报文通常是一些确认和控制信息类的报文,如TCP建立连接时的三次握手和TCP终止时的四次挥手等。
1、源目的端口号:长度为16位,发送和接收放的端口号
3、序号:也称为序列号,长度为32位,序号用来标识从TCP发送端向接入端发送的数据字节流进行编号,可以理解成对字节流的计数。
4、确认号:长度为32位,确认号包含发送确认的一端所期望收到的下一个序号。确认号只有在ACK标志为1时才有效。
5、数据偏移位(首部长度):占4位,用于表示TCP报文首部的长度。它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。这个字段实际上是指出TCP报文段的首部长度。
6、保留位:长度为6位,必须是0,它是为将来定义新用途保留的。
7、标志:长度为6位,在TCP报文中不管是握手还是挥手还是传数据等,这6位标志都很重要。6位从左到右依次为:
URG:紧急标志位,说明紧急指针有效;
ACK:确认标志位,多数情况下空,说明确认序号有效;
PSH:推标志位,置位时表示接收方应立即请求将报文交给应用层;·
RST:复位标志,用于重建一个已经混乱的连接;
SYN:同步标志,该标志仅在三次握手建立TCP连接时有效
FIN:结束标志,带该标志位的数据包用于结束一个TCP会话。
8、窗口大小:长度为16位,TCP流量控制由连接的每一端通过声明的窗口大小来提供。
9、检验和:长度为16位,该字段覆盖整个TCP报文端,是个强制性的字段,是由发送端计算和存储,到接收端后,由接收端进行验证。
10、紧急指针:长度为16位,指向数据中优先部分的最后一个字节,通知接收方紧急数据的长度,该字段在URG标志置位时有效。
11、选项:长度为0-40B(字节),必须以4B为单位变化,必要时可以填充0。通常包含:最长报文大小(MaximumSegment Size,MSS)、窗口扩大选项、时间戳选项、选择性确认(Selective ACKnowlegement,SACK)等。
在我们网络协议中,数据包就像路上行驶的小车,车辆上和里面装着各种东西,有必要的东西,非必要的东西,你想要把人或者东西带到想要的地方去,你就必须遵守咋们的交通规则,必须按照咋们的网络协议规则来,不然你就去不了。如果出现路上有意外,就有检错功能,将会被拦下协协协议格式议格式议格来,进行重传,或者丢弃。
最后
以上就是可耐爆米花为你收集整理的几个的常见基础协议类型数据格式以及协议内容简介二、 IPV4 协议三、 ICMP 协议四、TCP的全部内容,希望文章能够帮你解决几个的常见基础协议类型数据格式以及协议内容简介二、 IPV4 协议三、 ICMP 协议四、TCP所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复