網絡基礎協議綜合實驗

本文結合所學的一些基礎網絡協議來完成一個綜合性的實驗(實驗完整代碼放在最后)

會先說明使用協議的原理,然后分析具體在拓補圖中的應用過程,最后再給出配置

明確實驗目標:拓撲分?核心層(R1)、匯聚層(SW3、SW4,需配置 SVI 實現三層轉發)、接入層(SW1、SW2,純二層)?,目標是讓所有 PC 能互訪,且核心路由器 R1 能與外網(Net)通信,同時內網流量按預期路徑轉發。

整體思路:靜態路由手動配置、dhcp動態路由、vlan劃分網絡、mstp解決二層環路、vrrp保障網關冗余、ospf動態選路實現三層設備互聯、nat內網訪問外網、acl訪問控制?

數據傳輸完整流程(以 PC1 訪問公網為例 )

階段 1:PC1 發起到網關的流量(二層 + VRRP )

1.?PC1 封裝幀:PC1 要訪問公網(如 ?203.0.113.1??),先判斷目標 IP 是外網,需發往默認網關 ?192.168.2.254?(VRRP 虛擬 IP )。

- PC1 用 ARP 請求解析 ?192.168.2.254??的 MAC 地址。

- SW3 是 VLAN2 的 VRRP 主設備(優先級 120 ),會響應 ARP,告知 PC1:?192.168.2.254??的 MAC 是 SW3 的 VLAN2 SVI 接口 MAC。

2.?流量到匯聚層 SW3:PC1 封裝以太網幀(源 MAC:PC1,目的 MAC:SW3 VLAN2 MAC;源 IP:?192.168.2.1?,目的 IP:?203.0.113.1??),通過接入層 SW1(Trunk 鏈路 )、MSTP 計算的最優路徑,轉發到 SW3。

階段 2:匯聚層 SW3 轉發到核心 R1(三層 + OSPF )

1.?SW3 三層轉發:SW3 收到幀后,解封裝看目的 IP 是外網,查路由表(OSPF 學習的路由 ),發現需發往核心 R1。

?
?- OSPF 已在 SW3、R1 間建立鄰居,傳遞了 ?192.168.10.0/30?(SW3 - R1 互聯段 )、?192.168.2.0/24?(VLAN2 )等路由。

- SW3 路由表中,外網網段(?0.0.0.0/0??)的下一跳指向 R1 的 ?192.168.10.2?(OSPF 動態學習或靜態路由 )。

2.?封裝新幀轉發:SW3 重新封裝幀(源 MAC:SW3 互聯口 MAC,目的 MAC:R1 互聯口 MAC;源 IP:?192.168.2.1?,目的 IP:?203.0.113.1??),通過 ?G0/0??接口發往 R1。

階段 3:核心 R1 做 NAT + 轉發(NAT + 靜態路由 + ACL )

1.?NAT 轉換:R1 收到幀,解封裝后觸發 NAT:

- 因 PC1 是靜態 NAT(?ip nat inside source static 192.168.2.1 192.0.2.10??),R1 會把源 IP 替換為 ?192.0.2.10?,同時記錄轉換表項(便于回包時還原 )。

2.?ACL 過濾(可選):R1 外網口 ?f2/0??應用了 ?access-list 100?(假設允許 ICMP 等 ),檢查流量是否符合規則。若符合,繼續轉發。

3.?靜態路由轉發:R1 查路由表,默認路由 ?ip route 0.0.0.0 0.0.0.0 f2/0??指導流量發往外網口 ?f2/0?,封裝新幀(源 MAC:R1 ?f2/0??MAC,目的 MAC:公網網關 MAC;源 IP:?192.0.2.10?,目的 IP:?203.0.113.1??),發往公網。

階段 4:公網回包到 R1(反向路徑 )

1.?公網路由:公網設備(如 ?203.0.113.1??)收到包,回包時目的 IP 是 ?192.0.2.10?,根據公網路由(由 ISP 配置 ),發回 R1 的 ?f2/0??接口。

