《计算机网络(第5版)》常见问题

更新时间:2023-10-07 05:25:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

常见问题目录

第1章 概述

问题1-1:―主机‖和―计算机‖一样不一样?

问题1-2:能否说:―电路交换和面向连接是等同的,而分组交换和无连接是等同的‖?

问题1-3:因特网使用的IP协议是无连接的,因此其传输是不可靠的。这样容易使人们感到因特网很不可靠。那么为什么当初不把因特网的传输设计成为可靠的?

问题1-4:在具有五层协议的体系结构中,如果下面的一层使用面向连接服务或无连接服务,那么在上面的一层是否也必须使用同样性质的服务呢?或者说,是否我们可以在各层任意使用面向连接服务或无连接服务呢? 问题1-5:在运输层应根据什么原则来确定应当使用面向连接服务还是无连接服务? 问题1-6:在数据链路层应根据什么原则来确定应当使用面向连接服务还是无连接服务? 问题1-7:TCP/IP的体系结构到底是四层还是五层?

问题1-8:我们常说―分组交换‖。但又常说―路由器转发IP数据报‖或―路由器转发帧‖。究竟―分组‖一词应当用在什么场合? 问题1-9:到商店购买可一个希捷公司生产的80 G的硬盘。安装到电脑上以后用WINDOWS的资源管理器发现在该磁盘的―属性‖中只有74.5 G。是不是商店出了差错?

问题1-10:有这样的说法:习惯上,人们都将网络的―带宽‖作为网络所能传送的―最高数据率‖的同义语。这样的说法有何根据?

问题1-11:有时可听到人们将―带宽为10 Mb/s的以太网‖说成是―速率(或速度)为10 Mb/s的以太网‖或―10兆速率(或速度)的以太网‖。试问这样的说法正确否?

问题1-12:有人说,宽带信道相当于高速公路车道数目增多了,可以同时并行地跑更多数量的汽车。虽然汽车的时速并没有提高(这相当于比特在信道上的传播速率没有提高),但整个高速公路的运输能力却增多了,相当于能够传送更多数量的比特。这种比喻合适否?

问题1-13:如果用时延带宽积管道来比作传输链路,那么是否宽带链路对应的时延带宽积管道就比较宽呢? 问题1-14:网络的吞吐量与网络的时延有何关系? 问题1-15:什么是―无缝的‖、―透明的‖和―虚拟的‖?

问题1-16:在教材的1.7.2节提到协议有三个要素,即语法、语义和同步。语义是否已经包括了同步的意思? 问题1-17:为什么协议不能设计成100%可靠的? 问题1-18:什么是因特网的摩尔定律?

第2章 物理层

问题2-1:―规程‖、―协议‖和 ―规约‖都有何区别?

问题2-2:在许多文献中经常见到人们将―模拟‖与―仿真‖作为同义语。那么,―模拟信道‖能否说成是―仿真信道‖? 问题2-3:为什么电话信道的标准带宽是3.1 kHz?

问题2-4:奈氏准则和香农公式的主要区别是什么?这两个公式对数据通信的意义是什么? 问题2-5:传输媒体是物理层吗?传输媒体和物理层的主要区别是什么? 问题2-6:同步(synchronous)和异步(asynchronous)的区别是什么? 问题2-7:同步通信和异步通信的区别是什么? 问题2-8:位同步(比特同步)和帧同步的区别是什么?

第3章 数据链路层

问题3-1:旧版的《计算机网络》认为数据链路层的任务是在两个相邻结点间的线路上无差错地传送以帧(frame)为单位的数据。数据链路层可以把一条有可能出差错的实际链路,转变成为让网络层向下看起来好像是一条不出差错的链路。 但最近新版的《计算机网络》(第4版和第5版)中对数据链路层的提法就改变了。数据链路层的传输不能让网络层向下看起来好像是一条不出差错的链路。 到底哪一种说法是正确的?

问题3-2:当数据链路层使用PPP协议或CSMA/CD协议时,既然不保证可靠传输,那么为什么对所传输的帧进行差错检验呢?

