网络模型
模型介绍
OSI
七层模型(理论标准、从上到下):
- 应用层
- 表示层
- 会话层
- 传输层
- 网络层
- 数据链路层
- 物理层
TCP/IP
四层模型(实际应用):
- 应用层:
HTTP
、DNS
、SMTP
、FTP
- 传输层:
TCP
、UDP
- 网络层:
IP
、ICMP
、ARP
- 网络接口层(链路层):以太网、Wi-Fi、光纤等物理传输
对应关系
OSI
(7 层) → TCP/IP
(4 层)
- 应用 + 表示 + 会话 → 应用层
- 传输 → 传输层
- 网络 → 网络层
- 数据链路 + 物理 → 网络接口层
TCP/IP
四层模型
应用层
提供网络服务:网页浏览、文件传输……
应用层协议:HTTP\DNS\FTP\Telent\SMTP
应用层不关注数据如何传输,直接将数据传输给下一层传输层
应用层工作于用户态,传输层及一下工作于内核态
传输层
为应用层提供网络通信支持,不涉及网络传输,分为TCP
、UDP
两个协议
网络层
负责网络包的封装、分片、路由、转发、如IP
、ICMP
IP协议(Internet Protocol)
负责在网络层进行数据包的寻址和路由。它定义了数据包的格式,并为每个设备分配唯一的IP地址,使数据能够在不同网络之间传输。IP协议是无连接的,不保证数据包的可靠送达ICMP协议(Internet Control Message Protocol)
用于在网络设备之间传递控制消息和错误报告。例如,当数据包无法送达目标地址时,ICMP会发送错误信息。常见的应用有ping
命令,用于检测网络连通性
网络接口层
负责网络包在物理网络中的传输,比如:网络包的封帧、MAC寻址、差错校验……
真正的物理层次传输数据
其他
XMPP 即时通讯协议
XMPP(Extensible Messaging and Presence Protocol)
本质上是基于TCP
和 XML
流的即时通讯协议。
TCP/IP
视角下的分层
TCP/IP 层级 | XMPP 对应 | 说明 |
---|---|---|
应用层 | XMPP 协议 & 扩展(XEP) | XMPP 定义了客户端与服务器、服务器与服务器之间的 XML 流通信规则,包含认证、消息、状态(presence)、订阅等功能。还可通过 XEP 扩展(如文件传输、群聊 MUC、消息存档)。 |
传输层 | TCP(通常 5222 端口) | 默认使用长连接的 TCP,保证消息顺序与可靠传输。可选用 WebSocket(XMPP over WebSocket)替代 TCP。 |
网络层 | IP(IPv4/IPv6) | 负责寻址和路由,保证数据包能从客户端到达服务器。 |
链路层 | 以太网 / Wi-Fi / 蜂窝网络等 | 物理传输媒介,承载底层数据。 |
OSI
视角下的分层
OSI 层 | XMPP 对应内容 |
---|---|
应用层 | XMPP 协议(RFC 6120、6121、6122)+ 扩展 XEP |
表示层 | XML 格式编码(UTF-8)、可选 TLS 加密(STARTTLS) |
会话层 | XMPP 的 XML 流(Stream)保持逻辑会话 |
传输层 | TCP(或 WebSocket) |
网络层 | IP |
数据链路层 | 以太网/Wi-Fi |
物理层 | 电信号/无线信号 |
XMPP
的关键分层机制
应用层(XMPP 语义层)
- 消息(
<message>
):即时文本、文件传输通知 - 状态(
<presence>
):在线/离线/忙碌 - IQ(
<iq>
,Info/Query):信息查询、控制指令 - 扩展协议(XEP):群聊、文件传输、消息回执等
- 消息(
表示层(编码与加密)
- 所有数据都是 XML 文本,UTF-8 编码
- 可通过 STARTTLS 升级到加密传输(TLS)
SASL(Simple Authentication and Security Layer)
用于认证
会话层(流管理)
- XMPP 用长连接维持一个 XML 流(stream)
- 连接一旦建立,会一直保留到断开为止
- 支持 Stream Management(XEP-0198)实现断线重连与消息确认
传输层(TCP/WebSocket)
- 默认 TCP 5222 端口
- TCP 保证顺序、完整性
- 也支持 HTTP 长轮询(BOSH,XEP-0124/0206)和 WebSocket
XMPP
总结类比
如果用TCP/IP
模型打个比方:
- 应用层:XMPP(你跟朋友聊的内容、消息类型、状态)
- 传输层:TCP(快递员,保证你们的信按顺序到达)
- 网络层:IP(地图和地址,帮快递员找到对方)
- 链路层/物理层:网线/无线(道路和交通工具)