数据链路层协议--以太网协议

发布于:2025-04-02 ⋅ 阅读:(21) ⋅ 点赞:(0)

数据链路层协议–以太网协议

链路层解决的问题

同一物理网络内的直接通信即负责在 直接相连的节点(如交换机、相邻设备) 之间传输数据帧

将数据链路层与网络层进行以下对比:

维度 数据链路层 网络层
通信范围 同一物理网络(如局域网) 跨网络(如互联网)
寻址方式 MAC地址(物理地址) IP地址(逻辑地址)
核心功能 帧传输、错误检测、介质访问控制 路由选择、逻辑寻址、分片与重组
数据单元 帧(Frame) 数据包(Packet)
典型设备 交换机、网桥 路由器、三层交换机
协议示例 以太网、Wi-Fi、PPP IP、ICMP、OSPF、BGP

以太网协议

局域网技术

  • 以太网:以太网是一种计算机局域网技术,一种应用最普遍的局域网技术

  • 令牌环网:令牌环网常用于IBM系统中,在这种网络中有一种专门的帧称为“令牌”,在环路上持续地传输来确定一个节点何时可以发送包

  • 无线LAN/WAN:无线局域网是有线网络的补充和扩展,现在已经是计算机网络的一个重要组织部分

虽然网络中各个局域网所采用的通信技术可能的不同的,但是IP屏蔽了底层网络的差异,对于网络通信双方的IP层及其往上的协议来说,它们并不需要关心底层具体使用的是哪种局域网技术

  • 数据在发送之前会先进行数据封装,此时链路层会给数据封装上对应的局域网的报头
  • 如果数据要进行跨网络传输,那么就需要经过路由器转发
  • 当数据在路由器进行向上交付时,会将该数据对应的局域网报头去掉
  • 而当路由器该数据转发给下一跳之前,又会给该数据封装上下一跳网络所对应的局域网报头

也就是说,网络中的路由器会不断去掉数据旧的局域网报头,并添加上新的局域网报头,因此数据在进行跨网络传输时,就算所需跨越的网络采用的是不同的局域网技术,最终也能够正确实现跨越

以太网通信原理

“以太网”不是一种具体的网络,而是一种技术标准,它既包含了数据链路层的内容,也包含了一些物理层的内容。例如,以太网规定了网络拓扑结构,访问控制方式,传输速率等

以太网中的网线必须使用双绞线,传输速率有10M,100M,1000M等

以太网中所有的主机共享一个通信信道,当局域网中的一台主机发出数据后,该局域网中的所有主机都能够收到该数据

在这里插入图片描述

  • 当局域网中的主机A想要发送数据给主机B时,其实局域网当中的每一台主机都能收到主机A发出去的数据,只不过最终只有主机B会将主机A发来的数据向上进行交付

  • 局域网当中的其他主机虽然也收到了主机A发出的数据,但经过识别后发现这个数据不是发送给自己的,于是就会直接将该数据丢弃而不会向上进行交付

避免碰撞算法

由于以太网中的所有的主机共享一个通信信道,因此在同一时刻只允许有一台主机发送数据,否则各个主机发送的数据就会相互干扰。站在系统的角度来看,这里各个主机所共享的通信信道就是一种临界资源,这个临界资源同一时刻只允许一台主机使用。

  • 以太网的做法是先不限制各个主机发送数据的能力,局域网中的每个主机想发数据的时候直接发就,但是只要发送出去的数据与其他主机发送的数据产生了碰撞,那就得执行碰撞避免算法。
  • 所谓的碰撞避免算法就是,当主机发送出去的数据产生碰撞时,该主机需要等待一段时间后再进行数据重发,在主机等待的时候就能够就能够尽可能让局域网当中的数据消散

以太网帧格式

在这里插入图片描述

  • 源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,网卡出厂时固化
  • 帧协议类型字段有三种值,分别对应IP协议、ARP协议和RARP协议。
  • 帧末尾是CRC校验码

MAC帧如何将报头与有效载荷进行分离

以太网MAC帧的帧头和帧尾都是固定长度的,因此当底层收到一个MAC帧后,直接提取出MAC帧当中固定长度的帧头和帧尾,此时剩下的就是有效载荷了

MAC帧如何决定将有效载荷交付给上层的哪一个协议

