ip报文发送时进行分片 在发送过程中丢失一个或是多个片时如何处理 以及如何分辨丢失与否?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ip报文发送时进行分片 在发送过程中丢失一个或是多个片时如何处理 以及如何分辨丢失与否?相关的知识,希望对你有一定的参考价值。

第一个问题,发送过程中丢失一个或是多个片时如何处理?答:当报文发送到目的地后,系统会有一系列的检测手段对收到的报文进行检测,要是有一个或者多个片丢失了,那么系统会会向报文的源目标地址发送一个请求,源目标地址收到请求了,会重新发送报文到目的地址。地二个问题,如何分辨丢失与否答:首先你要知道,要是报文在传输的过程中有片丢失了,那么片内所存储的内容就会改变。分辨是否丢失的方法有很多,最常用的就是使用检错码,他的原理是这样:在7单位的ASC2代码后增加一位,使码字中1的个数成奇数或者偶数,经过传输,如果其中一位出错,则接受端按照同样的规则就能发现错误,这方法只能对付少量的随机错误。还有其他地方法,比如:海明码,循环冗余效验码都是可以分辨丢失与否的检测方法。具体的你可以的去网站上查找下资料,或者是去阅读《网络工程师教程 第二版》这本书,上面有详细的介绍。 参考技术A 唉,楼上都没说到关键处.IP报文看以那种方式发送,是UDP还是TCPUDP是不对丢失的进行处理的TCP对丢失的进行处理,方法是,每发送一个报文会编一个码,其这就是1,2,3,4,5,6...,目的地,收到1,2,3,4,就重组一下,如果收到,1,3,4,5,6,就会向源IP,发出请求重发2这个报文.至于CRC这些方法,是对最终的数据进行检查,是否在传输中出现错误, 这个更多是用于防非法修改,就是黑客什么的. 参考技术B IPV6网络只在源和目的地分片和重组。如果丢失会重传。IpV4网络是在每个节点间分片和重组。IPV4的包头里有一个CRC效验就会检查报文是否完整。 参考技术C IP层无连接不可靠传输,没有超时和重传吧,检测到错误直接丢掉,由上一层 传输层负责超时传

数据在网络中的发送和接收过程--简略版(TCP/IP五层结构)

在应用层上设备A想给IP地址为P的设备B发送信息:(假定已知B的IP)

  数据信息从应用层而来,在传输层指定特定的端口号,再将这些数据放到TCP报文或者UDP报文内。

    若使用UDP,不论从应用层来的数据信息有多大,UDP照单全收,UDP是一次性发送一个完整的报文,同样在接收时也是直接接收整个报文;

    若使用TCP,不论从应用层来的数据块有多大,或者有多小,TCP总是把这些数据存着,根据通信对方给出的窗口值和当前网络的拥塞程度判断将合适的数据放到一个TCP报文段中,这些数据段都是有标记的,用于重组时可以顺序地拼接起来;

      在网络层,运输层的报文作为IP数据报的数据部分,并根据链路层所规定的最大传输单元(MTU)判断是否对运输层的数据进行截断处理。同时,将源端、目的端的IP地址填写到IP报文头部。并在这里执行ARP协议,是否目的地址就处于本网段内。如果目的端就在本网段内,直接根据获得的目的端的MAC地址,通过链路层将数据帧转发给目的端。如果目的端不在本网段内,则将该IP数据报发送给本网段的网关节点(路由器),网关节点(路由器)根据路由表信息,将IP数据包向其他网关节点(路由器)转发(这个过程同样需要执行一次ARP协议),最后IP数据包到达目的端所在的网段,再执行一次ARP协议,得到目的端的MAC地址,完成数据帧的转发。

        在数据链路层,IP数据报作为MAC帧的数据部分,根据ARP协议所得到的目的端的MAC地址,构成完整的MAC帧,并通过数据链路层将MAC帧发送给本网段的某一个设备(可能是目的端也可以能是中间路由器)。

          物理层传输比特流;

        在数据链路层,本网段的设备监听到MAC帧,并将MAC帧的目的地址与自身的MAC地址相匹配,若匹配成功则接收该MAC帧,并将数据部分提取出来;

      在网络层,解析IP数据报,将TCP或者UDP的报文提取出来;

    在传输层,将TCP报文中的数据提取出来(并校验数据等),拼装成完整的数据交给应用层。对于UDP报文,将其中的数据直接交付给应用层;

设备B在应用层或得到数据。 

        

以上是关于ip报文发送时进行分片 在发送过程中丢失一个或是多个片时如何处理 以及如何分辨丢失与否?的主要内容,如果未能解决你的问题,请参考以下文章

TCP 协议如何保证可靠传输

TCP是如何保证可靠传输的

IP编址

tcp可靠传输的机制有哪些(面试必看

IP 分片/MTU 与TCP分段/MSS

(chap4 IP协议)IP分割处理