计算机网络3-数据链路层
信道分类
1. 广播信道
一对多通信,一个节点发送的数据能够被广播信道上所有的节点接收到。
所有的节点都在同一个广播信道上发送数据,因此需要有专门的控制方法进行协调,避免发生冲突。
主要有两种控制方式进行协调,一个是使用信道复用技术,一是使用CSMA/CD协议。
2. 点对点通信
一对一通信
因为不会发生碰撞,因此也比较简单,使用PPP协议进行控制。
使用点对点信道的数据链路层
数据链路和帧
数据链路:把实现控制数据传输的协议的硬件和软件加到链路(物理链路)上,就构成了数据链路(逻辑链路),典型实现:适配器(即网卡)
数据链路层协议数据单元:帧
三个基本问题
封装成帧
将一段数据的前后分别添加首部和尾部,用于标记帧的开始和结束。

最大传输单元MTU:规定了所能传送的帧的数据部分长度上限。
用控制字符作为帧定界符:SOH(Start Of Header)放在一帧的最前面,表示帧的首部开始,EOT(End Of Transmission)放在一帧的末尾,表示帧的结束。
透明传输
透明表示一个实际存在的事物看起来好像不存在一样。
问题:帧使用首部和尾部进行定界,如果帧的数据部分含有和首部尾部相同的内容,那么帧的开始和结束位置就会被错误的判定。
需要在数据部分出现首部尾部相同的内容前面插入转义字符。如果数据部分出现转义字符,那么就在转义字符前面再加个转义字符。在接收端进行处理之后可以还原出原始数据。这个过程透明传输的内容是转义字符,用户察觉不到转义字符的存在。
差错控制
目前数据链路层广泛使用了循环冗余检验(CRC)来检查比特差错。
原理:

在发送端,先把数据划分为组。假定每组 k 个比特。
CRC 运算在每组 M 后面再添加供差错检测用的 n 位冗余码,然后构成一个帧发送出去。一共发送 (k + n) 位。
计算:

广泛使用的生成多项式P(X)
CRC-16 = X16 +X15 + X2 + 1
CRC-CCITT = X16 +X12 + X5 + 1
CRC-32 = X32 +X26 + X23 + X22 + X16 +X12 + X11 +X10 + X8 +X7+ X5 +X4 + X2 + X + 1
CRC能检测到所有的单比特差错。
这种为了进行检错而在数据后面添加的冗余码常称为帧检验序列 FCS (Frame Check Sequence)。
Tips
循环冗余检验 CRC 和帧检验序列 FCS 并不等同。CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法。
仅用循环冗余检验 CRC 差错检测技术只能做到无比特差错,无比特差错和无传输差错是不同的。
传输差错可分为两大类:1. 比特差错。2.传输差错:帧丢失、帧重复或帧失序等。
在数据链路层使用 CRC 检验,能够实现无比特差错的传输,但这还不是可靠传输。
点对点协议
PPP协议的特点
对于点对点的链路,目前使用最广泛的数据链路层协议是点对点协议PPP
PPP协议在1994年就已经成为互联网的正式标准
用户到ISP的链路使用PPP协议

PPP协议的组成:
一个将 IP 数据报封装到串行链路的方法。
一个链路控制协议 LCP (Link Control Protocol)。
一套网络控制协议 NCP (Network Control Protocol)。
PPP协议的帧格式
F字段为帧的定界符
A和C字段暂时没有意义
FCS字段是使用CRC的检验序列
信息部分的长度不超过1500
透明传输问题:
当PPP用在异步传输时,使用字节填充法。
当PPP用在同步传输链路时,采用零比特填充法。
PPP协议的工作状态
PPP 链路初始化过程:
用户拨号接入 ISP 后,就建立了一条从用户个人电脑到 ISP 的物理连接。
用户个人电脑向 ISP 发送一系列的链路控制协议 LCP 分组(封装成多个 PPP 帧),以便建立LCP连接。
之后进行网络层配置。网络控制协议 NCP 给新接入的用户个人电脑分配一个临时的 IP 地址。
当用户通信完毕时,NCP 释放网络层连接,收回原来分配出去的IP地址。LCP 释放数据链路层连接。最后释放的是物理层的连接。

