TCP报头
TCP报头格式英文版:
TCP报头格式中文版:
![](https://img-blog.csdnimg.cn/2020013013173675.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNjI0MDMz,size_16,color_FFFFFF,t_70)
各字段解释:
- 16位源端口
- 16位目的端口,看端口的命令:netstat
- 32位序列号,简写为SEQ,用来解决网络包乱序问题。
- 32位确认序列号,简写为ACK。在握手阶段,确认序号将发送方的序号加1作为回答,确认收到数据包,用来解决不丢包的问题。
- 4位首部长度,表示该tcp报头有多少个4字节(32个bit),TCP的头长度最长可为60字节(二进制1111换算为十进制为15,15*4字节=60字节)。
- 6位的保留位
- 6位标志位,为0是表无效,为1时表有效
ACK: 置1时表示确认号为合法,为0的时候表示数据段不包含确认信息,确认号被忽略。
RST :置1时重建连接。如果接收到RST位时候,通常发生了某些错误。
SYN :置1时请求建立连接. 我们把含有SYN标识的报文称为同步报文段
FIN :通知对端, 本端即将关闭. 我们把含有FIN标识的报文称为结束报文段
URG :紧急指针,告诉接收TCP模块紧要指针域指着紧要数据。注:一般不使用。
PSH :置1时请求的数据段在接收方得到后就可直接送到应用程序,而不必等到缓冲区满时才传送。注:一般不使用。 - 16位窗口大小 ,用来数据传输时的流量控制避免拥塞
- 16位检验和,检验和覆盖了整个的TCP报文段: TCP首部和TCP数据。这是一个强制性的字段,一定是由发端计算和存储,并由收端进行验证。
16位紧急指针,用来标识哪部分数据是紧急数据,一般不使用。
UDP报头
UDP报头格式英文版:
![](https://img-blog.csdnimg.cn/2020013013192761.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNjI0MDMz,size_16,color_FFFFFF,t_70)
UDP报头格式中文版:
各字段解释:
- 16位源端口
- 16位目标端口
- 16位报文长度 指明了包括首部在内的UDP报文段长度。UDP长字段的值是UDP报文头的长度(8字节)与UDP所携带数据长度的总和。
- 16位校验和 是指整个UDP报文头和UDP所带的数据的校验和(也包括伪报文头)。伪报文头不包括在真正的UDP报文头中,但是它可以保证UDP数据被正确的主机收到了。因在校验和中加入了伪头标,故ICMP除能防止单纯数据差错之外,对IP分组也具有保护作用。
IP报头
IP报头格式英文版:
IP报文格式中文版:
IP数据包由报头和数据两部分组成。报头的前一部分是固定长度,共20字节。
各字段解释:
-
版本,占4位,指IP协议的版本。
-
头部长度,IP包的头部长度 大小为4bite
-
服务类型 ,占8位,在一般情况下都不使用这个字段。
-
总长度,指报头和数据之和的长度,单位是字节。总长度字段为16位,故IP数据报的最大长度为65535。
每一种数据链路层都有其自己的帧格式,其中包括帧格式中的数据字段的最大长度,这称为最大传送单元MTU。当IP数据报封装成链路层的帧时,此数据报的总长度不能超过对应MTU的值。若数据报长度超过对于MTU的值,就将数据报进行分片处理,此时数据报首部中的“总长度“字段是指分片后的每一个分片的报头长度和数据长度之和。 -
标识,占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并赋给标识字段。当数据报进行分片处理后,每个分片的标识值都与原数据报的标识值相同,则在接收端具有相同标识值的分片就能最终正确的重装成为原来的数据报。
-
标志,占3位,它是用来标志数据包是否分段,其中包含DF(do not fragment)和MF(more fragment),当DF的值为1时,则MF的值必为0,DF为1,则说明数据包有分段。同样可以知道当MF为1时,则DF为0,这表示的是数据包没有分段。当然也有可能MF和DF都为0。
-
片偏移,占13位。表示每个数据报的分片在原数据报中的相对位置。片偏移以8个字节为偏移单位,即每个分片的长度一定是8字节的整数倍。
-
生存时间,占8位, TTL最大为255 经过一个路由器减1,减到0时数据包被丢弃
-
协议,占8位,指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给那个处理过程。TCP对应协议字段值6;UDP对应协议字段值17
-
首部校验和,占16位,该字段只校验数据报的报头,但不包括数据部分。
-
源地址,占32位
-
目的地址,占32位