【计算机网络 (谢希仁) 习题题解】第3章 数据链路层


本章最重要的内容是:

  • 数据链路层的点对点信道和广播信道的特点,以及这两种信道所使用的协议(PPP 协议以及 CSMA/CD 协议)的特点。
  • 数据链路层的三个基本问题:封装成帧、透明传输和差错检测。
  • 以太网 MAC 层的硬件地址。
  • 适配器、转发器、集线器、网桥、以太网交换机的作用以及使用场合。

3-01 数据链路(即逻辑链路)与链路(即物理链路)有何区别?“电路接通了”与“数据链路接通了”的区别何在?

  • 链路 (link,即物理链路):从一个结点到相邻结点的一段物理线路(有线或无线),中间没有任何其他的交换结点。
  • 数据链路 (即逻辑链路):物理链路加上必要的通信协议。
    当需要在一条线路上传送数据时,除了必须有一条数据线路外,还必须有一些必要的通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。实现这些协议的最常用方法是使用网络适配器 (包括硬件和软件)。

3-02 数据链路层中的链路控制包括哪些功能?试讨论数据链路层做成可靠的链路层有哪些优点和缺点。

数据链路层中的链路控制包括哪些功能:

  • 链路管理
  • 帧定界
  • 流量控制
  • 差错控制
  • 将数据和控制信息区分开
  • 透明传输
  • 寻址

数据链路层做成可靠的链路层的优点和缺点取决于所应用的环境:

  • 对于干扰严重的信道,可靠的链路层可以将重传范围约束在局部链路,防止全网络的传输效率受损
  • 对于优质信道,采用可靠的链路层会增大资源开销,影响传输效率。

3-03 网络适配器的作用是什么?网络适配器工作在哪一层?

计算机与外界局域网的连接是通过通信适配器 (adapter) 进行的。

适配器本来是在主机箱内插入的一块网络接口板 (或是在笔电中插入一块PCMCIA卡——个人计算机存储器卡接口适配器)。这种接口板又称为网络接口卡 NIC (Network Interface Card) 或简称为网卡。现在计算机主板上都已嵌入这种适配器,不再使用单独的网卡,故使用适配器术语。

网络适配器的功能:

  • 适配器的一个重要功能:要进行数据串行传输和并行传输的转换。
    适配器和局域网之间的通信是通过电缆或双绞线以串行传输方式进行的。
    适配器和计算机之间的通信是通过计算机主板上的I/O总线以并行传输方式进行的。
  • 适配器中必须装有对数据进行缓存的存储芯片。
    因为网络上的数据率和计算机总线上的数据率并不相同。
  • 在主板上插入适配器时,必须在计算机操作系统中安装管理该适配器的设备驱动程序。
    这个驱动程序以后会告诉适配器,应当从存储器的什么位置上把多长的数据块发送到局域网,或者应当在存储器的什么位置上把局域网传送过来的数据存储下列。
  • 适配器还要能够实现以太网协议。

适配器所实现的功能包含了数据链路层和物理层这两个层次的功能。
【计算机网络 (谢希仁) 习题题解】第3章 数据链路层_第1张图片
计算机通过适配器和局域网进行通信:

  • 适配器在接收和发送各种帧时,不适应计算机的 CPU。当适配器收到有差错的帧时,就把这个帧直接丢弃而不必通知计算机。
  • 当适配器收到正确的帧时,它使用中断来通知该计算机,并交付协议栈中的网络层。
  • 当计算机要发送 IP 数据报时,由协议栈把 IP 数据报向下交给适配器,组装成帧后发送到局域网。

注意,计算机的硬件地址在适配器的 ROM 中,计算机的软件地址——IP 地址在计算机的存储器中。


