数据通信——OSPF高级特性

引言    

    之前讲过的是OSPF简单特性,理解起来很简单,但是OSPF协议深层很全面,可以说,如果懂了OSPF协议,相当于链路状态协议也能一通百通了。下面是一些重点注意事项和知识点。

    1.在大型网络中,OSPF的SPF计算中的Cost值要保证其计算一致性,防止百兆与千兆带宽的计算结果对比。

    2.挂靠在区域0和区域X之间的路由器是ABR,其中里面有两个表(含有区域0和区域X的路由信息),因此可以进行路由互导(将区域0的路由器给予区域X,ABR可产生3类LSA)区域间路由也可以汇总,减少区域间路由传递数量。

    其中ABR分为真ABR和假ABR

    真ABR:邻居关系FULL;假ABR:邻居关系没有到达FULL且只是把接口宣告进了Area 0

注:LSA仅能在FULL下传播,TWO-WAY是交互hello,FULL下可交互所有报文

    3.在MA网络中,DR仅有一个,BDR可以没有,其余R为DR other。选举比较OSPF接口优先级,接口优先级默认为1。接口优先级高则为DR否则比较RID,大的优先。DR other会维持在TWO-way,DR与BDR建立FULL。传递LSA给DR和BDR

注:DR的选举是基于MA网络,它是接口的概念,而不是基于区域。

    4.DD报文会在发送时携带一个序列号SN,当接受的路由器收到后会回复一个相同的序列号表示已经收到了。

    5.LSU中包含完整LSA而DD报文和LSR都是携带LSA的报头。LSACK也可做确认表示收到了LSA

    6.OSPF中,hello报文包含的东西很多,hello之间还要进行协调。hello报文中包含:version number :版本号(hello版本号需要一致);Router ID:路由器ID(不能冲突);Hello与dead时间(要一致,4倍时间关系);认证,(认证要相同)

一,OSPF特点总结

OSPF工作原理属于IGP,是链路状态协议,端口号89,华为的OSPF的默认管理距离为10(域间管理)外部管理距离为150。思科则为110。采用SPF算法,可以快速响应网络变化并进行信息的同步。支持负载分担,触发式更新

二,OSPF的状态

    运行OSPF时,除了骨干区域外,还有常规区域,STUB区域,NSSA区域,他们都为非骨干区域。 

    Hello报文中有一个字段option。其中有两个参数N和E。

    N位:只在Hello数招包中使用(即在hello包里代表N位)代表nssa区城。N=1表明路由器支持7类LSA。N=0表明该路由将不接收和发送NSSA LSA

     E位:当始发路由器具有接收OSPF区域外部LSA AS external LSA)能力时,该置位位。

    当处于常规区域的时候,N会变为0,E为1;当为Stub区域时,E为0,N为0;若为NSSA区域时,E为0,N为1.不同的类型区域发送的hello报文时option不一样。因此交互的时候,区域要一致,不能混用。(后面会提到NSSA和STUB)

    建立完TWO-Way以后,完成了DR和Bdr的选举,开始通过DD报文进行主从的选择,通过Master控制Slave。其中需要考虑MTU一致性检测,一旦开启MTU,会停在Exstart状态。

    为什么要选举主从?因为OSPF基于IP协议工作的,它无可靠的传输能力,需要DD报文选举主从达到一种有序性,可靠性的发送。

OSPF一共有8种状态

Down:路由刚被宣进到接口,还无任何报文的发送与接收。

attempt:它工作在NBMA网络中,NBMA网络不支持组播报文发送,仅支持单播,这就需要进行目的接口在NBMA网络中运行OSPF的环境下更改peer,指定hello的发送。

init:单方面通,我通过邻居的路由器获取到了Hello报文,但是在我的neightbor字段中没有我的路由器ID,意味着我发送的报文不知道它能否接受到,但我能收到它的报文。

Exstart:DD报文确定master,master包含路由器ID,谁的RID大,谁就是master,DD报文有三个字段状态:flags(每个报文都有),flag变为1(当我是master时)flag变成0x7(发出报文告诉所有路由器我是master),当发现老大,其余成为slave,并映射master序列号。

Exchange:master主动向对方发送带有LSA的DD报文,随后进行确认,完成所有DD报文交互。

loading:LSR,LSU,LSack交互。

