TCP采用序列号、确认与重传,以及校验和等机制,能够从由于因特网通信系统造成的破坏、丢失、重复接收或传递失序的数据中恢复出正确的数据,保证可靠通信。事实上,在TCP/IP协议的体系结构中,网络层的IP协议提供的是无连接的、不可靠的通信机制,应用层所要求的可靠通信正是由TCP来实现的。
1.传送连续的字节流
将一定数目的字节打包进若干段中,并使用PUSH功能,可使得上层协议递交的数据能够迅速地从本地推向远地,而不受发送方当前发送窗口大小和发送方式所限制。
2.可靠性
(1)可靠连接:TCP提供面向连接的服务,发送方与接收方建立连接之后,才能传送数据。
(2)序列号机制:TCP协议是面向字节的,它将传送的报文看作是字节流。序列号是按照顺序给发送数据的每一个字节都标上号码的编号。
(3)确认和重传机制:TCP通过肯定的确认应答ACK实现可靠的数据传输。当发生端将数据发送出去之后,会等待接收端的确认应答。如果有确认应答,说明数据已经成功到达接收端。TCP为每次发送设置一个定时器,在一定的时间内如果没有收到确认应答,发送端可以认为数据已经丢失,并进行重发。因此,即使产生了丢失,仍然可以保证数据能够到达接收端,实现可靠传输。接收端是通过将自己下一步应该接收的序号发送回去,作为确认应答的。
(4)重新排序:由于各种原因(如重传),到达目的主机的报文段经常是乱序的。目的机器的TCP协议会缓冲接收到的数据段,根据TCP报文首部的序列号域的值,把它们正确地重新排序。
(5)校验和:使用校验和,TCP可以对接收到的报文进行检错。(www.xing528.com)
3.流量控制
采用滑动窗口机制。TCP在建立连接时,通信双方协商并各自分配一个缓冲区。发送方用来保存待发送数据的缓冲区称为发送窗口,接收方准备接收数据的缓冲区称为接收窗口。通信过程中,每个ACK携带一个“窗口”参数给发送方,指明了自上一个段被成功接收以来,进一步可接受的序列号的范围,即接收窗口的大小。发送方根据接收方的窗口大小,调整发送速度,从而实现了流量控制。
4.拥塞控制
网络中的链路容量、交换节点(如路由器)中的缓存与处理能力都有工作极限,当网络通信的需求超过工作极限时,就出现了拥塞。拥塞主要是由于过多的数据注入网络中,造成网络中的路由器或链路过载,过载会导致数据包被丢弃,不能实现成功通信,因此拥塞控制是非常必要的。TCP通过在发送方维持一个叫作“拥塞窗口”的变量,由该变量和接收方的接收窗口共同决定发送方的发送窗口大小,即调整发送方的发送速率,减少拥塞发生的可能性。
5.端口复用
允许单个主机中的多个进程同时使用TCP通信,即为主机中的每个进程设置一个端口号,TCP根据端口号来区分是哪个进程发送的数据,或者接收到的数据应该传递给哪个进程。
6.全双工通信
连接一旦建立,TCP允许通信双方的任意一方在任意时刻发送数据,也就是允许数据任意时刻在任何一个方向上流动,并且允许传输的数据中搭载应答信息。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。