分组交换的意思,就是将大文件分成一个一个的小文件,然后传输小文件,大的文件就叫做报文,这个小文件就被称为分组。
在源主机和目的主机之间,每个分组都通过通信链路和分组交换机传送,其中交换机主要有两类:路由器和链路层交换机。
在由一台电脑向另一台电脑传输分组的时候,会经过链路和路由器,其中在路由器进行存储转发传输,并且在一般情况下还会出现排队时延,并且在路由器向目的主机传输过程中还会用到转发表和路由选择协议。
一、存储转发传输
大多数的分组交换机在链路的输入端使用存储转发传输,存储转发传输的意思就是路由器必须先完整地接收到某个分组才能将它往目的主机发送。
例子1
现在,假定每个分组的大小为L位,而链路的传输速率为R bps我们看一下利用上述的传输策略传输报文所耗费的时长为多少?
- 在0时刻,源主机发送第1个分组;
- 在L/R时刻,路由器接受完第1个分组,开始向目的主机发送;源主机开始发送第2个分组。
- 在2L/R时刻,目的主机接收完第1个分组;
- 在3L/R时刻,目的主机接受完第2个分组;
- 在4L/R时刻,目的主机接受完第3个分组,传输完成。
例子2
上述的通信链路只有2条,并且第1个分组完成的时间为2L/R;所以如果有N条这样的通信链路,那么第1个分组完成的时间变为NL/R。
例子3
现在,如果有p个分组呢,所需要耗费的时间是多少?
这个问题很简单,从上面的例子1可以看到,等到第1个分组传输完成后,剩下的p-1个分组就会依次花费L/R时间发送至目的主机,所以结果为
二、排队时延和丢包
现在我们的主机A和主机B同时往主机E中发消息,并且通过100Mbps的以太网链路向第一个路由器发送分组。该路由器将分组导向到一条15Mbps的链路。
如果在短时间间隔内,分组到达路由器的到达率 > 15Mbps,这些分组就会在路由器的输出缓存中排队,路由器中就会出现拥塞情况。分组就得等它前面的分组被发出去,这个等待的时间就叫做排队时延。
但是,路由器的缓存大小是有限的,如果一个分组到达一个缓存被占用完的路由器,其分组将会被丢失,这个时候出现的现象叫丢包。
三、转发表和路由选择协议
主机A和主机B都是将分组发送到主机E当中,但是当分组从路由器中出来后怎么知道哪条链路是自己要走的路呢?
在互联网中,我们使用IP地址来表明计算机的身份,从源主机向目的主机发送一个分组时,该分组包含了目的IP地址。当一个分组到达网络中的路由器时,路由器检查该分组的目的地址的一部分,并向一台相邻的路由器转发该分组。
更特别的是,每台路由器具有一个转发表,用于将目的地址映射为输出链路。当某分组到达一台路由器时,路由器检查该地址,并用这个目的地址搜索转发表,发现正确的链路。路由器将该分组导向链路。
IP地址映射为正确的链路需要用到转发表,而这个转发表是如何设置的呢?
答:因特网具有一些特殊的路由器选择协议,用于自动地设置这些转发表。例如:一个路由选择协议可以决定每台路由器到每个目的主机的最短路径,并使用这些最短路径来配置路由器中的转发表。