北邮计算机网络实验指导书

实验一:数据链路层滑动窗口协议的设计与实现(4)

1.实验类别(4)

2.实验内容和实验目的(4)

3.实验学时(4)

4.实验组人数(4)

5.实验设备环境(4)

6.教学要点与学习难点(4)

7.实验步骤(5)

7.1熟悉编程环境(5)

7.2协议设计和程序总体设计(5)

7.3编码和调试(5)

7.4软件测试和性能评价(5)

7.5实验报告及程序验收(5)

8.编程环境(6)

8.1程序的总体结构(6)

8.2实验环境所提供的文件和编译运行方法(7)

8.3日志(8)

8.4协议运行环境的初始化(9)

8.5与网络层模块的接口函数(10)

8.6事件驱动函数及程序流程(10)

8.7与物理层模块的接口函数(12)

8.8CRC校验和的产生与验证(12)

8.9定时器管理(13)

8.10协议工作过程的跟踪和调试(13)

8.11命令行选项(14)

8.12错误信息(15)

9.正确性测试及性能测试(16)

10.研究与探索的问题(17)

10.1CRC校验能力(17)

10.2CRC校验和的计算方法(17)

10.3程序设计方面的问题(17)

10.4软件测试方面的问题(17)

10.5协议改进(18)

10.6对等协议实体之间的流量控制(18)

10.7与标准协议的对比(18)

11.实验报告要求(18)

11.1实验内容和实验环境描述(18)

11.2协议设计(18)

11.3软件设计(19)

11.4实验结果分析(19)

11.5研究和探索的问题(19)

11.6实验总结和心得体会(19)

11.7源程序清单(20)

附录一源程序书写格式(21)

实验一:数据链路层滑动窗口协议的设计与实现

1.实验类别

程序设计型

2.实验内容和实验目的

利用所学数据链路层原理,自己设计一个滑动窗口协议,在仿真环境下编程实现有噪音信道环境下两站点之间无差错双工通信。信道模型为8000bps全双工卫星信道,信道传播时延270毫秒,信道误码率为10-5,信道提供字节流传输服务,网络层分组长度在240~256字节范围。

通过该实验,进一步巩固和深刻理解数据链路层的字节填充方式的成帧技术,误码检测的CRC校验技术,以及滑动窗口的工作机理。滑动窗口机制的两个主要目标:(1)实现有噪音信道环境下的无差错传输;(2)充分利用传输信道的带宽。在程序能够稳定运行并成功实现第一个目标之后,运行程序并检查在信道没有误码和存在误码两种情况下的信道利用率。为实现第二个目标,提高滑动窗口协议信道利用率,需要根据信道实际情况合理地为协议配置工作参数,包括滑动窗口的大小和重传定时器时限以及ACK搭载定时器的时限。这些参数的设计,需要充分理解滑动窗口协议的工作原理并利用所学的理论知识,经过认真的推算,计算出最优取值,并通过程序的运行进行验证。

通过该实验提高同学的编程能力和实践动手能力,体验协议软件在设计上各种问题和调试难度,设计在运行期可跟踪分析协议工作过程的协议软件,巩固和深刻理解理论知识并利用这些知识对系统进行优化,对实际系统中的协议分层和协议软件的设计与实现有基本的认识。

3.实验学时

9学时。

4.实验组人数

5.实验设备环境

WindowsXP环境PC机,MicrosoftVisualC++6.0集成化开发环境。

6.教学要点与学习难点

课堂教学和教材中给出了滑动窗口协议的基本原理,并给出了多个示意性程序,尤其是“回退N步(Go-Back-N)”协议和“选择重传”协议。这些示意性程序主要用于描述协议的基本工作过程并阐述滑动窗口的基本原理,为了突出主题还省略了许多处理细节,不可能实际运行。一个网络协议的具体实现程序可能会作为一个操作系统支撑下的独立进程,或者,作为操作系统内核中的中断服务程序或驱动程序。协议的具体实现会受到协议软件所处的操作系统支撑环境或者内核编程模式的限制。本次实验所提供的编程环境用WindowsXP中进程仿真链路层的一个站点,程序的设计受限于编程环境所提供的功能以及实验题目所设定的具体问题和目标。因此,不可能完全照搬课堂教学中的示意性程序进行简单的原理验证,必须认真考虑具体问题和具体软件设计环境,但是这些示意性程序有重要的参考作用。

