第三章 链路层
第三章 链路层
3.1链路层&术语&功能
基本术语
- 结点:主机、路由器
- 链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤、微波。分为有线链路、无线链路。
- 数据链路:网络中两个节点直接的逻辑通道,把实现控制数据协议的 硬件和软件加到链路上就构成数据链路。
- 帧:链路层的协议数据单元,封装网络层数据包。
数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据包。(搬运工)
链路层功能
链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层的数据可靠地传输到相邻结点的目标机网络层。
有一定的纠错作用:其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路
-
功能一:为网络层提供服务,相邻节点之间的可靠传输
- 三种:无确认无连接服务、有确认无连接的服务、有确认面向连接服务【既然连接上来了,那就去确定一下吧】
- 既然在传输层实现了端到端的可靠数据传输,为什么还需要在链路层提供可靠数据传输呢?
- 当传输链路是比特错误率很低的链路时,例如光纤和双绞线,很少使用可靠数据传输机制;而在无线链路这样的高比特错误率链路时,通常会增加可靠数据传输机制。
-
功能二:链路管理,即连接的建立、维持、释放(用于面向连接的服务)
-
功能三:封装成帧,增加相应的头部和尾部信息
-
功能四:流量控制。控制发送发送数据帧的频率,避免过快发送,使接收节点的缓冲区溢出。
-
功能五:错误检测,接收方检测,如果检测到错误,则可以通知发送方重传数据帧或直接丢弃该数据帧。
-
功能六:错误纠正,接收方进行标识和纠正,不需要请求重传数据帧。
-
功能七:半双工或全双工的数据传输。在半双工模式下,链路的两个节点都可以发送数据帧,但不能同时发送。
数据报可以在不同的链路上,通过不同的链路层协议发送:
当游客要从A地 ----> B地
- 游客——数据报
- 旅行社代理——路由选择算法
- 旅程的道路——通信链路
- 交通工具——协议:以太网、帧中继、802.11无线以太网技术
- 不同的链路层协议提供的服务也是不同的
- 例如有的链路层协议可以提供可靠数据传输服务
- 而有的链路层协议,例如以太网协议,不能提供数据的可靠传输服务
链路层功能实现的位置
主机、路由器。
主机上,链路层的主要部分是靠网络适配器(网卡)实现的,这个小东西来实现链路层和物理层的功能,它是硬件软件固件的组合。
- 发送方,链路层控制器将数据报封装成数据帧,增加差错检测比特,可靠数据传输,流量控制等机制。
- 接收方,链路层控制器接收数据帧,执行差错检测、可靠数据传输、流量控制等机制,最后从数据帧中抽取数据报,递交给上层。
3.2 封装成帧&透明传输
- 封装成帧
- 组帧的四种方法
- 字符计数法
- 字符(节)填充法
- 零比特填充法
- 违规编码法。
- 组帧的四种方法
- 透明传输
封装成帧
封装成帧:
发送端:在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。【首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)】
接收端:在收到物理层上交的比特流后,根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束,也就是实现帧同步。【帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。】
透明传输
链路层就“看不见”有什么妨 碍数据传输的东西。 看不见——视为透明
当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误 认为是某种控制信息。这样才能保证数据链路层的传输是透明的。
1.字符计数法
帧首部使用一个计数字段(第一个字节,八位)来标明帧内字符数。
痛点:鸡蛋装在一个篮子里了。
2.字符填充法
- 当传送的帧是由文本文件组成时(文本文件的字符都是从键盘上输入的,都是ASCII码)。不管从键盘上输入什么字符都可以放在帧里传过去,即透明传输。
- 当传送的帧是由非ASCII码的文本文件组成时(二进制代码的程序或图像等)。就要采用字符填充方法实现透明传输。
- 如图,一个EOT代表帧的尾部,传输一个图像数据中,出现了与EOT相同的编码时候,就无法分辨
- 如何解决?
- 发送时,在会产生误解的代码前插入一个代表ESC的比特串
- 接受时,删除相应的ESC,即可还原
3.零比特填充法
- 在发送端,扫描整个信息字段,只要 连续5个1,就立即填入1个0。
- 在接收端收到一个帧时,先找到标志字段确定边界,再用硬件对比特流进行扫描。发现连续5个1时,就把后面 的0删除(注意:即使111110,也要填充成1111100)
保证了透明传输:在传送的比特流中可以传送任意比特组合,而不会引起对帧边界的判断错误。
4.违规编码法
可以用“高-高”,“低-低”来定界帧的起始和终止。
由于字节计数法中Count字段的脆弱性(其值若有差错将导致灾难性后果)及字符填充实现 上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填充和违规编码法。
3.3 差错控制-检错编码
差错从何而来?
概括来说,传输中的差错都是由于噪声引起的。
- 全局性:由于线路本身电气特性所产生的随机噪声(热噪声),是信道固有的,随机存在的。
- 解决办法:提高信噪比来减少或避免干扰。(对传感器下手)
- 局部性:外界特定的短暂原因所造成的冲击噪声,是产生差错的主要原因。
- 解决办法:通常利用编码技术来解决。
差错有哪些
- 位错【比特位出错,1变成0,0变成1。】
- 帧错:丢失、重复、失序
这里需要说明的是:
差错检测和纠正技术不能保证接收方检测到所有的比特差错,即可能出现未检测到的比特差错,而接收方并未发现。
第二,选择一个合适的差错检测方案使未检测到的情况发生的概率很小即可。
第三,差错检测和纠错技术越复杂,通常检错性能越好,但是开销更大。
检错基本原理
发送方编码,接收方解码。
要传送m位,校验位r位,则编码的总长度为m+r位。
m位的信息,就有2m位的信息码,m+r位则有2m+r种编码。因此m+r位的编码分为两大类,有效码和无效码。有效码2^m,其余的编码则称之为无效码。
三种主要差错检测技术
奇偶校验:最基本的方法。
Internet校验和:常用于运输层。
循环冗余检测:常用于链路层。
差错检测方法比较
奇偶校验能力最弱,CRC校验能力最强。
奇偶校验通常用于简单的串口通信,CRC通常应用于链路层,一般由适配器硬件实现
Internet校验和通常用于网络层及其之上的层次,要求简单快速的软件实现方式
链路层为网络层提供服务:无确认无连接服务,有确认无连接服务,有确认面向连接服务。
通信质量好 有线传输链路 通信质量差的无线传输链路
数据链路层编码和物理层的数据编码与调制不同。
物理层编码针对的是单个比特,解决传输过程中比特的 同步等问题,如曼彻斯特编码。而数据链路层的编码针对的是一组比特,它通过冗余码的技术实现一组二 进制比特串在传输过程是否出现了差错。
冗余编码
在数据发送之前,先按某种关系附加上一定的冗余位,构成一个符合某一规则的码字后再发送。当要发送的有效数据变化时,相应的冗余位也随之变化,使码字遵从不变的规则。接收端根据收到码字是否仍符合原规则,从而判断是否出错。
lnternet校验和的特点
分组开销小:检查和位数比较少;
差错检测能力弱:
适用于运输层(差错检测用软件实现,检查和方法简单、快速)。
链路层的差错检测由适配器中专用的硬件实现,
采用更强的CRC方法
奇偶校验码
两种校验方法:奇校验和偶校验
所谓奇校验是指使发送数据中1的个数为奇数,偶校验是指使发送数据中1的个数为偶数。
奇校验:原始码流+校验位 总共有奇数个1
偶校验:原始码流+校验位 总共有偶数个1
算法
校验码放在原始码流后面
它的校验位只有一位,要么是0,要么是1。并且它的校验码还可以放在码流的前面。
错误检测能力
只能检测出奇数个错误。 所以检错能力是50%
例如还是ASCII码 大写字母 A
奇校验 正确码流 11000001
错1位 11000011 变成了偶数个1,能检测出错误
错2位 11000010 变成了奇数个1,检测不出错误
错3位 11001010 变成了偶数个1,能检测出错误
奇校验还有一个重要的特征是产生不了全0代码
偶校验 正确码流 01000001
错1位 01000011 变成了奇数个1,能检测出错误
错2位 01000010 变成了偶数个1,检测不出错误
错3位 01001010 变成了奇数个1,能检测出错误
二维奇偶校验
注意:计算右下角的奇偶校验位,使最后一行的行奇偶校验位具有奇数奇偶校验。
检测与矫正能力
可以检测并纠正单个比特差错(数据或校验位中),如上图
无法确定翻转的位的确切位置(即,进行错误纠正和错误检测),在二维奇偶校验方法中不可能纠正两位错误。
结果可能是显示为红色的 [3][4],[5][7] 这两个比特,出现了错误,即 [3][4] 比特本来是 0,错误传输为 1,以及 [5][7] 比特本来的 0 错误传输为 1;
也可能是显示黄色的两个位置 [3][7] 比特本来是 1,结果传输为 0,以及 [5][4] 比特本来是 0,结果传输为 1。
检错编码——CRC循环冗余码
以太网中实际采用的差错检测方法,CRC编码即多项式编码。把要发送的比特串看作为系数是0或1的一个多项式,对比特串的操作看作为多项式运算。先由发送接收方事先共同选定一个生成多项式。并由此确定码的长度。
例如,生成多项式是5bit,所以得到的余数(码)4bit
并且,CRC的检查能力是非常强的,能检测 小于 r+1 位(不包括r+1位)的突发差错,以及任意奇数个比特差错。
模2运算例子
首先,加法不进位,减法不借位,即操作数的按位异或 (XOR)(相同为0,相异为1)
-
1011和0101按模2运算进行加法运算,可得1110
-
1011减去0101,可得1110
在模2运算中,乘法和除法与二进制运算类似,例如乘以2的r次方,相当于将比特序列左移r位。
算法
发送端
1、计算FCS帧检验序列
2、每个组都加上冗余码构成帧再发送:
接收端
例:
要发送的数据是1101 0110 11,采用CRC校验,生成多项式是10011,那么最终发送的数据应该是?
首先需要在右边增加4个0。 每满足首位为1,构成5位数,就可以进行一次模2的减法运算。
补充:
- FCS的生成以及接收端CRC检验都是由硬件实现,处理很迅速, 因此不会延误数据的传输
3.4 差错控制 - 纠错编码-海明码
海明距离
两个合法编码(码字)的对应比特取值不同的比特数称为这两个码字的海明距离(码距)
一个有效编码集中,任 意两个合法编码(码字)的海明距离的最小值称为该编码集的海明距离(码距)。
- 000 、001、 010 、011、 100、 101、 110 、111
- 该编码系统中的码距为1
- 传输中出错了咋整? ——没办法
- 0000 、1001 、1010 、0011、1100 、0101、 0110 、1111
- 该编码系统中的码距为2
- 传输中出错了咋整?——可检测出1位错 但不可被纠正
海明码-步骤
1.确定校验码位数r
- 数据/信息有m位,冗余码/校验码有r位
- 校验码一共有2^r 种取值
- 海明不等式: (这里的r属于自然数集,升序,一个个尝试。)
- 要发送的数据:D=1100
- 数据的位数m=4, 满足不等式的最小r为3
- 则D=1100的海明码应该有4+3=7位, 其中原数据4位,校验码3位。
2.确定校验码和数据的位置
3.求出校验码的值
4.检错并纠错
检验
- 若接收方收到的数据为1110001,检错类似奇偶校验(只能大致发现哪些是错的)
纠错
3.5流量控制与可靠传输机制
流量控制
较高的发送速度和较低的接收能力的不匹配,会造成传输出错。 【发送方!! 你慢点!! 】
不同层的流量控制
- 数据链路层流量控制手段:接收方收不下就不回复确认。且数据链路层的流量控制是点对点的,
- 传输层流量控制手段:接收端给发送端一个窗口公告。而传输层的流量控制是端到端的。
流量控制的方法
- 停止-等待协议——发送窗口大小=1,接收窗口大小=1;
- 滑动窗口协议(这里的>1都是指2^n-1)
- 后退N帧协议(GBN)——发送窗口大小>1,接收窗口大小=1;
- 选择重传协议(SR)——发送窗口大小>1,接收窗口大小>1;
可靠传输、滑动窗口、流量控制
可靠传输:发送端发啥,接收端收啥。
流量控制:控制发送速率,使接收方有足够的缓冲空间来接收每一个帧。
滑动窗口解决了什么?
- 流量控制(收不下就不给确认,想发也发不了)
- 可靠传输(发送方自动重传)
3.6 停止-等待协议
1.为什么要有停止-等待协议?
- 为了实现流量控制。
- 除了比特出差错,底层信道还会出现丢包问题。
- 【丢包:物理线路故障、设备故障、病毒攻击、路由信息错误等原因,会导致数据包的丢失。】
⒉研究停等协议的前提?
- 虽然现在常用全双工通信方式,但为了讨论问题方便,仅考虑一方发送数据(发送方),一方接收数据(接收方)。
- 因为是在讨论可靠传输的原理,所以并不考虑数据是在哪一个层次上传送的。
- “停止-等待”就是每发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。
3.停等协议有几种应用情况?
- 无差错情况
- 有差错情况
停等协议——无差错情况
每发送1个数据帧就停止并等待, 因此用1bit来编号就够。
停等协议——有差错情况
1.数据帧丢失或检测到帧出错
超时计时器:每次发送 一个帧就启动一个计时器。
超时计时器设置的重传时 间应当比帧传输的平均RTT 更长一些。【短了怕等不到,长了浪费资源】
注意:
1.发完一个帧后,必须保留它的副本。
2.数据帧和确认帧必须编号
2.ACK丢失
3.ACK迟到
停等协议性能分析
简单! 信道利用率太低!
信道利用率
发送方在一个发送周期内,有效发送数据所占的时间占总周期的比率
- 信道利用率=发送数据的比特数/ 发送方数据传输率*发送周期【
信道利用率=L/C*T
】 - 信道吞吐率=信道利用率*发送方的发送速率
例题:
一个信道的数据传输率为4kb/s,单向传播时延为 30ms,如果使停止-等待协议的信道最大利用率达到80%, 要求的数据帧长度至少为( )。
3.7 后退N帧协议 (GBN)
停等协议的弊端
发送方
1.必须增加序号范围。
2.发送方需要缓存多个分组。
接收方:
相比之下 很闲
后退N帧协议中的滑动窗口
- 发送窗口最大为2^n-1
- 接收窗口大小为1
GBN发送方
1.上层的调用
上层要发送数据时,发送方先检查发送窗口是否已满,如果未满,则产生一个帧并将其发送;如果窗口已满,发送方只需将数据返回给上层,暗示上层窗口已满。上层等一会再发送。(实际实现中,发送方可以缓存这些数据,窗口不满时再发送帧)。
⒉.收到了一个ACK
GBN协议中,对n号帧的确认采用累积确认的方式,标明接收方已经收到n号帧和它之前的全部帧。
3.超时事件
协议的名字为后退N帧/回退N帧,来源于出现丢失和时延过长帧时发送方的行为。
就像在停等协议中一样,定时器将再次用于恢复数据帧或确认帧的丢失。
如果出现超时,发送方重传所有已发送但未被确认的帧。
GBN接收方
- 如果正确收到n号帧,并且是按序的,那么接收方为n帧发送一个ACK,并将该帧中的数据部分交付给上层。
- 其余情况都丢弃帧,并为最近按序接收的帧重新发送ACK。接收方无需缓存任何失序帧,只需要维护一个信息:expectedseqnum(下一个按序接收的帧序号)。
GBN运行举例
假设发送窗口尺寸为4
出现超时:发送方重传所有已发送但未被确认的帧。
可以看出,GBN协议还是很任性哈,就像个挑食的小孩子,没有得到想要那个ACK,你来什么其他的都给丢掉~~
滑动窗口长度
若采用n个比特对帧编号,那么发送窗口的尺寸W 应满足:1≤ W≤2^n-1。
- 因为发送窗口尺寸过大,就会使得接收方无法区别新帧和旧帧
- 发送窗口尺寸太小,传输速率慢
GBN协议性能分析
优点
因连续发送数据帧而提高了信道利用率
缺点
在重传时必须把原来已经正确传送的数据帧重传,使传送效率降低。
GBN协议重点总结
- 累积确认(偶尔捎带确认)
- 接收方只按顺序接收帧,不按序则无情丢弃
- 确认序列号最大的、按序到达的帧
- 发送窗口最大为2^n-1。接收窗口大小为1
例
题1
数据链路层采用了后退N帧(GBN )协议,发送方已经发送了编号为0~7的帧。当计时器超时时,若发送方只收到0、2、3号帧的确认,则发送方需要重发的帧数是( )。
解:
已经收到3号帧的确认,则已经收到0123,故重新发送4、5、6、7帧,所以要重发的帧数为4。
题2
主机甲与主机乙之间使用后退N帧协议(GBN )传输数据,甲的发送窗口尺寸为1000,数据帧长为1000字节,信道带宽为100Mb/s,乙每收到一个数据帧立即利用一个短帧(忽略其传输延迟)进行确认,若甲、乙之间的单向传播时延是50ms,则甲可以达到的最大平均数据传输率约为( 80Mb/s)。
解:
甲发送一次完整的数据帧的耗时:
一个数据帧的发送时间:T = 发送时延+ 传播时延 X 2 = 100.08ms
数据传输率:
后退N帧协议与选择重传协议
Go-Back-N 所使用的技术
序号、累积确认、校验和、定时器(超时判断)、重传(超时重传,当定时器超时,重新发送所有未确认的分组)
发送方对最早未确认的分组进行定时器计时
Selective Repeat 所使用的技术
序号、逐个确认(接收方缓存)、校验和、定时器、重传(超时重传、选择重传)、定时器(超时,只发送未确认的分组)
3.8 选择重传协议 (Selective Repeat)
GBN协议的弊端
GBN太挑食了,但是有些肉明明可以吃!那可不可以只重传出错的帧?
解决办法:设置单个确认,同时加大接收窗口,设置接收缓存,缓存乱序到达的帧。
SR滑动窗口
发送窗口最好等于接收窗口。(大了会溢出,小了没意义)
并且最大值都是2^(n-1)
SR发送方
1.上层的调用
从上层收到数据后,SR发送方检查下一个可用于该帧的序号,如果序号位于发送窗口内,则发送数据帧;否则就像GBN一样,要么将数据缓存,要么返回给上层之后再传输。
⒉收到了一个ACK
如果收到ACK,加入该帧序号在窗口内,则SR发送方将那个被确认的帧标记为已接收。如果该帧序号是窗口的下界(最左边第一个窗口对应的序号),则窗口向前移动到具有最小序号的未确认帧处。如果窗口移动了并且有序号在窗口内的未发送帧,则发送这些帧。
3.超时事件
每个帧都有自己的定时器,一个超时事件发生后只重传一个帧。
SR接收方
来者不拒,不需按序——SR接收方将确认一个正确接收的帧而不管其是否按序。
失序的帧将被缓存,并返回给发送方一个该帧的确认帧【收谁确认谁】,直到所有帧(即序号更小的帧)皆被收到为止,这时才可以将一批帧按序交付给上层,然后向前移动滑动窗口。
注:网络层
如果收到了窗口序号外(小于窗口下界)的帧,就返回一个ACK。其他情况,就忽略该帧。
SR运行
接收窗口大小设定的原因(序号与窗口大小之间的关系)
探讨在选择性重传过程中存在的序号与窗口大小之间的关系?
1、发送方窗口不能比接收方窗口大,否则接收的分组会丢失(窗口溢出)。
2、要最大化发送方窗口的流水线分组,要保证不能产生二义性。
3、发送方窗口<=接收方窗口。要最大化发送窗口,则发送方窗口 = 接收方窗口。
假设发送窗口为 n,则接收方窗口也为 n。发送方发送 n 个分组时,接收方窗口向前移动 n,接收方窗口此时为 n+1, n+2, ... 2n。要避免二义性,必须满足 2n <= 序号最大值。
二义性例子:
序号: 0, 1, 2, 3 (base 4 counting),窗口大小 = 3
Q: 序列大小和窗口大小之间需要什么关系才可以避免场景(b)中的问题?
A:窗口长度小于等于序号空间的一半!
SR协议重点总结
- 对数据帧逐一确认。收一个确认一个
- 只重传出错帧
- 接收方有缓存
- 发送和接收窗口的最大值都是2^(n-1)
例题
数据链路层采用了选择重传(SR)协议,发送方已经发送了编号为0~3的帧。现已收到1号帧的确认,而0、2号帧依次超时,则发送方需要重传的帧数是( )。
解:
重新发送0、2号帧,所以要重传两个帧
3.9多路访问链路和协议
- 信道划分介质访问控制(MAC Multiple Access Control)协议:基于多路复用技术划分资源。网络负载重:共享信道效率高,且公平;网络负载轻:共享信道效率低
- 随机访问MAC协议:冲突。用户根据意愿随机发送信息,发送信息时可独占信道带宽。网络负载重:产生冲突开销;网络负载轻:共享信道效率高,单个结点可利用信道全部带宽
两种网络链路:
- 点对点链路:链路两端各一个节点。一个发送和一个接收。如点对点协议PPP。
- 广播链路:多个节点连接到一个共享的广播信道。
- 多个节点同时向共享信道发送数据,信号相互干扰。多个人同时说话,可能导致听不清楚你希望听到的话
- 这就需要解决当前谁使用信道的问题,即谁有权利在当前向信道发送数据帧。
1、信道划分介质访问控制
主要有TDMA、FDMA、CDMA三种。
设信道支持N个节点,传输速率是Rb/s。
时分多路访问TDMA (time division multiple access):
将时间划分为时间帧,每个时间帧再划分为N个时隙(长度保证发送一个分组),分别分配给N个节点。每个节点只在固定分配的时隙中传输。
首先介绍信道划分协议。目前主要的信道划分协议包括时分多路接入(TDMA)、频分多路接入(FDMA)、
TDMA的特点:
首先,它能避免冲突,将链路资源进行公平分配,每个节点专用速率R/N b/s。
其次,节点速率有限:R/N b/s,当其他节点没有数据要传输时,需要发送数据的节点也不能充分利用链路资源;
因此,TDMA的效率不高,节点必须等待它的传输时隙才能发送数据。
频分多路访问FDMA (frequency division multiple access):
将总信道带宽R b/s划分为N个较小信道(频段,带宽为R/N),分别分配给N个节点。例:6个站点的LAN,频带1、3、4有分组,频带2、5、6空闲
特点:
首先,可以避免冲突,实现链路资源的公平分配;
其次,每个节点可以占用的带宽有限、效率不高:节点带宽为R/N
码分多路访问CDMA (frequency division multiple access):
每个节点分配一个唯一的编码
每个节点用它唯一的编码来对它发送的数据进行编码
允许多个节点“共存”,信号可叠加,即可以同时传输数据而无冲突(如果编码是“正交化”的)
2、轮询访问介质访问控制
轮询访问MAC协议:既要不产生冲突,又要发送时占全部带宽。——轮询协议
多路访问协议理想特性:
只有一个节点活动时,吞吐量R b/ s;
有M个节点活动时,吞吐量R/M b/ s。
ALOHA和CSMA协议有第一个特性,但没有第二个特性
1.轮询协议
主结点轮流“邀请”从属结点发送数据。
A: 1,2,3,4…… 这么多小弟,你们谁要玩电脑?
缺点:
- 1.轮询开销:询问报文
- 2.等待延迟,即通知一个节点“你可以传输”所需的时间。
- 3.单点故障,当主节点故障,整个信道都会变得不能工作。
2.令牌传递协议
当一个节点收到令牌时,仅当它有一些数据帧要发送时,它才持有这个令牌,否则,它立即向下一个节点转发该令牌。每个结点都可以在一定的时间内(令牌持有时间〉获得发送数据的权利,并不是无限制地持有令牌。
缺点:
1.令牌开销、2.等待延迟、3.单点故障
应用于令牌环网(物理星型拓扑,逻辑环形拓扑)。
采用令牌传送方式的网络常用于负载较重、通信量较大的网络中。
3、ALOHA
ALOHA的来历:一名学者在Hawaii度假,当地人的打招呼常用语;(ALOHA 给了他灵感)
ALOHA协议的分类
-
纯ALOHA协议
-
时隙ALOHA协议
纯ALOHA协议
-
纯ALOHA协议思想:不监听信道,想发就发,随机重发。
- 遇到一个人,想打招呼就打招呼,想什么时候打招呼就什么时候打招呼。不管有没有人在跟你打招呼,我也要打招呼!
-
冲突如何检测? 如果发生冲突,接收方在就会检测出差错, 然后不予确认,发送方在一定时间内收不到就判断发生冲突。
- 就像你跟对方打招呼,对方在回应另一个打招呼的人而没有时间回应你,你就会思考是不是自己打的招呼对方没有收到。
冲突如何解决? 超时后等一随机时间再重传。是p-坚持型
效率
推导过程:
时隙ALOHA协议
把时间分成若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道, 若发生冲突,则必须等到下一个时间片的开始再发送。
——控制想发就发的随意性,比如:虽然9:58我看见了同上一节课的小芳,但是还没有到下课时间,我必须到10:00才能去跟她打招呼
没有冲突,节点可以在下一时隙发送新帧。如果有冲突,节点在随后的时隙以概率p重传该帧,直到成功为止。
优点:
- 单个活跃节点可以持续以满速率传送帧
- 具有高分散性:只需节点的时隙同步
- 简单
缺点:
- 冲突,浪费时隙
- 空闲时隙
- 节点只有在传输数据包时才能检测到冲突
效率
同纯ALOHA推导过程,结果为1/e = 0.37(只有一段时间会冲突,而纯的有两段)
两种ALOHA对比
- 纯ALOHA比时隙ALOHA吞吐量更低,效率更低。
- 纯ALOHA想发就发,时隙ALOHA只有在时间片段开始时才能发。
4、CSMA协议
载波监听多路访问协议CSMA(carrier sense multiple access)
协议思想:发送帧之前,监听信道。——啊,有人在跟你打招呼了,那我等等吧。
发生冲突:当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到的信号 电压摆动值超过一定门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞,即发生了冲突
CSMA协议
采用星型拓扑结构,
在CSMA中,节点没有进行冲突检测,既使发生了冲突,节点仍继续传输它们的帧。但该帧已经被破坏、是无用的帧,信道传输时间被浪费。
监听结果出炉后各自不同的反应
发送信号前,先监听信道。当监听结果为忙碌,有三种反应方式:(像人排队一样)
1-坚持CSMA
空闲则直接传输,不必等待。忙则一直监听,直到空闲马上传输。如果有冲突(一段时间内未收到肯定回复),则等待一个随机长的时间再监听,重复上述过程。
优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失。
缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免。
非坚持CSMA
空闲则直接传输,不必等待。忙则等待一个随机的时间之后再进行监听。
缺点:可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低。
优点:采用随机的重发延迟时间可以减少冲突发生的可能性。
p-坚持CSMA
空闲则以p概率直接传输,不必等待;概率1-p等待到下一个时间槽再传输。忙则持续监听直到信道空闲再以p概率发送。
优点:既能像非坚持算法那样减少冲突,又能像1-坚持算法那样减少媒体空闲时间的这种方案。
CSMA/CD协议
BUT ! 都已经打招呼了,但那人在跟别人打招呼,太尴尬了还浪费了我的时间和精力,赶紧收起我尴尬的笑容。
相应标准为IEEE802.3.
CD,冲突检测,“边发送边监听”,适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。
半双工网络
在传输数据帧的同时进行冲突检测:一旦检测到冲突就立即停止传输,并尽快重发。
CSMA/CD的目的是缩短无效传送时间,提高信道的利用率。
机制:
- 未使用时隙:适配器可以在任何时刻开始传输;
- 使用载波侦听:当适配器侦听到有其他的适配器在传输,就不会传输帧;
- 使用冲突检测:当检测到其他适配器也在传输帧,就中止传输;
- 重传:冲突后,等待一个随机时间(小于传输一帧的时间),再重传。
CSMA/CD协议工作流程
(1)封装成帧:
发送适配器从父节点获得一个网络层数据报,封装成以太网帧,放到缓冲区中;
(2)适配器侦听信道:
√空闲:即在96比特时间内(帧间最小间隔9.6us),没有信号从信道进入,开始传输该帧;
√忙:等待,直至侦听不到信号(加上96比特时间),开始传输该帧。
(3)无冲突成功传输:
整个帧传输期间未检测到其他适配器的信号,该帧传输成功。
(4)有冲突停止传输:
传输时检测到其他适配器的信号,就停止传输帧,并传输一个48比特的拥塞信号。
(5)等待随机时间再侦听:
传输拥塞信号后,适配器进入指数回退阶段,等待一段时间,并返回到第2步。
黄色表示B节点的传播物理范围,红色表示D节点的物理传播范围
时空图:横轴表示四个节点在空间中的位置,纵轴表示时间
在时刻t0,节点B侦听到信道是空闲的,因为当前没有其他节点在传输,于是节点B开始传输
在t1时刻,由于B节点的电磁波还没有传播到D能检测的范围,因此D节点发现信道空闲,开始传输,这个时候就会产生相互干扰
D节点检测到干扰后,会立即放弃传输,B节点也会放弃
先听后发为什么还会冲突?
因为电磁波在总线上总是以有限的速率传播的。
当 A-------B,之间的传播时延为t
如何确定自己发送的数据没有和别人的碰撞? 2t
传播到返回是需要时间确认的。
例:假定1km长的CSMA/CD网络的数据传输速率为1 Gb/s。设信号在网络上的传播速率为200,000 km/s。求能够使用此协议的最短帧长。
对于1km电缆,单程传播时间为1/200000 = 5 μs,往返传播时间为 10 μs ,为了能够按照CSMA/CD工作,最小帧的发射时间不能小于 10 μs 。
以1Gb/s速率工作,10μs 可以发送的比特数等于10*10-6/10-9 = 10000,因此,最短帧是10000 bit
如何确定碰撞后的重传时机?
截断二进制指数规避算法
1.确定基本退避(推迟)时间为2t。
2.定义参数k,但k不超过10,即k=min[重传次数,10]。k可以一直增大,但最多为10。
3.从离散的整数集合[0,1,(2^K)-1]中随机取出一个数r,重传所需要退避的时间就是r倍的基本退避时间,即2rt 。
4.当重传达16次仍不能成功时,说明网络太拥挤,认为此帧永远无法正确发出,抛弃此帧并向高层报告出错
第一次重传,k=1,r从{0,1}选;重传推迟时间为0或2t,在这两个时间中随机选一个;
若再次碰撞,则在第二次重传时,k=2,r从{0,1,2,3}选;重传推迟时间为0/2z/4r/6t,在这四个时间中随机选一个;
若再次碰撞,则第三次重传时,k=3,r从{0,1,2,3,4,5,6,7}选......
若连续多次发生冲突,就表明可能有较多的站参与争用信道。使用此算法可使重传需要推迟的平均时间随重传次数的增大而增大,因而减小发生碰撞的概率,有利于整个系统的稳定。
例子捏
假设一个数据帧经过了n次碰撞,则节点随机地从{0,1,2…. 2^n-1}中选择一个K值,等待时间是该网卡发送512bit时间的K倍。
假设目前只发生了1次碰撞,则从{0,1}中等概率选择一个值作为K的值,假设这里选择的是1,则等待时间为该网卡发送512bit时间,即100Mbps的网卡,发送512比特需要的时间为5.12微妙。
假设目前发生了3次碰撞,则从{0,1,2,3,4,5,6,7}中中等概率选择一个值作为K的值,假设这里选择的是5,则等待的时间为5*5.12微妙。
512bit
最小帧长问题
A站发了一个很短的帧,但发生了碰撞,不过帧在发送完毕后才检测到发生碰撞,没法停止发送
因为发完了。。。。
所以我们要限制帧的最小值:
——以太网规定最短帧长为64B,凡是长度小于64B的都是由于冲突而异常终止的无效帧。
帧的传输时延至少要两倍于信号在总线中的传播时延。
帧长(bit)/ 数据传输速率 ≥ 2t
最小帧长=总线传播时延x数据传输速率x 2 = 2t x数据传输速率
CSMA/CA协议
CA:碰撞避免! 为什么要有CSMA/CA?
防止有时候未检测出通道在忙的状态。误认为信道空闲时,多个发送端同时向终端B发送数据帧,就会导致冲突。
工作原理
- 发送数据前,先检测信道是否空闲。
- 空闲则发送端发出RTS (request to send),信道忙则等待。
- 接收端收到RTS后,将响应CTS (clear to send)
- 发送端收到CTS后,开始发送数据帧(同时预约信道:发送方告知其他站点自己要传多久数据)
- 接收端收到数据帧后,将用CRC来检验数据是否正确,正确则响应ACK帧。
- 发送方收到ACK就可以进行下一个数据帧的发送,若没有收到ACK则一直重传至规定重发次数为止(采用二进制指数退避算法来确定随机的推迟时间)
CSMA/CD与CSMA/CA
相同点:
核心是先听再说。
不同点:
1.传输介质不同:CSMA/CD用于总线式以太网【有线】,而CSMA/CA用于无线局域网【无线】。
⒉载波检测方式不同:因传输介质不同,CSMA/CD与CSMA/CA的检测方式也不同。CSMA/CD通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随着发生变化;而CSMA/CA采用能量检测(ED)、载波检测(CS)和能量载波混合检测三种检测信道空闲的方式。
3.CSMA/CD是检测冲突,CSMA/CA是避免冲突,二者出现冲突后都会进行有上限的重传。
例:下列协议中,不会发生碰撞的是(TDM)
- TDM
- ALOHA
- CSMA
- CSMA/CD
应用:
以太网采用的是CSMA/CD协议
无线以太网802.11中采用的协议是CSMA/CA
3.10 PPP协议 & HDLC协议
广域网
广域网(WAN,Wide Area Network),所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。
广域网的通信子网主要使用分组交换技术。广域网的通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网,它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。
如因特网 (Internet)是世界范围内最大的广域网。
PPP协议的特点
点对点协议PPP(Point-to-Point Protocol),数据链路层协议,用户使用拨号电话接入因特网时一般都使用PPP协议。
只支持全双工链路。
PPP协议应满足的要求
-
简单 对于链路层的帧,无需纠错,无需序号,无需流量控制。封装成帧帧定界符
-
透明传输 与帧定界符一样比特组合的数据应该如何处理:异步线路用字节填充,同步线路用比特填充。
-
多种网络层协议 封装的IP数据报可以采用多种协议。
-
多种类型链路 串行/并行,同步/异步,电/光.....
-
差错检 测错就丢弃。
-
检测连接状态 链路是否正常工作。
-
最大传送单元 数据部分最大长度MTU。
-
网络层地址协商知道通信双方的网络层地址。
-
数据压缩协商
PPP协议无需满足的要求
纠错、流量控制、序号、不支持多点线路
PPP协议的三个组成部分
-
一个将IP数据报封装到串行链路(同步串行/异步串行)的方法。
-
链路控制协议LCP: 建立并维护数据链路连接。(身份验证)
-
网络控制协议NCP: PPP可支持多种网络层协议,每个不同的网络层协议都要一个相应的NCP来配置,为网络层协议建立和配置逻辑连接。
PPP协议的帧格式
HDLC协议
高级数据链路控制(High-Level Data Link Control或简称HDLC),是一个在同步网上传输数据、面向比特的数据链路层协议
数据报文可透明传输,用于实现透明传输的“0比特插入法”易于硬件实现
采用全双工通信
所有帧采用CRC检验,对信息帧进行顺序编号,可防止漏收或重份,传输可靠性高。
HDLC的站
主站、从站、复合站
1.主站的主要功能是发送命令(包括数据信息)帧、接收响应帧,并负责对整个链路的控制系统的初启流程的控制、差错检测或恢复等。
2.从站的主要功能是接收由主站发来的命令帧,向主站发送响应帧,并且配合主站参与差错恢复等链路控制。
3.复合站的主要功能是既能发送,又能接收命令帧和响应帧,并且负责整个链路的控制。
三种数据操作方式:
1.正常响应方式⒉.异步平衡方式3.异步响应方式
HDLC的帧格式
PPP协议&HDLC协议的比较
相同点:
-
HDLC、PPP只支持全双工链路。
-
都透明传输。
-
都差错检测,但不纠正差错。
不同点:
PPP协议 | 面向字节 | 2B大小的协议字段 | 无序号和确认机制 | 不可靠 |
---|---|---|---|---|
HDLC协议 | 面向比特 | 没有 | 有编号和确认机制 | 可靠 |
3.10 局域网、以太网、链路层设备
局域网
局域网(Local Area Network):简称LAN,是指在某一区域内由多台计算机互联成的计算机组,使用广播信道。
特点:
- 覆盖的地理范围较小,只在一个相对独立的局部范围内联,如一座或集中的建筑群内。
- 使用专门铺设的传输介质(双绞线、同轴电缆)进行联网,数据传输速率高(10Mb/s~10Gb/s)。
- 通信延迟时间短,误码率低,可靠性较高。
- 各站为平等关系,共享传输信道。
- 多采用分布式控制和广播式通信,能进行广播和组播。
决定局域网的主要要素为:网络拓扑,传输介质与介质访问控制方法。
局域网拓扑结构
- 星型拓扑,中间有个集线器,任意两个节点的通信最多只要两部,传输速度快,便于控制,但可靠性低,网络共享能力差,有单点故障问题。
- 总线型拓扑:结构简单,易扩展,但难以检测故障
- 环形拓扑:节省设备和线路,但有单点故障问题、不便于扩充、速度慢
- 树型拓扑:可拓展、但有单点故障
- 网状结构:速度和可靠性高,但关系复杂,建立和维护都困难。
局域网传输介质
有线局域网常用介质:双绞线、同轴电缆、光纤
无线局域网常用介质:电磁波
局域网介质访问控制方法
1.CSMA/CD常用于总线型局域网,也用于树型网络
2.令牌总线常用于总线型局域网,也用于树型网络
3.令牌环用于环形局域网,如令牌环网
局域网的分类
- 1.以太网 以太网是应用最为广泛的局域网,包括标准以太网(10Mbps)、快速以太网(100Mbps) .千兆以太网(1000 Mbps)和10G以太网,它们都符合IEEE802.3系列标准规范。逻辑拓扑总线型,物理拓扑是星型或拓展星型。使用CSMA/CD.
- 2.令牌环网 物理上采用了星形拓扑结构,逻辑上是环形拓扑结构。已是“明日黄花”。
- 3.FDD网 物理上采用了双环拓扑结构,逻辑上是环形拓扑结构。
- 4.ATM网较新型的单元交换技术,使用53字节固定长度的单元进行交换。
- 5.无线局域同(Wireless Local Area Network; WLAN)采用IEEE 802.11标准。
IEEE 802标准
IEEE 802系列标准是IEEE 802 LAN/MAN标准委员会制定的局域网、城域网技术标准(1980年2月成立)。
其中最广泛使用的有以太网、令牌环、无线局域网等。这一系列标准中的每一个子标准都由委员会中的一个专门工作组负责。
链路层的两个控制子层
MAC子层、LLC子层
IEEE 802标准所描述的局域网参考模型只对应OSI参考模型的数据链路层与物理层,它将数据链路层划分为逻辑链路层LLC子层和介质访问控制MAC子层。
LLC负责识别网络层协议,然后对它们进行封装。LLC报头告诉数据链路层一旦帧被接收到时,应当对数据包做何处理。为网络层提供服务:无确认无连接、面向连接、带确认无连接、高速传送。
MAC子层的主要功能包括数据帧的封装/卸装,帧的寻址和识别,帧的接收与发送,链路的管理,帧的差错控制等。MAC子层的存在屏蔽了不同物理链路种类的差异性。
以太网
基带总线局域网规范,是当今现有局域网采用的最通用的通信协议标准。
以太网络使用CSMA/CD(载波监听多路访问及冲突检测)技术。
以太网在局域网各种技术中占统治性地位:
1.造价低廉(以太网网卡不到100块)﹔
2.是应用最广泛的局域网技术;
3.比令牌环网、ATM网便宜,简单;
4.满足网络速率要求:10Mb/s~10Gb/s.
以太网两个标准
- DIX Ethernet v2:第一个局域网产品(以太网)规约。
- IEEE 802.3: IEEE 802委员会802.3工作组制定的第一个IEEE的以太网标准。(802.3局域网AKA以太网)
以太网提供无连接、不可靠的服务
无连接:发送方和接收方之间无“握手过程”。
不可靠:不对发送方的数据帧编号,接收方不向发送方进行确认,差错帧直接丢弃,不论是正确还是错误也不通知对方。差错纠正由高层负责。
以太网只实现无差错接收,不实现可靠传输。
以太网传输介质与拓扑结构的发展
使用集线器的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线,使用的还是CSMA/CD协议。
以太网拓扑:逻辑上总线型,物理上星型。
传输介质:粗同轴电缆--->细同轴电缆--->双绞线+集线器
物理拓扑:总线型--->星型
以太网技术
10BASE-T、100BASE-T、100BASE-T
10BASE-T是传送基带信号的双绞线以太网,T表示采用双绞线,现10BASE-T采用的是无屏蔽双绞线(UTP),传输速率是10Mb/s。物理上采用星型拓扑,中间有个集线器,每条线的长度是100m。逻辑上总线型。采用曼彻斯特编码。采用CSMA/CD介质访问控制。
高速以太网
速率≥100Mb/s的以太网称为高速以太网。
1.100BASE-T以太网
在双绞线上传送100Mb/s基带信号的星型拓扑以太网,仍使用IEEE802.3的CSMA/CD协议。
支持全双工和半双工,可在全双工方式下工作而无冲突。
2.吉比特以太网
在光纤或双绞线上传送1Gb/s信号。
支持全双工和半双工,可在全双工方式下工作而无冲突。
3.10吉比特
10吉比特以太网在光纤上传送10Gb/s信号。
只支持全双工,无争用问题。
适配器与MAC地址
计算机与外界有局域网的连接是通过通信适配器的。适配器上装有处理器和存储器(包括RAM和ROM)。ROM上有计算机硬件地址MAC地址。
在局域网中,硬件地址又称为物理地址,或MAC地址。【实际上是标识符,全球唯一】
以太网的MAC帧
发送方:发送适配器将IP数据报封装成以太网帧,并传递到物理层。
接收方:接收适配器从物理层收到该帧,取出IP数据报,并传递给网络层。
前同步码
前同步码的作用是使接收方和发送方的时钟同步,接收方一旦收到连续的8字节前同步码,可确定有帧传过来。
注意:前同步码是“无效信号”,接收方收到后删除,不向上层传。CRC的校验范围不包括前同步码。
然后是各6个字节的源、目的MAC地址。
如果主机A向主机B发送一个IP数据报,主机B只接收目的MAC地址与自己MAC地址匹配的数据帧或广播地址的数据帧,并将数据字段的内容传递给网络层。否则,丢弃该帧。
类型
帧结构中类型字段主要是支持以太网中的多种网络层协议的复用的,绝大多数这里的类型是指IP协议。
数据字段
然后是数据字段,以太网的最大传输单元MTU是1500字节,最小长度是46字节。
携带网络层传来的IP数据报
·以太网的最大传输单元MTU是1500字节:
·若IP数据报超过1500字节,必须将该数据报分段。·最小长度是46字节:
·如果IP数据报小于46字节,必须填充为46字节。接收方网络层去除填充内容。
这里数据字段最小 46字节 = 64 – 18,其中的64字节含义:
1、共享信道上发送数据帧的站至多经过时间 2t (两倍的端到端往返时延)就可知道发送的数据帧是否遭受了碰撞。以太网的端到端往返时延 2t 称为争用期,或碰撞窗口。
2、争用期的长度:以太网取 51.2 ms 为争用期的长度。对于 10 Mb/s 以太网,在争用期内可发送 512 bit,即 64 字节。以太网在发送数据时,若前 64 字节没有发生冲突,则后续的数据就不会发生冲突。
3、最短有效帧长:如果发生冲突,就一定是在发送的前 64 字节之内。由于一检测到冲突就立即中止发送,这时已经发送出去的数据一定小于 64 字节。以太网规定了最短有效帧长为 64 字节,凡长度小于 64 字节的帧都是由于冲突而异常中止的无效帧。
CRC
FCS 是循环冗余检测CRC产生的结果,用于检测错误。
3.11 链路层设备:交换机
链路层设备
链路层扩展以太网
网桥&交换机
网桥根据MAC帧的目的地址对帧进行转发和过滤。当网桥收到一个帧时,并不向所有接口转发此帧,而是先检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口,或者是把它丢弃(即过滤)。
网段:一般指一个计算机网络中使用同一物理层设备能够直接通讯的那一部分。
网桥优点:
1.过滤通信量,增大吞吐量。(传输介质,中继器,集线器等)
2.扩大了物理范围。
3.提高了可靠性。
4.可互连不同物理层、不同MAC子层和不同速率的以太网。
网桥分类
透明网桥
透明网桥:“透明”指以太网上的站点并不知道所发送的帧将经过哪几个网桥,是一种即插即用设备
源路由网桥:
在发送帧时,把详细的最佳路由信息(路由最少/时间最短)放在帧的首部中
方法:源站以广播方式向欲通信的目的站发送一个发现帧。
多接口网桥——以太网交换机
以太网交换机的两种交换方式
直通式交换机
查完目的地址(6B)就立刻转发。
延迟小,可靠性低,无法支持具有不同速率的端口的交换。
存储转发式交换机
将帧放入高速缓存,并检查否正确,正确则转发,错误则丢弃。
延迟大,可靠性高,可以支持具有不同速率的端口的交换。
冲突域和广播域
冲突域:在同一个冲突域中的每一个节点都能收到所有被发送的帧。简单的说就是同一时间内只能有一台设备发送信息的范围。
广播域:网络中能接收任一设备发出的广播帧的所有设备的集合。简单的说如果站点发出一个广播信号,所有能接收收到这个信号的设备范围称为一个广播域。
例:几个冲突域?几个广播域?
4个冲突域,1个广播域。
连路层设备功能及特点
1、存储转发数据帧
检查到达的数据帧的MAC地址,有选择的转发数据帧到一个或多个输出链路,当数据帧被转发到一个共享网段时,使用CSMA/CD来访问共享链路
2、透明
当主机A向B发送数据帧时,并不知道中间会有交换机收到这个数据
3、即插即用和自学习
也就是说交换机是不需要手工配置的,插上就可以用。
交换机
支持多节点同时传输
交换机可以缓存数据帧
以太网协议在每个输入链路使用,无碰撞,全双工
交换机: A-to-A‘和B-to-B’可以同时传输,而不会发生碰撞:
交换机如何知道用哪个端口出、入——转发表
类似于路由表,那转发表如何建立呢? ——自学习
交换机的自学习
每当交换机收到一个数据帧时,交换机会学习:发送主机的MAC地址、已经到达的端口,并在转发表中进行记录。
查表转发
-
首先,记录到达链路和发送主机的MAC地址;
-
第二步,使用数据帧的目的MAC地址,在转发表中进行检索:
-
如果在转发表条目中找到对应的MAC地址,则执行:
-
如果目的MAC地址对应的端口与数据帧的到达端口相同,说明接收主机属于同一个共享网段,则直接将该数据帧丢弃。因为接收主机也会收到该数据帧;
-
否则,转发端口与达到端口不一致,则将该数据帧转发到指定端口
-
-
如果数据帧的目的MAC地址在转发表中没有找到,则交换机将该数据帧向除到达端口之外的所有端口转发,也就是泛洪(flood)。
例:多个交换机自学习
问题:如果主机A发送数据帧给主机G,那么交换机S1是怎么知道需要先把数据转发到S4和S3的?
通过自学习。当数据帧到达S1时,可能S1的转发表中没有G主机的MAC地址的表项,于是S1将该数据帧泛洪,那么S4的端口也会收到这个泛洪的数据帧,如果S4的转发表也没有G主机的MAC地址对应的表项,则S4会继续泛洪,于是S3也会收到数据帧,如果S3的转发表仍然没有G主机的MAC地址,则S3会继续向它的端口泛洪,直到数据帧到达G主机。
交换机的交换特点
识别目的MAC地址,根据交换表进行端口选择
识别源MAC地址更新交换表——在识别目的MAC地址和源MAC地址的过程中是否需要接收并缓存完整的帧呢?
交换机的交换方式:
存储转发(缓存整个帧后再转发)
快速分组(又称直通交换)(识别出目的地址直接转发)
交换机的交换方式讨论
·存储转发:具有差错检测功能,转发时延较大,适用于出错率高的链路。
·快速分组又称直通交换:不具有差错检测功能,转发时延较小,适用于时延要求高,出错率低的链路。
三层交换机
传统的交换技术是在OSI网络参考模型中的第二层(即数据链路层)进行操作的,通常称做“二层交换机”。
简单地说,三层交换技术就是二层交换技术+三层转发技术,三层交换机就是“二层交换机+基于硬件的路由器”
三层交换机的工作原理
发送站点A在开始发送时,把自己的IP地址与B站的IP地址比较,判断B站是否与自己在同一子网内。
若目的站B与发送站A在同一子网内,则进行二层的转发。
若两个站点不在同一子网内,则发送站A要向“缺省网关”发出ARP请求,请求获得B的MAC地址。
如果三层交换机知道B的MAC地址,则向A回复B的MAC地址。否则三层交换机根据路由信息向B站广播一个ARP请求,B站得到此ARP请求后向三层交换机回复其MAC地址,三层交换机将B站的MAC地址保存到二层交换引擎的MAC地址表中,并回复给发送站A。
A直接用B的MAC地址封装数据帧,三层交换机接收到数据后直接进行二层交换。
设备比较
小网络(几百台主机):采用交换机。大网络(几千台主机):使用路由器。
交换机和路由器
首先,路由器和交换机都是存储转发设备(中转设备),其中路由器是网络层设备,交换机是链路层设备。
第二,路由器和交换机都需要维护转发表,其中路由器使用路由算法来计算转发表,基于IP地址转发;而交换机是通过泛洪和自学习来建立转发表,基于MAC地址进行数据帧转发。
交换机的优缺点
优
即插即用:不需网络管理员干预;
较高的分组过滤和转发率:二层数据处理;
拓扑结构限制为一棵生成树:防止广播帧循环。
缺
较大的ARP表产生可观的ARP流量和处理量;
可能产生“广播风暴”:某台主机失控,并传输无穷的以太网广播帧流,交换机将转发所有这些帧,导致整个以太网的崩溃。
路由器的优缺点
优
网络寻址是层次的;
若网络中存在冗余路径,分组不会在路由器中循环。
无生成树限制,使用路由器构建因特网可以采用大量丰富的拓扑结构。可以使用源和目的之间的最佳路径。
为第二层的广播风暴提供防火墙保护。
缺
非即插即用:路由器及主机都需配置IP地址。每
个分组的处理时间比交换机长。
三个设备的比较
VLAN的划分
虚拟局域网的划分,为什么要划分?
计科系(CS)一个用户A到电子工程系办事(EE),但他想连入到CS的交换机,这就涉及到局域网的划分问题了:
如果将图中所有设备划分为一个LAN,可以满足用户A的需求,但这样一个单一的广播域会带来如下问题:,所有的2层广播流量(ARP, DHCP等)会跨越整个网络,并且还有很多隐患:安全、隐私、效率等
基于端口的VLAN
流量隔离:从1-8号端口进/出的帧,只能访问1-8号端口
动态成员:端口可以在VLAN之间动态调整
VLAN间转发:通过路由完成((在实际中,厂商会将路由功能和交换功能都整合在一台设备中)
基于MAC地址划分VLAN
这种划分VLAN的方法是根据每个主机的MAC地址来划分,即对每个MAC地址的主机都配置他属于哪个组。这种方式的VLAN允许网络用户从一个物理位置移动到另一个物理位置时,自动保留其所属VLAN的成员身份。
由这种划分的机制可以看出,这种VLAN的划分方法的最大优点就是当用户物理位置移动时,即从一个交换机换到其他的交换机时,VLAN不用重新配置,因为它是基于用户,而不是基于交换机的端口。
这种方法的缺点是初始化时,所有的用户都必须进行配置,如果有几百个甚至上千个用户的话,配置是非常累的,所以这种划分方法通常适用于小型局域网。而且这种划分的方法也导致了交换机执行效率的降低,因为在每一个交换机的端口都可能存在很多个VLAN组的成员,保存了许多用户的MAC地址,查询起来相当不容易。
跨越多个交换机的VLAN
干线端口:每台交换机上的一个特殊端口被配置为干线端口,干线端口属于所有VLAN,发送到任何VLAN的帧经过干线链路转发到其他交换机。干线端口承载定义在多个物理交换机之上的VLAN间的流量