技术文章 门禁与楼宇对讲

TCP/IP协议栈深度解析

管理员 2026-05-29 01:42 13 次阅读

TCP/IP协议栈深度解析

一、TCP/IP四层模型

应用层 (HTTP/FTP/SMTP/DNS)
    ^
传输层 (TCP/UDP)
    ^
网络层 (IP/ICMP/ARP)
    ^
网络接口层 (Ethernet/PPP)

二、TCP三次握手

客户端                        服务器
  |                              |
  |----- SYN=1, Seq=x --------->|
  |                              |
  |<---- SYN=1, ACK=1, Seq=y ----|
  |        Ack=x+1               |
  |                              |
  |----- ACK=1, Seq=x+1 ------->|
  |        Ack=y+1               |
  |                              |
        建立连接完成

# 状态变化
CLOSED -> SYN_SENT -> ESTABLISHED
LISTEN -> SYN_RCVD -> ESTABLISHED

三、TCP四次挥手

客户端                        服务器
  |                              |
  |----- FIN=1, Seq=u --------->|
  |        (客户端不再发送数据)    |
  |<---- ACK=1, Ack=u+1 --------|
  |        (服务器收到关闭请求)    |
  |<---- FIN=1, Seq=v ----------|
  |                              |
  |----- ACK=1, Ack=v+1 -------->|
  |        (客户端确认关闭)       |
  |                              |
        连接关闭完成

四、TCP滑动窗口

# 窗口大小
发送方维持发送窗口
接收方维持接收窗口

# 窗口滑动
窗口内数据可连续发送
收到ACK后窗口向前滑动

# 流量控制
通过window字段通告接收窗口大小
发送方不能超过接收方窗口大小

五、IP协议详解

# IPv4头部长度 20-60字节
版本(4) | 头部长度(4) | 服务类型(8) | 总长度(16)
标识(16) | 标志(3) | 片偏移(13)
TTL(8) | 协议(8) | 头部校验和(16)
源IP地址(32)
目标IP地址(32)
可选字段...

# TTL (Time to Live)
经过一个路由器TTL减1
TTL=0时数据包被丢弃
防止数据包在网络中无限循环