数据链路层属于计算机网络的底层,使用的信道主要有两种类型:
- 点对点信道:使用一对一的点对点通信方式
- 广播信道:使用一对多的广播通信方式(因为连接的主机很多,所以必须使用专用的共享信道协议来协调这些主机的数据发送)
数据链路层的简单模型:主机 H1 向 H2 发送数据
本章介绍的数据链路层协议都不是可靠传输的协议。
使用点对点信道的数据链路层
数据链路和帧
链路 (link) :从一个结点到相邻结点的物理线路(有线或无线),中间没有任何其他的交换结点。(链路只是一条路径的组成部分)
数据链路 (data link) :除了物理线路外,还必须有通信协议来控制这些数据的传输。
把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
帧:点对点信道的数据链路层的协议数据单元。
三个基本问题
封装成帧 framing
封装成帧 : 在一段数据的前后分别添加首部和尾部,构成一个帧,确定帧的界限。首部和尾部的一个重要作用就是进行帧定界。
MTU(最大传输单元):每一种链路层协议都规定了所能传送的帧的数据部分长度上限(1500字节)
当数据是由可打印的 ASCII 码组成的文本文件时,帧定界可以使用特殊的帧定界符。控制字符 SOH (Start Of Header) 放在一帧的最前面,表示帧的首部开始。另一个控制字符EOT (End Of Transmission) 表示帧的结束。(SOH、EOT只是控制字符的名称,它们的十六进制编码时01、04)
透明传输
如果数据中的某个字节的二进制代码恰好和 SOH 或EOT 一样,数据链路层就会错误地“找到帧的边界”。
解决方法——字节填充/字符填充:发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC” (其十六进制是1B);接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。
差错检测
比特差错:比特在传输过程中可能会产生差错:1可能变为0,0可能变为1。
误码率 BER (Bit Error Rate):在一段时间内,传输错误的比特占所传输比特总数的比率。(误码率与信噪比有很大关系)
循环冗余检验 CRC
原理:在发送端,先把数据划分为组。假定每组 k 个比特;假设待传送的一组数据 M ,我们在 M 的后面再添加供差错检测用的 n 位冗余码,构成一个帧发送出去,一共(k+n)位;得到的 (k + n) 位的数除以事先选定好的长度为 (n + 1) 位的除数 P,得出商是 Q 而余数是 R,余数 R 比除数 P 少 1 位,即 R 是 n 位;将余数 R 作为冗余码拼接在数据 M 后面发送出去。
例:假设待传送的一组数据 M = 101001,即 k = 6,假定除数P = 1101,即 n = 3。
M : 在M的后面加上n个0,相当于将M*。(以十进制为例,若将一个数后面加上两个0,就相当于将这个数扩大了100倍,即这个数*100,也相当于这个数*)
模2除法:被除数与除数进行异或运算,相同为0,不同为1
可得出 Q = 110100 R = 001
将R作为冗余码拼接在数据M的后面发送出去,因此加上FCS后发送的帧是101001001,即M+R
例:要发送的数据为101110,采用CRC的生成多项式为P(X)=+1,试求应添加在数据后面的余数。
由题意可得M = 101110 P = 1001 n = 3
可得出 Q = 101011 R = 011 (R为n位,若不够,在前面补0)
接收端对收到的每一帧经过CRC检验后:
- 若得出的余数 R = 0,则判定这个帧没有差错,就接受
- 若余数 R != 0,则判定这个帧有差错,就丢弃
用多项式表示循环冗余检验过程
例:P(X) = ++1 表示除数P = 1101(分别对应、、、)
P(X)称为生成多项式
点对点协议 PPP
对于点对点的链路,目前使用得最广泛的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)。用户使用拨号电话线接入互联网时, 用户计算机和 ISP 进行通信时所使用的数据链路层协议就是 PPP 协议,用户到 ISP 的链路使用 PPP 协议 。
使用广播信道的数据链路层
局域网的数据链路层
局域网的特点:网络为一个单位所拥有,地理范围和站点数目有限
局域网的优点:
- 具有广播功能,从一个站点可以很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源
- 便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变
- 提高了系统的可靠性、可用性和生存性
局域网按网络拓扑进行分类:星形网、环形网、总线网
媒体共享技术:
- 静态划分信道(频分复用、时分复用、波分复用、码分复用)
- 动态媒体接入控制(随机接入、受控接入)
以太网的两个标准:
- DIX Ethernet V2(世界上第一个局域网产品的规约)
- IEEE 802.3(第一个 IEEE 的以太网标准)
人们常把802.3局域网简称为“以太网”;严格来说,“以太网”是符合DIX Ethernet V2标准的局域网。
数据链路层的两个子层
逻辑链路控制LLC:看不见下面的局域网(局域网对 LLC 子层来说都是透明的)
媒体接入控制MAC:存放与接入到传输媒体有关的内容
适配器的作用
计算机与外界局域网的连接是通过适配器。网络接口板又称为通信适配器 (adapter) 或网络接口卡 NIC (Network Interface Card),或“网卡”。
适配器的功能:
- 进行数据串行传输和并行传输的转换
- 对数据进行缓存
- 在计算机的操作系统安装设备驱动程序
- 实现以太网协议
CSMA/CD协议
CSMA/CD 含义:载波监听多点接入 / 碰撞检测 (Carrier Sense Multiple Access with Collision Detection) 。
多点接入:表示许多计算机以多点接入的方式连接在一根总线上。
载波监听:每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。
碰撞检测:计算机边发送数据边检测信道上的信号电压大小。
每一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。
信号传播时延对载波监听的影响 :
CSMA/CD重要特性:使用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信);每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。最先发送数据帧的站,在发送数据帧后至多经过时间 2t (两倍的端到端往返时延)就可知道发送的数据帧是否遭受了碰撞;以太网的端到端往返时延 2t 称为争用期,或碰撞窗口;经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
使用集线器的星形拓扑
集线器的特点:
-
集线器是使用电子器件来模拟实际电缆线的工作,因此整个系统仍然像一个传统的以太网那样运行。
-
使用集线器的以太网在逻辑上仍是一个总线网,各工作站使用的还是 CSMA/CD 协议,并共享逻辑上的总线。
-
集线器很像一个多接口的转发器,工作在物理层。
-
集线器采用了专门的芯片,进行自适应串音回波抵消,减少了近端串音。
以太网的MAC层
在局域网中,硬件地址又称为物理地址,或 MAC 地址。48位=6字节
IEEE 的注册管理机构 RA 负责向厂家分配地址字段 6 个字节中的前三个字节 (即高位 24 位),称为组织唯一标识符;后三个字节 (即低位 24 位) 由厂家自行指派,称为扩展唯一标识符,必须保证生产出的适配器没有重复地址。
一个地址块可以生成个不同的地址。这种 48 位地址称为 MAC-48,它的通用名称是 EUI-48。生产适配器时,6 字节的 MAC 地址已被固化在适配器的 ROM,因此,MAC 地址也叫作硬件地址(hardware address)或物理地址。“MAC地址”实际上就是适配器地址或适配器标识符 EUI-48。
IEEE规定地址字段的第一字节的最低位为 I/G 位, 表示Individual / Group。当 I/G位=0 时,地址字段表示一个单站地址;当 I/G位=1 时,表示组地址,用来进行多播。此时,IEEE 只分配地址字段前三个字节中的23位。第一字节的最低第 2 位规定为 G/L 位,表示Global / Local。当 G/L位=0 时,是全球管理(保证在全球没有相同的地址),厂商向IEEE购买的 OUI 都属于全球管理;当 G/L位=1 时, 是本地管理,这时用户可任意分配网络上的地址。
所有 48 位都为 1 时(即全1),为广播地址
适配器的过滤功能:当适配器从网络上每收到一个MAC帧,就先用硬件检查MAC帧中的目的地址。如果是发往本站的帧则收下,然后再进行其他的处理;否则就将此帧丢弃,不再进行其他的处理。
发往本站的帧包括:
- 单播帧:(一对一)即收到的帧的MAC地址与本站的MAC地址相同
- 广播帧:(一对全体)即发送给本局域网上所有站点的帧(全1地址)
- 多播帧:(一对多)即发送给本局域网上一部分站点的帧
所有的适配器都至少能够识别单播帧和广播帧,有的适配器可用编程方法识别多播地址。
只有目的地址才能使用广播地址和多播地址。
常用MAC帧:以太网 V2 的格式(具体可查看PPT的第60页~66页)
扩展的以太网
在物理层扩展以太网
可使用光纤、集线器进行扩展
在数据链路层扩展以太网(常用)
早期使用网桥,现在使用以太网交换机(交换式集线器常称为以太网交换机 (switch) 或第二层交换机 (L2 switch),强调这种交换机工作在数据链路层。)
以太网交换机的特点:
- 实质上的多接口网桥
- 每个接口都直接与一个单台主机或另一个以太网交换机相连,并且一般都工作在全双工方式
- 具有并行性:能同时连通多对接口,使多对主机能同时通信
- 相互通信的主机都是独占传输媒体,无碰撞地传输数据(对于普通 10 Mbit/s 的共享式以太网,若共有 N 个用户,则每个用户占有的平均带宽只有总带宽 (10 Mbit/s)的 N 分之一。使用以太网交换机时,虽然在每个接口到主机的带宽还是 10 Mbit/s,但由于一个用户在通信时是独占而不是和其他网络用户共享传输媒体的带宽,因此对于拥有 N 个接口的交换机的总容量为 N*10 Mbit/s)
- 接口有存储器,能在输出端口繁忙时把到来的帧进行缓存
- 是一种即插即用设备,其内部的帧交换表(又称为地址表)是通过自学习算法自动地逐渐建立起来的
- 使用了专用的交换结构芯片,用硬件转发,其转发速率要比使用软件转发的网桥快很多
交换机划分冲突域,路由器划分广播域和冲突域!!!
设备 | BD(广播域) | CD(冲突域) |
---|---|---|
Hab(集线器) | 1 | 1 |
Switch(交换机) | 1 | n |
Router(路由器) | n | n |
例: 求下图有多少个BD和CD
BD:1个
CD:4个
交换机的转发方式:
- 存储转发方式:把整个数据帧先缓存后再进行处理
- 直通方式:接收数据帧的同时就立即按数据帧的目的 MAC 地址决定该帧的转发接口(提高了帧的转发速度,但它不检查差错就直接将帧转发出去,可能将一些无效帧转发给其他的站。
例:有10个站连接到以太网上。 试计算以下三种情况下每一个站所能得到的带宽。
(1) 10个站都连接到一个10 Mbit/s以太网集线器;
(2) 10个站都连接到一个100 Mbi/s以太网集线器;
(3) 10个站都连接到一个10 Mbit's以太网交换机。解:(1)10个站共享10Mbit/s,一个站分得10Mbit/s / 10 = 1Mbit/s
(2)10个站共享100Mbit/s,一个站分得100Mbit/s / 10 = 10Mbit/s
(3)每一个站独占10Mbit/s
以太网交换机的自学习功能
以太网交换机运行自学习算法自动维护交换表,开始时,以太网交换机里面的交换表是空的。
例:假设以太网交换机有4个端口,各连接一台计算机,其MAC地址分别为A,B,C,D。端口1连接着A,2连接着B,3连接着C,4连接着D。
开始时,交换表为空。
MAC地址 端口 (1)假定A先向B发送一帧,从端口1进入到交换机。交换机收到帧后,先查找交换表。现在表中没有B 的地址。于是,交换机把此帧的源地址A 和端口1写入交换表中,并向除端口1以外的所有端口广播这个帧。广播发送可以保证让 B收到这个帧,而C和D在收到帧后,因目的地址不匹配将丢弃此帧。
MAC地址 端口 A 1 (2)由于在交换表中写入了项目(A, 1),因此以后不管从哪个端口收到帧,只要其目的地址是 A,就把收到的帧从端口1转发出去送交A。这样做的依据是:既然A发送的帧是从端
口1进入交换机的,那么从端口1转发出的帧肯定到达 A。接下来假定B通过端口3向A发送一帧。交换机查找交换表,发现交换表中的 MAC地址有A,表明凡是发给A的帧(即目的地址为A的帧)都应从端口1转发。显然,现在应直接把收到的帧从端口1转发给A,而没有必要再广播收到的帧。交换表这时用源地址 B写入一个项目(B,3),表明今后如有发送给B的帧,应从端口3转发。
MAC地址 端口 A 1 B 3 以此类推......
例:如下图所示,以太网交换机有6个端口,分别接到5台主机和一个路由器。
在下表“动作”一栏中,表示先后发送了4个帧。假定开始时,以太网交换机的交换表为空。
动作 交换表的状态 向哪些端口转发帧 说明 A发送给D 填入(A,1) 2,3,4,5,6 交换表为空,进行广播 D发送给A 填入(D,4) 1 A已确定端口,直接发送 E发送给A 填入(E,5) 1 A已确定端口,直接发送 A发送给E 更新(A,1)的有效时间 5 E已确定端口,直接发送 C发送给B 填入(C,3) 2,6 端口1,3,4,5已确定,因此只需要向未确认端口进行广播
虚拟局域网 VLAN
定义: 由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。每一个VLAN的帧都有一个明确的标识符,指明发送这个帧的计算机属于哪一个VLAN。
虚拟局域网协议允许在以太网的帧格式中插入一个4字节的标识符,称为 VLAN 标记 (tag),用来指明发送该帧的计算机属于哪一个虚拟局域网。插入 VLAN 标记得出的帧称为 802.1Q 帧 或 带标记的以太网帧。
高速以太网
速率达到或超过 100 Mbit/s 的以太网称为高速以太网
100BASE-T以太网
100 :带宽
BASE:基带传输
T :双绞线
吉比特以太网
吉比特以太网的标准IEEE 802.3z的特点:
- 允许在 1 Gbit/s 下全双工和半双工两种方式工作
- 使用 IEEE 802.3 协议规定的帧格式
- 在半双工方式下使用 CSMA/CD 协议,全双工方式不使用 CSMA/CD 协议
- 与 10BASE-T 和 100BASE-T 技术向后兼容
1000BASE-T 使用铜缆,4对UTP5类线,网段最大长度为100m。
参考资料:《计算机网络》 第8版