网络路径是如何被发现的

网络路径是如何被发现的

最近突然好奇到,我们熟悉的IP网络是如何运作的,查了半天资料都是说TCP/IP那几层协议,根本没有说网络是如何运行的。那我们试试头脑风暴,再发明一次网络吧

一个理想的模型

网络是由无数个可以相互连接的点组成

一些限制

每个点是没有先验知识的,也就是说,点与点之间如果不是直接连接在一开始是不知道能否由通路的,但点能知道直接连通的道路

发现通信路径

在没有点与点之间没有先验知识的前提下,我们就只能通过BFS/DFS算法来发现路径
所以当第一次通信的时候,点与点之间的时间最优情况T(n^n) (假设每个点直接连接n个点,在第二跳就能找到通路)

问题

这个情况下,我们会发现性能是和我们现在的网络不同,应该是会很慢的

优化

如果需要提升性能,就需要增加先验知识

增加假设

点的直接通路中由特定的点具有网络通路的解释权,我们称之为高优先级点,高优先级点的位置应该预先内置在访问点处,高优先级点数量m << n

优化结果

性能会提升至T(m^m)

再增加假设

假设我们可以广播,亦即是发出一个信号,如果点能到达,则返回路径表,此时的实际访问次数是T(h) h是网络中的最先达成通路的深度

问题

在未达成通路之前,整个网络相当于开启了m^m^h个半连接,会产生信息风暴

优化

划分网络,减少同时建立的半连接数量

对应到我们真实的IP网络

这个时候是不是就有点像我们的现有的IP网络了

硬件层就是能直接连接的路径

需要中间转发的,就在IP协议层完成

比如ICMP就是我们的广播信号

在一些核心交换机上还存在手工配置的路由表,就是高优先级点的先验信息

网关就是我们的高优先级点

划分就是我们的掩码

当然这都是我瞎几把想的东西,和实际出入应该大了去了,IP网发展了这么多年,基本模型都有可能变了