首页 > 代码库 > 网络协议:简析三次握手协议

网络协议:简析三次握手协议

    


      一,简析三次握手协议


              首先来看我们生活中很常见的一件事:



               



            在我们网购的时候,常常会跟客服这样聊天:我们向客服询问某件事,客服回答,然后我们断网了。。。过了一会儿,我们再登陆就收到了客服的回答。


             这个交互的过程进行了三次才完成了一次应答,这个过程就类似我们采用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状态,完成三次握手。




二,与UDP相比,它的可靠性体现在哪里?


 从上面的建立连接的过程来看,一个TCP连接必须要经过三次“对话”才能建立起来.也就是说,在正式收发数据前,必须和对方建立可靠的连接。而UDP协议是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!所以,TCP协议是可靠安全的,而UDP协议是没有应答的,它比较适用于那些对可靠性不高的连接。






网络协议:简析三次握手协议