I come, I see, I conquer

                    —Gaius Julius Caesar

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::


计算机网络 Q&A

问题1-8:我们常说“分组交换”。但又常说“路由器转发IP数据报”或“路由器转发帧”。究竟“分组”一词应当用在什么场合?

:“分组”(packet)也就是“包”,它是一个不太严格的名词,意思是将若干个比特加上首部的控制信息就封装在一起,组成一个在网络上传输的数据单元。在数据链路层这样的数据单元叫做“帧”。而在IP层(即网络层)这样的数据单元就叫做“IP数据报”。在运输层这样的数据单元就叫做“TCP报文段”或“UDP用户数据报”。但在不需要十分严格和不致弄混的情况下,有时也都可笼统地采用“分组”这一名词。这点请读者注意。

OSI为了使数据单元的名词准确,就创造了“协议数据单元”PDU这一名词。在数据链路层的PDU叫做DLPDU,即“数据链路协议数据单元”。在网络层的PDU叫做“网络协议数据单元”NPDU。在运输层的PDU叫做“运输协议数据单元”TPDU。虽然这样做十分严格,但过于繁琐,现在已没有什么人愿意使用这样的名词。


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

:可以这样比喻。但一定不能误认为“提高信道的速率是设法使比特并行地传输”。

如果一定要用汽车在高速公路上跑和比特在通信线路上传输相比较,那么可以这样来想像。低速信道相当于汽车进入高速公路的时间间隔较长。例如,每隔一分钟有一辆汽车进入高速公路。“信道速率提高”相当于进入高速公路的汽车的时间间隔缩短了,例如,现在每隔6秒钟就有一辆汽车进入高速公路。虽然汽车在高速公路上行驶的速度没有变化,但在同样时间内,进入高速公路的汽车总数却增多了(每隔一分钟进入高速公路的汽车现在增加到10辆),因而吞吐量也就增大了。

下面给出一个图,可帮助理解这一概念。    

假定一条链路的传播速率为2 ´ 108 km/s。这相当于电磁波在该媒体上1 ms可向前传播200 m。若链路带宽为1 Mb/s,则主机在1 ms内可向链路发送1 bit数据。

图中用横坐标表示距离(请注意,横坐标不是时间)。当t = 0时开始向链路发送数据。这样,我们有:

t = 1 ms时,信号传播到200 m处。注入到链路上1个比特。
   
t = 2 ms时,信号传播到400 m处。注入到链路上共2个比特。
   
t = 3 ms时,信号传播到600 m处。注入到链路上共3个比特。

现在将链路带宽提高到10倍,即达到10 Mb/s。这相当于1 ms内可向链路发送10 bit数据。显然,发送速率提高了。然而这些数据比特在链路上的传播速率(m/s)并没有任何变化,即传播速率仍然是200 m/ms。这点从图的上下两部分对比即可看出:

t = 1 ms时,信号仍然是传播到200 m处。但注入到链路上已有10个比特。
   
t = 2 ms时,信号仍然是传播到400 m处。但注入到链路上已有20个比特。
   
t = 3 ms时,信号仍然是传播到600 m处。但注入到链路上已有30个比特。

也就是说,当带宽或发送速率提高后,比特在链路上向前传播的速率并没有提高,只是每秒钟注入到链路的比特数增加了。“速率提高”就体现在单位时间内发送到链路上的比特数增多了而并不是比特在链路上跑得更快


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

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

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

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

因此使用面向连接服务的可以是电路交换,也可以是分组交换。

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

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

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

电路交换和分组交换则是强调在通信时用户对网络资源的占用方式。电路交换是在连接建立后到连接释放前全程占用信道资源,而分组交换则是在数据传送是断续占用信道资源(分组在哪一条链路上传送就占用该链路的信道资源)。