使用广播信道的数据链路层
局域网的数据链路层
局域网最主要的特点
网络为一个单位所拥有
地理范围和站点数目均有限
局域网具有如下主要优点
具有广播功能,从一个站点可很方便地访问全网
便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变
提高系统的可靠性、可用性和生存性
媒体共享技术
静态划分信道
频分复用
时分复用
波分复用
码分复用
动态媒体接入控制(多点接入)
随机接入:所有的用户可随机地发送信息
受控接入:用户必须服从一定的控制。如轮询。
以太网的两个标准
DIX Ethernet V2:世界上第一个局域网产品(以太网)的规约。
IEEE 802.3:第一个 IEEE 的以太网标准。
局域网数据链路层分为2个子层

逻辑链路控制LLC子层:与传输媒体无关
媒体控制MAC子层:与传输媒体有关
适配器的作用
计算机通过适配器和局域网进行通信

进行串行/并行转换
对数据进行缓存
在计算机的操作系统安装设备驱动程序
实现以太网协议
CSMA/CD协议
最早的以太网:将许多计算机都连接到一根总线上。
总线特点:易于实现广播通信,简单,可靠。
为了实现一对一通信,将接收站的硬件地址写入帧首部中的目的地址字段中。仅当数据帧中的目的地址与适配器硬件地址一致时,才能接收这个数据帧。
总线缺点:多个站点同时发送时,会产生发送碰撞或冲突,导致发送失败。
以太网采取的2种重要措施
采用较为灵活的无连接的工作方式
发送的数据都使用曼切斯特编码
缺点:所占的频带宽度比原始的基带信号增加了一倍
要点
CSMA/CD (Carrier Sense Multiple Access with Collision Detection) :载波监听多点接入 / 碰撞检测。
多点接入:说明这是总线型网络。许多计算机以多点接入的方式连接在一根总线上。
载波监听:即“边发送边监听”。不管在想要发送数据之前,还是在发送数据之中,每个站都必须不停地检测信道。
碰撞检测:适配器边发送数据,边检测信道上的信号电压的变化情况。电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞(或冲突)。
检测到碰撞后
适配器立即停止发送
等待一段随机时间后再发送

A需要单程传播时延的2倍的时间,才能检测到与B的发送产生了冲突
争用期
以太网的端到端往返时延
称为争用期,或碰撞窗口。具体的争用期时间=
。
经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会产生碰撞。
碰撞后重传的时机
采用截断二进制指数退避确定
发生碰撞的站停止发送数据后,要退避一个随机时间后再发送数据。

总结:帧的发送时间>=信号在总线最远两端间往返的传播时间,否则,在信号传播到最远端之前,帧已发完,那么远端发送数据引起的冲突信号传回来时,发送方已经停止发送,无法检测到冲突。

强化碰撞:人为干扰信号

发送站检测到冲突后,立即停止发送数据帧,接着就发送 32 或 48 比特的人为干扰信号 (jamming signal) 。
以太网还规定了帧间最小间隔为 9.6 μs。
工作流程

使用集线器的星型拓扑
传统以太网传输媒体:粗同轴电缆->细同轴电缆->双绞线
采用双绞线的以太网采用星形拓扑。
在星形的中心则增加了一种可靠性非常高的设备,叫做集线器 (hub)。

星形以太网10BASE-T:
速率为10Mbit/s
BASE:基带
T:双绞线
集线器的一些特点
使用电子器件来模拟实际电缆线的工作,因此整个系统仍然像一个传统的以太网那样运行。
使用集线器的以太网在逻辑上仍是一个总线网,各工作站使用的还是 CSMA/CD 协议,并共享逻辑上的总线。
很像一个多接口的转发器,工作在物理层。
采用了专门芯片,进行自适应串音回波抵消,减少了近端串音。
以太网的信道利用率

参数a与信道利用率
在以太网中定义了参数 a = 以太网单程端到端时延
与帧的发送时间 T0 之比:

a越趋近于0,说明一发生碰撞就立即可以检测出来,并立即停止发送,因而信道利用率很高
a越大,表明争用期所占的比例增大,每发生一次碰撞就浪费很多信道资源,使得信道利用率明显降低。
信道利用率的最大值Smax

只有当参数a远小于1才能得到尽可能高的极限信道利用率
以太网的MAC层
MAC层的硬件地址
硬件地址又称为物理地址,或MAC地址,长度为6字节(48位),用于唯一标识网络适配器(网卡)
一台主机拥有多少个网络适配器就有多少个MAC地址。例如笔记本电脑普遍存在无线网络适配器和有线网络适配器,因此就有两个MAC地址。

IEEE注册管理机构RA负责向厂家分配前3个字节,称为组织唯一标识符OUI
厂家自行指派后3个字节,称为扩展符。
必须保证生产出的适配器没有重复地址
地址被固化在适配器的ROM中
单站地址、组地址、广播地址
IEEE 规定地址字段的第 1 字节的最低位为 I/G (Individual / Group) 位。
单站地址:I/G 位 = 0。
组地址:I/G 位 = 1。组地址用来进行多播。
广播地址:所有 48 位都为 1(全 1)。只能作为目的地址使用。
全球管理与本地管理
IEEE 把地址字段第 1 字节的最低第 2 位规定为 G/L (Global / Local) 位。
全球管理:G/L 位 = 0。厂商向 IEEE 购买的 OUI 都属于全球管理。
本地管理:G/L 位 = 1。 这时用户可任意分配网络上的地址。
适配器具有过滤功能
每收到一个 MAC 帧,先用硬件检查帧中的 MAC 地址。
如果是发往本站的帧则收下,然后再进行其他的处理。
否则就将此帧丢弃,不再进行其他的处理。
以混杂方式 (promiscuous mode) 工作的以太网适配器只要“听到”有帧在以太网上传输就都接收下来。
MAC帧的格式
常用的以太网 MAC 帧格式有 2 种标准:
DIX Ethernet V2 标准
IEEE 的 802.3 标准
最常用的 MAC 帧是以太网 V2 的格式。

类型字段用来标志上一层使用的是什么协议,以便把收到的 MAC 帧的数据上交给上一层的这个协议。
由硬件在帧的前面插入 8 字节。第一个字段共 7 个字节,是前同步码,用来迅速实现 MAC 帧的比特同步。第二个字段 1 个字节是帧开始定界符,表示后面的信息就是 MAC 帧。 (为了达到比特同步,在传输媒体上实际传送的要比 MAC 帧还多 8 个字节)
IEEE802.3MAC与以太网V2 MAC帧的区别
对比点 | 以太网 V2(Ethernet II) | IEEE 802.3(带 LLC) |
第 13–14 字节含义 | 类型(标识上层协议) | 长度(若 ≤1500) |
上层协议识别方式 | 直接用 Type 字段 | 用 LLC 的 DSAP/SSAP 或 SNAP |
数据字段开始前 | 无 LLC 头 | 有 3 字节 LLC 头(+可选 SNAP) |
最小数据长度 | 46 字节 | LLC 后数据最小 43 字节(总 MAC 数据仍为 46) |
常见环境 | 当今绝大多数 TCP/IP 以太网 | 早期 IEEE 标准网络,某些工业协议,令牌环、FDDI 互操作 |
扩展的以太网
在物理层扩展以太网
使用光纤扩展:主机使用光纤和一对光纤调制解调器连接到集线器
使用集线器扩展:用多个集线器连成更大的以太网
用集线器扩展以太网
优点:
使原来属于不同碰撞域(冲突域)的计算机能够跨碰撞域通信。
扩大了以太网覆盖的地理范围。
缺点:
碰撞域增大了,总的吞吐量未提高。
如果使用不同的以太网技术(如数据率不同),那么就不能用集线器将它们互连起来。
碰撞域
碰撞域(collision domain)又称为冲突域,指网络中一个站点发出的帧会与其他站点发出的帧产生碰撞或冲突的那部分网络。
碰撞域越大,发生碰撞的概率越高。

