【计算机网络】数据链路层

本文详细介绍了数据链路层的功能,包括点对点信道的数据链路层协议PPP,以及使用广播信道的局域网数据链路层,重点讲解了CSMA/CD协议、以太网的MAC层和帧格式。内容涵盖了透明传输、差错控制、PPP协议的工作状态、以太网的信道利用率等核心知识点。
摘要由CSDN通过智能技术生成

基于谢希仁老师出版书籍的笔记

数据链路的介绍

数据链路层使用的信道

  • 点对点信道:使用一对一的点对点通信方式
  • 广播信道:使用一对多的广播通信方式,广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送

点对点信道的数据链路层

数据链路和帧:

  • 链路 (link) 是一条无源的点到点的物理线路段,中间没有任何其他的交换结点,一条链路只是一条通路的一个组成部分(有线或无线)。
  • 数据链路 (data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件(通常使用网络适配器来实现硬件和软件上的协议)加到链路上,就构成了数据链路。
  • 帧是数据链路层的协议数据单元
    在这里插入图片描述

三个基本问题

封装成帧

  • 在一段数据(IP数据报)的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。
    首部和尾部的一个重要作用就是进行帧定界(即确定帧的界限)。
  • 最大传送单元MTU:链路层协议规定的所能传送的帧的数据部分长度上限
    在这里插入图片描述
    在这里插入图片描述

透明传输:

  • 如果数据中的某个字节的二进制代码恰好和 SOH 或 EOT 一样,数据链路层就会错误地“找到帧的边界”
    在这里插入图片描述
  • 解决透明传输问题:
    • 字节填充 (byte stuffing) 或字符填充 (character stuffing)。
    • 发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC” (其十六进制编码是 1B)
    • 接收端的数据链路层在将数据送往网络层之前删除插入的转义字符
    • 如果转义字符也出现在数据当中,那么应在转义字符前面插入一个转义字符 ESC。当接收端收到连续的两个转义字符时,就删除其中前面的一个 在这里插入图片描述

差错控制:

  • 在传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1
  • 在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)
  • 误码率与信噪比有很大的关系
  • 为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施
  • 循环冗余检验( CRC )的原理:
    • 在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC 的检错技术
    • 在发送端,先把数据划分为组。假定每组 k 个比特
    • 假设待传送的一组数据 M = 101001(现在 k = 6)。我们在 M 的后面再添加供差错检测用的 n 位冗余码一起发送
  • 冗余码(帧检验序列 FCS )的计算
    在这里插入图片描述
  • 除了数据链路层,每一层都有差错检测,但是差错检测只保证尽力交付,不保证可靠交付
  • FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法

注意

  • 仅用循环冗余检验 CRC 差错检测技术只能做到无差错接受 (accept)。
  • “无差错接受”是指:“凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于 1 的概率认为这些帧在传输过程中没有产生差错”
  • 也就是说:“凡是接收端数据链路层接受的帧都没有传输差错”(有差错的帧就丢弃而不接受)
  • 要做到“可靠传输”(即发送什么就收到什么)就必须再加上确认和重传机制
  • 应当明确,“无比特差错”与“无传输差错”是不同的概念
  • 在数据链路层使用 CRC 检验,能够实现无比特差错的传输,但这还不是可靠传输
  • 本章介绍的数据链路层协议都不是可靠传输的协议

点对点协议PPP

PPP协议就是计算机和ISP进行通信时所使用的数据链路层协议

PPP协议的特点

  • 对于点对点的链路,目前使用得最广泛的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)。
  • 用户使用拨号电话线接入互联网时, 用户计算机和 ISP 进行通信时所使用的数据链路层协议就是 PPP 协议。
    在这里插入图片描述
  • 应满足的需求
    • 三个问题、简单、多种网络层协议、多种类型链路、检测连接状态、最大传送单元、网络层地址协商、数据压缩协商 等
  • 只支持点对点的链路通信,只支持全双工链路
  • PPP协议的组成
    • 一个将 IP 数据报封装到串行链路的方法。
    • 链路控制协议 LCP (Link Control Protocol):用来建立、配置和测试数据链路连接
    • 网络控制协议 NCP (Network Control Protocol):其中的每一个协议支持不同的网络层协议

