TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
三次握手(Three-way Handshake):建立连接时,TCP使用三次握手来同步连接双方的序列号和确认号,确保双方的接收和发送通道都已准备好。
序列号(Sequence Numbers):TCP为发送的每个字节都分配一个序列号,接收方可以通过序列号来重新组装数据。
确认应答(Acknowledgements):接收方发送确认应答来告知发送方数据已成功接收,如果发送方在一定时间内未收到确认,将重传数据。
数据重传(Retransmission):如果发送方没有收到某个数据包的确认应答,它会重传该数据包。
流量控制(Flow Control):TCP使用窗口机制来控制发送方发送数据的速度,防止接收方处理不过来。
拥塞控制(Congestion Control):TCP动态调整发送数据的速率,以避免网络拥塞。
校验和(Checksum):TCP对每个数据包进行校验和计算,以检测数据在传输过程中是否出现错误。
数据排序(Ordering):即使数据在网络中被重新路由,TCP也会确保数据按照发送顺序到达接收方。
端到端的交付(End-to-End Delivery):TCP确保数据从发送方到接收方的完整传输,即使在中间节点可能会经过多次转发。
拥塞避免(Congestion Avoidance):TCP通过减少发送速率来避免网络拥塞,而不是简单地丢弃数据包。
快速重传(Fast Retransmit):如果接收方连续收到三个重复的确认,发送方会立即重传未被确认的数据包,而不是等待重传计时器超时。
快速恢复(Fast Recovery):在快速重传之后,TCP会调整窗口大小,以快速恢复传输速率。