【谢希尔 计算机网络】第3章 数据链路层

数据链路层

数据链路层的地位

  • 网络中的主机、路由器等都必须实现数据链路层
  • 局域网中的主机、交换机等都必须实现数据链路层
  • 【谢希尔 计算机网络】第3章 数据链路层_第1张图片
  • 不同链路层可能采用不同的数据链路层协议

数据链路层信道类型

  • 点对点信道
    • 使用一对一的点对点通信方式
  • 广播通信
    • 必须使用专用的共享系电脑协议来协调这些主机的数据发送

【谢希尔 计算机网络】第3章 数据链路层_第2张图片

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

数据链路和帧

  • 链路(link):
    • 一条无源的点到点的物理线路段,中间没有任何其他的交换结点。
    • 一条链路只有一条通路的一个组成部分。
    • 物理链路
  • 数据链路(data link)
    • 把实现控制数据传输的协议的硬件和软件加到链路上,及构成了数据链路。
    • 逻辑链路
    • 典型实现:适配器(即网卡)

【谢希尔 计算机网络】第3章 数据链路层_第3张图片

三个基本问题

1. 封装成帧

  • 封装成帧(framing):在数据的前后分别添加首部和尾部,构成一个帧。
    • 首部和尾部的一个重要作用就是进行帧顶界(即确定帧的界限)
  • 最大传送单元MTU(Maximum Transfer Unit):规定了所有传送的帧的数据部分长度上限。

【谢希尔 计算机网络】第3章 数据链路层_第4张图片

用控制字符作为帧定界符

  • 控制字符 SOH (Start Of Header) 放在一帧的最前面,表示帧的首部开始。
  • 控制字符 EOT (End Of Transmission) 放在一帧的末尾,表示帧的结束。

【谢希尔 计算机网络】第3章 数据链路层_第5张图片

2. 透明传输

  • 问题:如果数据中的某个字节的二进制代码恰好和 SOH 或 EOT 一样,数据链路层就会错误地“找到帧的边界”,导致错误。【谢希尔 计算机网络】第3章 数据链路层_第6张图片
  • 透明的概念:
    • 指某一个实际存在的事物看起来却好像不存在一样。
  • “在数据链路层透明传送数据”表示:无论发送什么样的比特组合的数据,这些数据都能够按照原样没有差错地通过这个数据链路层

用“字节填充”或“字符填充”法解决透明传输的问题

【谢希尔 计算机网络】第3章 数据链路层_第7张图片

3. 差错控制

【问题分析】

在传输过程中可能会产生比特差错:1  ->  0, 0  ->  1。

【谢希尔 计算机网络】第3章 数据链路层_第8张图片

在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)。

解决方案:循环冗余检验 CRC (Cyclic Redundancy Check) 原理

  • 在发送端,先把数据划分为组。假定每组k个比特。
  • CRC 运算在每组M后面再添加供差错检车用的n位冗余码,然后构成一个帧发送出去。一共发送(k + n)位。

【谢希尔 计算机网络】第3章 数据链路层_第9张图片

CRC 冗余码的计算

【谢希尔 计算机网络】第3章 数据链路层_第10张图片

  1. 用二进制的模2 运算运行2^{^{n}} × M的运算,这相当于在 M 后面添加 n 个0
  2. 得到的(k + n)位的数除以事先选定好的长度为(n + 1)位的除数 P,得出商事 Q,余数是 R,余数 R比除数P 少一位,即 R是n位。
  3. 将余数 R作为冗余码拼接在数据M后面,一起发送出去。

这种为了进行检错而添加的冗余码常称为帧检验序列 FCS (Frame Check Sequence)。

【谢希尔 计算机网络】第3章 数据链路层_第11张图片

帧检验序列 FCS

  • 在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。
  • 循环冗余检验 CRC 和帧检验序列 FCS 并不等同。
    • CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。
    • FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法。

广泛使用的生成多项式P(X)

【谢希尔 计算机网络】第3章 数据链路层_第12张图片