3-04 数据链路层的三个基本问题(封装成帧、透明传输和差错检测)为什么都必须加以解决?

  • 封装成帧是分组交换的必然要求。
    分组交换的一个重要概念就是:所有在互联网上传送的数据都是以分组(即IP数据报)为传送单位。
    网络层的IP数据报传送到数据链路层就成为帧的数据部分。
    封装成帧(framing)是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
    首部和尾部的一个重要作用就是进行帧定界 (即确定帧的界限)。
  • 透明传输避免消息符号与帧定界符号相混淆。
    由于帧的开始和结束的标记使用专门指明的控制字符,因此,所传输的数据中的任何 8 比特的组合一定不允许和用作帧定界的控制字符的比特编码一样,否则就会出现帧定界的错误。
    “在数据链路层透明传送数据”表示无论什么样的比特组合的数据,都能按照原样没有差错地通过这个数据链路层。或者说,数据链路层对这些数据来说是透明的。
  • 差错检测防止出现差错的无效数据帧浪费后续路由上的传输和处理资源。

3-05 如果在数据链路层不进行封装成帧,会发生什么问题?

  • 无法区分分组与分组
  • 无法确定分组的控制域和数据域
  • 无法将差错更正的范围限定在确切的局部

3-06 PPP协议的主要特点是什么?为什么PPP不使用帧的编号?PPP适用于什么情况?为什么PPP协议不能使数据链路层实现可靠传输?

PPP协议应满足的需求:

  • 简单。对数据链路层的帧,不需要纠错,不需要序号,也不需要流量控制。
    简单的设计使协议在实现时不容易出错,从而使不同厂商在协议的不同实现上的互操作性提高了
    接收方每收到一个帧,就进行CRC检验。若正确,收下;否则丢弃,其他什么也不做。
  • 封装成帧。PPP协议必须规定特殊的字符作为帧定界符
  • 透明性。PPP协议必须保证数据传输的透明性。
  • 多种网络层协议。PPP协议必须能够在同一条物理链路上同时支持多种网络层协议的运行。
  • 多种类型链路。PPP必须能够在多种类型的链路上运行。
  • 差错检测 (error detection)。PPP协议必须能够对接收端收到的帧进行检测,并立即丢弃有差错的帧
  • 检测连接状态。PPP协议必须具有一种能够及时(不超过几分钟)自动检测出链路是否处于正常工作状态。
  • 最大传送单元。PPP协议必须对每种类型的点对点链路设置最大传送单元 MTU (Maximum Transfer Unit) 的标准默认值。注意,MTU是数据链路层的帧可以载荷的数据部分的最大长度,而不是帧的总长度
  • 网络层地址协商。PPP协议必须提供一种机制使通信的两个网络层的实体能够通过协商知道或能够配置彼此的网络层地址。
  • 数据压缩协商。PPP协议必须提供一种方法来协商使用数据压缩算法。

在TCP/IP协议族中,可靠传输由传输层的TCP协议负责,因此数据链路层的PPP协议不需要进行纠错,不需要设置序号,也不需要进行流量控制。

PPP协议只支持点对点的链路通信。此外,PPP协议只支持全双工链路。

PPP适用于线路质量不太差的情况下。

PPP没有编号和确认机制。

