IPv4、IPv6、UDP、TCP 数据报首部格式分析

1、IPv4首部格式

 

通过wireshark抓QQ的数据报,IPV4的数据报格式和上面的一致,现在进行分析(相对重要的会红色标记)

                       

 

(1)版本(version):由4比特构成,表示标识IP首部的版本号,如上是版本号为4

(2)首部长度(IHL):由4比特构成,表明IP首部的大小,当没有可选项时,首部长度为20字节

(3)区分服务(TOS):由8比特构成,用来表明服务质量,其中包括DSCP和ECN。DSCP(差分服务代码点)用来进行质量控制;ECN(显式拥塞通告)用来报告网络拥堵情况

(4)总长度(Total Length):表示IP首部与数据部分合起来的总字节数,长度为16比特,72字节

(5)标识(ID):由16比特构成,用于分片重组

(6)标志(Flags):由3比特构成,表示被分片的相关信息

(7)片偏移(FO):由13比特构成,用来标识被分片的每一个分段相对于原始数据的位置

(8)生存时间(TTL):由8比特构成,最大值225,实现防止环路。可作为以秒为单位记录当前包在网络上的生存期限,也可用于表示中转多少个路由器,没经过一个路由器,TTL减少1,直到0则丢弃该包

(9)协议(Protocol):由8比特构成,表示IP包传输层的上层协议编号

(10)首部校验和(Header Checksum):由16比特(2个字节)构成,只校验数据报的首部,不校验数据部分,主要用来确保IP数据报不被破坏

(11)源地址(Source Address):由32比特(4个字节)构成,表示发送端IP地址

(12)目标地址(Destination Address):由32比特(4个字节)构成,表示接收端IP

(13)可选项(Options):长度可变,通常只在进行试验或诊断时使用。包含以下信息:安全级别,原路径,路径记录,时间戳

(14)填充(Padding):在有可选项的情况下,通过向字段填充0,将首部长度调整为32比特整数倍

(15)数据(Data):存入数据

二、IPv6首部格式

 

(1)版本(version):由4比特构成。值为6

(2)通信量表(Traffic Class):由8比特构成,相当于IPv4的TOS字段

(3)流标号(Flow Label):由20比特构成,准备用于服务质量

(4)有效载荷长度(Payload Length):指包的数据部分

(5)下一个首部(Next Header):由8比特构成。相当于IPv4的协议字段,通常表示IP上一层协议是TCP或UDP

(6)跳数限制(Hop Limit):由8比特构成,与IPv4中的TTL意思相同。数据每经过一次路由器就减1,减到0则丢弃数据

(7)源地址(Source Address):由128比特(8个16位字节)构成。表示发送端IP地址

(8)目标地址(Destination Address):由128比特(8个16位字节)构成。表示接收端IP地址


三、UDP首部格式

 

(1)源端口号(Source Port):表示发送端端口号,字段长16位。可选项

(2)目标端口号(Destination Port):表示接收端端口,字段长度16位

(3)包长度(Length):该字段保存了UDP受不得长度跟数据的长度之和,单位为字节(8位字节)

(4)校验和(Checksum):校验和是为了提供可靠的UDP首部和数据而设计。通过在最后一位增加一个“0”将全长增加16倍。此时将UDP首部的校验和字段设置为“0”,然后以16比特为单位进行1的补码和,并将得到的1的补码和写入校验和字段。接受主机判断包括校验和字段在内的所有数据之和结果为“16位全部为1”时,才会被认为所受到的数据是正确的。

四、TCP首部格式

 

(1)源端口号(Source Port):表示发送端端口号,字段长16位

(2)目标端口号(Destination Port):表示接收端端口号,字段长度16位

(3)序列号(Sequence Number ):字段长32位,指发送数据的位置,每发送一次数据,就累加一次该数据字节数的大小。序列号在建立连接时由计算机生成的随机数作为其初始值,通过SYN包传给接收端主机,然后再将没转发过去的字节数累加到初始值上表示数据的位置。

(4)确认应答号(Acknowledgement Number):确认应答号字段长度32位。指下一次应该收到的数据的序列号。

(5)数据偏移(Data Offset):表示TCP首部的长度。该字段长4位,单位为4字节(即32位);不包括选项字段的话TCP首部的长度为20字节长

(6)保留(Resserved):该字段主要是为了以后扩展时使用,长度为4位,一般设置为0。

(7)控制位(Control Flag):字段长为8位,每一位从左至右分别为CWR\ECE\URG\AVK\PSH\RST\SYN\FIN

 

(8)窗口大小(Windows Size):该字段长为16位。用于通知从相同TCP首部的确认应答号所指位置开始能够接收的数据大小(8位字节)

(9)校验和(Checksum):TCP校验和与UDP相似,区别在于TCP的校验和无法关闭

 

 

(10)紧急指针(Urgent Pointer):该字段长为16位,只有在URG控制位为1时有效。该字段的数值表示本报文段中紧急数据的指针

(11)选项(Options):用于提高TCP的传输性能,长度最大为40字节,尽量调整为32位的数据量
 

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值