2.以太网帧结构

1.前言

网络传输数据时需要定义遵循一些标准,以太网是根据IEEE 802.3标准来管理控制数据帧的。了解IEEE 802.3标准是充分理解以太网中链路层通信的基础。

2.网路通信协议

在这里插入图片描述

  • 20世纪60年代以来,计算机网络得到了飞速发展。各大厂商和标准组织为了在数据通信网络领域占据主导地位,纷纷推出了各自的网络架构体系和标准,如IBM公司的SNA协议,Novell公司的IPX/SP协议,以及广泛流行的OSI参考模型和TCP/IP协议。同时,各大厂商根据这些协议生产出不同的硬件和软件。标准组织和厂商的共同努力促进了网络技术的快速发展和网络设备种类的迅速增长。
  • 网路通信中,“协议”和“标准”这两个词汇常常可以混用。同时,协议或标准本身又常常具有层次的特点。一般地,关注与逻辑数据关系的协议通常被称为上层协议,而关注于物理数据流的协议被称为底层协议。IEEE 802就是一套用来管理物理数据流局域网中传输的标准,包括在局域网中传输物理数据的802.3以太网标准。除此之外,还有一些用来管理数据流在广域网中传输的标准,如PPP(Point-to-Point Protocol),高级数据链路控制HDLC(High-Level Data Link Control)。

3.分层模型-OSI

在这里插入图片描述
国际标准化组织ISO于1984年提出了OSI RM(Open System Interconnection Reference Model,开放系统互连参考模型)。OSI参考模型很快成为了计算机网络通信的基础模型。

OSI参考模型具有一下的优点:

简化了相关的网络操作提供了不同厂商之间的兼容性促进了标准化工作结构上进行了分层易于学习和操作

OSI参考模型各个层次的基本功能如下:

物理层:

在设备之间传输比特流,规定了电平、速度和电缆针脚。

数据链路层:

比特组合成字节,在进行字节组合成帧使用链路层地址(以太网使用MAC地址)来访问介质,并进行差错检测。

网络层

提供逻辑地址,供路由器确定路径。

传输层:

提供面向连接或非面向连接的数据传递以及进行重传前的差错检测。

会话层:

==负责建立、管理和终止表示层实体之间的通信会话。==该层的通信由不同设备中的应用程序之间的服务请求和响应组成。

表示层:

提供各种用于应用层数据的编码和转换能力,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。

应用层:

OSI参考模型中最靠近用户的一层,为应用程序提供网路服务。

4.分层模型

在这里插入图片描述

  • TCP/IP模型同样采用了分层结构,层与层相对独立但是相互之间也具备非常密切的协作关系。
  • TCP/IP模型将网路分为四层。TCP/IP模型不关注底层物理介质,主要关注终端之间的逻辑数据流转发。TCP/IP模型的核心是网络层和传输层,网络层解决网络之间的逻辑转发问题传输层保证源到目的端之间的可靠传输。最上面的应用层通过各种协议向终端用户提供业务应用

5.数据封装

在这里插入图片描述
应用数据需要进过TCP/IP每一层处理之后才能通过网络传输到目的端。每一层上都使用该层的协议数据单元PDU(Protocol Data Unit)彼此交换信息。不同层的PDU中包含有不同的信息,因此PDU在不同层被赋予了不同的名称。如上层数据在传输层添加TCP报头后得到的PDU被称为Segment(数据段);数据段传递给网络层网络层添加IP报头得到的PDU被称为Packet(数据包);数据包被传递到数据链路层,封装数据链路层报头得到的PDU被称为Frame(数据帧);最后,帧被转换为比特,通过网络介质传输。这种协议栈逐层向下传递数据,并添加报头和报尾的过程称为封装

6.终端之间的通信

在这里插入图片描述
数据包在以太网物理介质上传播之前必须封装头部和尾部信息封装后的数据包被称为数据帧,数据帧中封装的信息决定了数据如何传输。以太网上传输的数据帧有两种格式,选择那种格式由TCP/IP协议簇中的网络层决定。

7.帧格式

在这里插入图片描述

  • 网上使用两种标准帧格式。第一种是上世纪80年代提出的DIX v2格式,即Ethernet II(阿拉比2)帧格式。Ethernet II后来被IEEE 802标准接纳,并写进了IEEE 802.3x-19973.2.6节。第二种是1983年提出的IEEE 802.3格式。这种格式的主要区别在于Etherner II 格式包含一个Type字段,标示以太帧处理完成后将被发送懂到那个上层协议进行处理,IEEE 802.3格式中,同样的位置是长度字段。
  • 不同的Type字段值可以用来区别两种帧的类型,当Type字段值小与等于1500(或者十六进制的0x05DC)时,帧使用的是IEEE 802.3格式。当Type字段值大于1536(或者十六进制的0x05DC)时,帧使用的是Etherner II 格式。以太网中大多数的数据帧使用的是Etherber II 格式。
  • 以太网中还包括源和目的MAC地址,分别代表发送者的MAC和接受者的MAC,此外还有帧校验序列字段,用于校验传输过程中帧的完整性

8.Ethernet_II帧格式

在这里插入图片描述

Ethernet_II的帧中各字段说明如下:
  • DMAC(Destination MAC)目的MAC地址。DMAC字段长度为6个字节,标示帧的接受者。
  • SMAC(source MAC)是源MAC地址。SMAC字段长度为6个字节,标示帧的发送者。
  • 类型字段(Type)用于标示数据字段中包含的高层协议,该字段长度为2个字节。类型字段取值为0x0800的帧代表IP协议帧;类型字段取值为0x0806的帧代表ARP协议帧
  • 数据字段(Data)网络层数据,最小长度必须为46字节以保证帧长至少为64字节,数据字段的最大长度为1500字节。
  • 循环冗余校验字段(FCS)提供了一种错误检测机制。该字段长度为4个字节。