2.?NAT 還原:R1 收到回包,查 NAT 表項,將目的 IP ?192.0.2.10??還原為 ?192.168.2.1?,然后查路由表(OSPF 學習的 ?192.168.2.0/24??路由 ),下一跳指向 SW3 的 ?192.168.10.1?。

3.?轉發回 SW3:R1 封裝幀(源 MAC:R1 互聯口 MAC,目的 MAC:SW3 互聯口 MAC;源 IP:?203.0.113.1?,目的 IP:?192.168.2.1??),發往 SW3。

階段 5:SW3 轉發回 PC1(OSPF + 二層 )

1.?SW3 三層轉發:SW3 收到回包,查路由表(OSPF 學習的 ?192.168.2.0/24??直連路由 ),目的 IP 是 PC1,需發往 VLAN2 SVI 接口。

2.?ARP 解析 PC1 MAC:SW3 用 ARP 請求解析 ?192.168.2.1??的 MAC 地址,PC1 響應后,SW3 封裝幀(源 MAC:SW3 VLAN2 MAC,目的 MAC:PC1 MAC;源 IP:?203.0.113.1?,目的 IP:?192.168.2.1??),通過 MSTP 最優路徑,經 SW1 轉發回 PC1

一.? 靜態路由的配置:(sw3、sw4、r1)

靜態路由核心是?“告訴設備:到達某網段,下一跳給誰”?,需梳理每個設備的 “已知網段” 和 “需要轉發的網段”。

定義:由管理員手工配置的,是單向的,拓撲關系缺乏靈活性
優點:配置靈活,管理員手工配置,節省鏈路開銷。
缺點:當拓撲發生改變時,需要管理員去每臺路由器上修改路由配置。

R1 作為核心層路由器,需連通內網(匯聚、接入層網段)和外網(假設 ?192.0.2.0/24? 是公網或上級網絡 ),同時匯聚層 SW3、SW4 也需通過它訪問外網。假設內網主要需互通的網段有:- 接入層 VLAN 網段:?192.168.2.0/24?(VLAN2 )、?192.168.3.0/24?(VLAN3 )、?192.168.4.0/24?(VLAN4 )- 匯聚與核心互聯網段:?192.168.10.0/30?(R1 - SW3 )、?192.168.10.4/30?(R1 - SW4 )等R1R1(config)# ip route 192.168.2.0 255.255.255.0 192.168.10.1  // 去往 VLAN2 網段,下一跳指向 SW3
R1(config)# ip route 192.168.3.0 255.255.255.0 192.168.10.1  // 去往 VLAN3 網段,下一跳指向 SW3
R1(config)# ip route 192.168.4.0 255.255.255.0 192.168.10.5  // 去往 VLAN4 網段,下一跳指向 SW4
R1(config)# ip route 0.0.0.0 0.0.0.0 192.0.2.2  // 默認路由,指向外網出口(假設對端是 192.0.2.2 )
SW3(config)# ip route 0.0.0.0 0.0.0.0 192.168.10.2  // 默認路由,指向核心 R1,讓非直連網段走 R1
SW3(config)# ip route 192.168.4.0 255.255.255.0 192.168.10.10  // 去往 VLAN4(SW4 側),下一跳指向 SW4
// 若需更精細控制,也可針對 R1 側其他網段單獨寫,或依賴默認路由
SW4(config)# ip route 0.0.0.0 0.0.0.0 192.168.10.6  // 默認路由指向 R1,讓非直連網段走核心
SW4(config)# ip route 192.168.3.0 255.255.255.0 192.168.10.9  // 去往 VLAN3(SW3 側),下一跳指向 SW3
// 同理,可根據實際網段細化,或依賴默認路由覆蓋

二.? DHCP 動態路由

工作過程:

四次會話

1)discover:客戶端廣播向DHCP服務器請求一個ip地址

2)offer:服務器收到后在地址池中尋找合適的IP地址,廣播回復提供給客戶端

3)request:客戶端選擇合適的ip地址并告知服務器

4)ack:服務器廣播確認分配ip地址,向客戶端告知信息

拓補圖中,可以看到pc2和pc4都是由dhcp自動獲取ip地址的

