TCP:传输控制协议-网络协议

TCP:传输控制协议

 

TCP提供客户与服务器的连接。一个TCP客户建立于一个给定服务器的连接,并跨该连接与那个服务器交换数据,然后终止连接。  www.2cto.com  

其次,TCP提供可靠性。当TCP向另一端发送数据时,它要求对端返回一个确认。如果确认没有收到,TCP自动重传数据并等待更长时间。在数次重传失败后,TCP才放弃。重传数据所花的总时间传统上是4-10分钟。

 

TCP含有用于动态估算客户到服务器所花时间(RTT)的算法,因此它知道等待一个确认需要多少时间。举例来说,RTT在一个局域网上大约是几毫秒,而跨越广域网则可能是数秒钟。另外,TCP还持续估算一个给定连接的RTT,这是因为RTT受网络拥挤程度的变化而变化。

 

第三,TCP通过给所发送数据的每个字节关联一个序列号进行排序。举例来说,假设一个应用进程写2048字节到一个TCP套接口,导致TCP发送2个分节:第一个分节所含数据的序列号为1-1024,第2个分节所含数据的序列号为1025-2048.如果这些分节非顺序到达,接收端的TCP将根据他们的序列号重新排列,再把结果数据传递给应用进程。如果TCP接收到重复的数据它也可以判定数据时重复的,从而把它丢弃掉。

  www.2cto.com  

第四,TCP提供流量控制(flow control)。TCP总是告诉对端它能够接收多少字节的数据,这称为通告窗口(advertised window)。该窗口在任何时刻都指出接收缓冲区中的可用空间,从而确保发送端发送的数据不会溢出接收缓冲区。该窗口时时刻刻动态变化着:当接收来自发送端的数据时,窗口大小减小,而当接收端应用进程从缓冲区中读取数据时,窗口大小增大。窗口的大小减小到0是有可能的:TCP的接收缓冲区满,它必须等待应用进程从这个缓冲区读取数据后再接收从发送端来的数据。

 

最后TCP连接时全双工的。这意味着在给定的连接上应用进程在任何时刻即可以发送也可以接收数据。因此,TCP必须跟踪每个方向数据流的状态信息,如序列号和通告窗口的大小。
 

Leave A Comment