计算机网络选择重传,计算机网络选择重传协议实验报告..docx

计算机网络选择重传协议实验报告.

《计算机网络》选择重传协议实验报告1.实验内容和实验环境描述实验内容:利用所学数据链路层原理,设计一个滑动窗口协议,在仿真环境下编程实现有噪音信道环境下两站点之间无差错双工通信。信道模型为8000bps 全双工卫星信道,信道传播时延270毫秒,信道误码率为10-5,信道提供字节流传输服务,网络层分组长度固定为256字节。实验环境:Windows7—64位操作系统PC机VC 6.02.协议设计数据结构:数据帧 +=========+========+========+===============+========+ | KIND(1) | SEQ(1) | ACK(1) | DATA(240~256) | CRC(4) | +=========+========+========+===============+========+ 确认帧 +=========+========+========+ | KIND(1) | ACK(1) | CRC(4) | +=========+========+========+ 否定确认帧 +=========+========+========+ | KIND(1) | ACK(1) | CRC(4) | +=========+========+========+KIND:表示帧的类别ACK:ACK序列号 SEQ:帧序列号 CRC:校验和模块结构:static inc(Uchar* a)作用:使一个字节在0~MAX_SEQ的范围内循环自增。参数:a,字节类型。static between(Uchar a,Uchar b,Uchar c)作用:判断当前帧是否落在发送/接收窗口内。参数:a,b,c,均为字节类型,其中两个分别为窗口的上、下界,一个为帧的编号。其中,发送窗口的上界和下界分别为next_to_send和ack_expected,接收窗口的上界和下界分别为too_far和frame_expected,均定义在main函数中。static void put_frame(unsigned char *frame, int len)作用:为一个帧做CRC校验,填充至帧的尾部并将其递交给网络层发送。参数:frame,字节数组,由除padding域之外的帧内容转换而来;len,整型,为帧的当前长度。static send_frame_(Uchar fk,Uchar next_frame,Uchar frame_expected,Packet out_buf[])作用:构造一个帧,并将其发送。参数:fk,字节类型,为帧的内容;next_frame,字节类型,为帧的编号;frame_expected,字节类型,为希望收到的帧的编号;out_buf,二维字节数组,为缓冲区。int main(int argc,char *argv[])作用:主程式,包含选择重传协议的算法流程。参数:argc,整型,表示命令行参数的个数;argv,二维字符数组,表示参数内容。算法流程:Ack timeoutData timeoutData comingNetwork layerreadyMake ack frameReset ack_numCount cscFind frame-endGet packet()Send this frameNext_send=ack_expectedGet_num>0Send_data()Csc==0?YPhy ready?breakPhy ready?Send frame NYNS_seq=frameExpect?YYSend framePhy_ready=1Sent frameY NPut_packet()NGet_num=nbufferedbreakBreakDeal with acknumberbreakIn_len=1Nbuffered

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/392841.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode 剑指 Offer 03. 数组中重复的数字

找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1: 输入&…

【Maven学习】Maven打包生成包含所有依赖的jar包

http://blog.csdn.net/u013177446/article/details/54134583 ************************************************** maven打包生成的普通jar包,只包含该工程下源码编译结果,不包含依赖内容。同时,maven提供以下方式生成包含所有依赖的jar文件…

mysql 数据库 安全_如何确保您MySQL数据库安全

mysql 数据库 安全我们开始之前的一些基本信息: (Some basic information before we get started:) Source: Center for Internet Security’s (CIS) Oracle MySQL Community Server 5.7来源: 互联网安全中心(CIS)Oracle MySQL Community Server 5.7 Op…

Exchange server 2010系列教程之三 发送邮件测试

最近有些忙,好几天没有上来写教程了,接着往下写吧。就当是自己的学习笔记,呵呵,有不到之处,还请大家多多指教。 上一篇我们已经把服务器架设好了,那么我们来测试一下发送邮件。 1.首先在AD DC上面新建一个域…

如何用计算机扫描图片变成文字,怎么扫描图片上的文字-华为手机黑科技"文字扫描仪",3秒就能将纸质文档转成电子档,牛...

现如今,手机已经成为我们使用率最高的电子设备之一了。手机虽小,但是功能可是五花八门,很多手机的功能,可能我们使用几年,都没有发现过。今天就给大家介绍华为手机中,非常强大的一项黑科技“文字扫描仪”。…

第一步:编辑器选择

