我是靠谱客的博主 狂野钢笔,最近开发中收集的这篇文章主要介绍IPv4报文格式  ,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述


 

 

下图是IP的报文格式,Ipv4头长度最低为20字节最大长度为60字节(20字节 ~ 60字节长度中为4的倍数的长度),接下来我们先说明各个字段的意义。
常见的IPv4报文格式表:
IPv4报文格式

1.版本:ip报文中,版本占了4位,用来表示该协议采用的是那一个版本的ip,相同版本的ip才能进行通信。一般此处的值为4,表示ipv4。

2.头长度:该字段用四位表示,表示整个ip包头的长度,其中数的单位是4字节。即二进制数0000-1111(十进制数0-15),其中一个最小长度为0字节,最大长度为60字节。一般来说此处的值为0101,表示头长度为20字节。当 IP 分组的头长度中有效长度不是 4 字节的整数倍时,必须填充0到剩下的字段中以补齐整个ip头长度为4字节倍数。

数据部分永远在 4 字节的整数倍开始,这样在实现 IP 协议时较为方便。首部长度限制为 60 字节的缺点是,长度有时可能不够用,之所以限制长度为 60 字节,是希望用户尽量减少开销。最常用的首部长度就是 20 字节(即首部长度为 0101),这时不使用任何选项。

3.Tos服务字段:该字段用8位表示。
“IP Precedence”----RFC791中定义了TOS位的前三位为IP Precedence,后4位为tos,最后1位保留,这三位可划分八个优先级,即:IP优先级字段,可以应用于流分类,数值越大表示优先级越高。IP优先权有八种服务可以标记,其应用类型如下:
7 预留    6 预留    5 语音   4 视频会议   3 呼叫信号    2 高优先级数据   1 中优先级数据    0 尽力服务数据

“DSCP”----在网络中实际部署的时候,仅3bits字段只能划分出8种服务的优先级,在网络业务如此复杂的今天,8个优先级是远远不够用的,于是RFC 2474中又对TOS进行了新的定义,把前六位定义成了DSCP,后两位保留。这样,DSCP值的范围就是0到63。 

4..总长度:该字段表示整个ip报文的长度,单位是1字节。能表示的最大字节为2^16-1=65535字节。不过由于链路层的MTU限制。超过1480字节后就会被分片(以太帧MTU为1500的情况下,除去20字节的包头)

5.标识:该字段是ip软件实现的时候自动产生的,该字段的目的不是为了接受方的按序接受而设置的,而是在ip分片以后,用来标识同一片分片的。方便ip分片的重组。

6.标志:该字段是与ip分片有关的。其中有三位,但只有两位是有效的,分别为MF,DF,MF。MF标识后面是否还有分片,为1时,表示后面还有分片。DF标识是否能分片,为0表示可以分片。

7.片偏移:该字段是与ip分片后,相应的ip片在总的ip片的位置。该字段的单位是8字节。比如,一个长度为4000字节的ip报文,到达路由器。这是超过了链路层的MTU,需要进行分片,4000字节中,20字节为包头,3980字节为数据,需要分成3个ip片(链路层MTU为1500),那么第一个分片的片偏移就是0,表示该分片在3980的第0位开始,第1479位结束。第二个ip片的片偏移为185(1480/8),表示该分片开始的位置在原来ip的第1480位,结束在2959。第三片的片偏移为370(2960/8),表示开始的时候是2960位,结束的时候在3979位。

8.TTL:该片表示生存周期,该值占8位。ip分片每经过一个路由器该值减一,它的出现是为了防止路由环路,浪费带宽的问题。比如,该ip在R1路由器发送到R2路由器。R2路由器又发给R1路由器。为防止这种循环,window系统默认为128.

9.协议:该值标识上层的协议。占8位。
其中 1 标识ICMP、2 标识IGMP、6 标识TCP、17 标识UDP、89 标识OSPF。

10校验和:该值是对整个数据包的包头进行的校验。占16位。

11.源地址和目的地址。标识发送ip片的源和目的ip,32位

12.接下来是可选的部分,一般一些特殊的要求会加在这个部分。

13:数据

最后

以上就是狂野钢笔为你收集整理的IPv4报文格式  的全部内容,希望文章能够帮你解决IPv4报文格式  所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部