精华内容
下载资源
问答
  • 停止等待协议的工作原理
    千次阅读
    2020-05-08 16:03:35

    停止等待协议(stop-and-wati),是数据链据层一个很重要的协议,基本原理就是说每发送一个分组,必须要停下来等待,等接收方确认后才可继续发送下一个分组。如果没收到确认,就只能超时重传。

    优点:很简单,每次发送一个分组就等待确认。
    缺点:信道利用率不高,每次都要等。

    为了克服停止等待的缺点,于是乎又出现了另外两种协议。

    1.连续ARQ(Automatic Repeat reQuest)协议,滑动窗口的前身,也就是不滑动的窗口,一次性发送N个,然后等待,减少了等待时间,提高信道利用率和吞吐量。
    2.选择重传ARQ

    更多相关内容
  • 停止等待协议 停止等待协议是最简单的可靠传输协议,停止等待就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。若接收方收到重复的分组,就会丢弃该分组,但同时还要向发送方发送...

    停止等待协议

    • 停止等待协议是最简单的可靠传输协议,停止等待就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。若接收方收到重复的分组,就会丢弃该分组,但同时还要向发送方发送确认;
    • 停止等待协议中主要有4种情况:无差错情况、超时重传、确认丢失和确认迟到;
    • 停止等待协议对信道的利用率不高,因为发送方每发送一个消息,都需要等待确认消息回来,只要确认消息没有正确地到达,就一直等;

    1)无差错情况


    2)有差错情况

    2.1 超时重传

    发送的消息在路上丢失了,每发送一组数据就会启动一个计时器,超过这个时间还未接收到确认消息时,发送方就会进行超时重传

    在这里插入图片描述
    2.2 确认丢失

    接收方向发送方发送确认帧1,但是在传输中丢失,接收方在固定时间内没有收到确认帧,会再超时重传1帧。

    在这里插入图片描述
    2.3 确认迟到

    发送方发送完之后确认帧一直没有传过来,就会超时重传一个0号帧,接收方收到0号帧之后发现刚刚已经收到过0号帧了,就会把重复发送的0号帧丢弃掉,再返回给发送端一个确认帧;同理,如果发送端之前已经收到0的确认帧,那么对于后来又收到的0的确认帧,收到就丢弃。
    在这里插入图片描述
    连续ARQ协议

    ARQ(Automatic Repeat reQuest:自动重传请求)。

    连续ARQ协议可以提高信道的利用率。它引入了滑动窗口,通过滑动窗口可以批量发送数据,发送方维持一个发送窗口,凡位于发送窗口内的分组可以连续发送出去,而不需要等待对方确认。接收方一般采用累计确认,对按序到达的最后一个分组发送确认,表明到这个分组为止的所有分组都已经正确收到了。

    如下图中,滑动窗口大小为6,可以批量地发送6个消息;当收到1和2的确认消息之后,滑动窗口就可以往后移两个位置,将窗口内还没有发送的数据发送出去。

    在这里插入图片描述
    对于滑动窗口,如果每一个报文都需要确认,那么确认消息的开销会非常大,因此对于滑动窗口并不需要对每个报文都进行确认,而是采用累计确认的方法。

    假设现在同时发送了1到6这6个报文,在某一时刻发送方收到第5个报文的确认消息,如果采用累计确认的方法,我们就默认1到5这5个消息都收到了,因此会把窗口往前推动五格。
    在这里插入图片描述
    滑动窗口

    滑动窗口(Sliding window)是一种流量控制技术。用于网络数据传输时的流量控制,以避免拥塞的发生。该协议允许发送方在停止并等待确认前发送多个数据分组。由于发送方不必每发一个分组就停下来等待确认。因此该协议可以加速数据的传输。

    TCP 中采用滑动窗口来进行传输控制,滑动窗口的大小意味着接收方还有多大的缓冲区可以用于接收数据。发送方可以通过滑动窗口的大小来确定应该发送多少字节的数据。当滑动窗口为 0 时,发送方一般不能再发送数据报;但有两种情况除外,一种情况是可以发送紧急数据,例如,允许用户终止在远端机上的运行进程。另一种情况是发送方可以发送一个 1 字节的数据报来通知接收方重新声明它希望接收的下一字节及发送方的滑动窗口大小。


    TCP协议的可靠传输

    • TCP的可靠传输基于连续ARQ协议

    • TCP的滑动窗口以字节为单位

    窗口的大小表示窗口里面的字节都是可以发送的,在窗口左边的表示已经确认的字节序号,右边属于不允许发送的字节序号;23代表对方期待收到的下一个字节
    在这里插入图片描述
    假如说窗口里七个字节都已经发送出去,但是没有收到确认,那么可用窗口就为0
    在这里插入图片描述

    考虑下面一种情况:

    当收到25和27字节的确认消息时,因为当前确认消息并不是按顺序的,23和24的确认消息还没有过来;如果过了超时时间之后还未收到23和24的确认消息,那么就会从23重新传输这七个字节.
    在这里插入图片描述
    由此可见,可靠传输效率并不高,因为前面已经收到25和27的确认号,但因为23和24并没有收到,所以还需要重传

    如何解决这一问题呢?可以通过选择重传的方法

    选择重传

    • 选择重传需要指定需要重传的字节,这里的字节是指需要重传的字节边界,例如1000~1500这一段里的500个字节丢失,需要重传,那么就会把1000和1500这两个数字存入TCP的选项里;
      • 因为TCP的报文一次传输是传输多个字节,而不是一个字节,在丢失的情况下,其实丢失的是整个TCP报文,对于整个TCP报文都丢失的情况下,在报文里的一整段字节流都是丢失的;
    • 每一个字节都有唯一的32位序号

    TCP的头部信息如下,选择重传机制里需要重传的字节边界存放在TCP选项里
    在这里插入图片描述

    展开全文
  • 十六、停止等待协议

    千次阅读 2021-11-19 11:23:39
    文章目录1、为什么要有停止等待协议2、研究停等协议的前提3、应用停等协议的两种情况3.1 无差错的情况3.2 有差错的情况3.2.1 数据帧丢失或检测到帧出错3.2.2 ACK丢失3.2.3 ACK迟到4、停等协议的性能分析THE END ...

    1、为什么要有停止等待协议

    \qquad 除了比特出差错,底层信道还会出现丢包问题,为了实现流量控制,设计出停等协议。
    \qquad 丢包: 物理线路故障,设备故障,病毒攻击,路由问题错误等原因,会导致数据报的丢失。

    2、研究停等协议的前提

    \qquad 虽然现在常用全双工通信方式,但是为了讨论问题方便,仅考虑一方发送数据,一方接收数据;
    \qquad 因为是在讨论可靠性传输的原理,所以并不考虑数据是在那一个层次上传输的;
    \qquad “停止-等待”就是没发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。

    3、应用停等协议的两种情况

    3.1 无差错的情况

    在这里插入图片描述
    \qquad 每发送1个数据就停止并等待,因此用1bit来编号就足够。

    3.2 有差错的情况

    3.2.1 数据帧丢失或检测到帧出错

    \qquad 超时计时器:每次发送一个帧就启动一个计时器,超时计时器设置的重传时间应当比帧传输的平均往返传输时延(RTT)更长一些。计时器如果超时了,则放松放松就会重传上一次传过的帧数据。
    在这里插入图片描述 \qquad 发送方发送完一个帧之后,必须保留它的副本;数据帧和确认帧必须编号。

    3.2.2 ACK丢失

    在这里插入图片描述

    3.2.3 ACK迟到

    在这里插入图片描述

    4、停等协议的性能分析

    \qquad 实现方式简单,但是信道利用率太低。
    在这里插入图片描述
    \qquad 信道利用率: 发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率。 信 道 利 用 率 = ( L / C ) / T 信道利用率=(L/C)/T =(L/C)/T \qquad 其中 L L L表示T内发送L比特数据; C C C表示发送发的数据传输率; T T T表示发送周期,从开始发送数据,到收到第一个确认帧为止。
    \qquad 信道吞吐率: =信道利用率*发送方的发送速率。
    \qquad 下面通过一个例题来说明信道利用率:
    在这里插入图片描述

    THE END

    展开全文
  • TCP可靠传输的工作原理-停止等待&连续的ARQ(一)

    万次阅读 多人点赞 2017-06-26 20:10:24
    停止等待协议,TCP的可靠传输,连续的ARQ协议

    在网络传输中,我们认为最理想的传输状态就是:

        1、传输信道不产生差错。

        2、不管发送方以多块的速度发送数据,接收方都能来得及接受以及处理这些数据。

    当然,这种只是理想状态,在实际运用中,几乎是不可能的。因此,我们需要采取一些可靠的传输协议。

        1、当出现差错时,让发送发重传该差错数据。

        2、接受方来不及处理数据时,及时告知发送方适当的降低发送速度。

    那么,要做到上述第一点,就需要采用:停止等待协议   

    一、停止等待协议。

        所谓停止等待协议就是没发送完一组数据后,等待对方确认并且收到确认后,再发送下一组数据。

        我将它简单的理解为以下过程:发送数据,收到数据,发送确认,收到确认。

        那么这样,就分为了以下4种情况。(无差错、出现差错、确认丢失、确认迟到)

        1、无差错

           

           

            所谓无差错,就是数据能够正常发送,正常接收,正常确认,正常收到确认的一个过程。也是最理想,最好的一种状态。

        2、出现差错

           

            所谓出现差错,就是数据在发送的过程中部分或全部丢失(如上图左)。

            A发送M1并出现差错,B在收到M1时(全部丢失,不会收到)检测出了差错,就丢弃M1,其他什么也不做(不会通知A数据出现了差错,因为有可能全部丢失,B并不知道)。在这两种情况下,B都不会发送任何的信息。那么,怎么办?

            A只要超过一段时间仍然没有收到确认,就认为刚才所发送的数据丢失,然后重传前面发送的数据。这就叫做超时重传。当前需要一个计时器来完成。

            因此,有如下三点要求:

            1>、A在发送完一组数据后,必须暂时保留自己已发送的数据的副本(供超时重传使用)。只有收到确认后,才会删除该副本。

            2>、每一组数据和确认数据都必须编号(TCP头部有该字段)。这样才能明确是哪一个发送出去的数据收到了确认,哪一个没有收到。

            3>、超时计时器设定的时间应该要长于数据平均往返时间。

        3、确认丢失

           

            所谓确认丢失,其实就是确认消息在传输过程丢失。那么,该如何处理?

            当A发送M1消息,B收到后,B向A发送了一个M1确认消息,但却在传输过程中丢失。而A并不知道,在超时计时过后,A重传M1消息,B再次收到该消息后采取以下两点措施:

            1>、丢弃这个重复的M1消息,不向上层交付。

            2>、向A发送确认消息。(不会认为已经发送过了,就不再发送。A能重传,就证明B的确认消息丢失)。

        4、确认迟到

           

            所谓确认迟到,就是B发送的确认消息没有丢失,但是却迟到(过了很长一段时间才到)。那么该如何处理?

            A发送M1消息,B收到并发送确认。在超时时间内没有收到确认消息,A重传M1消息,B仍然收到并继续发送确认消息(B收到了2份M1)。此时A收到了B第二次发送的确认消息。接着发送其他数据。过了一会,A收到了B第一次发送的对M1的确认消息(A也收到了2份确认消息)。处理如下:

            1>、A收到重复的确认后,直接丢弃。

            2>、B收到重复的M1后,也直接丢弃重复的M1。


        至此,就是停止等待协议中所出现的所有的可能情况。也一一解决。像这种可靠的传输协议通常称为自动重传请求ARQ(Automatic Repeat reQuest)。意思就是,重传的请求是自动进行的,不需要接受方请求发送某一个丢失或出错的消息。

        但是,很显然。我们发现,其信道的利用率很低。

        那该怎么办?

        那就是利用连续ARQ请求协议

    二、连续的ARQ协议  

        先看一张信道利用率图:

        这两张图的差异很明显。使用连续的ARQ协议可以大大的提高信道利用率。

        吧后者这张图的工作模式又叫做流水线传输。

        其原理如下:

       

         其实现的基础是建立在滑动窗口之上。而滑动窗口乃是TCP的精髓所在(下一篇详解)。

         连续ARQ规定,发送方每收到一个确认就将滑动窗口向前(时间增大方向)滑动一格。如上图表示收到一个确认。

         接受方采用累积确认的方式:接收方不必每收到一个消息,就发送一个确认。而是在收到几条消息后,对按序到达的最后一条消息发送确认。表示,这个消息之前的所有消息全部收到。

       

        当然,这两个方式都有自己的优缺点:

        1、自动重传请求ARQ协议

         优点:简单

         缺点:信道利用率低

        2、连续的ARQ协议

        优点:信道利用率高,容易实现,即使确认丢失,也不必重传。

        缺点:不能向发送方反映出接收方已经正确收到的所有分组的信息。

        比如:发送方发送了5条消息,中间第三条丢失(3号),这时接收方只能对前两个发送确认。发送方无法知道后三个分组的下落,而只好把后三个全部重传一次。这也叫

    Go-Back-N(回退N),表示需要退回来重传已经发送过的N个消息。



    展开全文
  • 本文讲解了计算机网络中如何实现可靠传输的工作协议
  • 【计算机网络】—— 停止-等待协议

    千次阅读 2021-12-11 16:25:40
    目录一、为什么要有停止-等待协议二、研究停止-等待协议的前提三、停止-等待协议有几种应用情况无差错情况有差错情况1、数据帧就是或检测到帧出错2、ACK丢失3、ACK迟到四、停止-等待协议性能分析五、总结 ...
  • 1.停止等待协议 1.1特征:发方每发送一帧就暂停,等待应答(ACK)到来。收方收到数据帧后发ACK帧给发方,发方再发送下—个数据帧...1.3停止等待协议的具体工作过程: 1.4停止等待协议的优缺点: 优点:比较简单。 缺点...
  • 停止等待协议的意义 除了比特出差错,底层信道还会出现丢包问题。为了实现流量控制。 停止等待协议的前提 虽然现在常用全双工通信方式,但为了讨论问题方便,仅考虑一方发送数据(发送方),一方接收数据(接收方...
  • 停止等待协议(ARQ): (a)无差错情况:A发送分组M1,发送就暂停发送,等待B的确认。B收到M1就向A发送确认。A在收到了对M1的确认后,就再发送下一个分组M2。同样,在收到B对M2的确认后,再发送M3。 (b)超时重传...
  • 文章目录SW(Stop and Wait)停止等待协议1.确认与否认2.超时重传3.确认丢失4.确认迟到5.总结6.SW的信道利用率7.例题 SW(Stop and Wait)停止等待协议 这里通过把SW可能遇到的问题,把SW分成四个小部分来讲,即该...
  • 自认为很好的一个模拟软件 很好的模拟了其原理
  • 计算机网络原理笔记-停止等待协议

    千次阅读 2017-12-24 16:18:00
    在整个TCP/IP协议簇中,数据链路层的作用是发送和接收IP层数据,它也用来发送其他协议的数据,这些协议往往是IP层的辅助协议,比如ARP协议等。数据链路层有很多不同的种类,最常见的是以太网(Ethernet)和Wi-Fi。我...
  • 26-tcp可靠传输——停止等待协议

    千次阅读 2018-04-30 18:39:39
    1. tcp可靠传输   通过前面的学习可知,网络层传输数据时是尽最大努力...  那么为了后面学习tcp可靠传输,先从最简单的可靠传输停止等待协议说起吧。 2. 停止等待协议   什么是停止等待协议?   A和B...
  • 《计算机网络与通信》课程讲述计算机网络的原理,尤其是TCP/IP协议栈的原理和应用,是一门理论性、应用性、实践性都比较强...在这次课程设计中,我设计的的是通过编译语言,编程模拟实现数据链路层协议中的停止协议
  • 3.1.4.1 停止-等待协议

    2020-09-18 23:34:35
    3.1.4.1 停止-等待协议 1.停止-等待协议究竟是哪一层? 在早期的计算机网络中,由于通信链路质量差,出现差错比较多,为了提高传输效率,数据链路层应该承担一部分可靠传输的任务, 把停止-等待协议放在了数据链路...
  • 停止等待协议原理、实例,以及编程实验指导。
  • 停止等待协议和连续ARQ协议

    千次阅读 2017-12-23 00:44:00
    停止等待协议(数据链路层): 工作原理:发送方每发送一帧就暂停,等待应答(ACK)到来。收方收到数据帧后发送应答(ACK)帧给发送方,发送方再发送下一个数据帧。 问题解决: 1. Data帧出错:收方用NAK应答。 ...
  • CSMA/CD协议工作原理

    千次阅读 2021-05-23 19:06:22
    CSMA/CD协议工作原理 CSMA/CD协议工作原理 工作站在发送数据之前,先监听信道上是否有别的站发送的载波信号。若有,说明信道忙;否则信道是空闲的。即使信道空闲,若立即发送仍然会发生冲突。所以需要监听...
  • 1.1、停止-等待流量控制基本原理 发送方每发送一帧,都要等待接收方的应答信号,之后才能发送下一帧;接收方每接收一帧,都要反馈一个应答信号,表示可接收下一帧,如果接收方不反馈应答信号,那么发送方必须一直...
  • HTTP协议工作原理

    千次阅读 2020-05-03 10:22:56
    2、请求报文是由请求方法,请求URI,协议版本,可选的请求首部字段和内容实体构成。 3、响应报文基本上由协议版本,状态码,解释状态码的原因短语,可选的响应首部字段以及实体主体构成。 4、告知服务器意图...
  • 关于停止等待ARQ通信协议的几种分析方法第一种分析方法第二种分析方法 第一种分析方法 stop-wait流量控制是最简单的流量控制形式,其工作原理如下。一个源端实体发送一个帧,目的端实体收到后就发回一个对收到帧的...
  • 一个动画看懂网络原理之CSMA/CD的工作原理

    万次阅读 多人点赞 2018-10-09 01:48:28
    一个动画看懂网络原理之CSMA/CD的工作原理 CSMA/CD协议是以太网传输中的一个重要协议,由于线路中同一时间只能允许一台电脑发送信息,否则各计算机之间就会产生干扰,为了解决这个问题,采用了CSMA/CD协议来协调。 ...
  • Java实现停止等待算法模拟

    千次阅读 多人点赞 2020-04-24 23:30:12
    停止等待协议: 图片来自课件:《计算机网络(第六版)》课件制作人:谢希仁。 代码: 只实现了计算校验码、CRC校验无差错情况和CRC校验有差错情况的模拟。 Tools: public class Tools { /** * CRC和计算校验码 * @...
  • 生成树协议原理

    万次阅读 多人点赞 2018-08-23 16:03:22
    STP是工作在OSI第二层(Data Link Layer)的协议。 STP协议通过在交换机之间传递特殊的消息并进行分布式的计算,来决定在一个有环路的网络中,某台交换机的某个端口应该被阻塞,用这种方法来避免掉环路 2.2 ...
  • 停止等待协议传输数据文件

    千次阅读 2013-01-17 17:40:40
    曲阜师大大学计算机系停止等待协议停止等待协议:一种最简单的(但效率较低的)差错和流量控制协议 基本原理:发送方发完一数据包后,需要等待接收方的应答信息发送方收到正确认信息ACK:接收方接收正确,发送方可发送下一...
  • 【JMeter】JMeter的工作原理

    千次阅读 2022-03-02 09:41:52
    二、压测的原理 性能测试的核心三原则: 基于协议,多线程,场景模拟 基于协议 基于应用层和传输层的各种协议,比如http、udp、ftp和tcp等 多线程 通过进程下启动线程的方式来模拟并发用户实现负载 场景模拟 通过...
  • SSL协议原理详解

    万次阅读 多人点赞 2019-05-11 17:44:08
    SSL 可参考:SSL技术原理 SSL简介 SSL和TLS: SSL (Secure Sockets Layer)安全套接层。是由Netscape公司于1990年开发,用于保障Word Wide Web(WWW)通讯的安全。主要任务是提供私密性,信息完整性和身份认证。...
  • ERPS协议原理

    千次阅读 2022-01-13 13:53:05
    3、ERPS协议报文: 4、ERPS单环基本原理: 5、单环多实例原理: 6、多环原理: 1、ERPS概述: ERPS(Ethernet Ring Protection Switching),即以太网多环保护技术,是ITU-T定义的一种二层破环协议标准,标准号为ITU...
  • 史上最全的TCP/IP协议原理

    千次阅读 2021-05-26 21:59:05
    TCP/IP协议原理 一、TCP/IP协议简介及起源 1、什么是TCP/IP TCP/IP是TransmissionControlProtocol /InternetProtocol(传输控制协议/互联网络协议)的缩写。TCP和IP只是其中的2个协议,也是很重要的2个协议,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,810
精华内容 20,324
热门标签
关键字:

停止等待协议的工作原理

友情链接: VB-EMAIL-SUBMIT-SYS.rar