简述 IP 数据包分包组包的过程

一,为什么要分包

当你传输数据大于1500的时候,就会触发分包,也就是为了让你的数据包能接受你发过来的数据,不然太大,也不分包,就一下全丢了,不要超过一千五的数据了,所以有分包也就是为了让你数据能传输的更大一点,而且也可以根据不同的路劲来传输数据,使效率提高,也更好的提高可靠性,不会丢包。

二,分包组包过程中和哪些 IP 报头字段有关联

分包和组包主要跟五个报头字段有关联:

1.标识字段(Identification)

用于唯一一个标识一个ip数据报,在拆包组包过程有很重要的作用,每个包可以根据不同的标识符来组装成原始的数据包

2.片偏移字段(Fragment Offset

数据组包过程中根据这个片段在原始数据报的那个位置。比如现在片偏移是0,那就证明这个片段一个在第一个位置

3.标志位字段(Flags

这个也就是你现在传输过来后,后面还有片段在传输,比如现在是1,那就还需要等待其他的片段传输过来,如果是0,那就证明这是最后一个片段了。

4.协议字段(Protocol

这个代表着数据报携带的协议类型,比如6代表TCP协议这种

5.校验和字段(Header Checksum

这个很重要,在于校验数据过来是否被损坏,在传输过程中,每个路由器会重新计算校验和,以确保字段的完整性。

三,组包时如何保证数据的顺序和完整性?

1.先是利用片偏移字段来确保数据的顺序,因为上述已经说了,片偏移字段会说明传输过来的这个片段在第几个位置,跟着一安排就自动排好顺序了。

2.利用标识符字段来确保数据包全部到达,而不是缺胳膊少腿的。

3.排序和重组,收到所有的片段之后,根据上面的来排序,并重组成之前的原始数据包。

4.计算校验和,来确保片段在传输过程中没有丢失之类的操作,如果校验和不匹配,就不能使用。

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
主机发送IP数据包过程主要包括以下几个步骤: 1. 应用层发送数据:应用层产生需要发送的数据,并通过套接字接口将数据传递给传输层。 2. 传输层封装数据:传输层在将数据发送给网络层之前,需要将数据进行封装,添加传输层协议的首部,如TCP或UDP首部。 3. 网络层封装数据:网络层在将数据发送给数据链路层之前,需要将数据进行封装,添加网络层协议的首部,如IP首部。 4. 数据链路层封装数据数据链路层在将数据发送给物理层之前,需要将数据进行封装,添加数据链路层协议的首部和尾部,如以太网帧首部和尾部。 5. 物理层发送数据:物理层将封装后的数据通过物理介质进行传输,如通过网线或者无线信号发送数据。 6. 路由选择和转发:在数据包从源主机发送到目标主机的过程中,可能需要经过多个路由器进行转发,每个路由器根据路由表选择下一跳,并将数据包进行转发。 7. 接收端接收数据:当数据包到达目标主机时,从物理层开始,逐层解包,将数据传递给目标应用程序。 总的来说,主机发送IP数据包过程就是不断进行封装和转发的过程,每层协议都会对数据进行封装,并添加相应的协议首部,以便下一层协议进行处理和传输。在传输过程中,还需要进行路由选择和转发,以确保数据能够准确地到达目标主机。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值