OSPF工作原理
ospf工作原理
链路状态路由协议
open标准
最短路径优先(spf)算法
链路状态路由协议(vs,距离矢量)
与rip的区别
rip是周期性更新(30)
ospf 不发送完整的路由条目但是它发送链路状态的更新
有不同的分组()
ospf是根据增量更新
ospf收敛快、避免环路
ospf可以发送子网掩码信息支持vlsm(超网)还支持认证
注:ripv1不支持认证 ripv2支持认证
算法:
每个路由器都将自己看做一棵树的根,依据到达目的地的累积成本计算最短路径
Cost=10的8次方除以带宽(bps)
cost --带宽 越大优先就越大
(支持等待价的负载均衡)
基于组播来发送hello包
10秒钟发送一次hello包
ospf 占用低带宽
ospf分层的路由
由区域组成
主干区域
简单区域
路由更新流量很少
ospf有三张表
邻居表(只记录跟它相连的信息)
路由表(包含全部的路由表与其两张表的不同时只装载到最优的路径)
链路状态表(它包含整个区内的整个路径全部包含)
ospf分组类型和状态
type1:hello分组:用来与建立邻居关系 通告邻居关系......
type2:数据库描述分组(DBD)用来描述ospf链路状态数据库的内容
type3: 链路状态请求(lsr)请求相邻路由器发送链路状态数据库中的特定项 (我向你请求我不知道的那一条链路状态的那一条信息)
type4:链路状态更新(LSU)向邻居路由器发送链路状态通告
type5:链路状态确认(LSACK)确定收到邻居路由器的LSA
核心内容 ACK
ospf分组类型和状态
ospfde接口可以处在下面7种状态,ospf 邻居关系的建立由上而下逐步发展
1 DOWN停止状态:ospf没有进入任何状态,等待进入inti状态
(就是初始状态)
2init 初始状态:ospf接受到hello包后就到了初始状态 每十秒钟发送一个类型1的hello包,受到hello包的路由器进入init状态
3 收到hello包里的本地信息 它就可以进入two-way双向状态:hello包中包含已知的邻居列表,当接收到该hello的路由器发现自己出现载对方发送过来的hello包中时,进入two-way状态
4Exchange 准启动状态:成为邻居状态,以hello分组标识路由器id来决定主从状态(以经成为邻居状态但是全邻居装态)
5Exchange 交换状态:交换DBD分组描述链路状态数据库,并用LSAck分组确认
(用来dbd分组描述链路装态 并用LSAck确认)
6 Loading 加载状态 描述的过程中使用类型3的分组LSR请求完整的信息,然后使用LSU进行回应,LSU分组中含有确切的LSA,最后用类型5的包LSAck确认
(LSR请求完整的信息 LSU分组中包含确切的LSA)
7Full adjacency 全邻接状态:每一台路由器保存着一张邻居路由器的数据库。
(全部链接状态)
注:LSACK确认
(1)hello
dowh ------------> init
hello ruter id (大)
two-way <------------
exstart router id (2)
-------------->
routerid lsr(3)
<---------------- DBD 链路
exclayge
4LSU
<----------------
lsaCK
Full adjacency ---------------->
七种状态
五种类型
ospf运行步骤
1建立路由器邻接关系:进入TOW-way状态
2选举DR和BDR 优先级+路由ID
3发现路由,进入EXSTART状态确定主从关系交换链路状态数据库
4选择适当的路由。spf算法cost成本度量
5维护路由选择更新
注:在一个网络中DR和BDR的选举是靠优先级和routeID计算
如果在一个网络中DR段了的话那BDR就会成为DR
优先级是0-255
优先级为0的话不会参与选举
要是都是255的话就最看routerid
接口类型 耗费
100Mbps FDDI 1
10Mbps Ethernet 10
1.544Mbps T1 串行链路 64
56Kbps串行链路 1768
一个网络中优先级最高的就成为DR优先级次高的就成为BDR
224.0.0.6 组播 DR与BDR能接收到了地址。
224.0.0.5 代表所有运行ospf的路由器除了DR和BDR的不能收到省下的都能收到
转载于:https://blog.51cto.com/cainiao111/1042472
相关文章:

第十八章 MySQL Workbench5.2使用(待续)
转载于:https://www.cnblogs.com/hzzjj/p/9826074.html

r-rpm常用命令集
rpm 安装rpm包 rpm -ivh xxx.rpm rpm -ivh --nodeps --force xxx.rpm强行安装,不考虑依赖性 rpm --nodeps --force -Uvh *同样强行安装,不考虑依赖性 查看一个文件夹属于那个rpm包 rpm -qf /path/filename 查看文件属于哪个rpm包 rpm -qf xxx.so …

MySQL-存储过程
我们常用的操作数据库语言SQL语句在执行的时候需要要先编译, 然后执行; 而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集, 经编译后存储在数据库中, 用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数࿰…

