- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验内容与实验环境描述:
实验内容
设计一个滑动窗口协议,定义帧字段,规划程序的总体结构,相关子程序的设置,在仿真环境下编程实现有噪音信道两站点间无差错双工通信。
信道模型
8000bps全双工卫星信道
单向传播时延270毫秒
信道误码率为10-5
物理层接口:提供帧传输服务,帧间有1ms帧边界
网络层属性:分组长度固定256字节
实验组人数
1人
实验设备环境
Windows7,Microsoft Visual C++ 6.0
协议设计:
帧的定义
struct FRAME //帧结构
{
unsigned char kind; //类型 包括FRAME_DATA,FRAME_ACK,FRAME_NAK
unsigned char ack; //ack永远指向最近接受到的帧序号
unsigned char seq; //序列号
unsigned char data[PKT_LEN]; //数据
unsigned int padding; //crc校验和
};
控制方案
1、网络层就绪,从网络层中取帧。
2、物理层就绪,可以将帧放到物理层中准备发送。
3、当有帧来到。若帧校验和错误,则返回NAK,若为ACK帧或者数据帧,进行窗口滑动,开启ACK定时器,若收到的是NAK帧 ,则重发数据帧。
4、当数据帧超时,准备重发数据帧。
5、当ACK帧超时,准备重发ACK帧。
软件设计:
全局变量:
buffer[MAX_SEQ + 1][PKT_LEN]:模拟了缓冲区存储帧内容
nbuffered:记录了缓冲区中帧的个数
frame_expected:代表接收方期待接受的帧的序列号
phl_ready:表示物理层就绪的标志
nak;//是否接收过nak,用于避免nak在高误码率的情况下连续接受,导致数据多次重发
函数及部分局部变量用途:
void put_frame(unsigned char *frame, int len):
此函数用于向物理层中添加帧。
void send_data_frame(unsigned char frame_nr, unsigned char frame_expected)
此函数用于接收方与发送方发送数据帧。
void send_ack_frame(unsigned char frame_nr, unsigned char frame_expected)
此函数用于发送ACK帧。
void send_nak_frame( unsigned char frame_nr, unsigned char frame_expected)
此函数用于发送NAK帧
int between(unsigned char a, unsigned char b, unsigned char c)
此函数用于判断序列号是否落在窗口内。
switch(event):说明有事情发生。
case NETWORK_LAYER_READY:
说明网络层就绪,可以从网络层中取帧。
case PHYSICAL_LAYER_READY:
说明物理层就绪,可以将帧放到物理层中准备发送。
case FRAME_RECEIVED:
说明有帧来到。做出相应的处理。
case DATA_TIMEOUT:
说明数据帧超时,准备重发数据帧。
case ACK_TIMEOUT:
说明ACK帧超时,准备重发ACK帧。
Start 算法流程图:
Start
P
Protocal_init()
Switch
Switch
ACK_TIMEOUTDATA_TIMEOUTNETWORK_LAYER_READYFRAME_RECEIVED
ACK_TIMEOUT
DATA_TIMEOUT
NETWORK_LAYER_READY
FRAME_RECEIVED
发一个单独的ACK帧。next_frame_to_send回退到ack_expected值。然后全部重发之前的帧。首先取帧,若帧校验和错误,则返回NAK,若为ACK帧或者数据帧,进行窗口滑动,数据帧还需传到网络层,开启ACK定时器,若收到的是NAK帧 ,则重发数据帧。从网络层中取帧,向物理层中发送帧。然后将nbuffer的值+1,同时改变next_frame_to_send的值
发一个单独的ACK帧。
next_frame_to_send回退到ack_expected值。然后全部重发之前的帧。
首先取帧,若帧校验和错误,则返回NAK,若为ACK帧或者数据帧,进行窗口滑动,数据帧还需传到网络层,开启ACK定时器,若收到的是NAK帧 ,则重发数据帧。
从网络层中取帧,向物理层中发送帧。然后将nbuffer的值+
您可能关注的文档
- 计算机组装与维护教程教程课件第1章 计算机组装基础知识.ppt
- 计算机组装与维护教程课件项目十七 笔记本电脑的组成与.pptx
- 计算机组装与维护教程课件项目十六 计算机及其外设维修实例.pptx
- 计算机维护与维修教学全套课件(刘云霞)(已检查完11 18)11音箱的相关术语解释.doc
- 计算机维护与维修教学全套课件(刘云霞)(已检查完11 18)教学单元一认知整机与配件.doc
- 计算机维护与维修教学全套课件(刘云霞)(已检查完11 18)教学单元一认知整机与配件(答案).doc
- 计算机维护与维修教学全套课件(刘云霞)(已检查完11 18)教学单元七安装操作系统与应用软件.doc
- 计算机维护与维修教学全套课件(刘云霞)(已检查完11 18)教学单元七安装操作系统与应用软件(答案).doc
- 计算机维护与维修教学全套课件(刘云霞)(已检查完11 18)教学单元三组装计算机硬件(答案).doc
- 计算机维护与维修教学全套课件(刘云霞)(已检查完11 18)教学单元九保证系统与数据安全.doc
- 2025至2030全球及中国订单管理软件行业细分市场及应用领域与趋势展望研究报告.docx
- 2025至2030国内液晶显示屏行业市场发展分析及竞争策略与投资发展报告.docx
- 2025至2030港口设备市场前景分析及细分市场及应用领域与趋势展望研究报告.docx
- 2025至2030量子加密通信行业发展现状及投资前景战略报告.docx
- 2025至2030中国音乐合成器行业运营态势与投资前景调查研究报告.docx
- 2025至2030中国液压行业市场发展现状及竞争格局与投资机会报告.docx
- 2025至2030中国异戊橡胶行业运营态势与投资前景调查研究报告.docx
- 2025至2030帕西肽行业市场占有率及有效策略与实施路径评估报告.docx
- 2025至2030全球及中国超收敛集成系统行业细分市场及应用领域与趋势展望研究报告.docx
- 2025至2030尖齿铣刀行业市场占有率及有效策略与实施路径评估报告.docx
最近下载
- 智能车辆故障诊断维修手册.doc VIP
- 安徽省高中学业水平测试各科(语数英)试题及答案 .pdf VIP
- 2025至2030中国糖尿病食品行业市场发展分析及前景趋势与行业深度研究及发展前景投资评估分析.docx VIP
- 2025年水务企业运营管理手册.docx VIP
- 房屋市政工程施工安全日志(填写要求).docx
- 基于深度学习的家蚕病害识别.pdf VIP
- DCS受电方案(1)_原创精品文档.pdf VIP
- ZL50装载机工作装置设计及说明书.doc VIP
- 西南民族大学《解剖生理学》2021-2022学年第一学期期末试卷.doc VIP
- 2024-2025学年天津市河西区七年级(上)期末数学试卷含答案.pdf VIP
原创力文档


文档评论(0)