1、常见问题目录第 1 章 概述问题 1-1:“ 主机”和“计算机”一样不一样?问题 1-2:能否说:“电路交换和面向连接是等同的,而分组交换和无连接是等同的”?问题 1-3:因特网使用的 IP 协议是无连接的,因此其传输是不可靠的。这样容易使人们感到因特网很不可靠。那么为什么当初不把因特网的传输设计成为可靠的?问题 1-4:在具有五层协议的体系结构中,如果下面的一层使用面向连接服务或无连接服务,那么在上面的一层是否也必须使用同样性质的服务呢?或者说,是否我们可以在各层任意使用面向连接服务或无连接服务呢?问题 1-5:在运输层应根据什么原则来确定应当使用面向连接服务还是无连接服务?问题 1-6:在
2、数据链路层应根据什么原则来确定应当使用面向连接服务还是无连接服务?问题 1-7:TCP/IP 的体系结构到底是四层还是五层?问题 1-8:我们常说“分组交换” 。但又常说“路由器转发 IP 数据报”或“路由器转发帧”。究竟“分组”一词应当用在什么场合?问题 1-9:到商店购买可一个希捷公司生产的 80 G 的硬盘。安装到电脑上以后用 WINDOWS 的资源管理器发现在该磁盘的“属性” 中只有 74.5 G。是不是商店出了差错?问题 1-10:有这样的说法:习惯上,人们都将网络的“带宽”作为网络所能传送的“最高数据率”的同义语。这样的说法有何根据?问题 1-11:有时可听到人们将 “带宽为 10
3、 Mb/s 的以太网”说成是“速率(或速度)为 10 Mb/s 的以太网”或“10 兆速率(或速度)的以太网”。试问这样的说法正确否?问题 1-12:有人说,宽带信道相当于高速公路车道数目增多了,可以同时并行地跑更多数量的汽车。虽然汽车的时速并没有提高(这相当于比特在信道上的传播速率没有提高),但整个高速公路的运输能力却增多了,相当于能够传送更多数量的比特。这种比喻合适否?问题 1-13:如果用时延带宽积管道来比作传输链路,那么是否宽带链路对应的时延带宽积管道就比较宽呢?问题 1-14:网络的吞吐量与网络的时延有何关系?问题 1-15:什么是 “无缝的”、“透明的 ”和“虚拟的”?问题 1-1
4、6:在教材的 1.7.2 节提到协议有三个要素,即语法、语义和同步。语义是否已经包括了同步的意思?问题 1-17:为什么协议不能设计成 100%可靠的?问题 1-18:什么是因特网的摩尔定律?第 2 章 物理层问题 2-1:“ 规程”、“协议”和 “规约”都有何区别?问题 2-2:在许多文献中经常见到人们将“模拟”与“仿真”作为同义语。那么,“ 模拟信道”能否说成是“仿真信道”?问题 2-3:为什么电话信道的标准带宽是 3.1 kHz?问题 2-4:奈氏准则和香农公式的主要区别是什么?这两个公式对数据通信的意义是什么?问题 2-5:传输媒体是物理层吗?传输媒体和物理层的主要区别是什么?问题 2
5、-6:同步(synchronous)和异步(asynchronous)的区别是什么?问题 2-7:同步通信和异步通信的区别是什么?问题 2-8:位同步(比特同步)和帧同步的区别是什么?第 3 章 数据链路层问题 3-1:旧版的计算机网络认为数据链路层的任务是在两个相邻结点间的线路上无差错地传送以帧(frame) 为单位的数据。数据链路层可以把一条有可能出差错的实际链路,转变成为让网络层向下看起来好像是一条不出差错的链路。但最近新版的计算机网络(第 4 版和第 5 版)中对数据链路层的提法就改变了。数据链路层的传输不能让网络层向下看起来好像是一条不出差错的链路。到底哪一种说法是正确的?问题 3-
6、2:当数据链路层使用 PPP 协议或 CSMA/CD 协议时,既然不保证可靠传输,那么为什么对所传输的帧进行差错检验呢?问题 3-3:为什么旧的版本教材在数据链路层一章中讲授可靠传输,但现在新的版本教材则取消了可靠传输?问题 3-4:通过普通的电话用户线拨号上网时(使用调制解调器),试问一对用户线可容许多少个用户同时上网?问题 3-5:除了差错检测外,面向字符的数据链路层协议还必须解决哪些特殊的问题?问题 3-6:为什么计算机进行通信时发送缓存和接收缓存总是需要的?问题 3-7:以太网使用载波监听多点接入碰撞检测协议 CSMA/CD。频分复用 FDM 才使用载波。以太网有没有使用频分复用?问题
7、 3-8:在以太网中,不同的传输媒体会产生不同的传播时延吗?问题 3-9:在以太网中发生了碰撞是否说明这时出现了某种故障?问题 3-10:从什么地方可以查阅到以太网帧格式中的“类型”字段是怎样分配的?问题 3-11:是什么原因使以太网有一个最小帧长和最大帧长?问题 3-12:在双绞线以太网中,其连接导线只需要两对线:一对线用于发送,另一对线用于接收。但现在的标准是使用 RJ-45 连接器。这种连接器有 8 根针脚,一共可连接 4 对线。这是否有些浪费?是否可以不使用 RJ-45 而使用 RJ-11?问题 3-13:RJ-45 连接器对 8 根针脚的编号有什么规定?问题 3-14:剥开 5 类线
8、的外塑料保护套管就可以看见不同颜色的 4 对双绞线。哪一根线应当连接到哪一个针脚呢?问题 3-15:将 5 类线电缆与 RJ-45 插头连接起来的具体操作步骤是怎样的?问题 3-16:不用集线器或以太网交换机,能否将两台计算机用带有 RJ-45 插头的 5 类线电缆直接连接起来?问题 3-17:使用屏蔽双绞线电缆 STP 安装以太网是否可获得更好的效果?问题 3-18:如果将已有的 10 Mb/s 以太网升级到 100 Mb/s,试问原来使用的连接导线是否还能继续使用?问题 3-19:使用 5 类线的 10BASE-T 以太网的最大传输距离是 100 m。但听到有人说,他使用 10BASE-T
9、 以太网传送数据的距离达到 180 m。这可能吗?问题 3-20:粗缆以太网有一个单独的收发器。细缆以太网和双绞线以太网有没有收发器?如果有,都在什么地方?问题 3-21:什么叫做 “星形总线(star-shaped bus)”或“盒中总线(bus-in-a-box)”?问题 3-22:以太网的覆盖范围受限的一个原因是:如果站点之间的距离太大,那么由于信号传输时会衰减得很多因而无法对信号进行可靠的接收。试问:如果我们设法提高发送信号的功率,那么是否就可以提高以太网的通信距离?问题 3-23:一个大学能否就使用一个很大的局域网而不使用许多相互连接的较小的局域网?问题 3-24:一个 10 Mb/
10、s 以太网若工作在全双工状态,那么其数据率是发送和接收各为 5 Mb/s 还是发送和接收各为10 Mb/s?问题 3-25:一个单个的以太网上所使用的网桥数目有没有上限?问题 3-26:当我们在 PC 机插上以太网的适配器(网卡)后,是否还必须编制以太网所需的 MAC 协议的程序?问题 3-27:使用网络分析软件可以分析出所捕获到的每一个帧的首部中各个字段的值。但是有时却无法找出 LLC 帧首部的各字段的值。这是什么原因?问题 3-28:整个的 IEEE 802 委员会现在一共有多少个工作组?问题 3-29:在一些文献和教材中,可以见到关于以太网的“前同步码”(preamble)有两种不同的说
11、法。一种说法是:前同步码共 8 个字节。另一种说法是:前同步码共 7 个字节,而在前同步码后面还有一个字节的“帧开始定界符”SFD (Start-of-Frame Delimiter)。那么哪一种说法是正确的呢?问题 3-30:802.3 标准共包含有多少种协议?问题 3-31:在 802.3 标准中有没有对人为干扰信号(jamming signal)制定出标准呢?问题 3-32:在以太网中,有没有可能在发送了 512 bit(64 B)以后才发生碰撞?问题 3-33:在有的文献中会见到 runt 和 jabber 这两个名词,它们是什么意思?问题 3-34:当局域网刚刚问世时,总线形的以太网
12、被认为可靠性比星形结构的网络好。但现在以太网又回到了星形结构,使用集线器作为交换结点。那么以前的看法是否有些不正确?第 4 章 网络层问题 4-1:存在多种异构网络对不同网络之间的通信会造成一些麻烦。但为什么世界上还存在多种异构网络?问题 4-2:“IP 网关”和“IP 路由器” 是否为同义语?问题 4-3:“ 互连网 ”和“互联网”有没有区别?问题 4-4:在文献中有时会见到对等连网(peer-to-peer networking),这是什么意思?问题 4-5:在一个互联网中,能否使用一个很大的交换机(switch) 来代替互联网中很多的路由器?问题 4-6:为什么 IP 地址又称为“虚拟地
13、址 ”?问题 4-7:有的文献上使用“虚拟分组 ”(virtual packet)这一名词。虚拟分组是什么意思?问题 4-8:如下图所示。五个网络用四个路由器(每一个路由器有两个端口)互连起来。能否改变这种连接方法,使用一个具有五个端口的路由器将这五个网络互连起来?问题 4-9:当运行 PING 127.0.0.1 时,这个 IP 数据报将发送给谁?问题 4-10:网络前缀是指网络号字段(net-id)中前面的几个类别位还是指整个的网络号字段?问题 4-11:有的书(如 COME06)将 IP 地址分为前缀和后缀两大部分,它们和网络号字段及主机号字段有什么关系?问题 4-12:IP 地址中的前
14、缀和后缀最大的不同是什么?问题 4-13:IP 数据报中的数据部分的长度是可变的(即 IP 数据报不是定长的)。这样做有什么好处?问题 4-14:IP 地址中的各种类别的地址所拥有的地址数目的比例是怎样的?问题 4-15:在 IP 地址中,为什么使用最前面的一个或几个比特来表示地址的类别?问题 4-16:全 1 的 IP 地址是否是向整个因特网进行广播的一种地址?问题 4-17:IP 协议有分片的功能,但广域网中的分组则不必分片。这是为什么?问题 4-18:路由表中只给出到目的网络的下一跳路由器的 IP 地址,然后在下一个路由器的路由表中再给出再下一跳的路由器的 IP 地址,最后才能到达目的网
15、络进行直接交付。采用这样的方法有什么好处?问题 4-19:链路层广播和 IP 广播有何区别?问题 4-20:主机在接收一个广播帧或多播帧时其 CPU 所要做的事情有何区别?问题 4-21:有的路由器在和广域网相连时,在该路由器的广域网接口处并没有硬件地址,这怎样解释?问题 4-22:IP 地址和电话号码相比时有何异同之处?问题 4-23:“ 尽最大努力交付”(best effort delivery)都有哪些含义?问题 4-24:假定在一个局域网中计算机 A 发送 ARP 请求分组,希望找出计算机 B 的硬件地址。这时局域网上的所有计算机都能收到这个广播发送的 ARP 请求分组。试问这时由哪一
16、个计算机使用 ARP 响应分组将计算机 B 的硬件地址告诉计算机 A?问题 4-25:有人将 ARP 列入网络接口层,即认为 ARP 不在 IP 层,这样对吗?问题 4-26:一个主机要向另一个主机发送 IP 数据报。是否使用 ARP 就可以得到该目的主机的硬件地址,然后直接用这个硬件地址将 IP 数据报发送给目的主机?问题 4-27:在因特网中最常见的分组长度大约是多少个字节?问题 4-28:IP 数据报的最大长度是多少个字节?问题 4-29:IP 数据报的首部的最大长度是多少个字节?典型的 IP 数据报首部是多长?问题 4-30:IP 数据报在传输的过程中,其首部长度是否会发生变化?问题
17、4-31:当路由器利用 IP 数据报首部中的“首部检验和”字段检测出在传输过程中出现了差错时,就简单地将其丢弃。为什么不发送一个 ICMP 报文给源主机呢?问题 4-32:RIP 协议的好处是简单,但缺点是不够稳定。有的书上介绍“触发更新”、“分离范围”和“毒性逆转”。能否简单介绍一下它们的要点?问题 4-33:IP 数据报必须考虑最大传送单元 MTU (Maximum Transfer Unit)。这是指哪一层的最大传送单元?包括不包括首部或尾部等开销在内?问题 4-34:如果一个路由器要同时连接在一个以太网和一个 ATM 网络上,需要有什么样的硬件加到路由器上?问题 4-35:教材中的图
18、4-19 的 B 类网络 145.13.0.0 在划分子网时,所给出的三个子网号是怎样得出的?问题 4-36:“ 交换(switching)”的准确含义是什么?问题 4-37:为什么生存时间 TTL 原来用秒作为单位而现在 TTL 却表示数据报在网络中所能通过的路由器数的最大值?第 5 章 运输层问题 5-1:TCP 协议是面向连接的,但 TCP 使用的 IP 协议却是无连接的。这两种协议都有哪些主要的区别?问题 5-2:从通信的起点和终点来比较,TCP 和 IP 的不同点是什么?问题 5-3:端口(port)和套接字(socket)的区别是什么?问题 5-4:一个套接字能否同时与远地的两个套
19、接字相连?问题 5-5:数据链路层的 HDLC 协议和运输层的 TCP 协议都使用滑动窗口技术。从这方面来进行比较,数据链路层协议和运输层协议的主要区别是什么?问题 5-6:TCP 协议能够实现可靠的端到端传输。在数据链路层和网络层的传输还有没有必要来保证可靠传输呢?问题 5-7:在 TCP 报文段的首部中只有端口号而没有 IP 地址。当 TCP 将其报文段交给 IP 层时,IP 协议怎样知道目的IP 地址呢?问题 5-8:在 TCP 传送数据时,有没有规定一个最大重传次数?问题 5-9:TCP 都使用哪些计时器?问题 5-10:是否 TCP 和 UDP 都需要计算往返时间 RTT?问题 5-
20、11:假定 TCP 开始进行连接建立。当 TCP 发送第一个 SYN 报文段时,显然无法利用教材中 5.6.3 节所介绍的方法计算往返时间 RTT。那么这时 TCP 又怎样设置重传计时器呢?问题 5-12:糊涂窗口综合症产生的条件是什么?是否只有在接收方才产生这种症状?问题 5-13:能否更详细些讨论一下糊涂窗口综合症及其解决方法?问题 5-14:为什么 TCP 在建立连接时不能每次都选择相同的、固定的初始序号?问题 5-15:能否利用 TCP 发送端和接收端交换报文段的图来说明慢开始的特点?问题 5-16:对于拥塞避免是否也能够用发送端和接收端交换的报文段来说明其工作原理?问题 5-17:T
21、CP 连接很像一条连接发送端和接收端的双向管道。当 TCP 在连续发送报文段时,若要管道得到充分的利用,则发送窗口的大小应怎样选择?问题 5-18:假定在一个互联网中,所有的链路的传输都不出现差错,所有的结点也都不会发生故障。试问在这种情况下,TCP 的“可靠交付”的功能是否就是多余的?问题 5-19:TCP 是通信协议还是软件?问题 5-20:在计算 TCP 的往返时间 RTT 的公式中,本教材过去的版本是取 a = 7/8。但现在的新版本是取 a = 1/8。为什么会有这样大的改变?第 6 章 应用层问题 6-1:我们经常说“两个计算机进行通信 ”。我们应当怎样理解这句话?问题 6-2:能
22、否用你的 PC 机进行一个简单的实验:一个计算机同时和 5 个计算机进行通信?问题 6-3:因特网中计算机程序之间的通信和电信网中的电话通信有何相同或不同之处?问题 6-4:连接在因特网上的主机名必须是唯一的吗?问题 6-5:在因特网中通过域名系统查找某个主机的 IP 地址,和在电话系统中通过 114 查号台查找某个单位的电话号码相比,有何异同之处?问题 6-6:一个单位的 DNS 服务器可以采用集中式的一个 DNS 服务器,也可以采用分布式的多个 DNS 服务器。哪一种方案更好些?问题 6-7:对同一个域名向 DNS 服务器发出好几次的 DNS 请求报文后,每一次得到 IP 地址都不一样。这
23、可能吗?问题 6-8:当使用 56 kb/s 的调制解调器上网时,经常会发现数据下载的速率远远小于 56 kb/s。这是什么原因?问题 6-9:ARP 和 DNS 是否有些相似?它们有何区别?问题 6-10:“ 网关”和“路由器”是否为同义语?问题 6-11:我们常在文献上看到 “远程登录”这样的名词。它的英文名字应当是 remote log-in 还是 Telnet?问题 6-12:电话通信和电子邮件通信是使用客户服务器工作方式吗?问题 6-13:在电子邮件中, “信封”、“ 内容”、“首部”、“主体”是个什么样的关系?问题 6-14:能否更加细致地介绍一下 base64 编码?问题 6-1
24、5:能否归纳一下 HTTP 协议的主要特点?问题 6-16:HTTP 1.1 协议比起 HTTP 1.0 协议有哪些主要的变化?问题 6-17:抽象语法、传送语法的主要区别是什么?数据类型、编码以及编码规则的区别又是什么?第 7 章 计算机网络的安全问题 7-1:用一个例子说明置换密码的加密和解密过程。假定密钥为 CIPHER,而明文为 attack begins at four,加密时明文中的空格去除。问题 7-2:拒绝服务 DOS (Denial Of Service)和分布式拒绝服务 DDOS (Distributed DOS)这两种攻击是怎样产生的?问题 7-3:报文的保密性和报文的完
25、整性有何不同?保密性和完整性能否只要其中的一个而不要另一个?问题 7-4:常规密钥体制与公钥体制最主要的区别是什么?问题 7-5:能否举一个实际的 RSA 加密和解密的例子?问题 7-6:要进一步理解 RSA 密码体制的原理,需要知道哪一些数论的基本知识?问题 7-7:怎样证明 RSA 密码体制的解码公式?问题 7-8:RSA 加密能否被认为是保证安全的?问题 7-9:报文摘要并不对传送的报文进行加密。这怎么能算是一种网络安全的措施?不管在什么情况下永远将报文进行加密不是更好一些吗?问题 7-10:不重数 (nonce)是否就是随机数?问题 7-11:在防火墙技术中的分组过滤器工作在哪一个层次
26、?第 8 章 因特网上的音频 /视频服务问题 8-1:为什么说传统的因特网本身是非等时的?问题 8-2:IP 协议是不保证服务质量的。可是因特网的成功可以说在很大的程度上得益于 IP 协议。那么 IP 协议最主要的优点是什么?问题 8-3:端到端时延(end-to-end delay)和时延抖动(delay jitter) 有什么区别?问题 8-4:能否简单归纳一下,为了适应多媒体信息的传输,目前对因特网应如何演进,都有哪三种主要观点?问题 8-5:在教材第 8 章的图 8-2 中的缓存(其作用是将非恒定速率的分组变为恒定速率的分组)是否就是在运输层中的接收缓存?问题 8-6:假定在教材第 8
27、 章图 8-19 中对应于三种分组流的权重分别为 0.5,0.25 和 0.25,并且所有的分组流都有大量分组在缓存中。试问这三种分组流被服务的顺序可能是怎样的(对于轮流服务的情况,被服务的顺序是 1 2 3 1 2 3 1 2 3)?问题 8-7:假定在问题 8-6 中,只有第一类和第二类分组流有大量分组在缓存中,而第三类分组流目前暂时没有分组在缓存中。试问这三种分组流被服务的顺序可能是怎样的?第 9 章 无线网络(略)第 10 章 下一代因特网问题 10-1:本章叫做 “下一代因特网” 。这是否意味着前面几章讨论的因特网协议都属于传统的因特网,而只有本章讨论的内容才涉及到因特网的一些新的演
28、进?问题 10-2:三网融合是目的吗?有关广域网 WAN 的问题问题 WAN-1:广域网在地理上覆盖的范围较大,那么能不能说“凡是在地理上覆盖范围较大的网络就是广域网”?问题 WAN-2:在广域网中的结点交换机是否就是路由器?问题 WAN-3:为什么在第 5 版的计算机网络取消了“广域网”这一章?问题 WAN-4:为什么 ATM 信元的有效载荷规定为 48 字节?问题 WAN-5:异步传递方式 ATM 和同步传输有什么关系?问题 WAN-6:是否 SDH/SONET 只能为 ATM 使用?问题 WAN-7:在 ATM 中发送端或接收端的传输汇聚子层 TC 能否辨认出不同的虚通路 VC?问题 W
29、AN-8:按照分层原理,下层不检查上层协议数据单元 PDU 的首部。在 ATM 中,在传输汇聚子层 TC 上面的是ATM 层。那么 TC 子层是否也不检查 ATM 信元的首部?正文F 问题 1-1:“主机”和“计算机”一样不一样?答:“主机”(host)就是“计算机”(computer),因此“主机” 和“计算机”应当是一样意思。不过在因特网中,“主机”是指任何连接在因特网上的(也就是连接在因特网中某一个物理网络上的)、可以运行应用程序的计算机系统。主机可以小到 PC 机,也可以大到巨型机。主机的 CPU 可以很慢也可以很快,其存储器可以很小也可以很大。但 TCP/IP 协议族可以使因特网上的
30、任何一对主机都能进行通信,而不管它们的硬件有多大区别。F 问题 1-2:能否说:“电路交换和面向连接是等同的,而分组交换和无连接是等同的”?答:不行。这在概念上是很不一样的。这点可举例说明如下。电路交换就是在 A 和 B 要通信的开始,必须先建立一条从 A 到 B 的连接(中间可能经过很多的交换结点)。当 A 到 B的连接建立后,通信就沿着这条路径进行。A 和 B 在通信期间始终占用这条信道(全程占用),即使在通信的信号暂时不在通信路径上流动时(例如打电话时双方暂时停止说话),也是同样地占用信道。通信完毕时就释放所占用的信道,即断开连接,将通信资源还给网络,以便让其他用户可以使用。因此电路交换
31、是使用面向连接的服务。但分组交换也可以使用面向连接服务。例如 X.25 网络、帧中继网络或 ATM 网络都是属于分组交换网。然而这种面向连接的分组交换网在传送用户数据之前必须先建立连接。数据传送完毕后还必须释放连接。因此使用面向连接服务的可以是电路交换,也可以是分组交换。使用分组交换时,分组在哪条链路上传送就占用了该链路的信道资源,但分组尚未到达的链路则暂时还不占用这部分网络资源(这时,这些资源可以让其他用户使用)。因此分组交换不是全程占用资源而是在一段时间占用一段资源。可见分组交换方式是很灵活的。现在的因特网使用 IP 协议,它使用无连接的 IP 数据报来传送数据,即不需要先建立连接就可以立
32、即发送数据。当数据发送完毕后也不存在释放连接的问题。因此使用无连接的数据报进行通信既简单又灵活。面向连接和无连接是强调通信必须经过什么样的阶段。面向连接必须经过三个阶段:“建立连接传送数据释放连接”,而无连接则只有一个阶段:“传送数据”。电路交换和分组交换则是强调在通信时用户对网络资源的占用方式。电路交换是在连接建立后到连接释放前全程占用信道资源,而分组交换则是在数据传送是断续占用信道资源(分组在哪一条链路上传送就占用该链路的信道资源)。面向连接和无连接往往可以在不同的层次上来讨论。例如,在数据链路层,HDLC 和 PPP 协议是面向连接的,而以太网使用的 CSMA/CD 则是无连接的(见教材
33、 4.2.1 节)。在网络层,X.25 协议是面向连接的,而 IP 协议则是无连接的。在运输层,TCP 是面向连接的,而 UDP 则是无连接的。但是我们却不能说:“TCP 是电路交换” ,而应当说:“TCP 可以向应用层提供面向连接的服务”。可参考教材中 5.1.2 节更进一步的讨论。F 问题 1-3:因特网使用的 IP 协议是无连接的,因此其传输是不可靠的。这样容易使人们感到因特网很不可靠。那么为什么当初不把因特网的传输设计成为可靠的?答:这个问题很重要,需要多一些篇幅来讨论。先打一个比方。邮局寄送的平信很像无连接的 IP 数据报。每封平信可能走不同的传送路径,同时平信也不保证不丢失。当我们
34、发现收信人没有收到寄出的平信时,去找邮局索赔是没有用的。邮局会说:“平信不保证不丢失。怕丢失就请你寄挂号信”。但是大家并不会将所有的信件都用挂号方式邮寄,这是因为邮局从来不会随意地将平信丢弃,而丢失平信的概率并不大,况且寄挂号信要多花 3 元钱,还要去邮局排队,太麻烦。总之,尽管寄平信有可能会丢失,但绝大多数的信件还是平信,因为寄平信方便、便宜。我们知道,传统的电信网的最主要的用途是进行电话通信。普通的电话机很简单,没有什么智能。因此电信公司就不得不把电信网设计得非常好,这种电信网可以保证用户通话时的通信质量。这点对使用非常简单的电话机的用户则是非常方便的。但电信公司为了建设能够确保传输质量的
35、电信网则付出了巨大的代价(使用昂贵的程控交换机和网管系统)。数据的传送显然必须是非常可靠的。当初美国国防部在设计 ARPANET 时有一个很重要的讨论内容就是:“谁应当负责数据传输的可靠性?”这时出现了两种对立的意见。一种意见是主张应当像电信网那样,由通信网络负责数据传输的可靠性(因为电信网的发展历史及其技术水平已经证明了人们可以将网络设计得相当可靠)。但另一种意见则坚决主张由用户的主机负责数据传输的可靠性。这里最重要的理由是:这样可以使计算机网络便宜、灵活,同时还可以满足军事上的各种特殊的需求。下面用一个简单例子来说明这一问题。设主机 A 通过因特网向主机 B 传送文件(如下图所示)。怎样才
36、能实现文件数据的可靠传输呢?如按照电信网的思路,就是设法(这需要花费相当多的钱)将不可靠的因特网做成为可靠的因特网。但设计计算机网络的人采用另外一种思路,即设法实现端到端的可靠传输。提出这种思路的人认为,计算机网络和电信网的一个重大区别就是终端设备的性能差别很大。电信网的终端是非常简单的、没有什么智能的电话机。因此电信网的不可靠必然会严重地影响人们利用电话的通信。但计算机网络的终端是有很多智能的主机。这样就使得计算机网络和电信网有两个重要区别。第一,即使传送数据的因特网有一些缺陷(如造成比特差错或分组丢失),但具有很多智能的终端主机仍然有办法实现可靠的数据传输(例如,能够及时发现差错并通知发送
37、方重传刚才出错的数据)。第二,即使网络可以实现 100%地无差错传输,端到端的数据传输仍然有可能出现差错。为了说明这点,我们可以用一个简单例子来说明这个问题。这就是主机 A 向主机 B 传送一个文件的情况。文件是通过一个文件系统存储在主机 A 的硬盘中。主机 B 也有一个文件系统,用来接收和存储从 A 发送过来的文件。应用层使用的应用程序现在就是文件传送程序,这个程序一部分在主机 A 运行,另一部分在主机 B 运行。现在讨论文件传送的大致步骤。主机 A 的文件传送程序调用文件系统将文件从硬盘中读出。然后文件系统将文件传递给文件传送程序。主机 A 请求数据通信系统将文件传送到主机 B。这里包括使
38、用一些通信协议和将数据文件划分为适当大小的分组。通信网络将这些数据分组逐个传送给主机 B。在主机 B,数据通信协议将收到的数据传递给文件传送应用程序在主机 B 运行的那一部分。在主机 B,文件传送程序请求主机 B 的文件系统将收到的数据写到主机 B 的硬盘中。在以上的几个步骤中,都存在使数据受到损伤的一些因素。例如:虽然文件原来是正确写在主机 A 的硬盘上,但在读出后就可能出现差错(如在磁盘存储系统中的硬件出现了故障)。文件系统、文件传送程序或数据通信系统的软件在对文件中的数据进行缓存或复制的过程中都有可能出现故障。主机 A 或 B 的硬件处理机或存储器在主机 A 或 B 进行数据缓存或复制的
39、过程中也有可能出现故障。通信系统在传输数据分组时有可能产生检测不出来的比特差错或甚至丢失某些分组。主机 A 或 B 都有可能在进行数据处理的过程中突然崩溃。由此可看出,即使对于这样一个简单的文件传送任务,仅仅使通信网络非常可靠并不能保证文件从主机 A 硬盘到主机B 硬盘的传送是可靠的。也就是说,花费很多的钱将通信网络做成为非常可靠的,对传送计算机数据来说是得不偿失的。既然现在的终端设备有智能,就应当把网络设计得简单些,而让具有智能的终端来完成“使传输变得可靠”的任务。于是,计算机网络的设计者采用了一种策略,这就是“端到端的可靠传输”。更具体些,就是在运输层使用面向连接的TCP 协议,它可保证端
40、到端的可靠传输。只要主机 B 的 TCP 发现了数据的传输有差错,就告诉主机 A 将出现差错的那部分数据重传,直到这部分数据正确传送到主机 B 为止(见第 5 章)。而 TCP 发现不了数据有差错的概率是很小的。采用这样的建网策略,既可以使网络部分价格便宜和灵活可靠,又能够保证端到端的可靠传输。这样,我们可以这样想像,将因特网的范围稍微扩大一些,即扩大到主机中的运输层(请参考前面的图)。由于运输层使用了 TCP 协议,使得端到端的数据传输成为可靠的,因此这样扩大了范围的因特网就成为可靠的网络。因此,说“因特网提供的数据传输是不可靠的”或“因特网提供的数据传输是可靠的”这两种说法都可以在文献中找
41、到,问题是是怎样界定因特网的范围。如果说因特网提供的数据传输是不可靠的,那么这里的因特网指的是不包括主机在内的网络(仅有下三层)。说因特网提供的数据传输是可靠的,就表明因特网的范围已经扩大到主机的运输层。再回到通过邮局寄平信的例子。当我们寄出一封平信后,可以等待收信人的确认(通过他的回信)。如果隔了一些日子还没有收到回信,我们可以将该信件再寄一次。这就是将“端到端的可靠传输”的原理用于寄信的例子。F 问题 1-4:在具有五层协议的体系结构中,如果下面的一层使用面向连接服务或无连接服务,那么在上面的一层是否也必须使用同样性质的服务呢?或者说,是否我们可以在各层任意使用面向连接服务或无连接服务呢?
42、答:实际上,在五层协议栈中,并非在所有的层次上都存在这两种服务方式的选择问题。在网络层由于现在大家都使用 IP 协议,它只提供一种服务,即无连接服务。在使用 IP 协议的网络层的下面和上面,都可以使用面向连接服务或无连接服务。已经过时的 OSI 体系结构在网络层使用面向连接的 X.25 协议。但在因特网成为主流计算机网络后,即使还有很少量的X.25 网在使用,那也往往是在 X.25 协议上面运行 IP 协议,即 IP 网络把 X.25 网当作一种面向连接的链路使用(见教材 5.1.2 节的讨论)。在网络层下面的数据链路层可以使用面向连接服务(如使用拨号上网的 PPP 协议,见教材 3.6 节)
43、,即 IP 可运行在面向连接的网络之上。但网络层下面也可以使用无连接服务(如使用以太网,见教材 4.2 节),即 IP 可运行在无连接网络之上。网络层的上面是运输层。运输层可以使用面向连接的 TCP,也可以使用无连接的 UDP。F 问题 1-5:在运输层应根据什么原则来确定应当使用面向连接服务还是无连接服务?答:根据上层应用程序的性质。例如,在传送文件时要使用文件传送协议 FTP,而文件的传送必须是可靠的,因此在运输层就必须使用面向连接的 TCP协议。但是若应用程序是要传送分组话音或视频点播信息,那么为了要保证信息传输的实时性,在运输层就必须使用无连接的 UDP 协议(见教材 10.1 节)。
44、另外,选择 TCP 或 UDP 时还需考虑对连接资源的控制。若应用程序不希望在服务器端同时建立太多的 TCP 连接时,可考虑采用 UDP。F 问题 1-6:在数据链路层应根据什么原则来确定应当使用面向连接服务还是无连接服务?答:在设计硬件时就能够确定。例如,若采用拨号电路,则数据链路层将使用面向连接服务。但若使用以太网,则数据链路层使用的是无连接服务。F 问题 1-7:TCP/IP 的体系结构到底是四层还是五层?答:在一些书籍和文献中的确见到有这两种不同的说法。能否这样理解:四层或五层都关系不大。因为 TCP/IP 体系结构中最核心的部分就是靠上面的三层:应用层、运输层和网络层。至于最下面的是
45、一层 网络接口层,还是两层网络接口层和物理层,这都不太重要,因为 TCP/IP 本来就没有为网络层以下的层次制定什么标准。TCP/IP 的思路是:形成 IP 数据报后,只要交给下面的网络去发送就行了,不必再考虑得太多。用 OSI 的概念,将下面的两层称为数据链路层和物理层是比较清楚的。F 问题 1-8:我们常说“分组交换”。但又常说“路由器转发 IP 数据报”或“路由器转发帧”。究竟“分组”一词应当用在什么场合?答:“分组”(packet)也就是“包”,它是一个不太严格的名词,意思是将若干个比特加上首部的控制信息就封装在一起,组成一个在网络上传输的数据单元。在数据链路层这样的数据单元叫做“帧”
46、。而在 IP 层(即网络层)这样的数据单元就叫做“IP 数据报” 。在运输层这样的数据单元就叫做 “TCP 报文段”或“UDP 用户数据报”。但在不需要十分严格和不致弄混的情况下,有时也都可笼统地采用“分组”这一名词。这点请读者注意。OSI 为了使数据单元的名词准确,就创造了“协议数据单元”PDU 这一名词。在数据链路层的 PDU 叫做 DLPDU,即“数据链路协议数据单元”。在网络层的 PDU 叫做“网络协议数据单元”NPDU。在运输层的 PDU 叫做“运输协议数据单元”TPDU。虽然这样做十分严格,但过于繁琐,现在已没有什么人愿意使用这样的名词。F 问题 1-9:到商店购买可一个希捷公司生
47、产的 80 G 的硬盘。安装到电脑上以后用 WINDOWS 的资源管理器发现在该磁盘的“属性” 中只有 74.5 G。是不是商店出了差错?答:不是。这个因为希捷公司的硬盘标记中的 G 表示 109,而微软公司 WINDOWS 软件中的 G 表示 230。74.5 2 30 = 80 109。即希捷的 80 G 和微软的 74.5 G 相等。F 问题 1-10:有这样的说法:习惯上,人们都将网络的“ 带宽”作为网络所能传送的“最高数据率”的同义语。这样的说法有何根据?答:我还没有找到这种说法出自哪一个国际标准文件或重要的 RFC 文件(欢迎读者告诉我)。但是在一些著名国外教材中可以找到类似的说法
48、。例如,F 问题 1-11:有时可听到人们将“带宽为 10 Mb/s 的以太网”说成是“速率(或速度)为 10 Mb/s 的以太网”或“10 兆速率(或速度)的以太网”。试问这样的说法正确否?答:这种说法的确在网络界很常见。例如,当 10 Mb/s 以太网升级到 100 Mb/s 时,这种 100 Mb/s 的以太网就称为快速以太网,表明速率提高了。当调制解调器每秒能够传送更多的比特时就称为高速调制解调器。当网络中的链路带宽增加时,也常说成是链路的速率提高了。因此在计算机网络领域,“速率”和“带宽”有时是代表同样的意思。但我们必须对网络的“速度”有正确的理解。我们早已在物理课程中学过,速率(或
49、速度)的单位是“米/秒”。我们谈到 “高速火车” 是指这种火车在单位时间内行驶的距离增大了。但“网络提速”并不是指信号在网络上传播得更快了(更多的“米/秒” ),而是说网络的传输速率(更多的“比特/秒”)提高了。这里特别要注意,“传播”(propagation 或 propagate)和“传输”(transmission 或 transmit)这两个中文名词仅一字之差,但意思却差别很大。传播速率:信号比特在传输媒体上的传播速率就是电磁波在单位时间内能够在传输媒体上的走多少距离。这个速率大约只有电磁波在真空中的传播速率的 2/3 左右。或者说,信号比特在传输媒体上 1 微秒可传播 200 米左右的距离。传输速率:计算机每秒钟可以向所连接的媒体或网络注入(也就是发送)多少个比特则是传输速率。若计算机在单位时间内能够发送更多的比特也就是“发送速率提高了”,但一定要弄清,这里的“速率”指的“比特/ 秒”而不是指“米/秒(传播速率)”。由此可见,当我们使用“速率”表示“ 比特/秒”时,就应当将其理解为主机向链路(或网络)发送比特的速率。这也就是比特进入链路(或网络)的速率。同理,传播时延和传输时延的意思也是完全不同的。由于传输时延很容易和传播时延弄混,因此最好使用发送时延来代替传输时延这个名词。请记住:发送时延 = 传输时延 传播时延F 问题 1-