PPP协议的帧格式

  • PPP 帧的首部和尾部分别为 4 个字段和 2 个字段
  • 标志字段 F = 0x7E (符号“0x”表示后面的字符是用十六进制表示。十六进制的 7E 的二进制表示是 01111110)
  • 地址字段 A 只置为 0xFF。地址字段实际上并不起作用
  • 控制字段 C 通常置为 0x03
    在这里插入图片描述

PPP 有一个 2 个字节的协议字段。其值
若为 0x0021,则信息字段就是 IP 数据报。
若为 0x8021,则信息字段是网络控制数据。
若为 0xC021,则信息字段是 PPP 链路控制数据LCP。
若为 0xC023,则信息字段是鉴别数据。

  • PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节

透明传输:

  • 当 PPP 用在同步传输链路时,协议规定采用硬件来完成比特填充(和 HDLC 的做法一样)
  • 当 PPP 用在异步传输时,就使用一种特殊的字符填充

字符填充

  • 将信息字段中出现的每一个 0x7E 字节转变成为 2 字节序列 (0x7D, 0x5E)
  • 若信息字段中出现一个 0x7D 的字节, 则将其转变成为 2 字节序列 (0x7D, 0x5D)
  • 若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变

零比特填充

  • PPP 协议用在 SONET/SDH 链路时,使用同步传输(一连串的比特连续传送)。这时 PPP 协议采用零比特填充方法来实现透明传输
  • 在发送端,只要发现有 5 个连续 1,则立即填入一个 0
  • 接收端对帧中的比特流进行扫描。每当发现 5 个连续1时,就把这 5 个连续 1 后的一个 0 删除
    在这里插入图片描述

PPP协议的工作状态

  • 当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接
  • PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)
  • 这些分组及其响应选择一些 PPP 参数,并进行网络层配置,NCP 给新接入的 PC 机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机
  • 通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接
  • 可见,PPP 协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容
    在这里插入图片描述

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

局域网的数据链路层

  • 特点:
    • 网络为一个单位所拥有
    • 地理范围和站点数目均有限
  • 优点:
    • 具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源
    • 便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变
    • 提高了系统的可靠性、可用性和残存性
  • 按网络拓扑分类:
    • 星形网
    • 环形网
    • 总线网
      在这里插入图片描述
  • 局域网中需要用到共享信道:
    • 静态划分信道:频分复用、时分复用、波分复用、码分复用。不会产生冲突,但是这种代价较高
    • 动态媒体接入控制(多点接入):随机接入、受控接入(如多点线路探询 (polling),或轮询)
  • 现阶段局域网有两种标准:IEEE802.3和以太网标准

适配器

  • 网络接口板又称为通信适配器 (adapter) 或网络接口卡 NIC (Network Interface Card),或“网卡”

  • 功能:

    • 计算机通过适配器和外界局域网进行连接,网卡也是一种适配器
    • 适配器实现的功能既包括数据链路层也包括物理层
    • 数据链路层的协议基本是由适配器实现的
    • 适配器可以实现差错检验,并进行串/并行转换,通过驱动程序和操作系统交互,发送相应数据
    • MAC地址存在适配器的ROM中,IP地址存在计算机的存储器中
      在这里插入图片描述
  • 以太网中不保证可靠交付,使用无连接和曼彻斯特编码,曼彻斯特编码效率低

  • 一个站不能同时发送接收,只能进行半双工通信,所以CSMA/CD诞生了

CSMA/CD协议

最初的以太网是将许多计算机都连接到一根总线上。当初认为这样的连接方法既简单又可靠,因为总线上没有有源器件