面向连接和无连接往往可以在不同的层次上来讨论。例如,在数据链路层,HDLCPPP协议是面向连接的,而以太网使用的CSMA/CD则是无连接的。在网络层,X.25协议是面向连接的,而IP协议则是无连接的。在运输层,TCP是面向连接的,而UDP则是无连接的。但是我们却不能说:“TCP是电路交换”,而应当说:“TCP可以向应用层提供面向连接的服务”。


问题1-20信道的利用率是否越高越好?

这个问题要看从什么角度考虑问题。

信道利用率就是信道平均被占用的程度。如果信道利用率是10%,就表示这个信道平均在10%的时间是被占用的(处于忙的状态),而平均在90%的时间是不被占用的(处于空闲状态)。

通信信道往往是为广大用户所共享使用的。从用户的角度考虑问题,用户当然希望通信信道的利用率很低,越低越好。在这种情况下,用户什么时候想使用就可以使用,不会遇到信道太忙无法使用的情况。用户使用公用的通信信道是随机使用的,如果在某个时间,使用信道的人数太多,信道就可能处于繁忙状态,这时,有的用户就无法使用这样的信道。

从通信公司的角度考虑问题时,他们要考虑到通信线路的建设成本和利润。如果电信公司使通信信道的容量能够应付用户通信量最高峰,那么这种信道的造价一定很高,而在平时,这种信道的利用率肯定是很低的。这样,在经济上就很不上算,或许还要赔钱。因此,电信公司总是希望他们所建造的通信信道的利用率要高一些,越高越好。

于是,矛盾就出现了。由于信道的利用率总是很高(请注意,这是指信道的利用率的平均值很高,而不是瞬时峰值。瞬时峰值很可能常常使信道利用率达到饱和,即100%),用户经常无法得到满意的服务。于是用户不满意的投诉增多,甚至不愿意再使用这个公司提供的服务,这就迫使电信公司加大投资对通信线路进行扩容,以降低通信信道的平均利用率。我们可能都曾遇到国这样的情况。某个ISP声称通过他们上网的价格比别的ISP便宜。但是你会发现,这个ISP的电话很难拨通。或者电话是拨通了,但后来注册不上去。白白花费了市话费,还上不了网,浪费了时间。这就是该ISP为了省钱,向电信公司租用的连接到因特网的线路的容量不够大,使得这条线路的平均利用率总是很高。结果,影响了对用户提供的服务。

现在的许多通信信道实际上就是一种排队系统。根据附录A中最基本的排队系统的分析,很多排队系统的迟延时间大都和因子(1 – 信道利用率)成反比,这点可参考公式(A40)(A-45)。例如,当信道利用率达到50%时,因排队时延将使平均迟延时间加倍。若信道利用率达到100%,那么这个信道已经完全不能使用了,因为平均迟延达到无穷大。

那么,信道的平均利用率应当多大才合适呢?这并没有什么标准。有些ISP把信道的平均利用率设为50%,也有的为了省钱,设为80%。但一般都认为,把信道的平均利用率设为90%肯定是不行的。

实际上,以上所讲的,对所有共享资源的利用率都是有这样的共性问题。例如,从顾客的角度考虑问题,我们当然希望,在任何时候,当我们到银行取钱或存钱时都不用排队。但这是不可能的。因为如果是这样的话,那么银行就必须在其营业厅里设有非常多的窗口。但这样一来,也一定会在某些时间,银行的营业厅中会有大批营业员闲置没有事情做。从银行的角度考虑问题,让每一个窗口永远有顾客在排长队取钱或存钱,这对银行的营业员的效率是最高的,可以充分利用每一个营业员的每一分钟时间。但这样又会引起广大顾客的不满意。因此,银行应当对其营业厅的窗口平均利用率有一个合理的安排。


问题1-3因特网使用的IP协议是无连接的,因此其传输是不可靠的。这样容易使人们感到因特网很不可靠。那么为什么当初不把因特网的传输设计成为可靠的?在教材中1.2.1节提到这种新型计算机网络必须满足的要求有一条是“能够非常可靠地传送数据”。但因特网的网络层使用IP协议,它只能提供不可靠的数据传输。那么这里有没有什么矛盾?