对于c/c的学习已经进一年的时间了,现在想开始好好换一个文本编辑器,然后慢慢的学习,随着时间的增加而不断增加。两款颇有争议的软件是Vim和emacs,两者之间的选择其实对于初学者的我还是比较困难的,Vim在原来有点接触过…

leetcode116. 填充每个节点的下一个右侧节点指针(dfs)

代码 /* // Definition for a Node. class Node {public int val;public Node left;public Node right;public Node next;public Node() {}public Node(int _val) {val _val;}public Node(int _val, Node _left, Node _right, Node _next) {val _val;left _left;right _ri…

react销毁方法钩子0_React钩子:使用React状态的新方法

react销毁方法钩子0Updated: With React 16.8, React Hooks are available in a stable release!更新:随着React 16.8的发布, React Hooks已经发布! Outdated: Hooks are still an experimental proposal. They’re currently in React v16.…

Linux下安全审计工具 lynis 使用说明

官网:https://cisofy.com/download/lynis/ 下载解压后,执行./lynis -Q即可,稍等片刻自动生成一份检测报告。可以根据检测报告看哪里不足进行改进即可。 本文转自 lirulei90 51CTO博客,原文链接:http://blog.51cto.com/…

课堂训练

1.对于可能的变更是否能制定应急计划? 可以制定 例如一款app的开发,在制作app之前会对app的功能性进行一个规划,想的比较全面就能很好应对变更。 2.员工是否能够有效地处理意料之外的工作请求? 能够处理 对于工作能力极强的员工而…

Google 实用搜索技巧

孔子曰:“工欲善其事,必先利其器。居是邦也,是其大夫之贤者,友其示支仁者。”——语出《论语卫灵公》 1. Google搜索固定格式的文档 Google支持特定格式文档的搜索(“filetype:”就是它的搜索语法)&#xf…

华科的计算机和建筑学哪个强,华中科技大学和华南理工大学相比,谁更占优势?看了也许就知道了...

大学是学生接受教育的过程中非常重要的一个阶段,很多学生都会尽可能在高考中,考出更好的成绩,争取报考一个更好的大学。为了提升教育水平,我国到目前为止建设了超过3000所大学,其中有很多高等院校非常相似,…

c#+handle.exe实现升级程序在运行时自动解除文件被占用的问题

我公司最近升级程序经常报出更新失败问题,究其原因,原来是更新时,他们可能又打开了正在被更新的文件,导致更新文件时,文件被其它进程占用,无法正常更新而报错,为了解决这个问题,我花…

播客#50:Sacha Greif

On todays episode of the freeCodeCamp Podcast, Quincy Larson interviews Sacha Greif, a designer, developer, and prolific open source project creator.在今天的免费CodeCamp播客中,昆西拉尔森(Quincy Larson)采访了设计师,开发人员和多产的开源…

leetcode 977. 有序数组的平方(双指针)

给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。 示例 1: 输入:[-4,-1,0,3,10] 输出:[0,1,9,16,100] 示例 2: 输入:[-7,-3,2,3,11] 输出&am…

Spring.net的一个小例子

入门级的Spring.net的例子,比Spring.net带的例子还要简单。容易上手。下载地址:http://files.cnblogs.com/elevenWolf/SpringTest.rar转载于:https://www.cnblogs.com/martinxj/archive/2005/07/18/195105.html

使用JavaScript的Platformer游戏教程

Learn how to create a platformer game using vanilla JavaScript.了解如何使用香草JavaScript创建平台游戏。 This tutorial starts with teaching how to organize the code using the Model, View, Controller (MVC) strategy and the principles of Object Oriented Prog…

leetcode 52. N皇后 II(回溯)

n 皇后问题研究的是如何将 n 个皇后放置在 nn 的棋盘上,并且使皇后彼此之间不能相互攻击。 给定一个整数 n,返回 n 皇后不同的解决方案的数量。 示例: 输入: 4 输出: 2 解释: 4 皇后问题存在如下两个不同的解法。 [ [".Q…", // 解法 1 “……

uic计算机课程表,美国UIC大学研究生毕业率能达到多少?申请条件、专业课程汇总...

UIC大学也就是伊利诺伊大学芝加哥分校,这所学校始建于1982年,该校拥有东、西两个校区,皆位于美国第二大商业中心芝加哥市的心脏地带,地理位置优势显著,UIC大学有着丰富的教学资源和出色的教学水准,那么接下…

#region(C# 参考)

< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> #region&#xff08;C# 参考&#xff09; #region 使您可以在使用 Visual Studio 代码编辑器的大纲显示功能时指定可展开或折叠的代码块。例如&#xff1a; #region MyClass defin…