以太网的分类
以太网已经经历了四代的发展:
标准以太网
帧格式
前导符:1和0交替,通知接受系统有帧的到来并使其与输入的时钟同步,他是在物理层上加上去的,不属于帧的一部分。
SFD:起始帧分界符,通知接收方下一个字段是目的地址。
目的地址:目的端的物理地址。
源地址:源端的物理地址。
长度/类型:定义使用帧的上层协议,或者作为长度字段来定义数据字段的字节数。
数据:封装的数据。
CRC:差错检测信息。
帧的长度
据RFC894的说明,以太网封装IP数据包的最大长度是1500字节,也就是说以太网最大帧长应该是以太网首部加上1500,再加上7字节的前导同步码和1字节的帧开始定界符,具体就是:7字节前导同步吗+1字节帧开始定界符+6字节的目的MAC+6字节的源MAC+2字节的帧类型+1500+4字节的FCS。
按照上述,最大帧应该是1526字节,但是实际上我们抓包得到的最大帧是1514字节,为什么不是1526字节呢?原因是当数据帧到达网卡时,在物理层上网卡要先去掉前导同步码和帧开始定界符,然后对帧进行CRC检验,如果帧校验和错,就丢弃此帧。如果校验和正确,就判断帧的目的硬件地址是否符合自己的接收条件(目的地址是自己的物理硬件地址、广播地址、可接收的多播硬件地址等),如果符合,就将帧交“设备驱动程序”做进一步处理。这时我们的抓包软件才能抓到数据,因此,抓包软件抓到的是去掉前导同步码、帧开始分界符、FCS之外的数据,其最大值是6+6+2+1500=1514。
以太网规定,以太网帧数据域部分最小为46字节,也就是以太网帧最小是7 + 1 + 6+6+2+46+4=72。除去前导同步码、帧开始分界符、FCS,因此,抓包时就是60字节。当数据字段的长度小于46字节时,MAC子层就会在数据字段的后面填充以满足帧长不小于72字节。由于填充数据是由MAC子层负责,也就是设备驱动程序。
由于填充数据是由MAC子层负责,也就是设备驱动程序。不同的抓包程序和设备驱动程序所处的优先层次可能不同,抓包程序的优先级可能比设备驱动程序更高,也就是说,我们的抓包程序可能在设备驱动程序还没有填充不到64字节帧的时候,已经捕获了数据。因此不同的抓包工具抓到的数据帧的大小可能不同。(比如,wireshark抓到的可能没有填充数据段,而sniffer抓到的就有填充数据段)
寻址
以太网中使用网卡提供的一个6字节物理地址,通常使用十六进制表示法表示。
例如:06:01:02:01:2C:4B
单播地址,多播地址和广播地址
访问方法
物理层的实现
标准的变化
快速以太网
mac子层
自动协商
物理层实现
千兆以太网
工作模式
物理层实现
10千兆以太网
工作模式
物理层实现