详解TCP的握手与分手
为什么要TCP
我们都知道,TCP 是可靠传输协议,也就是说,它的目的是为真正的数据传输提供服务,它在发送端与接收端建立一条虚拟的连接,来保证数据传输的可靠性,握手的目的就是为了建立一条虚拟的连接,分手就是为了把连接完全断开。
情侣之间的TCP交流
我们现在把TCP的发送方和接收方比作一对情侣,发送方就是女朋友吧,现在女朋友要向男朋友发送消息了,消息内容就是“别打游戏了,快陪我玩。”
虚拟连接的建立
他们之间采用TCP来发送消息,我们都知道,TCP 是全双工的,也就是说女朋友和男朋友两方都可以进行法发和收,握手的目的是保证双方具有这种功能。
上图中的 1 、3 消息证明了女朋友有发、收的能力,2 则说明男朋友既能收又能发,总共发送了三次信息,也就是我们常说的三次握手了。
虚拟连接的终止
同样,由于TCP是全双工的,两端都可以进行发收数据,那么要终止连接,就需要保证两端的数据都已经发送完毕。
上图中1、2则是说明女朋友没啥说了,3、4是说明男朋友没啥说了,两方都没有数据要进行发送了,连接就可以进行终止了。其中每一段连接的终止都需要发送两条消息,就是我们常说的四次挥手了。
总结
上面主要是介绍了TCP的连接建立和终止。其中重点有以下几点:
- TCP时为真正的数据传输提供服务的
- 连接建立要验证双方均具有收发功能
- 连接终止要保证双方均没有数据传输
为了方便,理解上面省略了好多细节,比如 2 M S L 状态、慢启动、快速重传等,这些具体内容,将会在下节进行讲述。