PPP 协议有 3 个组成部分:

  • 一个将 IP 数据报封装到串行链路的方法。PPP 既支持异步链路 (无奇偶检验的 8 比特数据),也支持面向比特的同步链路。IP 数据报在 PPP 帧中就是其信息部分。
  • 一个用来建立、配置和测试数据链路连接的链路控制协议 LCP (Link Control Protocol)。通信的双方可协商一些选项。在 RFC 1661 中定义了 11 种类型的 LCP 分组。
  • 一套网络控制协议 NCP(Network Control Protocol),其中的每一个协议支持不同的网络层协议,如 IP、OSI 的网络层、DECnet,以及 AppleTalk 等。

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) 的原理:

  • 在发送端,先把数据划分为组,假定每组 k k k 个比特。CRC运算是在待传送数据 M M M 的后面添加供差错检测用的 n n n冗余码,然后构成一个帧发送出去,一共发送 ( k + n ) (k+n) (k+n) 位。
  • 冗余码计算方法:
    用二进制的模 2 运算进行 2 n 2^n 2n M M M 的运算,这相当于在 M M M 后面添加 n n n 个0。得到的 ( k + n ) (k+n) (k+n) 位的数除以收发双方事先商定的长度为 ( n + 1 ) (n+1) (n+1) 除数 P P P,得出商是 Q Q Q余数 R R R ( n n n位)。这个余数 R R R 就作为冗余码拼接在 M M M 后发送出去。
    这种为了进行检错而添加的冗余码常称为帧检验序列 FCS (Frame Check Sequence)。
    注:模2运算进行加法时不进位。例,1111+1010=0101。减法和加法一样,按加法规则计算。
  • 在接收端把接收到的数据以帧为单位进行 CRC 检验:把收到的每一个帧都除以同样的除数 P P P (模2运算),然后检查得到的余数 R R R
  • 在接收端对收到的每一帧经过 CRC 检验后,
    ①若得出的余数 R = 0 R=0 R=0,则判定这个帧没有差错,就接受 (accept)。如果出现误码,那么余数 R R R 仍等于 0 的概率是非常非常小的。
    ②若 R ≠ 0 R \ne 0 R=0,则判定这个帧有差错,就丢弃。但无法确定究竟是哪一位或哪几位出现了差错。

一种较方便的方法是用多项式来表示循环冗余检验过程。这个多项式成为生成多项式

对于本题,待传送数据 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

【计算机网络 (谢希仁) 习题题解】第3章 数据链路层_第2张图片
得到余数 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 检验,数据链路层的传输还不是可靠的传输。

所谓“可靠传输”就是:数据链路层的发送端发送什么,在接收端就收到什么。

传输差错可分为两大类:

  • 一类是比特差错,这个可以使用 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。试问真正的数据是什么(用十六进制写出)?

【计算机网络 (谢希仁) 习题题解】第3章 数据链路层_第3张图片
当信息字段中出现和标志字段一样的比特(0x7E)组合时,必须采取措施使这种比特组合不出现在信息字段中。

当PPP使用异步传输 (逐个字符地传送) 时,它把转义符定义为 0x7D,并使用字节填充,RFC1662规定了填充方法:

  • 把信息字段中出现的每一个 0x7E 字节转变成为2字节序列 (0x7D, 0x5E)。
  • 把信息字段中出现的每一个 0x7D 字节转变成为2字节序列 (0x7D, 0x5D)。
  • 若信息字段中出现ASCII码的控制字符(数值小于 0x20 的字符),则在该字符前加入一个 0x7D 字节,同时将该字符的编码加以改变。例如,把 0x03 转变为 (0x7D,0x23)。

接收端在收到数据后再进行与发送端字节填充相反的变换,可正确恢复出原来的信息。

故,本题的真正的数据是 7E FE 27 7D 7D 65 7E。


3-10 PPP协议使用同步传输技术传送比特串 0110111111111100。试问经过零比特填充后变成怎样的比特串?若接收端收到的PPP帧的数据部分是 0001110111110111110110,问删除发送端加入的零比特后变成怎样的比特串?

PPP协议用在 SONET/SDH 链路时,使用同步传输(一连串的比特连续传送)而不是异步传输(逐个字符地传送)。在这种情况下,PPP协议采用零比特填充方法来实现透明传输。

零比特填充的具体做法:

  • 在发送端,先扫描整个信息字段 (通常用硬件实现)。只要发现有 5 个连续 1,立即填入一个 0。因此经过这种零比特填充后的数据,就可以保证在信息字段中不会出现 6 个连续 1。
  • 接收端在收到一个帧时,先找到标志字段 F 以确定帧的边界,接着再用硬件对其中的比特流进行扫描。每当发现 5 个连续 1 时,就把这 5 个连续 1 后的一个 0 删除,以还原成原来的信息比特流。
  • 这样就保证了透明传输:在所传送的数据比特流中可以传送任意组合的比特流,而不会引起对帧边界的错误判断。

【计算机网络 (谢希仁) 习题题解】第3章 数据链路层_第4张图片