问题3-3:为什么旧的版本教材在数据链路层一章中讲授可靠传输,但现在新的版本教材则取消了可靠传输? 问题3-4:通过普通的电话用户线拨号上网时(使用调制解调器),试问一对用户线可容许多少个用户同时上网? 问题3-5:除了差错检测外,面向字符的数据链路层协议还必须解决哪些特殊的问题? 问题3-6:为什么计算机进行通信时发送缓存和接收缓存总是需要的?

问题3-7:以太网使用载波监听多点接入碰撞检测协议CSMA/CD。频分复用FDM才使用载波。以太网有没有使用频分复用?

问题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类线的外塑料保护套管就可以看见不同颜色的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以太网传送数据的距离达到180 m。这可能吗?

问题3-20:粗缆以太网有一个单独的收发器。细缆以太网和双绞线以太网有没有收发器?如果有,都在什么地方? 问题3-21:什么叫做―星形总线(star-shaped bus)‖或―盒中总线(bus-in-a-box)‖?

问题3-22:以太网的覆盖范围受限的一个原因是:如果站点之间的距离太大,那么由于信号传输时会衰减得很多因而无法对信号进行可靠的接收。试问:如果我们设法提高发送信号的功率,那么是否就可以提高以太网的通信距离? 问题3-23:一个大学能否就使用一个很大的局域网而不使用许多相互连接的较小的局域网?

问题3-24:一个10 Mb/s以太网若工作在全双工状态,那么其数据率是发送和接收各为5 Mb/s还是发送和接收各为10 Mb/s?

问题3-25:一个单个的以太网上所使用的网桥数目有没有上限?

问题3-26:当我们在PC机插上以太网的适配器(网卡)后,是否还必须编制以太网所需的MAC协议的程序? 问题3-27:使用网络分析软件可以分析出所捕获到的每一个帧的首部中各个字段的值。但是有时却无法找出LLC帧首部的各字段的值。这是什么原因?

问题3-28:整个的IEEE 802委员会现在一共有多少个工作组?

问题3-29:在一些文献和教材中,可以见到关于以太网的―前同步码‖(preamble)有两种不同的说法。一种说法是:前同步码共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:当局域网刚刚问世时,总线形的以太网被认为可靠性比星形结构的网络好。但现在以太网又回到了星形结构,使用集线器作为交换结点。那么以前的看法是否有些不正确?

第4章 网络层

问题4-1:存在多种异构网络对不同网络之间的通信会造成一些麻烦。但为什么世界上还存在多种异构网络?

问题4-2:―IP网关‖和―IP路由器‖是否为同义语? 问题4-3:―互连网‖和―互联网‖有没有区别?

问题4-4:在文献中有时会见到对等连网(peer-to-peer networking),这是什么意思?

问题4-5:在一个互联网中,能否使用一个很大的交换机(switch)来代替互联网中很多的路由器? 问题4-6:为什么IP地址又称为―虚拟地址‖?

问题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地址中的前缀和后缀最大的不同是什么?

问题4-13:IP数据报中的数据部分的长度是可变的(即IP数据报不是定长的)。这样做有什么好处? 问题4-14:IP地址中的各种类别的地址所拥有的地址数目的比例是怎样的? 问题4-15:在IP地址中,为什么使用最前面的一个或几个比特来表示地址的类别? 问题4-16:全1的IP地址是否是向整个因特网进行广播的一种地址?

问题4-17:IP协议有分片的功能,但广域网中的分组则不必分片。这是为什么?

问题4-18:路由表中只给出到目的网络的下一跳路由器的IP地址,然后在下一个路由器的路由表中再给出再下一跳的路由器的IP地址,最后才能到达目的网络进行直接交付。采用这样的方法有什么好处? 问题4-19:链路层广播和IP广播有何区别?

问题4-20:主机在接收一个广播帧或多播帧时其CPU所要做的事情有何区别?

问题4-21:有的路由器在和广域网相连时,在该路由器的广域网接口处并没有硬件地址,这怎样解释? 问题4-22:IP地址和电话号码相比时有何异同之处?

问题4-23:―尽最大努力交付‖(best effort delivery)都有哪些含义?

问题4-24:假定在一个局域网中计算机A发送ARP请求分组,希望找出计算机B的硬件地址。这时局域网上的所有计算机都能收到这个广播发送的ARP请求分组。试问这时由哪一个计算机使用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数据报在传输的过程中,其首部长度是否会发生变化?