分析:以pc2為例:pc2廣播發送dhcp請求,dhcp中繼sw3收到廣播請求后改為單播發往dhcp服務器r1,r1收到請求在地址池選擇合適的ip地址單播回復給sw3,sw3收到后發給pc2,pc2選擇ip地址并廣播告知r1,sw3改為單播發給r1,r1收到win的選擇信息單播發送確認信息給pc2

這里提到了dhcp中繼 什么是中繼

?Dhcp中繼:當dhcp服務器與客戶端不在同一網絡的時候無法直接通信,這時需要一個代理者代為轉發,這個代理者就是dhcp中繼。

分析:圖中pc2發起dhcp請求請求一個IP地址,因為與服務器r1不在同一網段,所以sw3充當中繼接收到來之pc2的dhcp廣播請求,把廣播請求改為單播發送給服務器r1

dhcp配置:

// DHCP 地址池配置(給 192.168.3.0/24、192.168.4.0/24 網段分配 )
Router(config)#ip dhcp pool h
Router(dhcp-config)#network 192.168.3.0 255.255.255.0
Router(dhcp-config)#default-router 192.168.3.254
Router(dhcp-config)#dns-server 222.246.129.80
Router(dhcp-config)#exitRouter(config)#ip dhcp pool t
Router(dhcp-config)#network 192.168.4.0 255.255.255.0
Router(dhcp-config)#default-router 192.168.4.254
Router(dhcp-config)#dns-server 222.246.129.80
Router(dhcp-config)#exit// DHCP 中繼相關(信任中繼信息 )
Router(config)#ip dhcp relay information trust-all// 環回接口(OSPF RID 依賴 )
Router(config)#interface Loopback0
Router(config-if)#ip address 1.1.1.1 255.255.255.255
Router(config-if)#exit

注意這里配置了lookback地址,也就是回環接口地址,好處就是因為回環接口狀態是穩定的,當鏈路損壞或原接口故障,管理者可以通過回環接口進入?

三.vlan劃分網絡

定義:虛擬局域網

作用:將網絡劃分成多個廣播域

access:連接個1vlan,與終端相連

收報文

判斷是否有VLAN信息:如果沒有則打上端口的PVID,并進行交換轉發,如果有則直接

丟棄(缺省)

發報文將報文的VLAN信息剝離,直接發送出去

trunk:連接多個vlan,與交換機、路由器相連

收報文?? ?
收到一個報文,判斷是否有VLAN信息:如果沒有則打上端口的PVID,并進行交換轉發,如果有判斷該trunk端口是否允許該 VLAN的數據進入:如果可以則轉發,否則丟棄

發報文?? ?
比較端口的PVID和將要發送報文的VLAN信息,如果兩者相等則剝離VLAN信息,再發送,如果不相等則直接發送

sw1配置:

Switch(config)#vlan 2,3
Switch(config)#int e0/0
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 2
Switch(config-if)#spanning-tree portfast
Switch(config-if)#no shutdown
Switch(config)#int e0/1
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 3
Switch(config-if)#spanning-tree portfast
Switch(config-if)#no shutdown
Switch(config)#int e0/2
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport trunk encapsulation dot1q
Switch(config-if)#no shutdown
Switch(config)#int e0/3
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport trunk encapsulation dot1q
Switch(config-if)#no shutdown

sw2配置:?

Switch(config)#vlan 2
Switch(config)#vlan 4
Switch(config)#int e0/0
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 2
Switch(config-if)#spanning-tree portfast
Switch(config-if)#no shutdown
Switch(config)#int e0/1
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 4
Switch(config-if)#spanning-tree portfast
Switch(config-if)#no shutdown
Switch(config)#int e0/2
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport trunk encapsulation dot1q
Switch(config-if)#no shutdown
Switch(config)#int e0/3
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport trunk encapsulation dot1q
Switch(config-if)#no shutdown

sw3配置:

Switch(config)#vlan 2 - 4
Switch(config)#int g0/0
Switch(config-if)#switchport trunk encapsulation dot1q
Switch(config-if)#switchport mode trunk
Switch(config-if)#no shutdown
Switch(config)#int g0/2
Switch(config-if)#switchport trunk encapsulation dot1q
Switch(config-if)#switchport mode trunk
Switch(config-if)#no shutdown
Switch(config)#int g0/3
Switch(config-if)#no switchport
Switch(config-if)#no shutdown
Switch(config-if)#ip address 192.168.10.1 255.255.255.252
Switch(config)#int g0/1
Switch(config-if)#no switchport
Switch(config-if)#no shutdown
Switch(config-if)#ip address 192.168.10.9 255.255.255.252
Switch(config)#ip routing

sw4配置:

  
Switch(config)#vlan 2 - 4
Switch(config)#int g0/0
Switch(config-if)#switchport trunk encapsulation dot1q
Switch(config-if)#switchport mode trunk
Switch(config-if)#no shutdown
Switch(config)#int g0/2
Switch(config-if)#switchport trunk encapsulation dot1q
Switch(config-if)#switchport mode trunk
Switch(config-if)#no shutdown
Switch(config)#int g0/3
Switch(config-if)#no switchport
Switch(config-if)#no shutdown
Switch(config-if)#ip address 192.168.10.5 255.255.255.252
Switch(config)#int g0/1
Switch(config-if)#no switchport
Switch(config-if)#no shutdown
Switch(config-if)#ip address 192.168.10.10 255.255.255.252
Switch(config)#ip routing

r1配置

Router(config)#int f0/0
Router(config-if)#ip address 192.168.10.2 255.255.255.252
Router(config-if)#no shutdown
Router(config)#int f0/1
Router(config-if)#ip address 192.168.10.6 255.255.255.252
Router(config-if)#no shutdown
Router(config)#int fa2/0
Router(config-if)#ip address 192.0.2.1 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#ip nat outside

四.? MSTP解決二層環路?

首先了解二層環路

危害:

1)可能會造成廣播風暴

廣播風暴是指網絡中出現大量無意義的廣播幀,導致網絡帶寬被占滿、設備處理能力耗盡
最終使網絡癱瘓的現象。

2)數據在環路中循環傳輸,耗費資源

3)mac地址表紊亂:交換機是通過mac地址來轉發數據的,但環路中同一mac地址會在不同端口頻繁出現,導致mac表不斷刷新,造成混亂

MSTP通過選擇規則來防止環路:

選舉報網橋
選舉規則:
a. 先比較BID中的優先級,具有最小優先級的交換機定為根橋。
b. 如果優先級一樣,再比較BID中的MAC地址,MAC地址最小的確定為跟橋。

選舉根端口
選舉規則:
a. 非根橋交換機上,到根橋的根路徑開銷最小的端口,即為該非根交換機的根端口
b. 如果根路徑開銷相同,則比較對端交換機的BID,越小越優
c. 如果對端交換機的BID相同,則比較對端的PID,越小越優
d. 如果對端的PID相同,則比較本端的PID,越小越優。

選舉指定端口
選舉規則:
a. 在各個鏈路上,到根橋的根路徑開銷最小的端口,即為指定端口
b. 如果根路徑開銷相同,則比較兩端交換機的BID,越小越優
c. 如果對端交換機的BID相同,則比較兩端交換機的PID,越小越優

阻塞其余端口選舉規則:
至此,其余既不是根端口也不是指定端口的都是阻塞端口。

分析:拓補圖中,可以看到二層的主要兩個環路,分別是sw1、sw3、sw4形成的三角形環路和sw2、sw4、sw3的三角形環路 ,這里就需要用到mstp來解決這個環路問題

mstp配置:

sw1

// MSTP 配置
Switch(config)#spanning-tree mode mst
Switch(config)#spanning-tree mst configuration
Switch(config-mst)#name mst
Switch(config-mst)#revision 1
Switch(config-mst)#instance 2 vlan 2
Switch(config-mst)#instance 3 vlan 3
Switch(config-mst)#instance 4 vlan 4
Switch(config-mst)#exit

sw2

