数据链路层

数据链路层

  • 要解决的三个基本问题:
    • 封装成帧
    • 透明传输
    • 差错检测
  • 点对点传输协议(PPP)
  • 广播信道(CSMA/CD)
  • 以太网(MAC)

    数据链路层使用的信道

  • 点对点信道

    • 这种信道使用一对一的点对点通信方式。
  • 广播信道
    • 这种信道使用一对多的广播通信方式,因此过程比较复杂。

使用点对点信道发的数据链路层

数据链路和帧

  • 链路(link)
    • 所谓链路就是从一个结点到相邻节点的一段物理线路(有线或无线),而中间没有任何其他的交换结点。
  • 数据链路(data link)
    • 除物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。现在最常用的方法是使用网络适配器(即网卡)来实现这些协议的硬件和软件。一般的适配器都包括了数据链路层物理层这两层的功能。
    • 为了向网络层提供服务,数据链路层必须使用物理层提供的服务。
    • 物理层,是以比特流进行传输的,这种比特流并不保证在数据传输过程中没有错误,接收到的位数量可能少于、等于或者多余发送的位数量。而且它们还可能有不同的值,这时数据链路层为了能实现有效的差错控制,就采用了一种“帧”的数据块进行分段传输。
    • 采用帧格式传输,就必须有相应的帧同步技术,这就是数据链路层的“成帧”(也称帧同步)功能。

三个基本问题

  • 封装成帧(framing)
    • 一段数据的前后分别添加首部尾部,这样就构成了一个帧。
    • 确定帧的界限:
      • 首部和尾部的一个重要作用就是进行帧定界。当数据是由可打印的ASII码组成的文本文件时,帧定界可以使用特殊的帧定界符
    • 控制字符SOH(Start Of Header)放在一帧的最前面,表示帧的首部开始。另一控制字符EOT(End Of Transmission)放在一帧最后,表示一帧的结束。
    • 此外,首部和尾部还包括许多必要的控制信息,各种数据链路层协议都对帧首部和尾部的格式有明确规定。
    • 为了提高帧的传输效率,应使帧的数据部分长度尽可能地大于首部和尾部的长度,但每一种种数据链路层协议都规定了所能传输的帧的数据部分长度上限——最大传输单元MTU(Maximum Transfer Unit)。
  • 透明传输
    • 如果数据中的某个字节的二进制码恰好和SOH 或 EOT一样,数据链路层就会错误地“找到帧地边界”。
    • 解决方法:
      • 字节填充(byte stuffing)或字符填充(character stuffing)。发送端的数据链路层在数据中出现控制字符“SOH”或“EOT“的前面插入一个转义字符”ESC“(其十六进制编码是1B)。接收端的数据链路层将在数据送往网络层之前删除插入的转义字符。
  • 差错检测
    • 在传输过程中可能会产生比特差错:1可能会变成0而0也可能变成1。在一段时间内,传输错误的比特与传输比特总数的比率称为误码率BER(Bit Error Rate)。误码率与信噪比有很大的关系。为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。
    • 循环冗余检验CRC的检错技术。
    • 帧检测序列FCS(Frame Check Sequence):FCS在数据后面添加上的冗余码称为帧检验序列FCS。
      • 需要注意的是:
        • 循环冗余检验CRC和帧检测序列FCS并不等同。
        • CRC是一种常用的检错方法,而FCS是添加在数据后面的冗余码。
        • FCS可以用CRC这种方法得出,但CRC并非用来获得FCS的唯一方法。
    • CRC检验
      • 若得出的余数R=0,则判断这个帧没有差错,就接受。
      • 若判断余数R≠0,则判断这个帧有差错,就丢弃。
      • CRC检验原理及例子
      • 仅用循环冗余检验CRC差错检测技术只能做到无差错接受
      • 注意:
        • “无差错接受”是指:“凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错”。也就是说:“凡是接收端数据链路层接受的帧都没有传输差错”(有差错的帧就丢弃而不接受)。
        • 要做到“可靠传输”(即发送什么就收到什么)就必须再加上确认和重传机制
        • 应当明确,无比特差错无传输差错是不同的概念。
        • 在数据链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输
        • 本章介绍的数据链路层协议都不是可靠传输的协议