本题中,PPP协议使用同步传输技术传送比特串 0110111111111100,经过零比特填充后变成比特串 011011111011111000。
若接收端收到的PPP帧的数据部分是 0001110111110111110110,删除发送端加入的零比特后变成比特串 00011101111111111110。


3-11 试分别讨论以下各种情况在什么条件下是透明传输,在什么条件下不是透明传输。(提示:请弄清什么是“透明传输”,然后考虑能否满足其条件。)
(1) 普通的电话通信。
(2) 互联网提供的电子邮件服务。

:(1) 由于电话系统的带宽有限,而且还有失真,因此电话机两端的输入声波和输出声波是有差异的。在“传送声波”这个意义上讲,普通的电话通信并不是透明传输。但对“听懂说话的意思”来讲,则基本上是透明传输。但也有时个别语音会听错,如单个的数字 1 和 7。这就不是透明传输。

(2) 一般说来,电子邮件是透明传输。但有时不是。因为国外有些邮件服务器为了防止垃圾邮件,对来自某些域名的邮件一律阻拦掉。这就不是透明传输。有些邮件的附件在收件人的电脑上打不开。这也不是透明传输。


3-12 PPP协议的工作状态有哪几种?当用户要使用 PPP 协议和 ISP 建立连接进行通信时,需要建立哪几种连接?每一种连接解决什么问题?

【计算机网络 (谢希仁) 习题题解】第3章 数据链路层_第5张图片
PPP协议的工作状态有 6 种:

  • 链路静止 (Link Dead) 状态。PPP链路的起始和终止状态,这时在用户个人电脑和 ISP 的路由器之间并不存在物理层的连接。
  • 链路建立 (Link Establish) 状态。当用户个人电脑通过调制解调器呼叫路由器时 (通常是在屏幕上用鼠标点击一个连接按钮),路由器就能够检测到调制解调器发出的载波信号。在双发建立了物理层连接后,PPP就进入“链路建立”状态,其目的是建立链路层的 LCP 连接。
    这时 LCP 开始协商一些配置选项,即发送 LCP 的配置请求帧 (Configure-Request)。这是个 PPP 帧,其协议字段置为 LCP 对应的代码,信息字段包含特定的配置请求。
    链路的另一端可以发送以下几种响应中的一种:①配置确认帧 (Configure-Ack),所有选项都接受;②配置否认帧 (Configure-Nak),所有选项都理解但不能接受;③配置拒绝帧 (Configure-Reject),选项有的无法识别或不能接受,需要协商。
    LCP 配置选项包括链路上的最大帧长、所使用的鉴别协议 (authentication protocol) 的规约,以及不使用 PPP 帧中的地址和控制字段 (这两个字段没有任何信息量)。
  • 鉴别 (Authenticate) 状态。协商结束后双方建立了 LCP 链路,进入“鉴别”状态。
    在这一状态,只允许传送 LCP 协议的分组、鉴别协议的分组以及监测链路质量的分组。
    若使用口令鉴别协议 PAP (Password Authentication Protocol),则需要发起通信的一方发送身份标识符和口令。
    若需要有更好的安全性,则可使用更加复杂的口令握手鉴别协议 CHAP (Challenge-Handshake Authentication Protocol)。
  • 网络层协议 (Network-Layer Protocol) 状态。鉴别成功,进入此状态。在此状态,PPP 链路的两端的 NCP 根据网络层的不同协议互相交换网络层特定的网络控制分组。
    PPP 协议的两端的网络层可以允许不同的网络层协议,但仍然可使用同一个 PPP 协议进行通信。
    如果在 PPP 链路上运行的是 IP 协议,则对 PPP 链路的每一端配置的 IP 协议模块时就要使用 NCP 中支持 IP 的协议——IP 控制协议 IPCP (IP Control Protocol)。
  • 链路打开 (Link Open) 状态。当网络层配置完毕后,链路就进入可进行数据通信的“链路打开”状态。链路的两个 PPP 端点可以彼此向对方发送分组。两个 PPP 端点还可发送回送请求 LCP 分组 (Echo-Request) 和 回送回答 LCP 分组 (Echo-Reply),以检查链路的状态。
  • 链路终止 (Link Terminate) 状态。鉴别失败,进入此状态。
    数据传输结束后,可以有链路的一端发出终止请求 LCP 分组 (Terminate-Request) 请求终止链路连接,在收到对方发来的终止确认 LCP 分组 (Terminate-Ack) 后,转到“链路终止”状态。
    若链路出现故障,也会从“链路打开”状态转到“链路终止”状态。
    当调制解调器的载波停止后,则回到“链路静止”状态。