以太网MAC帧对应的上层协议不止一种,因此在将MAC帧的报头和有效载荷分离后,还需要确定应该将分离出来的有效载荷交付给上层的哪一个协议

在MAC帧的帧头当中有2个字节的类型字段,因此在分离出报头和有效载荷后,根据该字段将有效载荷交付给对应的上层协议即可

认识MAC地址

  • MAC地址用来识别数据链路层中相连的节点

  • 长度为48位,及6个字节,一般用16进制数字加上冒号的形式来表示,例如:08:00:27:03:fb:19

  • 在网卡出厂时就确定了,不能修改,MAC地址通常是唯一的(虚拟机中的MAC地址不是真实的MAC地址,可能会冲突;也有些网卡支持用户配置MAC地址

可以通过ifconfig命令来查看我们的MAC地址

在这里插入图片描述

MAC地址 VS IP地址

对比项 MAC地址 IP地址
作用 唯一标识网络设备(如网卡) 标识设备在网络中的逻辑位置
所属层 数据链路层 网络层
地址长度 48位(6字节,十六进制表示) IPv4:32位(4字节) IPv6:128位
表示格式 00:1A:2B:3C:4D:5E00-1A-2B-3C-4D-5E IPv4:192.168.1.1 IPv6:2001:0db8:85a3::8a2e:0370:7334
唯一性 全球唯一(由厂商分配) 可动态分配或重复使用(如私有IP)
分配方式 固化在硬件中(部分可修改) 动态分配(DHCP)或静态配置
用途 局域网内直接通信(如交换机转发) 跨网络路由(如互联网通信)
是否可变 通常固定(可软件修改) 动态或静态(随网络环境变化)
示例 00:0A:95:9D:68:16 IPv4:8.8.8.8(Google DNS)

MTU

MTU(Maximum Transmission Unit,最大传输单元)描述的是底层数据帧一次最多可以发送的数据量,这个限制是不同的数据链路层对应的物理层产生的

  • 以太网对应MTU的值一般是1500字节,不同的网络类型有不同的MTU,如果一次要发送的数据超过了MTU,则需要在IP层对数据进行分片(fragmentation)
  • 此外,以太网规定MAC帧中数据的最小长度为46字节,如果发送数据量小于46字节,则需要在数据后面补填充位,比如ARP数据包的长度就是不够46字节的

因为数据链路层规定了最大传输单元MTU,所以如果IP层一次要发送的数据量超过了MTU,此时IP层就需要先对该数据进行分片,然后才能将分片后的数据向下交付

数据跨网络传输的过程

在这里插入图片描述

以主机A将数据跨网络传输给主机B为例,数据路由的过程如下:

  • 主机A要想将数据跨网络传输给主机B,需要先将数据交给同局域网当中的路由器A,因此主机A需要将封装好的MAC帧发送到当前局域网当中,此时MAC帧当中的源MAC地址和目的MAC地址,对应就是主机A的MAC地址和路由器A的MAC地址

  • 此时主机A所在局域网当中的所有主机都能收到这个MAC帧,但最终只有路由器A发现该MAC帧当中的目的MAC地址与自己的MAC地址相同,于是才会对该MAC帧进行解包,并将解包后剩下的IP数据报交付给IP层

  • 路由器A的IP层拿到解包后的IP数据报后,会提取出IP报头当中的目的IP地址,然后通过查询路由表后确定需要将该数据转发给路由器B,于是路由器A再将数据向下进行交付,重新封装MAC帧的帧头和帧尾,但此时封装后的MAC帧当中的源MAC地址和目的MAC地址,就变成了路由器A的MAC地址和路由器B的MAC地址

  • 与路由器A直接相连的主机虽然也可能有很多,但最终只有路由器B发现该MAC帧当中的目的MAC地址与自己的MAC地址相同,于是才会对该MAC帧进行解包,并将解包后剩下的IP数据报交付给IP层

  • 路由器B的IP层拿到解包后的IP数据报后,同样会提取出IP报头当中的目的IP地址,并通过查询路由表后确定需要将该数据转发给路由器C,于是路由器B再将数据向下进行交付,重新封装MAC帧的帧头和帧尾,但此时封装后的MAC帧当中的源MAC地址和目的MAC地址又变了,变成了路由器B的MAC地址和路由器C的MAC地址

不断重复上述过程,直到最终数据转发至主机B


网站公告

今日签到

点亮在社区的每一天
去签到