首页 计算机网络(第5版)谢希仁 编著 期末复习资料1至5章复习题汇总

计算机网络(第5版)谢希仁 编著 期末复习资料1至5章复习题汇总

举报
开通vip

计算机网络(第5版)谢希仁 编著 期末复习资料1至5章复习题汇总计算机网络(第5版)谢希仁 编著 期末复习资料1至5章复习题汇总 计算机网络(第5版)谢希仁 编著 期末复习资料 问题1-1:―主机‖和―计算机‖一样不一样, 答:―主机‖(host)就是―计算机‖(computer),因此―主机‖和―计算机‖应当是一样意思。 不过在因特网中,―主机‖是指任何连接在因特网上的(也就是连接在因特网中某一个物理网络上的)、可以运行应用程序的计算机系统。主机可以小到PC机,也可以大到巨型机。主机的CPU可以很慢也可以很快,其存储器可以很小也可以很大。但TCP/IP协议族可以使因特...

计算机网络(第5版)谢希仁 编著 期末复习资料1至5章复习题汇总
计算机网络(第5版)谢希仁 编著 期末复习资料1至5章复习题汇总 计算机网络(第5版)谢希仁 编著 期末复习资料 问题1-1:―主机‖和―计算机‖一样不一样, 答:―主机‖(host)就是―计算机‖(computer),因此―主机‖和―计算机‖应当是一样意思。 不过在因特网中,―主机‖是指任何连接在因特网上的(也就是连接在因特网中某一个物理网络上的)、可以运行应用程序的计算机系统。主机可以小到PC机,也可以大到巨型机。主机的CPU可以很慢也可以很快,其存储器可以很小也可以很大。但TCP/IP 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 族可以使因特网上的任何一对主机都能进行通信,而不管它们的硬件有多大区别。 问题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节更进一步的讨论。 问题1-3:因特网使用的IP协议是无连接的,因此其传输是不可靠的。这样容易使人们感到因特网很不可靠。那么为什么当初不把因特网的传输 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 成为可靠 的, 答:这个问题很重要,需要多一些篇幅来讨论。 先打一个比方。邮局寄送的平信很像无连接的IP数据报。每封平信可能走不同的传送路径,同时平信也不保证不丢失。当我们发现收信人没有收到寄出的平信时,去找邮局索赔是没有用的。邮局会说:―平信不保证不丢失。怕丢失就请你寄挂号信‖。但是大家并不会将所有的信件都用挂号方式邮寄,这是因为邮局从来不会随意地将平信丢弃,而丢失平信的概 率并不大,况且寄挂号信要多花3元钱,还要去邮局排队,太麻烦。总之,尽管寄平信有可能会丢失,但绝大多数的信件还是平信,因为寄平信方便、便宜。 我们知道,传统的电信网的最主要的用途是进行电话通信。普通的电话机很简单,没有什么智能。因此电信公司就不得不把电信网设计得非常好,这种电信网可以保证用户通话时的通信质量。这点对使用非常简单的电话机的用户则是非常方便的。但电信公司为了建设能够确保传输质量的电信网则付出了巨大的代价(使用昂贵的程控交换机和网管系统)。 数据的传送显然必须是非常可靠的。当初美国国防部在设计ARPANET(阿帕网)时有一个很重要的讨论内容就是:―谁应当负责数据传输的可靠性,‖这时出现了两种对立的 意见 文理分科指导河道管理范围浙江建筑工程概算定额教材专家评审意见党员教师互相批评意见 。一种意见是主张应当像电信网那样,由通信网络负责数据传输的可靠性(因为电信网的发展历史及其技术水平已经证明了人们可以将网络设计得相当可靠)。但另一种意见则坚决主张由用户的主机负责数据传输的可靠性。这里最重要的理由是:这样可以使计算机网络便宜、灵活,同时还可以满足军事上的各种特殊的需求。下面用一个简单例子来说明这一问题。 。 提出这种思路的人认为,计算机网络和电信网的一个重大区别就是终端设备的性能差别很大。电信网的终端是非常简单的、没有什么智能的电话机。因此电信网的不可靠必然会严重地影响人们利用电话的通信。但计算机网络的终端是有很多智能的主机。这样就使得计算机网络和电信网有两个重要区别。第一,即使传送数据的因特网有一些缺陷(如造成比特差错或分组丢失),但具有很多智能的终端主机仍然有办法实现可靠的数据传输(例如,能够及时发现差错并通知发送方重传刚才出错的数据)。第二,即使网络可以实现100%地无差错传输,端到端的数据传输仍然有可能出现差错。为了说明这点,我们可以用一个简单例子来说明这个问题。这就是主机A向主机B传送一个文件的情况。 文件是通过一个文件系统存储在主机A的硬盘中。主机B也有一个文件系统,用来接收和存储从A发送过来的文件。应用层使用的应用程序现在就是文件传送程序,这个程序一部分在主机A运行,另一部分在主机B运行。现在讨论文件传送的大致步骤。 (1) 主机A的文件传送程序调用文件系统将文件从硬盘中读出。然后文件系统将文件 传递给文件传送程序。 (2) 主机A请求数据通信系统将文件传送到主机B。这里包括使用一些通信协议和将 数据文件划分为适当大小的分组。 (3) 通信网络将这些数据分组逐个传送给主机B。 (4) 在主机B,数据通信协议将收到的数据传递给文件传送应用程序在主机B运行的 那一部分。 (5) 在主机B,文件传送程序请求主机B的文件系统将收到的数据写到主机B的硬盘 中。 在以上的几个步骤中,都存在使数据受到损伤的一些因素。例如: (1) 虽然文件原来是正确写在主机A的硬盘上,但在读出后就可能出现差错(如在磁 盘存储系统中的硬件出现了故障)。 (2) 文件系统、文件传送程序或数据通信系统的软件在对文件中的数据进行缓存或复 制的过程中都有可能出现故障。 (3) 主机A或B的硬件处理机或存储器在主机A或B进行数据缓存或复制的过程中也 有可能出现故障。 (4) 通信系统在传输数据分组时有可能产生检测不出来的比特差错或甚至丢失某些分 组。 (5) 主机A或B都有可能在进行数据处理的过程中突然崩溃。 由此可看出,即使对于这样一个简单的文件传送任务,仅仅使通信网络非常可靠并不能保证文件从主机A硬盘到主机B硬盘的传送是可靠的。也就是说,花费很多的钱将通信网络做成为非常可靠的,对传送计算机数据来说是得不偿失的。既然现在的终端设备有智能,就应当把网络设计得简单些,而让具有智能的终端来完成―使传输变得可靠‖的任务。 于是,计算机网络的设计者采用了一种策略,这就是―端到端的可靠传输‖。更具体些,就是在运输层使用面向连接的TCP协议,它可保证端到端的可靠传输。只要主机B的TCP发现了数据的传输有差错,就告诉主机A将出现差错的那部分数据重传,直到这部分数据正确传送到主机B为止(见第5章)。而TCP发现不了数据有差错的概率是很小的。采用这样的建网策略,既可以使网络部分价格便宜和灵活可靠,又能够保证端到端的可靠传输。 这样,我们可以这样想像,将因特网的范围稍微扩大一些,即扩大到主机中的运输层(请参考前面的图)。由于运输层使用了TCP协议,使得端到端的数据传输成为可靠的,因此这样扩大了范围的因特网就成为可靠的网络。 因此,说―因特网提供的数据传输是不可靠的‖或―因特网提供的数据传输是可靠的‖这两种说法都可以在文献中找到,问题是是怎样界定因特网的范围。如果说因特网提供的数据传输是不可靠的,那么这里的因特网指的是不包括主机在内的网络(仅有下三层)。说因特网提供的数据传输是可靠的,就表明因特网的范围已经扩大到主机的运输层。 再回到通过邮局寄平信的例子。当我们寄出一封平信后,可以等待收信人的确认(通过他的回信)。如果隔了一些日子还没有收到回信,我们可以将该信件再寄一次。这就是将―端到端的可靠传输‖的原理用于寄信的例子。 -4:在具有五层协议的体系结构中,如果下面的一层使用面向连接服务 问题1 或无连接服务,那么在上面的一层是否也必须使用同样性质的服务呢,或者说,是否我们可以在各层任意使用面向连接服务或无连接服务呢, 答:实际上,在五层协议栈中,并非在所有的层次上都存在这两种服务方式的选择问题。 在网络层由于现在大家都使用IP协议,它只提供一种服务,即无连接服务。在使用IP协议的网络层的下面和上面,都可以使用面向连接服务或无连接服务。 已经过时的OSI体系结构在网络层使用面向连接的X.25协议。但在因特网成为主流计算机网络后,即使还有很少量的X.25网在使用,那也往往是在X.25协议上面运行IP协议, 即IP网络把X.25网【X.25网络是第一个面向连接的网络,也是第一个公共数据网络.其数据分组包含3字节头部和128字节数据部分.它运行10年后,20世纪80年代被无错误控制,无流控制,面向连接的新的叫做帧中继的网络所取代.90年代以后,出现了面向连接的ATM网络. 】当作一种面向连接的链路使用(见教材5.1.2节的讨论)。 在网络层下面的数据链路层可以使用面向连接服务(如使用拨号上网的PPP协议,见教材3.6节),即IP可运行在面向连接的网络之上。 但网络层下面也可以使用无连接服务(如使用以太网,见教材4.2节),即IP可运行在无连接网络之上。 网络层的上面是运输层。运输层可以使用面向连接的TCP,也可以使用无连接的UDP。 问题1-5:在运输层应根据什么原则来确定应当使用面向连接服务还是无连接服务, 答:根据上层应用程序的性质。 例如,在传送文件时要使用文件传送协议FTP,而文件的传送必须是可靠的,因此在运输层就必须使用面向连接的TCP协议。但是若应用程序是要传送分组话音或视频点播信息,那么为了要保证信息传输的实时性,在运输层就必须使用无连接的UDP协议(见教材10.1节)。 另外,选择TCP或UDP时还需考虑对连接资源的控制。若应用程序不希望在服务器端同时建立太多的TCP连接时,可考虑采用UDP。 问题1-6:在数据链路层应根据什么原则来确定应当使用面向连接服务还是无连接服务, 答:在设计硬件时就能够确定。例如,若采用拨号电路,则数据链路层将使用面向连接服务。但若使用以太网,则数据链路层使用的是无连接服务。 问题1-7:TCP/IP的体系结构到底是四层还是五层, 答:在一些书籍和文献中的确见到有这两种不同的说法。能否这样理解:四层或五层都关系不大。因为TCP/IP体系结构中最核心的部分就是靠上面的三层:应用层、运输层和网络层。至于最下面的是一层——网络接口层,还是两层——网络接口层和物理层,这都不太重要,因为TCP/IP本来就没有为网络层以下的 层次制定什么标准。TCP/IP的思路是:形成IP数据报后,只要交给下面的网络 去发送就行了,不必再考虑得太多。用OSI的概念,将下面的两层称为数据链 路层和物理层是比较清楚的。 -8:我们常说―分组交换‖。但又常说―路由器转发IP数据报‖或―路由器转 问题1 发帧‖。究竟―分组‖一词应当用在什么场合, 答:―分组‖(packet)也就是―包‖,它是一个不太严格的名词,意思是将若干个比 特加上首部的控制信息就封装在一起,组成一个在网络上传输的数据单元。在数 据链路层这样的数据单元叫做―帧‖。而在IP层(即网络层)这样的数据单元就 叫做―IP数据报‖。在运输层这样的数据单元就叫做―TCP报文段‖或―UDP用户数 据报‖。但在不需要十分严格和不致弄混的情况下,有时也都可笼统地采用―分组‖ 这一名词。这点请读者注意。 OSI为了使数据单元的名词准确,就创造了―协议数据单元‖PDU这一名词。在 数据链路层的PDU叫做DLPDU,即―数据链路协议数据单元‖。在网络层的PDU叫做―网络协议数据单元‖NPDU。在运输层的PDU叫做―运输协议数据单 元‖TPDU。虽然这样做十分严格,但过于繁琐,现在已没有什么人愿意使用这样 的名词。 问题1-9:到商店购买可一个希捷公司生产的80 G的硬盘。安装到电脑上以后 用 WINDOWS的资源管理器发现在该磁盘的―属性‖中只有74.5 G。是不是商店出 了差错, 9答:不是。这个因为希捷公司的硬盘标记中的G表示10,而微软公司 WINDOWS软件中 的G表示230。。即希捷的80 G和微软的74.5 G相等。 问题1-10:有这样的说法:习惯上,人们都将网络的―带宽‖作为网络所能传送 的―最高数据率‖的同义语。这样的说法有何根据, 答:我还没有找到这种说法出自哪一个国际标准文件或重要的RFC文件(欢 迎读者告诉我)。但是在一些著名国外教材中可以找到类似的说法。例如, 在本书附录C的[PETE00]一书的第18页上写着: If you see the word ―bandwidth‖ used in a situation in which it is being measured in hertz, then it probably refers to the range of signals that can be accommodated. When we talk about the bandwidth of a communication link, we normally refer to the number of bits per second that can be transmitted on the link. 又如附录C中的[COME04]一书的第245页上有这样两句话: Throughput is a measure of the rate at which data can be sent through the network, and is usually specified in bits per second (bps). …In fact, the term bandwidth is sometimes used as a synonym for throughput. 问题1-11:有时可听到人们将―带宽为10 Mb/s的以太网‖说成是―速率(或速度)为10 Mb/s的以太网‖或―10兆速率(或速度)的以太网‖。试问这样的说法正确 否, 答:这种说法的确在网络界很常见。 例如,当10 Mb/s以太网升级到100 Mb/s时,这种100 Mb/s的以太网就称为快速以太网,表明速率提高了。当调制解调器每秒能够传送更多的比特时就称为高速调制解调器。当网络中的链路带宽增加时,也常说成是链路的速率提高了。因此在计算机网络领域,―速率‖和―带宽‖有时是代表同样的意思。 但我们必须对网络的―速度‖有正确的理解。。 我们早已在物理课程中学过,速率(或速度)的单位是―米/秒‖。我们谈到―高速火车‖是指这种火车在单位时间内行驶的距离增大了。但―网络提速‖并不是指 /秒‖),而是说网络的传输速率(更多的信号在网络上传播得更快了(更多的―米 ―比特/秒‖)提高了。 这里特别要注意,―传播‖(propagation或propagate)和―传输‖(transmission或transmit)这两个中文名词仅一字之差,但意思却差别很大。 传播速率:信号比特在传输媒体上的传播速率就是电磁波在单位时间内能够在传输媒体上的走多少距离。这个速率大约只有电磁波在真空中的传播速率的2/3左右。或者说,信号比特在传输媒体上1微秒可传播200米左右的距离。 传输速率:计算机每秒钟可以向所连接的媒体或网络注入(也就是发送)多少个比特则是传输速率。若计算机在单位时间内能够发送更多的比特也就是―发送速率提高了‖,但一定要弄清,这里的―速率‖指的―比特/秒‖而不是指―米/秒(传 播速率)‖。 由此可见,当我们使用―速率‖表示―比特/秒‖时,就应当将其理解为主机向链路(或网络)发送比特的速率。这也就是比特进入链路(或网络)的速率。 同理,传播时延和传输时延的意思也是完全不同的。由于传输时延很容易和传播时延弄混,因此最好使用发送时延来代替传输时延这个名词。请记住: 发送时延 = 传输时延 传播时延 问题1-12:有人说,宽带信道相当于高速公路车道数目增多了,可以同时并行地跑更多数 量的汽车。虽然汽车的时速并没有提高(这相当于比特在信道上的传播速率没有提高),但整个高速公路的运输能力却增多了,相当于能够传送更多数量的比特。这种比喻合适否, 答:可以这样比喻。但一定不能误认为―提高信道的速率是设法使比特并行地传输‖。 如果一定要用汽车在高速公路上跑和比特在通信线路上传输相比较,那么可以这样来想像。低速信道相当于汽车进入高速公路的时间间隔较长。例如,每隔一分钟有一辆汽车进入高速公路。―信道速率提高‖相当于进入高速公路的汽车的时间间隔缩短了,例如,现在每隔6秒钟就有一辆汽车进入高速公路。虽然汽车在高速公路上行驶的速度没有变化,但在同样时间内,进入高速公路的汽车总数却增多了(每隔一分钟进入高速公路的汽车现在增加到10辆),因而吞吐量也就增大了。 下面给出一个图,可帮助理解这一概念。 假定一条链路的传播速率为。这相当于电磁波在该媒体上可向前传播200 m。若链路带宽为1 Mb/s,则主机在内可向链路发送1 bit数据。 图中用横坐标表示距离(请注意,横坐标不是时间)。当t = 0时开始向链路发送数据。这样,我们有: 当时,信号传播到200 m处。注入到链路上1个比特。 当时,信号传播到400 m处。注入到链路上共2个比特。 当 8bit数据。显然,发送速率提高了。然而这些数据比特在链路上的传播速率(m/s)并没有任何变化,即传播速率仍然是。这点从图的上下两部分对比即可看出: 当时,信号仍然是传播到200 m处。但注入到链路上已有10个比特。 当时,信号仍然是传播到400 m处。但注入到链路上已有20个比特。 当时,信号仍然是传播到600 m处。但注入到链路上已有30个比特。 也就是说,当带宽或发送速率提高后,比特在链路上向前传播的速率并没有提高,只是每秒钟注入到链路的比特数增加了。―速率提高‖就体现在单位时间内发送到链路上的比特数增多了,而并不是比特在链路上跑得更快。 问题1-13:如果用时延带宽积管道来比作传输链路,那么是否宽带链路对应的时延带宽积 答:长 的情当时,管道中的比特数(即注入到链路上的比特数)分别为1 bit和10 bit。 当时,管道中的比特数(即注入到链路上的比特数)分别为2 bit和20 bit。 当t = 时,管道中的比特数(即注入到链路上的比特数)分别为3 bit和30 bit。 问题1-14:网络的吞吐量与网络的时延有何关系, 答:本来吞吐量和时延是两个完全不同的概念,似乎它们应当是彼此无关的。然而,吞吐量和时延却是密切相关的。 当网络的吞吐量增大时,分组在路由器中等待转换时就会经常处在更长的队列中,因而增加了排队的时间。这样,时延就会增大。当吞吐量进一步增加时,还可能产生网络的拥塞(见教材的5.3节)。这时整个网络的时延将大大增加。可见吞吐量与时延的关系是非常密切的。这个问题可参考教材的附录A的图A-8。 问题1-15:什么是―无缝的‖、―透明的‖和―虚拟的‖, 答:―无缝的‖(seamless)用于网络领域时表示几个网络的互连对用户来说就好像是一个网络。这是因为互连的各网络都使用统一的网际协议IP,都具有统一的IP地址,就好像所有网络 上的主机和路由器都连接在一个大的互连网上。用户看不见各个不同的网络相连接的―缝‖,因此称这种连接为―无缝的‖。在这个意义上讲,―无缝的‖和―透明的‖意思很相近。 当―无缝的‖用于计算机程序时,表示有几个程序联合起来完成一项任务,但对用户来说只有一个接口,这样的接口叫做―无缝的用户接口‖,表示程序之间的其他一些接口对用户是不可见的。 ―透明的‖(transparent)表示实际上存在的东西对我们却好像看不见一样。例如,网络的各层协议都是相当复杂的。当我们在电脑上编辑好一封邮件后,只要用鼠标点击一下―发送‖按钮,这封电子邮件就发送出去了。实际上,我们的电脑要使用好几个网络协议。可是这些复杂的过程我们都看不见。因此,这些复杂的网络协议对网络用户来说都是―透明的‖。意思是:这些复杂的网络协议虽然都是存在于电脑中,但用户却看不见(如果要看,就要使用专门的网络软件)。 我们在使用调制解调器上网时是使用PPP协议。不管我们发送什么样的字符,PPP协议都可以进行传输。那么这种传输方式叫做―透明传输‖。 有时我们也说网络是透明的。这表示对应用程序来说,只要将要做的事情交给应用层下面的应用编程接口API,后面的事情就不必管了。网络程序会将应用程序传送到远地的目的进程。因此这个网络的复杂机制对端用户来说也是看不见的,因而是透明的。 ―虚拟的‖(virtual)表示看起来好像存在但实际上并不存在。―虚拟的‖有时可简称为―虚‖。如―虚电路‖就表示看起来好像有这样一条电路,但实际上并不存在。―虚拟局域网‖VLAN表示看起来这几个工作站组成了一个局域网,但实际上并不是这样。 读者应当注意到,从字典上看,英文字virtual还有―实际上的‖、―实质上的‖、―现实的‖等意思。这正好和―虚拟的‖相差很大。 问题1-16:在教材的1.7.2节提到协议有三个要素,即语法、语义和同步。语义是否已经包括了同步的意思, 答:―语义‖并不包括―同步‖。―语义‖指出需要发出何种控制信息、完成何种动作以及做出何种响应。但―语义‖并没有说明应当在什么时候做这些动作。而‖同步‖则详细说明这些事件实现的顺序(例如,若出现某个事件,则接着做某个动作)。 问题1-17:为什么协议不能设计成100%可靠的, 答:设想某一个要求达到100%可靠的协议需要A和B双方交换信息共N次,而这N次交换信息都是必不可少的。也就是说,在所交换的N次信息中没有冗余的。 假定第N次交换的信息是从B发送给A。 B发送给A的这个信息显然是需要A加以确认的。这是因为:若不需要A的确认,则表示B发送这个信息丢失了或出现差错都不要紧。这就是说,B发送的这个信息是可有可无的。如果B发送的这个信息是可有可无的,那么最后这次的信息交换就可以取消,因而这个协议就只需要A和B交换信息N – 1次而不是N次。这就和原有的假定不符。 如果B发送的这个最后的信息是需要A加以确认的,那么这个协议需要A和B交换信息的次数就不是N次,而是还要增加一次确认(A向B发送的确认), 即总共需要交换信息N + 1次。 但这就和原来假定的―双方交换信息共N次‖相矛盾。 显然,这个矛盾无法解决。这样就证明了协议不能设计成100%可靠的。 然而在非常重要的任务中,协议可以设计成非常接近于100%可靠。 问题1-18:什么是因特网的摩尔定律, 答:因特网的三十年发展历史的统计资料表明,因特网上的通信量大约每年要翻一番(―大约‖是指每年大约增长75%至150%),这被称为因特网的摩尔定律(Moore’s Law)。 穆尔定律本来是说明集成电路芯片上的元器件密度平均每隔18个月翻一番。穆尔定律不是自然定律,而是来自技术、社会学和经济学等许多复杂因素的相互作用。 问题2-1:―规程‖、―协议‖和 ―规约‖都有何区别, 答:在数据通信的早期,对通信所使用的各种规则都称为―规程‖(procedure)。后来具有体系结构的计算机网络就开始使用―协议‖(protocol)这一名词。以前的―规程‖其实就是―协议‖,但由于习惯,对以前制定好的规程有时仍常用旧的名称―规程‖。 ―规约‖则是另一个名词。根据《现代汉语辞典》,―规约‖是:经过相互协议规定下来的共同遵守的条款。因此按这种解释,―规约‖和―协议‖应当是可以混用的。但是,在全国自然科学名词审定委员会公布的计算机科学技术名词中[MINGCI94]已经明确规定了: protocol的标准译名是―协议‖ specification的标准译名是―规约‖和又称―规格说明‖(这里的―又称‖是―不推荐用名‖)。 因此最好不要将―规约‖来表示protocol。 在[MINGCI94]中,procedure的标准译名是―规程‖。 问题2-2:在许多文献中经常见到人们将―模拟‖与―仿真‖作为同义语。那么,―模拟信道‖能否说成是―仿真信道‖, 答:在[MINGCI94]中规定了: ―仿真‖对应的英文名词是:―emulation‖和―simulation‖ ―模拟‖对应的英文名词是:―simulation‖和―analogy‖ 可见在计算机仿真领域里,―仿真‖和―模拟‖是同义语。 但是,―模拟‖对应的英文名词却有两个。所以见到―模拟‖二字还不能立即确定它的意思是―simulation‖还是―analogy‖。这必须看上下文。 ―模拟信道‖(analog channel)是和―数字信道‖(digital channel)相比而言的。因此, 将这里的―模拟信道‖说成是―仿真信道‖是不可以的。 问题2-3:为什么电话信道的标准带宽是3.1 kHz, 答:人耳所能够听到的声音范围约在16 ~ 20000 Hz之间(实际上,很多人能够听到的声音 范围只有20 ~ 16000 Hz左右)。经过实际测量,发现只要保留话音频谱中300 ~ 3400 Hz这段较窄范围内的声音(即切除频率在300 Hz以下和3400 Hz以上的声音),仍可以相当清晰地听清楚这样的话音信号。这就是说,反映话音主要特征的能量是集中在300 ~ 3400 Hz这一范围内。于是人们就将电话信道的标准带宽定为3400 – 300 = 3100 Hz。 在传输电话信号时由于只需传输3100 Hz的信号,就可节省很多传输带宽,使得同一个传输媒体可以同时传输更多路数的电话信号。由于过去的电话传输都是采用频分复用,为了使每一路电话信号不干扰相邻的话路,在每一路电话信号的频谱两侧要留有几百赫兹的保护带宽。因此实际上每一个话路占用的标准带宽是4000 Hz,即4 kHz。这样,我们可能见到关于电话带宽的两种说法,即3.1 kHz和4 kHz。这两种说法实质上是一样的,即一个不包含保护带宽而另一个包含保护带宽。为了便于讨论问题,―4 kHz带宽‖这种说法使用得非常广泛。 问题2-4:奈氏准则和香农公式的主要区别是什么,这两个公式对数据通信的意义是什么, 答:奈氏准则指出了:码元传输的速率是受限的,不能任意提高,否则在接收端就无法正确判定码元是1还是0(因为有码元之间的相互干扰)。 奈氏准则是在理想条件下推导出的。在实际条件下,最高码元传输速率要比理想条件下得出的数值还要小些。电信技术人员的任务就是要在实际条件下,寻找出较好的传输码元波形,将比特转换为较为合适的传输信号。 需要注意的是,奈氏准则并没有对信息传输速率(b/s)给出限制。要提高信息传输速率就必须使每一个传输的码元能够代表许多个比特的信息。这就需要有很好的编码技术。 香农公式给出了信息传输速率的极限,即对于一定的传输带宽(以赫兹为单位)和一定的信噪比,信息传输速率的上限就确定了。这个极限是不能够突破的。要想提高信息的传输速率,或者必须设法提高传输线路的带宽,或者必须设法提高所传信号的信噪比,此外没有其他任何办法。至少到现在为止,还没有听说有谁能够突破香农公式给出的信息传输速率的极限。 香农公式告诉我们,若要得到无限大的信息传输速率,只有两个办法:要么使用无限大的传输带宽(这显然不可能),要么使信号的信噪比为无限大,即采用没有噪声的传输信道或使用无限大的发送功率(当然这些也都是不可能的)。 问题2-5:传输媒体是物理层吗,传输媒体和物理层的主要区别是什么, 问题 答:按照Webster字典的解释: synchronous: 1. happening at the same time; occurring together; simultaneous. 2. having the same period between movements, occurrences, etc.; having the same rate and phase, as vibrations. ‖可理解为―不是同步‖。 ―异步 在计算机网络中,―同步‖的意思很广泛,它没有一个简单的定义。在很多地方都用到―同步‖的概念。例如在协议的定义中,协议的三个要素之一就是―同步‖。在网络通信编程中常提到的―同步‖,则主要指某函数的执行方式,即函数调用者需等待函数执行完成后才能进到下一步。在数据通信中的同步通信则是与异步通信游很大的区别(见问题2-7)。 问题2-7:同步通信和异步通信的区别是什么, 答:―异步通信‖是一种很常用的通信方式。异步通信在发送字符时,所发送的字符之间的时间间隔可以是任意的。当然,接收端必须时刻做好接收的准备(如果接收端主机的电源都没有加上,那么发送端发送字符就没有意义,因为接收端根本无法接收)。发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。异步通信的好处是通信设备简单、便宜,但传输效率较低(因为开始位和停止位的开销所占比例较大)。 异步通信也可以是以帧作为发送的单位。接收端必须随时做好接收帧的准备。这是,帧的首部必须设有一些特殊的比特组合,使得接收端能够找出一帧的开始。这也称为帧定界。帧定界还包含确定帧的结束位置。这有两种方法。一种是在帧的尾部设有某种特殊的比特组合来标志帧的结束。或者在帧首部中设有帧长度的字段。需要注意的是,在异步发送帧时,并不是说发送端对帧中的每一个字符都必须加上开始位和停止位后再发送出去,而是说,发送端可以在任意时间发送一个帧,而帧与帧之间的时间间隔也可以是任意的。在一帧中的所有比特是连续发送的。发送端不需要在发送一帧之前和接收端进行协调(不需要先进行比特同步) ―同步, 问题答:是数据传输的最小单位。位同步(比特同步)是指接收端时钟已经调整到和发送端时钟完全一样,因此接收端收到比特流后,就能够在每一位的中间位置进行判决(如下图所示)。位同步(比特同步)的目的是为了将发送端发送的每一个比特都正确地接收下来。这就要在正 图中下面部分的异步通信方式在计算机网络中使用得较多。我们可以注意到,数据帧在接收端出现的时间是不规则的。因此在接收端必须进行帧定界。但帧定界也常称为帧同步。因此,当我们看到―帧同步‖时,应当弄清这是同步通信中的帧同步,还是异步通信中的帧定界。 这里我们要强调一下,在异步通信时,接收端即使找到了数据帧的开始处,也还必须将数据帧中的所有比特逐个接收下来。因此,接收端必须和数据帧中的各个比特进行比特同步(这就是异步通信中的同步问题)。试想:如果接收端不知道每一个比特要持续多长时间,那怎样能将一个个比特接收下来呢,因此,不管是同步通信还是异步通信,要想接收比特块中的每一个比特,就必须和比特块中的比特进行位同步(比特同步)。然而在异步通信中,位同步(比特同步)的方法和同步通信时并不完全一样。 在同步通信中,最精确的同步方法是使全网时钟精确同步。全网的主时钟的长期精度要求达到 ,因此必须采用原子钟(例如,铯原子钟),但这样的同步网络的价格很高(如SDH/SONET网络)。实际上,在同步通信中,也可以采用比较经济的方法实现同步。这种方法就是在接收端设法从收到的比特流中将位同步的时钟信息提取出来(发送端在发送比特流时,发送时钟的信息就已经在所发送的比特流之中了)。这种同步方式常称为准 同步(plesiochronous)。在教材中的图3-16中介绍的曼彻斯特编码就能够使接收端很方便地从收到的比特流中将时钟信息提取出来,这样就能够很容易地实现位同步。在以帧为传送单位的异步通信中,接收端通常也是采用从收到的比特流中提取时钟信息的方法来实现位同步。 在以字符为单位的异步通信中,由于每一个字符只有8个比特,因此只要收发双方的时钟频率相差不太大,在开始位的触发下,这8个比特的位同步很容易做到,因此不需要采取其他措施来实现位同步(但不等于说可以不要位同步)。 问题3-1:旧版的《计算机网络》认为数据链路层的任务是在两个相邻结点间的线路上无差错地传送以帧(frame)为单位的数据。数据链路层可以把一条有可能出差错的实际链路,转变成为让网络层向下看起来好像是一条不出差错的链路。 但最近新版的《计算机网络》(第4版和第5版)中对数据链路层的提法就改变了。数据链路层的传输不能让网络层向下看起来好像是一条不出差错的链路。到底哪一种说法是正确的, 答:旧版的《计算机网络》对数据链路层的阐述是基于OSI体系结构的。OSI体系结构的数据链路层采用的是面向连接的HDLC(高级数据链路控制)协议,它提供可靠传输的服务。因此,旧版《计算机网络》的提法对OSI体系结构是正确的。 2003年以后新版的《计算机网络》更加突出了TCP/IP体系结构。现在因特网的数据链路层协议使用得最多的就是PPP协议和CSMA/CD协议(这种情况就是使用拨号入网或使用以太网入网)。这两种协议都不使用序号和确认机制,因此也就不能―让网络层向下看起来好像是一条不出差错的链路。‖因此,新版《计算机网络》的提法符合当前计算机网络的现状。当接收端通过差错检测发现了帧在传输中出了差错,或者默默丢弃(silently discard)而不进行任何其他处理(当使 用PPP协议或CSMA/CD协议时),这是现在的大多数情况;或者使用重传机制要求发送方重传(当使用HDLC协议时),但这种情况现在很少使用。 如果需要可靠传输,那么就由高层的TCP协议负责重传。但数据链路层并不知道这是重传的帧。 -2:当数据链路层使用PPP协议或CSMA/CD协议时,既然不保证可靠 问题3 传输,那么为什么对所传输的帧进行差错检验呢, 答:当数据链路层使用PPP协议或CSMA/CD协议时,在数据链路层的接收端对所传输的帧进行差错检验是为了不将已经发现了有差错的帧(不管是什么原因造成的)收下来。如果在接收端不进行差错检测,那么接收端上交给主机的帧就可能包括在传输中出了差错的帧,而这样的帧对接收端主机是没有用处的。 换言之,接收端进行差错检测的目的是:―上交主机的帧都是没有传输差错的,有差错的都已经丢弃了‖。或者更加严格地说,应当是:―我们以很接近于1的概率认为,凡是上交主机的帧都是没有传输差错的‖。 数据链路层只保证接收到的数据的正确性(极小概率下也会出错,可以忽略)。 但是链路层不保证完整性,也就是说可能会丢掉一些包; 同时数据链路层也不保证顺序,也就是先发的数据包可能晚到; 传输层就要解决丢包、乱序这些数据链路层没有解决的问题。并且数据链路层是两个属于同一链路的设备之间的通信,而传输层是端到端的(中间可能存在多个独立的链路,丢包、乱序这些问题可能在某个链路中出现,也可能在中间的某个转发设备,比如路由器,上出现)。传输层其实也不是纠错,而是要求重传。 问题3-3:为什么旧的版本教材在数据链路层一章中讲授可靠传输,但现在新的版本教材则取消了可靠传输, 答:保证可靠传输的停止等待协议是计算机网络协议的基础内容之一。新的版本只是挪动了可靠传输这部分内容的位置,而不是取消这部分内容。 把这部分放在前面的数据链路层一章中讲的好处是可以更早些建立可靠传输的概念(因为我们是自下而上,先讲数据链路层,后讲运输层)。但缺点是实际上的数据链路层现在基本上并不使用可靠传输,因此放在数据链路层中讲可靠传输有些不符合实际。况且以后到运输层用到可靠传输时,学生有可能又会遗忘了一些。 把这部分内容放在运输层中讨论的好处是比较符合实际情况,讲完简单的可靠传输的概念后,接着就介绍比较复杂的滑动窗口概念可以取得更好的效果。这也是作者试图改变一下整个教材的结构的一种尝试。 问题3-4:通过普通的电话用户线拨号上网时(使用调制解调器),试问一对用户线可容许多少个用户同时上网, 答:这并没有限制。但用户数目越多,则每一个用户的上网速率就越低。 多个用户共同使用一对电话线拨号上网有时是很有用的。例如,一个办公室内只有一对电话用户线可供拨号上因特网,但办公室内有多人在办公,他们都有自己的PC机,而且都想同时使用拨号上网。这时可将所有用户的PC机都用以太网连接起来(当然每一台PC机都必须安装一个以太网卡)。只有一台PC机要特 殊些,即需要同时安装以太网卡和拨号上网卡(或使用外置的调制解调器)。这台特殊的PC机通常叫做代理服务器,它通过调制解调器用拨号方式与本地的ISP相连。代理服务器必须安装专门的软件(如Wingate 2.0),同时还要完成一些必要的配置,这样就能使连接在以太网上的各PC机用共享一个调制解调器的方式同时上网。ISP并不知道有多少人共享一个调制解调器。ISP只知道现在是这台代理服务器在使用拨号上网。ISP只分配一个临时的IP地址给此代理服务器暂时使用。 -5:除了差错检测外,面向字符的数据链路层协议还必须解决哪些特殊 问题3 的问题, 答:最主要的就是要解决帧定界和透明传输的问题。 束)EOTEOT 的问题。 透明传输实际上就是随便什么字符都可以传输。但设想我们在帧中传送的字符出现了一个控制字符―EOT‖。那么接收端收到这样的数据后,就会将原来的SOH和数据中的―EOT‖ ‖转换于是‖ 答:进程将数据直接发送给接收进程,那么这两个动作(一个是发送,另一个是接收)是非常难协调好的。这是因为计算机的动作很快,如果在某一时刻接收进程开始执行接收的动作,但发送进程的发送动作稍微早了一点或稍微晚了一点(在收发双方事先未进行同步的情况下,发送时刻不可能恰好和接收时刻精确地重合),这都会使接收失败。因此,在计算机进程之间的通信过程中,广泛使用缓存。 缓存就是在计算机的存储器中设置的一个临时存放数据的空间。发送进程将欲发送的数据先写入缓存,然后接收进程在合适的时机读出这些数据。 缓存有点像邮局在街上设立的邮筒。我们可以在我们方便时将欲发送的信件丢到邮筒中。邮局的邮递员按照他的计划在适当时候打开邮筒,将大家投入的信件取走,交到邮局,进行下一步处理。 缓存可以很好地解决发送速率和接收速率不一致的矛盾,还可以很方便地进行串并转换,即比特流串行写入并行读出,或并行写入串行读出。 缓存也可称为―缓冲‖或―缓冲区‖。英文就是buffer。 问题3-7:以太网使用载波监听多点接入碰撞检测协议CSMA/CD。频分复用FDM才使用载波。以太网有没有使用频分复用, 答:这里的―载波‖并非指频分复用FDM的载波。CSMA/CD协议的发明者故意使用了大家早已熟悉的旧名词Carrier(载波),来表示连接在以太网上的工作站检测到了其他工作站发送到以太网上的电信号。 问题3-8:在以太网中,不同的传输媒体会产生不同的传播时延吗, 答:是的。在以太网中,不同的传输媒体会产生不同的传播时延。下面是典型的测量结果: 在上表中,c是光在真空中的传播速度,即。 问题3-9:在以太网中发生了碰撞是否说明这时出现了某种故障, 答:还不能这样看。 以太网中发生碰撞是很正常的现象。发生碰撞只是表明在以太网上同时有两个或更多的站在发送数据。碰撞的结果是这些站所发送的数据都没有用了,都必须进行重传。以太网上发生碰撞的机会是多还是少,与以太网上的通信量强度有很大的关系。这并没有一个绝对的定量的准则。很难说具有多大的碰撞次数就属于坏的以太网。 问题3-10:从什么地方可以查阅到以太网帧格式中的―类型‖字段是怎样分配的, 答:可到下面的URL查阅: 问题3-11:是什么原因使以太网有一个最小帧长和最大帧长, 答:设置最小帧长是为了区分开噪声和因发生碰撞而异常中止的短帧。 设置最大帧长是为了保证个站都能公平竞争接入到以太网。因为如果某个站发送特长的数据帧,则其他的站就必须等待很长的时间才能发送数据。 问题3-12:在双绞线以太网中,其连接导线只需要两对线:一对线用于发送,另一对线用于接收。但现在的标准是使用RJ-45连接器。这种连接器有8根针脚,一共可连接4对线。这是否有些浪费,是否可以不使用RJ-45而使用RJ-11? 答:对于10BASE-T以太网的确只使用两对线。这样在RJ-45连接器中就空出来4根针脚。到对100BASE-T4快速以太网,则要用到4对线,即8根针脚都要用到。 顺便指出,采用RJ-45而不采用电话线的RJ-11也是为了避免将以太网的连接线插头错误地插进电话线的插孔内。另外,RJ-11只有6根针脚,而RJ-45有8根针脚。这两种连接 器在形状上的区别见下图所示。 以太网用的插头RJ-45 电话线使用的插头RJ-11 问题3-13:RJ-45连接器对8根针脚的编号有什么规定, 答:RJ-45连接器包括一个插头和一个插孔(或插座)。插孔安装在机器上,而插头和连接 导线(现在最常用的就是采用无屏蔽双绞线的5类线)相连。EIA/TIA制定的布线标准规定了8根针脚的编号。 如果看插孔,使针脚接触点在上方,那么最左边是?,最右边是?(见下图)。 ???????? 如果看插头,将插头的末端面对眼睛,而且针脚的接触点插头的在下方,那么 ,最右边是?(见下图)。请注意,有的文献将插头编号的?指定为最左边是? 最右边的针脚,这是因为他们将插头的针脚接触点画在上方(和我们给出的图正好旋转了180度)。但实际上指的还是同样的针脚。 ???????? 在10 /兆比秒和100 Mb/s以太网中只使用两对导线。也就是说,只使用4根针脚。那么我们应当将导线连接到哪4根针脚呢, 现在标准规定使用下表中的 和2用于发送,3和6用于接收: 答:和3—— 白–橙(就是白色的外层上有些橙色,表示和橙色的是一对线) 4—— 蓝色 5—— 白–蓝(就是白色的外层上有些蓝色,表示和蓝色的是一对线) 6—— 橙色 7—— 白–棕(就是白色的外层上有些棕色,表示和棕色的是一对线) 8—— 棕色 T568B规定的连接方法是: 1—— 白–橙 2—— 橙色 3—— 白–绿 4—— 蓝色 5—— 白–蓝 6—— 绿色 7—— 白–棕(就是白色的外层上有些棕色,表示和棕色的是一对线) 8—— 棕色 在通常的工程实践中,T568B使用得较多。不管使用哪一种标准,一根5类线的两端必须都使用同一种标准。 这里特别要强调一下,线序是不能随意改动的。例如,从上面的连接标准来看,1和2是一对线,而3和6又是一对线。但如果我们将以上规定的线序弄乱,例如,将1和3用作发送的一对线,而将2和4用作接收的一对线,那么这些连接导线的抗干扰能力就要下降,误码率就可能增大,这样就不能保证以太网的正常工作。 问题3-16:不用集线器或以太网交换机,能否将两台计算机用带有RJ-45插头的5类线电缆直接连接起来, 答:可以。但应当注意的是,在这种情况下,电缆线两个RJ-45插头中的一个与导线的连接方法要改变一下,使得从一台计算机发送出来的信号能够直接进入到另一台计算机的接收针脚。具体的连接方法就是: 电缆线的一端 电缆线的另一端 问题答: 问题答线,那么在某些情况下(例如网线很短的10 Mb/s以太网),也许还勉强可以工作。但在这种情况下将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)‖, 答:这都是指使用集线器的双绞线以太网,因为这种以太网在逻辑上和总线以太网一样,都使用CSMA/CD协议,而总线是看不见的,因为集线器中的逻辑电路(好像装在一个盒子中)实现了总线的功能。 问题3-22:以太网的覆盖范围受限的一个原因是:如果站点之间的距离太大,那么由于信号传输时会衰减得很多因而无法对信号进行可靠的接收。试问:如果我们设法提高发送信号的功率,那么是否就可以提高以太网的通信距离, 答:不行。决定能否正确接收信号并非取决于信号的绝对功率大小,而是取决于信噪比。以太网信道中的噪声主要是其他双绞线中的信号通过电磁感应所造成的。如果所有的站都提高信号的发送功率,那么这种噪声功率也随之增大,结果信噪比并未提高,因而并没有降低误码率。所以依靠增大信号的发送功率是不能增大以太网的通信距离的。 问题3-23:一个大学能否就使用一个很大的局域网而不使用许多相互连接的较小的局域网, 答:一般不会使用一个很大的局域网。这是因为使用一个很大的局域网有许多问题: (1) 可能一个局域网无法覆盖整个大学的地理范围; (2) 一个大学需要联网的计算机数量可能超过一个局域网所容许接入的计算机的最大 数量; (3) 很大的局域网不便于管理。 (4) 过大的局域网常常会产生―广播风暴‖,影响局域网的正常工作。 因此,一个大学的校园网通常并不是一个单个的大局域网而是一个互连网,这个互连网由许多较小的局域网通过一些路由器互连而成的。 问题3-24:一个10 Mb/s以太网若工作在全双工状态,那么其数据率是发送和接收各为5 Mb/s还是发送和接收各为10 Mb/s, 答:各为10 Mb/s。 问题3-25:一个单个的以太网上所使用的网桥数目有没有上限, 答:网桥仍然使用CSMA/CD协议,因此,从原理上讲,以太网似乎不应当对网桥的数目有什么限制。但是要知道,每一个网桥会引入一帧的时延。因此,以太网上的网桥太多就会影响到以太网的性能。 问题3-26:当我们在PC机插上以太网的适配器(网卡)后,是否还必须编制以太网所需的MAC协议的程序, 答:不需要。以太网所需的MAC协议的程序都已经固化在适配器(网卡)上的ROM中,而且也无法更改。 问题3-27:使用网络分析软件可以分析出所捕获到的每一个帧的首部中各个字段的值。但是有时却无法找出LLC帧首部的各字段的值。这是什么原因, 答:当MAC帧的长度/类型字段的值大于0x0600(相当于十进制的1536)时,长度/类型字段就表示类型,而这样的帧就不使用LLC帧,当然也就无法得出LLC帧首部的各字段的值。例如,在因特网中的IP数据报从TCP/IP体系中的网络层传送到下面的以太网时,往往是直接将IP数据报封装到MAC帧中而不使用LLC子层。 问题3-28:整个的IEEE 802委员会现在一共有多少个工作组, 答:整个的IEEE 802委员会下属的工作组如下(活跃的只有红字表示的8个): 802.1 高层局域网协议工作组 802.2 逻辑链路控制LLC工作组(不活跃) 802.3 以太网工作组 802.4 令牌总线工作组(不活跃) 802.5 令牌环工作组(不活跃) 802.6 城域网MAN工作组(不活跃) 802.7 宽带TAG(不活跃),TAG (Technical Advisory Group)是技术顾问组 802.8 光纤TAG(已解散) 802.9 等时局域网工作组(不活跃) 802.10 安全工作组(不活跃) 802.11 无线局域网工作组 802.12 需求优先级工作组(不活跃) 802.13 这个编号不使用(某些外国人忌讳数字13) 802.14 电缆调制解调器工作组(不活跃) 802.15 802.16 802.17 802.18 无线个人区域网WPAN工作组 宽带无线接入工作组 弹性分组环工作组 无线规章TAG 802.19 共存(Coexistence) TAG 802.20 移动宽带无线接入MBWA (Mobile Broadband Wireless Access)工作组 802.21 媒体无关切换(Media Independent Handoff)工作组 问题3-29:在一些文献和教材中,可以见到关于以太网的―前同步码‖(preamble)有两种不同的说法。一种说法是:前同步码共8个字节。另一种说法是:前同步码共7个字节,而在前同步码后面还有一个字节的―帧开始定界符‖SFD (Start-of-Frame Delimiter)。那么哪一种说法是正确的呢, 答:都正确。 前一种说法出自最初的以太网标准(即DIX标准),在这个标准中定义了以太网的前同步码的8个字节。 但以后IEEE的802.3标准就将原来8字节的前同步码拆成为两个字段。前一个字段仍叫做前同步码,共7个字节,它就是原来8字节的前同步码中的前7个字节。后一个字段叫做帧开始定界符SFD,只有一个字节长,它就是原来8 字节的前同步码中的最后一个字节。 这两种定义只是字段的名字不同,而8个字节的值都是完全一样的。 问题3-30:802.3标准共包含有多少种协议, 答:802.3标准目前所包含的协议见下表所示。 问题3-31:在802.3标准中有没有对人为干扰信号(jamming signal)制定出标准呢, 答:没有。但很多厂家采用了32 位或48位长的1和0交替的比特块作为人为干扰信号(1010……或0101……)。 问题3-32:在以太网中,有没有可能在发送了512 bit(64 B)以后才发生碰撞, 答:有可能。但这是一种不正常的情况(发生一般的碰撞属于网络正常工作的情况)。这叫做―迟到的碰撞‖(late collision)。 产生迟到的碰撞是因为网络覆盖的地理范围太大了,以致人为干扰信号在网络上传播的时间太长,使得有的站在发送512 bit(64 B)以后才知道在以太网上发生了碰撞。这时该站就立即停止发送数据,但已经发送出去的数据长度却超过了以太网规定的最短长度(64 B)。具有这种大于64字节的MAC帧属于合法的帧。接收端必须将它收下来。当然,在进行差错检测后就可发现这是个有差错的帧,最后还是会将它丢弃。这时,要由高层来进行重传,结果浪费了时间。如果能够及时发现碰撞,则MAC层协议会自动对该帧进行重传,这显然要节省一些时间。 问题3-33:在有的文献中会见到Runt和Jabber这两个名词,它们是什么意思, 答:Runt一词的意思是:发育不全的矮小的植物(或动物)。在以太网中就是指长度小于64字节的无效帧(因为及时检测到碰撞而终止继续发送数据)。 Jabber一词的意思是:急促不清的话,闲聊。在以太网中就是指长度超过1518字节的无效帧(其CRC检验也是有差错的)。这种帧的出现一般是由于网卡有硬件的故障。 问题3-34:当局域网刚刚问世时,总线形的以太网被认为可靠性比星形结构的网络好。但现在以太网又回到了星形结构,使用集线器作为交换结点。那么以前的看法是否有些不正确, 答:不是这样的。 最初大家认为星形结构的网络的可靠性较差。但那是20世纪70年代中期的看法。那时大规模集成电路刚刚起步,集成度还不高,因此若要制作出非常可靠的星形结构的网络交换机,则其费用将是很高的。这就是说,在当时的历史条件下,还很难用廉价的方法实现高可靠性的网络交换机。所以在20世纪70年代中期采 用无源总线结构的以太网确实是比较经济实用的。因此,总线式以太网一问世就受到广大用户的欢迎,并获得了很快的发展。 然而随着以太网上站点数目的增多,由接头数目增多而造成的可靠性下降的问题逐渐暴露出来了。与此同时,大规模集成电路以及专用芯片的发展使得星形结构的集中式网络可以做得既便宜又可靠。在这种情况下,星形结构的集中式网络终于又成为以太网的首选拓扑。现在已很少有人使用老式的总线式以太网了。 问题4-1:存在多种异构网络对不同网络之间的通信会造成一些麻烦。但为 什么世界上还存在多种异构网络, 答:世界上之所以存在着多种异构网络,就是因为仅用一种体系结构的网络根本无法满足所有用户的所有需求。 OSI假定全世界所有的人都在网络层使用X.25协议,并希望使用X.75协议将全球所有 的X.25网络互连起来,从而实现全球任意计算机之间的通信。然而大家并不愿意这样做,结果OSI失败了。这里的原因就是X.25网络并不能满足所有用户的需求,大量的用户还需要使用其他类型的网络。 在计算机网络发展初期,许多厂家都生产出具有自己独特体系结构的计算机网络。这些计算机网络就像一个个孤岛一样,它们是不能互相通信的。如果某公司的雇员需要同时接入到三个不同厂商的计算机网络,那么他就需要用三台终端(即观看三个不同的屏幕显示)分别连接到不同的计算机网络。这显然是很不方便的。 在客观上存在多种异构计算机网络的现实情况下,普遍服务(universal service) 的概念被提出来了。一个计算机通信系统若能够提供普遍服务就表明该系统中的任何一对计算机都能够很方便地进行通信。像全世界的电话网就是能够提供普遍服务的一个成功例子。在世界上存在大量异构计算机网络(它们的网络硬件和物理地址的编址方法都不一样)的现实情况下,要获得普遍服务,的确是相当困难的事。但IP协议成功地解决了这个难题。不管你使用的具体网络采用什么样的硬件结构,但只要你的网络使用IP协议并给连接在网络上的主机分配了合法的IP地址,那么连接到这种虚拟的IP互连网上的任何一对计算机都可以很方便地进行通信。 问题4-2:―IP网关‖和―IP路由器‖是否为同义语, 答:当初发明TCP/IP的研究人员使用IP Gateway作为网际互连的设备。我国的网络工作者曾使用过多种译名,如网间连接器、网闸、信关、联网机等,但最后由全国自然科学名词审定委员会(这个委员会现在改名为―全国科学技术名词审定委员会‖)在[MINGCI94]中公布的Gateway标准译名为―网关―。 但是在美国在20世纪90年代初期一家厂商认为,将IP Gateway改名为IP Router似乎更加有利于设备的销售。后来其他厂家也跟着改变产品的名称。在[MINGCI94]中Router的标准译名是―路由器‖。现在,大家就都基本上不再使用网关这一名词了。 我们可以认为―IP网关‖和―IP路由器‖是同义语。 问题4-3:―互连网‖和―互联网‖有没有区别, 答:这是一个很难说清的问题,很多人都向我询问过这个问题。 在《现代汉语辞典》修订本(中国社会科学院语言研究所辞典编辑室编,商务印书馆1996年出版)第782页上有:―。 在785页上有:―【联接】同‘连接’‖。 这表明―连接‖和―联接‖是一样的意思。 在全国自然科学名词审定委员会公布的《计算机科学技术名词》一书[MINGCI94]中,Connection确定译为―连接‖。Interconnection确定译为―互连‖。Internetworking确定译为―网际互连‖。这样的译名是很合适的。 到了1997年7月18日―全国科学技术名词审定委员会推荐名(一)‖公布了。其中的第一个名词就是―互联网‖,它对应的英文名为:internet, internetwork, interconnection network。在现有名一栏中有―互联网‖、―互连网‖、―网际网‖和 ―网间网‖,在注释栏中有这样几个字:―又称互连网‖。 因此能否这样理解:―互联网‖和―互连网‖都是推荐名,都可以使用,不过建议优先使用前者,即优先使用―互联网‖。 使用―互连网‖的好处是这样可以和[MINGCI94]早已制定过的一些名词衔接得更好些。 不过请注意,把所有的―互连‖统统改为―互联‖则是错误的。 问题4-4:在文献中有时会见到对等连网(peer-to-peer networking),这是什么意思, 答:这表示在因特网中,任何两个计算机都可以进行平等地通信。这里可能一个计算机是很小的PC机,而另一个计算机是很大的巨型机。因特网对通信双方计算机的大小是不关心的。―对等‖也有―对称‖的意思。在早期的计算机网络是以计算机为中心,而远地的终端围绕中心的计算机进行通信。这些远地的终端和在中心的计算机并不是对等的,因为智能都集中在中心的计算机,复杂的计算都要在中心的计算机进行。但现在情况已经有了根本的变化。因此产生了对等连网这样的名词。 问题4-.5:在一个互联网中,能否使用一个很大的交换机(switch)来代替互联网中很多的路由器, 答:不行。交换机和路由器的功能是很不一样的。 交换机可在一个单个的网络中和若干个计算机相连,并且可以将一个计算机发送过来的帧转发给另一个计算机。从这一点上看,交换机具有集线器的转发帧的功能。 但交换机比集线器的功能强很多。集线器在同一时间只允许一个计算机和其他计算机进行通信,但交换机允许多个计算机同时进行通信。 路由器连接两个或好几个网络。路由器可在网络之间转发分组(即IP数据报)。特别是,这些互连的网络可以是异构的。 因此,如果是许多相同类型的网络互连在一起,那么用一个很大的交换机(如果能够找得到)代替原来的一些路由器是可以的。但若这些互连的网络是异构的网络,那么就必须使用路由器来进行互连。 问题4-6:为什么IP地址又称为―虚拟地址‖, 答:这是因为IP地址是靠软件来维持的而不是硬件地址。我们好像构成了一 个很大的互连网络,但这个网络是虚拟的网络系统,因为它的通信系统是抽象的。虽然许多硬件和软件的组合看起来好像构成了一个很大的网络,但这样的大网络实际上并不存在。 这种虚拟网络的地址也是虚拟的,因此IP地址又称为―虚拟地址‖。 -7:有的文献上使用―虚拟分组‖(virtual packet)这一名词。虚拟分组是什 问题4 么意思, 答:虚拟分组就是IP数据报。 因为因特网是由大量异构的物理网络互连而成的。这些物理网络的帧格式是各式各样的,它们的地址也可能是互不兼容的。路由器无法将一种格式的帧转发到另一种网络,因为另一种网络无法识别与自己格式不同的帧的地址。路由器也不可能对不同的地址格式进行转换。 为了解决这一问题,IP协议定义了IP数据报的格式。所有连接在因特网中的路由器都能识别IP数据报的IP地址,因此能够对IP数据报进行转发(在进行转发时当然要调用ARP协议以便获得相应的硬件地址)。我们知道,IP数据报是作为物理网络的帧的数据部分。各个物理网络在转发帧时是根据帧的首部中的硬件地址而不看帧的数据部分。因此所有的物理网络都看不见帧里面的IP数据报。这样就使得IP数据报得到―虚拟分组‖这样的名称。 问题4-8:如下图所示。五个网络用四个路由器(每一个路由器有两个端口)互连起来。能否改变这种连接方法,使用一个具有五个端口的路由器将这五个网络互连起来, 答 作。 因此,在规划互连网时,互连网的具体拓扑结构取决于物理网络的带宽、期望的通信量、对可靠性的需求、以及路由器硬件的价格。 问题4-9:当运行PING 127.0.0.1时,这个IP数据报将发送给谁, 答:127.0.0.1是环回地址。主机将测试用的IP数据报发送给本主机的ICMP(而不是发送到因特网上)以便进行环回测试。 问题4-10:网络前缀是指网络号字段(net-id)中前面的几个类别位还是指整个的网络号字段, 答:是指整个的网络号字段,即包括了最前面的几个类别位在内。网络前缀常 常就简称为前缀。 例如一个B类地址,10100000 00000000 00000000 00010000,其类别位就是最前面的两位:10,而网络前缀就是前16位:10100000 00000000。 答:以C 答:(1) 前缀是由因特网管理机构进行分配的,而后缀是由分配到前缀的单位自行分配的。 (2) IP数据报的寻址是根据前缀来找目的网络,找到目的网络后再根据后缀找到目的主机。 问题4-13:IP数据报中的数据部分的长度是可变的(即IP数据报不是定长的)。这样做有什么好处, 答:这样做的好处是可以满足这种应用的需要。有时在键盘键入的一个字符就可以构成一个很短的IP数据报。但有的应用程序需要将很长的文件构成一个大的IP数据报(最长为64 K字节,包括首部在内)。当然,大多数IP数据报的数据部分的长度都远大于首部长度。这样做的好处是可以提高传输效率(首部开销所占的比重就较小)。 要比A类地址可供分配的地址前缀数目的多一万多倍(建议读者自己计算一下)。 问题4-15:在IP地址中,为什么使用最前面的一个或几个比特来表示地址的类别, 答:知道了IP地址的类别,就可以很快地将IP地址的前缀和后缀区分开来,这在路由器寻找下一跳地址时是必须做的一件事。 但是怎样才能尽快地让计算机完成这一动作呢,如果将IP地址大致按照一定的地址数目划分为几部分作为各类地址,那么计算机执行这样的操作将会花费较多的时间。我们知道,计算机进行比特操作(如左移、右移、布尔运算等)要比进行整数运算要快得多。因此,IP地址的类别划分就用地址中最前面的一位或几位来标志地址的类别。 问题4-16:全1的IP地址是否是向整个因特网进行广播的一种地址, 答:不是。 设想一下,如果是向整个因特网进行广播的地址,那么一定会在因特网上产生极大的通信量,这样会严重地影响因特网的正常工作,甚至还会使因特网瘫痪。 因此,在IP地址中的全1地址表示仅在本网络上(就是你这个主机所连接的局域网)进行广播。这种广播叫做受限的广播(limited broadcast)。 如果net-id是具体的网络号,而host-id是全1,就叫做定向广播(directed broadcast),因为这是对某一个具体的网络(即net-id指明的网络)上的所有主机进行广播的一种地址。 问题4-17:IP协议有分片的功能,但广域网中的分组则不必分片。这是为什么, 答:IP数据报可能要经过许多个网络,而源主机事先并不知道数据报后面要经过的这些网络所能通过的分组的最大长度是多少。等到IP数据报转发到某个网络时可能才发现数据报太长了,因此在这时就必须进行分片。 但广域网能够通过的分组的最大长度是该广域网中所有主机都事先知道的。源主机不可能发送网络不支持的过长分组。因此广域网就没有必要将已经发送出的分组再进行分片。 问题4-18:路由表中只给出到目的网络的下一跳路由器的IP地址,然后在下一个路由器的路由表中再给出再下一跳的路由器的IP地址,最后才能到达目的网络进行直接交付。采用这样的方法有什么好处, 答:这样做的最大好处就是使得路由选择成为动态的,十分灵活。当IP数据报传送到半途时,若网络的情况发生了变化(如网络拓扑变化或出现了拥塞),那么中途的路由器就可以改变其下一跳路由,从而实现了动态路由选择。 -19:链路层广播和IP广播有何区别, 问题4 答:链路层广播是用数据链路层协议(第二层)在一个以太网上实现的对该局域网上的所有主机的MAC帧进行广播。 IP广播则是用IP协议通过因特网实现的对一个网络(即目的网络)上的所有主机的IP数据报广播。 问题4-20:主机在接收一个广播帧或多播帧时其CPU所要做的事情有何区别, 答:在接收广播帧时,主机通过其适配器(即网络接口卡NIC)接收每一个广播帧,然后将其传递给操作系统。CPU执行协议软件,并界定是否接受和处理该帧。 在接收多播帧时,CPU要对适配器进行配置,而适配器根据特定的多播地址表来接收帧。凡与此多播地址表不匹配的帧都将被NIC丢弃。因此在多播的情况下,是适配器NIC而不是CPU决定是否接收一个帧。 问题4-21:有的路由器在和广域网相连时,在该路由器的广域网接口处并没有硬件地址,这怎样解释, 答:每一个连接到广域网的路由器显然必须要有一个硬件地址,否则就无法进行通信。但是具体的细节可能会有相当大的差别。例如,我们的电话机和墙上的电话线路RJ-11插孔一连接就可以打电话。这表明电话机一定有一个唯一的电话号码(即硬件地址)。但是,这个电话号码并没有存储在电话机的某个地方。有些广域网也采用类似这样的技术。也就是说,每一个连接都有一个唯一的硬件地址,但这个地址并不一定存储在路由器的接口上。 问题4-22:IP地址和电话号码相比时有何异同之处, 答:相同之处: (1) 唯一性。 每个电话机的电话号码(指包括国家码以及区号在内的号码)在电信网上是唯 一的。每个主机的IP地址在因特网上也是唯一的。 (2) 分等级的结构。 电话号码:(国家号码)-(区号)-(局号)-(电话机号)。 IP地址:(网络号)-(主机号),或(网络号)-(子网号)-(主机号)。 不同之处: 各国的电话号码都是自主设置,因此号码的位数可以各不相同。但IP地址则一律是32 bit的固定长度(这是IPv4的地址长度。若使用IPv6则地址长度为128 bit)。因此电话号码空间是不受限的。当一个城市的电话号码空间不够用时,就可以增加电话号码的位数(例如6位不够用了就升级为7位,以后又不够用了就再升级为8位)。但IP地址空间是受限的,全部的IP地址用尽后就必须将IPv4升级到IPv6。 电话号码中的―国家号码‖―区号‖―局号‖都能直接反映出具体的地理位置(或范围),但从IP地址的―网络号‖却不能直接反映出具体的地理位置(或范围)。IP地址的管理机构在分配IP地址时并不是先将整个的地址空间按国家来分配,而是按网络来分配(不管这个网络在哪个国家)。 但是有的IP地址可以反映出一定的地理范围。例如,顶级域名采用国家域名的,例如顶级域名是.cn的应当是在中国,但在中国的什么地方则不知道。而二级域名若采用省级域名时,如采用.js.cn的应当是在中国的江苏省,但在江苏省的什么地方也是不知道的。然而在采用通用顶级域名时,如采用.com或.net或.org时,则无法知道该主机在哪一个国家或地区。 问题4-23:―尽最大努力交付‖(best effort delivery)都有哪些含义, 答:(1) 不保证源主机发送出来的IP数据报一定无差错地交付到目的主机。 (2) 不保证源主机发送出来的IP数据报都在某一规定的时间内交付到目的主机。 (3) 不保证源主机发送出来的IP数据报一定按发送时的顺序交付到目的主机。 (4) 不保证源主机发送出来的IP数据报不会重复交付到目的主机。 (5) 不故意丢弃IP数据报。丢弃IP数据报的情况是:路由器检测出首部检验和有错误; 或由于网络中通信量过大,路由器或目的主机中的缓存已无空闲空间。 但是要注意,IP数据报的首部中有一个―首部检验和‖。当它检验出IP数据报的首部出现了差错时,就将该数据报丢弃。因此,凡交付给目的主机的IP数据报都是IP数据报的首部没有出现差错的或没有检测出来有差错。这就是说,传输过程中出现差错的IP数据报都被丢弃了。例如,源主机一连发送了10000个IP数据报,结果有9999个IP数据报都出现了差错,因而都被丢弃了。这样,只有一个不出错的IP数据报最后交付给了目的主机。这也完全符合―尽最大努力交付‖的原则。甚至当所发送的一万个IP数据报都被丢弃了,我们也不能说这不是―尽最大努力交付‖,只要路由器不是故意地丢弃IP数据报就行。 现在因特网上绝大多数的通信量都是属于―尽最大努力交付‖的。如果数据必须可靠地交付给目的地,那么使用IP协议的高层软件必须负责解决这一问题。 问题4-24:假定在一个局域网中计算机A发送ARP请求分组,希望找出计算机B的硬件地址。这时局域网上的所有计算机都能收到这个广播发送的ARP请求分组。试问这时由哪一个计算机使用ARP响应分组将计算机B的硬件地址告 诉计算机A, 答:这要区分两种情况。 如果计算机B和计算机A都连接在同一个局域网上,那么就是计算机B发送ARP响应 分组。 如果计算机B和计算机A不是连接在同一个局域网上,那么就必须由一个连接在本局域网上的路由器来转发ARP请求分组。这时,该路由器向计算机A发送ARP回答分组,给出自己的硬件地址。 问题4-25:有人将ARP列入网络接口层,即认为ARP不在IP层,这样对吗, 答:这样也是可以的。 本来ARP就是位于IP层和数据链路层之间。本书是将ARP画在IP层的下面。我们知道IP层和以上各层都是使用IP地址,而数据链路层是使用硬件地址。而ARP是进行这两个地址的转换: IP地址?ARP?硬件地址。 ARP报文中既有IP地址又有硬件地址。因此将ARP列入网络接口层也是可以的(见Comer写的书)。 同理,RARP也可以这样看待,因为:硬件地址?RARP?IP地址。 问题4-26:一个主机要向另一个主机发送IP数据报。是否使用ARP就可以得到该目的主机的硬件地址,然后直接用这个硬件地址将IP数据报发送给目的主机, 答:有时是这样,但也有时不是这样。 ARP 由于A和然后用B(1) A(2) R1(3) R2因此,A发送道F 问题4-27答:使用以太网是和因特网相连的最常用的局域网,而以太网的数据字段最多只允许装入1500字节。因此在因特网上传送的分组长度一般都不会超过1500字节。 由于现在因特网上最常用的应用程序是电子邮件和万维网。这两个应用程序都使用TCP进行传输,因此经常要用到TCP的确认报文段。这种TCP确认报文段没有数据,只有20字节的首部,再加上IP数据报的20字节首部,使得IP数据报(即分组)的长度只有40字节。 根据美国MCI主干网上传送的分组的统计数据,大约有40%的分组为40字节长(即它们携 带的数据都是TCP的确认报文段)。大约有15%的分组为576字节左右的长度(即IP数据报的默认长度)。大约有10%的分组为1500字节长。超过1500字节的分组数是很少的。 问题4-28:IP数据报的最大长度是多少个字节, 答:64 K (1 K = 210)字节,因为其首部的总长度字段只有16 位长。但实际上最多只能表示65535字节而不是65536字节,因为在二进制中的16个1表示十进制的(2 – 1)。 16 问题4-29:IP数据报的首部的最大长度是多少个字节,典型的IP数据报首部是多长, 答:IP数据报首部中有一个首部长度字段,4 位长,可表示的最大十进制数字是15。因此首部长度的最大值是15个4字节长的字,即60字节。 典型的IP数据报不使用首部中的选项,因此典型的IP数据报首部长度是20字节。 问题4-30:IP数据报在传输的过程中,其首部长度是否会发生变化, 答:不会。但首部中的某些字段(如标志、生存时间、检验和等)的数值一般都要发生变化 。 问题4-31:当路由器利用IP数据报首部中的―首部检验和‖字段检测出在传输过程中出现了差错时,就简单地将其丢弃。为什么不发送一个ICMP报文给源主机呢, 答:IP协议并不要求源主机重传有差错的IP数据报。保证无差错传输是由TCP协议完成的。另一方面,首部检验和只能检验出IP数据报的首部出现了差错,但不知道首部中的源地址字段有没有出错。如果源地址出现了差错,那么将这种IP数据报传送到错误的地址也是没有任何意义的。 问题4-32:RIP协议的好处是简单,但缺点是不够稳定。有的书上介绍―触发更新‖、―水平分割‖和―毒性逆转‖。能否简单介绍一下它们的要点, 答:(1) 触发更新 若网络中没有变化,则按通常的30秒间隔发送更新信息。但若有变化,路由器就立即发送其新的路由表。这个过程叫做触发更新。 触发更新可提高稳定性。每一个路由器在收到有变化的更新信息时就立即发出新的信息,这比平均的15秒要少得多。虽然触发更新可大大地改进路由选择,但它不能解决所有的路由选择问题。例如,用这种方法不能处理路由器出故障的问题。 (2) 水平分割 水平分割(split horizons)是提高稳定性的第二种方法,它在发送路由选择报文时使用了选择性;路由器必须区分不同的接口。如果路由器从一个接口已经收到了路由更新信息,那么这个同样的更新信息一定不能再通过这个接口回送过去。如果一个接口通过了给一个路由器更新的信息,那么这个更新信息一定不能再发送回去;因为这是已经知道了的信息,因而是不需要的。水平分割可明显地提高稳定性。下图就能说明问题。 报文Net1Net11], 用来更新路由表,然后通过所有的接口发送出去。但是,已经从一个接口来的 一个路由表项目在通过同样的接口发送出去时,就要将其度量置为16。 问题4-33:IP数据报必须考虑最大传送单元MTU (Maximum Transfer Unit)。 这是指哪一层的最大传送单元,包括不包括首部或尾部等开销在 A general term used to describe the operation of a switch. Because it is associated with hardware, switching is usually higher speed than routing. Also, switching differs from routing because switching uses the hardware address in a frame. Switch An electronic device that forms the center of a star topology network. A switch uses the destination address in a frame to determine which computer should receive the frame. 英文字switch本来是―开关‖的意思。当switch最初用在电 话系统中时就译成了―交换机‖,而表示动作的switching就译为―交换‖。因此电 话系统使用的交换体制就称为―电路交换‖。 在Perlman的[PERL00]一书中的第531页也有类似的解释: Switch Anything that moves data. Somehow the term is applied to imply that the device is fast and cheap. Can be a bridge (layer 2 switch) or router (layer 3 switch), or sometimes used for something that moves ATM cells. 可以看出,Perlman对switch的定义就比Comer的定义更广泛一些,因为switch 在某些情况下还可以表示一个网桥或路由器,同时也不局限于用在星形网络中。 现在需要注意的是,关于Packet switching这一名词中的switching。大家知道, Packet switching的标准译名是―分组交换‖。这里的―交换‖完全是为了和电路交换 的―交换‖相对应。我们知道,分组交换就是对分组进行存储转发,而转发又是根 据路由器中的转发表,是通过计算机软件来查找下一跳应当转发到哪一个结点 去。因此分组交换的―交换‖并没有―使用硬件地址‖或―比路由选择更快‖的含义, 而只是一般地表示―可以将数据从一个地方移动到另一个地方‖。 问题4-37:为什么生存时间TTL原来用秒作为单位而现在TTL却表示数据报 在网络中所能通过的路由器数的最大值, 答:最初TTL是用秒作为单位,表示一个数据报在网络中的最长生存时间。 TTL可用来防止数据报无限期地在网络中兜圈子(这样会浪费网络的资源)。例 如,把数据报的TTL初始值设置为70秒,就表示在该数据报进入网络后只要经 过了70秒就要把它丢弃,哪怕它就快要到达目的站了。 但后来发现这样做很不方便(各个没有时钟同步关系的路由器都要计算通过它 的数据报在网络中的逗留时间)。于是就改用另一种方法,就是让TTL表示数据 报在网络中所能够通过的路由器数的最大值。例如,把数据报的TTL初始值设 置为60,就表示:若该数据报在经过60个路由器后还没有到达目的站,则最后 到达的那个路由器就立即把这个数据报丢弃,使它不再占用网络的资源。现在路 由器在转发数据报时,应把数据报首部中的TTL值减1。若TTL值减为零,就 把它丢弃。因此,现在的TTL表示数据报在网络传送过程中的最大跳数。 问题5-1:TCP协议是面向连接的,但TCP使用的IP协议却是无连接的。 这两种协议都有哪些主要的区别, 答:这个问题很重要,一定要弄清楚。 TCP是面向连接的,但TCP所使用的网络则可以是面向连接的(如X.25网络), 但也可以是无连接的(如现在大量使用的IP网络)。选择无连接网络就使得整个的系统非常灵活,当然也带来了一些问题。 下面是TCP和IP向上提供的功能和服务的比较。 显然,TCP提供的功能和服务要比IP所能提供的多得多。这是因为TCP使用了诸如确认、窗口通知、计时器等机制,因而可以检测出有差错的报文、重复的报文和失序的报文。 问题5-2:从通信的起点和终点来比较,TCP和IP的不同点是什么, 答:用下面的图就可说明。 进程A和进程B的通信是使用面向连接的TCP提供的可靠的传输。 主机X 和主机Y的通信是使用无连接的IP提供的不可靠的传输。 请注意:对TCP来说,通信的起点和终点是运输层上面的两个套接字(socket),而应用层的应用进程正是通过应用层和运输层之间的套接字来使用TCP提供的服务。TCP协议根据报文段首部中的端口号找到目的端口,将报文段交付给目的进程。请注意:套接字是由IP地址和端口号决定的,套接字也可称为―插口‖。 对IP来说,通信的起点和终点是连接在网络上的两个主机。IP协议根据数据报首部中的目的IP地址找到目的主机,将数据报交付给目的主机。 请注意可靠传输的范围和不可靠传输的范围是不同的。 我们还应当注意的是:虽然在两个套接字之间的通信是面向连接的,但IP数据报在下面的网络中传输时是独立地选择路由,而不是沿着某一条固定的路径传输。然而在上面的端口看来,TCP报文段好像都是从一个虚拟的、可靠的通信管道中传输到对方的端口。 问题5-3:端口(port)和套接字(socket)的区别是什么, 答:从本书经常使用的套接字定义来看,套接字包含了端口,因为套接字 = (IP地址,端口号)。套接字是TCP连接的端点。套接字又称为―插口‖。 但我们已经讲过,套接字(socket)有多种意思。当使用API时,套接字往往被看成是操作系统的一种抽象,这时,套接字和一个文件描述符是很相似的,并且 是应用编程接口API的一部分。套接字由应用程序产生,并指明它将由客户还是服务器来使用。当应用进程创建一个套接字时,要指明该套接字使用的端口号。 端口则是应用层服务的一种代号,它用来标志应用层的进程。端口是一个16 bit的整数。各种服务器使用的端口号都是保留端口号,以便使客户能够找到服务器。例如万维网服 务器使用的端口号是80。 在发送数据时,应用层的数据通过端口向下交付到运输层。在接收数据时,运输层的数据通过适当的端口向上交付到应用层的某个应用程序。 问题5-4:一个套接字能否同时与远地的两个套接字相连, 答:不行。一个套接字只能和另一个远地套接字相连。 如果许多个客户同时访问同一个服务器,那么对于这种情况,请参考教材的第6章的图6-30及相应的文字解释。 问题5-5:数据链路层的HDLC协议和运输层的TCP协议都使用滑动窗口技术。从这方面来进行比较,数据链路层协议和运输层协议的主要区别是什么, 答:运输层的TCP协议是端到端(进程到进程)的协议,而数据链路层的HDLC协议则是仅在一段链路上的结点到结点的协议。此外,TCP的窗口机制和HDLC的也有许多区别。如TCP是按数据部分的字节数进行确认,而HDLC则是以帧为确认的单位。需要注意的是,现在使用得最多的PPP链路层协议并不使用确认机制和窗口机制。因此像PPP协议这样的链路层协议就和运输层协议有相当大的区别。 问题5-6:TCP协议能够实现可靠的端到端传输。在数据链路层和网络层的传输还有没有必要来保证可靠传输呢, 答:在旧的OSI体系中,在数据链路层使用HDLC协议而在网络层使用X.25协议,这些协议都有确认机制和窗口机制,因而能够保证可靠传输。但是技术的进步使得链路的传输已经相当可靠了,因此在数据链路层和网络层重复地保证可靠传输就显得多余了。现在因特网在链路层使用的PPP协议和在网络层使用的IP协议都没有确认机制和窗口机制。如果出现差错就由运输层的TCP来处理(若使用UDP协议则运输层也不处理出错的问题)。 问题5-7:在TCP报文段的首部中只有端口号而没有IP地址。当TCP将其报文段交给IP层时,IP协议怎样知道目的IP地址呢, 答:显然,仅从TCP报文段的首部是无法得知目的IP地址。因此,TCP必须告诉IP层此报文段要发送给哪一个目的主机(给出其IP地址)。此目的IP地址填写在IP数据报的首部中。 问题5-8:在TCP传送数据时,有没有规定一个最大重传次数, 答:我们知道以太网规定重传16次就认为传输失败,然后报告上层。但TCP没有规定最大重传次数,而是通过设置一些计时器来解决有关传输失败的问题。 问题5-9:TCP都使用哪些计时器, 答:TCP共使用以下四种计时器,即重传计时器、持续计时器、保活计时器和 时间等待计时器。这几个计时器的主要特点如下: 重传计时器 当TCP发送报文段时,就创建该特定报文段的重传计时器。可能发生两种情况: 1. 若在计时器截止时间到之前收到了对此特定报文段的确认,则撤销此计时器。 2. 若在收到了对此特定报文段的确认之前计时器截止期到,则重传此报文段,并将计时器复位。 持续计时器 为了对付零窗口大小通知,TCP需要另一个计时器。假定接收TCP宣布了窗口大小为零。发送TCP就停止传送报文段,直到接收TCP发送确认并宣布一个非零的窗口大小。但这个确认可能会丢失。我们知道在TCP中,对确认是不需要发送确认的。若确认丢失了,接收TCP并不知道,而是会认为它已经完成任务了,并等待着发送TCP接着会发送更多的报文段。但发送TCP由于没有收到确认,就等待对方发送确认来通知窗口的大小。双方的TCP都在永远地等待着对方。 要打开这种死锁,TCP为每一个连接使用一个持续计时器。当发送TCP收到一个窗口大小为零的确认时,就启动持续计时器。当持续计时器期限到时,发送TCP就发送一个特殊的报文段,叫做探测报文段。这个报文段只有一个字节的数据。它有一个序号,但它的序号永远不需要确认;甚至在计算对其他部分的数据的确认时该序号也被忽略。探测报文段提醒接收TCP:确认已丢失,必须重传。 持续计时器的值设置为重传时间的数值。但是,若没有收到从接收端来的响应,则需发送另一个探测报文段,并将持续计时器的值加倍和复位。发送端继续发送探测报文段,将持续计时器设定的值加倍和复位,直到这个值增大到门限值(通常是60秒)为止。在这以后,发送端每隔60秒就发送一个探测报文段,直到窗口重新打开。 保活计时器 保活计时器使用在某些实现中,用来防止在两个TCP之间的连接出现长时期的空闲。假定客户打开了到服务器的连接,传送了一些数据,然后就保持静默了。也许这个客户出故障了。在这种情况下,这个连接将永远地处理打开状态。 要解决这种问题,在大多数的实现中都是使服务器设置保活计时器。每当服务器收到客户的信息,就将计时器复位。超时通常设置为2小时。若服务器过了2小时还没有收到客户的信息,它就发送探测报文段。若发送了10个探测报文段(每一个相隔75秒)还没有响应,就假定客户出了故障,因而就终止该连接。 时间等待计时器 时间等待计时器是在连接终止期间使用的。当TCP关闭一个连接时,它并不认为这个连接马上就真正地关闭了。在时间等待期间中,连接还处于一种中间过渡状态。这就可以使重复的FIN报文段(如果有的话)可以到达目的站因而可将其丢弃。这个计时器的值通常设置为一个报文段的寿命期待值的两倍。 问题5-10:是否TCP和UDP都需要计算往返时间RTT, 答:往返时间RTT只是对运输层的TCP协议才很重要,因为TCP要根据平均往返时间RTT的值来设置超时计时器的超时时间。 UDP没有确认和重传机制,因此RTT对UDP没有什么意义。 因此,不要笼统地说―往返时间RTT对运输层来说很重要‖,因为只有TCP才需要计算RTT,而UDP不需要计算RTT。 问题5-11:假定TCP开始进行连接建立。当TCP发送第一个SYN报文段时,显然无法利用教材中5.6.3节所介绍的方法计算往返时间RTT。那么这时TCP又怎样设置重传计时器呢, 答:这时TCP显然无法利用已有的公式算出往返时间RTT。实际上TCP是选择(也就是猜测)一个比较长的时间作为初始的往返时间RTT。等到收到至少一个确认报文段时才能利用公式计算出比较合理的往返时间RTT。 问题5-12:糊涂窗口综合症产生的条件是什么,是否只有在接收方才产生这种症状, 答:糊涂窗口综合症产生的条件是:当发送应用程序产生数据很慢,或者接收应用程序吸收数据很慢,或者两者都有。因此发送方和接收方都可能产生这种症状。 不管是上述情况中的哪一种,都使得发送数据的报文段很小,这就引起操作效率的降低。例如,若TCP发送的报文段只包括一个字节的数据,则意味着我们发送41字节的数据报(20字节的TCP首部和20字节的IP首部)才传送1字节的数据。数据的传送效率是1/41,它表示我们非常低效率地使用网络的容量。 问题5-13:能否更详细些讨论一下糊涂窗口综合症及其解决方法, 答:发送端产生的症状 如果发送端为产生数据很慢的应用程序服务,例如,一次产生一个字节。这个应用程序一次将一个字节的数据写入发送端的TCP的缓存。如果发送端的TCP没有特定的指令,它就产生只包括一个字节数据的报文段。结果有很多41字节的IP数据报就在互连网中传来传去。 解决的方法是防止发送端的TCP逐个字节地发送数据。必须强迫发送端的TCP收集数据,然后用一个更大的数据块来发送。发送端的TCP要等待多长时间呢,如果它等待过长,它就会使整个的过程产生较长的时延。如果它的等待时间不够长,它就可能发送较小的报文段。Nagle找到了一个很好的解决方法。 算法 Nagle算法非常简单,但它能解决问题。这个算法是为发送端的TCP用的: 1. 发送端的TCP将它从发送应用程序收到的第一块数据发送出去,哪怕只有一个字节。 2. 在发送第一个报文段(即报文段1)以后,发送端的TCP就在输出缓存中积累数据,并等待:或者接收端的TCP发送出一个确认,或者数据已积累到可以装成一个最大的报文段。在这个时候,发送端的TCP就可以发送这个报文段。 3. 对剩下的传输,重复步骤2。这就是:如果收到了对报文段x的确认,或者数据已积累到可以装成一个最大的报文段,那么就发送下一个报文段(x + 1)。 Nagle算法的优点就是简单,并且它考虑到应用程序产生数据的速率,以及网络运输数据的速率。若应用程序比网络更快,则报文段就更大(最大报文段)。若应用程序比网络慢,则报文段就较小(小于最大报文段)。 接收端产生的症状 接收端的TCP可能产生糊涂窗口综合症,如果它为消耗数据很慢的应用程序服务,例如,一次消耗一个字节。假定发送应用程序产生了1000字节的数据块,但接收应用程序每次只吸收1字节的数据。再假定接收端的TCP的输入缓存为4000字节。发送端先发送第一个4000字节的数据。接收端将它存储在其缓存中。现在缓存满了。它通知窗口大小为零,这表示发送端必须停止发送数据。接收应用程序从接收端的TCP的输入缓存中读取第一个字节的数据。在入缓存中现在有了1字节的空间。接收端的TCP宣布其窗口大小为1字节,这表示正渴望等待发送数据的发送端的TCP会把这个宣布当作一个好消息,并发送只包括一个字节数据的报文段。这样的过程一直继续下去。一个字节的数据被消耗掉,然后发送只包含一个字节数据的报文段。这又是一个效率问题和糊涂窗口综合症(见下图)。 它就停下来了。这样就防止了这种症状。 迟延的确认还有另一个优点:它减少了通信量。接收端不需要确认每一个报文段。但它也有一个缺点,就是迟延的确认有可能迫使发送端重传其未被确认的报文段。 可以用协议来平衡这个优点和缺点,例如现在定义了确认的延迟不能超过500毫秒。 问题5-14:为什么TCP在建立连接时不能每次都选择相同的、固定的初始序号, 答:如果TCP在建立连接时每次都选择相同的、固定的初始序号,那么设想以下的情况: (1) 假定主机A和B频繁地建立连接,传送一些TCP报文段后,再释放连接,然后又不 断地建立新的连接、传送报文段和释放连接。 (2) 假定每一次建立连接时,主机A都选择相同的、固定的初始序号,例如,选择1。 (3) 假定主机A发送出的某些TCP报文段在网络中会滞留较长的时间,以致造成主机A 超时重传这些TCP报文段。 (4) 假定有一些在网络中滞留时间较长的TCP报文段最后终于到达了主机B,但这时传 送该报文段的那个连接早已释放了,而在到达主机B时的TCP连接是一条新的TCP 连接。 这样,工作在新的TCP连接下的主机B就有可能会接受在旧的连接传送的、已经没有意义的、过时的TCP报文段(因为这个TCP报文段的序号有可能正好 处在现在新的连接所使用的序号范围之中)。结果产生错误。 因此,必须使得迟到的TCP报文段的序号不处在新的连接中所使用的序号范围之中。 这样,TCP在建立新的连接时所选择的初始序号一定要和前面的一些连接所使用过的序号不一样。因此,不同的TCP连接不能使用相同的初始序号。 问题5-15:能否利用TCP发送端和接收端交换报文段的图来说明慢开始的 特点, 答:慢开始的特点可以用下图来说明。 (为方便起见,这里将拥塞窗口的单位设为报文 拥塞窗口cwnd的初始值是1 段)。 以后每收到一个对新的报文段的确认,就将发送端的拥塞窗口cwnd加1。 可以看出,拥塞窗口cwnd按照指数规律增长。所谓―新的报文段‖就是指―未被确认 过的报文段‖。由于报文段在因特网中传输时,有可能在某个路由器处滞留一段时间,但以后又被交付到接收端(重复交付)。接收端对每一个收到的无差错的报文段都可能给出确认。因此,对同一个报文段,发送端有可能收到几个重复的确认。但除了第一个确认可以使发送 1。 理, 答:可以,但这只能是示意图。 因为在拥塞避免的开始,发送端的拥塞窗口swnd = ssthresh,这时可以发送好几个报文段。按照RFC 2581文档,每经过一个往返时间RTT,拥塞窗口就增加一个MSS的大小(以字节为单位)。 在我们讨论原理时,以报文段个数作为窗口单位较为方便,因此在图中每经过一个RTT,发送端拥塞窗口swnd就在ssthresh的基础上加1。 在图中将发送端发送报文段用一个粗箭头表示(因为这里面包含有许多个报文段,很难一个个画出),确认报文段也用一个粗箭头表示(这也可能有许多个确认报文段),因此RTT也是概念性的往返时间。 的确认‖。这里假定收到对所有报文段的确认所需的时间就是RTT。 问题5-17:TCP连接很像一条连接发送端和接收端的双向管道。当TCP在连续发送报文段时,若要管道得到充分的利用,则发送窗口的大小应怎样选择, 答:我们可以用下面的图来说明这一问题。 图中在发送端和接收端之间的两个白色长条表示TCP全双工通信的发送管道和接收管道。管道是对信道的一种抽象,便于讨论问题(可以不涉及下层互连网络的细节)。 假定在t = 0时发送端使用慢开始算法来发送报文段,因此在t = 0时只能发送 )。图中的时间都是按离一个报文段(图中标有1的绿色长方条就代表报文段1 散的时间单位表示。 为简化分析,我们还假定,发送窗口仅由发送端的拥塞窗口来确定,接收端不对发送窗口加以限制。 假定在t = 1时,报文段1的第一个比特正好走完四分之一的管道,同时该报文段的最后一个比特正好发送完毕。 t = 4,报文段1的前沿到达接收端。 t = 5时,接收端将报文段1接收完毕。 假定接收端立即发送确认报文段。我们所用的标记是:对报文段n的确认报文段我们用具有标记n的红色小长方条表示。 t = 9,对报文段1的确认的前沿到达发送端。 (可以发送报文段2和3),并开始发送 t = 10,发送端将发送窗口加1变为2 报文段2 (这一步图中省略了,没有画出)。 t = 11,报文段2走完发送管道的四分之一,发送端开始发送报文段3。 t = 12,报文段2和3填满发送管道的一半。 t = 14,报文段2的前沿到达接收端。 t = 15,接收端收完报文段2,并发送对报文段2的确认。 t = 16,接收端收完报文段3,并发送对报文段3的确认。 t = 19,对报文段2的确认前沿传播到发送端。 t = 20,发送端收到对报文段2的确认,将发送窗口加1变为3(可以发送报文段4, 5 和6),并开始发送报文段4(这一步图中省略了,没有画出)。对报文段3的确认的前沿也在这个时间传播到发送端。 再以后的过程我们用下面的另一张图来说明。 t = 21,发送端收到对报文段3的确认,将发送窗口再加1变为4(可以发送报文段4, 5, 6和7),并开始发送报文段5。此时,报文段4已完全进入发送管道,前沿到了管道的四分之一处。 发送端每收到一个对没有确认过的报文段的确认,就将发送窗口加1。因此在陆续收到确认4 ~ 7后,将发送窗口加4,即增大到8,可以连续发送报文段8 ~ 15。 管道空间是有限的。从图中表示的例子可以看出,这样的管道至多可容纳4个报文段。当发送窗口很小时,管道在大部分时间内是比较空的(见前面的第一张图)。这说明在TCP 连接中传输数据的效率比较低。 当发送窗口增大时,管道逐渐被填满。可以看出,在t = 34 ~ 38时,发送管道一直是被填满的,这说明发送管道被利用得很充分。因为报文段的传输需要时间,因此对报文段的确认总是会滞后一段时间。上面的例子表明,在单方向发送报文段(另一个方向发送确认)的情况下,发送管道和接收管道往往不能同时被充分利用(除非发送窗口的数值较大)。但如果双向都能发送数据报文段,那么发送管道和接收管道就都能够被利用得较充分。 我们还可看出,接收管道(即接收端发送确认报文段的管道)在任何情况下都没有填满。这是因为确认报文段很短,只需很短的时间就可发送出去。但接收一个数据报文段需要较多的时间,这就造成确认报文段不可能连续地从接收端发送出去。 问题5-18:假定在一个互联网中,所有的链路的传输都不出现差错,所有的结点也都不会发生故障。试问在这种情况下,TCP的―可靠交付‖的功能是否就是多余的, 答:不是多余的。TCP的―可靠交付‖功能在互联网中起着至关重要的作用。 至少在以下所列举的情况下,TCP的―可靠交付‖功能是必不可少的。 (1) 每个IP数据报独立地选择路由,因此在到达目的主机时有可能出现失序。 (2) 由于路由选择的计算出现错误,导致IP数据报在互联网中兜圈子。最后数据报首 部中的生存时间TTL的数值下降到零。这个数据报在中途就被丢弃了。 (3) 在某个路由器突然出现很大的通信量,以致路由器来不及处理到达的数据报。因此 有的数据报被丢弃。 以上列举的问题表明了:必须依靠TCP的―可靠交付‖功能才能保证在目的主机的目的进程接收到正确的报文。 问题5-19:TCP是通信协议还是软件, 答:协议与实现协议的软件之间的区别,类似于编程语言的定义与编译器之间的区别。与编程语言的情况类似,编程语言的定义与编程语言的实现之间的区别有时也会比较模糊。大家与TCP软件打交道的机会远远比与TCP协议 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 打交道的机会要多,因而会很自然地把某个协议的具体实现当作是协议的标准。尽管如此,我们必须明确地区分两者。 总之,TCP是通信协议,而不是一个软件。 问题5-20:在计算TCP的往返时间RTT的公式中,本教材过去的版本是取 。但现在的新版本是取。为什么会有这样大的改变, 答:过去的版本是参考有的国外教材,这个教材上把RTT的计算公式写为: 平均往返时延旧的新的往返时延样本) 而取。 现在的新版本是考虑到最好和RFC文档的写法一致,这样可能会更加便于读者查阅RFC文档。现在的RTT计算公式是: 新的旧的 (新的RTT样本) 而取。但这两种不同的写法在实质上并无不同,得出的计算结果是一样的。 另外有些改动的地方是: (1) RTT以前译为―往返时延‖,现在改为―往返时间‖。这样更加准确一些,因为RTT的后面一个T是Time,应当译为―时间‖。以前用的―往返时延‖来自―Round-Trip Delay‖。 (2) 以前没有用RTTS这个符号,是为了使符号不要太多。现在看来,多用一个符号可 能会更清楚一些(RFC文档也有这个符号,但他们使用的文 们用的符号是SRTT,表示Smoothed RTT(平滑的RTT)。
本文档为【计算机网络(第5版)谢希仁 编著 期末复习资料1至5章复习题汇总】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_215732
暂无简介~
格式:doc
大小:209KB
软件:Word
页数:63
分类:工学
上传时间:2018-09-15
浏览量:29