full:完成LSDB数据库同步

    为了防止LSA泛红发送导致广播风暴,因此通过比较LSA的新旧来选择LSA,如果没有,LSA则请求并接受,若有新的LSA到来则比较序列号,大的序列号优先。新的会接受后并进行同步。如果我的LSA更好则会进行反向同步(把我的LSA给你)LSA一样则丢弃,避免环路。序列号最小为0X80000001最大为0x7FFFFFFF

三,OSPF的LSA

ospf有11种LSA,其中8—11种不常用,剩下需要知道

一类LSA:Router LSA(路由器LSA)

二类LSA:Network LSA(网络LSA)

三类LSA:Summary LSA(汇总LSA)

四类LSA:Summary LSA(汇总LSA)

五类LSA:Autonomous System external LSA(自治系统外部LSA)

六类LSA:multicast OSPF LSA(组播LSA)

七类LSA:defined for not-so-stubby Areas Lsa(非末节区域LSA)

3.1 关于OSPF链路分类

我宣告的接口以链路来实现。一类是骨干链路,一类是stub链路

其中骨干链路分为:

TransNet——选择了DR和BDR

P-to-P——点到点链路

Virtual——虚链路

    P-to-P——点到点链路:它需要两个链路来描述,如果R1-R2连接中仅使用serial线也就是PtoP链路仅在骨干链路中描述的话无法了解整个网络路由情况。因此需要Stub-Link一起计算。

(PtoP是拓扑的连接信息,而Stub-Link用来做路由计算)

    但是TransNet不行,他仅有本机自身连接网络的接口的地址和DR的接口地址。针对整个网络而言,1类网络太垃圾,不能描述整个MA网络的信息,需要其他的LSA配合。

3.2 Link state ID和Adv Router

Link state ID(它是LSA的名字),Adv Router(始发者路由器ID)

1类LSA的Link state ID和Adv Router均为始发者路由器ID

2类LSA的Link state ID为DR接口的IP地址,Adv Router为DR的路由器ID

3类LSA的Link state ID为路由前缀,Adv Router是ABR的RID

4类LSA的Link state ID为ASBR的路由器ID,Adv Router为ABR的RID(它的内容仅有该ASBR的路径度量值)

5类LSA的内部包含了三个重要字段:Tag标记,Forwarding Address(FA地址)和Metric Type

    Tag——一个数字,作用是为了可以抓取外部路由

    Metric——度量值类型(以0和E来标识:当为0和E2时为二类度量值类型,表示内部度量值不会再累加;当为0和E1为一类度量值类型,表示内部度量值还会累加;后者优先级高于前者,0E2先对比外部度量值,一样的话则比较内部,小的优先。0E1比较度量值之和,0E1整体优于0E2,但是通常默认为0E2。)

    FA地址——远程下一跳(5类LSA携带FA地址,但是有三个条件:1.ASBR要把连接下一跳的外网接口宣告进OSPF;2.接口的OSPF网络类型不能为PtoP;3.接口不能为被动接口)

    如果我想要下一跳地址作为外网,需要FA地址,我将外网地址添加进入FA地址中,并发给其余的路由器。告诉他们想要去外网,发给这个远程下一跳。当然也要看FA是否可达,可达就可用,否则不会添加进路由表。

3.3 一类LSA

    路由器运行OSPF一定产生LSA,而router LSA表示在一个区域中,无论我宣布多少个接口,都只会产生一种LSA;传递范围是该区域的所有路由器;它包含路由器的描述和宣告进区域的所有路由信息区域的接口。

3.4 二类LSA

    DR会产生2类LSA,它们用来配合1类LSA一并告诉其他路由MA网络的情况。2类LSA会根据DR的本机接口的地址产生。它其中包含该MA网络中所有路由器的路由器ID和MA网络中接口的掩码。它在与DR所在一个区域的路由器都可以接收到,根据2类LSA会形成MA网络拓扑信息。但仍无法通过ABR前往其他区域。

3.5 三类LSA

    我通过了1类和2类LSA的描述后计算出了整个区域的网络信息。但是区域外的信息仍然不可获知,这个时候ABR是连接多区域的设备。这时3类LSA就是做这个用的。我收集到一个区域的1,2类LSA会形成Area1的路由并汇总成3类LSA并传递给Area0。3类LSA由ABR产生

