- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机网络第一次实验selected实验报告精要
北京邮电大学
计算机网络第一次实验实验报告
Selected 实现
班 级 2010211302
姓 名 华逸群
学 号
一 ,实验内容和实验环境述
1.实验内容
利用所学数据链路层原理,自己设计一个滑动窗口协议,在仿真环境下编程实现有噪音信道
环境下两站点之间无差错双工通信。信道模型为 8000bps 全双工卫星信道,信道传播时延
270 毫秒,信道误码率为 10-5,信道供字节流传输服务,网络层分组长度固定为 256 字节。
通过该实验,进一步巩固和深刻理解数据链路层误码检测的 CRC 校验技术,以及滑动窗口
的工作机理。滑动窗口机制的两个主要目标:(1) 实现有噪音信道环境下的无差错传输; (2)
充分利用传输信道的带宽。在程序能够稳定运行并成功实现第一个目标之后,运行程序并检
查在信道没有误码和存在误码两种情况下的信道利用率。为实现第二个目标,高滑动窗口
协议信道利用率,需要根据信道实际情况合理地为协议配置工作参数,包括滑动窗口的大小
和重传定时器时限以及 ACK 搭载定时器的时限。这些参数的设计,需要充分理解滑动窗口
协议的工作原理并利用所学的理论知识,经过认真的推算,计算出最优取值,并通过程序的
运行进行验证。
2.实验环境
Windows7 环境 PC 机,Microsoft Visual C++ 6.0 集成化开发环境。
二,软件设计
1.数据结构
#define DATA_TIMER 2000 //数据帧重发计时时间
#define ACK_TIMER 300 //发送 ack 帧的计时时间
#define MAX_SEQ 7 //窗口大小为 7
struct FRAME {
unsigned char kind;
unsigned char ack;
unsigned char seq;
unsigned char data[PKT_LEN];
unsigned int padding;
}; // 帧结构,kind 为帧的类型,ack
为确认帧序号,seq 为发送帧序号,data[PKL_LEN] 网络层分组数据
共有 3 种类型的帧:
数据帧
FRAME_DAT ack seq data crc
A
Ack 帧
FRAME_ACK ack crc
Nak 帧
FRAME_ACK ack crc
bool no_nak = true ;//判断是否有 NAK
arrived[NR_BUFS] = {0};//接收到的帧
static unsigned char frame_nr = 0;//技术下个要传送的帧的号
static unsigned char nbuffered;// 已经传了多少帧
static unsigned char frame_expected = 0;//希望收到的帧
static unsigned char ack_expected = 0;//希望收到的确认帧
static unsigned char too_far = NR_BUFS;// 当前能收到的最大窗口号
static unsigned char out_buf[NR_BUFS][PKT_LEN],in_buf[NR_BUFS][PKT_LEN];
//buffers for the outbound/inbound stream
static int phl_ready = 0;//物理层是否准备好了
2.模块结构
static bool between (unsigned char a, unsigned char b, unsigned
文档评论(0)