回忆一下RIP协议建立邻居的过程。在运行RIP协议的路由器A启动之后会向邻居路由器B发送一个请求报文,邻居收到后回应一个确认报文。然后路由器A将自己已知的所有报文发送给路由器B,并且每隔30秒周期性的向自己的邻居发送。那么这样一个看似简单的过程有什么弊端呢?首先,RIP协议每个30秒周期性的发送是为了确保一台路由器发生故障后能够更新路由表。所以这每隔30秒周期性的发送报文包含了大量的路由信息实际上是一种浪费。因为如果网络没有发生变化,这些报文是没有实际意义的。OSPF把维护路由信息报文和更新的路由报文这两种报文分开来发送。如下图所示:

RT1启动之后发送一个Hello报文,Hello报文中包含了DR的地址,以及是否发现了邻居。在此图中,Neighbors 
Seen=0说明还没有发现邻居。RT2收到RT1发送来的Hello报文后,也向RT1发送一个Hello报文,这个报文中告诉RT1,DR为RT2,同时告诉RT1已经发现了RT1是自己的邻居。RT1收到RT2发回来的回应报文后,这种状态我们称之为邻居关系。在建立了邻居关系后,RT1就开始向网络发送LSA。但实际上,在网络连接起来后,每台路由器中的大部分路由都是相同的,这个时候如果RT1仍旧将自己所知的所有LSA发送给RT2那么也会造成浪费。

所以,在RT1向RT2发送LSA之前,会告诉RT2那些路由是自己需要的,那些是自己不需要的。在前面我们讲到过在OSPF发送报文的时候会在LSA报文前加一个Head,在这个Head中包含了LSA的标示,就可以区分每条LSA。所以,RT1只需要向RT2发送Head就可以了,从而大大减少了发送的信息量。当RT2收到所有的Lsa的Head后会与自己本地的LSA中的Head进行比较,如果有不同的则向RT1发送请求。

然而, 
LSA报文是基于IP的报文,IP的特点是不可靠尽力而为的转发。所以LSA必须建议一种机制来确保对方能够准确无误的收到了自己发送的报文。所以LSA建立了一种类似TCP的确认和超时重传机制,来保证报文的准确无误的发送和接收。在图示中,RT1向RT2发送一个DD报文,在第一次发送的DD报文中不包含任何LSA信息,i代表了这时RT1发送给RT2的第一个报文,M代表了后面还有更多的报文,而MS则告诉RT2自己是主发送,而谁的MS大谁就决定了使用谁的发送次序(Sq),只有MS才能够在发送报文是将序号加一,在上图中我们可以发现RT2成为了MS。当发送报文中的字段M=0得时候,就可以确认报文已经发送完。此时,RT1才会向RT2发送LS 
requese报文。RT2收到LS request报文后,发送LS Update报文,最有由RT1发送LS 
ack确认报文。通过这一系列的报文发送,每台路由器就可以形成一个相同的LSDB。

转载于:https://www.cnblogs.com/xujie2013/p/3425427.html

