計算機網絡--網絡層

一、網絡層的服務和功能

網絡層主要為應用層提供端對端的數據傳輸服務

  1. 網絡層接受運輸層的報文段,添加自己的首部,形成網絡層分組。分組是網絡層的傳輸單元。
  2. 網絡層分組在各個站點的網絡層之間傳輸,最終到達接收方的網絡層。
  3. 接收方網絡層將運輸層報文段上傳給本地運輸層。

二、IP(Internet Protocol)協議

2.1、定義

????????IP協議是TCP/IP體系網絡層的主要協議,為上層的TCP、UDP協議提供服務,在TCP/IP體系的網絡層中,除了IP協議,還有ICMP、IGMP協議。它負責將數據包從源主機傳輸到目標主機,是整個互聯網通信的基礎。

? ? ? ? IP協議是TCP/IP協議體系的核心協議,通過IP協議可以連接各種不同的網絡,使整個Internet統一為一個巨大的IP網絡。

2.2、特點

  1. 無連接性:IP協議是一種無連接的協議,即在發送數據之前不需要建立連接。每個數據包都是獨立發送的,沒有建立持久的連接。
  2. 不可靠性:IP協議不提供數據包的可靠傳輸。當數據包在傳輸過程中丟失、損壞或重復時,IP協議沒有機制來修復或重新傳輸這些數據包。
  3. 分組交換:IP協議使用分組交換的方式傳輸數據。數據被分成較小的數據包,每個數據包都帶有源地址和目標地址。
  4. 網絡獨立性:IP協議可以在不同類型的網絡上運行,包括以太網、無線網絡等。它允許不同類型的設備可以互相通信。
  5. 簡單性:IP協議被設計為簡單的協議,只提供了數據包的路由功能,不提供數據的校驗、確認等功能。
  6. 封裝性:IP協議使用分層的封裝方式來傳輸數據。它將應用層的數據進行封裝,然后添加IP頭部信息,形成一個IP數據包。
  7. 彈性和可擴展性:IP協議是一種彈性和可擴展的協議,可以適應不同的網絡環境和需求。

2.3、IP地址

2.3.1、概念

????????IP地址是一個32比特(4字節)的二進制數字,采用點分十進制。如下圖:

2.3.2、特點

  1. IP地址是一個邏輯地址,與具體的網絡技術和硬件無關,可以人為設定或通過DHCP服務器動態獲取。
  2. IP地址需要分配給網絡接口,與網絡接口相關聯,一個接口一個IP地址。
  3. 每個IP地址分為兩部分:網絡號和主機號。網絡號代表主機或路由器所處的物理網絡,主機號代表所處物理網絡中的編號。
  4. 同一個物理網絡中的IP地址,它們的網絡號相同,主機號不同。

2.3.2、分類

2.3.2.1、五類IP地址

  1. A類網絡:網絡位占8個比特,第一位固定為0,所以最小的網絡號為0(0000 0000),最大的網絡號為127(0111 1111)。
  2. B類網絡:網絡位占16個比特,前兩位固定為10。
  3. C類網絡:網絡位占24個比特,前三位固定為110。
  4. D類網絡:以224~239之間的數字開頭,作為組播地址預留。因特網上A、B、C類網絡都是單播地址,D類網絡為組播地址,常用于電話會議或視頻會議等。
  5. E類網絡:以240~254之間的數字開頭,作為保留地址。

注:D、E類網絡都不會用來分配給主機或路由器。

2.3.2.2、特殊IP地址
全0和全1地址

全0和全1地址有特殊含義,不分配給主機和路由器。如下圖:

環回地址

網絡號為127的地址作為環回地址,保留作為本地軟件測試,不分配。最常用的環回地址為127.0.0.1,代表本機,即無論網絡接口分配的IP地址是多少,127.0.0.1總是代表主機或路由器本身。

私有IP地址