从设备之间无链路开始,到先建立物理链路,再建立 LCP链路。经过鉴别后再建立 NCP 链路,然后才能交换数据。
由此可见,PPP 协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容。


3-13 局域网的主要特点是什么?为什么局域网采用广播通信方式而广域网不采用呢?

局域网的主要特点:网络为一个单位所拥有,且地理范围和站点数目均有限

局域网内的机器是连接到同一条物理线路,所有主机发数据都经过这条链路,通信方式是放到公用链路,发送给所有主机,接收端对比地址,接收发往自己的数据,丢弃其他数据。如果是广域网,地理空间太大,有更多主机构成,降低网络使用率,严重消耗主机处理能力,可能会导致网无法运行。同时也造成了数据无效流动,极易产生网络风暴。


3-14 常用的局域网的网络拓扑有哪些种类?现在最流行的是哪种结构?为什么早期的以太网选择总线拓扑结构而不使用星形拓扑结构,但现在却改为使用星形拓扑结构?

常用的局域网的网络拓扑种类:星形网,环形网,总线网。
由于集线器 (hub) 的出现和双绞线大量用于局域网中,星形以太网以及多级星形结构的以太网获得了非常广泛的应用。

【计算机网络 (谢希仁) 习题题解】第3章 数据链路层_第6张图片
当时很可靠的星形拓扑结构较贵。人们都认为无源的总线结构更加可靠。但实践证明,连接有大量站点的总线式以太网很容易出现故障,而现在专用的 ASIC 芯片的使用可以将星形结构的集线器做得非常可靠。因此现在的以太网一般都使用星形结构的拓扑。

随着以太网上站点数目的增多,使得总线结构以太网的可靠性下降。与此同时,大规模集成电路以及专用芯片的发展,使得星形结构的以太网交换机可以做得既便宜又可靠。在这种情况下,采用以太网交换机的星形结构又成为以太网的首选拓扑。

总线以太网使用 CSMA/CD 协议,以半双工方式工作。但以太网交换机不使用共享总线,没有碰撞问题,因此不使用 CSMA/CD 协议,而是以全双工方式工作。仍然采用以太网的帧结构。


3-15 什么叫做传统以太网?以太网有哪两个主要标准?

由于以太网的数据率已演进到每秒吉比特或甚至高达 100 吉比特,因此通常就用 “传统以太网”来表示最早流行的 10 Mbit/s 速率的以太网。

以太网的两个标准:

  • IEEE 802.3 标准。IEEE 802 委员会的 802.3 工作组于 1983 年制定的第一个 IEEE 的以太网标准。
  • DIX Ethernet V2 标准。

3-16 数据率为 10 Mbit/s 的以太网在物理媒体上的码元传输速率是多少码元/秒?

为了通信简便,以太网发送的数据都使用曼彻斯特 (Manchester) 编码的信号。在曼彻斯特编码的每个码元的正中间一定有一次电压的转换,接收端利用这种电压的转换很方便地把位同步信号提取出来。但它也有缺点,就是它所占的频带宽度比原始的基带信号增加了一倍,因为每秒传送的码元数加倍了。
【计算机网络 (谢希仁) 习题题解】第3章 数据链路层_第7张图片
故,数据率为 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 相比优缺点如何?