9.IEEE802.3帧格式

在这里插入图片描述

IEEE802.3帧格式类似于Ethernet II帧,只是Ethernet II帧Type域802.3帧Length域取代。并且占用了Data字段的8个字节作为LLCSNAP字段。
Length字段定义了Data字段包含的字节数
逻辑链路控制LLC(Logical LInk Control)由目的服务访问点DSAP(Destination Service Access Point)、源服务访问点SSAP(Source Service Access Point)Control字段组成。
SNAP(Sub-network Access Protocol)机构代码(Org Code)类型(Type)字段组成。Org Code三个字节都为0Type字段的含义与Ethernet II帧中的Type字段相同。

IEEE802.3帧根据DSAP和SSAP字段的取值又可以分为以下几类:
  1. DSAPSSAP都去特定值0xff时,802.3帧就变成了Netware-ETHRNET帧,用来承载NetWare类型的数据
  2. DSAPSSAP都取特定值0xaa时,802.3帧就变成了ETHERNET_SNAP帧。ETHERNET_SNAP帧可以用于传输多种协议
  3. DSAPSSAP其他的取值为纯IEEE802.3帧

10.数据帧传输

在这里插入图片描述

  • 以太网在二层链路上通过MAC地址唯一标示网络设备,并且实现局域网上网络设备之间的通信。MAC地址也叫物理地址,大多数网卡厂商把MAC地址烧入了网卡的ROM中。发送端使用接收端的MAC地址作为目的地址。以太帧封装完成后会通过物理层转换成比特流在物理介质上传输

11.以太网的MAC地址

在这里插入图片描述
如同每个人都有一个名字一样,每一台网络设备都用物理地址来标示自己,这个地址就是MAC地址。网路设备的MAC地址是全球唯一的。MAC地址长度为48比特,通常用十六进制表示。MAC地址包含两部分:前24比特是组织唯一标示符(OUI,Organizationally Unique Identifier),由IEEE统一分配给设备制造商。例如,华为的网络产品的MAC地址前24比特是0x00e0fc。后24位序列号是厂商分配给每个产品唯一数值,由各个厂商自行分配(这里所说的产品是网卡或者其他需要MAC地址的设备)。

12.单播

在这里插入图片描述
局域网上的帧可以通过三种方式发送。第一种是单播,指从单一的源发送到单一的目的端。每个主机接口由一个MAC地址唯一标示,MAC地址的OUI中,第一个字节第8个比特表示地址类型。对于主机MAC地址,这个比特固定为0,表示所有主机都能收到源主机发送的单播帧,但是其他主机发现目的地址与本地MAC地址不一致后会丢弃收到的帧,只有真正的目的主机才会接收并处理收到的帧

13.广播

在这里插入图片描述

  • 第二种发送方式是广播,表示帧从单一的源发送到共享以太网上的所有主机。广播帧的目的MAC地址十六进制的FF:FF:FF:FF:FF:FF,所有收到该广播帧的主机都要接收并处理这个帧
  • 广播方式会产生大量流量,导致带宽利用率降低,进而影响整个网络的性能
  • 当需要网络中的所有主机都能接收到相同的信息并进行处理的情况下,通常会使用广播方式。

14.组播

在这里插入图片描述
第三种方式为组播组播比广播更为高效。组播转发可以理解为选择性广播,主机侦听特定组播地址,接收并处理目的MAC地址为该组播MAC地址的帧
组播MAC地址单播MAC地址是通过第一个字节中的第8个比特区分的。组播MAC地址的第8个比特为1,而单播MAC地址的第8个比特为0
当需要网络上的一组主机(而不是全部主机)接收相同信息,并且其他主机不受影响的情况下通常会使用组播方式。

15.数据帧的发送和接收

在这里插入图片描述
帧从主机的物理接口发送出来后,通过传输介质传输到目的端。共享网路中,这个帧可能到达多个主机。主机检查帧头中的目的MAC地址,如果目的MAC地址不是本机MAC地址,也不是本机侦听组播或广播MAC地址,则主机会丢弃收到的帧。
如果目的MAC地址是本机MAC地址,则接收该帧,检查帧校验序列(FCS)字段,并与本机计算的值对比来确定帧在传输过程中是否保持了完整性。如果该帧的FCS值与本机计算的值不同,主机会认为帧已被破坏,并会丢弃该帧。如果该帧通过了FCS校验,则主机会根据帧头部的Type字段确定将帧发送到上层哪个协议处理。本例中,Type字段的值为0x0800,表明该帧需要发送到IP协议上处理。在发送给IP协议之前,帧的头部和尾部会被剥掉

16.总结

16.1网络设备如何确定以太网数据帧的上层协议?

以太网帧中包含一个Type字段,表示帧中的数据应该发送到上层哪个协议处理。比如,IP协议对应的Type值为0x0800,ARP协议对应的Type值为0x0806。

16.2终端设备接收数据帧时,会如何处理?

主机检查帧头中的目的MAC地址,如果目的MAC地址不是本机MAC地址,也不是本机侦听的组播或广播MAC地址,则主机会丢弃收到的帧。如果目的MAC地址是本机MAC地址,则接收该帧,检查校验序列(FCS)字段,并与本机计算机的值对比来确定帧在传输过程中是否保持了完整性。如果检查通过,就会剥离帧头和帧尾,然后帧头中的Type字段来决定把数据发送到哪个上层协议中进行后续处理。

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云原生解决方案

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值