本章最重要的内容是:
3-01 数据链路(即逻辑链路)与链路(即物理链路)有何区别?“电路接通了”与“数据链路接通了”的区别何在?
3-02 数据链路层中的链路控制包括哪些功能?试讨论数据链路层做成可靠的链路层有哪些优点和缺点。
数据链路层中的链路控制包括哪些功能:
数据链路层做成可靠的链路层的优点和缺点取决于所应用的环境:
3-03 网络适配器的作用是什么?网络适配器工作在哪一层?
计算机与外界局域网的连接是通过通信适配器 (adapter) 进行的。
适配器本来是在主机箱内插入的一块网络接口板 (或是在笔电中插入一块PCMCIA卡——个人计算机存储器卡接口适配器)。这种接口板又称为网络接口卡 NIC (Network Interface Card) 或简称为网卡。现在计算机主板上都已嵌入这种适配器,不再使用单独的网卡,故使用适配器术语。
网络适配器的功能:
适配器所实现的功能包含了数据链路层和物理层这两个层次的功能。
计算机通过适配器和局域网进行通信:
注意,计算机的硬件地址在适配器的 ROM 中,计算机的软件地址——IP 地址在计算机的存储器中。
3-04 数据链路层的三个基本问题(封装成帧、透明传输和差错检测)为什么都必须加以解决?
3-05 如果在数据链路层不进行封装成帧,会发生什么问题?
3-06 PPP协议的主要特点是什么?为什么PPP不使用帧的编号?PPP适用于什么情况?为什么PPP协议不能使数据链路层实现可靠传输?
PPP协议应满足的需求:
在TCP/IP协议族中,可靠传输由传输层的TCP协议负责,因此数据链路层的PPP协议不需要进行纠错,不需要设置序号,也不需要进行流量控制。
PPP协议只支持点对点的链路通信。此外,PPP协议只支持全双工链路。
PPP适用于线路质量不太差的情况下。
PPP没有编号和确认机制。
PPP 协议有 3 个组成部分:
3-07 要发送的数据为 1101011011。采用 CRC 的生成多项式是 P ( X ) = X 4 + X + 1 P(X) = X^4 + X + 1 P(X)=X4+X+1。试求应添加在数据后面的余数。
数据在传输过程中最后一个1变成了0,问接收端能否发现?
若数据在传输过程中最后两个1都变成了0,问接收端能否发现?
采用CRC检验后,数据链路层的传输是否就变成了可靠的传输?
循环冗余检验 CRC (Cyclic Redundancy Check) 的原理:
一种较方便的方法是用多项式来表示循环冗余检验过程。这个多项式成为生成多项式。
对于本题,待传送数据 M = 1101011011 M = 1101011011 M=1101011011,即 k = 10 k=10 k=10。
多项式 P ( X ) = X 4 + X + 1 P(X) = X^4 + X + 1 P(X)=X4+X+1 表示除数 P = 10011 P = 10011 P=10011,即 n = 4 n=4 n=4。
得到余数 R = 1110 R = 1110 R=1110,作为 FCS,拼接到数据 M M M 后,得到帧 11010110111110。
①数据在传输过程中最后一个 1 变成了 0,接收端收到的帧是 11010110101110,将这个数除以 P (模2运算),得到余数为 0011,不为 0,判定帧有差错。
②若数据在传输过程中最后两个 1 都变成了 0,接收端收到的帧是 11010110001110,将这个数除以 P (模2运算),得到余数为 0101,不为 0,判定帧有差错。
故,出现的两种差错接收端都可以发现。
仅仅采用了 CRC 检验,数据链路层的传输还不是可靠的传输。
所谓“可靠传输”就是:数据链路层的发送端发送什么,在接收端就收到什么。
传输差错可分为两大类:
3-08 要发送的数据为101110。采用CRC的生成多项式是 P ( X ) = X 3 + 1 P(X) = X^3 + 1 P(X)=X3+1。试求应添加在数据后面的余数。
解:待传送数据 M = 101110,即 k=6。除数 P = 1001,即 n=3。
将 101110000 除以 1001 (模2运算),得出商 Q = 101011,余数 R = 011。
3-09 一个PPP帧的数据部分(用十六进制写出)是 7D 5E FE 27 7D 5D 7D 5D 65 7D 5E。试问真正的数据是什么(用十六进制写出)?
当信息字段中出现和标志字段一样的比特(0x7E)组合时,必须采取措施使这种比特组合不出现在信息字段中。
当PPP使用异步传输 (逐个字符地传送) 时,它把转义符定义为 0x7D,并使用字节填充,RFC1662规定了填充方法:
接收端在收到数据后再进行与发送端字节填充相反的变换,可正确恢复出原来的信息。
故,本题的真正的数据是 7E FE 27 7D 7D 65 7E。
3-10 PPP协议使用同步传输技术传送比特串 0110111111111100。试问经过零比特填充后变成怎样的比特串?若接收端收到的PPP帧的数据部分是 0001110111110111110110,问删除发送端加入的零比特后变成怎样的比特串?
PPP协议用在 SONET/SDH 链路时,使用同步传输(一连串的比特连续传送)而不是异步传输(逐个字符地传送)。在这种情况下,PPP协议采用零比特填充方法来实现透明传输。
零比特填充的具体做法:
本题中,PPP协议使用同步传输技术传送比特串 0110111111111100,经过零比特填充后变成比特串 011011111011111000。
若接收端收到的PPP帧的数据部分是 0001110111110111110110,删除发送端加入的零比特后变成比特串 00011101111111111110。
3-11 试分别讨论以下各种情况在什么条件下是透明传输,在什么条件下不是透明传输。(提示:请弄清什么是“透明传输”,然后考虑能否满足其条件。)
(1) 普通的电话通信。
(2) 互联网提供的电子邮件服务。
解:(1) 由于电话系统的带宽有限,而且还有失真,因此电话机两端的输入声波和输出声波是有差异的。在“传送声波”这个意义上讲,普通的电话通信并不是透明传输。但对“听懂说话的意思”来讲,则基本上是透明传输。但也有时个别语音会听错,如单个的数字 1 和 7。这就不是透明传输。
(2) 一般说来,电子邮件是透明传输。但有时不是。因为国外有些邮件服务器为了防止垃圾邮件,对来自某些域名的邮件一律阻拦掉。这就不是透明传输。有些邮件的附件在收件人的电脑上打不开。这也不是透明传输。
3-12 PPP协议的工作状态有哪几种?当用户要使用 PPP 协议和 ISP 建立连接进行通信时,需要建立哪几种连接?每一种连接解决什么问题?
从设备之间无链路开始,到先建立物理链路,再建立 LCP链路。经过鉴别后再建立 NCP 链路,然后才能交换数据。
由此可见,PPP 协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容。
3-13 局域网的主要特点是什么?为什么局域网采用广播通信方式而广域网不采用呢?
局域网的主要特点:网络为一个单位所拥有,且地理范围和站点数目均有限。
局域网内的机器是连接到同一条物理线路,所有主机发数据都经过这条链路,通信方式是放到公用链路,发送给所有主机,接收端对比地址,接收发往自己的数据,丢弃其他数据。如果是广域网,地理空间太大,有更多主机构成,降低网络使用率,严重消耗主机处理能力,可能会导致网无法运行。同时也造成了数据无效流动,极易产生网络风暴。
3-14 常用的局域网的网络拓扑有哪些种类?现在最流行的是哪种结构?为什么早期的以太网选择总线拓扑结构而不使用星形拓扑结构,但现在却改为使用星形拓扑结构?
常用的局域网的网络拓扑种类:星形网,环形网,总线网。
由于集线器 (hub) 的出现和双绞线大量用于局域网中,星形以太网以及多级星形结构的以太网获得了非常广泛的应用。
当时很可靠的星形拓扑结构较贵。人们都认为无源的总线结构更加可靠。但实践证明,连接有大量站点的总线式以太网很容易出现故障,而现在专用的 ASIC 芯片的使用可以将星形结构的集线器做得非常可靠。因此现在的以太网一般都使用星形结构的拓扑。
随着以太网上站点数目的增多,使得总线结构以太网的可靠性下降。与此同时,大规模集成电路以及专用芯片的发展,使得星形结构的以太网交换机可以做得既便宜又可靠。在这种情况下,采用以太网交换机的星形结构又成为以太网的首选拓扑。
总线以太网使用 CSMA/CD 协议,以半双工方式工作。但以太网交换机不使用共享总线,没有碰撞问题,因此不使用 CSMA/CD 协议,而是以全双工方式工作。仍然采用以太网的帧结构。
3-15 什么叫做传统以太网?以太网有哪两个主要标准?
由于以太网的数据率已演进到每秒吉比特或甚至高达 100 吉比特,因此通常就用 “传统以太网”来表示最早流行的 10 Mbit/s 速率的以太网。
以太网的两个标准:
3-16 数据率为 10 Mbit/s 的以太网在物理媒体上的码元传输速率是多少码元/秒?
为了通信简便,以太网发送的数据都使用曼彻斯特 (Manchester) 编码的信号。在曼彻斯特编码的每个码元的正中间一定有一次电压的转换,接收端利用这种电压的转换很方便地把位同步信号提取出来。但它也有缺点,就是它所占的频带宽度比原始的基带信号增加了一倍,因为每秒传送的码元数加倍了。
故,数据率为 10 Mbit/s 的以太网在物理媒体上的码元传输速率是 20 M 码元/秒。
3-17 为什么LLC子层的标准已制定出来了但现在却很少使用?
出于有关厂商在商业上的激烈竞争,IEEE 802 委员会未能形成一个统一的、“最佳的”局域网标准,而是被迫制定了几个不同的局域网标准,如 802.4 令牌总线网、802.5 令牌环网等。
为了使数据链路层能更好地适应多种局域网标准,IEEE 802 委员会就把局域网的数据链路层拆成两个子层,即逻辑链路控制 LLC (Logical Link Control) 子层和媒体接入控制 MAC (Medium Access Control) 子层。
与接入到传输媒体有关的内容都放在 MAC 子层,而 LLC 子层则与传输媒体无关,不管采用何种传输媒体和 MAC 子层的局域网对 LLC 子层来说都是透明的。
到了 20 世纪 90 年代后,以太网在局域网市场逐渐取得垄断地位,几乎成为了局域网的代名词。由于互联网发展很快而 TCP/IP 体系经常使用的局域网只剩下 DIX Ethernet V2 而不是 IEEE 802.3 标准中的局域网,因此现在 LLC 的作用已经消失了,很多厂商生产的适配器上就仅装有 MAC 协议而没有 LLC 协议。
3-18 试说明 10BASE-T 中的 “10”、“BASE”和“T”所代表的意思。
1990 年 IEEE 制定出星形以太网 10BASE-T 的标准 802.3i。
10 代表 10 Mbit/s 的数据率,BASE 表示连接线上的信号是基带信号,T 代表双绞线。
3-19 以太网使用的 CSMA/CD 协议是以争用方式接入到共享信道的。这与传统的时分复用 TDM 相比优缺点如何?
共享信道要着重考虑的一个问题是如何使众多用户能够合理而方便地共享通信媒体资源。这在技术上有两种方法:
从网络上负载轻重、灵活性以及网络效率等方面进行比较。
网络上的负荷较轻时,CSMA/CD 协议很灵活。当网络负荷很重时,TDM 的效率就很高。
3-20 假定 1km 长的 CSMA/CD 网络的数据率为 1Gbit/s。设信号在网络上的传播速率为 200000 km/s。求能够使用此协议的最短帧长。
为了通信的简便,以太网采用较为灵活的无连接的工作方式,即不必先建立连接就可以直接发送数据。适配器对发送的数据帧不进行编号,也不要求对方发回确认。因此,以太网提供的服务是尽最大努力的交付,即不可靠的交付。
总线上只要有一台计算机在发送数据,总线的传输资源就被占用。因此,在同一时间只能允许一台计算机发送数据,否则各计算机之间就会互相干扰,使得所发送数据被破坏。因此,如何协调总线上各计算机的工作就是以太网要解决的一个重要问题。以太网采用最简单的随机接入,使用 CSMA/CD 协议来减少冲突发生的概率。
CSMA/CD 的意思是载波监听多点接入/碰撞检测 (Carrier Sense Multiple Access with Collision Detection):
每一个站在发送数据之前已监听到信道为“空闲”,但还会出现数据在总线上的碰撞。这是因为电磁波在总线上总是以有限的速率传播的。电磁波在 1 km 电缆的传播时延约为 5 μ s \mu s μs。
A 发送数据后,最迟要经过多长时间才能知道自己发送的数据和其他站发送的数据有没有发生碰撞?这个时间最多是两倍的总线端到端的传播时延 ( 2 τ 2\tau 2τ),或总线的端到端往返传播时延。
本题中,传播时延为 τ = 1 k m 200000 k m / s = 5 × 1 0 − 6 s \tau = \frac{1 km}{200000 km/s} = 5 \times 10^{-6} s τ=200000km/s1km=5×10−6s。
帧的发送时延则至少为 2 τ = 1 0 − 5 s 2\tau = 10^{-5} s 2τ=10−5s。
最短帧长为 1 G b i t / s × 1 0 − 5 s = 10000 b i t 1 Gbit/s \times 10^{-5} s = 10000 bit 1Gbit/s×10−5s=10000bit,即 1250 字节。
3-21 什么叫做比特时间?使用这种时间单位有什么好处?100比特时间是多少微秒?
1 比特时间就是发送 1 比特所需的时间。这种时间单位与数据率密切相关。
“比特时间”换算成“微秒”必须先知道数据率是多少。如数据率是 10 Mbit/s,则 100 比特时间等于 10 μ s \mu s μs。
3-22 假定在使用 CSMA/CD 协议的 10 Mbit/s 以太网中某个站在发送数据时检测到碰撞,执行退避算法时选择了随机数 r = 100。试问这个站需要等待多长时间后才能再次发送数据?如果是 100 Mbit/s 的以太网呢?
以太网使用截断二进制指数退避 (truncated binary exponential backoff) 算法来确定碰撞后重传的时机。为了使各站进行重传时再次发生冲突的概率减小,具体的退避算法如下:
本题中,对于 10 Mbit/s 以太网,争用期为 512 b i t 10 M b i t / s = 5.12 × 1 0 − 5 s \frac{512 bit}{10 Mbit/s} = 5.12 \times 10^{-5}s 10Mbit/s512bit=5.12×10−5s,乘以 r r r,得到时间为 5.12 5.12 5.12 ms。
对于 100 Mbit/s 以太网,争用期为 512 b i t 100 M b i t / s = 5.12 × 1 0 − 6 s \frac{512 bit}{100 Mbit/s} = 5.12 \times 10^{-6}s 100Mbit/s512bit=5.12×10−6s,乘以 r r r,得到时间为 5.12 μ s 5.12 \mu s 5.12μs。
3-23 公式(3-3)表示,以太网的极限信道利用率与连接在以太网上的站点数无关。能否由此推论出:以太网的利用率也与连接在以太网的站点数无关?请说明你的理由。
成功发送一个帧需要占用信道的时间是 T 0 + τ T_0 + \tau T0+τ,比这个帧的发送时间要多一个单程端到端时延 τ \tau τ。这是因为当一个站发送完最后一个比特时,这个比特还要在以太网上传播。
要提高以太网的信道利用率,就必须减小 τ \tau τ 与 T 0 T_0 T0 之比。在以太网中定义了参数 a a a,它是以太网单程端到端时延 τ \tau τ 与帧的发送时间 T 0 T_0 T0 之比:
a = τ T 0 a = \frac{\tau}{T_0} a=T0τ
以太网的参数 a a a 的值应当尽可能小些。这就是说,当数据率一定时,以太网的连线的长度受到限制 (否则 τ \tau τ 的数值会太大),同时以太网的帧长不能太短 (否则 T 0 T_0 T0 的值会太小)。
考虑一种理想化的情况。假定以太网上的各站发送数据都不会产生碰撞 (这显然已经不是 CSMA/CD,而是需要使用一种特殊的调度方法),并且能够非常有效地利用网络的传输资源,即总线一旦空闲就有某一个站立即发送数据。这样可计算出极限信道利用率 S max S_{\max} Smax 为:
S max = T 0 T 0 + τ = 1 1 + a (3-3) S_{\max} = \frac{T_0}{T_0 + \tau} = \frac{1}{1+a} \quad \text{(3-3)} Smax=T0+τT0=1+a1(3-3)
(3-3)式的意义是:虽然实际的以太网不可能有这样高的极限信道利用率,但(3-3)式指出了只有当参数 a a a 远小于 1 才能得到尽可能高的极限信道利用率。
据统计,当以太网的利用率达到 30% 时就已处于重载的情况。很多的网络容量被网上的碰撞消耗掉了。
对于本题,不能推论出。实际的以太网各站发送数据的时刻是随机的,而以太网的极限信道利用率的得出是假定以太网使用了特殊的调度方法,使各站点的发送不发生碰撞。
3-24 站点 A 和 B 在同一个 10Mbit/s 以太网网段上。这两个站点之间的传播时延为 225 比特时间。现假定 A 开始发送一帧,并且在 A 发送结束之前 B 也发送一帧。如果 A 发送的是以太网所容许的最短的帧,那么 A 在检测到和 B 发生碰撞之前能否把自己的数据发送完毕?换言之,如果 A 在发送完毕之前并没有检测到碰撞,那么能否肯定 A 所发送的帧不会和 B 发送的帧发生碰撞? (提示:在计算时应当考到每一个以太网帧在发送到信道上时,在 MAC 帧前面还要增加若干字节的前同步码和帧定界符。)
以太网所容许的最短的帧长度为 64 字节,即 512 比特。加上前同步码 (7 字节) 和帧定界符 (1 字节),共有 576 比特。
设在 t = 0 时 A 开始发送。在 t = 576 比特时间,A 应该发送完毕。
t = 225 比特时间,B 就检测出 A 的信号。只要 B 在 t = 224 比特时间之前发送数据,A 在发送完毕之前就一定能检测到碰撞,就能够肯定以后也不会再发生碰撞了。
如果 A 在发生完毕之前并没有检测到碰撞,那么就能够肯定 A 所发送的帧不会和 B 发送的帧发生碰撞 (当然也不会和其他站点发生碰撞)。
3-25 在上题中的站点 A 和 B 在 t = 0 时同时发送了数据帧。当 t = 255 比特时间,A 和 B 同时检测到发生了碰撞,并且在 t = 255 + 48 = 273 比特时间完成了干扰信号的传输。A 和 B 在 CSMA/CD 算法中选择不同的 r 值退避。假定 A 和 B 选择的随机数分别是 r A = 0 r_A=0 rA=0 和 r B = 1 r_B=1 rB=1。试问 A 和 B 各在什么时间开始重传其数据帧?A 重传的数据帧在什么时间到达 B?A 重传的数据会不会和 B 重传的数据再次发生碰撞?B 会不会在预定的重传时间停止发送数据?
强化碰撞:当发送数据的站一旦发现发生了碰撞时,立即停止发送数据,还要再继续发送 32 bit 或 48 bit 的人为干扰信号 (jamming signal),以便让所有用户知道现已发生了碰撞。
以太网规定帧间最小间隔为 96 比特时间。这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好收下一帧的准备。
★ \textcolor{red}{\bigstar} ★ CSMA/CD 协议的要点:
由3-24题知,本题中以太网一个单程端到端时间为 τ \tau τ = 225 比特时间。CSMA/CD 协议规定争用期是 512 比特时间。
对于本题,
T 0 T_0 T0 = 0 时,A 和 B 开始发送数据。
T 1 T_1 T1 = 225 比特时间,A 和 B 都检测到碰撞。
T 2 T_2 T2 = 273 比特时间,A 和 B 结束干扰信号的传输。此时,
①A 站等待 r A r_A rA 倍 512 比特时间后为 T 2 + 512 × r A T_2 + 512 \times r_A T2+512×rA = 273 比特时间。此时 A 检测到信道忙。
②B 站等待 r B r_B rB 倍 512 比特时间后为 T 2 + 512 × r B T_2 + 512 \times r_B T2+512×rB = 785 比特时间。
T 3 = T 2 + τ T_3 = T_2 + \tau T3=T2+τ = 498 比特时间,A 和 B 接收到对方干扰信号的最后一个比特时。此时 A 站检测到信道空闲,再等待 96 比特时间后,A 开始发送。
T 4 T_4 T4 = 594 比特时间,A 开始发送。 T 4 = T 3 T_4 = T_3 T4=T3 + 96 比特时间。
T 5 = T 4 + τ T_5 = T_4 + \tau T5=T4+τ = 819 比特时间,A 重传的数据第一个比特到达 B。
T 6 T_6 T6 = 785 比特时间,B 再次检测信道。如空闲,则 B 将在 881 比特时间发送数据。但实际上,B 先检测到信道忙,因此 B 在预定的 881 比特时间不发送数据。
3-26 以太网上只有两个站,它们同时发送数据,产生了碰撞。于是按截断二进制指数退避算法进行重传。重传次数记为 i i i, i = 1 , 2 , … i=1, 2, … i=1,2,…。试计算第 1 次重传失败的概率、第 2 次重传的概率、第 3 次重传失败的概率,以及一个站成功发送数据之前的平均重传次数 I I I。
将第 i i i 次重传失败的概率记为 P i P_i Pi,则 P i = ( 0.5 ) k P_i = (0.5)^k Pi=(0.5)k, k = min [ i , 10 ] k=\min[i,10] k=min[i,10]。
故第1次重传失败的概率 P 1 = 0.5 P_1 = 0.5 P1=0.5,
第2次重传失败的概率 P 1 = 0.25 P_1 = 0.25 P1=0.25,
第3次重传失败的概率 P 1 = 0.125 P_1 = 0.125 P1=0.125。
P[传送 i 次才成功] = P[第1次传送失败]P[第2次传送失败]…P[第 i-1 次传送失败]P[第 i 次传送成功]。
求{P[传送 i 次才成功]}的统计平均值,得出平均重传次数为 1.637。
def P(i): # 第i次重传失败的概率
k = min(i,10)
ans = 0.5**k
return ans
def Q(i): # 第i次重传成功的概率
ans = 1.0
for j in range(1,i):
ans *= P(j)
ans *= 1-P(i)
return ans
def fun(): # 计算统计平均值
s = 0
for i in range(1,17):
a = i*Q(i)
print("%.3f"%a)
s += a
#s += i*Q(i)
print s
fun()
运行结果为:
0.500
0.750
0.328
0.059
0.005
0.000
0.000
0.000
0.000
0.000
0.000
0.000
0.000
0.000
0.000
0.000
1.64163256066
3-27 有10个站连接到以太网上。试计算一下三种情况下每一个站所能得到的带宽。
(1) 10 个站都连接到一个 10Mbit/s 以太网集线器;
(2) 10 个站都连接到一个 100Mbit/s 以太网集线器;
(3) 10 个站都连接到一个 10Mbit/s 以太网交换机。
集线器的一些特点如下:
(1) 10 个站共享 10 Mbit/s。每个用户占有的平均带宽只有 1 Mbit/s。
(2) 10 个站共享 100 Mbit/s。每个用户占有的平均带宽只有 10 Mbit/s。
(3) 每一个站独占 10 Mbit/s。
使用以太网交换机来连接主机,虽然在每个接口到主机的带宽还是 10 Mbit/s,但由于一个用户在通信时是独占而不是和其他网络用户共享传输媒体的带宽,因此对于拥有 10 个接口的交换机的总容量则为 100 Mbit/s。这正是交换机的最大优点。
3-28 10 Mbit/s 以太网升级到 100 Mbit/s、1 Gbit/s 和 10 Gbit/s 时,都需要解决哪些技术问题?为什么以太网能够在发展的过程中海汰掉自己的竞争对手,并使自己的应用范围从局城网一直扩展到城城网和广城网?
现在以太网的工作范围已经从局域网 (校园网、企业网) 扩大到城域网和广域网,从而实现了端到端的以太网传输。这种工作方式的好处是:
以太网从 10 Mbit/s 到 10 Gbit/s 甚至到 100 Gbit/s 的演进,证明了以太网是:
3-29 以太网交换机有何特点?用它怎样组成虚拟局城网?
以太网交换机的特点:
虽然许多以太网交换机对收到的帧采用存储转发方式进行转发,但也有一些交换机采用直通 (cut-through) 的交换方式。
直通交换不必把整个数据帧先缓存后再进行处理,而是在接收数据帧的同时就立即按数据帧的目的 MAC 地址决定该帧的转发接口,因而提高了帧的转发速度。
直通交换的一个缺点是它不检查差错就直接将帧转发出去,因此有可能也将一些无效帧转发给其他的站。
现在有的厂商已生产出能支持两种交换方式的以太网交换机。
利用以太网交换机可以很方便地实现虚拟局域网 VLAN (Virtual LAN)。在 IEEE 802.1Q 标准中,对虚拟局域网 VLAN 是这样定义的:
虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网。
上面 10 台计算机分配在三个楼层中,构成了三个局域网,即:
LAN1: (A1, A2, B1, C1),LAN2: (A3, B2, C2),LAN3: (A4, B3, C3)
但这 10 个用户划分为三个工作组,也就是说划分为三个 VLAN。即:
VLAN1: (A1, A2, A3, A4),VLAN2: (B1, B2, B3),VLAN3: (C1, C2, C3)。
当 B1 向工作组内成员发送数据时,计算机 B2 和 B3 将会收到广播的信息,计算机 A1,A2 和 C1 不会收到广播信息。以太网交换机不向虚拟局域网以外的计算机传送 B1 的广播信息。这样,VLAN 限制了接收广播信息的计算机数,使得网络不会因传播过多的广播信息 (即“广播风暴”) 而引起性能恶化。
当数据链路层检测到 MAC 帧的源地址字段后面的两个字节的值是 0x8100 时,就知道现在插入了 4 字节的 VLAN 标记。在后面的两个字节中,前 3 位是用户优先级字段,接着的一位是规范格式指示符 CFI (Canonical Format Indicator),最后的 12 位是该虚拟局域网 VLAN 标识符 VID (VLAN ID),它唯一地标志了这个以太网属于哪一个 VLAN。
3-30 在图3-30中,某学院的以太网交换机有三个接口分别和学院三个系的以太网相连,另外三个接口分别和电子邮件服务器、万维网服务器以及一个连接互联网的路由器相连。图中的 A,B 和 C 都是 100 Mbit/s 以太网交换机。假定所有的链路的速率都是 100 Mbit/s,并且图中的 9 台主机中的任何一个都可以和任何一个服务器或主机通信。试计算这 9 台主机和两个服务器产生的总的吞吐量的最大值,为什么?
解:最大吞吐量为 1100 Mbit/s。三个系各有一台主机分别访问两个服务器和通过路由器上网。其他主机在系内通信。
使用以太网交换机来连接主机,每一个用户在通信时是独占而不是和其他网络用户共享传输媒体的带宽。
3-31 假定在图3-30中的所有链路的速率仍然为 100 Mbit/s,但三个系的以太网交换机都换成为 100 Mbit/s 的集线器。试计算这 9 台主机和两个服务器产生的总的吞吐量的最大值。为什么?
解:最大吞吐量为 500 Mbit/s。每个系是一个碰撞域。
使用集线器将主机连接起来,每个系就是一个碰撞域。碰撞域 (collision domain) 又称为冲突域,即在任一时刻,在每个碰撞域中只能有一个站在发送数据。
3-32 假定在图3-30中的所有链路的速率仍然为100 Mbit/s,但所有的以太网交换机都换成为 100 Mbit/s 的集线器。试计算这 9 台主机和两个服务器产生的总的吞吐量的最大值。为什么?
解:最大吞吐量为 100 Mbit/s。整个系统是一个碰撞域。
3-33 在图3-31中,以太网交换机有 6 个接口,分别接到 5 台主机和一个路由器。
在下面表中的“动作”一栏中,表示先后发送了 4 个帧。假定在开始时,以太网交换机的交换表是空的。试把该表中其他的栏目都填写完。
动作 | 交换表的状态 | 向哪些接口转发帧 | 说明 |
---|---|---|---|
A 发送帧给 D | 写入 (A, 1) | 向除接口 1 以外的所有接口广播这个帧 | 交换机收到帧后,先查找交换表,没有查到应从哪个接口转发这个帧 |
D 发送帧给 A | 写入 (D, 4) | 接口 1 | 交换机查找交换表,发现交换表中的 MAC 地址有 A |
E 发送帧给 A | 写入 (E, 5) | 接口 1 | 交换机查找交换表,发现交换表中的 MAC 地址有 A |
A 发送帧给 E | 不变 | 接口 5 | 交换机查找交换表,发现交换表中的 MAC 地址有 E |
以太网的自学习功能。
考虑到有时可能要在交换机的接口更换主机,或者主机要更换其网络适配器,这就需要更改交换表中的项目。为此,在交换表中的每个项目都设有一定的有效时间。过期的项目就自动被删除。
以太网交换机的这种自学习方法使得以太网交换机能够即插即用,不必人工进行配置,因此非常方便。
但有时为了增加网络的可靠性,在使用以太网交换机组网时,往往会增加一些冗余的链路。在这种情况下,自学习的过程就可能导致以太网帧在网络的某个环路中无限制地兜圈子。
为了解决这种兜圈子问题,IEEE的802.1D标准制定了一个生成树协议 STP (Spanning Tree Protocol)。其要点就是不改变网络的实际拓扑,但在逻辑上则切断某些链路,使得从一台主机到所有其他主机的路径是无环路的树状结构,从而消除了兜圈子现象。
3-34 有两台主机 A 和 B 接在 800 m 长的电缆线的两端,并在 t = 0 t = 0 t=0 时各自向对方发送一个帧,长度为 1500 bit (包括首部和前同步码)。假定在 A 和 B 之间有 4 个转发器,在转发帧时会产生 20 比特的时延。设传输速率为 100 Mbit/s,而 CSMA/CD 的退避时间是随机数 r 倍的争用期,争用期为 512 bit,在发生第一次碰撞后,在退避时 A 选择 r = 0 r = 0 r=0 而 B 选择 r = 1 r = 1 r=1。忽略发生碰撞后的人为干扰信号和帧间最小间隔。
(1) 设信号的传播速率是 2 × 1 0 8 2 \times 10^8 2×108 m/s。 试计算从 A 到 B (包括4个转发器) 的传播时延。
(2) 在什么时间 (以秒为单位) B 完全收到了 A 发送的帧?
(3) 现在假定只有 A 发送帧,帧长仍为 1500 bit,但 4 个转发器都用交换机来代替。交换机在进行存储转发时还要产生额外的 20 bit 的处理时延。在什么时间 (以秒为单位) B 完全收到了 A 发送的帧?
解:(1) 传播时延 T 1 = 800 m 2 × 1 0 8 m / s + 4 × 20 b i t 100 M b i t / s = 4.8 μ s T_1 = \frac{800 m}{2 \times 10^8 m/s} + 4 \times \frac{20 bit}{100 Mbit/s} = 4.8 \mu s T1=2×108m/s800m+4×100Mbit/s20bit=4.8μs。
(2) 发送时延 T 2 = 1500 b i t 100 M b i t / s = 15 μ s T_2 = \frac{1500 bit}{100 Mbit/s} = 15 \mu s T2=100Mbit/s1500bit=15μs。
当 t = 4.8 μ s t = 4.8 \mu s t=4.8μs 时,A 和 B 检测到碰撞,此时 A 和 B 立即停止发送数据。但在此时之前,A 和 B 发送的最后一个比特还在传播,信道被占用,占用时间为 T 1 = 4.8 μ s T_1 = 4.8 \mu s T1=4.8μs。
当 t = 9.6 μ s t = 9.6 \mu s t=9.6μs 时,A 和 B 碰撞前发送的最后一个比特到达对方。此时,信道会被检测为空闲。忽略发生碰撞后的人为干扰信号和帧间最小间隔,A 站开始发送数据。
争用期为 512 b i t 100 M b i t / s = 5.12 μ s < 9.6 μ s \frac{512 bit}{100 Mbit/s} = 5.12 \mu s < 9.6 \mu s 100Mbit/s512bit=5.12μs<9.6μs,B 在退避时间后检测到信道忙,故没有在退避时间后发送帧。
所以,B 完全收到了 A 发送的帧的时间为 9.6 μ s + T 1 + T 2 = 29.4 μ s 9.6 \mu s + T_1 + T_2 = 29.4 \mu s 9.6μs+T1+T2=29.4μs。
(3) 使用交换机不会发生碰撞。
总发送时延: 5 × T 2 = 75 μ s 5 \times T_2 = 75 \mu s 5×T2=75μs。
传播时延: 800 m 2 × 1 0 8 m / s = 4 μ s \frac{800 m}{2 \times 10^8 m/s} = 4 \mu s 2×108m/s800m=4μs。
处理时延: 4 × 20 b i t 100 M b i t / s = 0.8 μ s 4 \times \frac{20 bit}{100 Mbit/s} = 0.8 \mu s 4×100Mbit/s20bit=0.8μs。
将上述时延相加,得所求时间为 79.8 μ s 79.8 \mu s 79.8μs。
【计算机网络 (谢希仁) 习题题解】目录