【注意】

  • 仅用循环冗余检验 CRC 差错检测技术只能做到无差错接受 (accept)。
    • 即:“凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于 1 的概率认为这些帧在传输过程中没有产生差错”。
    • 即:“凡是接收端数据链路层接受的帧均无差错”。
  • “无比特差错”与“无传输差错”是不同的
    • 可靠传输:数据链路层的发送端发送什么,在接收端就收到什么。
    • 传输差错可分为两大类:
      • 比特差错;
      • 传输差错:帧丢失、帧重复或帧失序等。
  • 在数据链路层使用 CRC 检验,能够实现无比特差错的传输,但这还不是可靠传输。
  • 要做到可靠传输,还必须再加上帧编号、确认和重传等机制

点对点协议PPP

PPP 协议的特点

  • 对于点对点的链路,目前使用得最广泛的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)。
  • PPP 协议在 1994 年就已成为互联网的正式标准 [RFC 1661, STD51]。

【谢希尔 计算机网络】第3章 数据链路层_第13张图片

1. PPP 协议应满足的需求

  1. 简单 ——首要要求。
  2. 封装成帧 —— 必须规定特殊的字符作为帧定界符。
  3. 透明性 —— 必须保证数据传输的透明性。
  4. 多种网络层协议 —— 能够在同一条物理链路上同时支持多种网络层协议。
  5. 多种类型链路 —— 能够在多种类型的链路上运行。
  6. 差错检测 —— 能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。
  7. 检测连接状态 —— 能够及时自动检测出链路是否处于正常工作状态。
  8. 最大传送单元 —— 必须对每一种类型的点对点链路设置最大传送单元  MTU 的标准默认值,促进各种实现之间的互操作性。
  9. 网络层地址协商 —— 必须提供一种机制使通信的两个网络层实体能够通过协商知道或能够配置彼此的网络层地址。
  10. 数据压缩协商 —— 必须提供一种方法来协商使用数据压缩算法。

2. PPP 协议的组成

  • 三个组成部分:
    • 一个将 IP 数据报封装到串行链路的方法。
    • 一个链路控制协议 LCP (Link Control Protocol)。
    • 一套网络控制协议 NCP (Network Control Protocol)。 

PPP 协议的帧格式

【谢希尔 计算机网络】第3章 数据链路层_第14张图片

  • PPP 有一个 2 个字节的协议字段。其值
    • 若为 0x0021,则信息字段就是 IP 数据报。
    • 若为 0x8021,则信息字段是网络控制数据。
    • 若为 0xC021,则信息字段是 PPP 链路控制数据。
    • 若为 0xC023,则信息字段是鉴别数据。
  • PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节

1. 各字段的意义

  • 首部:4 个字段
    • 标志字段 F: 0x7E 。连续两帧之间只需要用一个标志字段。
    • 地址字段 A:只置为 0xFF。实际上不起作用。
    • 控制字段 C:通常置为 0x03。
    • 协议字段。
  • 尾部:2 个字段。

透明传输问题 

  • 当 PPP 用在异步传输时,使用字节填充法
  • 当 PPP 用在同步传输链路时,采用零比特填充法。  

2. 字节填充

【谢希尔 计算机网络】第3章 数据链路层_第15张图片

3. 零比特填充

【谢希尔 计算机网络】第3章 数据链路层_第16张图片

PPP 协议的工作状态

PPP 链路初始化过程:

  • 用户拨号接入 ISP 后,就建立了一条从用户个人电脑到 ISP 的物理连接。
  • 用户个人电脑向 ISP 发送一系列的链路控制协议 LCP 分组(封装成多个 PPP 帧),以便建立LCP连接。
  • 之后进行网络层配置。网络控制协议 NCP 给新接入的用户个人电脑分配一个临时的 IP 地址。
  • 当用户通信完毕时,NCP 释放网络层连接,收回原来分配出去的IP地址。LCP 释放数据链路层连接。最后释放的是物理层的连接。

【谢希尔 计算机网络】第3章 数据链路层_第17张图片

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

