OSPF路由協議

隨著Internet技術在全球范圍的飛速發展,OSPF已成為目前應用最廣泛的路由協議之一。OSPF(Open Shortest Path First)路由協議是由IETF(Internet Engineering Task Force)IGP工作組提出的,是一種基于SPF算法的路由協議,目前使用的OSPF協議是其第2版。

OSPF 概述

OSPF的特性及術語

OSPF的特性

OSPF(Open Shortest Path First,開放最短路由優先協議)是一種典型的鏈路狀態路由協議。在 IP 網絡上,它通過收集和傳遞自治系統的鏈路狀態來動態地發現并傳播路由。采用OSPF的路由器彼此交換并保存整個網絡的鏈路信息,從而掌握整個網絡的拓撲結構,獨立計算路由。因為RIP路由協議不能服務于大型網絡,所以,IETF的IGP工作組特別開發出鏈路狀態協議——OSPF。OSPF作為一種內部網關協議(Interior Gateway Protocol,IGP),用于在同一個自治系統中的路由器之間交換路由信息。
OSPF的特性如下:
(1)快速收斂;
(2)能夠適應大型網絡;
(3)能夠正確處理錯誤路由信息;
(4)使用區域,能夠減少單個路由器的CPU負擔,構成結構化的網絡;
(5)是無類別的路由協議,完全支持CIDR和VLSM;
(6)支持多條路徑等價負載均衡;
(7)使用組播地址來進行信息互通,減少了非OSPF路由器的負載;
(8)使用路由標簽來表示來自外部區域的路由;
(9)支持簡單口令和MD5認證;
(10)OSPF路由協議的管理距離是110;
(11)OSPF路由協議采用開銷(Cost)作為度量標準。

術語