点对点协议PPP(重点)

  • 点对点的链路,目前使用得最广泛的数据链路层协议是点对点协议PPP (Point-to-Point Protocol)。用户使用拨号电话线接入互联网时,用户计算机和ISP进行通信时所使用的数据链路层协议就是PPP协议。
  • PPP协议应满足的需求(特点):
    • 简单:这是首要的要求。
    • 封装成帧:必须规定特殊的字符作为帧定界符。
    • 透明性:必须保证数据传输的透明性。
    • 多种网络层协议:能够在同一条物理链路上同时支持多种网络层协议。
    • 多种类型链路:能够在多种类型的链路上运行。
    • 差错检测:能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。
    • 检测连接状态:能够及时自动检测出链路是否处于正常工作状态。
    • 最大传送单元:必须对每一种类型的点对点链路设置最大传送单元MTU的标准默认值,促进各种实现之间的互操作性。
    • 网络层地址协商:必须提供一种机制使通信的两个网络层实体能够通过协商知道或能够配置彼此的网络层地址。
    • 数据压缩协商:必须提供一种方法来协商使用数据压缩算法。
  • PPP协议不需要的功能:
    • 纠错、流量控制、序号、多点线路、半双工或单工链路(只支持全双工链路)。
  • PPP协议有三个组成部分:
    • 一个将IP数据报封装到串行链路的方法。
    • 链路控制协议LCP(Link Control Protocol),用来建立、配置和测试数据链路的连接。
    • 网络控制协议NCP(Network Control Protocol),其中每一个协议支持不同的网络层协议。
  • PPP协议的帧格式:
    • PPP帧的首部和尾部分别为4个字段和2个字段。
    • 标志字段F=0x7E、地址字段A只置为OxFF、控制字段C通常置为0x03。地址字段和控制字段实际上并不起作用。
    • PPP是面向字节的,所有的PPP帧的长度都是整数字节。
      PPP帧
    • PPP有一个2个字节的协议字段:
      • 若为0x0021,则信息字段就是IP数据报。
      • 若为0x8021,则信息字段是网络控制数据。
      • 若为0XC021,则信息字段是PPP链路控制数据。
      • 若为0XC023,则信息字段是鉴别数据。
  • 透明传输问题:
    • 当PPP用在同步传输链路时,协议规定采用硬件来完成比特填充(和HDLC的做法一样)。
    • 当PPP用在异步传输时,就使用一种特殊的字符填充法。将信息字段中出现的每一个0x7E字节转变成为2字节序列(0x7D,0x5E)。
    • 若信息字段中出现一个0x7D的字节,则将其转变成为2字节序列(0x7D,0x5D)。
    • 若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时将该字符的编码加以改变。
  • PPP协议之所以不使用序号、确认和重传机制是出于以下的考虑:
    • 在数据链路层出现差错的概率不大时,使用比较简单的PPP协议较为合理。
    • 在因特网环境下,PPP的信息字段放入的数据是IP数据报。数据链路层的可靠传输并不能够保证网络层的传输也是可靠的。
    • 帧检验序列FCS字段可保证无差错接受。
  • 非必须让数据链路层提供可靠传输(不加入帧编号、确认和重传机制)的原因:
    • 现在通信线路的质量大大提高,由通信链路质量不好引起差错的概率已经大大降低。
    • 因此,现在的互联网采用区别对待的方法:
      • 通信质量良好的有线传输链路,数据链路层协议不使用确认和重传机制,即不要求提供可靠传输。
      • 通信质量较差的无线传输链路,数据链路层协议使用确认和重传机制,即向上提供可靠传输。
      • 实践证明,这样可以提高通信效率

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

  • 局域网的数据链路层:
    • 局域网最主要的特点是:
      • 网络为一个单位所拥有;地理范围和站点数目均有限。
    • 局域网具有如下主要优点:
      • 具有广播功能,从一个站点可很方便地访问全网。
      • 局域网上的主机可共享连接在局域网上的各种硬件和软件资源。
      • 便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。
      • 提高了系统的可靠性、可用性和残存性。
    • 局域网拓扑结构:
      局域网
    • 以太网的两个标准:
    • DIX Ethernet V2是世界上第一个局域网产品(以太网)的规约。
    • IEEE 802.3是第一个IEEE的以太网标准。
  • 数据链路层的两个子层:
    • 逻辑链路控制LLC (Logical Link Control)子层。
    • 媒体接入控制 MAC (Medium Access Control)子层。
    • 与接入到传输媒体有关的内容都放在MAC子层,而LLC子层则与传输媒体无关。
    • 不管采用何种协议的局域网,对LLC子层来说都是透明的即LLC子层看不见下面的局域网。
      数据链路层-两个子层
    • 实际上,由于互联网发展很快而TCP/IP体系的使用局域网只剩下DIX Ethernet V2,因此LLC的作用已经消失了,很多厂商的适配器上仅有MAC协议而没有LLC协议。
  • 适配器:

    • 网络接口板又称为通信适配器(adapter)或网络接口卡NIC (Network Interface Card),或“网卡”。
    • 适配器的重要功能:
      • 进行串行(电缆或双绞线)/并行(主板上的I/O总线)转换。
      • 对数据进行缓存(网络上的数据率与计算机上的数据率不同)。
      • 实现以太网协议。
        适配器
  • CSMA/CD协议:

    • 为了通信的简便,以太网(符合DIX Ethernet V2标准的局域网)采取了两种重要的措施:
      • 采用较为灵活的无连接的工作方式,即不必先建立连接就可以直接发送数据。对发送的数据帧不进行编号,也不要求对方发回确认。这样做的理由是局域网信道的质量很好,因信道质量产生差错的概率是很小的。因此,以太网提供的服务是尽最大努力的交付,即不可靠交付
      • 以太网发送的数据都使用曼彻斯特,曼彻斯特编码缺点是:它所占的频带宽度(这里指频率上下界差)比原始的基带信号增加了一倍。
    • CSMA/CD含义:
      • 载波监听多点接入/碰撞检测(Carrier Sense
        Multiple Access with Collision Detection)。
    • 多点接入表示许多计算机以多点接入的方式连接在一根总线上。
    • 载波监听是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。总线上并没有什么“载波”。因此,“载波监听”就是用电子技术检测总线上有没有其他计算机发送的数据信号。
    • 碰撞检测就是计算机边发送数据边检测信道上的信号电压大小。在发生碰撞时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息来。每一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。
  • 为什么要进行碰撞检测?
    • 由于电磁波在总线上的传播速率是有限的,当某个站监听到总线是空闲时,也可能总线并非真正是空闲的
    • A向B发出的信息,要经过一定的时间后才能传送到B。B若在A发送的信息到达B之前发送自己的帧(因为这时B的载波监听检测不到A所发送的信息),则必然要在某个时间和A发送的帧发生碰撞。碰撞的结果是两个帧都变得无用。所以需要在发送期间进行碰撞检测,以检测冲突。
  • 争用期:
    • 电磁波在1km电缆的传播时延约为5μs(这个数字应当记住)。
    • 最先发送数据帧的站,在发送数据帧后至多经过时间2$\tau$(两倍的端到端往返时延)就可知道发送的数据帧是否遭受了碰撞。因此,以太网的端到端往返时延2$\tau$称为争用期,或碰撞窗口
    • 经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞
    • 二进制指数类型退避算法:
      • 发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据。基本退避时间取为争用期2$\tau$。
    • 争用期的长度:
      • 以太网在发送数据时,若前64字节没有发生冲突,则后续的数据就 不会发生冲突。
  • CSMA/CD协议的要点:
    • 准备发送。但在发送之前,必须先检测信道
    • 检测信道。若检测到信道忙,则应不停地检测,一直等待信道转为空闲。
    • 检查碰撞。在发送过程中仍不停地检测信道,即网络适配器要边发送边监听。
  • CSMA/CD重要特性

    • 使用CSMA/CD协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信)。每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。
    • 这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率。
  • 使用集线器的星形拓扑:

    • 集线器(hub)
      • 采用双绞线的以太网采用星形拓扑,在星形的中心则增加了一种可靠性非常高的设备,叫做集线器(hub)。
      • 星形以太网10BASE-T使用无屏蔽双绞线,采用星形拓扑,通信距离稍短,每个站到集线器的距离不超过100m。
      • 特点:
        • 集线器是使用电子器件来模拟实际电缆线的工作,因此整个系统仍然像一个传统的以太网那样运行。使用集线器的以太网在逻辑上仍是一个总线网,各工作站使用的还是CSMA/CD协议,并共享逻辑上的总线。
        • 集线器很像一个多接口的转发器
        • 集线器工作在物理层,简单地转发比特,不进行碰撞检测(由各站中的适配器执行CSMA/CD协议)。
        • 集线器采用了专门的芯片,进行自适应串音回波抵消,减少了近端串音。
  • 以太网的信道利用率:

    • 多个站在以太网上同时工作就可能会发生碰撞。当发生碰撞时,信道资源实际上是被浪费了。因此,当扣除碰撞所造成的信道损失后,以太网总的信道利用率并不能达到100%。
    • 在以太网中定义了参数a,它是以太网单程端到端时延$\tau$与帧的发送时间$T_0$之比
      • $a=\frac{\tau}{T_0}$
      • 当a $\rightarrow$ 0, 表示一发生碰撞就立即可以检测出来,并立即停止发送,因而信道利用率很高。
      • a越大,表明争用期所占的比例增大,每发生一次碰撞就浪费许多信道资源,使得信道利用率明显降低。
      • 也就是说,以太网的连线长度受到限制(否则$\tau$会太大),同时以太网的帧不能太短(否则$T_0$会太小)。
  • 以太网的MAC层(重要):

    • MAC层的硬件地址:在局域网中,硬件地址又称为物理地址,或MAC地址
    • 48位的MAC地址:
      • IEEE 802标准规定MAC地址字段可采用6字(48位)或2字节(16位)这两种中的一种。(现在实际都使用48位的)
      • IEEE的注册管理机构RA负责向厂家分配地址字段6个字节中的前三个字节(即高位24位),称为组织唯一标识符OUI(公司标识符)。
      • 址字段6个字节中的后三个字节(即低位24位)由厂家自行指派,称为扩展标识符,必须保证生产出的适配器没有重复地址。
    • 适配器检查MAC地址:
      • 适配器从网络上每收到一个MAC帧就首先用硬件检查MAC帧中的MAC地址。如果是发往本站的帧则收下,然后再进行其他的处理。否则就将此帧丢弃,不再进行其他的处理。
      • “发往本站的帧”包括以下三种帧:
        • 单播(unicast)帧(一对一)
        • 广播(broadcast)帧(一对全体)
        • 多播(multicast)帧(一对多)
        • 所有的适配器都至少能够识别前两种帧,即能够识别单播地址和广播地址。有的适配器可用编程方法识别多播地址。
        • 只有目的地址才能使用广播地址和多播地址。
        • 以混杂方式(promiscuous mode)工作的以太网适配器只要“听到”有帧在以太网上传输就2都接收下来。
    • MAC帧的格式:常用的以太网MAC帧格式有两种标准:
      • DIX Ethernet V2标准、IEEE的802.3标准,最常用的MAC帧是以太网V2的格式。
        MAC帧
    • 无效的MAC帧:
      • 数据字段的长度与长度字段的值不一致(IEEE 802.3第三个字段:长度/类型);
      • 帧的长度不是整数个字节;
      • 用收到的帧检验序列FCS查出有差错;
      • 数据字段的长度不在46 ~ 1500字节之间。
      • 有效的MAC帧长度为64〜1518字节之间。
      • 对于检查出的无效MAC帧就简单地丢弃。以太网不负责重传丢弃的帧。