// MSTP 配置
Switch(config)#spanning-tree mode mst
Switch(config)#spanning-tree mst configuration
Switch(config-mst)#name mst
Switch(config-mst)#revision 1
Switch(config-mst)#instance 2 vlan 2
Switch(config-mst)#instance 3 vlan 3
Switch(config-mst)#instance 4 vlan 4
Switch(config-mst)#exit

sw3

// MSTP 配置
Switch(config)#spanning-tree mode mst
Switch(config)#spanning-tree mst configuration
Switch(config-mst)#name mst
Switch(config-mst)#revision 1
Switch(config-mst)#instance 2 vlan 2
Switch(config-mst)#instance 3 vlan 3
Switch(config-mst)#instance 4 vlan 4
Switch(config-mst)#exit
Switch(config)#spanning-tree mst 0 priority 0
Switch(config)#spanning-tree mst 2 priority 4096
Switch(config)#spanning-tree mst 3 priority 0
Switch(config)#spanning-tree mst 4 root primary

sw4

// MSTP 配置
Switch(config)#spanning-tree mode mst
Switch(config)#spanning-tree mst configuration
Switch(config-mst)#name mst
Switch(config-mst)#revision 1
Switch(config-mst)#instance 2 vlan 2
Switch(config-mst)#instance 3 vlan 3
Switch(config-mst)#instance 4 vlan 4
Switch(config-mst)#exit
Switch(config)#spanning-tree mst 0 priority 4096
Switch(config)#spanning-tree mst 2 priority 0
Switch(config)#spanning-tree mst 3 priority 4096
Switch(config)#spanning-tree mst 4 root secondary

?五.? vrrp保障網關冗余

工作過程:

優先級高的選舉為主路由器,優先級相同時接口IP大的為主路由器。 主路由器激活虛擬IP地址,轉發數據報文,并定期向廣播域內發送VRRP組播報文通告自己的狀態,定期通告間(Advertisement Interval)默認為1秒。 備份路由器不發送但接收VRRP報文,在MASTER_DOWN_TIMER(一般為3個通告周期)3s內沒有收到主路由器的VRRP報文,則備份路由器將成為主路由器。?

分析:拓補圖中sw3、sw4兩臺三層交換機滿足等級保護要求中的設備冗余,需要使用vrrp協議來保障一臺路由損壞后,其他路由仍然可以這次工作的作用,可以看到sw3、sw4之間有兩根線,下面的線是二層線路,用來進行vrrp的主備路由器的狀態通告

vrrp配置

sw3

// 邏輯接口(SVI) + VRRP 配置
Switch(config)#int vlan 2
Switch(config-if)#ip address 192.168.2.253 255.255.255.0
Switch(config-if)#ip helper-address 192.168.10.2
Switch(config-if)#no shutdown
Switch(config-if)#vrrp 2 ip 192.168.2.254
Switch(config-if)#vrrp 2 priority 120
Switch(config-if)#vrrp 2 preemptSwitch(config)#int vlan 3
Switch(config-if)#ip address 192.168.3.253 255.255.255.0
Switch(config-if)#ip helper-address 192.168.10.2
Switch(config-if)#no shutdown
Switch(config-if)#vrrp 3 ip 192.168.3.254
Switch(config-if)#vrrp 3 priority 100
Switch(config-if)#vrrp 3 preemptSwitch(config)#int vlan 4
Switch(config-if)#ip address 192.168.4.253 255.255.255.0
Switch(config-if)#ip helper-address 192.168.10.2
Switch(config-if)#no shutdown
Switch(config-if)#vrrp 4 ip 192.168.4.254
Switch(config-if)#vrrp 4 priority 100
Switch(config-if)#vrrp 4 preempt

sw4

