计算机网络(三)——数据链路层

3.1 使用点对点信道的数据链路层 1、数据链路和帧

  • 链路(物理链路) :是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。
    一条链路只是一条通路的一个组成部分
  • 数据链路(逻辑链路):除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
    • 现在最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。
    • 一般的适配器都包括了数据链路层和物理层这两层的功能。
  • 数据链路层的协议数据单元是帧
  • 数据链路层使用的信道有两种类型:
    • 点对点信道:这种信道使用一对一的点对点通信方式。
    • 广播信道:这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。
2、三个基本问题
封装成帧
  • 封装成帧就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限
  • 当数据是由可打印的 ASCII 码组成的文本文件时,帧定界可以使用特殊的帧定界符。
  • 控制字符 SOH (Start Of Header) 放在一帧的最前面,表示帧的首部开始。另一个控制字符 EOT (End Of Transmission) 表示帧的结束。
透明传输
  • 问题:如果数据中的某个字节的二进制代码恰好和 SOH 或 EOT 一样,数据链路层就会错误地“找到帧的边界”
  • 解决方法:字节填充或字符填充
    • 发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC” (其十六进制编码是 1B)。
    • 接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。
    • 如果转义字符也出现在数据当中,那么应在转义字符前面插入一个转义字符 ESC。当接收端收到连续的两个转义字符时,就删除其中前面的一个。
差错检测
  • 在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (误码率与信噪比有很大的关系)。
  • 在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC 的检错技术。
  • 在数据后面添加上的冗余码称为帧检验序列FCS。CRC是FCS获得方式之一。
  • 无差错接受是指:“凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于 1 的概率认为这些帧在传输过程中没有产生差错”。
    可靠传输(即发送什么就收到什么)就必须再加上确认和重传机制。
    在数据链路层使用 CRC 检验,能够实现无比特差错的传输(不是无传输差错)
3.2 点对点协议PPP 1、PPP协议的特点


  • 用户使用拨号电话线接入互联网时, 用户计算机和 ISP 进行通信时所使用的数据链路层协议就是 PPP 协议 计算机网络(三)——数据链路层
    文章图片
    image.png
  • PPP 协议应满足的需求
    • 简单
    • 封装成帧:必须规定特殊的字符作为帧定界符
    • 透明性
    • 能够在同一条物理链路上同时支持多种网络层协议。
    • 能够在多种类型的链路上运行
    • 差错检测 —— 能够对接收端收到的帧进行检测,并立即丢弃有差错的帧
    • 检测连接状态 —— 能够及时自动检测出链路是否处于正常工作状态
    • 最大传送单元 —— 必须对每一种类型的点对点链路设置最大传送单元 MTU 的标准默认值,促进各种实现之间的互操作性。
    • 网络层地址协商 —— 必须提供一种机制使通信的两个网络层实体能够通过协商知道或能够配置彼此的网络层地址
    • 数据压缩协商 —— 必须提供一种方法来协商使用数据压缩算法
  • PPP 协议的组成
    • 一个将 IP 数据报封装到串行链路的方法。
    • 链路控制协议 LCP:用来建立、配置和测试数据链路连接
    • 网络控制协议 NCP:其中的每个协议支持不同的网络层
2、PPP协议的帧格式
计算机网络(三)——数据链路层
文章图片
image.png
  • 地址字段A实际上并不起作用
  • 标志字段 F = 0x7E ,控制字段 C 通常置为 0x03
  • PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节。
  • 当 PPP 用在异步传输时,就使用一种特殊的字符填充法。
    • 将信息字段中出现的每一个 0x7E 字节转变成为 2 字节序列 (0x7D, 0x5E)。
    • 若信息字段中出现一个 0x7D 的字节, 则将其转变成为 2 字节序列 (0x7D, 0x5D)。
    • 若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变。
  • 当 PPP 用在同步传输链路时,协议规定采用硬件来完成零比特填充。
    • 在发送端,只要发现有 5 个连续 1,则立即填入一个 0
    • 接收端对帧中的比特流进行扫描。每当发现 5 个连续1时,就把这 5 个连续 1 后的一个 0 删除
3、PPP协议的工作状态
  • 当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接
  • PC 机向路由器发送一系列的链路控制协议LCP 分组(封装成多个 PPP 帧),以便建立LCP连接。
  • 这些分组及其响应选择一些 PPP 参数,并进行网络层配置,网络控制协议NCP 给新接入的 PC 机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。
  • 通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。