问题4-31:当路由器利用IP数据报首部中的―首部检验和‖字段检测出在传输过程中出现了差错时,就简单地将其丢弃。为什么不发送一个ICMP报文给源主机呢?

问题4-32:RIP协议的好处是简单,但缺点是不够稳定。有的书上介绍―触发更新‖、―分离范围‖和―毒性逆转‖。能否简单介绍一下它们的要点?

问题4-33:IP数据报必须考虑最大传送单元MTU (Maximum Transfer Unit)。这是指哪一层的最大传送单元?包括不包括首部或尾部等开销在内?

问题4-34:如果一个路由器要同时连接在一个以太网和一个ATM网络上,需要有什么样的硬件加到路由器上? 问题4-35:教材中的图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:一个套接字能否同时与远地的两个套接字相连?

问题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-11:假定TCP开始进行连接建立。当TCP发送第一个SYN报文段时,显然无法利用教材中5.6.3节所介绍的方法计算往返时间RTT。那么这时TCP又怎样设置重传计时器呢?

问题5-12:糊涂窗口综合症产生的条件是什么?是否只有在接收方才产生这种症状? 问题5-13:能否更详细些讨论一下糊涂窗口综合症及其解决方法?

问题5-14:为什么TCP在建立连接时不能每次都选择相同的、固定的初始序号? 问题5-15:能否利用TCP发送端和接收端交换报文段的图来说明慢开始的特点? 问题5-16:对于拥塞避免是否也能够用发送端和接收端交换的报文段来说明其工作原理?

问题5-17:TCP连接很像一条连接发送端和接收端的双向管道。当TCP在连续发送报文段时,若要管道得到充分的利用,则发送窗口的大小应怎样选择?

问题5-18:假定在一个互联网中,所有的链路的传输都不出现差错,所有的结点也都不会发生故障。试问在这种情况下,TCP的―可靠交付‖的功能是否就是多余的? 问题5-19:TCP是通信协议还是软件?

问题5-20:在计算TCP的往返时间RTT的公式中,本教材过去的版本是取a = 7/8。但现在的新版本是取a = 1/8。为什么会有这样大的改变?

第6章 应用层

问题6-1:我们经常说―两个计算机进行通信‖。我们应当怎样理解这句话?

问题6-2:能否用你的PC机进行一个简单的实验:一个计算机同时和5个计算机进行通信? 问题6-3:因特网中计算机程序之间的通信和电信网中的电话通信有何相同或不同之处? 问题6-4:连接在因特网上的主机名必须是唯一的吗?

问题6-5:在因特网中通过域名系统查找某个主机的IP地址,和在电话系统中通过114查号台查找某个单位的电话号码相比,有何异同之处?

问题6-6:一个单位的DNS服务器可以采用集中式的一个DNS服务器,也可以采用分布式的多个DNS服务器。哪一种方案更好些?

问题6-7:对同一个域名向DNS服务器发出好几次的DNS请求报文后,每一次得到IP地址都不一样。这可能吗? 问题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-15:能否归纳一下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:报文的保密性和报文的完整性有何不同?保密性和完整性能否只要其中的一个而不要另一个? 问题7-4:常规密钥体制与公钥体制最主要的区别是什么? 问题7-5:能否举一个实际的RSA加密和解密的例子?

问题7-6:要进一步理解RSA密码体制的原理,需要知道哪一些数论的基本知识? 问题7-7:怎样证明RSA密码体制的解码公式? 问题7-8:RSA加密能否被认为是保证安全的?

问题7-9:报文摘要并不对传送的报文进行加密。这怎么能算是一种网络安全的措施?不管在什么情况下永远将报文进行加密不是更好一些吗?

问题7-10:不重数(nonce)是否就是随机数?

问题7-11:在防火墙技术中的分组过滤器工作在哪一个层次?

第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章图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:本章叫做―下一代因特网‖。这是否意味着前面几章讨论的因特网协议都属于传统的因特网,而只有本章讨论的内容才涉及到因特网的一些新的演进? 问题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?

问题WAN-8:按照分层原理,下层不检查上层协议数据单元PDU的首部。在ATM中,在传输汇聚子层TC上面的是ATM层。那么TC子层是否也不检查ATM信元的首部?

正文

F问题1-1:―主机‖和―计算机‖一样不一样?

