TCP的特性
TCP位于网络模型中的传输层,提供可靠的字节流服务,将大块数据分割成为以报文段(segment)为单位的数据包进行管理,目的是为了传送更大数据。
一个TCP连接中,仅有两方进行彼此通信,广播和多播不能用于TCP
TCP使用了校验和确认、重传极致保证可靠传输。要注意,TCP并不能保证数据一定会被对方收到,因为这是不能的。TCP能够做的事如果有可能就把数据递送到接收方,否则就(通过放弃重传并且终端连接这一手段)通知用户。因此准确说TCP也不是100%可靠的协议,它所能提供的是数据的可靠递送或故障的可靠通知。
TCP的三次握手
为了确保数据传输的可靠性,TCP协议采取了三次握手(three-way handshaking)策略。握手过程衡中使用了TCP的标志——SYN(synchronize)和ACK(acknowledgement)。
所谓的三次握手,值得是建立一个TCP连接时,需要客户端和服务器总共发送三个包,握手过程如下:
(1)第一次握手
客户端首先发送一个带SYN标志(为1)的数据包给对方,指明客户端打算连接服务器的端口等信息。发送完成后,客户算进入SYN_SEND
状态
(2)第二次握手
服务器收到后,回送一个带有SYN/ACK标志的数据包以示传达确认信息,发送完成后服务端进入SYN_RCVD
状态
(3)第三次握手
最后客户端再回传一个带ACK标志的数据包,代表握手结束,客户端和服务