Internet协议( 六 )


填充:变长
报头域填充用于保证报头是32位的倍数 。填充值为0 。
3.2. 讨论
协议的实现必须健壮,每个实现都要保证与其它人的实现兼容 。通常一个实现在发送时
应该遵守比较保守的策略,在接收时大可不必保守 。也就是说,发送构成良好的包,接
收自己能够解释的包(有些错误也是将就着了) 。
基本的Interent服务是面向数据报的,在网关处可以提供以数据报的分段和在目的主机
的重组服务 。当然,在一个网络内或在因遵守私下的协议而在一个网络的网关间进行分
段和重组也是可以的,因为这对IP协议和高层协议是透明的 。这种透明的分段称为基于
网络的分段,这里不做讨论 。IP地址是在主机一级区别源地址和目的地址的 。
寻址
为了可以对网络大小进行灵活的控制,IP地址提供了几类地址,一类是可以容纳比较多
主机的网络,一种容纳的主机数就比较少,我们大家听说过的什么A类,B类地址,C类地
址就是为了用于不同规模的网络而提出的 。下面是一些地址格式:
最高位
格式

0
7位网络用,24位主机用
a
10
14位网络用,16位主机用
b
110
21位网络用,8位主机用
c
111
扩充地址模式
 
假如网络域为零意味着本网络,这种方式仅在于特定的ICMP消息中使用;扩展的地址模
型未定义 。
由本地网络指定的本地地址必须考虑到单个的主机可以作为不同的网络主机使用 。也就
是说,必须在网络主机地址和网络/主机接口之间进行映射,这种接口答应几个IP地址对
应一个接口 。同时还应该考虑到一台主机有多个处理接口,对于从不同接收收到的信息
应该看做是来自同一个IP地址的 。
分段和重组
Internet标记域(ID)和源地址,目的地址和协议域一起用于确认数据报分段和重组 。
假如数据报不是最后一段,则设置多段标记位(MF) 。段偏移域标记段位置,它是相对
于未分段时的数据报而言的 。段以8个字节为单位,这样的分段策略使未分段的数据报有
全零的分段信息(MF = 0,段偏移= 0) 。假如进行分段,边界必须是8个字节的倍数 。
这种格式答应2的13次方(8192)个8字节段,一个数据报的最大长度刚好和长度域标明
的数据64K一致 。在分段时,有些选项被复制,有些则不 。
每个IP模块必须能够不分段地传送68字节的数据报 。这因为IP包头会达到60字节,而最
小数据段长为8,68=60 8;而它也必须能够接收576字节的数据,不论这数据是未分段的
还是分段的 。
会被分段影响的域包括:
(1) 选项域
(2) 多段标记
(3) 段偏移
(4) Internet包头长度域
(5) 总长度域
(6) 包头校验码
假如设置了不分段标记(DF),则不可进行分段,即使数据报会因此而被抛弃 。假如接
收主机不能进行重组时则需要设置此位 。我们在进行无盘引导时,则需要设置这一位 。
下面通过例子说明这一过程 。其中#代表不等于,X到Y指的是包括X,而不包括Y的所有数
据 。
能够在下一个网络传送的最大数据报称为最大传输单元(MTU) 。假如数据报的长度小于
等于MTU,进行下一步;否则分为两段,第一段的大小等于MTU,第二段就是剩余的长度
,将第一段传送,假如第二段仍然大于MTU,则重复分段过程,直到可以发送为止 。下面
我们给出一个定义:
FO - 段偏移
IHL - Internet包头长度

推荐阅读