模仿数据链路层的gobackn协议/*该协议是搭载ack的回退n步协议*/#include#include"protocol.h"#definemax_seq7#defineflag126#defineESC100#definewait_time2700 //发送计时器等待的时间#defineack_wait_time280staticintphl_ready=0;unsignedcharbuf[max_seq+1][270];unsignedcharack[8];//发送空的ack帧unsignedcharin_buf[600],last_buf[520];//接收时的缓冲区;去掉冗余之后的缓冲区,为防备因误码两帧合并为一帧而定义了很大一个数组intnbuffered=0;//发送的帧数intbuf_size[max_seq+1];//记下以发送各帧的帧长intnext_frame_to_send=0;intframe_in_phl=0;//用于成帧intframe_expected=0;intack_expected=0;intbetween(inta,intb,intc){ if(((a<=b)&&(b<c))||((c<a)&&(a<=b))||((b<c)&&(c<a))) return1; elsereturn0;}//判断帧尾,防止出现误判escescflag为数据的情况intend_flag(intin_len){ intcount=0; inti; if(in_len=0;i--)//记录flag前的esc数目 count++; returncount%2;//若flag前的esc为偶数,则为帧尾}//成帧函数--数据帧voidsend_frame(char*my_buf,intlen){ intn; buf[frame_in_phl][0]=(frame_expected+max_seq)%(max_seq+1); //ack buf[frame_in_phl][1]=frame_in_phl; //发送帧的帧号 for(n=0;n<len;n++) buf[frame_in_phl][n+2]=my_buf[n]; //将处理过的新帧赋值到缓冲区中 len=len+2; *(unsignedint*)(buf[frame_in_phl]+len)=crc32(buf[frame_in_phl],len); //在原始帧的基础上加检验和 buf_size[frame_in_phl]=len+4; //记录当前帧的长度,包括3个帧头,4个检验和 nbuffered=nbuffered+1; //缓冲区占用数加一 frame_in_phl=(frame_in_phl+1)%(max_seq+1);}//成帧函数--ack帧voidsend_ack() //ack帧的处理{ ack[0]=(frame_expected+max_seq)%(max_seq+1); ack[1]=max_seq+10; //ack帧的序号位,使ack[1]==frame_expected恒不成立 *(unsignedint*)(ack+2)=crc32(ack,2); //在原始帧的基础上加检验和}//主函数intmain(intargc,char**argv){intevent,arg,n,m,i,j,len=0,in_len=0; unsignedcharmy_buf[260]; intphl_wait=0;//在物理层中还没有被发送的帧protocol_init(argc,argv);enable_network_layer();for(;;){event=wait_for_event(&arg);switch(event){caseNETWORK_LAYER_READY:
2019/7/26 21:18:43 425KB go back n gobackn
1
软考高级职称网络规划设计师知识点及考点-1物理层
2019/10/6 11:52:38 410KB 软考 职称 网络规划设计师 考点
1
PDT数字集群通信零碎技术规范-空中接口物理层及数据链路层(标准版).doc
2015/9/25 22:52:58 8.97MB DMR PDT
1
计算机网络资料整理,考试知识点汇总。
网络的互连设备有哪些?分别有什么作用和工作在什么层次?提示:中继器,工作在物理层,功能是对接收信号进行再生和发送,从而增加信号传输的距离。
集线器是一种特殊的中继器,可作为多个网段的转接设备。
网桥工作于数据链路层,不但能扩展网络的距离或范围,而且可提高网络的功能、可靠性和安全性。
路由器工作于网络层,用于连接多个逻辑上分开的网络。
桥路器是一种结合桥接器(bridge)和路由器(router)两者功能的设备,它控制从一个网络组件到另一个网络组件(此时充当桥接器)和从网络到因特网(此时充当路由器)的传输。
网关又叫协议转换器,工作于网络层之上,可以支持不同协议之间的转换,实现不同协议网络之间的互连。
主要用于不同体系结构的网络或者局域网与主机系统的连接。
2018/8/22 2:28:30 464KB 计算机网络
1
mipid-physpecificationv1-2mipi物理层协议范例。
2018/10/4 10:04:23 2.33MB mipi d-phy
1
引见LTE物理层参数,特别是三种微站的物理参数的规范与标准。
包括femtocell,picocell,relaynodes。
做仿真的朋友可以参考一下。
2017/10/2 22:17:14 3.51MB 3GPP TR 36.814
1
全面详解LTE:MATLAB建模、仿真与实现(UnderstandingLTEwithMATLAB中文版)分3个部分深入讲解了LTE标准的物理层(PHY):关键核心技术的理论;
简明扼要地讨论了LTE标准规范;
用于仿真LTE标准所需的MATLAB算法。
MATLAB作为《全面详解LTE:MATLAB建模、仿真与实现》一个鲜明的特点,通过一系列的程序,展现了每一个LTE的核心技术。
通过一步步综合这些核心技术,最终建立LTE物理层的系统模型并评价系统功能。
通过这一循序渐进的过程,读者将会在仿真中深入理解LTE的技术构思和标准规范。
非常清晰,有完整目录,方便阅读,非常好的学习资料。
2020/8/4 13:02:09 91.14MB LTE MATLAB 4G
1
802.15.4中文zigbee的MAC层和物理层
2015/11/2 18:38:46 2.88MB 802.15.4中文 zigbee contiki
1
-计算机网络第二章,物理层的思想导图,https://blog.csdn.net/qq_33605778/article/details/79899674
2022/9/6 16:30:20 338KB 计算机网络
1
UDS诊断协议ISO14229的CAN网络层标准ISO15765(DoCAN标准),包含物理层、数据链路层、网络层等,为基于CAN的诊断开发提供支持。
2022/9/4 23:16:22 14.85MB UDS ISO15765 DoCAN CAN诊断
1
共 105 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