【计算机网络】TCP为什么可靠?解决了哪些问题?
TCP提供了:
1.可靠传输
2.流量控制
3.拥塞控制
4.连接管理
解决了数据在不可靠IP网络上的传输问题。
下面具体分析这4个方面。
1.可靠性传输:
TCP确保数据包在网络传输过程中 不丢失、不重复,并且按顺序到达。
通过确认(ACK)、重传机制以及序列号,TCP能够确保数据在不可靠IP网络上可靠传输。
2.流量控制:
TCP通过滑动窗口机制 调节发送方的数据发送速率。
防止接收方因为处理能力有限而被数据流淹没。
3.拥塞控制:
TCP通过拥塞避免算法(如慢启动、拥塞避免、快速重传和快速恢复)来防止网络过载。
确保网络资源的公平使用和稳定性。
4.连接管理
TCP是面向连接的协议。
采用三次握手(建立连接)和四次挥手(断开连接) 机制来管理会话。
确保通信的可靠性和状态的同步。
扩展Part
1.数据包重排序与重传机制:
TCP的序列号机制 确保数据包按照正确的顺序组装,接收方通过序列号识别数据包的顺序。
如果检测到丢失或乱序的包,会请求重传,保证数据完整性。
2.滑动窗口与流量控制:
滑动窗口用于动态调整可以发送的数据量。
接收方通过发送窗口大小通告,指示发送方可以发送的最大数据量。
这种机制不仅避免了接收方的溢出,还提高了数据传输效率。
3.拥塞控制算法:
TCP的拥塞控制算法是 核心的网络稳定性保证,经典算法包括以下几个步骤:
- 慢启动:逐步增加发送窗口,直到检测到网络的拥塞点。
- 拥塞避免:当达到网络容量后,逐渐增加窗口以避免拥塞。
- 快速重传和快速恢复:在检测到包丢失时,立即进行重传并调整发送窗口,快速恢复正常传输状态。
4.TCP三次握手和四次挥手:
- 三次握手:建立连接时,客户端和服务器通过三次信息交换(SYN,SYN-ACK,ACK)来确保双方都准备好进行数据传输,并协商参数(如初始序列号)
- 四次挥手:断开连接时,通过四次消息交换来确保数据传输完成且资源可以安全释放,防止未传输的数据丢失。
三次握手:
四次挥手:
5.TCP的局限性:
虽然TCP解决了可靠传输的问题,但在高延迟、高带宽的网络(如卫星通信、现代数据中心)中可能会受到性能瓶颈。
进而催生了QUIC等新协议的出现。
带宽: 网络链路在单位时间内能传输的最大数据量,通常以 比特每秒(bps, bit/s) 为单位
TCP为什么可靠?
1.数据完整性:使用校验和确保数据在传输中没有被破坏。
2.数据顺序:保证数据按顺序到达接收方,且接收方能够重新排序乱序到达的数据。
3.流量控制:通过滑动窗口机制避免接收方溢出。
4.拥塞控制:通过动态调整发送速率避免网络拥塞。
5.重传机制:确保丢失的数据会被重新传输。
6.可靠的连接建立和关闭:三次握手和四次挥手机制确保连接的正确建立和断开。
7.防止数据重复:通过序列号和确认机制防止重复数据的接收。