计算机网络分层结构实验报告,计算机网络数据链路层的实验报告

66f65878d34bf6126b9eb22d89d7f7cb.png

计算机网络实验和报告计算机网络数据链路层实验报告0/27计算机网络实验和报告Ŀ1. 实验内容和实验环境描述(1)实验内容和目的(2)实验环境二,软件设计(1)数据结构(2)模块结构(3)算法流程3.实验理论分析4.实验结果: (1)性能测试记录表(2)屏幕截图(因为有近200个屏幕截图,此处仅列出了最佳参数的情况,其余参数比较表及其日志文件位于“参数比较”文件夹中. 5.源程序列表. 6实验结果分析7.研究和探索问题8.实验总结和经验报告I.实验内容和实验环境的描述(1)实验内容和目的使用学习的数据链路层原理,您可以设计一个自己滑动窗口协议并在实际环境中对其编程,以在音频通道环境中的两个站点之间实现无噪声. nication. 信道模型为8000bps全双工卫星信道,信道传播延迟为270毫秒,信道误码率为10-5,该信道提供字节流传输服务,网络层数据包长度固定为256字节. 通过本实验,我们将进一步巩固和深入理解数据链路层错误检测的CRC验证技术以及滑动窗口的工作机制. 滑动窗口机制的两个主要目标: (1)在嘈杂的信道环境中实现无错误的传输; (2)充分利用传输通道的带宽.

程序可以稳定运行并成功实现第一个目标后,请在没有错误且通道中存在错误的情况下运行程序并检查通道利用率. 为了达到第二个目标,提高滑动窗口协议的信道利用率,有必要根据信道的实际情况合理配置协议的工作参数,包括滑动窗口的大小和重传定时器. 时间限制和ACK携带计时器的时间限制. 这些参数的设计需要充分了解滑动窗口协议的工作原理,并使用经过学习的理论知识,经过仔细计算后,可以计算出最佳阈值,并通过运行程序进行验证. 通过该实验,学生将提高他们的编程和实践技能,在调试协议软件时遇到各种问题和困难,设计可以跟踪和分析协议在运行过程中的工作过程的协议软件,并巩固和深刻地了解理论知识. 这些知识可以优化系统,并且对实际系统中的协议分层和协议软件设计有基本的了解. (2)实验环境Windows XP环境PC,Microsoft Visual C ++ 6.0集成开发环境. 二,软件设计(1)数据结构(选择性)#define MAX_SEQ 15 #define NR_BUFS((MAX_SEQ + 1)/ 2)#define DATA_TIMER 3000 #define ACK_TIMER 240 struct FRAME {unsigned char kind; 2/27 //帧超时时间间隔//确认计算机网络实验的超时间隔·报告未签名的确认;无符号字符序列;未签名的字符数据[PKT_LEN]; unsigned int padding;}; int no_nak = 1;静态诠释phl_ready = 0; unsigned char oldest_frame = MAX_SEQ +1;其中kind表示数据类型; ack表示确认帧; seq表示帧的序列号;数据[PKT_LEN]指示数据内容;此处不使用填充.

静态无符号字符frame_nr = 0,缓冲区[MAX_SEQ + 1] [PKT_LEN],nbuffered = 0;静态无符号字符frame_expected = 0;静态无符号字符ack_expected = 0;静态无符号字符next_frame_to_send = 0;静态诠释phl_ready = 0; Frame_nr表示帧的当前序列号; buffer表示用于存储来自网络层数据包的数据的缓冲区; nbuffered表示已发送但尚未收到确认的帧; frame_expected表示站点希望接收的下一帧; ack_expected表示站点希望接收的确认帧; next_frame_to_send表示要发送的帧的序号,即当前正在发送的帧的序号; phl_ready表示物理层的当前状态,1表示物理层已准备好,0表示尚未准备好. int事件,arg,i,len = 0;事件表示接收方正在等待的接收事件; arg表示物理层到达的字节数; i表示主要功能中for循环使用的音量; len表示帧的长度.

7a7a543c29147e9ceff09415b1e88072.png

struct FRAME f表示帧数. (go_back_n)#define DATA_TIMER 3000 #define MAX_SEQ 7 struct FRAME {unsigned char kind; / * FRAME_DATA * /无符号字符; 3/27 //标记已发送到nak计算机网络实验·报告未签名的字符序列;未签名的字符数据[PKT_LEN]; unsigned int padding;};静态无符号字符frame_nr = 0,缓冲区[MAX_SEQ + 1] [PKT_LEN],nbuffered = 0;静态无符号字符frame_expected = 0;静态诠释phl_ready = 0;静态无符号字符ack_expected = 0; //发出最早的帧号,但未确认为静态未签名字符char next_frame_to_send = 0; //下一个要在缓冲设备中发送的帧4/27计算机网络实验·报告(2)模块结构5/27计算机网络实验和报告功能(无符号字符a,无符号字符b,无符号字符c)之间使用亍进行确定接收到的ACK序列号是否在发送窗口内.

a是下限,b是确认号,c是上限. 函数put_frame(无符号char * frame,int len)使用亍check frame来检查数据的正确性. 函数send_data_frame(void)使用发送方将数据帧发送到接收方. (3)算法流程Go-Back-N和选择性协议的过程大致相同,不同之处在于如何处理错误通道中的错误帧. 当发生错误时,Go-Back-N返回未确认的第一帧高性能计算机 网络 链路数,并选择性地发送NAK告知发送方哪个帧错误,发送方可以知道要发送哪个帧. 6/27计算机网络实验·报告7/27计算机网络实验·报告III. 实验理论分析(1)协议软件是否可以在带有错误代码的信道环境中实现无错误传输,并采用CRC检查和重发技术来发现和纠正错误. (2)该程序更健壮,可以在高负载和高误码率的条件下工作. 在低误码率通道条件下,程序运行平稳,没有任何错误,并且具有良好的鲁棒性. 在高误码率通道条件下,程序有时会中断,但大多数情况下会中断,因此该程序很健壮. (3)滑动窗口的大小选择该参数直接关系到信道利用率和数据拥塞的问题;如果太小,会导致信道利用率低,并且长时间没有数据在信道中传输;如果太大,则数据传输太快,将导致接收方的数据链路层对其进行处理. 数据物理层和通道拥塞将导致数据丢失并增加错误率.

(4)在go_back_n协议中(假设接收方始终进行数据传输,即没有确认计时器超时),滑动窗口M的大小,信道传输延迟a,传输速率c和帧大小f当满足以下关系时,信道利用率(M *(f / c)/ [2a + 2(f / c)])接近100%: M> = [2a + 2 *(f / c)] /(f / c);实际的数据传输8/27计算机网络实验和报告很可能在一定时间内没有从接收方返回数据,这涉及到ack帧的单独传输问题,因此一般的信道利用率可能达到100% ,但是M的选择必须至少满足公式. 为了防止M太大的问题,可以通过对实际测试结果的分析来获得适当的M值. 在选择协议中,发送方和接收方都保持一个相等长度的大发送/接收窗口,并且发送/接收缓冲池不能太短(可以将最小值设置为发送/接收窗口). 缓冲的作用类似于GobackN,但是增加的接收方窗口不缓冲池,其作用是: 当接收方收到错误帧或丌是期望的下一帧时,此时,它将仅发送nak帧(需要控制频率,以避免接收机接收太多相同的干扰信号和频繁的重传. 接收方不会缓冲落在窗口大小范围内的帧,因此它必须依赖接收方. 发送方重新发送发送窗口中的所有值以获得

1-810-jpg_6-1080-0-0-1080.jpg

.

由于这是选择性重传,因此只要不需要重新传输错误帧就可以. 即使通道中充满了数据帧高性能计算机 网络 链路数,错误后重发的成本也非常低. 实验表明,最佳窗口数为15. (5)错误控制方案通过附带确认来完成可靠的数据通信. 当信道错误导致接收到的帧中出现错误时,将丢弃所有后续帧. 此时,发送者长时间接收到确认消息并引起接收. 计时器到期后,发送方重新接收. 当接收方不发送数据并且发送方无法接收the带式确认时,确认计时器已到期,并构造一个确认帧以进行单独的传输. (6)CRC校验和的生成和验证protocol.h头文件中的函数原型为: unsigned int crc32(unsigned char * buf,int len);本实验中使用的CRC校验方案为CRC-32. IEEE802.3以太网校验和多项式相同. 生成多项式为: x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x1 + 1 CRC校验和在软件中生成. 通常,使用表2叠加方法逐位对模2进行变换,以验证整个CRC32响应是否为0: 校验和正确为0,否则. 为0. 根据我对CRC和计算的理解,接收到的32位CRC错误的概率非常小. 考虑到当前的信道传输速度和数据量,错误可能只会在几年甚至十年内发生一次.

因此,我对客户的建议是,除非有特殊要求,否则我们必须设计更复杂的验证方法. 32位CRC基本上可以满足当前的大多数需求. 否则,设计更准确的验证方法需要更负责任的数学推导和更负责任的编码技术,从而增加整个协议的设计成本. 9/27计算机网络实验和报告IV. 实验结果(1)性能测试记录(有选择)序号1数据链路au数据链路bu 2数据链路a数据链路b站点A在数据包层以平滑的方式接收数据,站点B定期轮换“发送100秒,停止接收持续100秒” 3数据链路afu数据链路bfu无错误通道,站点A和站点B的数据包层泛洪生成数据包4数据链路af数据链路bf 5数据链路af –ber 1e-4数据链路bf –ber 1e-4数据包层A / B站被淹. 站点A / B的数据包层被淹没. 线路误码率设置为10-4. 6数据链路af1数据链路bi1数据包在站A上被淹没. B在空闲模式下接收1900 49.4 93.7 1900 59.3 57.5 1900 92.3 92.9 1900 96.97 96.97 1900 51无错误通道数据传输指令运行时间(秒)1900效率(%)A 53.5 B 96.96 92.3备注性能测试记录表(go_back_n)序列命令编号1 2数据链路数据链路数据链路数据链路aub ab ab描述无错误通道根据报告,站点B定期在“发送100秒和停止100秒”错误之间交替-免费频道. 站点A和站点B的数据包层被淹没. 10/27运行时间(秒)1800 1800效率(%)A 52.3 41 B 70 57.5备注3 datalink afu datalink bfu18009797计算机网络实验和报告组4 5 datalink af datalink bf datalink af –ber 1e-4 datalink bf –ber 1e- 4站点A / B的报文层被洪泛生成报文站点A / B的报文层均以洪泛模式生成报文,线路的误码率设置为10-4 1800 1800 73.6 24.5 73.7 24.76 af1数据链路bi1站点A在泛洪模式下生成数据包,而B在空闲模式下接收180039.555.7(2)屏幕截图(因为有近200个屏幕截图. 此处仅列出了最佳参数. 其余参数及其日志的比较表)文件位于“参数比较”文件夹中. 1.(15个选择性窗口,帧超时3000,确认超时240)Af1〜bi1: 11/27计算机网络实验·报告au: 12/27计算机网络实验·报告bu: a : b: 13/27计算机网络实验·报告afu : 14/27计算机网络实验·报告bfu: af: bf: 15/27计算机网络实验·报告af –ber 1e-4: bf –ber 1e-4: 16/27计算机网络实验·报告2(7 go_back_n windows ,帧超时3000)Af1〜bi1: 17/27计算机网络实验·报告au: bu: 18/27计算机网络实验·报告a: b: 19/27计算机网络实验·报告afu: bfu: 20/27计算机网络实验·报告af: bf: 21/27计算机网络实验·报告af –ber 1e-4: bf –ber 1e-4: 22/27计算机网络实验·报告5.源程序列表显示在附件页面中. 实验列表有两个,分别是: 1.选择重传协议. ; 2.回滚N帧协议.

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-161874-1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值