配色: 字号:
问题3-1~11
2013-01-27 | 阅:  转:  |  分享 
  
(问题3-1:旧版的《计算机网络》认为数据链路层的任务是在两个相邻结点间的线路上无差错地传送以帧(frame)为单位的数据。数据链路层可以把一条有可能出差错的实际链路,转变成为让网络层向下看起来好像是一条不出差错的链路。

但最近新版的《计算机网络》(第4版和第5版)中对数据链路层的提法就改变了。数据链路层的传输不能让网络层向下看起来好像是一条不出差错的链路。

到底哪一种说法是正确的?

答:旧版的《计算机网络》对数据链路层的阐述是基于OSI体系结构的。OSI体系结构的数据链路层采用的是面向连接的HDLC协议,它提供可靠传输的服务。因此,旧版《计算机网络》的提法对OSI体系结构是正确的。

2003年以后新版的《计算机网络》更加突出了TCP/IP体系结构。现在因特网的数据链路层协议使用得最多的就是PPP协议和CSMA/CD协议(这种情况就是使用拨号入网或使用以太网入网)。这两种协议都不使用序号和确认机制,因此也就不能“让网络层向下看起来好像是一条不出差错的链路。”因此,新版《计算机网络》的提法符合当前计算机网络的现状。当接收端通过差错检测发现了帧在传输中出了差错,或者默默丢弃(silentlydiscard)而不进行任何其他处理(当使用PPP协议或CSMA/CD协议时),这是现在的大多数情况;或者使用重传机制要求发送方重传(当使用HDLC协议时),但这种情况现在很少使用。

如果需要可靠传输,那么就由高层的TCP协议负责重传。但数据链路层并不知道这是重传的帧。



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

答:当数据链路层使用PPP协议或CSMA/CD协议时,在数据链路层的接收端对所传输的帧进行差错检验是为了不将已经发现了有差错的帧(不管是什么原因造成的)收下来。如果在接收端不进行差错检测,那么接收端上交给主机的帧就可能包括在传输中出了差错的帧,而这样的帧对接收端主机是没有用处的。

换言之,接收端进行差错检测的目的是:“上交主机的帧都是没有传输差错的,有差错的都已经丢弃了”。或者更加严格地说,应当是:“我们以很接近于1的概率认为,凡是上交主机的帧都是没有传输差错的”。

(问题3-3:为什么旧的版本教材在数据链路层一章中讲授可靠传输,但现在新的版本教材则取消了可靠传输?

答:保证可靠传输的停止等待协议是计算机网络协议的基础内容之一。新的版本只是挪动了可靠传输这部分内容的位置,而不是取消这部分内容。

把这部分放在前面的数据链路层一章中讲的好处是可以更早些建立可靠传输的概念(因为我们是自下而上,先讲数据链路层,后讲运输层)。但缺点是实际上的数据链路层现在基本上并不使用可靠传输,因此放在数据链路层中讲可靠传输有些不符合实际。况且以后到运输层用到可靠传输时,学生有可能又会遗忘了一些。

把这部分内容放在运输层中讨论的好处是比较符合实际情况,讲完简单的可靠传输的概念后,接着就介绍比较复杂的滑动窗口概念可以取得更好的效果。这也是作者试图改变一下整个教材的结构的一种尝试。



(问题3-4:通过普通的电话用户线拨号上网时(使用调制解调器),试问一对用户线可容许多少个用户同时上网?

答:这并没有限制。但用户数目越多,则每一个用户的上网速率就越低。

多个用户共同使用一对电话线拨号上网有时是很有用的。例如,一个办公室内只有一对电话用户线可供拨号上因特网,但办公室内有多人在办公,他们都有自己的PC机,而且都想同时使用拨号上网。这时可将所有用户的PC机都用以太网连接起来(当然每一台PC机都必须安装一个以太网卡)。只有一台PC机要特殊些,即需要同时安装以太网卡和拨号上网卡(或使用外置的调制解调器)。这台特殊的PC机通常叫做代理服务器,它通过调制解调器用拨号方式与本地的ISP相连。代理服务器必须安装专门的软件(如Wingate2.0),同时还要完成一些必要的配置,这样就能使连接在以太网上的各PC机用共享一个调制解调器的方式同时上网。ISP并不知道有多少人共享一个调制解调器。ISP只知道现在是这台代理服务器在使用拨号上网。ISP只分配一个临时的IP地址给此代理服务器暂时使用。

(问题3-5:除了差错检测外,面向字符的数据链路层协议还必须解决哪些特殊的问题?

答:最主要的就是要解决帧定界和透明传输的问题。

帧定界就是要使接收端能够知道一帧的开始和结束是在什么地方。面向字符的数据传输就是所传输的数据全都是一个个的字符,例如ASCII字符。因此,在每一帧的开始和结束的地方,必须要有一个特殊的字符来作为标志,如下图所示。



字符SOH代表StartOfHeader(首部开始),而EOT代表EndOfTransmission(传输结束)。请注意,SOH和EOT都是ASCII码中的控制字符。SOH的十六进制编码是01,而EOT的十六进制编码是04。不要误认为SOH是“S”“O”“H”三个字符,也不要误认为EOT是“E”“O”“T”三个字符。

解决了帧定界后,在接收端就可以确定一个帧的开始和结束。剩下的问题就是透明传输的问题。

透明传输实际上就是随便什么字符都可以传输。但设想我们在帧中传送的字符出现了一个控制字符“EOT”。那么接收端收到这样的数据后,就会将原来的SOH和数据中的“EOT”错误地解释为一个帧,但对后面剩下的字符根本就无法解释(见下图)。



像这样的传输显然就不是“透明传输”,因为当遇到数据中的字符“EOT”就传不过去了,它被接收端解释为控制字符。实际上此处的字符“EOT”并非控制字符而是一般数据。

为了解决透明传输问题,就必须设法将数据中可能出现的控制字符“SOH”和“EOT”在接收端不解释为控制字符。方法是:在数据中出现字符“SOH”或“EOT”时就将其转换为另一个字符,而这个字符是不会被错误解释的。但所有字符都有可能在数据中出现。于是就想出这样的办法:将数据中出现的字符“SOH”转换为“ESC”“x”这样两个字符,将数据中出现的字符“EOT”转换为“ESC”“y”这样两个字符。而当数据中出现了控制字符“ESC”时,就将其转换为“ESC”“z”这样两个字符。这种转换方法就能够在接收端正确地还原为原来的数据。“ESC”是转义符,它的十六进制编码是1B。

下图表示在数据中出现了四个控制字符“ESC”“EOT”“ESC”“SOH”。按以上规则转换后的数据如下图所示。



读者可以很容易地看出,在接收端只要按照以上转换规则进行相反的转换,就能够还原出原来的数据(例如遇到“ESC”“z”就还原为“ESC”)。

以上就是实现透明传输的原理。

(问题3-6:为什么计算机进行通信时发送缓存和接收缓存总是需要的?

答:当计算机的两个进程(在同一台机器中或在两个不同的机器中)进行通信时,如果发送进程将数据直接发送给接收进程,那么这两个动作(一个是发送,另一个是接收)是非常难协调好的。这是因为计算机的动作很快,如果在某一时刻接收进程开始执行接收的动作,但发送进程的发送动作稍微早了一点或稍微晚了一点(在收发双方事先未进行同步的情况下,发送时刻不可能恰好和接收时刻精确地重合),这都会使接收失败。因此,在计算机进程之间的通信过程中,广泛使用缓存。

缓存就是在计算机的存储器中设置的一个临时存放数据的空间。发送进程将欲发送的数据先写入缓存,然后接收进程在合适的时机读出这些数据。

缓存有点像邮局在街上设立的邮筒。我们可以在我们方便时将欲发送的信件丢到邮筒中。邮局的邮递员按照他的计划在适当时候打开邮筒,将大家投入的信件取走,交到邮局,进行下一步处理。

缓存可以很好地解决发送速率和接收速率不一致的矛盾,还可以很方便地进行串并转换,即比特流串行写入并行读出,或并行写入串行读出。

缓存也可称为“缓冲”或“缓冲区”。英文就是buffer。



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

答:这里的“载波”并非指频分复用FDM的载波。CSMA/CD协议的发明者故意使用了大家早已熟悉的旧名词Carrier(载波),来表示连接在以太网上的工作站检测到了其他工作站发送到以太网上的电信号。

(问题3-8:在以太网中,不同的传输媒体会产生不同的传播时延吗?

答:是的。在以太网中,不同的传输媒体会产生不同的传播时延。下面是典型的测量结果:

传输媒体 电磁波在该媒体中的传播速度 粗缆(同轴电缆) 0.77c(2.31(105km/s) 细缆(同轴电缆) 0.65c(1.95(105km/s) 双绞线 0.59c(1.77(105km/s) 光纤 0.66c(1.98(105km/s) AUI电缆 0.65c(1.95(105km/s) 在上表中,c是光在真空中的传播速度,即3.0(105km/s。

(问题3-9:在以太网中发生了碰撞是否说明这时出现了某种故障?

答:还不能这样看。

以太网中发生碰撞是很正常的现象。发生碰撞只是表明在以太网上同时有两个或更多的站在发送数据。碰撞的结果是这些站所发送的数据都没有用了,都必须进行重传。以太网上发生碰撞的机会是多还是少,与以太网上的通信量强度有很大的关系。这并没有一个绝对的定量的准则。很难说具有多大的碰撞次数就属于坏的以太网。

(问题3-10:从什么地方可以查阅到以太网帧格式中的“类型”字段是怎样分配的?

答:可到下面的URL查阅:

http://www.iana.org/assignments/ethernet-numbers

(问题3-11:是什么原因使以太网有一个最小帧长和最大帧长?

答:设置最小帧长是为了区分开噪声和因发生碰撞而异常中止的短帧。

设置最大帧长是为了保证个站都能公平竞争接入到以太网。因为如果某个站发送特长的数据帧,则其他的站就必须等待很长的时间才能发送数据。



SOHEOTSOHEOTEOTSOHEOT?EOT数据中出现了一个控制字符“EOT”SOHEOTESCSOHEOTESCEOTSOHESCzESCyESCzESCx
献花(0)
+1
(本文系liyi039首藏)