文档库 最新最全的文档下载
当前位置:文档库 › 停止等待协议

停止等待协议

停止等待协议

停止等待(stop-and-wait)协议是最简单但也是最基本的数据链路层协议。很多有关协议的基本概念都可以从这个协议中学习到。我们先从最简单的情况讲起。

一、不需要数据链路层协议的数据传输

当两个主机进行通信时,应用进程要将数据从应用层逐层往下传,经物理层到达通信线路。通信线路将数据传到远端主机的物理层后,再逐层向上传,最后由应用层交给远程的应用进程。但现在为了把主要精力放在数据链路层的协议上,可以采用一个简化的模型(见下图),即把数据链路层以上的各层用一个主机来代替,而物理层和通信线路则等效成一条简单的链路。数据链路层也可简称为链路层。在发方和收方的链路层分别有一个发送缓冲区和接收缓冲区。若进行全双工通信,则在每一方都要同时设有发送缓冲区和接收缓冲区。缓冲区是必不可少的。这是因为在通信线路上数据是以比特流的形式串行传输的,但在计算机内部数据的传输则是以字节(或若干个字节)为单位并行传输的。因此,必须在计算机的内存中设置一定容量的缓冲区,以便解决数据传输速率不一致的矛盾。

下图所示的简化模型对于一个计算机网络中任意一条链路上的数据传输情况都是适用的。在网络内部,各交换结点的数据链路层的上面只有一个网络层。对于这种交换结点,网络层就相当于简化模型中的主机。

图4-10 两台计算机通过一条链路通信的简化模型

为了深入理解数据链路层的协议,我们先从一种假想的、完全理想化的数据传输过程开始讨论。下面即可看出,对于这种完全理想化的数据传输,数据链路层协议是根本不需要的。

为了和后面的讨论相衔接,我们假定数据传输是以帧为单位。

假定1:链路是理想的传输信道,所传送的任何数据既不会出差错也不会丢失。

假定2:不管发方以多快的速率发送数据,收方总是来得及收下,并及时上交主机。

第一个假定很容易理解。对第二个假定则需加以解释。

我们假设主机A连续不断地向主机B发送数据。在收方,主机B的链路层也就将收到的数据一帧接一帧地交给主机B。在理想情况下,收方链路层的缓冲区每存满一帧就向主机B交付一帧。如果没有专门的流量控制协议,则收方并没有办法控制发方的发送速率,而收方也很难做到和发方绝对精确同步。当收方链路层向主机交付数据的速率略低于发方发送

数据的速率时,缓冲区暂时存放的数据帧就会逐渐堆积起来,最后造成缓冲区溢出和数据帧丢失。因此,上述第二个假定就相当于认为:(1)接收缓冲区的容量为无限大而永远不会溢出;或(2)接收速率与发送速率绝对精确相等。

在这样理想化的条件下,数据链路层当然就不需要任何协议就可以保证数据传输的正确。

二、具有最简单流量控制的数据链路层协议

去掉上述第二个假定,保留第一个假定,即主机A向主机B传输数据的信道仍然是无差错的理想信道。

为了使收方的接收缓冲区在任何情况下都不会溢出,在最简单的情况下,就是发方每发送一帧就暂时停下来。收方收到数据帧后就交付给主机,然后发一信息给发方,表示接收的任务已经完成。这时,发方才再发送下一个数据帧。在这种情况下,收方的接收缓冲区的大小只要能够装得下一个数据帧即可。显然,用这样的方法收发双方能够同步得很好,发方发送数据的流量受收方的控制。由收方控制发方的数据流量,乃是计算机网络中流量控制(flow control)的一个基本方法。

具有最简单流量控制的数据键路层协议如下:

在发送结点:

(1)从主机取一个数据帧;

(2)将数据帧送到数据链路层的发送缓冲区;

(3)将发送缓冲区中的数据帧发送出去;

(4)等待;

(5)若收到由接收结点发过来的信息(此信息的格式与内容可由双方事先商定好),则从主机取一个新的数据帧,然后转到(2)。

在接收结点:

(l)等待;

(2)若收到由发送结点发过来的数据帧,则将其放入数据链路层的接收缓冲区;

(3)将接收缓冲区中的数据帧上交主机;

(4)向发送结点发一信息,表示数据帧已经上交给主机;

(5)转到(l)。

下图是前面所述的两种情况的对比。图(a)是不需要任何协议的理想化情况。主机A 将数据帧(图中用DATA表示)连续发出,而不管发送速率有多快,收方总能够跟得上,收到一帧即交付给主机B。显然,这种完全理想化情况的传输效率是很高的。

图(b)是由收方控制发方发送速率的情况。发方每发完一帧就必须停下来,等待收方的信息。由于假定了数据在传输过程中不会出差错,因此收方将数据帧交给主机B后向发方主机A发送的信息,不需要有任何具体的内容,即不需要说明所收到的数据是否是正确无误的。这相当于只要发回一个不需要装入任何信件的空信封就能起到流量控制的作用。

图(a)不需要任何数据键路层协议的数据传输(b)具有最简单流量控制的数据键路层协议

三、实用的停止等待协议

去掉前面的两个假定,讨论实用的数据链路层协议。这就是说,传输数据的信道不是

可靠的(即不能保证所传的数据不产生差错),并且还需要对数据的发送端进行流量控制。

1 不出差错的情况

下图(a)是数据在传输过程中不出差错的情况。收方在收到一个正确的数据帧后,即

交付给主机B,同时向主机A发送一个确认帧ACK(ACK nowledgment)。当主机A收

到确认帧ACK后才能发送一个新的数据帧。这样就实现了收方对发方的流量控制。

2 数据帧出错

现在假定数据帧在传输过程中出现了差错。由于通常都在数据帧中加上了循环冗余校

验CRC(Cyclic Redundancy Check),所以结点B很容易检验出收到的数据帧是否有差错

(一般用硬件检验)。当发现差错时,结点B就向主机A发送一个否认帧NAK ( N egative

A C K) ,以表示主机A应当重发出现差错的那个数据帧。下图(b)画出了主机A重发数

据帧。如多次出现差错,就要多次重发数据帧,直到收到结点B发来的确认帧ACK为止。

为此,在发送端必须暂时保存已发送过的数据帧的副本。当通信线路质量太差时,则主机A

在重发一定的次数后(如8次或16次,这要事先设定好),即不再进行重发,而是将此情

况向上一层报告。

3 帧丢失

有时链路上的干扰很严重,结点B收不到结点A发来的数据帧。这种情况称为帧丢失

(图(c))。发生帧丢失时结点B当然不会向结点A发送任何应答帧。

图4-12 数据帧在键路上传输的几种情况

如果结点A要等收到结点B的应答信息后再发送下一个数据帧,那么就将永远等待下去。于是就出现了死锁现象。同理,若结点B发过来的应答帧丢失,也会同样出现这种死锁现象。

