博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
拥塞控制和流量控制
阅读量:6275 次
发布时间:2019-06-22

本文共 891 字,大约阅读时间需要 2 分钟。

一、TCP的流量控制

1、利用滑动窗口实现流量控制
    如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。
    利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制。
    设A向B发送数据。在连接建立时,B告诉了A:“我的接收窗口是rwnd = 400”(这里的rwnd表示receiver window)。因此,发送方的发送窗口不能超过接收方给出的接收窗口的数值。请注意:TCP的窗口单位是字节,不是报文段

再设每一个报文段为100字节长,而数据报文段序号的初始值设为1.大写ACK表示首部中的确认位ACK,小写ack表示确认字段的值ack。

    
    从图中可以看出,B进行了三次流量控制。第一次把窗口减少到rwnd = 300,第二次又减到了rwnd=100,最后减到了0,即不允许发送方再发送数据了。这种使发送方暂停发送的状态将持续到主机B重新发出一个新的窗口值为止。B向A发送的三个报文段都设置了ACK=1,只有在ACK=1时确认号字段才有意义。
    TCP为每一个连接设有一个持续计时器。只要TCP连接的一方收到对方的零窗口通知就启动持续计时器。若持续计时器设置的时间到期,就发送一个零窗口探测报文段(携有1字节的数据),那么收到这个报文段的一方就重新设置持续计时器。

2. 拥塞控制

TCP采用慢开始和拥塞避免的方法控制发送

慢开始的思路是,先测试一下,在由小到大的增大发送窗口
具体的:预先设置一个慢开始门限,ssthresh(用于控制拥塞)
先设拥塞窗口cwnd=1,发送第一个报文,收到确认后把cwnd设为2,在发送,收到回复后,再把cwnd增加2个,即,收到回复后就把cwnd增加一倍,这就是慢开始算法
当cwnd>ssthresh就停止上述的慢开始算法而使用拥塞避免算法
拥塞避免算法就是每收到一个回复后就把cwnd加1,直到出现拥塞
无论在慢开始还是拥塞避免时只要出现拥塞就把ssthresh设为cwnd值的一半(这就是乘法减小)并把cwnd设为1,在执行慢开始算法,重复上述过程

转载地址:http://vfgpa.baihongyu.com/

你可能感兴趣的文章
《中国人工智能学会通讯》——12.16 时空众包工作流程
查看>>
英国脱欧:3/4的技术初创公司将面临严峻时期
查看>>
JavaScript API 设计原则
查看>>
WiFi信号可进行隔墙观测 透过衣服观察人体轮廓
查看>>
蓝点数据携手北京大数据产业人才实训基地培养大数据人才
查看>>
数据价值无上限!Windows如何保护重要文件
查看>>
黑客大赛GeekPwn攻破主流厂商众多产品
查看>>
中国通信业抱团 加快布局5G时代
查看>>
创业公司做数据分析(四)ELK日志系统
查看>>
如何在Linux中压缩及解压缩.bz2文件
查看>>
数据为王的时代 大数据对消费金融的影响
查看>>
万事达启动“用你自己替代密码”计划
查看>>
阿里巴巴“NASA计划”新进展:一个世界纪录!
查看>>
Linux下使用USB网络
查看>>
5G标准化进程提速 射频器件市场空间将打开
查看>>
《分布式系统:概念与设计》一3.3.6 拥塞控制
查看>>
“烧烤模式”下 安防设备如何经得住考验?
查看>>
人工智能时代,语音技术怎么赚钱?
查看>>
美大选被攻击 未来选举要回归纸质选票?
查看>>
SCRM火了,SaaS服务再现新风口
查看>>