私有IP地址(Private IP Addresses)是專門為內部網絡使用的IP地址范圍。這些地址在公共互聯網上不可路由,意味著它們不會與全球范圍內的其他網絡上的IP地址沖突。私有IP地址主要用于企業、組織或家庭網絡中的設備,如計算機、打印機、路由器等。

以下是三個主要的私有IP地址范圍:

  1. 10.0.0.0/8:此范圍包括從10.0.0.0到10.255.255.255的所有IP地址。
  2. 172.16.0.0/12:此范圍包括從172.16.0.0到172.31.255.255的所有IP地址。不過,有時這個范圍會被細分為更小的子網(例如,172.16.0.0/16, 172.17.0.0/16等)。
  3. 192.168.0.0/16:此范圍包括從192.168.0.0到192.168.255.255的所有IP地址。這個范圍是家庭和小型辦公室網絡中最常見的。

當內部網絡中的設備需要訪問公共互聯網時,通常會使用網絡地址轉換(NAT)技術。NAT允許私有IP地址與公共IP地址之間進行映射,這樣內部網絡中的設備就可以通過公共IP地址與外部網絡進行通信,同時保持其私有IP地址的隱私性。

2.4、IP子網

2.4.1、定義

  • 子網(Subnet)或子網絡是指在一個更大的網絡中劃分出來的較小的、相對獨立的網絡單元。
  • 子網允許將一個給定的網絡分為若干個更小的部分,這些更小的部分被稱為子網。

2.4.2、作用

2.4.2.1、充分利用IP地址
  1. IP地址由網絡號和主機號組成,但并非所有的網絡號和主機號都會被使用,尤其在大型網絡中。
  2. 子網劃分可以把一個大的網絡地址分配給更多較小的網絡,更有效地使用IP地址空間。
2.4.2.2、限定廣播的傳播
  1. 子網劃分將原有的同處于同一個網段上的主機分成了不同的網段或子網,同時也將原來的一個廣播域劃分成了若干個較小的廣播域。
  2. 廣播數據包只能在它特定的廣播域中傳播,減少廣播風暴對網絡的影響。
2.4.2.3、更安全的管理網絡
  1. 網絡中處于同一個子網內的主機才能直接互通,不同子網之間不能直接通信(但可通過路由器或網關進行)。
  2. 這種劃分方式增加了網絡的安全性,尤其對于人事、財務等敏感性部門。

2.4.3、子網掩碼

  • 不能單獨存在,必須結合IP地址一起使用。
  • 作用:區分IP地址中的 網絡地址 和 主機地址 。
  • 32位的子網掩碼由前面連續的若干個1和后面連續的0組成,1的個數就是對應IP地址網絡前綴的長度。

?IP地址和子網掩碼 按位與 操作,得到地址對應的網絡地址。? 1 & ? = ? ,? 0 & ? = 0

2.4.4、子網劃分

2.4.4.1、固定長度子網劃分

每個子網包含相同數量的主機地址,適用于小型網絡或對IP地址規劃要求不太復雜的場景。

特點:子網大小固定,簡化管理。

示例:

有一個C類IP地址(如192.168.1.0/24),并且你希望將其劃分為4個子網,每個子網包含62臺主機(減去網絡地址和廣播地址),可以使用/26的子網掩碼(255.255.255.192)。使用/26的子網掩碼,你可以將192.168.1.0/24網絡劃分為以下四個子網:

  • 子網1:192.168.1.0/26(地址范圍:192.168.1.1-192.168.1.62)
  • 子網2:192.168.1.64/26(地址范圍:192.168.1.65-192.168.1.126)
  • 子網3:192.168.1.128/26(地址范圍:192.168.1.129-192.168.1.190)
  • 子網4:192.168.1.192/26(地址范圍:192.168.1.193-192.168.1.254)
2.4.4.2、可變長度子網劃分(VLSM)

允許每個子網包含不同數量的主機地址,更適用于大型網絡。

特點:子網大小不固定,更高效的地址利用。

示例:

假設一個組織擁有一個C類IP地址段192.168.1.0/24,并希望將其劃分為以下子網:

  • 子網1:需要50臺主機
  • 子網2:需要100臺主機
  • 子網3:需要20臺主機

可以使用VLSM進行如下劃分:

  • 子網1:使用/25的子網掩碼(255.255.255.128),子網地址為192.168.1.0/25,可分配主機地址為192.168.1.1-192.168.1.126。
  • 子網2:同樣使用/25的子網掩碼,子網地址為192.168.1.128/25,可分配主機地址為192.168.1.129-192.168.1.254。
  • 子網3:由于只需要20臺主機,可以使用更長的子網掩碼來節省IP地址。這里可以使用/27的子網掩碼(255.255.255.224),子網地址為192.168.1.192/27,可分配主機地址為192.168.1.193-192.168.1.222。

2.5、無分類編址CIDR

2.5.1、定義

無分類編址(CIDR):這是一種IP地址分配方案,它消除了傳統的IP地址分類(A類、B類、C類)的概念,并通過使用可變長度的子網掩碼(VLSM)來定義網絡地址和主機地址的邊界。

2.5.2、特點:

  1. 靈活性:CIDR允許根據實際需求分配不同大小的IP地址塊,從而提高了IP地址的利用率。
  2. 可擴展性:由于CIDR不再受限于固定的IP地址分類,因此它可以更好地適應網絡規模的擴展。
  3. 簡化路由:CIDR使用路由聚合技術,將多個小的IP地址塊合并為一個大的IP地址塊,從而減少了路由器中的路由表項,提高了路由效率。

2.5.3、工作原理

  • 子網掩碼:CIDR使用可變長度的子網掩碼(VLSM)來定義網絡地址和主機地址的邊界。子網掩碼的長度決定了網絡地址部分和主機地址部分的位數。
  • 前綴表示法:CIDR使用前綴表示法來表示IP地址和子網掩碼。例如,/24表示子網掩碼為255.255.255.0,/16表示子網掩碼為255.255.0.0。
  • 地址塊計算:通過指定前綴長度,可以計算出子網內的可用IP地址數量。例如,/24表示的子網有256個IP地址(包括網絡地址和廣播地址),其中254個可用于主機。

2.5.4、應用

  • 網絡設計:CIDR在網絡設計中被廣泛應用,用于規劃和分配IP地址空間。通過CIDR,可以更容易地實現網絡的層次化設計和路由聚合。
  • IP地址分配:服務提供商(ISP)使用CIDR來分配IP地址給其客戶。由于CIDR的靈活性,ISP可以根據客戶的需求分配適當大小的IP地址塊。

2.5.5、示例

假設一個ISP擁有一個C類IP地址段192.168.1.0/24,并希望將其劃分為兩個子網,每個子網包含128個主機地址。使用CIDR,ISP可以將該地址段劃分為兩個/25的子網:

  • 子網1:192.168.1.0/25(地址范圍:192.168.1.1-192.168.1.126)
  • 子網2:192.168.1.128/25(地址范圍:192.168.1.129-192.168.1.254)

2.6、IP數據報

2.6.1、組成

  • IP數據報由首部和數據兩部分組成。
  • 首部的前一部分是固定長度,共20字節,是所有IP數據報必須具有的。
  • 在首部的固定部分的后面是一些可選字段,其長度是可變的。

