网站大量收购闲置独家精品文档,联系QQ:2885784924

电子1203班-0909122726-朱辉辉-通信网实验报告..docx

电子1203班-0909122726-朱辉辉-通信网实验报告..docx

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

通信网原理 实验报告 题 目: 通信网实验 学 院: 信息科学与工程 班 级: 电子1203 姓 名: 朱辉辉 学 号: 0909122726 指导教师: 陈科文 科 目: 通信网原理 完成日期: 2015年1月6号目录实验一 滑动窗口流量控制原理的仿真 3实验二 基于TCP/IP协议的网络通信程序的设计 9实验三 IP数据包捕获程序设计 14实验四 使用Wireshark捕获数据包并分析网络协议 17实验一 滑动窗口流量控制原理的仿真实验目的与要求1、实验目的1、通过实验,进一步加深对滑动窗口机制的理解;2、编写一个滑动窗口原理仿真程序,能对流量控制过程进行演示。2、实验要求1、程序能演示滑动窗口的工作过程,运行正确;2、可设置滑动窗口机制的各种参数和控制策略,以适应不同的通信环境。实验内容与关键技术1、实验内容通过编程,对基于滑动窗口的流量控制过程进行仿真和演示。仿真程序能允许用户输入发送窗口长度、接收窗口长度、数据帧传输出错模式、超时时限等参数;在数据帧传输过程中能显示帧序号和帧个数的变化、传输暂停/重启/重传的提示、发送和接收的数据量和速率等信息。2、关键技术滑动窗口仿真演示程序有两种设计方式: (1)简单的人机交互式仿真,数据传输过程通过人机交互来推动,实际上并没有真正在网络上传输数据,发送启动、接收应答、传输何时出错都可以由用户控制,程序接收到用户的输入后能显示传输进度与其它提示信息。 (2)连续式传输和动态演示,编写两个进程,一个负责发送数据,一个负责接收数据,利用滑动窗口机制来实现这两个进程之间的交互或通信,可实现数据帧的自动连续式传输,数据传输出错可由程序随机产生,整个通信过程不需要用户的干预,程序能动态显示数据帧的变化和出错重传等提示信息。实验操作过程当输入窗口为2,第一帧序号为1时,发送的帧序号为1-3,理论上是按序接收,期待接收1帧,接受完后,期待接收2帧,接收后,最后期待接收3帧。如果接收时没有按序接收,则将没有按序接收的帧放入缓存,继续接收期待接收到的帧。实验操作:首先接收序号为1的帧,接收完后,期待下一次接收序号为2的帧,当输入接收到的数据帧为3时,3为没有按序接收的帧,将其放入缓存中,继续期待接收2帧,当接收到2帧后,同时将3帧接收。遇到的问题:刚开始对滑动窗口要做出的效果没有正确理解,导致绕了许多弯子,在多次请教老师后才理解了滑动窗口的状态变化,在写代码的时候,本来考虑用Java做,但是由于自己自学Java没多久,对这门语言掌握的不是很好,最后使用了C语言,再通过借鉴网络上的一些资源,才能和老师检查了这个实验。实验结果分析实验源程序#includestdio.h#includestdlib.h#includemalloc.hmain(){struct swphdr{unsigned long seqnum;unsigned long acknum;unsigned short flags; /*flag=0表示这是一个数据帧,flag=1表示这是一个ACK帧*/};struct sendq_slot{unsigned short timeout;/*1时表示计时启动,0时表示已收到确认*/unsigned long msg;struct sendq_slot *next;}; struct recvq_slot{unsigned short received;/*1表示顺序接收,0表示错序接受*/unsigned long msg;struct recvq_slot *next;};struct swpstate{unsigned long lar;unsigned long lfs;unsigned long sws;struct swphdr hdr;unsigned long rws;struct sendq_slot *sendq;unsigned long nfe;struct recvq_slot *head;}swpstate1;unsigned long a;int flag,b;/*发送*/struct sendq_slot *sendq_rear,*sendp,*p3,*p4;struct recvq_slot *recvp,*recvq_rear,*p1,*p2;swpstate1.head=NULL;swpstate1.sendq=sendq_rear=(struct sendq_slot*)malloc(sizeof(struct sendq_slot)); if(!swpstate1.sendq) exit(1); sendq_rear-next=NULL;printf(输入窗口大小:);scanf

文档评论(0)

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

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

1亿VIP精品文档

相关文档