网络中传输数据时需要定义并遵循一些标准,以太网是根据IEEE 802.3标准来管理和控制数据帧的。了解IEEE 802.3标准是充分理解以太网中链路层通信的基础。
分层模型的作用
(1)各层之间是独立的。某一层并不需要知道它的下一层是如何实现的,而仅仅需要知道该层通过层间的接口所提供的服务。这样,整个问题的复杂程度就下降了。也就是说上一层的工作如何进行并不影响下一层的工作,这样我们在进行每一层的工作设计时只要保证接口不变可以随意调整层内的工作方式。
(2)灵活性好。当任何一层发生变化时,只要层间接口关系保持不变,则在这层以上或以下各层均不受影响。当某一层出现技术革新或者某一层在工作中出现问题时不会连累到其他层的工作,排除问题时也只需要考虑这一层单独的问题即可。
(3)结构上可分割开。各层都可以采用最合适的技术来实现。技术的发展往往是不对称的,层次化的划分有效避免了木桶效应,不会因为某一方面技术的不完善而影响整体的工作效率。
(4)易于实现和维护。这种结构使得实现和调试一个庞大又复杂的系统变得易于处理,因为整个的系统已被分解为若干个相对独立的子系统。进行调试和维护时,可以对每一层进行单独的调试,避免了出现找不到问题、解决错问题的情况。
(5 能促进标准化工作。因为每一层的功能及其所提供的服务都已有了精确的说明。标准化的好处就是可以随意替换其中的某几层,对于使用和科研来说十分方便。
1.OSI七层模型
- 国际标准化组织ISO于1984年提出了OSI RM(Open System Interconnection Reference Model,开放系统互连参考模型)。OSI参考模型很快成为了计算机网络通信的基础模型。
- OSI参考模型具有以下优点:简化了相关的网络操作;提供了不同厂商之间的兼容性;促进了标准化工作;结构上进行了分层;易于学习和操作。
- OSI参考模型各个层次功能如下:
- 物理层:在设备之间传输比特流,规定了电平、速度和电缆针脚。
- 数据链路层:将比特组合成字节,再将字节组合成帧,使用链路层地址(以太网中使用MAC地址)来访问介质并进行差错检测。
- 网络层:提供逻辑地址,供路由器确定最优路径。
- 传输层:提供面向连接或非面向谅解的数据传递以及进行重传前的差错检测。
- 会话层:负责建立、管理和终止表示层实体间的通信会话。该层的通信由不同设备中的的应用程序之间的服务请求和响应组成
2.TCP/IP四层模型
- TCP/IP模型同样采用了分层结构,层与层相对独立但是相互之间具备非常密切的协作关系。
- TCP/IP模型将网络分为四层。TCP/IP模型不关注底层物理介质,主要关注终端之间的逻辑数据流转发。TCP/IP模型的核心是网络层和传输层,网络层解决网络之间的逻辑转发问题,传输层保证源端到目的端之间的可靠传输。最上层的应用层通过各种协议向终端用户提供业务应用。
以太网中数据帧的结构
- 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个字节。
MAC地址的作用
以太网在二层链路上通过MAC地址来唯一标识网络设备,并且实现局域网上网络设备之间的通信。MAC地址也叫物理地址,大多数网卡厂商把MAC地址烧入了网卡的ROM中。发送端使用接收端的MAC地址作为目的地址。以太帧封装完成后会通过物理层转换成比特流在物理介质上传输。
- 如同每一个人都有一个名字一样,每一台网络设备都用物理地址来标识自己,这个地址就是MAC地址。网络设备的MAC地址是全球唯一的。MAC地址长度为48比特,通常用十六进制表示。MAC地址包含两部分:前24比特是组织唯一标识符(OUI,Organizationally Unique Identifier),由IEEE统一分配给设备制造商。例如,华为的网络产品的MAC地址前24比特是0x00e0fc。后24位序列号是厂商分配给每个产品的唯一数值,由各个厂商自行分配(这里所说的产品可以是网卡或者其他需要MAC地址的设备)。
以太网中数据转发的过程
局域网上的数据帧共有三种转发方式。单播,广播,组播。
1.单播
每个主机接口都有一个MAC地址作为唯一标识,MAC地址的OUI(组织唯一标识符)中,第一字节第8个比特标识地址类型。对于主机MAC地址,这个比特固定为0,表示目的MAC地址为此MAC地址的帧都是发送到某个唯一的目的端。在冲突域中,所有主机都能收到源主机发送的单播帧,但是其他主机发现目的地址与本地MAC地址不一致后会丢弃收到的帧,只有真正的目的主机才会接收并处理收到的帧。
2.广播
- 第二种发送方式是广播,表示帧从单一的源发送到共享以太网上的所有主机。广播帧的目的MAC地址为十六进制的FF:FF:FF:FF:FF:FF,所有收到该广播帧的主机都要接收并处理这个帧。
- 广播方式会产生大量流量,导致带宽利用率降低,进而影响整个网络的性能。
- 当需要网络中的所有主机都能接收到相同的信息并进行处理的情况下,通常会使用广播方式。
3.组播
- 第三种发送方式为组播,组播比广播更加高效。组播转发可以理解为选择性的广播,主机侦听特定组播地址,接收并处理目的MAC地址为该组播MAC地址的帧。
- 组播MAC地址和单播MAC地址是通过第一字节中的第8个比特区分的。组播MAC地址的第8个比特为1,而单播MAC地址的第8个比特为0。
- 当需要网络上的一组主机(而不是全部主机)接收相同信息,并且其他主机不受影响的情况下通常会使用组播方式。
数据帧的发送和接收
- 帧从主机的物理接口发送出来后,通过传输介质传输到目的端。共享网络中,这个帧可能到达多个主机。主机检查帧头中的目的MAC地址,如果目的MAC地址不是本机MAC地址,也不是本机侦听的组播或广播MAC,则主机会丢弃收到的帧。
- 如果目的MAC地址是本机MAC地址,则接收该帧,检查帧校验序列(FCS)字段,并与本机计算的值对比来确定帧在传输过程中是否保持了完整性。如果帧的FCS值与本机计算的值不同,主机会认为帧已被破坏,并会丢弃该帧。如果该帧通过了FCS校验,则主机会根据帧头部中的Type字段来确定将帧发送给上层哪个协议处理。本例中,Type字段的值为0x0800,表明该帧需要发送到IP协议上处理。在发送给IP协议之前,帧的头部和尾部会被剥掉。
总结:
网络设备如何确定以太网数据帧的上层协议?
答:在以太网中包含一个Type字段,表示帧中的数据应该发送到上层哪个协议处理。
终端设备接收到数据帧时,如何处理?
答:主机首先检查帧头的目的MAC地址,如果目的MAC地址不是本机MAC地址,也不是本机侦听的组播或广播MAC地址,则主机会丢弃收到的帧。如果目的MAC地址是本机MAC地址,则接收该帧,检查帧校验序列(FCS)字段,并与本机计算的值对比来确定帧在传输过程中是否保持了完整性。如果检查通过,就会剥离帧头和帧尾,然后根据帧头中的Type字段来决定把数据发送到哪个上层协议进行后续处理。
参考(https://www.applysquare.com/topic-cn/V9UHWe49W/)