欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

解读TCP/UDP数据包(一):IP数据包结构

程序员文章站 2022-03-19 14:49:14
解读TCP/UDP数据包(一):IP数据包结构   1、图 IP数据包由首部和数据组成 每行4个字节(32位) 其中首部最少20个字节(5行),选项部分是可选的;【待补充选...

解读TCP/UDP数据包(一):IP数据包结构

 

1、图

IP数据包由首部和数据组成

每行4个字节(32位)

其中首部最少20个字节(5行),选项部分是可选的;【待补充选项长度】

 

解读TCP/UDP数据包(一):IP数据包结构

 

2、首部固定部分

1、  第一行:IP版本号4位,首部长度4位,服务类型8位,总长度16位

IP版本号:

        IPv4固定值为4

首部长度:

        指明首部共有多少行(每行4个字节,32位),则IP首部的最大长度为(2^4-1)*4=60字节;

服务类型:

        前三个BIT:优先权,现已忽略;

        4 bit的TOS分别代表:最小时延、最大吞吐量、最高可靠性和最小费用,均为0表示一般服务;最后1BIT未用;

总长度:

        包括IP首部在内的以字节为单位的IP数据报总长度;

2、  第二行:标识16位,标志3位,片偏移13位

标识:

        包唯一标识,用于分片和重组【补充分片重组信息】

标志位:

        第一位为零,第二位DF位(不要分片),第三位MF位(还有分片)

片偏移:

        用于分片和重组

3、  第三行:生存时间8位,协议8位,首部校验和16位

生存时间:

        TTL(每转发一次路由减一,最大为255跳);

协议:

        0x11为UDP,0x6为TCP【补充常用协议值】

首部校验和:

        16位的首部(包括选项)校验和(简单的16位反码加法)【补充具体算法】

4、  第四、五行:源IP地址32位(网络序),目的IP地址32位

3、首部选项部分

【待补充】

4、数据

IP首部结束之后的部分