要解决死锁问题,可在结点A发送完一个数据帧时,就启动一个超时定时器。若到了超时定时器所设立的重发时间t out。而仍收不到结点B的任何应答帧,则结点A就重传前面所发送的这一数据帧(见图4-12(c),(d))。显然,超时定时器设置的重发时间应仔细选择确定。若重发时间选得太短,则在正常情况下也会在对方的应答信息回到发送方之前就过早地重发数据。若重发时间选得太长,则会浪费时间。一般可将重发时间选为略大于“从发完数据帧到收到应答帧所需的平均时间”。

4.重复帧

还有问题:若丢失的是应答帧,则超时重发将使主机B收到两个同样的数据帧。由于主机B现在无法识别重复的数据帧,因而在主机B收到的数据中出现了另一种差错——重复帧。要解决重复帧的问题,必须使每一个数据帧带上不同的发送序号。每发送一个新的数据帧就把它的发送序号加1。若结点B收到发送序号相同的数据帧,就表明出现了重复帧。这时应当丢弃这重复帧,因为已经收到过同样的数据帧并且也交给了主机B。但应注意,此时结点B还必须向结点A发送一个确认帧ACK,因为结点B已经知道结点A还没有收到上一次发过去的确认帧ACK。

序号所占用的比特数是有限的。因此,经过一段时间后,发送序号就会重复。例如,当发送序号占用3个比特时,就可组成共有8个不同的发送序号,从000到111。当数据帧的发送序号为111时,下一个发送序号就又是000。因此,要进行编号就要考虑序号到底要占用多少个比特。序号占用的比特数越少,数据传输的额外开销就越小。对于停止等待协议,由于每发送一个数据帧就停止等待,因此用一个比特来编号就够了。一个比特可以有0和1两种不同的序号。这样,数据帧中的发送序号(以后记为N(S),S表示发送)就以0和1交替的方式出现在数据帧中。每发一个新的数据帧,发送序号就和上次发送的不一样。用这样的方法就可以使收方能够区分开新的数据帧和重发的数据帧了。

四、停止等待协议的算法

为了对上面所述的停止等待协议有一个完整而准确的理解,下面给出此协议的算法。

V(S):发送状态变量

V(R):接收状态变量

N (S):发送序号

图停止等待协议

在发送结点:

(1)从主机取一个数据帧。

(2)V(S)←0。(发送状态变量初始化)

(3)N(S)←V(S);(将发送状态变量的数值写入发送序号),将数据帧送交发送缓冲区。

(4)将发送缓冲区中的数据帧发送出去。

(5)设置超时定时器。(选择适当的超时重发时间tout)

(6)等待。( 等待以下3个事件中最先出现的一个)

(7)若收到确认帧ACK,则:

从主机取一个新的数据帧;

V(S) ← [1-V(S)];(更新发送状态变量,变为下一个序号)

转到(3)。

(8)若收到否认帧NAK,则转到(4)。(重发数据帧)

(9)若超时定时器时间到,则转到(4)。(重发数据帧)

在接收结点:

(1)V(R)← 0。(接收状态变量初始化,其数值等于欲接收的数据帧的发送序号)(2)等待。

(3)当收到一个数据帧,就检查有无产生传输差错(如用CRC)

若检查结果正确无误,则执行后续算法;

否则转到(8)。

(4)若N(S)=V(R),则执行后续算法;(收到发送序号正确的数据帧)

否则丢弃此数据帧,然后转到(7)。

(5)将收到的数据帧中的数据部分送交主机。

(6)V(R)←[1-V(R)]。(更新接收状态变量,准备接收下一个数据帧)

(7)发送确认帧ACK,并转到(2)。

(8)发送否认帧NAK,并转到(2)。

从以上算法可知,停止等待协议中需要特别注意的地方,就是在收发两端各设置一个本地状态变量(仅占1个比特)。对于状态变量需要注意以下几点:

(l)每发送一个数据帧,都必须将发送状态变量V(S)的值(0或1)写到数据帧的发送序号N(S)上。但只有收到一个确认帧ACK后,才更新发送状态变量V(S)一次(将1变成0或0变成1)并发送新的数据帧。

(2)在接收端,每接收到一个数据帧,就要将发方在数据帧上设置的发送序号N(S)与本地的接收状态变量V(R)相比较。若二者相等就表明是新的数据顿,否则为重复帧。

(3)在接收端,若收到一个重复帧,则丢弃之(即不做任何处理),且接收状态变量不变,但此时仍须向发送端发送一个确认帧ACK。

我们还应注意到,发送端在发送完数据帧时,必须在其发送缓冲区中保留此数据帧的副本。这样才能在出差错时进行重发。只有在收到对方发来的确认帧ACK时,方可清除此副本。

由于发送端对出错的数据帧进行重发是自动进行的,所以这种差错控制体制常简称为ARQ(Automatic Repeat reQuest ), 称为自动重发请求或自动请求重发。

作业:修改停等协议算法,当出错的时候,接收方不作任何响应。

五、停止等待协议的定量分析

采用半双工通信模型,横坐标为时间。设结点A向结点B发送数据帧。结点B只发送应答信息而不发送数据帧。全双工通信的定量分析要稍复杂些。

图4-14 停止等待协议中数据帧和应答帧的发送时间关系

数据帧的发送时间(发送时延)t f (s)是数据帧的长度l f(bit)与数据的发送速率C (bit

/s)之比t f =l f /C (s) (4-l)

数据帧沿链路传到结点B还要经历一个传播时延(电信号在物理链路上传播所造成的时延)t p。结点B处理收到的数据帧的时间(处理时间)t pr 。

结点B发送确认帧ACK的时间为t a (意义同t f ),传播时延为t p(设信道的双向传播时延都是一样的)。

结点A收到确认帧后也要花费处理时间,我们设这个时间和处理数据帧的时间一样,都是t pr 。设重发时间(超时定时器所设置的重发时间)为

t out =2t p+2 t pr+t a(4-2)

为研究问题方便起见,我们设上式右端的处理时间t pr和确认帧的发送时间t a都远小于传播时延t p ,这样就将重发时间取为两倍的传播时延,即:

t out =2t p(4-3)

因此,两个发送成功的数据帧之间的最小时间间隔(该时间内最多只能成功发送一个数

据帧)为:

t T =t f+t out=t f+2t p (4-4)

如遇发生差错,则成功发送1个数据帧所需的时间显然要超过t T。

设数据帧出现差错(包括帧丢失)的概率为p,但假设应答帧不会出现差错(我们设确

认帧和否认帧都很短,因而出差错的概率也就较小)。此外,允许重发的次数不受限制。这样,可以得出正确传送一个数据帧所需的平均时间t A v为:

t A v=最后一次成功发送的时间+重发时间

= 成功发送那一次的时间+ 不成功发送的那些次的时间

= t T + t T×重发次数

i p i(1-p) = t T /(1-p) (4-5)

= t T + t T ×∑∞

=1

i

p i是前面 i 次都失败的概率( i等于0在求和中不起作用,故从i 等于1起求和),(1-p)是最后一次成功的概率,互独立,故相乘。当传输差错率增大时,t A v也随之增大。当无差错时,p=0,t A v=t T(无需重传)。

