C语言 计算机网络TCP拥塞控制模拟程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include "stdio.h"
#include "stdlib.h"
void show()
{
//system("cls");
printf("\n");
printf("请输入ssthrest的初始值:\n\n");
printf("请输入需要模拟的传输轮次数:\n\n");
printf("请输入重传的值n:\n");
printf("请输入快重传的值m:\n\n");


}

void main()
{
int sst=0;
int x=0;
int ch=0;
int n=0;//重传的报文段
int m=0;//快重传的报文段
int i=1;//打印传输轮次
int cwnd=1;
int cchuan=0;
do
{
show();

scanf("%d\t%d\t%d\t%d",&sst,&x,&n,&m);


//慢开始
printf("\n拥塞窗口cwnd:");
for(cwnd=1,i=1;cwnd<=sst;i++)
{
printf("%d ",cwnd);
cwnd=2*cwnd;

}

//拥塞避免
for(cwnd=sst;i{
cwnd=cwnd+1;
cchuan=cwnd;//标记重传的cwnd
printf("%d ",cwnd);
}

//重传
for(cwnd=1;cwnd<=(0.5*cchuan);i++,cwnd=2*cwnd)
{
printf("%d ",cwnd);

}

//快恢复
for(cwnd=(int)cwnd*0.5;i<=x;i++)
{

cwnd=cwnd+1;
printf("%d ",cwnd);

}
printf("\n");

printf("传输轮次X:");
for(i=1;i<=x;i++)
{
printf("%d ",i);
}

//1990增加的拥塞控制算法
//慢开始
printf("\n\n\nTCP Reno版本\n");
printf("拥塞窗口cwnd:");
for(cwnd=1,i=1;cwnd<=sst;i++)
{
printf("%d ",cwnd);
cwnd=2*cwnd;

}

//拥塞避免
for(cwnd=sst;i{
cwnd=cwnd+1;
cchuan=cwnd;//标记重传的cwnd
printf("%d ",cwnd);

}

//快重传 快恢复
for(cwnd=(int)cchuan/2;i{
printf("%d ",cwnd);

}

//超时重传
for(cwnd=1;i<=x;i++)
{
printf("%d ",cwnd);
cwnd=cwnd*2;
}
printf("\n");

printf("传输轮次X:");
for(i=1;i<=x;i++)
{
printf("%d ",i);
}


printf("\n\n\t是否继续测试(0/1)?\n");
scanf("%d",&ch);
}while(ch==1);
}


相关文档
最新文档