传输控制协议(TCP)

	传输控制协议(TCP)用于作为包交换计算机通信网络中的主机以及此类网络的互连系统中的高度可靠的主机对主机协议。

TCP协议 的特点

	TCP协议是面向连接的,端到端可靠的协议,该协议被设计适应支持多网络应用的分层层次协议。
	TCP协议是基于一对一通信的,不提供广播服务和组播服务

TCP协议的可靠性

	TCP协议必须恢复来自互联网通信系统的被损坏、丢失、复制或无序交付的数据,TCP协议传输数据时会为每个字节分配一个序列号,通过这个序列号就可以判断数据是否重复到达以及数据是否丢失,还可以通过序列号对数据进行排序。
	接收端每次接收到数据之后必须发送确认应答信号(ACK),若在超时时间内发送端没有接受到由接收端发送的应答信号(ACK),则TCP协议会认为数据没有送达,发送端会重新发送数据。
	判段数据是否损坏的方式:给每个数据段增加校验和,接收端通过数据段中的校验和进行校验,校验失败进行丢包,故此也不会发送ACK,发送端会重新传输数据段。

TCP的连接机制

	连接机制采用了三次握手机制:
	TCP的三次握手是在客户端调用connect()期间和服务器调用accept()期间才会发生的,而且是accept()优先于connect()调用。
	握手流程如下图:

image