- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络编程技术 概述 无线局域网是网络技术研究与应用的热点,其中802.11协议是其中最基本和最重要的协议之一。通过模拟无线网络帧发送和接收的过程,读者能够深入理解无线网络数据发送流程与CSMA/CA的基本工作原理。 提纲 编程训练目的 编程训练要求 相关知识介绍 程序设计分析 扩展与提高 编程训练目的 掌握模拟无线网络帧发送和接收的过程 使读者了解无线网络数据发送流程,即CSMA/CA工作流程 掌握使用模拟程序分析问题和解决问题的能力 多线程编程技术 提纲 编程训练目的 编程训练要求 相关知识介绍 程序设计分析 扩展与提高 编程训练要求 程序运行界面示例 提纲 编程训练目的 编程训练要求 相关知识介绍 程序设计分析 扩展与提高 802.11协议概述 提纲 编程训练目的 编程训练要求 相关知识介绍 程序设计分析 扩展与提高 工作流程 总体执行流程 定义变量dwBus,代表共享信道 将该变量置零 开启两个线程分别模拟接收数据的主机B和发送数据的主机A 在一个循环中模拟其他主机访问共享信道的情况 1、定义常量参数,代表无线数据 2、主线程代码 2、主线程代码 数据接收线程 程序始终检测共享介质上是否有信号 如果检测到信号且接收数据准确无误(即传输过程中未发生冲突),则接收数据完毕后发送ACK数据帧 准备接收下一个数据帧 整个过程持续到接收完10个数据帧后结束 3、数据接收线程 数据发送线程 监听信道,确定信道空闲后,随机等待一段时间再次确认信道状态,以便将冲突的概率降到最低 再次确认信道空闲后,发送数据帧 等待ACK帧,在指定时间内收不到ACK帧则随机等待一段时间后进行重传 如果重传超过次数上限,则放弃该数据帧的发送 退避时间计算方法 802.11采用二进制指数退避算法,其第i次退避在22+i个时间片中随机选择一段进行退避,即实际退避时间为小于等于22+i 的一个随机数乘以TimeSlot的积加上DIFS。 (DIFS:分布协调功能帧间间隔,一般在调频扩频通信FHSS下为128us,程序设置50us) 4、数据发送线程 4、数据发送线程 5、退避时间计算方法 提纲 编程训练目的 编程训练要求 相关知识介绍 程序设计分析 扩展与提高 扩展与提高 IEEE 802.11b无线网络包含组件 IEEE 802.11b运作 *网络编程技术 计算机硬件基础教学中心 Copyright ? by NUPT All rights reserved. Technology of Network Programming 第12章 CSMA/CA算法模拟程序 编写程序,模拟CSMA/CA的通信过程,要求: 使用两个线程分别模拟局域网中收发数据的两台主机A、B; 使用第三个线程模拟其他主机随机发送数据帧行为,制造冲突; 使用一个变量来模拟共享信道; 由A主机向B主机发送十个数据帧,并接收B主机发送的ACK帧,如果发送失败,则等待一段时间后进行重传,如重传超过指定次数后仍然失败,自动放弃该次数据传输; 输出相关提示信息; 发展历史 特点 工作原理 与CSMA/CD的区别 #define SEND 0xf0000000 #define ACK 0x0f000000 #define CONF 0x00f00000 //代表冲突 #define TimeSlot 30 #define DIFS 50 //这里是为了模拟方便 实际时间SIFS=28μs,PIFS=78μs,DIFS=128μs int _tmain(int argc, _TCHAR* argv[]) { dwBus=0; //代表共享信道 DWORD ThreadID=0; CreateThread(NULL,0,HostB,NULL,0,ThreadID); //接收数据主机 CreateThread(NULL,0,HostA,NULL,0,ThreadID); //发送数据主机 srand((unsigned)time(NULL)); for(int i=0;i10000;i++) //模拟其它主机访问共享信道的情况 { Sleep((rand()%20)*300); dwBus=dwBus|CONF; //模拟信道冲突 Sleep(2000);//模拟其它主机发送行为,数据帧在信道上出现两秒,然后消失 dwBus=0;//模拟信道空闲 } return 0; } CreateThread(NULL,0,HostB,NULL,0,ThreadID); //接收数据主机 DWORD WINAPI HostB(LPVOID) { do { while((dwBus0x
您可能关注的文档
最近下载
- GB+39496-2020尾矿库安全规程.docx VIP
- 衡水体英文字母字帖.pdf VIP
- 聚酰亚胺 化学、结构与性能的关系及材料.pdf VIP
- 2025-2026学年小学信息技术(信息科技)五年级上册重大版(2023)教学设计合集.docx
- 迎春杯历年试题全集(上).pdf VIP
- 建筑结构检测鉴定与加固课程-第7章 钢结构加固.ppt VIP
- PW5300_2.0数据手册下载.pdf VIP
- 建筑结构检测鉴定与加固课程-第8章 建筑结构的改造.ppt VIP
- 重大版小学信息技术教案四年级上册教案.doc VIP
- 多因子选股系列研究之十八:成交量激增与骤降时刻的对称性与“一视同仁”因子构建.pdf VIP
文档评论(0)