存储是连续的,为了方便看,画成这种,一行4个字节。
首部固定部分:
0~3位 | 版本号(ipv4,ipv6) |
4~7位 | 存储首部长度,为了方便区分首部和数据 |
8~15位 | 区分服务(暂时不用) |
16~31位 | 总长度也就是ip数据报的长度,包含首部和数据部分 |
32~63位 | 标识:数据包的编号 标志:是否分包了,分片后是否这个包是结尾那个片 片偏移:如果发送一个数据太大就只能分片发送,分完后的数据包标识是一样的, 通过片偏移来确定不同片的位置,最后好组合回原来的数据 |
64~71位 | 生存时间:是一个计数器每经过一个路由器生存时间都会减少,减少到0就丢弃 |
72~79位 | 协议:使用的什么协议(tcp,udp,smtp.....) |
80~95位 | 首部校验和:把首部所有数据通过算法加密放在这里,接收方收到数据 也使用算法把首部计算一下,对比一下是否相同,相同就说明首部没有更改。 |
96~127位 | 源IP地址 |
128~159位 | 目的IP地址 |
首部可变部分:存储格式TVL(type,value,length)