• TCP 连接建立与关闭(三次握手与四次挥手)


    UDP/IP 和 TCP/IP

    TCP(Transmission control protocol)传输控制协议,是面向连接安全的,而 UDP(User Datagram protocol)是不安全的

    网络状态相同的条件下UDP传递的速度比TCP快,因为少了一系列的控制机制

    常用 flag 意思

    SYN:建立连接
    
    FIN:关闭连接
    
    ACK:响应
    
    PSH:有数据传输
    
    RST:连接重置

    TCP 连接建立(三次握手)

    1.(Client) –> [SYN] –> (Server)
    
    当客户端要和服务端通信时,客户端首先向服务端发一个带 SYN (Synchronize) 标记的包,告诉服务端请求建立连接
    
    2.(Server) <– [SYN/ACK] <–(Client)
    
    服务端收到后会发一个对 SYN 包的确认包(SYN/ACK)回去,表示对第一个 SYN 包的确认,并继续握手操作
    
    3.(Client) –> [ACK] –> (Server)
    
    客户端收到 SYN/ACK 包后发一个确认包(ACK),通知服务端连接已建立,完成三次握手,一个 TCP 连接完成

    TCP 关闭建立(四次挥手)

    1.(Client) –> [FIN] –> (Server)
    
    Client发送一个 FIN,用来关闭 Client 到 Server 的数据传送,Client 进入 FIN_WAIT_1 状态
    
    2.(Server) <– [ACK] <–(Client)
    
    Server 收到 FIN 后,发送一个 ACK 给 Client,Server 进入 CLOSE_WAIT 状态
    
    3.(Server) <– [FIN] <–(Client)
    
    Server 发送一个 FIN,用来关闭 Server 到 Client 的数据传送,Server 进入 LAST_ACK状态
    
    4.(Client) –> [ACK] –> (Server)
    
    Client 收到 FIN 后,Client 进入 TIME_WAIT 状态,接着发送一个 ACK 给 Server,Server 进入 CLOSED 状态,完成四次挥手,一个 TCP 关闭完成


    https://httpwg.org/

  • 相关阅读:
    Docker的使用
    Django常见问题
    Linux系统使用
    Nginx
    Redis
    MySQL基础、主从复制、优化
    Python常见的问题
    Python基础知识
    Vue的使用
    python监控tomcat日记文件
  • 原文地址:https://www.cnblogs.com/jhxxb/p/13299963.html
Copyright © 2020-2023  润新知