链路最大吞吐量(每秒成功发送的最大帧数):

入max =l/t A v=(l-p)/t T(4-6)

在发送端,设数据帧的实际到达率为入(即每秒到达入个帧),则入不应超过最大吞吐

量入max.

即入≤入max =(l-p)/t T(4-7)

用时间t f进行归一化,得出归一化的吞吐量ρ(即通信量强度、信道利用率)为:ρ=入t f≤入max t f = [(l-p)/t T ] t f = (l-p)/(t T /t f )= (l-p)/α < 1 (4-8)其中参数α是t T的归一化时间(即:t T是t f倍数):

α=(t T /t f )≥1 (4-9)

当重发时间远小于发送时间时,即t out << t f,则t T ≈t f ,因而α≈1,

此时的归一化吞吐量ρ≤(l-p)(4-10)以上所讨论的停止等待协议ARQ的优点是:比较简单,但缺点是:通信信道的利用

率不高。为了克服这一缺点,就产生了另外两种协议,即连续ARQ和选择重传ARQ 。

gobackn协议实验报告

一个数据帧如图所示: 其中有效数据和校验码可能含有转义字符。 (3) 帧中各个字段的定义和编码,计算CRC校验和的多项式定义 帧的定义编码:帧中的第一比特为开头FLAG,第二比特是帧的类型,共定义了{data,ack,nak} frame_kind三种类型,用枚举常量表述,第三比特是顺序编码,用于确定到达帧的顺序,第四比特是ACK捎带确认讯息,记录了当前已收到帧的确认情况,这是数据帧的头部。若为数据帧,从第五比特开始为网路层的数据,到网路层包裹信息结束后,接上4比特的CRC校验讯息,后有一结束字符FLAG表明该帧结束。 CRC校验数:CRC校验数据由函数crc32()产生,函数crc32()返回一个32位整数为数据生成CRC-32校验和,并且把这 32比特校验和附在数据字节之后。 多项式定义:采用的CRC校验方案为CRC-32,生成多项式为: x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x1+1 校验和附加在数据帧尾部,接受方用带校验和的数据来逻辑除以生成多项式,余数为零则数据无误码,反之有误码等待发送方重传。 (4) 协议工作时两个站点之间信息交换的过程控制,尤其是发生误码条件下的控制方案 协议工作时,两个站点通过互发数据包交换数据,而控制讯息则稍带在数据讯息中传递,当遇到超时情况时,则主动发送空数据包以提供讯息。 当出现帧丢失时,如收到帧的序号有跳跃,或者出现CRC校验出错丢弃了某帧,会主动发送NAK否定帧,提示重传,接收方丢弃所有的后续帧。若长期未产生放送消息,则出现ACK超时事件,主动发送ACK帧提示确认,对方收到确认后,滑动窗口继续发送,若一直未收到确认讯息,则出现数据帧超时事件,发送方会自动重发未确认帧。 11.3 软件设计 给出程序的数据结构,模块之间的调用关系和功能,程序流程。 (1)数据结构:数据结构是整个程序的要点之一,程序维护者充分了解数据结构就可以对主 要算法和处理流程有个基本的理解。描述程序中自定义结构体中各成员的用途,定义的全局变量和主函数中的变量的变量名和变量所起的作用。 采用字符数组结构来存放数据帧:

(完整版)计网协议5和协议6程序

程序设计报告 (2011/2012学年第一学期) 题目:数据链路层滑动窗口协议的设计 与实现 专业网络工程 学生姓名朱瑞霖、李小明 学生学号 09211517 、 09211524 日期 2011-12-01

一、实验内容和实验目的 利用所学数据链路层原理,自己设计一个滑动窗口协议,在仿真环境下编程实现有噪音信道环境下两站点之间无差错双工通信。信道模型为8000bps 全双工卫星信道,信道传播时延270毫秒,信道误码率为10-5,信道提供字节流传输服务,网络层分组长度固定为256字节。通过该实验,进一步巩固和深刻理解数据链路层误码检测的CRC 校验技术,以及滑动窗口的工作机理。滑动窗口机制的两个主要目标: (1) 实现有噪音信道环境下的无差错传输; (2)充分利用传输信道的带宽。 在程序能够稳定运行并成功实现第一个目标之后,运行程序并检查在信道没有误码和存在误码两种情况下的信道利用率。为实现第二个目标,提高滑动窗口协议信道利用率,需要根据信道实际情况合理 地为协议配置工作参数,包括滑动窗口的大小和重传定时器时限以及ACK 搭载定时器的时限。这些参数的设计,需要充分理解滑动窗口协议的工作原理并利用所学的理论知识,经过认真的推算,计算出最优 取值,并通过程序的运行进行验证。 通过该实验提高同学的编程能力和实践动手能力,体验协议软件在设计上各种问题和调试难度,设计在运行期可跟踪分析协议工作过程的协议软件,巩固和深刻理解理论知识并利用这些知识对系统进行优化,对实际系统中的协议分层和协议软件的设计与实现有基本的认识。 二、实验环境 Window操作系统下,Microsoft Visual C++ 6.0 集成化开发环境。 三、实验分工 协议5主要由李小明完成,协议6主要由朱瑞霖完成,两协议的测试以及部分参数的设定、测试由两人共同完成。实验报告由李小明和朱瑞霖共同整理完成。 四、软件设计 1、数据结构分析 (a)协议五 #define inc(k)if(k

实验2利用停止等待协议传输数据文件

测控网络实验指导 实验二 利用停止等待协议传输数据文件 一、 实验目的 ? 深入理解停止等待协议的主要特点; ? 深入理解停止等待协议的工作过程; ? 进一步掌握串行口编程的方法。 二、 实验环境 该实验可以看成是前一实验的扩展和深入,它要求在串行口上利用停止等待协议实现文件的可靠传输,因此,实验需要的实验环境与实验一(异步串行通信实验)完全相同。其所需设备、器件及电缆的制作和设备的连接方法可参阅实验一的实验手册。 三、 实验概述 1. 停止等待协议 图2-1 停止等待协议的基本工作过程 图2-2 数据包的丢失和确认信息的丢失示意图 所谓停止等待就是在发送方发完数据报后,需要等待接收方应答信息的到 发送数据包 接收正确认发送数据包重发数据包 发送数据包 接收负确认接收正确认接收正确认接收数据包1正确 发送正确认ACK 接收数据包2错误 发送负确认NAK 接收数据包2正确 发送正确认ACK 接收数据包3正确 发送正确认ACK 接收方 发送数据包接收正确认发送数据包超时重传数据包超时重传数据包接收正确认接收数据包0正确 发送正确认ACK1 接收数据包1正确 发送正确认ACK0 接收数据包1正确(抛弃) 发送正确认ACK0 接收方 发送数据包超时 超时

