浏览器的三次握手具体是什么,四次挥手是什么,为什么挥手比握手多一次?

三次握手

tcp/ip协议是传输层的一个面向连接的安全可靠的协议,三次握手的机制是为了能够简历一个安全可靠的连接,第一次握手是由客户端发起,客户端会向服务端发送一个报文,在报文里面SYN位标志位置1,当服务端收到这个报文后,就知道了客户端要跟我发起一个新的连接,于是服务端就像客户端发起一个确认消息包,在这个消息包里面ACK位标志位置1,以上两次握手之后,对于客户端而言,已经确保了自己的发送和接收能力,就是我既能给服务端发消息,又能接收到服务端的消息,但是对于服务端而言,两次握手是不够的,因为此时服务端只知道一件事情,就是客户端给我发的消息我能收到,但是不能确定我发给客户端的消息他能不能收到,所以呢他还要进行第三次握手,第三次握手就是,当客户端收到服务端发过来的确认消息的包后,你还要继续给服务端进行一次回应,也要发送一个ACK位置1的确认消息包,通过以上三次握手,无论是客户端,还是服务端,都知道了,我既能给对方发消息,又能接收对方的消息,保证了各自的发送和接收能力,那么这个连接就可以被安全的建立了。

四次挥手

四次挥手机制也是由客户端首先发起,客户端会发向服务端送一个报文,在报文中FIN标识位置1,当服务端收到这个报文之后,服务端就会知道,客户端想要跟我断开连接,但是此时服务端不一定能做好断开连接的准备,因为当客户端发起算开连接请求的时候,服务端可能还有之前没有向客户端发送完的数据,他还要继续发送,所以呢对于服务端而言,我只能做一个消息确认,就是告诉客户端,我知道你要跟我断开连接,但是我这里还有可能没做好准备,你需要等我一下,等会我会告诉你,服务端发完这个消息确认包后,可能再过一会,服务端做好了断开的准备,就是确保了自己的数据都发送完的前提下,再由服务端发送一个FIN位置1的报文,这个报文表示,服务端已经做好了断开连接的准备,那么当这个报文发给客户端的时候,客户端同样也要给服务端发送一个消息确认的报文,告诉服务端,我接收到你的回应。通过这四次挥手,我就知道了,无论是客户端还是服务端都已经做好了断开连接的准备,于是连接就可以被断开了

为什么挥手会比握手多一次

当客户端要与服务端断开连接的时候,会向服务端发一个FIN位置1的报文,当服务端接收到这个报文的时候,就知道客户端要与自己断开连接了,此时服务端会向客户端发送一个消息确认消息包,告诉客户端,我接受到了你的断开连接的请求,但是此时还不能断开,因为此时服务端可能还没做好断开连接的准备,可能会有之前请求的数据没有发送完,当服务端确保自己数据已经全发送完之后,会向客户端发送一个FIN位值1的报文,告诉客户端,我已经准备好了,可以断开连接,客户端同样也要给服务端发送一个消息确认的报文,告诉服务端,我接收到你的回应。这就是为什么挥手,比握手多一次的原因。

你可能感兴趣的:(三次握手,四次挥手,计算机网络)