它包含一条完整的区域间路由

    首先Area0会先找到ABR并判断是否可达(通过查询3类LSA到达时看ADV Router的路由器ID)。当Area2接收到Area1的3类LSA时,要经过ABR2,但Area1的ABR1并不是Area2的查找范围。因此,ABR2会修改ADV Router的路由器ID为自身这样告诉Area2想要访问Area1必须经过ABR2,而ABR2又是Area2可查到的。(每换一台R,它的ADV Router都会改为自身ABR的路由器ID)当跨区域传递时,4类LSA要更换为自身的路由器ID告诉该区域路由器去往ABR1的话要经过ABR2)

3.6 四,五类LSA

    5类LSA包含外部路由,它由ASBR产生。ASBR既连接OSPF也连接其他协议,它将其他协议的R强行引入OSPF。因此通过5类LSA通告,但里面不携带拓扑信息。5类LSA包含外部路由。它告诉其它路由器,想要访问外部网络,拿我做远程下一跳。5类LSA不会更改路由器ID,但是如何让其他区域知道5类LSA的信息呢?

    这时需要4类LSA。它会一并跟ASBR所在的同一区域的ABR产生。它包含ASBR的身份信息和位置信息。4类LSA发给其它不知道ASBR的区域。让他们知道ASBR的存在和位置信息。

四,OSPF矢量图

OSPF的矢量图分为:

节点、连接、树叶

    节点路由器节点(Router Node)、设备节点(Stub Node)

路由器节点只有在一个区域内的路由器会发现;设备节点在连接设备时会发现

    连接骨干连接、Stub连接

    树叶3类LSA区域间路由,5类LSA外部路由(5类LSA挂靠时要先知道ASBR在哪个ABR上面,之后再挂靠在ASBR上)

但以上如何形成路由条目呢?

    先画出路由器节点(Transit节点),生成一个最短路径树。之后画Stub节点,将其挂靠在最短路径树上(我只关心我去哪,不关心谁到自己这里)

LSA重要字段

PtoP邻居路由器ID该网段上本地接口IP地址
TransNetDR接口IP该网段上本地接口IP地址
StubNet该Stub网段上的IP网络地址该Stub网段上的网络掩码
virtual虚连接邻居的路由器ID去往虚链邻居的本地接口IP地址

五,ISPF与PRC

早期在运行OSPF时采用SPF算法,但在后续的计算中逐步采用了ISPF和PRC算法

    iSPF:增量型SPF(当我的OSPF所处环境发生变化时,这时OSPF的树型结构受到影响,会重新计算树型结构图,消耗CPU极大)

    PRC:部分路由计算(当我更改了路由条目后,但环境无变动,这时会进行PRC计算,消耗极小)

    一个区域内的链路状态协议不太会出现环路,但是多个区域之间的通信会出现。单区域无法汇总,也不要只做一个区域(避免SPF的大量计算)

    它们的优点为每30分钟一次的LSA泛洪扩散不会让SPF算法重计算。而且仅会对变化的拓扑计算而不是整体。当路由发生变化时PRC会查看并更新(如果路径和树无变化时)它对3类LSA与5类LSA会重计算

    避免大量使用ISPF算法,区域内的树形结构更改,ISPF要计算;但区域外要更改,区域内树型无更改则用PRC。LSA的一类与二类执行ISPF三类、四类执行PRC。

    3类LSA所产生的优先级一定低于1类2类LSA所产生的路由。因为3类LSA无法保障端到端时无环的,仅能保障区域内是无环的。

    在Area0中有Full邻居的ABR在关于3类LSA防环的时候。ABR会先通过非骨干区收到3类LSA,这些LSA不能设置成Routing bit 也不能传递给任何其他的OSPF邻居。

六,LSA在虚链路中

    当我建立了虚链路时,LSA的传递怎么办呢?

    内网OSPF合并——多个不连续的Area0——远离Area0非骨干区域——双OSPF进程重分发——Tunnel Source——Tunnel接口自身也要有个IP地址(不过TUNNEL麻烦,直接用虚连接)。它仅用于常规区域如:stub,totally stub NSSA和Totally NSSA均不适用。只有在树型结构中看不到对端路由器时,虚连接才会down。一般设置在Area0的边界路由器上。

    比如以下区域:A0-A1-A2-A3-A4,如何通过虚连接让A4路由去往其它区域?

    在两个ABR之间做虚连接可以跨区域访问,且不需要必须挂靠在A0,但它会出现环路,尤其是在区域间汇总的时候。我们支持汇总,但是虚连接后要么不要进行汇总,要么做等量的汇总。

 虚连接出现环路(如下解释)