来。如果发送方接收到正确认信息ACK,那么说明接收方已经正确接收到上一数据包,发送方就可以发送下一数据包;如果发送方接收到负责确认信息NAK,说明接收方收到的数据包是错误的,发送方应该重发,如图2-1所示。 为了保证数据传输的可靠性,实际的停等协议并不像上述的那么简单。在实际应用环境中,至少应该考虑以下两种情况。 (1)数据包丢失 数据包在传输过程中丢失,接收方未收到任何数据,如图2-2所示。由于接收方不知道数据已经发送,因此它不可能给出正确认(ACK)信息或负确认信息(NAK)信息。为了解决这个问题,发送方需要在发送一个数据包后启动一个定时器。一旦在规定时间内没有收到接收方的任何信息,则认为数据包丢失,需要重发该数据包。如果重传一个数据包的次数达到一定值,则认为数据通信信道存在严重问题,数据传输失败。 (2)确认信息丢失或出错 接收方正确接收到数据包,但确认信息在传输过程中丢失或出错,如图2-2所示。这时发送方也不能确定接收方是否收到了数据包。这个问题的解决也是采用定时器的方法,在定时器溢出后重发数据包。但是为了保证接收到的数据不重复,需要给数据包编号。当接收方再次收到同样编号的数据包时,将该包丢弃,并认为上次发送的确认信息丢失或出错,需要重传该确认信息。对于停等协议,至少需要两个编号(通常为0和1)。第一个包的编号为0,第二个包的编号为1,第三个包的编号再为0……如果接收方连续收到了相同编号的数据包,则发生了重复,需要将其丢弃。同时确认信息也需要进行编号,通常用ACK1表示收到编号为0的数据包,并准备接收编号为1的数据包。同样的,ACK0则表示下一个准备接收到的数据包的编号为0。 2.停止等待协议实例——BSC BSC是一种典型的面向字符型停止等待协议,它使用了ASCII码中的10个控制字符完成通信控制功能,并规定了数据报文、控制报文的格式以及协议的操作过程。由于规程简单、容易实现,比较适宜在中低速网络(如电话网)中使用。 控制字符:BSC协议中使用的控制字符的符号、名称、ASCII编码及功能说明如表2-1所示。 表2-1 BSC协议中使用的控制字符与功能

停止等待协议的实现

福建农林大学计算机与信息学院 课程设计报告 课程名称:计算机网络 课程设计题目:停止等待协议的实现 姓名: 系:计算机 专业:计算机科学与技术 年级: 学号: 指导教师: 职称: 2011 年6 月10 日

福建农林大学计算机与信息学院 课程设计报告结果评定 评语: 成绩: 指导教师签字:评定日期:

目录 1、课程设计的目的和任务 (4) 2、课程设计的要求 (4) 3、课程设计的分析与设计 (4) 3.1 设计任务分析 (4) 3.2 设计方案论证 (5) 3.3 详细设计 (5) 3、系统实施 (7) 4、总结与体会 (9) 5、参考文献 (9) 附录:源代码 (10)

停止等待协议的实现 1、课程设计的目的和任务 《计算机网络》课程讲述计算机网络的原理,尤其是TCP/IP协议栈的原理和应用,是一门理论性、应用性、实践性都比较强的课程。而此次的课程设计是在学习完《计算机网络》课程后进行的一次全面的综合能力的检验。 计算机网络的课程设计是从原理和实践的角度,在计算机上编程模拟实现计算机网络的基本协议。通过本次课程设计,使我们对计算机网络的原理能有更加深刻的认识和理解,同时进一步锻炼自己的动手能力。 在这次课程设计中,我设计的的是通过编译语言,编程模拟实现数据链路层协议中的停止等协议。 2、课程设计的要求 通过双方的收发数据而达到相互通信的目的。 3、课程设计的分析与设计 3.1 设计任务分析 停止等待协议是数据链路层的几个协议中最简单的协议,是具有最简单流量控制的数据链路层协议,是数据链路层各种协议的基础。此课程设计是基于winsock 编程,是在VC++6.0的MFC界面下和控制台下实现的。它采用客户机/服务器(C/S)模型,即发送数据的一端为客户端,接收数据的一端为服务器端。停止等待协议就是通过双方的收发数据而达到相互通信的目的。 本课程设计通过编程模拟实现停止等待协议,随机的发送数据,通过服务器的的接受结果和客户端的接受结果显示理解停止等待协议的原理,掌握其应用。

计算机网络协议实验报告

实验报告 项目名称:小型局域网的设计 课程名称:计算机网络B 班级:电G131 姓名:xxx xx 学号:51201320xx 5120132045 教师:张晓明 信息工程学院计算机系

一、实验目的 基于网络协议分析工具Ethereal,通过多种网络应用的实际操作,学习和掌握不同网络协议数据包的分析方法,提高 TCP/IP 协议的分析能力和应用技能。 二、实验前的准备 ●二人一组,分组实验; ●熟悉 Ping、Tracert等命令,学习FTP、HTTP、SMTP和POP3协议; ●安装软件工具Ethereal,并了解其功能、工作原理和使用方法; ●安装任一种端口扫描工具; ●阅读本实验的阅读文献; 三、实验内容、要求和步骤 3.1 学习Ethereal工具的基本操作 学习捕获选项的设置和使用,如考虑源主机和目的主机,正确设置Capture Filter;捕获后设置Display Filter。 3.2 PING命令的网络包捕获分析 PING命令是基于ICMP协议而工作的,发送4个包,正常返回4个包。以主机210.31.32.7 为例,主要实验步骤为: (1)设置“捕获过滤”:在Capture Filter中填写 host 210.31.32.7; (2)开始抓包; (3)在 DOS 下执行PING命令; (4)停止抓包。 (5)设置“显示过滤”:IP.Addr==210.31.32.7 (6)选择某数据包,重点分析其协议部分,特别是协议首部内容,点开所有带+号的内容。 (7)针对重要内容截屏,并解析协议字段中的内容,一并写入 WORD 文档中。

截获数据 Frame 3 (74 bytes on wire,74 bytes captured) Arrival Time: Nov 11,2014:15:49:35 Packet Length:74bytes Capture Length:74bytes Ethernet II,Src: f0:de:f1:ef:cf:3e, Dst: 08:81:f4:9e:47:f0 Internet Protocol,Src Addr:10.10.56.126(10.10.56.126),Dst Addr:210.31.32.7(210.31.32.7) 分析 第三帧,74字节在线,捕获74字节 到达时间:2014年11月11日15点49分35秒 包长度:74字节 捕获长度:74字节 以太网2,源物理地址:f0:de:f1:ef:cf:3e,目标物理地址:08:81:f4:9e:47:f0 源IP地址:10.10.56.126 目标IP地址:210.31.32.7 3.3 TRACERT 命令数据捕获 观察路由跳步过程。分别自行选择校内外2个目标主机。比如, (1)校内:tracert 210.31.32.8

无线红外的停止等待和返回NARQ协议的对比

