- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验二 数据链路层实验
实验项目性质:设计性 计划学时:4
实 验 环 境: 实验日期:2015年10月14日
一、实验目的
1、理解并掌握数据链路层协议的功能。
2、进一步理解停止等待协议和滑动窗口协议的基本工作原理。
3、掌握计算机网络协议的基本实现技术。
4、利用RS 232C通信接口实现两台PC间传输文件。
二、实验内容与要求
1、设计完成数据链路层相关类;
2、开发一个使用RS232C接口在两台计算机之间采用停止等待协议传输信息(文件)的程序;
3、开发一个使用RS232C接口在两台计算机之间采用滑动窗口协议传输文件的程序。
完成实验内容中的第1、2部分,有能力的同学完成全部内容。
三、实验(设计)仪器设备和材料清单
计算机两台,串行电缆一根。
四.相关知识
1 数据路层概述
数据链路层协议应提供的基本功能有:
(1) 数据在数据链路上的正常传输(建立、维护和释放)。
(2) 帧定界与同步,以实现透明传输。
(3) 差错控制和流量控制。
(4) 透明传输。
2 数据成帧方法
在数据链路层,为实现透明传输及进行差错控制和流量控制,在把数据送到物理层之前,需将若干个数据组成一帧,并在其中加上其他必要的控制信息。控制信息形成(数据成帧)的方法有以下几种:字符计数法、带字符填充的首尾界符法、带填充位的首尾标志法、物理层编码违例法。
3 差错控制与流量控制
为确保帧可靠地交付接收方,接收方在收到帧后,应向发送方应答,告知是否正确收到帧,因此在数据链路层要建立差错控制机制: 差错控制方法、CRC循环冗余校验、流量控制。
4 数据链路层协议
(1) 停止等待协议
停止等待协议的基本原理是:发送方在数据帧中加入校验码(CRC),由接收方检查;若出错,返回NAK帧(否认帧),否则发送ACK帧(确认帧);发送方收到NAK帧后重发数据帧,若收到ACK帧可发送下一帧。当超时计时事件发生时,重发丢失的帧,这样可通过等待发送来实现流量控制,如图3-2所示。
停止等待协议发送方的算法如下:
(1) 从主机取一个数据帧。
(2) V(s) --0,发送方状态变量初始化。
(3) N(s)-- V(s)(置发送序号),将数据帧送发送缓冲区。
(4) 将发送缓冲的数据发送。
(5) 置超时定时器。
(6) 等待(下列三种情况)。
(7) 收到回答ACK ,从主机取一个新数据帧, V(s) --[1-V(s)],转(3)。
图3-2 停止等待协议工作原理示意图
(8) 收到回答NAK ,转(4)。
(9) 超时,转(4)。
接收方的算法如下:
(1) V(r) --0, 接收方状态变量初始化。
(2) 等待。
(3) 收到一个数据帧后,测试正确继续;否则传输出错,转(8)。
(4) 如果接收到的帧序号等于期待的帧序号( N(s) = V(r)) ,继续;否则丢弃该数据,转(7)。
(5) 将接收帧的数据部分上交主机。
(6) V(r) --[1- V(r)]。
(7) 向发方发ACK ,转(2)。
(8) 向发方发NAK ,转(2)。
停止等待协议的算法流程如图3-3所示,其中V(s) 和V(r)分别是发送方和接收方维护的状态变量,N(s)是发送序号。
图3-3 停止等待协议的算法
停止等待协议算法简单,只适合传送少量的大的帧的情况。但大的数据块要分成许多帧传送,此时停止等待协议不适用,原因是本协议只允许同时只有一帧在链路上传送,链路利用率低。
(2) 连续重传ARQ协议
为了提高信道利用率,发送方发完一帧后,不必停下来等待对方的应答,可以连续发送若干帧;如果在发送过程中收到接收方的肯定应答,可以继续发送;若收到对其中某一帧的否认帧,则从该帧开始的后续帧全部重发,如图3-4。由于减少了等待时间,整个通信的吞吐量就提高了,提高了信道利用率。但回退重传(Go-back-N)会导致某些已正确接收的帧的重传,因此降低了发送效率。当误码率较低时,连续重传ARQ优于停止等待协议;反之则不一定。
图3-4 连续重传ARQ协议工作原理示意图
(3) 滑动窗口协议(Sliding Window Protocol)
在使用连续重传ARQ协议时,如果发送端一直没有收到对方的确认信息,那么实际上发送端并不能无限制地发送其数据帧。这是因为:
(1) 当未被确认的数据帧的数目太多时,只要有一帧出了差错,就可能要有很多的数据帧需要重传,这必然要白白花费较多的时间,因而增大开销。
(2) 为了对所发送出去的大量数据帧进行编号,每个数据帧的发送序号也要占用较多的比特数,这样又增加了一些不必要开销。
连续ARQ协议中,每一个要发出的帧都包含一个序列号,范围从0到最大(0 ~ 2n – 1,一般用n个二进制位表示),使得序列号能恰好放入n位的字段中,n同时
文档评论(0)