引言

数据链路是指需要在一条线路上传输数据时,除了必需的物理线路(这部分称为链路)外,还必须有的通信协议的集合。
数据链路层把网络层传下来的数据构成发送到链路上,并把接收到的中的数据取出并上交给网络层。在互联网中,网络层协议数据单元就是IP数据报

1572360438031

点对点信道

  • 点对点信道的数据链路层在进行通信时的步骤
    • 结点A的数据链路层把网络层交下来的IP数据报添加头部和尾部封装成帧
    • 结点A把封装好的帧发送给结点B的数据链路层
    • 若结点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报交给上面的网络层,否则丢弃这个帧
  • 数据链路层的协议
    • 封装成帧
      所有互联网上传输的数据都以IP数据报为传送单位,网络中的IP数据报传送到数据链路层称为帧的数据部分,在帧的前后加入头部和尾部构成一个完整的帧。帧就是数据链路层的数据传送单元。首部和尾部的作用是进行帧定界并加入控制信息。数据传输协议应当规定传送帧的数据部分上限,也即最大传输单元
    • 透明传输
      显而易见,传输的数据部分不能出现帧开始或帧结束的控制字符,否则会出现帧定界错误。当传输部分不为帧定界控制符,则称透明传输。解决透明传输问题的方法是利用转义字符。
    • 差错检测——以循环冗余检测算法为例
      提高信噪比可以使得误码率降低,传输差错分为两类,一类为比特差错,另一类为帧丢失、帧重复与帧失序。

      PPP协议(只支持点对点全双工链路通信,不支持多点线路)

      HDLC:数据链路层协议PPP协议,PPP协议是用户计算机和ISP通信使用的数据链路层协议

      PPP协议应满足的需求

  • 简单:没有必要提供比IP协议更多的功能,因此对数据链路层的帧不需要纠错,不需要序号与流量控制,简单是首要需求。
    接收方每收到一个帧,就进行CRC检验,如CRC检验正确,就收下这个帧,否则丢弃这个帧并不再作任何事。
  • 封装成帧:PPP协议中必须将特定字符作为帧定界符,以便接收端从收到的比特流中能准确找到帧开始和结束位置
  • 透明性:如果数据中出现了和帧定界符一样的比特组合时,需要采取有效措施解决这个问题。
  • 多种网络层协议:PPP协议必须能够在同一条物理链路上同时支持多种网络层协议运行,当点对点链路所连接的事局域网或路由器时,PPP协议必须同时支持在链路所连接的局域网或路由器上运行的各种网络层协议
  • 多种类型链路:PPP支持在串行或并行、同步或异步的、低速或高速的等多种链路
    PPPoE:宽带上网的主机使用的链路层协议,把PPP帧封装在以太网帧中,宽带上网时由于数据传输速率较高,因此可以让多个连接在以太网上的用户共享一条道ISP的宽带链路。即使只有一个用户使用ADSL上网,也使用PPPoE协议。
  • 差错检测:检测并立即丢弃有差错的帧
  • 检测连接状态
  • 最大传送单元:PPP协议必须对每一种类型的点对点链路设置MTU的标准默认值,如果高层协议发送的分组过长并超过MTU,PPP就会丢弃这样的帧并报错,注意:MTU时数据链路层的帧可以载荷的数据部分最大长度而不是帧的总长度
  • 网络层地址协商:PPP协议必须提供一个机制使通信的两个网络层的实体能通过协商知道或能配置彼此的网络地址。
  • 数据压缩协商:PPP协议必须提供一种方法来协商使用数据压缩算法,但PPP协议并不要求将数据压缩算法标准化

    PPP协议组成

1.一个将IP数据报封装到串行链路中的方法
2.一个用来建立、配置和测试数据链路连接的链路控制协议LCP
3.一套网络控制协议NCP

PPP协议帧格式

PPP帧首部和尾部分别有四个和两个字段。首部第一个字段和尾部第二个字段都是F(0x7E)若出现连续两个标志字段F,表示这是一个空帧,应当丢弃。首部中随后是地址字段A(0xFF)和控制字段(0x03),PPP首部的第四个字段是2字节的协议字段。信息字段长度可变,但不超过1500字节,尾部中的第一个字段是使用CRC的帧检验序列FCS。
当信息字段中出现恰好和标志字段一样的比特(0x7D)组合时,就必须采用一些措施使这种形式上和标志上一样的比特组合不出现在信息字段中。

