IP数据包格式详解

来源:互联网 发布:网络代写兼职是真的吗 编辑:程序博客网 时间:2024/03/29 05:05

IP数据包格式详解 - 儍苽-℡藸 - BabyUnion

IP数据包格式详解 - 儍苽-℡藸 - BabyUnion

TCP/IP协议定义了一个在因特网上传输的包,< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />

称为IP数据报 (IP Datagram)。这是一个与硬件无关的虚拟包,

由首部和数据两部分组成。首部的前一部分是固定长度,共 20 字节,

是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,

其长度是可变的。首都中的源地址和目的地址都是 IP 协议地址。

那么IP数据报格式又是怎样要求的呢?

    1. IP数据报首部的固定部分中的各字段

    ①版本:占4位,指IP协议的版本。通信双方使用的

IP协议版本必须一致。日前广泛使用的 IP协议版本号为 4 ( IPv4)

IPv6 目前还处于起步阶段。

    ②首部长度:占 4 位,可表示的最大十进制数值是 15。请注意,

这个字段所表示数的单位是32位字 ( 1 32位字长是字节)

因此,当 IP 的首部长度为 1111  (即十进制的 15)

首部长度就达到 60字节。当 IP 分组的首部长度不是4字节的整数倍时,

必须利用最后的填充字段加以填充。

因此数据部分永远在 4字节的整数倍开始,

这样在实现 IP协议时较为方便。

首部长度限制为 60字节的缺点是有时可能不够用。

这样做的目的是希望用户尽量减少开销。

最常用的首部长度就是 20 字节 (即首部长度为 0101)

这时不使用任何选项。

    ③服务:占 8 位,用来获得更好的服务。

这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。

1998IETF把这个字段改名为区分服务 DS (DifferentiatedServices)

只有在使用区分服务时,这个字段才起作用。

    ④总长度:总长度指首都及数据之和的长度,单位为字节。

因为总长度字段为 16位,所以数据报的最大长度为 216-1=65 535字节。    IP层下面的每一种数据链路层都有自己的帧格式,其中包括帧格式中的数据字段的最大长度,即最大传送单元 MTU (Maximum Transfer Unit)。当一个数据报封装成链路层的帧时,此数据报的总长度 (即首部加上数据部分)一定不能超过下面的数据链路层的MTU值。

    ⑤标识 (Identification):占 16位。

IP软件在存储器中维持一个计数器,每产生一个数据报,

计数器就加 1,并将此值赋给标识字段。但这个“标识”并不是序号,

因为 IP是无连接的服务,数据报不存在按序接收的问题。

当数据报由于长度超过网络的 MTU 而必须分片时,

这个标识字段的值就被复制到所有的数据报的标识字段中。

相同的标识字段的值使分片后的各数据报片最后能正确地重装成为

原来的数据报。

    ⑥标志 (Flag):占位,但目前只有2位有意义。   

标志字段中的最低位记为 MF (More Fragment)

MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片

中的最后一个。

标志字段中间的一位记为 DF(Don't Fragment)

意思是“不能分片”。只有当 DF=0时才允许分片。

    ⑦片偏移:占 13位。较长的分组在分片后,

某片在原分组中的相对位置。也就是说,相对用户数据字段的起点,

该片从何处开始。片偏移以 8个字节为偏移单位。

这就是说,每个分片的长度一定是 8字节 (64)的整数倍。

    ⑧生存时间:占 8位,生存时间字段常用的英文缩写是

TTL (Time To Live),其表明数据报在网络中的寿命。

由发出数据报的源点设置这个字段。

其目的是防止无法交付的数据报无限制地在因特网中兜围子,

因而白白消耗网络资源。最初的设计是以秒作为 TTL的单位。

每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。

若数据报在路由器消耗的时间小于 1 秒,就把TTL值减 1

 TTL值为 0时,就丢弃这个数据报。

    ⑨协议:占 8 位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。

    ⑩首部检验和:占 16位。这个字段只检验数据报的首部,

但不包括数据部分。这是因为数据报每经过一个路由器,都要重新计算一下首都检验和 (一些字段,如生存时间、标志、片偏移等都可能发生变化)。不检验数据部分可减少计算的工作量。

    ⑾源地址:32位。

    ⑿目的地址: 32位。

    2. IP数据报首部的可变部分

    IP首都的可变部分就是一个可选字段。选项字段用来支持排错、测量以及安全等措施,内容很丰富。此字段的长度可变,从 1 个字节到40个字节不等,取决于所选择的项目。某些选项只需要 1 个字节,它只包括 1 个字节的选项代码。但还有些选项需要多个字节,这些选项一个个拼接起来,中间不需要有分隔符,最后用全的填充字段补齐成为 4字节的整数倍。    增加首都的可变部分是为了增加 IP数据报的功能,但这同时也使得 IP 数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销。实际上这些选项很少被使用。新的 IPv6就将 IP数据报的首部长度做成固定的。

 

 

IP数据包指的是第三层的PDU

IP首部只是其中的一部分,是在第三层网络层上加上去的,是给路由器看的。

 

IP数据包的总长度过大,超过链路的最大MTU时,数据包就会被分成多片,

而在如今的IPv4的网络中,数据传输时不可靠的,是尽力而为的,

所以这些分片的数据单元到达对端的链路和时间都是不同的,

 

对端根据IP首部中的标示符(Identification)、标志(Flag)、段偏置值字段

重组数据包。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 18k钻戒断了怎么办 18k钻戒戒托变色怎么办 苹果七中间按键脱漆怎么办 苹果手机屏幕边缘掉漆了怎么办 十八k白金变色了怎么办 手机后面掉漆了怎么办 玫瑰金戒指刮花了怎么办 玫瑰金手镯刮花了怎么办 玫瑰金链子断了怎么办 dw玫瑰金掉色了怎么办 6s玫瑰金氧化了怎么办 书本湿的很严重怎么办 除湿盒的水满了怎么办 书被水泡变黄了怎么办 文件纸被弄皱了怎么办 纸的一角皱了怎么办 裤子被雨水打湿变色了怎么办 书本上粘了有油怎么办 手被水泡了皱了怎么办 水泡破了感染了怎么办 夏天腋下出汗会弄湿衣服怎么办 夏天腋下出汗多弄湿衣服怎么办 上眼皮干燥起皮怎么办 怀孕下面湿又痒怎么办 内裤穿久了有异味怎么办 刨腹产私处捂烂了怎么办 猫咬手指出血了怎么办 老有白带涌出来怎么办 耳朵里塞了珠子怎么办 树脂发光字烧了怎么办 马蹄莲长得太高怎么办 百合球的芽断了怎么办 种的百合开败怎么办 盆栽百合花开完之后怎么办 土养百合花谢了怎么办 多肉叶子不饱满怎么办 冬天富贵竹叶子发黄怎么办水养 富贵竹叶子发黄怎么办水养 水养富贵竹有虫怎么办 水养的富贵竹叶子发黄怎么办 百合花水里的盐放多了怎么办