扩展的以太网

  • 在物理层扩展以太网:
    • 集线器扩展,增加碰撞域。
  • 在数据链路层扩展以太网:
    • 交换式集线器(以太网交换机、第二层交换机):
      • 以太网交换机实质上就是一个多接口的网桥(根据MAC帧的目的地址进行转发和过滤)。
    • 特点:
      • 通常都有十几个或更多的接口。每个接口都直接与一个单台主机或另一个以太网交换机相连,并且一般都工作在全双工方式
      • 以太网交换机具有并行性。能同时连通多对接口,使多对主机能同时通信。相互通信的主机都是独占传输媒体,无碰撞地传输数据
      • 以太网交换机的接口有存储器,能在输出端口繁忙时把到来的帧进行缓存
      • 以太网交换机是一种即插即用设备,其内部的帧交换表(又称为地址表)是通过自学习算法自动地逐渐建立起来的。
      • 以太网交换机使用了专用的交换结构芯片,用硬件转发,其转发速率要比使用软件转发的网桥快很多。
    • 以太网交换机的优点:
      • 用户独享带宽,增加了总容量。
      • 从共享总线以太网转到交换式以太网时,所有接入设备的软件和硬件、适配器等都不需要做任何改动。
      • 以太网交换机一般都具有多种速率的接口,方便了各种不同情况的用户。
    • 以太网交换机的交换方式:存储转发方式、直通(cut-through)方式。
作者

TIANYUZHOU

发布于

2020-12-07

更新于

2021-02-17

许可协议

评论