答:―主机‖(host)就是―计算机‖(computer),因此―主机‖和―计算机‖应当是一样意思。

不过在因特网中,―主机‖是指任何连接在因特网上的(也就是连接在因特网中某一个物理网络上的)、可以运行应用程序的计算机系统。主机可以小到PC机,也可以大到巨型机。主机的CPU可以很慢也可以很快,其存储器可以很小也可以很大。但TCP/IP协议族可以使因特网上的任何一对主机都能进行通信,而不管它们的硬件有多大区别。 F问题1-2:能否说:―电路交换和面向连接是等同的,而分组交换和无连接是等同的‖?

答:不行。这在概念上是很不一样的。这点可举例说明如下。

电路交换就是在A和B要通信的开始,必须先建立一条从A到B的连接(中间可能经过很多的交换结点)。当A到B的连接建立后,通信就沿着这条路径进行。A和B在通信期间始终占用这条信道(全程占用),即使在通信的信号暂时不在通信路径上流动时(例如打电话时双方暂时停止说话),也是同样地占用信道。通信完毕时就释放所占用的信道,即断开连接,将通信资源还给网络,以便让其他用户可以使用。因此电路交换是使用面向连接的服务。

但分组交换也可以使用面向连接服务。例如X.25网络、帧中继网络或ATM网络都是属于分组交换网。然而这种面向连接的分组交换网在传送用户数据之前必须先建立连接。数据传送完毕后还必须释放连接。 因此使用面向连接服务的可以是电路交换,也可以是分组交换。

使用分组交换时,分组在哪条链路上传送就占用了该链路的信道资源,但分组尚未到达的链路则暂时还不占用这部分网络资源(这时,这些资源可以让其他用户使用)。因此分组交换不是全程占用资源而是在一段时间占用一段资源。可见分组交换方式是很灵活的。

现在的因特网使用IP协议,它使用无连接的IP数据报来传送数据,即不需要先建立连接就可以立即发送数据。当数据发送完毕后也不存在释放连接的问题。因此使用无连接的数据报进行通信既简单又灵活。

面向连接和无连接是强调通信必须经过什么样的阶段。面向连接必须经过三个阶段:―建立连接→传送数据→释放连接‖,而无连接则只有一个阶段:―传送数据‖。

电路交换和分组交换则是强调在通信时用户对网络资源的占用方式。电路交换是在连接建立后到连接释放前全程占用信道资源,而分组交换则是在数据传送是断续占用信道资源(分组在哪一条链路上传送就占用该链路的信道资源)。 面向连接和无连接往往可以在不同的层次上来讨论。例如,在数据链路层,HDLC和PPP协议是面向连接的,而以太网使用的CSMA/CD则是无连接的(见教材4.2.1节)。在网络层,X.25协议是面向连接的,而IP协议则是无连接的。在运输层,TCP是面向连接的,而UDP则是无连接的。但是我们却不能说:―TCP是电路交换‖,而应当说:―TCP可以向应用层提供面向连接的服务‖。可参考教材中5.1.2节更进一步的讨论。

F问题1-3:因特网使用的IP协议是无连接的,因此其传输是不可靠的。这样容易使人们感到因特网很不可靠。那么为什么当初不把因特网的传输设计成为可靠的? 答:这个问题很重要,需要多一些篇幅来讨论。

先打一个比方。邮局寄送的平信很像无连接的IP数据报。每封平信可能走不同的传送路径,同时平信也不保证不丢失。当我们发现收信人没有收到寄出的平信时,去找邮局索赔是没有用的。邮局会说:―平信不保证不丢失。怕丢失就请你寄挂号信‖。但是大家并不会将所有的信件都用挂号方式邮寄,这是因为邮局从来不会随意地将平信丢弃,而丢失平信的概率并不大,况且寄挂号信要多花3元钱,还要去邮局排队,太麻烦。总之,尽管寄平信有可能会丢失,但绝大多数的信件还是平信,因为寄平信方便、便宜。

