牛广锋
从曳光弹、新冠病毒传染到网络路由算法
2021-11-28 22:57
阅读:997

   在看影视剧时,常常会发现一串串的发光的子弹。这些子弹其实都是曳光弹,在夜晚起到指示弹道的作用。对于狙击手或者炮手,总是需要计算弹道,然后再射击。对于机枪、飞机机炮,弹道计算总是比较困难。由于射击者本身在快速移动,加上外部环境的不确定,比如风向,水平距离,高差、枪管温度等等,弹道计算总是比较困难,甚至成为不可能。那么就要曳光弹来协助指示。

   上面总结了两条解决弹道的办法,一、计算;二、利用曳光弹。当然,利用曳光弹也不是不计算,只是说增加了现场实际情况的反馈。

   对于网络路由算法,其实也有两种,一种就是计算。现在互联网骨干路由器就用计算的方式来获得转发表。路由器收到数据包后,根据转发表转发数据包。不过,计算得到的转发表并不能充分利用网络的能力。网络的最大转发能力,是一个NP-hard问题。

   其实,还有一种产生路由表的方法,类似新冠病毒溯源。当一个人感染了病毒,就要溯源,以找到第一位感染者。溯源过程就是找到上一个感染者,连续找下去,即可追踪到第一个。

   在网络上,路由器通过链路连接在一起。当一个路由器感染了新冠,可以传染其它路由器,而且是通过链路传染。当一个路由器受到传染后,又继续通过链路传染自己的邻居。但是当路由器被传染过一次后,马上就能变好,不再接受第二次传染。当路由器被传染后,怎么追查传染自己的路由器?就是反向找过去,这实际上就是生成了一条转发项。在路由表中生成一条转发项。这完全类似新冠病毒溯源过程。

   假设某个路由器是病毒源,总是定时发送病毒,而且每次都变异,导致网络中的路由器受到感染。某个路由器收到数据包,目标地址为病毒源。这个路由器根据被传染的路径,反向发送过去即可。

   上面方法也类似曳光弹方式。因现在网络带宽非常大,几百G已经很常见。那么一个网络上,所有的路由器定期向外扩散数据包,以泛洪方式发数据包。其它路由器接收到泛洪的数据包后,如果是从A链路收到,而且是第一个,就说明从A链路可以到达源路由器,这就生成了一条转发项。这利用了两个假设,一、链路都是双向而且带宽是相等的;二、泛洪方式发出的数据包总是以最快速度传输。

   由于网络的带宽很高,即使某个自治域的所有路由器都定时发送一个数据包也占不了多少带宽。另外,路由器还可以自己来调节。如果想少收到一些某个方向的数据包,就可以等一个时间段再向邻居发送。也就是说,路由器可以自己决定是否感染自己的邻居,而且还可以等一些时间再感染邻居。

   利用曳光弹方式获得路由转发项非常简单,几乎不用怎么计算。另外的好处也就不多说了。

 

      

转载本文请联系原作者获取授权,同时请注明本文来自牛广锋科学网博客。

链接地址:https://wap.sciencenet.cn/blog-200346-1314289.html?mobile=1

收藏

分享到:

当前推荐数:0
推荐到博客首页
网友评论0 条评论
确定删除指定的回复吗?
确定删除本博文吗?