在数据链路层扩展以太网
更为常用。早期使用网桥,现在使用以太网交换机。
交换机
特点:实质上是一个多接口网桥,每个接口都直接与一个单台主机或另一个以太网交换机相连,并且一般都工作在全双工方式,具有并行性
每个接口就是一个碰撞域
接口有存储器
交换机具有自学习能力,学习的是交换表的内容,交换表中存储着 MAC 地址到接口的映射。正是由于这种自学习能力,因此交换机是一种即插即用设备,不需要网络管理员手动配置交换表内容。
使用专用的交换结构芯片,效率高
每个用户独享带宽,增加了总容量
交换方式:
存储转发方式
直通方式
交换机自学习和转发帧的步骤归纳

回路问题:生成树协议STP: 不改变网络的实际拓扑,但在逻辑上则切断某些链路,使得从一台主机到所有其他主机的路径是无环路的树状结构,从而消除了兜圈子现象。

从总线以太网到星形以太网

虚拟局域网
以太网存在的主要问题:
广播风暴:交换机之间的冗余链路形成广播风暴
安全问题:无法隔离不同部门的通信
管理困难
虚拟局域网VLAN
虚拟局域网 VLAN 是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的计算机是属于哪一个 VLAN。
虚拟局域网其实只是局域网给用户提供的一种服务,并不是一种新型局域网。

虚拟局域网(VLAN)技术具有以下主要优点
改善性能
简化管理
降低成本
改善安全性
划分虚拟局域网的方法
基于交换机端口
基于计算机网卡的MAC地址
基于协议类型
基于IP子网地址
基于高层应用或服务
虚拟局域网使用的以太网帧格式

标准以太网帧插入4字节的VLAN标记后变成了802.1Q帧
Tips
给交换机配置了VLAN后,交换机之间的汇聚链路中传输的是802.1Q帧。
主机通常无法识别 802.1Q 帧(带 VLAN 标签的帧),因此主机到交换机的接入链路中传输的是无标签的标准以太网帧(Untagged 帧)
高速以太网
100BASE-T以太网
又称为快速以太网 (Fast Ethernet)。
在双绞线上传送 100 Mbit/s 基带信号的星形拓扑以太 网。
仍使用 IEEE 802.3 的 CSMA/CD 协议。
1995 定为正式标准:IEEE 802.3u。
可在全双工方式下工作而无冲突发生。
在全双工方式下工作时,不使用 CSMA/CD 协议。
使用 IEEE 802.3 协议规定的 MAC 帧格式。
吉比特以太网
允许在 1 Gbit/s 下以全双工和半双工 2 种方式工作。
使用 IEEE 802.3 协议规定的 MAC 帧格式。
在半双工方式下使用 CSMA/CD 协议,而在全双工方式不使用 CSMA/CD 协议。
与 10BASE-T 和 100BASE-T 技术向后兼容。
半双工方式工作的吉比特以太网
为保持 64 字节最小帧长度,以及 100 米的网段的最大长度,增加了 2 个功能:
载波延伸 (carrier extension):将争用时间增大为 512 字节。凡发送的 MAC 帧长不足 512 字节时,就用一些特殊字符填充在帧的后面。
分组突发 (packet bursting):当很多短帧要发送时,第 1 个短帧采用载波延伸方法进行填充,随后的一些短帧则可一个接一个地发送,只需留有必要的帧间最小间隔即可。这样就形成可一串分组的突发,直到达到 1500 字节或稍多一些为止。
注意:全双工方式工作的吉比特以太网不使用载波延伸和分组突发。
10吉比特以太网(10GE)和更快的以太网
万兆比特。
与 10、100 Mbit/s 和 1 Gbit/s 以太网的帧格式完全相同。保留了 IEEE 802.3 标准规定的以太网最小和最大帧长。
只使用光纤作为传输媒体。
只工作在全双工方式,没有争用问题,不使用 CSMA/CD 协议。
使用以太网进行宽带接入
可以提供双向的宽带通信。
可以根据用户对带宽的需求灵活地进行带宽升级。
可以实现端到端的以太网传输,中间不需要再进行帧格式的转换。
但不支持用户身份鉴别。