今天无意中想起了这个问题,谈谈我的理解。
先上图:
先约定两个名字。A代表连接建立的发起方(客户端),B代表连接建立的接收方(服务端)。
TCP连接是在实际信道中是全双工的,即逻辑上分成两个通道,一个是A->B,另一个B->A。
要在不可靠的信道上建立起可靠的连接,那么必须保证两个通道是可靠的。而三次握手的过程就是确保两个通道是可靠的,第一次和第二次握手可以让A知道A->B的通道是可靠的,而第二次和第三次握手可以让B知道保证B->A的通道是可靠的,三次握手也就确保了资源不会白白浪费。
参考资料:
https://groups.google.com/forum/#!topic/pongba/kF6O7-MFxM0/discussion
http://www.cnblogs.com/techzi/archive/2011/10/18/2216751.html