base计算机网络【Q120】TCP 是如何保证可靠性的

TCP 是如何保证可靠性的

Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 121

Author 回答者: shfshanyue

ACK

Author 回答者: Carrie999

现在UDP也挺可靠的还快

Author 回答者: changshou83

@Carrie999 大佬细说

Author 回答者: liaotao123

TCP协议

Author 回答者: Azure089

TCP(传输控制协议)是一种面向连接的、可靠的传输协议。TCP 通过以下几种机制来保证数据传输的可靠性:

应答机制:当发送方发送数据时,接收方会发送一个应答确认已经收到数据。如果发送方在超时时间内未收到应答,就会重新发送数据,直到接收方发送应答确认为止。

序列号和确认号:TCP 将每个数据包都分配一个序列号,接收方收到数据包后会向发送方发送一个确认号,确认当前已收到的数据包的序列号。发送方可以根据确认号知道哪些数据包已经被接收方成功接收,哪些数据包需要重新发送。

滑动窗口:TCP 使用滑动窗口机制来控制发送方发送数据的速度。滑动窗口的大小取决于接收方的可用缓冲区大小和网络延迟等因素。发送方只能发送窗口内的数据,接收方只确认窗口内的数据。如果发送方收到接收方的窗口更新通知,则可以增加窗口大小,以便发送更多的数据。

超时重传:如果发送方在超时时间内未收到接收方的确认应答,就会认为数据包已经丢失,并重新发送数据包。超时时间通常根据网络延迟和拥塞程度等因素来计算,以确保重传时机的合理性。

拥塞控制:TCP 通过拥塞控制算法来防止网络拥塞。如果网络出现拥塞,TCP 会减少发送速率,以避免进一步加重网络负载。