可见,PPP 协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容
计算机网络(三)——数据链路层
文章图片
image.png 3.3 使用广播信道的数据链路层 1、局域网的数据链路层
  • 局域网最主要的特点是:
    • 网络为一个单位所拥有
    • 地理范围和站点数目均有限
  • 局域网具有如下主要优点:
    • 具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源
    • 于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。
    • 提高了系统的可靠性、可用性和残存性
  • 局域网拓扑结构:星形网、环形网、总线网
  • 信道划分:
    • 静态划分信道:频分、时分、波分、码分复用等。
    • 动态媒体接入控制:随机接入、受控接入
  • 以太网的两个标准
    • DIX Ethernet V2 是世界上第一个局域网产品(以太网)的规约。
    • IEEE 802.3 是第一个 IEEE 的以太网标准。
两者差别很小,严格来讲,“以太网”应当是指符合 DIX Ethernet V2 标准的局域网
  • 为了使数据链路层能更好地适应多种局域网标准,IEEE 802 委员会就将局域网的数据链路层拆成两个子层:
    • 逻辑链路控制 LLC 子层:LLC子层看不见下面的局域网
    • 媒体接入控制 MAC子层
  • 由于 TCP/IP 体系经常使用的局域网是 DIX Ethernet V2 ,很多厂商生产的适配器上就仅装有 MAC 协议而没有 LLC 协议。
  • 适配器的作用:网络接口板又称为通信适配器或网络接口卡NIC,或“网卡”
    • 进行串行/并行转换
    • 对数据进行缓存
    • 在计算机的操作系统安装设备驱动程序
    • 实现以太网协议
  • 计算机通过适配器和局域网进行通信

    计算机网络(三)——数据链路层
    文章图片
    image.png
2、CSMA/CD协议
  • 为了通信的简便,以太网采取了两种重要的措施
    • 采用较为灵活的无连接的工作方式:
      • 不必先建立连接就可以直接发送数据。
      • 对发送的数据帧不进行编号,也不要求对方发回确认。
      • 这样做的理由是局域网信道的质量很好,因信道质量产生差错的概率是很小的。
    • 以太网发送的数据都使用曼彻斯特编码
载波监听多点接入 / 碰撞检测
  • 多点接入:表示许多计算机以多点接入的方式连接在一根总线上。
  • 载波监听:是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。
    总线上并没有什么“载波”。因此, “载波监听”就是用电子技术检测总线上有没有其他计算机发送的数据信号
  • 碰撞检测:计算机边发送数据边检测信道上的信号电压大小。
    当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞。
  • 检测到碰撞后:每一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。
  • 为什么要进行碰撞检测:由于电磁波在总线上的传播速率是有限的。A 向 B 发出的信息,要经过一定的时间后才能传送到 B。
计算机网络(三)——数据链路层
文章图片
image.png
  • CSMA/CD 重要特性:
    • 只能进行双向交替通信(半双工通信)
    • 每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。 这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率
  • 以太网的端到端往返时延2t称为争用期,或碰撞窗口。10 Mbit/s 以太网取 51.2 微秒为争用期的长度。在争用期内可发送 512 bit,即 64 字节,以太网规定了最短有效帧长为 64 字节。
  • 二进制指数类型退避算法
    • 基本退避时间取为争用期 2t。
    • 从整数集合 [0, 1, … , (2^k-1)] 中随机地取出一个数,记为 r。重传所需的时延就是 r 倍的基本退避时间。
    • 参数 k 按下面的公式计算:k = Min[重传次数, 10]
    • 当重传达 16 次仍不能成功时即丢弃该帧,并向高层报告。
  • 强化碰撞:当发送数据的站一旦发现发生了碰撞时:
    • 立即停止发送数据
    • 再继续发送若干比特的人为干扰信号,以便让所有用户都知道现在已经发生了碰撞。


    • 总线被占用时间 计算机网络(三)——数据链路层
      文章图片
      image.png 计算机网络(三)——数据链路层
      文章图片
      image.png
  • CSMA/CD协议的要点归纳:
    • 准备发送:发送之前必须先检测信道。
    • 检测信道:若检测到信道忙,则应不停地检测,一直等待信道转为空闲。若检测到信道空闲,并在 96 比特时间内信道保持空闲(保证了帧间最小间隔。这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备。),就发送这个帧。
      • 1)检查碰撞:在发送过程中仍不停地检测信道,即网络适配器要边发送边监听。
      • 2)发送成功:在争用期内一直未检测到碰撞。这个帧肯定能够发送成功。
      • 3)发送失败:在争用期内检测到碰撞。这时立即停止发送数据,并按规定发送人为干扰信号。适配器接着就执行指数退避算法,等待 r 倍 512 比特时间后,返回到步骤 2),继续检测信道。
