面试大厂必看:滑动窗口协议详解?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3149个文字,预计阅读时间需要13分钟。
引言+想象一下这个场景:主机A+直接向主机B发送数据,不考虑主机B的接收能力,可能导致主机B的接收缓冲区满了而无法再接收数据,从而造成大量数据丢失,引发重传机制。
引言想象一下这个场景:主机 A 一直向主机 B 发送数据,不考虑主机 B 的接收能力,则可能导致主机 B 的接收缓冲区满了而无法再接收数据,从而导致大量的数据丢包,引发重传机制。而在重传的过程中,若主机 B 的接收缓冲区情况仍未好转,则会将大量的时间浪费在重传数据上,降低传送数据的效率。
所以引入了流量控制机制,主机 B 通过告诉主机 A 自己接收缓冲区的大小,来使主机 A 控制发送的数据量。总结来说:所谓流量控制就是控制发送方发送速率,保证接收方来得及接收。
TCP 实现流量控制主要就是通过 滑动窗口协议。
对于发送方来说,窗口大小就是指无需等待确认应答,可以连续发送数据的最大值。
窗口大小具体由谁来设定呢?
窗口大小和 TCP 报文首部中 16 位的 窗口大小 Window 字段有关:
该字段的含义是指自己接收缓冲区的剩余大小,于是发送端就可以根据这个接收端的处理能力来发送数据,而不会导致接收端处理不过来。
所以,通常来说窗口大小是由接收方来决定的。
本文共计3149个文字,预计阅读时间需要13分钟。
引言+想象一下这个场景:主机A+直接向主机B发送数据,不考虑主机B的接收能力,可能导致主机B的接收缓冲区满了而无法再接收数据,从而造成大量数据丢失,引发重传机制。
引言想象一下这个场景:主机 A 一直向主机 B 发送数据,不考虑主机 B 的接收能力,则可能导致主机 B 的接收缓冲区满了而无法再接收数据,从而导致大量的数据丢包,引发重传机制。而在重传的过程中,若主机 B 的接收缓冲区情况仍未好转,则会将大量的时间浪费在重传数据上,降低传送数据的效率。
所以引入了流量控制机制,主机 B 通过告诉主机 A 自己接收缓冲区的大小,来使主机 A 控制发送的数据量。总结来说:所谓流量控制就是控制发送方发送速率,保证接收方来得及接收。
TCP 实现流量控制主要就是通过 滑动窗口协议。
对于发送方来说,窗口大小就是指无需等待确认应答,可以连续发送数据的最大值。
窗口大小具体由谁来设定呢?
窗口大小和 TCP 报文首部中 16 位的 窗口大小 Window 字段有关:
该字段的含义是指自己接收缓冲区的剩余大小,于是发送端就可以根据这个接收端的处理能力来发送数据,而不会导致接收端处理不过来。
所以,通常来说窗口大小是由接收方来决定的。