IEEE 802.11e网络无线红外的停止等待 和返回N ARQ协议的对比 摘要: 在即将运用的IEEE标准802.11e添加一个新的可选确认方案,即所谓的为了支持服务质量(QoS)和更好的利用无线介质(WM)的 (BurstAck爆发)。在本文中著名的Stop-and-Wait(SW)机制和被用作一个有滑动窗口的Go-Back-N(GBN)自动重复请求(ARQ)方案的提高确认(BurstAck破裂)的行为效率进行了的研究。链接参数如,传播MAC协议数据单元(MPDUs)的窗口大小,终端的数量(STAs) ,而且丢帧率(FER)和信噪比(SNR)也会被考虑到。在我们的分析中,其独特的特征红外遥控器的实体层以及标准802.11为红外(IR)无线局域网络而有的管理信息库(MIB)参数和复杂的标准802.11MAC协议的行为也会被考虑到。所得结果显示,在中型网络用作GBN执行得更好的纵发确认是用大的窗口而不是不很高的丢帧率。然而对于小窗口,差质量和大型网络通道并不建议GBN方案。 关键词:IEEE 802.11;SW;GBN,爆裂的肯定 1.介绍 按照IEEE标准传输协议,红外(IR)无线局域网络(WLANs)的终端的固定波长在850到950海里[1]。红外辐射在室内不暗或透明的环境表面会发生反射[2、3]。红外通过多次反射来辐射传播,结果其系统类似无线电在地区或覆盖面积得到建 立。作为一个后果是要提供灵活的终端移动性[45]、。在有较好红外(IR)无线局域网络的地方必须避免产生的干扰(例如飞机,机场、船舶、会议大厅等)。红外(IR)无线局域网络提供无线连接和支持纯粹的建筑室内中[45]、,促使它们有利覆盖大 面积室内空间。此外,光学无线通信系统可以作为候选作为无线网络家用连接(WHL),因为他们可以提供高速家之间的通信设备而且无需认证。 然而,红外光谱有几个缺点。多路的分散性,这是有关接受脉搏的时间分散传 播,是观察国米符号干扰(ISI)的传输速率高于破产10百万位元/秒[3,5-7]。在IEEE 802.11的实例中的红外光谱的链接有1和2兆的传输速率而那些现象是可以避免的。联系的另一个缺点是,周围的红外光谱光引发瞬间噪声,由于光检测过程的随 机噪声性质,而人造光由于周期性干扰光强变化而给人提供干扰[8,9]。对于低和适度的利率的情况下,IEEE 802.11环境噪声的主要因素归与无线的红外链路性能[8,9]。 通常用于中等强度调制(IM)的变送器和直接检测(DD)接受者的传输红外。当直接检测(DD)接收器的使用时,信噪比(SNR)是和光功率平方成正比,而在用无线电传送中它是和传输接受量成正比。因此,由于跟踪和周围的声音则高水平的光功率必须发出,而且是不允许的国际安全制度和终端输出功率约束的。因此,对传输信号必须经过处理以至于让它能检测尽可能低的价信噪比。标准IEEE

停止等待协议的实现

农林大学计算机与信息学院 课程设计报告 课程名称:计算机网络 课程设计题目:停止等待协议的实现 姓名: 系:计算机 专业:计算机科学与技术 年级: 学号: 指导教师: 职称: 2011 年 6 月 10 日

农林大学计算机与信息学院课程设计报告结果评定

目录 1、课程设计的目的和任务 (4) 2、课程设计的要求 (4) 3、课程设计的分析与设计 (4) 3.1 设计任务分析 (4) 3.2 设计方案论证 (5) 3.3 详细设计 (5) 3、系统实施 (7) 4、总结与体会 (9) 5、参考文献 (9) 附录:源代码 (10)

停止等待协议的实现 1、课程设计的目的和任务 《计算机网络》课程讲述计算机网络的原理,尤其是TCP/IP协议栈的原理和应用,是一门理论性、应用性、实践性都比较强的课程。而此次的课程设计是在学习完《计算机网络》课程后进行的一次全面的综合能力的检验。 计算机网络的课程设计是从原理和实践的角度,在计算机上编程模拟实现计算机网络的基本协议。通过本次课程设计,使我们对计算机网络的原理能有更加深刻的认识和理解,同时进一步锻炼自己的动手能力。 在这次课程设计中,我设计的的是通过编译语言,编程模拟实现数据链路层协议中的停止等协议。 2、课程设计的要求 通过双方的收发数据而达到相互通信的目的。 3、课程设计的分析与设计 3.1 设计任务分析 停止等待协议是数据链路层的几个协议中最简单的协议,是具有最简单流量控制的数据链路层协议,是数据链路层各种协议的基础。此课程设计是基于winsock 编程,是在VC++6.0的MFC界面下和控制台下实现的。它采用客户机/服务器(C/S)模型,即发送数据的一端为客户端,接收数据的一端为服务器端。停止等待协议就是通过双方的收发数据而达到相互通信的目的。 本课程设计通过编程模拟实现停止等待协议,随机的发送数据,通过服务器的的接受结果和客户端的接受结果显示理解停止等待协议的原理,掌握其应用。

网络协议实验报告汇总

实验一以太网链路层帧格式分析 一.实验目的 分析MAC层帧结构 二.实验内容及步骤 步骤一:运行ipconfig命令 在Windows的命令提示符界面中输入命令:ipconfig /all,会显示本机的网络信息: 步骤二:编辑LLC信息帧并发送 1、打开协议数据发生器,在工具栏选择“添加”,会弹出“网络包模版”的对话框,在“选择生成的网络包”下拉列表中选择“LLC协议模版”,建立一个LLC帧。

2、在“网络包模版”对话框中点击“确定”按钮后,会出现新建立的数据帧,此时在协议数据发生器的各部分会显示出该帧的信息。 3、编辑LLC帧。 4、点击工具栏或菜单栏中的“发送”,在弹出的“发送数据包”对话框上选中“循环发送”,填入发送次数,选择“开始”按钮,即可按照预定的数目发送该帧。在本例中,选择发送10次。 5、在主机B的网络协议分析仪一端,点击工具栏内的“开始”按钮,对数据帧进行捕获,按“结束”按钮停止捕获。捕获到的数据帧会显示在页面中,可以选择两种视图对捕获到的数据帧进行分析,会话视图和协议视图,可以清楚的看到捕获数据包的分类统计结果。 步骤三:编辑LLC监控帧和无编号帧,并发送和捕获 步骤四:保存捕获的数据帧 步骤五:捕获数据帧并分析 1、启动网络协议分析仪在网络内进行捕获,获得若干以太网帧。 2、对其中的5-10个帧的以太网首部进行观察和分析,分析的内容为:源物理地址、目的物理地址、上层协议类型。 捕获到的数据报报文如下:

对所抓的数据帧进行分析: ①MAC header: 目的物理地址:00:D0:F8:BC:E7:08 源物理地址:00:13:D3:51:44:DD 类型:0800表示IP协议 ②IP header: IP协议报文格式如下: 版本:4表示IPv4 首部长度:5表示5×4=20个字节。 服务类型:00表示正常处理该数据报。 总长度:0028表示此数据报的总长度为40字节。