局域网的数据链路层

  • 局域网主要的特点
    • 1. 网络为一个单位所拥有
    • 2. 地理范围和站点数目均有限
  • 局域网具有如下主要优点
    • 1. 具有广播功能,从一个站点可恨方便地访问全网
    • 2. 便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。
    • 3. 提高了系统的可靠性、可用性和生存性

局域网拓扑结构

【谢希尔 计算机网络】第3章 数据链路层_第18张图片

局域网传输媒体

【谢希尔 计算机网络】第3章 数据链路层_第19张图片

共享信道带来的问题

【谢希尔 计算机网络】第3章 数据链路层_第20张图片

问题:若多个设备在共享的广播信道上同时发送数据,则会造成彼此干扰,导致发送失败。

媒体共享技术

  • 静态划分信道:
    • 频分复用
    • 时分复用
    • 波分复用
    • 码分复用
  • 动态媒体接入控制(多点接入):
    • 随机接入:所有的用户可随机地发送信息。
    • 受控接入:用户必须服从一定的控制。如轮询(polling)。      

1.  以太网的两个标准

  • DIX Ethernet V2:世界上第一个局域网产品(以太网)的规约。
  • IEEE 802.3:第一个 IEEE 的以太网标准。
  • 这两种标准的硬件实现可以在同一个局域网上互操作。
  • 这两个标准标准只有很小的差别,因此很多人也常把 802.3局域网简称为“以太网”。

局域网数据链路层分为 2 个子层

【谢希尔 计算机网络】第3章 数据链路层_第21张图片

  • 逻辑链路控制 LLC (Logical Link Control) 子层:与传输媒体无关。
  • 媒体接入控制 MAC (Medium Access Control) 子层:与传输媒体有关。

2.  适配器的作用

【谢希尔 计算机网络】第3章 数据链路层_第22张图片

  • 重要功能:
    • 进行串行/并行转换。
    • 对数据进行缓存。
    • 在计算机的操作系统安装设备驱动程序。
    • 实现以太网协议。

CSMA/CD 协议

  • 最早的以太网:将许多计算机都连接到一根总线上。
  • 总线特点:易于实现广播通信,简单,可靠。

【谢希尔 计算机网络】第3章 数据链路层_第23张图片

为了实现一对一通信,将接收站的硬件地址写入帧首部中的目的地址字段中。仅当数据帧中的目的地址与适配器硬件地址一致时,才能接收这个数据帧。

【谢希尔 计算机网络】第3章 数据链路层_第24张图片

总线缺点

多个站点同时发送时,会产生发送碰撞或冲突,导致发送失败。

【谢希尔 计算机网络】第3章 数据链路层_第25张图片

以太网采取的 2 种重要措施 

(1) 采用较为灵活的无连接的工作方式。

  • 不必先建立连接就可以直接发送数据。
  • 对发送的数据帧不进行编号,也不要求对方发回确认。

【谢希尔 计算机网络】第3章 数据链路层_第26张图片

(2) 发送的数据都使用曼彻斯特 (Manchester) 编码。

【谢希尔 计算机网络】第3章 数据链路层_第27张图片

  • 曼彻斯特编码缺点:所占的频带宽度比原始的基带信号增加了一倍。

CSMA/CD 协议的要点

  • CSMA/CD (Carrier Sense Multiple Access with Collision Detection) :载波监听多点接入 / 碰撞检测。
  • 多点接入:说明这是总线型网络。许多计算机以多点接入的方式连接在一根总线上。
  • 载波监听:即“边发送边监听”。不管在想要发送数据之前,还是在发送数据之中,每个站都必须不停地检测信道。
  • 碰撞检测:适配器边发送数据,边检测信道上的信号电压的变化情况。电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞(或冲突)。

检测到碰撞后

  • 适配器立即停止发送。
  • 等待一段随机时间后再次发送。

CSMA/CD 协议工作流程

【谢希尔 计算机网络】第3章 数据链路层_第28张图片

为什么要进行碰撞检测? 因为信号传播时延对载波监听产生了影响

