以太网

以太网几乎占领着现有的有线局域网市场,它造价低廉,且能满足网络速率需求。

以太网的发展历史

下图为设计者 Metcalfe 早期设计的的以太网草图,初始的以太局域网通过同轴电缆总线来互联节点。这种使用总线拓扑的以太网是一种广播局域网,即所有传输的帧传送到与该总线连接的所有网络适配器(网卡,网络接口)并被其处理。这种结构实际上从 20 世纪 80 年代到 90 年代中期一直保持不变。广播介质被局域网中所有主机共享,因此所有节点在同一冲突域(collision domain)中。

以太网架构图 以太网结构图详解_网络层

以太网架构图 以太网结构图详解_网络层_02

到了 20 世纪 90 年代后期,大多数公司和大学使用一种基于集线器(hub)的星形拓扑以太网,主机和路由器直接用双绞对铜线与一台集线器相连。集线器是一种物理层设备,它作用于每个比特而不是作用于帧,当一个比特到达其一个接口时,集线器只是将其能量强度放大并向其他所有接口传输出去。因此,采用基于集线器的星形拓扑的以太网也是一个广播局域网。如果集线器同时从两个不同的接口接收到帧,将出现冲突,生成帧的节点必须重新传输该帧。

在 21 世纪早期,以太网又经历了一次重要的革命性变化。以太网的安装继续使用星形拓扑,但是位于中心的集线器被交换机(switch)所替代。交换机是一种链路层设备,它不仅是“无冲突的”,而且也是名副其实的存储转发分组交换机,因此每个节点位于一个单独的冲突域中。

以太网架构图 以太网结构图详解_以太网架构图_03

以太网的二进制指数退避 CSMA/CD 算法

以太网提供的是无连接(发送帧的网卡与接收帧的网卡间没有握手过程)、不可靠(接受网卡不向发送网卡进行确认,差错帧直接丢弃,数据恢复依靠高层协议如 TCP 协议,否则发生数据丢失)的服务。

以太网采用具有二进制指数退避的 CSMA/CD 多路访问协议,其算法执行过程如下:

  1. 网卡从网络层接收数据报,创建数据帧。
  2. 监听信道:如果网卡监听到信道空闲,则开始传输数据帧;否则,一直监听等待到信道空闲,然后传输数据帧。
  3. 网卡传输完整个帧,而传输过程中没有检测到其他节点的数据发送(边发边听),则网卡确认帧发送成功。
  4. 如果在传输帧的过程中,检测到其他节点传输数据(边发边听),则中止传输。
  5. 检测到冲突并中止传输后,网卡进入二进制指数退避:第 m 次连续冲突后,取 以太网架构图 以太网结构图详解_数据_04,从 以太网架构图 以太网结构图详解_数据帧_05 中随机选择一个数 以太网架构图 以太网结构图详解_网络层_06,等待 以太网架构图 以太网结构图详解_数据_07

以太网帧结构

以太网架构图 以太网结构图详解_数据_08

  • 前导码(Preamble)(8 字节):前 7 个字节的值都是 10101010,第 8 字节为 10101011,用于发送端与接收端的时钟同步。若无特殊说明,该字段通常不计入数据帧长度。
  • 目的 MAC 地址和源 MAC 地址(各 6 字节):如果网卡的 MAC 地址与收到的帧的目的 MAC 地址匹配,或者目的 MAC 地址为广播地址 FF-FF-FF-FF-FF-FF,则网卡接收该帧,并将其封装的网络层分组交给相应的网络层协议;否则,网卡丢弃该帧。
  • 类型(2 字节):指示帧中封装的是哪种高层协议的分组,这样网卡就知道它应该将数据字段的内容交给哪个网络层协议(即分用)。
  • 数据(46-1500 字节):指上层协议载荷。1500 相当于定义了以太网的 MTU;最小长度是 46 字节,如果小于 46 字节,数据字段必须被填充到 46 字节(由于 CSMA/CD 协议边发边听,不发不听,在传输时必须能够检测到冲突。在早期的以太网链路中 以太网架构图 以太网结构图详解_网络层_09Mbps,以太网架构图 以太网结构图详解_以太网架构图_10,由 以太网架构图 以太网结构图详解_网络层_11以太网架构图 以太网结构图详解_网络层_12以太网架构图 以太网结构图详解_数据_13)。
  • CRC(4 字节):循环冗余编码,目的是使得接收网卡检测帧中是否引入了差错。如果收到差错帧,则丢弃该帧。

以太网标准

有许多不同的以太网标准,它们采用相同的多路访问协议和帧格式,但是具有不同速率:10 Mbps、100 Mbps、1 Gbps 和 10 Gbps,和不同物理介质:光纤、同轴电缆、铜线。

以太网架构图 以太网结构图详解_数据_14

首字母缩写词的第一部分指该标准的速率:10、100、1000 或 10G,分别代表 10 Mbps、100 Mbps、1000 Mbps(1 Gbps)和 10 Gbps 以太网。“BASE”指基带以太网,这意味着物理介质仅承载以太网流量。最后一部分指物理介质本身,“T”指双绞铜线。