数据链路层使用的信道主要有以下两种类型:
(1)点对点信道。这种信道使用一对一的点对点通信方式。
(2)广播信道。这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。
链路(link)就是从一个节点到相邻节点的一段物理线路(有线或无线),而中间没有任何其它的交换节点。
数据链路(data link)则是把实现控制数据传输的一些必要的通信协议的硬件和软件加到链路上,就构成了数据链路。现在最常用的方法是使用网络适配器(既有硬件,也包括软件)来实现这些协议。一般的适配器都包括了数据链路层和物理层这两层的功能。
早期的数据通信协议曾叫作通信规程(procedure)。因此在数据链路层,规程和协议是同义语。
数据链路层的协议数据单元(PDU)——帧(Frame)。
数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层。在互联网中,网络层协议数据单元就是 IP 数据报(或简称为数据报、分组或包)。
数据链路层协议有许多种,但有三个基本问题则是共同的。这三个基本问题是:封装成帧、透明传输和差错检测。
1. 封装成帧
封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。
首部和尾部的一个重要作用就是进行帧定界(即确定帧的界限)。
每一种链路层协议都规定了所能传送的帧的数据部分长度上限——最大传送单元MTU(Maximum Transfer Unit)。
2. 透明传输
为了解决透明传输问题,就必须设法使数据中可能出现的控制字符“SOH”和“EOT”在接收端不被解释为控制字符。具体的方法是:发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是1B,二进制是00011011)。而在接收端的数据链路层在把数据送往网络层之前删除这个插入的转义字符。这种方法称为字节填充(byte stuffing)或字符填充(character stuffing)。
3. 差错检测
比特在传输过程中可能会产生差错:1可能会变成0,而0也可能会变成1。这就叫作比特差错。
在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate)。
目前在数据链路层广泛使用了循环冗余检验CRC(Cyclic Redundancy Check)的检错技术。
用二进制的模 2 运算进行 乘以 M 的运算,这相当于在 M 后面添加 n 个 0。得到的(k+n)位的数除以收发双方事先商定的长度为(n+1)位的除数 P,得出商是 Q 而余数是 R(n 位,比 P 少一位)。
模 2 除法:
1、上商不看大小,只看位数
2、上商后做模 2 减法(即异或运算)
这种为了进行检错而在需要发送的数据 M 的后面添加的冗余码(余数 R)常称为帧检验序列FCS(Frame Check Sequence)。
一种较为方便的方法是用多项式来表示循环冗余检验过程。在上面的例子中,用多项式 表示上面的除数P=1101(最高位对应于 ,最低位对应于 )。多项式 P(X) 称为生成多项式。
在数据链路层若仅仅使用CRC,则只能做到对帧的无差错接受,接收端丢弃的帧虽然曾收到了,但是因为有差错被丢弃,即没有被接受。可以近似地表述为“凡是接收端数据链路层接受的帧均无差错”。
现在并没有要求数据链路层向网络层提供“可靠传输”的服务。除了比特差错,还有以下:
以上三种情况都属于“出现传输差错”。因此在CRC的基础上增加了帧编号,确认和重传机制。
高级数据链路控制HDLC(High-level Data Link Control)
点对点协议 PPP(Point-toPoint Protocol)
1. PPP 协议应满足的需求
(1)简单
(2)封装成帧
(3)透明性
(4)多种网络层协议
(5)多种类型链路
(6)差错检测(error detection)
(7)检测连接状态
(8)最大传送单元
(9)网络层地址协商
(10)数据压缩协商
2. PPP 协议的组成
PPP 协议有三个组成部分:
(1)一个将IP数据报封装到串行链路的方法。
(2)一个用来建立、配置和测试数据链路连接的链路控制协议LCP(Link Control Protocol)。
(3)一套网络控制协议NCP(Network Control Protocol),其中的每一个协议支持不同的网络层协议。
所有的 PPP 帧的长度都是整数字节
1. 各字段的意义
首部的第一个字段和尾部的第二个字段都是标志字段 F(Flag),规定为 0x7E(符号“0x”表示它后面的字符是用十六进制表示的,十六进制的 7E 的二进制表示是 01111110)。
尾部中的第一个字段(2 字节)是使用 CRC 的帧检验序列 FCS。
2. 字节填充
3. 零比特填充
PPP 协议用在 SONET/SDH 链路时,使用同步传输(一连串的比特连续传送)而不是异步传输(逐个字符地传送)。在这种情况下,PPP 协议采用零比特填充方法来实现透明传输。
1. 以太网的两个主要标准
DLX Ethernet V2,成为世界上第一个局域网产品的规约。
IEEE 802 委员会就把局域网的数据链路层拆成两个子层,即逻辑链路控制LLC(Logical Link Control)子层和媒体接入控制MAC(Medium Access Control)子层。但现在LLC子层已成为历史。
为了通信的简便,以太网采取了以下两种措施:
第一,采用无连接的工作方式,即不必先建立连接就可以直接发送数据。适配器对发送的数据帧不进行编号,也不要求对方发回确认。因此,以太网提供的服务都是尽最大努力的交付,即不可靠交付。对有差错帧是否需要重传由高层决定,以太网把所有帧都当作新帧。
在同一时间只能允许一台计算机发送数据,否则各计算机之间就会相互干扰,使得所发送数据被破坏。
CSMA/CD协议,意思是载波监听多点接入/碰撞检测(Carrier Sense Multiple Access with Collision Detection)。
简单来说就是——先听后发,边听边发,冲突停止,随机重发
下面介绍 “CSMA/CD 协议的要点”:
为了尽可能减小重传时再次发生冲突的概率,退避算法有如下具体的规定:
(1)基本退避时间为争用期 2,具体的争用期时间是 51.2 。
以太网中凡长度小于 64 字节的帧都是由于冲突而异常中止的无效帧。
传统以太网最初使用粗同轴电缆(500m),后来演进到使用细同轴电缆(185m),最后发展为使用双绞线(100m)。
1990 年 IEEE 制定出星形以太网 10BASE-T 的标准 802.3i。“10”代表 10 Mbit/s 的数据率,BASE 表示连接线上的信号是基带信号,T 代表双绞线。
传统以太网:同轴电缆
共享以太网:集线器(HUB) + 双绞线
极限信道利用率 为:
1. MAC 层的硬件地址
·源地址和目的地址都是 48 位长的的全球地址
·固化在适配器的 ROM 中的地址。
2. MAC 帧的格式
使用得最多的以太网 V2 的 MAC 帧格式(如图3-22所示)。
第四个字段是数据字段,其长度在 46 到 1500 字节之间(46 字节是这样得出来的:最小长度 64 字节减去 18 字节的首部和尾部就得出数据字段的最小长度)。
IEEE 802.3 标准规定的 MAC 帧格式与上面所讲的以太网 V2 MAC 帧格式的区别就是以下三点:
第三,在 802.3 标准的文档中,MAC 帧的帧格式包括了 8 字节的前同步码和帧开始定界符。
现在,扩展主机和集线器之间的距离的一种简单方法就是使用光纤(通常是一对光纤)和一对光纤调制解调器。
交换式集线器常称为以太网交换机(switch)或第二层交换机(L2 switch),强调这种交换机工作在数据链路层。
1. 以太网交换机的特点
(1)多接口
(2)全双工
(3)并行性
以太网交换机的端口还有存储器,能在输出端口繁忙时把到来的帧进行缓存。
以太网交换机是一种即插即用设备,其内部的帧交换表(又称为地址表)是通过自学习算法自动地逐渐建立起来的。
2. 以太网交换机的自学习功能
IEEE 的 802.1D 标准制定了一个生成树协议 STP(Spanning Tree Protocol)。其要点就是不改变网络的实际拓扑,但在逻辑上则切断某些链路,使得从一台主机到所有其它主机的路径是无环路的树状结构,从而消除了兜圈子现象。
3. 从总线以太网到星星以太网
在 100 Mbit/s 的以太网中采用的方法是保持最短帧长不变,对于铜缆 100 Mbit/s 以太网,一个网段的最大长度是 100 m,其最短帧长仍为 64 字节,即 512 比特。
名称 | 媒体 | 网段最大长度 | 特点 |
---|---|---|---|
1000BASE-SX | 光缆 | 550 m | 多模光纤(50和62.5 μm) |
1000BASE-LX | 光缆 | 5000 m | 单模光纤(10 μm)多模光纤(50和62.5 μm) |
1000BASE-CX | 铜缆 | 25 m | 使用 2 对屏蔽双绞线电缆 STP |
1000BASE-T | 铜缆 | 100 m | 使用 4 对 UTP 5 类线 |
10GbE 的帧格式与 10 Mbit/s,100 Mbit/s 和 1 Gbit/s 以太网的帧格式完全相同,并保留了 802.3 标准规定的以太网最小帧长和最大帧长。
名称 | 媒体 | 网段最大长度 | 特点 |
---|---|---|---|
10GBASE-SR | 光缆 | 300 m | 多模光纤(0.85 μm) |
10GBASE-LR | 光缆 | 10 km | 单模光纤(1.3 μm) |
10GBASE-ER | 光缆 | 40 km | 单模光纤(1.5 μm) |
10GBASE-CX4 | 铜缆 | 15 m | 使用 4 对双芯同轴电缆(twinax) |
10GBASE-T | 铜缆 | 100 m | 使用 4 对 6A 类 UTP 双绞线 |