SR协议退股,序号4,窗口长度3。A推出分组0,1,2,B收到了这3个分组并回发ACK 0,1,2。,3个ACK报文都丢失。

不知道从哪天开始一禅也陷入叻编程这条道路.....

小白:你知道吗?数据在传输的时候是分割成一小块一小块传输的我们把这一小块的数据称之为一个分组。我们在传输這块分组的时候主要面临两个问题。

1、这个分组在传输的过程中由于在信道传输过程中,收到干扰导致这个分组到达目的地之后出現了差错,例如分组里面的二进制位1变成了00变成了1。

2、分组还没传输到目的地就丢失了,我们也把这种情况称之为丢包

接下来我们先来谈谈第一种情况吧,即分组传到目的地之后出现了差错

这里我们先假设计算机A给计算机B发送分组数据

一禅:如果没有差错的话,计算机B就给计算机A发送一个ACK分组告诉对方,数据正确无误如果出现差错的话,就给对方发送一个NAK分组告诉对方,分组数据出现了差错

当计算机A收到接受方的反馈之后,如果收到的是ACK分组那么就继续发送下一个分组数据。如果收到的是NAK分组那么就重新传输这个分组。

小白:这时就会出现了混乱就相当于两个人A,B在对话。

A : 传输给你一个分组

B :你发的是啥可以重发一次吗?

A :你发的又是啥可以重发一次嗎?

B :你发的又是啥可以重发一次吗

小白:法子倒是不错,不过如果分组出现大量差错会让校验码变的很难设计的,而且校验码属于与正攵内容无关的数据,占了太多比特位的话会降低传输效率。还有其他法子吗

小白:我们可以给每个分组添加一个序号啊,这样就可以知道是重传的分组还是新的分组了

如果B收到的分组没出差错,这时又收到一个序号相同的分组这时B就知道这个分组是属于重传的分组叻,这时B就把这个重传的分组丢弃

情况二:分组丢失时的问题处理

一禅:哈哈,我知道怎么解决可以采取和分组差错类似的方法,如果A迟迟没有收到B的反馈A就可以认为这个分组丢失了,重新发送

所以我们每次发送分组的时候,需要给该分组设置一个定时器

小白:腦子转的挺快啊。不过你知道吗我们上面谈的那些,都是A发送一个分组收到B的反馈之后,再发送下一个分组你不觉得这种方法很浪費信道的资源吗?

这里先说明一下如果同时发送多个分组时,最需要处理的问题就是接受方收到分组时并非按照顺序收到分组的,有鈳能序号小的分组先达到这时就会出现了乱序。

在回退N步法中允许发送多个分组而不需要等待确认但它也受限于在流水线中未确认的汾组数不能超过某个最大允许数N。如下图我们将基序号定义为最早的未确认分组的序号,将下一个序号(nextseqnum)定义为最小的未使用序号(即下一個待发送分组)

此时我们可以将序号分成4段。在[0, base-1]段内的序号对应已发送并且已经确认的分组序号[base,nextseqnum]段内对应已经发送但未确认的分组序号,[nextseqnum, base+N-1]段内表示即将要被发送的分组序号而那些大于base+N的序号目前还不能使用,直到当前流水线中未被确认的分组得到确认窗口整体向右移動之后,才能够被使用

所以,我们常把N称之为窗口长度由于窗口在序号范围内移动,也被GBN协议退股称之为滑动窗口协议退股

对于GBN协議退股,计算机A(发送方)需要响应以下两个事件:

1、收到一个ACK:在GBN协议退股中对序号为n的分组的确认采取累计确认的方式。也就是说当A收到序号为n的分组时,表明分组n以及n之前的分组已经被B正确接受了

2、超时事件: 当久久没有收到ACK时,A就认为它发送的分组已经丢失了這时A会重传所有已发送但还未被确认的分组。这个时候需要注意的是并不是为每个分组设置一个定时器,而是在序号[base,nextseqnum-1]中设置一个定时器,当base发送的那一刻就开始计时,当收到一个ACK时则刷新重新开始计时。

计算机B(接收方)则需要处理一下事件:

如果一个序号为n的分组被囸确收到并且按序(所谓按序就是指n-1的分组也已经收到了),则B为分组n发送一个ACK否则,丢弃该分组并且为最近按序接收的分组重新发送ACK。

接收方的这种处理方式意味着如果n被正确交付,则意味着比n小的所有分组也被正确交付了

小白:你这个想法其实也是挺不错的,不過如果分组n-1丢失了那么按照GBN的重传规则,这时n-1和n都会被重传这时之前缓存的n就没啥用了。而且我们如果把n丢弃了,那么我们就不需偠缓存任何失序的分组了这样可以让我们的设计更加简单哦。

回退N步协议退股的缺点也是很明显的单个分组的差错能够引起GBN重传大量嘚分组,而且许多分组根本就没有必要重传例如我们发送的序号为0-100,万一序号为1的分组出现了某些差错这会导致1-100的分组会被重传,想想这是多么恐怖的事情啊

因此,出现了选择重传这种协议退股所谓“选择”,也就是有选择着去重传

不过选择重传和回退N步是很相姒的,只是在选择重传中接收方收到失序的分组时,会把它缓存起来直到拼凑到分组按序,才把分组传输给上一层而发送方会为每個分组设置一个定时器,这样只需要重传那些没有被接收方正确接收的分组就可以了。

假设窗口长度N=6这时A向B发送分组1-5。

当A收到序号为3嘚ACK则状态如下:

注意,这个时候虽然序号3被确认接收了但窗口并不能向右移动一格。

接下来受到序号为1的ACK则:

这个时候窗口才可以姠右移动一格。注意黄色的那些序号是可以继续发送分组的,只是我没有继续填充发送而已

接着收到序号为2的分组。

这个时候窗口向祐移动了两个格

接着继续这样接收下去,如果还有分组没发送的就从nextseqnum开始填充发送...

如果某个分组超时了,就重新传输这个分组

对于接收方B的窗口来说也差不多也一样,在此不展开接收方对于失序的分组缓存起来,直到所有丢失的分组全部被收到为止再把这批分组按序交付给上一层。

我在书上截了张完整的例子图:

这样两个完全陌生的计算机就可以就行可靠数据传输了。这也是可靠数据传输的原悝

总感觉这篇文章讲的好一般,感觉有点小啰嗦或者.....也不知道怎么说本来我是想写成那种一点一点引导出知识点的,不过在回退N步選择重传中有点不知道怎么引导。不过我会争取在后面的文章讲的更加通俗易懂

说实话,这篇文章其实算是比较简单的几个知识点鈈过我还是写了好久,加上自己画图之列的就更加了哈哈。主要是一直不知道怎么下手不过就算花时间,我也会尽最大努力去写再佽感谢读者们的支持,在之后的文章里应该会数据结构与算法和计算机网络穿插讲。

希望通过这种漫文的方式能够让你更加轻松的读慬某些知识。

更多原创漫画文章可以关注我的公众号:苦逼的码农(ID:di201805),文章会首发于我的公众号

本公众号(苦逼的码农)专注于写【Java】、【计算机网络】、【数据结构与算法】力求通俗易懂,期待你加入交流

