【计算机网络笔记Part1 概述】
【计算机网络笔记Part2 物理层(Physical Layer)】
【计算机网络笔记Part3 数据链路层(Data Link Layer)】
【计算机网络笔记Part4 网络层(Network Layer)】
【计算机网络笔记Part5 传输层(Transport Layer)】
【计算机网络笔记Part6 应用层(Application Layer)】

三次握手:

  1. 客户端发送SYN请求
    (SYN(同部位)=1,seq(序号32位)=x(随时),此时确认号ack无意义(客户端还未收到服务器数据))请求,
    进入SYN_SEND状态
  2. 服务端收到SYN请求,并返回一个ACK
    (SYN=1,ACK=1,seq=y(随机),ack(ACK为1确认号有效)=x+1)应答,并发送一个SYN其请求,
    服务器进入SYN_RECV状态
  3. 客户端收到服务端的SYN请求和ACK应答,发送ACK应答
    (SYN=0,ACK=1,seq=x+1(接下来要发送的为x+1),ack=y+1(期待服务器发来的下一个序号为y+1)),
    客户端进入ESTABLISHED状态,
    服务端收到应答后进入ESTABLISHED。
    如果没有收到应答,数据包都会根据TCP的重传机制进行重传。

四次挥手:

  1. 客户端发送(连接释放报文段)FIN包,主动断开TCP连接,
    FIN(结束位)=1,seq=u(报文段第一个字节的序号/报文段标识)
    客户端进入FIN_WAIT1状态
    2.服务端收到FIN包后返回应答ACK确认报文段,
    ACK=1, seq=v, ack=u+1
    进入CLOSE_WAIT半关闭状态
    客户端收到确认时进入FIN_WAIT2状态
  2. 服务器发送完数据,就发出连接释放报文段,主动关闭TCP连接
    FIN=1,ACK=1,seq=w, ack=u+1(客户端等待期间未发送数据)
    进入LAST_ACK状态
  3. 客户端回送一个确认报文,
    ACK=1, seq=u+1,ack=w+1
    进入TIME_WAIT状态(等待计时器设置的2MSL(最长报文段寿命)后彻底断开连接)
  4. 服务器收到ACK应答后,进入CLOSED状态。