停止等待协议

?5.4.1 停止等待协议

理想的传输条件特点 ?理想的传输条件有以下两个特点: ?(1) 传输信道不产生差错。 ?(2) 不管发送方以多快的速度发送数据,接收方总是来得及处理收 到的数据。 ?在这样的理想传输条件下,不需要采取任何措施就能够实现可靠传输。 ?然而实际的网络都不具备以上两个理想条件。必须使用一些可靠传输协议,在不可靠的传输信道实现可靠传输。

5.4.1 停止等待协议 ?“停止等待”就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。 ?全双工通信的双方既是发送方也是接收方。 ?为了讨论问题的方便,我们仅考虑 A 发送数据而 B 接收数据并发送确认。因此 A 叫做发送方,而 B 叫做接收方。

无差错情况 A 发送分组 M1,发完就暂停发送,等待 B 的确认 (ACK)。B 收到了 M1 向 A 发送 ACK。A 在收到了对 M1 的确认后,就再发送下一个分组 M2。 A B 停止发送, 等待 ACK 确认 M1 收到 ACK, 继续发送 确认 M2 时间 时间

2. 出现差错 ?在接收方 B 会出现两种情况: ?B 接收 M1 时检测出了差错,就丢弃M1,其他什么也不做(不通知 A 收到有差错的分组)。 ?M1 在传输过程中丢失了,这时 B 当然什么都不知道,也什么都不做。?在这两种情况下,B 都不会发送任何信息。 ?如何保证 B 正确收到了 M1 呢?

2. 出现差错 ?解决方法:超时重传 ?A 为每一个已发送的分组都设置了一个超时计时器。 ?A 只要在超时计时器到期之前收到了相应的确认,就撤销该超时计时器,继续发送下一个分组 M2 。

停止等待协议实验报告

实验停止等待协议分析与协议模拟实现 一、实验目的和任务 1.掌握停止等待协议的原理及分析过程包括使用状态转移图进行协议的分析。 2.在计算机上编程模拟停止等待协议的工作过程并实现文件的端到端传输。 3.能够在文件的传输过程中表现出协议运行所遇到的各种状况,如丢包,差错控制等 二、分析与设计 1.设计任务分析: 停止等待协议是数据链路层的几个协议中最简单的协议,是具有最简单流量控制的数据链路层协议,是数据链路层各种协议的基础。实验是基于winsock编程,是visual C++ win32控制台运用程序实现的。它采用客户机/服务器(C/S)模型,即发送数据的一端为客户端,接收数据的一端为服务器端。停止等待协议就是通过双方的收发数据而达到相互通信的目的。 本实验通过编程模拟实现停止等待协议,随机的发送文件,通过服务器的的接受结果和客户端的接受结果显示理解停止等待协议的原理,掌握其应用。 2.? 协议分析 假定 1:链路是理想的传输信道,所传送的任何数据既不会出差错也不会丢失。假定 2:不管发方以多快的速率发送数据,收方总是来得及收下,并及时上交主机。这个假定就相当于认为:接收端向主机交付数据的速率永远不会低于发送端发送数据的速率。 如果存在这样的传输信道,数据链路层协议也是不需要的。信道不会出错,而且接收方缓存的容量为无限大而永远不会溢出;或接收速率与发送速率绝对精确相等。在上述两个假定的情况下,数据链路层当然就不需要任何协议就可以保证数据传输的正确。 这就是说,传输数据的信道是不可靠的(即不能保证所传的数据不产生差错),并且还需要对数据的发送端进行流量控制。 现在不能保证接收端向主机交付数据的速率永远不低于发送端发送数据的速率。由收方控制发方的数据流收方每接受到发方一帧后,回复确认帧,让发方继续发送下一帧,并且收方将数据帧交给上层软件识别,出现错误就将帧丢掉. 在大多数协议中,流量控制是一组过程,这组过程是用来告诉发送方在等待接收方的应答信号之前最多可以传送多少数据。流量控制有两个要点: (1)数据流不能使接收方过载。任何接收设备都有一个处理输入数据的速率限制,并且存储输入数据的存储器容量也是有限的。接收设备必须在达到这些限制之前通知发送设备并且请求发送设备发送较少的数据帧或是暂停一会儿。在使用输入数据之前,需要对数据进行校验和处理,因此,每个接收设备都有一块存储器,叫做缓冲区,用于存放未来得及处理的数据帧。如果缓冲区将满,接收方也必须能够通知发送方暂停传输,直到接收方又能接收数据。

停止等待协议

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

停止等待协议的编程模拟

青岛农业大学 理学与信息科学学院 计算机网络与通信课程设计报告设计题目停止等待协议的编程模拟 学生专业班级计本05 学生姓名(学号) 指导教师 完成时间 2007年10月17日 实习(设计)地点机房 2007年 10月 17日 停止等待协议的编程模拟 一、课程设计目的和任务 《计算机网络与通信》课程讲述计算机网络的原理,尤其是TCP/IP协议栈的原理和应用,是一门理论性、应用性、实践性都比较强的课程。《计算机网络与通信实习》是学习完《计算机网络与通信》课程后进行的一次全面的综合实习,是本专业实践性重要环节之一。 计算机网络与通信实习是从原理和实践的角度,在计算机上编程模拟实现计算机网络的基本协议。通过本实习,使我们对计算机网络的原理能有更加深刻的认识和理解,同时进一步锻炼自己的动手能力。 在这次课程设计中,我设计的的是通过编译语言,编程模拟实现数据链路层协议中的停止等协议。 二、分析与设计 1.设计任务分析: 停止等待协议是数据链路层的几个协议中最简单的协议,是具有最简单流量控制的数据链路层协议,是数据链路层各种协议的基础。此课程设计是基于winsock 编程,是在VC++6.0的MFC界面下和控制台下实现的。它采用客户机/服务器(C/S)模型,即发送数据的一端为客户端,接收数据的一端为服务器端。停止等待协议就是通过双方的收发数据而达到相互通信的目的。 本课程设计通过编程模拟实现停止等待协议,随机的发送数据,通过服务器的的接受结果和客户端的接受结果显示理解停止等待协议的原理,掌握其应用。 2.设计方案论证 当收方收到一个正确的数据帧后,便会向发方发送一个确认帧ACK,表示发送的数据正确接收。当发方收到确认帧后才能发送一个新的数据帧,这样就实现了接收方对发送方的流量控制。 由于通信线路质量各方面的影响,数据帧从发送方到接收方传输的过程中可能会出现差错。为了保证数据的正确性和完整性,接收方在收到数据后,会用一定的方法

停止等待协议

