在网络里,包、报文、帧分别对应不同协议层的数据单位。你可以把它理解成:
同一份数据,在不同层叫法不同。
一、对应关系
1. 帧(Frame)
对应:
数据链路层(二层)
也就是:
Layer 2常见例如:
- Ethernet Frame
- VLAN Frame
帧里包含:
- 源MAC
- 目的MAC
- VLAN标签
- 数据
所以你在交换机里看到的:
- MAC
- VLAN
- LLDP
都属于:
帧
2. 包(Packet)
对应:
网络层(三层)
也就是:
Layer 3最典型:
- IP Packet
包里包含:
- 源IP
- 目的IP
- TTL
- 协议号
所以:
- OSPF
- MPLS转发
- IP路由
更多说的是:
包
3. 报文(Message)
报文这个词稍微宽泛。
通常对应:
高层协议数据
比如:
- OSPF报文
- BGP报文
- ARP报文
- ICMP报文
严格来说:
报文可以出现在:
- 三层
- 四层
- 应用层
所以:
报文是泛称。
二、按OSI层理解
可以这样记:
| 名称 | 所属层 |
|---|---|
| 比特 Bit | 物理层 |
| 帧 Frame | 二层 |
| 包 Packet | 三层 |
| 段 Segment | 四层 |
| 报文 Message | 高层泛称 |
三、一个数据向下封装过程
例如一条业务数据:
应用层
用户数据
↓
传输层
变成:
段(Segment)
↓
网络层
加IP头后变成:
包(Packet)
↓
数据链路层
加MAC后变成:
帧(Frame)
↓
物理层
变成:
比特流(Bits)
四、你工作里常见的对应
LLDP
属于二层:
所以它是:
帧
OSPF
属于三层协议:
通常说:
OSPF报文
也可以说:
OSPF包
BFD
一般说:
BFD报文
PW业务
承载的是:
二层帧
五、简单区分方法
可以这样理解:
帧
看MAC地址
就是二层
包
看IP地址
就是三层
报文
看协议内容
是泛称
六、最容易混淆的地方
很多人平时会把“包”和“报文”混着说。
例如:
说:
抓个包其实可能抓到的是:
- 二层帧
- 三层包
- 协议报文
所以在日常工作中:
包
偏向口语泛称
七、一句话记忆
可以记成:
帧在二层,包在三层,报文是泛称。