Daily-Question icon indicating copy to clipboard operation
Daily-Question copied to clipboard

【Q120】TCP 是如何保证可靠性的

Open shfshanyue opened this issue 5 years ago • 4 comments

shfshanyue avatar Dec 10 '19 15:12 shfshanyue

ACK

shfshanyue avatar Dec 12 '19 08:12 shfshanyue

现在UDP也挺可靠的还快

Carrie999 avatar Nov 09 '21 06:11 Carrie999

@Carrie999 大佬细说

changshou83 avatar Mar 07 '22 22:03 changshou83

TCP协议

liaotao123 avatar Sep 09 '22 05:09 liaotao123

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

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

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

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

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

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

Azure089 avatar Apr 22 '23 14:04 Azure089