目录[隐藏][展示]
创建了一个称为 TCP Flow Control 的协议来控制用户和服务器之间的数据流。
它确保有一定数量的带宽可用于发送和接收数据,以便处理可以继续进行而不会遇到任何严重的问题。
TCP 协议使用一种称为滑动窗口协议的方法来实现这一点。
我们将在这篇文章中深入了解 TCP 流控制,包括它的工作原理,以及最关键的滑动窗口协议。
什么是 TCP 流控制?
TCP 协议确保可以跨不可预测的网络建立可靠的通信通道。
数据包在从一个节点发送到另一个节点时可能会丢失、乱序到达、在网络中备份或在接收节点上过载。
但是,在开发应用程序时,我们通常不必处理这种复杂性。 相反,我们只是将一些数据发送到套接字,TCP 确保数据包成功传递到接收节点.
流量控制是 TCP 提供的一项重要的附加功能。
通过使用流量控制,TCP 本质上将确保发送方不会一次向接收方发送太多数据包。
传输控制协议 - 流量控制如何工作?
这通常发生在我们需要通过网络传输数据时。
发送方应用程序将数据发送到套接字,传输层(在本例中为 TCP)将这些数据打包到一个段中,然后网络层(例如 IP)通过某些路由将此数据包传递给接收节点。
网络层会将此数据传输到会话接收端的 TCP,TCP 会将其作为给定数据的相同副本提供给接收应用程序。
TCP 不会乱序传送数据包,并且会等待重新传输,以防它检测到字节流间隙。
如果我们放大,这就是我们将看到的。
TCP 上的发送和接收缓冲区都用于分别保存必须发送和接收的数据。
接收缓冲区中的数据将在准备好后被应用程序读取。
确保在接收方的接收缓冲区已满时不发送额外的数据包是流量控制的主要目标,因为这样做会迫使接收方丢弃它无法处理的额外数据包。
接收方将宣布其接收窗口,或接收缓冲区中的可用空间,以限制 TCP 可以传输的数据量。
滑动窗口协议
TCP中的滑动窗口协议是应用最广泛的流量控制方法之一。 它是一个可变大小、面向字节的过程。
在这种方法中,一旦发送者和接收者连接,接收者就会向发送者发送接收者窗口。
接收器当前缓冲区的大小称为接收器窗口。
无需确认即可进一步发送的数据量现在由 TCP 基于可用的接收器窗口计算。
但是,如果接收器窗口大小为 0,TCP 会停止数据传输并等待它增加。
接收窗口的大小是 TCP 帧的一个组成部分。
窗口的最大大小为 65,535 字节,因为它的窗口大小为 16 位。
窗口的尺寸由收件人选择。 对于每个确认消息,接收器都会发送当前可用的接收器窗口的大小。
滑窗协议流程
使用滑动窗口协议技术时,发送方和接收方连接时会建立两个缓冲区。
这两个缓冲区分为两组:属于发送方的发送窗口和属于接收方的接收窗口。
当发送方向接收方发送数据时,接收窗口会返还剩余的接收缓冲区空间。
因此,发送方受限于接收缓冲区中可以容纳的数据量。
上例中的发送窗口将数据发送到接收窗口。
接收窗口收到数据后,发送一个确认,然后发送窗口发送一个新的数据帧。
不过,这一次,接收窗口除了已收到的确认外,还会发送一条消息,说明可用内存已满。
发送窗口暂停数据传输,直到它收到来自接收窗口的空间已释放的确认,此时它可以恢复数据传输。
结论
总之,数据连接层和传输层负责处理流量控制问题。
流量控制机制的基本目标是阻止接收方因来自传输速度更快的发送方的数据而负担过重。
即使发送方传输的数据没有错误并且由于机器功能强大而以更快的速率发送,较慢端的接收方也可能无法处理更快的数据速率,因此会丢失一些数据。
发表评论