解读TCP/UDP数据包(一):IP数据包结构
程序员文章站
2022-06-22 19:11:07
解读TCP/UDP数据包(一):IP数据包结构
1、图
IP数据包由首部和数据组成
每行4个字节(32位)
其中首部最少20个字节(5行),选项部分是可选的;【待补充选...
解读TCP/UDP数据包(一):IP数据包结构
1、图
IP数据包由首部和数据组成
每行4个字节(32位)
其中首部最少20个字节(5行),选项部分是可选的;【待补充选项长度】
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首部结束之后的部分