实验题目仅仅给出了物理层信道模型和分组层数据的大小,协议的设计有很大的自由度。由组内同学共同讨论完成,包括成帧方法和帧控制字段的设计,滑动窗口的过程控制。从易到难,可选的协议类型为“不搭载ACK的Go-Back-N协议”,“使用搭载ACK技术的Go-Back-N协议”,“选择重传协议”,要求必须是全双工通信协议。组内同学根据自身条件和不同协议类型的难度系数选做其中一种或多种。

教材中的示意性程序未对滑动窗口尺寸和重传定时器时限的详细设计进行充分说明。在实验过程中需要利用基本原理,明确协议工作参数取值的变化对协议工作正确性和信道利用率的利弊影响,根据具体信道情况和协议软件的实现方案,为协议参数设置最优值,以追求高线路利用率。指导教师提供一个可执行样例程序,将所实现的协议软件所达到的性能与样例程序比较,分析自己所实现软件的优势或缺陷。从理论上推导出线路利用率的极限,依此作为基本依据衡量所实现软件的性能优劣。找出所设计软件达到的线路利用率与理想性能之间的差距,并给出改进算法或者未能达到理想性能的原因。

整个程序的编程工作量不大,但是考虑到对滑动窗口协议的工作原理的理解可能不够深入和细致,考虑到协议软件调试的困难程度,以及完成实验的同学对C语言的运用和操控能力,软件调试中遇到问题后解决问题的能力,以及代码中逻辑的复杂程度,对完成整个实验应给予足够重视。

7.实验步骤

7.1熟悉编程环境

安装好VC6.0或兼容的更高版本的C语言编程环境,运行指导教师提供的样例程序,明确实现目标,了解信道工作参数的设置方法,网络层分组序列产生器的模式选择方法。根据所提供的资料熟悉编程环境,了解程序的主体运行框架,系统提供的子程序功能,与物理层和与网络层程序接口的方法,定时器的设置方法。其中,与物理层程序的接口方法与教材中的示意性程序差别较大,应特别注意。

7.2协议设计和程序总体设计

7.3编码和调试

将所设计的协议编码实现并上机调试通过,实现数据链路层两个站点之间的通信。

7.4软件测试和性能评价

在无误码信道环境下运行测试:理论上推导出无误码信道环境下的最佳信道利用率,设置仿真软件中的信道工作于无误码模式,观察和记录信道利用率,并与理想值进行比较。

有误码信道环境下的无差错传输:检查软件能否在有误码信道环境下实现无差错传输,并进行调试。

测试阶段根据具体信道模型,通过细致的理论分析,合理调整协议工作参数和程序实现方式,追求有误码信道环境下更高的信道利用率,并对程序进行合理优化。

7.5实验报告及程序验收

研讨第10节“可研究与探索的问题”提出的问题,总结实验过程中遇到的问题和解决方法,按要求撰写实验报告,并接受实验指导教师面对面现场点评和质疑。

