TCP利用滑动窗口机制达到流量控制的目的,是传输层进行流控的一种措施。
TCP滑动窗口分为接受窗口,发送窗口:
接收方通过通告发送方自己的窗口大小(在返回的ACK中包含自己接收窗口的大小),从而控制发送方的发送速度,从而防止发送方发送速度过快而导致自己被淹没的目的。
ACK包含两个非常重要的信息:
一是期望接收到的下一字节的序号n,该n代表接收方已经接收到了前n-1字节数据,此时如果接收方收到第n+1字节数据而不是第n字节数据,接收方是不会发送序号为n+2的ACK的。举个例子,假如接收端收到1-1024字节,它会发送一个确认号为1025的ACK,但是接下来收到的是2049-3072,它是不会发送确认号为3072的ACK,而依旧发送1025的ACK。
二是当前的窗口大小m,如此发送方在接收到ACK包含的这两个数据后就可以计算出还可以发送多少字节的数据给对方,假定当前发送方已发送到第x字节,则可以发送的字节数就是y=m-(x-n).这就是滑动窗口控制流量的基本原理
TCP滑动窗口分为接受窗口,发送窗口:
接收方通过通告发送方自己的窗口大小(在返回的ACK中包含自己接收窗口的大小),从而控制发送方的发送速度,从而防止发送方发送速度过快而导致自己被淹没的目的。
ACK包含两个非常重要的信息:
一是期望接收到的下一字节的序号n,该n代表接收方已经接收到了前n-1字节数据,此时如果接收方收到第n+1字节数据而不是第n字节数据,接收方是不会发送序号为n+2的ACK的。举个例子,假如接收端收到1-1024字节,它会发送一个确认号为1025的ACK,但是接下来收到的是2049-3072,它是不会发送确认号为3072的ACK,而依旧发送1025的ACK。
二是当前的窗口大小m,如此发送方在接收到ACK包含的这两个数据后就可以计算出还可以发送多少字节的数据给对方,假定当前发送方已发送到第x字节,则可以发送的字节数就是y=m-(x-n).这就是滑动窗口控制流量的基本原理
1061

被折叠的 条评论
为什么被折叠?



