【软件系统架构】系列五:TCP/IP 协议栈

 目录

一、TCP/IP 协议栈分层结构

四层模型(从上到下):

二、各层详解

1. 应用层

2. 传输层

3. 网络层(Internet 层)

4. 网络接口层(链路层)

三、TCP/IP 数据封装流程图

四、封装实例图(示意)

五、TCP/IP 通信流程的时序图

1.总体通信流程概览

2.TCP/IP 通信流程时序图

3.补充说明

4.Wireshark 抓包时的典型帧展示

5.TCP/IP 分层与报文结构关系图(封装)

六、TCP/IP 协议栈在实际中的映射(以浏览器请求为例)

七、常用端口示例(传输层)

八、与 OSI 模型对比结构图

九、常见实现栈(软件/嵌入式)

十、总结


TCP/IP 协议栈(TCP/IP Protocol Stack)是实际应用最广泛的网络通信协议体系结构,几乎所有互联网设备和嵌入式联网设备都基于它。它是一个分层架构,每层都有独立职责,共同完成数据从源主机到目的主机的传输。

下面是对 TCP/IP 协议栈 的全面解析,包含各层功能、典型协议、封装流程、结构图等。


一、TCP/IP 协议栈分层结构

TCP/IP协议栈是互联网通信的核心框架,定义了数据在网络中的传输规则。它由多个协议组成,核心为 TCP(传输控制协议) 和 IP(互联网协议),支持跨网络的数据交换。

四层模型(从上到下):

层级名称主要功能常见协议
第4层应用层(Application)为用户程序提供网络服务接口HTTP、FTP、SMTP、DNS、DHCP、SSH、Telnet
第3层传输层(Transport)提供端到端连接和可靠/不可靠数据传输TCP、UDP
第2层网络层 / Internet 层路由选择与逻辑寻址IP、ICMP、ARP、IGMP
第1层网络接口层 / 链路层实际链路通信,封装物理地址Ethernet、Wi-Fi、PPP、帧中继等

二、各层详解

1. 应用层

  • 功能:

    • 提供用户级服务接口(如Web、邮件、文件传输)。

    • 数据格式转换与加密(如HTTPS的TLS/SSL)。

  • 常见协议:

    • HTTP/HTTPS:超文本传输协议,用于网页浏览。

    • FTP:文件传输协议,支持文件上传/下载。

    • SMTP/POP3/IMAP:电子邮件发送与接收协议。

    • DNS:域名解析协议,将域名转换为IP地址。

    • SSH:加密远程登录协议,替代不安全的Telnet。


2. 传输层

  • 功能:

    • 端到端通信:通过端口号(0-65535)标识应用程序。

    • 流量控制与拥塞控制:确保网络资源合理利用。

  • 协议对比

协议特点应用场景
TCP(传输控制协议)连接导向、可靠、有序传输,流量控制浏览器、电子邮件、SSH
UDP(用户数据报协议)无连接、快速、不可靠视频直播、VoIP、DNS 查询

3. 网络层(Internet 层)

  • 功能:

    • IP寻址:通过IP地址(IPv4/IPv6)标识设备。

    • 路由选择:基于路由表决定数据包的最佳路径。

    • 分片与重组:处理超过链路MTU的数据包。

  • 核心协议:

    • IP协议:

      • IPv4:32位地址(如192.168.1.1),面临地址枯竭问题。

      • IPv6:128位地址(如2001:0db8::1),支持更大地址空间和自动配置。

    • ARP(地址解析协议):将IP地址映射到MAC地址。

    • ICMP(互联网控制消息协议):用于网络诊断(如ping命令)。


4. 网络接口层(链路层)

  • 功能:

    • 数据帧的封装与解封装(如以太网帧格式)。

    • 物理地址(MAC地址)寻址与局域网通信。

    • 差错检测(如CRC校验)。

  • 关键技术:

    • 以太网(Ethernet):局域网主流技术,MTU(最大传输单元)通常为1500字节。

    • Wi-Fi(IEEE 802.11):无线局域网协议,支持动态速率调整。

    • PPP(点对点协议):用于拨号连接或串行链路通信。


三、TCP/IP 数据封装流程图

[应用层数据]
↓ 封装为:
[应用层报文(HTTP、FTP等)]
↓ 加入 TCP/UDP 头部 →
[传输层段]
↓ 加入 IP 头部 →
[网络层数据包]
↓ 加入 MAC 帧头、尾 →
[链路层帧]
↓ 变成电信号或无线波发送 →
[物理传输]

