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

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一 数据链路层协议的理解与实现

实验一 数据链路层协议的理解与实现 2011.5.1 一、实验目的 1、加深对流量控制、差错处理方法的理解 2、熟悉TCP/IP编程, 将书本知识运用到实验中; 3、开拓学生的创新意识,培养学生的独立动手操作的能力 二、实验内容 利用已有的模拟信道程序,编制发送、接收程序的部分模块,使系统具有可靠的收发功能。 三、设计原理 实验基本设计原理为利用已经提供的模拟信道channel模拟物理信息介质,编写接收发送模块的部分功能,使得系统具有可靠的收发功能。主要原理阐述如下: 1、网络体系结构分层原理 在网络分层结构中,每一层要为上一层服务,处在高层次的系统仅仅是利用较低层次的系统提供的服务和功能,体现了层次的封装性,处在不同系统中的同层次实体之间没有直接物理通讯能力,他们的通讯是逻辑通讯。从实验中看,编程过程中,sender 与receiver并没有直接联系,而是通过套接字与channel连接,通过channel获得连接通讯,而channel之中的通讯方式,并没有显化的体现在程序之中,这也体现了网络通讯层与层之间的封装思想; 2、检错码工作原理——偶校验 偶校验的工作原理是在原始数据字节的某一位添加一位附加位,使得结果中的1的个数为偶数,增加的位称为偶校验位。在实验中利用encode函数将要发送的数据进行编码,将偶校验位体现的编码的第四位上; 3、差错控制方法——ARQ停等协议 本次实验采用自动重发协议ARQ中的停等方式实验差错控制,实验原理为发送方没发完一个数据报必须等待对方确认后才能发送下一个数据报。在实验中具体是这样的,sender方发送一个数据报,该数据报已经包含偶校验位以及数据报总长度信息,待接收方receiver接收到数据报即对数据报的偶校验位以及发送序号进行检查,并与自己所缓存的待发送数据信息以及数据报长度信息进行对比,若是合格则在receiver方显示并返回带有ACK信息的应答帧,否则返回带有NAK信息的应答帧以要求sender方重新发送数据报; 4、信道通信方式 数据单向传输,接收方要对接收的数据进行检验,检验出错误则要求发送方重发原信息,对于正确的数据也要返回确认信息。 四、实验结果及其分析 1、正常传输情况下 从正常情况下的传输通道观察,收发过程符合ARQ停等协议的收发规则。检查收发过程的校验位,发现一切正常,并且结果正确,收发稳定。 2、丢失情况 从通道可以观察,在sender发送过字符d的数据报后,信息丢失,根据程序设定若是receiver方在一段时间后没有收到信息,则sender方进行信息重发。通过上图可以看出在信息丢失条件下,收发过程依旧稳定。 3、延时情况 与信息丢失相同,在延时一定时间以后,信息进行重发,收发过程稳定,算法正确。 4、出错情况 观察错误发送情况下的信息模拟通道,可以看出,当发送d出错是receiver方返回带有NAK信息的应答帧,此时sender方重新发送字符d的数据报,得到了正确的数据信息,发送过程稳定正确。 5、随机情况 随机情况下为各种情况的综合表现,从上图可以看出,发送过程发生了延时、信息丢失的情况,经过ARQ停等协议的信息重传,问题得以解决,并发送成功。 五、实验中遇到的问题 1、sender发送一个字符后,receiver没有应答,系统显示错误并跳出程序 经检查发现,由于数据链路层数据传输方向的编写错误,导致信息不能正确传输。正确的方式应该是,在收发方分别建立套接字与信息模拟通道套接字相连,以进行连接通讯. 正确的发送方向为: sender_sockfd- channelsender_sockfd-channelreceiver_sockfd-receiver_sockfd 正确的回发方向为: receiver_sockfd- channelreceiver_sockfd- channelsender_sockfd- sender_sockfd 在编程过程中,注意sendto与recvfrom函数的地址编写即可以保证信息通道的发送正确。 2、在发送一个字符后,程序不断要求sender重发数据 经检查发现,receiver方不断发送带有NAK信息的应答帧使得sender不断重发,关键问题在于采用偶校验的错误检查机制发生编写问题。存在以下几个方面的问题。 关于itoa函数的使用。Itoa的函数功能为把一整数转换为字符串msg_char[i]==1,改变为msg_char[i]==1后,发现1的个数统计得到正常运行。 3、数据可以正常传输后,发现打印出现问题 在收发方基本可以正常传送数据后,发现程序打印出现问题。主要出现的问题有两个:1、数据在发送完毕后会不断重发某一个数据;2、在延时情况下,发现在数据传送完成后sender

文档评论(0)

pangzilva + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档