Tcp协议
传输层协议
Http协议是应用层协议
Tcp的三次握手和四次挥手
三次握手
- 客户端向服务器发送 SYN 报文:客户端发送一个 SYN 报文,其中包含客户端的初始序列号(ISN),并请求建立连接。
- 服务器接收到 SYN 报文后,向客户端发送 SYN-ACK 报文:服务器接收到客户端的 SYN 报文后,会向客户端发送一个 SYN-ACK 报文,其中包含服务器的初始序列号(ISN)和确认号(ACK),表示服务器已经收到了客户端的请求,并同意建立连接。
- 客户端接收到 SYN-ACK 报文后,向服务器发送 ACK 报文:客户端接收到服务器的 SYN-ACK 报文后,会向服务器发送一个 ACK 报文,其中包含客户端的确认号(ACK),表示客户端已经收到了服务器的确认,并确认建立连接。
通过三次握手,客户端和服务器可以互相确认对方的身份,并建立可靠的连接。其中,客户端发送的 SYN 报文和服务器发送的 SYN-ACK 报文都包含了序列号和确认号,用来保证数据的顺序和完整性。在握手过程中,客户端和服务器都会生成一个初始序列号(ISN),用来标识数据段的顺序和完整性,以保证数据的可靠传输。
服务端推送
针对服务端推送时握手动作是谁发起的? 在进行服务,端推送时,TCP 握手动作是由客户端发起的
四次挥手
- 客户端向服务器发送 FIN 报文:客户端发送一个 FIN 报文,表示客户端已经没有数据要发送了,并请求关闭连接。
- 服务器接收到 FIN 报文后,向客户端发送 ACK 报文:服务器接收到客户端的 FIN 报文后,会向客户端发送一个 ACK 报文,表示服务器已经收到了客户端的请求,并确认关闭连接。
- 服务器向客户端发送 FIN 报文:服务器发送一个 FIN 报文,表示服务器已经没有数据要发送了,并请求关闭连接。
- 客户端接收到 FIN 报文后,向服务器发送 ACK 报文:客户端接收到服务器的 FIN 报文后,会向服务器发送一个 ACK 报文,表示客户端已经收到了服务器的请求,并确认关闭连接。
通过挥手,客户端和服务器可以互相确认对方已经没有数据要发送了,并正常关闭连接。其中,客户端发送的 FIN 报文和服务器发送的 FIN 报文都表示该端已经没有数据要发送了,而 ACK 报文则用来确认对方的请求,并表示自己也已经关闭了连接。