TCP/IP协议族——网际协议版本4(IPv4)

一 概念

IP是TCP/IP协议族在网络层使用的传输机制,是一种不可靠的无连接数据报协议(尽最大努力交付),它依靠更高层的协议来解决可靠性问题。

二 数据报

网络层的分组称为数据报,数据报是一个可变长度的分组,它由两部分组成:首部和数据。如下图所示:

VER:版本,目前为4。

HLEN:首部长度,以4字节为单位,最小长度为20字节。

总长度:以字节为单位。为何需要该字段?

封装在一个帧里不仅仅只有数据报,有时还有填充字段(IP数据报长度小于46字节时),此时剥去帧的首部和尾部得到的是数据报+填充字段,当机器对该数据报进行拆装时,必须检查总长度字段。以便确认数据的真正长度

备注:数据长度=总长度-首部长度

标识、标志、分片偏移:用于分片。

生存时间:经过一个路由器减一,为0时丢弃,该字段目的:

(1)防止路由表毁坏导致数据报在两个或多个路由器间逗留很长时间,也没能交付到主机。

(2)设置该字段为1可把该分组闲着在局域网范围。

协议:定义了使用此IP层服务的高层协议。

源地址、目的地址:两个字段始终保持不变。

三 分片

3.1 最大传输单元MTU

当数据报被封装成帧时,数据报的总长度必须小于数据链路层数据字段最大长度(以太网1500B)。而IP数据报的最大长度为65535B,如果IP数据报长度大于MTU,则需要分割数据报,这就是分片。

数据报可以被源主机或途中的任何路由器分片,但数据报的重装却只能在目的主机上进行,理由如下:

(1)一个数据报的多个数据报片会走不同的路径。

(2)同一数据报的多个数据报片总会到达目的主机。

(3)传输期间重装会严重影响效率。

3.2 与分片相关的字段

对数据报进行分片的主机或路由器必须改变三个字段的值:标志、分片偏移、总长度。其余字段必须被复制,不管是否进行分片,校验和总是要重新计算

与一个数据报的分片与重装有关的字段是:标识、标志和分片偏移

标识:标识+源IP地址唯一确定这个数据报。数据报分片时,标识字段的值要复制到所有分片中,即所有分片都具有相同的标识号。终点会将具有相同标识的分片组装成一个数据报。

标志:3位,第一位保留;第二位为“不分片”位,为1不可分片;第三位为“还有分片”位,为1标识其后还有分片。

分片偏移:分片在整个数据报中的相对位置(永远是相对于原始数据报的)。以8B位单位。——第一个分片的字节数量能被8除

3.3 重装策略

(1)第一个分片的分片偏移字段为0。

(2)第一个分片的长度除以8得到第二个分片偏移值。

(3)第一个和第二个分片总长度除以8,得到第三个分片偏移值。

(4)继续以上过程,直到最后一个分片的“还有分片”位为0。

四 选项

IP数据报首部由两部分组成:固定部分(20B)和可变部分(选项,最长40B)。


8位的长度字段定义了选项的总长度,包括类型字段和长度字段本身。

编号字段:

无操作:用作选项和选项间的填充,使下一个选项16或32位对齐。

选项结束:选项字段结束时的填充,后面跟着数据部分。

记录路由:记录处理数据报的因特网路由。

严格路由:预先指定数据报传送时的路由。

不严格路由:所列路由器必须通过,但也可以通过其他路由器。

时间戳:记录路由器处理数据报的时间。

备注:traceroute跟踪分组的路由,-g选项实现不严格路由,-G实现严格路由

五 校验和

发送端计算校验和,接收端进行相同的计算,相符合则接受分组,否则丢弃分组。

5.1 发送端计算校验和

(1)把分组划分k段,每段n位(一般为16)。

(2)反码算术运算把所有段相加。

(3)最终结果取反码。

5.2 接收端计算校验和

(1)把分组划分k段。

(2)把所有段相加。

(3)将和取反码,结果为0则接收分组。

5.3 IP分组中的校验和

(1)把校验和字段置为0。

(2)把首部划分为16位的段。

(3)各段相加结果取反,并插入校验和字段。

备注:IP分组校验和仅覆盖首部,而不管数据,原因?

(1)将数据封装在IP数据报中的所有高层协议,都有一个涉及整个分组的校验和字段。

(2)没经过一个路由器,IP数据报的首部就要有所变化,但数据部分保持不变。校验变化部分即可。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值