2.6.2、首部字段

  • 版本號(Version):占4比特,表示IP協議的版本。接收方會首先檢查這個字段,如果不支持其中聲明的版本,就會拒絕該數據報。廣泛使用的版本號為4(即IPv4)該字段值為0100。
  • 首部長度(Header Length):占4比特,表示IP數據報首部的長度,最大十進制數值是15,單位為32位字長(即4字節)。因此,當首部長度為15時,首部長度就達到60字節。
  • 區分服務(Type of Service, TOS):占8比特,用于獲取更好的服務,但在實際中較少使用,多數為全0。
  • 總長度(Total Length):指首部和數據之和的長度,單位為字節。總長度字段為16比特,因此數據報的最大長度為2^16-1=65535字節。但實際上,很少有超過1500字節的IP數據報。
  • 標識(Identification):占16比特,用于標識一個數據報。當數據報由于長度超過網絡的MTU而必須分片時,這個標識字段的值就被復制到所有的數據報的標識字段中。
  • 標志(Flags):占3比特,包含以下標志位:最低位是MF(More Fragments):用于指示是否還有后續的分片。中間位是DF(Don't Fragment):用于指示路由器是否可以對數據報進行分片。最高位保留,必須為0。
  • 片偏移(Fragment Offset):占13比特,當數據報被分片時,此字段表示該片在原始數據報中的相對位置(以8字節為單位)。
  • 生存時間(Time to Live, TTL):占8比特,用于限制數據報在因特網上的生存時間,防止數據報在網絡中無限循環。每經過一個路由器,TTL值減1,當TTL值為0時,數據報將被丟棄。
  • 協議(Protocol):占8比特,用于指示數據報所攜帶的數據所使用的協議,如TCP、UDP、ICMP等。
  • 首部校驗和(Header Checksum):占16比特,用于校驗IP數據報首部的完整性。
  • 源地址(Source Address):占32比特(4字節),表示發送數據報的設備的IP地址。
  • 目的地址(Destination Address):占32比特(4字節),表示接收數據報的設備的IP地址。
  • 選項(Options):可變長度,用于攜帶額外的控制信息。在標準IPv4中,選項字段很少使用,但在某些特殊情況下(如源路由)可能會被用到。
  • 數據(Data):包含IP數據報的有效載荷,即上層協議(如TCP、UDP)的數據。

2.6.3、特點

  • 無連接:IP協議不維護網絡單元(即路由器)中數據報相關的任何鏈接狀態信息。
  • 不可靠:IP協議不保證數據能準確地到達接收端,只是盡自己最大努力傳送。
  • 無狀態:通信雙方不同步傳輸數據的狀態信息,發送、傳輸、接收都是相互獨立的、沒有上下文關系的。

2.6.4、作用

IP數據報可以攜帶各種類型的信息,如文本、音頻和視頻等,實現互聯網上的連接功能。

它對數據包傳輸進行監測和確認,有助于保證數據傳輸的完整性和可靠性。

IP數據報還可以用于管理和監測網絡性能,以及網絡安全方面的追蹤和防御。

2.6.5、IPv4與IPv6的區別

IPv4數據報頭部大小為20字節(固定部分),除非存在選項(少見)。

IPv6數據報頭部長度固定為40字節,不存在選項,但可以有擴展頭部。

2.6.6、應用

所有TCP、UDP、ICMP和IGMP數據都通過IP數據報傳輸。

IP數據報提供了一種盡力而為、無連接的數據報交付服務。

三、路由協議

3.1、定義

????????路由協議(Routing Protocol)是一種在路由器之間共享路由信息,以支持可路由協議的機制。它通過創建路由表來描述網絡拓撲結構,并與路由器協同工作,執行路由選擇和數據包轉發功能。

3.2、作用

路由協議的主要作用包括:

  1. 尋找最佳路徑:路由協議通過建立和更新路由表,尋找到達目標節點的最佳路徑。它考慮了各種因素,如距離、帶寬、擁塞狀況等,以確保數據包能夠快速、可靠地傳輸。
  2. 轉發數據包:根據路由表信息,路由協議將數據包從源節點轉發到目標節點。它負責選擇適當的路徑,并在網絡中的各個節點上進行轉發操作,以確保數據包按照正確的路徑到達目標。

3.3、分類

路由協議可以根據不同的標準進行分類,包括:

  1. 根據作用范圍:
    1. 內部網關協議(IGP):在一個自治系統(AS)內部運行,常見的IGP協議包括RIP、OSPF和IS-IS。
    2. 外部網關協議(EGP):運行于不同自治系統之間,BGP是目前最常用的EGP。
  2. 根據使用算法:
    • 距離矢量(Distance-Vector)協議:包括RIP和BGP(BGP也被稱為路徑矢量協議)。
    • 鏈路狀態(Link-State)協議:包括OSPF和IS-IS。
  3. 根據目的地址類型:
    • 單播路由協議:包括RIP、OSPF、BGP和IS-IS等。
    • 組播路由協議:包括PIM-SM、PIM-DM等。
  4. 根據IP協議版本:
    • IPv4路由協議:包括RIP、OSPF、BGP和IS-IS等。
    • IPv6路由協議:包括RIPng、OSPFv3、IPv6BGP和IPv6IS-IS等。

3.4、路由表

? ? ? ? 路由表是計算機網絡中的一個關鍵組件,特別是在互聯網協議(IP)網絡中。它用于決定數據包從源地址到目的地址的最佳路徑。簡單來說,路由表就是路由器用來選擇數據包傳輸路徑的決策表。通過路由表才能精確定位網絡,傳輸信息。

? ? ? ? 路由表的基本信息和重點:

  1. 目的網絡/子網:這是路由表中最關鍵的一列,它表示了數據包的目標IP地址或子網。路由器會檢查數據包的目的IP地址,并在路由表中查找匹配項。
  2. 子網掩碼:子網掩碼用于確定目的IP地址的網絡部分。路由器將目的IP地址與子網掩碼進行邏輯與操作,然后與路由表中的網絡部分進行比較。
  3. 下一跳地址:這是數據包應該發送到的下一個路由器的IP地址。在某些情況下,下一跳可能是直接連接的設備(如主機),但在大多數情況下,它是另一個路由器。
  4. 輸出接口:這是數據包應該離開路由器的物理或邏輯接口。它可以是特定的以太網端口、Wi-Fi接入點或其他任何網絡接口。
  5. 度量值(或稱為“成本”或“距離”):這是一個可選字段,用于表示到達目的網絡的成本或距離。路由器可以使用這個字段來選擇最佳路徑(例如,使用最短路徑優先算法)。
  6. 管理距離:這也是一個可選字段,用于確定路由來源的可信度。不同的路由協議(如RIP、OSPF、BGP等)有不同的管理距離值。當路由器有多個可用的路由時,它將選擇具有最低管理距離的路由。
  7. 路由類型:這表示路由是如何被學習或發現的。路由可以是靜態的(手動配置的)或動態的(通過路由協議自動學習的)。

3.5、路由類型

3.5.1、靜態路由

3.5.1.1、定義

????????路由表可以手動配置。

? ? ? ? 當網絡管理員配置了路由器接口的IP地址、子網掩碼,啟動接口后,路由表中就會出現直連網絡的路由。

? ? ? ? 網絡管理員還可以手動配置到達其他網絡的路由,創建路由表項。這樣的網絡就是靜態路由。配置靜態路由要求管理員對網絡拓撲結構和網絡狀態有清晰的了解,并且當網絡變化時,要手動配置。

3.5.1.2、特點
  1. 手動配置:靜態路由需要網絡管理員根據實際網絡拓撲結構和需求進行手動配置。管理員需要指定目標網絡的IP地址、子網掩碼、下一跳地址(如果有的話)以及數據包離開路由器的接口。
  2. 路由路徑相對固定:由于靜態路由是手動配置的,因此每個配置的靜態路由在本地路由器上的路徑基本上是不變的,除非管理員自己修改。
  3. 永久存在:一旦靜態路由被配置,它會永久地存在于路由表中,除非管理員手動刪除或相關接口關閉、下一跳IP地址不可達。
  4. 不可通告性:靜態路由信息在默認情況下是私有的,不會向其他路由器通告。但管理員可以通過其他手段(如重發布靜態路由)來使其他路由器獲知這些信息。
  5. 單向性:靜態路由只提供單向的路由信息,即只指定了數據包從當前路由器到達目標網絡的路徑。為了實現雙向通信,需要在相關路由器上配置回程靜態路由。
  6. 接力性:如果某條靜態路由需要經過多個路由器(跳數大于1),則必須在每個中間路由器上配置到達相同目標網絡或節點的靜態路由。

3.5.1.3、適用范圍

????????靜態路由適用于中小型網絡,尤其是網絡拓撲結構相對固定、不需要頻繁變動的場景。它的優點包括配置簡單網絡安全保密性高(因為不需要路由器之間頻繁交換路由信息)、不占用網絡帶寬(因為不會產生更新流量)。然而,在大型和復雜的網絡環境中,靜態路由可能難以適應網絡拓撲結構和鏈路狀態的變化,需要大范圍地調整路由信息,因此不太適用。

3.5.2、動態路由

3.5.2.1、定義

? ? ? ? 路由器之間可以通過路由協議,自主學習來獲得的路由信息,這樣的路由被稱為動態路由。使用路由協議動態構建路由表不需要人工參與,并能自動適應網絡狀態的變化更新路由表,大型網絡或狀態變化頻繁的網絡通常會采用動態路由協議。

3.5.2.2、特點
  1. 自動計算與調整:動態路由允許路由器之間通過交換路由信息來自動計算路由,并根據網絡狀態的變化實時調整路由表。這種機制使得路由器能夠自動適應網絡拓撲結構的變化,無需人工干預。
  2. 基于路由協議:動態路由的實現依賴于特定的路由協議,如RIP、OSPF、IS-IS、BGP等。這些協議定義了路由器之間如何交換路由信息以及如何計算路由。
  3. 占用網絡帶寬:由于動態路由需要路由器之間頻繁地交換路由信息,因此會占用一定的網絡帶寬。但是,這種占用通常是可接受的,因為動態路由能夠帶來更高的網絡靈活性和可用性。
  4. 靈活性高:動態路由能夠自動適應網絡狀態的變化,因此具有很高的靈活性。當網絡拓撲結構發生變化時,動態路由能夠迅速調整路由表,確保數據包的正常傳輸。

3.5.2.3、原理
  1. 路由信息交換:路由器之間通過特定的路由協議交換路由信息,包括目標網絡的IP地址、子網掩碼、下一跳地址等。這些信息被用于計算路由表。
  2. 路由表計算:路由器根據收集到的路由信息,使用特定的路由算法(如距離向量算法、鏈路狀態算法等)計算路由表。這些算法會考慮多個因素,如路徑長度、帶寬、延遲等,以確定最佳路徑。
  3. 路由表更新:當網絡狀態發生變化時(如鏈路故障、路由器宕機等),路由器會重新計算路由表并更新相應的路由信息。這種更新過程是自動的,無需人工干預。

3.5.2.4、優缺點

優點

  • 自動適應網絡狀態變化,無需人工干預。
  • 能夠迅速響應網絡拓撲結構的變化,確保數據包的正常傳輸。
  • 提高了網絡的靈活性和可用性。

缺點

  • 需要占用一定的網絡帶寬來交換路由信息。
  • 在某些情況下,可能會產生路由環路等問題,需要采取相應的措施來解決。

3.5.2.5、常見的動態路由協議
  • RIP(路由信息協議):基于距離向量的路由協議,實現簡單,開銷較小。但是,它只支持小型網絡,并且存在路由環路的風險。(RIP配置博客鏈接)
  • OSPF(開放式最短路徑優先):基于鏈路狀態的路由協議,適用于大型網絡。它使用Dijkstra算法來計算最短路徑,并且具有較高的收斂速度。
  • BGP(邊界網關協議):用于在自治系統之間交換路由信息的協議。它是唯一一個用來處理像因特網大小的網絡的協議。

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

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

相關文章

如何在 Java 應用中使用 Jedis 客戶端庫來實現 Redis 緩存的基本操作

本人詳解 作者:王文峰,參加過 CSDN 2020年度博客之星,《Java王大師王天師》 公眾號:JAVA開發王大師,專注于天道酬勤的 Java 開發問題中國國學、傳統文化和代碼愛好者的程序人生,期待你的關注和支持!本人外號:神秘小峯 山峯 轉載說明:務必注明來源(注明:作者:王文峰…

構建高效盲盒小程序:數據庫設計、安全策略與性能優化

在移動互聯網時代,盲盒經濟以其獨特的魅力迅速崛起,成為連接消費者與商品的新橋梁。盲盒小程序作為這一趨勢的載體,不僅要求用戶體驗流暢,還需確保數據安全與性能卓越。本文將從數據庫設計、安全策略及性能優化三個方面&#xff0…

堆與棧的概念(RTOS)

目錄 #堆在RTOS的概念 #相關代碼表示 #堆相關特點 #棧在RTOS中的概念 #棧的代碼表示 #棧的相關特點 #為什么每個RTOS任務都要有自己的棧 前言:本篇參考韋東山老師的RTOS,連接放在最后 #堆在RTOS的概念 本文所指的堆與棧并不是數據結構中&#xff…

【unity實戰】在Unity中使用有限狀態機制作一個敵人AI

最終效果 文章目錄 最終效果前言有限狀態機的主要作用和意義素材下載邏輯圖敵人動畫配置優雅的代碼文件目錄狀態機代碼定義敵人不同狀態切換創建敵人效果更多的敵人參考源碼完結 前言 有限狀態機以前的我嗤之以鼻,現在的我逐幀分析。其實之前我就了解過有限狀態機&…

2.(vue3.x+vite)調用iframe的方法(vue編碼)

1、效果預覽 2.編寫代碼 (1)主頁面 <template><div><button @click="sendMessage">調用iframe,并發送信息

【udp報文】udp報文未自動分片,報文過長被攔截問題定位

問題現象 某局點出現一個奇怪的現象&#xff0c;客戶端給服務端發送消息&#xff0c;服務端僅能收到小部分消息&#xff0c;大部分消息從客戶端發出后&#xff0c;服務端都未收到。 問題定位 初步分析 根據現象初步分析&#xff0c;有可能是網絡原因導致消息到服務端不可達&a…

【C語言】文件的順序讀寫

©作者:末央&#xff06; ©系列:C語言初階(適合小白入門) ©說明:以凡人之筆墨&#xff0c;書寫未來之大夢 目錄 前言字符輸入輸出函數 - fgetc和fputc文本行輸入輸出函數 - fgets和fputs格式化輸入輸出函數 - fscanf和fprintf 前言 對文件數據的讀寫可以分為順序…

Unity3D 打造基于AStar的尋路與導航詳解

在游戲開發中&#xff0c;尋路與導航是一個至關重要的功能&#xff0c;它能夠使游戲角色自動找到最優路徑&#xff0c;避開障礙物&#xff0c;實現自動導航&#xff0c;從而提升游戲體驗。AStar&#xff08;A*&#xff09;算法作為一種廣泛應用的尋路算法&#xff0c;因其高效性…

關于多線程的使用方法

多線程在python中應用比較廣泛&#xff0c;但是因為python中有GIL鎖的緣故&#xff0c;在多線程中看起來是并發的執行的&#xff0c;在宏觀上是并發執行的&#xff0c;但是在微觀上是一個接著一個執行。 在python中使用多線程比較簡單&#xff0c;是一套固定的模版。 from qu…

PHP利用GD庫實現圖片合成功能方法

在程序項目開發的過程中我們免不了要實現一種功能。例如海報的生成&#xff0c;照片和文字合成一張新的圖片。php中怎么實現 實現功能 文字和照片合成一張新的照片&#xff0c;并且自適應換行并加上簽名和日期&#xff0c;加上字體樣式&#xff0c;下面我們就開實現該功能 實現…

Seal^_^【送書活動第8期】——《ChatGLM3大模型本地化部署、應用開發與微調》

Seal^_^【送書活動第8期】——《ChatGLM3大模型本地化部署、應用開發與微調》 一、參與方式二、本期推薦圖書2.1 作者建語2.2 編輯推建2.3 圖書簡介2.4 前 言2.5 目 錄 三、正版購買 大模型領域 既是繁星點點的未知宇宙&#xff0c;也是蘊含無數可能的廣闊天地&#xff0c; 正…

深入理解 Linux 內核架構

目錄 引言內核概念Linux 內核的基本組成 進程管理內存管理文件系統設備驅動網絡棧內核結構 內核態與用戶態內核模塊系統調用中斷與異常處理內核同步機制Linux 內核使用場景常用的內核命令與工具內核調試與性能優化總結 1. 引言 Linux 內核是現代計算機系統的核心組件之一&am…

python--基礎知識點--協程

協程由用戶態控制&#xff0c;不由內核控制1個線程中可以開很多協程協程切換是在用戶態控制不由內核控制&#xff0c;切換時資源開銷小使用方式&#xff1a;async def、await可等待對象(協程對象、Future對象、task對象(是Future對象的子類)->io等待)、事件循環使用場景&…

idea創建自定義的maven spark scala archetype腳手架

一&#xff1a;先創建一個Maven項目net.alchim31.maven&#xff08;選該模板&#xff0c;得要等一會兒才能加載出來&#xff09; 之后將自己的目錄結構建立好&#xff0c;最好不要有空目錄&#xff0c;可能會因為沒有文件在install的時候編譯不進去 pom中內容也按照自己的需要改…

Stable Diffusion web UI 插件

2024.7.3更新&#xff0c;持續更新中 如果需要在linux上自己安裝sd&#xff0c;參考&#xff1a;stable diffusion linux安裝 插件復制到 /stable-diffusion-webui/extensions 目錄下&#xff0c;然后重新啟動sd即可 一、插件安裝方法 每種插件的安裝方法可能略有不同&#xf…

蘋果p12證書最簡單最新申請流程

使用uniapp打包&#xff0c;在ios上打正式包需要蘋果的p12證書和證書profile文件&#xff0c;點進去uniapp的ios證書申請教程&#xff0c;通篇就是使用mac電腦申請的教程&#xff0c;假如沒有mac電腦就無法繼續了。 因此&#xff0c;假如沒有mac電腦的同志們&#xff0c;可以參…

高薪程序員必修課-Java中為什么不建議使用Executors來創建線程池?

目錄 前言 原因分析 1. newFixedThreadPool 和 newSingleThreadExecutor 示例&#xff1a; 2. newCachedThreadPool 示例&#xff1a; 建議的替代方法 示例&#xff1a; 解釋&#xff1a; 總結 前言 在Java中&#xff0c;Executors 類提供了幾個工廠方法來創建不同類型…

RAG開源項目Qanything源碼閱讀3-在線推理

原文&#xff1a;前沿重器[47] | RAG開源項目Qanything源碼閱讀3-在線推理 項目&#xff1a;https://github.com/netease-youdao/QAnything 第一篇&#xff1a;RAG開源項目Qanything源碼閱讀1-概述服務 第二篇&#xff1a;RAG開源項目Qanything源碼閱讀2-離線文件處理 0&#x…

Pytest+Allure+Yaml+PyMsql+Jenkins+Gitlab接口自動化(五)Jenkins配置

一、背景 Jenkins&#xff08;本地宿主機搭建&#xff09; 拉取GitLab(服務器)代碼到在Jenkins工作空間本地運行并生成Allure測試報告 二、框架改動點 框架主運行程序需要先注釋掉運行代碼&#xff08;可不改&#xff0c;如果運行報allure找不到就直接注釋掉&#xff09; …

中英雙語介紹美國的州:路易斯安那州(Louisiana)

中文版 路易斯安那州簡介 路易斯安那州位于美國南部&#xff0c;以其豐富的歷史文化、多樣的自然景觀和獨特的音樂和美食傳統而聞名。以下是對路易斯安那州的詳細介紹&#xff0c;包括其地理位置、人口、經濟、教育、文化和主要城市。 地理位置 路易斯安那州東臨密西西比州…