OSI层次:数据链路层
关键词:帧、介质访问控制
刻画了通过物理链路提供可靠的数据传输的过程
1. 数据链路层概述
1.1. 概述
如何在不稳定的链路上传输数据?
如下图:Node 指的是网络中所有的路由器和主机;Link 指的是连接相邻节点的通道
- 数据链路层协议定义了:链路上数据交换的格式 和 链路上两个节点的行为
- 数据链路层提供:对网络介质的访问 和 通过介质的物理传输
- 数据链路层最基本的服务是将源自物理层来的数据可靠地传输到相邻节点的目标机网络层。
1.2. LANS 和数据链路层
1.主要任务:
- 错误通知
- 网络拓扑
- 数据流控制
2.第一层和第二层之间的不同之处
- 第一层不能和更高层沟通,第二层通过 LLC (Logic Link Control, 逻辑链路控制) 与上层沟通
- 第一层根据传输介质发送信号,第二层通过 MAC (Media Access Control,介质访问控制) 发送信号
- 第一层不能命名或定义主机,第二层有命名过程
- 第一层只能描述比特流,第二层用帧 (frame) 组织比特
1.3. 第二层提供的服务
三个由 LLC 提供给网络层的服务:
- LLC1: 无应答的无连接服务(不需要对方同意)用于:可靠的链路(上层来保证数据正确性)、实时任务、绝大部分用于LAN
- LLC3: 有应答的无连接服务,用于:不可靠的链路,如无线网络
- 确认会降速(降低50%)
- LLC2: 有应答的连接服务,比如:蓝牙
1.4. 在普通 LAN 中的 MAC
注意这里的 以太网, 令牌环 和 FDDI 指的都是 LAN 的类型
以太网 (IEEE802.3):逻辑总线拓扑 (信息流在线性总线上) 和物理星型或扩展星型 (布线是星型)
令牌环 (IEEE802.5):逻辑环形拓扑 (信息流在环中) 和一个物理星型 (布线是星型)
FDDI (Fiber Distributed Data Interface Network):逻辑环形拓扑 (信息流在环中) 和物理双环拓扑 (布线是双环形)
1.5. MAC 的访问方式
1.5.1. 两个宽泛的种类:
- 决定性-轮流:令牌环 和 FDDI
- 非决定性 (概率性)-先来先服务:以太网
1.5.2. 决定性MAC协议:
- 一个特殊的数据令牌在环中循环
- 当主机收到令牌,它可以传输数据而不是令牌,这叫抓住令牌
- 当被传输的帧,传了一圈回到发射机处,站点会发射一个新令牌,原来的帧会从环上被抛弃
1.5.3. 非决定性MAC协议:
- 这个MAC协议被称为,带冲突检测的载波监听多路访问技术(载波监听多点接入/碰撞检测) Carrier Sense Multiple Access with Collision Detection (CSMA/CD)
为了使用这个分享介质的技术,以太网允许网络设备仲裁传输的权利
1.6. LAN传输方式
单播 (发送方只有一个人): —收到的帧的MAC地址与本站硬件地址相同
多播: 发送给本局域网上部分站点的帧
广播: 发送给本局域网上所有站点的帧
2. 以太网 和 CSMA/CD
2.1. LAN标准
- 定义了物理介质和用于将设备连接到介质的连接器
- 定义了设备在数据链路层通讯的方式
- 数据链路层定义了数据怎样通过物理介质传输
- 数据链路层也定义了,在通信使用同一个通道去上层时,却用了不同的上层协议的情况下,怎样封装使用了特定协议的通信
- 数据链路层由 IEEE 分成了两个部分:
- 介质访问控制 Media Access Control (MAC) (向下层介质传输)
- 逻辑链路控制 Logical Link Control (LLC) (向上层网络传输)
2.2. MAC子层
MAC 子层是帧中的域
-
报头
- 由0、1交替出现的开头,被称为报头 (10101011)以字节(byte)为单位 (7+1). 报头(preamble)通知接收站,帧已经来了
-
目的地址和源地址域
-
源地址:通常是一个单播地址
-
目的地址:单播,多播,广播(48位)
-
目的地址在源地址之前:快速转发
-
-
长度域暗示了这个域后面跟着的数据的字节,并先于帧校验序列域
-
由于数据长度可计算,改为type
-
小于0x0600表示length,大于0x0600表示type(0x0600=1536B)
-
-
数据域包括你想要发送的信息
-
数据域长度可变,最大是1500字节,最小是46字节
-
争用窗口长度: 6+6+2+46+4=64B 确保发送一次数据占满100m双绞线,不会同时发送
上面具体可以看这篇文章 (USTC郑烇老师的课件)
-
-
FCS域(4字节)包括了一个循环冗余校验值cyclic redundancy check
-
发送设备发送CRC
-
接受设备重新计算CRC来检查传输中帧可能受到的损失
-
2.3. LLC子层
LLC子层管理通过一条链路上设备的通讯
LLC被定义在IEEE 802.2说明书中,支持无连接和面向连接的服务
LLC子层允许数据链路层的一部分,运作独立于已有技术
一个单独的LLC子层可以和不同的MAC子层相配
2.4. MAC地址的十六进制数字
MAC地址有48位,通常表示为12个十六进制
IEEE要求,前6个十六进制数(从左到右)指出制造商或供应商的身份,还包括了组织唯一标识符
剩下的6个十六进制数,由特定的供应商管理,包括接口编号
对应MAC子层的目的地址
2.5. 以太网802.3广播
-
一种特殊的MAC地址
-
广播(所有端口转发,做成总线的方式)
-
MAC目的地址: 全是1(FFFF.FFFF.FFFF)
-
广播可以通过不必要的打断,严重影响站点的表现
-
所以广播仅在以下情况应该被使用:
-
目的地的MAC地址未知
-
目的地是全体主机
-
2.6. 组帧framing
-
组帧是数据链路层封装的过程
-
帧是第二层的协议数据单元
-
帧的部分叫做域,每个域由字节构成
2.7. 以太网MAC-CSMA/CD
这篇文章详细地介绍了CSMA/CD工作的全部过程
以太网传输数据时,所有的PC都会接收数据,再根据需求考虑是否丢弃数据
JAM SIGNAL:冲突信号,32位或者更多的1,所有的设备都会接收该信号
CSMA/CD传输流程
3. 无线LAN和CSMA/CD
3.1. 无线LAN标准
- IEEE 802.11
- 一个关键技术:直接序列扩频 Direct Sequence Spread Spectrum (DSSS)
- DSSS 适用于操作在1到2 Mbps范围内的无线设备
- DSSS 可能操作高达11 Mbps 但超过2Mbps的操作是不兼容的
- WIFI从此产生
- IEEE 802.11b
- 也叫 Wi-Fi™
- 它将传输能力提升至11 Mbps
- 所有802.11b系统都是向后兼容的,所以他们也支持802.11的 1~2 Mbps数据传输率
- 通过使用802.11一个不同的编码技术获得更高的数据吞吐率
- 操作在2.4 GHz之内
- IEEE 802.11a
- 覆盖使用 5 GHz传输带宽的WLAN设备
- 使用 5 GHz
- 802.11a 有能力提供 54 Mbps 的数据吞吐率,若是使用叫做“双倍率”的专利技术可以到达
- 实际上,更标准的速率为 20-26 Mbps.
- IEEE 802.11g
- 提供和802.11a (54Mbps)一样的吞吐率,但能向后兼容802.11b
- 使用正交频分多路复用技术(OFDM)技术
- IEEE 802.11n:WLAN的下一代(目前主要使用的)
- 提供和802.11g相比两倍的带宽108Mbps,理论上可达500-600Mbps
4. 第二层设备
4.1. 网卡 NIC
NIC: Network Interface Card
NIC 在数据链路层扮演了重要的角色:
- LLC——在计算机中与上层通讯
- MAC——提供对共享访问介质的结构化访问
- 命名——提供一个独特的MAC地址
- 组帧——封装过程的一部分,为了传输将比特打包
- 信号传递——通过使用内置的收发器来产生信号和介质接口
- 网卡解析01序列
4.2. 网桥
网桥将通信划分成段;基于MAC地址,而不是协议,过滤通信. 网桥可以通过减少大的冲突域,来改进网络表现. 当从网络中一个段到其它段的通信量比较低时,网桥工作的更好. 当网段之间的通信量变得繁重,网桥会成为瓶颈,减慢通讯. 网桥可以识别帧了.
透明网桥
“透明”是指局域网上的站点并不知道所发送的帧将经过哪几个网桥,因为网桥对各站来说是看不见的
透明网桥是一种即插即用设备,其标准是 IEEE 802.1D
目前以太网中使用得最多的网桥
问题:当网络上的设备想要发送数据的时候,但是它不知道目的地址
发送一个广播给网络上的所有设备
因为网络上每一个设备都要关注这种广播,网桥总是向前传输广播
太多广播可能会导致广播风暴这又会导致:
-
网络超时
-
通信减慢
-
无法接受的网络表现
源路由网桥
源路由(source route)网桥在发送帧时将详细的路由信息放在帧的首部中,从而使每个经过的网桥都了解帧的路径
在令牌环网络中被广泛使用
透明网桥容易安装,但网络资源的利用不充分
源路由(source route)网桥在发送帧时将详细的路由信息放在帧的首部中
源站以广播方式向欲通信的目的站发送一个发现帧,每个发现帧都记录所经过的路由
发现帧到达目的站时就沿各自的路由返回源站
源站在得知这些路由后,从所有可能的路由中选择出一个最佳路由
凡从该源站向该目的站发送的帧的首部,都必须携带源站所确定的这一路由信息
4.3. 交换机
-
有两个基本操作:
-
交换数据帧:帧被输入介质接收,然后被输出介质传输
-
交换操作保持:交换机建立和保持交换表,搜索循环。路由器建立和保持路由表和服务表
-
-
交换是一种。通过减少通信量,增加带宽,减轻Ethernet LANs中的网络拥堵的技术
-
交换机创造专用网段,或点对点连接,然后将这些网段在交换机内的虚拟网络中连接起来
-
这叫虚拟回路,因为它仅在两个节点需要通讯时存在,并且是建立在交换机内的
-
你可以把每个交换机端口想象成一个微型网桥,这个过程叫微分段 microsegmentation
-
每一个交换机端口给予每个主机全部的介质带宽
-
-
局域网交换机减小了冲突域的大小
-
然而,所有连接到交换机的主机仍然在同一个广播域中:
- 也就是说,从一个节点发出的广播仍然会被其他所有连接这个局域网交换机的主机接收
4.4. 冲突域
4.4.1. 冲突域的桥分割
用网桥来分割局域网的以太网,给每个用户提供更多带宽,因为每个网段上用户更少
网桥不管第3层用什么协议,都会把数据帧继续传输下去
网桥增加了10%~30%的网络延迟,因为需要做决定
网桥被看做是存储转发设备,因为它必须接收全部帧,然后在转发之前,验证循环冗余校验CRC
4.4.2. 冲突域的交换机分割
交换机更快,因为他们在硬件中交换,然而网桥在软件中交换
一个10 Mbps的以太局域网和一个100 Mbps以太局域网可以用交换机连接
在一个交换式以太网实现中,可用带宽可达100%
当因为CSMA/CD使得分享式以太网络只使用了全满容量的30%~40%时,网络表现最好
网桥仅仅支持存储转发,而有些交换机支持直通转发,这样减少了延迟
4.4.3. 冲突域的路由器分割
路由器可以构造最高等级的分割:
构造更小的冲突域
构造更小的广播域:除非编写的程序要求,否则路由器不会继续向前传送广播
路由器通过检查数据包上的目的逻辑地址完成向前传输包,然后在它的路由表中查找向前的指令
因为路由器比网桥有更多的功能,所以操作时有着更大的延迟
路由器可以像网关一样工作:
用于连接不同的网络介质和不同的局域网技术