Switch(config)#int vlan 2
Switch(config-if)#ip address 192.168.2.252 255.255.255.0
Switch(config-if)#ip helper-address 192.168.10.6
Switch(config-if)#no shutdown
Switch(config-if)#vrrp 2 ip 192.168.2.254
Switch(config-if)#vrrp 2 priority 100
Switch(config-if)#vrrp 2 preemptSwitch(config)#int vlan 3
Switch(config-if)#ip address 192.168.3.252 255.255.255.0
Switch(config-if)#ip helper-address 192.168.10.6
Switch(config-if)#no shutdown
Switch(config-if)#vrrp 3 ip 192.168.3.254
Switch(config-if)#vrrp 3 priority 120
Switch(config-if)#vrrp 3 preemptSwitch(config)#int vlan 4
Switch(config-if)#ip address 192.168.4.252 255.255.255.0
Switch(config-if)#ip helper-address 192.168.10.6
Switch(config-if)#no shutdown
Switch(config-if)#vrrp 4 ip 192.168.4.254
Switch(config-if)#vrrp 4 priority 120
Switch(config-if)#vrrp 4 preempt

六.OSPF動態路由選路?

工作過程:

五種報文:

ospf的種類以及作用:

拓補圖中當數據傳到核心層就需要ospf協議進行動態路由選路?

ospf配置

sw3

// OSPF 配置
Switch(config)#interface loopback 0
Switch(config-if)#ip address 3.3.3.3 255.255.255.255
Switch(config)#router ospf 1
Switch(config-router)#router-id 3.3.3.3
Switch(config-router)#network 3.3.3.3 0.0.0.0 area 0
Switch(config-router)#network 192.168.10.1 0.0.0.0 area 0
Switch(config-router)#network 192.168.10.9 0.0.0.0 area 0
Switch(config-router)#network 192.168.2.0 0.0.0.255 area 0
Switch(config-router)#network 192.168.3.0 0.0.0.255 area 0
Switch(config-router)#network 192.168.4.0 0.0.0.255 area 0
// 被動接口
Switch(config-router)#passive-interface g0/0
Switch(config-router)#passive-interface g0/2

sw4

// OSPF 配置
Switch(config)#interface loopback 0
Switch(config-if)#ip address 4.4.4.4 255.255.255.255
Switch(config)#router ospf 1
Switch(config-router)#router-id 4.4.4.4
Switch(config-router)#network 4.4.4.4 0.0.0.0 area 0
Switch(config-router)#network 192.168.10.5 0.0.0.0 area 0
Switch(config-router)#network 192.168.10.10 0.0.0.0 area 0
Switch(config-router)#network 192.168.2.0 0.0.0.255 area 0
Switch(config-router)#network 192.168.3.0 0.0.0.255 area 0
Switch(config-router)#network 192.168.4.0 0.0.0.255 area 0
// 被動接口
Switch(config-router)#passive-interface g0/0
Switch(config-router)#passive-interface g0/2

R1

// 靜態路由 + OSPF
Router(config)#ip route 0.0.0.0 0.0.0.0 f0/0
Router(config)#interface loopback 0
Router(config-if)#ip address 1.1.1.1 255.255.255.255
Router(config)#router ospf 1
Router(config-router)#router-id 1.1.1.1
Router(config-router)#network 192.168.10.2 0.0.0.0 area 0
Router(config-router)#network 192.168.10.6 0.0.0.0 area 0
// 傳遞默認路由給 OSPF 鄰居
Router(config-router)#default-information originate

七.? NAT?內網訪問外網

NAT主要用于內網地址訪問公網地址

靜態NAT:內網地址與公網地址一對一映射,主要用于公網資源充足的場景或是特定的設備(攝像頭等)

動態NAT:內網地址與公網地址是臨時的動態映射,隨機從公網地址池中分配一個公網地址。主要用于主機或服務器集群的地方

PAT:多對一映射,不同內網地址使用同一公網地址,但端口不同

NAT配置:?

// NAT 配置 
// 1. 靜態 NAT:內網 192.168.2.1 → 外網 192.0.2.10
Router(config)#ip nat inside source static 192.168.2.1 192.0.2.10// 2. 動態 NAT(ACL 1 匹配 192.168.3.0/24 ,映射到 pool1 )
Router(config)#access-list 1 permit 192.168.3.0 0.0.0.255
Router(config)#ip nat pool 1 192.0.2.21 192.0.2.30 netmask 255.255.255.0
Router(config)#ip nat inside source list 1 pool 1// 3. 出接口 NAT(ACL 2 匹配 192.168.2.2/32 ,直接映射外網口 )
Router(config)#access-list 2 permit 192.168.2.2 0.0.0.0
Router(config)#ip nat inside source list 2 interface FastEthernet2/0// 4. NAPT(PAT,ACL 3 匹配 192.168.4.0/24 ,復用 pool3 地址 )
Router(config)#access-list 3 permit 192.168.4.0 0.0.0.255
Router(config)#ip nat pool 3 192.0.2.31 192.0.2.32 netmask 255.255.255.0
Router(config)#ip nat inside source list 3 pool 3 overload