四、封装实例图(示意)

+-------------------------------------------------------------+
| 应用层:HTTP 数据                                          |
+-------------------------------------------------------------+
| 传输层:TCP Header + HTTP 数据                             |
+-------------------------------------------------------------+
| 网络层:IP Header + TCP 段(Header + Data)                |
+-------------------------------------------------------------+
| 链路层:MAC Header + IP 数据包 + MAC Trailer(如CRC)     |
+-------------------------------------------------------------+

五、TCP/IP 通信流程的时序图

1.总体通信流程概览

①TCP 三次握手(连接建立)

②应用层数据传输

③TCP 四次挥手(连接终止)


2.TCP/IP 通信流程时序图

客户端                                          服务器
   |                                                |
   | -----------[SYN]-----------------------------> |
   |                                                |
   | <----------[SYN + ACK]------------------------ |
   |                                                |
   | -----------[ACK]-----------------------------> |
   |          (TCP连接建立完成,三次握手)         |
   |                                                |
   | ====> 应用层请求数据(HTTP/FTP/自定义)        |
   | -----------[PSH, ACK]------------------------> |
   |                                                |
   | <----------[ACK + 数据响应]------------------- |
   |                                                |
   | ====> 可进行多次双向数据传输(基于TCP)        |
   |                                                |
   | -----------[FIN]-----------------------------> |
   |                                                |
   | <----------[ACK]------------------------------ |
   | <----------[FIN]------------------------------ |
   |                                                |
   | -----------[ACK]-----------------------------> |
   |         (TCP连接断开,四次挥手完成)          |

3.补充说明

(1)三次握手(TCP连接建立)

  • 第一次握手:客户端发送 SYN 包,表示想建立连接。

  • 第二次握手:服务器回应 SYN + ACK,确认收到连接请求。

  • 第三次握手:客户端发送 ACK,连接建立成功。

(2)数据传输阶段

  • 应用层协议(如 HTTP)将请求数据发送给服务器。

  • 每一条消息都会经历:

    • 应用层(构建数据)

    • 传输层(加 TCP 头)

    • 网络层(加 IP 头)

    • 链路层(加 MAC 帧)

    • 物理层(通过网卡发送比特流)

(3)四次挥手(TCP连接释放)

  • 第一次挥手:客户端发送 FIN,请求断开连接。

  • 第二次挥手:服务器 ACK 确认。

  • 第三次挥手:服务器发送 FIN。

  • 第四次挥手:客户端 ACK,连接完全断开。


4.Wireshark 抓包时的典型帧展示

步骤抓包标志含义
1SYN建立连接请求
2SYN, ACK确认并响应
3ACK建立连接成功
4PSH, ACK发送数据
5FIN终止连接
6FIN, ACK响应终止请求

5.TCP/IP 分层与报文结构关系图(封装)

应用层:    [ HTTP 请求内容 ]
传输层:    [ TCP 头 ] + [ HTTP 数据 ]
网络层:    [ IP 头 ] + [ TCP 段 ]
链路层:    [ MAC 头 + CRC 尾 ] + [ IP 包 ]
物理层:    比特流发送

六、TCP/IP 协议栈在实际中的映射(以浏览器请求为例)

步骤协议层实际协议
浏览器请求网页应用层HTTP
建立连接传输层TCP
路由寻址网络层IP
物理传输链路层Ethernet / Wi-Fi

七、常用端口示例(传输层)

协议默认端口描述
HTTP80超文本传输
HTTPS443加密 HTTP
FTP21文件传输协议
SMTP25发送邮件
DNS53域名解析(UDP)
SSH22安全远程登录
DHCP67/68动态主机配置

八、与 OSI 模型对比结构图

OSI:         | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
TCP/IP:             | A |   T | N |   L |
对应:        应  表 会  传  网  数  物
             用  示 会  输  络  据  理

九、常见实现栈(软件/嵌入式)

系统/平台TCP/IP 协议栈实现
Linux/UnixBSD Socket、Netfilter
WindowsWinsock
ESP32LWIP(轻量级 TCP/IP 协议栈)
STM32uIP、CycloneTCP、LwIP
Android/iOS内置 TCP/IP 栈

十、总结

特性描述
标准化跨平台、跨设备通信的基石
简洁实用实际开发首选
可扩展性支持 IPv6、TLS、QoS 等
面向协议栈开发嵌入式网络应用、内核、驱动需理解封装流程

