GoBackN协议的C语言实现

时间:2012-05-01 17:57:18
【文件属性】:

文件名称:GoBackN协议的C语言实现

文件大小:425KB

文件格式:RAR

更新时间:2012-05-01 17:57:18

go back n gobackn c语言

模仿数据链路层的gobackn协议 /*该协议是搭载ack的回退n步协议*/ #include #include "protocol.h" #define max_seq 7 #define flag 126 #define ESC 100 #define wait_time 2700 //发送计时器等待的时间 #define ack_wait_time 280 static int phl_ready = 0; unsigned char buf[max_seq+1][270]; unsigned char ack[8]; //发送空的ack帧 unsigned char in_buf[600], last_buf[520];//接收时的缓冲区;去掉冗余之后的缓冲区,为防备因误码两帧合并为一帧而定义了很大一个数组 int nbuffered=0; //发送的帧数 int buf_size[max_seq+1]; //记下以发送各帧的帧长 int next_frame_to_send=0; int frame_in_phl=0; //用于成帧 int frame_expected=0; int ack_expected=0; int between(int a,int b,int c) { if( ((a<=b)&&(b=0;i--)//记录flag前的esc数目 count++; return count%2; //若flag前的esc为偶数,则为帧尾 }//成帧函数--数据帧 void send_frame(char *my_buf,int len) { int n; buf[frame_in_phl][0]=(frame_expected+max_seq)%(max_seq+1); //ack buf[frame_in_phl][1]=frame_in_phl; //发送帧的帧号 for(n=0;n0&&(end_flag(in_len)==0)&&in_buf[in_len]==flag) { //判断帧尾 for(m=0,j=0;m


【文件预览】:
gobackn
----性能测试记录表.doc(78KB)
----测试数据()
--------datalink-Afle.log(42KB)
--------datalink-Bf.log(64KB)
--------datalink-Bfle.log(42KB)
--------datalink-Bf –ber 1e-4.log(64KB)
--------datalink-Bfl.log(69KB)
--------datalink-B 1e-7.log(122KB)
--------datalink-B5e-5.log(41KB)
--------datalink-B无参数.log(68KB)
--------datalink-Bfs.log(66KB)
--------datalink-Af –ber 5e-4.log(94KB)
--------datalink-Af –ber 1e-4.log(64KB)
--------datalink-Afl.log(68KB)
--------datalink-A 1e-7.log(121KB)
--------datalink-Afs.log(66KB)
--------datalink-Af.log(63KB)
--------datalink-A5e-5.log(41KB)
--------datalink-A无参数.log(35KB)
--------datalink-Bf –ber 5e-4.log(93KB)
----protocol.h(1KB)
----datalink.c(7KB)
----datalink.dsp(3KB)
----实验报告评语.doc(37KB)
----datalink.opt(53KB)
----datalink.ncb(65KB)
----数据链路层滑动窗口协议的设计与实现-实验报告.doc(140KB)
----datalink.dsw(541B)
----datalink.plg(252B)
----Debug()
--------protocol.lib(73KB)
----Release()
--------protocol.lib(45KB)
--------vc60.idb(33KB)
--------datalink.exe(68KB)
--------datalink.obj(5KB)
--------datalink.pch(176KB)
----源程序清单-样板.DOC(50KB)
----流程图.JPG(77KB)

网友评论

  • 谢谢,参考下
  • 不错,非常详细
  • 程序可以运行,但是思路太复杂
  • 程序可以运行,但是思路比较复杂
  • 可以运行,需要自己好好研究,呵呵
  • 可以运行,但是注意C的配置环境
  • 程序可以运行,但是思路太复杂
  • 正好是我们现代网络基础的作业,有用!而且简单明了
  • 程序不错,注释清楚,真是帮了大忙了
  • 这个C语言的控制台程序很好,能帮助我们快速理解GOBACKN协议
  • 很好,但是,,怎么是控制台界面的,不太好理解
  • 谢谢!程序是正确的。。但不太实用于我用的实验平台
  • 这个程序真心不错,确实是一个使用回退n帧技术的协议,而且程序本身的注释写的非常的详细,很容易理解,不过我想问一下:error LNK2026: 模块对于 SAFESEH 映像是不安全的。这是个什么错误。程序整体不错,值得下载。