查看linux虚拟机信息,虚拟机:Linux查看线程信息的步骤
1. 使用 pstree -p PIDps aux | grep firefox | grep -v grepcharles 26058 0.0 0.0 4908 1152 ? S 19:17 0:00 /bin/sh /usr/lib/firefox-3.5.4/run-mozilla.sh /usr/lib/firefox-3.5.4/firefoxcharles 26073 7.6 3.4 284264 70164 ? Sl 19:17 4:36 /us…

下载备忘:甘特图实现的代码
通过asp.net 代码,拼接字符串,实现甘特图。 样式和原型全部来源于jquery.ganttView插件, https://github.com/mbielanczuk/jQuery.Gantt 通过修改该代码,实现了可以调节高度,宽度等多种参数,具体看代码即可…

Spyder更改默认工作路径已经文件路径
打开spyder,选择菜单栏中的Tools--->Preferences--->Current working directory 然后选择最下面的单选按钮The following directory 。具体操作如下所示 更改文件存放路径 直接点击右上角的的文件夹图标 选择合适的路径即可: 希望能帮到你 转载…

mysql字段类型
数字类型 列类型 需要的存储量 范围、备注 TINYINT 1 个字节 一个很小的整数 有符号的范围是-128到127,无符号的范围是0到255 SMALLINT 2 个字节 一个比较小的整数 有符号的范围是-32768到32767,无符号的范围是0到65535 MEDIUMINT 3 个字节 一…

s-sed替换或者修改文件指定行,同时匹配多个字符串,替换换行符为指定字符
最近需要在脚本中修改几个配置文件参数且不能影响其他参数,于是想到了sed的强大之处,拿来学学 -i参数表示直接替换并修改文件 -i参数时直接修改文件 sed -i s/aaa/bbb/g testfile 将testfile文件中的aaa替换为bbb字符串 删除文件指定行或者某行内容 sed…

linux中非法内存,Linux下数组非法访问导致内存破坏 —— 引发segmentation fault的原因...
2012-02-05 wcdj1, 调试时必需的栈知识2, 数组非法访问导致内存破坏调试时必需的栈知识栈(stack)是程序存放数据的内存区域之一,其特征是LIFO(Last In First Out, 后进先出)式数据结构,即后放进的数据最先备取出。向栈中存储数据的操作称为PUSH(压入)&am…

