您所在的位置:读书频道 > 网络与维护 > 网络协议 > 7.5.4 1位滑动窗口协议

7.5.4 1位滑动窗口协议

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

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

AD:

7.5.4  1位滑动窗口协议
在7.4.1节介绍的协议都假定数据帧沿着一个方向传输,但事实上大多数的通信都是双向的。当双方都有数据发送时,将确认序号携带在数据帧中传输可以减少开销,这称为捎带应答(Piggybacking)。捎带应答带来的一个问题是:当需要发送确认时没有要发送的数据帧怎么办?这可以让确认信息推迟一点时间再发送,如果仍然没有数据帧要发送,再用一个单独的帧进行确认。本节及后面两节将要介绍的三个协议都是用于双向数据传输的协议,且都属于滑动窗口协议,但它们的效率、复杂度及对内存的需求都不同。
1位滑动窗口协议使用"停-等"方式,所以只需要1比特长的帧序号。由于支持双向传输,所以每个协议实体需要同时完成发送和接收两个功能,过程如下。
(1)初始化发送序号和期待接收的帧序号:next_frame_to_send = 0,frame_expected = 0(next_frame_to_send指明发送方正在发送的哪一帧,而frame_expected则指明了接收方正在等待的哪一帧,在1位滑动窗口协议中,这两个值只能是"0"或者"1");
(2)从网络层接收一个分组,放入缓冲区;
(3)从缓冲区中取出分组构造一个帧,它又分为以下三个小步骤。
将缓冲区中的分组拷入帧的信息域;
将next_frame_to_send拷入发送序号域;
将1- frame_expected(第一个期待的帧)拷入确认序号域。
(4)对最近收到的帧确认。
(5)将帧传给物理层,同时启动相关的计时器;
(6)等待事件发生(帧到达,收到坏帧,超时);
(7)如果发生的事件为帧到达,则从物理层接收一个帧,首先检查帧的seq域,若正是期待接收的帧(seq = frame_expected),则将帧中携带的分组交给网络层,frame_expected加1;然后检查帧的ack域,若正是等待确认的帧(ack = next_frame_to_send),终止相关的计时器,从网络层接收一个新的分组放入缓冲区,next_frame_to_send加1,继续执行下一步。如果发生的是其他事件(收到坏帧,超时),则也继续进行下一步。
(8)用缓冲区中的数据分组、next_frame_to_send和1- frame_expected构造一个帧,传给物理层,同时也启动计时器,返回到步骤(6)。以后就重复继续执行这样的循环。
在这种1位滑动窗口协议中,在正常情况下,发送方和接收方是交替发送的;但当发送方和接收方同时向对方发送或超时设置得太短时,会造成不必要的重发,但协议也能够正常运行。
【责任编辑:雪花 TEL:(010)68476606-8007】

回书目   上一节   下一节

分享到:

栏目热门

更多>>

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

热点职位

更多>>

热点专题

更多>>

读书

软件工程:实践者的研究方法
20多年以来,《软件工程:实践者的研究方法》一书是最受学生和行业专业人员欢迎的软件工程指南。它在全面而系统、概括而清晰地介

51CTO旗下网站

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