TCP协议(三)可靠传输的实现和流量控制

1.可靠传输:实现不丢包且有序的传输

①累计应答:接受方缓存收到的数据包,并按照已收到的有序的数据包的最大序号应答,发送方根据确认序号继续传输或重传

保证数据有序到达

②连续ARQ:发送方为收到响应时,会认为包丢失,启动重传机制。重传的时间根据发送响应的时间RTT加权算得。触发超时重传时,下次RTT加倍,解决不丢包问题

2.流量控制:根据接收方的处理能力,调整发送速度

滑动窗口协议:

发送方

①发送窗口 = 已发未确认 + 未发可发

②收到确认,窗口左边界右移

③根据接收方的窗口大小,移动右边界

接收方

①接收窗口 = 等待接收未确认

②应用程序读取,左边界右移

3.拥塞控制:根据网路的承载能力,调整发送速度,发送窗口 <= min {cwnd(拥塞窗口), rwnd(接收窗口)}

①慢开始

试探网络的承载能力,cwnd初始值为1个报文段,每收到一个相应, cwnd+1 

所以rwnd = 1 -> 2 ->4 -> 8呈指数增长

②拥塞避免

到达一定的临界值ssthresh,要减慢增长速度,收到一个相应,增加1/cwnd, 呈线性增长

一旦丢包,就重新开始, ssthresh变为cwnd/2

③快重传

如果接受方收到了5,7,8三个包, 丢失了其中的6这个包,会连续发送三个5的ACK,发送方就知道,不是网络拥塞,只是一个包丢失了,会立即进行重传

④快恢复

在快重传的场景下, 发送的方不会从1开始重新执行慢开始->ssthresh->避免拥塞的流程, 而是将cwnd = ssthresh = cwnd/2,

跳过慢开始,快速恢复发送速度

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值