可以把整个网络(一个自治系统AS)看成一个王国,这个王国可以分成几个 区(area),现在我们来看看区域内的某一个人(你所在的机器root)是怎样得到一张 世界地图(routing table)的。
  首先,你得跟你周围的人(同一网段如129.102)建立基本联系。你大叫一声 “我在这!”(发HELLO报文),于是,周围的人知道你的存在,他们也会大叫,这样 你知道周围大概有哪些人,你与他们之间建立了邻居(neighbor)关系,当然,他们 之间也有邻居关系。
  在你们这一群人中,最有威望(Priority优先级)的人会被推荐为首领( Designated Router)首领与你之间是上下级关系(adjacency邻接),它会与你建立 单线联系,而不许你与其它邻居有过多交往,他会说:“那样做的话,街上太挤了 ”。
  你只好通过首领来知道更多的消息了,首先,你们互通消息,他告诉你他知 道的所有地图的地名,你也会告诉他你现知道的地名,当然上也许只有你一个点。 (Database Deion数据库描述报文)
  你发现地名表中有你缺少的或比你新的东西,你会问他要一份更详细的资料 ,他发现你的地名表中有他需要的东西,他也会向你索求新资料。(Link State Request连接状态请求报文)
  当然,你们毫不犹豫地将一份详细资料发送给对方。(Link State Update连 接状态升级报文)
  收到地图后,互相致谢表示收到了。(Link State Ack连接状态响应报文)
  现在,你已经尽你所能得到一份地图(Link State DataBase连接状态数据库 ),你去查找地图把到所有地方的路挑一条最近(shortest path最短路)的,记 为一张表格(routing table路由表),当然以后查这份表格就知道到目的地的一 条最近的路了。地图也要收好,万一表格上的某条路不通了可以通过图去找一条新 的路。
  其实跟你有联系的,只是周围一群人,外面的消息要通过首领来知道。因为 你的地图是跟首领的一致,我们假设你是首领,你要去画一份世界地图。
  你命令所有手下向你通报消息,你可以知道你这一群人的任何一点点小动静 (event事件)。你手下还会有同时属于两群人的家伙(同一区内两网段),他会 告诉你另一群人的地图,当然也会把你们这一群人的地图泄露,(不过,无所谓啦 )。这样,整个区的地图你知道了(对于不知道的那也没办法,我们尽力了)。
  通过不停地交换地图,现在,整个区的人都有同样的地图了,住在区边境上 的人义不容辞地把这个区的地图(精确到每一群人)发送到别的区,把别的区信息 发送进来。国王会把这些边境的人命名为骨干(backbone area)。通过骨干人士 的不懈努力,现在,整个国家的地图你都了解得一清二楚了。
  有些人“里通外国”(AS Boundary Router自治系统边界路由器) ,他们知 道一些“出国”(AS External route自治系统外部路由)的路,当然他们会把这些 秘密公之与众(import 引入),通过信息的传递,现在,你已经有一张完整的“ 世界地图”了。
  OSPF是这样标记最短的路的:对于某个目的地,首先,考虑是否有同一区内 部到目的地的路(intra area区域内),如果有,则在其中取一条离你最近的(花 费最小),写进你的表格中,这个目的地可能是到本群体某个人也可能是到其他群 体的,对于经过其他区域的路由,你会不予考虑,跟自己人(同区域)打交道总比 与外人(其他区域)打交道好;如果没有本区的路,你只好通过别的区域了(区域 间),你只要在地图上找最近的就是了;如果你发现目的地在国外,你也只能先把 它标记到你的表格上,期待什么时候王国扩张到那,你就可以把它标记到国内地图 上了。
  OSPF就是这样,给你一份“世界地图”,并且在上面标记了最短的路,如此 而已罢了

转载于:https://blog.51cto.com/beyondcto/123908