THE END
1.计算机视觉开发者必备:十大顶尖工具深度解析Keras是一个运行在TensorFlow之上的高级神经网络API,它抽象了构建深度学习模型的复杂性,非常适合初学者。Keras允许开发者快速原型化模型,如图像分类、物体检测甚至更复杂的分割任务,而无需深入了解深度学习算法。 对于更有经验的开发者,Keras仍然是一个有用的工具,用于在深入定制之前快速原型化模型。Keras简化了流程,同时https://www.51cto.com/article/804373.html
2.AI应用嘲深度解析人工智能算法开发工具盘点数码平台支持的人工智能算法开发 AI算法的开发需要强大的数码平台支持。这些平台提供了丰富的资源,如高性能计算能力、高级软件库以及专业团队服务,使得从初学者到专家都能轻松地进行AI项目开发。 开发工具概述 以下是一些常用的AI开发工具,它们为用户提供了创建自定义模型、训练数据集以及部署模型到生产环境所需的一切: https://www.716hjm73q.cn/ke-ji/548565.html
3.如何制作发票批量查验软件在本文中,我对如何制作发票批量查验软件进行了全面而深入的介绍,从技术需求分析到系统架构设计,再到算法设计与优化、用户体验与界面设计、软件测试与质量保障以及软件部署与运维等多个维度进行了详细的探讨。制作发票批量查验软件是一项复杂的工程,需要综合运用多门学科的知识和技术,希望本文对您有所帮助。 https://h.chanjet.com/ask/69c390745bded.html
4.eTools多功能电子计算软件(可用于音响工程设计计算)etools多功能电子设计软件V2.68 多功能电子计算软件eTools 2.66 (2010-4-12更新) 修复整流滤波电路模块bug。 根据网友反馈,RC无源滤波错误。已经更新。 2.64重新用unicode编译了下。用繁体版本windows操作系统的可以试试还有乱码否?! 根据浙江奉化网友张先生的建议和提供资料,二分频计算增加-6dB交叉点方法。 http://www.360doc.com/content/15/0917/03/18990882_499647587.shtml
5.成都四方伟业软件股份有限公司成都四方伟业软件股份有限公司成立于2014年,中国大数据企业前15强,致力于超大规模的数据处理和智能分析服务,是领先的大数据、人工智能产品及服务提供商,目前已为全球数十个国家和地区的超过1000家的政府机构、企事业组织提供了产品和技术服务。我们以不断革新大数据、人工智能技术服务于客户,推动相关产业可持续的创新发展。https://mba.shzu.edu.cn/2021/0304/c3756a153725/page.htm
6.软件工程实验任务书10篇(全文)? 选题的可行性研究; ? 项目需求分析; ? 软件设计过程; ? 软件实现过程; ? 软件测试过程; ? 软件开发总结。 4.有系统设计代码(其中代码注释不少于代码的30%),系统运行说明。 5.程序语言不限,可以选择自己熟悉的开发环境。如:Asp.Net +C#、java、jsp, 数据库:SQL Server 2010等。6.软件工程https://www.99xueshu.com/w/file4vhi9ijt.html
7.永川这15家企业招人,找工作的看过来!澎湃号·政务澎湃新闻1.美术设计相关专业毕业; 2.精通次时代游戏角色制作; 3.有次时代游戏项目制作经验或外包工作经验; 4.精通次时代制作技术,精通3DMAX或MAYA、ZBrush、Photoshop或badypaint等主流制作软件,有写实风格法线类游戏丰富制作经验; 5.熟悉次时代游戏开发流程,能够为项目的需求做出技术评估, 能够监督美术质量和把控任务进度。 https://www.thepaper.cn/newsDetail_forward_8515765
8.2023校园招聘禾赛科技招聘就业信息网5、能够设计在热胀冷缩,振动情况下稳定可靠的产品。有电机,散热方面的经验者优先; 6、熟练掌握至少一种机械设计软件;可独立设计结构图、装配图、零件图等; 7、对自然科学,工程技术的好奇心是极大的加分项。有业余时间结构设计或制作经历者优先; 8、对美学有较高品味者优先。对零部件的安装可靠性和优美程度有“精https://xyzp.haitou.cc/article/2648883.html
9.RoboMaster电控入门:不完全指南通过EDA工具、元器件选型与数据手册阅读、滤波器与电源设计,以及底层软件开发工具与技术的学习,电控组成员可以深入掌握STM32硬件平台、编译与调试方法,并有效处理传感器信号读取与硬件模块通信问题。同时,数字滤波器设计、PID与Kalman滤波、图像处理与算法设计等高级技术的掌握,使得成员能够实现电机控制、传感器融合与图像识别https://www.imooc.com/article/348215
10.cc软件怎么生产模型零代码企业数字化知识站三、应用机器学习算法 机器学习算法在现代建模中已是不可或缺的工具。这些算法能够自动识别和分析大量的数据,进而生成复杂的模型。通过深度学习和神经网络,CC软件能够快速生成高质量的三维模型。例如,在建筑模型的设计中,机器学习可以快速分析不同建筑风格和结构,并自动生成符合这些风格和结构的模型。通过引入自动化的建模https://www.jiandaoyun.com/blog/article/319183/
11.多媒体技术多媒体技术是专指于电脑程序中处理图形、图像、影音、声讯、动画等的电脑应用技术。计算机多媒体技术专业培养目标是培养具备较强的计算机操作技能,能熟练进行计算机多媒体软件设计和开发、交互式多媒体作品的设计与制作的高级技术应用性专门人才。本书主要介绍了多媒体技术http://baike.soso.com/v230043.htm?ch=ch.bk.innerlink
12.媒体工作总结范文(15篇)主持“算法与数据结构精品课程”课题申报成功,参加“c++编程基础精品课程”课题申报成功以及课题“算法与数据结构任务驱动式教学改革探讨”的研究也是正在进行中,申报《算法与数据结构》课程标准建设;发表了2 篇论文:《高职《算法与数据结构》教学改革探索与实践》、《面向中小型企业的生产制造管理系统的设计与实现》。除https://www.yjbys.com/zongjie/fanwen/1541976.html
13.迅捷画图官网顺序图、活动图、用例图和拓扑视图等UML,帮开发和产品人员更准确、可视化表达面向对象,提升沟通效率,成为需求分析和软件设计的高手。 立即体验 BPMN 内嵌完整的BPMN图标,方便用户轻松识别并绘制精美的BPMN流程图,让复杂的业务工作流更容易理解。 立即体验 流程管理 https://www.liuchengtu.com/
14.运用AI算法颠覆3D打印设计,「Hyperganic」想要成为3D打印软件平台举例来说,在航空行业,火箭引擎设计传统的做法是由设计师绘制产品的设计图,但是设计师的设计过程通常是冗长而充满挑战的,他们在设计一个新的火箭引擎的时候倾向于在已经被实践检验过的设计模型上稍作修改;而在Hyperganic的软件平台上则是由计算机算法完成产品设计过程。首先,在设计前期基于火箭引擎的特性向算法中输入相关https://36kr.com/p/1191556484066439
15.十大好用的海报制作软件海报设计用什么软件海报制作APP推荐→设计海报的软件有很多种,有的需要从零开始设计,有的则可以选用模板进行创作。本文中Maigoo小编就带大家看看制作海报的软件有哪些。例如稿定设计、Canva可画、创客贴设计,以及图怪兽、美图秀秀、美图设计室、青柠设计、黄油相机、海报设计室等,都是当下较为热门的海报制https://www.maigoo.com/top/442072.html
16.效果图制作软件有哪些?效果图制作软件排行榜前十!随着渲染工具的出现以及客户对立体效果需求的上升,设计师也要能够准确地用设计语言解释空间画面,完整地用效果图制作软件展示设计。效果图制作软件使用不同的算法为图像添加颜色、纹理和其他细节,被用于建筑、工程和产品设计等领域。不同类型的效果图制作软件都有着相同的基本目标:从一组数据点创建逼真的图像。本文Pixso为https://pixso.cn/designskills/10-rendering-design-softwares/
17.视觉导航机器人设计大规模机器人模拟软件设计路径规划算法利用大规模视觉导航机器人进行快递分拣,涉及调度系统的设计、视觉导航机器人设计、大规模机器人模拟软件设计、路径规划算法研究,涉及技术栈java、C++、c、spring、swing、netty、openCV、ardunio、调度、路径规划、嵌入式、PID控制。——Using large-scale visual navigathttps://github.com/xxxtai/simulator
18.国内外5款超好用的AI图片制作软件汇总分享今天本文为大家汇总分享国内外 5 款超好用的AI图片制作软件,分别是「即时设计」、Artisto、DeepArt、Deep Dream Generator 以及 PhotoLab,其中有能够进行 AI 图片创作的软件,也有能够提供 AI 图片处理的软件。在当今数字化时代,人工智能(AI)技术的应用已经进入到了越来越多的领域,图像制作和设计自然也包括在其中。AIhttps://js.design/special/article/ai-picture-creation-software.html
19.中科院列出35项中国需攻坚的“卡脖子”技术清单!中国的核心工业软件领域,基本还是“无人区”。工业软件缺位,为智能制造带来了麻烦。工业系统复杂到一定程度,就需要以计算机辅助的工业软件来替代人脑计算。 譬如,芯片设计生产“必备神器”EDA工业软件,国产EDA与美国主流EDA工具相较,设计原理上并无差异,但软件性能却存在不小差距,主要表现在对先进技术和工艺支持不足,和https://wiki.antpedia.com/zhongkeyuanliechu35xiangzhongguoxugongjiandekabozijishuqingdan-3000726-news
20.文泰刻绘2010:打造高质量刻刀图案的专业制图软件+全版本安装包"文泰刻绘2010" 的排版功能非常先进,通过自动排版和文本流式布局,用户可以在设计过程中反复调整字体、颜色、大小和行距等属性,以获得完美的版面。而在设计高复杂度的图像时,它也提供了内嵌的强大的算法,让用户能够实现最好的抗锯齿和图层操作。 除了基本设计工具以外,该软件还附带有许多额外的插件和库,例如高质量的https://cloud.tencent.com/developer/article/2269535
21.2022热门光学设计与分析软件CODE V是全球一流光学设计软件。无论简单还是复杂的光学设计任务,CODEV以其直观、智能的工具助您轻松应对,更快速地设计出比以往更好的解决方案。 特点: 省时省力的内置智能算法 CODE V独一无二的全局优化(Global Synthesis)智能算法旨在以较快的速度为您提供更佳设计解决方案。 https://www.ruanfujia.com/10573782/