(1)鏈路(Link):鏈路就是路由器用來連接網絡的接口。
(2)鏈路狀態(Link State):用來描述路由器接口及其與鄰居路由器的關系。所有鏈路狀態信息構成鏈路狀態數據庫。
(3)最短路徑優先(SPF)算法:SPF算法是OSPF路由協議的基礎。SPF算法有時也被稱為Diikstra算法,這是因為最短路徑優先算法是Dijkstra發明的。利用SPF,路由器獨立地計算出到達任意目的地的最佳路由。
(4)區域(Area):指有相同的區域標志的一組路由器和網絡的集合。在同一個區域內的路由器有相同的拓撲結構數據庫。
(5)自治系統(Autonomous System):采用同一種路由協議交換路由信息的路由器及其網絡構成一個自治系統。
(6)成本(Cost):也稱為鏈路開銷,用來描述從接口發送數據包所需要花費的代價帶寬越大,開銷越小。成本的計算公式為: 1 0 8 / 帶寬( b p s ) 10^8/帶寬(bps) 108/帶寬(bps,帶寬是接口下使用bandwidth命令設置的值。例如,默認情況下,快速以太網的帶寬為100Mbps,所以開銷是1。
如結果出現小數,會舍棄小數部分取整(如果整數部分為0,則Cost記為1)
(7)鄰接(Adjacencies):路由器之間以交換路由信息為目的而建立起來的一種關系。
(8)鏈路狀態數據庫(Link State Database):代表網絡的拓撲結構,其中包含了網絡中所有的路由器的鏈路狀態信息。在一個區域內的所有的路由器有著相同的鏈路狀態數據庫。
(9)拓撲結構數據庫(Topological Database):也叫鏈路狀態數據庫。
(10)轉發數據庫(Forwarding Database)/路由表(Routing Table):每個路由器對自己的拓撲結構數據庫運行SPF算法得出的路由條目,每臺路由器的路由表是不相同的。

鄰居及鄰接關系

OSPF網絡類型

根據路由器所連接的物理網絡不同,OSPF將網絡主要劃分為四種類型:廣播多路訪問(Broadcast Multi Access,BMA)型、非廣播多路訪問(None Broadcast Multi Access,NBMA)型、點到點型(Point-to-Point)、點到多點型(Point-to-MultiPoint)。

網絡類型確定性特性是否選舉DRHello間隔/sDead間隔/s
廣播多路訪問Ethernet1040
非廣播多路訪問Frame Relay、X.2530120
點到點PPP、HDLC1040
點到多點管理員配置30120

Hello協議

在網絡中,OSPF路由器可以周期性發送Hello包來建立和維持鄰接關系。管理OSPF的Hello包交換的規則稱為Hello協議(Hello Protocol)。Hello包的發送周期與OSPF網絡類型有關。當Hello包中的幾個字段的內容互相一致時,相鄰的OSPF路由器才有可能形成Neighbor關系,Neighbor保存在 Neighbor表里。Hello協議的目的如下:
(1)用來發現OSPF Neighbor;
(2)Hello包包含了多個需要OSPF路由器協商的參數,以形成Neighbor的關系;
(3)可以用來維持鄰接關系;
(4)用來確定DRBDR路由器的選擇。盡管Hello包比較小,但它含有OSPF的報頭。

各個字段的含義如下:
(1)版本:定義所采用的OSPF路由協議的版本。
(2)類型:定義OSPF報文類型,OSPF數據包共有五種。
(3)包長度:定義整個數據包的長度。
(4)路由器ID:路由器的32位長的一個惟一標識符,以IP地址來表示。
(5)區域ID:用于區分OSPF數據包屬于的區域號,所有的OSPF數據包都屬于個特定的OSPF區域。
(6)校驗和:用于標記數據包在傳遞時有無錯誤。
(7)身份認證類型:定義OSPF認證類型。OSPF認證類型有如下3種:
0 表示不進行認證,是默認的類型;
1 表示采用簡單口令認證;
2 表示采用MD5認證
(8)身份認證:包含OSPF認證信息,長為8個字節。
(9)網絡掩碼:指發送接口的網絡掩碼,必須與接收接口的網絡掩碼相同,以確保它
們位于同一個網段中。
(10)Hello間隔:鄰居路由器發送Hello包的周期。
(11)路由器優先級:在選擇DR和BDR時使用,優先級越高,被選為DR或BDR的可能性越大。每個接口上都會有優先級,如果優先級為0時,表示不參加DR、BDR選舉。
(12)失效間隔:路由器在認為其鄰居路由器失效之前等待接收來自鄰居Hello包的時間。默認是Hello間隔的4倍。
(13)指定路由器(DR)和備用指定路由器(BDR):在多路訪問網絡上可能存在多個路由器,為了避免路由器之間建立完全鄰接關系而引起的大量開銷,OSPF要求在區域中選舉一個
DR,每個路由器都與之建立完全鄰接關系。DR負責收集所有的鏈路狀態信息,并發布給其他路由。選舉DR的同時也選舉出一個BDR,在DR失效的時候,BDR 擔負起DR的職責,而且所有其他路由器只與DR和BDR建立鄰接關系,出于這個原因,DR和BDR有它們自己的組播地址 224.0.0.6。當DR和BDR需要發送一個鏈路狀態更新(Link State Update,LSU)時,它會將更新發送給組播地址 224.0.0.5(對應所由路由器),而非DR/BDR路由器將它們的鏈路狀態更新發送到地址224.0.0.6。
(14)鄰居:是與之交換更新以同步數據庫的另一臺路由器。

OSPF狀態

OSPF路由協議依靠5種不同的數據包來識別它們的鄰居,并更新鏈路狀態信息。

類型描述
Type 1:HelloOSPF使用Hello分組建立和維護鄰接關系。在一個路由器能夠給其他路由器分發它的鄰居信息前,必須先問候它的鄰居們。
Type 2:數據庫描述(Database Description,DBD)分組DBD分組不包含完整的“鏈路狀態數據庫”信息,只包含數據庫中每個條目的概要。當一個路由器首次連入網絡,或者剛剛從故障中恢復時,它需要完整的“鏈路狀態數據庫”信息。此時,該路由器首先通過hello分組與鄰居們建立雙向通信關系,然后將會收到每個鄰居反饋的DBD分組。新連入的這個路由器會檢查所有概要,然后發送一個或多個鏈路狀態請求分組,取回完整的條目信息。
Type 3:鏈路狀態請求(Link State Request,LSR)分組LSR分組用來請求鄰居發送其鏈路狀態數據庫中某些條目的詳細信息。當一個路由器與鄰居交換了數據庫描述分組后,如果發現它的鏈路狀態數據庫缺少某些條目或某些條目已過期,就使用LSR分組來取得鄰居鏈路狀態數據庫中較新的部分。
Type 4:鏈路狀態更新(Link State Update,LSU)分組LSU分組被用來應答鏈路狀態請求分組,也可以在鏈路狀態發生變化時實現洪泛(flooding)。在網絡運行過程中,只要一個路由器的鏈路狀態發生變化,該路由器就要使用LSU,用洪泛法向全網更新鏈路狀態。
Type 5:鏈路狀態確認(Link State Acknowledgment,LSAck)分組LSAck分組被用來應答鏈路狀態更新分組,對其進行確認,從而使得鏈路狀態更新分組采用的洪泛法變得可靠。

在OSPF鄰接關系建立的過程中,接口可以處于下面7種狀態之一,并且從Down狀態到FullAdiacency狀態,逐步進行。
(1)Down
沒有收到任何Hello包的時候,或是在DeadInterval中,沒有收到Hello包。
(2)Init
收到第一個Hello包,就進入Init狀態。路由器在建立任何關系之前必須先從一個鄰居路由器那里收到一個 Hello包。
(3)Two-Way
當路由器看到自己的路由器ID在鄰居發來的Hello包里,就宣布與對方進入Two-Way狀態。如果是多路訪問型網絡,就進入DR與BDR選舉的過程。

(4)Exstart
Exstart狀態是用DBD(Database Description,數據庫描述)數據包建立的,兩臺路由器通過DBD數據來決定Master/Slave關系,并利用DBD數據包來交換數據庫信息。
(5)Exchange
鄰居路由器使用DBD數據包來相互發送它們的鏈路狀態信息。
(6)Loading
在相互描述各自的鏈路狀態數據庫后,路由器用LSR數據包來請求更新完整的信息。當路由器收到一個LSR數據包后,它會用LSU進行回應,LSU數據包需要LSAck進行確認。
(7)Full Adiacency
完成了LSA的交換,路由器進入Full Adjacency狀態。每臺路由器都維護著一張鄰居路由器列表。

OSPF協議配置

  • OSPF在有組播發送能力的鏈路層上以組播地址發送協議報文,既達到了廣播的作用,又最大程度地減少了對其他網絡設備的干擾。
  • OSPF可以劃分區域,路由更新信息只在本區域內傳播,不同域間不交換路由信息,以減少路由存儲和維護的信息量。其中,區域是在邏輯上將路由器劃分為不同的區域,不同的區域間通過ABR(邊界路由器)來傳遞路由信息。劃分區域給OSPF協議的處理帶來了很大的變化。每一個網段必須屬于一個區域,或者說每個運行OSPF協議的接口必須指明屬于某一特定的區域,每個區域用區域號(Area ID)來標識。區域號是一個32位的無符號整數,范圍0~4 294 967 295,其中區域ID為0(也可以表示為0.0.0.0)時表示的是主干區域。

OSPF基本配置命令說明

  1. router ospf:該命令用來啟動OSPF進程,命令格式為“router ospf <Process ID>”,其中Process ID(PID)是OSPF的進程號,它的范圍是 1~65 535,process ID可以在指定范圍內隨意設置,它只對本地路由器內部有意義,不同的路由器PID可以相同,也可以不同。
  2. network ip:該命令用來定義參與OSPF的子網地址,它的命令的格式為“network ip <子網號> <子網掩碼的反碼 > area <區城號>”,在單個IP地址參與OSPF時也使用此命令。
  3. range:該命令用于定義某一特定范圍子網的聚合,它的命令格式為“area <區域號> range <子網地址> <子網掩碼 >”。
  4. passive-interface:該命令用來配置OSPF的被動接口。
  5. distribute-list:該命令用來配置路由器的過濾功能。OSPF可以引入其他路由協議產生的路由,引入后,還可以作為自己的外部路由在整個自治系統內傳播。OSPF可以引入的外部路由有多種,包括靜態路由、RIP 等內部網關協議和BGP外部網關協議的路由信息。OSPF路由過濾功能與RIP完全相同,配置方法也基本一致。
  6. distance:該命令用來配置或改變OSPF的管理距離。

以下3個命令用來配置引入外部路由到OSPF時的參數
7. redistribute metric:該命令用來配置引入外部路由的花費值(metric)。metric值范圍為0~16 777 214。
8. redistribute tag:該命令用來配置引入外部路由時默認的標記值。標記能告訴OSPF,外部路由來源于什么路由協議。標記值為一個32位的數值,范圍為0~4 294 967 295。
9. redistribute connected metric-type:該命令用來設置引入外部路由時默認的外部路由類型,OSPF中外部路由類型有類型1和類型2兩種,分別對應兩種不同的路由花費值的計算方式,默認情況下使用類型2,可通過命令“redistribute connected metric-type”修改外部路由類型。

配置命令的使用

  1. 配置參與OSPF的網絡地址

router-test ( config) #router ospf 10
router-test ( config-router) #network 192.168.1.0 0.0.0.255 area 0
router-test ( config-router) exit
router-test ( config) # exit
Router-test#

  1. 配置單個IP地址參與OSPF

router-test ( config )# router ospf 10
Router-test( config-router) network 192. 168. 1.1 0. 0. 0. 0 area 0
router-test ( config-router) #exit
router-test ( config) # exit
Router-test#

  1. 使用area range命令定義參與OSPF的子網地址。

router-test ( config )# router ospf 10
router-test ( config-router) # area 0 range 212. 37. 123. 0 255. 255. 255. 0
router-test ( config-router) #exit
router-test ( config) # exit
Router-test#

  1. 配置被動接口。

路由器的配置命令:
router-test ( config )# router ospf 10
router-test ( config-router) #passive-interface ethernet0
router-test ( config-router) #exit
router-test ( config) # exit
Router-test#
另外,第三層交換機的配置命令如下:
router-test( config )#router ospf 60
router-test( config-router)#passive-interface vlan10
router-test( config-router) #end
router-test#

  1. 配置路由過濾

router-test ( config )#access-list 12 deny any
router-test ( config )# router ospf 10
router-test ( config-router) #distribute-list 10 out serial 0
router-test ( config-router) #end (end 直接退回到用戶特權模式)
Router-test#

  1. 配置管理距離

router-test ( config )# router ospf 10
router-test ( config-router) # distance 100
router-test ( config-router) #end
Router-test#

  1. 配置引入外部路由的花費值

router-test ( config )# router ospf 10
router-test ( config-router) # redistribute metric 200
router-test ( config-router) #end
Router-test#

  1. 配置引入外部路由時默認的標記值

router-test ( config )# router ospf 10
router-test ( config-router) # redistribute tag 100
router-test ( config-router) #end
Router-test#

  1. 配置引入外部路由時默認的外部路由類型。

router-test ( config )# router ospf 10
router-test ( config-router) #redistribute connected metric-type 1 subnets
router-test ( config-router) #end
Router-test#

配置案例



路由器R1的配置

Router>enable
Router#configure terminal
Router(config)#hostname R1
R1(config)#interface FastEthernet0/0
R1(config-if)#ip address 10.1.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#interface FastEthernet0/1
R1(config-if)#ip address 12.12.12.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#interface loopback 0
R1(config-if)#ip address 1.1.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#router ospf 1
R1(config-router)#network 10.1.1.0 0.0.0.255 area 0
R1(config-router)#network 12.12.12.0 0.0.0.255 area 0

路由器R2的配置

Router>enable
Router#configure terminal
Router(config)#hostname R2
R2(config)#interface FastEthernet0/0
R2(config-if)#ip address 12.12.12.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#interface FastEthernet0/1
R2(config-if)#ip address 23.23.23.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#interface loopback 0
R2(config-if)#ip address 2.2.2.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#router ospf 1
R2(config-router)#network 23.23.23.0 0.0.0.255 area 0
R2(config-router)#network 12.12.12.0 0.0.0.255 area 0

路由器R3的配置

Router>enable
Router#configure terminal
Router(config)#hostname R3
R3(config)#interface FastEthernet0/0
R3(config-if)#ip address 23.23.23.3 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#exit
R3(config)#interface FastEthernet0/1
R3(config-if)#ip address 192.168.1.3 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#exit
R3(config)#interface loopback 0
R3(config-if)#ip address 3.3.3.3 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#exit
R3(config)#router ospf 1
R3(config-router)#network 23.23.23.0 0.0.0.255 area 0
R3(config-router)#network 192.168.1.0 0.0.0.255 area 0

  • show ip route
    該命令用來查看路由表

  • show ip protocols
    該命令顯示路由器上啟動的IP路由協議,并對每種協議有用的信息給出一個匯總

  • show ip ospf
    該命令顯示OSPF進程及其細節,如路由器運行SPF算法的次數

  • show ip ospf neighbor
    該命令用來查看OSPF鄰居及其狀態

  • show ip ospf interface f0/0
    該命令可以查看運行OSPF所有或特定接口的情況。如果該命令后面跟路由器的具體接口,那么只顯示特定接口的信息,否則顯示所有運行OSPF協議的接口信息。

  • show ip ospf database
    該命令用來查看OSPF鏈路狀態數據庫

理論習題

  1. OSPF是一種典型的鏈路狀路由協議
  2. OSPF路由協議的管理距離是110
  3. OSPF路由協議利用開銷為度量標準
  4. OSPF路由器利用最短路徑優先算法,獨立地計算出到達任意目的地的路由。
  5. 默認情況下,快速以太網的開銷是1
  6. OSPF將網絡劃分為四種類型:BMA(廣播多路訪問型)、NBMA(非廣播多路訪問型)、Point-to-Point(點到點型)、點到多點
  7. Ethernet的Hello Interval為10秒,Dead Interval為40秒。
  8. NBMA網絡的Hello Interval為30秒,Dead Interval為120秒
  9. OSPF路由器可以周期性發送Hello包來建立和維持鄰接關系
  10. 當DR和BDR需要發送一個 LSU時,它會將更新發送給組播地址224.0.0.5
  11. OSPF接口優先級的范圍是0~255。
  12. OSPF路由進程process-id必須指定范圍在1~65535
  13. 網絡區域為0的區域稱為主于區域。
  14. show ip ospf neighbor用來查看鄰居及其狀態
  15. OSPF通過簡單口令認證和信息摘要(MD5)認證兩種方法啟用認證功能
  16. OSPF路由器的類型分為內部路路由器、主干路由器、ABR、ASBR
  17. OSPF區域類型包括標準區域、主干區域、末節區域、完全末節區域、NSSA
  18. ABR區域負責把LSA Type 7轉換成LSA Type 5
  19. OSPF 路由匯總的兩種類型包括區城間路由匯總、外部路由匯總
  20. 如何確定路由器ID?

(1)如果在OSPF進程中指定了路由器ID,那么這是最優先的。
(2)如果沒有在OSPF進程中指定路由器ID,那么選擇IP地址最大的Loopback接口的IP地址為路由器ID;如果只有一個Loopback接口,那么路由器ID就是這個Loopback的地址
(3)如果沒有Loopback接口,就選擇最大的活動的物理接口的IP地址為路由器ID。

  1. OSPF的特性包括哪些?

(1)快速收斂;
(2)能夠適應大型網絡;
(3)能夠正確處理錯誤路由信息;
(4)使用區域,能夠減少單個路由器的CPU負擔,構成結構化的網絡;
(5)支持無類路由,完全支持超網、可變長子網等無類特性;
(6)支持多條路徑等價負載均衡;
(7) 使用組播地址來進行信息互通,減少了非OSPF路由器的負載;
(8) 使用路由標簽來表示來自外部區域的路由;
(9)支持簡單口令和MD5認證;
(10)OSPF路由協議的管理距離是110;
(11)OSPF路由協議采用Cost作為度量標準

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/213038.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/213038.shtml
英文地址,請注明出處:http://en.pswp.cn/news/213038.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JS 云服務 Deno Depoly 宣布,推出定時運行功能 Deno Cron

如果需要定時執行 JS 腳本&#xff0c;以后多一個選項。 Web 構建日益復雜。編寫現代軟件包括利用云基礎設施、剖析模板代碼和管理復雜的配置&#xff0c;而開發人員只想專注于編寫業務邏輯。 Deno 旨在通過刪除配置和不必要的模板&#xff0c;從根本上簡化 Web 開發。我們將無…

網絡攻擊(三)--攻擊階段

5. 威脅建模階段 目標 了解威脅建模階段的工作內容 工作內容 威脅建模主要使用在情報搜集階段所獲取到的信息&#xff0c;來標識出目標系統上可能存在的安全漏洞與弱點。 在進行威脅建模時&#xff0c;確定最為高效的攻擊方法、所需要進一步獲取到的信息&#xff0c;以及從…

【前端】CSS浮動(學習筆記)

一、浮動 1、傳統網頁布局 網頁布局的本質&#xff1a;用 CSS 來擺放盒子&#xff0c;把盒子擺放到相應位置。 CSS 提供了三種傳統布局方式&#xff08;盒子如何進行排列順序&#xff09; 普通流&#xff08;標準流&#xff09;浮動定位 實際開發中&#xff0c;一個頁面基…

Go 反射技術判斷結構體字段數據為空

Api介紹 在Go語言中&#xff0c;反射API用于在運行時檢查類型信息、獲取和修改變量的值以及調用對象的方法。反射API包含了一組函數和類型&#xff0c;可以在程序運行時動態地操作對象。 以下是一些常用的反射API&#xff1a; reflect.TypeOf&#xff1a;返回一個值的類型信息。…

并查集基礎模板

題目我上面有人兒 代碼 #include <bits/stdtr1c.h> using namespace std; const int N 1005; int f[N]; int n; int siz[N]; // 初始化并查集 // void init() // { // for (int i 1; i < n; i) // { // f[i] i; // 初始化所有的節點都是自己的父節點 //…

Tomcat頭上有個叉叉

問題原因&#xff1a; 這是因為它就是個空的tomcat,并沒有導入項目運行 解決方案&#xff1a; war模式&#xff1a;發布模式&#xff0c;正式發布時用&#xff0c;將WEB工程以war包的形式上傳到服務器 war exploded模式&#xff1a;開發時用&#xff0c;將WEB工程的文件夾直接…

【網絡協議】LACP(Link Aggregation Control Protocol,鏈路聚合控制協議)

文章目錄 LACP名詞解釋LACP工作原理互發LACPDU報文確定主動端確定活動鏈路鏈路切換 LACP和PAgP有什么區別&#xff1f;LACP與LAG的關系LACP模式更優于手動模式LACP模式對數據傳輸更加穩定和可靠LACP模式對聚合鏈路組的故障檢測更加準確和有效 推薦閱讀 LACP名詞解釋 LACP&…

day11 前k個高頻元素

// 小頂堆 class mycomparison { public: bool operator()(const pair<int, int>& lhs, const pair<int, int>& rhs) { return lhs.second > rhs.second; } }; vector<int> topKFrequent(vector<int>& nums, int k) { // 要統計元素出現…

智能外呼有什么好處?

智能外呼是一種自動化的電話營銷方式&#xff0c;利用AI智能外呼技術和大量數據分析&#xff0c;幫助企業實現與客戶之間的高效、精準、個性化的客戶溝通&#xff0c;還可以在客戶服務、市場營銷和銷售等方面帶來助力。那么&#xff0c;智能外呼有什么好處呢&#xff1f; 1. 提…

spring IOC bean為什么默認是單例的

首先解釋一下什么是單例 bean&#xff1f; 單例的意思就是說在 Spring IoC 容器中只會存在一個 bean 的實例&#xff0c;無論一次調用還是多次調用&#xff0c;始終指向的都是同一個 bean 對象 用代碼來解釋單例 bean public class UserService {public void sayHello() {Syst…

交叉編譯工具鏈makefile

linux系統默認搜索頭文件地址&#xff1a;/usr/include/文件夾&#xff1b; Windows系統默認搜索頭文件地址&#xff1a;不同軟件好像可以設置不同的地址&#xff1b;例如visual studio好像可以設置附加包含目錄&#xff0c;包含目錄等 Linux系統庫文件路徑&#xff1a;/lib文…

通過生成模擬釋放無限數據以實現機器人自動化學習

該工作推出RoboGen&#xff0c;這是一種生成機器人代理&#xff0c;可以通過生成模擬自動大規模學習各種機器人技能。 RoboGen 利用基礎模型和生成模型的最新進展。該工作不直接使用或調整這些模型來產生策略或低級動作&#xff0c;而是提倡一種生成方案&#xff0c;該方案使用…

命運天注定?

羅翔老師經常說&#xff1a;人這一生&#xff0c;能自己決定的也許只有5&#xff05;&#xff0c;有95%是你決定不了的。 不是說事在人為&#xff0c;人定勝天嗎&#xff1f; 哪吒也在電影的高潮喊出了&#xff1a;我命由我不由天。 聽上去很熱血&#xff0c;但實際咱們每個…

Java泛型:詳解使用技巧及舉例說明

Java泛型&#xff1a;詳解使用技巧及舉例說明 1. 引言 Java泛型是一項強大的編程概念&#xff0c;它允許我們編寫通用的代碼&#xff0c;在編寫代碼時不需要預先指定具體的數據類型。泛型的引入解決了在傳統的編程中需要頻繁進行類型轉換的問題&#xff0c;提高了代碼的安全性…

simulink MATLABFunction模塊中實時函數調用函數的使用

樣例 function Predyy matlabceshi(input, Time_s) input1 input; Time_s1 Time_s; Predyy ee(input1) mm(Time_s1); end 上面是主要部分&#xff0c;下面是被調用部分 function A ee(input1) A input1 * 100; end function B mm(Time_s1) B Time_s1 * 100; end 模型…

算法競賽---反悔貪心

反悔貪心 Work Scheduling G 什么是返回貪心呢&#xff0c;就是先選擇&#xff0c;遇到更好的之后在反悔選擇更好的&#xff0c;這是符合貪心的邏輯的。 #include <bits/stdc.h> // https://www.luogu.com.cn/problem/P2949 using namespace std; struct node {int d,…

Linux(ubuntu)利用ffmpeg+qt設計rtsp_rtmp流媒體播放器(完全從0開始搭建環境進行開發)

一、前言 從0開始搭建Linux下Qt、ffmpeg開發環境。 從安裝虛擬機開始、安裝Linux(Ubuntu)系統、安裝Qt開發環境、編譯ffmpeg源碼、配置ffmpeg環境、編寫ffmpeg項目代碼、完成項目開發。 完全從0開始搭建環境進行開發 完全從0開始搭建環境進行開發 完全從0開始搭建環境進行開…

公務員國考省考小白需知

文章目錄&#xff1a; 一&#xff1a;分類 1.國考 2.省考 二&#xff1a;必備途徑 1.相關網站 1.1 官網 1.1.1 必須知道的 1.1.2 比較好用的 1.1.3 事業單位的 1.2 機構 ??1.3 時事 ??1.4 資源 1.5 題庫 1.6 真題 ?2.相關公主號 3.應用 4.群聊如何找 三…

笙默考試管理系統-MyExamTest----codemirror(53)

笙默考試管理系統-MyExamTest----codemirror&#xff08;53&#xff09; 目錄 笙默考試管理系統-MyExamTest----codemirror&#xff08;51&#xff09; 一、 笙默考試管理系統-MyExamTest----codemirror 二、 笙默考試管理系統-MyExamTest----codemirror 三、 笙默考試…

【TwinCAT學習筆記 1】TwinCAT開發環境搭建

寫在前面 作為技術開發人員&#xff0c;開啟任何一項開發工作之前&#xff0c;首先都要搭建好開發環境&#xff0c;所謂磨刀不誤砍材工&#xff0c;一定要有耐心&#xff0c;一次不行卸載再裝。我曾遇到過一個學生&#xff0c;僅搭建環境就用了兩周&#xff0c;這個過程也是一…