1 / 8
文档名称:

停止等待协议.doc

格式:doc   大小:94KB   页数:8页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

停止等待协议.doc

上传人:相惜 2021/10/26 文件大小:94 KB

下载得到文件列表

停止等待协议.doc

文档介绍

文档介绍:页脚下载后可删除,如有侵权请告知删除!
停止等待协议

停止等待(stop-and-wait)协议是最简单但也是最基本的数据链路层协议。很多有关协议的基本概念都可以从这个协议中学****到。我们先从最简单的情况讲起。
一、不需要数据链路层协议的数据传输
当两个主机进行通信时,应用进程要将数据从应用层逐层往下传,经物理层到达通信线路。通信线路将数据传到远端主机的物理层后,再逐层向上传,最后由应用层交给远程的应用进程。但现在为了把主要精力放在数据链路层的协议上,可以采用一个简化的模型(见下图),即把数据链路层以上的各层用一个主机来代替,而物理层和通信线路则等效成一条简单的链路。数据链路层也可简称为链路层。在发方和收方的链路层分别有一个发送缓冲区和接收缓冲区。若进行全双工通信,则在每一方都要同时设有发送缓冲区和接收缓冲区。缓冲区是必不可少的。这是因为在通信线路上数据是以比特流的形式串行传输的,但在计算机内部数据的传输则是以字节(或若干个字节)为单位并行传输的。因此,必须在计算机的内存中设置一定容量的缓冲区,以便解决数据传输速率不一致的矛盾。
下图所示的简化模型对于一个计算机网络中任意一条链路上的数据传输情况都是适用的。在网络内部,各交换结点的数据链路层的上面只有一个网络层。对于这种交换结点,网络层就相当于简化模型中的主机。
图4-10 两台计算机通过一条链路通信的简化模型
为了深入理解数据链路层的协议,我们先从一种假想的、完全理想化的数据传输过程开始讨论。下面即可看出,对于这种完全理想化的数据传输,数据链路层协议是根本不需要的。
为了和后面的讨论相衔接,我们假定数据传输是以帧为单位。
假定1:链路是理想的传输信道,所传送的任何数据既不会出差错也不会丢失。
假定2:不管发方以多快的速率发送数据,收方总是来得及收下,并及时上交主机。
第一个假定很容易理解。对第二个假定则需加以解释。
我们假设主机A连续不断地向主机B发送数据。在收方,主机B的链路层也就将收到的数据一帧接一帧地交给主机B。在理想情况下,收方链路层的缓冲区每存满一帧就向主机B交付一帧。如果没有专门的流量控制协议,则收方并没有办法控制发方的发送速率,而收方也很难做到和发方绝对精确同步。当收方链路层向主机交付数据的速率略低于发方发送数据的速率时,缓冲区暂时存放的数据帧就会逐渐堆积起来,最后造成缓冲区溢出和数据帧丢失。
页脚下载后可删除,如有侵权请告知删除!
因此,上述第二个假定就相当于认为:(1)接收缓冲区的容量为无限大而永远不会溢出;或(2)接收速率与发送速率绝对精确相等。
在这样理想化的条件下,数据链路层当然就不需要任何协议就可以保证数据传输的正确。
二、具有最简单流量控制的数据链路层协议
去掉上述第二个假定,保留第一个假定,即主机A向主机B传输数据的信道仍然是无差错的理想信道。
为了使收方的接收缓冲区在任何情况下都不会溢出,在最简单的情况下,就是发方每发送一帧就暂时停下来。收方收到数据帧后就交付给主机,然后发一信息给发方,表示接收的任务已经完成。这时,发方才再发送下一个数据帧。在这种情况下,收方的接收缓冲区的大小只要能够装得下一个数据帧即