实验报告
题目:返回N-ARQ协议
实验内容:实现收接双方的返回N-ARQ协议。
实验要求:进行实时的传输控制以及现实差错模拟
实验基本思想:
将发送方A的源文件()经过有序的切分之后送入缓冲双向队列之中,按照事先规定好的速率进行实时传输。接收方B接收到相应的分组之后进行回应,然后A根据回应对确认分组进行销毁,调整分发帧继续重传
实验结构:
2
3 4
ARQ-body
5 6
代码:
界面
7 8 9
10
发送帧校验和检查
接收分组校验和检查
反馈接收
反馈传输
帧传输
帧接收
基本参数设定
当前链路状态参数传输
随机计时器
链路状态窗口调用
代码:
ARQ-body:
#include<iostream>
#include<cstring>
#include<fstream>
#include<queue>
#include<ctime>
#include<stack>
#include<>
using namespace std;
#include""
#include""
#include""
#include""
#include""
#include""
int main(int argc,char* argv[])///////////////////////////////////用来初始化双方数据:默认双方使用缓冲区大小为5:3
{
char s1[30]={'1','.','t','x','t'};
char s2[30]={'2','.','t','x','t'};
int i;
if(argc!=1)
{
strcpy(s1,argv[0]);
strcpy(s2,argv[1]);
}
(s1);
if(!())
return 1;
(s2);
if(!())
return 1;
while(true)
{
if(!GetData())//////////////////////将当前文件的一个块插进队列1
break;
SendFrame();////////////////////文件发送
receive();
}
();
();
return 1;
}
int check_sum(char* puchMsg)
{
///////////////////////////采用CRC循环校验
/*unsigned char *puchMsg; /* 要进行CRC校验的消息*/
unsigned short usDataLen; /* 消息中字节数*/
/* CRC 高位字节值表*/
static unsigned char auchCRCHi[]={
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,
0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,
0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
0x80, 0x41
返回n-arq 协议 来自淘豆网m.daumloan.com转载请标明出处.