目录
第三章 数据链路层
1.基本概念
主要作用就是把网络层发送的IP数据报封装成帧,然后加上差错校验信息,转交给物理层,物理层再将帧的比特流转化为信号交给传输媒介进行传输。
2.解决的三个问题
(1)封装成帧 :
加上帧头和帧尾
帧头信息:源地址,目的地址,控制信息
帧尾信息:错误信息
问题一:接收方的数据链路层如何从物理层提取到的比特流中知道哪里是帧呢?
PPP帧是通过帧定界,也就是一个标志位来区分以太网是通过前导码和帧间间隔来区分。
问题二:如果数据部分的比特和帧定界符一样怎么办?
可以事先扫描数据部分,如果发现有和帧定位符一样的比特段,就在之前加上一个标志段(转意)字段的比特流来标识。
(2)差错校验
可能在交付的过程中,产生误码,这要求要丢弃。
- 校验方法:
①奇偶校验:就是通过看基数或者偶数的个数来判断是否发生误码,这种检验的方法当奇数个误码产生,能检测出来,但是如果有偶数个误码产生,就检测不出来。
②循环冗余校验:
(3)可靠传输
如果发送端发送的内容是什么,接收端接收得到的也是什么,就是可靠传输 .
要注意的是:以太网并不要求数据链路层提供可靠传输,要求上层提供可靠传输。无线网络要求数据链路层提供可靠传输。
3.可靠传输的实现协议
(1)停止等待协议
问题1:怎么实现可靠性?
发送方发送一个帧之后,接收方要回复给发送方一个信息,如果正确,回复ACK。如果检测到发生了误码,回复NAK;
问题2:如果在传输的过程中,由于路由器队列满了,路由器将分组丢弃或者其他原因造成了分组丢弃怎么办?
采用超时重传的机制,发送方发送完这个帧,就启动计时器,如果计时器时间到了还是没有接收到回复,就再次发送。
问题3:如果在回复的过程中发生了丢失,发送方就会再次发送一个帧,这就造成了接收方收到了重复的帧,该如何处理?
发送方发送的时候,给帧添加一个序号,接收方根据序号来判断是否是重复的帧。
问题4:确认分组是否也需要编号?
需要,可能由于网络延迟,导致了发送方重传。但是帧之后有到达了接收方。
(2)回退N帧协议
是一个滑动窗口协议。可以连续发送N个帧,当其中一个帧发生误码的时候,其之后的帧也要重传,这也是回退N帧协议的由来。
(3)选择重传协议
是对回退N帧协议的一个改进。
主要的改进就是接收方的接收窗口=N,不再是一直为1.
4.点对点协议PPP
基本概念
实现了封装成帧,差错检验,透明传输。
- 封装成帧:上图可以看到帧的首部
- 差错检验:通过循环冗余校验
- 透明传输:面向字节,面向比特
5.媒体接入控制
什么是媒体接入控制?
Medium Access Control,媒体也叫媒介,介质。
6.关于局域网和以太网✔
以太网ethernet:就是一种基带总线局域网,但是目前,以太网几乎垄断了局域网,一般以太网成为了局域网的另一个名称。
以太网_百度百科 :https://baike.baidu.com/item/以太网/99684?fr=aladdin
通信适配器(网卡)
可以认为是计算机与外界媒介进行通信的接口,就是一块网络接口板,也叫做网卡;
-
这种通信适配器上装有处理器和存储器(ROM和RAM),其中MAC地址就存储在ROM中。
-
网卡与局域网之间的通信通过双绞线这种媒介,与主机通信是IO总线。
-
功能:对数据进行转换,所以要有存储器。
-
在主板上装上网卡的时候,也要装上这个网卡相应的驱动程序,以保证与计算机之间的数据交互。
-
要能够实现以太网协议。
-
当适配器在接受和发送各种帧的时候,不使用计算机的CPU。
-
当收到有差错的帧的时候,可以丢弃,不用通知计算机。当收到正确的帧的时候,要用中断来通知计算机。
一般主机上都有两块网卡,一块是局域网网卡,另一块是无线局域网网卡,每个网卡都会有一个MAC地址。
7.MAC地址
8.ARP地址解析协议
为什么使用ARP地址解析协议?
如果我们知道了IP地址,但是在传输帧的时候,怎么才能知道目的IP对应的主机的MAC地址呢?
因为我们知道,经过网络层的封装之后,目的IP就是下一个设备(主机or路由器),但是这时候并不知道下一个设备的MAC地址,所以我们通过双绞线传输的时候就找不到下一个目标了。如何解决呢? 其实主机中都会有一个ARP高速缓存表,这个表是自学习的,其中记录着本网络中的其他主机的MAC地址,每一个都会有一个属性(静态的or动态的)。然后通过查找这个就知道了。
-
只能在一个网络中有效,不能跨网络使用。
-
每个主机都会有一个ARP高速缓存表。
-
ARP缓存表中有静态MAC和动态MAC两种。
过程:
9.集线器和交换机
-
集线器
- 工作在物理层
- 仅仅提供比特流的转发功能,没有检测功能。判断帧是否为自己的所需要的工作交给网卡。
- 相当于总线的一段。
-
交换机
- 会根据自己的帧转发表来定向的传递给目的MAC的主机,不会造成多余的转发
- 以太网交换机工作在数据链路层(也包括物理层)
- 以太网交换机收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。
- 以太网交换机是一种即插即用设备,刚上电启动时其内部的帧交换表是空的。随着网络中各主机间的通信,以太网交换机通过自学习算法自动逐渐建立起帧交换表。
-
集线器,交换机对比
- 集线器已经淘汰,目前主要使用交换机。
- 集线器碰撞风险大。
10.以太网交换机的自学习
以太网交换机是一种即插即用设备,刚上电启动时其内部的帧交换表是空的。随着网络中各主机间的通信,以太网交换机通过自学习算法自动逐渐建立起帧交换表。
**帧交换表中的MAC地址有过期时间,到期自动删除。因为接口和主机的对应关系并不是永久的。**可能原因如下:
- 交换机的接口更换了主机。
- 主机上的网卡更换了。
11.为什么主机上有ARP高速缓存表,交换机上还需要帧交换表?里面都是MAC地址。
ARP高速缓存表是在主机中的,里面存储的是本网络中的其他主机的MAC地址。主要目的就是将MAC地址放到帧中,进行传输。交换机中的帧交换表是为了减少总线上的碰撞,不是和集线器一样的广播传输,而是通过里面的接口和MAC地址的对应关系进行高高效的准确转发。
12.为什么使用VLAN?
-
我们都知道,使用交换机可以使帧得以传播,但是当一个主机发送一个广播帧之后,这个帧就会传播整个局域网(也就是通过交换机连接的所有交换机设备或者主机)。这就浪费了太多的网络资源。怎么解决呢?
-
可以使用路由器,路由器可以屏蔽这种广播帧,也就是,路由器不转发广播帧。但是路由器花费太多,如何解决这个问题呢?
-
可以使用VLAN。
13.VLAN的实现机制
主要通过交换机来实现的,通过IEEE 802.1Q帧和不同的端口类型来实现的。
-
802.1Q帧对以太网的MAC帧进行了扩充,增加了四字节的标记。
-
端口
交换机的每个端口有且仅有一个PVID。
- 🥇PVID:端口的唯一标志
- 🥇VID:帧的唯一标志
一道习题:
为什么会出现这种情况呢?
首先,看第一种情况,A发送的广播帧,首先进行打标签,由于Trunk端口的PVID==帧的VID,T端口去标签进行转发。然后,交换机2的T端口接收到交换机1T端口发来的无标签的帧,然后加上自己的PVID进行打标签,然后,交换机2将该帧发送给E,F(因为这两个端口的PVID == 帧的VID)。
再来看第二种情况:A,交换机1的T端口转发的时候由于帧的VID != T的PVID,所以直接转发,交换机2直接接受,正确转发。C发的帧的VID == T的PVID,所以去标签转发,交换机2的T端口再给帧加上自己的PVID,也就是这时候帧的VID==1,转发给E,F转发失败。