【谢希尔 计算机网络】第3章 数据链路层_第29张图片

  • 可见:每一个站在自己发送数据之后的一小段时间内,存在着遭遇碰撞的可能性
  • A 需要单程传播时延的 2 倍的时间,才能检测到与 B 的发送产生了冲突。

争用期

  • 以太网的端到端往返时延 2τ称为争用期,或碰撞窗口。
  • 具体的争用期时间 = 51.2 μs。

经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。

碰撞后重传的时机

  • 采用截断二进制指数退避 (truncated binary exponential backoff) 确定。
  • 发生碰撞的站停止发送数据后,要退避一个随机时间后再发送数据。
    • 1. 基本退避时间 = 2τ
    • 2. 从整数集合 [0, 1, … , (2^{^{k}} - 1)] 中随机地取出一个数,记为 r。 重传所需的时延 =  r ⅹ 基本退避时间。
    • 3. 参数 k = Min[重传次数, 10]
    • 4. 当重传达 16 次仍不能成功时即丢弃该帧,并向高层报告。

举例

【谢希尔 计算机网络】第3章 数据链路层_第30张图片

  • 若连续多次发生冲突,表明可能有较多的站参与争用信道。
  • 上述退避算法可使重传需要推迟的平均时间随重传次数而增大(称为动态退避),因而减小发生碰撞的概率,有利于整个系统的稳定。

10 Mbit/s 以太网争用期的长度

  • 争用期的长度 = 51.2 μs。
  • 对于 10 Mbit/s 以太网,在争用期内可发送 512 bit,即 64 字节。

这意味着:

  • 以太网在发送数据时,若前 64 字节没有发生冲突,则后续的数据就不会发生冲突。
  • 以太网规定了最短有效帧长为 64 字节。凡长度小于 64 字节的帧都是由于冲突而异常中止的无效帧,应当立即将其丢弃。

以太网的最大端到端长度

  • 争用期的长度 = 51.2 μs。
  • 对于 10 Mbit/s 以太网,在争用期内可发送 512 bit,即 64 字节。

以太网最大端到端单程时延必须小于争用期的一半 (即 25.6 μs),相当于以太网的最大端到端长度约为 5 km

强化碰撞:人为干扰信号

【谢希尔 计算机网络】第3章 数据链路层_第31张图片

  • 发送站检测到冲突后,立即停止发送数据帧,接着就发送 32 或 48 比特的人为干扰信号 (jamming signal) 。
  • 以太网还规定了帧间最小间隔为 9.6 μs。

CSMA/CD 协议的要点

【谢希尔 计算机网络】第3章 数据链路层_第32张图片

使用集线器的星型拓扑        

使用集线器的星形拓扑

  • 传统以太网传输媒体:粗同轴电缆 -> 细同轴电缆 -> 双绞线。
  • 采用双绞线的以太网采用星形拓扑。
  • 在星形的中心则增加了一种可靠性非常高的设备,叫做集线器 (hub)

传统以太网使用同轴电缆,采用总线形拓扑结构

【谢希尔 计算机网络】第3章 数据链路层_第33张图片

采用双绞线的以太网采用星形拓扑

【谢希尔 计算机网络】第3章 数据链路层_第34张图片

星形以太网 10BASE-T

【谢希尔 计算机网络】第3章 数据链路层_第35张图片

集线器的一些特点

  • 使用电子器件来模拟实际电缆线的工作,因此整个系统仍然像一个传统的以太网那样运行。
  • 使用集线器的以太网在逻辑上仍是一个总线网,各工作站使用的还是 CSMA/CD 协议,并共享逻辑上的总线。 
  • 很像一个多接口的转发器,工作在物理层
  • 采用了专门芯片,进行自适应串音回波抵消,减少了近端串音。

具有 3 个接口的集线器

【谢希尔 计算机网络】第3章 数据链路层_第36张图片

以太网的信道利用率

以太网的 MAC 层

扩展的以太网

高速以太网

你可能感兴趣的:(计算机网络,计算机网络,网络,服务器)