TCP流量控制
2016-12-08 01:08
316 查看
TCP流量控制
为什么要TCP流量控制?
TCP流量控制不是为了减少网络压力,那是TCP拥塞控制的作用。下面简单介绍一下TCP流量控制的目的:
作用对象:相互连接着的两个终端(发送端与接收端)。
解决问题:解决发送端与接收方吞吐量不匹配的问题,比如当一个发送端A每秒发10个数据包,而接收端B每秒只能接受1个数据包,那么就会出现丢包的情况,所以发送端与接收端要的吞吐量要匹配。
目的:让发送端根据接收端的接收能力动态的调整发送速率
如何进行TCP流量控制?
首先介绍TCP流量控制需要的几个变量:
LastByteSent :最后发送的数据包的序号,由发送端进行维护
LastByteACK:最后收到的ACK包确认的数据包序号,由发送端进行维护
rwnd:由发送方进行维护,表示接收方还有多少空余空间,由接收方发回(与ACK一起?待查)
LastByteRead:由接收方维护,表示应用程序最后从缓存里面读取的数据包的序号
RcvBuffer:接收方缓存的最大值
如果要:要保证不因为溢出而丢包,即保证接收方缓存足以接收即将收到的数据。
即:LastByteRcv−LastByteRead≤RcvBuffer
又:rwnd=RcvBuffer−[LastByteRcv−LastByteRead]
联立可得,要达成TCP流量控制,满足下式:LastByteSent−LastByteACK≤rwnd
具体是如何进行的?
最简单的思路:rwnd=0时咱们不发送了,但这样会存在一个问题,就是如果之后没有ACK,那么连接就相当于断开了。所以真正的解决方案是:当rwnd=0时,发送端发送只有一个字节的数据的报文段。
如何恢复?
等下一次ACK到来可能rwnd就变大了,到时候就可以发送更多的数据了相关文章推荐
- TCP可靠传输——流量控制
- TCP 流量控制、拥塞控制
- TCP流量控制协议
- TCP/UDP 详解 (可靠传输、流量控制、连接管理等核心章节的详解)
- TCP的流量控制和拥塞控制
- TCP的工作原理,TCP的流量控制原理,滑动窗口,拥塞窗口,ACK累计确认等
- 【网络协议】TCP的流量控制机制
- TCP/IP-----区别、缓存、流量控制、拥塞控制
- TCP的流量控制和拥塞控制
- TCP的流量控制和拥塞控制
- TCP的流量控制和拥塞控制
- TCP流量控制
- 【网络】TCP的流量控制
- TCP流量控制
- TCP流量控制和拥塞控制
- TCP/IP:拥塞算法与流量控制算法 学习小结
- TCP流量控制 拥塞控制
- TCP可靠传输及流量控制系列五:TCP流量控制基本算法
- TCP/IP之TCP协议:流量控制(滑动窗口协议)
- TCP的流量控制