填充方法如下:
1.把信息字段中出现的每一个0x7E字节转变成为2字节序列(0x7D,0x5E)
2.若信息字段中出现了一个0x7D字节,则将之转换为2字节序列(0x7D,0x5D)
3.若信息字段出现小于0x20的ASCII控制字符,则把0x7D家子啊改字节前面,并将改字节加上0x20构成2字节序列
PPP协议在同步传输的情况下,则采用零比特填充方法来实现透明传输——发送端每发现5个1就会立即填入一个0,接收端接收到5个1,就会删除最后的0.这保证了不会引起帧边界的错误判断。

  • 示意图:
    F 字段为帧的定界符
    A 和 C 字段暂时没有意义
    FCS 字段是使用 CRC 的检验序列
    信息部分的长度不超过 1500

PPP 协议的工作状态

  • 过程:
    当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。
    PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)。
    这些分组及其响应选择一些 PPP 参数,和进行网络层配置,NCP 给新接入的 PC机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。
    通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。

使用广播信道的数据链路层

局域网的数据链路层

  • 局域网是一种典型的广播信道,主要特点是网络为一个单位所拥有,且地理范围和站点数目均有限。
  • 主要有以太网、令牌环网、FDDI 和 ATM 等局域网技术,目前以太网占领着有线局域网市场。
  • 可以按照网络拓扑结构对局域网进行分类:
    • 星形网
    • 环形网
    • 总线网
    • 树形网
  • 数据链路层的两个子层
    • 逻辑链路控制 LLC (Logical Link Control)子层
    • 媒体接入控制 MAC (Medium Access Control)子层。
    • 概要: 与接入到传输媒体有关的内容都放在 MAC子层,而 LLC 子层则与传输媒体无关,不管采用何种协议的局域网对 LLC 子层来说都是透明的
      所以以后一般不考虑 LLC 子层
  • 适配器
    • 网络接口板又称为通信适配器(adapter)或网络接口卡 NIC (Network Interface Card),或“网卡”。
      • 适配器的重要功能:
        • 进行串行/并行转换。
        • 对数据进行缓存。
        • 在计算机的操作系统安装设备驱动程序。
        • 实现以太网协议。

CSMA/CD 协议

  • CSMA/CD 表示载波监听多点接入 / 碰撞检测。
    • 多点接入 :说明这是总线型网络,许多主机以多点的方式连接到总线上。
    • 载波监听 :每个主机都必须不停地监听信道。在发送前,如果监听到信道正在使用,就必须等待。
    • 碰撞检测 :在发送中,如果监听到信道已有其它主机正在发送数据,就表示发生了碰撞。虽然每个主机在发送数据之前都已经监听到信道为空闲,但是由于电磁波的传播时延的存在,还是有可能会发生碰撞。
  • 具体内容
    • 记端到端的传播时延为 τ,最先发送的站点最多经过 2τ 就可以知道是否发生了碰撞,称 2τ 为 争用期 。只有经过争用期之后还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
    • 当发生碰撞时,站点要停止发送,等待一段时间再发送。这个时间采用 截断二进制指数退避算法 来确定。从离散的整数集合 {0, 1, .., (2k-1)} 中随机取出一个数,记作 r,然后取 r 倍的争用期作为重传等待时间。
    • 概要: 示意图

使用广播信道的以太网

使用集线器的星形拓扑

  • 传统以太网最初是使用粗同轴电缆,后来演进到使用比较便宜的细同轴电缆,最后发展为使用更便宜和更灵活的双绞线。
    这种以太网采用星形拓扑,在星形的中心则增加了一种可靠性非常高的设备,叫做集线器(hub)

以太网的信道利用率

  • 一个帧从开始发送,经可能发生的碰撞后,将再重传数次,到发送成功且信道转为空闲(即再经过时间 τ 使得信道上无信号在传播)时为止,是发送一帧所需的平均时间。
  • 发送一帧占用线路的时间是 T0 + τ ,而帧本身的发送时间是 T0。于是我们可计算出理想情况下的极限信道利用率 Smax为:

以太网的 MAC 层

  • MAC 地址是链路层地址,长度为 6 字节(48 位),用于唯一标识网络适配器(网卡)。
  • 一台主机拥有多少个网络适配器就有多少个 MAC 地址。例如笔记本电脑普遍存在无线网络适配器和有线网络适配器,因此就有两个 MAC 地址。

以太网帧格式:

  • 类型 :标记上层使用的协议;
    数据 :长度在 46-1500 之间,如果太小则需要填充;
    FCS :帧检验序列,使用的是 CRC 检验方法;

扩展的以太网

在物理层扩展以太网

  • 用多个集线器可连成更大的局域网
    • 用集线器组成更大的局域网都在一个碰撞域中
      • 优点
        • 使原来属于不同碰撞域的局域网上的计算机能够进行跨碰撞域的通信。
        • 扩大了局域网覆盖的地理范围。
      • 缺点
        • 碰撞域增大了,但总的吞吐量并未提高。
        • 如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来。

在数据链路层扩展以太网

  • 在数据链路层扩展局域网是使用网桥。
    • 网桥工作在数据链路层,它根据 MAC 帧的目的地址对收到的帧进行转发。
      网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的 MAC 地址,然后再确定将该帧转发到哪一个接口 。
      • 优点
        • 过滤通信量。
        • 扩大了物理范围。
        • 提高了可靠性。
        • 可互连不同物理层、不同 MAC 子层和不同速率(如10 Mb/s 和 100 Mb/s 以太网)的局域网。
      • 缺点
        • 存储转发增加了时延。
        • 在MAC 子层并没有流量控制功能。
        • 具有不同 MAC 子层的网段桥接在一起时时延更大。
        • 网桥只适合于用户数不太多(不超过几百个)和通信量不太大的局域网,否则有时还会因传播过多的广播信息而产生网络拥塞。这就是所谓的广播风暴。
    • 交换机
      • 交换机具有自学习能力,学习的是交换表的内容,交换表中存储着 MAC 地址到接口的映射。
        正是由于这种自学习能力,因此交换机是一种即插即用设备,不需要网络管理员手动配置交换表内容。
        • 下图中,交换机有 4 个接口,主机 A 向主机 B 发送数据帧时,交换机把主机 A 到接口 1 的映射写入交换表中。为了发送数据帧到 B,先查交换表,此时没有主机 B 的表项,那么主机 A 就发送广播帧,主机 C 和主机 D 会丢弃该帧,主机 B 回应该帧向主机 A 发送数据包时,交换机查找交换表得到主机 A 映射的接口为 1,就发送数据帧到接口 1,同时交换机添加主机 B 到接口 2 的映射。

虚拟局域网

  • 虚拟局域网可以建立与物理位置无关的逻辑组,只有在同一个虚拟局域网中的成员才会收到链路层广播信息。
  • 例如下图中 (A1, A2, A3, A4) 属于一个虚拟局域网,A1 发送的广播会被 A2、A3、A4 收到,而其它站点收不到。
  • 使用 VLAN 干线连接来建立虚拟局域网,每台交换机上的一个特殊接口被设置为干线接口,以互连 VLAN 交换机。IEEE 定义了一种扩展的以太网帧格式 802.1Q,它在标准以太网帧上加进了 4 字节首部 VLAN 标签,用于表示该帧属于哪一个虚拟局域网。

高速以太网

100BASE-T 以太网

  • 速率达到或超过 100 Mb/s 的以太网称为高速以太网
  • 可在全双工方式下工作而无冲突发生。因此,不使用 CSMA/CD 协议。

吉比特以太网

  • 允许在 1 Gb/s 下全双工和半双工两种方式工作。
  • 在半双工方式下使用 CSMA/CD 协议(全双工方式不需要使用 CSMA/CD 协议)。

10 吉比特以太网

  • 10 吉比特以太网只工作在全双工方式
  • 也不使用 CSMA/CD 协议。

使用高速以太网进行宽带接入

  • 以太网接入的重要特点是它可提供双向的宽带通信,并且可根据用户对带宽的需求灵活地进行带宽升级。
  • 采用以太网接入可实现端到端的以太网传输,中间不需要再进行帧格式的转换。这就提高了数据的传输效率和降低了传输的成本。

其他类型的高速局域网接口

集线器在转发帧时,不对传输媒体进行检测。

网桥在转发帧之前必须执行 CSMA/CD 算法。

image-20191102135416196