扩展阅读:

【软件系统架构】系列四:嵌入式技术【软件系统架构】系列四:嵌入式技术
【软件系统架构】系列四:嵌入式软件开发流程全解析(包含示例)【软件系统架构】系列四:嵌入式软件开发流程全解析(包含示例)
【软件系统架构】系列四:嵌入式软件-DO-178B 安全认证标准【软件系统架构】系列四:嵌入式软件-DO-178B 安全认证标准
【软件系统架构】系列四:嵌入式软件-CMMI 安全认证标准及认证所需资源模板【软件系统架构】系列四:嵌入式软件-CMMI 安全认证标准及认证所需资源模板
【软件系统架构】系列四:嵌入式软件-M2M(Machine to Machine)系统详解及开发模板【软件系统架构】系列四:嵌入式软件-M2M(Machine to Machine)系统详解及开发模板
【软件系统架构】系列四:嵌入式软件-NPU(神经网络处理器)系统及模板【软件系统架构】系列四:嵌入式软件-NPU(神经网络处理器)系统及模板
【软件系统架构】系列四:嵌入式软件-M2M 与 NPU 技术对比及协同设计方案【软件系统架构】系列四:嵌入式软件-M2M 与 NPU 技术对比及协同设计方案
【软件系统架构】系列四:嵌入式微处理器(MPU)【软件系统架构】系列四:嵌入式微处理器(MPU)
【软件系统架构】系列四:嵌入式微控制器(MCU)【软件系统架构】系列四:嵌入式微控制器(MCU)
【软件系统架构】系列四:数字信号处理器(DSP)【软件系统架构】系列四:数字信号处理器(DSP)
【软件系统架构】系列四:SoC(System on Chip,片上系统)【软件系统架构】系列四:SoC(System on Chip,片上系统)
【软件系统架构】系列四:MPU vs MCU vs DSP vs SoC 嵌入式处理器选型终极指南【软件系统架构】系列四:MPU vs MCU vs DSP vs SoC 嵌入式处理器选型终极指南
【软件系统架构】系列四:嵌入式微处理器【软件系统架构】系列四:嵌入式微处理器
【软件系统架构】系列四:多核处理器架构与调度(Deep Dive)【软件系统架构】系列四:多核处理器架构与调度(Deep Dive)
【软件系统架构】系列四:嵌入式软件与操作系统【软件系统架构】系列四:嵌入式软件与操作系统
【软件系统架构】系列四:嵌入式软件与操作系统【软件系统架构】系列四:嵌入式软件与操作系统
【软件系统架构】系列四:嵌入式协议栈架构详解【软件系统架构】系列四:嵌入式协议栈架构详解
【软件系统架构】系列四:嵌入式中间件设计全景解析【软件系统架构】系列四:嵌入式中间件设计全景解析
【软件系统架构】系列四:嵌入式 SDK 框架设计指南【软件系统架构】系列四:嵌入式 SDK 框架设计指南
【软件系统架构】系列四:AI 模型在嵌入式设备部署指南【软件系统架构】系列四:AI 模型在嵌入式设备部署指南
【软件系统架构】系列四:嵌入式操作系统【软件系统架构】系列四:嵌入式操作系统
【软件系统架构】系列四:嵌入式实时操作系统(RTOS)【软件系统架构】系列四:嵌入式实时操作系统(RTOS)
【软件系统架构】系列四:设备驱动与板级支持包(BSP)【软件系统架构】系列四:设备驱动与板级支持包(BSP)
【软件系统架构】系列五:OSI/RM 七层模型和TCP/IP分层模型深入解析【软件系统架构】系列五:OSI/RM 七层模型和TCP/IP分层模型深入解析
【软件系统架构】系列五:TCP/IP 协议栈【软件系统架构】系列五:TCP/IP 协议栈
【软件系统架构】系列五:LwIP协议-轻量级开源TCP/IP协议栈【软件系统架构】系列五:LwIP协议-轻量级开源TCP/IP协议栈
【软件系统架构】系列五:通信方式&同步方式【软件系统架构】系列五:通信方式&同步方式
【软件系统架构】系列五:深入解析物联网网络分类及其在智能锁系统中的应用架构设计【软件系统架构】系列五:深入解析物联网网络分类及其在智能锁系统中的应用架构设计
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

34号树洞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值