3、使用集线器的星形拓扑
  • 以太网:粗同轴电缆->细同轴电缆->双绞线


  • 星形以太网 10BASE-T 计算机网络(三)——数据链路层
    文章图片
    image.png
  • 集线器的一些特点 :
    • 使用集线器的以太网在逻辑上仍是一个总线网,各工作站使用的还是 CSMA/CD 协议,并共享逻辑上的总线。
    • 集线器很像一个多接口的转发器
    • 集线器工作在物理层,它的每个接口仅仅简单地转发比特,不进行碰撞检测。
    • 集线器采用了专门的芯片,进行自适应串音回波抵消,减少了近端串音。
4、以太网的MAC层
  • 在局域网中,硬件地址又称为物理地址,或 MAC 地址。 实际上就是适配器地址或适配器标识符 EUI-48。


  • IEEE 802 标准规定 MAC 地址字段可采用 6 字节 ( 48位) 或 2 字节 ( 16 位) 这两种中的一种。IEEE 的注册管理机构 RA 负责向厂家分配地址字段 6 个字节中的前三个字节 (即高位 24 位),称为组织唯一标识符。 计算机网络(三)——数据链路层
    文章图片
    image.png
  • IEEE 规定地址字段的第一字节的最低位为 I/G 位。I/G 表示 Individual / Group。
    • 当 I/G位 = 0 时,地址字段表示一个单站地址。
    • 当 I/G位 = 1 时,表示组地址,用来进行多播(以前曾译为组播)。此时,IEEE 只分配地址字段前三个字节中的 23 位。
    • 所有 48 位都为 1 时,为广播地址。只能作为目的地址使用。
  • IEEE 把地址字段第一字节的最低第 2 位规定为 G/L 位,表示 Global / Local。
    • 当 G/L位 = 0 时,是全球管理(保证在全球没有相同的地址),厂商向IEEE购买的 OUI 都属于全球管理。
    • 当 G/L位 = 1 时, 是本地管理,这时用户可任意分配网络上的地址。
  • 以太网的适配器有过滤功能,它只接受单播帧,或广播帧,或多播帧。
  • 以混杂方式工作的以太网适配器只要“听到”有帧在以太网上传输就都接收下来。(黑客窃听,Sniffer)


  • MAC帧的格式(DIX Ethernet V2 标准) 计算机网络(三)——数据链路层
    文章图片
    image.png
    • 类型字段用来标志上一层使用的是什么协议,以便把收到的 MAC 帧的数据上交给上一层的这个协议。
    • 最小长度 64 字节 -18 字节的首部和尾部 = 数据字段的最小长度(46字节)
    • 在帧的前面插入(硬件生成)的 8 字节中,第一个字段共 7 个字节,是前同步码,用来迅速实现 MAC 帧的比特同步。第二个字段 1 个字节是帧开始定界符,表示后面的信息就是 MAC 帧。
  • IEEE 802.3 MAC 帧格式
    • MAC 帧的第三个字段是“长度 / 类型”。当这个字段值大于 0x0600 时,就表示“类型”;小于 0x0600 时才表示“长度”。
    • 当“长度/类型”字段值小于 0x0600 时,数据字段必须装入上面的逻辑链路控制 LLC 子层的 LLC 帧。
3.4 扩展的以太网 1、在物理层扩展以太网
  • 主机使用光纤(通常是一对光纤)和一对光纤调制解调器连接到几公里以外的集线器。
  • 使用集线器级联,扩展以太网容量
    • 优点
      • 使原来属于不同碰撞域的以太网上的计算机能够进行跨碰撞域的通信。
      • 扩大了以太网覆盖的地理范围。
    • 缺点
      • 碰撞域增大了,但总的吞吐量并未提高。
      • 如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来。