解释:当R5访问Area0的R3,就会出现以下路径

R5—R4—R2—R1—R3

但R3访问R5时

R3—R1—R2—R3。。。

出现路环路,因此如何避免区域间环路的形成呢?

很简单!将区域间路由优先级设计成低于区域间或者抑制3类LSA的传递,最好使用星形拓扑设计。

七,OSPF拓扑图

OSPF采用了树形结构算法(我只关心自己去往其它路由的路径)

树形拓扑图中含有以下内容:树根、树干、树枝、树叶

树根:路由器节点

树干:OSPF邻居与其它路由器建立的链路为树干(骨干链路)

树枝:路由器连接stub节点为树枝(这个是在我没有建立OSPF邻居,但是宣告了OSPF)

树叶:他所在区域内的其他路由可以获取,但想获取其他区域的路由器和外部路由器需要建立在路由器节点上(先把ASBR挂靠在ABR上,再把其他区域通过ASBR连入)

OSPF拓扑图有三种链路:

Stub链路、点到点、骨干链路

    骨干链路:骨干链路有能力转发既不是本网段产生的,也不以本网段为目的地的路由。有至少两台路由器的广播型网段或NBMA网段就是一种骨干链路网段。

    PtoP链路:其两端的地址不一致仍可通信,因为有peer neighbor—route 它将双方生成的32位主机路由通告给双方,因此会有一个配好的路由和32位主机路由。

    树形结构生长规则:从树根生长起,本地路由器节点(一个树仅有一个根);只往外长,不往回长;随后长树干,然后是树枝,最后是树叶。执行树形结构计算时按照先看1类2类LSA后看3类4类5类LSA进行;树干有多个时,优先生长最短的树干,如果没有可以找到的则在候选列表中找(找里面最长的)如果一样就全部选中。

以上也分为两个阶段:

一阶段:计算Transit节点,忽略stub节点生成一个最短路径树。

二阶段:只计算stub节点,将stub网段挂到最短路径树上区,先从自身始发的1类LSA根据开销查找。

八,OSPF网络类型

    当一个接口宣入到OSPF,就会产生一种网络类型。决定我们是否选择DR/BDR的是由OSPF决定的,而且由OSPF中的网络类型决定。比如:以太网链路,采用OSPF由广播类型(默认的)你要选择DR/BDR;用serial链路采用OSPF,由点到点类型决定不选择DR/BDR。

    OSPF网络类型有6种:loopback,broadcost,NBMA,ptop,PtoMP和PtoM NBMA(华为仅有四种,少了loopback和PtoM NBMA)。

其中以上前四种都有接口自动配制好类型,后两种无任何接口默认对应,宣告后不会看到。

(1)loopback:它仅能对应环回口,它应用很窄,常在做连通性测试和辅助更高级的协议中使用。几乎没有通过环回口连接路由邻居,不涉及邻居建立和传输问题,其他类型接口无法使用它。不过OSPF会认为环回口为一个末节节点,你无论配多少个掩码,通告路由时都以32位主机形式通告。

(2)Broadcast:它建邻居允许发送组播报文(224.0.0.5)也就是可自动建邻居。邻接关系数量无限制(Hello时间,dead时间为1:4)传送路由时,在该网络中,无论R如何传递,cost仅累加一次,无论R如何传递,下一跳都将保持信源接口地址。

   :在大部分广域网或VPN环境中,常采用DMVPN或DSVPN,它是Hub&Spoke星型结构,它会选出一个DR而无BDR,这时上述传路由特点不复存在(spoke—hub—spoke这样的结构,它的cost值不会累加,下一跳为中转者路由器地址)。

(3)NBMA:应用少,但是它的用法和BroadCast几乎完全一致,仅两点区别:

1.不支持组播发送,必须指定相应的IP地址,然后发送单播Hello(但华为要双方都建立Peer邻居,随后才能互相建立联系)。

2.建立时间慢,是BroadCast的3倍时长。

注:NBMA和Broadcast可以兼容,网络类型兼容参考于是否要DR/BDR来判断是否可以建立邻居(要注意Hello时间一致)。

(4)点到点:(用的多)允许组播hello发送,建立邻接关系仅能有一个且无DR/BDR。

(5)点到多点:支持组播,且无邻接关系数量限制,无DR/BDR。传递路由时会有自身接口IP地址对应的/32位主机路由形式通告;点到多点的cost值会累加,下一跳位hub接口地址。

(6)点到多点NBMA:它仅不支持发送组播Hello,其余和点到多点相同。

九,OSPF协议的NSSA和Stub

OSPF有两个区域——骨干区域和非骨干区域

    首先从广义的角度讲,包括STUB,TOTALLY STUB,NSSA在内OSPF AREA都是为了通过减少不同种类的LSA扩散而达到节约内存资源的目的。

    非骨干区域中有3个类型(默认为常规区域),可以把它们设置成Stub和NSSA,那为什么不用常规区域呢?

    答:一般情况下,非骨干区域去往外网或者其它网段时候仅有一条路径(一台ABR)为了优化其数据库和路由表则可以通过NSSA和Stub修改。当外网访问时候,ABR会阻止从外到内的流量的进入,也就是4,5类LSA,取而代之的是向区域内部传送指向自身路径的3类LSA,当内部设备访问外部网络时,通过给ABR发送数据以完成访问。

NSSA次末节区域:非骨干区域才能设置(非Area0区域)该区域所有的路由器都要为NSSA

Stub末节节点:非骨干区域才能设置(非Area0区域)该区域所有的路由器都要为Stub

Nssa和Stub区别

    虽然它们都会过滤4,5类LSA,但是Nssa不会下放默认路径,原因为Nssa中有出口会导致冲突(ABR和ASBR都会有下方默认路径)

    在思科设备中:如果想NSSA的ABR下放默认,敲命令就好,有无默认路由无所谓;但在NSSA的ASBR上下方默认,不止命令还要保障有默认路由

    在华为设备中:华为的NSSA中ABR会主动下放默认路由,ASBR也要下放,因此要处理cost等问题

因此不建议NSSA有多个ABR

    NSSA好在出口位置允许在内部,但Stub不允许在。如果你想减少LSDB等信息,不需要用ASBR设立,你可以将它升级成Totally NSSA(仅需要ABR部署)

    ABR会过滤从外到内的3,4,5,类LSA,除了外部路由,区域间也过滤,过滤后ABR会主动下放默认3类LSA以此完成区域间访问(Totally Nssa也是这样)

Stub区域禁止5,7类LSA

在Hello中有个Option字段其中有E和N

E1代表该区域允许5类LSA,N0代表非NSSA区

    在Stub区域中,R交互Hello时,E和N都为0,如果没有统一的设置为Stub,就会出现问题。Two-way都无法完成。E有0也代表不能产生5类LSA的ASBR。因此边界不能设置为Stub区域。Stub中也不能有Virtual Link

    不规则区域中,比如:Area0——Area1——Area0导致Area0之间无法通信。Area0——Area1——Area2导致Area0和Area1收不到Area2因此采用OSPF设定的Virtual link它仅属于Area0区域的延伸且是点到点。但它是临时解决方案,因为会导致有环路。(一般网络合并的时候会出现虚连接的使用)

    如果Stub区域中有两个ABR其实没必要用Stub了,设置Stub就是为了用默认路由代替明细路由,但有两个ABR了,有路可选择,很显然就是用明细路由(也可以做,但是不好)

    Stub可以说升级,不仅去往外网,也可去往其他区域,Totally Stub(完全末节节点)它解决了Stub优化问题。Stub拿到了ABR的3类LSA完成了外网和区域间路由的联系。但其它普通的Stub仅到外网用默认访问网段还是明细路由。将ABR设置为Totally stub它会过滤3,4,5类LSA。Stub内部仅有1,2类,对外区域由3类默认ABR做到。(注:我仅限制从外到内的LSA)

    NSSA区域中的Hello的Option E0和N1,NSSA中的ASBR无论什么情况,只要做到了重分发,它都会拿他宣告进OSPF的环回口或物理接口地址做FA地址,并通告7类LSA。

7类LSA区域内传递,但其它区域如何获得呢?

    7类LSA无法跨区域传送,因此在ASBR中找到ABR当作转换器,它必须是NSSA区域中的ABR(真伪ABR都可)它负责将7类转化为5类LSA形式发送给其他区域(谁的RID大谁就做转换器;其中7—5类LSA转化是等价的)但ADV router会改变区域口和其它区域收到的5类LSA,他们会认为是转换器(ADV router改为自己)发的,但其实不是。因此7类LSA要带FA地址,告诉它们想访问外网的话,下一跳跳给我。因此易产生次优路径和环路。

    何时把非骨干区域设成Stub或者NSSA?一个前提:区域内的路由器老龄化性能一般,区域内只有一台ABR从内到外的选路基本无空间,这时可升级为Stub和NSSA用3类LSA取代路由,以此减少消耗。

 找到的这个图很不错

后续

OSPF在此就结束了,知识点很多,毕竟是链路状态协议的经典代表,这些知识点后续的实验中会用到。但是最重要的是,实际面对问题的时候,使用OSPF前要考虑到OSPF的特性是否可以解决客户问题,配置过程中是否会出现特殊情况等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1380865.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

第10集丨Vue 江湖 —— 表单输入绑定

目录 一、v-model1.1 基本用法1.2 值绑定1.3 修饰符1.3.1 .lazy1.3.2 .number1.3.3 .trim 二、总结2.1 案例2.2 效果 一、v-model 1.1 基本用法 功能&#xff1a; v-model指令在表单 <input>、<textarea> 及 <select> 元素上创建双向数据绑定。它会根据控件…

R爬取新浪财经网的股票数据

使用到的包是RCurl,通过这个包可以做一些网页讯息的抓取 先通过新浪财经的入口,选一只感兴趣的股票,再点击左边行情走势下的历史交易得到历史交易数据 常用的浏览器可以打开网页讯息的源代码: 首先读取包并用,读取该网址的信息,并按行对信息进行切割: library(RCurl) t…

本杰·格拉汉姆选股策略

转 本杰明格拉汉姆选股策略 第一部分&#xff1a;投资哲学 价值投资方法已为个人投资者和专业投资经理人员所广泛运用。此方法是在60年前&#xff0c;随着格拉汉姆和多德的大学教科书《证券分析》的发表而问世的&#xff0c;格拉汉也因此被誉为价值投资之父&#xff0c;重温一…

金融科技之交易:动量效应选股策略

金融科技之交易&#xff1a;动量效应选股策略 策略内容&#xff1a;代码整理角度计算标准化处理数据准备回归线的斜率两点连线的斜率由斜率计算角度计算模块的整合 绘制叠加图UI界面控件&#xff1a;QLabelQLineEditQPushButtonQComboBoxQTableWidget 信号与槽函数选择目标股票…

量化投资:研报文本挖掘选股策略

核心观点: ●借力研报&#xff0c;打造开放的量化选股模型 传统的多因子量化选股模型是封闭的&#xff0c;缺乏捕捉市场热点的能力&#xff0c;通过大数据技术&#xff0c;从财经媒体和分析师研报中捕捉热点和政策的变化&#xff0c;可以打造开放的量化选股模型。 分析师个股…

Pytorch源码搜索与分析

PyTorch的的代码主要由C10、ATen、torch三大部分组成的。其中&#xff1a; C10 C10&#xff0c;来自于Caffe Tensor Library的缩写。这里存放的都是最基础的Tensor库的代码&#xff0c;可以运行在服务端和移动端。PyTorch目前正在将代码从ATen/core目录下迁移到C10中。C10的代…

利用Python+Gephi生成刀塔霸业棋子关系图

刀塔霸业版本&#xff1a;2019年7月24日 Gephi下载地址&#xff1a;Download 目录 代码 Gephi效果图 词云图 更新 代码 代码如下&#xff1a; # -*- coding: utf-8 -*- """ author: d0t4 date: 2019/7/29 desc: 生成刀塔霸业中各棋子的关系…

用狼的处世哲学做SOHO 一

分享一下我老师大神的人工智能教程&#xff01;零基础&#xff0c;通俗易懂&#xff01;http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章。分享知识&#xff0c;造福人民&#xff0c;实现我们中华民族伟大复兴&#xff01; &#xff0d;&#xff0d;创业者要有象狼一…

P450进阶款无人机室内定位功能研测

在以往的Prometheus 450&#xff08;P450&#xff09;无人机上&#xff0c;我们搭载的是Intel Realsense T265定位模块&#xff0c;使用USB连接方式挂载到机载计算机allspark上&#xff0c;通过机载上SDK驱动T265运行并输出SLAM信息&#xff0c;以此来实现室内定位功能。 为进…

autocad全国计算机考试试题,2015年职称计算机考试试题:AutoCAD模拟题及答案

1. 画完一幅图后&#xff0c;在保存该图形文件时用_______作为扩展名。 A.cfg B.dwt C.bmp D.dwg 2. 要始终保持物体的颜色与图层的颜色一致&#xff0c;物体的颜色应设置为_______。 A.BYLAYER B.BYBLOCK C.COLOR D.RED 3. 在屏幕上用平移“PAN”命令将某图形沿X方向及Y方向各…

LibreCAD windows 编译

一、安装 VS2019&#xff0c;QT&#xff0c;QT VS 插件 二、boost下载 下载boost_1_71_0-msvc-14.2-64.exe文件(含源码和编译好的库) Boost C Libraries - Browse /boost-binaries/1.71.0 at SourceForge.netFree peer-reviewed portable C source librarieshttps://sourcef…

VBA for AutoCAD

Download the Microsoft Visual Basic for Applications Module (VBA) 2016 Downloads AutoCAD 2016 VBA module 32-bit (exe - 70206Kb)

cad.net开发

最近要做一个cad文件的7参数坐标转换的程序&#xff0c;想基于cad进行二次开发&#xff0c;初次学习。 为了方便快捷开发&#xff0c;基于cad.net进行二次开发&#xff0c;网上查了很多资料&#xff0c;有基于acad等各种&#xff0c;总是遇到这样那样的问题&#xff0c;经过自…

2022年03月 C/C++(一级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题&#xff1a;双精度浮点数的输入输出 输入一个双精度浮点数&#xff0c;保留8位小数&#xff0c;输出这个浮点数。 时间限制&#xff1a;1000 内存限制&#xff1a;65536 输入 只有一行&#xff0c;一个双精度浮点数。 输出 一行&#xff0c;保留8位小数的浮点数。 样例输…

Michael.W基于Foundry精读Openzeppelin第24期——ERC165Storage.sol

0. 版本 [openzeppelin]&#xff1a;v4.8.3&#xff0c;[forge-std]&#xff1a;v1.5.6 0.1 ERC165Storage.sol Github: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/utils/introspection/ERC165Storage.sol ERC165Storage合约是ERC165…

【Java学习】System.Console使用

背景 在自学《Java核心技术卷1》的过程中看到了对System.Console的介绍&#xff0c;编写下列测试代码&#xff0c; public class ConsoleTest {public static void main(String[] args) {Console cs System.console();String name cs.readLine("AccountInfo: ");…

React UI组件库

1 流行的开源React UI组件库 1 material-ui(国外) 官网: Material UI: React components based on Material Design github: GitHub - mui/material-ui: MUI Core: Ready-to-use foundational React components, free forever. It includes Material UI, which implements Go…

【网约车】 网约车管理解决方案

背景 自2014年7月以来&#xff0c;一些互联网企业陆续推出网络预约出租汽车服务&#xff0c;对于满足社会公众多样化、差异性出行需求发挥了积极作用。面对新一代信息技术的发展与相关行业的快速渗透&#xff0c;行业监管部门要顺应新技术和新应用的发展趋势&#xff0c;从促进…

Python实现微信小程序自动约车

目录 一、Fiddler抓取小程序包 二、分析抓到的包 一、获取全部车辆列表 二、获取班车停靠点 三、Python实现预约车辆 一、获取明天的日期 二、获取班车id 三、获取车辆停靠点 四、Server酱实现消息提示 四、利用宝塔面板&#xff0c;进行定时执行脚本&#xff0c;实现自动约…

微信小程序汽车租赁平台+后台管理系统

《微信小程序汽车租赁平台后台管理系统》该项目含有源码、论文等资料、配套开发软件、软件安装教程、项目发布教程等 本系统包含微信小程序做的汽车租赁前台和Java做的后台管理系统&#xff1a; 微信小程序——汽车租赁前台涉及技术&#xff1a;WXML 和 WXSS、JavaScript Ja…