快速理解网络协议(三)MAC 层

总览

物理层 Physical Layer

虽然 TCP/IP 模型不涉及硬件设备所在的物理层,但还是在这里简单介绍下物理层。 [1]

物理层,顾名思义,表示实际的物理链接。物理层利用物理传输介质为通信的两端建立链接,实现比特流的传输,如铜线、光缆或无线通道,保证比特流正确的传输到对端。常见设备包括中继器、集线器等。其中集线器 Hub,完全在物理层工作,会将自己收到的每一个字节,都复制到其他端口上去,即广播模式。

MAC 层 Link Layer

链路层,又称 MAC 层。MAC 的全称为 Medium Access Control,即媒体访问控制,主要有两个功能,寻址和控制

  1. 寻址,即如何找到数据帧接收方
  2. 控制,即谁先发、谁后发,发送出现问题如何处理

解决“控制”问题

在以太网中,两个节点间传输的数据最终都会转换成电信号,在物理传输介质上发送出去。物理传输介质肯定是共享的,在发送数据时需要考虑谁先发、谁后发、同时发送时怎么避免冲突、出现问题怎么处理等。这就是多路访问问题,即如何协调多个发送和接收节点对单一共享广播信道的访问。计算机网络使用多路访问协议来规范它们在共享的广播信道上的传输行为。

多路访问协议

我们可以先来思考一下,理想情况下在共享信道上期望怎么传输数据。

  1. 如果只有一个节点需要发送数据,那么我们期望它可以以整个信道的速率 R 发送数据
  2. 如果有 M 个节点需要同时发送数据,那么我们期望它可以以(信道的传输速率 R / M)来发送数据
  • 规划车道 ➡️ 信道划分协议 Channel Partitioning Protocol

    采用多路复用技术,将链路、网络资源(如带宽)划分为“资源片”,将“资源片”分配给各路通信,每路通信独占其分配到的资源片进行通信。这样的划分方式,可以满足理想情况 2。

  • 依次排队 ➡️ 轮转协议 Taking-turns Protocol

    多个节点轮流发送数据。当只有一个结点活跃时,以信道的全部发送速率 R 发送;当有M个结点活跃时,每个活跃结点的吞吐量接近 R/M。完全满足理想情况 1,几乎满足理想情况 2。

  • 随机应变 ➡️ 随机访问协议 Random Access Protocol

    节点总是以信道的全部速率发送数据,传输时可能且允许出现冲突。当检测到冲突时通过延时重传等方式恢复,这也是以太网使用的方式。完全满足理想情况 1,几乎满足理想情况 2。

在轮转协议和随机访问协议中,好像都可以满足理想情况。那为什么以太网使用的说随机访问协议而不是轮转协议呢?主要有以下三个原因

  1. 网络架构更简单,所有设备都可以同时发送和接收数据,不需要等待其他设备的轮转时机
  2. 更加灵活和高效,随机访问协议允许多个设备同时发送数据,不需要进行时间调度或协调
  3. 可扩展性高,新设备可以随时连接到网络,并立即开始发送和接收数据,不需要调度或配置

解决“寻址”问题

MAC 地址是指网络设备的硬件地址,是由网络设备的制造商烧录在设备的网卡中的一个全球唯一的地址,如果一台设备有多个网卡,则每个网卡都需要并会有一个唯一的 MAC 地址。MAC 地址共 48 位(6个字节),以十六进制表示。

当数据传输时,源设备会根据目标设备的 MAC 地址 “寻址” ,确保数据能够被正确地传送到目标设备。当设备接收到数据后,如果发现目的地址与本地 MAC 地址不一致,则会丢弃,只有真正的目标设备才会接收并处理收到的数据。

MAC 地址是一个局域网(LAN)范围内的地址,它只在局域网中起作用,不能直接进行跨网络通信。在局域网中,可以通过交换机(Switch)来完成数据的传输。交换机通过学习和记录连接到它的设备的 MAC 地址,根据 MAC 地址来决定数据的转发。而在互联网中,数据通常是通过路由器(Router)等设备进行转发,而不是根据 MAC 地址进行直接传输。

以太网帧 - Frame

以太网帧 Ethernet frame 是 MAC 层传输数据的基本单位。其中 MAC 头部包含 目标 MAC 地址、源 MAC 地址 和 类型。类型标识了传输数据的封装协议[2]。常见的类型有,0x0800 表示 IPv4 数据报,0x0806 表示 ARP 数据报,0x86DD 表示 IPv6 数据报[3]

frame
  • 目标 MAC 地址:表示数据帧应该被发送到哪个网络设备,由 6 个字节组成
  • 源 MAC 地址:表示数据帧是从哪个网络设备发送的,同样由 6 个字节组成
  • 类型:表示数据帧类型,0800 表示 IP 数据包,0806 表示 ARP 数据包
  • 数据:实际的数据内容,长度可变
  • CRC:Cyclic Redundancy Check 循环冗余检测,通过 XOR 异或的算法,计算整个数据帧在发送的过程中是否出现了错误

获取 MAC 地址

在网络通信中,使用 MAC 地址直接进行通信是不可行的,我们借助 IP 地址作为中间桥梁来实现通信。在局域网中,知道了要发送的 IP 地址,该如何获得目标设备的 MAC 地址呢?

每个设备的网卡的 MAC 地址都是固定的,我们可以手动一个个添加局域网中其他设备的 MAC 地址,随着局域网中的主机越来越多,这种方式难以为继。我们需要自动获取、更新和维护各个设备的 MAC 地址,这就是 Address Resolution Protocol。

ARP 协议,工作在 MAC 层,用于获得已知 IP 地址的 MAC 地址。而手动配置 MAC 地址的方式,一般是出于安全考虑,为了防止非法用户访问,由网络管理员手动在 MAC 地址表中添加合法用户的 MAC 地址表项,当手动配置的数量比较大时,难以人工维护,可以使用端口安全功能实现 MAC 地址和接口的动态绑定。

具体的 ARP 协议内容,我们下节继续~

小测验

  1. 在物理层工作的常见设备有哪些?
  2. 在 MAC 层工作的常见设备有哪些?
  3. MAC 层传输数据的基本是什么?它的头的格式是什么?每个字段的含义和作用是什么?
  4. 如何通过 IP 地址获取 MAC 地址?

  1. 有些文章描述TCP/IP模型有五层,其中包括了物理层。但在RFC1122中未指定物理层,我还是倾向于四层。详情可参考:https://datatracker.ietf.org/doc/html/rfc1122#page-8

  2. 以太网II帧:https://en.wikipedia.org/wiki/Ethernet_frame#Ethernet_II

  3. 更多类型含义:https://en.wikipedia.org/wiki/EtherType#Values

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,468评论 5 473
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,620评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,427评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,160评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,197评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,334评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,775评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,444评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,628评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,459评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,508评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,210评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,767评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,850评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,076评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,627评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,196评论 2 341

推荐阅读更多精彩内容