:这个问题很重要,需要多一些篇幅来讨论。

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

我们知道,传统的电信网的最主要的用途是进行电话通信。普通的电话机很简单,没有什么智能。因此电信公司就不得不把电信网设计得非常好,这种电信网可以保证用户通话时的通信质量。这点对使用非常简单的电话机的用户则是非常方便的。但电信公司为了建设能够确保传输质量的电信网则付出了巨大的代价(使用昂贵的程控交换机和网管系统)。

数据的传送显然必须是非常可靠的。当初美国国防部在设计ARPANET时有一个很重要的讨论内容就是:“谁应当负责数据传输的可靠性?”这时出现了两种对立的意见。一种意见是主张应当像电信网那样,由通信网络负责数据传输的可靠性(因为电信网的发展历史及其技术水平已经证明了人们可以将网络设计得相当可靠)。但另一种意见则坚决主张由用户的主机负责数据传输的可靠性。这里最重要的理由是:这样可以使计算机网络便宜、灵活,同时还可以满足军事上的各种特殊的需求。下面用一个简单例子来说明这一问题。

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

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

提出这种思路的人认为,计算机网络和电信网的一个重大区别就是终端设备的性能差别很大。电信网的终端是非常简单的、没有什么智能的电话机。因此电信网的不可靠必然会严重地影响人们利用电话的通信。但计算机网络的终端是有很多智能的主机。这样就使得计算机网络和电信网有两个重要区别。第一,即使传送数据的因特网有一些缺陷(如造成比特差错或分组丢失),但具有很多智能的终端主机仍然有办法实现可靠的数据传输(例如,能够及时发现差错并通知发送方重传刚才出错的数据)。第二,即使网络可以实现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)       主机AB的硬件处理机或存储器在主机AB进行数据缓存或复制的过程中也有可能出现故障。

(4)       通信系统在传输数据分组时有可能产生检测不出来的比特差错或甚至丢失某些分组。

(5)       主机AB都有可能在进行数据处理的过程中突然崩溃。

由此可看出,即使对于这样一个简单的文件传送任务,仅仅使通信网络非常可靠并不能保证文件从主机A硬盘到主机B硬盘的传送是可靠的。也就是说,花费很多的钱将通信网络做成为非常可靠的,对传送计算机数据来说是得不偿失的。既然现在的终端设备有智能,就应当把网络设计得简单些而让具有智能的终端来完成“使传输变得可靠”的任务

于是,计算机网络的设计者采用了一种策略,这就是“端到端的可靠传输”。更具体些,就是在运输层使用面向连接的TCP协议,它可保证端到端的可靠传输。只要主机BTCP发现了数据的传输有差错,就告诉主机A将出现差错的那部分数据重传,直到这部分数据正确传送到主机B为止。而TCP发现不了数据有差错的概率是很小的。采用这样的建网策略,既可以使网络部分价格便宜和灵活可靠又能够保证端到端的可靠传输

这样,我们可以这样想像,将因特网的范围稍微扩大一些,即扩大到主机中的运输层(请参考前面的图)。由于运输层使用了TCP协议,使得端到端的数据传输成为可靠的,因此这样扩大了范围的因特网就成为可靠的网络

因此,说“因特网提供的数据传输是不可靠的”或“因特网提供的数据传输是可靠的”这两种说法都可以在文献中找到,问题是是怎样界定因特网的范围。如果说因特网提供的数据传输是不可靠的,那么这里的因特网指的是不包括主机在内的网络(仅有下三层)。说因特网提供的数据传输是可靠的,就表明因特网的范围已经扩大到主机的运输层。

    再回到通过邮局寄平信的例子。当我们寄出一封平信后,可以等待收信人的确认(通过他的回信)。如果隔了一些日子还没有收到回信,我们可以将该信件再寄一次。这就是将“端到端的可靠传输”的原理用于寄信的例子。


