模仿数据链路层的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
PDT数字集群通信零碎技术规范-空中接口物理层及数据链路层(标准版).doc
2015/9/25 22:52:58 8.97MB DMR PDT
1
linux平台本人实现ping的功能,ping是基于ICMP协议实现的一种网络链路测试工具,提供用户本人测试链路,IP在代码里写死了,可以根据本人的需要加以修改。
2020/6/1 11:24:56 8KB ping ICMP socket
1
计算机系统结构大学期末复习资料题库含答案1.看下述程序段:(C)k:R5=R2k+1:R0=R1×R4k+2:R2=R5+1k+3:R4=R0×R3k+4:R3=R4-1K+5:……k和k+2之间发生的是什么数据相关I.先写后读相关II.写-写相关III.先读后写相关A.只有IB.只有I、IIC.只有I、IIID.以上都不对2.开发并行的途径有(D),资源重复和资源共享。
A、多计算机系统B、多道分时C、分布式处理系统D、时间重叠3.在计算机系统设计中,比较好的方法是(D)。
A、从上向下设计B、从下向上设计C、从两头向中间设计D、从中间开始向上、向下设计4.执行微指令的是(C)a.汇编程序b.编译程序c.硬件d.微指令程序5.软件和硬件在(B)意义上是等效的。
A.系统结构B.功能C.功能D.价格6.实现汇编语言源程序变换成机器语言目标程序是由(D)A.编译程序解释B.编译程序翻译C.汇编程序解释D.汇编程序翻译7.按照计算机系统层次结构,算术运算、逻辑运算和移位等指令应属于(A)级机器语言。
A.传统机器语言机器B.操作系统机器C.汇编语言机器D.高级语言机器8.对汇编语言程序员,下列(A)不是透明的。
A.中断字寄存器B.乘法器C.移位器D.指令缓冲器9.在采用基准测试程序来测试评价机器的功能时,下列方法按照评价准确性递增的顺序排列是(B)。
(1)实际的应用程序方法(2)核心程序方法(3)玩具基准测试程序(小测试程序)(4)综合基准测试程序A.(1)(2)(3)(4)B.(2)(3)(4)(1)C.(3)(4)(1)(2)D.(4)(3)(2)(1)10.下列体系结构中,最适合多个任务并行执行的体系结构是(D)A、流水线的向量机结构B、堆栈处理结构C、共享存储多处理机结构D、分布存储多计算机结构11.从用户的观点看,评价计算机系统功能的综合参数是(B):A、指令系统B、吞吐率C、主存容量D、主频率12.设指令由取指、分析、执行3个子部件完成,每个子部件的工作周期均为△t,采用常规标量单流水线处理机。
若连续执行10条指令,则共需时间(C)△t。
A.8B.10C.12D.1413.系统响应时间和作业吞吐量是衡量计算机系统功能的重要指标。
对于一个持续处理业务的系统而言,(C),表明其功能越好。
A.响应时间越短,作业吞吐量越小B.响应时间越短,作业吞吐量越大C.响应时间越长,作业吞吐量越大D.响应时间不会影响作业吞吐量14.若每一条指令都可以分解为取指、分析和执行三步。
已知取指时间t取指=4△t,分析时间t分析=3△t,执行时间t执行=5△t。
如果按串行方式执行完100条指令需要(C)△t。
A.1190B.1195C.1200D.120515.如果按照流水线方式执行,执行完100条指令需要(B)△t。
A.504B.507C.508D.51016.并行访问存储器最大的问题就是访问冲突大,下面不属于并行访问存储器的缺点的是:(D)A、取指令冲突B、读操作数冲突C、写数据冲突D、译码冲突17.一条4段流水线,每段执行时间为1ns,求该流水线执行100条指令最大效率为(C)A.100%B.96.2%C.97.1%D.388%18.假设一条指令的执行过程可以分为“取指令”、“分析”和“执行”三段,每一段的执行时间均为,连续执行n条指令所需要花费的最短时间约为(B)(假设仅有“取指令”和“分析”可重叠并假设n足够大):A.B.C.D.19.MISD是指(C)A.单指令流单数据流B.单指令流多数据流C.多指令流单数据流D.多指令流多数据流20.星形网络的网络直径和链路数分别为(A)和(D)。
A.N-1B.N/2C.2D.N(N-1)/221.软件和硬件在(B)意义上是等效的。
A.系统结构B.功能C.功能D.价格
2021/6/14 4:31:37 17.37MB 题库含答案
1
LAPDm是Ms和BTS之间信息传递的协议,LAPDm基于ISDN的D信道链路接入协议(LAPD),但是做了相应修改以使用于Um接口,所以称为LAPDm。
2015/5/14 13:23:51 2.57MB LapDm
1
计算机网络资料整理,考试知识点汇总。
网络的互连设备有哪些?分别有什么作用和工作在什么层次?提示:中继器,工作在物理层,功能是对接收信号进行再生和发送,从而增加信号传输的距离。
集线器是一种特殊的中继器,可作为多个网段的转接设备。
网桥工作于数据链路层,不但能扩展网络的距离或范围,而且可提高网络的功能、可靠性和安全性。
路由器工作于网络层,用于连接多个逻辑上分开的网络。
桥路器是一种结合桥接器(bridge)和路由器(router)两者功能的设备,它控制从一个网络组件到另一个网络组件(此时充当桥接器)和从网络到因特网(此时充当路由器)的传输。
网关又叫协议转换器,工作于网络层之上,可以支持不同协议之间的转换,实现不同协议网络之间的互连。
主要用于不同体系结构的网络或者局域网与主机系统的连接。
2018/8/22 2:28:30 464KB 计算机网络
1
基于MATLAB的m语言搭建LTE系统通信仿真链路,仿真分析该系统的误码功能。
2015/3/7 13:37:40 3KB LTE OFDM MATLAB
1
比较全面的modbus协议,看完就能基本懂这个协议了,有原理引见,串行链路实现指南,和TCP实现指南
2019/7/11 19:36:26 1.16MB MODBUS
1
一、运行库(SDK)说明:1.本运行库(SDK)是基于Qt5.14.2(QT安装目录显示为5.14.2,但AboutQTCreator显示:BasedonQt5.14.1)+Oracle11G32位OCI(选择32位是因为兼容64位——最后出发点;
但大量测试和查询文档后表明,其QT链接Oracle混编生成QOCI时压根不支持64位混编)环境编译所得Release版本,理论支持Windowsxp及以上产品。
2.本编译生产的脱平台SDK,支持生产环境无需再次安装Oracle客户端及一切产品——可通过配置本地化ini(db.ini)文件、或代码中实现目标数据库链路。
3.本运行库(SDK)内的文件除testOracle测试demo外,其他文件及文件夹无法再做精简、移动或更改(已经做到了最优)。
4.客户机运行时,无需安装ORACLE客户端,但需添加环境变量path。
如将testOracle文件夹放在C盘根目录时,则需添加相应环境变量:;
C:\testOracle\sqldrivers5.已测试运行环境:win1064位、win7(x64、x32)————————————————详细讲解参考上一篇:https://blog.csdn.net/caoyin1234/article/details/114209992
2017/8/20 23:24:26 38.28MB qt5 oracle sdk 数据库
1
链路形态路由算法,求最大路径,可以增删路由。
含报告。


2019/11/24 16:16:26 99KB 链路状态路由算法 dijkstra算法
1
共 204 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