wordpress 新建导航,网站优化软件,潍坊网站建设哪家便宜,云服务器网站文件夹文章目录 一、数据链路层功能概述二、封装成帧和透明传输三、差错控制#xff08;检错编码#xff09;四、差错控制#xff08;纠错编码#xff09;五、流量控制与可靠传输机制六、停止-等待协议七、后退N帧协议#xff08;GBN#xff09;八、选择重传协议#xff08;SR… 文章目录 一、数据链路层功能概述二、封装成帧和透明传输三、差错控制检错编码四、差错控制纠错编码五、流量控制与可靠传输机制六、停止-等待协议七、后退N帧协议GBN八、选择重传协议SR九、信道划分介质访问控制十、ALOHA协议十一、CSMA协议十二、CSMA/CD协议十三、CSMA/CA协议十四、轮询访问介质控制十五、局域网基本概念和体系结构十六、以太网十七、无线局域网十八、VLAN基本概念与基本原理十九、广域网及相关协议二十、链路层设备 一、数据链路层功能概述 封装成帧其实就是帮我们从物理层过渡到链路层我们物理层传输的是一个一个比特我们在链路层就是要把比特封装成帧就是把几个比特放到一个帧里面。这就是数据链路层的一个传输单位或者说传输单元
透明传输不管我们封装好的帧里面的比特是怎么样的一个组合都可以把它顺利的传输过去所以表现的就像链路层看不见它传输的帧里面到底是什么样的比特序列。就像是“透明”一样。
差错控制我们的链路层在传输的过程中可能会发生一些差错这些差错主要是由于噪声引起的那导致的结果就是位错和帧错。
位错——比特发生了错误即1,0解决办法就是使用检错编码或者纠错编码检错编码顾名思义就是能检查出来它有问题纠错编码就是指不仅能检查出有问题还能纠正错误。
对于检错编码如果发现错了解决办法就是后面重传一个帧
帧错——比如帧丢了帧重复帧乱序。这样的错误我们可以通过定时器和编号机制来检查它是否出错。
如果发现错了解决办法还是一样后面重新传输一个帧。
流量控制它其实就是在控制发送方的流量。比如发送一个帧我们需要掌握一定的速度这样才能避免帧丢失或者帧收不到的情况。
可靠传输这里与其说是链路层的一个功能不如说它是链路层的一个特点。
为了实现流量控制和可靠传输我们引入了一个滑动窗口机制这个我们后面会具体讲。
两种链路/信道也可以说成两种通信方式分为“点对点广域网”和“广播局域网”两种通信方式
对于广播信道来说我们需要进行介质访问控制。也就是说如果我们大家处在一个局域网里面我要给你发送信息怎么样才能够避免别人要发的信息和我这个信息发生碰撞从而导致你收不到。
为了解决上述问题就需要介质访问控制让所有人可以有序的使用这个广播信道才能保证信息的不丢失或者其他问题。
介质访问控制有两种静态划分信道、动态划分信道
链路层设备交换机、网桥 无确认无连接服务通常用于实时通信或者是误码率比较低的信道。也就是原主机在发送数据的时候不用事先和目的主机建立好一个链路的连接。而且目的主机在收到数据帧的时候也不需要返回确认的结果。如果帧丢失了直接交给上一层处理。这种方式其实是不负责任的但是为了实时通信更快的通信就会有这种服务。
有确认无连接服务这种也是事先不用建立连接但是目的主机在收到数据的时候必须返回一个确认如果原主机发现在规定时间内没有收到这个确认信号就需要把没有收到确认的帧再重新传输一次。这样就可以提高数据链路层的可靠性了。这种服务适合误码率相对较高的信道。
有确认面向连接服务这种就是最可靠的事先要建立好连接同时接收端的机器人收到这个帧之后需要返回一个确认帧。
ps有连接一定有确认
二、封装成帧和透明传输 透明传输在组帧上的一些应用如下
1.字符计数法比较简单但也容易出问题。它的方法就是用帧首部的一个计数字段也就是第一个字节来标明帧内字符数。 这种方法的缺点就是鸡蛋在一个篮子了假如我第1帧第一个字节出错了后面就全错了。
2.字符填充法
SOH就是帧首部的第一个标志开始的字节EOT是帧尾部的结束字节。 有了这两个字节我们接收端就可以判断从哪里接收帧从哪里接收结束。
但是这种情况只出现在传送的帧是文本文件组成的时候因为文本文件是指我们从键盘上输入这样一个文件我们知道键盘上的每一个键都对于一个ASCII码键盘上的ASCII码和SOH还有EOT这8比特是不会有交集的。所以无论我们在键盘上敲什么放到数据里面都可以放在帧里面传输过去。就可以实现透明传输。
如果我们要传的是非ASCII码的文本文件组成比如说二进制代码的程序或者图像这样数据部分里面可能就会出现两个定界符SOH和EOT所对应的比特组合了。假如我们数据部分有一个和EOT一样对应的比特组合如下图那接收端就可能会提前认为帧结束了。
因此需要使用字符填充法来实现透明传输也就是通过一种方法使接收端在看到这个和EOT结束字符一样的比特组合时也会把它看作正常数据接收直到遇到真正的帧结尾。
字符填充法的具体实现过程 现在有如下的原始数据要进行字符填充 字符填充的过程就是在控制信息的字符前加一个转义字符。加上这个字符就告诉了接收端你不用管我后面跟着的东西是什么了你正常接收直到遇到真正的结束字符。
到了接收端这边接收端会先扫描到SOH然后开始接收帧接下来看到ESC它就知道是转义字符为了实现透明传输再把这个ESC给去掉剩下的就是真实数据了。
字符填充法简言之在发送端填充转义字符在接收端去掉转义字符。
3.零比特填充法这种方法允许数据帧中包含任意个数的比特。
如下图下面是一个帧它和字符填充法的区别在于零比特填充法的首部和尾部的标志符是一样的都是0111 1110
那如果在数据部分也出现了和标志符一样的组合怎么办 归纳起来就是四个字5110就是遇到5个1添加1个0
4.违规编码法它其实是在物理层比特编码的时候实现透明传输的一种方法。 由于曼彻斯特编码都是前低后高或者前高后低。我们这把高定义为1低定义为0。在曼彻斯特编码中每一个码元比特对应的电平要么是10要么是01 不可能有11和00两种那我们可以把11和00这两种不可能的电平来标志起始和终止。 三、差错控制检错编码 奇校验码在n-1位信息元之前加上1位校验元使得1的个数是奇数 偶校验码在n-1位信息元之前加上1位校验元使得1的个数是偶数 举个例子 因为是奇校验所以我们各个选项总共1的个数应该是奇数个 A有4个1肯定错 B有4个1肯定错 C有4个1肯定错 D有5个1不一定对 所以选D CRC循环冗余码 对于CRC编码的方式我们只需要3步就可以解决
第一步准备待传的有效数据而待发送的数据是一系列比特的组合每个小的组合都是等长的假设是d位。每段都是1个组
第二步对于每一个组都加上冗余码再构成一个数据链路层的传输单元——帧 d位后加的r位帧检验序列冗余码是如何确定的首先我们要引入一个规则。
规则就是双方商定的一个除数也叫做生成多项式是r1位的。
一般题中给的生成多项式就是1101这种
但是有时候也会给你x3 x2 1 这种你先把各阶补齐是x3 x2 0*x1 1然后系数提出来是1101
有时候对于这个多项式会提到一个“阶”的概念阶就是最高位的幂比如x3 x2 1的阶就是3
生成多项式题目会具体给出来。
拿到了除数也拿到了要发送的d位数据怎么求r位的FCS 首先我们要在发送的d位数据后加上r位的0这个r位就是生成多项式位数-1。然后再用FCS去除生成多项式 注意这里的除法不是十进制的除法是模二除法。
模二除法就是加法不进位减法不退位。就相当于异或同0异1
第三步接收方接收到了这样一个d加r位的数据它是怎么检验的呢
我们拿dr位的数据对约定好的生成多项式进行模二除看它是否余数为0 举个例子 四、差错控制纠错编码
海明码 首先是确定校验码的位数r然后把校验码插入到数据位数中
ps奇偶校验码和CRC循环冗余码是在最低位附加上一位或者几位校验码但是海明码需要根据一定规则在数据位上安插上这个校验码。
再然后就是要求出校验码的值最后就是检错和纠错。
海明距离也称海明距、码距 如果码距为1传输过程中有1位出错比如000变成了001而000也是编码系统中的有效编码你是不知道有没有出错的。
如果码距为2传输过程中有1位出错比如0000变成了0001这样我们是可以检查出有错误的。因为码距是2啊你0000和0001只有1位不同码距变成1了。
码距为2这里能检错但是不能纠错因为我接收方收到是0001我知道是错误的但我不知道原先是哪位出错了可能原先数据是1001也可能是0000等等
以此类推如果码距为3我们可以检查出1位错也可以检查出2位错。 而对于纠错如果码距为3的编码中该编码系统中任何两个编码只发生一位错最后结果肯定是不一样的那么接收方也就不会迷惑这个编码是由谁出错了。所以码距为3可以纠正1位错但是无法纠错2位错。
海明码要检查d位错需要码距d1。
海明码要纠正d位错需要码距2d1。
ps上述具体推倒公式不用深挖记住会用即可。 纠错法一你画三个圆把校验码序号写到圆的外侧部分。 然后把外侧的数字做加法写到两圆交替处 123 145 246 最后空心处是三圆重合处写上1247
我们知道4567和1357是有有错的重合部分是5和7。那可以知道是5和7是有错的。但是别忘了还有一个条件2367是没有错的所以7没错最后结论就是5出错了。
纠错法二 五、流量控制与可靠传输机制 传输层流量控制两个主机之间 链路层流量控制两个相邻结点之间 六、停止-等待协议 TD发送方发送一个数据帧的发送时延 RTT往返时延 TA确认帧的发送时延 七、后退N帧协议GBN 停等协议发送窗口等于接收窗口都是1
GBN后退N帧协议发送窗口n个接收窗口1个
SR选择重传协议发送窗口和接收窗口都可以为n个
GBN协议工作流程 首先发送方发生0号帧把0号帧放到链路上同时发送方还要copy一个0号帧副本我们这里用橙色表示 0号帧传输过程中1号帧也可以发送因为只要在发送窗口里有这个帧就可以发送 发着发着0号帧到达了接收方接收方收到0号帧之后返回一个确认帧 接收方接收到这个ACK 0的确认帧就知道0号帧接收方已经正确接收了。
接下来接收方和发送窗口都会进行一个窗口前移的任务。 接收方收到1个帧就可以前移1位发送方收到1个确认帧也可以前移一位。
假如现在发送方123号帧全部发出来接收方不用逐一去确认他可以直接确认3号帧。 返回一个ACK3就表示3号帧及前面的全部正确接收然后发送方把滑动窗口移动3个格子。 首先要算一下甲把发送窗口的数据全部发送出去要多久也就是甲的发送延迟 窗口尺寸 * 帧长1000 * 1000 * 8b 这里把帧长换成比特
接下来再除甲的发送速率因为我们这里没有给发送速率只给了信道带宽我们就可以近似的来算。100Mb/s100 * 106 b/s
那么甲要把自己窗口的数据全部发送出去要80ms
而甲在发送了第一个帧之后什么时候才能收到该帧的确认呢 也就是传播延迟甲发送第一个帧的发送时长2 * 50ms (1000 * 8b)/(100 * 106)100.08ms
所以甲发送完自己窗口的所有数据之后此时为80ms还没有收到第一个帧的确认因为还没有到100.08ms。然后到收到确认帧之后甲才能往前移动。
接下来就是和前面一样的循环步骤了。 所以最大平均数据传输速率为1000 * 1000 * 8b /100.08ms80mb/s 答案选c
八、选择重传协议SR
我们前面学的GBN协议的最大特点就是累计确认也就是说它不用每个帧都需要回复一个确认。比如回复一个3号帧的确认就表示3号帧及其以前的都确认了。
但是于此带来了一个问题有了累计确认如果出现问题就会有批量重传的情况。
比如现在传12345帧只有3帧丢失了。那么GBN协议就算收到45帧它也不会要它会让发送方从3帧重新传。这样就会有问题了我45帧有没有问题你干嘛要我重传呢
对于上述问题SR协议进行了进一步的优化。
发送方和接收方的数据有如下的几类 这里接收方的6号帧已经确认会先缓存一下返回一个ACK6但是这时候不移动滑动窗口等收到5号帧的时候然后接收方的滑动窗口往后移动两格 一开始滑动窗口在5号那里6号已经就绪只要5号到位就可以直接移动两格也就是56号均到位 九、信道划分介质访问控制 两个节点的通信可能被其他结点的通信而干扰链路层就需要采取一定的措施来使两个节点之间的通信互不干扰这种措施就叫做介质访问控制。 静态划分信道 还没有开始通信前先把信道划分一下。或者先和所有人规定一下怎么通信。
动态划分信道 在通信过程中遇到冲突遇到冲突时再及时解决。
这小节主要讲静态划分信道动态划分信道后面会分开详细讲 假设线路传输速率是8000b/s 那么对应时分多路复用的每一个用户假设一共4个用户一个人最高只有2000b/s 而STDM假设1s线路最高传输速率是8000b/s那每个人最高也是8000b/s 因为这里是谁先来谁先上。一个人完全可以占用一个STDM帧而不需要想TDM那样发一个要再等别人。 十、ALOHA协议 纯ALOHA协议不监听信道不按时间槽发送随机重发。想发就发 纯ALOHA协议就是想发就发。 如上图所示纯ALOHA协议是非常随机的每一个站点主机他们都是在任何一个时间都可以发送数据帧的。
上图的T0规定的是一个数据帧的长度我们通常说一个帧的长度应该用比特来衡量但是这里的T0是指一个数据帧发送时间。 这里的发送时间既包括了传输时间也包括了传播时间。也就是一个帧从发送开始到发送成功为止这样一段时间叫做T0那我们现在假设每一个站点他所发送的T0都是相同的。 对于站点1它在第一时间发送了1号数据帧在T0时间内没有别的数据帧和他发生冲突那它就发送成功了
对于站点2它在某个时间段发送数据帧但是有一段与站点N-1发送的数据帧冲突了。 我们知道它们在同一时间内发送数据有一个冲突现象但是对于这两个站点来说它们是不清楚的因为它并没有在这个发送数据的时候进行一个监听所以他不知道有没有发送冲突。
如何才能检测冲突呢就是等我们的站点把数据帧发送完毕之后接收方会收到一个发生冲突的错误帧那因此接收方就会返回一个NAK否定确认帧或者说干脆不返回一个确认帧。这样发送方经过一个时间也就是我们之前讲的类似超时时间。如果经过一个超时时间还没有接收确认帧就知道这个帧在发送路上冲突了那样就会重发。
时隙ALOHA协议控制想发就发的随意性
因为纯ALOHA协议过于随性导致我们的数据帧发送的成功率非常低那这里我们形容数据帧发送的成功率用吞吐量来形容。 我们把时间分成若干个相同的时间片这个时间片就对应我们讲的一个时间槽T0
我们每一个站点在发送帧的时候只能在一个时间片或者时间槽的开始发送。如果现在某站点想发送但是还没到时间片开始它就不能发送必须等到时间片开始。
第一种情况这个站点发送的帧很顺利很成功那么发送过程中就是一个T0时间内没有其他的站点同时发送消息也就是没有发送冲突。那这个帧就算是成功发送了。
第二种情况如果发生碰撞这个节点就会在时隙结束之后也就是一个T0之后发送方发现产生了碰撞接收方没给他返回一个确认帧。那遇到冲突之后我们就需要进行一个超时重传重传还是要在一个时隙时间片开始的时候进行重传。 十一、CSMA协议 十二、CSMA/CD协议 十三、CSMA/CA协议 十四、轮询访问介质控制 等待延迟比如第四个主机要发送数据前3个主机都不需要发送但是第四个主机仍然需要等前三个轮询结束才可以。
单点故障最上面的节点故障了没法进行轮询那么下面四个节点一个也发送不了数据 上图是令牌传递协议它常用的是一种网络是令牌环网在逻辑上是环形结构在物理上是星型的。
上图令牌环网中有4个ABCD主机还有一个TCU转发器它其实是我们在传递数据帧时的一个传递接口它可以传递所有经过的帧而且为接入站发送和接收数据提供一个接口其实就是一个转发的作用。
而令牌传递协议顾名思义要有一个令牌这个令牌是一个特殊格式的MAC控制帧不包含任何信息。就是由几个比特构成的短小的数据帧它可以控制信道的使用确保同一时刻只有一个结点独占信道。 可以看出这个令牌传递协议结合了随机访问控制协议中的独占带宽的优点也结合了我们信道划分MAC协议的一个优点就是不会发生碰撞不会发生冲突主要是因为每一次只有一个主机它会掌握这个令牌只要它掌握这个令牌其他人就不能发送数据。 十五、局域网基本概念和体系结构 目前总线型是实战最好的也是最常用的 记住上面划红线的即可 十六、以太网 无差错接收比如你要发送的是1010那我接收也要按照1010接收如果我发现通过一些差错检测的方法比如奇偶校验的方法发现你这个帧出错了那这个帧就丢弃
可靠传输只要你发的帧我都要接收不管是帧丢失、重复都是可靠传输需要解决的问题这些可靠传输是由传输层来实现的而这种无差错接收是由以太网实现的 适配器它是把计算机和外界的有线局域网进行一个连接比如我们上网通信就需要这个关键的通信适配器通信适配器通常是上图这样的板子它是在主机箱内插入的一块网络接口板。它也称为网络接口卡也就是我们常说的网卡但是由于现在计算机主板上都已经嵌入了适配器所以我们就不会再单独的去使用网卡了因为已经嵌入好了。
适配器上会装有处理器和存储器两种主要结构其中存储器又包括RAM和ROM psRAM是随机存储器ROM是只读的了解即可
ROM上会有计算机硬件地址也就是MAC地址就是我们在数据链路层标志每一个主机每一个设备的唯一标识符。
在局域网中硬件地址又称为物理地址或者MAC地址实际上就是一个标识符就像我们身份证一样每人都有一个专属身份证而且这个身份证是全球唯一的通过这个身份证就可以找到你这个人。在我们计算机网络中通过一个给定的MAC地址就可以确定某个设备。
MAC地址是每个适配器都有一个全球唯一的48位二进制地址前24位代表厂家后24位厂家自己指定。我们的电脑在生活中地理位置是经常变的但是它的物理地址也就是MAC地址是没有变的因为网卡还是那个网卡。 我们之前说过以太网有两个标准自然对应的MAC帧就有两个形式。 我们现在最常用的MAC帧主要是V2这种格式。
首先是网络层的ip数据报到链路层这块就需要对数据报进行一个封装。而封装我们之前讲过对链路层的封装是要加头加尾的。加头就是目的地址、源地址、类型加尾就是FCS。
为了能够使得接收端可以迅速的实现位的同步也就是让发送方和接收方能保持一个发送和接收的同步我们就需要把这个从MAC层往物理层传递的帧前面加一个8字节的前导码。
前导码前7个字节是同步码是由1010组成的。最后1个字节前面都是1010后面两位是11 10是为了让发送方和接收方能进行一个时钟的同步后面两个11是发送方告诉接收方现在可以开始准备接受MAC帧。 ps前导码病不是以太网MAC帧的一部分
下面来看以太网MAC帧包括哪些部分
目的地址接收方的地址有三种情况 单播地址指的是有一个专有的MAC地址假如说我们要发送给一个固定的主机那这个主机的MAC地址就是我们的目的地址。
广播地址指的是全1的全F的这样的地址就会发送给所有的主机那这些所有的主机看到这样的地址全都会接收下来。
多播地址这个了解即可。
源地址发送方的地址
类型指明我们上面的网络层使用的是什么协议以便我们把收到的MAC帧数据上交给上一层的协议。
数据这个是最关键的部分了数据部分的长度是可变的46~1500字节 我们在链路层这章最开始讲过一个mtu就是链路层最大的数据传送单元1500字节 而46是源于我们前面讲的CSMA/CD协议提到的最小帧长以太网最小帧长是64字节可以看到当前的MAC帧已经有目的地址、源地址、类型以及后面的FCS它们6624总共是18字节64-1846字节。为了保证MAC帧是有效的帧就可以使用CSMA/CD协议所以我们要保证数据的字节部分数据长度最小是46字节。
FCS就是之前讲的CRC循环冗余校验的一个4字节的帧检验序列FCS。可能有同学有疑问数据链路层加头加尾既然头部有一个帧开始定界符为什么没有帧结束定界符
原因是我们以太网使用的编码形式是曼彻斯特编码曼彻斯特编码的一个特点就是在每一个比特位都有2个码元如下图。所以我们在发送数据的时候可以感受到电压的变化而不发数据就感受不到电压的变化了那我们就可以认为以太网帧是结束了。 那我们在结束位置前4个字节就可以确定数据结束的位置了。并且每一个发送帧之间都会有一个最小间隔也就是每一个发送帧之间会有一个最小间隔也就是每一个帧并不是紧挨着发送的发送完一个帧会稍微停一会然后去发送新的帧因此就会有一个空白的时间。这个空白的时间我们检测不到电压的变化就说明这个地方没有发送数据了。
十七、无线局域网 802.11是无线局网的通用标准是由IEEE所定义的无线网络通信的一个标准因此802.11它所规定的全部内容全都是围绕无线局域网的。由上图可以看出802.11下属还有很多个小标准都是在802.11的基础上进行额外的扩充及完善。
无线局域网覆盖范围通常是几千米wifi可能就是一间屋子这样小的空间。 wifi就是802.11b和802.11g两个标准注意区别无线局域网。
重点记忆MAC帧头 举个例子 现在有两台主机A和B它们之间要进行通信。 A附近有基站AP1B附近有基站AP2现在A要给B通信A会先把它的信息通过电磁波发给AP1AP1再发给AP2最后由AP2发给B。
psAP是指无线接入点也称为基站这个接入点顾名思义就是我们的设备或者我们主机想要访问的网络。 另外全国是有很多基站的我们手机在运动过程中它在基站中的数据也是会更新的。就像我们坐高铁你到另一个城市会收到另一个城市的信息。这是因为你刚到这个城市你离这个城市的基站比较近了所以你的手机号会被注册到这个基站中去。
目的地址、源地址这个很容易理解就是实际通信中两个设备的物理地址。结合下图来说就是目的地址是B的MAC地址源地址SA就是A的MAC地址。因为我们这里讨论的都是链路层的MAC帧MAC帧里面肯定都是MAC地址。 发送端、接收端发送端如上图的AP1接收端如上图的AP2。
十八、VLAN基本概念与基本原理 1.缺乏流量隔离指的是即使我们把组流量局域化到一个单一的交换机中广播流量仍然会跨越整个机构网络这种情况我们都是用交换机进行链接的。如果某个主机发送广播帧那所有的网络中的主机都可以收到。ARP、RIP、DHCP协议都会用到广播的形式所以在这种协议的应用下我们常会遇到泛洪的现象
2.管理用户不便比如A工作组的某主机想去B工作组就需要改变物理布线。但我们实际肯定是希望改动越小越好如果只需要在软件身上改动是最好的所以这是第二个弊端。
3.路由器成本较高如果一个大的局域网中有很多组我们希望给它们隔离开来就需要有多个路由器来解决那路由器的成本就上去了。
所以就有了下面要说的VLANVLAN又称为虚拟局域网是一种将局域网内设备划分成与物理位置无关的逻辑组的技术
VLAN本质还是一个局域网只不过我们对这个交换机进行了简单的处理让他能够有更高的能力将局域网内设备划分成与物理位置无关的逻辑组的技术。这些逻辑组有共同的需求每一个VLAN是一个单独的广播域或者说不同的子网。
相当于我们对交换机进行了VLAN划分之后他连接的几个主机就可以处在不同的VLAN中如下图一个交换机有一个VLAN1和VLAN2 比如说A主机发送了一个广播帧只有在这样一个广播域中的B主机能收到。由于CD主机和A主机并不是一个虚拟局域网所以CD不会收到A主机发来的广播帧所以每一个VLAN是一个单独的广播域。你也可以理解成一个不同的子网这就是VLAN的基本概念。 并且我们不仅可以在一个交换机所连接的主机上进行划分还可以在一个大的局域网中进行划分。如下图橙色我们规定是VLAN1黑色我们规定是VLAN2 如上图现在A和C通信也就是两个不同的虚拟局域网之间通信是无法直接实现的。交换机上默认生成的VLAN是互不相同的AC本质是两个不同子网不同子网是需要借助路由器或者具有三层路由选择和交换的交换机才行。
那A和B怎么通信呢或者说A给B发送了一个广播帧怎么就没有进入到C和D中呢首先我们交换机会有一个转发表基于MAC地址和它的端口有这样一个映射。 但是由于我们的交换机现在还有虚拟局域网的功能所以还有一个交换机的VLAN表。VLAN表有一个VLAN ID表示处在哪个虚拟局域网中端口和转发表一样。
举个例子现在A主机发送一个广播帧交换机就知道A主机也就是1号端口是从VLAN1来的如果要转发交换机会查看VLAN表发现VLAN ID是1的只剩下2号端口就只有2号端口可以接收消息。
再举个例子现在A只想给B发送数据帧那他首先会查看转发表然后发现B这个端口是二号端口那接下来再去确认一下VLAN表看2号端口是不是和A是一个虚拟局域网VLAN中如果是就转发。
VLAN表除了VLAN ID和端口构成的还有一个比较常见的叫做基于MAC地址的VLAN技术。这个其实就是把端口号具体化了。 比较常用的还是刚刚的那种也就是VLAN ID和端口的那种。
如果我们现在交换机和交换机之间想要发送一个数据帧怎么实现 简单来说就是贴标签
比如说下图的A主机要发送数据给E主机那么首先A主机会准备好一个帧这个帧就是我们之前在链路层学过的普通的以太网帧。
到了交换机这里它就会知道是A主机的帧它是从VLAN1中过来的因此就会在这个帧上附加一个字段一个标签tag让tag1表示从A主机1号端口发来的以太网数据帧它属于VLAN1 接下来包含这个VLAN1的新的数据帧就会通过这个链路发给交换机2为什么在这个链路中没有把标签去掉呢
因为在交换机与交换机之间连接的端口常用trunk端口trunk端口不需要对标签去掉tag直接把包含了tag的标签发过去。
发到交换机2它就会知道是属于虚拟局域网1的那么接下来就只会发给这个虚拟局域网1当中1个主机。然后再结合一些其他的MAC地址字段就可以知道是要发给E还是F。 贴标签也就是给原先的MAC帧加入一个4字节的VLAN标记也就是刚才说的tag
VLAN标记的前2字节是表面是IEEE 802.1Q帧也就是说我们原先的MAC帧如果经过VLAN标记的插入后就变成了802.1Q帧这个东西了解即可。
然后接下来4位是没有用的
还剩下12位则是VLAN标识符也就是tag那个东西它唯一表示该以太网帧属于哪个VLAN。 用户主机和交换机之间的交流和通信这个中间的帧一定是普通的MAC帧而不是802.1帧。只有在经过了这个交换机的时候交换机内部才会给它打一个标签。如果后面又需要连另一个交换机则通过一个主干线的trunk端口发出去此时的帧才是带有标记的也就是802.1帧。
接下来这个帧进入交换机之后要选择从哪个端口输出如果选定主机之后就需要把刚才的标签去掉。 知识小结 通过对交换机的改编我们可以形成不同的逻辑工作组也就是一个个VLAN。每一个VLAN是一个广播域广播域可以传送广播帧但是广播帧不能发送给其他的虚拟局域网。除非你有路由器或者三层的具有路由选择的交换机才行。
另外VLAN有两种实现方式一种是基于端口的也就是VLAN表中是VLAN ID和端口ID 另一种是基于MAC地址的也就是VLAN表中是VLAN ID和MAC地址。 比较常用的是第一种。
然后我们还知道了在不同虚拟局域网中怎么进行通信以及怎样在同一个虚拟局域网即使是跨交换机如何通信——即打标签也就是对原有的普通MAC帧添加4字节的标识符最重要的是后面的12位这12位是VID也就是虚拟局域网的ID根据这个ID就可以确定这个数据帧属于哪个局域网。
十九、广域网及相关协议 F: PPP协议是以字节为单位的第一个字节和最后一个字节是7E十六进制7E写成二进制就是01111110它是标志字段也是帧定界符。
当然了很可能在信息部分存在8个位1字节它和帧定界符是一样的这里就需要透明传输加一个转义字符了。简言之只要在信息部分遇到了和帧定界符一样的数据我们就在前面加一个转义字符到了接收端再把插入的转义字符删掉即可。
A: A表示address地址字段地址字段用全1表示也就是2个F
C: 和地址字段一样其实并没有特别大的意义现实中使用也没有什么意义了解即可
协议标识信息部分是什么类型是IP数据报、LCP数据报还是网络层控制数据等等。这里了解即可。
FCS这个是为了实现差错检测的使用CRC循环冗余校验算法在后面插了一个2字节的帧检验序列FCS
可以看出PPP协议它的帧格式是以字节为单位的。所以它传输的数据都是整数个字节所以我们又说PPP协议是面向字节的一种协议。
二十、链路层设备 我们知道主机和集线器的距离不能超过100m如果超了那么失真就会非常严重所以这个距离是很短的。而为了使得距离比较远的主机进行通信我们就需要把以太网扩展一些。
我们采用的第一种方式就是通过光纤一个是因为光纤非常长另一个是因为光纤损耗很小。所以我们可以通过光纤的方式来扩展我们以太网的范围使我们两台主机进行通信的距离变得更远。 还有一种方法我们可以利用集线器再把很多个集线器组合起来。这样每一个集线器构成的区域叫做冲突域冲突域是指在这个物理层设备所连的主机之内如果进行通信同一时间内只能有一台主机发送信息如果有两台主机发送信息就会发生冲突或者碰撞。
把各个集线器连接到一个主干集线器上这样就可以使某一个集线器和其他冲突域中的计算机进行通信了就形成了一个大的冲突域。所以主干集线器也是扩展以太网的方式。
但是由于冲突域变大了里面主机变多冲突的可能性也随之增加。 所以下面介绍可以减少冲突还能扩大以太网范围的方法 网桥是交换机的前身现实生活中用网桥都很少了大部分是交换机。
上图的网桥就是把几个以太网连接起来了这样就构成了一个更大的以太网。 而原先的以太网冲突域也称为网段 网桥的优点
1.过滤通信量增大吞吐量 网桥是工作在数据链路层的一个链路层设备它可以把各个冲突域分割开。 可以看到上图网桥的两端都是冲突域 但是如果网桥换成集线器换成一个物理层的设备就没有这种过滤通信量或者说分隔冲突域的功能了。可以看到上图中不同网段的通信是不会进行彼此之间的干扰的。
举个例子现在A和B通信那C和DE和F也是可以同时通信的它们之间不会互相干扰。如果你是换成物理层设备同时连着6台主机那这6台主机是不可以同时通信的。
而经过了网桥这种链路层设备连接之后每个冲突域内都可以进行单独的通信。比如A和C也可以进行通信因为网桥把以太网进行了一个扩展。
举个例子假设每个网段的数据传输速率带宽是10MB/S那么这三个网段合起来的最大吞吐量就是30MB/S
当然如果我们把这个网桥换成物理层的设备那么整个网络就是一个碰撞域冲突域当A和B通信时其他的都不能通信那整个碰撞域的最大吞吐量仍然是10MB/S
2.扩大了物理范围 这个很容易理解A甚至可以和F通信了
3.提高了可靠性 可靠性是指当网络出现一个故障时通常只会是一个网段受到影响。 举个例子现在AB的主干线坏了那对于其他两个冲突域没有啥影响。
4.可以互联不同物理层、不同MAC子层、不同速率的以太网 关于自学习其实就是在通信的过程中我们逐步的丰满转发表我们举个例子 现在A要给B发送一个数据帧那A发送的数据帧会在这个网段中广播出去 左边这个网桥在收到数据后会先按源地址也就是先按照A的Mac地址查找转发表。发现这个转发表中并没有A的地址于是就先把A的地址和收到帧的接口1写入到转发表中 这样如果后面A再发数据而且是经过左边网桥1号接口处理的话我们就知道应该从1号端口发到网段中了。
接下来再按照目的地址B来查找转发表发现转发表中没有B的地址于是通过除了1接口外的所有接口转发出去目前只有2个接口于是从左边网桥的2号接口出去。
转发出来的帧经过CD但是CD发现并不是给自己的所以它们并不会处理而是直接丢弃 再往下帧走到右边的网桥的1号接口那么这个右边网桥我们给它记为2号网桥会按照同样的方式处理这个帧。 首先网桥2的转发表中先找源地址A但是没有找到于是就把A及接口1写进转发表
接下来网桥2再看自己的转发表中有没有包含目的地址B的但是发现还是没因此网桥2就会从2号接口发出去
这样A和B的通信过程在上图就已经结束了。
现在我们F要给C发一个数据帧我们来看一下是如何运作的 F发出1个数据帧流经E再流向网桥2的2号接口网桥2会先检查帧的源地址发现转发表里面没有F那就会把F写入然后对应接口是2 网桥再检测转发表中有没有目的地址C的发现没有于是从网桥2的1号接口出去。 经过DC再流到网桥1的2号接口。
到目前为止C其实已经收到了来自F的帧但是发送还没有停止。数据帧从1号网桥的2号接口进入到1号网桥。
然后1号网桥再一次对帧进行处理首先看数据帧的源地址F发现没有写入转发表 然后网桥再检测目的地址C发现转发表没有C于是再把这个帧继续发送下去 下面我们再来看另一种网桥源路由网桥
我们实际的复杂网络就类似一个迷宫迷宫的出口和入口就类似于发送的源站和目的站。
源路由网桥的工作原理就是源站以广播的方式向目的站发送一个发现帧源站会以广播的方式把帧放到链路上进行传播。 当发现帧到达目的站发现帧会原路返回。如果有n种路径从终点站走到源站它会告诉起点有多少种路由选择方案这些路由选择方案中选择一个路由最少/时间最短的。
假设我们已经知道了某条路是路由最少/时间最短的我们就把这条路径的信息作为最佳路由信息放在帧的首部以后只要发送数据帧源站和目的站是以前记录的这条那就直接选择这条最优方案。
再来看一种网桥 多接口网桥——以太网交换机 我们知道网桥通常只有2个端口如果我们要扩展这个以太网就需要很多网桥这样就很浪费了。所以我们随着技术发展网桥的接口也变得越来越多了。
这样的网桥就变成了我们所说的以太网交换机。交换机和网桥是一样的原理每一个端口都是一个冲突域需要注意的是以太网交换机可以独占传输媒体带宽。
举个例子现在有个冲突域带宽是10Mb/s现在有4个主机用集线器连接那他们每一个人能分到的带宽也就只有2.5Mb/s 但是如果我们用的是以太网交换机也是用10Mb/s那不管是集线器还是单个主机都是10Mb/s 接下来来看以太网交换机的两种交换方式。 第一种是直通式交换机第二种是存储转方式交换机其实还有第三种前两种结合起来。
直通式交换机是只检查帧的目的MAC地址这个目的MAC地址长度是6字节。检查之后就立刻转发所以它的时延是非常小的。但是问题就是它的可靠性低它并不会对数据帧进行错误的检查也无法支持具有不同速率的端口的交换。
存储转方式交换机刚好是把直通式交换机的缺点进行改正。它是将帧放到高速缓存并且检查这个帧是不是正确的如果正确就会转发如果错误就把这个帧丢弃。于是这种交换方式就提高了系统的可靠性也可以支持不同速率端口的交换。相应的代价就是延迟较大。 交换机的自学习和网桥几乎是一样的 广播域的判断很简单你就看有没有路由器。 如果图中有路由器那路由器左边一个广播域右边一个广播域。 如果图中没有路由器那构成的就是一个广播域。
对于冲突域物理层设备是无法分隔冲突域的所以集线器所连的主机都算是一个冲突域 而以太网交换机是链路层设备链路层设备只要有一个端口都算一个冲突域 所以共有4个冲突域。