以太网帧传输
考虑从一台主机向另一台主机发送一个 IP数据报,且这两台主机在相同的以太局域网上,发送适配器在一个以太网帧中封装 了一个IP数据报,并把该帧传递到物理层。接收适配器从物理层收到这个帧,提取岀IP 数据报,并将该IP数据报传递给网络层。
以太网帧结构
前同步码
前同步码(8字节)。以太网帧以一个8字节的前同步码(Preamble)字段开始。 该前同步码的前7字节的值都是10101010;最后一个字节是10101011。前同步码 字段的前7字节用于“唤醒”接收适配器,并且将它们的时钟和发送方的时钟同步。为什么这些时钟会不同步呢?记住适配器A的目的是根据以太局域网类型的不同,分别以10Mbps、100Mbps或者lGbps的速率传输帧。然而,没有什么是完美无缺的,因此适配器A不会以精确的额定速率传输帧;相对于额定速率总有一 些漂移,局域网上的其他适配器不会预先知道这种漂移的。接收适配器只需通过 锁定前同步码的前7字节的比特,就能够锁定适配器A的时钟。前同步码的第8 个字节的最后两个比特(第一个出现的两个连续的1)警告适配器B, “重要的内 容”就要到来了。
目的地址
目的地址(6字节)。这个字段包含目的适配器的MAC地址,即BB-BB-BB-BB-BB-BB。当适配器B收到一个以太网帧,帧的目的地址无论是BB-BB-BB-BB-BB-BB,还是MAC广播地址,它都将该帧的数据字段的内容传递给网络层;如果它收到了具有任何其他MAC地址的帧,则丢弃之。
源地址
源地址(6字节)。这个字段包含了传输该帧到局域网上的适配器的MAC地址,
类型字段
类型字段允许以太网复用多种网络层协议。为了理解这点, 我们需要记住主机能够使用除了 IP以外的其他网络层协议。事实上,一台给定的 主机可以支持多种网络层协议,以对不同的应用采用不同的协议。因此,当以太网帧到达适配器B,适配器B需要知道它应该将数据字段的内容传递给哪个网络 层协议(即分解)。IP和其他链路层协议都有它们各自的、标准化的类型编号。此外,ARP协议有自己的 类型编号,并且如果到达的帧包含ARP分组(即类型字段的值为十六进制的 0806),则该ARP分组将被多路分解给ARP协议。注意到该类型字段和网络层数据报中的协议字段、运输层报文段的端口号字段相类似;所有这些字段都是为了把一层中的某协议与上一层的某协议结合起来。
数据字段
数据字段(46 ~ 1500字节)。这个字段承载了 IP数据报。以太网的最大传输单元 (MTU)是1500字节。这意味着如果IP数据报超过了 1500字节,则主机必须将 该数据报分片。数据字段的最小长度是46字节。这意味着如果IP数据报小于46字节,数据报必须被填充到46字节。当采用填充时,传递到网络层的数据包括IP数据报和填充部分。网络层使用IP数据报首部中的长度字段来去除填充部分。
CRC
CRC (4字节)。CRC (循环冗余检测)字段的目的是 使得接收适配器(适配器B)检测帧中是否引入了差错。
所有的以太网技术都向网络层提供无连接服务。这就是说,当适配器A要向适配器B 发送一个数据报时,适配器A在一个以太网帧中封装该数据报,并且把该帧发送到局域网 上,没有先与适配器B握手。这种第二层的无连接服务类似于IP的第三层数据报服务和 UDP的第四层无连接服务。