首页 > 试题广场 >

请你说说tcp三次握手四次挥手

[问答题]
三次握手:客户端向服务端发送SYN,等待服务端的确认,服务端确认SYN,向客户端发送SYN和确认包,客户端接收到SYN并确认之后,三次握手结束
四次挥手:客户端向服务器端发送FIN,用来中断数据的传输,服务端接收到FIN,再向客户端发送FIN,等待确认,客户端接收到并确认后四次挥手结束
发表于 2022-02-24 15:14:23 回复(0)

四次挥手原因:这是因为服务端的LISTEN状态下的SOCKET当收到SYN报文的建连请求后,它可以把ACK和SYN(ACK起应答作用,而SYN起同步作用)放在一个报文里来发送。但关闭连接时,当收到对方的FIN报文通知时,它仅仅表示对方没有数据发送给你了;但未必你所有的数据都全部发送给对方了,所以你可以未必会马上会关闭SOCKET,也即你可能还需要发送一些数据给对方之后,再发送FIN报文给对方来表示你同意现在可以关闭连接了,所以它这里的ACK报文和FIN报文多数情况下都是分开发送的。


发表于 2019-10-24 12:55:45 回复(0)