滑动窗口协议设计与实现-停等协议发送方
- 格式:doc
- 大小:15.00 KB
- 文档页数:1
选择重传协议,窗口大小篇一:计算机网络部分习题答案1 考虑在图5-8中的4比特生成多项式G,假设D的值为10101010。
R的值是什么?答:由图5-8知:1001G用D除以G,过程如下:3. 考虑一种GBN协议,其发送方窗口为3,序号范围为1,024。
假设在时刻t,接收方期待的下一个有序分组的序号是k。
假设媒体不会对报文重新排序。
回答以下问题:a. 在t时刻,发送方窗口内的报文序号可能是多少?为什么?b. 在t时刻,在当前传播回到发送方的所有可能报文中,ACK字段中所有可能值是多少?为什么?答:一般而言,发送方窗口为N(本题中N=3)。
a. 一种情况是,接收方收到k-1号分组,并且对之前接收到的所有分组都进行了确认,且确认正确到达了发送方,那么发送方的窗口[k,k+N-1]。
如果处于另一种极端,发送方未收到任何ACK,窗口[k-N,k-1]。
因此,窗口始于[k-N,k]中某一点,大小为3。
b. 接收方等待分组k,收到和确认了k-1及其以前所有分组,如果这N个ACK未到达发送方,ACK范围[k-N,k-1],由于发送方已经发送分组[k-N,k-1],所以肯定收到了ACK k-N-1,根据累积确认原理,接收方一旦对k-N-1进行确认,则不会再对小于k-N-1号分组确认,故而ACK范围[k-N-1,k-1]。
滑动窗口概念停等法( WT = WR = 1 )滑动窗口法:1 出错全部重发( WT ≤ 2n-1 ) (n次方)2出错选择重发( WR ≤ 2n -1) (n-1次方)这个滑动窗口的概念网络上很多关于它的概念,但是都不是很清楚,我把一些难以理解的概念以问答的方式写出来来回答下:在停止等待协议中,确认帧是否需要序号?请说明理由。
答:在一般情况下,确认帧不需要序号。
但如果超时时间设置短了一些,则可能会出现问题,即有时发送方会分不清对哪一帧的确认。
试证明:当用n个比特进行编号时,若接收窗口的大小为1,则只有在发送窗口的大小WT≤2n-1时,连续ARQ协议才能正确运行。
TCP滑动窗⼝与回退N针协议滑动窗⼝协议1.发送端和接收端分别设定发送窗⼝和接收窗⼝。
2.三次握⼿的时候,客户端把⾃⼰的缓冲区⼤⼩也就是窗⼝⼤⼩发送给服务器,服务器回应是也将窗⼝⼤⼩发送给客户端,服务器客户端都知道了彼此的窗⼝⼤⼩。
3.⽐如主机A的发送窗⼝⼤⼩为5,主机A可以向主机B发送5个单元,如果B缓冲区满了,A就要等待B确认才能继续发送数据。
4.如果缓冲区中有1个报⽂被进程读取,主机B就会回复ACK给主机A,接收窗⼝向前滑动,报⽂中窗⼝⼤⼩为1,就说明A还可以发送1个单元的数据,发送窗⼝向前滑动,之后等待主机B的确认报⽂。
只有接收窗⼝向前滑动并发送了确认时,发送窗⼝才能向前滑动。
停⽌等待ARQ协议(stop and wait)当发送窗⼝和接收窗⼝都等于1时,就是停⽌等待协议。
发送端给接收端发送数据,等待接收端确认回复ACk,并停⽌发送新的数据包,开启计时器。
数据包在计时器超时之前得到确认,那么计时器就会关闭,并发送下⼀个数据包。
如果计时器超时,发送端就认为数据包丢失或被破坏,需要重新发送之前的数据包,说明数据包在得到确认之前,发送端需要存储数据包的副本。
停⽌等待协议是发出⼀个帧后得到确认才发下⼀个,降低了信道的利⽤率。
退后N帧协议在发送完⼀个帧后,不⽤停下来等待确认,⽽是可以连续发送多个数据帧。
收到确认帧时,任可发送数据,这样就减少了等待时间,整个通信的通吞吐量提⾼。
如果前⼀个帧在超时时间内未得到确认,就认为丢失或被破坏,需要重发出错帧及其后⾯的所有数据帧。
这样有可能有把正确的数据帧重传⼀遍,降低了传送效率。
线路很差时,使⽤退后N帧的协议会浪费⼤量的带宽重传帧。
选择重传协议NAK:⾮确认帧,当在⼀定时间内没有收到某个数据帧的ACK时,回复⼀个NACK。
在发送过程中,如果⼀个数据帧计时器超时,就认为该帧丢失或者被破坏,接收端只把出错的的帧丢弃,其后⾯的数据帧保存在缓存中,并向发送端回复NAK。
HDLC协议协议名称:HDLC协议一、引言HDLC(High-Level Data Link Control)协议是一种数据链路层协议,用于在计算机网络中进行可靠的数据传输。
本协议定义了数据的帧格式、错误检测和纠正机制、流量控制以及数据的传输顺序等重要内容。
本文将详细介绍HDLC协议的标准格式及其相关要求。
二、协议标准格式1. 帧格式HDLC协议使用帧(Frame)作为数据传输的基本单位。
每个帧由标志字节(Flag)、地址字段(Address)、控制字段(Control)、信息字段(Information)和帧检验序列(FCS)组成。
帧格式如下:| 标志字节 | 地址字段 | 控制字段 | 信息字段 | FCS | 标志字节 ||----------|----------|----------|----------|-----|----------|| 1字节 | 1字节 | 1字节 | 可变长度 | 2字节 | 1字节 |- 标志字节:用于标识帧的开始和结束,通常为01111110。
- 地址字段:指定接收方的地址,可用于多点通信。
- 控制字段:用于控制帧的流程和功能,如传输模式、错误检测等。
- 信息字段:携带实际的数据内容。
- FCS:帧检验序列,用于检测和纠正传输过程中的错误。
2. 流程控制HDLC协议支持两种基本的流程控制机制:停止-等待(Stop-and-Wait)和滑动窗口(Sliding Window)。
- 停止-等待:发送方发送一个帧后,必须等待接收方的确认帧才能发送下一个帧。
- 滑动窗口:发送方可以连续发送多个帧,接收方根据窗口大小来确认接收的帧。
3. 错误检测和纠正为了确保数据的可靠传输,HDLC协议使用循环冗余检验(CRC)算法进行错误检测和纠正。
发送方在帧的FCS字段中计算并附加一个校验值,接收方则通过计算收到的帧的FCS字段来验证数据的完整性。
4. 传输顺序HDLC协议采用字节顺序传输,即按照字节的顺序依次传输数据。
课程设计任务书
计通学院通信工程专业
课程名称计算机网络课程设计时间2013~2014学年第二学期18~19周学生姓名张娟娟指导老师姜腊林
题目滑动窗口协议设计与实现——停等协议发送方实现
主要内容:
使用Socket编程技术,用C语言实现停等协议的发送程序,具体如下:
(1)设计相关的C语言数据类型;
(2)能够发送一个分组后等待确认,并显示发送分组的序号;
(3)能够接收接收方发送的确认分组,并显示确认分组序号,滑动发送窗口,发送下一分组;
(4)能够实现超时重传出错分组;
要求:
(1)进一步熟悉网络体系结构,网络分层、网络协议,特别是滑动窗口协议的原理;(2)进一步熟悉C语言,特别是函数、结构体、指针、C语言库函数,学会Socket编程技术;
(3)学会小组合作工作方式;
(4)独立完成任务书规定的任务并按要求编写课程设计报告书。
应当提交的文件:
(1)课程设计报告:包括课程设计目的和内容,基本原理,程序设计(流程图),程序实现(相关数据结构、函数定义等),测试(运行)结果。
(2)课程设计附件(源程序文件和可执行文件)。