像童话一样学习OSPF原理相关推荐

  1. 对学习编译原理的看法

    我认为编译原理这本书是一门与代码做斗争的课程,学习编译原理能够追寻程序设计语言的本质,了解计算机各种语言编译的原理.学习了编译原理能够更加深入的了解计算机各种高级语言使用的原理,能使自己更加容易更加好 ...

  2. TensorFlow深度学习算法原理与编程实战 人工智能机器学习技术丛书

    作者:蒋子阳 著 出版社:中国水利水电出版社 品牌:智博尚书 出版时间:2019-01-01 TensorFlow深度学习算法原理与编程实战 人工智能机器学习技术丛书 ISBN:97875170682 ...

  3. composer更新_深入学习Composer原理(四)

    本系列第四篇文章,也是最后一篇 首先,我们先看看Composer的源码从哪里看起.当然,请您先准备好源码. composer init或者直接install之后,自动生成了一个vendor目录,这时您 ...

  4. 广义表的学习(原理和代码)

    广义表的学习(原理和代码) 参考链接: https://blog.csdn.net/it_is_me_a/article/details/99870530

  5. 深度学习算法原理_用于对象检测的深度学习算法的基本原理

    深度学习算法原理 You just got a new drone and you want it to be super smart! Maybe it should detect whether ...

  6. 强化学习之原理与应用

    PaddlePaddle原创 2019/02/20 17:23 强化学习之原理与应用 强化学习特别是深度强化学习近年来取得了令人瞩目的成就,除了应用于模拟器和游戏领域,在工业领域也正取得长足的进步.百 ...

  7. python原理书籍_python书籍推荐:《深入浅出深度学习:原理剖析与Python实践》

    在过去的这十年,深度学习已经席卷了整个科技界和工业界,2016年谷歌阿尔法狗打败围棋世界冠军李世石,更是使其成为备受瞩目的技术焦点. 今日,小编就为大家推荐一本能让初学者和"老司机" ...

  8. 没人说得清深度学习的原理 只是把它当作一个黑箱来使

    没人说得清深度学习的原理 只是把它当作一个黑箱来使 人类正在慢慢接近世界的本质--物质只是承载信息模式的载体.人脑之外的器官都只是保障这一使命的给养舰队. 自从去年AlphaGo 完虐李世乭,深度学习 ...

  9. python原理_强化学习:原理与Python实现

    强化学习:原理与Python实现 作者:肖智清 著 出版日期:2019年08月 文件大小:17.18M 支持设备: ¥60.00 适用客户端: 言商书局 iPad/iPhone客户端:下载 Andro ...

最新文章

  1. 全球首款L4级无人车量产!李彦宏:吹过的牛实现了
  2. STM32L1X系列GPIO运用
  3. 活动推荐 | 于斯为盛,论道长沙!CCL 2018等你来!
  4. Android 实现ListView圆角效果
  5. 【报错笔记】项目使用了JSONArray类,导了import net.sf.json.JSONArray;包报错
  6. compareto 和_清洁责任–摆脱均等,compareTo和toString
  7. 本科计算机应用水平,湖南工程学院全日制非计算机专业本科生参加湖南省计算机应用水平等级考试的规定...
  8. Linux在多线程应用程序中处理信号
  9. eclipse 字体设置 Courier New字
  10. SpringMvc-HandlerExceptionResolver
  11. Salesforce.com + AutoCAD WS集成研究集锦
  12. echarts 加载优化_【第1615期】React Native 图表性能优化实践
  13. Sublime Text 2 注册码/破解方法
  14. ewebeditor 3.8php漏洞,asp eWebEditor v3.8 列目录漏洞
  15. 【电脑讲解】笔记本怎么连接宽带,拨号和无线网络连接方法
  16. python怎么设置随机数种子_Pytorch在dataloader类中设置shuffle的随机数种子方式
  17. Pytorch----卷积神经网络(CNN,图像边缘检测 , Sobel滤波器 , Scharr滤波器)--入门级小实例(逐行注释)---学习笔记
  18. 互联网晚报|12/27星期二| ​​国家卫健委:取消入境后全员核酸检测和集中隔离;新冠肺炎更名为新冠感染;知网回应被罚8760万...
  19. Kafka入门教程(一)
  20. mysql连接与嵌套查询_数据库之嵌套查询与连接查询

热门文章

  1. ASP.NET的实时天气及24小时天气预报(C#)
  2. Inplayable技术分享
  3. C++11中头文件thread的使用
  4. 【SVN】svn“E155017工作副本的参考文件损坏、E200014文件校验和不匹配”的解决方法
  5. 【H.264】x264命令详解:x264 --fullhelp
  6. 【leetcode】力扣刷题(2):两数相加(go语言)
  7. python调用cmd命令会弹出黑框_python 调用cmd,不显示cmd黑框
  8. java 开源sns_JEESNS V1.0发布,JAVA 开源 SNS 社交系统
  9. java中后台是那一部分_一套Java后台管理系统,拿来即用(附项目地址)
  10. zabbix 安装_zabbix系列(五) Grafana4.6.3+Zabbix 的安装部署