您需要 才可以下载或查看没有帳号? 9 c4 V5 }/ T3 m; x5 F0 ?小白:你知道吗数据在传输的时候是分割成一小块一小块传输的,我们把这一小块的数据称之为一个分组我们在传输这块分组嘚时候,主要面临两个问题; C) d) p9 _: ^; H1、这个分组在传输的过程中,由于在信道传输过程中收到干扰,导致这个分组到达目的地之后出现了差错例如分组里面的二进制位1变成了0,0变成了13 z& q, t" i2 B2、分组还没传输到目的地,就丢失了我们也把这种情况称之为丢包。4 j( c9 j4 g0 ?2 \+ V) Q接下来我们先来谈谈苐一种情况吧即分组传到目的地之后出现了差错。) w9 e$ L- Y6 m: ~" X1 m. x 这里我们先假设计算机A给计算机B发送分组数据 @当计算机A收到接受方的反馈之后如果收到的是ACK分组,那么就继续发送下一个分组数据如果收到的是NAK分组,那么就重新传输这个分组9 R5 x! @( @2 y o: |: M' x / a8 u- J1 j ]2 V. t小白:法子倒是不错,不过如果分组出現大量差错会让校验码变的很难设计的,而且校验码属于与正文内容无关的数据,占了太多比特位的话会降低传输效率。还有其他法子嗎6 \2 }; W如果B收到的分组没出差错,这时又收到一个序号相同的分组这时B就知道这个分组是属于重传的分组了,这时B就把这个重传的分组丢棄* c: I5 I: }0 Z1 D: h! V1 H5 B% g 情况二:分组丢失时的问题处理 - f" y/ j: K& ~; ?" N一禅:哈哈,我知道怎么解决可以采取和分组差错类似的方法,如果A迟迟没有收到B的反馈A就可以認为这个分组丢失了,重新发送4 `. H3 M- v8 t% F: i, U, k所以我们每次发送分组的时候,需要给该分组设置一个定时器0 o# ^4 T+ V* `: a' f 小白:脑子转的挺快啊。不过你知道吗我们上面谈的那些,都是A发送一个分组收到B的反馈之后,再发送下一个分组你不觉得这种方法很浪费信道的资源吗?) B2 @5 c. M4 这里先说明一丅如果同时发送多个分组时,最需要处理的问题就是接受方收到分组时并非按照顺序收到分组的,有可能序号小的分组先达到这时僦会出现了乱序。# P. h9 T4 N8 [* u _在回退N步法中允许发送多个分组而不需要等待确认但它也受限于在流水线中未确认的分组数不能超过某个最大允许数N。如下图我们将基序号定义为最早的未确认分组的序号,将下一个序号(nextseqnum)定义为最小的未使用序号(即下一个待发送分组)! |
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。