链路是从一个结点到相邻结点的一段物理线路,数据链路则是在链路的基础上增加了一些必要的硬件(如网络适配器)和软件(如协议的实现)
网络中的主机、路由器等都必须实现数据链路层
局域网中的主机、交换机等都必须实现数据链路层
从层次上来看数据的流动
仅从数据链路层观察帧的流动
主机H1 到主机H2 所经过的网络可以是多种不同类型的
注意:不同的链路层可能采用不同的数据链路层协议
数据链路层属于计算机网路的低层。数据链路层使用的信道主要有以下两种类型:
数据链路层传送的协议数据单元是帧
(1)封装成帧
(2)差错控制
在传输过程中可能会产生比特差错:1 可能会变成 0, 而 0 也可能变成 1。
(3)可靠传输
如果数据链路层向其**上层提供的是可靠服务**,那就还需要其他措施,来确保接收方主机还可以重新收到被丢弃的这个帧的正确副本.
以上三个问题都是使用点对点信道的数据链路层来举例的:
如果使用广播信道的数据链路层除了包含上面三个问题外,还有一些问题要解决
如图所示,主机A,B,C,D,E通过一根总线进行互连,主机A要给主机C发送数据,代表帧的信号会通
过总线传输到总线上的其他各主机,那么主机B,D,E如何知道所收到的帧不是发送给她们的,主机C如
何知道发送的帧是发送给自己的
解决方法:
封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧。
帧头和帧尾中包含有重要的控制信息
发送方的数据链路层将上层交付下来的协议数据单元封装成帧后,还要通过物理层,将构成帧的各比
特,转换成电信号交给传输媒体,那么接收方的数据链路层如何从物理层交付的比特流中提取出一个个
的帧?
答:需要帧头和帧尾来做帧定界
但并不是每一种数据链路层协议的帧都包含有帧定界标志,例如下面例子
另外以太网还规定了帧间间隔为96比特时间,因此,MAC帧不需要帧结束定界符
透明:指某一个实际存在的事物看起来却好像不存在一样。
透明传输是指数据链路层对上层交付的传输数据没有任何限制,好像数据链路层不存在一样
帧界定标志也就是个特定数据值,如果在上层交付的协议数据单元中,恰好也包含这个特定数值,接收
方就不能正确接收
所以数据链路层应该对上层交付的数据有限制,其内容不能包含帧定界符的值
循环冗余校验CRC(Cyclic Redundancy Check)
循环冗余校验 CRC 是一种检错方法,而帧校验序列 FCS 是添加在数据后面的冗余码
发送端发送什么,接收端就收到什么
1. 下面是比特差错
(3)分组重复
由于某些原因,有些分组在网络中滞留了,没有及时到达接收端,这可能会造成发送端对该分组的重
发,重发的分组到达接收端,但一段时间后,滞留在网络的分组也到达了接收端,这就造成分组重复的
传输差错
这三种可靠传输实现机制的基本原理并不仅限于数据链路层,可以应用到计算机网络体系结构的各
层协议中
3. 确认丢失
既然数据分组需要编号,确认分组是否需要编号?
要。如下图所示
4. 确认迟到
注意,图中最下面那个数据分组与之前序号为0的那个数据分组不是同一个数据分组
注意事项
(1) 为什么用回退N帧协议
在相同的时间内,使用停止-等待协议的发送方只能发送一个数据分组,而采用流水线传输的发送方,可
以发送多个数据分组
回退N帧协议在流水线传输的基础上,利用发送窗口来限制发送方可连续发送数据分组的个数
(2)无差错情况流程
发送方将序号落在发送窗口内的0~4号数据分组,依次连续发送出去
他们经过互联网传输正确到达接收方,就是没有乱序和误码,接收方按序接收它们,每接收一个,接收
窗口就向前滑动一个位置,并给发送方发送针对所接收分组的确认分组,在通过互联网的传输正确到达
了发送方
发送方每接收一个、发送窗口就向前滑动一个位置,这样就有新的序号落入发送窗口,发送方可以将收
到确认的数据分组从缓存中删除了,而接收方可以择机将已接收的数据分组交付上层处理
缺点:
(4)有差错情况
例如
在传输数据分组时,5号数据分组出现误码,接收方通过数据分组中的检错码发现了错误
于是丢弃该分组,而后续到达的这剩下四个分组与接收窗口的序号不匹配
接收同样也不能接收它们,讲它们丢弃,并对之前按序接收的最后一个数据分组进行确认,发送ACK4,
每丢弃一个数据分组,就发送一个ACK4
当收到重复的ACK4时,就知道之前所发送的数据分组出现了差错,于是可以不等超时计时器超时就立刻
开始重传,具体收到几个重复确认就立刻重传,根据具体实现决定
如果收到这4个重复的确认并不会触发发送立刻重传,一段时间后。超时计时器超时,也会将发送窗口
内以发送过的这些数据分组全部重传
若WT超过取值范围,例如WT=8,会出现什么情况?
习题
总结
必须保证数据传输的透明性
实现透明传输的方法
媒体接入控制(介质访问控制)使用一对多的广播通信方式
Medium Access Control翻译成媒体接入控制,有些翻译成介质访问控制
局域网的数据链路层
为什么要媒体接入控制(介质访问控制)?
共享信道带来的问题
若多个设备在共享信道上同时发送数据,则会造成彼此干扰,导致发送失败。
随着技术的发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机
的交换式局域网在有线领域已完全取代了共享式局域网,但由于无线信道的广播天性,无线局域网
仍然使用的是共享媒体技术。
(1)信道复用
(2)频分复用FDM (Frequency Division Multiplexing)
(3)时分复用TDM (Time Division Multiplexing)
(4)波分复用 WDM(Wavelength Division Multiplexing)
波分复用就是光的频分复用,使用一根光纤来同时传输多个光载波信号
光信号传输一段距离后悔衰减,所以要用 掺铒光纤放大器 放大光信号
(5)码分复用 CDM (Code Division Multiplexing)
受控接入
受控接入在局域网中使用得较少,本书不再讨论
随机接入
重点
总线局域网使用协议:CSMA/CD
(1)基本概念
最初的以太网是将许多计算机都连接到一根总线上。易于实现广播通信。当初认为这样的连接方法既简
单又可靠,因为总线上没有有源器件。
(2)多址接入MA
表示许多主机以多点接入的方式连接在一根总线上。
(3)载波监听CS
是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要
发送数据,以免发生碰撞。
总线上并没有什么“载波”。因此, “载波监听”就是用电子技术检测总线上有没有其他计算机发送的数据
信号。
(4)碰撞检测CD
(12)CSMA/CD 协议的重要特性
CSMA/CD协议曾经用于各种总线结构以太网和双绞线以太网的早起版本中。
现在的以太网基于交换机和全双工连接,不会有碰撞,因此没有必要使用CSMA/CS协议
无线局域网使用的协议:CSMA/CA
(3)CSMA/CA协议的工作原理
源站为什么在检测到信道空闲后还要再等待一段时间DIFS?
目的站为什么正确接收数据帧后还要等待一段时间SIFS才能发送ACK帧?
信道由忙转为空闲且经过DIFS时间后,还要退避一段随机时间才能使用信道?
防止多个站点同时发送数据而产生碰撞
(4)使用退避算法的时机
(5)CSMA/CA协议的退避算法
(6)CSMA/CA协议的信道预约和虚拟载波监听
虚拟载波监听机制能减少隐蔽站带来的碰撞问题的示例
(1)广播信道的数据链路层必须使用地址(MAC)
MAC地址又称为硬件地址或物理地址。请注意:不要被 “物理” 二字误导认为物理地址属于物理层
范畴,物理地址属于数据链路层范畴。
(2)IEEE 802局域网的MAC地址格式
组织唯一标识符OUI
关于无效的 MAC 帧
对于检查出的无效 MAC 帧就简单地丢弃。以太网不负责重传丢弃的帧。
(4)单播MAC地址举例
主机B给主机C发送单播帧,主机B首先要构建该单播帧,在帧首部中的目的地址字段填入主机C的
MAC地址,源地址字段填入自己的MAC地址,再加上帧首部的其他字段、数据载荷以及帧尾部,就
构成了该单播帧。
(5)广播MAC地址举例
假设主机B要发送一个广播帧,主机B首先要构建该广播帧,在帧首部中的目的地址字段填入广播
地址,也就是十六进制的全F,源地址字段填入自己的MAC地址,再加上帧首部中的其他字段、数
据载荷以及帧尾部,就构成了该广播帧.
主机B讲该广播帧发送出去,主机A和C都会收到该广播帧,发现该帧首部中的目的地址字段的内
容是广播地址,就知道该帧是广播帧,主机A和主机C都接受该帧,并将该帧交给上层处理.
IP地址属于网络层的范畴,不属于数据链路层的范畴
下面内容讲的是IP地址的使用,详细的IP地址内容在网络层中介绍
(2)从网络体系结构看IP地址与MAC地址
(3)数据包转发过程中IP地址与MAC地址的变化情况
如何从IP地址找出其对应的MAC地址?
ARP协议
如何从IP地址找出其对应的MAC地址?
ARP(地址解析协议)
流程
(1)ARP高速缓存表
当主机B要给主机C发送数据包时,会首先在自己的ARP高速缓存表中查找主机C的IP地址所对应的MAC地址,但未找到,因此,主机B需要发送ARP请求报文,来获取主机C的MAC地址
ARP表中的IP地址与MAC地址的对应关系记录,是会定期自动删除的,因为IP地址与MAC地址的对
应关系不是永久性的
使用集线器扩展:将多个以太网段连成更大的、多级星形结构的以太网
优点
缺点
碰撞域
(1)概念
这个例子的前提条件是忽略ARP过程,并假设交换机的帧交换表已经学习或配置好了
(4)集线器扩展以太网和交换机扩展以太网区别
单播
广播
多个单播
广播域(broadcast domain):指这样一部分网络,其中任何一台设备发出的广播通信都能被该部分网络中的所有其他设备所接收。
工作在数据链路层的以太网交换机,其性能远远超过工作在物理层的集线器,而且价格并不贵,这就使得集线器逐渐被市场淘汰
以下例子假设各主机知道网络中其他各主机的MAC地址(无需进行ARP)
A -> B
G -> A
主机 A、主机 G、交换机 1的接口 1就共享同一条总线(相当于总线式网络,可以想象成用集线器连接了)
随着网络中各主机都发送了帧后,网络中的各交换机就可以学习到各主机的MAC地址,以及它们与自己
各接口的对应关系
考虑到可能有时要在交换机的接口更换主机,或者主机要更换其网络适配器,这就需要更改交换表
中的项目。为此,在交换表中每个项目都设有一定的有效时间。过期的项目就自动被删除。
以太网交换机的这种自学习方法使得以太网交换机能够即插即用,不必人工进行配置,因此非常
方便。
广播风暴
分割广播域的方法
为了分割广播域,所以虚拟局域网VLAN技术应运而生
虚拟局域网VLAN技术是在交换机上实现的,需要交换机能够实现以下功能
(1)Access端口
交换机与用户计算机之间的互连
同一个VLAN内部可以广播通信,不同VLAN不可以广播通信
虚拟局域网优点
虚拟局域网(VLAN)技术具有以下主要优点: