OSPF进阶
一、LSA详解
Type:LSA的类型(1、2、3、4、5、7类)
link-state-ID:链路状态表示符
ADV router:产生该LSA的路由器
age:老化时间
Metric:开销值,一般都为ADV router到达该路由的开销值。
1.Router-LSA(1类)
功能: 用于描述每台路由器在所在区域的链路状态信息
传播范围:本区域内传输(终止于ABR)
link-state-ID:产生该LSA的路由器route-id
特性:在单个区域中产生一条1类LSA,若存在MA网络,1类LSA不完整,需要配合二类LSA生成路由信息以及拓扑信息
- 路由信息类型:StubNet(末节网络)
- 拓扑信息类型:TransNet(传输网络 仅限于MA网络)、point-to-point(点对点)、Virtual Link (虚链路)
查看1类LSA:
第一条路由信息中自动识别到3.3.3.3作为环回地址,所以Data显示的是32位主机号。
第二个路由信息显示的是接口下的网段23.1.1.0,Data显示的是网络掩码。
第一个拓扑信息的类型是P-2-P也就是点到点连接,其中Link ID显示的是另一端的route-id,Data显示通过某个接口进行连接的。
第二个拓扑信息的类型是TransNet,其中Link ID显示的是DR的ip地址,Data显示的是通过某个接口对DR的连接。
2.Network-LSA(2类)
功能: 用于在MA网络中,描述本网络路由器的数量以及本MA网络的网络掩码(由DR产生)
传播范围:本区域内传输(终止于ABR)
link-state-ID:DR接口的IP地址
特性: 只会出现在MA网络,用于补充1类LSA(1.MA网络的掩码 2.MA网络路由器的数量)
查看2类LSA:
其中还多出了网络掩码以及区域内各路由器的route-id(由于r2和r3是通过点对点连接,所以没有发送2类LSA)
3.Summary-LSA(3类)
功能:用于在区域之间传递路由信息
link-state-ID:该路由的网络号
特性: 在穿越不同区域时,由其他的ABR重新产生(ADV router 是变化的)
查看3类LSA:
4.AS-External-LSA(5类)
功能:用于描述OSPF外部路由信息
传播范围:在整个OSPF域中传输(除了STUB和NSSA区域)
link-state-ID:传递外部路由的网络号
特性:OSPF的其他区域想要学习到5类LSA,就得通过4类LSA来学习
查看5类LSA:
Metric:种子度量值(华为默认1,思科默认20)。修改种子度量值:[r5-ospf-100]default cost 20
E type:表示5类LSA的类型(默认为2)。类型1:5类LSA传递过程中,度量值不变(一直保持种子度量值);类型2:5类LSA传递过程中,随着ospf的度量值变化(由原本的种子度量值+链路度量值)。修改其类型(进程下重发布):[r5-ospf-100]import-route rip 100 type 1
Forwarding Address:转发地址。如果有转发地址则先查找并转发给该地址(查询不到则无法通信),如果没有则转发给ADV router。
Tag:tag标签,可以用于控制路由。
5.ASBR-Summary-LSA(4类)
功能:除了ASBR所在区域外,用于通告ASBR位置
link-state-ID:ASBR的router-id
特点:在穿越不同区域时,由新的ABR重新产生。(与3类LSA一致)
查看4类LSA:
6.NSSA-LSA(7类)
功能:在NSSA区域中,传递外部路由
link-state-ID:传递外部路由的网络号
特性:7类LSA只能出现在产生该LSA的NSSA区域,在其他区域传递时要通过ABR进行7转5
FA地址特点:
- 当5类或7类LSA中携带了FA地址,则计算路径开销值时计算的是当前路由器到达FA地址的开销值之和+种子度量值。(若FA地址不可达,则路由不能加表)
- 默认7类LSA产生FA地址,5类不产生(7转5的5类LSA携带FA地址)。
- 7类LSA产生规则:默认产生的FA地址为产生该LSA的ASBR最大的环回接口地址。ps:若连接其他协议的接口也运行了OSPF协议并且网络类型为BMA,则产生的7类LSA中FA地址为连接其他接口对应的下一跳地址;若网络类型为P2P,则FA地址依然为环回接口中IP地址最大的。
- 5类LSA产生规则: 默认不产生。ps:若连接其他协议的接口运行了OSPF协议并且网络类型为BMA,则FA地址为重发布之前路由的下一跳地址;若网络类型为P2P,则不会产生FA地址。
在进行7转5过程中过滤FA地址(NSSA区域下):nssa suppress-forwarding-adress
查看7类LSA:
7.LSA的新旧比较
LSA中存在3个参数用于LSA的新旧比较:
- 序列号(序列号越大的LSA越新)
- 校验和
- LSA老化时间(若以上都相同,LSA age 之差小于15分钟,越小越优,若大于15分钟,则无法比较认为都是最新的。)
二、OSPF中的计时器
1.组步调计时器
组步调计时器:默认5分钟
作用:用于LSA链路的更新,在LSA的老化时间中,超过1800s的LSA需要更新,达到3000s没有更新则进行删除,其中组步调计器则是在超过1800s的基础上,再等300s进行对所有超过1800s的LSA同时更新,可以有效减少更新频率。
2.hello与dead
hello:默认为10s或30s;dead:默认为40s或120s
作用:用于维护OSPF邻居关系
修改hello时间,dead时间变化(1:4);修改dead时间,hell时间不变。(hello时间或dead时间不同,都会影响邻居关系建立)
Waiting time: 等待DR或BDR的选举时间,永远保持与dead时间一致。
修改hello时间:ospf timer hello 5
修改dead时间:ospf timer dead 5
3.poll
poll:默认120s
作用:定期向那些当前状态为DOWN的邻居发送Hello消息。
4.retransmit(重传时间)
retransmit:默认5s
作用:发出去的LSA包在5s内没有得到确认则进行重新发送。
5.transmit delay(传输延时时间)
transmit delay:默认1s
作用:补偿传输损耗,LSA向外传递时,age时间加1s。
三、OSPF网络类型
loopback接口默认OSPF网络类型为P2P,但是生成路由的网络掩码默认为32位(还原真实网络掩码:思科中修改类型为P2P,华为中修改为BMA类型),并且cost为 0(cost不会因为参考带宽或者接口带宽变化而变化)
1.P2P
物理接口:HDLC、PPP、GRE、 MGRE、FR的点对点子接口
特点:
- hello时间:10s
- 不选举DR
- 自动建立邻居关系
2.BMA
物理接口:以太网
特点:
- hello时间:10s
- 选举DR
- 自动建立邻居关系
- 产生的1类LSA不完整,需要2类LSA补充
3.NBMA
物理接口:FR-帧中继(物理接口、多点子接口)、ATM-异步传输网络
特点:
- hello时间:30s
- 选举DR
- 不会自动建立邻居关系(建立邻居需要手工指定peer ,思科中单边指定就可以,华为需要双方同时指定)
在hub-spoke网络中,若默认网络类型为NBMA :
- 手工指定peer
- 控制DR位置,不得出现BDR
- spoke之间互指映射(PVC)
4.P2MP
物理接口:无
特点:
- hello时间:30s
- 不选举DR
- 自动建立邻居关系
- 将物理接口IP地址以32位主机路由的形式传递迚入OSPF
5.V-link
特点:
- 虚链路默认的网络类型为Virtual
- hello时间:10s
- 自动建立邻居
- 不选举DR
查看虚链路:
四、认证与路由控制
1.OSPF认证
链路认证(接口):ospf authentication-mode simple cipher 密码
区域认证(区域):authentication-mode simple cipher 密码
虚链路认证(同一区域):vlink-peer 双方router-id simple cipher 密码
2.OSPF路由控制
(1)修改AD值
默认AD值:1、3类LSA为10;5、7类LSA为150。
OSPF进程直接修改AD值(1、3类LSA):preference 88
OSPF进程直接修改AD值(5、7类LSA):preference ase 88
(2)修改metric值
metric = 参考带宽/实际带宽
默认参考带宽:100Mbps
修改参考带宽(Mbps):bandwidth-reference 1000
(3)修改接口cost值
接口下修改cost值:ospf cost 88
五、LSA限制
OSPF LSA限制有以下几种方法:
- 划分区域
- *特殊区域
- LSA汇总
- LSA 过滤
1.特殊区域
(1)stub区域
stub区域又称作末节区域,其特点如下:
- 过滤4、5类LSA ,stub区域不能进行重发布,不能存ASBR
- stub区域边界ABR会自动产生3类缺省LSA(默认度量值为1),保证stub区域路由器与外网保持通信
- stub区域不能为骨干区域
- 若设置stub区域,存在该区域的所有路由器都必须设置
- 特殊区域不能使用虚链路
配置stub区域(区域下):stub
(2)Totally stub区域
Totally stub区域又称作完全末节区域,在stub区域基础上,由ABR过滤3类LSA,只保留3类缺省LSA。
配置Totally stub区域(ASBR区域下):stub no-summary
(3)NSSA区域
NSSA区域又称作非完全末节区域,其特点如下:
- 过滤4、5类LSA
- 边界ABR自动产生7类缺省LSA (默认度量值为1)
- 允许进行重发布(允许出现ASBR),产生7类LSA。在ASBR进行重发步(进程下):[r5-ospf-100]import-route rip 100 type 1
配置NSSA区域(区域下):nssa
若在NSSA区域与非NSSA区域之间的路由器上进行重发布,默认路由分别重发布进入NSSA和非NSSA,同时进入的7类LSA不支持7转5类(P=0,P代表是否有支持7转5功能)。在华为设备中,依然携带FA地址,此时FA地址为NSSA区域中的某个IP地址。
NSSA区域和非NSSA区域边界进行重发步时,默认路由会分别重发步进入NSSA区域和非NSSA区域。阻止重发步进入NSSA区域(在ASBR的NSSA区域下):nssa no-import-route
(4)Totally NSSA区域
Totally NSSA区域又称作完全的非完全的末节区域,在NSSA区域的基础上继续过滤3类LSA,产生3类缺省LSA。
配置Totally NSSA区域(ASBR区域下):nssa no-summary
2.LSA汇总
(1)3类LSA汇总
位置: 产生该3类LSA 的路由器(ABR)上
度量值:默认所有明细路由中metric最大的
配置(在ABR对应明细路由的接口):
产生3类LSA时指定度量值:abr-summary 2001.1.1.0 255.255.252.0 cost 88
查看:
(2)5、7类LSA汇总
位置:产生该LSA的ASBR上
(3)7转5类LSA汇总(自动过滤FA地址)
位置:7转5 的ASBR上
(4)LSA过滤
针对3、5、7、7转5类LSA进行过滤:在汇总的命令后面 + not-advertise
六、处理不规则区域
不规则区域通常有两种:1.存在多个area 0 2.非骨干没有直接挂靠在骨干区域之上
解决办法:
- OSPF 双进程重发布
- virtual link 虚链路方式
- Tunnel 隧道方式
1.OSPF 双进程重发布
不同区域之间配置不同的OSPF进程号,再通过ABR进行重发布。
2.virtual link 虚链路方式
双方搭建虚链路(同一区域下):vlink-peer 对方route-id
支持虚链路认证: 明文认证 MD5认证
注意: 1.虚链路只能穿越一个区域 2.穿越的区域不能为特殊区域 3.虚链路的两端必须至少存在一个ABR 4.虚链路属于area 0
3.Tunnel 隧道方式
一般在area 0区域的ABR的环回接口上,且ABR的环回接口与隧道搭建的另一端路由器在同一区域内,使其能够与area 0区域进行连接。
七、OSPF选路
OSPF 路由分类:
域内:1、2类 LSA
域间:3类LSA
域外:5、7类LSA
各类的LSA比较:
(1)1类与1类LSA
- 优先选举metric较小的,若一致负载均衡
(2)3类与3类LSA
- 优先选举metric值较小的,若一致负载均衡(若三类LSA一个为area 0 中学习,一个是非area 0 学习,永远学习area 0 中的3类LSA)
(3)5类(2类型)LSA与5类(2类型)LSA
- 优先比较种子度量值(越小越优)
- 若种子度量值一致,则比较沿途累加的度量值,沿途累加度量值越小越优。(5或7类 2类型的LSA 沿途经过的cost是计算的,但是不显示出来)
(4)5类1类型LSA与5类1类型LSA
- 比较种子度量值和沿途累加度量值总和,越小越优。
(5)1类LSA与3类LSA
- 1类永远优于3类
(6)3类LSA与5类LSA
- 3类永远优于5类
(7)5类(1类型)与5类(2类型)
- 1类永远优于2类
(8)5类(1类型)与7类(1类型)
- 当总度量值一致时,负载均衡,若总度量值不一致,越小越优。(仅仅关注总度量值,种子度量值+沿途累加。注意:7类LSA中携带了FA地址,计算沿途累加度量值时,计算的是到达FA地址的)
(9)5类(2类型)与7类(2类型)
- 先比较种子度量值,越小越优
- 比较沿途累加度量值,越小越优
- 若度量值完全一致,则负载均衡
(10)总结
- OSPF协议LSA之间的选路与优先级无关
- 域内优于域间
- 域间优于域外
- 类型1优于类型2
- 类型1之间比较仅仅关注总度量值
- 类型2之间先比较种子度量值再比较沿途累加度量值
八、附录
针对R1、R2发送的LSA加表。
先进入网络掩码较短的,掩码较短正常进入,网络掩码较长,link-id 为传递路由网络号对应的定向广播地址。
查看:
若网络掩码较长的先进入,正常进入,再进入网络掩码较短的,则现针对之前LSA 发送3600s的LSA进行LSA删表,让网络掩码较短的正常进入(link-id不变,但是序列号+1),然后再让网络掩码较长的使用定向广播地址进入。
相关文章:
OSPF进阶
一、LSA详解 Type:LSA的类型(1、2、3、4、5、7类) link-state-ID:链路状态表示符 ADV router:产生该LSA的路由器 age:老化时间 Metric:开销值,一般都为ADV router到达该路由的开…...
SuccBI+低代码文档中心 — 可视化分析(仪表板)(下)
制作仪表板 引入数据模型 仪表板所需模型已经在数据模块中准备好,可以将对应模型表添加到数据模型中。提供了两种添加方式: 在数据栏中点击添加按钮,在弹出框中通过搜索或直接在其所在目录下选中该模型,点击确定。 点击数据按钮…...
前端创作纪念日
机缘 作者也是一名新人大学生,在学习过程中总是get不到专业的知识体系,机缘巧合下了解通过md文档记笔记然后分享在各大博客平台上面,可以吸引社区博客朋友们的关注的鼓励,使得直接创作努力学习的心更加澎湃。 实战项目中的经验分…...
丰收季遇科技之光:北斗卫星导航引领现代农业新篇章
在这个金风送爽、硕果累累的丰收时节,广袤的田野上洋溢着农民们欢声笑语,每一粒饱满的果实都是大自然与辛勤耕耘者的共同馈赠。而在这片希望的田野上,一项科技革命的浪潮正悄然改变着传统农业的面貌——北斗卫星导航系统,正以它精…...
解决windows7虚拟机安装不了vmtools问题
安装不了vmtools问题所在: 没打补丁 打补丁问题 补丁在本地下载之后无法传到win7虚拟机中 补丁获取 补丁链接如下: https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x64_b5614c6…...
Microsoft VBA Excel VBA函数学习笔记——数据切分熟练度+1
问题场景 123456Stock006006006002002002MarketUSUSUSUSUSUSWeight0.010.1090.2280.2220.2390.72CurrencyEURUSDCNYEURUSDCNYTerm10.0740.0820.0120.0470.0580.067Term20.040.020.010.070.0580.067Term30.0540.0520.0140.0870.0480.017Term40.0710.0840.0020.0170.0180.097………...
uniapp获取swiper中子组件的内容高度
swiper有默认高度,如果不单独设置一个具体高度,swiper后面的内容将不会展示 这里展示的例子是: swiper中放有一个子组件,想要完整展示子组件的内容,swiper就需要获取到子组件的内容高度并设置 <!-- 注意: 这里的单位是 px,不是rpx --><swiper…...
基于计算机爱心小屋公益机构智慧管理(源码+论文+部署讲解等)
博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台的优…...
详细学习PyQt5的样式表与界面美化
Pyqt5相关文章: 快速掌握Pyqt5的三种主窗口 快速掌握Pyqt5的2种弹簧 快速掌握Pyqt5的5种布局 快速弄懂Pyqt5的5种项目视图(Item View) 快速弄懂Pyqt5的4种项目部件(Item Widget) 快速掌握Pyqt5的6种按钮 快速掌握Pyqt5的10种容器&…...
遥控器android设备键值原理
输入设备触发事件发送数据-》将键值映射到内核中预定义的键值-》上报键值,通过kl文件将按键码转化为标签字符串 内核获取键码,扫描码 按键标签其实对应的也是一个按键码。与kernel上报的按键码不同,按键标签所对应的按键…...
零基础也想学编程?Java零基础入门学习路线 + Java教程已准备好!
本文作者:程序员鱼皮 免费编程学习 - 编程导航网:https://www.code-nav.cn 符号表 可以通过路线知识点前的表情字符,根据自己的实际情况选择学习: 🌕 所有同学必须学习!!!…...
Avnet ZUBoard 1CG开发板上手—深度学习新选择
Avnet ZUBoard 1CG 开发板上手—深度学习新选择 摘要 本文主要介绍了 Avnet ZUBoard 1CG 开发板的特性、架构、硬件单元等概念,并对如何使用以太网接口和串口连接开发板进行基本介绍,同时辅以两个应用例程演示其功能。 原文链接: FreakSt…...
C/C++复习 day1
C/C复习 day1 文章目录 C/C复习 day1前言一、C语言1.memcpy函数2.memmove函数3.strstr函数4.宏定义的函数5.大小端的介绍以及判断 二、C入门基础1.C是如何支持函数重载的?2.建议用const enum inline去替代宏 三、C类和对象1.类大小的计算2.移动构造和移动赋值1.右值…...
再见Figma!!新的设计,代码协作神器!【送源码】
软件介绍 Penpot 是一款专门用来帮助设计师和开发者更好地合作的软件。它可以让设计师轻松地做出漂亮的设计稿,还能让这些设计稿变成真正的网站或者应用的一部分。这样,设计师和开发者之间就不会因为沟通不畅而产生麻烦了。 Penpot 专为设计师与开发者之…...
快速拷贝复制工具软件@拷贝工具@多线程拷贝@robocopy
文章目录 refs常见复制工具高速拷贝工具特性对比 Robocopy👺Robocopy工具基本用法语法示例 常用选项常见选项列表示例 高级用法多线程复制日志记录 用例案例直接递归复制大量文件的文件夹多线程复制监视被打开文件文件数 复制时排除某个目录排除交接点跳过无法复制的…...
JavaScript 逆向爬取实战
准备介绍: 当我们学习完整个 JS 逆向技巧后,这里是一次完整的分析爬取实战 案例介绍 本节案例网站不仅在 API 参数有加密, 而且前端 JS 也带有压缩混淆,其前端压缩打包工具使用 webpack , 混淆工具使用 javascript-obfuscator 。…...
Vue 项目中导入文件时如何默认找寻该文件夹下的 index.vue 文件
文章目录 需求分析 需求 如下图,在Vue 项目中导入 frequencyChange 文件夹时如何默认找寻该文件夹下的 index.vue 文件 分析 确保项目结构和命名约定 首先,确保你的 Vue 单文件组件按照约定命名,例如: components/Example/inde…...
Idea2023.3.3 —— SourceTree与gitee关联
SourceTree SourceTree链接: https://pan.baidu.com/s/1oqPxhpHeNOOiuRRQydes6g?pwdngru 提取码: ngru 点击Generate 分别保存私钥和公钥 gitee官网注册 这是gitee的公钥,与上面SourceTree的公钥私钥不一样 gitee生成公钥,确保本地安装好git git链接: h…...
一文HDMI (High-Definition Multimedia Interface)
HDMI(High-Definition Multimedia Interface,高清多媒体接口)是一种紧凑的音视频接口,它能够将未压缩的视频数据以及压缩或未压缩的数字音频数据,从符合HDMI标准的源设备无缝传输到兼容的计算机显示器、视频投影仪、数…...
【HBZ分享】高并发下如何设计缓存来提升系统性能?
普通模式 普通模式即前段调用后端接口,然后后端先查缓存, 查不到的情况下再查数据库,然后把数据库中的内容放到缓存中。瓶颈:瓶颈在于tomcat的性能,一般并发可以,面临海量并发冲击,tomcat就显得…...
【AI 绘画】 文生图图生图(基于diffusers)
AI 绘画- 文生图&图生图(基于diffusers) 1. 效果展示 本次测试主要结果展示如下: SDXL文生图 可爱Lora 2. 基本原理 模型基本原理介绍如下 stable diffusion首先训练一个自编码器,学习将图像数据压缩为低维表示。通过使…...
已解决HarmonyOS模拟器卡顿问题
以下是一些可以尝试用来解决 HarmonyOS 模拟器卡顿问题的方法: 一、检查系统资源占用 关闭不必要的后台程序 在电脑上,通过任务管理器(Windows 系统中按 Ctrl Shift Esc,Mac 系统通过活动监视器)查看并关闭占用大量 …...
C++ | 深入理解C++中的特殊类设计和单例模式(懒汉模式、饿汉模式)
目录 特殊类设计和单例模式 1、不可拷贝类 2、只能在堆上创建对象的类 3、只能在栈上创建对象的类 4、不可继承的类 5、单例模式(懒汉模式、饿汉模式) 特殊类设计和单例模式 在C编程中,类的设计往往需要满足特定的需求和约束。特殊类设计模式提供了一种方法来…...
Java设计模式之中介者模式
Java设计模式之中介者模式 在软件开发中,设计模式是解决常见问题的最佳实践。通过运用设计模式,我们可以提高代码的可维护性、可扩展性以及可读性。今天,我们将探讨一种非常重要的行为型设计模式——中介者模式(Mediator Pattern…...
实现父组件调用子组件方法时报错:[Vue warn]: Invalid vnode type when creating vnode: null.
使用uniapp实现父组件调用子组件方法时报错:[Vue warn]: Invalid vnode type when creating vnode: null. 实现代码如下: 子组件: <template><view><view class"toolsHeader"><view class"toolsTitl…...
Java面试八股之什么是消息队列
什么是消息队列 消息队列(Message Queue)是一种应用程序间通信(IPC)的形式,它允许进程将消息发送到另一个消息队列,接收端则可以在任何时刻从队列中取出这些消息进行处理。消息队列提供了一种异步处理、解…...
【kubernetes】k8s配置资源管理
一、ConfigMap资源配置 ConfigMap保存的是不需要加密配置的信息 ConfigMap 功能在 Kubernetes1.2 版本中引入,许多应用程序会从配置文件、命令行参数或环境变量中读取配置信息。ConfigMap API 给我们提供了向容器中注入配置信息的机制,ConfigMap 可以被…...
高分六号卫星助力农业监测_卫星介绍_论文分享_数据获取
卫星遥感已经成为农业发展的重要支持工具。《“数据要素X”三年行动计划(2024-2026年)》指出,在现代农业交通运输、应急管理等领域鼓励探索利用遥感数据。为什么高分六号会经常应用于农业检测呢?本文将介绍高分六号卫星的农业检测特性、在农业应用中的优势、具体农业…...
【Linux网络】TCP协议
欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 文章目录 引言1、TCP协议的特点2、确认应答机制3、超时重传机制4、TCP报头结构5、三次握手建立连接6、四次挥手断开连接总结 引言 TCP协议是传输层中非常重要的协议。本篇博客我们将从TCP头部信息、TCP状态转…...
Linux 基本指令讲解 上
linux 基本指令 clear 清屏 Alt Enter 全屏/退出全屏 pwd 显示当前用户所处路径 cd 改变目录 cd /root/mikecd … 返回上级目录cd - 返回最近所处的路径cd ~ 直接返回当前用户自己的家目 roor 中:/root普通用户中:/home/mike mkdir 创建一个文件夹(d) …...
企业网站建设费怎么账务处理/百度推广后台
一、概述 Java是天生就支持并发的语言,支持并发意味着多线程,线程的频繁创建在高并发及大数据量是非常消耗资源的,因为java提供了线程池。在jdk1.5以前的版本中,线程池的使用是及其简陋的,但是在JDK1.5后,有…...
保定做网站/成功品牌策划案例
题目链接 戳我 \(Solution\) 观察发现如果一个数两边都比他大,删掉他可以保证最优,这个应该是显然的。这个东西用单调栈维护一下,最后剩下的就是个单调递减或单调递增的数列,从小到大排个序取前面\(n-2\)个,\(n\)为数列长度 \(Cod…...
社交网站开发公司/如何利用网络进行推广和宣传
lxml是Python中与XML及HTML相关功能中最丰富和最容易使用的库。lxml并不是Python自带的包,而是为libxml2和libxslt库的一个Python化的绑定。它与众不同的地方是它兼顾了这些库的速度和功能完整性,以及纯Python API的简洁性,与大家熟知的Eleme…...
企业建网站计什么科目/百度关键词搜索热度
点击上方 “ 布衣码农 ” ,免费订阅~选择“ 设为星标 ”,第一时间免费获得更新~「布衣码农」管程是java多线程的核心理念。在Java中,与线程通信相关的几个方法,是定义在Object中的,大家都知道Object是Java中所有类的超…...
做网站备案时间/免费的网络推广渠道有哪些
这篇文章主要介绍了MySQL修改时区的方法,总结分析了三种常见的MySQL时区修改技巧,包括命令行模式、配置文件方式及代码方式,需要的朋友可以参考下 方法一:通过mysql命令行模式下动态修改 1.1 查看mysql当前时间,当前时区 > select curtime(); #或se…...
网站栏目模版/做app找什么公司
最终从几个方面解决了问题:ISA服务器:删除ISA服务器上的几条非网卡的网关的persistent routes, 修改网络连接顺序:网络连接〉高级〉高级设置〉适配器和绑定的内部网连接移到第一个。 重新开启计算机发现网络连接启动时间大大缩短…...