精华内容
下载资源
问答
  • ARQ简介自动重传请求(Automatic Repeat-reQuest,ARQ)是OSI模型中...它包括停等ARQ协议和连续ARQ协议,错误侦测(Error Detection)等机制。传统自动重传请求分成为三种,即停等式(stop-and-wait)ARQ,回退n帧(go-ba...

    ARQ简介

    自动重传请求(Automatic Repeat-reQuest,ARQ)是OSI模型中数据链路层和传输层的错误纠正协议之一。它通过使用确认和超时这两个机制,在不可靠的服务的基础上实现可靠的信息传输。它包括停等ARQ协议和连续ARQ协议,错误侦测(Error Detection)等机制。传统自动重传请求分成为三种,即停等式(stop-and-wait)ARQ,回退n帧(go-back-n)ARQ,以及选择性重传(selective repeat)ARQ。后两种协议是滑动窗口技术与请求重发技术的结合,由于窗口尺寸开到足够大时,帧在线路上可以连续地流动,因此又称其为连续ARQ协议。三者的区别在于对于出错的数据报文的处理机制不同。三种ARQ协议中,复杂性递增,效率也递增。

    停等ARQ协议

    停等协议的工作原理如下:

    1、发送方对接收方发送数据包,然后等待接收方回复ACK并且开始计时。

    2、在等待过程中,发送方停止发送新的数据包。

    3、当数据包没有成功被接收方接收,接收方不会发送ACK.这样发送方在等待一定时间后,重新发送数据包。

    4、反复以上步骤直到收到从接收方发送的ACK.

    这个协议的缺点是较长的等待时间导致低的数据传输速度。在低速传输时,对连接频道的利用率比较好,但是在高速传输时,频道的利用率会显著下降

    f8537776835a2776648a381f08b4760f.png

    stop-and-wait protocol VS pipelined protocol

    连续ARQ协议

    为了克服停等协议长时间等待ACK的缺陷,连续ARQ协议会连续发送一组数据包,然后再等待这些数据包的ACK。

    40ae93b623861109784c9065e713a9ec.png

    什么是滑动窗口

    发送方和接收方都会维护一个数据帧的序列,这个序列被称作窗口。发送方的窗口大小由接收方确定,目的在于控制发送速度,以免接收方的缓存不够大,而导致溢出,同时控制流量也可以避免网络拥塞。协议中规定,对于窗口内未经确认的分组需要重传。

    40ae93b623861109784c9065e713a9ec.png

    回退N步(Go-Back-N,GBN)

    回退N步协议允许发送方在等待超时的间歇,可以继续发送分组。所有发送的分组,都带有序号。在GBN协议中,发送方需响应以下三种事件:

    1、 上层的调用。上层调用rdt_send()时,发送方首先要检查发送窗口是否已满。

    2、 接收ACK。在该协议中,对序号为n的分组的确认采取累积确认的方式,表明接收方已正确接收到序号n以前(包括n)的所有分组。

    3、 超时。若出现超时,发送方将重传所有已发出但还未被确认的分组

    对于接收方来说,若一个序号为n的分组被正确接收,并且按序,则接收方会为该分组返回一个ACK给发送方,并将该分组中的数据交付给上层。在其他情况下,接收方都会丢弃分组。若分组n已接收并交付,那么所有序号比n小的分组也已完成了交付。因此GBN采用累积确认是一个很自然的选择。发送方在发完一个窗口里的所有分组后,会检查最大的有效确认,然后从最大有效确认的后一个分组开始重传。

    91abc9e4aa6216588b57fe2182d2789f.png

    如上图所示,序号为2的分组丢失,因此分组2及之后的分组都将被重传。

    总结:GBN采用的技术包括序号、累积确认、检验和以及计时/重传。

    40ae93b623861109784c9065e713a9ec.png

     选择重传(Selective-repeat)

    虽然GBN改善了停等协议中时间等待较长的缺陷,但它依旧存在着性能问题。特别是当窗口长度很大的时候,会使效率大大降低。而SR协议通过让发送方仅重传在接收方丢失或损坏了的分组,从而避免了不必要的重传,提高了效率。

    在SR协议下,发送方需响应以下三种事件:

    1、 从上层收到数据。当从上层收到数据后,发送方需检查下一个可用于该分组的序号。若序号在窗口中则将数据发送。

    2、 接收ACK。若收到ACK,且该分组在窗口内,则发送方将那个被确认的分组标记为已接收。若该分组序号等于基序号,则窗口序号向前移动到具有最小序号的未确认分组处。若窗口移动后并且有序号落在窗口内的未发送分组,则发送这些分组。

    3、 超时。若出现超时,发送方将重传已发出但还未确认的分组。与GBN不同的是,SR协议中的每个分组都有独立的计时器。

    在SR协议下,接收方需响应以下三种事件:

    (假设接收窗口的基序号为4,分组长度也为4)

    1、 序号在[4,7]内的分组被正确接收。该情况下,收到的分组落在接收方的窗口内,一个ACK将发送给发送方。若该分组是以前没收到的分组,则被缓存。若该分组的序号等于基序号4,则该分组以及以前缓存的序号连续的分组都交付给上层,然后,接收窗口将向前移动。

    2、 序号在[0,3]内的分组被正确接收。在该情况下,必须产生一个ACK,尽管该分组是接收方以前已确认过的分组。若接收方不确认该分组,发送方窗口将不能向前移动。

    3、其他情况。忽略该分组

    对于接收方来说,若一个分组正确接收而不管其是否按序,则接收方会为该分组返回一个ACK给发送方。失序的分组将被缓存,直到所有丢失的分组都被收到,这时才可以将一批分组按序交付给上层。

    f38d1cdc88d5dd35e4472e59192d3ae5.png40ae93b623861109784c9065e713a9ec.png

    GBN与SR的对比

    0a232be6c1d2cbbd45d2183ce75a72f9.png

    ARQ协议的优缺点及应用

    40ae93b623861109784c9065e713a9ec.png

    优点和缺点

    ARQ协议的优点是它比较简单。因而被广泛应用在分组交换网络中。ARQ协议的缺点通信信道利用率不高,信道远远没被数据比特填满;除此之外需要接收方发送ACK,这样增加了网络的负担也影响了传输速度。重复发送数据包来纠正错误的方法也严重影响了它的传输速度。

    40ae93b623861109784c9065e713a9ec.png

    应用

    在现代的无线通信中,ARQ主要应用在无线链路层。比如,在WCDMA和cdma2000无线通信中都采用了选择性重传ARQ和混合ARQ。

    77caefc8ac14cd84b7d190c5c55c4e09.png

    更多资讯请关注公众号

    本文图片来源于网络

    展开全文
  • 1.停等ARQ协议 停等ARQ协议是停等流控技术和请求重发技术的组合。发送方在发出一个帧后,如若收到ACK应答信号,则继续发出下一帧;如收到NAK信号,则重发该帧;如果一定时间间隔未收到应答信号也须重发。 2.连续...

    1.停等ARQ协议

    停等ARQ协议是停等流控技术和请求重发技术的组合。发送方在发出一个帧后,如若收到ACK应答信号,则继续发出下一帧;如收到NAK信号,则重发该帧;如果一定时间间隔未收到应答信号也须重发。

    2.连续ARQ协议

    连续ARQ协议是滑动窗口技术和请求重发技术的组合。接收方有一个固定大小的窗口,接收方在收到一个帧以前不会移动窗口,发送方可以发送连续的帧而形成流动,因此称为连续ARQ协议。连续ARQ协议根据出错帧和丢失帧分为选择重发ARQ协议和后退N帧ARQ协议。

    重发ARQ协议为只发出错帧,发送方和接收方有一样大小的窗口,即大小=2∧(k-1)

    后退N帧ARQ协议为从丢失处重发帧以后的帧,并且窗口大小为2∧k-1

    展开全文
  • ARQ协议

    千次阅读 2007-07-19 10:43:00
    ARQ 自动重传请求(auto repeat request),通过接收方请求发送方重传出错的数据报文来恢复出错的报文,是通信中用于处理信道所带来差错的方法之一;另外一个方法是信道纠错编码。 传统自动重传请求分成为三种,即...
     
    
    ARQ
        自动重传请求(auto repeat request),通过接收方请求发送方重传出错的数据报文来恢复出错的报文,是通信中用于处理信道所带来差错的方法之一;另外一个方法是信道纠错编码。
        传统自动重传请求分成为三种,即停等式(stop-and-wait)ARQ,回退n帧(go-back-n)ARQ,以及选择性重传(selective repeat)ARQ。三者的区别在于对于出错的数据报文的处理机制不同。
        在停等式ARQ中,数据报文发送完成之后,发送方等待接收方的状态报告,如果状态报告报文发送成功,发送后续的数据报文,否则重传该报文。
        在回退n帧的ARQ中,当发送方接收到接收方的状态报告指示报文出错后,发送方将重传过去的n个报文。
        在选择性重传ARQ中,当发送方接收到接收方的状态报告指示报文出错,发送方只发送传送发生错误的报文。
        三种ARQ协议中,复杂性递增,效率也递增。
        除了传统的ARQ,还有混合ARQ(Hybrid-ARQ)。在混合ARQ中,数据报文传送到接收方之后,即使出错也不会被丢弃。接收方指示发送方重传出错报文的部分或者全部信息,将再次收到的报文信息与上次收到的报文信息进行合并,以恢复报文信息。
        在现代的无线通信中,ARQ主要应用在无线链路层。比如,在WCDMA和cdma2000无线通信中都采用了选择性重传ARQ和混合ARQ。
    展开全文
  • ARQ协议matla仿真

    2014-03-05 15:19:07
    ARQ协议原理 matlab仿真采用25+1偶效验
  • TCP协议通过使用连续ARQ协议和滑动窗口协议,来保证数据传输的正确性,从而提供可靠的传输。 一、ARQ协议 ARQ协议,即自动重传请求(Automatic Repeat-reQuest),是OSI模型中数据链路层和传输层的错误纠正...

    转自:https://blog.csdn.net/guoweimelon/article/details/50879588

    TCP协议通过使用连续ARQ协议和滑动窗口协议,来保证数据传输的正确性,从而提供可靠的传输。

     

    一、ARQ协议

     

    ARQ协议,即自动重传请求(Automatic Repeat-reQuest),是OSI模型中数据链路层和传输层的错误纠正协议之一。它通过使用确认超时这两个机制,在不可靠服务的基础上实现可靠的信息传输。如果发送方在发送后一段时间之内没有收到确认帧,它通常会重新发送。ARQ包括停止等待ARQ协议和连续ARQ协议,拥有错误检测(Error Detection)、正面确认(Positive Acknowledgment)、超时重传(Retransmission after Timeout)和 负面确认及重传(Negative Acknowledgment and Retransmission)等机制。

     

    (1)停止等待ARQ协议

     

    要想弄明白为什么TCP要使用连续ARQ协议,首先需要弄清楚停止等待ARQ协议的原理。

     

    TCP 连接是全双工的连接,也就是说在通信的时候,双方既是发送方,也是接收方。下面为了简化问题,只考虑一方发送,一方接受的情况。其中,A作为发送方,B作为接收方。

     

    1.无差错情况

    A发送分组M1,发送完就暂停发送,等待B的确认。B收到M1就向A发送确认。A在收到了对M1的确认后,就再发送下一个分组M2。依次下去发送剩余的数据...如下图所示:

    2.出现差错

    如果A发送的过程中出现差错,B在接收M1时检测出了差错,就丢弃M1,其他什么都不做(也不会通知A收到有差错的分组)。又或者A传送的过程中分组丢失了,以上这两种情况下,B不会发送任何信息。 

    既然说它是可靠传输协议,那自然有它可靠的方法:如果发生以上的情况,A只要超过了一段时间仍然没有收到确认,就认为刚才发送的分组丢失了,所以它会重传刚刚的发送过的分组,也就是所谓的超时重传。 

    超时重传的原理也很简单:发送方发送完一个分组后,就会设置一个超时计时器,如果超时计时器到期之前没有收到接收方发来的确认信息,则会重发刚发送过的分组;如果收到确认信息,则撤销该超时计时器。如下图所示:

    这里应该注意的是:

    ①既然发送方发送的分组可能丢失或者有差错,可能需要重传,那么它必须暂时保留已发送的分组副本,只有收到确认后,才清除这个副本。

    ②分组和确认分组信息都应该有各自的编号,用来标示每一个分组和确认信息。(这样才知道需要发送哪个分组,收到了哪个分组的确认信息)

    ③超时计时器设置的时间应该略长于分组传送往返时间。

    3.确认丢失和确认延迟 

    没有正常进行通信,除了发送方出现问题外,接收方同时也可能存在问题。

    例如,如果A发送了M1分组,到达B,B发送了M1确认信息,但由于网络原因,该确认信息丢失。那么这个时候,A在超时重传时间内,没有收到B的确认信息,而且它并不知道是自己的分组有差错、丢失,还是B发生的确认丢失了。因此,A会在超时重传过后,重传M1分组。 

    接收方B会采取这两个行动: 

    ①B会丢弃M1分组,不向上层交付。(B之前已经收到过M1分组了) 

    ②向A发送确认(因为A重发了,肯定重传时间内没有收到确认信息)

    还有可能是另一种情况,就是B发送了确认,没有丢失,但是延迟了。也就是说,B发送的确认在A超时计时器过期后才到达。 这种情况下,A收到确认信息后会丢弃,然后重传刚才的分组,B收到后,丢弃重复的分组,并重传确认信息。

     

    根据上述的确认和重传机制,我们就可以在不可靠的网络上实现可靠的传输。

     

    4.信道利用率

    停止等待ARQ协议的优点是简答,但也有很严重的确定,就是信道利用率太低。如下图所示:

     

    信道利用率U = TD / (TD + RTT + TA)

    (2)连续ARQ协议

    由于停止等待ARQ协议信道利用率太低,所以需要使用连续ARQ协议来进行改善。这个协议会连续发送一组数据包,然后再等待这些数据包的ACK。

     

    发送方采用流水线传输。流水线传输就是发送方可以连续发送多个分组,不必每发完一个分组就停下来等待对方确认。如下图所示:

     

     

    连续ARQ协议通常是结合滑动窗口协议来使用的,发送方需要维持一个发送窗口,如下图所示:

    图(a)是发送方维持的发送窗口,它的意义是:位于发送窗口内的5个分组都可以连续发送出去,而不需要等待对方的确认,这样就提高了信道利用率。 

    连续ARQ协议规定,发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。例如上面的图(b),当发送方收到第一个分组的确认,就把发送窗口向前移动一个分组的位置。如果原来已经发送了前5个分组,则现在可以发送窗口内的第6个分组。 

    接收方一般都是采用累积确认的方式。也就是说接收方不必对收到的分组逐个发送确认。而是在收到几个分组后,对按序到达的最后一个分组发送确认。如果收到了这个分组确认信息,则表示到这个分组为止的所有分组都已经正确接收到了。 

    累积确认的优点是容易实现,即使确认丢失也不必重传。但缺点是,不能正确的向发送方反映出接收方已经正确收到的所以分组的信息。比如发送方发送了前5个分组,而中间的第3个分组丢失了,这时候接收方只能对前2个发出确认。而不知道后面3个分组的下落,因此只能把后面的3个分组都重传一次,这种机制叫Go-back-N(回退N),表示需要再退回来重传已发送过的N个分组。

     

    二、滑动窗口协议

    滑动窗口协议在在发送方和接收方之间各自维持一个滑动窗口,发送发是发送窗口,接收方是接收窗口,而且这个窗口是随着时间变化可以向前滑动的。它允许发送方发送多个分组而不需等待确认。TCP的滑动窗口是以字节为单位的。

     

    如下图所示,发送窗口中有四个概念::已发送并收到确认的数据(不在发送窗口和发送缓冲区之内)、已发送但未收到确认的数据(位于发送窗口之内)、允许发送但尚未发送的数据(位于发送窗口之内)、发送窗口之外的缓冲区内暂时不允许发送的数据。

    接收窗口中也有四个概念:已发送确认并交付主机的数据(不在接收窗口和接收缓冲区之内)、未按序收到的数据(位于接收窗口之内)、允许的数据(位于接收窗口之内)、不允许接收的数据(位于发送窗口之内)。

     

    规则:

    (1)凡是已经发送过的数据,在未收到确认之前,都必须暂时保留,以便在超时重传时使用。

    (2)只有当发送方A收到了接收方的确认报文段时,发送方窗口才可以向前滑动几个序号。

    (3)当发送方A发送的数据经过一段时间没有收到确认(由超时计时器控制),就要使用回退N步协议,回到最后接收到确认号的地方,重新发送这部分数据。

     

    此外,TCP利用滑动窗口协议来进行流量控制,如下图所示:

     

    参考资料:

    1、ARQ-维基百科 https://zh.wikipedia.org/wiki/ARQ

    2、TCP/IP(三) —— 可靠传输工作原理 http://pmghong.blog.51cto.com/3221425/1242470

    3、TCP可靠传输&流量控制&拥塞控制  http://my.oschina.net/manmao/blog/601585

    4、计算机网络【七】:可靠传输的实现 http://blog.chinaunix.net/uid-26275986-id-4109679.html

    5、TCP/IP之TCP协议(3):流量控制(滑动窗口协议)http://blog.csdn.net/wbw1985/article/details/4879224

    展开全文
  • 基于网络编码的水下声传感器网络混合ARQ协议
  • 5.4.2 连续ARQ协议

    2021-05-02 13:44:30
    本节给出连续ARQ协议的基本概念,细节见5.6 发送窗口 窗口是指缓存中的一块区域,发送窗口是指要发送出去的这块存储区域。 由发送方维持。 如下图例(a),位于发送窗口内的五个分组都可以连续发送出去,不需要...
  • kcp, 一种快速可靠的ARQ协议 KCP - 一种快速可靠的ARQ协议 英语中的自述文件// 初始化 kcp对象,conv为一个表示会话编号的整数,和tcp的 conv一样,通信双// 方需保证 conv相
  • 计算机网络ARQ协议模拟程序,采用c++实现模拟ARQ发送接收数据,出错重传机制
  • TCP连续ARQ协议和滑动窗口协议
  • ncp去 实施NCP(NKN控制协议),这是NKN网络的ARQ协议
  • 计算机网络----ARQ协议

    2021-01-07 19:03:02
    ARQ协议:⾃动重传请求,通过使⽤确认和超时机制,在不可靠服务上实现可靠传输。 如果发送⽅在发送后⼀段时间之内没有收到确认帧,会重新发送。 ARQ包括停⽌等待ARQ协议和连续ARQ协议。 停⽌等待ARQ协议 为了实现...
  • 连续ARQ协议里发送方的滑动窗口与接收方的滑动窗口确认传输的第一个默认从1开始有什么问题?
  • TCP协议总结--停止等待协议,连续ARQ协议,滑动窗口协议 Posted on 2015-09-16 16:27 杨博东的博客 阅读(4459) 评论(0) 编辑 收藏 </div> <div class="postbody"><div id="cnblogs_post_...
  • KCP-一种快速可靠的ARQ协议 简介 KCP是一个快速可靠的协议,能以比TCP浪费10%-20%的带宽的代价,换取平均延迟降低30%-40%,并且最大延迟降低三倍的传输效果。纯算法实现,并不负责任协议(如UDP)的收发,需要...
  • <p><img alt="" height="234" src=...<p>issue:为什么ARQ协议是数据链路层的协议???难道不应该完全是TCP即运输层的协议吗?</p>
  • TCP协议学习笔记(1):连续ARQ协议Automatic Repeat reQuest时间坐标优点缺点举例缓冲存储空间 Automatic Repeat reQuest 连续ARQ(Automatic Repeat reQuest)协议。 指发送方维持着一个一定大小的发送窗口,位于...
  • 计算机网络课程设计—ARQ协议模拟实验 计算机网络课程设计—ARQ协议模拟实验
  • ARQ 协议也就是超时重传机制。通过确认和超时机制保证了数据的正确送达,ARQ 协议包含停止等待 ARQ 和连续 ARQ 两种协议。 停止等待 ARQ 正常传输过程 只要 A 向 B 发送一段报文,都要停止发送并启动一个定时器,...
  • 27-tcp可靠传输——连续ARQ协议

    千次阅读 2018-05-01 09:01:01
      前面我们所说的tcp可靠传输停止等待协议是每发送一个分组就停止发送,等待确认后再发送下一个分组,这种传输协议虽然实现了可靠传输,但是因为每发一个分组就要确认一次,使通信效率降低了,而连续ARQ协议是停止...
  • ARQ协议C语言实现

    2017-12-28 16:48:25
    实验要求:编写两个计算机程序P1,P2。 P1模拟发送方:首先从界面读取待发送的字符(每接受一个字符的输入),保存到文件file1.txt中,并启动计时器; P2模拟接受方,它从file1.txt中查找是否有新字符到来,并提供...
  • 连续ARQ协议

    2008-04-01 19:37:00
    以下摘自笔者编著的《网络工程师必读——网络工程基础》图书:7.4.6 连续ARQ协议连续重发请求ARQ方案是指发送方可以连续发送一系列信息帧,即不用等前一帧被确认便可继续发送下一帧,效率大大提高。但在这种重发...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 631
精华内容 252
关键字:

arq协议