?完整代碼:(以圖片展現)

?

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

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

相關文章

圖機器學習(5)——無監督圖學習與淺層嵌入方法

圖機器學習(5)——無監督圖學習0. 前言1. 無監督圖嵌入2. 矩陣分解2.1 圖分解2.2 高階鄰接保留嵌入2.3 帶有全局結構信息的圖表示3. skip-gram 模型3.1 DeepWalk3.2 Node2Vec3.3 Edge2Vec3.4 Graph2Vec0. 前言 無監督機器學習是指訓練過程中不利用任何目…

lua中檢查靜態常量是否正確引用

lua中檢查靜態常量是否正確引用思路代碼因在項目開發中會出現引用了不存在的常量,為了方便檢查這種情況,所以想著添加針對性腳本check 思路 加載要檢查的常量結構到KEYWORD通過gmatch匹配指定路徑下的所有文件,依次檢查引用到目標變量的key是…

考完數通,能轉云計算/安全方向嗎?轉型路徑與拓展路線分析

不少網工考完 HCIE數通 后,都會面臨一個現實問題:“能不能往云計算、安全這些熱門方向轉?”可以,而且非常值得。但怎么轉、學什么、有沒有路線圖,是關鍵。一、為什么考完HCIE數通后適合轉方向?技術基礎扎實…

2.邏輯回歸、Softmax回歸——鳶尾花大作戰

邏輯回歸 邏輯回歸其實并不是回歸,而是一個分類算法 分類問題:郵件分類、圖像識別、疾病診斷、文字情感分析、金融欺詐檢測 根據歷史數據,預測樣本是屬于哪個類別,通過數據擬合分界 主要用于二分類任務 邏輯回歸公式 事實上是在多…

【Lucene/Elasticsearch】**Query Rewrite** 機制

這段話描述的是 Lucene/Elasticsearch 的 **Query Rewrite** 機制,核心一句話:> **把“高級”或“邏輯”查詢(如 PrefixQuery、WildcardQuery、RangeQuery)在真正執行前,拆成最底層的、可直接倒排索引查的“原子查詢…

小智完整MCP交互流程(以調節音量為例)

