
写在最前面欢迎回来嘿小朋友又见面啦我们之前一起认识了路由器知道了路由器就像网络世界的邮局局长它负责把数据包送到正确的地方但是你有没有想过一个超级重要的问题路由器是怎么知道数据该往哪里送的呢全世界有几百万台路由器它们怎么协调怎么找到最快的路这中间有一个超级聪明的魔法它就是——路由算法听到算法这两个字你可能会觉得超级难什么算法听起来像数学课别担心其实路由算法超级简单它就是找路的方法今天我们就要揭开路由算法的神秘面纱讲完后你会发现“哇原来路由算法这么聪明它就是网络世界的’超级导航员’” ️准备好了吗让我们一起出发第一章先来想想一个有趣的问题在讲路由算法之前让我先问你一个超级有趣的问题你从家到学校怎么走最快想象一下你家在 A 点学校在 B 点中间有好多条路怎么选最快的那条路线一走大马路路宽但绕远路线二走小巷子直接但是窄路线三走地下通道快但有点暗路线四穿公园风景好但人多你会怎么选选路的考虑因素要选最好的路要考虑好多因素距离哪条路最短时间哪条路最快⏰安全哪条路最安全️拥堵哪条路最不堵风景哪条路最好看不同人会有不同选择有的爱走快的有的爱走美的路由器也要选路网络世界里也一样数据包从你家发到百度中间经过好多路由器可能有好多条路走哪条路最好这就是路由算法要解决的问题路由算法就是路由器选路的方法让数据走最好的路是不是超级有趣让我们一起深入了解第二章什么是路由算法让我们正式认识路由算法算法的意思先讲讲**算法这个词听起来很难**其实超级简单算法就是**“解决问题的方法”就是步骤**比如做番茄炒蛋的算法第一步打鸡蛋第二步切番茄第三步炒鸡蛋第四步加番茄第五步调味第六步出锅️这就是算法一步一步有顺序路由算法的意思路由算法就是**“路由器选路的方法”**路由器收到数据包要选一条路发出去怎么选靠路由算法简单说路由算法 路由器的导航软件️就像你出门用百度地图它告诉你怎么走最快路由算法就是路由器的百度地图路由算法做什么路由算法主要做三件事第一件事了解整个网络知道哪些路由器连着哪些第二件事计算最佳路径哪条路最快、最好第三件事填写路由表告诉路由器怎么走是不是超级清楚让我们继续深入第三章为什么需要路由算法让我用一个生动的例子说明没有路由算法的世界想象一下全世界几百万台路由器如果没有路由算法会怎样情况一路由器根本不知道怎么走数据包到了路由器路由器懵了“我该往哪发啊”情况二数据走错路本来3 步就能到结果走了 30 步绕了大弯⏰情况三数据走丢了转来转去找不到目的地永远到不了情况四所有数据都挤一条路这条路堵死了其他路没人走浪费是不是很糟糕有了路由算法有了路由算法情况一路由器知道怎么走数据快速发出情况二走最短的路省时省力⚡情况三数据准确到达不会丢失情况四流量分散每条路都通畅是不是超级完美路由算法的重要性可以说没有路由算法就没有互联网全世界几十亿设备每天几万亿次访问都靠路由算法在背后默默工作它让一切井然有序它就是网络世界的导航之神♂️第四章路由算法怎么找路那路由算法到底怎么找路呢让我们用一个比喻来理解一个生动的比喻想象全国有好多城市️ 城市之间有好多条路️你想从北京到上海怎么找最快的路方法一问每个城市的人“你那有路通到上海吗” 一个一个问方法二画一张全国地图看着地图找最短路径方法三问你的邻居城市“你知道上海怎么走吗” 邻居告诉你你再告诉你的邻居信息一层一层传这三种方法就对应三种主要的路由算法让我们一个一个看第五章路由算法的种类路由算法主要分两大类让我们认识它们第一类距离矢量算法距离矢量算法问邻居怎么走每个路由器只知道自己的邻居它问邻居“去某个地方要走几步”邻居告诉它然后它再告诉自己的邻居信息一传十、十传百最后大家都知道怎么走距离矢量的比喻想象你在森林里迷路了你遇到一个人“请问城市怎么走”那人说“我不太清楚但是往东走 1 公里有个人知道得多”你往东走遇到第二个人“我知道往北 2 公里有路”你往北走到了路口这就是距离矢量的思路问邻居邻居再问邻居距离矢量的优缺点优点简单每个路由器只要知道邻居缺点慢信息要一层一层传而且有时候会出错代表RIP 协议路由信息协议第二类链路状态算法链路状态算法每个路由器都画一张完整地图每个路由器告诉所有人“我连着哪些路由器”每个路由器收集所有信息画出整张网络地图然后自己计算最短路径链路状态的比喻想象你要在地图上找路️你有一张完整的地图你看着地图“从家到学校走这条路最快”你自己算不用问别人这就是链路状态的思路每个路由器都有完整地图自己计算路径链路状态的优缺点优点快准确每个路由器都有完整信息缺点复杂需要更多计算需要更多内存代表OSPF 协议开放最短路径优先一个对比算法信息来源速度复杂度距离矢量问邻居慢简单链路状态自己看地图快复杂第六章最短路径——Dijkstra 算法讲到链路状态有一个超级有名的算法叫Dijkstra迪杰斯特拉算法听起来超级难其实超级简单Dijkstra 是谁Dijkstra迪杰斯特拉是一位荷兰科学家 他发明了一种找最短路径的方法这个方法被广泛用于路由算法他因此获得了图灵奖计算机界的诺贝尔奖Dijkstra 怎么找最短路径让我用一个例子说明假设有 5 个城市A、B、C、D、E它们之间有路每条路有长度你想从 A 到 E怎么找最短路径一步一步找第一步从 A 出发看看A 直接连到哪些城市假设A 到 B 是 4 公里A 到 C 是 2 公里第二步找目前最近的城市C 最近2 公里我们先去 C第三步从 C 出发看看能到哪些新城市假设C 到 D 是 3 公里那A 到 D 经过 C 是 235 公里第四步现在最近的未访问城市是B4 公里去 B第五步从 B 看看能到哪假设B 到 E 是 6 公里那A 到 E 是 4610 公里第六步继续探索从 D 也能到 E假设D 到 E 是 2 公里那A 到 E 经过 C-D 是 2327 公里第七步7 公里比 10 公里短所以最短路径是 A→C→D→E长度 7 公里是不是超级聪明Dijkstra 的核心思想Dijkstra 算法的核心思想一步一步、稳扎稳打每次选最近的不贪心不冒险慢慢但是稳准最后一定能找到最短路径这就是它的神奇之处路由器怎么用 Dijkstra路由器就是用这种方法找路它把网络当作一张图每个路由器是一个点每条线路是一条边每条边有长度可能是时间、距离、带宽等然后用 Dijkstra 算法算出从自己到每个目的地的最短路径填进路由表数据就按照路由表走走最短的路第七章路由算法的考虑因素我们一直说**“最短路径”但是最短**到底是什么意思衡量路径的指标路由算法衡量路径有好多指标指标一跳数 经过几个路由器越少越好指标二带宽⚡ 路的宽度越宽越好指标三延迟⏰ 数据走多久越短越好指标四负载 路上多堵越不堵越好指标五可靠性 路稳不稳越稳越好指标六花费 用这条路贵不贵越便宜越好不同算法看不同指标不同的路由算法看重不同的指标RIP只看跳数简单粗暴OSPF看带宽、延迟等综合考虑BGP看策略互联网骨干用一个生动的比喻就像你选路指标一最短的路直线距离指标二最快的路考虑车速指标三最不堵的路考虑拥堵指标四最便宜的路不走收费路指标五最美的路风景好不同的人有不同的选择路由算法也是第八章路由算法的故事让我们用一个生动的故事来记住路由算法故事超级导航员小航很久很久以前在数字王国里有一位超级聪明的导航员她叫小航她住在每台路由器里小航的使命小航的使命给数据包指路每天好多数据包来找她数据包甲“小航我要去百度怎么走”数据包乙“小航我要去抖音怎么走”数据包丙“小航我要去淘宝怎么走”小航要给每个数据包指最好的路小航的工具小航有几个超级棒的工具工具一网络地图️ 整个网络长什么样她都清楚工具二路由表 一张表格记录怎么走工具三Dijkstra 算法 找最短路径的神器工具四邻居电话本 能问邻居小航的工作流程每当数据包来找路小航就这样工作第一步看看数据包要去哪查目的 IP第二步查路由表这个目的地对应哪个出口第三步告诉数据包“从这个出口出去”第四步数据包出发前往下一个路由器下一个路由器里也有一个小航继续指路就这样接力数据包最终到达目的地小航怎么更新地图网络经常变化有时多了一条路有时少了一条路小航怎么知道她有两种方法方法一问邻居每隔一段时间问邻居网络情况邻居告诉她她更新地图这就是距离矢量算法方法二大家广播每个小航告诉所有人“我连着哪些路由器”大家汇总信息画出完整地图这就是链路状态算法两种方法各有好处小航根据情况选用小航的家族小航不只在一台路由器里全世界几百万台路由器每台里都有一个小航它们互相交流互相协作让全球数据都能找到最快的路它们就是网络世界的导航家族默默工作让互联网井然有序小航的智慧小航虽然只是一个算法但是超级聪明网络变化了她马上更新某条路堵了她换条路某个路由器坏了她绕开她永远在思考永远在优化让数据走最好的路第九章路由算法的实际例子让我们看几个实际的路由算法例子一RIP路由信息协议RIP是最古老的路由算法之一特点简单只看跳数缺点慢只能找到 15 跳以内的路用途小型网络例子二OSPF开放最短路径优先OSPF是目前最流行的内部路由算法特点用 Dijkstra 算法考虑多个因素优点快准确适合大型网络用途公司内部网络、校园网例子三BGP边界网关协议BGP是互联网骨干用的路由算法特点用于不同组织之间考虑政策用途整个互联网的骨干网可以说没有 BGP就没有现在的互联网三个算法的对比算法用途特点RIP小型网络简单、慢OSPF中大型内部网络快、准确BGP互联网骨干考虑策略第十章路由算法的有趣知识让我们看一些关于路由算法的有趣知识知识一路由算法很古老第一个路由算法诞生于 1960 年代比互联网还早科学家们早就在研究怎么找路知识二算法决定网速路由算法的好坏直接影响网速好的算法让数据更快差的算法让网络变慢知识三Dijkstra 算法的应用Dijkstra 算法不只用在网络里还用在百度地图、高德地图你导航时它就在工作知识四算法在不断进步科学家们还在研究更好的算法比如用人工智能优化路由未来的网络会更聪明知识五路由算法看不见路由算法默默工作我们看不见但是它无处不在每次上网都靠它第十一章让我们回顾一下路由算法到底是什么我们用一句话总结路由算法就是网络世界里的超级导航员它帮路由器找到数据传输的最佳路径让数据快速准确地到达目的地核心要点路由算法的含义路由器找路的方法。作用找到最佳路径。位置在每台路由器里。重要性互联网的基石。两大类算法距离矢量问邻居怎么走。链路状态自己看地图算。经典算法Dijkstra找最短路径的神器。RIP简单的距离矢量算法。OSPF流行的链路状态算法。BGP互联网骨干算法。衡量指标跳数、带宽、延迟、负载、可靠性、花费记忆口诀路由算法是导航帮数据找最快的路算法不同各有特点让互联网井然有序第十二章今天的智慧亲爱的小朋友让我们一起总结一下今天学到的智慧智慧一找路要有方法路由算法告诉我们找路要有方法乱走会迷路有方法才能找到最优解智慧二信息要及时更新路由算法会不断更新地图这告诉我们信息要及时更新老信息会误导智慧三每个角度都重要路由算法看好多指标这告诉我们做决定要全面考虑不要只看一面智慧四合作的力量路由器们互相合作这告诉我们合作能创造奇迹一个人不行大家一起就行智慧五算法改变世界一个好算法能改变世界这告诉我们智慧的力量超级大要多思考多创造最后的话亲爱的小朋友下次当你打开网页看视频玩游戏……请记得全世界几百万台路由器里有路由算法在默默工作它正在为你的数据找最快的路每一次你点击链接每一次你发送消息每一次你和朋友视频背后都有路由算法在工作它就是网络的超级导航员“路由算法是数字世界的’导航员’它让每一个数据包都能找到最快的路。”️“从 Dijkstra 到 OSPF从 RIP 到 BGP算法编织了整个互联网。”“理解了路由算法你就理解了’数据是如何高效传输的’。”✨那些让你能快速上网的便利那些让数据准确到达的奇迹那些让全球网络井然有序的智慧背后都依靠路由算法的默默工作都是让数字世界高效运转这个伟大梦想的完美实现。下次当你上网时请想想这是路由算法在工作它正在为我的数据找路它让一切高效有序它就是网络的’无名英雄’❤️“在数字世界里路由算法是无声的智者。”♂️“它让每一个数据包都能找到回家最快的路。”恭喜你又毕业了 下次再见时我们一起去探索更多有趣的网络秘密️✨