总线的特点

  • 当一台计算机发送数据时,总线上的所有计算机都能检测到这个数据
  • 总线上只要有一台计算机在发送数据,总线的传输资源就被占用

实现总线上的一对一通信

  • 使每一台计算机的适配器拥有一个与其他适配器都不同的地址
  • 在发送数据帧时,在帧的首部写明接收站的地址
  • 仅当数据帧中的目的地址与适配器 ROM 中存放的硬件地址一致时,该适配器才能接收这个数据帧
  • 适配器对不是发送给自己的数据帧就丢弃

为了通信的简便,以太网采取了两个措施

  • 采用较为灵活的无连接的工作方式
    • 不必先建立连接就可以直接发送数据。
    • 对发送的数据帧不进行编号,也不要求对方发回确认。
    • 这样做的理由是局域网信道的质量很好,因信道质量产生差错的概率是很小的。
    • 以太网提供的服务是不可靠的交付,即尽最大努力的交付。
    • 当目的站收到有差错的数据帧时就丢弃此帧,其他什么也不做。差错的纠正由高层来决定。
    • 如果高层发现丢失了一些数据而进行重传,但以太网并不知道这是一个重传的帧,而是当作一个新的数据帧来发送。
  • 以太网发送的数据都使用曼彻斯特 (Manchester) 编码
    • 曼彻斯特编码缺点是:它所占的频带宽度比原始的基带信号增加了一倍。

CSMA/CD

  • 含义:载波监听多点接入/碰撞检测
  • 多点接入:表示许多计算机以多点接入的方式连接在一根总线上
  • 载波监听:指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞,就是用电子技术检测总线上有没有其他计算机发送的数据信号。
  • 碰撞检测:适配器边发送数据边检测信道上的信号电压大小
  • 为什么进行碰撞检测:
    • 由于电磁波在总线上的传播速率是有限的,当某个站监听到总线是空闲时,也可能总线并非真正是空闲的
    • A 向 B 发出的信息,要经过一定的时间后才能传送到 B
    • B 若在 A 发送的信息到达 B 之前发送自己的帧 (因为这时 B 的载波监听检测不到 A 所发送的信息),则必然要在某个时间和 A 发送的帧发生碰撞
    • 碰撞的结果是两个帧都变得无用
    • 所以需要在发送期间进行碰撞检测,以检测冲突
      在这里插入图片描述
  • 重要特性:
    • 在使用 CSMA/CD 协议时,一个站不可能同时进行发送和接收(但必须边发送边监听信道),因此使用此协议的以太网不可能进行全双工通信而只能进行双向交替通信(半双工通信)
    • 每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性
    • 这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率
  • 争用期
    • 最先发送数据帧的站,在发送数据帧后至多经过时间 2r (两倍的端到端往返时延)就可知道发送的数据帧是否遭受了碰撞
    • 以太网的端到端往返时延 2r 称为争用期,或碰撞窗口
    • 经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞
  • 步骤
    • 发送之前,先检测信道,即“载波监听”,如果信道在96bit时间内保持空闲,适配器就开始发送信息
    • 如果发送信息过程中,经过2t之后还没检测到碰撞,那么这次发送就肯定不会发生碰撞。这段时间称为争用期
    • 如果在征用期内检测到碰撞,则停止发送数据,并发送人为干扰信号(32B或48B)来强化碰撞,执行二进制退避算法:基本退避时间是2t,争用期时间是51.2us,重传时间推后r倍的争用期(r参考书),当重传16次还不行的话,放弃并向上层报告
  • 适配器对过去发生的碰撞并无记忆功能
  • 为了防止帧很短小于512bit,使得检测不到该帧的碰撞,所以最小帧应该大于64B,故只要长度小于64B都是无效帧,应该丢弃
  • 电磁波在1km电缆的传播时延约为5us

使用集线器的星形拓扑

