IPv4_数据报文首部格式
Posted x1angzeeD.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IPv4_数据报文首部格式相关的知识,希望对你有一定的参考价值。
IPv4数据报首部格式
IPv4数据报首部分为固定部分(20字节)与可变部分(0~40字节)
用WireShark抓包的IPv4协议中报文首部格式一一对应:
字段 | 说明 |
---|---|
版本号 | 目前广泛使用的ip协议版本为4,所以对应的版本号为“0100” |
首部长度 | 报文首部的长度(20~60字节),最短为0101/最长为1111 |
区分服务 | 利用该字段的不同数值可提供不同等级的服务质量(仅在区分服务时该字段起效) |
总长度 | IP数据段的总长度,首部与数据部分的长度和 |
标识 | 属于同一数据报中的各片段应有相同的标识;IP软件维持一个计数器,每产生一个报文计数器值+1 |
标志 | 占3bit。DF位:1表不允许分片,0表允许;MF位:1表后面还有分片,0表没有;保留位,必须为0 |
片偏移 | 分片的数据部分相对于其在原数据报部分中的偏移量 |
生存时间 | 现在以“跳数”为单位,路由器转发IP数据报时,将该字段的值-1,若不为0则转发,为0则丢弃。 |
协议 | 指明报文数据部分是何种协议数据单元(例:ICMP为1、IGMP为2、TCP为6、UDP为17) |
首部校验和 | 只检查首部,不包括数据部分 |
源/目的IP地址 | 发送/接收方的IP地址 |
可变部分 | 长度为1~40字节,用来支持排错、测量、安全。他很少使用,许多路由忽略/不有效地处理 |
填充 | 确保首部长度为四字节的整数倍,全使用0填充 |
标识+标志+片偏移的作用:
数据包长度超过MTU限制时需将数据报分片传输。如图H1计算机有两个较长的数据报需传给H3,H2有一个较长报文需传给H3。将三个报文拆成片段后发给H3,H3收到片段后如不采取措施,则H3无法辨别到底谁是谁。H3根据标识+源IP地址可区分这些数据报分片信息。
数据报分片举例:
生存时间:
1、设生存时间TTL为2,路由R1的下一跳为路由R2
2、到了R2后TTL值-1,经R2查询下一跳为R1,又将报文发回路由R1
3、路由R1收到后,TTL值-1,此时TTL为0,则路由将该报文丢弃,如不然会在两路由器中反复传输
总长度的例题:
设首部长度为“0101”,总长度为“001111111100”,则数据载荷长度为?
以上是关于IPv4_数据报文首部格式的主要内容,如果未能解决你的问题,请参考以下文章