精华内容
下载资源
问答
  • 停止等待协议是什么
    千次阅读
    2022-04-12 10:22:44

    1.停止等待协议概述

    当两个主机进行通信时,发送端将数据从应用层逐层往下传输,经过物理层到达通信线路。通信线路将数据传到远端主机物理层后,再逐层向上传,最后由应用层交给远层应用程序。

    如果进行全双工通信(我们一般都研究全双工通信),则在每一方都要同时设有发送缓存和接收缓存,便于解决数据传输速率不一样的问题。

    2.停止等待协议的实质

    每发送完一个帧就停止发送,等待对方的确认,在收到确认后再发送下一个帧。

    3.超时计时器

    我们在停止等待协议中会设置超时计时器,如果我们当前帧序号发送出去的数据帧发生 丢失,出错或者发送方未受到接收方传来的ACK信号,停止-等待协议仍旧会继续等待,直到超过我们设置的超时计时器时间,我们才可以进行下一个帧序号的发送

    超时计时器设置重传时间应当比帧传输的平均RTT(往返时延)更长一些

    4.停止-等待协议的性能分析

    信道利用率低

    信道利用率 = (L/C)/T    

    L : T内发送L比特数据(数据帧长度)

    C : 发送方数据传输率

    T : 发送周期

    信道利用率 : 发送方在一个发送周期内,有效的发送数据所需要的时间占整个发送周期的比率

    更多相关内容
  • 模拟计算机网络中的停止等待协议算法 发送端向接收端发送数据 模拟出错和超时的概率
  • 实验模拟-TCP聊天客户端 模型使用有停止等待协议进行客服间的通信
  • TCP协议总结--停止等待协议,连续ARQ协议,滑动窗口协议 Posted on 2015-09-16 16:27 杨博东的博客 阅读(4459) 评论(0) 编辑 收藏 </div> <div class="postbody"><div id="cnblogs_post_...

    TCP协议总结--停止等待协议,连续ARQ协议,滑动窗口协议

    Posted on 2015-09-16 16:27 杨博东的博客 阅读( 4459) 评论( 0) 编辑 收藏
    	</div>
    	<div class="postbody"><div id="cnblogs_post_body" class="blogpost-body">
        <div class="markdown_views"><p>前言:在学习tcp三次握手的过程之中,由于一直无法解释tcpdump命令抓的包中seq和ack的含义,就将tcp协议往深入的了解了一下,了解到了几个协议,做一个小结.</p>
    

    先来看看我的问题:
    这是用tcpdump命令抓的三次握手的包,可以看到seq和ack都比较大,我自己也无法解释原因.
    这里写图片描述
    这里写图片描述
    第二张是在同一过程中用Wireshark抓的包,其中seq和ack还比较正常,难道原因就是我不懂tcpdump命令中的数据?我的解释是Wireshark和tcpdump中抓的包,数据的显示方式可能不同,最后学长说可以用 -S 将tcp的序列号以绝对值形式输出,而不是相对值。转化了一下,第三次的ack就正常了.主要还是得知道seq和ack一样,都是字节序列号,一共4个字节,范围都是从[0,2^32 - 1].

    $ tcpdump -S port 80

    这里写图片描述

    一:停止等待协议
    停止等待协议是tcp保证传输可靠的重要途径,”停止等待”就是指发送完一个分组就停止发送,等待对方的确认,只有对方确认过,才发送下一个分组.

    1:无差错情况:发送方发送分组,接收方在规定时间内收到,并且回复确认.发送方再次发送……
    这里写图片描述
    2:超时重传有以下三种情况:
    (1)分组丢失:发送方发送分组,接收方没有收到分组,那么接收方不会发出确认,只要发送方过一段时间没有收到确认,就认为刚才的分组丢了,那么发送方就会再次发送.
    (2):确认丢失:发送方发送成功,接收方接收成功,确认分组也被发送,但是分组丢失,那么到了等待时间,发送方没有收到确认,又会发送分组过去,此时接收方前面已经收到了分组,那么此时接收方要做的事就是:丢弃分组,重新发送确认.
    (3):传送延迟:发送方发送成功,接收方接收成功,确认分组也被发送,没有丢失,但是由于传输太慢,等到了发送方设置的时间,发送方又会重新发送分组,此时接收方要做的事情:丢弃分组,重新发送确认. 发送方如果收到两个或者多个确认,就停止发送,丢弃其他确认.
    这里写图片描述

    停止等待协议的优点是简单,但是缺点是信道的利用率太低,一次发送一条消息,使得信道的大部分时间内都是空闲的,为了提高效率,我们采用流水线传输,这就与下面两个协议有关系了.

    二:连续ARQ协议和滑动窗口协议
    这两个协议主要解决的问题信道效率低和增大了吞吐量,以及控制流量的作用.

    • 连续ARQ协议:它是指发送方维护着一个窗口,这个窗口中不止一个分组,有好几个分组,窗口的大小是由接收方返回的win值决定的,所以窗口的大小是动态变化的,只要在窗口中的分组都可以被发送,这就使得TCP一次不是只发送一个分组了,从而大大提高了信道的利用率.并且它采用累积确认的方式,对于按序到达的最后一个分组发送确认.
    • 滑动窗口协议:之所以叫滑动窗口协议,是因为窗口是不断向前走的,该协议允许发送方在停止并等待确认前发送多个数据分组。由于发送方不必每发一个分组就停下来等待确认,因此该协议可以加速数据的传输,还可以控制流量的问题.
    • 累积确认:如果发送方发送了5个分组,接收方只收到了1,2,4,5,没有收到3分组,那么我的确认信息只会说我期望下一个收到的分组是第三个,此时发送方会将3,4,5,全部重发一次,当通信质量不是很好的时候,连续ARQ还是会带来负面影响.
        <div style="padding-top:20px">         
            <p style="font-size:12px;">版权声明:本文为博主原创文章,未经博主允许不得转载。</p>
        </div>
    
    0
    0
    « 上一篇: Linux&C———进程间通信
    » 下一篇: TCP报文段首部详解
    </div>
    
    展开全文
  • 信息网络 停止等待协议 C++代码
  • 利用停止等待协议传输数据文件实验.pptx
  • 这个文档主要描述了在ns2中实现停止等待协议
  • SW.zip_sw_停止等待协议

    2022-09-20 15:36:00
    MFC模拟计算机网络中停止等待协议的发送接收数据的功能
  • 停止等待协议

    2014-04-11 10:39:38
    停止等待协议
  • 实现了两个程序通信的前提下,模拟实现停止等待ARQ协议
  • 停止等待 协议源代码 you 中文注释
  • 停止等待协议代码

    2013-12-09 15:39:02
    能够模拟实现停止等待协议的过程,并且能够实现文件端到端传输
  • 信息网络 停止等待协议 实验报告
  • 停止等待协议 停止等待协议是最简单的可靠传输协议,停止等待就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。若接收方收到重复的分组,就会丢弃该分组,但同时还要向发送方发送...

    停止等待协议

    • 停止等待协议是最简单的可靠传输协议,停止等待就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。若接收方收到重复的分组,就会丢弃该分组,但同时还要向发送方发送确认;
    • 停止等待协议中主要有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

    展开全文
  • 计算机网络实验,停止等待协议的数据传输的实验报告
  • 基于c++运用socket完成的三种停止等待协议的利用,可实现网络传送文件(Demo版)
  • ARQ停止等待协议(c++)

    热门讨论 2010-04-12 19:54:23
    停止等待协议,用来发送接受不同的文件。用C++语言写的。
  • 停止等待协议实验报告.doc
  • 停止等待协议的意义 除了比特出差错,底层信道还会出现丢包问题。为了实现流量控制。 停止等待协议的前提 虽然现在常用全双工通信方式,但为了讨论问题方便,仅考虑一方发送数据(发送方),一方接收数据(接收方...
  • 停止等待协议与连续 ARQ 协议

    万次阅读 2019-06-27 00:43:24
    一、停止等待协议 停止等待”就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。 全双工通信的双方既是发送方也是接收方。 为了讨论问题的方便,我们仅考虑 A 发送数据,而 B 接收...
  • 计算机网络课件:5-2 停止等待协议.pdf
  • 【计算机网络】—— 停止-等待协议

    千次阅读 2021-12-11 16:25:40
    目录一、为什么要有停止-等待协议二、研究停止-等待协议的前提三、停止-等待协议有几种应用情况无差错情况有差错情况1、数据帧就是或检测到帧出错2、ACK丢失3、ACK迟到四、停止-等待协议性能分析五、总结 一、为什么...
  • 本文讲解了计算机网络中如何实现可靠传输的工作协议
  • 1.停止-等待协议 1.概念 2.停等协议——无差错情况 3.停等协议——有差错情况 1.数据帧丢失或检测到帧出错 2.ACK(确认帧)丢失 3.ACK(确认帧)迟到 4.停等协议性能分析 5.信道利用率 2.后退N帧协议(GBN...
  • 停止等待协议模拟程序实现PPT学习教案.pptx

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 118,635
精华内容 47,454
热门标签
关键字:

停止等待协议是什么