- 服务器和客户端都需要 直到自己均可收发,因此需要三次握手。
- 简化三次握手:
C发起请求连接S确认,S发起请求连接C确认。
- 三次握手的作用:
第一次握手:S只可以确认 自己可以接受C发送的报文段
第二次握手:C可以确认 S收到了自己发送的报文段,并且可以确认 自己可以接受S发送的报文段
第三次握手:S可以确认 C收到了自己发送的报文段。
即双方确认自己可以发送,可以接受,且对方都能收到。
TCP握手为什么是三次,不是两次,不是4次
首先,我们要知道TCP是全双工的,即客户端在给服务器端发送信息的同时,服务器端也可以给客户端发送信息。
而半双工的意思是A可以给B发,B也可以给A发,但是A在给B发的时候,B不能给A发,即不同时,为半双工。
单工为只能A给B发,B不能给A发; 或者是只能B给A发,不能A给B发。
注意: HTTP是基于TCP协议的,所以每次都是客户端发送请求,服务器应答,但是TCP还可以给其他应用层提供服务,即可能A、B在建立链接之后,谁都可能先开始通信。
如果两次,那么B无法确定B的信息A是否能收到,所以如果B先说话,可能后面的A都收不到,会出现问题 。
如果四次,那么就造成了浪费,因为在三次结束之后,就已经可以保证A可以给B发信息,A可以收到B的信息; B可以给A发信息,B可以收到A的信息。