注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

浩瀚星云

上善若水 厚德载物<学习版>

 
 
 

日志

 
 

网络层基础知识总结(2)  

2014-11-06 15:05:04|  分类: 计算机网络基本原 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
1、IP数据报首部格式介绍

从宏观方面看,IP数据报的首部总共是60B,其中前一部分是固定部分长20B,后面的21-60B为可选字段(长度可变)和填充字段。

网络层基础知识总结(2) - brain - 百年孤独
(1)、版本:占4位(4bit),指IP协议的版本。通信双方使用的IP协议的版本必须一致。目前广泛使用的IP协议版本号为4(即IPv4)。
(2)、首部长度:占4位(4bit),可表示的最大十进制数值是15。这个字段表示数的单位是32位字(1个32位字=4字节),因此,当IP的首部长度为1111时(即十进制15),首部长度就为最大值60B。当IP数据报的首部长度不是4字节的整数倍时,必须要利用最后的填充字段加以填充。因此IP数据报的数据部分永远从4字节的整数倍时开始,这样在实现IP协议时比较方便。IP数据报首部限制为60B的缺点是有时可能不够用。但这样做是希望用户尽量减少开销。最常用的首部长度就是20B(即首部长度字段为:0101),这时不使用任何选项。
(3)、区分服务:占8位(8bit),用来获得更好的服务。这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。1998年IETF把这个字段改名为区分服务DS,只有在使用区分服务时,这个字段才起作用。
(4)、总长度:总长度指首部加数据部分的长度之和,单位为字节。总长度字段占16位(16bit),因此数据报的最大长度为216-1=65535字节。注意:在IP层下面的每一种数据链路层都有其自己的帧的格式,其中包括帧格式中的数据字段的最大长度,这称为最大传送单元MTU。当一个IP数据报封装成链路层的帧时,此数据报的总长度(即首部+数据部分)一定不能超过下面的数据链路层的MTU值。虽然使用尽可能长的数据报会使传输效率提高,但是由于以太网的普遍应用。所以实际上使用的数据报长度很少有超过1500字节的。为了不使IP数据报的传输效率降低,所有的主机和路由器必须能够处理的IP数据报长度不得小于576字节,这个数值也是最小的IP数据报的总长度。当数据报长度超过网络所容许的最大传送单元MTU时,就必须把长的数据报进行分割成片后才能在网络上传送。
(5)、标识:占16位(16bit),IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。
(6)、标志:占3位(3bit),但目前只有两位有意义,标志字段中的最低位记为MF,标志字段中间的一位记为DF

    ①、MF=1(More Fragment)时表示后面还有分片的数据报

        (MF=1时表示有更多的分片)

        MF=0时表示这已是若干数据报片中的最后一个

        (MF=0时表示没有更多的分片,即此时数据报片为最后一片)

    ②、DF=0(Don't Fragment)时才允许分片。

        (双重否定等于肯定,所以DF=0时表示允许分片)

(7)、片偏移:占13位(13bit) 。片偏移指出:较长的IP数据报在分片后,某片在原来数据报中的相对位置。也就是说,相对于用户数据报字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。这就是说,每个分片的长度一定是8字节(64bit)的整数倍。
(8)、生存时间:占8位(8bit) 。生存时间字段常用的英文缩写是TTL(Time To Live),表明是数据报在网络中的寿命。由发出数据报的源点设置这个字段。其目的是防止无法交付的数据报无限制的在因特网中兜圈子,因为白白浪费资源。现今的因特网把TTL字段的功能定义为“跳数限制”(但名称不变)。路由器在转发数据报之前就把TTL值减1。若TTL的值减到0,就丢弃这个数据报。TTL的意义是指明数据报在因特网中至多可经过多少个路由器。显然,数据报能在因特网中经过的路由器最大数值是255 ( TTL字段长1个字节,1个字节是8位,每位都为1时TTL的最大值是255 若把TTL的初始值设为1,就表明这个数据报只能在本局域网中传送,因为这样的数据一传到局域网上的某个路由器时,在被转发之前TTL就减到0了,因而就会被这个路由器丢弃。
(9)、协议:占8位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理工程。

协议名

ICMP

IGMP

TCP

EGP

IGP

UDP

IPv6

OSPF

协议字段值

1

2

6

8

9

17

41

89

(10)、首部检验和:占16位。这个字段只检验数据报首部,但不包括数据部分。这是因为数据报每经过一个路由器,路由器都要重新计算一下首部校验和(一些字段,如生存时间、标志、片偏移等都有可能发生变化)。不校验数据部分可减少计算的工作量。为了进一步减小计算校验和的工作量,IP首部的校验和不采用复杂的CRC检验码而是采用更为简单的IP数据报数据报首部校验和计算方法。
网络层基础知识总结(2) - brain - 百年孤独
 (10)、源地址:发送端主机的IP地址,占32位。
 (11)、目的地址:接收端主机的IP地址,占32位。
 (12)、IP数据报首部可变部分:IP数据报首部的可变部分就是一个选项字段。该选项字段用来支持排错、测量以及安全等措施,内容很丰富。此字段的长度可变,从1到40个字节不等,取决于所选择的项目。某些选项项目只需要1个字节,它只包括1个字节的选项代码。但还有一些选项需要多个字节,这些选项一个个拼接起来,中间不需要有分隔符,最后用全0的填充字段补齐成为4个字节的整数倍。

总结:
在首部中接触了3个关于长度的标记:①首部长度;②、数据总长度;③、片偏移,它们的基本单位分别是:4B、1B、8B。帮助记忆:你不要是拿1总1)条假首拾首4)来骗()我吧(8)。
  评论这张
 
阅读(100)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017