实验一 数据链路层协议的理解与实现

实验一 数据链路层协议的理解与实现

ID:9796542

大小:294.00 KB

页数:11页

时间:2018-05-10

实验一 数据链路层协议的理解与实现_第1页
实验一 数据链路层协议的理解与实现_第2页
实验一 数据链路层协议的理解与实现_第3页
实验一 数据链路层协议的理解与实现_第4页
实验一 数据链路层协议的理解与实现_第5页
资源描述:

《实验一 数据链路层协议的理解与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验一数据链路层协议的理解与实现2011.5.1一、实验目的1、加深对流量控制、差错处理方法的理解2、熟悉TCP/IP编程,将书本知识运用到实验中;3、开拓学生的创新意识,培养学生的独立动手操作的能力二、实验内容利用已有的模拟信道程序,编制发送、接收程序的部分模块,使系统具有可靠的收发功能。三、设计原理实验基本设计原理为利用已经提供的模拟信道channel模拟物理信息介质,编写接收发送模块的部分功能,使得系统具有可靠的收发功能。主要原理阐述如下:1、网络体系结构分层原理在网络分层结构中,每一层要为上一层服务,处在高层次的系统仅仅是利用较低层次的系统提供的服务和功能,体现了层次的封装性,处在

2、不同系统中的同层次实体之间没有直接物理通讯能力,他们的通讯是逻辑通讯。从实验中看,编程过程中,sender与receiver并没有直接联系,而是通过套接字与channel连接,通过channel获得连接通讯,而channel之中的通讯方式,并没有显化的体现在程序之中,这也体现了网络通讯层与层之间的封装思想;2、检错码工作原理——偶校验偶校验的工作原理是在原始数据字节的某一位添加一位附加位,使得结果中的1的个数为偶数,增加的位称为偶校验位。在实验中利用encode函数将要发送的数据进行编码,将偶校验位体现的编码的第四位上;3、差错控制方法——ARQ停等协议本次实验采用自动重发协议ARQ中的停

3、等方式实验差错控制,实验原理为发送方没发完一个数据报必须等待对方确认后才能发送下一个数据报。在实验中具体是这样的,sender方发送一个数据报,该数据报已经包含偶校验位以及数据报总长度信息,待接收方receiver接收到数据报即对数据报的偶校验位以及发送序号进行检查,并与自己所缓存的待发送数据信息以及数据报长度信息进行对比,若是合格则在receiver方显示并返回带有ACK信息的应答帧,否则返回带有NAK信息的应答帧以要求sender方重新发送数据报;4、信道通信方式数据单向传输,接收方要对接收的数据进行检验,检验出错误则要求发送方重发原信息,对于正确的数据也要返回确认信息。四、实验结果及

4、其分析1、正常传输情况下从正常情况下的传输通道观察,收发过程符合ARQ停等协议的收发规则。检查收发过程的校验位,发现一切正常,并且结果正确,收发稳定。2、丢失情况从通道可以观察,在sender发送过字符d的数据报后,信息丢失,根据程序设定若是receiver方在一段时间后没有收到信息,则sender方进行信息重发。通过上图可以看出在信息丢失条件下,收发过程依旧稳定。3、延时情况与信息丢失相同,在延时一定时间以后,信息进行重发,收发过程稳定,算法正确。4、出错情况观察错误发送情况下的信息模拟通道,可以看出,当发送d出错是receiver方返回带有NAK信息的应答帧,此时sender方重新发送

5、字符d的数据报,得到了正确的数据信息,发送过程稳定正确。5、随机情况随机情况下为各种情况的综合表现,从上图可以看出,发送过程发生了延时、信息丢失的情况,经过ARQ停等协议的信息重传,问题得以解决,并发送成功。五、实验中遇到的问题1、sender发送一个字符后,receiver没有应答,系统显示错误并跳出程序经检查发现,由于数据链路层数据传输方向的编写错误,导致信息不能正确传输。正确的方式应该是,在收发方分别建立套接字与信息模拟通道套接字相连,以进行连接通讯.正确的发送方向为:sender_sockfd->channelsender_sockfd->channelreceiver_sockf

6、d->receiver_sockfd正确的回发方向为:receiver_sockfd->channelreceiver_sockfd->channelsender_sockfd->sender_sockfd在编程过程中,注意sendto与recvfrom函数的地址编写即可以保证信息通道的发送正确。2、在发送一个字符后,程序不断要求sender重发数据经检查发现,receiver方不断发送带有NAK信息的应答帧使得sender不断重发,关键问题在于采用偶校验的错误检查机制发生编写问题。存在以下几个方面的问题。关于itoa函数的使用。Itoa的函数功能为把一整数转换为字符串,在实验中,我们将数

7、据报的每一位信息定义为1B,而实际通过试验可以的出结论,对于任意一个字符,在利用itoa函数将其变成二进制字符串的过程中,最后保存为7位编码,假若错误认为为8位编码的话,则可能由于初始化或者系统内部未知原因导致在进行符号1的统计中发生错误,进而使得偶校验位失去作用,receiver检测不到正确的信息,就会不断发送NAK要求重发。解决措施为将字符转换成的二进制编码缓存在只有7为存储单元的数组中。关于字符强制转换的问题。在改

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

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

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