TCP报文段与三次握手

168 阅读2分钟

TCP 数据段

image.png

重点六位

控制位:客户端,服务器目前处于什么状态

  • URG(紧急位):是否含有紧急数据
  • ACK(确认位):已经建立连接
  • PSH(急切位):立即读走数据
  • RST(重置位):连接出现问题,需要重新连接
  • SKN(同步位):请求建立连接
  • FIN(断开位):已经断开连接
注:pid:系统中没打开开一个应用程序,会分配一个pid号,其次会分配端口号

作用:方便管理

端口号:区分应用程序
seq:序列号,表示本报文段所发送数据的第一个字节的编
ack:确认号,表示接收方期望收到发送方下一个报文段的第一个字节数据的编号

TCP特点

  1. 工作在传输层

  2. 是面向连接协议

  3. 全双工协议,同时收发

  4. 半关闭

  5. 错误检查

  6. 将数据打包成段,排序

  7. 确认机制

  8. 数据恢复,重传

  9. 流量控制,滑动窗口

TCP三次握手(重点)

image.png

1.当pc1想和pc2建立通信时,pc1首先会发送一个SYN报文,请求建立连接,报文包含(seq=x,指报文中数据第一个字节的序号,SYN=1,请求建立连接)

2.当pc2收到后,会回复一个SYN+ACK报文,seq=y,ack=x+1,表示收到信息,希望下一次接受到的序号为x+1,SYN=1,ACK=1,表示同意建立连接请求)

3.发送ACK报文,seq=x+1,ack=y+1,ACK=1,封装ACK=1,成功建立连接

四次挥手(了解)

image.png

有限状态机(11种)

  1. CLOSED 没有任何连接状态

  2. LISTEN 侦听状态,等待来自远方TCP端口的连接请求

  3. SYN-SENT 在发送连接请求后,等待对方确认

  4. SYN-RECEIVED 在收到和发送一个连接请求后,等待对方确认

  5. ESTABLISHED 代表传输连接建立,双方进入数据传送状态

  6. FIN-WAIT-1 主动关闭,主机已发送关闭连接请求,等待对方确认

  7. FIN-WAIT-2 主动关闭,主机已收到对方关闭传输连接确认,等待对方发送关闭传输连接请求

  8. TIME-WAIT 完成双向传输连接关闭,等待所有分组消失

  9. CLOSE-WAIT 被动关闭,收到对方发来的关闭连接请求,并已确认

  10. LAST-ACK 被动关闭,等待最后一个关闭传输连接确认,并等待所有分组消失

  11. CLOSING 双方同时尝试关闭传输连接,等待对方确认

UDP特点

  1. 工作在传输层

  2. 提供不可靠的网络访问

  3. 非面向连接协议

  4. 有限的错误检查

  5. 传输性能高

  6. 无数据恢复特性