帧格式:
Ethernet_II:![](https://img-blog.csdnimg.cn/dad0e5bead0a4cd383653d0b75904146.png)
E2的以太网数据帧长度在64-1518字节之间
D.MAC:目的MAC地址
S.MAC:源MAC地址
Type:标识上层协议,指示后面的数据属于什么类型。如0800H表示数据为IP 包,0806H 表示数据为ARP 包。
Data:数据包
FCS:帧校验序列。CRC冗余校验,
IEEE802.3:
IEEE802.3帧长度小于等于1500字节
D.MAC:目的MAC地址
S.MAC:源MAC地址
Length:标识数据包长度
LLC:逻辑链路控制
SNAP:机构代码和类型字段组成
Data:数据包
FCS:帧校验序列。CRC冗余校验
MTU:最大传输单元默认为1500byte
如果报文MTU值过大,而链路承受的MTU过小,有可能导致数据丢弃或者分片
如果主机A给主机B发送信息,A的MTU为1500byte,B的MTU1600byte,A可以发数据给B,B不能给A回数据因为B的MTU为1600byte,所以B的MTU大于A的MTU,除非B上的分片字段表示可以分片,那么就会把该数据包分为两段给A,如果分片字段显示不能分片,那么该数据会被丢弃。
关于MAC地址:
MAC 地址采用十六进制数表示,共 6 个字节(48 位),长度为 48bit(字节)。整个地址可以分为前 24 位和后 24 位,代表不同的含义。
前 24 位称为组织唯一标识符(Organizationally Unique Identifier,OUI),是由 IEEE 的注册管理机构给不同厂家分配的代码,区分了不同的厂家。
后 24 位是由厂家自己分配的,称为扩展标识符。同一个厂家生产的网卡中 MAC 地址后 24 位是不同的。
单播:
通信形式上,点对点,单对单的通信
数据封装时,源mac和目的mac都是单播mac,则为单播通信。
单播mac地址:从高位向低位(从左往右)第8位为0,且一定为0,其他任意。
组播:
通信形式上,点对多点,单对多的通信,类似腾讯会议
数据封装时,因为组播代表的是一组的集合,面向一组的通信,此时组播mac不能成为数据的源地址,仅能充当目的地址。
组播mac地址:从高位向低位(从左往右)第8位为1,且一定为1,其他任意。
广播:
通信形式上,点对所有,单对所有的通信。(在广播域内)
数据封装时,因为广播是面向所有人的通信,此时广播mac不能成为数据的源地址,仅能充当目的地址。
广播mac地址:从高位向低位 48位全部为1,且一定为1(全F)。
数据包接收过程
如果一个单播数据发给我首先看D.MAC是否是我的MAC,如果不是就丢弃,是的话就进行CRC校验,看FCS字段,如果不同(可能数据被修改或者损坏)则丢弃,如果FCS相同则看看type字段是标识的是什么协议,然后交给上层协议。
如果一个组播数据发给我首先看D.MAC是否是我并且是否加到组播组中,如果有一个不满足就丢弃,都满足才能进行CRC校验,看FCS字段,如果不同(可能数据被修改或者损坏)则丢弃,如果FCS相同则看看type字段是标识的是什么协议,然后交给上层协议。
如果一个广播数据发给我首先看D.MAC是否是广播MAC,(广播代表的是对广播域内所有主机通信)是的话就进行CRC校验,看FCS字段,如果不同(可能数据被修改或者损坏)则丢弃,如果FCS相同则看看type字段是标识的是什么协议,然后交给上层协议。