您所在的位置:读书频道 > 网络与维护 > 网络协议 > 7.4.4 停等ARQ协议

7.4.4 停等ARQ协议

2007-07-05 12:56 王达 电子工业出版社 字号:T | T
一键收藏,随时查看,分享好友!

本章主要介绍局域网、广域网,以及OSI各层主要功能及其工作原理这些基本的计算机网络通信技术,同时还将介绍计算机网络数据通信中常见的技术指标和参数。这些都是我们平常进行各种网络工程施工和系统设计的基础和前提。本节是停等ARQ协议介绍。

AD:

7.4.4  停等ARQ协议
停等ARQ是最简单但也最基本的数据链路层协议。为了便于说明,我们采用图7-5所示的一个简化模型把数据链路层以上的各层用一个主机来代替,而物理层和通信线路则等效成一条简单的链路。在发送方和接收方的数据链路层分别有一个发送缓冲区和接收缓冲区。若进行双工通信,则在每一方要同时设有发送缓冲区和接收缓冲区。缓冲区是必不可少的,因为在通信线路上数据是以比特流的形式串行传输的,但在计算机内部数据的传输则是以字节为单位进行传输的。因此,必须在计算机的内存中设置一定容量的缓冲区,以便解决数据传输速率不一致的问题。
图7-5  数据链路层通信简化模型
为了深入理解数据链路层的协议,我们先从一种假想的、完全理想化的数据传输过程开始讨论。下面即可看出,对于这种完全理想化的数据传输,数据链路层协议是根本不需要的。所谓完全理想化的数据传输模型基于以下两个假定。
 链路是理想的传输信道,所传送的任何数据既不会出错,也不会丢失。
 不管发送方以多快的速率发送数据,接收方总是来得及收下,并及时上交主机。
第一个假定容易理解,对于第二个假定,则意味着发送方在以任何速率发送数据时,接收方都能存储在接收缓冲区中并及时上交主机。因此,第二个假定排除了因接收缓冲区溢出而造成数据丢失的可能。在这种完全理想化的情况下,数据链路层不需要任何协议就可以保证数据传输的正确性。
现在去掉上述的第二个假定,即虽然传送的数据不会产生差错,但接收方接收数据的速率不一定能够跟上发送方发送数据的速率。为使接收方的接收缓冲区在任何情况下都不会溢出,最简单的情况,就是发送方每发送一帧就暂停下来,接收方收到数据帧后就交给主机,然后发送一确认信息给对方,表示接收的任务已完成。这时,发送方才发送下一个数据帧。在这种情况下,接收方的接收缓冲区的大小只要能够装下一个数据帧即可。显然,用这样的方法收、发双方可以同步得很好。需要指出的是,由接收方控制发送方的数据流量,是计算机网络中流量控制的一个重要方法。
以上两种情况的数据发送流程分别如图7-6的左、右图所示。即左图是不需要任何协议的理想化的情况,显然这种完全理想化情况的传输效率是很高的。而右图是由接收方控制发送方发送速率的情况。发送方每发完一帧就必须停下来等待接收方的信息。
图7-6  两种简单情况下的数据传输流程
现将以上具有最简单流量控制的数据链路层协议写成算法如下(假定链路是理想的传输信道,所传送的任何数据既不会出错也不会丢失)。
在发送方:
(1)从主机取一个数据帧;
(2)将数据帧送到数据链路层的发送缓冲区;
(3)将发送缓冲区中的数据帧发送出去;
(4)等待;
(5)若收到由接收节点发过来的信息,则从主机取一个新的数据帧,然后转到步骤(2)。
在接收方:
(1)等待;
(2)若收到由发送节点发过来的数据帧,则将其放入数据链路层的接收缓冲区;
(3)将接收缓冲区中的数据帧上交主机;
(4)向发送节点发一信息,表示数据帧已经上交给主机;
(5)转到步骤(1)。
【责任编辑:雪花 TEL:(010)68476606-8007】

回书目   上一节   下一节

分享到:

栏目热门

更多>>

  1. Linux服务器配置全程实录
  2. 揭秘--优秀PPT这样制作

热点职位

更多>>

热点专题

更多>>

读书

非常网管——网络应用
在网络应用越来越复杂的今天,传统的网络应用已经不能满足企业和用户的需要,这就对网络管理员、信息管理部门提出了更高的要求。

51CTO旗下网站

领先的IT技术网站 51CTO 领先的中文存储媒体 WatchStor 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i 51CTO学院