停止等待协议 一、解释 停止等待协议(stop-and-wait)是最简单但也是最基础的数据链路层协议。 二、过程 1、无差错情况、超时重传的情况分别如下图所示: 2、确认丢失、确认迟到的情况分别如下图所示: 三、要点 只有收到序号正确的确认帧ACKn后,才更新发送状态变量V(S)一次,并发送新的数据帧。 接收端接收到数据帧时,就要将发送序号N(S) 与本地的接收状态变量V(R) 相比较。 若二者相等就表明是新的数据帧,就收下,并发送确认。 否则为重复帧,就必须丢弃。但这时仍须向发送端发送确认帧ACKn,而接收状态变量V(R) 和确认序号n 都不变。 连续出现相同发送序号的数据帧,表明发送端进行了超时重传。连续出现相

同序号的确认帧,表明接收端收到了重复帧。 发送端在发送完数据帧时,必须在其发送缓存中暂时保留这个数据帧的副本。这样才能在出差错时进行重传。只有确认对方已经收到这个数据帧时,才可以清除这个副本。 实用的CRC 检验器都是用硬件完成的。 CRC 检验器能够自动丢弃检测到的出错帧。因此所谓的“丢弃出错帧”,对上层软件或用户来说都是感觉不到的。 发送端对出错的数据帧进行重传是自动进行的,因而这种差错控制体制常简称为ARQ(Automatic Repeat reQuest),直译是自动重传请求,但意思是自动请求重传。 四、注意事项 1、在发送完一个分组后,必须暂时保留已发送的分组的副本。 2、分组和确认分组都必须进行编号。 3、超时计时器的重传时间应当比数据在分组传输的平均往返时间更长一些。 五、ARQ 的优缺点 优点:比较简单。 缺点:通信信道的利用率不高,也就是说,信道还远远没有被数据比特填满。如下图所示: 其公式如下: D D A T U T RTT T =++ 六、定量分析 设tf 是一个数据帧的发送时间,且数据帧的长度是固定不变的。显然,数据帧的发送时间tf 是数据帧的长度 lf (bit)与数据的发送速率 C (bit/s)之比,即 tf = lf /C = lf /C (s) 发送时间tf 也就是数据帧的发送时延。 数据帧沿链路传到结点B 还要经历一个传播时延tp 。 结点 B 收到数据帧要花费时间进行处理,此时间称为处理时间tpr ,发送确认帧 ACK 的发送时间为 ta 。

停等协议

网络实验报告(二) ——停--等协议 一、实验目的: 1.利用VB模拟停--等协议。 2.了解协议内容并模拟传输过程,掌握停--等协议的实现方法。 二、实验环境: 硬件环境:P4 1.6G.128M SDRAM。 系统环境:Windows98操作系统。 开发环境:Microsoft Visual Basic 6.0 中文版。 模拟环境:点到点的面向链接的通信。 三、桢格式: 注: 帧头与帧尾均为字符串“DLE STX”。 对将要发送的数据使用split()函数,以空格为标志进行分割,把数据分成以单词为单位的字符串数组,每次读取一个字符串。 以帧头+空格+数据+空格+帧尾为顺序组帧。分帧时使用split()函数,以空格为标志,把数据帧分解成字符串数组,读出数据,完成组帧。 四、程序流程图:

五、编程原理及思路: 由于接收缓冲只能存放一个帧且接收端需要一定的处理时间。为了防止发送快于接收而导致数据丢失,限制发送端在发送一帧后必须停止发送,等待接收端发确认帧。而接收端在收到一个数据帧并发送网络层后,向发送端发一确认帧。仅当接收方确认正确接收后再继续发送下一帧。 六、程序源代码(VB): 注:此程序的接收端和发送端是同一个程序的不同运行模式。 frmMain.frm: Private g_bConfirm As Boolean '发送一帧后设置为False,收到后设置为True Private Sub cmdReceiverListen_Click() '检查错误 If Val(txtReceiverPort.Text) = 0 Then MsgBox "Please Input Port Number!", vbInformation, "ERROR" Exit Sub End If '开始监听 With sckReceiver .LocalPort = Val(txtReceiverPort.Text) .Listen End With '显示信息 ShowInfo "Listening at : " & sckReceiver.LocalIP & " Port : " & txtReceiverPort.Text cmdReceiverListen.Enabled = False End Sub Private Sub ShowInfo(ByVal sInfo As String) '显示信息到列表 lstInfo.AddItem (sInfo) lstInfo.ListIndex = lstInfo.ListCount - 1 End Sub Private Sub cmdSenderConnect_Click() '连接 If cmdSenderConnect.Caption = "&Connect" Then If txtSenderHostIP.Text = "" Or txtSenderPort.Text = "" Then MsgBox "Invalid IP address/port number input.", vbCritical, "ERROR" Exit Sub End If With sckSender .RemoteHost = txtSenderHostIP.Text .RemotePort = Val(txtSenderPort.Text) .Connect

网络协议族实验报告

网络协议族分析实验报告 设计题目:T cp/Ip协议分析 学生姓名: 系别: 专业: 班级: 学号: 指导教师:

实验四用ethereal工具探究TCP协议 一、实验目的 分析TCP协议 二、实验环境 与因特网连接的计算机网络系统;主机操作系统为windows;Ethereal、IE等软件。 三、实验步骤 1、俘获大量的由本地主机到远程服务器的TCP传输 (1)启动浏览器,打开https://www.wendangku.net/doc/f76337906.html,/ethereal-labs/alice.txt网页,得到ALICE'S ADVENTURES IN WONDERLAND文本,将该文件保存到你的主机上。(2)如图: (3)打开https://www.wendangku.net/doc/f76337906.html,/ethereal-labs/TCP-ethereal-file1.html (4)窗口如下所示。

在Browse按钮旁的文本框中输入保存在你的主机上的文件ALICE'S ADVENTURES IN WONDERLAND的全名(含路径),此时不要按“Upload alice.txt file”按钮 (5)启动Ethereal,开始分组俘获。 (6)在浏览器中,单击“Upload alice.txt file”按钮,将文件上传到https://www.wendangku.net/doc/f76337906.html, 服务器,一旦文件上传完毕,一个简短的贺词信息将显示在你的浏览器窗口中。(7)停止俘获。 2、浏览追踪信息 (1)在显示筛选规则中输入“tcp”,你可以看到在你的主机和服务器之间传输的一系列的tcp和http报文,你应该能看到包含SYN报文的三次握手。也可以看到有你的主机向服务器发送的一个HTTP POST报文和一系列的“http continuation”报文。(2)根据操作回答“四、实验报告内容”中的1-2题。 3、TCP基础 根据操作回答“四、实验报告内容”中的3-10题 四、实验报告内容 在实验的基础上,回答以下问题: 1、向https://www.wendangku.net/doc/f76337906.html,服务器传送文件的客户端主机的IP地址和TCP端口号是多少? 答:客户端主机的IP:172.20.82.58;TCP端口号为:4010。 2、https://www.wendangku.net/doc/f76337906.html,服务器的IP地址是多少?对这一连接,它用来发送和接收TCP报文 段的端口号是多少? 答:服务器的IP地址为:128.119.145.12;发送报文段的端口号为:80; 3、客户服务器之间用于初始化TCP连接的TCP SYN报文段的序号(sequence number)是 多少?在该报文段中,是用什么来标示该报文段是SYN报文段的? 答:报文段的序号为:0;用seq来标示报文段。

