链路层
数据链路使用的信道:
- 点对点信道
- 广播信道
一、使用点对点信道的数据链路层
-
数据链路
- 链路是一条无源的点到点的物理线路段,中间没有任何其他的交换结点
- 数据链路就是物理链路加上必要的通信协议
-
帧
- 在数字链路上传输的数据单位
-
三个基本问题
-
封装成帧
-
在一段数据前后分别添加首部和尾部,确定帧的界限,便构成一个帧
-
用控制字符进行帧定界
-
SOH
(Start Of Header) -
EOT
(End Of Transmission)
-
-
-
透明传输
-
定义:不管所传数据是什么样的比特组合,都应当能够在链路上传送
-
问题:若数据中某个字节的二进制代码恰好与SOH或EOT一样,则错误的认为找到了帧边界
-
解决方法:字节填充
-
发送端在数据中的控制字符前插入一个转义字符
ESC
(16进制:1B) -
发送端给处理完的数据加上
SOH
和EOT
,并发给接收端 -
接收端在将数据送往网络层之前删除插入的转义字符
-
若转义字符在数据中,也要在前面加
ESC
-
当接收端收到连续的两个
ESC
时,就删除前面的一个
-
-
-
差错控制
- 作用:为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施
- CRC循环冗余检验
- 发送端将数据分组
- 假设现有一组数据 M = 1101011011,在M后面添加n位的冗余码一起发送
- 冗余码的计算
- 给出确定的除数P,如P(X) = X4+X+1,即 10011
- 在M后补上最高次数位0,即2nM = 11010110110000
- 将2nM与P进行断除(异或),得到余数置为FCS冗余码
- 只能做到无差错接受
- 帧检验序列FCS
- 若检测得出的余数R=0,则没有差错,接收;否则有差错,丢弃
- 不能确定究竟是哪一个或哪几个比特出现了差错
- 只要经过严格的挑选,并使用位数足够多的除数 P,那么出现检测不到的差错的概率就很小很小
-
二、点对点协议 PPP
-
组成部分
- 一个将IP数据报封装到串行链路的方法
- 链路控制协议LCP(Link Control Protocol)
- 网络控制协议 NCP(Network Control Protocol)
-
帧格式
-
PPP帧的首部和尾部分别为4个字段和2个字段
其中:
- 标志字段 F = 0X7E
- 地址字段 A = 0xFF
- 控制字段 C = 0x03
- 协议字段 如图
- FCS 帧校验序列码(冗余码)
-
透明传输
- PPP用在异步传输时,使用字符填充法
- PPP用在同步传输时,使用比特填充
- PPP用在异步传输时,使用字符填充法
-
-
PPP协议的工作状态
三、使用广播信道的数据链路层
-
局域网的数据链路层
局域网
- 特点
- 网络为一个单位所拥有
- 地理范围和站点数目均有限
- 主要优点
- 具有广播功能,从一个站点能很方便的访问全网
- 提高了系统的可靠性、可用性和残存性
适配器
- 别称:通信适配器、网格接口卡、网卡
- 功能:
- 进行串行/并行转换
- 对数据进行缓存
- 在计算机的操作系统安装设备驱动程序
- 实现以太网协议
- 特点
-
CSMA/CD 协议
最初的以太网将许多计算机都连接到一根总线上
总线上的每一个工作的计算机都能检测到B发送的数据信号
只有与数据帧首部写入的地址一致的计算机会接收这个数据帧,其他计算机都丢弃这个数据帧,从而实现了广播总线上的一对一通信
为了通信的简便,以太网采取了两种重要措施
- 采用无连接的工作方式
- 不建立连接、不对数据帧编号、不要求对方发回确认
- 理由:局域网信道质量好,产生差错的概率小
- 结果:提供的服务是不可靠的交付,即尽最大努力的交付
- 发送的数据都是以曼切斯特编码
- 缺点:所占用的频带宽度是原始基带信号的2倍
2.1 CSMA/CD协议
含义:载波监听多点接入/碰撞检测(Carrier Sense Multiple Access with Collision Detection)
- 多点接入:表示许多计算机以多点接入的方式连接到一根总线上
- 载波监听:每个站发送数据前先要检测一下总线上是否有其他计算机在发送数据,如果有则暂时不发送数据
- 碰撞检测:计算机便发送数据便检测信道上的信号电压大小,当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表示发生了碰撞,也称为“冲突检测”
特点:
- 半双工通信
- 每个站发送数据后的一小段时间内,存在着遭遇碰撞的可能性
- 发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率
发生碰撞的情况:
常见术语及易误解知识点:
- 端到端传播时延:以太网最远的两端间传播时延记为τ
- 争用期:2τ,在10Mbit/s的以太网为512比特时间
- 人为干扰信号发送时间:48/32比特时间,以便让所有用户都知道现在已经发生了碰撞
- 清理缓存时间:96比特时间,检测到信道空闲,并在96比特时间保持空闲,保证了帧间最小间隔,可发送帧
- 最短有效帧长:64字节,规定凡长度小于 64 字节的帧都是由于冲突而异常中止的无效帧
- 题目给出的检测到碰撞的时间,不一定是端到端传播时延(两站较近)
CSMA/CD协议的执行步骤(重要)
- 准备发送
- 检测信道
- 信道忙,则不停检测,直到信道空闲
- 信道空闲,且接下来96个比特时间内信道保持空闲,则发送帧
- 检查碰撞
- 发送成功:在争用期(2τ)内一直未检测到碰撞
- 发送失败:在争用期内检测到碰撞,立即停止发送数据,并发送人为干扰信号(48/32比特时间);适配器执行指数退避算法,并返回第二步
指数退避算法
含义:发生碰撞的站在停止发送数据后,要推迟一个随机时间才能再次发送数据。
- 基本退避时间为争用期2τ
- 从整数集合[0 , 2k-1] 中随机取一个数,记为r,重传所需时间即为r倍的基本退避时间
- k = Min( 重传次数, 10 )
- 当重传次数达16次时仍不成功,则丢弃该帧,并向高层报告
例题:
3-25 在上题中(有效信息:10Mbit/s的以太网)的站点A和B在t=0时同时发送了数据帧。当t=225比特时间,A和B同时检测到发生了碰撞,并且在t=225+48=273比特时间完成了干扰信号的传输。A和B在CSMA/CD算法中选择不同的r值退避。假定A和B选择的随机数分别是rA=0和rB=1。 1. 试问A和B各在什么时间开始重传其数据帧? 2. A重传的数据帧在什么时间到达B? 3. A重传的数据会不会和B重传的数据再次发生碰撞? 4. B会不会在预定的重传时间停止发送数据?
分析:A和B同时发送数据帧,且同时在t=255检测到发生了碰撞,很容易误导我们,让我们以为传播时延 τ = 225,但根据上题的10Mbit/s我们可以知道,τ = 256,所以可以得出 A和B不是以太网最远的两端它们之间的传播时延为225,接下来分析下各个时间点的事件
- t = 273;完成了干扰信号的传输, A、B执行退避算法
- t = 273 + 0*512;A结束退避时间(r = 0),检测到信道上有干扰信号
- t = 273 + 225 = 498;干扰信号结束
- t = 498 + 96 = 594;等待一个最小帧间隔后A开始发送帧
- t = 594 + 225 = 819;A的第一个比特到达B
- t = 273 + 1*512 = 785;B结束退避时间,检测到信道忙,等待
- t = 785 + 96 = 881;若t=785时信道空闲,那B将在这个时间重传帧
回答问题:
- A在t = 594开始重传,B在t = 819预计重传
- t = 819
- 不会
- 会
- 采用无连接的工作方式
-
使用集线器的星型拓扑
采用双绞线的以太网使用星型拓扑,在星形的中心增加了一种可靠性非常高的设备——集线器
-
星形以太网 10BASE-T
-
集线器的特点
- 使用集线器的以太网在逻辑上仍是一个总线网,各工作站使用的还是CSMA/CD协议,并共享逻辑上的总线
- 集线器很像一个多接口的转发器,工作在物理层
-
-
以太网的信道利用率(略)
-
以太网的MAC层
-
MAC层的硬件地址
硬件地址又称物理地址或MAC地址,共48位
前24位由IEEE的注册管理机构RA分配
后24位由厂家执行指派,必须保证生产出的适配器没有重复地址
适配器从网络上接收到一个MAC帧时,检测其MAC地址,若是发往本站则收下,否则丢弃;
MAC帧包括以下三种帧:
- 单播(unicast)帧(一对一)
- 多播(multicast)帧(一对多)
- 广播(broadcast)帧(一对全体)
所有适配器都能识别单播帧和广播帧,有的适配器能用编程方法识别多播帧
-
MAC帧的格式
最常用的MAC帧时以太网V2的格式
格式如图:
其中:
- 类型用来标志上一层使用什么协议
- 数据字段最小为46字节,不够时应在后面添加整数字节的填充字段
- FCS校验码
- 前八个字节为硬件生成,前7个字节时前同步码,用于快速实现MAC帧的比特同步,最后一个字节时帧开始界定符
无效的MAC帧:
- 数据字段的长度和长度字段的值不一致,或不在46~1500
- 帧的长度不是整数个字节
- FCS查出有差错
- MAC帧长度不在 64~1518 字节内
无效MAC帧直接丢弃,以太网不负责重传
-
四、扩展的以太网
-
在物理层扩展以太网
- 使用光纤扩展
- 使用集线器扩展
使用多个集线器可连成更大的、多级星形结构的以太网
-
在链路层扩展以太网
网桥
- 网桥工作在数据链路层
- 它根据MAC帧的目的地址对收到的帧进行转发和过滤
- 当网桥收到一个帧时,并不是向所有接口转发,而是先检查帧的目的MAC地址,再确定该转发到哪一个接口,或者丢弃
-
以太网交换机的特点
- 实质上是一个多接口的网桥,每个接口都直接与一个主机或以太网交换机相连(全双工)
- 以太网交换机具有并行性,能同时连通多对接口,使多对主机同时通信
- 互相通信的主机都是独占传煤体,无碰撞地传输数据
- 交换机的接口有存储器,能缓存到来的帧(排队)
- 交换机是一种即插即用设备,内部的交换表通过自学习算法自动建立
-
以太网交换机的优点
- 用户独享带宽,增加了总容量
- 从共享总线到交换式以太网,所有设备不需要做任何改动
-
以太网交换机的交换方式
- 存储转发方式:将整个帧先缓存再进行处理
- 直通方式:接收数据帧的同时就立即按数据帧的目的MAC地址决定该帧的转发接口,提高了帧的转发速度
- 直通方式缺点:可能将无效帧转发给其他站
-
以太网交换机的自学习功能
- 交换机收到帧后进行自学习,查找交换表中与收到帧的源地址有无相匹配的项目:
- 没有,新增记录
- 有,更新记录
- 转发帧,查找交换表与收到帧的目的地址有无相匹配的项目
- 没有,向所有接口转发
- 有,若是进入的接口,丢弃,否则转发到指定接口
- 生成树协议:不改变网络的实际拓扑,但在逻辑上则切断某些链路,使得从一台主机到所有其他主机的路径是无环路的树状结构,从而消除了兜圈子现象
- 交换机收到帧后进行自学习,查找交换表中与收到帧的源地址有无相匹配的项目:
-
总线以太网和星形以太网区别
总线以太网 星形以太网 结构 无源的总线结构 星形拓扑结构 协议 CSMA/CD协议,半双工 全双工 -
例题
-
虚拟局域网VLAN
-
利用以太网交换机实现
-
VLAN是由一些局域网网段构成的与物理位置无关的逻辑组,这些网段具有某些共同的需求;
-
-
B~1~向VLAN2工作组发送消息,B~2~和B~3~将会收到广播,其他都不会收到
-
优点:虚拟局域网限制了接收广播信息的工作站数,使得网络不会因传播过多的广播信息(即“广播风暴”)而引起性能恶化
-
虚拟局域网协议允许在以太网的帧格式中插入一个4字节的标识符,称为VLAN标记,每个VLAN的帧都有这一个明确的标识符,指明发送这个帧的计算机是哪个VLAN
-
插入VLAN标记的帧称为802.1Q帧 或 带标记的以太网帧
-
-
Q.E.D.