问题1-5在运输层应根据什么原则来确定应当使用面向连接服务还是无连接服务?

:根据上层应用程序的性质。

例如,在传送文件时要使用文件传送协议FTP,而文件的传送必须是可靠的,因此在运输层就必须使用面向连接的TCP协议。但是若应用程序是要传送分组话音或视频点播信息,那么为了要保证信息传输的实时性,在运输层就必须使用无连接的UDP协议另外,选择TCPUDP时还需考虑对连接资源的控制。若应用程序不希望在服务器端同时建立太多的TCP连接时,可考虑采用UDP。


问题1-6在数据链路层应根据什么原则来确定应当使用面向连接服务还是无连接服务?

:在设计硬件时就能够确定。例如,若采用拨号电路,则数据链路层将使用面向连接服务。但若使用以太网,则数据链路层使用的是无连接服务。


问题2-10ATM是异步传递方式。是否ATM方式与同步通信完全无关?

:不能这样说。我们知道ATM往往要使用下面的物理层进行传输,而SONET/SDH恰好是使用同步传输技术。因此,“ATM使用SONET/SDH”的传输方式,在物理层上观察,则所传送的比特流是同步传输的比特流。也就是说,在发送端和接收端之间的时钟有着严格的同步关系。ATM的“异步”只是说:每一个ATM信元在插入到下面的同步比特流中的时间是不确定的;可以连续插入,也可以在每个信元结束后停顿任意时间才插入下一个信元。


问题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 kHz4 kHz。这两种说法实质上是一样的,即一个不包含保护带宽而另一个包含保护带宽。为了便于讨论问题,“4 kHz带宽”这种说法使用得非常广泛。


问题2-4奈氏准则和香农公式的主要区别是什么?这两个公式对数据通信的意义是什么?

答:奈氏准则指出了:码元传输的速率是受限的,不能任意提高,否则在接收端就无法正确判定码元是1还是0(因为有码元之间的相互干扰)。

奈氏准则是在理想条件下推导出的。在实际条件下,最高码元传输速率要比理想条件下得出的数值还要小些。电信技术人员的任务就是要在实际条件下,寻找出较好的传输码元波形,将比特转换为较为合适的传输信号。

需要注意的是,奈氏准则并没有对信息传输速率b/s)给出限制。要提高信息传输速率就必须使每一个传输的码元能够代表许多个比特的信息。这就需要有很好的编码技术。

香农公式给出了信息传输速率的极限,即对于一定的传输带宽(以赫兹为单位)和一定的信噪比,信息传输速率的上限就确定了。这个极限是不能够突破的。要想提高信息的传输速率,或者必须设法提高传输线路的带宽,或者必须设法提高所传信号的信噪比,此外没有其他任何办法。至少到现在为止,还没有听说有谁能够突破香农公式给出的信息传输速率的极限。

香农公式告诉我们,若要得到无限大的信息传输速率,只有两个办法:要么使用无限大的传输带宽(这显然不可能),要么使信号的信噪比为无限大,即采用没有噪声的传输信道或使用无限大的发送功率(当然这些也都是不可能的)。


问题2-5传输媒体是物理层吗?传输媒体和物理层的主要区别是什么?

答:传输媒体并不是物理层。传输媒体在物理层的下面。由于物理层是体系结构的第一层,因此有时称物理层为0层。在传输媒体中传输的是信号,但传输媒体并不知道所传输的信号代表什么意思。也就是说,传输媒体不知道所传输的信号什么时候是1什么时候是0。但物理层由于规定了电气特性,因此能够识别所传送的比特流。下面的图说明了上述概念。

posted on 2008-10-28 10:15  jcsu  阅读(799)  评论(0)    收藏  举报