3比特序号的 sr协议退股,若接收窗口為 4, 则发送窗口的最大值为多少 篇一GBN 和 SR的优劣比较 GBN 和 SR的优劣比较 摘要GBN 和 SR协议退股是 TCP协议退股中重要的两种解决流 水线的差错恢复的方法他們各自有各自的优缺点,在不 同的数据传输条件下人们将会有不同的选择。让大家了 解两种方法的优劣本文做了简单的叙述 关键字GBNGo-Back-N SRselective repeat GBN 概念 GBN 是 Go-Back-N协议退股的缩写。如果发送发发送了前 五个分组而中间的第三个分组丢失了。这是接收方志勇 对前两个分组发出确认发送方无法知道后面三个分组的 下路,而只好吧后面的三个分组都再重新再重传一次这 个就叫做 Go-back-n,表示需要在退回来重传已经发送过的 n个分组。可见當通信线路质量不好时连续 ARQ协议退股会带 来负面的影响。当它允许发方传输多个分组(当然得有多 个分组的时候)而不用等待确认但咜也受限于再流水线 中未确定的分组数不能超过最大允许的数值 N。这个 N通常 被称为窗口长度(window size) 因而根据其工作的特点, GBN协议退股也被形象地称为滑动窗口协议退股(sliding-window protocol) GBN 特点 因为网络中流量控制的原因,它需要对这些被发送的、 未被确认的分组的数目 N否则就会造成网絡的拥塞。在 GBN协议退股中发送方可以再窗口大小 N的限制内发送足够多 的分组,接收方接收到分组后就发送 ACK给发送方(例如 接受到分组 0發送 ACK 0) ,当如果发送方接收到连续的 ACK(例如 ACK 0和 ACK 1)时该窗口就向前滑动,发送 方方便传输新的分组在接收方,分组丢失了话就必须 从那个分组起再重新传那个丢失的分组号码之后的所有的 分组(例如分组 2丢失,因此分组 3、4、5 被认为是失序 的分组被丢弃必须再重新传) 。但是这样的话无需接收 方准备一定空间的缓存来储存分组。 SR 的概念 SR 是 selective repeat的缩写因为 GBN协议退股发送 方可能用多个分组“填充流水线” ,洇此便面了停等协议退股中 所提到信道利用问题前面提到的,GBN 本身也存在性能问 题尤其是当窗口长度和贷款时延积都很大时,在流水線 中会有很多分组一个分组的差错就可能引起 GBN重传大 量分组,其中许多分组也许根本没有必要重传SR 协议退股通 过发送方仅重传那些怀疑在接收方出错(即丢失或者受损) 的分组而避免了不必要的重传。这种个别的、按需的重传 要求接收方诸葛地确认正确接收的分组再佽用窗口长度 N来限制流水线中未确认的分组数然而与 GBN不同的是,发 送发已经收到了对窗口中某些分钟的 ACK SR 的特点 因为 SR仅仅重传那些被怀疑為接收时出错的分组, 因而相对来讲可以节省一些时间,减少了不必要的重传 但是值得注意的是,在实现这样的功能的时候接收方需 要一定的缓存来储存某些分组,例如分组 0和分组 1接收 方接到了 并且交付,发送 ACK0和 ACK1给发送方但是分组 2 丢失,没有接到此时接收方只能继续接受分组 3、4、5, 分组 3、4、5 接受了并且发送了 ACK3、4、5 给发送方, 而分组 3、4、5 并没有直接交付而是需要等到分组 2接 受到,然后一起分組 2、3、4、5 交付ACK2 发送。这样的 机制相对来讲重传的包更少但是需要缓存的空间也花费 了一定的时间。 GBN 和 SR的弱点 经过仔细分析GBN 和 SR这两者機制必然也会有他们 的弱点,在 GBN协议退股中的一个最大的问题就是当窗口大 小 N非常大时(例如为 1000的话) ,而最开始的分组 0错 误了就需偠重传之后的 999个分组,因此造成了时间上 的损失延时增加。并且对于 SR协议退股而言发送方和接收 方并不是总能看到相同的结果,这也僦说明两者的窗口不 总是一致的而 SR协议退股会面临到的一个最重要的问题就是 面临有限序号范围的现实时,发送方和接收方的窗口不同 步会产生严重后果这样的后果会导致接收方无法判断出 该分组是一次重传还是下一个新的分组的,因而就 SR的窗 口不能够很大 GBN 和 SR的优点 泹是换句话说,虽然上述说了 GBN和 SR的弱点但 是他们两个存在的话,必然有他们两个协议退股的优点在 GBN 协议退股中,虽然得丢弃所有的时序分组这看起来是一个弱 点,其实也是 GBN的一个优点这样做的目的是因为,接 收方必须按照正确的顺序将数据交付给上层如果有分组 錯了,则可能要接收方缓存分组最后按照正确的分组交 付给上层。而 GBN这样的做法的话一个很明显的优点就是 接受缓存简单即接收方不需要缓存任何的失序分组。我 个人认为就是针对了 GBN的弱点从而产生了 SR协议退股。SR 协议退股的优点就在于解决了 GBN中不必要的重传问题在某 种意义上说提高了信道的利用率。某个分组错误了就只 需要重传该分组,等接收方的缓存收集到了正确的顺序之 后再交付给上层,實现这点功能的要求就是要求接收方 需要有一定的缓存能力 GBN 和 SR适用的情况 当某个分组序列错误较少,窗口较大的时候应该是 更适合用 SR協议退股进行传输,因为这样可以减少很多不必要 的重传充分利用了信道;当某个分组序列错误较多,并 且窗口较小的时候应该更适匼用 GBN协议退股,因为这样的 话接收方不需要缓存分组节省了空间,并且该分组序列 错误较多相对 SR来讲,也不会使得 GBN的效率过于低下 洳果其他情况的时候的话主要还是得根据实践和理论上的 经验,综合得出结论确定该用哪种协议退股。 参考文献 计算机网络 自顶向下与 Internet特 色(第三版) Jmaes Keith 著 机械工业出版社 P143151 后退 N帧 ARQ协议退股 Go-Back-N ARQ 中文翻译为后退 N式 ARQ、回退 N式 ARQ该协议退股对 传统的自动重传请求(ARQ,Automatic Repeat reQues)进 行了改进,从而實现了在接收到 ACK之前能够连续发送多 个数据包 在 Go-Back-N ARQ中,发送端不需要在接收到上一个 数据包的 ACK后才发送下一个数据包而是可以连续发送 數据包。在发送端发送数据包的过程中如果接收到对应 已发送的某个数据包的 NACK,则发送端将 NACK对应的某个 数据包进行重发然后再将该数據包之后的数据包依次进 行重发。 后退 N帧 ARQ就是从出错处重发已发出过的 N个帧 篇二计算机网络第三章习题 练习题 1.下面有关面向连接和无連接的数据传输速度的说 法中正确的是( ) 。 A.面向连接的网络数据传输快 B.无连接的网络数 据传输快 C.二者速度一样快 D.不可判定 2.下列关于 UDP协议退股的说法中正确的是( ) A.可以提供可靠的数据流传输服务 B.可以提供面 向连接的数据流传输服务 C.可以提供无连接的数據报传输服务 D.可以提供 数据报传输的时延保证 3.一个 UDP用户数据报首部的十六进制表示为 07- 33-00-50-00-1C-E3-18。试求源端口、目的端口、用户数 据报的总长度鉯及数据部分的长度 4.在停止-等待协议退股中,当分组出现丢失时发送端 会永远等待下去,解决这种死锁现象的办法是采用( ) A.差错校验 B.超时机制 C.分组序号 D.NAK 机制 5.在停止-等待协议退股中,为了解决重复分组的问题 需要采用( ) 。 A.ACK 机制 B.超时机制 C.分组序號 D.NAK 机制 6.一个信道的比特率是 4Kbps传播时延是 20毫秒, 那么分组的大小在什么范围内时停止-等待协议退股才有至少 50的效率。 7.在滑动窗口機制中发送窗口的大小表示( ) 。 A.发送方可以发送的数据分组的总数 B.发送方在本次连接中可以发送的数据分组的总数 C.发送方可以發送的未被确认的数据分组的个数 D.接收方可以接收的数据分组的个数 8.下述关于滑动窗口的叙述中正确的是( ) 。 A.发送窗口可以对發送方进行流量控制 B.当接收到的数据分组的序号落在接收窗口之外时 接收方会将其丢弃 C.只有接收窗口向前滑动时,发送窗口才有可能向 前滑动 D.以上叙述都正确 9.采用回退 N协议退股接收窗口内的序号为 4时接收 到正确的 5号分组应该( ) 。 A.将窗口滑动到 5号 B.丢弃 5号分組 C.将 5号分组缓存下来 D.将 5号分组交给上层处 理 10.在选择重传协议退股(SR)中当分组的序号字段为 3比特,且接收窗口与发送窗口尺寸相哃时发送窗口的最 大尺寸为( ) 。 A.2 B.4 C.6 D.8 11.在一个 1Mbps的卫星信道(端到端时延为 270毫 秒)上发送 1000比特长的分组确认总是捎带在数据分组 Φ,分组头很短使用 3位的序列号,对于回退 N协议退股和 选择重传协议退股而言可以取得的最大信道利用率分别是多 少 12.TCP 首部 16比特的接收窗口字段主要用于实现( ) 。 A.可靠数据传输 B.拥塞控制 C.累积确认 D.流量控制 13.TCP 使用三次握手协议退股来建立连接握手的第一 个报攵段中被置为 1的标志位是( ) 。 A.SYN B.ACK C.FIN D.URG 14.关闭 TCP连接需要使用的标志位是( ) A.SYN B.PSH C.FIN D.URG 15.TCP 的确认号表示( ) 。 A.上一个已接收的报文段嘚末字节序号 B.下一个希望接收的报文段的首字节序号 C.下一个将要发送的报文段的末字节序号 D.下一个将要发送的报文段的首字节序号 16.假定最大报文段长度是 1KBTCP 拥塞窗口被置 成 16KB,如果发生了超时事件但接着的 4个轮次的传输 都是成功的,那么在 4个轮次成功的传输之后该窗口将是 ( ) A.1KB B.8KB C.9KB D.16KB 17.假设主机 A通过 TCP连接向主机 B连续发送两个 TCP报文段。第一个报文段的序号为 360第二个报文段的 序号为 476,长度为 24字节 (1)第一个报文段中有多少 数据 (2)假设第一个报文段丢失而第二个报文段到达主 机 B,那么在主机 B发往主机 A的确认报文中确认号是多 尐 18.在使用 TCP传送数据时,如果有一个确认报文段 丢失了是否就一定会引起与该报文段对应的数据的重传 请说明理由。 19.假设客户机 A向服務器 S发起一个 Telnet会话 (Telnet 使用 TCP) 与此同时,客户机 B也向服务器 S发 起一个 Telnet会话请给出下面报文段的源端口号和目的 端口号。 (假定 A采用的端ロ号是 467B 采用的端口号是 513) 。 (1)从 A发往 S的报文段 (2)从 B发往 S的报文段。 (3)从 S发往 A的报文段 (4)从 S发往 B的报文段。 (5)如果 A和 B是不哃的主机那么从 A发往 S报 文段的源端口号是否可能与 B发往 S的报文段的源端口号 相同 (6)如果它们是同一台主机情况又将如何 20.图 4-5-4给出了 TCP拥塞窗口随传输周期的变化 情况,请回答下列问题 (1)写出运行 TCP慢启动时的时间间隔 (2)写出运行 TCP避免拥塞时的时间间隔。 (3)在第 16个传輸周期后检测出报文段丢失是根 据三个重复确认还是根据超时 (4)在第 22个传输周期后,检测出报文段丢失是根 据三个重复确认还是根据超时 (5)在第 1个传输周期里阈值的初始值设置为多 少 (6)在第 18个传输周期里,阈值的值设置为多少 (7)在第 24个传输周期里阈值的值设置为多少 (8)第 70个报文段在哪一个传输周期内发送 (9)假定在第 26个发送周期后,收到 3个冗余 ACK 检测到有分组丢失那么拥塞窗口长度和阈值嘚值应为多 少 21.假定 TCP在开始建立连接时,发送方设定超时间 隔 TimeoutInterval为 6秒 (1)当发送方收到对方的连接确认报文段时,测量 出 RTT样本 SampleRTT为秒试计算当前的超时间隔 TimeoutInterval。 (2)当发送方发送数据报文段并收到确认时测量 出 RTT样本 SampleRTT为秒,试计算当前的超时间隔 TimeoutInterval 篇三网络原理第三部分作业 苐三部分作业 一、填空题 1、分组交换网的组网方式一般有( )和( )两 种。 2、HDLC 的控制字段有 8比特如果第 1比特为“0” , 表示该帧为() ;洳果第 1、2 比特为“10” 表示该帧为( ) ;如果第 1、2 比特为“11” ,表示该帧为( ) 3、计算机网络一般分为( ) 、 ( ) 、 广域网和互联 网。 4、OSI 参考模型将计算机网络分为 7层从高到底依 次是() 、 ( ) 、 ( ) 、 ( ) 、 ( ) 、 ( 、 ( ) 。 二、单项选择题 1、从一个工作站发出一个數据包的第一个 BIT开始 到该 BIT到达接收方为止的时延称为_________它取决于 _________。 () A、传输时延网卡的传输速率 B、传播时延,信道 的传播速率 C、传输時延信道的传播速率 D、传播时延,网卡 的传输速率 2、数据链路层中的数据块常被称为 () A、信息 B、分组 C、帧 D、比特流 3、在后退 N帧协议退股中,如果序号字段的长度是 K比 特则帧的序号空间是() 。 A、[02K-1]B、[0,2K-1] C、任意大小 D、1 4、PPP 协议退股是( ) A、面向字符的 B、面向位的 C、面姠帧的 D、面向 报文的 5、在 ISO层次体系中,实现同步进程间对话的是( ) A、运输层 B、应用层 C、表示层 D、会话层 6、下列哪一个不是 TCP/IP参考模型具囿的层次( ) 。 A、表示层 B、传输层 C、互联网层 D、应用层 三、应用题 1、设收到的信息码字为 110111检查和 CRC为 1001, 生成多项式为 GxX4+X3+1请问收到的信息 有错吗,为什么(要求写出关键步骤和依据) 2、字符 A的 ASCII编码为“” 请根据数 字-数字编码方法中的曼彻斯特编码和差分曼彻斯特编码规 則,分别画出其编码形式 3、对于使用 3比特序号的停等协议退股、后退 N帧协议退股 以及选择重传协议退股,发送窗口和接收窗口的最大尺団分别 是多少 4、设利用 IEEE 协议退股局域网传送 ASCII码信息 “Goodmorning”若封装成 MAC 帧格式,请问(1)帧 中数据字段长度为多少字节(2)需要填充多少个字節 5、对于使用 4比特序号的停等协议退股、后退 N帧协议退股 以及选择重传协议退股发送窗口和接收窗口的最大尺寸分别 是多少 6、设生成多項式为 GxX4+X3+1,收到的信息 码字为 100011检查和 CRC 为 1001,请问收到的信息有错 吗为什么(要求写出关键步骤和依据) 7、要在带宽为 8KHz的信道上用 4秒钟發送完 40K字 节的数据块,按照香农公式信道的信噪比应为多少分贝 (取整数值)(请给出公式及计算步骤) 8、简述 CSMA/CD协议退股的工作原理。 9、设利用 IEEE 协议退股局域网传送 ASCII码信息 “Goodmorning”若封装成 MAC 帧格式,请问(1)帧 中数据字段长度为多少字节(2)需要填充多少个字节 10、在标准以呔网中为什么说如果有冲突则一定 发生在冲突窗口内,或者说一个帧如果在冲突窗口内没发 生冲突则该包就不会再发生冲突

窗口为 3比特 发送窗口的最大 序列号 比特 发送 4比特 接收窗口 序列为 发送窗口 最大序号的 发送窗口的最大 滑动窗口协议退股 发送窗口为 比特序列

  悦读文庫所有资源均是用户自行上传分享,仅供网友学习交流未经上传用户书面授权,请勿作他用

连续ARQ协议退股(GBN):发送方可以連续发送若干个数据帧如果收到接收方的确认帧则可以继续发送。若某个帧出错接收方只是简单地丢弃该帧及其后所有的后续帧,发送方超时后需重传该数据帧及其后续的所有数据帧这里要注意,连续ARQ协议退股中接收方一般采用累积确认的方式,即接收方对按序到達的最后一个分组发送确认;

选择ARQ协议退股(SR):选择重传协议退股中接收方逐个地确认正确接收的分组,不管接收到的分组是否有 序只要正确接收就发送选择ACK分组进行确认。因此选择重传协议退股中的ACK.分组不再具有累积确认的作用这点要特别注意与GBN协议退股的区別。

综上已收到 1 号帧的确认,而 0、 2 号帧依次超时那么重传的就是0,2两个数据帧;

可能你就要问了,那3号数据帧呢 

我是这样理解的,3号數据帧也要重传但是这个题目说的是“0,2号帧一次超时”,压根没有提3号帧的事情 

我要回帖

更多关于 自愿退股协议 的文章

 

随机推荐