2、在数据链路层扩展以太网
  • 网桥:当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的 MAC 地址,然后再确定将该帧转发到哪一个接口,或把它丢弃。
  • 以太网交换机的特点
    • 以太网交换机实质上就是一个多接口的网桥
    • 每个接口都直接与一个单台主机或另一个以太网交换机相连,并且一般都工作在全双工方式。
    • 以太网交换机具有并行性。能同时连通多对接口,使多对主机能同时通信。
    • 相互通信的主机都是独占传输媒体,无碰撞地传输数据。
    • 以太网交换机的接口有存储器,能在输出端口繁忙时把到来的帧进行缓存。
    • 以太网交换机是一种即插即用设备,其内部的帧交换表(又称为地址表)是通过自学习算法自动地逐渐建立起来的。
    • 以太网交换机使用了专用的交换结构芯片,用硬件转发,其转发速率要比使用软件转发的网桥快很多。
    • 用户独享带宽,增加了总容量。
    • 从共享总线以太网转到交换式以太网时,所有接入设备的软件和硬件、适配器等都不需要做任何改动。
    • 以太网交换机一般都具有多种速率的接口,方便了各种不同情况的用户。
    • 以太网交换机的方式:存储转发方式;直通方式
  • 以太网交换机的自学习功能

    计算机网络(三)——数据链路层
    文章图片
    image.png
    • 开始时,以太网交换机里面的交换表是空的。
    • A 先向 B 发送一帧,从接口 1 进入到交换机。
    • 交换机收到帧后,先查找交换表,没有查到应从哪个接口转发这个帧。
    • 交换机把这个帧的源地址 A 和接口 1 写入交换表中,并向除接口1以外的所有的接口广播这个帧。
    • C 和 D 将丢弃这个帧,因为目的地址不对。只 B 才收下这个目的地址正确的帧。这也称为过滤。
      计算机网络(三)——数据链路层
      文章图片
      image.png
  • 从总线以太网到星形以太网
    • 总线以太网使用 CSMA/CD 协议,以半双工方式工作。
    • 以太网交换机不使用共享总线,没有碰撞问题,因此不使用 CSMA/CD 协议,而是以全双工方式工作。但仍然采用以太网的帧结构。
3、虚拟局域网
  • 利用以太网交换机可以很方便地实现虚拟局域网 VLAN (Virtual LAN)。
  • 虚拟局域网 VLAN 是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的计算机是属于哪一个 VLAN。
  • 虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网。
  • 由于虚拟局域网是用户和网络资源的逻辑组合,因此可按照需要将有关设备和资源非常方便地重新组合,使用户从不同的服务器或数据库中存取所需的资源。

    计算机网络(三)——数据链路层
    文章图片
    image.png
3.5 高速以太网 【计算机网络(三)——数据链路层】速率达到或超过 100 Mbit/s 的以太网称为高速以太网。
1、100BASE-T以太网
  • 100BASE-T 在双绞线上传送 100 Mbit/s 基带信号的星形拓扑以太网,仍使用 IEEE 802.3 的CSMA/CD 协议。
  • 又称为“快速以太网”
  • 可在全双工方式下工作而无冲突发生。在全双工方式下工作时,不使用 CSMA/CD 协议。
  • MAC 帧格式仍然是 802.3 标准规定的。
  • 帧间时间间隔从原来的 9.6 微秒改为现在的 0.96微秒。
  • 100BASE-TX:使用 2 对 UTP 5 类线 或 屏蔽双绞线 STP。
    100BASE-T4:使用 4 对 UTP 3 类线 或 5 类线。
    100BASE-FX:使用 2 对光纤。
2、吉比特以太网
  • 允许在 1 Gbit/s 下以全双工和半双工两种方式工作。
  • 向后兼容
3、10吉比特以太网(10GE)和更快的以太网
  • 10GE 只工作在全双工的传输方式
4、使用以太网进行宽带接入
  • 以太网宽带接入具有以下特点:
    • 可以提供双向的宽带通信。
    • 可以根据用户对带宽的需求灵活地进行带宽升级。
    • 可以实现端到端的以太网传输,中间不需要再进行帧格式的转换。这就提高了数据的传输效率且降低了传输的成本。
    • 但是不支持用户身份鉴别。
  • PPPoE (PPP over Ethernet) 的意思是“在以太网上运行 PPP”,它把 PPP 协议与以太网协议结合起来 —— 将 PPP 帧再封装到以太网中来传输。
    • 现在的光纤宽带接入 FTTx 都要使用 PPPoE 的方式进行接入。在 PPPoE 弹出的窗口中键入在网络运营商购买的用户名和密码,就可以进行宽带上网了。
    • 利用 ADSL 进行宽带上网时,从用户个人电脑到家中的 ADSL 调制解调器之间,也是使用 RJ-45 和 5 类线(即以太网使用的网线)进行连接的,并且也是使用 PPPoE 弹出的窗口进行拨号连接的。

    推荐阅读