为何使用Wireshark无法检测到OSI数据包?
核心结论
你没有操作错误,问题出在对「OSI数据包」的概念认知存在偏差。
为什么抓不到「OSI数据包」
- OSI七层模型本质是网络通信逻辑的抽象参考框架,只用于教学、逻辑梳理和标准参考,从来没有被大规模落地为实际商用的网络协议栈,现实中不存在符合OSI完整标准的专属数据包,自然不可能被Wireshark捕获。
- 目前全球通用的网络通信体系是TCP/IP协议簇,对应TCP/IP四层参考模型,你用Wireshark抓到的所有报文,包括以太网帧、IP报文、TCP/UDP段、HTTP/HTTPS报文等,都属于TCP/IP协议簇的产物,并不是OSI体系的数据包。
抓包内容和OSI模型的关联
日常分析抓包结果时,我们会把TCP/IP协议簇的报文对应到OSI七层模型做逻辑划分,方便分层排查问题,对应关系如下:
- 物理层、数据链路层:对应
以太网帧,包含源/目的MAC地址、二层校验等信息 - 网络层:对应
IPv4/IPv6报文,包含源/目的IP地址、三层路由等信息 - 传输层:对应
TCP/UDP/SCTP报文段,包含源/目的端口、传输层控制标识等信息 - 会话层、表示层、应用层:绝大多数场景下功能合并,对应各类应用层报文,比如
HTTP、DNS、SSH、RTP等各类应用协议的报文
这种对应仅用于逻辑分层参考,不代表实际传输的是OSI体系的专属数据包。
内容的提问来源于stack exchange,提问作者André Chrisostomo
相关产品推荐
相关产品推荐

