1、数据链路层基本概念
- 链路(Link)就是从一个节点到相邻节点的一段物理线路,且过程中没有经过任何网络交换。
- 数据链路(Data Link)是指把实现通信协议的硬件和软件加到链路上,从而实现数据传输。数据链路层以帧为单位传输和处理数据。
使用点对点信道的数据链路层有三个重要问题: 封装成帧:将上层交付的协议数据单元封装 差错检测:根据帧尾的检错码检测帧中是否有误码 可靠传输:实现发送方与接收方的收发内容完全一致
2、封装成帧
封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧。帧头和帧尾中包含重要的控制信息,可以实现帧定界。
为了提高帧的传输效率,应当使帧的数据部分长度尽可能大。考虑到差错控制等因素,每一种数据链路协议都规定了帧的数据部分长度上限,即最大传送单元MTU(Maximum Transfer Unit)。
3、差错检测
实际的通信链路都不是理想的,比特传输过程中可能会产生差错:1可能变成0,0可能变成1,这称为比特差错。在一段时间内,传输错误的比特占传输出比特总数的比率称为误码率BER(Bit Error Rate)。使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层要解决的重要问题之一。
两种用于差错检测的方法:
奇偶校验:在待发送的数据后面添加1位奇偶校验位,使整个数据(包括所添加的校验位)中"1"的个数为奇数(奇校验)或偶数(偶校验)。 如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码;如果偶数个位发生变化,则奇偶性不变,不能检测出误码。
循环冗余校验CRC(Cyclic Redundancy Check)
- 收发双方约定好一个生成多项式
- 发送方基于待发送数据和生成多项式计算出差错检测码(冗余码),将其添加到待传输数据的后面一起发送给接收方
- 接收方通过收到的数据和生成多项式来判断收到的数据是否产生误码。
不过检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误。要想纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错。但纠错码的开销较大,在计算机网络中很少使用。循环冗余校验CRC有很好的检错能力(漏检率非常低),虽然计算比较复杂,但是易于用硬件实现,因此被广泛应用于数据链路层。在网络中通常会采用检错重传的方式来纠正传输中的差错,或者仅仅是丢弃检测到差错的帧,这取决于数据链路层向上层提供的是可靠传输服务还是不可靠的传输服务。
4、可靠传输
通常情况下,有线链路的误码率比较低,为了减小开销,不要求数据链路层向上提供可靠传输服务,即使出现了误码,可靠传输的问题由其上层处理;而无线链路易受干扰,误码率较高,因此要求无线链路的数据链路层必须向上层提供可靠的传输服务。 数据链路层中的可靠传输主要是为了解决比特差错,也就是说可靠传输服务不仅局限于数据链路层,其他各层均可以选择实现可靠传输。
可靠传输的实现机制
- 停止等待协议(SW)
- 回退N帧协议(GBN)
- 选择重传协议(SR)
值得注意的是,这三种可靠传输实现机制的基本原理并不仅限于数据链路层,可以被应用到计算机网络体系结构的各层协议中。这三种协议都属于自动请求重传协议(ARQ协议)。
停止等待协议(Stop-and-Wait)
- 停止等待的意思是发送方在发送完数据分组后,需要等待接收方传回的确认数据,然后再接着发送数据。
- 如果接收方收不到数据分组,就不会发送ACK或NAK等确认消息,因此在发送方可以添加超时计时器,如果达到了设置的重传时间后发送方仍收不到接收方的数据,则发送方重传数据分组,这称为超时重传。
- 在接收端检测到数据分组有误码时,将其丢弃并等待发送方的超时重传,但对于误码率较高的点对点链路,为了使发送方尽早重传,也可以向其发送NAK分组。
- 为了让双方判断收到的数据是否重复,要给数据分组编号。数据链路层一般不会出现ACK分组迟到的情况,因此再数据链路层实现停止等待协议可以不用给ACK分组编号。
- 超时计时器设置的重传时间要仔细选择,一般可以将重传时间选为略大于“从发送方到接收方的平均往返时间”。
在数据链路层点对点的往返时间比较确定,重传时间容易设定; 在运输层,由于端到端的往返时间非常不确定,因此设置合适的重传时间并不容易。 停止等待协议的信道利用率: 当往返时延RTT(Round-Trip Time)远大于数据帧发送时延TD时(例如使用卫星链路),信道效率非常低。如果出现重传,信道利用率会进一步降低。为了克服停止等待协议信道利用率很低的缺点,就产生了回退N帧协议(GBN)和选择重传协议(SR)。
回退N帧协议(Go-Back-N)
当接收方的数据接收出现差错时,需要回到最先出现差错的位置重新接收数据。因此被称为回退N帧协议 如果WT超过取值范围,就会因为接收方无法分辨新旧数据分组而产生分组重复问题。 回退N帧协议利用发送方连续发送数据分组,是一种连续ARQ协议。在协议工作过程中发送窗口和接收窗口不断向前滑动,因此这类协议又被称为滑动窗口协议。由于回退N帧协议的后退特性,当通信线路质量不好时,其信道利用率并不比停止-等待协议高。
选择重传协议(Selective Request)
发送方将序号落在发送窗口内的多个分组全部发送出去,接收方可接收未按序到达、没有误码且序号落在接收窗口内的数据分组。 为了使发送方仅重传出现差错的分组,接收方不能再采用累积确认,而要对每个正确接收到的数据分组进行逐一确认。 发送方只有收到已发送数据所有分组的确认后,发送窗口才向前滑动,若收到未按序到达的确认分组,会对其进行记录,以防止其相应数据分组的超时重发,但是发送窗口不能向前滑动。 接收方只有在接收所有的数据分组后,接收窗口才能够向前滑动。
5、点对点协议(PPP)
点对点协议(Point-to-Point Protocol)是目前使用最广泛的数据链路层协议 点对点协议的帧格式
6、媒体接入控制
共享信道要着重考虑的一个问题就是怎样协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC(Medium Access Control)。实现MAC主要有以下两种方式:
静态划分信道
动态接入控制
静态划分信道:采用信道复用技术,包括频分复用(FDMA)、时分复用(TDMA)、波分复用(WDMA)和码分复用(CDMA)。 码分复用是指各用户使用经过特殊挑选的不同码型进行通信,用户之间不会产生干扰。可以在同样的时间使用相同的频带进行通信。
动态划分信道
CSMA/CD
1、CSMA/CD 载波监听多址接入/碰撞检测的工作原理 载波监听CS:发送帧前先检测总线,若总线空闲96比特时间,则立即发送帧;若总线忙,则持续检测总线直到总线空闲96比特时间后再重新发送。 多址接入MA:多个主机连接在一根总线上,竞争使用总线。 碰撞检测CD:一边发送帧一边检测碰撞,如果检测到碰撞,就立即停止发送,退避一段随机时间后再重新发送。 整个过程可以总结为“先听后说,边说边听,一旦冲突,立即停说,等待时机,重新再说”。
2、使用CSMA/CD协议的以太网争用期(碰撞窗口) 发送帧的主机最多经过以太网端到端往返传播时延2τ这么长时间,就可以检测到本次传输是否发生了碰撞,2τ称为争用期;
经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞;
以太网规定2τ的取值为512比特时间(即发送512比特所耗费的时间),对于10Mbps的以太网,2τ为51.2μs。 CSMA/CD协议曾经用于各种总线结构以太网和双绞线以太网的早期版本中。现在的以太网基于交换机和全双工连接,不会有碰撞,因此没有必要使用CSMA/CD协议。
CSMA/CA
CSMA/CA载波监听多址接入/碰撞避免
7、MAC地址、IP地址和ARP协议
MAC地址是以太网的MAC子层使用的地址,属于数据链路层 多个主机连接在同一个广播信道上时,要想实现两个主机之间的通信,则每个主机都必须有一个唯一标识,即一个数据链路层地址。在每个主机发送的帧中必须携带标识发送主机和接收主机的地址。这类地址用于媒体接入控制(Media Access Control),被称为MAC地址。 MAC地址一般被固化在网卡(网络适配器)中,因此MAC地址也被称为硬件地址、物理地址。 一般情况下,用户主机会包含两个网络适配器:有限局域网适配器(有线网卡)和无线局域网适配器(无线网卡)。每个网络适配器都有一个全球唯一的MAC地址。而交换机和路由器往往拥有更多的网络接口,所以拥有更多MAC地址。 MAC地址是对网络上各个接口的唯一标识,而不是对网络上各设备的唯一标识。
IP地址是TCP/IP协议体系结构网络层所使用的地址 IP地址是因特网上主机和路由器使用的地址,用于标识两部分信息: 网络编号:标识因特网上数以百万计的网络 主机编号:标识同一网络上的不同主机(或者是路由器的各接口) 也就是说,如果只是一个单独的网络,不接入因特网,可以只使用MAC地址。如果主机所在的网络要接入因特网,则IP地址和MAC地址都要使用。 数据包转发过程中源IP地址和目的IP地址保持不变;源MAC地址和目的MAC地址逐个链路(逐个网络)改变。
ARP协议属于TCP/IP协议体系结构的网络层,其作用是通过IP地址解析获取设备的MAC地址。
- 源主机在自己的ARP高速缓存表中查找目的主机的IP地址所对应的MAC地址,若找到了,则可以封装MAC帧进行发送;若找不到则发送ARP请求(ARP请求封装在广播MAC帧中)。
- 目的主机在收到ARP请求后,将源主机的IP地址与MAC地址记录到自己的ARP高速缓存表中,然后给源主机发送ARP响应(封装在单播MAC帧中),ARP响应中包含有目的主机的IP地址和MAC地址。
- 源主机收到ARP响应后,将目的主机的IP地址与MAC地址记录到自己的ARP高速缓存表中,然后就可以封装之前想发送的MAC帧并发送给目的主机。
- ARP的作用范围是同一段链路,不能跨网络作用。
8、集线器和交换机的区别
9、以太网交换机的自学习和帧转发流程
10、使用生成树协议提高网络可靠性
11、虚拟局域网VLAN
使用一个或多个以太网交换机互连起来的交换式以太网,其所有站点都属于同一个广播域。随着交换式以太网规模的扩大,广播域相应扩大。巨大的广播域会产生广播风暴等问题,难以维护和管理,因此要对广播域进行分割。但是使用路由器隔离广播域成本较高,因此产生了虚拟局域网VLAN技术。VLAN是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组具有某些共同的需求。
具体实现
交换机的端口类型有以下三种:Access、Trunk、Hybrid 交换机各端口的缺省VLAN ID 这里要注意的是,带标签的帧是不能被主机识别的,只有在帧去标签后才是有效的数据帧。
- 在思科交换机上称为Native VLAN,即本征VLAN。
- 在华为交换机上称为Port VLAN ID(PVID),即端口VLAN ID。
|