zoukankan      html  css  js  c++  java
  • 对TCP/IP协议的一些看法(10):TCP协议(2)

    上文讲了下TCP协议的整体架构,今天介绍下TCP协议著名的三次握手和四次握手。

    服务器和客户端在进行通信前要先建立连接,是通过三次握手完成的,从而确保通信的可靠性。

    三次握手的步骤如下图所示:

    假设A为客户端,B为服务器,A主动与B进行通信,步骤如下:

    1.A发送SYN报文,并标记SEQ=x,ACK=0

    2.B接收到SYN报文后,若可以通信,就发送确认报文,并标记SEQ=y,ACK=x+1

    3.A收到确认报文后,发送确认报文,标记SEQ=x+1,ACK=y+1

    这样两者就建立了连接,其中存在的状态包括

    端点 状态 描述
    A,B CLOSED 连接关闭,没有正在进行的通信
    B LISTEN 监听状态
    B SYN RCVD B收到连接请求,但未确认
    A SYN SENT A发送一个连接请求,等待确认
    A,B ESTABLISHED 两者建立连接

    四次握手关闭链接如下如所示:

    具体的步骤如下:

    1.A发送FIN报文,标记SEQ=M

    2.B收到FIN报文后,发送确认报文,标记SEQ=M+1

    3.B之后也发送FIN报文,标记SEQ=N

    4.A收到FIN报文后,发送确认报文,标记SEQ=N+1

    至此双方就断开连接,其中涉及的状态包括

    端点 状态 描述
    A FIN WAIT 1 发送关闭请求,等待确认
    A FIN WAIT 2 收到B的确认请求,等待B的FIN报文
    A,B CLOSING 双方同时尝试关闭,等待对方确认
    B CLOSE WAIT 收到A的关闭请求,已经确认
    A TIME WAITED 完成双向关闭,等待所有分组死掉
    B LAST ACK 等待最后一个确认

    之所以关闭的时候要进行4次握手,是因为TCP通信是全双工的,需要两者都进行确认。

  • 相关阅读:
    A1052. Linked List Sorting (25)
    A1032. Sharing (25)
    A1022. Digital Library (30)
    A1071. Speech Patterns (25)
    A1054. The Dominant Color (20)
    A1060. Are They Equal (25)
    A1063. Set Similarity (25)
    电子码表
    矩阵键盘
    对象追踪、临时对象追踪、绝对坐标与相对坐标
  • 原文地址:https://www.cnblogs.com/elninohjh/p/4241635.html
Copyright © 2011-2022 走看看