行比较,经过交换结构后,由输出接口卡输出到不同路由器不同接口。
路由选择:路由器接收来自不同路由器的路由选择报文,通过执行路由选择协议,更新了转发表内容,使分组能够到达正确的输出端口 。这些功能由路由器的控制器卡提供,包括路由计算与更新、拓扑和地址信息交换。
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看到该第二次握手报文将意识到这是一次错误的连接,就不会再发送第三次握手报文,从而防止了这次错误。