基于Matlab和Wind SQL数据库的通用选股策略回测程序
function [y,varargout]backtestcomplex(x,varargin) % Created on 2012-07-15 % latest justified on 2012-09-20 % 输入x是一个excel文件的地址字符串,如‘E:\Top50.xlsx’, excel文件的第一行为表头,包含4列:股票交易代码(SZ000001&#x…

Bzoj1123 Blockade
题目链接:https://loj.ac/problem/10104 日常水题,题目中已经给出了算法,写个模板即可,不会割点的这里有一篇博客:https://www.cnblogs.com/WWHHTT/p/9745499.html 难点是每个对可以互换顺序,然后删掉一个点…

sgdisk 磁盘操作命令
划分磁盘分区 sgdisk -n 1:2G:50G /dev/sda 划分磁盘分区,一号分区划分为50G,同时预留2G的空间 磁盘格式化 sgdisk -z -og /dev/sda 查看分区详情 sgdisk -i 1 /dev/hda查看hda第一分区的详情信息 [rootnode3 ~]# sgdisk -i 1 /dev/sdb Partition G…

spring.factories文件的作用
即spring.factories文件是帮助spring-boot项目包以外的bean(即在pom文件中添加依赖中的bean)注册到spring-boot项目的spring容器中。在Spring Boot启动时,它会扫描classpath下所有的spring.factories文件,加载其中的自动配置类,并将它们注入到Spring ApplicationContext中,使得项目能够自动运行。spring.factories文件是Spring Boot自动配置的核心文件之一,它的作用是。

Spring事务七大传播机制与五个隔离级别,嵌套事务
如果当前方法正有一个事务在运行中,则该方法应该运行在一个嵌套事务中,被嵌套的事务可以独立于被封装的事务中进行提交或者回滚。如果封装事务存在,并且外层事务抛出异常回滚,那么内层事务必须回滚,反之,内层事务并不影响外层事务。当前方法必须在一个具有事务的上下文中运行,如有客户端有事务在进行,那么被调用端将在该事务中运行,否则的话重新开启一个事务。当前方法必须运行在它自己的事务中。一个新的事务将启动,而且如果有一个现有的事务在运行的话,则这个方法将在运行期被挂起,直到新的事务提交或者回滚才恢复执行。

emacs python环境配置
python作为日常用语,配置好emacs的开发环境,有效提高日后的开发效率。 几篇老外的文章作为参考: Configing emacs as a python ide python、emacs 安装python和emacs就不用说了,这是必须的,apt-get安装即可 基础python…

编写linux下跑马灯应用程序,01 arm11 led 跑马灯程序
.text.globl _start_start:ldr r0, 0x70000000orr r0, r0, #0x13mcr p15, 0, r0, c15, c2, 4ldr r0, 0x7e004000mov r1, #0str r1, [r0]ldr sp, 8*1024bl xxxxb .start.S文件代码;void delay (){int i;for (i 0; i < 100000; i);}int xxxx (void){volatile unsi…

Exchange 2013防止数据丢失DLP预览
介绍 防止数据丢失(Data loss Prevention)是Exchange Server 2013带来的一个新功能,感觉其实应该叫做防止数据泄露,许多第三方工具和设备也有类似的功能,而在Exchange 2013种已经直接集成了,并且之前的传输…

Django 模型层(1)
知识预览 ORM简介单表操作章节作业回到顶部ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极…

软件测试面试的linux基础知识,linux基础面试题
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼linux的用户管理useradd 用户名,添加用户【案例】useradd xiaomingpasswd 用户名,为新用户设密码【案例】passwd xiaoming,修改小明的密码userdel 用户名,删除用户【案例】userdel xi…

s-sort命令
对文本操作进行排序,以行为单位,依次根据ascii值进行比较,默认的排序方式为升序 sort [-bcfMnrtk][源文件][-o 输出文件]补充说明:sort可针对文本文件的内容,以行为单位来排序。 参 数:-b 忽略…

变体类的使用 package record case【转载】
**************理论区 start********************* DELPHI中记录的存储方式 在DELPHI中,我们用record关键字来表明一个记录,有时候,我们还会看到用packed record来声明的记录,这二者的区别就在于存储方式的不同;在wind…

【Boost】系列01:时间与日期
timer库(含timer,progress_timer和progress_display三个组件)和date_time timer用法: #include <boost/timer.hpp> #include <iostream> using namespace std; using namespace boost;int main() {timer t;//开始计时cout<<"max timespan:&q…

git学习网址
1、git 上传代码到GitHub 以及git删除github上文件和文件的命令 - lexsaints - CSDN博客 https://blog.csdn.net/weixin_42350212/article/details/80560272 2、git误区error: failed to push some refs to gitgithub.com: - whaleluo的博客 - CSDN博客 https://blog.csdn.n…

Linux压缩和解压缩命令集
.tar文件 解压tar zxvf FileName.tar打包tar czvf SourceName.tar DirName .gz文件 解压: gunzip FileName.gzgzip -d FileName.gz 压缩 gzip FileName .tar.gz 和.gz文件 解压tar zxvf FileName.tar.gz压缩tar zcvf FileName.tar.gz DirName .bz2文件 解压…
XMPP通讯开发-好友获取界面设计
在XMPP通讯开发-服务器连接 中我们成功连接到服务器上面,然后进入到主界面,接下来就是获取好友列表,这里我们分段开发,首先就是界面的设计,这里仿照QQ好友界面,里面的数据先是用模拟的,下一章获…

linux test数字txt,Linux26期 7月4日预习笔记
9.4/9.5 sed一,打印某行sed命令的格式为:sed -n np filename ,单引号内的n是一个数字,可以使用命令sed -n 1,$p filename ,如下去掉-n是有差异要想把所有行打印出来,可以使用命令sed -n 1,$p filename#sed -n 1,$p 文件名另外&…

提高PHP运行速度的小技巧
使用PHP的最大1个优势就是速度快。一般情况下,PHP总是具有足够的速度支持Web内容动态生成,许多时候甚至无法找出比它更快的方法。然而,当面对庞大的访问量、高负荷的应用、有限的带宽,以及其他各种带来性能瓶颈的因素时࿰…

基于Python, Selenium, Phantomjs无头浏览器访问页面
引言: 在自动化测试以及爬虫领域,无头浏览器的应用场景非常广泛,本文将梳理其中的若干概念和思路,并基于代码示例其中的若干使用技巧。 1. 无头浏览器 通常大家在在打开网页的工具就是浏览器,通过界面上输入网址就可以…

groovy–流程控制
在本篇文章中,我们将介绍逻辑分支,循环,以及如何从if-else以及try-catch代码块中返回值。 if – elseGroovy 支持Java传统的if-else语法: def x false def y falseif ( !x ) {x true }assert x trueif ( x ) {x false } else…

c语言中二进制用什么字母表示方法,看C语言编码转换--------负数的二进制表示方法...
今天在看C语言编码转换时,既然对负数的二进制表示有些遗忘,查了下网上的资料,他们说的是个P!误人子弟!和大家讨论了下,贴出来已备在此遗忘:假设有一个 int类型的数,值为5,…