因特网的发展历程 因特网的发展大致分为哪几个阶段( 七 )


我们刚刚讲过,路由器和多个通信线路进行相连,如果每条通信链路同时发送分组的话,可能会造成排队和丢包的情况,然后分组在队列中等待发送,现在我就有一个问题问你,队列中的分组发向哪里?这是由什么机制决定的?
换个角度想问题,路由的作用是什么?把不同端系统中的数据包进行存储和转发 。在因特网中,每个端系统都会有一个IP地址,当主机发送分组时,会在分组的首部加上主机的IP地址 。每台路由器都会有一个转发表(forwardingtable),当一个分组到达路由器后,路由器会检查分组中目的地址的一部分,并用目的地址搜索转发表,以找出适当的传输链路,然后映射成为输出链路进行转发 。
那么问题来了,路由器内部是怎样设置转发表的呢?详细的我们后面会讲到,这里只是说个大概,路由器内部也是具有路由选择协议的,用于自动设置转发表 。
在计算机网络中,另一种通过网络链路和路由进行数据传输的另外一种方式就是电路交换(circuitswitching) 。电路交换在资源预留上与分组交换不同,什么意思呢?
就是分组交换不会预留每次端系统之间交互分组的缓存和链路传输速率,所以每次都会进行排队传输;而电路交换会预留这些信息 。一个简单的例子帮助你理解:这就好比有两家餐馆,餐馆A需要预定而餐馆B不需要预定,对于可以预定的餐馆A,我们必须先提前与其进行联系,但是当我们到达目的地时,我们能够立刻入座并选菜 。而对于不需要预定的那家餐馆来说,你可能不需要提前联系,但是你必须承受到达目的地后需要排队的风险 。
下面显示了一个电路交换网络
图1-11
在这个网络中,4条链路用于4台电路交换机 。这些链路中的每一条都有4条电路,因此每条链路能支持4条并行的链接 。每台主机都与一台交换机直接相连,当两台主机需要通信时,该网络在两台主机之间创建一条专用的端到端的链接(end-to-endconnection) 。
分组交换的支持者经常说分组交换不适合实时服务,因为它的端到端时延时不可预测的 。而分组交换的支持者却认为分组交换提供了比电路交换更好的带宽共享;它比电路交换更加简单、更有效,实现成本更低 。但是现在的趋势更多的是朝着分组交换的方向发展 。
因特网可以看成是一种基础设施,该基础设施为运行在端系统上的分布式应用提供服务 。我们希望在计算机网络中任意两个端系统之间传递数据都不会造成数据丢失,这是一个极高的目标,实践中难以达到 。所以,在实践中必须要限制端系统之间的吞吐量用来控制数据丢失 。如果在端系统之间引入时延,也不能保证不会丢失分组问题 。所以我们从时延、丢包和吞吐量三个层面来看一下计算机网络 。
计算机网络中的分组从一台主机(源)出发,经过一系列路由器传输,在另一个端系统中结束它的历程 。在这整个传输历程中,分组会涉及到四种最主要的时延:节点处理时延(nodalprocessingdelay)、排队时延(queuingdelay)、传输时延(totalnodaldelay)和传播时延(propagationdelay) 。这四种时延加起来就是节点总时延(totalnodaldelay) 。
如果用dprocdqueuedtransdpop分别表示处理时延、排队时延、传输时延和传播时延,则节点的总时延由以下公式决定:dnodal=dproc+dqueue+dtrans+dpop 。
下面是一副典型的时延分布图,让我们从图中进行分析一下不同的时延类型 。
图1-12
分组由端系统经过通信链路传输到路由器A,路由器A检查分组头部以映射出适当的传输链路,并将分组送入该链路 。仅当该链路没有其他分组正在传输并且没有其他分组排在该该分组前面时,才能在这条链路上自由的传输该分组 。如果该链路当前繁忙或者已经有其他分组排在该分组前面时,新到达的分组将会加入排队 。下面我们分开讨论一下这四种时延 。

推荐阅读