美文网首页
TCP 三次握手和四次挥手

TCP 三次握手和四次挥手

作者: my木子 | 来源:发表于2021-04-18 09:54 被阅读0次

    网络模型

    网络模型

    三次握手

    三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换

    通信是双工的,双方都要确保自己可以发送和接收对方的数据,客户端和服务端要确认双方的 发送接收 能力是否正常,最少三次握手

    1. 服务端:客户端的 发送 能力正常
    2. 客户端:服务端的 接收、发送 能力正常
    3. 服务端:客户端的 接收 能力正常

    标志位:SYN(发起一个新连接) ACK(确认序号有效) RST(重置连接) FIN(释放一个连接)

    • 客户端:我要建立连接,你是服务端么?(客户端服务端 发送SYN报文)
    • 服务端:我是服务端,你是客户端么?(服务端 收到 SYN 报文之后,应答客户端 SYN+ACK 报文,等待 2MSL)
    • 客户端:我是客户端,可以建立连接。(客户端 收到 SYN+ACK 报文之后,回应 ACK 报文,服务端 收到 ACK 报文之后,建立连接)

    四次挥手(可以使客户端发起,也可以是服务器端发起)

    为什么 TCP 握手只要三次,而分手却要四次呢?因为当客户端提出断开时,可能服务端还在传输数据,所以服务器在返回给客户端 ACK 后等待 2MSL,再返回FIN。

    • 服务端(主动):我要断开了。( 服务端客户端 发送 FIN+ACK 报文)
    • 客户端:知道了,你断开吧。( 客户端 发送 ACK 报文)
    • 客户端:我也要断开了。( 客户端 发送 FIN+ACK 报文)
    • 服务端:好的。( 服务端 发送 ACK 报文,同时断开连接,客户端 收到报文后也断开连接)

    TCP 滑动窗口(发送窗口和接收窗口)

    • 发送端发送过多,而接收端无法消化的时候,通过接收缓存区的大小控制发送端的发送,进行流量控制。如果对方的接收缓存区满了,就不能再继续发送了。而这种流量控制的过程就需要在发送端维护一个发送窗口,在接收端维持一个接收窗口。

    相关文章

      网友评论

          本文标题:TCP 三次握手和四次挥手

          本文链接:https://www.haomeiwen.com/subject/wstllltx.html