1. 初始化階段 - MCP工具注冊 在 mcp_server.cc 中,音量控制工具在 AddCommonTools() 中注冊: AddTool("self.audio_speaker.set_volume", "Set the volume of the audio speaker. If the current volume is unknown, you must call self…

極狐GitLab CEO 柳鋼——極狐 GitLab 打造中國企業專屬 AI 編程平臺,引領編程新潮流

當下,AI 編程已成為人工智能大模型領域的耀眼明星,是公認的最好應用領域之一。其發展速度驚人,從最初簡單的代碼建議、代碼補全等基礎智能功能,一路高歌猛進,如今已涵蓋智能單元測試、智能代碼審核、智能體編程、代碼倉…

tiktok 彈幕 逆向分析

聲明: 本文章中所有內容僅供學習交流使用,不用于其他任何目的,抓包內容、敏感網址、數據接口等均已做脫敏處理,嚴禁用于商業用途和非法用途,否則由此產生的一切后果均與作者無關! 逆向分析部分python代碼部分python代碼…

Java學習打卡22(JAVA中的錯誤Error和異常Exception)

異常( Exception ):軟件程序在運行過程中,出現的不期而至的各種情況,如:文件找不到、網絡連接失敗、非法參數等。要理解JAVA異常處理是如何工作的,需要掌握以下三種類型的異常:檢查性…

AntV G6 基礎元素詳解(React版)

一、初識 AntV G6 AntV G6 是螞蟻集團推出的專業級圖可視化引擎,適合構建關系圖譜、拓撲圖、流程圖等場景。相比其他圖形庫,G6 提供完整的布局算法 和交互體系 ,開發者在 10 分鐘內即可搭建可交互的圖應用。 技術特點速覽: 支持 C…

【解決】聯想電腦亮度調節

更新后圖標變大調節分辨率然后亮度就不能調節了快捷鍵WindowsX打開設備管理器右鍵顯卡更新驅動程序選擇“瀏覽我的電腦以查找驅動程序(R)”選擇“讓我從計算機上的可驅動程序列表中選取(L)”點擊下一步成功解決

將Blender、Three.js與Cesium集成構建物聯網3D可視化系統

將Blender、Three.js與Cesium集成構建物聯網3D可視化系統,可實現從精細設備建模到宏觀地理空間展示的全棧能力。以下是技術整合方案及典型應用場景:一、技術棧分工與集成邏輯 #mermaid-svg-gCvcBVB9ebl092ap {font-family:"trebuchet ms",verd…

用TensorFlow進行邏輯回歸(一)

這一節我們用TensorFlow定義簡單的分類器。首先考慮分類器的方程式是什么是值得的。數學習的技巧是使用sigmoid函數。sigmoid函數繪制如圖3-40, 通常標記為σ, 是實數域里的函數取值(0, 1)。這個特征很便利,因為我們可以將sigmoid的輸出解釋為事件發現的概率。 (轉…

【Java代碼審計(2)】MyBatis XML 注入審計

代碼背景:某公司使用 MyBatis 作為持久層框架,登錄功能如下: Java 接口代碼: public interface UserMapper {User findByUsernameAndPassword(Param("username") String username,Param("password") String p…

Spring Boot目錄變文件夾?3步解決!

在 Spring Boot 項目中,當你在 src/main/java 下看到目錄結構而不是包結構時,這通常是 IDE(如 IntelliJ IDEA)的顯示問題或項目配置問題。以下是原因和解決方案:問題原因IDE 未正確識別 Java 源代碼根目錄 src/main/ja…

Appium源碼深度解析:從驅動到架構

Appium源碼深度解析:從驅動到架構 Appium 源碼概覽 Appium 是一個開源的移動自動化測試框架,支持跨平臺(iOS、Android)和多種編程語言(Java、Python 等)。其源碼托管在 GitHub 上,主要由 JavaScript 和 Node.js 實現,核心邏輯圍繞客戶端-服務器架構設計。 GitHub 倉庫…

給 Excel 整列空格文字內容加上前綴:像給文字穿衣服一樣簡單!

目錄 步驟一:選中目標列 打開Excel表格并定位列點擊列標題選中整列 步驟二:輸入公式,變身“魔法” 在公式編輯欄輸入公式按下回車鍵查看效果 步驟三:向下填充,批量處理 鼠標定位到單元格右下角按住鼠標左鍵向下拖動填充…

Spring Boot 啟動原理揭秘:從 main 方法到自動裝配

Spring Boot 啟動原理揭秘:從 main 方法到自動裝配 引言 Spring Boot 作為 Java 領域最流行的開發框架之一,憑借其“開箱即用”的特性極大地簡化了 Spring 應用的搭建和部署。然而,盡管開發者在日常工作中頻繁使用 Spring Boot 的啟動類&…

OpenCV 與深度學習:從圖像分類到目標檢測技術

一、深度學習:從 “人工設計” 到 “自動學習”1.1 深度學習的定位:AI、機器學習與深度學習的關系人工智能(AI):是一個寬泛的領域,目標是構建能模擬人類智能的系統,涵蓋推理、感知、決策等能力。…

Docker 鏡像推送至 Coding 制品倉庫超時問題排查與解決

Docker 鏡像推送至 Coding 制品倉庫超時問題排查與解決 在將 Docker 鏡像推送至 Coding 的制品倉庫時,可能會遇到 docker push 命令超時失敗的問題。但使用 curl -i http://xxx.coding.xxxx.xx 測試時,連接卻能成功建立。以下是排查過程及解決方案。 問題…