18 KiB
概述习题
计算机网络
例题 计算机网络可被理解为()。
A.执行计算机数据处理的软件模块
B.由自治的计算机互联起来的集合体
C.多个处理器通过共享内存实现的紧耦合系统
D.用于共同完成一项任务的分布式系统
解:$B$。计算机网络是由自治计算机互联起来的集合体,其中包含着三个关键点:自治计算机、互联、集合体。自治计算机由软件和硬件两部分组成,所以A错误,能完整地实现计算机的各种功能;互联是指计算机之间能实现相互通信;集合体是指所有使用通信线路及互联设备连接起来的自治计算机的集合。选项C和D分别指多机系统和分布式系统。
例题 在计算机网络中可以没有的是()。
A.客户机
B.务器
C.操作系统
D.数据库管理系统
解:$D$。从物理组成上看,计算机网络由硬件、软件和协议组成,客户机是客户访问网络的出入口,服务器是提供服务、存储信息的设备,当然是必不可少的。只是,在P2P模式下,服务器不一定是固定的某台机器,但网络中一定存在充当服务器角色的计算机。操作系统是最基本的软件。数据库管理系统用于管理数据库,由于在一个网络上可以没有数据库系统,所以数据库管理系统可能没有。
数据交换方式
计算时需要注意:
- 单位换算。
- 是否考虑传播时延。
- 选择最少跳数。
- 起始时间。
- 是否要计算头部大小。
- 报文交换时延更长,分组交换时延可能不是整数。
带宽与发送时延相关;传播时延仅与距离相关,电磁波传播速度往往是定值。
交换方式计算
传播时延基本上三种交换方式都是一样的。
电路交换
电路交换不使用存储转发,所以时间开销只包含传播时延、发送时延和一个电路建立时间。
发送时延直接数据总长度÷链路发送速率就可以了。
报文交换
以报文为单位,使用存储转发技术。
发送时延为报文总长度÷链路发送速率×链路条数。
分组交换
分组交换的发送时延都按两个步骤来计算。第一是发送整个分组的时延,第二是单个分组经过所有交换机分组转发的时间。
为什么要这样考虑?因为在第一步时所有的分组都被发送出去了,就不用考虑前面的分组怎么样了,只用考虑最后一个分组还要多长时间到达目的,之前的分组肯定在此之前都达到了目标,所以这就是为什么第二步只用考虑一个分组进行分组转发算时间的原因。
传输时间
例题 已知要传输一份信息大小为$10000bit$,需要经过两个交换设备。所有链路的传输速率为$1000bps$。假如分组交换中每一个分组为$10bit$,其他条件忽略(如接收时延,排队时延、报文头部长度等),求报文交换与分组交换两种方式所需要的传输时间。
解:
报文交换:
$10000\div1000=10(s)$,从而报文在每一个链路上需要$10s$的传输时延。因为要经过两个交换设备所以有三条链路,从而一共需要$10\times3=30(s)$。
分组交换:
每个分组传输需要$10\div1000=0.01(s)$,而一共有$10000\div10=1000$个分组,所以一共需要$0.01×1000=10(s)$发送所有分组。
此时$10s$的时候所有的分组已经发送出去了,不考虑传播时延的情况下,按照报文交换的视角整个数据都到达了第一个交换设备,而按分组交换视角,是最后一个分组到达了第一个交换设备,倒数第二个分组到达第二个交换设备,倒数第三个分组以及以前的分组都已经到达了,所以我们还需要计算还需要多少秒完全传输完。倒数第一个分组是最后一个,所以只用考虑它。最后一个分组还需要传输两个链路,所以还需要$0.01\times2=0.02(s)$,所以总共的分组交换需要$10+0.02=10.02(s)$。
例题 在采用“存储-转发”方式的分组交换网络中,所有链路的数据传输速率为$100Mb/s$,分组大小为$1000B$,其中分组头大小为$20B$。若主机$H1$经过两个分组交换机向主机$H2$发送一个大小为$980000B$的文件,则在不考虑分组拆装时间和传播延迟的情况下,从$H1$发送开始到$H2$接收完为止,需要的时间至少是()。
A.80ms
B.80.08ms
C.80.16ms
D.80.24ms
解:$C$。因为分组大小为$1000B$,其中分组头大小为$20B$,所以只能携带$1000-20=980B$个数据,而一共要发送一个$980000B$的文件,所以分为$1000$组分组,从而总的数据量为$1000\times1000=10^6B=1MB=8Mbit$。根据链路传输速率为$100Mb/s$,所以为$0.08s=80ms$。这时所有的分组都被$H_1$发出。
然后考虑最后一个分组的发送情况。因为有两个分组交换机,所以在$H_1$发出后还需要经过两次分组转发才能到达$H_2$,不考虑传播时延则不计算电磁波传播时间。每次最后一个分组进行分组转发的时间为$1000\times8/100=0.08ms$,一共两个交换机,所以还要$0.16ms$。
所以总共为$80.16ms$。
例题 试在下列条件下比较电路交换和分组交换。要传送的报文共$x$比特。从源点到终点共经过$k$段链路,每段链路的传播时延为$d$秒,数据传输速率为$b$比特/秒。在电路交换时电路的建立时间为$s$秒。在分组交换时分组长度为$p$比特,且各结点的排队等待时间可忽略不计。问在怎样的条件下,分组交换的时延比电路交换的时延要小?(提示:画草图观察k段链路共有几个结点)
解:忽略排队等待时延,所以电路交换时延=建立连接时延+发送时延+传播时延,分组交换时延=发送时延+传播时延。
电路交换与分组交换都是经过同样长度的链路,传播时延一样,有$k$条链路,所以传播时延都是$kd$。
由于电路交换不使用存储转发,所以有$k$条链路对其没有存储转发的影响,是一直传送到目标,所以发送时延=$x/b$。
所以电路交换的总时延就是再加上$s$,为$s+x/b+kd$。
对于分组交换,总共设置了$x/p$个分组。
由于分组交换使用了存储转发技术,所以每一个站点就需要一次发送时延$p/b$。数据在经过$(k-1)p/b$个发送时延后从$k$个$p/b$开始都有一个分组发送成功。一共有$x/p$个分组,所以一共需要$(k-1)p/b+x/p\cdot p/b=(k-1)p/b+x/b$。
所以对于分组交换的总时延就是$(k-1)p/b+x/b+kd$。
若分组交换时延要小于电路交换时延,所以$(k-1)b/p<s$。
数据长度
例题 在上题的分组交换网中,设报文长度和分组长度分别为$x$和$p+h$比特,其中$p$为分组的数据部分的长度,而$h$为每个分组所带控制信息的固定长度,与$p$的大小无关。通信的两端共经过$k$段链路。链路的数据传输速率为$b$比特/秒,传播时延、结点的排队时延和处理时延均可忽略不计。若欲使总的时延为最小,问分组的数据部分长度$p$应取多大?
解:首先一共有$x/p$个分组。
前$(k-1)$个时间段所有数据都在发送,第$k$个开始发送到达,所以前面需要$(k-1)((p+h)/b)$,而后面计算所有分组发送成功的时间,即$x/p((p+h)/b)$。
最后相加得到$t=(k-1)((p+h)/b)+x/p((p+h)/b)$,$p$为自变量,对其求导得$\textrm{d}t/\textrm{d}p=(k-1)b-(xh/b)(1/p^2)$,令其等于0。
解得$p=\sqrt{(xh)/(k-1)}$。
数据分组
例题 假定有一个通信协议,每个分组都引入$100$字节的开销用于头和成帧。现在使用这个协议发送$10^6$字节的数据,然而在传送的过程中有一个字节被破坏,因而包含该字节的那个分组被丢弃。试对于$1000$字节和$20000$字节的分组的有效数据大小分别计算“开销+丢失”字节的总数目。分组数据大小的最佳值是多少?
解:尤其注意这个每个分组都引入$100$字节的额外开销,这个不用于计算分组个数。
令分组数据的大小为$D$,所以一共需要$10^6/D$个分组,所以算上每组$100$字节的开销,一共需要$10^8/D$的额外开销。因为只丢失一个分组,所以开销+丢失一共$10^8/D+D$字节。
当$D=1000$时,消耗$10^8/1000+1000=101000$字节。
当$D=20000$时,消耗$10^8/20000+20000=25000$字节。
设消耗总数目为$y=10^8/D+D$,求其导数为$\textrm{d}y/\textrm{d}D=1-10^8/D^2$,令其为$0$,解得$D=10^4$时消耗最小,所以分组数据最好为$10000$字节。
性能指标
RTT
$RTT$是从发送方发送数据开始,到发送方收到接收方的确认(假如收到数据立刻返回确认)总共经历的时延。
$RTT$=往返传播时延+末端处理时延。
所以$RTT$是与传播时延相关的,若没有末端处理时间,那么传播时延=RTT/2
例题 在下列情况下,计算传送$1000KB$文件所需要的总时间,即从开始传送时起直到文件的最后一位到达目的地为止的时间。假定往返时间$RTT$为$100ms$,一个分组是$1KB$(即$1024B$)的数据,在开始传送整个文件数据之前进行的起始握手过程需要$2RTT$的时间。
1)带宽是$1.5Mb/s$,数据分组可连续发送。
2)带宽是$1.5Mb/s$,但在发送完每个数据分组后,必须等待一个$RTT$(等待来自接收方的确认)才能发送下一个数据分组。
3)假设带宽是无限大的值,即我们取发送时间为$0$,并在等待每个$RTT$后可以发送多达$20$个分组。
1)解:计算总时延=发送时延+传播时延+握手时延。其中握手时延是固定的$2RTT=0.1\times2=0.2(s)$。
发送时延=$1000\times1024\times8/1.5\times10^6=5.46(s)$。
所以总时间为$0.2+5.46+0.05=5.71(s)$。
2)解:每一个数据都需要一个$RTT$,而$1000$个数据就需要$999$个,因为最后一个不用确认就传输完了。所以只需要第一题基础上加上$999RTT$:$5.71+99.9=105.61(s)$。
3)解:因为发送时延不计算,所以只用考虑传播时延。每个分组为$1KB$,所以可以分为$1000$个分组。而每次可以发送$20$个分组,所以需要发送$50$次数据和$50-1=49$次$RTT$,最后一次只需要走到终点而不需要等待返回,所以只用$0.5RTT$,从而一共为$2RTT+49RTT+0.5RTT=5.15RTT=5.15(s)$。
例题 假定在地球和月球之间建立一条$100Mb/s$的链路。月球到地球的距离约为$385000km$,数据在链路上以光速$3×10^8m/s$传输。
1)计算该链路的最小$RTT$。
2)使用$RTT$作为延迟,计算该链路的“延迟×带宽”值。
3)在2)中计算的“延迟×带宽”值的含义是什么?
4)在月球上用照相机拍取地球的相片,并把它们以数字形式保存到磁盘上。假定要 在地球上下载$25MB$的最新图像,那么从发出数据请求到传送结束最少要花多少时间?
1)解:最小RTT等于$2×385000000m/(3×10^8m/s)=2.57s$。
2)解:“延迟×带宽”值等于$2.57s×100Mb/s=257Mb=32MB$。
3)解:它表示发送方在收到一个响应之前能够发送的数据量。
4)解:在图像可以开始到达地面之前,至少需要一个$RTT$。假定仅有带宽延迟,那么发送需要的时间等于$25MB/(100Mb/s)=(25×1024×1024×8)bit/(100Mb/s)\approx2.1s$。因此,直到最后一个图像位到达地球,总共花的时间等于$2.1+2.57=4.67s$。注意这里$MB$的单位转换问题,$1M=2^{20}$而不是$10^6$。
体系结构
例题 下列能够最好地描述$OSI$参考模型的数据链路层功能的是()。
A.提供用户和网络的接口
B.处理信号通过介质的传输
C.控制报文通过网络的路由选择
D.保证数据正确的顺序和完整性
解:$D$。数据链路层的功能包括:链路连接的建立、拆除、分离;帧界定和帧同步;差错检测等。$A$是应用层的功能,$B$是物理层的功能,$C$是网络层的功能,$D$才是数据链路层的功能。
例题 当数据由端系统$A$传送至端系统$B$时,不参与数据封装工作的是()。
A.物理层
B.数据链路层
C.网络层
D.表示层
解:$A$。物理层以$0$、$1$比特流的形式透明地传输数据链路层递交的帧。网络层、表示层和应用层都为上层提交的数据加上首部,数据链路层为上层提交的数据加上首部和尾部,然后提交给下一层。物理层不存在下一层,自然也就不用封装。
例题 在$ISO/OSI$参考模型中,可同时提供无连接服务和面向连接服务的是()。
A.物理层
B.数据链路层
C.网络层
D.传输层
解:$C$。本题容易误选$D$。$ISO/OSI$参考模型在网络层支持无连接和面向连接的通信,但在传输层仅支持面向连接的通信:$TCP/IP$模型在网络层仅有无连接的通信,而在传输层支持无连接和面向连接的通信。两类协议栈的区别是统考的考点,而这个区别是常考点。
例题 下列说法中,正确描述了OSI参考模型中数据的封装过程的是()。
A.数据链路层在分组上仅增加了源物理地址和目的物理地址
B.网络层将高层协议产生的数据封装成分组,并增加第三层的地址和控制信息
C.传输层将数据流封装成数据帧,并增加可靠性和流控制信息
D.表示层将高层协议产生的数据分割成数据段,并增加相应的源和目的端口信息
解:$B$。$A$,数据链路层在分组上除增加源和目的物理地址外,也增加控制信息如$MAC$信息;$C$,传输层的$PDU$不称为帧而称为报文;$D$,表示层不负责把高层协议产生的数据分割成数据段,且负责增加相应源和目的端口信息的应是传输层。选项$B$正确描述了$OSI$参考模型中数据的封装过程,数据经过应用层、表示层、会话层后,只是增加了第三层$PCI$。
例题 在$OSI$参考模型中,提供流量控制功能的层是第(①)层;提供建立、维护和拆除端到端的连接的层是(②);为数据分组提供在网络中路由的功能的是(③);传输层提供(④)的数据传送;为网络层实体提供数据发送和接收功能及过程的是(⑤)。
① $A$.$1$、$2$、$3$ $B$.$2$、$3$、$4$ $C$.$3$、$4$、$5$ $D$.$4$、$5$、6
② $A$.物理层 $B$.数据链路层 $C$.会话层 $D$.传输层
③ $A$.物理层 $B$.数据链路层 $C$.网络层 $D$.传输层
④ $A$.主机进程之间 $B$.网络之间 $C$.数据链路之间 $D$.物理线路之间
⑤ $A$.物理层 $B$.数据链路层 $C$.会话层 $D$.传输层
解:①B、②D、③C、④A、⑤B。
$A$,在计算机网络中,流量控制指的是通过限制发送方发出的数据流量,从而使得其发送速率不超过接收方接收速率的一种技术。流量控制功能可以存在于数据链路层及其之上的各层中。目前提供流量控制功能的主要是数据链路层、网络层和传输层。不过,各层的流量控制对象不一样,各层的流量控制功能是在各层实体之间进行的。
$BC$,在$OSI$参考模型中,物理层实现比特流在传输介质上的透明传输;数据链路层将有差错的物理线路变成无差错的数据链路,实现相邻结点之间即点到点的数据传输。网络层的主要功能是路由选择、拥塞控制和网际互联等,实现主机到主机的通信;传输层实现主机的进程之间即端到端的数据传输。
$D$,下一层为上一层提供服务,而网络层下一层是数据链路层,所以为网络层实体提供数据发送和接收功能及过程的是数据链路层。
例题 在$OSI$参考模型中,(①)利用通信子网提供的服务实现两个用户进程之间端到端的通信。在这个层次模型中,如果用户$A$需要通过网络向用户B传送数据,那么酋先将数据送入应用层,在该层给它附加控制信息后送入表示层;在表示层对数据进行必要的变换并加上头部后送入会话层;在会话层加头部后送入传输层;在传输层将数据分割为(②)后送至网络层;在网络层将数据封装成(③)后送至数据链路层;在数据链路层将数据加上头部和尾部封装成(④)后发送到物理层;在物理层数据以(⑤)形式发送到物理线路。用户$B$所在的系统接收到数据后,层层剥去控制信息,最终将原数据传送给用户$B$。
① $A$.网络层 $B$.传输层 $C$.会话层 $D$.表示层
② $A$.数据报 $B$.数据流 $C$.报文 $D$.分组
③ $A$.数据流 $B$.报文 $C$.路由信息 $D$.分组
④ $A$.数据段 $B$.报文 $C$.数据帧 $D$.分组
⑤ $A$.比特流 $B$.数据帧 $c$.报文 $D$.分组
解:①$B$、②$C$、③$D$、④$C$、⑤$A$。在$OSI$参考模型中,在对等层之间传送的数据的单位都称为协议数据单元($PDU$);具体而言,在传输层称为报文段($TCP$)或用户数据报($UDP$),在网络层称为分组或数据报,在数据链路层称为帧,在物理层称为比特。