首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以太网数据不总是包含IP数据包吗?

以太网数据不总是包含IP数据包吗?
EN

Stack Overflow用户
提问于 2020-07-04 15:59:41
回答 2查看 186关注 0票数 0

关于用Python编写的以下代码,我有一个问题:

代码语言:javascript
复制
def parse_ethernet(timestamp, packet)
    ethernet = dpkt.ethernet.Ethernet(packet)
    if isinstance(ethernet.data,dpkt.ip.IP):
        parse_ip(ethernet.data)

代码的思想是使用python中的dpkt库解析以太网数据包。我的问题是关于以下几行:

代码语言:javascript
复制
if isinstance(ethernet.data,dpkt.ip.IP):

为什么我们需要证明ethernet.data是否是IP数据包的一个实例?以太网数据不总是包含IP数据包吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-04 16:19:56

为什么我们需要证明ethernet.data是否是IP数据包的一个实例?以太网数据不总是包含IP数据包吗?

不,它没有。例如,对于一个ARP请求,以太网帧包含一个ARP包,而不是一个IP包。

在ATA -over以太网中,顾名思义,以太网帧包含封装的ATA数据包,而不是IP.

其次是AES51、AVB、SoundGrid、EtherSound、CobraNet、LLDP、FCoE、PTP (第2层)、MACsec、EtherCAT、HyperSCSI、PROFINET、PPPoE、MPLS、IPX、AppleTalk、DECnet等。维基百科列出了50多个不存在EtherType分配的IP协议。

票数 5
EN

Stack Overflow用户

发布于 2020-07-04 17:57:46

是的,以太网帧总是在osi模型的layer2上有Mac -address。数据包在layer3上具有ip地址

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62731308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档