第3章 数据链路层
Posted 可能自洽
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第3章 数据链路层相关的知识,希望对你有一定的参考价值。
一、数据链路层
1.数据链路层
数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
2.数据链路层的功能
实现点到点的数据传输
2.1 为网络层提供服务
无确认无连接服务,有确认无连接服务,有确认面向连接服务
2.2 链路管理,即连接的建立、维持、释放(用于面向连接的服务)
2.3 组帧
封装成帧和透明传输
(1) 字符计数法
帧首部使用一个计数字段(第一个字节,八位)来标明帧内字符数
(2) 字符填充法
(3) 零比特填充法
在发送端,扫描整个信息字段,只要连续5个1,就立即填入1个0
在接收端收到一个帧时,先找到标志字段确定边界,再用硬件对比特流进行扫描。发现连续5个1时,就把后面的0删除
(4) 违规编码法
2.4 差错控制
位错(比特错)
(1) 检错编码
奇偶校验码
循环冗余码CRC
计算冗余码:
(1) 加0 (假设生成多项式G(x)的阶为r, 则加r个0)
(2) 模2除法 (数据加0后除以多项式,余数为 FCS 帧校验序列(Frame Check Sequence))
例:要发送的数据是1101011011,采用CRC校验,生成多项式是10011,那么最终发送的数据应该是?
11010110111110
接收端检错过程
把收到的每一个帧都除以同样的除数,然后检查得到的余数R
1.余数为0,判定这个帧没有差错,接受
2.余数为不为0,判定这个帧有差错(无法确定到位),丢弃
(2) 纠错编码 海明码
二、点对点协议 PPP(Point-to-Point Protocol)
1.PPP协议三个组成部分
(1)一个将IP数据报封装到串行链路的方法
(2)链路控制协议LCP (Link Control Protocol)
(3)网络控制协议NCP (Network ControlProtocol)
2.PPP协议的帧格式
2.1 PPP 有一个 2 个字节的协议字段。其值:
若为 0x0021,则信息字段就是 IP 数据报
若为 0x8021,则信息字段是网络控制数据
若为 0xC021,则信息字段是 PPP 链路控制数据
若为 0xC023,则信息字段是鉴别数据
2.2 PPP 协议使用同步传输时,采用零比特填充方法来实现透明传输
(同步传输:一连串的比特连续传送,异步传输:逐个字符地传送)
3.PPP协议的工作状态
3.1 当用户拨号接入ISP时,路由器的调制解调器对拨号做出确认,并建立一条物理连接
3.2 PC机向路由器发送一系列的LCP分组(封装成多个PPP帧)
3.3 这些分组及其响应选择一些PPP参数,并进行网络层配置,NCP给新接入的PC机分配一个临时的IP地址,使PC机成为因特网上的一个主机
3.4 通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址。接着,LCP释放数据链路层连接。最后,释放物理层连接。
可见,PPP协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容
三、使用广播信道的数据链路层
1.局域网的数据链路层
1.1 局域网的特点
网络为一个单位所拥有
地理范围和站点数目均有限
1.2 局域网具的优点
具有广播功能,从一个站点可很方便地访问全网
便于系统的扩展和逐渐演变,各设备的位置可灵活调整和改变
提高了系统的可靠性、可用性和残存性
2.CSMA/CD协议(Carrier Sense Multiple Access/Collision Detect)
2.1 载波侦听多路访问(CSMA)
当某一个结点要发送数据时,它首先要侦听信道有无其它结点正在发送数据,若信道空闲则发送数据;如果侦听到信道正忙,则需要等待一段时间,直至信道空闲再发数据。
2.2 冲突检测(CD)
在发送数据的同时,进行冲突检测,一旦发现冲突则立刻停止发送,并等待冲突平息以后,再执行CSMA/CD协议,直至将数据成功地发送出去为止
“碰撞检测”就是计算机边发送数据边检测信道上的信号电压大小。
当多个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。
当一个站检测到的信号电压摆动值超过一定的门限值时,表明产生了碰撞。
所谓“碰撞”就是发生了冲突。因此“碰撞检测”也称为“冲突检测”
2.3 CSMA/CD 重要特性
使用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行半双工通信
每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性
这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率
多长时间才能知道是否冲突呢?
2.4 争用期
最先发送数据帧的站,在发送数据帧后至多经过时间
2
τ
2 \\tau
2τ(端到端往返时延)就可知道发送的数据帧是否遭受了碰撞
以太网的端到端往返时延
2
τ
2 \\tau
2τ 称为争用期,或碰撞窗口
经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞
2.5 二进制指数类型退避算法(truncated binary exponential type)
发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据。
◼ 基本退避时间取为争用期
2
τ
2 \\tau
2τ
◼ 从整数集合 [0, 1, … , (2k −1)] 中随机地取出一个数,记为 r。重传所需的时延就是 r 倍的基本退避时间。
◼ 参数 k 按下面的公式计算:k = Min[重传次数, 10]
◼ 当
k
≤
10
k \\leq 10
k≤10 时,参数 k 等于重传次数
◼ 当重传达 16 次仍不能成功时即丢弃该帧,并向高层报告
2.6 争用期的长度
10 Mbit/s 以太网取 51.2
μ
s
\\mu s
μs 为争用期的长度
对于 10 Mbit/s 以太网,在争用期内可发送 512 bit,即 64 字节
这意味着:以太网在发送数据时,若前 64 字节没有发生冲突,则后续的数据就不会发生冲突
2.7 帧的最小长度 (最小帧长64字节)
如果发生冲突,就一定是在发送的前 64 字节之内
◼ 由于一检测到冲突就立即中止发送,这时已经发送出去的数据一定小于 64 字节
◼ 以太网规定了最短有效帧长为 64 字节,凡长度小于 64 字节的帧都是由于冲突而异常中止的无
效帧
例 假定站点 A 和 B 在同一个 10Mbps 的以太网网段上,这两个站点之间的传播时延为 225 比特时间。现假定 A 开始发送一帧,并且在 A 发送结束之前 B 也发送一帧。如果 A 发送的是以太网所容许的最短的帧,那么 A 在检测到和 B 发生碰撞之前能否把自己的数据发送完毕?换言之,如果 A 在发送完毕之前没有检测到碰撞,能否肯定 A 所发送的帧不会和 B 发送的帧发生碰撞?
10Mb/s的以太网争用期为51.2
μ
s
\\mu s
μs
1)计算出A发送的数据大小
A发送的帧总长度包括数据部分、帧首和帧尾,由于A发送的是最短的帧,即为512bit。而帧首帧尾一共有8*8bit=64bit。所以A发送的帧总长度为512+64=576bit
2)计算出A检测到碰撞现象的时刻
已知B要发送数据与A碰撞,而两站点的传播时延为225bit。
假设A在0时刻发送帧,则经过255bit即可被B检测到,所以B要想在A结束之前发数据,必须在(0-224)bit这个时间段发送,否则就没有机会了。
假设B在224bit时刻发送数据,则到达A端被检测到的时刻为224+225=449bit.
3)比较A发送完毕时刻和A检测到碰撞时刻
而A发送完全部的576bit数据需要等到576bit时刻才能发送完毕,所以A在发送完毕之前已经检测到碰撞,即A在检测到和B发生碰撞之前不能把自己的数据发送完毕。也就是如果A在发送完毕之前并没有检测到碰撞,那么能肯定A所发送的帧不会和B发送的帧发生碰撞。
2.8 强化碰撞
当发送数据的站一旦发现发生了碰撞时:
(1) 立即停止发送数据
(2) 再继续发送若干比特的人为干扰信号(jamming signal),以便让所有用户都知道现在已经发生了碰撞
2.9 CSMA/CD协议的要点
(1) 准备发送。但在发送之前,必须先检测信道
(2) 检测信道。若检测到信道忙,则应不停地检测,一直等待信道转为空闲。若检测到信道空闲,并在 96 比特时间内信道保持空闲(保证了帧间最小间隔),就发送这个帧
(3) 检查碰撞。在发送过程中仍不停地检测信道,即网络适配器要边发送边监听。这里只有两种可能性:
◼ ①发送成功:在争用期内一直未检测到碰撞。这个帧肯定能够发送成功。发送完毕后,回到步骤(1)
◼ ②发送失败:在争用期内检测到碰撞。这时立即停止发送数据,并按规定发送人为干扰信号。接着执行指数退避算法,等待 r 倍512 比特时间后,返回到步骤 (2),继续检测信道。若重传达 16 次仍不能成功,则停止重传并向上报错
3.使用集线器的星形拓扑
3.1 集线器的一些特点
(1) 集线器是使用电子器件来模拟实际电缆线的工作
(2) 使用集线器的以太网在逻辑上仍是一个总线网,各工作站使用的还是 CSMA/CD 协议,并共享逻辑上的总线
(3) 集线器很像一个多接口的转发器,工作在物理层。
(4) 集线器采用了专门的芯片,进行自适应串音回波抵消,减少了近端串音
4.以太网的信道利用率
多个站在以太网上同时工作就可能会发生碰撞, 所以以太网总的信道利用率并不能达到 100%
设帧长为 L (bit),数据发送速率为 C (bit/s),则帧的发送时间为
T
0
=
L
/
C
(
s
)
T_0 = L/C (s)
T0=L/C(s)
参数
α
=
τ
/
T
0
α=\\tau /T_{0}
α=τ/T0 与利用率
α →0,表示一发生碰撞就立即可以检测出来, 并立即停止发送,因而信道利用率很高
α 越大,表明争用期所占的比例增大,每发生一次碰撞就浪费许多信道资源,使得信道利用率明显降低
对以太网参数 α 的要求
α
=
τ
/
T
0
\\alpha =\\tau / T_{0}
α=τ/T0
τ
=
任
意
两
站
点
间
的
最
大
距
离
信
号
传
播
速
度
\\tau=\\frac{任意两站点间的最大距离}{信号传播速度}
τ=信号传播速度任意两站点间的最大距离
T
0
=
帧
长
数
据
传
输
率
T_{0}=\\frac{帧长}{数据传输率}
T0=数据传输率帧长
为提高利用率,以太网的参数
α
\\alpha
α 的值应当尽可能小些
以太网的连线不能太长,否则
τ
\\tau
τ 的数值会太大
以太网的帧长不能太短,否则
T
0
T_0
T0 的值会太小
5.以太网的MAC层
5.1 MAC层的硬件地址
在局域网中,硬件地址又称为物理地址,或 MAC 地址
802 标准所说的“地址”严格地讲应当是每一个站的“名字”或标识符
网卡号
请注意:
• 如果连接在局域网上的主机或路由器安装有多个适配器,那么这样的主机或路由器就有多个“地址”
• 更准确些说,这种 48 位“地址”应当是某个接口的标识符
IEEE广泛采用6字节作为MAC地址
适配器检查 MAC 地址
◼ 所有的适配器都至少能够识别前两种帧,即能够识别单播地址和广播地址
◼ 有的适配器可用编程方法识别多播地址
◼ 只有目的地址才能使用广播地址和多播地址
◼ 以混杂方式 (promiscuous mode) 工作的以太网适配器只要“听到”有帧在以太网上传输就都接收下来
5.2 MAC帧的格式
常用的以太网 MAC 帧格式有两种标准 :
◼ IEEE 的 802.3 标准
◼ DIX Ethernet V2 标准
最常用的 MAC 帧是以太网 V2 的格式
类型字段用来标志上一层使用的是什么协议,以便把收到的 MAC 帧的数据上交给上一层的这个协议
数据字段的正式名称是 MAC 客户数据字段。最小长度 64 字节 − 18 字节的首部和尾部 = 数据字段的最小长度(46字节)
当传输媒体的误码率为
1
×
1
0
−
8
1 \\times 10^{−8}
1×10−8 时,MAC 子层可使未检测到的差错小于
1
×
1
0
−
14
1 \\times 10^{−14}
1×10−14, 当数据字段的长度小于 46 字节时,应在数据字段的后面加入整数字节的填充字段,以保证以太网的 MAC 帧长不小于 64 字节
在帧的前面插入(硬件生成)的 8 字节中,第一个字段共 7 个字节,是前同步码,用来迅速实现 MAC 帧的比特同步。第二个字段1 个字节是帧开始定界符,表示后面的信息就是 MAC 帧
5.3 无效的 MAC 帧
数据字段的长度与长度字段的值不一致
帧的长度不是整数个字节
用收到的帧检验序列 FCS 查出有差错
数据字段的长度不在 46 ~ 1500 字节之间
有效的 MAC 帧长度为 64 ~ 1518 字节之间
(对于检查出的无效 MAC 帧就简单地丢弃。以太网不负责重传丢弃的帧)
5.4 帧间最小间隔
帧间最小间隔为
9.6
μ
s
9.6 \\mu s
9.6μs,相当于 96 bit 的发送时间
一个站在检测到总线开始空闲后,还要等待
9.6
μ
s
9.6 \\mu s
9.6μs 才能再次发送数据
这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备
四、扩展的以太网
工作在物理层
网卡
中继器, 用来复原网络中的信号并重新发送到其他网段上
集线器, 用于连接各物理设备
工作在数据链路层:
网桥工作在数据链路层的介质访问控制(MAC)子层上,用于在多个使用同一种通信协议的网段中传送数据包的设备
交换机, 作用类似网桥
路由器
1.在物理层扩展以太网
1.1 使用光纤扩展
主机使用光纤(通常是一对光纤)和一对光纤调制解调器连接到集线器
很容易使主机和几公里以外的集线器相连接
1.2 使用集线器扩展
使用多个集线器可连成更大的、多级星形结构的以太网
例如,一个学院的三个系各有一个 10BASE-T 以太网,可通过一个主干集线器把各系的以太网连接起来,成为一个更大的以太网
优点
使原来属于不同碰撞域的以太网上的计算机能够进行跨碰撞域的通信
扩大了以太网覆盖的地理范围
缺点
碰撞域增大了,但总的吞吐量并未提高
如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来
2.在数据链路层扩展以太网
扩展以太网更常用的方法是在数据链路层进行, 早期使用网桥,现在使用以太网交换机
2.1 交换机有三种转发模式:
1)直通式转发 Cut-through (直通式)
是指交换机在收到数据帧后,不进行缓存和校验,而是直接转发到目的端口。
2)存储式转发 Store and forward (存储-转发式)
交换机首先在缓冲区存储接收到的整个数据帧,然后进行CRC校验,检查数据帧是否正确,如果正确,再进行转发。如果不正确,则丢弃。
3)碎片隔离式转发 Fragment free (无分段式)
交换机在接收数据帧时,会先缓存数据帧的前64个字节,确保数据帧大于64个字节,再进行转发。
3.虚拟局域网 (Virtual LAN)
虚拟局域网 VLAN 是由一些局域网网段构成的与物理位置无关的逻辑组
虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网
一个VLAN = 一个广播域 = 逻辑子网
建立 VLAN 需要使用交换机
VLAN 以软件方式划分逻辑工作组,逻辑工作组中结点组成不受物理位置的限制
五、高速以太网
1.100BASE-T以太网
速率达到或超过 100 Mbit/s 的以太网称为高速以太网
100BASE-T 在双绞线上传送 100 Mbit/s 基带信号的星形拓扑以太网,仍使用 IEEE 802.3 的CSMA/CD 协议
100BASE-T 以太网又称为快速以太网 (Fast Ethernet)
1995 年IEEE已把 100BASE-T 的快速以太网定为正式标准,其代号为 IEEE 802.3u
2.吉比特以太网
3.10吉比特以太网(10GE)和更快的以太网
4.使用以太网进行宽带接入
以上是关于第3章 数据链路层的主要内容,如果未能解决你的问题,请参考以下文章