数据链路层使用的信道主要有以下两种类型
- 点对点信道。这种信道使用一对一的点对点通信方式。
- 广播信道。这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。
链路和数据链路
链路 (link) 是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。一条链路只是一条通路的一个组成部分。
数据链路 (data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
现在最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。一般的适配器都包括了数据链路层和物理层这两层的功能。
封装成帧
封装成帧 (framing) 就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。首部和尾部的一个重要作用就是进行帧定界。
透明传输
如果数据中的某个字节的二进制代码恰好和 SOH 或 EOT 一样,数据链路层就会错误地“找到帧的边界”。
解决方法:
字节填充 (byte stuffing) 或字符填充 (character stuffing)。
发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC” (其十六进制编码是 1B)。
差错检测
在传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1。
在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)。
循环冗余检验CRC
- 在发送端,先把数据划分为组。假定每组 k 个比特。
- 假设待传送的一组数据 M = 101001(现在 k = 6)。我们在 M 的后面再添加供差错检测用的 n 位冗余码一起发送。
冗余码的计算举例
在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。
CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。
“无差错接受”是指:“凡是接收端数据链路层接受的帧都没有传输差错”(有差错的帧就丢弃而不接受)。
在数据链路层使用 CRC 检验,能够实现无比特差错的传输,但这还不是可靠传输。
PPP点对点信道
这种信道使用一对一的点对点通信方式。
PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节。
PPP 是一种验证方式,验证成功后会分配给用户一个IP地址。
- 当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。
- PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)。
- 这些分组及其响应选择一些 PPP 参数,并进行网络层配置,NCP 给新接入的 PC 机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。
- 通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。
- PPP 协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容。
零比特填充
PPP 协议用在 SONET/SDH 链路时,使用同步传输(一连串的比特连续传送)。这时 PPP 协议采用零比特填充方法来实现透明传输。
在发送端,只要发现有 5 个连续 1,则立即填入一个 0。接收端对帧中的比特流进行扫描。每当发现 5 个连续1时,就把这 5 个连续 1 后的一个 0 删除。
广播通道
这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。
局域网
-
星型拓扑结构:每个结点都由一条单独的通信线路与中心结点连结。
优点:结构简单、容易实现、便于管理,连接点的故障容易监测和排除。
缺点:中心结点出现故障会导致网络的瘫痪; -
环形拓扑结构:各结点通过通信线路组成闭合回路,环中数据只能单向传输。
优点:结构简单、容易实现,适合使用光纤,传输距离远,传输延迟确定。
缺点:任意结点出现故障都会造成网络瘫痪,另外故障诊断也较困难; -
总线拓扑结构:是将网络中的所有设备通过相应的硬件接口直接连接到公共总线上,结点之间按广播方式通信,一个结点发出的信息,总线上的其它结点均可“收听”到。
优点:结构简单、布线容易、可靠性较高,易于扩充,是局域网常采用的拓扑结构。
缺点:所有的数据都需经过总线传送,出故障诊断较为困难; -
树型拓扑结构:一种层次结构,结点按层次连结,信息交换主要在上下结点之间进行,相邻结点或同层结点之间一般不进行数据交换。
优点:连结简单,维护方便,适用于汇集信息的应用要求。
缺点:资源共亨能力较低,可靠性不高,任何一个工作站或链路的故障都会影响整个网络的运行。
媒体共享技术
数据链路层的两个子层
CSMA/CD协议
CSMA/CD 含义:载波监听多点接入 / 碰撞检测 (Carrier Sense Multiple Access with Collision Detection) 。
- “多点接入”表示许多计算机以多点接入的方式连接在一根总线上。
- “载波监听”是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。 总线上并没有什么“载波”。因此, “载波监听”就是用电子技术检测总线上有没有其他计算机发送的数据信号。
每一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。
以太网采取了两种重要的措施
(1) 采用较为灵活的无连接的工作方式
- 以太网提供的服务是不可靠的交付,即尽最大努力的交付。
- 当目的站收到有差错的数据帧时就丢弃此帧,其他什么也不做。差错的纠正由高层来决定。
- 如果高层发现丢失了一些数据而进行重传,但以太网并不知道这是一个重传的帧,而是当作一个新的数据帧来发送。
(2) 以太网发送的数据都使用曼彻斯特 (Manchester) 编码
争用期
最先发送数据帧的站,在发送数据帧后至多经过时间 2t(两倍的端到端往返时延)就可知道发送的数据帧是否遭受了碰撞。
以太网的端到端往返时延 2t 称为争用期,或碰撞窗口。
经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
使用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信)。这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率。
最短有效帧长
以太网规定了最短有效帧长为64 字节,凡长度小于 64 字节的帧都是由于冲突而异常中止的无效帧。
强化碰撞
当发送数据的站一旦发现发生了碰撞时:
(1) 立即停止发送数据;
(2) 再继续发送若干比特的人为干扰信号 (jamming signal),以便让所有用户都知道现在已经发生了碰撞。
MAC地址
在局域网中,硬件地址又称为物理地址,或 MAC 地址。
星形以太网 10BASE-T
10BASE-T 的通信距离稍短,每个站到集线器的距离不超过 100 m。
集线器
使用集线器的以太网在逻辑上仍是一个总线网,各工作站使用的还是 CSMA/CD 协议,并共享逻辑上的总线。
以太网的信道通信率
假设 t 是以太网单程端到端传播时延。则争用期长度为 2t,即端到端传播时延的两倍。检测到碰撞后不发送干扰信号。设帧长为 L (bit),数据发送速率为 C (bit/s),则帧的发送时间为 T0 = L/C (s)。
参数 α 与利用率
对以太网参数 α 的要求是:
- 当数据率一定时,以太网的连线的长度受到限制,否则 t 的数值会太大。
- 以太网的帧长不能太短,否则 T0 的值会太小,使 α 值太大。
扩展以太网
- 使用光纤扩展
- 使用集线器扩展
以太网交换机的交换方式
-
存储转发方式
把整个数据帧先缓存后再进行处理。 -
直通 (cut-through) 方式
接收数据帧的同时就立即按数据帧的目的 MAC 地址决定该帧的转发接口,因而提高了帧的转发速度。
缺点是它不检查差错就直接将帧转发出去,因此有可能也将一些无效帧转发给其他的站。
以太网交换机的自学习功能
生成树协议 STP
不改变网络的实际拓扑,但在逻辑上则切断某些链路,使得从一台主机到所有其他主机的路径是无环路的树状结构,从而消除了兜圈子现象。
虚拟局域网
虚拟局域网 VLAN 是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的计算机是属于哪一个 VLAN。
虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网。
在缺省配置的情况下,交换机的所有端口属于同一VLAN。连接在不同交换机上的、属于同一VLAN的数据帧必须通过Trunk链路传输。
高速以太网
速率达到或超过 100 Mbit/s 的以太网称为高速以太网。100BASE-T 以太网又称为快速以太网 (Fast Ethernet)。
- 可在全双工方式下工作而无冲突发生。在全双工方式下工作时,不使用 CSMA/CD 协议。
- MAC 帧格式仍然是 802.3 标准规定的。
- 保持最短帧长不变,但将一个网段的最大电缆长度减小到 100 m。
- 帧间时间间隔从原来的 9.6 μs 改为现在的 0.96 μs。
吉比特以太网
- 允许在 1 Gbit/s 下全双工和半双工两种方式工作。
- 使用 IEEE 802.3 协议规定的帧格式。
- 在半双工方式下使用 CSMA/CD 协议,全双工方式不使用 CSMA/CD 协议。