习题解答
1-1讲
1. 网络有哪些构件?主机之间互联有哪几种方式?端系统上的现代操作系统通常定义了哪些编程开发接口?
答:网络实体可以被抽象为两种基本构件:结点和链路。
主机之间互联有3种方式:①直接连接的方式,②间接连接的网络云方式;(3) 间接连接的网络云互联方式。
端系统上的现代操作系统通常定义了两种编程开发接口:①系统与通信网连接的硬件接口,位于网络层与链路层之间,用以开发与各种不同的通信网连接的网络适配器的驱动程序;②操作系统与应用程序的接口,位于运输层与应用层之间,为编程人员提供了一套API以进行网络应用程序的开发。
2. 参见图1-11,因特网具有大致分层的ISP等级结构。由此回答:为何说因特网是网络的网络?每层ISP是否大致与地理范围对应?内容提供商正在以何种方式改变因特网的结构?
答:从ISP等级结构图可以看到,因特网由众多ISP网络互连而成,因此因特网可以称为网络的网络。
每层ISP大致与地理范围有对应关系:第一层ISP连接各个国家之间,覆盖洲际范围;第二层ISP连接各本地ISP,覆盖国家或区域范围;本地ISP直接连接用户,覆盖一个城市。
内容提供商如谷歌公司在全世界部署了一个专用的TCP/IP网络,用以连接约50个数据中心。每个数据中心具有几十万台到几百台不等的服务器,每时每刻会产生巨大的网络流量。谷歌专网不仅与第一层ISP相连,而且直接与更低层ISP相连,从而改变了因特网的结构。
3. 什么叫做网络协议?构成协议的几个要素是什么?是否可以缺失其中的某个要素?请举例说明原因。
答:网络协议是指为进行网络中的数据交换而建立的规则、标准或约定。 网络协议包括三个要素:语法、语义和定时。语法描述了数据与控制信息的结构或格式,语义定义了需要发出何种控制信息、完成何种动作以及做出何种响应等,定时给出了事件实现顺序的详细说明。
网络协议的三要素缺一不可,缺失语法则无法对分组进行解析,缺失语义则无法完成相应的动作,缺失定时则无法保证协议的正确执行。
举例来说:一组侦察兵约定下午5点到某高地集结。语法是中文,语义正确:有时间有地点有任务,但是缺少定时。万一有人在预定时间没有到达,如何办?因此,需要增加一条定时约束,如“过时自行返回”。
1-2讲
1. 数据在各层之间的传递过程中,各层协议的首部起着什么作用?“水平的”协议和“垂直的”服务之间有什么关系?
答:每层协议的首部定义了本层协议进行交互时需要的控制信息。
协议是控制(水平的)对等实体之间进行通信所需要的规则。协议的实现一方面需要利用(垂直的)下一层为其提供的服务,另一方面又能够为上一层提供服务。
2. TCP/IP体系结构具有哪些层次?该体系结构的主要特点是什么?
答: TCP/IP的体系结构层次自上而下是应用层、运输层、网络层和网络接口层。其中应用层可以定义各种网络应用协议,运输层提供可靠字节流服务和不可靠数据报服务两种服务,网络层只有一个网际协议IP,支持互联多种网络技术以形成一个逻辑网络,网络接口层包括诸如以太网、电话网等多种通信网络。
TCP/IP体系结构的特点包括:协议栈呈沙漏形状,IP作为体系结构的细腰,一方面IP之上可以通过运输层协议,为多种应用程序提供不同的信道抽象,即一切运行在IP之上;其次,多种异构网络可以通过IP实现互联互通,及IP运行在一切网络之上。这一设计理念能够使高层应用和底层通信网技术独立发展,大大提高了因特网的灵活性。
3. 考虑一个长度为L的分组从端系统A开始,经一段链路传送到一台分组交换机,并从该分组交换机经第二段链路传送到目的端系统。令di、si和Ri表示链路i的长度、传播速度和传输速率(i=1,2)。该分组交换机对每个分组的时延为dproc。假定没有排队时延,根据di、si、Ri (i=1,2)和L,该分组总的端到端时延是什么?现在假定该分组是1,000字节,分组交换机的处理时延是1 ms,第一段链路的长度是4,000km,并且最后一段链路的长度是1,000km。对于这些值,该端到端时延为多少? 答:?(L/Ri?di/si)?dproc
i?12
2-3讲
1. 奈奎斯特公式与香农公式在数据通信中的意义是什么?比特/每秒和码元/每秒有何区别和联系?
答:奈奎斯特公式给出了任何实际的信道所能传输的最大数据传输速率,而香农公式则指出信道的极限信息传输速率。
比特/每秒和码元/每秒可以相互转换,前者是从信息量角度描述信息传输速率,而后者是从码元角度衡量数据传输速率。如果每个码元仅有1比特信息,则两者在数值上是相等的;如果每个码元有n比特信息,则码元/每秒在数值上等于n倍比特/每秒。
2. 常用的传输媒体有哪几种类型?它们的主要特点是什么?其中的多模光纤和单模光纤各适用于什么场合?
答:常用的传输媒体可分为两大类,即导向传输媒体和非导向传输媒体。 在导向传输媒体中,电磁波被导向沿着固体媒体(铜线或光纤)传播,而非导向传输媒体通常指自由空间,在非导向传输媒体中电磁波的传输常称为无线传输。
光脉冲在多模光纤中传输时会逐渐展宽,造成失真,故多模光纤只适合于短距离传输。单模光纤可使光线一直向前传播,而不会产生多次反射,损耗较小,可进行高速率远距离传输。
3. 与有线链路相比,无线链路通信有哪些重要的区别特征?
答:与有线链路相比,无线链路通信的特征是:
a. 衰减的信号强度:当电磁波穿过物体时,信号强度将减弱;
b. 来自其他源的干扰:在同一个频段发送信号的电波源将相互干扰。此外,环境中的电磁噪声也会形成干扰;
c. 多径传播:当电磁波的一部分受物体和地面反射,在发送方和接收方之间走了不同长度的路径,则会出现多径传播。这使得叠加后的信号变得时强时弱,难以控制。
2-4讲
1. 假定用户共享一条2 Mbps链路。同时假定当每个用户传输时连续以1 Mbps传输,但每个用户仅传输20%的时间。
a. 当使用电路交换时,能够支持多少用户?
b. 对于该问题的遗留问题,假定使用分组交换。为什么如果两个或更少的
用户同时传输的话,在链路前面基本上没有排队时延?为什么如果3个用户同时传输的话,将有排队时延?
c.求出某指定用户正在传输的概率。
d. 假定现在有3个用户。求出在任何给定的时间,所有3个用户在同时传输的概率。求出排队增长的时间比率。
答:
a. 当使用电路交换时,信道带宽需要用户独占,最多智能支持2个用户。 b. 因为2Mbps链路仅能容纳两个或更少的用户同时以1Mbps连续传输时,这时统计上会有资源富余,而当3个用户同时传输时,统计上便会出现供不应求的现象,导致排队时延。
c. 每个用户仅可能有20%的时间在传输,因此正在传输的概率是p=0.2。
?3?n3?n??p(1?p)?n?d. 其中传输概率由二项式公式决定:??,其中n≤3为传输用户数。当n=3时,上式=0.23×0.80=0.008。因为仅当n=3时排队才会增长,因此排队增长的时间比率也为0.008。
2. ADSL的上下行带宽为何设计为不对称?
答:因为家庭用户较多将信息取回家,较少向网络提供信息。
3. 当前无线接入所使用的WiFi技术基于何种标准?为何3G技术经常要与WiFi技术配合使用?
答:当前无线接入所使用的WiFi技术基于IEEE 802.11。3G技术的通信速率较低,约为几百kbps,上网费用高;而WiFi的通信速率为54Mbps或以上,且上网费用低。因此,在有WiFi的地方,就尽可能地使用WiFi,而在没有WiFi的地方就使用3G技术。
3-5讲
1. 链路层协议能够向网络层提供哪些可能的服务?举例说明链路层协议相应的服务。
答:链路层协议能够向网络层提供的服务包括:成帧、差错检测、可靠交付、媒体访问、流量控制。
例如,HDLC协议提供了数据链路层的成帧和CRC检测功能等。
2. 考虑4 bit的生成多项式G(x)=x3+1,假设数据M(x)的值为10101010。附加比特R(x)的值是什么?
答:R(x)=101(需要过程)。
3. 在SW3协议中,从接收方向发送方流动的ACK分组没有设置序号。为什么这些ACK分组不需要序号呢?
答:在SW3协议中,发送方需要序号以便让接收方判断是否出现了分组冗余,而ACK与发送的数据分组一一对应,不会出现ACK的冗余,故ACK分组不需要序号。
3-6讲
1. 在课件中给出了SW3的发送方FSM,请画出协议SW3的接收方的FSM。 答:协议SW3的接收方的FSM如下图所示: rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq1(rcvpkt) extract(rcvpkt,data)deliver_data(data)sndpkt= make_pkt(ACK,0, chksum)udt_send(sndpkt)oncethru=1等待来自下层的0等待来自下层的1rdt_rcv(rcvpkt) && (corrupt(rcvpkt) || has_seq1(rcvpkt))If(oncethru==1)udt_send(sndpkt)rdt_rcv(rcvpkt) && (corrupt(rcvpkt) || has_seq0(rcvpkt))udt_send(sndpkt)rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq1(rcvpkt) extract(rcvpkt,data)deliver_data(data)sndpkt= make_pkt(ACK1, chksum)udt_send(sndpkt)SW3和SW2的接收方FSM 注意:SW2接收方与SW3接收方协议是相同的(SW3发送方协议的与SW2发送方协议的差异在于增加了超时机制。超时机制的引入增加了发送方到接收方数据流中冗余分组的可能性。然而,SW2接收方已经能够处理冗余分组了。即如果接收方发送的ACK丢失,则在SW2接收方侧将出现冗余,发送方则会重传旧分组。)。
2. 考虑讨论流水线时的例子,网络跨越国家的例子。窗口长度设置成多少时,才能使该信道的利用率超过90%?
答:对于2.5Gbps光传输系统,RTT为35ms。分组长L=1,500 byte,发送时延:
ttrans
L1500?8bit/pkt???4.8?s9R2.5?10bps
当一次仅传输一个分组,信道的利用率仅为:
U?L/R0.0048??0.000137RTT?L/R35.0048
如果要使信道的利用率超过90%,窗口长度至少要大于:0.9/0.000137=6570,即一个发送窗口中,为得到应答的分组数量要大于6570个。
3. 考虑一种GBN协议,其发送方窗口为3,序号范围为1,024。假设在时刻t,接收方期待的下一个有序分组的序号是k。假设媒体不会对报文重新排序。回答以下问题:
a. 在t时刻,发送方窗口内的报文序号可能是多少?为什么?
b. 在t时刻,在当前传播回到发送方的所有可能报文中,ACK字段中所有可能值是多少?为什么?
答:一般而言,发送方窗口为N(本题中N=3)。
a. 一种情况是,接收方收到k-1号分组,并且对之前接收到的所有分组都进行了确认,且确认正确到达了发送方,那么发送方的窗口[k,k+N-1]。如果处于另一种极端,发送方未收到任何ACK,窗口[k-N,k-1]。因此,窗口始于[k-N,k]中某一点,大小为3。
b. 接收方等待分组k,收到和确认了k-1及其以前所有分组,如果这N个ACK未到达发送方,ACK范围[k-N,k-1],由于发送方已经发送分组[k-N,k-1],所以肯定收到了ACK k-N-1,根据累积确认原理,接收方一旦对k-N-1进行确认,则不会再对小于k-N-1号分组确认,故而ACK范围[k-N-1,k-1]。
4. 在SR协议中,如果报文在窗口中,发送方就会不等待确认而传输报文。考虑设计一种新的SR协议,一次发出一对报文,而且只有在知道第一对报文中的两个报文都正确到达后才发送第二对报文。
答:这种新的SR协议可描述为下图:
timeoutrdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_ACK(seqnum+1)udt_send(sndpkt,seqnum+1)Start_timer发送方seqnum = seqnum+2udt_send(sndpkt,seqnum)udt_send(sndpkt,seqnum+1)Start_timerWait for oddACK(rdt_rcv(rcvpkt) && corrupt(rcvpkt)) ||(rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_ACK(seqnum))(rdt_rcv(rcvpkt) && corrupt(rcvpkt)) ||(rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_not_ACK(seqnum)&& has_not_ACK(seqnum+1))rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_ACK(seqnum)Wait for pair of ACKsrdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_ACK(seqnum+1)timeoutudt_send(sndpkt,seqnum)udt_send(sndpkt,seqnum+1)Start_timer(rdt_rcv(rcvpkt) && corrupt(rcvpkt)) ||(rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_ACK(seqnum+1))rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_ACK(seqnum)seqnum = seqnum+2udt_send(sndpkt,seqnum)udt_send(sndpkt,seqnum+1)Start_timerWait for evenACKtimeoutudt_send(sndpkt,seqnum+1)Start_timerrdt_rcv(rcvpkt) && corrupt(rcvpkt)接收方rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq(seqnum+1)udt_send(sndpkt,seqnum+1)seqnum = seqnum+2Wait for odddatardt_rcv(rcvpkt) && corrupt(rcvpkt)rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq(seqnum)rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq(seqnum)udt_send(ACK,seqnum)Wait for pair of datardt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq(x)&& x!=seqnum&& x!=seqnum+1udt_send(ACK,x)udt_send(ACK,seqnum)rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq(seqnum+1)udt_send(ACK,seqnum+1)rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq(seqnum+1)rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq(seqnum)udt_send(ACK,seqnum)seqnum = seqnum+2Wait for evendataudt_send(ACK,seqnum+1)rdt_rcv(rcvpkt) && corrupt(rcvpkt)
3-7讲
1. 在分析多路访问协议时进行了哪些假设?现有的几十种多路访问协议是如何分类的?这种分类的方法与结点数量和结点访问信道的频率是否有关?
答:分析多路访问协议时的假设有:
a. 结点。N 个独立结点,彼此独立地产生数据帧。在一个长度为Δt 时隙中生成一个帧的概率是λΔt,其中λ是新帧的到达速率。
b. 单一信道。单一信道速率R bps 为所有发送方所用。所有结点能够在信道上发送和接收帧。结点的硬件为等同的,而协议软件可以为它们分配不同的优
先权。
c. 碰撞。如果两个帧同时传输,它们在时间上将重叠,导致碰撞帧的信号纠缠在一起无法分清。该事件被称为碰撞。所有结点都能够检测到碰撞。碰撞的帧必须在以后再次传输。
d. 时间。对于连续时间,能够在任意时刻开始传输帧。对于时隙时间,时间分为离散间隔(时隙)。帧总是在时隙起始时传输。一个时隙包含0、1 或多个帧,分别对应着空闲、成功传输或碰撞时隙。
e. 侦听。如果使用载波侦听,在试图使用信道前,结点能够分辨出信道是否正在使用。如果侦听到信道正在忙,任何结点将等待信道空闲后才会尝试使用它。如果不使用载波侦听,结点将直接传输帧,传输以后再来确定此次传输是否成功。
现有的几十种多路访问协议分为下列三类:信道划分协议、轮流协议和随机接入协议。
这种分类方法与结点数量和结点访问信道的频率有关系:当许多用户都有大量信息要发时,可使用信道划分协议;当许多用户都以较低概率发送信息时,可使用随机接入协议;而使用轮流协议的情况,介于这两种情况之间。
2. 我们讨论了时隙ALOHA效率推导。本习题将继续这个推导。 (a)当有N个活跃结点时,时隙ALOHA的效率是Np(1?p)表达式最大化的p值。
(b)使用在(a)中求出的p值,令N接近于无穷,求出时隙ALOHA的效率。(提
N(1?1/N)示:当N接近于无穷时,接近于1/e。)
N?1。 求出使这个
(c)进一步说明纯ALOHA的最大效率是1/(2e)。
答:(a)当有N个活跃结点时,时隙ALOHA的效率是Np(1-p)N-1。对该式求导,并令导数为0,可得N(1-p)N-1-Np(N-1)(1-p)N-2 = 0。故使表达式最大化时,p=1/N。
(b)代入p=1/N ,则Np(1-p)N-1=(1-1/N)N-1。当N趋向于无穷时,上式的极限为1/e。
(c)N个活跃结点时,ALOHA的效率是Np(1-p)2(N-1)。对该式取极限,得协议最大效率为:1/(2e)。
3-8讲
1. 考虑某让所有结点直接与一个集线器相连的100 Mbps的100BASE-T以太网。为了获得0.5的效率,结点和集线器之间的最大距离是多少?假设帧长为64 byte并且中间没有转发器。这个最大距离也确保正在传输的结点A能够检测出当A在传输时是否有其他任何结点在传输吗?为什么?你得到的最大距离和实际的100 Mbps标准比较将有什么结论?
0.5?11?5?T0 ,因为传输一个帧 的时间为
答:根据因特网的效率公式
T0?5.76?s,故有??1.152?s,结点和集线器之间的最大距离d为:
d?1.152?s*2*108m/s?230.4m。
又2??T0?5?,故能检测出其他在传输的结点。
最大距离远大于实际的100Mbps标准200m,说明理论是实践的参考,需考虑实际传输时的损耗等因素的影响。
2. 考虑在图3-26环境中的交换机的情况。假定①A向D发送一个帧,②D向A回答一个帧,③C向D发送一个帧,④D向C回答一个帧。该交换机表初始为空。显示在这些时间的前后该交换机表的状态。对于这些事件的每个,确定传输的帧在上面的转发的链路,并简要地论证你的答案。 答:对各接口编号如图所示,且假设过程中记录未发生超时。 路由器结点A适配器1362至广域网结点B适配器交换机45结点C结点D结点E 时间 T1 ① 地址 MAC A 接口 1 由于初始表空,交换机接收到来到A的帧后,首先记录MAC A与接口1的对应关系,然后洪泛,向接口2、3、4转发。
②
地址 MAC A MAC D 关系,然后向接口1转发。
③
地址 MAC A MAC D MAC C 接口 1 4 3 时间 T1 T2 T3 接口 1 4 时间 T1 T2 交换机接收到来到D对A的响应帧后,首先记录MAC D与接口4的对应
交换机接收到来到C帧后,首先记录MAC C与接口3的对应关系,然后查表得到D对应接口4,便向接口4转发。
④
交换机接收到来到D对C的回答后,查表得到C对应接口3,便向接口3转发。
3-9讲
1. 在IEEE 802.11 LAN体系结构中,有哪些重要的构件?能否将WLAN技术用于网络主干?
答:802.11体系结构的基本构件模块是基本服务集BBS。在一个BBS中通常包含一个或多个无线站点、一个接入点AP和无线信道。
由于无线信道速率较低且不够稳定,目前通常不将WLAN技术用于网络主干。
2. 试描述IEEE 802.11CSMA/CA协议。假设IEEE 802.11 RTS和CTS帧与标准的DATA数据和ACK帧一样长,使用CTS和RTS帧还会有好处吗?为什么?
答:
(1) IEEE 802.11CSMA/CA协议可描述为: 如果信道中站点都能监听到其他站点之间的通信,则
a. 如果初始时某站点监听到信道空闲,它等待一个被称作分布式帧间间隔的短时间段后发送该帧。
b. 否则,站点选取一个随机回退值。当侦听到信道空闲时,递减该值;当侦听到信道忙时,计数值保持不变。
c. 当计数值减为 0 时,站点发送整个数据帧并等待确认。
d. 如果收到确认,传输站点的得知其帧已被目的站正确接收了。如果该站点要发送另一帧,它将跳转第一步重新开始。如果未收到确认,传输站点将重新进入第二步中的回退阶段,并选取一个更大的范围的随机值。
如果信道中站点无法监听到其他站点之间的通信,则
a. 当发送方要发送一DATA帧时,它能够首先向AP 发送一个RTS 帧,指出传输DATA 帧和确认帧需要的总时间。
b. 当AP 收到RTS 帧后,它广播一个CTS 帧作为响应,以给发送方明确的发送允许,也指示其他站点在预约期内不要发送。
c. 如果当两个站点RTS发生碰撞,则不会在预定时间内收到CTS,则站点可随机延迟后再重新发送RTS预约信道。
(2)若RTS和CTS帧与标准的DATA数据帧和ACK帧一样长,则使用CTS和RTS帧预约信道就不再具有原先的优点了。设计CTS和RTS采用短帧就是要用短帧碰撞来代替长数据帧碰撞,即使产生了短帧的碰撞也不致浪费过大,从而提高了协议利用率。
3. 802.11帧中有4个地址字段。试画出这4个地址分别对应的802.11无线LAN的环境。
答:802.11帧中有4个地址字段分别为:
地址1是接收该帧的无线主机或AP的MAC 地址;地址2是传输该帧的无线主机或AP的MAC 地址;地址3是与AP连接的路由器接口的MAC地址;地址4是仅用于自组织模式。 对应的802.11无线LAN的环境图示如下: 因特网H1R1路由器APR1 MAC地址AP MAC地址目的地地址源地址802.3帧AP MAC地址H1 MAC地址地址1地址2R1 MAC地址地址3802.11
4-10讲
1. 根据图4-1,为什么说IP网络是一个虚拟网络?如果IP网络不实际传输分组,那么它的作用是什么?
答:直接连接的网络是能够实际传送分组的通信网,但它们通常覆盖区域较小、协议异构且没有统一的地址,无法互联互通。设计了具有统一IP地址和规格的IP协议,其他异构网络通过IP网络转换了格式进行中继,使得它们能够网络互联互通。因此,IP网络相当于在异构的直接连接的网络之上构建的一个虚拟网络,它仅仅提供在各个异构子网之间全局性路由选择和转发功能,而下面网络则提供了分组实际的通信功能。
2. 根据图4-2,试填写出路由器R3的转发表内容。 答:路由器R3的转发表内容如下:
目的网络N 30.0.0.0 40.0.0.0 10.0.0.0 20.0.0.0 下一跳R(或输出接口) 接口1(直接交付) 接口2(直接交付) 接口1(间接交付) 接口1(间接交付)
3. 分组的直接交付和间接交付有什么区别与联系?在交付过程中,它们分别要用到哪些层次的地址?
答:直接交付:两台端系统在一个直接连接的网络上,分组从一台主机上直接传送到另一台主机的过程。
间接交付:两台端系统不在同一个直接连接的网络上时,源主机必须先把分组先发给一个路由器的过程。
直接交付和间接交付的区别是:直接交付是分组在直接连接的网络中传送,而间接交付是分组在不同的直接连接的网络中传送;两者的联系是直接交付是间接交付的最后一跳。
在直接交付过程中,用到MAC地址,而间接交付过程中,要用到MAC地址和IP地址。
4-11讲
1. 从IP协议支持网络层编址和转发两大功能的角度看,IP协议数据报首部至少要包括哪些字段?这些字段应当包括什么内容?
答:为支持网络层编制功能,即设计特定的IP地址结构支持高效完成分组
转发任务,因此协议数据报首部至少要包括目的地址字段,而源地址是为接收方提供回应的地址,因此也要包括源地址字段。
转发是将分组从路由器的输入移动到适当的路由器输出,为防止IP数据报无休止地转发,要具有寿命字段;为使不同服务类型具有较好质量,要具有服务类型字段;为使不同长度的数据块能够转发,要具有标识符、标志和段偏移字段。
为了使网络层编址和转发两大功能正确,还需要有互联网检验和字段。 互联网检验和字段中放置互联网检验和。当IP分片时,标志字段除最后一片为0外,其他均为1;而段偏移字段指示本片数据在长数据报中的位置(字节数除以8)。而其他字段均放置二进制序列。
2. 考虑使用8 bit主机地址的数据报网络。假定一台路由器使用最长前缀匹配并具有下列转发表:
前缀匹配 1 11 111 其他 接口 0 1 2 3 对这4个接口,给出相关的目的主机地址的范围和在该范围中的地址数量。 答:如果使用最长前缀匹配,匹配的地址的前几位必定要与前缀相同,而前缀后1位必定要不同,由此给出下表:
接口 0 1 2 3 目的主机地址范围 1000 0000 ~ 1011 1111 1100 0000 ~ 1101 1111 1110 0000 ~ 1110 1111 0000 0000 ~ 0111 1111 地址量 26=64 25=32 24=16 27=128
3. 在4-14网络环境中,若内网有30台主机从172.16.0.0/24地址块中分配地址,公网地址为150.20.20.1。当内网主机浏览公网Web网站(用80端口)和用FTP下载文件(用20端口)时,NAT的端口随机申请。试填入NAT转换表的值。
答:NAT转换表的值可以是(注意答案不唯一):
NAT转换表 专网端 公网端
172.16.0.1, 12345 172.16.0.2, 21211 … 150.20.20.1, 3000 150.20.20.1, 3501 … 4-12讲
1. 在图4-17所示的网络中,端系统A要与端系统E通信。试简述它们之间具体的通信过程。
答:
a. A比较E的网络地址,发现不在相同网络,就送往路由器R左端口10.101.10.4;
b. A的ARP表中没有R左端口MAC地址,使用ARP从10.10.10.4得到R的MAC地址;
c. A生成以R左端口的MAC地址作为目的地的链路层帧,帧包含A到E IP数据报;
d. A的适配器发送帧,R的适配器接收帧;
e. R知道目的地是E,使用选路协议确定路由器右端口10.101.11.4; f. R出端口将E的IP地址与本网络地址相比,发现网络地址匹配,就进行直接交付;发现ARP表中没有发现E的MAC地址,用ARP得到E的MAC地址;
g. R适配器生成包含A到E IP数据报的帧向E发送; h. E收到来自A的IP分组。
2. 设计ICMP用于处理网络管理问题的基本思路是什么?Traceroute程序的工作原理符合这个基本思路吗?
答:设计ICMP用于处理网络管理问题的基本思路是允许端系统或路由器报告差错情况,为网管人员提供适当的工具以查询网络结点的信息。
Traceroute程序的工作原理符合这个基本思路。首先它构造TTL=1的ICMP数据报,使第一台路由器报错,从而获得其入口IP地址,接下来构造TTL=2,3,…的ICMP数据报,从而获得其沿途的路由器不断报错,依次获得了它们的入口地址。因此,traceroute利用了ICMP的工作机制。
3. 与IPv4相比,IPv6在其数据报格式中出现的主要差异是什么? 答:IPv6数据报扩大地址容量;首部固定长度40字节;不允许分段;完全去除“检查和”,以减小每跳的处理时间;允许“选项”,但在首部之外,由“下一
个首部”字段指示等。
4-13讲
1. 考虑图4-27上的网络。试用距离矢量算法给出结点b的距离表表项。 答:距离矢量算法通过邻居之间交换路由选择报文,根据Bellman-Ford方程进行迭代得到距离表表项的。在如下图所示网络中,第一轮时各结点只知道各自的邻居情况;第二轮时各结点收到其他邻居结点的路由选择报文,更新自己的表信息;经过三轮,各结点已经找到最优路径。
结点b表 来a 自b c d 来a 自b c d 来a 自b c d 代价到 a b c d ∞ ∞ ∞ ∞ 5 0 3 11 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 代价到 a b c d 0 5 10 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 代价到 a b c d ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 10 3 0 2 ∞ ∞ ∞ ∞ 代价到 a b c d ∞ ∞ 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 11 2 0 来a 自b c d 来a 自b c d 代价到 a b c d 0 5 5 0 10 ∞ 3 0 5 2 0 来a 自b c d 来a 自b c d 代价到 a b c d 0 5 8 5 0 3 8 3 0 12 5 2 0 10 3 ∞ 11 2 12 11 2 结点a表 代价到 a b c d 0 5 5 0 8 3 0 12 11 2 0 代价到 a b c d 0 5 8 5 0 3 8 3 0 10 5 2 0 10 3 ∞ 11 2 12 11 2 结点c表 来a 自b c d 来a 自b c d 代价到 a b c d 0 5 8 5 0 3 10 ∞ 3 0 11 2 0 来a 自b c d 来a 自b c d 代价到 a b c d 0 5 8 5 0 3 10 12 3 0 5 2 0 ∞ 11 2 12 11 2 结点d表 来a 自b c d 代价到 a b c d 0 5 5 0 10 ∞ 3 0 11 2 0 代价到 a b c d 0 5 8 5 0 3 10 12 3 0 5 2 0 10 3 12 11 2 10 11 2 2. 考虑图4-27的网络。用Dijkstra的最短路算法计算出从b到所有网络结点的最短路径。通过计算一个类似于表4-10的表,给出该算法的工作过程。
答:结点b建立转发表的过程如下表。 步骤 1 2 证实表 (b,0,-) (b,0,-) 试探表 (a,5,a) (c,3,c) 3 (b,0,-) (c,3,c) 4 (b,0,-) (c,3,c) (a,5,a) 5 (b,0,-) (c,3,c) (a,5,a) (d,5,c)
(a,5,a) 注释 因为b是证实表中唯一的新成员,等待链路状态报文 链路状态报文告诉b,可以费用5通过a到达a,可以费用3通过c到达c,可以费用11通过d到达将试探表中费用最小的记录费用3通过c到达c是新成员c的链路状态报文 (d,11,d) d,因此将其加入试探表。同理c也加入 (d,11,d) 表中最好的路径,c加入证实表中。检查证实表中 (d,5,c) 用费用5到达a为最好,a加入证实表中。 (a,10,c) 通过c到达d的费用是2,记录(d,11,d)被替换为(d,5,c); c的链路状态报文告知可以费用10到达a (a,10,c) 把试探表中费用最小的记录d加入证实表中,观察d的链路状态报文,没有更好的路径 4-14讲
1. BGP有哪些主要功能。描述在BGP中是如何检测路径中的环路的。 答:BGP是AS之间提供可达路径的分层路由选择协议。BGP具有以下功能:①从相邻AS处获得子网可达性信息;②向本AS内部的所有路由器传播这些可达性信息;③基于可达性信息和AS策略,决定到达子网的“好”路由。BGP从相邻AS获得子网可达性信息,基于自己的策略,决定是否向其他AS通告,一旦通告就承诺向该子网转发数据报;BGP还向本AS内部的所有路由器传播相关可达性信息。
在AS-PATH属性包含了传递前缀的通告所经过的AS,由此可以判断是否存在环路。
2. 观察图4-30所示的路由器体系结构。如何体现出路由器具有互联异构网络、转发和选择路由等几项关键功能。
答:互联异构网络:不同异构通信子网中的分组经过路由器的物理层、链路层和网络层功能转换,在IP层实现地址和报文结构的统一,能够进行统一寻址。
转发:分组进入路由器不同输入接口卡后,通过将分组目的地址与转发表进
行比较,经过交换结构后,由输出接口卡输出到不同路由器不同接口。
路由选择:路由器接收来自不同路由器的路由选择报文,通过执行路由选择协议,更新了转发表内容,使分组能够到达正确的输出端口 。这些功能由路由器的控制器卡提供,包括路由计算与更新、拓扑和地址信息交换。
4-15讲
1. 考虑在一个具有一个外部代理的外部网络中的两个移动结点。在移动IP中,这两个移动结点是否可能使用相同的转交地址?为什么?
答:使用移动IP方案时,移动结点通常有永久IP地址和一个转交地址。该转交地址实际上是由归属代理所使用的。当通信者给移动结点的永久IP地址发送分组时,归属代理会将该数据报截获并用转交地址转发给移动用户。因此,两个不同的移动结点如果位于相同子网中时,完全有可能使用相同的转交地址。
当收到具有转交地址的分组时,外部代理将根据两个移动结点的注册信息,通过它们不同的MAC地址与之进行直接连接的网络通信。
2. 试讨论MPLS在流量工程中的作用。它是否能够弥补IP的不足? 答: IP技术通过路由器端口是与某种通信网相连的,而这些通信网要以自己的方式传送路由器交付的数据报,直至它们到达与通信网另一端连接的路由器。这种方式不足之处包括:首先,通信网通常不具备以IP方式转发IP数据报的能力,多次转换格式将降低系统的效率。其次,预先计算的路径不一定与IP路由选择协议确定的路径相匹配。第三,无法支持某种类型的虚拟专用网络。
MPLS通过采用一个固定长度的标签达到改善IP路由器的转发速率的目的,并且能够提供多条非IP路由的路径,提供特定的虚拟专用网络,从而弥补了IP的不足。
5-16讲
1. 根据网络应用的时延和可靠性可以将它们分为几类?运输层是否应当由此设计几种不同的协议?因特网的运输层协议能够为网络应用提供哪些服务?不能够提供哪些服务?
答:根据对时延和可靠性,可以将网络应用分为两类:一类是传统的弹性网络应用,它们具有可靠传输但对时延要求并不很高的特点;另一类是多媒体网络应用,它们具有时延敏感和丢包容忍的特点。
TCP/IP的运输层设计了两种运输层协议即UPD和TCP。TCP能够支持弹性网络应用,而UDP也具有时延较小的特点,不过这两种协议对时延都没有保证。两者并不与上述两类网络应用形成一一对应。
TCP能够提供多路复用/分解、面向连接、可靠数据传输和拥塞控制服务,而UDP则提供无连接的、不可靠的传输服务,具有多路复用/分解和差错检测功能。但两者都没有提供带宽和时延保证,也不提供安全性服务等。
2. 可以认为端口号是一种地址吗?如果是,它是标识什么的地址?将端口号分为周知端口号和一般端口号有什么好处,这与网络应用的模式有关系吗?
答:IP地址标识了因特网上的每台主机的接口,而端口标识了网络主机上的每个进程,这样才能支持网络应用进程之间的交互。因此端口号是一种地址。
运输层的端口号分为两部分,一部分是周知端口号,另一部分是用户可自行分配的端口号。由于UDP套接字和TCP套接字均与目的/源端口号有关,每个进程之间的通信链必须是唯一的,端口号错误将造成连接链的混乱。周知端口号范围为0~1023,通常保留用于如HTTP、FTP和DNS等著名的应用服务器的端口号的,由因特网管理机构统一分配。1023以上部分的端口号可由用户自行使用,这就大大降低了出处差错的可能性。
一般在C/S模式中,服务器端口通常使用周知端口好,而且必须要长期处于打开状态,因此端口号划分与网络设计模式有关。
3. 给出标识图5-5中TCP套接字的所有四元组。与UDP套接字忽略了源端的标识信息相比,TCP的套接字标识能力是增强了还是削弱了?
答:图5-5中TCP套接字的所有四元组包括:(IPA,1212;IPB,80)、(IPA,2323;IPB,80)、(IPA,3434;IPC,80)、 (IPC,4545;IPA,5656)。
TCP通过四元组来表示一个进程,相对于UDP的二元组,TCP的套接字标识能力更强。
5-17讲
1. 简单解释TCP的如下特性:面向连接的端到端、点对点、全双工数据、可靠的交付服务、客户/服务器模式、面向字节流、流量控制和拥塞控制。
答:面向连接的端到端是指用三次握手方式建立连接,且TCP运行在两个端系统上;点对点是指TCP只有一个发送方和一个接收方;全双工数据是指同一连接上双向数据流同时通信;可靠的交付服务是指保证套接字之间数据无差错、不丢失、不重复、且按序地到达;客户/服务器模式是指服务器被动打开而客户主动打开;面向字节流是指TCP之间的数据以无结构的字节流方式;流量控制是指发送方不能淹没接收方;拥塞控制是指抑止发送方速率来防止过分占用网络资源。
2. 主机A和B经一条TCP连接通信,并且主机B已经收到了来自A的到
字节248的所有字节。假定主机A随后向主机B发送两个紧接着的报文段。第一个和第二个报文段分别包含了40和60 byte的数据。在第一个报文段中,序号是249,源端口号是503, 目的地端口号是80。无论何时主机B接收到来自主机A的报文段,它都会发送确认。
a. 在从主机A发往B的第二个报文段中,序号、源端口号和目的端口号各是什么?
b. 如果第一个报文段在第二个报文段之前到达,在第一个到达报文段的确认中,确认号、源端口号和目的端口号各是什么?
c. 如果第二个报文段在第一个报文段之前到达,在第一个到达报文段的确认中,确认号是什么?
d. 假定由A发送的两个报文段按序到达B。第一个确认丢失了而第二个确认在第一个超时间隔之后到达,如在下一页上的图中所显示的那样。画出时序图,显示这些报文段和发送的所有其他报文段和确认。(假设没有其他分组丢失。)对于你图上每个报文段,标出序号和数据的字节编号;对于你增加的每个应答,标出确认号。
答:a.在第二个报文段中,序号为289,源端口号为503,目的端口号为80。 b. 如果第一个报文段在第二个报文段前到达,在确认报文中,确认号为289,目的端口为503,源端口为80。
c. 如果第二个报文段在第一个报文段之前到达,在第一个到达的报文段的确认中,确认号是249,指示该接收端仍然在等待序号为249的报文的到达。
d. 时序图如下。其中当主机B收到主机A因超时发送的冗余报文后,对最后一个字节349进行确认(累计确认)。
主机ASe主机Bq=249, 40bytesSeq=超289, 60bytesAck=289时间隔Ack=349Seq=249, 40bytes?时间超时间隔?Ack=349时间
3. 一旦网络出现丢包时,RTT估值算法就要修正,否则可能出错。请阐述可能出现的问题,以及针对这些问题的修正算法。
答:一旦网络出现丢包时,无法判断收到的确认报文段是对原来报文的确认
还是对重传报文的确认,这样会使得RTT估计值与实际RTT的误差很大。Karn算法提出估算RTT时,只要报文重传,就不再采用其往返时延的样本了。
Karn算法仍存在问题:一旦网络恰好现在此时时延持续变大,将将进入死循环。为此,Karn修正算法指出:报文段每重传一次,就将超时时限增大一倍,而保持RTT估计值不变;当报文段不再重传时再计算RTT估值。
4. 简要说明TCP连接与网络层的虚电路的区别。
答:(1)TCP连接是运输层的一种逻辑连接,而虚电路是网络层的逻辑连接。(2)TCP的连接信息仅保存和维护在端系统中,对于下面的路由器而言是透明的;网络层的虚电路不仅在端系统而且在所经过的沿途所有路由器中,都必须保存和维护虚电路的状态信息。
5-18讲
1. 观察图5-9所示的TCP报文段结构,其中哪些字段分别与多路复用/分解功能有关?哪些字段分别与可靠数据传输功能有关?哪些字段分别与流量控制功能有关?哪些字段分别与拥塞控制传输功能有关?
答:所谓多路复用/分解是指运输层担负着将多个应用进程的报文通过同一个网络层传输通道传输,并正确地交给某个应用进程的任务的功能。
源TCP报文段结构中,端口和目的端口号字段与多路复用/分解功能有关;序号、确认号、检验和字段与可靠数据传输有关;接收窗口号与流量控制有关;序号和确认号与拥塞控制有关。
2. TCP创建连接采用了三次握手过程。分析第三次握手有何作用?试举例说明之。当TCP一端释放连接后,这端是否还能够发送报文段?此时,另一端是否还能够继续发送报文段?
答:在TCP创建连接的三次握手过程中,第三次握手表明第一次握手的确是自己发送的,以防止第一次握手是以前遗留的连接。举例来说,如图所示的一个连接没有成功,该失效的A的连接请求报文段突然出现在TCP服务器B处了,B将回送第二次握手报文,但A看到该第二次握手报文将意识到这是一次错误的连接,就不会再发送第三次握手报文,从而防止了这次错误。
连接请求重传连接请求建立连接通信释放连接AB...延迟到达第一次握手连接请求确认并建立连接,分配资源超时拆链,避免错误连接
当TCP一端释放连接后,这端不能发送报文段了,但可以对对方的报文段进行确认。
而TCP另一端能够继续发送报文段。
3. 网络拥塞的主要成因有哪些?它们带来的危害分别有哪些?有哪几种网络拥塞控制方法?
答:网络拥塞的主要成因及其危害是:
① 当分组到达速率超过路由器输出链路的容量时,路由器将要缓存输入但
无法立即输出的分组。这导致第一种危害,即当分组以大于或接近链路容量的速率到达时,分组将承受很大的时延。
② 当分组到达某路由器时,当有限的缓存已满,分组将被丢弃。这导致发
送方因为分组被路由器丢弃而进行了不必要的重传,引起路由器利用其链路带宽转发不必要的分组拷贝。
③ 每当有一个分组在某路由器上被丢弃时,传输路径上的前几跳路由器的
工作都是徒劳的。 网络拥塞控制方法是:
① 端到端的拥塞控制:该方法不从网络得到明确的反馈,而是设法从端系统
根据观察到的时延/丢失推断出拥塞,这是TCP所采用的方法。 ② 网络辅助的拥塞控制: 路由器为端系统提供反馈,如用一个bit指示一条
链路出现拥塞,指示发送方的发送速率。
4. 分析产生网络拥塞条件的公式(5-6),式中的资源通常包括哪些东西?该公式能够为我们设计和解决网络管理和网络安全方案和问题提供哪些思路?
答:(5-6)式中的资源可以包括了带宽、缓存、CPU甚至打印机等网络可以共享的东西。
从(5-6)式可知,任意一种或多种资源的需求失衡都会导致拥塞的发生。该式可以为我们提供如下思路:解决网络拥塞的问题可以从寻找使上述不等式不
忽略该确认,不发送第三次握手第二次握手
成立的条件着手。如一方面减少对资源的需求或增加可用资源,另一方面许多网络攻击行为都致力于消耗网络某环节的最为紧缺的资源,从而以较少的代价导致系统崩溃。
5-19讲
1. TCP拥塞控制的基本思想是什么?有哪些基本拥塞控制机制?试简要阐述它们的基本思想。
答:TCP拥塞控制的基本思想是,当出现丢包事件时,迅速减小拥塞窗口的长度使发送方降低其发送速率;而一般情况下则谨慎增加拥塞窗口的长度使发送速率缓慢增长。
TCP的拥塞机制是:慢启动和加性增、乘性减。
慢启动的基本思想是:从较小的拥塞窗口出发,逐步试探出网络状态,而试探的增长速率以要指数的速度快速增加,直到接近某个阈值。
加性增的基本思想是:在拥塞避免阶段,TCP发送方的发送速率以线性增长的速率进行发送。
乘性减的基本思想是:发现丢包后,TCP急剧减小拥塞窗口的措施。当发生丢包事件时,将阈值=拥塞窗口/2并且拥塞窗口减少至1报文段,再进入慢启动阶段;对于接收到3个冗余ACK事件,先将拥塞窗口减半,再线性增加拥塞窗口(快速恢复)。
2. 考虑下图中TCP窗口长度作为时间的函数。假设TCP Reno是一个经历如上所示行为的协议,回答下列问题。在各种情况中,请简要地论证你的回答
4540?)?35??¨±(30è?25¤3ú?20°′?è15μó105002468101214161820222426传输轮回 a. 指出当TCP慢启动运行时的时间间隔。 b. 指出当TCP拥塞避免运行时的时间间隔。 c. 在第16个传输轮回之后,报文段的丢失是根据3个重复确认还是根据超时检测出来的?
d. 在第22个传输轮回之后,报文段的丢失是根据3个重复确认还是根据超
时检测出来的?
e. 在第一个传输轮回里,ssthresh的初始值设置为多少? f. 在第18个传输轮回里,ssthresh的值设置为多少? g. 在第24个传输轮回里,ssthresh的值设置为多少? h. 第70个报文段在哪一个传输轮回内发送?
i. 假定在第26个发送轮回后,通过收到3个冗余ACK检测出有分组丢失,拥塞的窗口长度和ssthresh的值将应当是多少? 答:a. 慢启动的时间间隔是[1,6]和[23,26]。 b. TCP拥塞避免的时间间隔为[6,16]和[17,22]。
c. 在第16个传输轮回之后,报文段丢失是根据3个重复确认检测出来的,因为如果是超时检测出丢包,拥塞窗口的长度将为降为1。
d. 在第22个传输轮回上,报文段的丢失是根据超时检测出来的,因为拥塞窗口降为1,并进入了满启动阶段。
e. 在第一个传输轮回里,ssthresh的初始值是32。此时是慢启动停止,拥塞避免开始的拥塞窗口的长度。
f. 在16轮检测出3个冗余确认,拥塞窗口为42, 所以在18轮ssthresh的值是42/2=21.
g.在第22轮检测出丢包,拥塞窗口为29,在第24个传输轮回里,ssthresh的值是14(14.5的下界)。
h. 在第一个传输轮回里,发送了1个报文,在第2个轮回里发送了报文2-3,在第3个轮回里发送了报文4-7,在第4个轮回里发送了报文8-15,在第5个轮回里发送了报文16-31,在第6个轮回里发送了报文32-63,在第7个轮回里发送了报文 64-96.因此第70个报文在第7个轮回里进行了传输。 i.当丢包出现时阈值将被设置为当前拥塞窗口(8)的一半,即为4。拥塞窗口将被设置为新阈值+3,即为7。
3. 若通信信道带宽为1Gbps,两个端系统之间的时延为15ms,而TCP的发送窗口最大为65535字节。试计算:能达到的最大吞吐量是多少?信道的利用率是多少?
答:将通信信道看做数字管道,设最大吞吐量为S,两个端系统之间的往返时延RTT为15ms,协议最多只能发送RTT*S字节数。但由于窗口W的限制,一次最多只能发送填满窗口的数量:
W=RTT*S 因此
S=W/RTT=65536*8/(15*10-3)=34.953*106≈35Mbps。
此时,发送速率远比信信道带宽1Gbps小,此信道的利用率为:35Mbps/1000Mbps=3.5%。
4. 在5.6.3节我们讨论了这样的事实;一个应用程序能够打开多条TCP连接并获得较高吞吐量(或等价地一个较快的传输时间)。如果所有应用程序试图通过使用多条连接来改善它们的性能的话,将发生什么情况?让一个网络元素决定是否一个应用程序正在使用多条TCP连接,会遇到什么样的困难?
答:TCP的友好性,n个TCP连接通过速率为R的链路,每条TCP获得的传输速率为:R/n,因此如果所有用户都使用多条TCP连接来改善行能,那么获得速率将与其打开的连接的数目有关,数目越多,获得的速率越高。一个应用程序可以是多线程的,每个线程可以打开一个连接,而无法通过相应的方法判断某个线程是否属于某个程序,因此也无法确定该程序是否正在使用多条TCP连接。
6-20讲
1. 应用层协议的主要功能是什么?应用层协议与网络应用程序的关系是什么?应用层协议与运输层提供的服务能力有何关系?网络体系结构与应用程序体系结构之间有什么区别?
答:应用层协议的主要功能是:定义了运行在不同端系统上的应用程序进程之间如何交互传递报文,是为某一类应用进程提供通信服务的规则。
应用层协议只是网络应用程序中与其他端系统中应用层实体交互的那个部分。
应用层协议与运输层提供的服务能力关系是:应用层运行在运输层之上,运输层为应用层中的不同应用进程提供不同类型的多路复用/分解的运输服务。
网络体系结构是指各个层次及其协议的集合,某个网络的体系结构是确定的。包括应用程序的应用层通常位于其最高层。应用程序的体系结构由应用程序研发者设计,不同的网络应用可能采用不同的体系结构,如客户/服务器体系结构和对等方到对等方体系结构。
2. 与具有客户/服务器体系结构的系统相比,具有P2P体系结构的系统有哪些重要特点? 对于一个P2P文件共享应用, “一个通信会话不存在客户端和服务器端的概念”的说法正确吗?为什么?
答:与客户/服务器体系结构相比,P2P体系结构具有以下的重要特点:一是规模效益,结点数目越多,系统效率越高。二是动态性,对等结点频繁加入或者离开社区,这将导致系统一直处于重组的动荡中。三是异构性,对等方在物理特征和行为方面存在差异。四是自扩展性,随着用户数的增多,系统能力增强。
对于一个P2P文件共享应用, “一个通信会话不存在客户端和服务器端的概念”的说法不正确。尽管在P2P系统中,某结点可能同时具有客户和服务器两种功,但在一次具体会话中,仍会有请求服务的客户和提供服务的服务器。
3. 如果在本地域名服务器、根服务器和顶级域名服务器均无法找到某公司的域名,请阐述解析该公司域名的过程。域名服务器中的高速缓存能够减少域名系统的查找次数吗?
答:主机要经过如下过程:(1)DNS查询报文发向本地DNS服务器,它将查询转发到权威DNS服务器;(2)DNS权威服务器将查询转发到顶级域名服务器;(3)顶级域名服务器将查询转发到根域名服务器;(4)跟域名服务器在com顶级域名服务器解析该公司的权威服务器;(5)由权威服务器就可以解析到该公司的本地域名服务器。
域名服务器中的高速缓存可以通过缓存前面查询到的IP地址和域名对信息,从而不必每次都经历上述那样遍历整个域名系统的查询,进而大大减少域名系统查找次数和查找时间。
4. 对同一个域名向DNS服务器发出好几次的DNS请求报文后,每一次得到IP地址都不一样,这可能吗?试例举一种可能的应用例子。
答:如果一个域名与多个IP地址对应,这是可能的。这种技术可用于负载均衡场合,例如,在一个大型门户网站应用中,由于访问的用户数量可能非常大,使一台计算机难以处理巨大的Web流量,而用多台相同的计算机充当Web服务器。这时,当用户请求DNS服务器服务时,DNS就可以根据用户使用情况轮流用该集合中不同计算机的IP地址应答,从而实现了负载分配。
5. 文件传送协议FTP的主要工作过程是怎样的?主进程和从属进程各起什么作用?
答:FTP采用客户/服务器模式工作,在TCP之上传送文件。当FTP客户进程向远程主机的FTP服务器进程发起一个FTP会话前,FTP客户机首先在21号端口向FTP服务器发起一个控制连接。FTP服务器从该连接上收到文件传输命令后,就在20号端口上发起一个到客户的数据连接。FTP在该数据连接上传送一个文件,并在传输完成后关闭该链接。如果用户还想传送另外一个文件,FTP则可打开另一个数据连接进行。FTP控制连接则贯穿于用户会话期间,而会话中的每个文件传输则都需要建立一个新的数据连接。
其中主进程用于控制,从属进程用于传输文件。
6-21讲
1. 假设从服务器向客户传送一个Web页面,该页面含有一个基本HTML文件、8个JPEG图形和5个视频文件,这14个对象位于同一台服务器上,并且视频文件比JPEG和HTML文件都大得多。请你设计一种同时使用持续HTTP和非持续HTTP的方案,使传输时间较短并且连接数量较少。
答:对于持续HTTP连接方案,比较适合用于同一个TCP连接连续传送传输多个较小的对象,而对于非持续HTTP连接方案,以并行的方式同时传输多个较大对象更为合适。由此,我们可以设计如下方案:
(1)由于JPEG文件较小,下载一个JPEG文件的时间为tJ,下载HTML文件的时间为tHTML,采用持续连接对这9个Web对象件进行下载。
(2)5个视频文件较大,采用非持续连接进行并行下载,所需最长时间为2RTT+max(tv)。
因此,该下载该网页所需的时间大致为:2RTT+max{8?tJ+tHTML, 2RTT+max(tv)},需要的连接数目为6。
2. 参照习题6-9,假定在同一服务器上某HTML文件引用了3个非常小的对象。忽略发送时间,在下列情况下需要多长时间:
a. 没有并行TCP连接的非持续HTTP? b. 有并行连接的非持续HTTP? c. 有流水线的持续HTTP?
答:如果主机从DNS得到IP地址之前,已经访问了n个DNS服务器;相继产生的RTT依次为RTT1、….、RTTn,令RTT0表示本地主机和包含对象的服务器之间的RTT值。当在同一服务器上某HTML文件引用了3个非常小的对象,设用户与服务器之间的往返时延为RTT,传输HTML基本文件连同3个小对象的时间为t1:
a.获取IP地址的总时间为:RTT1+ RTT2+…+ RTTn.
一旦获取了IP地址,需要RTT0的时间去建立HTTP连接,然后需要2RTT0的时间去请求和获取对象。因此总的反应时间为:2RTT0+ RTT1+ RTT2+…+ RTTn+t1.
使用没有并行TCP连接且用非持续HTTP ,对每个对象都要打开一个HTTP连接,即需要时间:8*RTT0+ RTT1+ RTT2+…+ RTTn+3*t1。
b. 使用有并行连接的非持续HTTP ,在获取IP地址的总时间后,先打开基本HTML文件,需时2RTT0;然后并行打开3个连接,需时2RTT0 +t1,因此共需时4RTT0 +t1。因此总的反应时间为:
4*RTT0+ RTT1+ RTT2+…+ RTTn+ t1
c. 使用有流水线的持续HTTP时,在获取IP地址的总时间后,先建立连接后再顺序传输3个小对象,即2RTT0+3t1。因此总的反应时间为:
2*RTT0+ RTT1+ RTT2+…+ RTTn.+3 t1
3. 在图6-11中用cookie跟踪用户状态的例子中,如果此时用户张红又同时在亚马逊(amazon)公司网站上购买了图书,该网站为她分配了识别码5678。试说明当张红同时访问阿里巴巴和亚马逊网站时,这些识别码不会被误用。
答:这些识别码是不会被误用。因为在用户端系统中保留有一个cookie文件,用户的浏览器管理本用户在不同网站中的识别码。当用户与某网站连接时,HTTP是通过TCP连接与该网站连接,并在HTTP请求报文中填写对应该网站cookie首部行的识别码,如Set-cookie:1678。因此,不会误用网站的识别码的。
4. 考虑图6-12,其中有一个园区网和因特网相连。假定对象的平均长度为5M比特,从这个园区网的浏览器到初始服务器的平均请求率是每秒2个请求。还假定从访问链路的因特网一侧的路由器转发一个HTTP请求开始,到接收到其响应的平均时间是2秒。将总的平均响应时间建模为平均访问时延(即从因特网路由器到机构路由器的时延)和平均因特网时延之和。对于平均访问时延,使用 ,式中 是跨越访问链路发送一个对象所需的平均所需时间, 是对象对该访问链路的平均到达率。
a. 求出总的响应时间。
b. 现在假定在这个园区网LAN中安装了一个缓存器。假定命中率为0.4,求出总的响应时间。
答:a. 跨越速率为R的链路,发送一个长度为L的对象的时间为:L/R。因此: ?= (5MB)/100Mbps=0.4s,流量强度为:??β=0.4?2=0.8,因此平均访问时间为:?/(1-?β)=0.4/(1-0.8)=2s。因此,总的访问时间为:2s+2s=4s。
b. 假如在园区内安装了缓存器,命中率为40%,因此链路的流量强度将减少40%。因此,平均的访问时间为:0.4/(1-0.8?0.6)=0.78s。因此,总响应时间为:0.78+2s=2.78s。平均的访问时间为:0.4?0ses+0.6?2.78sec = 1.67s。
6-22讲
1. 多媒体应用是如何分类的?这些类型的应用各有哪些特点?
答:多媒体网路应用分为三类:流式存储音频和视频、流式实况音频和视频以及实时交互音频和视频。
这几种多媒体应用都具有时延敏感、丢包容忍的特点。此外,流式存储音频和视频应用中,客户根据需求请求存储在服务器上的被压缩的音频和视频文件。多媒体的内容已经预先录制,并以存储媒体的形式存储在服务器上。流式实况音频和视频应用中,多媒体内容不再存储,而是来源于实况电视和无线电广播。在实时交互音频和视频应用中,允许人们使用音频/视频互相实时通信,这类应用对时延及其时延抖动要求最高。
2. 在目前的因特网中,为了缓解多媒体应用的QoS问题,通常采用的是应用层解决方案。在应用层解决方案中,有哪些重要的技术?
答:在因特网上,所有通信都是基于IP的尽力而为的传送服务,无法确保
多媒体应用的QoS,因此只能采用应用层解决方案。其中包括:采用UDP而不是TCP作为运输层协议,避免拥塞控制的影响;设置客户缓冲区有效地改善时延抖动产生的影响;服务器调用适当副本以匹配客户带宽;使用丢包恢复技术,应对丢包;采用内容分发网络技术,以分散流量传输。
3. 在6.6.3节因特网电话的例子中,设h是添加到每个块首部的字节总数,包括UDP和IP首部。
a. 假设每20 s发出一个IP数据报,求该应用端产生的数据报的传输速率,以每秒比特为单位。
b. 当使用RTP时,h的典型值是什么?
答:a. 在20ms内发送160+h字节的数据,因此平均的传输速率为:
(160?h)?820kbps=(64+0.4h)kbps。
b. 当使用RTP时,因为IP首部为20字节,UDP首部为8字节,RTP首部为12字节,因此h=40字节。
6-23讲
1. 简述电子邮件的最主要的组件。这些组件之间交互使用了哪些协议?用户代理的作用是什么?没有用户代理是否可行?
答:电子邮件系统最重要的具有3个组件是:用户代理(UA)、邮件服务器和应用协议如SMTP和POP3等。用户代理是用户与电子邮件系统的接口,用户代理又称为电子邮件客户软件,它是运行在用户端系统的一个软件程序。邮件服务器包括发送方邮件服务器和接收方邮件服务器。
发送方用户代理向发送方邮件服务器,以及发送方邮件服务器向接收方邮件服务器发送邮件使用的是SMTP协议。接收方用户代理从接收方邮件服务器读取邮件则使用了POP3或是互联网邮件访问协议IMAP。
如果用户熟悉电子邮件应用层命令和规则,可以直接通过telnet直接操作邮件过程,此时没有用户代理也可以。
2. 引入MIME有何作用?MIME与SMTP的关系如何?
答:为了解决SMTP只支持7比特ASCII码传输的问题,在使用SMTP传输邮件之前,将二进制数据转换为ASCII编码数据,并在使用SMTP传输后再将ASCII码数据还原回二进制数据。
为了使电子邮件系统能够用SMTP传输非ASCII数据的内容,发送方用户代理必须在报文首部中包括多用途互联网邮件扩展(MIME)首部行。这样,用
户代理在用SMTP发送邮件前,先会将二进制文件转换为ASCII文件。并且在接收方,在提交给接收方用户代理前,再将该ASCII文件转换为二进制文件。
3. 电子邮件系统在运输层使用了TCP来传送邮件。为什么还会有发送的电子邮件对方没有收到的情况出现?请解释原因。
答:一份电子邮件必要经过:(1)从发送方用户代理通过SMTP向发送方邮件服务器,(2)发送方邮件服务器通过SMTP向接收方邮件服务器发送邮件,(3)接收方用户代理用POP3或IMAP从接收方邮件服务器读取邮件等3个环节。
尽管每个应用协议都是基于TCP的,可以保证邮件每次端到端传输的可靠性,但并不能保证:①在发送邮件服务器或接收邮件服务器因服务器故障或缓存溢等原因导致的邮件丢失;②邮件服务器未工作,邮件发送不出去。电子邮件本身并没有端到端的可靠性保障机制。
6-24讲
1. 回顾BitTorrent的工作过程。其中有哪些重要组件?有哪些重要协议?跟踪器起了什么作用?对等方列表起了什么作用?对等方之间交换彼此的块信息起了什么作用?
答:BitTorrent重要组件主要包括:跟踪当前活动对等方的跟踪器、需要交换信息的对等方和存放种子文件的Web服务器。
BitTorrent中主要的协议包括:运输层的TCP协议,应用层的HTTP和BT协议。
对等方列表记录了当前已知的参与共享某文件的所有活动结点的IP地址和具有的数据块信息。
通过对等方之间交换彼此的块信息,能够知道哪个对等方具有自己所需的数据块,并使用本地最少优先算法请求那些系统中副本数量最少的文件块,并向疏通对等方优化提供自己所需的数据块。
2. 在一个基于DHT的结构化P2P系统中,使用了Chord环形空间 [0, 127)来组织结点及其资源。用圆点分别标识为N1、N15、N30、N52、N68、N83、N101和N120等结点。类似地,所有资源经过散列求值后也被映射到该[0, 127)空间。
a) 试在图中用方点画出分别标识为K8、K31、K55、K76、K88、K107的资源。
b) 画出N15的查找器表的表项。 c) 画出从N15开始的搜索过程。
答:a. 在图上标识了K8、K31、K55、K76、K88、K107的资源。
N1K8N15N120N30K31K107N101N52K88K55N83N68K76
查找器表b. N15的查找器表的表项如下
N1K8N15+1N15+2N15+4N15+8N15+16N30N15+32N15+64K31N30N30N30N30N52N52N83N15N120K107N101N52K88K55N83N68K76
查找器表N1K8N15+1+2+4+8N30+16K31N15+1N15+2N15+4N15+8N15+16N15+32N15+64N30N30N30N30N52N52N83c. 从N15开始的搜索过程如下。
N120K107N101+64+32N52K88K55N83N68K76