网络层(二)IP数据报和IP分片

  1. ICMP协议
    网络层设备在转发分组过程中,可能会有一些错误,有时候需要将这些信息反馈给其他设备,发送这些信息遵循ICMP协议(互联网控制协议),ICMP协议在一定程度上可以看作是IP协议的伴随协议。

2.IP数据报的格式

IP数据报的格式
  • 版本号:4 bit,如4表示ipv4,6表示ipv6
  • 首部长度:4 bit,单位是4B(一行),也就是首部最多15行,60B
  • 服务类型:指示期望获得哪种类型的服务,比如期望该IP数据报优先转发、延后转发等。1998年,这个字段改名叫“区分服务”,只有当网络提供区分服务时才有用,目前ipv4下的大多数网络并不提供此服务。
  • 总长度:整个IP数据报的长度,最大值是65535,单位是B。除去典型的头部长度20B,因此一个IP数据报的数据部分最大是65515B
  • 标识、标志位、片偏移是用来分片的,后面介绍
  • 生存时间:IP分组在网络中可以通过的路由器数(跳步数)。一个IP分组在创建的时候就设置了一个TTL。路由器在转发IP分组时,需要修改该值,将它-1。当路由器将该值-1后等于0,路由器就把这个分组扔掉。同时向源主机发送一个ICMP报文。
  • 协议:IP分组封装的是哪个协议的数据,如TCP/UDP/SMP
  • 首部校验和:只对首部进行校验,和UDP的校验和是同一种方法生成的。检验时这个校验和参与运算,重新生成校验和,如果得到的值全是1,表示未发生错误。因为TTL每次转发都会被修改,所以校验和每次转发也应该修改。

3.IP数据包分片
链路层封装的数据帧大小是有上限的,允许的最大传输单元称MTU。不同链路的MTU不同。当IP数据包大小超限时,就需要一分为多,这就是分片。
从链路1到链路2,假如MTU降低的话,很可能就要分片,分片后中间结点就不再组装,以免后面又要再次分。最终由目的主机完成组装。

  • 标识:16 bit,标识一个分组。分片继承原分组的标识号
  • 标志位:3 bit
  • 片偏移:13 bit,一个ip分组分片,来描述相对原分组的偏移量。也就是当前分片的第一个首字节是在原分组中的位置,但是因为只有13 bit,因此单位是8字节。
标志位

分片过程:

分片过程
分片过程
分片过程
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容