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 会减少发送速率,以避免进一步加重网络负载。