三次握手的过程主要是为了服务端和客户端创建安全可靠的链接。过程以下:web
可是彷佛两次握手就能知足需求了,在服务端响应报文给客户端以后,客户端为何还要再一次发送报文给服务端呢?安全
这个问题也困扰了好久,知道看到这段文字。网络
client发出的第一个链接请求报文段并无丢失,而是在某个网络结点长时间的滞留了,以至延误到链接释放之后的某个时间才到达server。原本这是一个早已失效的报文段。但server收到此失效的链接请求报文段后,就误认为是client再次发出的一个新的链接请求。因而就向client发出确认报文段,赞成创建链接。假设不采用“三次握手”,那么只要server发出确认,新的链接就创建了。因为如今client并无发出创建链接的请求,所以不会理睬server的确认,也不会向server发送数据。但server却觉得新的运输链接已经创建,并一直等待client发来数据。这样,server的不少资源就白白浪费掉了。采用“三次握手”的办法能够防止上述现象发生。例如刚才那种状况,client不会向server的确认发出确认。server因为收不到确认,就知道client并无要求创建链接。”。 主要目的防止server端一直等待,浪费资源。tcp
意思是说若是第一次握手时由于总总缘由致使网络堵塞,报文没有及时给到服务端,时间一长此次链接就失效了。过了很长一段时间第一次握手的报文传给了服务端,服务端并不知道此报文已失效,就进入连接状态,但客户端并无发送任何东西给服务端,致使服务端一直等待,这样就形成资源浪费。svg
因此三次握手是创建安全可靠的连接的最安全,效率最高的方式。server