TCP(传输控制协议 Transmission Control Protocol)
TCP向应用层提供可靠地面向连接的字节流传输服务。它能提供高可靠性能通信(即数据无误、数据无丢失、数据无失序、数据无重复到达)。
TCP特点
-
面向连接
使用TCP必须要先建立连接,建立连接之后双方的系统内核会为它们分配必要的资源,用来管理练连接的状态和传输的数据。在数据传输完成之后,涮坊需要关闭连接释放系统资源。
TCP是全双工的(双方的读写操作可以在一条连接线上进行),并且是一对一的连接,所以需要广播或多播(目标是多个主机)的应用程序不能使用TCP服务,而是使用无连接的UDP服务。 -
可靠地
- TCP采用发送应答机制,即发送端发送的TCP报文段都必须得到接收方得回应才算发送成功;
- TCP采用超时重传机制,即在发送端发送一段报文之后会启动定时器,在一段时间之后还没有得到接收端的回应,发送端会重新发送该段报文;
- TCP报文最终都是以IP数据的形式发送的,IP数据到达的时候很有可能是重复或者乱序的,所以TCP模块还会对接收到的TCP报文段进行重排和整理,再交给应用程序。
-
字节流
TCP是字节流服务,对使用字节流服务的TCP的接收端和发送端都有缓冲区(内核空间中),当发送端 / 接收端,发送 / 接受一段数据,发送端 / 接收端可以将数据分为一段或几段,一次或者多次发出 / 读出。
由此可以看出,TCP模块发出的TCP报文段的个