4、数据链路层
约 17298 字大约 58 分钟
2025-06-18
接收方主机收到帧后通过检错码和检错算法判断出帧在传输过程中是否出现误码
使用点对点信道的数据链路层
可靠传输: 如果数据链路层为上层提供的是不可靠服务,接收方主机收到有误码的帧后不接受该帧,将其丢弃 如果数据链路层为上层提供的是可靠服务,就还需要其他措施来确保接收方主机还可以重新收到这个帧的正确副本
使用广播信道的数据链路层(共享式局域网)
通过编址解决是否是自己要接收的问题 当总线上多台主机同时使用总线传输帧时传输信号会产生碰撞这是采用广播信道的共享式局域网不可避免的 以太网采用媒体接入控制协议CSMA/CD(载波监听多点接入/碰撞检测) 随着技术的发展交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交换式局域网在有线领域(局域网)已经完全取代了共享式局域网
由于无线信道的广播天性无线局域网仍然使用共享信道技术 如:802.11使用的就是CSMA/CD协议
封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧。
- 帧头和帧尾中包含有重要的控制信息。
- 帧头和帧尾的作用之一就是帧定界。
以太网版本2的MAC帧格式在其帧头和帧尾中并没有包含帧界定标志 以太网的数据链路层封装好MAC帧后将其交付给物理层,物理层会在MAC帧前面加上8字节的前导码,然后载将比特流转换成电信号发前导码前七个字节为前同步码作用是使接收方的时钟同步之后一字节为帧开始定界符,表明其后面紧跟着的是MAC帧。另外以太网还规定了帧间间隔时间为96bit的发送时间,因此MAC帧并不需要帧结束定界符,帧间间隔还有其他作用
透明传输
面向字节的物理链路使用字节填充(字符填充)实现透明传输
指数据链路层对上层交付的传输数据没有任何限制 就好像数据链路层不存在一样 帧头和帧尾的帧定界标志就是特定数值,假如在上层交付的协议数据单元中恰好也包含了这个特定数值接收方就不能正确接收该帧,如果数据链路层不采取其他措施来避免接收方对帧结束的误判就不能称为透明传输 解决方法:在发送帧之前,对帧的数据部分进行扫描,如果出现帧定界符就在其前面插入一个转义字符,如果也包含转义字符就在转义字符前也插入一个转义字符。转义字符是一种特殊的控制字符,其长度为一字节对应的十进制值是27
面向比特的物理链路使用的是比特填充方式实现透明传输
帧的定界符为01111110如果帧数据部分出现帧定界标志在发送前采用零比特填充法对数据部分进行扫描每五个连续的比特1部分就插入一个比特0这样就确保帕帧界定符的唯一性从而实现数据传输
为提高帧的传输效率,应当使帧的数据部分尽可能大些 但考虑到差错控制等因素,每种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU(Maximum Transfer Unit)
实际的通信链路都不是理想的,比特在传输过程中可能会产生差错:1可能会变成0,而0也可能变成1。这称为比特差错。 在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate)。 使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一。
奇偶校验
在待发送的数据后面添加1位奇偶校验位,使整个数据(包括所添加的校验位在内)中“1”的个数 为奇数(奇校验)或偶数(偶校验)。 如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码; 如果有偶数个位发生误码,则奇偶性不发生变化,不能检查出误码(漏检);
由于奇偶校验的误检率比较高,因此计算机网络中通常不采用这种方法
循环冗余校验CRC
漏检率极低
收发双方约定好一个生成多项式G(x) 发送方基于待发送的数据和生成多项式计算出差错检验码(冗余码)将其添加到待传输数据的后面一起传输 接收方通过生成多项式来计算收到的数据是否产生了误码
- 检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误。
- 要想纠正传输中的差错,可以使用余信息更多的纠错码进行前向纠错。但纠错码的开销比较大,在计算机网络中较少使用。
- 循环余校验CRC有很好的检错能力(漏检率非常低),虽然计算比较复杂,但非常易于用硬件实现,,因此被广泛应`用于数据链路层。
- 在计算机网络中通常采用我们后续课程中将要讨论的检错重传方式来纠正传输中的差错或者仅仅是丢弃检测到差错的帧,这取决于数据链路层向其上层提供的是可靠传输服务还是不可靠传输服务。
可靠传输服务要想办法实现发送端发送什么,接收端就收到什么。 一般情况下,有线链路的误码率比较低,为了减小开销,并不要求数据链路层向上提供可靠传输服务。即使出现了误码,可靠传输的问题由其上层处理。无线链路易受干扰,误码率比较高,因此要求数据链路层必须向上层提供可靠传输服务。 比特差错只是传输差错中的一种。 从整个计算机网络体系结构来看,传输差错还包括分组丢失、分组失序以及分组重复。分组丢失、分组失序以及分组重复这些传输差错,一般不会出现在数据链路层,而会出现在其上层。 可靠传输服务并不仅局限于数据链路层,其他各层均可选择实现可靠传输。 数据链路层不一定要实现可靠传输,有线链路一般不需要实现可靠传输,无线局域网数据链路层要实现可靠传输,数据链路层可靠是点对点的可靠,并不是真的可靠,主要保证物理层的可靠
三种可靠传输的实现机制
- 停止-等待协议SW
- 回退N帧协议GBN
- 选择重传协议SR 这三种可靠传输实现机制的基本原理并不仅限于数据链路层,可以应用到计算机网络体系结构的各层协议中。
停止-等待协议SW
对于数据连路层的点对点信道,往返时间比较确定,不会出现确认迟实现到的情况,因此如果只在数据链路层停止-等待协议可以不用给确认分组编号
确认与否认 发送方发送分组给接收方,接收方收到分组后返回确认分组(ACK)或否认分组(NCK)给发送方,因此发送方发送数据分组后不能立刻将该分组删除,需要收到针对该数据分组的ack后再删除
超时重传 如果数据分组在发送时丢失,接收方接收不到数据分组也就不会发送ack,发送方就会一直处于等待接收方ACK或NAK的状态。 为解决该问题,可以在发送方发送完一个数据分组时,启动一个超时计时器。若到了超时计时器所设置的重传时间而发送方仍收不到接收方的任何ACK或NAK,则重传原来的数据分组,这就叫做超时重传。 一般可将重传时间选为略大于“从发送方到接收方的平均往返时间”
确认丢失 如果接收方发送的ack丢失发送方就会再发送一份相同的数据给接收方 为避免分组重复这种传输错必须给每个分组带上序号。对于停止-等待协议,由于每发送一个数据分组就停止等待,只要保证每发送一个新的数据分组,其发送序号与上次发送的数据分组的序号不同就可以了,因此此用一个比特来编号就够了
确认迟到 如果接收方发送的ack因为延迟导致接收方在超过超时重传的时间后才接收到ack就会重复发送数据,接收到ack后再发送下一组数据,这样就会导致数据错误,因此也需要对ack进行编号
在数据链路层点对点的往返时间比较确定,重传时间比较好设定 但在运输层,由于端到端往返时间非常不确定,设置合适的重传时间有时并不容易
信道利用率
TD:发送方发送数据分组所耗费的发送时延 RTT:收发双方之间的往返时间 TA:接收方发送确认分组耗费的发送时延(由于时间较短通常可以忽略) 忽略接收方对数据分组的处理时延和发送方对确认分组的处理时延 只有在时间TD才发送有用的数据
当往返时延RTT远大于数据帧发送时延TD时(如卫星链路)信道利用率非常低 若出现重传,则对于传送有用的数据信息来说信道利用率还早降低
回退N帧协议GBN
- 采用3个比特给分组编序号,即席号0~7
- 发送窗口的尺寸WT的取值:1 < WT ≤ 2n−1。(其中n为构成分组序号的比特数量,本例n为3),本例WT取5 如果WT的值取为1则是停止-等待协议,如果WT的值超过取值上限则会造成严重的错误
- 接收窗口的尺寸WR的取值为1 ,对于回退N帧协议,其取值只能为1
无差错的情况 发送方将序号落在发送窗口内的04号数据分组依次连续发送出去(没有出现乱序和误码)接收方按序接收他们。每接收一个,接收窗口就往后滑动一个位置,并给发送方发送针对所接受分组的确认分组。04号的确认分组经过互联网的传输正确到达了发送方,发送方每接收一个发送窗口也往后滑动一个位置,这样就有新的序号落入得发送窗口 发送方可以将收到确认的数据分组从缓存中删除,接收方可以择机将已接收的数据分组交付上层处理
累积确认 没有错误的情况 接收方不一定要对的收到的数据分组逐个发送确认,而是可以在收到几个数据分组后(由具体实现决定)对按序列到达的最后一个数据分组发送确认,ACKn表示序号为n以及以前的所有数据分组都已正确接收 发送方将发送窗口内的04号数据分组依次发送出去接收方按序接收他们,当接受完0和1号数据分组后发送一个ack1表示1以及前面的分组正确接收,当接受完24号数据分组后又发送一个ack4表示2~4号数据分组也接收成功。假设ack1在传输过程中丢失了,ack4正确到达发送方,发送方就知道序号4之前的分组已经正确接收,于是将发送窗口向后滑动五个位置,这样就有新的序号落入的发送窗口。 优点:即使确认分组丢失也可能不必重传 缺点:不能向发送方及时反映出接收方已经正确接收的数据分组信息 发生错误的情况 示例为前4号序号分组发送成功现发送5~1序号。假设他们在传输过程中5号分组出现了误码,于是丢弃5号分组,而后续到达的分组与接收窗口的序号不匹配接收方也不会接受他们,也将其丢弃。并将之前按序接收的最后一个数据分组进行确认,也就是发送ack4,每丢弃一个分组就发送一个ack4发送4个ack4(出现误码的5号分组不算)。发送方之前就接受过ack4,当收到这些重复的ack4后就知道了之前发送的数据分组出现的差错,于是可以不等超时计时器超时就立刻开始重传(至于收到几个重复确认就开始重传就根据具体实现确定)假设收到这4个重复的确认并不会触发发送方立刻重传。一段时间后,超时计时器超时就会将发送窗口内发送过的这些分组全部重传。
尽管序号6、7、0、1的数据分组到达接收方,但由于5号分组不被接收,他们也不被接受,发送方还要重传这些分组,这就是Go-back-N(回退N帧) 当通信线路不好时回退N帧的信道利用率并不比停止-等待协议高。
- 若WT超过取值范围的上限 设WT为8,发送方将07号数据分组依次连续发送出去,接收方按序正确接收到他们后发送ack7,假设ack7在传输过程中丢失,将导致发送方的超时重传,重传的07号分组到达接收方后,接收方根据当前接收窗口的序号会对这8个数据分组按序接收。导致接收方无法分辨新旧分组,会产生分组重复差错。因此发送窗口不能超过其上限
选择重传协议SR
为进一步挺高性能,可设法重传出现误码的数据分组,因此接收窗口的尺寸Wr不应再等于1(而应大于1),以便接收方先收下失序到达但无误码并且序号落在接收窗口内的那些数据分组,等到所缺分组收齐后再一并送交上层,这就是选择重传协议
[!warning] 注意 选择重传协议为了使发送方仅重传出现差错的分组,接收方不能再采用累积确认,而需要对每个正确接收到的分组进行逐一确认
- 采用3个比特给分组编序号,即席号0~7
- 发送窗口的尺寸WT的取值:1 < WT ≤ 2n−1。(其中n为构成分组序号的比特数量,本例n为3),本例WT取4 如果WT的值取为1则是停止-等待协议,如果WT的值超过取值上限则会造成严重的错误
- 接收窗口的尺寸WR的取值为WR=WT
发送方将0~3的数据分组依次都发送出去,假设2号分组丢失。只要序号落入接收窗口且无误码的数据分组接收方都会接收。接收方接收0和1号数据分组接收窗口向后滑动两位并返回0和1号ack,这样就有4和5两个新序号落入接收窗口,接收方接收3号分组并发送3号ack,但接收窗口不能向前滑动,发送方接收到这些ack,发送方每按序接收到一个ack,发送窗口就向后滑动一个序号,接收到0和1号ack发送窗口就向后滑动两个位置,4号和5号两个新的序号就落入发送窗口,发送方将4和5号数据分组发送出去,就可以将0和1号数据分组删除了。发送方接收3号ack,窗口不向后滑动,因为3号并不是按序到达,需要记录3号数据分组已收到确认,这样该数据分组就不会超时重发,4和5号数据分组到达接收方接收后发送4和5号ack但接收窗口不能向后滑动,接收方还未收到之前的2号分组。假设4和5号ack传输过程中,发送放针对2号的数据分组超时重传了,发送方重传2号分组,4和5号分组陆续到达发送方,发送方接收并记录但发送窗口也不向前滑动,因为还未接收到2号ack。2号数据分组到达接收方,接收方发送2号ack,这是接收窗口可以向后滑动4个位置,发送方接收到2号ack后发送窗口也可以向后滑动4个位置。这样就能继续发送数据了
假设将wt和wr都设为5 发送方将04分组按序发送,接收方接收后返回04号ack,接收窗口并向后滑动五个位置,这样51号就落入接收窗口,假设0号ack在传输中丢失,发送方接收到14号ack将其记录并再次发送0号数据分组,接收方接收到0号分组就会无法辨别新旧分组
点对点协议ppp
普通的因特网用户通过连接到运营商提供的ISP连入到因特网,这些ISP从因特网管理机构申请到一批IP地址,用户计算机获取到ISP分配的合法IP地址后才能成为因特网上的主机。用户计算机与ISP进行通信时,所使用的数据链路层协议通常就是PPP协议
ppp over ethernet简称PPPoE它使得isp可以通过dsl,电路调制解调器,以太网等宽带接入技术以以太网接口的形式为用户提供接入服。务是目前使用最广泛的点对点数据链路层协议。 ppp也广泛应用于广域网路由器之间的专用线路
PPP协议时因特网工程任务组IETF在1992年制定的,经过1993年和1994年的修订,现在的PPP协议已经成为因特网的正式标准[PFC1611,RFC1662]
- PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成:
- 对各种协议数据报的封装方法(封装成帧)
- 链路控制协议LCP。用于建立、配置以及测试数据链路的连接
- 1套网络控制协议NCPS.其中的每一个协议支持不同的网络层协议
ppp是数据链路层的协议,它将上层交付下来的协议数据单元封装成ppp帧,为了支持不同的网络层协议,ppp协议包含了一套网络控制协议NCPs其中的每个协议支持不同的网络层协议、链路控制协议LCP用于建立,配置以及测试数如果是面向字节的据链路的连接ppp协议能够在多种类型的点对点链路上运行
PPP协议的帧格式
标志(Flag)字段:PPP帧的定界符,取值为0x7E
地址(Address)字段:取值为0xFF,预留(目前没有什么作用)
控制(Control)字段:取值为0x03,预留(目前没有什么作用)
协议(Protocol)字段:指明帧的数据部分送交哪个协议处理 取值0x0021表示:帧的数据部分为IP数据报 取值0xC021表示:帧的数据部分为LCP分组 取值0x8021表示:帧的数据部分为NCP分组
帧检验序列(Frame Check Sequence)字段:CRC计算出的校验位
PPP协议实现透明传输
和之前讲过的透明传输实现方法一样 如果使用面向字节的异步链路就使用字节填充法 如果使用面向比特的同步链路就使用比特填充法 以字节7E作为ppp帧的定界符 接收方每收到一个PPP帧就进行CRC检验,若CRC检验正确就接收这个帧,反之就丢弃,使用PPP的数据链路层向上不提供可靠传输服务
以拨号接入为例,简述PPP协议的工作状态 PPP的开始和结束都是静止状态
媒体接入控制
在总线型控制方式,如果多个主机同时发送数据,那么信号就会在共享媒体上产生碰撞 共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC(Medium Access Control)
媒体接入控制分为两类:
- 静态划分信道 静态划分信道需要预先固定分配好信道,这类方法不灵活,对于突发性数据传输信道利用率会很低。通常在无线网络的物理层使用而不是数据链路层 频分多址 时分多址 码分多址
- 动态接入控制 受控接入 集中控制 有一个主站以循环方式轮询每个站点有无数据发送,只有被轮询到的站点才能发送数据,最大缺点就是存在单点故障问题 分散控制 各站点都是平等的并连接成一个环形网络,令牌(一个特殊的控制帧)沿环逐站传递,接收到令牌的站点才有权发送数据,并在发送完数据后将令牌传递给下一个站点 随机接入 所有站点通过竞争,随机地在信道上发送数据。如果恰巧有两个或更多的站点在同一时刻发送数据,则信号在共享媒体上就要产生碰撞(即发生了冲突)。使得这些站点的发送都失败。因此,这类协议要解决的关键问题是如何尽量避免冲突及在发生冲突后如何尽快恢复通信。著名的共享式以太网采用的就是随机接入。
随着技术的发展,交换技术的成熟和成本的降低具有更高性能的使用点对点链路和链路层交换机的交换式局域网在有线领域已经完全取代了共享式局域网,但由于无线信道的广播天性,无线局域网依然使用共享媒体技术
静态划分信道
复用(Multiplexing):通信技术的一个重要概念,指通过一条物理路线同时传输多路用户的信号 当网络中传输媒体的传输容量大于多条单一信道传输的总通信量时,可利用复用技术在一条物理线路上建立多条通信信道来充分利用传输媒体的带宽
频分复用FDM
将传输线路的频带资源划分成多个子频带形成多个子信道,各子信道需要流出隔离频带,以免造成信道间的干扰,当多个信号输入一个多路复用器时,复用器将每一路信号调制到不同频率的载波上,接收端由相应的分用器通过滤波将各路信号分开,将合成的复用信号恢复成原始的多路信号
频分复用的所有用户同时占用不同的频带资源并行通信
时分复用TDM
将时间划分为一个个时隙,将传输线路的带宽资源按时隙轮流分配给不同的用户,每个用户只在所分配的时隙里使用线路传输数据 时分复用技术将时间划分成一段段等长的时分复用帧,每一个时分复用的用户在每一个时分复用帧中占用固定序号的时隙,每一个用户占用的时隙是周期性出现的,其周期就是时分复用帧的长度
时分复用的所有用户在不同的时间占用同样的频带宽度
波分复用WDM
波分复用就是光的频分复用 将8路传输速率均为2.5Gbit/s的光载波,其波长均为310nm经光调制后分别将波长变换到1550~1561.2nm,每个光载波相隔1.6nm,这8个波长很接近的光载波经过光复用器(合波器)在一根光纤中传输,因此在一根光纤中数据传输的总速率就达到了8x2.5Gbit/s=20Gbit/s 光信号传输一段距离后会衰减,因此必须对衰减来的光信号进行放大才能继续传输 现在已经有了很好的掺铒光纤放大器,两个光纤放大器之间的光缆线路长度可达120km,而光复用器和光分用器(分波器)之间可以放入4个掺铒光纤放大器,使得光复用器和光分用器之间的无光电转换的距离可达600km
码分复用CDM
码分复用CDM是另一种共享信道的方法。实际上,由于该技术主要用于多址接入,人们更常用的名词是码分多址CDMA(Code Division Multiple Access)。 同理,频分复用FDM和时分复用TDM同样可用于多址接入,相应的名词是频分多址FDMA(Frequency Division Multiple Access)和时分多址TDMA(Time Division Multiple Access).
在本课程中,我们不严格区分复用与多址的概念。可简单理解如下:
- 复用是将单一媒体的频带资源划分成很多子信道,这些子信道之间相互独立,互不干扰。从媒体的整体频带资源上看,每个子信道只占用该媒体频带资源的一部分。
- 多址(更确切地应该称为多点接入)处理的是动态分配信道给用户。这在用户仅仅暂时性地占用信道的应用中是必须的,而所有的移动通信系统基本上都属于这种情况。相反,在信道永久性地分配给用户的应用中,多址是不需要的(对于无线广播或电视广播站就是这样)。
- 某种程度上,FDMA、TDMA、CDMA可以分别看成是FDM、TDM、CDM的应用。 与FDM和TDM不同,CDM的每一个用户可以在同样的时间使用同样的频带进行通信。 由于各用户使用经过特殊挑选的不同码型,因此各用户之间不会造成干扰。 CDM最初是用于军事通信的,因为这种系统所发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现。 随着技术的进步,CDMA设备的价格和体积都大幅度下降,因而现在已广泛用于民用的移动通信中。
在CDMA中,每一个比特时间再划分为m个短的间隔,称为码片(Chip)。通常m的值是64或128,为了简单起见,在后续的举例中,我们假设m为8。 使用CDMA的每一个站被指派一个唯一的m bit码片序列(Chip Sequence)。 一个站如果要发送比特1,则发送它自己的m bit码片序列; 一个站如果要发送比特0,则发送它自己的m bit码片序列的二进制反码; 指派给CDMA系统中某个站点的码片序列为00011011 发送比特1:发送自己的码片序列00011011 发送比特0:发送自己的码片序列的二进制反码11100100
码片序列的挑选原则如下:
- 分配给每个站的码片序列必须各不相同,实际常采用伪随机码序列。
- 分配给每个站的码片序列必须相互正交(规格化内积为0)。 令向量S表示站S的码片序列,令向量T表示其他任何站的码片序列。两个不同站S和T的码片序列正交,就是向量S和T的规格化内积为0
随机接入
载波监听多址接入/碰撞检测
总线局域网使用的协议 CSMA/CD(Carrier Sense Multiple Access/Collision Detection)
96比特时指发送96比特所耗费的时间,也成为帧间最小间隔,其作用是使接收方可以检测出一个帧的结束,同时也使得所有其他站点都能有机会平等竞争信道并发送帧
多址接入MA 多个站连接在一条总线上,竞争使用总线。
载波监听CS 实时检测信道上电压 每一个站在发送帧之前先要检测一下总线上是否有其他站点在发送帧(“先听后说”) 若检测到总线空闲96比特时间则发送这个帧; 若检测到总线忙,则继续检测并等待总线转为空闲96比特时间,然后发送这个帧。
碰撞检测CD 每一个正在发送帧的站边发送边检测碰撞(“边说边听”) 当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。·当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞。 一旦发现总线上出现碰撞,则立即停止发送,退避一段随机时间后再次发送“一旦冲突,立即停说,(等待时机,重新再说”)。
在发生碰撞时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息来。。每一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。
争用期 主机最多经过2T(即8-0)的时长就可检测到本次发送是否遭受了碰撞 因此,以太网的端到端往返传播时延2t称为争用期或碰撞窗口。 经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。 每一个主机在自己发送帧之后的一小段时间内,存在着遭遇碰撞的可能性。这一小段时间是不确定的。它取决于另一个发送帧的主机到本主机的距离,但不会超过总线的端到端往返传播时延,即一个争用期时间。 显然,在以太网中发送帧的主机越多,端到端往返传播时延越大,发生碰撞的概率就越大。因此,共享式以太网不能连接太多的主机,使用的总线也不能太长。 10Mb/s以太网把争用期定为512比特发送时间,即51.2us,因此其总线长度不能超过5120m,但考虑到其他一些因素,如信号衰减等,以太网规定总线长度不能超过2500m。
最小帧长 假设主机a给主机d发送一个很短的帧,边发送边检测,发送完毕后就不对该帧检测碰撞,在传输过程中主机c也要发送数据,当c检测到总线空闲96比特时间后就立即发送帧,这必然产生碰撞,d收到发生碰撞的帧并将其丢弃,但a并不知道自己发送完毕的帧遭遇了碰撞也不会重发该帧,所以以太网帧长不能太短
第一个bit数据跟随电磁波传播到对面需要t,最晚如果就在此时发生碰撞,碰撞返回仍需一个t,发送方必须能收到这个碰撞也就意味着发送方此时数据还不能发送完,否则无法检测碰撞,所以为2t
以太网规定最小帧长为64字节,即512比特(512比特时间即为争用期) 如果要发送的数据非常少,那么必须加入一些填充字节,使帧长不小于64字节。 以太网的最小帧长确保了主机可在帧发送完成之前就检测到该帧的发送过程中是否遭遇了碰撞 如果在争用期(共发送64字节)没有检测到碰撞,那么后续发送的数据就一定不会发生碰撞 如果在争用期内检测到碰撞,就立即中止发送,这时已经发送出去的数据一定小于64字节,因此凡长度小于64字节的帧都是由于碰撞而异常中止的无效帧。
最大帧长 假设a给d发送很长的帧,会导致a长时间占用总线,而总线上其他主机长时间拿不到总线的使用权。另外,由于帧很长,导致d的接收缓冲区无法装下该帧而产生溢出。因此,以太网的帧长应该有其上限
以太网版本2的mac帧格式: 插入VLAN标记后的802.1Q帧:
退避时间的计算方法
截断二进制指数退避算法退避时间=基本退避时间×随机数r 基本退避时间:争用期2t 随机数r:从离散的整数集合0到2k−1中随机选一个数k=min(重传次数,10)即从重传次数和10中取小者
重传次数 | k | 离散的整数集合`0~2k−1 | 可能的退避时间 |
---|---|---|---|
1 | 1 | {0,1} | 0x2t,1x2t |
2 | 2 | {0,1,2,3} | 0x2t,1x2t,3x2t |
12 | 10 | {0,1,2,3,4,……,1023} | 0x2t,1x2t,3x2t,4x2t,……,1023x2t |
若连续多次发生碰撞,就表明可能有较多的主机参与竞争信道。但使用上述退避算法可使重传需要推迟的平均时间随重传次数而增大(这也称为动态退避),因而减小发生碰撞的概率,有利于整个系统的稳定。
信道利用率 总线上某个主机可能发生多次碰撞进行多次退避后成功发送了一个帧,帧的发送时延计为T0 在极限情况下源主机在总线的一端,目的主机在端的另一端,因此还要经过一个单程端到端的传播时延t后总线才能进入空闲状态
在理想情况下: 各主机发送帧都不会产生碰撞; 总线一旦空闲就有某个主机立即发送帧; 这样就可以忽略碰撞产生的时延 发送一帧占用总线的时间为T0+t,而帧本身的发送时间是T0 极限信道利用率:Smax=T0+tT0=1+T0t1 因此要是信道利用率尽可能大就应使t尽量小(以太网端到端的距离受到限制)和T0尽量大(以太网帧的长度尽量长)
载波监听多址接入/碰撞避免
无线局域网使用的协议 CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance)
在无线局域网中,仍然可以使用载波监听多址接入CSMA,即在发送帧之前先对传输媒体进行载波监听。若发现有其他站在发送帧,就推迟发送以免发生碰撞。
在无线局域网中,不能使用碰撞检测CD,原因如下: 由于无线信道的传输条件特殊,其信号强度的动态范围非常大,无线网卡上接收到的信号强度往往会远远小于发送信号的强度(可能相差百万倍)。如果要在无线网卡上实现碰撞检测CD,对硬件的要求非常高。 即使能够在硬件上实现无线局域网的碰撞检测功能,但由于无线电波传播的特殊性(存在隐蔽站问题),进行碰撞检测的意义也不大。
a的作用范围可以覆盖到b无法覆盖到c,c的作用范围可以覆盖到b和d无法覆盖到a,即a和c都检测不到对方的无线信号,当a和c同时给b发送帧是就会产生碰撞,但a和c无法检测到碰撞,这种未能检测出信道上其他站点信号的问题叫做隐蔽站问题(a和c互为隐蔽站),同样使用广播信道的有线局域网不存在这种问题
- 802.11无线局域网使用CSMA/CA协议,在CSMA的基础上增加了一个碰撞避免CA功能而不再实现碰撞检测功能。
- 由于不可能避免所有的碰撞,并且无线信道误码率较高,802.11标准还使用了数据链路层确认机制(停止-等待协议)来保证数据被正确接收。
- 802.11的MAC层标准定义了两种不同的媒体接入控制方式: 分布式协调功能DCF(Distributed Coordination Function)。在DCF方式下,没有中心控制站点,每个站点使用CSMA/CA协议通过争用信道来获取发送权,这是802.11定义的默认方式。 点协调功能PCF(Point Coordination Function)。PCF方式使用集中控制的接入算法(一般在接入点AP实现集中控制),是802.11定义的可选方式,在实际中较少使用。
帧间间隔IFS(InterFrame Space) 802.11标准规定,所有的站点必须在持续检测到信道空闲一段指定时间后才能发送帧,这段时间称为帧间间隔IFS。
帧间间隔的长短取决于该站点要发送的帧的类型:
- 高优先级帧需要等待的时间较短,因此可优先获得发送权;
- 低优先级帧需要等待的时间较长。若某个站的低优先级帧还没来得及发送,而其他站的高优先级帧已发送到信道上,则信道变为忙态,因而低优先级帧就只能再推迟发送了。这样就减少了发生碰撞的机会。
常用的两种帧间间隔如下:
- 短帧间间隔SIFS(28us),是最短的帧间间隔,用来分隔开属于一次对话的各帧。一个站点应当能够在这段时间内从发送方式切换到接收方式。使用SIFS的帧类型有ACK帧、CTS帧、由过长的MAC帧分片后的数据帧、以及所有回答AP探询的帧和在PCF方式中接入点AP发送出的任何帧。
- DCF帧间间隔DIFS(128us),它比短帧间间隔SIFS要长得多,在DCF方式中用来发送数据帧和管理帧。
源站在检测到信道空闲后还要再等待一段时间DIFS是考虑到可能有其他站有高优先级的帧要发送,若有就让高优先级帧先发送 目的站在正确接收到数据帧后还要再等待一段时间SIFS才能发送ACK帧为了隔开属于一次对话的各帧。在这段时间内用来切换收发方式(源站需要从发送方式切换为接收方式用于接收ack,目的站从接收方式切换为发送方式用以发送ack) 信道由忙转为空闲且经过DIFS时间后还要退避一段随机时间才能使用信道是为了防止多个站点同时发送数据产生碰撞。
不使用退避算法的时机: 当站点检测到信道是空闲的,并且所发送的数据帧不是成功发送完上一个数据帧后立即连续发送的数据帧时 使用退避算法的时机: 在发送数据帧之前检测到信道处于忙状态时 在每重传一个数据帧时 在每一次成功发送后要连续发送下一个帧时(为了避免一个站点长时间占用信道)
退避算法 在执行退避算法时,站点为退避计时器设置一个随机的退避时间: 当退避计时器的时间减小到零时,就开始发送数据;当退避计时器的时间还未减小到零时而信道又转变为忙状态,这时就冻结退避计时器的数值,重新等待信道变为空闲,再经过时间DIFS后,继续启动退避计时器。 在进行第i次退避时,退避时间在时隙编号0~22+i−1
信道预约 为了尽可能减少碰撞的概率和降低碰撞的影响,802.11标准允许要发送数据的站点对信道进行预约。
- 源站在发送数据帧之前先发送一个短的控制帧,称为请求发送RTS(RequestToSend),它包括源地址、目的地址以及这次通信(包括相应的确认帧)所需的持续时间。
- (2)若目的站正确收到源站发来的RTS帧,且媒体空闲,就发送一个响应控制帧,称为允许发送CTS(Clear To send),它也包括这次通信所需的持续时间(从RTS帧中将此持续时间复制到CTS帧中)。
- 源站收到CTS帧后,再等待一段时间SIFS后,就可发送其数据帧。
- 若目的站正确收到了源站发来的数据帧,在等待时间SIFS后,就向源站发送确认帧ACK。
除源站和目的站以外的其他各站,在收到CTS帧(或数据帧)后就推迟接入到无线局域网中。这样就保证了源站和目的站之间的通信不会受到其他站的干扰。 如果RTS帧发生碰撞,源站就收不到CTS帧,需执行退避算法重传RTS帧。 由于RTS帧和CTS帧很短,发送碰撞的概率、碰撞产生的开销及本身的开销都很小。而对于一般的数据帧,其发送时延往往大于传播时延(因为是局域网),碰撞的概率很大,且一旦发生碰撞而导致数据帧重发,则浪费的时间就很多,因此用很小的代价对信道进行预约往往是值得的。802.11标准规定了3种情况供用户选择:
- 使用RTS帧和CTS帧口
- 不使用RTS帧和CTS帧口
- 只有当数据帧的长度超过某一数值时才使用RTS帧和CTS帧
虚拟载波监听 除RTS帧和CTS帧会携带通信需要持续的时间,数据帧也能携带通信需要持续的时间,这称为802.11的虚拟载波监听机制 由于利用虚拟载波监听机制,站点只要监听到RTS帧、CTS帧或数据帧中的任何一一个,就能知道信道被占用的持续时间,而不需要真正监听到信道上的信号,因此虚拟载波监听机制能减少隐蔽站带来的碰撞问题,
a和c互为隐蔽站,a给b发送rts,b发送cts时c也能收到,就知道了信道被占用了多长时间,在这段时间内c都不会争用信道
MAC地址、IP地址、ARP协议
数据链路层的: MAC地址是以太网的MAC子层所使用的地址
网际层的: IP地址是TCP/IP体系结构网际层所使用的地址; ARP协议属于TCP/IP体系结构的网际层,其作用是已知设备所分配到的IP地址,使用ARP协议可以通过该IP地址获取到设备的MAC地址:
尽管IP地址和ARP协议属于TCP/IP体系结构的网际层(而不属于数据链路层),但是它们与MAC地址存在一定的关系,并且我们日常的网络应用都离不开MAC地址、IP地址以及ARP协议。因此,我们将这三者放在一起讨论。
MAC地址
当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识即一个数据链路层地址; 在每个主机发送的帧中必须携带标识发送主机和接收主机的地址。由于这类地址是用于媒体接入控制MAC(Media Access Control),因此这类地址被称为MAC地址: MAC地址一般被固化在网卡(网络适配器)的电可擦可编程只读存储器EEPROM中,因此MAC地址也被称为硬件地址:
[!warning] 注意 MAC地址有时也被称为物理地址。但这并不意味着MAC地址属于网络体系结构中的物理层
一般情况下,用户主机会包含两个网络适配器:有线局域网适配器(有线网卡)和无线局域网适配器(无线网卡)。每个网络适配器都有一个全球唯一的MAC地址。而交换机和路由器往往拥有更多的网络接口,所以会拥有更多的MAC地址。综上所述,严格来说,MAC地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识。
IEEE 802局域网的MAC地址格式 由48个比特构成,每8个比特为1字节,共六个字节,前三个字节是组织唯一标识符OUI(由IEEE的注册管理机构分配),后三个字节是网络接口标识符(由获得OUI的厂商自行随意分配),合起来成为扩展的唯一标识符EUI,对于48比特的MAC地址也称为EUI-48
标准表示方法 将每四个比特表示为一个十六进制字符,每两个字符为一组 组之间用-连接,共六组。windows上表示方法。如:00-0C-CF-93-8C-92 其他表示法: 组之间用:连接,共六组。Linux、Mac、Android上表示方法。如:00:0C:CF:93:8C:92 或四个字符为一组,组之间用.连接,共三组。如:000C.CF93.8C92
mac地址的b0位取0时表示该地址是单播地址,取1时表示该地址时多播地址也称为组播地址 b1位取0时表示该地址是全球管理(全球唯一)的,取1是表示是本地管理的
第一字节的b1位 | 第一字节的b0位 | MAC地址类型 | 作用 | 地址数量占比 | 总地址数量 |
---|---|---|---|---|---|
0 | 0 | 全球管理,单播地址 | 厂商生产网络设备(网卡,交换机,路由器)时固化 | 41 | 2^{48}} |
0 | 1 | 全球管理,多播地址 | 标准网络设备所支持的多播地址,用于特定功能 | 41 | 281474976710656 |
1 | 0 | 本地管理,单播地址 | 由网络管理员分配,覆盖网络接口的全球管理单播地址 | 41 | 二百八十多万亿 |
1 | 1 | 本地管理,多播地址 | 用户对主机进行软件配置,以表明其属于哪些多播组注意:乘剩余46位全为1时,就是广播地址FF-FF-FF-FF-FF-FF | 41 | 此列都相同 |
台式机、笔记本电脑、平板电脑、智能手机上的以太网接口、wifi接口、蓝牙接口都分配有全球单播的mac地址,而每台交换机和路由器都拥有多个网络接口也就是多个全球单播的mac地址
MAC地址的发送顺序 字节发送顺序:第一字节——第六字节 字节内的比特发送顺序:b0——b7
单播mac地址举例 发送主机在目的地址添加目的主机的mac地址,在源地址添加自己的mac地址做成单播帧发送出去,接收到的主机检测到目的地址与自己的mac地址相匹配就接收,不匹配就丢弃
广播mac地址举例 将目的地址填入广播地址即全f,源地址填入自己的mac地址做成广播帧发送出去,其他主机都会收到广播帧,发现目的地址是广播地址就知道是广播帧就就接收该帧并交由上层处理
多播mac地址举例 多播地址的第一组字符写成二进制会发现右边第一个比特是1 由此所有的多播地址第一组字符的第二位都是奇数
发送主机将多播地址填入目的地址,将自己地址填入源地址,每个主机属于一个多播组列表接收到多播帧后判断mac地址是不是在自己的多播组列表中,在的话就接收,不在就丢弃
给主机配置多播组列表进行私有应用时不得使用公有的标准多播地址
随机MAC地址 美国CIA在网络中监听所有mac地址由此苹果率先使用随机mac地址,windows和Android也跟随使用
IP地址
IP地址是因特网(Internet)上的主机和路由器所使用的地址,用于标识两部分信息: 网络编号: 标识因特网上数以百万计的网络 口主机编号: 标识同一网络上不同主机(或路由器各接口)
MAC地址不具备区分不同网络的功能。
如果只是一个单独的网络,不接入因特网,可以只使用MAC地址(这不是一般用户的应用方式)。 如果主机所在的网络要接入因特网,则IP地址和MAC地址都需要使用。
数据包转发过程中源IP地址和目的IP地址保持不变: 数据包转发过程中源MAC地址和目的MAC地址逐个链路(或逐个网络)改变
H1知道应该把数据包传给R1 由R1帮其把数据包转发出去 H1知道R1相应接口的IP地址为IP3 但不知道其对应的MAC地址是什么
R1知道应该把数据包转发给R2, R1知道R2相应接口的IP地址为IP5, 但不知道其对应的MAC地址是什么
R2知道应该把数据包传给H2, R2知道H2的IP地址为IP2, 但不知道其对应的MAC地址是什么!
ARP协议
地址解析协议 只能在一段链路路或者同一网络中使用,而不能跨网络使用
在总线型共享以太网中一个主机只知道目的主机的ip地址但不知道他的mac地址,这样数据链路层在封装mac帧时就无法填写目的mac地址字段,也就无法发送 实际上,每台主机都有一个ARP高速缓存表,ARP高速缓存表中记录有IP地址和MAC地址的对应关系。主机要发送数据包时会现在自己的ARP高速缓存表中查询目的主机的ip地址和所对应的mac地址,如果找到可以直接发送,如果没找到就需要发送ARP请求报文(广播,即目的地址为FF-FF-FF-FF-FF-FF)来获取目的主机的mac地址,其中包含自己的ip地址和mac地址和目的主机的ip地址和请求mac地址信息。总线上其他主机接收到广播的报文交由上层处理,上层的ARP进程解析ARP请求报文,如果请求的ip地址不是自己的ip地址就将其丢弃,如果是自己的就进行响应,先将源主机的ip地址和mac地址记录到自己的arp高速缓存表中,然后给源主机发送响应报文告知自己的mac地址,其arp响应报文为单播帧,接收到的主机发现如果是目的地址是自己的就接收不是自己的就丢弃,接收后上层arp进程解析arp响应报文将其中记录的发送主机的ip地址和mac地址记录到自己的arp高速缓存表中,然后就可以发送信息了。 arp高速缓存表中的每一条记录都有其类型,类型分为动态和静态 动态是自动获取到的,生命周期默认为两分钟,当生命周期结束时该记录自动删除,因为ip地址和mac地址并不是永久性的,如:当更换网卡后主机的ip地址没有改变,mac地址改变了 静态是手工设置的,不同操作系统下的生命周期不同,有的系统重启后不存在,有的系统重启后依旧有效
集线器和交换机的区别
早期的总线型以太网采用的是机械接头和细同轴电缆 后来使用双绞线和集线器HUB的星型以太网比早期总线型以太网要可靠的多,并且价格便宜,使用方便双绞线的两端是RJ45插头也就是熟知的网线水晶头 使用集线器的以太网虽然物理拓扑是星型的但逻辑上仍然是总线网,个站共享总线资源,使用的还是CSMA/CD协议,集线器只工作在物理层,它的每个接口仅简单地转发比特不进行碰撞检测(由各站的网卡负责)
网络上的某台主机要给另一台主机发送信息使用集线器单播帧将发送给作用域下的所有主机,交换机只发送给目的主机 交换机有很明显的优势
以太网交换机通常都有多个接口,每个接口都可以直接与一台主机或另一个以太网交换机相连,一般都工作在全双工方式(发送帧和接收帧可以同时进行) 使用集线器的以太网在逻辑上是共享总线的需要使用CSMA/CD协议协调各主机争用总线只能工作在半双工模式(收发帧不能同时进行) 以太网交换机具有并行性,能同时连通多对接口,使用多对主机能同时通信,无碰撞(不使用CSMA/CD协议) 以太网交换机一般都具有多种速率的接口,例如:10Mb/s、100Mb/s、1Gb/s、10Gb/s接口的多种组合。 以太网交换机工作在数据链路层(也包括物理层),它收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。 以太网交换机是一种即插即用设备,其内部的帧交换表是通过自学习算法自动地逐渐建立起来的。
帧的两种转发方式:
- 存储转发
- 直通交换:采用基于硬件的交叉矩阵(交换时延非常小,但不检查帧是否右差错),不必把整个帧先缓存后再处理,而是在接收帧的同时就立即按目的mac地址决定转发接口,因而提高了帧的转发速率。一般采用基于硬件的交叉矩阵,它不检查帧是否有差错就直接将帧转发出去
其中一台主机给另一台主机发送数据,传达到交换机,交换机查询内部的帧交换表得知目的主机对应的接口然后通过该接口发送出去
交换机收到广播帧后给除发送主机外的所有主机都转发该帧 交换机同时收到多个帧时不会发生碰撞,它会把所有帧缓存起来然后逐个转发给目的主机
使用集线器扩展以太网不管是给自己作用域的主机发送数据还是给扩展出的作用域的主机发送数据,在整个大的域中的所有主机都会收到数据 使用集线器扩展以太网不仅扩大了广播域还扩大的碰撞域(冲突域) 使用交换机扩展以太网只会扩大广播域而不会扩大碰撞域(冲突域)
以太网交换机自学习和转发帧的流程
以太网交换机工作在数据链路层(也包括物理层) 以太网交换机收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。 以太网交换机是一种即插即用设备,刚上电启动时其内部的帧交换表是空的。随着网络中各主机间的通信,以太网交换机通过自学习算法自动逐渐建立起帧交换表。
交换机最开始帧交换表是空白的,当一个主机给另一台主机发送数据时,交换机查询帧交换表是否有记录该帧的目的地址如果没有记录源主机的地址就记录,如果没有记录目的主机就对所有端口都进行盲目转发(泛洪)其接口上的所有主机都收到后查询是否是发给自己的如果是就接收,如果不是就丢弃。接入其接口的其他交换机接收到后也会查询帧交换表是否记录如果没有也泛洪,如果有则丢弃。假设a的总线上也接入了一个g主机当g给a发送数据时也会发送到交换机,交换机查询发现发送主机和目的主机都是同一接口就知道这个帧不需要自己转发就丢弃 帧交换表上的每条记录都有自己的有效时间,到期会自动删除,因为mac地址与交换机接口的对应关系并不是永久性的
以太网交换机生成树协议STP
当交换机a或者ab,ac间的链路出现故障时其他交换机就无法进行通讯
添加冗余链路可以提高以太网的可靠性 但是,冗余链路也会带来负面效应--形成网络环路 网络环路会带来以下问题:
- 广播风暴 (广播风指的是许多主机和交换机都收到广播信息,而不是循环收到广播信息) 其中一台主机发送广播帧后交换机会转发给其他接口,这样其他接口上的交换机会继续转发导致该帧被重复转发 大量消耗网络资源,使得网络无法正常转发其他数据帧,
- 主机收到重复的广播帧 大量消耗主机资源
- 交换机的帧交换表震荡(漂移) 交换机收到广播帧时是无法判断该帧是直接发送来的还是转发来的,就会导致其他交换机转发后它会把转发来的接口当作源地址重写帧交换表,再加上广播风暴一直循环就也会一直重写帧交换表
以太网交换机使用生成树协议STP(Spanning Tree Protocol)可以在增加冗余链路来提高网络可靠性的同时又避免网络环路带来的各种问题。 不论交换机之间采用怎样的物理连接,交换机都能够自动计算并构建一个逻辑上没有环路的网络,其逻辑拓扑结构必须是树型的(无逻辑环路): 最终生成的树型逻辑拓扑要确保连通整个网络; 当首次连接交换机或网络物理拓扑发生变化时(有可能是人为改变或故障),交换机都将进行生成树的重新计算。
虚拟局域网VLAN
使用一个或多个以太网交换机互连起来的交换式以太网,其所有站点都属于同一个广播域。 随着交换式以太网规模的扩大,广播域相应扩大 巨大的广播域会带来很多弊端:
- 广播风暴
- 难以管理和维护
- 潜在的安全问题 网络上会经常出现网络风暴 所以应该尽量避免使用广播
网络中会频繁出现广播信息
- TCP/IP协议栈中的很多协议都会使用广播: 地址解析协议ARP(已知IP地址,找出其相应的MAC地址) 路由信息协议RIP(一种小型的内部路由协议) 动态主机配置协议DHCP(用于自动配置IP地址)
- NetBEUl:Widnows下使用的广播型协议
- IPX/SPX:Novell网络的协议栈
- Apple Talk:Apple公司的网络协议栈
路由器工作在网络层,由于路由器默认情况下不对广播数据包进行转发,因此路由器可以很自然的隔离广播域,但路由器成本较高
虚拟局域网VLAN(Virtual Local Area Network) 是一种将局域网内的设备划分成物理位置无关的逻辑组的技术,这些逻辑组具有某些共同的需求 同一vlan可以实现通信,不同vlan不能实现通信
vlan技术是在交换机上实现的,它要求交换机必须有以下技术:
- 能够处理带有vlan标记的帧(IEEE 802.1Q帧)
- 交换机的各端口可以支持不同的端口类型,不同端口类型的端口对帧的处理方式有所不同
IEEE 802.1Q帧 也称Dot One Q帧,对以太网的mac帧格式进行了扩展,插入了4字节的VLAN标记
VLAN标记的最后12比特称为VLAN标识符VID它唯一地标志了以太网帧属于哪一个VLAN。VID的取值范围是04095(0212−1) 0和4095都不用来表示VLAN,因此用于表示VLAN的VID的有效取值范围是1~4094.
802.1Q帧是由交换机来处理的,而不是用户主机来处理的。 当交换机收到普通的以太网帧时,会将其插入4字节的VLAN标记转变为802.1Q帧,简称“打标签 当交换机转发802.1Q帧时,可能会删除其4字节VLAN标记转变为普通以太网帧,简称“去标签”
交换机的端口类型* 交换机的端口类型有以下三种:
- Access
- Trunk
- Hybrid(华为交换机私有) 思科交换机没有Hybrid端口
交换机各端口的缺省VLAN ID 在思科交换机上称为Native VLAN,即本征VLAN 思科交换机在用户未配置VLAN时所有端口都默认属于VLAN1,即所有端口的本征VLAN都属于VLAN1 在华为交换机上称为Port VLAN ID,即端口VLAN ID,简称PVID 交换机的每个端口有且仅有一个PVID
Access端口
Access端口一般用于连接用户计算机 Access端口只能属于一个VLAN Access端口的PVID值与端口所属VLAN的ID相同(默认为1) Access端口接收处理方法: 一般只接受“未打标签”的普通以太网MAC帧:根据接收帧的端口的PVID给帧“打标签”,即插入4字节VLAN标记字段,字段中的VID取值与端口的PVID取值相等。 Access端口发送处理方法:若帧中的VID与端口的PVID相等,则“去标签”并转发该帧;否则不转发。
一个主机发送了广播帧,该帧从端口进入交换机,由于端口的类型的Access,它会对接收到的未打标签的普通以太网mac帧打标签(插入4字节的vlan标记字段),由于假设发送端口的pvid=1,因此所插入的4字节vid值也等于1,有用端口234的pvid取值也为1,因此交换机会对这三个端口进行去标签转发
为实现将ab划分到vlan2,将cd划分到vlan3,这样vlan2中的广播帧不会传送到vlan3,vlan3也不会传送到vlan2,将端口1、2划归到vlan2,端口3、4划归到vlan3这样1、2的pvid=2,3、4的pvid=3 若端口1发送广播帧,帧到达交换机由于端口1的类型的access,对未打标签的普通以太网mac帧打标签(插入4字节vlan标记字段)由于1的pvid=2,所以帧的vid=2,由于端口2的pvid=2,所以会对端口2进行去标签转发
Trunk端口
trunk端口一般用于交换机之间或交换机与路由器之间的互连 trunk端口可以属于多个vlan,也就是说trunk端口可以接收和发送多个vlan的帧 用户可以设置trunk端口的pvid,默认情况下trunk端口的pvid=1 Trunk端口发送处理方法: 对VID等于PVID的帧“去标签”再转发 对VID不等于PVID的帧,直接转发 Trunk端口接收处理方法: 接收“未打标签”的帧根据接收帧的端口的PVID给帧“打标签”即插入4字节VLAN标记字段,字段中的VID取值与端口的PVID取值相等。 接收“已打标签的帧”;
Hybrid
Hybrid端口既可用于交换机之间或交换机与路由器之间的互连(同Trunk端口),也可用于交换机与用户计算机之间的互连(同Access端口) Hybrid端口可以属于多个VLAN(同Trun端口)用户可以设置Hybrid端口的PVID值。默认情况下Hybrid端口的PVID值为1(同Trun端口)
Hybrid端口发送处理方法(与Trunk端口不同) 查看帧的VID是否在端口的“去标签”列表中: 若存在,则“去标签”后再转发 若不存在,则直接转发;
Hybrid端口接收处理方法(同Trunk端口) 口接收“未打标签”的帧,根据接收帧的端口的PVID给帧“打标签”,即插入4字节VLAN标记字 段,字段中的VID取值与端口的PVID取值相等。 口接收“已打标签的帧”
贡献者
版权所有
版权归属:PinkDopeyBug