概述
目录
一、数据链路层概述
二、封装成帧
三、差错检测
3.1、奇偶校验
3.2、循环冗余校验CRC
四、可靠传输
4.1、可靠传输的基本概念
4.2、可靠传输的实现机制
4.2.1、停止-等待协议SW
4.2.2、回退N帧协议GBN
4.2.3、选择重传协议SR
五、点对点协议PPP
5.1、简介
5.2、PPP帧格式
5.3、PPP帧实现透明传输
5.4、PPP帧的差错检测
六、媒体接入控制
6.1、媒体接入控制的基本概念
6.2、媒体接入控制 - 静态划分信道
6.3、媒体接入控制一动态接入控制一随机接入一CSMA/CD协议
6.3.1、CSMA/CD协议的工作原理
6.3.2、使用CSMA/CD协议的以太网的争用期(碰撞窗口)
6.3.3、使用CSMA/CD协议的以太网的最小帧长和最大帧长
6.3.4、CSMA/CD协议使用的截断二进制指数退避算法
6.3.5、以太网的信道利用率
6.4、媒体接入控制一动态接入控制一随机接入一CSMA/CA协议
6.4.1、避免碰撞CA
6.4.2、常用的两种帧间间隔
6.4.3、CSMA/CA协议的退避算法
6.4.4、信道预约
七、MAC地址 IP地址 ARP协议
7.1、MAC地址
7.2、IP地址
7.3、地址解析协议ARP
八、集线器与交换机的区别
8.1、使用双绞线和集线器HUB的星型以太网
8.2、以太网交换机
8.3、区别对比
九、以太网交换机自学习和转发帧的流程
十、以太网交换机的生成树协议STP
十一、虚拟局域网VLAN
11.1、虚拟局域网VLAN概述
11.2、虚拟局域网VLAN的实现机制
11.2.1、IEEE 802.1Q帧
11.2.2、交换机的端口类型
11.2.3、Access端口介绍
11.2.4、Trunk端口介绍
11.2.5、Hybrid端口介绍
一、数据链路层概述
链路(Link)就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。数据链路(Data Link)是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路。数据链路层以帧为单位传输和处理数据。
使用点对点信道的数据链路层的三个重要问题:
(1)、封装成帧:数据链路层给网络层协议数据单元添加一个数据链路层协议首部,简称为帧头,再添加一个帧尾。这两个操作叫封装成帧。
(2)、差错检测:检错码封装在帧尾,接收方根据检测码和检测算法就可以判断是否发生差错。
(3)、可靠传输:发生差错,重传。
使用广播信道的数据链路层:
(1)、共享式以太网的媒体接入控制协议CSMA/CD(载波监听多址接入/碰撞检测)。
(2)、802.11局域网的媒体接入控制协议CSMA/CA(载波监听多址接入/避免碰撞)。
二、封装成帧
封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧。帧头和帧尾中包含有重要的控制信息。帧头和帧尾的作用之一就是帧定界。
透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。面向字节的物理链路使用字节填充(或称字符填充)的方法实现透明传输。面向比特的物理链路使用比特填充的方法实现透明传输。
为了提高帧的传输效率,应当使帧的数据部分的长度尽可能大些。考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU。
三、差错检测
实际的通信链路都不是理想的,比特在传输过程中可能会产生差错::1 可能会变成0,而0也可能变成1。这称为比特差错。在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER。使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一。
比特差错只是传输差错中的一种。从整个计算机网络体系结构来看,传输差错还包括分组丢失、分组失序以及分组重复。分组丢失、分组失序以及分组重复这些传输差错,一般不会出现在数据链路层,而会出现在其上层。
下面介绍两种检测差错的方法。
3.1、奇偶校验
在待发送的数据后面添加1位奇偶校验位,使整个数据(包括所添加的校验位在内)中“1”的个数为奇数(奇校验)或偶数(偶校验)。如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码;如果有偶数个位发生误码,则奇偶性不发生变化,不能检查出误码(漏检)。
3.2、循环冗余校验CRC
收发双方约定好一个生成多项式G(x);发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码),将其添加到待传输数据的后面一起传输;接收方通过生成多项式来计算收到的数据是否产生了误码。
发送方的处理如下图
接收方的处理如下图
下面举一个例子:
【循环冗余校验CRC举例】待发送的信息为101001,生成多项式为,计算余数如下。
【循环冗余校验CRC举例】待发送的信息为101101001,生成多项式为,判断传输是否无码?
检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误。要想纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错。但纠错码的开销比较大,在计算机网络中较少使用。循环冗余校验CRC有很好的检错能力(漏检率非常低),虽然计算比较复杂,但非常易于用硬件实现,因此被广泛应用于数据链路层。在计算机网络中通常采用我们后续课程中将要讨论的检错重传方式来纠正传输中的差错,或者仅仅是丢弃检测到差错的帧,这取决于数据链路层向其上层提供的是可靠传输服务还是不可靠传输服务。
四、可靠传输
4.1、可靠传输的基本概念
不可靠传输服务:仅仅丢弃有误码的帧, 其他什么也不做。
可靠传输服务:想办法实现发送端发送什么,接收端就收到什么。
一般情况下,有线链路的误码率比较低,为了减小开销,并不要求数据链路层向上提供可靠传输服务。即使出现了误码,可靠传输的问题由其上层处理。无线链路易受干扰,误码率比较高,因此要求数据链路层必须向上层提供可靠传输服务。可靠传输服务并不仅局限于数据链路层,其他各层均可选择实现可靠传输。
4.2、可靠传输的实现机制
下面介绍三种可靠传输机制,这三种可靠传输实现机制的基本原理并不仅限于数据链路层,可以应用到计算机网络体系结构的各层协议中。
4.2.1、停止-等待协议SW
接收端检测到数据分组有误码时,将其丢弃并等待发送方的超时重传。但对于误码率较高的点对点链路,为使发送方尽早重传,也可给发送方发送NAK分组。为了让接收方能够判断所收到的数据分组是否是重复的,需要给数据分组编号。由于停止-等待协议的停等特性,只需1个比特编号就够了,即编号0和1。为了让发送方能够判断所收到的ACK分组是否是重复的,需要给ACK分组编号,所用比特数量与数据分组编号所用比特数量一样。 数据链路层般不会出现ACK分组迟到的情况,为了让发送方能够判断所收到的ACK分组是否是重复的,需要给ACK分组编号,所用比特数量与数据分组编号所用比特数量一样。
数据链路层一般不会出现ACK分组迟到的情况,因此在数据链路层实现停止-等待协议可以不用给ACK分组编号。
超时计时器设置的重传时间应仔细选择。一般可将重传时间选为略大于“从发送方到接收方的平均往返时间”。(在数据链路层点对点的往返时间比较确定,重传时间比较好设定。然而在运输层,由于端到端往返时间非常不确定,设置合适的重传时间有时并不容易。)
当往返时延RTT远大于数据帧发送时延TD时(例如使用卫星链路),信道利用率非常低。若出现重传,则对于传送有用的数据信息来说,信道利用率还要降低。为了克服停止-等待协议信道利用率很低的缺点,就产生了另外两种协议,即后退N帧协议GBN和选择重传协议SR。
4.2.2、回退N帧协议GBN
对于发送方:
发送窗口的取值范围是,其中,n是构成分组序号的比特数量。
当时,等同于停止-等待协议;当时,接收方无法辨认新、旧数据分组。
发送方可在未收到接收方确认分组的情况下,将序号落在发送窗口内的多个数据分组全部发送出去;发送方只有收到对已发送数据分组的确认时,发送窗口才能向前相应滑动;发送方收到多个重复确认时,可在重传计时器超时前尽早开始重传,由具体实现决定;发送方发送窗口内某个已发送的数据分组产生超时重发时,其后续在发送窗口内且已发送的数据分组也必须全部重传,这就是回退N帧协议名称的由来。
对于接收方:
接收方的接收窗口尺寸的取值范围是,因此接收方只能按序接收数据分组。
接收方只接收序号落在接收窗口内且无误码的数据分组,并且将接收窗口向前滑动一个位置,与此同时给发送方发回相应的确认分组。为了减少开销,接收方不一定每收到一个按序到达且无误码的数据分组就给发送方发回一个确认分组,而是可以在连续收到好几个按序到达且无误码的数据分组后(由具体实现决定),才针对最后一个数据分组发送确认分组,这称为累积确认;或者可以在自己有数据分组要发送时才对之前按序接收且无误码的数据分组进行捎带确认;接收方收到未按序到达的数据分组,除丢弃外,还要对最近按序接收的数据分组进行确认。
总结:
回退N帧协议在流水线传输的基础上利用发送窗回来限制发送方连续发送数据分组的数量,是一种连续ARQ协议。在协议的工作过程中发送窗口和接收窗口不断向前滑动,因此这类协议又称为滑动窗回协议。由于回退N帧协议的特性,当通信线路质量不好时,其信道利用率并不比停止等待协议高。
4.2.3、选择重传协议SR
前言:
回退N帧协议的接收窗口尺寸只能等于1,因此接收方只能按序接收正确到达的数据分组。一个数据分组的误码就会导致其后续多个数据分组不能被接收方按序接收而丢弃(尽管它们无乱序和误码)。这必然会造成发送方对这些数据分组的超时重传,显然这是对通信资源的极大浪费。为了进一步提高性能,可设法只重传出现误码的数据分组。因此,接收窗口的尺寸不应再等于1 (而应大于1),以便接收方先收下失序到达但无误码并且序号落在接收窗口内的那些数据分组,等到所缺分组收齐后再一并送交上层。这就是选择重传协议。
注意:选择重传协议为了使发送方仅重传出现差错的分组,接收方不能再采用累积确认,而需要对每个正确接收到的数据分组进行逐一确认!
对于发送方:
发送窗口尺寸的取值范围是,其中,n是构成分组序号的比特数量。
当时,等同于停止-等待协议;当时,接收方无法辨认新、旧数据分组。
发送方可在未收到接收方确认分组的情况下,将序号落在发送窗口内的多个数据分组全部发送出去;发送方只有按序收到对已发送数据分组的确认时,发送窗口才能向前相应滑动;若收到未按序到达的确认分组时,对其进行记录,以防止其相应数据分组的超时重发,但发送窗口不能向前滑动。
对于接收方:
接收窗口尺寸WR的取值范围是。
当时, 与回退N帧协议相同;当时,无意义。
接收方可接收未按序到达但没有误码并且序号落在接收窗口内的数据分组;接收方只有在按序接收数据分组后,接收窗口才能向前相应滑动。
五、点对点协议PPP
5.1、简介
点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议。(是因特网工程任务组IETF在1992年制定的。经过1993年和1994年的修订,现在的PPP协议已成为因特网的正式标准[RFC1661, RFC1662])。
PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成:
(1)、对各种协议数据报的封装方法(封装成帧)
(2)、链路控制协议LCP(用于建立、配置以及测试数据链路的连接)
(3)、一套网络控制协议NCPs(其中的每一个协议支持不同的网络层协议)
5.2、PPP帧格式
5.3、PPP帧实现透明传输
当帧的数据部分出现帧的定界符时,为了与帧首部的定界符区分开来,需要在帧的数据为F的部分,根据所使用的电路类型,插入字节或者比特。
透明传输 - 面向字节的异步链路采用插入转义字符的字节填充法如下图:
透明传输 - 面向比特的同步链路采用插入比特0的比特填充法如下图:
5.4、PPP帧的差错检测
RFC 1662的附录部分给出了FCS的计算方法的C语言实现(查表法)。
接收方每收到一个PPP帧,就进行CRC检验。若CRC检验正确,就收下这个帧;反之,就丢弃这个帧。使用PPP的数据链路层向上不提供可靠传输服务。
六、媒体接入控制
6.1、媒体接入控制的基本概念
信道的划分分静态划分和动态划分。
静态划分信道:频分多址、时分多址、码分多址。
动态划分信道:受控接入、随机接入。
6.2、媒体接入控制 - 静态划分信道
信道复用:复用(Multiplexing)是通信技术中的一个重要概念。复用就是通过一条物理线路同时传输多路用户的信号。当网络中传输媒体的传输容量大于多条单一信道传输的总通信量时,可利用复用技术在一条物理线路上建立多条通信信道来充分利用传输媒体的带宽。
常见的复用技术有:
频分复用FDM(频分复用的所有用户同时占用不同的频带资源并行通信)
时分复用TDM(时分复用的所有用户在不同的时间占用同样的频带宽度)
波分复用WDM(光的频分复用)
码分复用CDM(另一种共享信道的方法。实际上,由于该技术主要用于多址接入,人们更常用的名词是码分多址CDMA)
同理,频分复用FDM和时分复用TDM同样可用于多址接入,相应的名词是频分多址FDMA和时分多址TDMA。
(在本课程中,我们不严格区分复用与多址的概念。可简单理解如下)
复用是将单一媒体的频带资源划分成很多子信道,这些子信道之间相互独立,互不干扰。从媒体的整体频带资源上看,每个子信道只占用该媒体频带资源的一部分。多址(更确切地应该称为多点接入)处理的是动态分配信道给用户。这在用户仅仅暂时性地占用信道的应用中是必须的,而所有的移动通信系统基本上都属于这种情况。相反,在信道永久性地分配给用户的应用中,多址是不需要的(对于无线广播或电视广播站就是这样)。与FDM和TDM不同,CDM的每一个用户可以在同样的时间使用同样的频带进行通信。由于各用户使用经过特殊挑选的不同码型,因此各用户之间不会造成干扰。CDM最初是用于军事通信的,因为这种系统所发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现。随着技术的进步,CDMA设备的价格和体积都大幅度下降,因而现在已广泛用于民用的移动通信中。
在CDMA中,每一个比特时间再划分为m个短的间隔,称为码片(Chip) 。通常m的值是64或128。使用CDMA的每一个站被指派一个唯一的m bit码片序列。
一个站如果要发送比特1,则发送它自己的m bit码片序列;
一个站如果要发送比特0,则发送它自己的m bit码片序列的二进制反码;
码片序列挑选原则如下:
(1)、分配给每个站的码片序列必须各不相同,实际常采用伪随机码序列。
(2)、分配给每个站的码片序列必须相互正交(规格化内积为0)。
令向量S表示站S的码片序列,令向量T表示其他任何站的码片序列。两个不同站S和T的码片序列正交,就是向量S和T的规格化内积为0:,,,。
6.3、媒体接入控制一动态接入控制一随机接入一CSMA/CD协议
6.3.1、CSMA/CD协议的工作原理
多址接入MA(多个站点在一条总线上,竞争使用总线)
载波监听CS(每个站点在发送帧之前先要检测一下总线上是否有其他站点在发送帧)
若检测到总线空闲96比特时间,则发送这个帧;若检测到总线忙,则继续检测并等待总线转为空闲96比特时间,然后发送这个帧。
碰撞检测CD(每一个正在发送帧的站边发送边检测碰撞),一旦发现总线上出现碰撞,则立即停止发送,退避一段随机时间后再次发送。
6.3.2、使用CSMA/CD协议的以太网的争用期(碰撞窗口)
发送帧的主机最多经过以太网端到端往返传播时延2t这么长时间,就可检测到本次传输是否发生了碰撞, 2t称为争用期;经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞;以太网规定2t的取值为512比特时间(即发送512比特所耗费的时间) ,对于10Mbps的以太网,2t为51.2μs。
6.3.3、使用CSMA/CD协议的以太网的最小帧长和最大帧长
最小帧长 = 争用期 * 信道带宽(数据发送速率), 对于10Mbps的传统以太网,其争用期为51.2μs,因此最小帧长为512b,即64字节;以太网的最小帧长确保了主机可在帧发送完成之前就检测到该帧的发送过程中是否遭遇了碰撞。如果检测到碰撞,则停止发送帧的剩余部分,退避一段随机事件后, 重新发送该帧;为了防止主机长时间占用总线,以太网的帧也不能太长;以太网V2的MAC帧最大长度为1518字节(1500字节数据载荷,18字节首尾字段);插入VLAN标记的802.1Q帧最大长度为1522字节(1500字节数据载荷,22字节首尾字段)。
6.3.4、CSMA/CD协议使用的截断二进制指数退避算法
随机退避时间 = 争用期2t * 随机数r,其中r从离散的整数集合{}中随机取出一个, k = Min[重传次数,10];当重传达16次仍不能成功时,这表明同时打算发送数据的主机太多以至于连续发生碰撞,则丢弃该帧并向高层报告。
6.3.5、以太网的信道利用率
(T0为帧的发送时间,以太网端到端的距离收受到限制,以太网帧的长度应尽量长些)。
极限信道利用率的表达式:(参数a的值尽量小,以提高信道利用率)。
注意:CSMA/CD协议曾经用于各种总线结构以太网和双绞线以太网的早期版本中。现在的以太网基于交换机和全双工连接,不会有碰撞,因此没有必要使用CSMA/CD协议。
6.4、媒体接入控制一动态接入控制一随机接入一CSMA/CA协议
在无线局域网中,仍然可以使用载波监听多址接入CSMA,即在发送帧之前先对传输媒体进行载波监听。若发现有其他站在发送帧,就推迟发送以免发生碰撞。
6.4.1、避免碰撞CA
在无线局域网中,不能使用碰撞检测CD,原因如下(信号范围有限,见图):
(1)、由于无线信道的传输条件特殊,其信号强度的动态范围非常大,无线网卡,上接收到的信号强度往往会远远小于发送信号的强度(可能相差百万倍)。如果要在无线网卡上实现碰撞检测CD,对硬件的要求非常高。
(2)、即使能够在硬件.上实现无线局域网的碰撞检测功能,但由于无线电波传播的特殊性(存在隐蔽站问题),进行碰撞检测的意义也不大。
802.11无线局域网使用CSMA/CA协议,在CSMA的基础上增加了一个碰撞避免CA功能,而不再实现碰撞检测功能。由于不可能避免所有的碰撞,并且无线信道误码率较高,802.11标准还使用了数据链路层确认机制(停止-等待协议)来保证数据被正确接收。802.11的MAC层标准定义了两种不同的媒体接入控制方式:
(1)、分布式协调功能DCF。在DCF方式下,没有中心控制站点,每个站点使用CSMA/CA协议通过争用信道来获取发送权,这是802.11定义的默认方式。
(2)、点协调功能PCF。PCF方式使用集中控制的接入算法(一般在接入点AP实现集中控制),是802.11定义的可选方式,在实际中较少使用。
802.11标准规定,所有的站点必须在持续检测到信道空闲一段指定时间后才能发送帧,这段时间称为帧间间隔IFS。帧间间隔的长短取决于该站点要发送的帧的类型:高优先级帧需要等待的时间较短,因此可优先获得发送权;低优先级帧需要等待的时间较长。若某个站的低优先级帧还没来得及发送,而其他站的高优先级帧已发送到信道上,则信道变为忙态,因而低优先级帧就只能再推迟发送了。这样就减少了发生碰撞的机会。
6.4.2、常用的两种帧间间隔
短帧间间隔SIFS(28μs),是最短的帧间间隔,用来分隔开属于一次对话的各帧。一个站点应当能够在这段时间内从发送方式切换到接收方式。使用SIFS的帧类型有ACK帧、CTS帧、 由过长的MAC帧分片后的数据帧、以及所有回答AP探询的帧和在PCF方式中接入点AP发送出的任何帧。
DCF帧间间隔DIFS(128μs),它比短帧间间隔SIFS要长得多,在DCF方式中用来发送数据帧和管理帧。
6.4.3、CSMA/CA协议的退避算法
在执行退避算法时, 站点为退避计时器设置一个随机的退避时间:
当退避计时器的时间减小到零时,就开始发送数据;当退避计时器的时间还未减小到零时而信道又转变为忙状态,这时就冻结退避计时器的数值,重新等待信道变为空闲,再经过时间DIFS后,继续启动退避计时器。
在进行第i次退避时, 退避时间在时隙编号{}中随机选择一个,然后乘以基本退避时间(也就是一个时隙的长度)就可以得到随机的退避时间。这样做是为了使不同站点选择相同退避时间的概率减少。当时隙编号达到255时(对应于第6次退避)就不再增加了。
6.4.4、信道预约
为了尽可能减少碰撞的概率和降低碰撞的影响,802.11标准允许要发送数据的站点对信道进行预约。
(1)、源站在发送数据帧之前先发送一个短的控制帧, 称为请求发送RTS(Request To Send),它包括源地址、目的地址以及这次通信(包括相应的确认帧)所需的持续时间。
(2)、若目的站正确收到源站发来的RTS帧,且媒体空闲,就发送一个响应控制帧,称为允许发送CTS(Clear To Send),它也包括这次通信所需的持续时间(从RTS帧中将此持续时间复制到CTS帧中)。
(3)、源站收到CTS帧后,再等待一段时间SIFS后,就可发送其数据帧。
(4)、若目的站正确收到了源站发来的数据帧,在等待时间SIFS后,就向源站发送确认帧ACK。
除源站和目的站以外的其他各站,在收到CTS帧(或数据帧)后就推迟接入到无线局域网中。这样就保证了源站和目的站之间的通信不会受到其他站的干扰。如果RTS帧发生碰撞,源站就收不到CTS帧,需执行退避算法重传RTS帧。由于RTS帧和CTS帧很短,发送碰撞的概率、碰撞产生的开销及本身的开销都很小。而对于一般的数据帧,其发送时延往往大于传播时延(因为是局域网),碰撞的概率很大,且一旦发生碰撞而导致数据帧重发,则浪费的时间就很多,因此用很小的代价对信道进行预约往往是值得的。802.11标准规定了3种情况供用户选择:使用RTS帧和CTS帧、不使用RTS帧和CTS帧、只有当数据帧的长度超过某一数值时才使用RTS帧和CTS帧。除RTS帧和CTS帧会携带通信需要持续的时间, 数据帧也能携带通信需要持续的时间,这称为802.1 1的虚拟载波监听机制。由于利用虚拟载波监听机制,站点只要监听到RTS帧、CTS帧或数据帧中的任何一个,就能知道信道被占用的持续时间,而不需要真正监听到信道上的信号,因此虚拟载波监听机制能减少隐蔽站带来的碰撞问题。
七、MAC地址 IP地址 ARP协议
MAC地址是以太网的MAC子层所使用的地址(数据链路层范畴)。
IP地址是TCP/IP体系结构网际层所使用的地址(网际层范畴)。
ARP协议属于TCP/IP体系结构的网际层, 其作用是已知设备所分配到的IP地址,使用ARP协议可以通过该IP地址获取到设备的MAC地址(网际层范畴)。
尽管IP地址和ARP协议属于TCP/IP体系结构的网际层(而不属于数据链路层),但是它们与MAC地址存在一定的关系,并且我们日常的网络应用都离不开MAC地址、IP地址以及ARP协议。因此,我们将这三者放在一起讨论。
7.1、MAC地址
当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址。在每个主机发送的帧中必须携带标识发送主机和接收主机的地址。由于这类地址是用于媒体接入控制MAC(共享信道要考虑的问题是如何协调多个发送和接收站点对一个共享传输媒体的占用),因此这类地址被称为MAC地址。MAC地址一般被固化在网卡(网络适配器)的电可擦可编程只读存储器EEPROM中,因此MAC地址也被称为硬件地址。MAC地址有时也被称为物理地址。请注意:这并不意味着MAC地址属于网络体系结构中的物理层!
一般情况下,用户主机会包含两个网络适配器:有线局域网适配器(有线网卡)和无线局域网适配器(无线网卡)。每个网络适配器都有一个全球唯一的MAC地址。而交换机和路由器往往拥有更多的网络接口,所以会拥有更多的MAC地址。综上所述,严格来说,MAC地址是对网络上各接口的唯一标识, 而不是对网络上各设备的唯一标识。
7.2、IP地址
IP地址是因特网(Internet) 上的主机和路由器所使用的地址,用于标识两部分信息:网络编号:标识因特网上数以百万计的网络、主机编号:标识同一网络上不同主机(或路由器各接口)。
很显然,之前介绍的MAC地址不具备区分不同网络的功能。如果只是一个单独的网络,不接入因特网,可以只使用MAC地址(这不是一般用户的应用方式),如果主机所在的网络要接入因特网,则IP地址和MAC地址都需要使用。数据包转发过程中源IP地址和目的IP地址保持不变,数据包转发过程中源MAC地址和目的MAC地址逐个链路 (或逐个网络)改变。
从网络体系结构看IP地址与MAC地址(如下图):
数据包转发过程中IP地址与MAC地址的变化情况(如下两幅图):
数据包转发过程中源IP地址和目的IP地址保持不变;
数据包转发过程中源MAC地址和目的MAC地址逐个链路(或逐个网络)改变。
7.3、地址解析协议ARP
源主机在自己的ARP高速缓存表中查找目的主机的IP地址所对应的MAC地址,若找到了,则可以封装MAC帧进行发送;若找不到,则发送ARP请求(封装在广播MAC帧中) ;目的主机收到ARP请求后,将源主机的IP地址与MAC地址记录到自己的ARP高速缓存表中,然后给源主机发送ARP响应(封装在单播MAC帧中),ARP响应中包含有目的主机的I地址和MAC地址;源主机收到ARP响应后,将目的主机的IP地址与MAC地址记录到自己的ARP高速缓存表中,然后就可以封装之前想发送的MAC帧井发送给目的主机。
ARP的作用范围:逐段链路或逐个网络使用;除ARP请求和响应外,ARP还有其他类型的报文(例如用于检查IP地址冲突的"无故ARP、免费ARP(Gratuitous ARP)”);ARP没有安全验证机制,存在ARP欺骗(攻击)问题。
八、集线器与交换机的区别
8.1、使用双绞线和集线器HUB的星型以太网
使用集线器的以太网在逻辑,上仍是一个总线网,各站共享总线资源,使用的还是CSMA/CD协议;集线器只工作在物理层,它的每个接口仅简单地转发比特,不进行碰撞检测(由各站的网卡检测) ; 集线器一般都有少量的容错能力和网络管理功能。例如,若网络中某个网卡出了故障,不停地发送帧。此时,集线器可以检测到这个问题,在内部断开与出故障网卡的连线,使整个以太网仍然能正常工作。
8.2、以太网交换机
以太网交换机通常都有多个接口。每个接口都可以直接与一台主机或另一个以太网交换机相连。一般都工作在全双工方式。以太网交换机具有并行性,能同时连通多对接口,使多对主机能同时通信,无碰撞(不使用CSMA/CD协议)。以太网交换机一般都具有多种速率的接口,例如:10Mb/s、100Mb/s、1Gb/s、 10Gb/s接口的多种组合。以太网交换机工作在数据链路层 (也包括物理层),它收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。以太网交换机是一种即插即用设备,其内部的帧交换表是通过自学习算法自动地逐渐建立起来的。
帧的两种转发方式:存储转发、直通交换:采用基于硬件的交叉矩阵(交换时延小,但是不检查帧是否差错)
8.3、区别对比
九、以太网交换机自学习和转发帧的流程
以太网交换机工作在数据链路层(也包括物理层),是一种即插即用设备,刚上电启动时其内部的帧交换表是空的,随着网络中各主机间的通信,以太网交换机通过自学习算法自动逐渐建立起帧交换表。收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。
以太网交换机自学习和转发帧的流程:
收到帧后进行登记,登记的内容为帧的源MAC地址及进入交换机的接口号;根据帧的目的MAC地址和交换机的帧交换表对帧进行转发,有以下三种情况:明确转发:交换机知道应当从哪个(或哪些)接口转发该帧(单播,多播,广播);盲目转发:交换机不知道应当从哪个端口转发帧,只能将其通过除进入交换机的接口外的其他所有接口转发(也称为泛洪);明确丢弃:交换机知道不应该转发该帧,将其丢弃。
帧交换表中的每条记录都有自己的有效时间,到期删除。原因如下:交换机的接口改接了另一台主机;主机更换了网卡。
十、以太网交换机的生成树协议STP
如何提高以太网的可靠性? - 添加冗余链路可以提高以太网的可靠性。但是,冗余链路也会带来负面效应一形成网络环路。网络环路会带来以下问题:广播风暴(大量消耗网络资源,使得网络无法正常转发其他数据帧);主机收到重复的广播帧(大量消耗主机资源);交换机的帧交换表震荡(漂移)。
以太网交换机使用生成树协议STP,可以在增加冗余链路来提高网络可靠性的同时又避免网络环路带来的各种问题。不论交换机之间采用怎样的物理连接, 交换机都能够自动计算并构建一个逻辑上没有环路的网络,其逻辑拓扑结构必须是树型的(无逻辑环) ;最终生成的树型逻辑拓扑要确保连通整个网络;当首次连接交换机或网络物理拓扑发生变化时 (有可能是人为改变或故障),交换机都将进行生成树的重新计算。
十一、虚拟局域网VLAN
11.1、虚拟局域网VLAN概述
以太网交换机工作在数据链路层(也包括物理层),使用一个或多个以太网交换机互连起来的交换式以太网,其所有站点都属于同一个广播域,随着交换式以太网规模的扩大, 广播域相应扩大。巨大的广播域会带来很多弊端:广播风暴、难以管理和维护、潜在的安全问题。
下面举一些会频繁广播的情况:
TCP / IP协议栈中的很多协议都会使用广播:地址解析协议ARP(已知IP地址,找出其相应的MAC地址)、路由信息协议RIP(一种小型的内部路由协议)、动态主机配置协议DHCP(用于自动配置IP地址)。
分割广播域的方法:使用路由器可以隔离广播域(然而,路由器的成本较高)。因此虚拟局域网VLAN技术应运而生。
虚拟局域网VLAN(Virtual Local Area Network)是一种将局域网内的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组具有某些共同的需求。
11.2、虚拟局域网VLAN的实现机制
11.2.1、IEEE 802.1Q帧
IEEE 802.1Q帧(也称Dot One Q帧)对以太网的MAC帧格式进行了扩展,插入了4字节的VLAN标记。
以太网V2的MAC帧最大长度1518字节:
目的MAC地址(6字节)+ 源MAC地址(6字节)+ 类型(2字节)+ 数据载荷(46~1500字节)+ FCS(4字节)
插入VLAN标记后的802.1Q帧最大长度1522字节:
目的MAC地址(6字节)+ 源MAC地址(6字节)+ VLAN标记(4字节)+ 类型(2字节)+ 数据载荷(46~1500字节)+ FCS(4字节)
VLAN标记的最后12比特称为VLAN标记符VID,它唯一地标记了以太网帧属于哪一个VLAN。VID的取值范围0~4095(0 ~ ),0和4095都不用来表示VLAN,因此用于表示VLAN的VID有效范围是1 ~ 4094。需要注意,802.1Q帧是由交换机来处理的,而不是用户主机来处理的。当交换机收到普通的以太网帧时,会将其插入4字节的VLAN标记转变为802.1Q帧,简称“打标签”。当交换机转发802.1Q帧时,可能会删除其4字节VLAN标记转变为普通以太网帧,简称”去标签“。
11.2.2、交换机的端口类型
交换机的端口类型有以下三种:Access、Trunk、Hybrid。
11.2.3、Access端口介绍
Access端口一般用于连接用户计算机,只能属于一个VLAN。Access端口的PVID值与端口所属VLAN的ID相同(默认为1)。
Access端口接收处理方法:一般只接收“未打标签”的普通以太网MAC帧。根据接收帧的端口的PVID给帧“打标签”,即插入4字节VLAN标记字段,字段中的VID取值与端口的PVID取值相等。Access端口发送处理方法:若帧中的VID与端口的PVID相等,则“去标签”并转发该帧;否则不转发。
11.2.4、Trunk端口介绍
Trunk端口一般用于交换机之间或交换机与路由器之间的互连,可以属于多个VLAN。用户可以设置Trunk端口的PVID值。默认情况下,Trunk端口的PVID值为1。
Trunk端口发送处理方法:对VID等于PVID的帧,“去标签”转发;对VID不等于PVID的帧,直接转发。
Trunk端口接收处理方法:接收”未打标签“的帧,根据接收帧的端口的PVID给帧”打标签“,即插入4字节VLAN标记字段,字段中的VID取值与端口的PVID取值相同,接收”已打标签“的帧。
Trunk端口转发练习,判断下面的转发情况:
11.2.5、Hybrid端口介绍
Hybrid端口既可用于交换机之间或交换机与路由器之间的互连(同Trunk端口),也可用于交换机与用户计算机之间的互连(同Access端口),可以属于多个VLAN (同TrunK端口)。用户可以设置Hybrid端口的PVID值。默认情况下,Hybrid端口的PVID值为1(同Trunk端口)。
Hybrid端口发送处理方法(与Trunk端口不同):查看帧的VID是否在端口”去标签“列表中:若存在,则”去标签“后再转发;若不存在,则直接转发。
Hybrid端口接收处理方法(同Trunk端口):接收“未打标签”的帧,根据接收帧的端口PVID给帧“打标签”,即插入4字节VLAN标记字段,字段中的VID取值与端口的PVID取值相等;接收“已打标签”的帧。
最后
以上就是顺心小懒虫为你收集整理的计算机网络 第三章 数据链路层一、数据链路层概述二、封装成帧三、差错检测四、可靠传输五、点对点协议PPP六、媒体接入控制七、MAC地址 IP地址 ARP协议 八、集线器与交换机的区别九、以太网交换机自学习和转发帧的流程十、以太网交换机的生成树协议STP十一、虚拟局域网VLAN的全部内容,希望文章能够帮你解决计算机网络 第三章 数据链路层一、数据链路层概述二、封装成帧三、差错检测四、可靠传输五、点对点协议PPP六、媒体接入控制七、MAC地址 IP地址 ARP协议 八、集线器与交换机的区别九、以太网交换机自学习和转发帧的流程十、以太网交换机的生成树协议STP十一、虚拟局域网VLAN所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复