OSI Data Link Layer

OSI层次数据链路层

关键词介质访问控制

刻画了通过物理链路提供可靠的数据传输的过程

1. 数据链路层概述

1.1. 概述

如何在不稳定的链路上传输数据

如下图Node 指的是网络中所有的路由器和主机Link 指的是连接相邻节点的通道

  • [数据链路层](https://baike.baidu.com/item/数据链路层/4329290#:~:text=数据链路层是 OSI参考模型 中的第二层介乎于%20物理层%20和%20网络层%20之间%E3%80%82,数据链路层在物理层提供的服务的基础上向网络层提供服务其最基本的服务是将源自物理层来的%20数据%20可靠地%20传输%20到%20相邻节点%20的目标机网络层%E3%80%82%20数据链路层定义了在单个链路上如何传输数据%E3%80%82)协议定义了链路上数据交换的格式 和 链路上两个节点的行为
  • 数据链路层提供对网络介质的访问 和 通过介质的物理传输
  • 数据链路层最基本的服务是将源自物理层来的数据可靠地传输相邻节点的目标机网络层

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标准

  1. 定义了物理介质和用于将设备连接到介质的连接器
  2. 定义了设备在数据链路层通讯的方式
  3. 数据链路层定义了数据怎样通过物理介质传输
  4. 数据链路层也定义了在通信使用同一个通道去上层时却用了不同的上层协议的情况下怎样封装使用了特定协议的通信
  5. 数据链路层由 IEEE 分成了两个部分
    • 介质访问控制 Media Access Control (MAC) (向下层介质传输)
    • 逻辑链路控制 Logical Link Control (LLC) (向上层网络传输)

2.2. MAC子层

MAC 子层是帧中的域

  • 报头

    • 由01交替出现的开头被称为报头 (10101011)以字节byte为单位 7+1. 报头preamble通知接收站帧已经来了
  • 目的地址和源地址域

    • 源地址通常是一个单播地址

    • 目的地址单播多播广播48位

    • 目的地址在源地址之前快速转发

  • 长度域暗示了这个域后面跟着的数据的字节并先于帧校验序列域

    • 由于数据长度可计算改为type

    • 小于0x0600表示length大于0x0600表示type0x0600=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.11nWLAN的下一代目前主要使用的
    • 提供和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. 冲突域的路由器分割

路由器可以构造最高等级的分割

构造更小的冲突域

构造更小的广播域除非编写的程序要求否则路由器不会继续向前传送广播

路由器通过检查数据包上的目的逻辑地址完成向前传输包然后在它的路由表中查找向前的指令

因为路由器比网桥有更多的功能所以操作时有着更大的延迟

路由器可以像网关一样工作

用于连接不同的网络介质和不同的局域网技术