编程模拟实现数据链路层协议中的停等协议

一、实验题目:编程模拟实现数据链路层协议中的停等协议 二、实验目的: 1、掌握停止等待协议的基本原理 2、理解数据链路层的主要功能(数据出错控制,数据重复控制,数据丢失控制等等) 3、分析简单的协议数据单元 4、掌握停止等待协议的运行机制 三、停止等待协议的算法, 在发送节点: (1)从主机取一个数据帧,送交发送缓存。 (2)发送状态变量V(S)初始化,V(S)←0。 (3)将发送状态变量值写入数据帧中的发送序号N(S),N(S)←V(S)。 (4)将发送缓存中的数据帧发送出去。 (5)设置超时计时器(选择适当的超时重传时间Tout )。 (6)等待。 (7)收到确认帧ACKn, 若n=1-V(S),则:从主机取一个新的数据帧,放入发送缓存:V(S)←[1-V(S)];转到(3)。 否则,丢弃这个确认帧,转到(6)。 (8)若超时计时器时间到,则转到(4)。 在接收节点: (1)接收状态变量初始化,V(R)←0。 (2)等待。 (3)收到一个数据帧: 若N(S)=V(R),则执行(4); 否则丢弃此数据帧,然后转到(6)。 (4)将收到的数据帧中的数据部分送交上层软件。 (5)更新接收状态变量,准备接收下一个数据帧,V(R)←[1-V(R)]。 (6)n←V(R),发送确认帧ACK,转到(2)。 四、程序源代码: #include #include <> #include <> #include <> d to %d.%d\n\n", LOBYTE, HIBYTE, LOBYTE, HIBYTE); } } void mksock(int type) { PrimaryUDP = socket(AF_INET, type,0); if (PrimaryUDP < 0) { throw Exception("create socket error");

停止等待协议,java

竭诚为您提供优质文档/双击可除 停止等待协议,java 篇一:停止等待协议实验报告 实验停止等待协议分析与协议模拟实现 一、实验目的和任务 1.掌握停止等待协议的原理及分析过程包括使用状态转移图进行协议的分析。 2.在计算机上编程模拟停止等待协议的工作过程并实现文件的端到端传输。 3.能够在文件的传输过程中表现出协议运行所遇到的各种状况,如丢包,差错控制等 二、分析与设计 1.设计任务分析: 停止等待协议是数据链路层的几个协议中最简单的协议,是具有最简单流量控制的数据链路层协议,是数据链路层各种协议的基础。实验是基于winsock编程,是 visualc++6.0win32控制台运用程序实现的。它采用客户机/服务器(c/s)模型,即发送数据的一端为客户端,接收数据的一端为服务器端。停止等待协议就是通过双方的收发数

据而达到相互通信的目的。 本实验通过编程模拟实现停止等待协议,随机的发送文件,通过服务器的的接受结果和客户端的接受结果显示理解停止等待协议的原理,掌握其应用。 2.协议分析 假定1:链路是理想的传输信道,所传送的任何数据既不会出差错也不会丢失。假定2:不管发方以多快的速率发送数据,收方总是来得及收下,并及时上交主机。这个假定就相当于认为:接收端向主机交付数据的速率永远不会低于发送端发送数据的速率。 如果存在这样的传输信道,数据链路层协议也是不需要的。信道不会出错,而且接收方缓存的容量为无限大而永远不会溢出;或接收速率与发送速率绝对精确相等。在上述两个假定的情况下,数据链路层当然就不需要任何协议就可以保证数据传输的正确。 这就是说,传输数据的信道是不可靠的(即不能保证所传的数据不产生差错),并且还需要对数据的发送端进行流量控制。 现在不能保证接收端向主机交付数据的速率永远不低于发送端发送数据的速率。由收方控制发方的数据流收方每接受到发方一帧后,回复确认帧,让发方继续发送下一帧,并且收方将数据帧交给上层软件识别,出现错误就将帧丢掉.

滑动窗口协议仿真

滁州学院 课程设计报告 课程名称:计算机网络 设计题目:滑动窗口协议仿真 系别:计算机与信息工程学院 专业:计算机科学与技术 组别:第五组 起止日期: 2011年11月24日~2011年12月7日指导教师:赵国柱 计算机与信息工程学院二○一一年制

课程设计任务书

一. 引言 二. 基本原理 2.1 窗口机制 2.2 1bit滑动窗口协议 2.3 后退N协议 2.4 选择重传协议 2.5 流量控制 三. 需求分析 3.1 课程设计题目 3.2 开发环境 3.3 运行环境 3.4 课程设计任务及要求 3.5 界面要求 3.6 网络接口要求 四. 详细设计 4.1 结构体的定义 4.2 发送方的主要函数 4.3 接受方的主要函数 五.源代码 5.1 发送方的主要代码 5.2 接收方的主要代码 六. 调试与操作说明 致谢 [参考文献] 课程设计的主要内容

1.引言 早期的网络通信中,通信双方不会考虑网络的拥挤情况直接发送数据。由于大家 不知道网络拥塞状况,一起发送数据,导致中间结点阻塞掉包,谁也发不了数据。在 数据传输过程中,我们总是希望数据传输的更快一些,但如果发送方把数据发送的过快, 接收方就可能来不及接收,这就造成数据的丢失。因此就有了滑动窗口机制来解决这些 问题。早期我们使用的是1bit滑动窗口协议,一次只发送一个帧,等收到ack确认 才发下一个帧,这样对信道的利用率太低了。因此提出了一种采用累积确认的连续ARQ 协议,接收方不必对收到的帧逐个发送ack确认,而是收到几个帧后,对按序到达的最后一 个帧发送ack确认。同1bit滑动窗口协议相比,大大减少了ack数量,并消除了延迟ack 对传输效率的影响。 2.基本原理 2.1 窗口机制 滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口。发送窗口和接收窗口的序号的上下界不一定要一样,甚至大小也可以不同。不同的滑动窗口协议窗口大小一般不同。发送方窗口内的序号代表了那些已经被发送,但是还没有被确认的帧,或者是那些可以被发送的帧。接受方为其窗口内的每一个序号保留了一个缓冲区。与每个缓冲区相关联的还有一位,用来指明该缓冲区是满的还是空的。 2.2 1bit滑动窗口协议 当发送窗口和接收窗口的大小固定为1时,滑动窗口协议退化为停等协议(stop-and-wait)。该协议规定发送方每发送一帧后就要停下来,等待接收方已正确接收的确认(acknowledgement)返回后才能继续发送下一帧。由于接收方需要判断接收到的帧是新发的帧还是重新发送的帧,因此发送方要为每一个帧加一个序号。由于停等协议规定只有一帧完全发送成功后才能发送新的帧,因而只用一比特来编号就够了。其发送方和接收方运行的流程图如图所示。

相关文档