跳转到内容

TCP IP协议族

来自代码酷
Admin留言 | 贡献2025年5月12日 (一) 00:25的版本 (Page creation by admin bot)

(差异) ←上一版本 | 已核准修订 (差异) | 最后版本 (差异) | 下一版本→ (差异)


TCP/IP协议族(Transmission Control Protocol/Internet Protocol Suite)是互联网通信的基础协议集合,定义了数据如何在网络中传输和路由。它不仅包含TCP和IP协议,还涵盖了一系列相关协议(如UDP、ICMP等),构成了现代互联网的通信框架。

概述[编辑 | 编辑源代码]

TCP/IP协议族由美国国防部高级研究计划局(DARPA)在20世纪70年代开发,最初用于ARPANET。其核心设计理念是分层架构,通过将复杂功能分解到不同层级实现模块化。协议族分为四层(或五层,根据模型不同):

graph TD A[应用层] -->|HTTP/FTP/SMTP| B[传输层] B -->|TCP/UDP| C[网络层] C -->|IP/ICMP| D[网络接口层]

核心协议与功能[编辑 | 编辑源代码]

1. 网络层(Internet Layer)[编辑 | 编辑源代码]

核心协议:IPv4/IPv6ICMPARP

  • IP协议:无连接的包交换协议,通过IP地址实现主机寻址。数据包结构示例:
  # Python模拟IP包头结构
  from dataclasses import dataclass
  @dataclass
  class IPHeader:
      version: int = 4          # IPv4
      ihl: int = 5             # 头部长度
      tos: int = 0             # 服务类型
      total_length: int = 0    # 总长度
      identification: int = 0  # 标识符
      flags: int = 0           # 分片标志
      ttl: int = 64            # 生存时间
      protocol: int = 6        # TCP=6, UDP=17
      checksum: int = 0        # 校验和
      src_addr: str = "0.0.0.0"
      dst_addr: str = "0.0.0.0"

2. 传输层(Transport Layer)[编辑 | 编辑源代码]

核心协议:TCPUDP

TCP vs UDP对比
特性 TCP UDP
连接方式 面向连接 无连接
可靠性 可靠传输(确认/重传) 尽力交付
流量控制 滑动窗口机制
典型应用 HTTP/HTTPS、SSH DNS、视频流

3. 应用层(Application Layer)[编辑 | 编辑源代码]

常见协议:

  • HTTP/HTTPS:网页传输
  • FTP:文件传输
  • DNS:域名解析
  • SMTP/POP3:电子邮件

关键机制详解[编辑 | 编辑源代码]

TCP三次握手[编辑 | 编辑源代码]

建立可靠连接的过程:

sequenceDiagram participant Client participant Server Client->>Server: SYN (seq=x) Server->>Client: SYN-ACK (seq=y, ack=x+1) Client->>Server: ACK (seq=x+1, ack=y+1)

数学建模:设初始序列号为XY,则确认号为ack=seqreceived+1

IP路由过程[编辑 | 编辑源代码]

路由表查询示例(Linux):

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0

实际应用案例[编辑 | 编辑源代码]

案例1:网页访问过程 1. DNS查询(UDP 53端口) 2. TCP三次握手建立HTTPS连接 3. HTTP请求/响应传输 4. TCP四次挥手断开连接

案例2:视频会议系统

  • 使用UDP传输实时视频流(容忍丢包但要求低延迟)
  • 同时使用TCP传输控制信令(如参会者列表变更)

常见问题[编辑 | 编辑源代码]

模板:Q&A

进阶知识[编辑 | 编辑源代码]

  • MTU与分片:以太网默认MTU=1500字节,超过时需要分片传输
  • NAT穿透:解决私有IP与公网IP映射问题
  • QoS机制:通过TOS字段实现流量优先级控制