如果数据进行封装时,基于E2或者802.3标准,此时我们称之为是一个以太网帧
1、EthernetII
采用EthernetII协议会在数据基础之上多出18Byte,EthernetII的数据长度是46-1500B
- FCS(Frame check Sequence)帧校验序列:算法——CRC循环冗余校验(整体信息),FSC用于差错校验。
- Type:用于标识上层的协议。
- S.MAC(Source Mac):源mac,发送者的mac信息。
- D.MAC(Destination Mac):目的mac,接收者的mac信息
- MAC地址:物理地址(网卡地址)
-
- 每个设备出厂时,烧录进网卡芯片中。
- 在一个以太网中,标识设备在链路上的什么位置。
2、IEEE802.3
- 采用IEEE802.3协议会在数据基础之上多出21Byte~26Byte(取决于是否使用的是私有协议(SNAP)),IEEE802.3的数据长度是38-1492B
- 如果对于数据链路层的协议,需要进行额外的控制,或者开发某一类私有化的协议,此时使用 802.3。
- Length:记录data长度
- LLC(Logical Link Control)逻辑链路控制:
-
- D.SAP 目标服务接入点:标识目标端上层的协议。?
- S.SAP 源服务接入点:标识源端数据采用的协议。?
- Control:目前没有被开发出来
- SNAP(Sub Network Access Point)子网络接入点:
-
- 如果采用公有化协议,此字段是不会出现的。只有使用私有化协议,SNAP字段才会被激活。
- Org Code:机构标识
- Type:PID,标识厂商的私有化协议是什么。
3、MAC地址
MAC地址由两部分组成:
- 供应商代码:前24位代表该供应商代码,由IEEE管理和分配。
- 序列号:剩下的24位序列号由厂商自己分配。
单播:通信形式上,点对点,单对单的通信,类似QQ私聊
- 数据封装时,E2/802.3的源MAC和目的MAC都是单播MAC,则为单播通信。
- 单播MAC地址:从高到低第8个bit为0,且一定为0,其他任意。能够配置在设备的网卡上的MAC地址叫做单播MAC地址。
组播:通信形式上,点对多点,单对多的通信,类似QQ群聊
- 数据封装时,因为组播代表的是一组的集合,面向的一组的通信,此时该地址不能成为数据的源地址,仅可以充当数据的目的地址。(D:组播MAC,S:单播MAC)
- 组播MAC地址:从高到低第8个bit为1,且一定为1,其他任意。
- 组播通信的特点:通信前,每个设备要自己进行加组,如果没有加入进该组,则数据即便接受也无法处理,如果此时已经提前加组,则该数据可以进行处理。【IGMP->加组/应用实现自动加组】【互联网组管理协议=组播的】
- 组播地址的特点:是一个虚拟的MAC地址,不存在于设备的接口上,该MAC地址第8bit一定为1.
广播:在通信形式上,点对所有,单对所有的通信。广而播之/强制的接受处理。
- 数据封装时,因为广播代表的是所有人集合,面向所有人的通信,此时广播MAC不能作为数据的源地址,仅可以充当数据的目的地址。
- 广播MAC地址:从高到低第48个bit全部为1,且一定为1。
3、数据发送和接受的动作
发送者的动作:
- 由发送者填充源目的Mac信息,以及Type字段标识上层协议,以及CRC循环冗余校验,将数值填充至FCS。填充完毕之后,此时借助物理层,转变为二进制比特流,从链路中传递。
情况一:目的mac为单播mac
单播数据抵达接收端接口以后,接收者的动作:
- 首先看目的mac地址(看是否是自己的mac地址,如果是进行下一步,如果不是丢弃)
- 将数据也进行CRC检验,比对FCS字段,如果不同则丢弃,如果相同进行下一步。
- 查看type字段,交由type字段标识的上层协议处理。
情况二:目的mac为组播mac
组播数据抵达接收端接口以后,接收者的动作:
- 首先看目的mac地址,查看自己本地是否加组。如果加组进行下一步,如果没有加组则丢弃
- 将数据也进行CRC检验,比对FCS字段,如果不同则丢弃,如果相同进行下一步。
- 查看type字段,交由type字段标识的上层协议处理。
情况三:目的mac为广播mac
广播数据抵达接收端接口以后,接收者的动作:
- 首先看目的mac地址如果是广播,则直接进行下一步。
- 将数据也进行CRC检验,比对FCS字段,如果不同则丢弃,如果相同进行下一步。
- 查看type字段,交由type字段标识的上层协议处理。
分组转发:数据切割为大小一致的长度此时传递时网络中每一个数据的长度大致相同,提升数据的转发效率。
MTU:最大传输单元存在每条链路中的概念如果报文的MTU值过大,而链路能够承载的MTU值过小,则可能导致数据丢弃。
当上层承载不同的协议时,E2的标识取值熟记的如下:规定好的。
- ARP = 0x0806
- IPv4 = 0x0800
- IPv6 = 0x86DD