集线器

  • 采用双绞线的以太网采用星形拓扑,在星形的中心则增加了一种可靠性非常高的设备,叫做集线器 (hub)
  • 集线器工作在物理层,不进行碰撞检测,它像很多接口的转发器,单纯转发比特,少量容错能力和网络管理能力,不能进行帧缓存
  • 集线器中的各站点(适配器)仍然使用 CSMA/CD 协议
    在这里插入图片描述

以太网的信道利用率

  • 成功发送一个帧需要占用信道的时间是 T0 + r
    在这里插入图片描述
  • 由此可以看出,要提高以太网的信道利用率,就必须减小 r 与 T0 之比,在以太网上定义了参数a,它是以太网单程端到端时延r与帧的发送时间T0之比:a = r / T0
  • 极限信道利用率 S = T0 / (T0 + r) = 1 / (1 + a)

以太网的MAC层

MAC层的硬件地址

在局域网中,硬件地址又称为物理地址,或 MAC 地址,802 标准所说的“地址”严格地讲应当是每一个站的“名字”或标识符。

48位的MAC地址:

  • IEEE 802 标准规定 MAC 地址字段可采用 6 字节 ( 48位) 或 2 字节 ( 16 位) 这两种中的一种。
  • IEEE 的注册管理机构 RA 负责向厂家分配地址字段 6 个字节中的前三个字节 (即高位 24 位),称为组织唯一标识符
  • 地址字段 6 个字节中的后三个字节 (即低位 24 位) 由厂家自行指派,称为扩展唯一标识符,必须保证生产出的适配器没有重复地址

单站地址,组地址,广播地址

  • IEEE 规定地址字段的第一字节的最低位为 I/G 位。I/G 表示 Individual / Group
  • 当 I/G位 = 0 时,地址字段表示一个单站地址
  • 当 I/G位 = 1 时,表示组地址,用来进行多播(以前曾译为组播)。此时,IEEE 只分配地址字段前三个字节中的 23 位
  • 当 I/G 位分别为 0 和 1 时,一个地址块可分别生成 224 个单个站地址和 224 个组地址
  • 所有 48 位都为 1 时,为广播地址。只能作为目的地址使用

全球管理与本地管理

  • IEEE 把地址字段第一字节的最低第 2 位规定为 G/L 位,表示 Global / Local
  • 当 G/L位 = 0 时,是全球管理(保证在全球没有相同的地址)
  • 当 G/L位 = 1 时, 是本地管理,这时用户可任意分配网络上的地址

适配器过滤功能:

  • 适配器从网络上每收到一个 MAC 帧就首先用硬件检查 MAC 帧中的 MAC 地址
    • 如果是发往本站的帧则收下,然后再进行其他的处理
    • 否则就将此帧丢弃,不再进行其他的处理
  • “发往本站的帧”包括以下三种帧:
    • 单播帧(一对一),即收到的帧的MAC地址与本站的硬件地址相同
    • 广播帧(一对全体),即发送给本局域网上所有站点的帧(全1地址)
    • 多播帧(一对多),即发送给本局域网上一部分站点的帧

MAC帧的格式

以太网V2:

  • 首部3个字段,尾部1个字段
  • 目的地址(6B) + 源地址(6B) + 类型(2) + 数据(MTU) + FCS(4)
  • 目的地址之前还有一个前同步码全为010101…直到11,其中,前7个字节是前同步码,后一个字节是帧定界符
  • 因为数据帧最小为64B,MTU一般最大为1500,所以MAC帧长度为64-1500B
    在这里插入图片描述

IEEE802.3

  • 当类型大于0x0600时,表示类型,小于该值时表示长度,需要在数据字段装入LLC帧

扩展的以太网

这种扩展的以太网在网络层看来仍然是一个网络

