Ipv4网络
IPv4数据报格式
首部各字段描述
- 版本号:用来确定IP协议的版本(比如IPv4还是IPv6),路由器根据版本号来判断怎样解析首部其他的字段信息,不同协议版本,数据报格式不同。——4比特
- 首部字段:IPv4协议包含一些可选字段,即首部长度不固定,该字段用来确定首部长度,大多数版本的IP协议不包含可选字段,因此通常IP首部一般长20个字节。——4比特
- 服务类型(TOS):有些数据报要求低时延\高吞吐量\可靠性传输。——8比特
- 数据报长度:IP数据报总长度,以字节计算,包括IP首部和运输层报文段的长度,因为以太网帧最大传输单元不超过1500字节,所以一般数据报长度一般不超过1500字节。——16比特
- 标识,标志,片偏移:与IP分片相关。——16比特——3比特——13比特
- 寿命:每次经过一个路由器该值减一,当该值为0时必须丢弃该数据报。——8比特
- 上层协议:IP数据报的数据部分应该交给哪个特定的运输层协议,跟运输层要存储哪个端口号来接收信号,即沟通运输层跟应用层。链路层帧也有一个字段来连接链路层跟网络层。——8比特
- 首部检验和:将首部中的每两个字节当作一个数,按反码求和,用来检验首部信息是否发生错误,运输层的检验和是对整个报文段包括数据部分进行检验。——16比特
- 源IP地址。——32比特
- 目的地址。——32比特
- 可有选项(IPv6已经不包含该选项)。
- 数据部分。——有效载荷(要传输的数据)。
若IP数据报不包含可有选项则首部一共有20个字节
IPv4数据报的分片
MTU:链路层帧的最大传输单元,限制着IP数据报的长度。
现在考虑一种情况,一个数据长度为4000字节的数据报进行传播,但是当他被一个路由器转发时,出链路帧的MTU为1500字节,该数据报必须被分割为小的数据报,即数据分片。
然后我们要考虑怎样分片以后的数据报我们怎么再把它拼接起来,什么时候拼接。
什么时候拼接?
假如我们在到达目的地前就拼接,那么在剩下的链路中仍然有被分片的可能,而且这样增加多次拆分和拼接的操作无疑增加了路由器的负担,所以应该在目的地进行拼接。
怎么拼接?
在IP首部的字段中有标志,标识,偏移。
目的端系统根据16比特的标识来确定属于哪个数据报,标识位在源端系统发送分组时就进行设置。
由于IP是不可靠的,所以怎末判断分片是否丢失已成功到达,就要根据,标志位信息,最后一个分片的标志位信息一般设置为0,而其他标志位信息设置为1。
偏移字段用来指示,该分片在原数据报的位置,使其能够正确拼接。
IPv4网络简介
原文:https://www.cnblogs.com/FCY-LearningNotes/p/14008765.html