TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。TCP提供全双工通信、数据可靠传输和拥塞控制等功能,适用于因特网等应用场景。TCP位于OSI七层协议模型的网络层,与用户数据报协议(UDP)一起构成了传输层协议。
TCP通过拥塞控制和流量控制来实现对网络流量的控制。拥塞控制确保了网络不会因为数据传输量过大而造成拥塞,而流量控制则确保了发送方不会发送过多的数据导致接收方无法处理。
- 拥塞控制:
拥塞控制的主要目标是避免网络因数据传输量过大而造成拥塞。为此,TCP采用了一种基于拥塞窗口(Congestion Window)的算法来实现拥塞控制。
在发送数据时,拥塞窗口是一个限制数据发送速率的值,它可以动态地调整。在发送端,TCP使用拥塞窗口来控制每次发送的数据量。如果网络拥塞,TCP会将拥塞窗口减半,并暂停发送数据。当网络恢复畅通时,TCP会逐渐增加拥塞窗口,直到达到原来的值。
- 流量控制:
流量控制的主要目标是确保发送方不会发送过多的数据导致接收方无法处理。为此,TCP采用了一种基于滑动窗口(Window)的算法来实现流量控制。
在接收数据时,接收方会向发送方发送一个通告,告诉发送方可以发送多少数据。这个通告被称为“接收窗口”(Receiver Window)。发送方会根据接收窗口的大小来控制发送数据的速率,以避免接收方无法处理。如果发送方发送的数据量超过了接收窗口的大小,接收方会丢弃一些数据,并通知发送方减少发送速率。
TCP协议的优点在于其可靠性、稳定性和面向连接的特点。TCP通过拥塞控制和流量控制实现了对网络流量的控制,避免了因数据传输量过大而造成的网络拥塞和丢包等问题。此外,TCP还提供了数据可靠传输机制,包括确认机制、重传机制和拥塞控制机制等,保证了数据的完整性。这些优点使得TCP成为因特网等应用场景下的首选传输协议。
TCP协议的缺点在于其相对较慢的传输速度和占用系统资源较高的特点。由于TCP是面向连接的协议,所以在数据传输之前需要建立连接,这需要消耗一定的时间和资源。此外,在拥塞控制和流量控制的过程中,TCP需要不断地进行控制和调整,这也会消耗大量的时间和系统资源。因此,在某些对传输速度要求较高的应用场景下,TCP可能不是最佳选择。
标签:控制,窗口,深剖,面经,TCP,发送,拥塞,接收 From: https://blog.51cto.com/u_14540126/6366323