数据链路层知识要点
这里写目录标题
- 数据链路层的功能
- 1.封装成帧
- 2.差错控制
- 2.1循环冗余校验(CRC)
- 2.2奇偶校验法
- 3.可靠传输
- 3.1停止等待协议(SW)
- 3.2后退N帧协议(GBN)
- 3.3选择重传协议(SR)
- 4.使用广播信道的数据链路层
- 5.以太网(局域网)
- 5.1以太网与网卡
- 5.2以太网的MAC地址
- 6.VLAN的基本概念和基本原理
- 7.数据链路层设备
- 7.1网桥
- 7.2二层交换机
数据链路层的功能
帧:帧是数据链路层的数据传送单位,由帧头、数据部分和帧尾组成,用于实现同步、寻址、差错控制等功能,保证数据的有效传输。
链路:一条点到点的物理线路
数据链路:数据链路是在链路的基础上,增加了必要的通信协议来控制数据的传输
数据链路层的主要任务是实现帧在一段链路上或一个网络上进行传输。数据链路层协议有多种,但有三个基本问题是共同的,即封装成帧、差错控制、可靠传输。数据链路层使用的主要信道主要有:
- 点对点信道:一对一通信。ppp协议使用的是点对点协议。
- 广播信道:一对多通信,有线局域网使用CSMA/CD协议,而无线局域网使用CSMA/CA协议。
1.封装成帧
数据链路层将网络层传来的分组(数据包)添加特定的首部和尾部,使之构成一个完整的帧。这个过程就像是将一个包裹(数据包)放入一个带有特定标签(首部)和封口(尾部)的盒子(帧)里。首部和尾部中包含了各种控制信息,如帧的开始标志、源地址、目的地址、帧长度以及用于差错检测的校验码等。
2.差错控制
现实的通信链路是不理想的,比特在传输过程中可能回产生差错:1可能会变成0,而o也可能会变成1,这就叫做比差错。为保证接收到的数据是正确的,计算机网络在传输数据时,必须采用某种差错检测措施。在数据链路层通常使用以下技术进行差错检测:
2.1循环冗余校验(CRC)
双方先约定一个生成多项式,发送方根据该多项式对数据进行处理(在数据后添加一定数量的0后除以多项式求余数作为校验码并附在数据后发送),接收方收到数据后同样用该多项式进行计算,若余数为0则认为数据无差错,否则认为有差错。
2.2奇偶校验法
通过在数据位后添加一位校验位(使数据和校验位中“1”的个数为奇数或偶数),接收方根据约定的奇偶性来检查数据传输过程中是否发生错误。
3.可靠传输
在某些情况下,我们需要数据链路层向上面的网络层提供"可靠传输"的服务。可靠传输就是要做到:发送端发送什么,接收端就收到什么;计算机网络实现可靠传输的基本方法就是,如果发现错误就重传。
3.1停止等待协议(SW)
发送方发送一个数据帧后就停下来等待接收方的确认帧,只有收到确认帧后才会发送下一个数据帧,若在规定时间内没收到确认帧或收到否认帧就重传之前发送的数据帧。
3.2后退N帧协议(GBN)
发送方可以连续发送多个数据帧,接收方按序接收,一旦发现某帧出错,接收方会丢弃该帧及其之后的所有帧,发送方则要从出错帧开始重传已发送过的N个帧。
3.3选择重传协议(SR)
允许发送方在未收到确认的情况下连续发送多个数据帧,接收方对每个帧独立进行确认,若某帧出错,发送方只需重传出错的帧,而不必重传所有后续帧
4.使用广播信道的数据链路层
- ppp协议:
点到点协议就像你在家用电话线拨号上网。你用电脑拨号,就直接和网络那头的服务器联系上了,中间没有别的设备来掺和,就只有两个端点在通信,很直接。主要实现数据链路层的封装成帧和差错控制
- SCMA/CD(载波监听多路访问/冲突检测):
在一个办公室的局域网中,多台计算机连接到同一台交换机上,如果它们都不进行协调就发送数据,可能会导致数据碰撞,最终影响网络的正常使用。SCMA/CD就是为了解决这个问题。SCMA/CD的工作流程可简单概括为:“先听后发,边听边发,冲突停发,随机重发”
- CS:表示载波监听,站点在发送数据前会先检测共享信道上是否有载波信号,以此来判断信道是否正在被其他站点使用。
- MA:多路访问,指的是多个站点可以共享同一通信介质,它们都可以尝试访问该介质来发送数据。
- CD:冲突检测,站点在发送数据时会同时检测是否发生冲突,如果发生冲突,会采取相应的措施,如停止发送、发送冲突信号以及重新尝试发送等。
5.以太网(局域网)
以太网逻辑上采用总线型拓扑结构,所有计算机共享同一总线,信息以广播方式发送,以太网使用SCMA/CD方式对总线进行访问控制。
5.1以太网与网卡
计算机与外界局域网的连接是通过主板上嵌入的一块(网路适配器)网卡实现的。适配器上装有处理器和存储器,工作在数据链路层。适配器和局域网通信是通过电缆或双绞线以串行方式进行的,而适配器和计算机的通信则是通过计算机的I/O总线以并行方式连接。因此,适配器的重要功能就是进行数据的串并转换。简而言之,就是网卡要连接网络使用串行连接,连接计算机内部使用并行连接。
5.2以太网的MAC地址
MAC 地址是物理网络接口的标识符,用于在局域网或(本地网络)内设备之间的通信。当路由器通过适配器连接局域网时,适配器上的MAC地址就是用来表示路由器的某个接口。路由器若同时连接到两个网络上,则它需要两个适配器和MAC地址。MAC是对接口标识,不是对设备标识
6.VLAN的基本概念和基本原理
一个以太网是一个广播域,当一个以太网中包含的计算机太多时。往往会导致广播风暴和数据暴露,对信息保密和安全不利。
VLAN 即虚拟局域网,是一种将一个物理的局域网(LAN)在逻辑上划分成多个不同的广播域的技术。通过 VLAN,可以将一个大的网络划分为多个小的逻辑网络,每个 VLAN 就像是一个独立的局域网,不同 VLAN 之间的广播流量不会相互干扰。
VLAN工作方式是通过在交换机上进行逻辑划分,利用标签封装识别帧所属VLAN,交换机根据标签对数据帧进行读取和转发(如通过Access端口对无标签帧分配默认VLAN、Trunk端口处理带标签帧等多种方式),不同VLAN间借助路由器或三层交换机通信,并且有多种链路类型和划分方式来构建虚拟局域网。
例如,将交换机的端口 1 至 10 配置为 VLAN 10,这些端口连接的计算机属于销售部;端口 11 至 20 配置为 VLAN 20,用于研发部;端口 21 至 30 配置为 VLAN 30,服务于财务部。
- Access 端口:
对于连接销售部计算机的端口(如端口 1 至 10),将其设置为 Access 端口。当一台销售部的计算机(假设连接在端口 1)发送数据帧时,如果该帧没有 VLAN 标签,那么这个 Access 端口会为其添加 VLAN 10 的标签(遵循 IEEE 802.1Q 标准),并将该帧转发到交换机内部。
反之,当交换机收到一个带有 VLAN 10 标签的帧并要从端口 1 转发出去时,会将该帧的标签去除,因为 Access 端口只允许属于其所属 VLAN 的无标签帧通过。 - Trunk 端口:
假设该二层交换机通过一个端口(例如端口 48)连接到三层交换机,将这个端口设置为 Trunk 端口。
当从 VLAN 10 的端口(如端口 1 至 10)收到的帧被转发到端口 48 时,该帧会携带 VLAN 10 的标签;从 VLAN 20 或 VLAN 30 的端口收到的帧也会携带相应的 VLAN 标签,然后通过这个 Trunk 端口发送到三层交换机。
从三层交换机发回的带有不同 VLAN 标签的帧,经过这个 Trunk 端口时,根据标签会被正确地转发到相应的 VLAN 端口。
7.数据链路层设备
7.1网桥
网桥是一种早期的数据链路层设备,主要用于连接两个或多个局域网(LAN)。它通过学习连接的每个端口上的 MAC 地址,建立一个 MAC 地址表。当收到一个帧时,网桥会检查帧的目的 MAC 地址,并根据 MAC 地址表决定将该帧转发到哪个端口。能够隔离冲突域,减少网络中的冲突,提高网络的性能。
7.2二层交换机
二层交换机是网桥的扩展和进化,它可以连接多个设备或多个局域网。和网桥类似,它也会建立 MAC 地址表,根据帧的目的 MAC 地址进行转发。
- 交换机会将数据包只转发给目标设备,而不是像网桥一样广播到所有设备端口
- 交换机支持全双工通信,是的交换机在处理多个数据流效率高