我们知道,传统的电信网的最主要的用途是进行电话通信。普通的电话机很简单,没有什么智能。因此电信公司就不得不把电信网设计得非常好,这种电信网可以保证用户通话时的通信质量。这点对使用非常简单的电话机的用户则是非常方便的。但电信公司为了建设能够确保传输质量的电信网则付出了巨大的代价(使用昂贵的程控交换机和网管系统)。 数据的传送显然必须是非常可靠的。当初美国国防部在设计ARPANET时有一个很重要的讨论内容就是:―谁应当负责数据传输的可靠性?‖这时出现了两种对立的意见。一种意见是主张应当像电信网那样,由通信网络负责数据传输的可靠性(因为电信网的发展历史及其技术水平已经证明了人们可以将网络设计得相当可靠)。但另一种意见则坚决主张由用户

的主机负责数据传输的可靠性。这里最重要的理由是:这样可以使计算机网络便宜、灵活,同时还可以满足军事上的各种特殊的需求。下面用一个简单例子来说明这一问题。

设主机A通过因特网向主机B传送文件(如下图所示)。怎样才能实现文件数据的可靠传输呢?

如按照电信网的思路,就是设法(这需要花费相当多的钱)将不可靠的因特网做成为可靠的因特网。但设计计算机网络的人采用另外一种思路,即设法实现端到端的可靠传输。

提出这种思路的人认为,计算机网络和电信网的一个重大区别就是终端设备的性能差别很大。电信网的终端是非常简单的、没有什么智能的电话机。因此电信网的不可靠必然会严重地影响人们利用电话的通信。但计算机网络的终端是有很多智能的主机。这样就使得计算机网络和电信网有两个重要区别。第一,即使传送数据的因特网有一些缺陷(如造成比特差错或分组丢失),但具有很多智能的终端主机仍然有办法实现可靠的数据传输(例如,能够及时发现差错并通知发送方重传刚才出错的数据)。第二,即使网络可以实现100%地无差错传输,端到端的数据传输仍然有可能出现差错。为了说明这点,我们可以用一个简单例子来说明这个问题。这就是主机A向主机B传送一个文件的情况。

文件是通过一个文件系统存储在主机A的硬盘中。主机B也有一个文件系统,用来接收和存储从A发送过来的文件。应用层使用的应用程序现在就是文件传送程序,这个程序一部分在主机A运行,另一部分在主机B运行。现在讨论文件传送的大致步骤。

主机A的文件传送程序调用文件系统将文件从硬盘中读出。然后文件系统将文件传递给文件传送程序。

主机A请求数据通信系统将文件传送到主机B。这里包括使用一些通信协议和将数据文件划分为适当大小的分组。 通信网络将这些数据分组逐个传送给主机B。

在主机B,数据通信协议将收到的数据传递给文件传送应用程序在主机B运行的那一部分。 在主机B,文件传送程序请求主机B的文件系统将收到的数据写到主机B的硬盘中。 在以上的几个步骤中,都存在使数据受到损伤的一些因素。例如:

虽然文件原来是正确写在主机A的硬盘上,但在读出后就可能出现差错(如在磁盘存储系统中的硬件出现了故障)。 文件系统、文件传送程序或数据通信系统的软件在对文件中的数据进行缓存或复制的过程中都有可能出现故障。 主机A或B的硬件处理机或存储器在主机A或B进行数据缓存或复制的过程中也有可能出现故障。 通信系统在传输数据分组时有可能产生检测不出来的比特差错或甚至丢失某些分组。 主机A或B都有可能在进行数据处理的过程中突然崩溃。

由此可看出,即使对于这样一个简单的文件传送任务,仅仅使通信网络非常可靠并不能保证文件从主机A硬盘到主机B硬盘的传送是可靠的。也就是说,花费很多的钱将通信网络做成为非常可靠的,对传送计算机数据来说是得不偿失的。既然现在的终端设备有智能,就应当把网络设计得简单些,而让具有智能的终端来完成―使传输变得可靠‖的任务。 于是,计算机网络的设计者采用了一种策略,这就是―端到端的可靠传输‖。更具体些,就是在运输层使用面向连接的TCP协议,它可保证端到端的可靠传输。只要主机B的TCP发现了数据的传输有差错,就告诉主机A将出现差错的那部分数据重传,直到这部分数据正确传送到主机B为止(见第5章)。而TCP发现不了数据有差错的概率是很小的。采用这样的建网策略,既可以使网络部分价格便宜和灵活可靠,又能够保证端到端的可靠传输。

本文来源:https://www.bwwdw.com/article/ei6d.html

Top