两台路由器之间建立邻接关系的过程即报文信息交换过程相关推荐

  1. Linux两台主机之间建立信任关系

    Linux两台主机之间建立信任关系 一般用ssh命令访问另一台机器,或者用scp命令从别的机器拷贝数据和文件,都要输入对应账户的密码.而在两台机器之间建立信任关系,则可以省略输入密码的过程. 一  : ...

  2. Linux 两台主机之间建立信任关系方式及基本原理

    前言: 去年学过一段时间的现代密码学,最近在配置github, Linux主机之间建立信任关系的时候都用到了其中一些知识,所以刚好整理一下,想直接看操作方式的可直接拉到下面 密码学基本知识 一 现代密 ...

  3. 关于SSH服务|两台机器之间建立免密通道

    ssh:用在linux或者unix的远程控制服务协议 sshd占用22端口 在linux系统下面/etc/ssh文件中 sshd_config文件是服务器端的配置 ssh_config是客户端的配置 ...

  4. 两台路由器之间静态路由配置

    实验环境为:Cisco Packet Tracer7.0 两台路由器之间静态路由配置 实验拓扑: 路由器0配置: Press RETURN to get started! Router>en R ...

  5. 关于两台路由器之间的OSPF邻居关系问题!

    两台路由器A和B(loo0:X.X.X.X),RTA的接口配置为12.12.12.1,RTB的接口配置为12.12.12.2,掩码长度为24bits.然后在两台路由器上运行ospf,区域均为area ...

  6. 两台计算机如何组成局域网,家中有两台电脑,如何在两台电脑之间建立个局域网.....

    硬件方案一:通过一台交换机来实现两台电脑建立局域网 按照两台电脑放置的距离分别做两条标准网线,现在一般都用568B的线序做网线,一条线的两头都用568B的标准做,这样的线是一头接电脑,一头接交机.这样 ...

  7. 建立局域网计算机应安装,两台电脑如何建立局域网

    原标题:两台电脑如何建立局域网 两台计算机如何建立局域网?电脑里没有网络,附近也没有U盘.在两台计算机之前传送数据是困难的.如果你知道如何在两台计算机之间建立局域网,你就可以避免这种问题.我已经为你整 ...

  8. 两台linux之间传输文件的方法

    scp传输 当两台Linux主机之间要互传文件时可使用SCP命令来实现 scp传输速度较慢,但使用ssh通道保证了传输的安全性 复制文件 将本地文件拷贝到远程 scp 文件名 –用户名@计算机IP或者 ...

  9. 【网络通信与信息安全】之深入解析两台主机之间的通信过程和原理

    一.前言 本文通过在 Docker 容器中执行命令,来深入了解两台主机之间的通信过程.阅读完本文,您将熟悉以下内容: Docker 的基本操作: 创建 socket 并发送 HTTP 请求: 路由表. ...

最新文章

  1. 一文详解CSS常见的五大布局
  2. 谷歌发布最新版安卓Android,谷歌正式除名华为,安卓12华为首发无望,但鸿蒙将迎难顶上!...
  3. 分解 python_面试官:如何用Python实现将一个整数分解成质因数?
  4. keepalived+LVS实现高可用的Web负载均衡
  5. 总结深度学习各种网络结构【更新中...】
  6. 写给互联网上从业的Web程序员
  7. java createchannel_【原创】java NIO FileChannel 学习笔记 新建一个FileChannel
  8. 【训练平台】mmdetection训练自己的标注数据, 以faster RCNN ,yolo为例子
  9. 《Cocos2D-x权威指南》——第3章 Cocos2D-x中的核心类
  10. 解决ROS中运行launch文件报错ERROR: cannot launch node of type[xxx/xxx]:xxx的问题
  11. 微信自动发卡机器人说明
  12. DevOps前沿技术培训课程大纲
  13. 安装python3.x解释器步骤,Windows下使Python2.x版本的解释器与3.x共存的方法
  14. UI设计师具备四大维度能力剖析
  15. Python中文件路径
  16. 《深度学习》 笔记(一)
  17. DNS毒化攻击及防御
  18. scrapy爬虫实战:安居客深圳二手房
  19. 瑜伽的起源和种类划分
  20. Cucumber之五Cucumber Options详解

热门文章

  1. 多个旅游网站被挂马 五一假期外出旅游应小心
  2. 通信数字信号处理基本知识
  3. VIT自适应语音转文本可预测长度和内容(ocr也可)
  4. js基础--数据类型检测的相关知识
  5. SHELL简单脚本编写
  6. nagios监控linux nrpe安装
  7. 利用过采样技术提高ADC测量微弱信号时的分辨率
  8. 一个不错的Spectral Clustering方法的总结
  9. ★参加CSDN 用户体验调查 -- ★ 轻松赢取200C币
  10. 微信小程序引入Vant组件库