我的问题涉及到附录(以太网II)和以太网:如果有什么链接层的区别?我没有在标准列表中看到链接层,但是当执行pcap时,我看到wireshark会对它们进行不同的框架设置(我不打算发布pcap,但我确定标准已经发布了)。来源:http://www.tcpdump.org/linktypes.html
发布于 2015-09-28 19:08:28
以太网报头的顺序是:
在最初的DEC/Intel/Xerox (“附录”)以太网规范中,2字节字段被指定为类型字段,给出了一个以太网类型值,指定在以太网之上运行的协议;例如,IPv4使用的值为十六进制0800。
然而,在最初的IEEE 802.3规范中,它被指定为一个长度字段,给出了以太网报头后面的有效负载的长度。(小于64辛特的以太网帧(包括FCS )被填充到64辛特;长度字段允许忽略填充。一些协议,如IPv4和IPv6,都包含它们自己的长度字段,因此即使没有以太网长度字段也可以忽略填充。)
如果2-八进制字段不是类型字段,则不会留下任何机制来指示在以太网上运行的协议。IEEE指定了IEEE 802.2报头,它遵循IEEE802.xLANS (802.11、802.5令牌环、802.3以太网等)中的链路层报头,以及FDDI;它包括1-八进制目标服务接入点(DSAP)和源服务接入点(SSAP)字段,这些字段可用于指定运行在以太网上的协议。
因此," DIX“以太网和"IEEE 802.3”以太网之间的区别最初是,在附件以太网中,2-八进制字段是一个类型字段,在以太网报头之后没有IEEE 802.2报头,而在IEEE 802.3以太网中,2-八位以太网字段是一个长度字段,在以太网报头后面有一个IEEE 802.2报头。
以太网帧的最大长度为1518倍,包括14位以太网报头和4位以太网FCS,因此以太网有效负载的最大长度为1518-(14+4) = 1500辛特。这意味着以太网长度字段的最大值为1500。
以太网类型的最小值是十六进制0600或1536。如果2-八进制字段的值介于0到1500之间,则该字段是一个长度字段,如果大于1536,则为类型字段。(如果是1501到1535之间,则是无效的以太网帧。)这允许在同一个以太网段上使用DIX和IEEE 802.3帧。
IEEE802.3x-1997修改了IEEE802.3x-1997,使其指定2-八位位字段既可以是类型字段,也可以是长度字段,所有后续版本的IEEE 802.3都包含了这样的内容,因此,从1997年的某个时候起,附件帧也是有效的IEEE 802.3帧。
Novell还直接在IEEE 802.3之上运行他们的协议,没有802.2头;它们的帧以两个十六进制FF八进制开始,这意味着它们看起来像帧,DSAP和SSAP值都设置为十六进制FF。十六进制FF不是有效的SSAP,因为它具有“组地址”位集,因此没有802.2 (“以太网802.3”帧)的Novell帧和具有802.2头(“以太网802.2”帧)的802.3帧可以相互区分。
DSAP和SSAP字段不足以处理所有的协议类型,因此设计了子网接入协议 (SNAP)。如果802.2报头中的DSAP和SSAP都是十六进制AA,那么802.2报头后面跟着一个SNAP报头,它有一个3八进制的组织唯一标识符 (OUI),后面跟着一个2八进制的协议ID (PID)。OUI是IEEE分配给组织的一个数字;它用作分配给该组织的MAC (以太网、802.11、令牌环、FDDI)地址的前3位数(一个组织可以有多个OUI,所以如果在一个OUI的范围内没有MAC地址,他们可以分配更多)。PID的解释依赖于OUI值。of为0表示PID是以太网类型值;其他OUI意味着它是由OUI所属的组织分配的值。
通过以太网以外的802.x网络和通过FDDI发送的IPv4和IPv6数据包具有链路层报头,802.2头与DSAP和SSAP都是AA,以及OUI为0和以太网类型为十六进制0800 (IPv4)或十六进制86 of (IPv6)的SNAP报头。在以太网上,它们的类型/长度字段中有0800或86 no,没有802.2头。
有关所有这些帧类型存在的更多信息和一些历史记录,请参阅Don的以太网帧类型:Provan的明确答案 (存档于回车机)。
如tcpdump.org链接层标题类型页所列,pcap和pcapng文件中的链接层标头类型对应于出现在数据包数据开头的八进制格式。正如该页面所述,LINKTYPE_以太网/DLT_EN10MB对应于"IEEE 802.3以太网“,其目标地址为6-八进制,源地址为6-八进制,且按顺序排列为2字节类型/长度字段,因此具有类型字段的数据包和具有长度字段的数据包都由LINKTYPE_ETHERNET覆盖。它们不通过链接层标头类型值来区分;它们是根据类型/长度字段值出现的范围(有效长度字段、有效类型字段、无效字段)来区分的。
(是的,也许Wireshark不应该将具有类型字段的以太网帧与具有长度字段的以太网帧区分开来;它可能应该将它们都显示为以太网帧,如果是类型字段则将2-八进制字段显示为类型字段,如果是长度字段,则显示为长度字段;如果无效,则显示为“上述字段中的任何一个”字段。)
https://stackoverflow.com/questions/32822472
复制相似问题