帮助你更好地认识TCP拥塞控制的机制

#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);

}

tcp拥塞控制编程实验c语言代码,C语言 计算机网络TCP拥塞控制模拟程序相关推荐

  1. c语言离散卷积编程,实验一 离散卷积的C语言编程.ppt

    实验一 离散卷积的C语言编程.ppt 实验一 离散卷积的C语言编程实验 DSP实验室 实验性质 综合设计性实验 实验目的 1 了解和认识常用的各种信号: 2 掌握卷积的定义和计算方法: 3 掌握在计算 ...

  2. tcp网络编程客户端和服务端及listen和tcp允许最大连接数

    tcp网络编程 tcp网络编程步骤: 由于tcp传输特点是可靠有连接,那么就有 1.客户端向服务端发送连接请求(SYN), 2.服务端接受请求并向客户端发送(SYN+ACK); 3.客户端向服务端回复 ...

  3. mcem r语言代码_R语言面向对象编程:S3和R6

    R语言面向对象编程:S3和R6 2017-06-10 0 R语言面向对象编程:S3和R6 一.基于S3的面向对象编程 基于S3的面向对象编程是一种基于泛型函数(generic function)的实现 ...

  4. TCP网络编程相关概念原理及其代码实现

    一.ip地址 IP地址:是标识网络设备的一个地址,作用是标识网络中唯一的一台设备,即通过IP地址就可以找到网络中的某台设备 分类 IPv4:网际协议版本4,是网际协议开发过程中的第四个修订版本,也是该 ...

  5. c语言编程学生管理系统的代码,C语言学生管理系统源代码.doc

    C语言学生成绩管理系统源代码,保证能用-- #include "malloc.h" #include "stdio.h" #include "stdl ...

  6. mcem r语言代码_R语言阈值自回归模型(TAR)代码示例

    原文链接: R语言时间序列TAR阈值模型分析​tecdat.cn 阈值模型用于统计的几个不同区域,而不仅仅是时间序列.一般的想法是,当变量的值超过某个阈值时,过程可能表现不同.也就是说,当值大于阈值时 ...

  7. 学生选修课程系统设计c语言代码,C语言实现学生选修课程系统设计.pdf

    C语语言言实实现现学学生生选选修修课课程程系系统统设设计计 本文实例为大家分享了C语言学生选修课程系统的具体代码,供大家参 ,具体内容如下 我编程的时间不长,所以这里面肯定有一些错误,或者存在更好的解 ...

  8. 坦克大战项目c语言代码,c语言 坦克大战 游戏源码下载

    [实例简介]坦克大战  C语言  源代码 [实例截图] [核心代码] void GamePlay()/*玩游戏的过程*/ { int i,j,lose=0;/*lose是1的时候表示失败*/ int ...

  9. linux贪吃蛇c语言代码,C语言贪吃蛇讲解及源码

    { set_cursor_position(0, i); printf("■"); set_cursor_position(N+2, i); printf("■" ...

最新文章

  1. 手把手教你搭建智能合约测试环境、开发、编译、部署以及如何通过JS调用合约方法
  2. 在 ASP.NET MVC 中使用 Chart 控件
  3. Talend Restful
  4. ADO学习(九)如何阅读ADO文档
  5. 【IOS学习基础】OC类的相关
  6. 最大子列和问题(JAVA)
  7. matlab 线性规划_从零开始的matlab学习笔记——(37)线性规划——后传
  8. Vue3计算属性computed
  9. @程序员,如何解决开发和运维之间的固有隔阂?
  10. 使用Mapnik生成地形图——thematicmapping.org译文(四)
  11. idea添加maven启动
  12. mysql date 索引_SQL 中 IS NULL 可以走索引
  13. python链家爬虫
  14. Matlab一元线性拟合及F检验
  15. linux 软防火墙 DDOS,Linux iptables防火墙详解 + 配置抗DDOS攻击策略实战
  16. python adf检验_python做adf检验
  17. MP4 全介绍【转载】
  18. 码畜,码农,码皇,程序员有什么区别?
  19. 压测⼯具本地快速安装Jmeter5.x以及基础功能组件介绍线程组和Sampler
  20. 使用node实现歌词滚动输出

热门文章

  1. bootstrap上传文件美化
  2. 色彩(颜色)空间原理(实现代码)
  3. 2021年大数据Flink(二十八):Flink 容错机制 自动重启策略和恢复
  4. DCN-2655 同异步端口PPP (chap)认证
  5. colorAccent,colorPrimary,colorPrimaryDark 作用的地方
  6. Iframe上传文件
  7. hdu5701-中位数计数
  8. NOIP模拟 数球(思维题)
  9. 【BZOJ】3524 [POI2014] Couriers(主席树)
  10. mysql查询赋值、修改拼接字符串