关于数据链路层,它的工作就是负责把IP数据报打包成帧(比特流),然后传给物理层,由物理层把帧(比特流)变成模拟信号放到传输媒体上。数据链路层使用的信道有两种:
点对点信道。这种信道使用一对一的点对点通信方式。
广播信道。这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。
使用点对点信道的数据链路层
1.1 数据链路和帧
链路:链路(link)是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。一条链路只是一条通路的一个组成部分。
数据链路:除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
实现方式:现在最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。一般的适配器都包括了数据链路层和物理层这两层的功能。
1.2 数据链路层的三个问题
封装成帧
封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。首部和尾部的一个重要作用就是进行帧定界
![](https://img-blog.csdnimg.cn/img_convert/691769d0e25b7f5ecdd4622ad57faf4c.png)
图1 封装成帧
帧的长度指的是帧的数据部分的长度
透明传输
在传输的数据部分出现了定界符,需要添加转义符(字符填充法)
![](https://img-blog.csdnimg.cn/img_convert/d23d6f18737f947aac78eea6a0636f9d.png)
图2 字符填充法
差错检测
针对比特差错,减少误码率。
方法:循环冗余检测CRC获取FCS(帧检验序列)。
步骤如下:
根据多项式获得除数
构建被除数
进行模二除法得到冗余码
模二除法例题:
![](https://img-blog.csdnimg.cn/img_convert/e6f1755eb08cfc7dd143ea3561a53eae.png)
图3 模二运算例题
用接收到的帧除以相同的除数,看看余数是否为0
注:传输数据事务指的是帧的数据部分,帧的检验序列FCS不会有错。计算时要注意。
差错检测只能解决比特错误,做到无差错接受。但是做不到可靠传输。可靠传输是运输层的事情。
1.3 点对点协议PPP
PPP协议的内容:
一个将 IP 数据报封装到串行链路的方法。
一个用来建立、配置和测试数据链路层连接的链路控制协议 LCP (Link Control Protocol)。
一套网络控制协议 NCP (Network Control Protocol)用来支持不同的网络层协议。
PPP帧的组成部分:
标志字段(F=0X7E)
地址字段(A=0XFF)
控制字段(C=0X03)
协议字段(分三种情况:当协议字段为 0x0021 时,PPP 帧的信息字段就是IP 数据报。若为 0xC021, 则信息字段是 PPP 链路控制数据。若为 0x8021,则表示这是网络控制数据。)
![](https://img-blog.csdnimg.cn/img_convert/db5f8d7578182a4b23bf87554a6673a4.png)
图4 PPP帧
PPP帧的尾部由标志字段和FCS帧检验序列组成。
PPP解决透明传输问题:
当 PPP用在异步传输时,它把转义符定义为0x7D,并使用一种特殊的字符填充法实现透明传输。
特殊的字符填充法:
将信息字段中出现的每一个 0x7E 字节转变成为 2 字节序列(0x7D, 0x5E)。
若信息字段中出现一个 0x7D 的字节, 则将其转变成为 2 字节序列(0x7D, 0x5D)。
若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变。
当PPP用在同步传输时,使用零比特填充法实现透明传输。
零比特填充法:
在发送端,只要发现有 5 个连续 1,则立即填入一个 0。接收端对帧中的比特流进行扫描。每当发现 5 个连续1时,就把这 5 个连续 1 后的一个 0 删除。
使用广播信道的数据链路层
2.1 局域网的数据链路层
局域网的优点:
具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。
便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。
提高了系统的可靠性、可用性和残存性。
局域网的拓扑:
总线型、星型、环型、树形...
2.2 网卡(适配器)的作用
进行串行/并行转换。
对数据进行缓存。
在计算机的操作系统安装设备驱动程序。
实现以太网协议。
![](https://img-blog.csdnimg.cn/img_convert/d8bb15b1f1369bad03fb59341d4f1742.png)
图5 网卡运作
使用广播信道的以太网
3.1 CSMA/CD协议
CSMA/CD 表示 Carrier Sense Multiple Access with Collision Detection,即载波监听多点接入/碰撞检测 。
作用:载波监听多点接入/碰撞检测是为了防止连接在总线上的各站点之间发生冲突,协调总线上各计算机工作而设计的协议。
载波监听:就是监听目前信道上有无主机在发数据,有的话晚点再发
碰撞检测:一边发送一边检测,检测到有别人在发就停止发送晚点再发
3.2 在广播信道实现一对一通信
为了在总线上实现一对一的通信,可以使每一台计算机的网卡拥有一个与其他网卡都不同的地址(MAC地址/物理地址),在发送数据帧时,在帧的首部写明接收站的地址。线上的每一个工作的计算机都能检测到 B 发送的数据信号。 由于只有计算机 D 的地址与数据帧首部写入的地址一致,因此只有 D 才接收这个数据帧。 其他所有的计算机(A, C 和 E)都检测到不是发送给它们的数据帧,因此就丢弃这个数据帧而不能够收下来。具有广播特性的总线上实现了一对一的通信。
以太网提供的服务:
以太网提供的服务是不可靠的交付,即尽最大努力的交付。当目的站收到有差错的数据帧时就丢弃此帧,其他什么也不做。差错的纠正由高层来决定。
以太网发送的数据使用曼彻斯特编码
3.3 网卡检测MAC帧
适配器从网络上每收到一个 MAC 帧就首先用硬件检查 MAC 帧中的 MAC 地址.如果是发往本站的帧则收下,然后再进行其他的处理。否则就将此帧丢弃,不再进行其他的处理。
"发往本站的帧"包括以下三种帧:
单播(unicast)帧(一对一)
广播(broadcast)帧(一对全体)
多播(multicast)帧(一对多)
扩展的以太网(局域网)
4.1 在物理层扩展以太网
集线器:一个集线器有许多端口,每个端口通过RJ-45插头用两对双绞线与一个工作站(主机)的网卡相连。因此集线器很像一个多接口的转发器。
集线器工作在物理层,它的每个端口都具有发送和接收数据的功能。每个端口仅简单转发比特,不进行碰撞检测。
![](https://img-blog.csdnimg.cn/img_convert/66d18efb98b0d84811e161302d74480f.png)
图6 集线器
![](https://img-blog.csdnimg.cn/img_convert/b8da211493e9187ac756dde3434d818a.png)
图7 多个集线器
集线器优点:
使原来属于不同碰撞域的局域网上的计算机能够进行跨碰撞域的通信。
扩大了局域网覆盖的地理范围。
集线器缺点:
碰撞域增大了,但总的吞吐量并未提高。
如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来。
4.2 在数据链路局扩展以太网
网桥:网桥工作在数据链路层,它根据 MAC 帧的目的地址对收到的帧进行转发。网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的 MAC 地址,然后再确定将该帧转发到哪一个接口 。
![](https://img-blog.csdnimg.cn/img_convert/920fd331d2b5af978cce8d6d7a31a9e0.png)
图8 网桥
网桥优点:
过滤通信量,增大吞吐量。
扩大了物理范围。
提高了可靠性。
可互连不同物理层、不同 MAC 子层和不同速率(如10 Mb/s 和 100 Mb/s 以太网)的局域网。
网桥缺点:
增加了时延,由存储转发和执行CSMA/CD算法所致。
在MAC 子层并没有流量控制功能,。
具有不同 MAC 子层的网段桥接在一起时时延更大。
网桥只适合于用户数不太多(不超过几百个)和通信量不太大的局域网,否则有时还会因传播过多的广播信息而产生网络拥塞。这就是所谓的广播风暴。
网桥与集线器的区别:
集线器工作在物理层。
集线器对帧进行简单的转发,即逐比特的转发。
集线器在转发帧时,不对传输媒体进行检测,即不进行碰撞检测。
网桥工作在数据链路层。
网桥对帧进行存储转发,即将整个帧收到后,根据转发表再进行转发。
它在转发帧之前必须执行 CSMA/CD 算法。
若在发送过程中出现碰撞,就必须停止发送和进行退避。
交换机:以太网交换机通常都有十几个接口。因此,以太网交换机实质上就是一个多接口的网桥,可见交换机工作在数据链路层。
![](https://img-blog.csdnimg.cn/img_convert/9f4599b51dd8570435447a2e5d3d3425.png)
图9 交换机
交换机的工作特点:
以太网交换机的每个接口都直接与主机相连,并且一般都工作在全双工方式。
交换机能同时连通许多对的接口,使每一对相互通信的主机都能像独占通信媒体那样,进行无碰撞地传输数据。 (交换机的最大特点,独占通信资源)
以太网交换机由于使用了专用的交换结构芯片,其交换速率就较高。
有些以太网交换机使用直通交换方式,不必对数据帧进行缓存再转发,因而提高了帧的转发速度
交换机与集线器的区别:
集线器所有端口都共享一条带宽,在同一时刻只能有两个端口传送数据,其他端口只能等待。
集线器只能工作在半双工模式下,因此所有连接在这个集线器上的站点都是共享信道。
交换机每个端口都有一条独占的带宽,当两个端口工作时不影响其他端口的工作。
交换机不但可以工作半双工模式下,还可以工作在全双工模式下。因此,连接在交换机上的站实际上是独占信道。