3 数据链路层
3.1 数据链路层的功能
数据链路层在物理层提供服务的基础上向网络层提供服务,将物理层提供的可能出错的物理连接改造为逻辑上无差错的数据链路。基本任务是将源机器中来自网络层的数据传输到目标机器的网络层。
数据链路指网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路。数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报。
3.1.1 为网络层提供服务
-
无确认的无连接服务
源机器发送数据帧时不需先建立链路连接,目的机器收到数据帧时不需发回确认。适用于实时通信或误码率较低的通信信道,如以太网。
-
有确认的无连接服务
源机器发送数据帧时不需先建立链路连接,但目的机器收到数据帧时必须发回确认。源机器在所规定的时间内未收到确定信号时,就重传丢失的帧。该服务适用于误码率较高的通信信道,如无线通信。
-
有确认的面向连接服务
帧传输过程分为三个阶段:建立数据链路、传输帧、释放数据链路。目的机器对收到的每一帧都要给出确认,源机器收到确认后才能发送下一帧。该服务适用于通信要求(可靠性、实时性)较高的场合。
3.1.2 链路管理
数据链路层连接的建立、维持和释放过程称为链路管理,它主要用于面向连接的服务。
3.1.3 封装成帧与透明传输
两台主机之间传输信息时,必须将网络层的分组封装成帧,以帧的格式进行传送。
- 帧构成:数据前后添加首部和尾部。帧长=数据长度+首部长度+尾部长度
- 帧定界:帧首部尾部包含控制信息,其中一个重要作用是确定帧的界限。
- 帧同步:接收方应能从接收到的二进制比特流中区分出帧的起始与终止。
- 最大传送单元(MTU):为了提高帧的传输效率,应当使帧的数据部分的长度尽可能地大于首部和尾部的长度,但每种数据链路层协议都规定了帧的数据部分的长度上限——最大传送单元(MTU)。
HDLC协议:用标识位F (01111110)来标识帧的开始和结束。帧格式如下图所示。
- 透明传输:不管所传数据是什么样的比特组合,都应当能在链路上传送。通过不同组帧方式实现透明传输。
3.1.4 流量控制
由于收发双方各自的工作速率和缓存空间的差异,可能出现发送方的发送能力大于接收方的接收能力的现象,这样会导致帧的丢失导致出错。
流量控制实际上就是限制发送方的数据流量,使其发送速率不超过接收方的接收能力。
流量控制在不同层,控制的对象不同。对于数据链路层来说,控制的是相邻两结点之间数据链路上的流量,而对于传输层来说,控制的则是从源端到目的端之间的流量。
在OSI体系结构中,数据链路层具有流量控制的功能。而在TCP/IP体系结构中,流 量控制功能被移到了传输层。
3.1.5 差错控制
由于信道噪声等各种原因,帧在传输过程中可能会出现错误。用以使发送方确定接收方是否正确收到由其发送的数据的方法称为差错控制。
位错指帧中某些位出现了差错。通常采用循环冗余校验(CRC)方式发现位错,通过自动重传请求(Automatic Repeat reQuest, ARQ)方式来重传出错的帧。
帧错指帧的丢失、重复或失序等错误。在数据链路层引入定时器和编号机制,能保证每一帧最终都能有且仅有一次正确地交付给目的结点。
3.2 组帧
为了使接收方能正确地接收并检查所传输的帧,发送方必须依据一定的规则把网络层递交的分组封装成帧(称为组帧)。
3.2.1 字符计数法
字符计数法是指在帧头部使用一个计数字段来标明帧内字符数。目的结点的数据链路层收到字节计数值时,就知道后面跟随的字节数,从而可以确定帧结束的位置(计数字段提供的字节数包含自身所占用的一个字节)。
问题:若计算字段出错,则失去划分帧边界依据,彻底失去帧同步。
3.2.2 字符填充的首尾定界符法
字符填充法使用特定字符来定界一帧的开始与结束。如下图所示,控制字符SOH放在帧的最前面,表示帧的首部开始,控制字符EOT表示帧的结束。为了使信息位中出现的特殊字符不被误判为帧的首尾定界符,可在特殊字符前面填充一个**转义字符(ESC)**来加以区分。从而实现透明传输。
注意,转义字符是ASCI码中的控制字符,是一个字符,而非“E”“S”“C”三个字符的组合
接收方收到转义字符后,就知道其后面紧跟的是数据信息,而不是控制信息。
3.2.3 零比特填充的首尾标志法
零比特填充法它使用一个特定的比特模式,即01111110来标志一帧的开始和结束。HDLC协议使用该方法。
为了防止误判,发送方的数据链路层在信息位中遇到5个连续的“1”时,将自动在其后插入一个“0”;而接收方做该过程的逆操作,即每收到5个连续的“1"时,自动删除后面紧跟的“0”,以恢复原信息。
零比特填充法很容易由硬件来实现,性能优于字符填充法。
3.2.4 违规编码法
利用不会用到的编码方式作为帧的开始与终止。
曼彻斯特编码方法将数据比特“1”编码成“高-低”电平对,将数据比特“0”编码成“低-高”电平对,而**“高-高”电平对和“低一低”电平对在数据比特中是违规**的(即没有采用)。
可以借用这些违规编码序列来定界帧的起始和终止。局域网IEEE802标准就采用了这种方法。
违规编码法不需要采用任何填充技术,便能实现数据传输的透明性,但它只适用于采用冗余 编码的特殊编码环境。
由于字符计数法中计数字段的脆弱性和字符填充法实现上的复杂性与不兼容性,目前较常用的组帧方法是零比特填充法和违规编码法。
3.3 差错控制
实际通信链路中可能会发送比特差错,即1可能会变成0,0也可能会变成1。
通常利用编码技术进行差错控制,主要有自动重传请求ARQ和前向纠错FEC。
- 在ARQ方式中,接收端检测到差错时,就设法通知发送端重发,直到接收到正确的码字为止。属于检错编码。
- 在FEC方式中,接收端不但能发现差错,而且能确定比特串的错误位置,从而加以纠正。属于纠错编码。
3.3.1 检错编码
检错编码都采用冗余编码技术,其核心思想是在有效数据(信息位)被发送前,先按某种关系附加一定的冗余位,构成一个符合某一规则的码字后再发送。
- 奇偶校验码
奇偶校验码是奇校验码和偶校验码的统称,是一种最基本的检错码。由n-1位信息元和1位校验元组成。
- 奇校验码:在附加一个校验元后,码长为n的码字中“1”的个数为奇数。
- 偶校验码:在附加一个校验元后,码长为n的码字中“1”的个数为偶数。
奇偶校验码只能检测出奇数个位出错,但不能知道哪位出错,也不能发现偶数个位出错情况。
- 循环冗余码
循环冗余码(Cyclic Redundancy Code, CRC)又称多项式码,任何一个由二进制数位串组成的代码都可与一个只含有0和1两个系数的多项式建立一一对应关系。
给定一个m bit 的帧或报文,发送器生成 r bit 的帧检验序列(FCS)。将FCS接到原始帧后面,形成长度为 m+r 的序列。该序列可被约定好的多项式 G(x) 模2整除。其中r为G(x)的阶数,即位数减一;G(x)的首尾必需都为1。
接收方用相同的G(x) 作为除数P去除收到的帧,无余数则无差错。
生成帧检验序列(FCS)方法:
设将多项式G(x)=1101作为除数P,数据101001(m=6,r=3),计算FCS。
a. 在帧末尾加上r个0;b. 模2除法求得r位余数位FCS
模2除法指按位异或运算,若两个二进制位相同,结果为0;不同结果为1。若首位为0则不进行异或运算,直接右移一位,如下式0111和除数1101运算时,0111右移变为01110与1101运算。直到剩余位数少于除数,得到余数。
如上图所示,被除数M是原 m 位序列加 r 位0组成的序列(101001+000)。将G(x)作为除数P,进行模2除法,最后得到的余数R即为FCS。因此发送数据为原m为序列加FCS序列,即101001+001。该序列
通过循环冗余码(CRC)的检错技术,数据链路层做到了对帧的无差错接收。也就是说,凡是接收端数据链路层接受的帧,我们都认为这些帧在传输过程中没有产生差错;而接收端丢弃的帧虽然也收到了,但最终因为有差错而被丢弃,即未被接受。
循环冗余码(CRC)是具有纠错功能的,只是数据链路层仅使用了它的检错功能,检测到帧出错则直接丢弃,是为了方便协议的实现,因此本节将CRC放在检错编码中介绍。
3.3.2 纠错编码
纠错方法:在每个要发送的数据块上附加足够的冗余信息,使接收方能够推导出发送方实际送出的应该是什么样的比特串。
海明码:最常见的纠错编码,其原理是在有效信息位中加入几个校验位形成海明码,并把海明码的每个二进制位分配到几个奇偶校验组中。当某一位出错后,就会引起有关的几个校验位的值发生变化,这不但可以发现错位,而且能指出错位的位置,为自动纠错提供依据。
以序列1010为例讲述海明码编码过程:
-
确定海明码的位数
设n为有效信息的位数,k为校验位的位数,则信息位n和校验位k应满足
n + k ≤ 2 k − 1 n+k≤2^k-1 n+k≤2k−1
序列有4为有效信息,k=3时满足3+4≤23-1;因此海明码信息位D有4位,校验位P有3位,共7位。 -
确定校验位的分布
规定校验位Pi在海明位号2i-1的位置上,其余位信息位,因此有P1在第1位,P2在第2位,P3在第4位。
海明码分布如下:D4 D3 D2 P3 D1 P2 P1
-
分组以形成校验关系
每个数据位用多个校验位进行校验,但要满足条件:被校验数据位的海明位号等于校验该数据位的各校验位海明位号之和。校验位不需要再被校验。分组形成的校验关系如下。
-
校验位取值
校验位Pi的值为第i组(由该校验位校验的数据位)所有位求异或。
因此,1010对应的海明码为101**0010**
-
海明码的校验原理
每个校验组分别利用校验位和参与形成该校验位的信息位进行奇偶校验检查,构成k个校验方程:
若S3S2S1的值为“000”,则说明无错;否则说明出错,且这个数就是错误位的位号,如S3S2S1=001,说明第一位出错。直接取反达到了纠错的目的。
以上公式只能纠错一位数据,要有多位数据发生错误,需要更复杂的海明公式。海明码纠错能力和最小码距有关。海明距离即最小码距,指的是两个字符串对应位置的不同字符的个数。
- 如果要检测 e 个错误,最小码距应该满足:$ D≥e+1 $
- 如果要纠正 t 个错误,最小码距应满足: D ≥ 2 t + 1 D≥2t+1 D≥2t+1
- 如果要检测 e 个错误同时纠正 t个错误,最小码距应该满足: D ≥ e + t + 1 , ( e > = t ) D≥e+t+1, (e>=t) D≥e+t+1,(e>=t)
3.4 流量控制与可靠传输机制
3.4.1 滑动窗口机制
-
发送窗口:在任意时刻,发送方都维持一组连续的允许发送的帧的序号。
- 发送窗口用来对发送方进行流量控制,而发送窗口的大小WT,代表在还未收到对方确认信息的情况下发送方最多还可以发送多少个数据帧。
-
接收窗口:接收方也维持一组连续的允许接收帧的序号。
- 接收窗口是为了控制可以接收哪些数据帧和不可以接收哪些帧。
- 在接收方,只有收到的数据帧的序号落入接收窗口内时,才允许将该数据帧收下。
- 若接收到的数据帧落在接收窗口之外,则一律将其丢弃。
滑动窗口特性:
- 只有接收窗口向前滑动(同时接收方发送了确认帧)时,发送窗口才有可能(只有发送方收到确认帧后才一定)向前滑动。
- 从滑动窗口的概念看,停止-等待协议、后退N帧协议和选择重传协议只在发送窗口大小与接收窗口大小上有所差别:
- 停止-等待协议:发送窗口大小=1,接收窗口大小=1。
- 后退N帧协议:发送窗口大小>1,接收窗口大小=1。
- 选择重传协议:
- 接收窗口的大小为1时,可保证帧的有序接收。
- 数据链路层的滑动窗口协议中,窗口的大小在传输过程中是固定的(注意与第5章传输层的滑动窗口协议的区别)。
可靠传输机制:
- 确认:确认是一种无数据的控制帧,这种控制帧使得接收方可以让发送方知道哪些内容被正确接收。有些情况下为了提高传输效率,将确认捎带在一个回复帧中,称为捎带确认。
- 超时重传:超时重传是指发送方在发送某个数据帧后就开启一个计时器,在一定时间内如果没有得到发送的数据帧的确认帧,那么就重新发送该数据帧,直到发送成功为止。
- 自动重传请求(Automatic Repeat reQuest, ARQ):通过接收方请求发送方重传出错的数据帧来恢复出错的帧,是通信中用于处理信道所带来差错的方法之一。传统ARQ有三种:停止-等待(Stop-and-Wait) ARQ、 后退 N帧(Go-Back-N)ARQ 和选择性重传(Selective Repeat)ARQ。
在数据链路层中流量控制机制和可靠传输机制是交织在一起的,都由滑动窗口机制解决。
3.4.2 单帧滑动窗口与停止-等待协议
- 定义
在停止-等待协议中,源站每发送完一个帧就停止发送,等待对方的确认,在收到确认后再发送下一个帧。
- 有差错情况
-
超时计时器:每次发送一个帧就启动一个计时,超时计时器设置的重传时间应当比帧传输的平均RTT更长。
- 发完一个帧后,必须保留它的副本。
- 发送的帧交替地用0和1来标识,确认帧分别用ACK0和ACK1来表示,收到的确认帧有误时,重传已发送的帧。
-
发送失败的三种情况:
- 数据帧丢失或检测到帧出错:数据帧丢失时,或者接收方检测到数据帧有错,不返回ACK,超时重传。
- ACK丢失:接收方接收到数据帧,返回ACK时丢失,发送方超时重传。
- ACK迟到:接收方收到数据帧后,返回ACK0,但是ACK到达时间超过重传时间,发送方重新发送数据,接收到ACK0时丢失,因为此刻等待ACK1的接收。
- 性能分析
由于要花费大量时间等待ack确认,信道利用率太低。
信道利用率
U
=
T
D
T
D
+
R
T
T
+
T
A
信道利用率U=\frac {T_D} {T_D+RTT+T_A}
信道利用率U=TD+RTT+TATD
3.4.3 多帧滑动窗口与后退N帧协议(GBN)
在后退N帧式ARQ中,发送方无须在收到上一个帧的ACK后才能开始发送下一帧,而是可以连续发送帧。
发送窗口大小>1,接收窗口大小=1。
-
发送方
- 上层的调用:上层要发送数据时,发送方先检查发送窗口是否己满,如果未满,则产生一个带序号的帧并将其发送;如果窗口已满发送方可以缓存这些数据,窗口不满时再发送帧。
- 收到了一个ACK:GBN协议中,对n号帧的确认采用累积确认的方式,标明接收方已经收到n号帧和它之前的全部帧。
- 超时事件:协议的名字为后退N帧/回退N帧,来源于出现丢失和时延过长帧时发送方的行为。就像在停等协议中一样,定时器将再次用于恢复数据帧或确认帧的丢失。如果出现超时,发送方重传所有己发送但未被确认的帧。
-
接收方
-
如果正确按序收到n号帧,那么接收方为n帧发送一个ACK,并将该帧中的数据部分交付给上层。
-
其余情况都丢弃帧,并为最近按序接收的帧重新发送ACK。
接收方无需缓存任何失序帧,只需要维护一个信息:expectedseqnum(下一个按序接收的帧序号)。
-
-
窗口大小
接收窗口为1,可以保证按序接收数据帧。
若采用n比特对帧编号,则其发送窗口的尺寸WT应满足 1 < W T ≤ 2 n − 1 1<W_T≤2^n-1 1<WT≤2n−1。若发送窗口大于 2 n − 1 2^n-1 2n−1,则会造成接收方无法分辨新帧和旧帧。
-
性能分析
- 优点:因连续发送数据帧而提高了信道利用率
- 缺点:在重传时必须把原来已经正确传送的数据帧重传,是传送效率降低。
信道的传输质量很差导致误码率较大时,后退N帧协议不一定优于停止-等待协议。
3.4.4 多帧滑动窗口与选择重传协议(SR)
为解决GBN会重传正确传送的帧,设法只重传出现差错和超时的数据帧,这需要加大接收窗口,因此提出了选择重传协议。
发送窗口大小>1,接收窗口大小>1。
-
发送方
-
上层的调用:从上层收到数据后,发送方检查下一个可用于该帧的序号,如果序号位于发送窗口内,则发送数据帧;否则就像GBN一样,要么将数据缓存,要么返回给上层之后再传输。
-
收到了一个ACK:如果收到ACK,假如该帧序号在窗口内,则SR发送方将那个被确认的帧标记为已接收。
如果该帧序号是窗口的下界(最左边第一个窗口对应的序号),则窗口向前移动到具有最小序号的未确认帧处。如果窗口移动了并且有序号在窗口内的未发送帧,则发送这些帧。
-
超时事件:每个帧都有自己的定时器,一个超时事件发生后只重传一个帧。
-
-
接收方
- 来者不拒(窗口内的帧):SR接收方将确认一个正确接收的帧而不管其是否按序。失序的帧将被缓存,并返回给发送方一个该帧的确认帧【收谁确认谁】,直到所有帧(即序号更小的帧)皆被收到为止,这时才可以将一批帧按序交付给上层,然后向前移动滑动窗口。
- 如果收到了**窗口序号外(小于窗口下界)**的帧,就返回一个ACK。其他情况,就忽略该帧。
-
窗口大小
发送窗口尺寸WT和接收窗口尺寸WR都大于1,一次可接收发送多个帧。
WT = WR时最好,若采用n比特对帧编号,则需满足 W T m a x = W R m a x = 2 n − 1 W_{Tmax}=W_{Rmax}=2^{n-1} WTmax=WRmax=2n−1,且 W T + W R ≤ 2 n W_T+W_R≤2^n WT+WR≤2n。
如果不满足窗口大小大于序号范围一半,当一个或多个确认帧丢失时,发送方就会超时重传之前的数据帧,但接收方无法分辨是新的数据帧还是重传的数据帧。
-
性能分析
-
信道利用率:也称信道效率,是对发送方而言的,是指发送方在一个发送周期的时间内,有效地发送数据所需要的时间占整个发送周期的比率。发送方从开始发送数据到收到第一个确认帧为止,称为一个发送周期。
设一个发送周期为T,发送周期内共发送L比特的数据,发送方数据传输率为C,则发送方发送有效数据时间为 L / C L/C L/C,信道利用率为 ( L / C ) / T (L/C)/T (L/C)/T。
-
信道吞吐率: 信道吞吐率 = 信道利用率 × 发送方发送速率 信道吞吐率=信道利用率×发送方发送速率 信道吞吐率=信道利用率×发送方发送速率
-
最小帧长: 最小帧长 = 2 × 数据传输速率 × 总线传播时延 最小帧长=2×数据传输速率×总线传播时延 最小帧长=2×数据传输速率×总线传播时延
-
3.5 介质访问控制
介质访问控制的内容就是,采取一定的措施,使得两对节点之间的通信不会发生互相干扰的情况。用来决定广播信道中信道分配的协议属于数据链路层的一个子层,称为介质访问控制(Medium Access Control, MAC)子层。
3.5.1 信道划分介质访问控制
信道划分介质访问控制是将使用介质的每个设备与来自同一信道上的其他设备的通信隔离开,把时域和频域资源合理地分配给网络上的设备。通常采用多路复用技术,把多个输入通道的信息整合到一个复用通道中,在接收端把收到的信息分离。
-
频分多路复用(FDM)
用户在相同时间占用不同频率带宽资源。每个子信道分配的带宽可不相同,但它们的总和必须不超过信道的总带宽。在实际应用中为了防止子信道之间的干扰,相邻信道之间需要加入“保护频带”。共享时间。
-
时分多路复用(TDM)
每一个时分复用的用户在每一个TDM帧占用固定序号的时隙,所有用户轮流占用信道。
不会发生碰撞,TDM帧是在物理层传送的比特流所划分的帧,标志一个周期。共享空间。
-
统计时分多路复用(STDM)
每一个STDM帧中的时隙数小于连接在集中器上的用户数。各用户有了数据就随时发往集中器的输入缓存,然后集中器按顺序依次扫描输入缓存,把缓存中的输入数据放入STDM帧中,一个STDM帧满了就发出。STDM帧不是固定分配时隙,而是按需动态分配时隙。
-
-
波分多路复用(WDM)
波分多路复用就是光的频分多路复用,在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率)不同,所以各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。
-
码分多路复用(CDM)
码分多路复用是靠不同的编码来区分各路原始信号的一种复用方式。既共享信道的频率,又共享时间。
码分多址(CDMA):每个比特时间再划分成m个短的时间槽,称为码片(Chip),通常m的值是64或128。每个站点指派m位码片序列,发送1时发原码,0时发反码。各个站点码片序列相互正交。
CDMA原理:
假如站点A的码片序列被指派为00011011,则A站发送00011011就表示发送比特1,发送11100100就表示发送比特0。为了方便,按惯例将码片中的0写为-1,将1写为+1,因此A站的码片序列是-1-1-1+1+1-1+1+1。
令向量S表示A站的码片向量,令T表示B站的码片向量。两个不同站的码片序列正交,即向量S和T的规格化内积(Inner Product)为0:
S ⋅ T = 1 m ∑ i = 1 m S i T i = 0 S·T=\frac{1}{m}\sum_{i=1}^{m} {S_iT_i}=0 S⋅T=m1i=1∑mSiTi=0
任何一个码片向量和该码片向量自身的规格化内积都是1,任何一个码片向量和该码片反码的向量的规格化内积是-1例:A站码片00011011、B站码片00101110;此时A、B站向量相乘内积为0。
当A站向C站发送数据1时,就发送了向量(-1-1-1+1+1-1+1+1)。
当B站向C站发送数据0时,就发送了向量(+1+1-1+1-1-1-1+1)。
两个向量到了公共信道上就进行叠加,实际上就是线性相加,得到S+T=(0 0 -2 2 0 -2 0 2)
到达C站后,想获得A站数据,就与A站码片S内积化, S ⋅ ( S + T ) = 1 S·(S+T)=1 S⋅(S+T)=1,所以A站数据是1;同理, T ⋅ ( S + T ) = − 1 T·(S+T)=-1 T⋅(S+T)=−1,所以B站发过来的向量是个反码向量,代表0。
3.5.2 随机访问介质访问控制
随机访问介质中使用争用型协议 ,胜利者通过争用获得信道,从而获得信息的发送权。将广播信道转化为点到点信道。信道并非在用户通信时固定分配给用户
-
ALOHA协议
-
纯ALOHA协议
- 思想:不监听信道,不按时间槽发送,随机重发。想发就发
- 冲突检测:如果发生冲突,接收方在就会检测出差错,然后不予确认,发送方在一定时间内收不到就判断发生冲突。
- 冲突解决:超时后等一随机时间再重传。
-
时隙ALOHA协议
- 思想:把时间分成若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道,若发生冲突,则必须等到下一个时间片开始时刻再发送。控制想发就发的随意性。
- 吞吐量是纯ALOHA协议的两倍。
-
-
CSMA协议
载波监听多路访问(CSMA)指的是每个站点在发送前都先监听一下共用信道,发现信道空闲后再发送。
监听:当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞,即发生了冲突。
-
1-坚持 CSMA
坚持指的是对于监听信道忙之后的坚持。
- 思想:如果一个主机要发送消息,那么它先监听信道。空闲则直接传输,不必等待。忙则一直监听,直到空闲马上传输。如果有冲突(一段时间内未收到肯定回复),则等待一个随机长的时间再监听,重复上述过程。
- 优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失。
- 缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免。
-
非坚持CSMA
非坚持指的是对于监听信道忙之后就不继续监听。
- 思想:如果一个主机要发送消息,那么它先监听信道。空闲则直接传输,不必等待。忙则等待一个随机的时间之后再进行监听。
- 优点:采用随机的重发延迟时间可以减少冲突发生的可能性。
- 缺点:可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低。
-
p-坚持 CSMA
P坚持指的是对于监听信道空闲的处理。
- 思想:如果一个主机要发送消息,那么它先监听信道。空闲则以p概率直接传输,不必等待;概率1-p等待到下一个时间槽再传输。忙则持续监听直到信道空闲再以p概率发送。若冲突则等到下一个时间槽开始再监听并重复上述过程。
- 优点:既能像非坚持算法那样减少冲突,又能像1-坚持算法那样减少媒体空闲时间的这种方案。
- 缺点:发生冲突后还是要坚持把数据帧发送完,造成了浪费。
信道状态 1-坚持 非坚持 p-坚持 空闲 立即发送数据 立即发送数据 以概率p发送数据
以概率1-p推迟到下一个时隙忙 继续坚持监听 放弃监听,等待随机的时间后再监听 持续监听,直至信道空闲 -
-
CSMA/CD 协议
载波监听多路访问/碰撞检测(CSMA/CD)协议是CSMA的改进方案,适用于总线形网络或半双工网络。
碰撞检测就是边发送边监听,如果 监听到了碰撞,则立即停止数据发送,等待一段随机时间后,重新开始尝试发送数据。
-
工作流程:先听后发,边听边发,冲突停发,随机重发
1)适配器从网络中获得分组,封装成以太帧,缓存等待发送
2)适配器侦听信道,空闲则发送,忙则持续监听,直到空闲发送
3)发送过程中持续检测信道,若检测到碰撞,停止发连并发送一个拥塞信号
4)中止发送后,执行指数退避法确定重传时机
争议期:两端往返传播时延。只要经过2τ(传播时延)时间还没有检测到碰撞,就能肯定这次发送不会发生碰撞。
最小帧长=总线传播时延x数据传输速率x2
以太网规定取51.2μs为争用期的长度。对于10Mb/s的以太网,在争用期内可发送512bit,即64B。
如果只发送小于64B的帧,如40B的帧,那么需要在MAC子层中于数据字段的后面加入一个整数字节的填充字段,以保证以太网的MAC帧的长度不小于64B。
-
截断二进制指数规避算法:
1.确定基本退避(推迟)时间为争用期2τ。
2.定义参数k,它等于重传次数,但k不超过10,即k=min[重传次数,10]。
3.从离散的整数集合[0,1…2k-1]中随机取出一个数r, 重传所需要退避的时间就是r倍基本退避时间,即2rτ。
4.当重传达16次仍不能成功时,说明网络太拥挤,认为此帧永远无法正确发出,抛弃此帧并向高层报错。
使用截断二进制指数退避算法可使重传需要推迟的平均时间随重传次数的增大而增大(这也称动态退避),因而能降低发生碰撞的概率,有利于整个系统的稳定。
-
-
CSMA/CA协议
CSMA/CD协议无法用于无线局域网,因为其无法做到360°全面检测碰撞。会出现隐蔽站问题。
隐蔽站:当A和C都检测不到信号,认为信道空闲时,同时向终端B发送数据帧,就会导致冲突。
载波监听多路访问/碰撞避免(CSMA/CA):协议的设计要尽量降低碰撞发生的概率。
-
工作原理:
1)发送数据前,先检测信道是否空闲。
2)空闲则发出RTS(request to send),RTS包括发射端的地址、接收端的地址、下一份数据将持续发送的时间等信息;信道忙则等待。
3)接收端收到RTS后,将响应CTS(clear to send)。CTS帧 ①给源站明确的发送许可;②指示其他站点在预约期内不要发送。
4)发送端收到CTS后,开始发送数据帧(同时预约信道:发送方告知其他站点自己要传多久数据)。
5)接收端收到数据帧后,将用循环冗余码CRC来检验数据是否正确,正确则响应ACK帧。
6)发送方收到ACK就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止(采用二进制指数退避:算法来确定随机的推迟时间)。 -
帧间间隔(IFS):为了尽量避免碰撞,802.11规定,所有的站完成发送后,必须再等待一段很短的时间(继续监听)才能发送下一帧。
1)SIFS(短IFS):最短的IFS,用来分隔属于一次对话的各帧,使用SIFS的帧类型有ACK帧、CTS帧、分片后的数据帧,以及所有回答AP探询的帧等。
2)PIFS(点协调IFS):中等长度的IFS,在PCF操作中使用。
3)DIFS(分布式协调IFS):最长的IFS,用于异步帧竞争访问的时延。 -
CSMA/CD与CSMA/CA主要有如下区别:
1.传输介质不同:CSMA/CD用于总线式以太网【有线】,而CSMA/CA用于无线局域网【无线】。
2.载波检测方式不同:因传输介质不同,CSMA/CD与CSMA/CA的检测方式也不同。
CSMA/CD通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随着发生变化;
而CSMA/CA采用能量检测(ED)、载波检测(CS)和能量载波混合检测三种检测信道空闲的方式。
3.CSMA/CD检测冲突,CSMA/CA避免冲突,二者出现冲突后都会进行有上限的重传。
-
3.5.3 轮询访问:令牌传递协议
在轮询访问中,用户不能随机地发送信息,而要通过一个集中控制的监控站,以循环方式轮询每个结点,再决定信道的分配。
令牌传递协议:每个结点都可以在一定的时间内(令牌持有时间)获得发送数据的权利,并不是无限制地持有令牌。主要用在令牌环局域网(物理星型拓扑,逻辑环形拓扑)。
令牌:一个特殊的MAC控制帧,它不包含信息,仅控制信道的使用,确保同一时刻只有一个站点独占信道。
-
传递过程:
1)网络空闲时,环路中只有令牌帧在循环传递
2)令牌传递到有数据要发送的站点时,该站点就修改令牌中的一个标志位,并在令牌中附加自己需要传输的数据,将令牌变成一个数据帧,然后将这个数据帧发送出去
3)数据帧沿着环路传输,接收到的站点一边转发数据,一边查看帧的目的地址。如果目的地址和自己的地址相同,那么接收站就复制该数据帧以便进一步处理。
4)数据帧沿着环路传输,直到到达该帧的源站点,源站点收到自己发出去的帧后便不再转发。同时,通过检验返回的帧来查看数据传输过程中是否出错,若有错则重传。
5)源站点传送完数据后,重新产生一个令牌,并传递给下一站点,以交出信道控制权。 -
应用:采用令牌传送方式的网络常用于负载较重、通信量较大的网络中。
3.6 局域网
3.6.1 局域网的基本概念和体系结构
局域网(LAN)指在某一区域内由多台计算机互联成的计算机组,使用广播信道。
-
特点
- 覆盖的地理范围较小,只在一个相对独立的局部范围内联,如一座或集中的建筑群内。
- 使用专门铺设的传输介质(双绞线、同轴电缆)进行联网,数据传输速率高(10Mb/s~10Gb/s)。
- 通信延迟时间短,误码率低,可靠性较高。
- 各站为平等关系,共享传输信道。
- 多采用分布式控制和广播式通信,能进行广播和组播。
-
局域网拓扑结构
①星形结构;②环形结构;③总线形结构;④星形和总线形结合的复合型结构。
-
传输介质
局域网可以使用双绞线、铜缆和光纤等多种传输介质,其中双绞线为主流传输介质。
-
介质访问控制方法
主要有CSMA/CD、令牌总线和令牌环,其中前两种方法主要用于总线形局域网,令牌环主要用于环形局域网。
-
局域网拓扑
- 以太网(目前使用范围最广的局域网)。逻辑拓扑是总线形结构,物理拓扑是星形或拓展星形结构。
- 令牌环(Token Ring,IEEE802.5)。逻辑拓扑是环形结构,物理拓扑是星形结构。
- FDDI(光纤分布数字接口,EEE802.8)。逻辑拓扑是环形结构,物理拓扑是双环结构。
-
MAC子层和LLC子层
-
LLC子层:逻辑链路控制子层,负责识别网络层协议,然后对它们进行封装(给帧加序号)。LLC报头告诉数据链路层一旦帧被接收到时,应当对数据包做何处理。
主要功能:建立和释放数据链路层的逻辑连接、提供与高层的接口、差错控制、给帧加序号。与传输媒体无关。
-
MAC子层:介质访问控制子层,向上层屏蔽对物理层访问的各种差异,提供对物理层的统一访问接口。
主要功能包括:组帧和拆卸帧、比特传输差错检测、透明传输。
-
3.6.2 以太网与 IEEE 802.3
IEEE 802.3标准是一种基带总线形的局域网标准,它描述物理层和数据链路层的MAC子层的实现方法。
以太网逻辑上采用总线形拓扑结构,物理星型结构,以太网中的所有计算机共享同一条总线,信息以广播方式发送。为了保证数据通信的方便性和可靠性,以太网简化了通信流程并使用了 CSMA/CD方式对总线进行访问控制。
①采用无连接的工作方式,不对发送的数据帧编号,也不要求接收方发送确认,即以太网尽最大努力交付数据,提供的是不可靠服务,对于差错的纠正则由高层完成;
②发送的数据都使用曼彻斯特编码的信号,每个码元的中间出现一次电压转换,接收端利用这种电压转换方便地把位同步信号提取出来。
- 以太网的传输介质与网卡
以太网采用10BASE-T网络,采用的是无屏蔽双绞线(UTP),传输速率是10Mb/s。
参数 | 10BASE5 | 10BASE2 | 10BASE-T | 10BASE-FL |
---|---|---|---|---|
传输媒体 | 基带同轴电缆(粗缆) | 基带同轴电缆(细缆) | 非屏蔽双绞线 | 光纤对(850nm) |
编码 | 曼彻斯特编码 | 曼彻斯特编码 | 曼彻斯特编码 | 曼彻斯特编码 |
拓扑结构 | 总线形 | 总线形 | 星形 | 点对点 |
最大段长 | 500m | 185m | 100m | 2000m |
最多结点数目 | 100 | 30 | 2 | 2 |
计算机与外界局域网的连接是通过网卡(网络适配器,又称网络接口板/卡)实现的。网卡上装有处理器和存储器,是工作在数据链路层的网络组件。网卡和局域网的通信是通过电缆或双绞线以串行方式进行的,而网卡和计算机的通信则是通过计算机主板上的I/O总线以并行方式进行的。网卡的重要功能就是进行数据的串并转换。
MAC地址:介质访问控制(MAC)地址,每块网卡在出厂时的唯一代码,用于控制主机在网络上的数据通信。数据链路层设备(网桥、交换机等)都使用各个网卡的MAC地址。另外,网卡控制着主机对介质的访问,因此网卡也工作在物理层,因为它只关注比特,而不关注任何地址信息和高层协议信息。
-
以太网的MAC帧
MAC地址也称物理地址,MAC地址长6字节,一般用由连字符(或冒号)分 隔的12个十六进制数表示,如 06 − E A − 56 − 3 B − 4 F − 4 D 06-EA-56-3B-4F-4D 06−EA−56−3B−4F−4D。高24位为厂商代码,低24位为厂商自行分配 的网卡序列号。
以太网MAC帧格式有两种标准:DIX Ethernet V2标准(即以太网V2标准)和IEEE 802.3 标准。这里先介绍最常用的以太网V2的MAC帧格式,如图所示。
- 前导码:使接收端与发送端时钟同步。在帧前面插入的8字节可再分为两个字段:第一个字段共7字节,是前同步码,用来快速实现MAC帧的比特同步;第二个字段是帧开始定界符,表示后面的信息就是MAC帧。
- 地址:通常使用6字节(48bit)地址(MAC地址)。
- 类型:2字节,指出数据域中携带的数据应交给哪个协议实体处理。
- 数据:46~1500字节,包含高层的协议消息。由于CSMA/CD算法的限制,以太网帧必须满足最小长度要求64字节,数据较少时必须加以填充(0~46字节)。
注意:46是怎么来的?由CSMA/CD可知以太网帧的最短顿长为64B,而MAC帧的首部和尾部的长度为18字节,所以数据字段最短为64-18=46字节。最大的1500字节是规定的。
- 填充:0~46字节,当帧长太短时填充帧,使之达到64字节的最小长度。
- 校验码(FCS):4字节,校验范围从目的地址段到数据段的末尾,算法采用32位循环冗余码(CRC),不但需要检验MAC帧的数据部分,还要检验目的地址、源地址和类型字段,但不校验前导码。
802.3帧格式与DIX以太帧格式的不同之处在于用长度域替代了 DIX帧中的类型域,指出数据域的长度。
-
高速以太网
速率≥100Mb/s的以太网称为高速以太网。
-
100BASE-T 以太网
在双绞线上传送100Mb/s基带信号的星型拓扑以太网,仍使用IEEE802.3的CSMA/CD协议。
支持全双工和半双工,可在全双工方式下工作而无冲突。
-
吉比特以太网
在光纤或双绞线上传送1Gb/s信号。
支持全双工和半双工,可在全双工方式下工作而无冲突。
-
10吉比特以太网
10吉比特以太网在光纤上传送10Gb/s信号。
只支持全双工,无争用问题。
-
3.6.3 IEEE 802.11无线局域网
-
无线局域网的组成
1)有固定基础设施无线局域网
802.11使用星形拓扑,其中心称为接入点(Access Point, AP),在MAC层使用CSMA/CA协议。使用802.11系列协议的局域网又称Wi-Fi。
无线局域网的最小构件是基本服务集BSS (Basic Service Set, BSS)。一个基本服务集包括一个接入点和若干移动站。各站在本BSS内之间的通信,或与本BSS外部站的通 信,都必须通过本BSS的AP。
AP就是基本服务集中的基站(base station)。安装AP时,必须为该AP分配一个不超过32字节的服务集标识符(Service Set IDentifier, SSID)和一个信道。SSID是指使用该AP的无线局域网的名字。
一个基本服务集覆盖的地理范围称为一个基本服务区(Basic Service Area,BSA),无线局域网的基本服务区的范围直径一般不超过100m。
一个基本服务集可以是孤立的,也可通过AP连接到一个分配系统(Distribution System, DS),然后再连接到另一个基本服务集,就构成了一个扩展的服务集(Extended Service Set, ESS)。
ESS还可以通过一种称为 Portal (门户)的设备为无线用户提供到有线连接的以太网的接入。门户的作用相当于一个网桥。
移动站A如果要和另一个基本服务集中的移动站B通信,就必须经过两个接入点AP1和AP2,即A→AP1→AP2→B,注意AP,到AP2的通信是使用有线传输的。
2)无固定基础设施移动自组织网络
另一种无线局域网是无固定基础设施的无线局域网,又称自组网络(ad hoc network)。自组网络没有上述基本服务集中的AP,而是由一些平等状态的移动站相互通信组成的临时网络。各结点之间地位平等,中间结点都为转发结点,因此都具有路由器的功能。
-
802.11局域网的MAC帧
802.11帧共有三种类型,即数据帧、控制帧和管理帧。
-
数据帧
1)MAC首部,共30字节。帧的复杂性都在MAC首部。
2)帧主体,即帧的数据部分,不超过2312字节。它比以太网的最大长度长很多。
3)帧检验序列FCS是尾部,共4字节。
其中帧控制的去往AP和来自AP决定着地址内容,具体如下表所示。
去往AP | 来自AP | 地址1 | 地址2 | 地址3 | 地址4 |
---|---|---|---|---|---|
0 | 1 | 接收地址=目的地址 | 发送地址=AP地址 | 源地址 | —— |
1 | 0 | 接收地址=AP地址 | 发送地址=源地址 | 目的地址 | —— |
地址1是直接接收数据帧的结点地址,地址2是实际发送数据帧的结点地址。
3.6.4 VLAN基本概念与基本原理
虚拟局域网(VLAN)可以把一个较大的局域网分割成一些较小的与地理位置无关,逻辑上的VLAN,而每个VLAN是一个较小的广播域。VLAN分割了广播域。
802.3ac标准定义了支持VLAN的以太网帧格式的扩展,称为802.1Q帧。它在以太网帧中插入一个4字节的标识符(插入在源地址字段和类型字段之间),称为VLAN标签,用来指明发送该帧的计算机属于哪个虚拟局域网。
VLAN标签的前两个字节置为0x8100,表示这是一个802.1Q帧。在VLAN标签的后两个字节中,前4位没有用,后12位是该VLAN的标识符VID,它唯一标识了该802.1Q帧属于哪个VLAN。
VID的取值范围为0~4095,但0和4095都不用来表示VLAN,因此用于表示VLAN的有效VID取值范围为1~4094。12位的VID可识别4096个不同的VLAN。插入VID后,802.1Q帧的FCS必须重新计算。
IEEE 802.1Q帧是由交换机来处理的,而不是由用户主机来处理的。(即主机和交换机之间只交换普通的以太网帧)
如上图所示,交换机1连接了7台计算机,该局域网划分为两个虚拟局域网VLAN 10和VLAN 20,其中10和20是管理员分配的VID。主机不知道自己的VID,交换机知道所有的VID,主机与交换机用以太网帧交互。VLAN范围可以跨越交换机,交换机1与交换机2相连,并同时连接着两个VLAN。
这两个VLAN虽然都跨越了两个交换机,但各自都是一个广播域。
发送地址 | 目的地址 | 转发路径 |
---|---|---|
A | B | 交换机1查询目的地址接口,识别B属于本交换机管理的同VLAN设备 直接转发以太网帧 |
A | E | 交换机1查询目的地址接口,将帧转发到交换机2,并插入VLAN标签 交换机之间转发Q帧 |
A | C | 属于不同网络,需要通过路由器或者三层交换机完成转发 |
3.7 广域网
3.7.1 广域网基本概念
广域网通常是指覆盖范围很广(远超一个城市的范围)的长距离网络。广域网的通信子网主要使用分组交换技术。广域网由一些结点交换机(不是路由器)及连接这些交换机的链路组成。结点之间都是点到点连接,但为了提高网络的可靠性,通常一个结点交换机往往与多个结点交换机相连。
广域网不等于互联网。互联网可以连接不同类型的网络(既可以连接局域网,又可以连接广域网),通常使用路由器来连接。
广域网与局域网有相同有不同,相似点如下:
- 广域网和局域网都是互联网的重要组成构件,从互联网的角度上看,二者平等(不是包含关系)
- 连接到一个广域网或一个局域网上的主机在该网内进行通信时,只需要使用其网络的物理地址
不同点如下所示:
广域网 | 局域网 | |
---|---|---|
覆盖范围 | 很广,通常跨区域 | 较小,通常在一个区域内 |
连接方式 | 结点之间都是点到点连接,但为了提高网络的可靠性, 一个结点交换机往往与多个结点交换机相连 | 普遍采用多点接入技术 |
OSI参考模型层次 | 三层:物理层,数据链路层,网络层 | 两层:物理层,数据链路层 |
着重点 | 强调资源共享 | 强调数据传输 |
广域网中的一个重要问题是路由选择和分组转发。路由选择协议负责搜索分组从某个结点到目的结点的最佳传输路由,以便构造路由表,然后从路由表再构造出转发分组的转发表。分组是通过转发表进行转发的。
3.7.2 PPP协议
点对点协议(Point–to-Point Protocol,PPP)是使用串行线路通信的面向字节的协议,该协议应用在直接连接两个结点的链路上。不可靠。
-
组成部分
- 链路控制协议(LCP)。一种扩展链路控制协议,用于建立、配置、测试和管理数据链路。
- 网络控制协议(NCP)。PPP协议允许同时采用多种网络层协议,每个不同的网络层协议要用一个相应的NCP来配置,为网络层协议建立和配置逻辑连接。
- 一个将IP数据报封装到串行链路的方法。P数据报在PPP帧中就是其信息部分,这个信息部分的长度受最大传送单元(MTU)的限制。
PPP帧格式如图所示,PPP帧前3个字段和最后两个字段与HDLC帧相同。PPP是面向字节的,因 而所有PPP帧的长度都是整数个字节。
-
标注字段(F)为7E(01111110),前后各占1字节。
-
若标注字段出现在信息字段中,就必须做字节填充,使用的控制转义字节是7D (01111101)。
-
地址字段(A)占1字节,规定为0xFF,
-
控制字段(C)占1字节,规定为0x03,两者的内容始终是固定不变的。
-
协议字段占2字节,说明信息段中运载的是什么种类的分组。HDLC无此字段。
-
信息部分长度可变,大于或等于0且小于或等于1500B。
-
帧检验序列(FCS),占2字节,即循环冗余码检验中的冗余码。
因为PPP是,点对点的,并不是总线形,所以无须采用CSMA/CD协议,自然就没有最短帧,所以信息段占01500字节,而不是46~1500字节。
-
PPP链路建立、使用、撤销
- 静止:当线路处于静止状态时,不存在物理层连接。
- 建立:当线路检测到载波信号时,建立物理连接,线路变为建立状态。
- LCP开始选项商定,商定成功后就进入身份验证状态。身份验证通过后,进入网络层协议状态。
- 采用NCP配置网络层,配置成功后,进入打开状态,然后就可进行数据传输。
- 撤销:当数据传输完成后,线路转为终止状态。载波停止后则回到静止状态。
-
特点
1)PPP提供差错检测但不提供纠错功能,只保证无差错接收(通过硬件进行CRC校验)。它是不可靠的传输协议,因此也不使用序号和确认机制。
2)它仅支持点对点的链路通信,不支持多点线路。
3)PPP只支持全双工链路。
4)PPP的两端可以运行不同的网络层协议,但仍然可使用同一个PPP进行通信。
5)PPP是面向字节的,当信息字段出现和标志字段一致的比特组合时,PPP有两种不同的处理方法:若PPP用在异步线路(默认),则采用字符填充法;若PPP用在SONET/SDH等同步线路,则协议规定采用硬件来完成比特填充(和HDLC的做法一样)。
3.7.3 HDLC协议
高级数据链路控制(HDLC)协议是面向比特的数据链路层协议。实现可靠传输。
- 特点
- 该协议不依赖于任何一种字符编码集
- 数据报文可透明传输,用于实现透明传输的“0比特插入法”易于硬件实现
- 全双工通信,有较高的数据链路传输效率
- 所有帧采用CRC检验,对信息帧进行顺序编号,可防止漏收或重发,传输可靠性高
- 传输控制功能与处理功能分离,具有较大的灵活性。
-
帧格式
- 标志字段F,为01111110。在接收端只要找到标志字段就可确定一个帧的位置。
- HDLC协议采用比特填充的首尾标志法实现透明传输。
- 地址字段A,共8位,根据不同的传送方式,表示从站或应答站的地址。
- 控制字段C,共8位,HDLC的许多重要功能都靠控制字段来实现。
-
PPP与HDLC的不同
- PPP协议是面向字节的,HDLC协议是面向比特的。
- PPP帧比HDLC帧多一个2字节的协议字段。当协议字段值为0x0021时,表示信息字段是IP数据报。
- PPP协议不使用序号和确认机制,只保证无差错接收(CRC检验),而端到端差错检测由高层协议负责。HDLC协议的信息帧使用了编号和确认机制,能够提供可靠传输。
3.8 数据链路层设备
3.8.1 网桥
两个或多个以太网通过网桥连接后,就成为一个更大的以太网,而原来的每个以太网就称为一个网段。网桥工作在链路层的MAC子层,可以使以太网各网段成为隔离开的碰撞域。
网桥根据MAC帧的目的地址对帧进行转发和过滤。当网桥收到一个帧时,并不向所有接口转发此帧,而是先检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口,或者是把它丢弃(即过滤)。
- 冲突域:在同一个冲突域中的每一个节点都能收到所有被发送的帧。简单的说就是同一时间只能有一台设备发送信息的范围。
- 广播域:网络中能接收任一设备发出的广播帧的所有设备的集合。简单的说如果站点发出一个广播信号,所有能接收到这个信号的设备范围称为一个广播域。
层次 | 设备 | 隔离冲突域 | 隔离广播域 |
---|---|---|---|
网络层 | 路由器 | 能 | 能 |
数据链路层 | 网桥、交换机 | 能 | 不能 |
物理层 | 中继器、集线器 | 不能 | 不能 |
3.8.2 局域网交换机
-
交换机的原理和特点
局域网交换机,又称以太网交换机,以太网交换机实质上就是一个多端口的网桥,工作在数据链路层。
以太网交换机的每个端口都直接与单台主机或另一个交换机相连,通常都工作在全双工方式。
-
原理:它检测从以太端口来的数据帧的源和目的地的MAC地址,然后与系统内部的动态查找表进行比较,若数据帧的MAC地址不在查找表中,则将该地址加入查找表中,并将数据帧发送给相应的目的端口。
-
交换机能经济地将网络分成小的冲突域,为每个工作站提供更高的带宽。
对于传统10Mb/s的共享式以太网,若共有N个用户,则每个用户占有的平均带宽只有总带宽的1/N。
使用交换机时,每个端口到主机的带宽还是10Mb/s,用户在通信时是独占而不是和其他网络用户共享传输媒体的带宽,因此拥有N个端口的交换机的总容量为N×10Mb/s。
特点:
- 以太网交换机的每个端口都直接与单台主机相连(网桥的端口往往连接到一个网段),并且一般都工作在全双工方式。
- 以太网交换机同时连通多对端口,使每对相互通信的主机都能像独占通信媒体那样,无碰撞地传输数据。
- 以太网交换机是一种即插即用设备,其内部的帧的转发表是通过自学习算法自动地逐渐建立起来的。
- 以太网交换机由于使用专用的交换结构芯片,交换速率较高。
- 以太网交换机独占传输媒体的带宽。
交换模式:
-
直通式交换机:查完目的MAC地址(6B)就立刻转发。延迟小,可靠性低,无法支持具有不同速率的端口的交换。
-
存储转发式交换机:将帧放入高速缓存,并检查否正确,正确则转发,错误则丢弃。延迟大,可靠性高,可以支持具有不同速率的端口的交换。
以太网交换机一股都具有多种速率的端口,例如可以具有10Mb/s、100Mb/s和1Gb/s的端口的各种组合,因此大大方便了各种不同情况的用户。
-
-
交换机的自学习功能
交换机的过滤和转发借助于交换表(switch table)完成。
过滤:决定一个帧是应该转发到某个端口还是应该将其丢弃称。
转发:决定一个帧应该被移动到哪个接口。
交换表:包含多个表项,每个表项包含①一个MAC地址;②连通该MAC地址的交换机端口。
自学习过程:
- A先向B发送一帧,从端口1进入交换机。
- 交换机收到帧后,查找交换表,找不到MAC地址为B的表项。
- 交换机将该帧的源地址A和端口1(A,1)写入交换表,并向除端口1外的所有端口广播这个帧(该帧就是从端口1进入的,因此不应该将它再从端口1转发出去)。
- C和D丢弃该帧,因为目的地址不对。只有B才收下这个目的地址正确的帧。
- B通过端口3向A发送一帧,交换机查找交换表后,发现有表项 (A,1),将该帧从端口1转发给A。同时,将该帧的源地址B和端口 3 (B,3) 写入交换表,表明以后如有发送给B的帧,应该从端口3转发出去。
- 经过一段时间,只要主机C和D也向其他主机发送帧,交换机就会把C和D及对应的端口号写入交换表。这样,转发给任何主机的帧,都能很快地在交换表中找到相应的转发端口。
交换表中的每个表项都设有一定的有效时间,过期的表项会自动删除。这就保证了交换表中的数据符合当前网络的实际状况。