滑动窗口协议模拟程序.docx

滑动窗口协议模拟程序.docx

ID:58653646

大小:212.79 KB

页数:11页

时间:2020-10-16

滑动窗口协议模拟程序.docx_第1页
滑动窗口协议模拟程序.docx_第2页
滑动窗口协议模拟程序.docx_第3页
滑动窗口协议模拟程序.docx_第4页
滑动窗口协议模拟程序.docx_第5页
资源描述:

《滑动窗口协议模拟程序.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、课程设计5---滑动窗口协议模拟程序的设计与实现姓名:学号:一、目标任务(1)了解网络协议编程的基本知识;(2)了解滑动窗口协议的工作机制;(3)使用编程语言编写一个滑动窗口协议的模拟程序,按要求实现程序。二、编程语言C语言三、滑动窗口协议介绍3.1滑动窗口协议工作原理TCP协议在工作时,如果发送端的TCP协议软件每传输一个数据分组后,必须等待接收端的确认才能够发送下一个分组,由于网络传输的时延,将有大量时间被用于等待确认,导致传输效率低下。为此TCP在进行数据传输时使用了滑动窗口机制。TCP滑动窗口用来暂存两台计算机间要传送的数据分组。每

2、台运行TCP协议的计算机有两个滑动窗口:一个用于数据发送,另一个用于数据接收。发送端待发数据分组在缓冲区排队等待送出。被滑动窗口框入的分组,是可以在未收到接收确认的情况下最多送出的部分。滑动窗口左端标志X的分组,是已经被接收端确认收到的分组。随着新的确认到来,窗口不断向右滑动。TCP协议软件依靠滑动窗口机制解决传输效率和流量控制问题。它可以在收到确认信息之前发送多个数据分组。这种机制使得网络通信处于忙碌状态,提高了整个网络的吞吐率,它还解决了端到端的通信流量控制问题,允许接收端在拥有容纳足够数据的缓冲之前对传输进行限制。在实际运行中,TCP

3、滑动窗口的大小是可以随时调整的。收发端TCP协议软件在进行分组确认通信时,还交换滑动窗口控制信息,使得双方滑动窗口大小可以根据需要动态变化,达到在提高数据传输效率的同时,防止拥塞的发生。 称窗口左边沿向右边沿靠近为窗口合拢,这种现象发生在数据被发送和确认时。当窗口右边沿向右移动时将允许发送更多的数据,称之为窗口张开。这种现象发生在另一端的接收进程读取已经确认的数据并释放了TCP的接收缓存时。当右边沿向左移动时,称为窗口收缩。HostRequirementsRFC强烈建议不要使用这种方式。但TCP必须能够在某一端产生这种情况时进行处理。如果左

4、边沿到达右边沿,则称其为一个零窗口。3.2滑动窗口算法滑动窗口算法工作过程如下:首先,发送方为每1帧赋一个序号(sequencenumber),记作SeqNum。现在,我们忽略SeqNum是由有限大小的头部字段实现的事实,而假设它能无限增大。发送方维护3个变量:发送窗口大小(sendwindowsize),记作SWS,给出发送方能够发 送但未确认的帧数的上界; LAR表示最近收到的确认帧(lastacknowledgementreceived)的序号;LFS表示最近发送的帧(lastframesent)的序号,发送方还维持如下的不变式:LA

5、R-LFS≤SWS 。图3-1滑动窗口算法的时间线当一个确认到达时,发送方向右移动LAR,从而允许发送方发送另一帧。同时,发送方为所发的每个帧设置一个定时器,如果定时器在ACK到达之前超时,则重发此帧。注意:发送方必须存储最多SWS个帧,因为在它们得到确认之前必须准备重发。接收方维护下面3个变量:接收窗口大小(receivewindowsize),记为RWS,给出接收方所能接收的无序帧数目的上界;LAF表示可接收帧(largestacceptableframe)的序号;LFR表示最近收到的帧(lastframereceived)的序号。接收

6、方也维持如下不变式:LFS-LAR≤SWS 图3-2接收方的滑动窗口当一个具有顺序号SeqNum的帧到达时,接收方采取如下行动:如果SeqNum≤LFR或SeqNum>LAF,那么帧不在接收窗口内,于是被丢弃;如果LFR<SeqNum≤LAF,那么帧在接收窗口内,于是被接收。现在接收方需要决定是否发送一个ACK。设SeqNumToACK表示未被确认帧的最大序号,则序号小于或等于SeqNumToACK的帧都已收到。即使已经收到更高序号的分组,接收方仍确认SeqNumToACK的接收。这种确认被称为是累积的(cumulative)。然后它设置L

7、FA=SeqNumToACK,并调整LFA=LFR+RWS。LFRLFR图3-3接收方的滑动窗口窗口协议算法有三个功能:l在不可靠链路上可靠地传输帧l保持帧的传输顺序l支持流量控制一、设计方案及分析4.1窗口机制总体设计及分析图4-1发送方和接收方状态示意图 设计分析:(1)初始态,发送方没有帧发出,发送窗口前后沿相重合。接收方0号窗口打开,等待接收0号帧;(2)发送方打开0号窗口,表示已发出0帧但尚未确认返回信息。此时接收窗口状态不变;(3)发送方打开0、1号窗口,表示0、1号帧均在等待确认之列。至此,发送方打开的窗口数已达规定限度,在未

8、收到新的确认返回帧之前,发送方将暂停发送新的数据帧。接收窗口此时状态仍未变;(4)接收方已收到0号帧,0号窗口关闭,1号窗口打开,表示准备接收1号帧。此时发送窗口状态不变;(5)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。