day8:分组交换;时延;带宽;以太网交换机和路由器的工作方式

为什么要用分组交换?
在这里插入图片描述

1.为什么说分组交换能够提高效率?
——电路交换也是经过交换机进行转接,但是:
(1)建立的连接是独立的私人的,只要有人在通信,那么这条连接就会一直被独占着,不能被其他人使用,直到通信结束;
(2)每条链路都要经过“建立、通信、拆除”的阶段;
然而互联网的信息传输是很突发的,不是所有的信息传输都是一直在通信的。如果使用电路交换,效率将十分低下
——分组交换使用的交换机,也就是路由器,不需要像电路交换使用的交换机那样“建立独占连接,通信完毕后拆除”,
它就像快递分发点一样,每来一个包,交换机就查找分组转发表,根据包上指明的地址进行转发即可,不用管理链接的建立和拆除。

2.为什么要先存储再转发?
——在上一个问题的答案中提到,分组交换并不用建立私人连接,因此不止一条链路可以同时给路由器发送数据包。但路由器一次只能转发一个数据包,这时候就需要一个缓存区,存放未能立刻转发的数据包,同时也是以防数据包丢失

传播时延:每一位(bit)数据到达目的地所需的时间。
定义式:路径L / 沿该路径的传播速率C。L:m,C:m/s

由传播时延的定义可知,由于传播时延强调的是一位数据的传播时间,因此和链接的数据速率(data rate,也就是bps)无关。因此,一位数据和一个数据包在同一路径的传播时延相同,传播时延只与电缆长度有关

打包时延:数据放到链路上所需要的时间。
定义式:数据包的总位数P / 链接的数据速率R。P:bit,R:bps

小小的注意:内存中的1kbit=1024bit,而数据速率的1kbps=1000bit/s

端到端时延:从数据包的第一位数据被放到链路上开始,直到数据包的最后一位数据被目的主机收到,中间所花费的总时间。它等于将经过的每条链路的【传播时延+打包时延】累加
在这里插入图片描述

在这里插入图片描述
但是!如果考虑到路由器本身的buffer,并且在一个路由器有多个数据包需要转发,那这时候还要考虑到【数据包在该路由器中的排队时延】。当然,排队时延的数值不是固定的,因为它取决于前面有多少个数据包在等待,甚至可以为0。例如斯坦福到清华大学的RTT范围可以在300~600ms之间。

可以理解成:上面的公式得到的端到端时延是实际的端到端时延范围的下限。

由此可见,端到端时延处于一个范围之内波动。有些程序可能不在乎这个波动,但有些实时程序,例如视频播放,就必须要留意这个时间范围,这些程序就希望时间越短越好。
以视频播放为例,一个解决办法是:缓冲当前时间点以后一段时间的视频内容,并且缓存的视频时长要足够长,以有足够的时间应对可能的排队时延波动,或者说,即使排队时延一下子剧增,使得某一时刻数据接收量小于播放视频所需要的数据量,播放端短时间内也不会受太大影响,因为早已缓冲了数据,用以接下来一段时间的播放。
可以明显看出,这个缓冲区不能太小,但是也不能太大。太小的话可能会使得应对排队时延的能力不足,太大的话会使得开始播放所需时间延长。

带宽:在计算机网络中,带宽指的是同一时间的最大数据速率

以太网交换机工作方式:
使用以太网地址(MAC地址)
在这里插入图片描述

路由器工作方式
使用IP地址
在这里插入图片描述

分组转发表
以太网交换机查找目的地址对应的端口时,在哈希表中查找确切匹配项,存储地址使用的数据结构是(双向)哈希表:
路由器查找目的地址对应的(下一个路由器对应的)转发地址时,并不是查找确切匹配项,而是查找最长匹配前缀,存储地址使用的数据结构是二叉树。
在这里插入图片描述

最简单也是最慢的交换机使用输出队列,将所有的数据包都放在同一队列,然后逐一分配到端口或转发地址,但优点是打包时延最小。
更高性能的交换机使用输入队列,运用了虚拟输出队列技术来最大化吞吐量。

虚拟输出队列:在更新了转发地址或端口后,数据包可以先按照这些转发地址或端口进行分类,例如从a端口出去的一列,b端口出去的另一列。然后再将这些队列的内容发到对应的端口

猜你喜欢

转载自blog.csdn.net/jieyannn/article/details/105834297