共享信道要着重考虑的一个问题是如何使众多用户能够合理而方便地共享通信媒体资源。这在技术上有两种方法:

  • 静态划分信道。如频分复用、时分复用、波分复用、码分复用等。用户只要分配到了信道就不会和其他用户发生冲突。但这种划分信道的方法代价较高,不适合于局域网使用。
  • 动态媒体接入控制。又称为多点接入(multiple access),其特点是信道并非在用户通信时固定分配给用户。这里又分为两类:
    随机接入。特点是所有的用户可随机地发送信息。但如果恰巧有多个用户在同一时刻发生信息,那么在共享媒体上要产生碰撞 (即发生了冲突),使这些用户的发送都失败。因此,必须有解决碰撞的网络协议。
    ②受控接入。特点是用户不能随机地发生信息而必须服从一定的控制。这类典型代表有分散控制的令牌环局域网和集中控制的多点线路探寻 (polling),或称轮询。目前在局域网中使用的较少。

从网络上负载轻重、灵活性以及网络效率等方面进行比较。
网络上的负荷较轻时,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

【计算机网络 (谢希仁) 习题题解】第3章 数据链路层_第8张图片
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×106s
帧的发送时延则至少为 2 τ = 1 0 − 5 s 2\tau = 10^{-5} s 2τ=105s
最短帧长为 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×105s=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) 算法来确定碰撞后重传的时机。为了使各站进行重传时再次发生冲突的概率减小,具体的退避算法如下:

  • 协议规定了基本退避时间为争用期 2 τ 2\tau 2τ,具体的争用期时间是 51.2 μ s \mu s μs。对于 10 Mbit/s 以太网,在争用期内可发送 512 bit。也可以说争用期是 512 比特时间
  • 从离散的整数集合 [ 0 , 1 , . . . , ( 2 k − 1 ) ] [0,1,...,(2^k-1)] [0,1,...,(2k1)] 中随机取出一个数,记为 r r r。重传应推后的时间是 r r r 倍的争用期。其中 k = min ⁡ [ 重 传 次 数 , 10 ] k = \min[重传次数, 10] k=min[,10]
  • 当重传达16次仍不能成功时,则丢弃该帧,并向高层报告。

本题中,对于 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×105s,乘以 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×106s,乘以 r r r,得到时间为 5.12 μ s 5.12 \mu s 5.12μs


3-23 公式(3-3)表示,以太网的极限信道利用率与连接在以太网上的站点数无关。能否由此推论出:以太网的利用率也与连接在以太网的站点数无关?请说明你的理由。

【计算机网络 (谢希仁) 习题题解】第3章 数据链路层_第9张图片
成功发送一个帧需要占用信道的时间是 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 帧前面还要增加若干字节的前同步码和帧定界符。)
【计算机网络 (谢希仁) 习题题解】第3章 数据链路层_第10张图片

以太网所容许的最短的帧长度为 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 协议的要点:

  • (1) 准备发送:适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中。但在发送之前,必须先检测信道
  • (2) 检测信道:若检测到信道忙,则应不停地检测,一直等待信道转为空闲。若检测到信道空闲,并在 96 比特时间内信道保持空闲 (保证了帧间最小间隔),就发送这个帧。
  • (3) 在发送过程中仍不停地检测信道,即网络适配器要边发送边监听。这里只有两种可能性:
    ①发送成功:在争用期内一直未检测到碰撞。这个帧肯定能够发送成功。发送完毕后,其他什么也不做。然后回到 (1)。
    ②发送失败:在争用期内检测到碰撞。这时立即停止发送数据,按规定发送人为干扰信号。适配器接着执行指数退避算法,等待 r r r 倍 512 比特时间后,返回步骤 (2),继续检测信道。若重传达 16 次仍不能成功,则停止重传而向上报错。

由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 以太网交换机。