在物理层扩展以太网

  • 使用光纤和光纤调制解调器
  • 使用多个集线器或者转发器
  • 虽然扩大了以太网的覆盖范围,且使得不同碰撞域的一台网上的计算机可以跨碰撞域通信
  • 但是总的吞吐量并未提高,同时不能连接不同数据率的碰撞域

在数据链路层扩展以太网

  • 这种方法比从物理层扩展更常用,集线器逐渐退出市场
  • 最初通过网桥,对MAC地址进行转发和过滤。之后诞生了一种交换式集线器,也叫交换机
    • 交换机是一个多接口的网桥
    • 交换机比集线器多了个缓存功能,这就使得通信不再冲突,达到全双工
    • 交换机分为存储转发方式和直通转发方式
    • 交换机具有自学习的功能,可以进行帧缓存:
      • 先查找交换表
      • 如果没有则在交换表中新增这个项目(源地址,进入接口,有效时间),并转发
      • 如果有则更新项目并转发
      • 为了防止兜圈子,产生了生成树协议STP:不改变网络的实际拓扑,但在逻辑上则切断某些链路,使得从一台主机到所有其他主机的路径是无环路的树状结构
    • 自学习功能使得交换机即插即用,用硬件转发,比用软件转发的网桥快很多
  • 以太网从总线型过渡到星形

虚拟局域网(VLAN)

  • 每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的计算机是属于哪一个 VLAN
  • 插入的标识符为4字节
  • 目的地址(6B) + 源地址(6B) + 标记(4B) + 类型(2) + 数据(MTU) + FCS(4)
    在这里插入图片描述

高速以太网

快速以太网

  • 可在全双工方式下工作而无冲突发生。在全双工方式下工作时,不使用 CSMA/CD 协议。
  • MAC 帧格式仍然是 802.3 标准规定的
  • 保持最短帧长不变,但将一个网段的最大电缆长度减小到 100 m
  • 帧间时间间隔从原来的 9.6 s 改为现在的 0.96 s

吉比特以太网

  • 允许在 1 Gbit/s 下以全双工和半双工两种方式工作
  • 使用 IEEE 802.3 协议规定的帧格式
  • 在半双工方式下使用 CSMA/CD 协议,全双工方式不使用 CSMA/CD 协议
    • 为了保证半双工的64B最小帧长:增加了载波延伸分组突发功能
    • 载波延伸:
      • 使最短帧长仍为 64 字节(这样可以保持兼容性),同时将争用时间增大为 512 字节,相当于帧长扩大8倍
      • 凡发送的 MAC 帧长不足 512 字节时,就用一些特殊字符填充在帧的后面,使MAC 帧的发送长度增大到 512 字节。接收端在收到以太网的 MAC 帧后,要将所填充的特殊字符删除后才向高层交付
    • 分组突发
      • 当很多短帧要发送时,第一个短帧要采用载波延伸方法进行填充,随后的一些短帧则可一个接一个地发送,只需留有必要的帧间最小间隔即可。这样就形成可一串分组的突发,直到达到 1500 字节或稍多一些为止

10吉比特以太网

  • 10G/s + ,只能全双工

用以太网进行宽带接入

  • (此处意味着身份鉴别),就要把PPP协议装到以太网中
  • 可以提供双向宽带通信,根据用户对带宽的需求灵活地进行带宽升级
  • 可以实现端到端的以太网传输,中间不需要再进行帧格式的转换。这就提高了数据的传输效率且降低了传输的成本

PPPoE:

  • PPPoE (PPP over Ethernet) 的意思是“在以太网上运行 PPP”,它把 PPP 协议与以太网协议结合起来 —— 将 PPP 帧再封装到以太网中来传输。
  • 现在的光纤宽带接入 FTTx 都要使用 PPPoE 的方式进行接入。在 PPPoE 弹出的窗口中键入在网络运营商购买的用户名和密码,就可以进行宽带上网了。

共勉:

攀山的人很少回望,因为来路坎坷,触目及心。

攀山的人也很少抬头,因为辰星高悬,道阻且长。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值