首先来看我们生活中很常见的一件事:
在我们网购的时候,常常会跟客服这样聊天:我们向客服询问某件事,客服回答,然后我们断网了。。。过了一会儿,我们再登陆就收到了客服的回答。
这个交互的过程进行了三次才完成了一次应答,这个过程就类似我们采用TCP/IP协议访问服务器时的三次握手机制:
第一次握手:
建立连接时,客户端发送SYN包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认。SYN为同步序列编号.
第二次握手:
服务器收到SYN包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。
第三次握手:
客户端收到服务器的SYN+ACK包,向服务器发送确认包(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
从上面的建立连接的过程来看,一个TCP连接必须要经过三次“对话”才能建立起来.也就是说,在正式收发数据前,必须和对方建立可靠的连接。而UDP协议是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!所以,TCP协议是可靠安全的,而UDP协议是没有应答的,它比较适用于那些对可靠性不高的连接。
原文地址:http://blog.csdn.net/lhc1105/article/details/39314833