集线器的一些特点如下:

  • 从表面上看,使用集线器的局域网在物理上是一个星形网,但由于集线器使用电子器件来模拟实际电缆线的工作,因此整个系统仍像一个传统以太网那样运行。也就是说,使用集线器的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线,使用的还是CSMA/CD协议 (更具体些说,是各站中的适配器执行 CSMA/CD 协议)。网络中的各站必须竞争对传输媒体的控制,在同一时刻至多只允许一个站发送数据
  • 一个集线器有多个接口,每个接口通过RJ-45插头用两对双绞线与一台计算机上的适配器相连。因此,一个集线器很像一个多接口的转发器
  • 集线器工作在物理层,它的每个接口仅仅简单地转发比特,不进行碰撞检测。若两个接口同时有信号输入 (即发送碰撞),那么所有的接口都将收不到正确的帧。
  • 集线器采用了专门的芯片,进行自适应串音回波抵消。这样可使接口转发出去的较强信号不致对该接口接收到的较弱信号产生干扰 (这种干扰即近端串音)。每个比特在转发之前还有进行再生整形并重新定时。

(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 时,都需要解决哪些技术问题?为什么以太网能够在发展的过程中海汰掉自己的竞争对手,并使自己的应用范围从局城网一直扩展到城城网和广城网?

  • 100BASE-T 是在双绞线上传送 100 Mbit/s 基带信号的星形拓扑以太网,仍使用 IEEE 802.3 的 CSMA/CD 协议,它又称为快速以太网 (Fase Ethernet)。
    用户只要使用 100 Mbit 的适配器和 100 Mbit/s 的集线器或交换机,就可很方便地由 10BASE-T 以太网升级到 100 Mbit/s,而不必改变网络的拓扑结构。
    1995年 IEEE 已把 100BASE-T 的快速以太网定为正式标准,其代号为 IEEE 802.3u。然而 IEEE 802.3u 的标准未包括对同轴电缆的支持。这意味着想从细缆以太网升级到快速以太网的用户必须重新布线。因此,现在 10/100 Mbit/s 以太网都使用无屏蔽双绞线布线。
    以太网有一个重要的参数 a a a,它必须保持为很小的数值。为了保持参数 a a a 不变,可使 τ \tau τ 与发送速率的乘积不变。在帧长一定的条件下,若数据率提高到 10 倍,可把网络电缆长度减小到原有数值的十分之一。
  • 吉比特以太网的标准 IEEE 802.3z 有以下几个特点:
    (1) 允许在 1 Gbit/s 下以全双工和半双工两种方式工作。
    (2) 使用 IEEE 802.3 协议规定的帧格式。
    (3) 在半双工方式下使用 CSMA/CD 协议,而在全双工方式不使用 CSMA/CD 协议。
    (4) 与 10BASE-T 和 100BASE-T 技术向后兼容。
    吉比特以太网的物理层使用两种成熟的技术:一种来自现有的以太网,另一种则是美国国家标准协会 ANSI 制定的光纤通道 FC (Fibre Channel)。
    吉比特以太网工作在半双工方式时,必须进行碰撞检测。为了使参数 a a a 保持为较小的数值,吉比特以太网仍然保持一个网段的最大长度为 100 m,但采用了载波延伸 (carrier extension) 的方法,使最短帧长仍为 64 字节 (保持兼容性),同时将争用期增大为 512 字节。当原来仅 64 字节长的短帧填充到 512 字节时,所填充的 448 字节就造成了很大的开销。
    为此,吉比特以太网还增加了一种功能称为分组突发 (packet bursting)。这就是当很多短帧要发送时,第一个短帧采用上面所说的载波延伸的方法进行填充。但随后的一些短帧则可一个接一个地发送,它们之间只需留有必要的帧间最小间隔即可。这样就形成一串分组的突发,直到达到 1500 字节或稍多一些为止。
  • 10吉比特以太网 (10GE) 并非把吉比特以太网的速率简单地提高到 10 倍,因为还有许多技术上的问题要解决。
    10GE 的帧格式与 10 Mbit/s,100 Mbit/s 和 1 Gbit/s 以太网的帧格式完全相同,并保留了 802.3 标准规定的以太网最小帧长和最大帧长
    10GE 只工作在全双工方式,因此不存在争用问题,当然也不使用 CSMA/CD 协议。这使得 10GE 的传输距离大大提高了 (因为不再受必须进行碰撞检测的限制)。

现在以太网的工作范围已经从局域网 (校园网、企业网) 扩大到城域网和广域网,从而实现了端到端的以太网传输。这种工作方式的好处是:

  • 以太网是一种经过实践证明的成熟技术,无论是 ISP 还是端用户都很愿意使用以太网。
  • 以太网的互操作性很好,不同厂商生产的以太网都能可靠地进行互操作。
  • 在广域网中使用以太网时,其价格大约只有同步光纤网 SONET 的五分之一和异步传递方式 ATM 的十分之一。以太网能够适应多种传输媒体,如铜缆、双绞线以及各种光缆。这使具有不同传输媒体的用户在进行通信时不必重新布线。
  • 端到端的以太网连接使帧的格式全都是以太网的格式,而不需要再进行帧的格式转换,这简化了操作和管理。

以太网从 10 Mbit/s 到 10 Gbit/s 甚至到 100 Gbit/s 的演进,证明了以太网是:

  • 可扩展的 (速率从 10 Mbit/s 到 100 Gbit/s)。
  • 灵活的 (多种媒体、全/半双工、共享/交换)。
  • 易于安装。
  • 稳健性好。

3-29 以太网交换机有何特点?用它怎样组成虚拟局城网?

以太网交换机的特点:

  • 以太网交换机实质上就是一个多接口的网桥,通常有十几个或更多的接口,和工作在物理层的转发器、集线器有很大的差别。以太网交换机的每个接口都直接与一个单台主机或另一个以太网交换机相连,并且一般都工作在全双工方式。
  • 以太网交换机具有并行性,即能同时连通多对接口,使多对主机能同时通信 (而网桥只能一次分析和转发一个帧)。相互通信的主机都是独占传输媒体,无碰撞地传输数据
  • 以太网交换机的接口有存储器,能在输出端口繁忙时把到来的帧进行缓存。
  • 以太网交换机是一种即插即用设备,其内部的帧交换表 (又称为地址表) 是通过自学习算法自动地逐渐建立起来的。以太网交换机由于使用了专用的交换结构芯片,用硬件转发,其转发速率要比使用软件转发的网桥快很多。
  • 以太网交换机的性能远超过普通的集线器,而且价格并不贵,这就使工作在物理层的集线器逐渐地退出了市场。从共享总线以太网到交换式以太网时,所有接入设备的软件和硬件、适配器等都不需要作任何改动。
  • 以太网交换机一般都具有多种速率的接口。

虽然许多以太网交换机对收到的帧采用存储转发方式进行转发,但也有一些交换机采用直通 (cut-through) 的交换方式。
直通交换不必把整个数据帧先缓存后再进行处理,而是在接收数据帧的同时就立即按数据帧的目的 MAC 地址决定该帧的转发接口,因而提高了帧的转发速度。
直通交换的一个缺点是它不检查差错就直接将帧转发出去,因此有可能也将一些无效帧转发给其他的站。
现在有的厂商已生产出能支持两种交换方式的以太网交换机。

利用以太网交换机可以很方便地实现虚拟局域网 VLAN (Virtual LAN)。在 IEEE 802.1Q 标准中,对虚拟局域网 VLAN 是这样定义的:

  • 虚拟局域网 VLAN 是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的计算机属于哪一个 VLAN。

虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网。
【计算机网络 (谢希仁) 习题题解】第3章 数据链路层_第11张图片
上面 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 限制了接收广播信息的计算机数,使得网络不会因传播过多的广播信息 (即“广播风暴”) 而引起性能恶化。

【计算机网络 (谢希仁) 习题题解】第3章 数据链路层_第12张图片
当数据链路层检测到 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 台主机和两个服务器产生的总的吞吐量的最大值,为什么?
【计算机网络 (谢希仁) 习题题解】第3章 数据链路层_第13张图片

:最大吞吐量为 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 台主机和一个路由器。
【计算机网络 (谢希仁) 习题题解】第3章 数据链路层_第14张图片
在下面表中的“动作”一栏中,表示先后发送了 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


【计算机网络 (谢希仁) 习题题解】目录

你可能感兴趣的:(计算机网络,以太网,局域网,网络,计算机网络)