[計算機網絡實驗]頭歌 實驗二 以太網幀、IP報文分析(含部分分析)

目錄

第1關:Wireshark基本使用入門

【實驗目的】

【實驗環境】

【本地主機、平臺虛擬機之間數據傳遞】

wireshark基本用法】

1、wireshark主界面

2、抓取分組操作

3、Wireshark窗口功能

4、篩選分組操作

【實驗操作】

?編輯

第2關:Ethernet幀分析

【以太網幀格式】

1、Ethernet II幀格式

2、IEEE 802.3 幀格式:

IEEE 802.2 LLC的頭構成:

3、IEEE 802.3 SNAP

【實驗任務】

第3關:IP報文分析

1、MAC幀與數據負載

2、IP數據報格式:

3、ICMP報文格式

4、Ping 命令

5、traceroute命令與工作原理

【實驗任務】


第1關:Wireshark基本使用入門

【實驗目的】

1、掌握wireshark工具的基本使用方法

【實驗環境】

1、頭歌基于Linux的虛擬機桌面系統

2、網絡報文分析工具wireshark

3、瀏覽器firefox

【本地主機、平臺虛擬機之間數據傳遞】

1、文本的復制與粘貼 操作入口:點擊虛擬機桌面右上角“工具欄”,選擇“復制粘貼”菜單項。 特點:可雙向復制與粘貼。

2、文件傳輸 操作入口:點擊虛擬機桌面右上角“工具欄”,選擇“上傳文件”或“下載文件”菜單項。

3、截圖 可以使用本地機的截圖工具,對虛擬機桌面應用進行截圖。?

wireshark基本用法】

Wireshark是一種開源的網絡協議分析工具,主要功能有捕捉報文、解碼分析、報文統計。官方下載地址:Wireshark · Download

1、wireshark主界面

雙擊桌面上的圖標 ,可啟動Wireshark。啟動后的用戶界面如下圖所示,中間列表部分列出了所有網絡接口。

Wireshark主界面

2、抓取分組操作

A.單擊中間網絡接口列表中,某一網絡接口如eth0,選中網絡接口,通過菜單“捕獲”-“開始”或工具欄中的

按鈕1

按鈕,開始捕獲選定接口中的網絡分組;

B.也可以雙擊中間網絡接口列表中,某一網絡接口如eth0,可以開始抓取分組;

C.通過菜單“捕獲”-“停止”或工具欄中的按鈕

按鈕2

停止抓取分組。

D.通過菜單“捕獲”-“重新開始”或工具欄中的按鈕

按鈕3

重新開始抓取。

3、Wireshark窗口功能

(1)命令菜單和工具欄 命令菜單位于窗口的最頂部,是標準的下拉式菜單。最常用菜單命令有兩個: 文件、 捕獲。 文件 菜單允許你保存捕獲的分組數據,或打開一個已被保存的捕獲分組數據文件,或退出 WireShark 程序。 捕獲 菜單允許你開始捕獲分組。 工具欄位于命令菜單的下方,提供常用功能的快捷方式。如

開始

:開始捕獲、

停止

:停止捕獲、

重新開始

:重新抓取分組。

(2)顯示過濾規則 在該字段中,可以填寫協議的名稱或其他信息,根據此內容可以對分組列表窗口中的分組進行過濾。

(3)捕獲分組列表(報文摘要窗口) 按行顯示已被捕獲的分組內容,其中包括: WireShark 賦予的分組序號、捕獲時間、分組的源地址和目的地址、協議類型、分組中所包含的協議說明信息。單擊某一列的列名,可以使分組按指定列進行排序。 在該列表中,所顯示的協議類型是發送或接收分組的最高層協議的類型。

(4)分組頭部明細(報文解碼窗口) 顯示捕獲分組列表窗口中被選中分組的頭部詳細信息。包括:與以太網幀有關的信息,與包含在該分組中的 IP 數據報有關的信息。 單擊以太網幀或 IP 數據報所在行左邊的向右或向下的箭頭可以展開或最小化相關信息。如果利用 TCP 或 UDP 承載分組, WireShark 也會顯示 TCP 或 UDP 協議頭部信息。分組最高層協議的頭部字段也會顯示在此窗口中。

(5)分組內容窗口(報文內容窗口) 以 ASCII 碼和十六進制兩種格式顯示被捕獲幀的完整內容。

4、篩選分組操作

通常,分組列表窗口中會顯示許多類型的分組。即使僅僅是下載了一個網頁,但是還有許多其他協議在您的計算機上運行,只是用戶所看不見。可以在中間過濾窗口中輸入過濾的分組協議如http, 選擇應用按鈕,就可以只讓HTTP分組消息顯示在分組列表窗口。

窗口

【實驗操作】

1、打開wireshark ,開始抓取網絡接口eth0上的分組,將窗口最小化;

雙擊eth0開始抓取分組

2、打開瀏覽器,訪問http://www.baidu.com, 等待網頁打開完畢;

3、切換到Wireshark窗口,并停止抓取分組;

? ? ? ? 紅色按鈕停止

4、利用分組過濾功能,過濾出http分組;在報文摘要窗口中點擊選取第1個http報文;

5、對當前報文的頭部明細窗口進行截圖,保存到實驗報告中,課后分析該報文,從外到內分別使用了什么協議,對應網絡體系結構的哪一層?

6、將分組列表中出現的協議名稱,順序填入代碼文件窗口首行末尾,不可修改原有的提示內容(相同協議只填寫一次,用符號,分隔)。

7、使用Wireshark文件菜單,將所捕獲的所有http報文保存到某個自定義的文件中,并下載到本地主機中。

  1. 對當前報文的頭部明細窗口進行截圖,保存到實驗報告中,課后分析該報文,從外到內分別使用了什么協議,對應網絡體系結構的哪一層?

分析:

- Frame 3958: 數據包的編號。

- 399 bytes on wire (3192 bits), 399 bytes captured (3192 bits) on interface 0: 數據包的大小,以字節和比特表示。

- Ethernet II, Src: 32: bd:db:e7:64:4b (32: bd:db:e7:64:4b), Dst: 5e:ae:36:ab:cd:e6 (5e:ae:36:ab:cd:e6): 數據包的以太網協議頭部信息,包括源MAC地址和目的MAC地址。

- Internet Protocol Version 4,Src: 172.16.160.16, Dst: 34.107.221.82: 數據包的IP協議頭部信息,包括源IP地址和目的IP地址,使用的是IPv4協議。

- Transmission Control Protocol, Src Port: 39328, Dst Port: 80,Seq: 1, Ack: 1, Len: 333: 數據包的TCP協議頭部信息,包括源端口號和目的端口號,序列號和確認號,以及數據長度。

- Hypertext Transfer Protocol: 數據包的應用層協議頭部信息,使用的是HTTP協議。

該報文從外到內分別使用了以下協議:

1.以太網協議(Ethernet II)

2.網絡層協議(IPv4)

3.傳輸層協議(TCP)

4.應用層協議(HTTP)

對應網絡體系結構的哪一層:

1.以太網協議(Ethernet II):數據鏈路層

2.網絡層協議(IPv4):網絡層

3.傳輸層協議(TCP):傳輸層

4.應用層協議(HTTP):應用層

第2關:Ethernet幀分析

【以太網幀格式】

以太幀有很多種類型。不同類型的幀具有不同的格式和 MTU 值。但在同種物理媒體上都可同時存在。

(1)以太網第二版或者稱之為 Ethernet II 幀,DIX 幀,是最常見的幀類型。并通常直接被 IP 協議使用;

(2)Novell 的非標準 IEEE 802.3 幀變種;

(3)IEEE 802.3幀(后跟邏輯鏈路控制(LLC) 幀);

(4)子網接入協議(SNAP)幀。

1、Ethernet II幀格式

以太網中大多數的數據幀使用的是 Ethernet II 格式:

以太幀

Ethernet II 類型以太網幀的最小長度為 64 字節(6+6+2+46+4),最大長度為 1518 字節(6+6+2+1500+4)。其中:

(1)前 12 字節分別標識出發送數據幀的源節點 MAC 地址和接收數據幀的目標節點 MAC 地址(2)接下來的 2 個字節標識出以太網幀所攜帶的上層數據類型,如 16 進制數0x0800代表 IP 協議數據,16 進制數0x86dd代表 IPv6 協議數據,16 進制數0x809B代表 AppleTalk 協議數據,16 進制數0x8138代表 Novell 類型協議數據等;

(3)在不定長的數據字段(Data):其長度是 46 至 1500 字節;

(4)4 個字節的幀校驗序列(Frame. Check Sequence,FCS),采用 32 位 CRC 循環冗余校驗對從“目標 MAC 地址”字段到“數據”字段的數據進行校驗。

2、IEEE 802.3 幀格式:

802.3幀格式

各字段說明如下: (1)D-MAC && S-MAC:分別表示標識目標地址和源地址。它們均為 6 個字節長。如果傳輸出去的目標地址第一位是 0,則表示這是一個普通地址;如果是 1, 則表示這是一個組地址。 (2)Length / Type :通常這個字段用于指定報文頭后所接的數據類型。通常使用的值包括:IPv4(0x0800), IPv6(0x86DD), ARP(0x0806)。 而值0x8100代表一個 Q-tagged 幀(802.1q)。通常一個基礎的以太網幀長為 1518 字節,但是更多的新標準把這個值擴展為 2000 字節。 (3)MAC Client Data: 數據主體,由 LLC及 Data 構成。最小長度為 48 字節(加上幀頭 12 字節,CRC4 字節剛好 64 字節), 當數據主體小于 48 字節時,會添加 pad 字段。選取最小長度是出于沖突檢測的考慮(CSMA/CD)。而數據字段最大長度為 1502 字節。

IEEE 802.2 LLC的頭構成:

SNAP

(A)DSAP 目的服務訪問字段,1 字節長,指明幀的目的上層協議類型; (B)ASAP 源服務訪問字段,1 字節長,指明幀的源上層協議類型; (C)control 控制 1 字節或者 2 字節,長度要看被封裝的 LLC 數據類型,是 LLC 數據報(類型1)1 字節,LLC 對話的一部分(類型2)2 字節。類型1 表明是無連接的,不可靠的 LLC 數據報,控制字段用0x03指明;類型 2 表明是面向連接可靠的 LLC 會話。 (4)FCS(Frame Check Sequence):也叫 CRC(Cyclic Redundancy Check),CRC 是差錯檢測碼,用來確定接收到的幀比特是否正確。

3、IEEE 802.3 SNAP

雖然 IEEE 802.3 是標準,但沒有被業界采用。以太網 II 已成事實標準。于是 IEEE 802.3 擴展產生 IEEE 802.3 SNAP 來兼容以太網網頭部協議,在 IEEE 802.2 LLC 頭部后插入了 SNAP 頭部。 SNAP 頭部字段構成:

(1)組織代碼 3 字節長,指明維護接下來 2 字節意義的組織,對 IP 和 ARP,該字段被設置為0x00-00-00。

(2)以太網類型 如果組織代碼為0x00-00-00,接下來 2 字節就是以太網類型 IP (0x0800)ARP(0x0806)。 因為增加了 LLC 頭部的 3 字節和 SNAP 頭部的 5 字節所以有效載荷比以太網 II 少 8 個字節。

【實驗任務】

1、切換到終端窗口

?

2、查看虛擬機eth0網卡的MAC地址、IP地址、子網掩碼,并記錄到實驗報告中。 使用命令:ifconfig

3、查看虛擬機網關IP地址 使用命令:route 對應default行

4、查看虛擬機網關MAC地址 使用命令:arp 根據網關IP地址,查ARP表得到對應的MAC地址,記錄到實驗報告中。

5、打開wireshark ,開始抓取網絡接口eth0上的分組,將窗口最小化;(雙擊)

6、打開瀏覽器,訪問http://www.baidu.com, 等待網頁打開完畢;

7、切換到Wireshark窗口,并停止抓取分組;

8、利用分組過濾功能,過濾出http分組;在報文摘要窗口中點擊選取第1個http報文;

9、分析當前報文采用以太網哪種幀格式,把典型字段值記錄到到實驗報告中。

10、確定當前報文的目的MAC地址指向目標(選填:平臺虛擬機的網關MAC地址/主機的MAC地址),并填寫到代碼文件窗口第一行末尾(不要破壞“冒號”之前提示內容)。 注意:填寫內容僅限于范圍(平臺虛擬機、平臺虛擬機的網關、百度服務器、不能確定)

11、在捕獲的報文中,找到一個廣播幀,記錄廣播型MAC地址值(采用標準寫法,16進制、冒號分隔),并填寫到代碼文件窗口第二行末尾(不要破壞“冒號”之前提示內容)。

采用的是Ethernet II幀格式,5a?48?29?f6?bf?25

第3關:IP報文分析

1、MAC幀與數據負載

在TCP/IP網絡內,MAC幀的數據部分只有一個字段,其長度在46到1500字節之間,包含的信息是網絡層傳下來的數據,網絡層常見協議有IP、ARP、ICMP協議,所以MAC幀的數據字段通常是一個IP分組、ARP報文。

MAC幀

2、IP數據報格式:

IP數據報(IP Datagram)是一個與硬件無關的虛擬包, 由首部和數據兩部分組成,其格式如下圖所示。首部的前一部分是固定長度,共20字節,是所有IP數據報必須具有的。在首部的固定部分的后面是一些可選字段,其長度是可變的。首部中的源地址和目的地址都是IP協議地址。

IP報文

1.版本:ip報文中,版本占了4位,用來表示該協議采用的是那一個版本的ip,相同版本的ip才能進行通信。一般此處的值為4,表示ipv4。

2.頭長度:該字段用四位表示,表示整個ip包頭的長度,其中數的單位是4字節。即二進制數0000-1111(十進制數0-15),其中一個最小長度為0字節,最大長度為60字節。一般來說此處的值為0101,表示頭長度為20字節。

3.Tos服務字段:該字段用8位表示。該字段一般情況下不使用。

4.總長度:該字段表示整個ip報文的長度,單位是1字節。能表示的最大字節為2^16-1=65535字節。不過由于鏈路層的MTU限制。超過1480字節后就會被分片(以太幀MTU為1500的情況下,除去20字節的包頭)

5.標識:該字段是ip軟件實現的時候自動產生的,該字段的目的不是為了接受方的按序接受而設置的,而是在ip分片以后,用來標識同一片分片的。方便ip分片的重組。

6.標志:該字段是與ip分片有關的。其中有三位,但只有兩位是有效的,分別為MF,DF,MF。MF標識后面是否還有分片,為1時,表示后面還有分片。DF標識是否能分片,為0表示可以分片

7.片偏移:該字段是與ip分片后,相應的ip片在總的ip片的位置。該字段的單位是8字節。比如,一個長度為4000字節的ip報文,到達路由器。這是超過了鏈路層的MTU,需要進行分片,4000字節中,20字節為包頭,3980字節為數據,需要分成3個ip片(鏈路層MTU為1500),那么第一個分片的片偏移就是0,表示該分片在3980的第0位開始,第1479位結束。第二個ip片的片偏移為185(1480/8),表示該分片開始的位置在原來ip的第1480位,結束在2959。第三片的片偏移為370(2960/8),表示開始的時候是2960位,結束的時候在3979位。

8.TTL:該片表示生存周期,該值占8位。ip分片每經過一個路由器該值減一,它的出現是為了防止路由環路,浪費帶寬的問題。比如,該ip在R1路由器發送到R2路由器。R2路由器又發給R1路由器。防止這種循環。window系統默認為128.

9.協議:該值標識上層的協議。占8位。其中1,標識ICMP、2標識IGMP、6標識TCP、17標識UDP、89標識OSPF。

10校驗和:該值是對整個數據包的包頭進行的校驗。占16位。

11.源地址和目的地址。標識發送ip片的源和目的ip,32位

12.可選項,一般一些特殊的要求會加在這個部分。

3、ICMP報文格式

網絡本身是不可靠的,在網絡傳輸過程中,可能會發生許多突發事件并導致數據傳輸失敗。網絡層的IP協議是一個無連接的協議,它不會處理網絡層傳輸中的故障,而位于網絡層的ICMP協議卻恰好彌補了IP的缺限,它使用IP協議進行信息傳遞,向數據包中的源端節點提供發生在網絡層的錯誤信息反饋。ICMP可以看作是IP協議的伴隨協議。ICMP報文被封裝在IP 數據報發送。

ICMP報文

? 類型:標識生成的錯誤報文,它是ICMP報文中的第一個字段;

? 代碼:進一步地限定生成ICMP報文。該字段用來查找產生錯誤的原因;

? 校驗和:存儲了ICMP所使用的校驗和值。

? 未使用:保留字段,供將來使用,起值設為0

? 數據:包含了所有接受到的數據報的IP報頭。還包含IP數據報中前8個字節的數據;

IP數據包8字節

4、Ping 命令

其主要功能是用于網絡連通測試,通信協議是ICMP,Windows系統下Ping命令格式如下:

ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS] [-r count] [-s count]

[[-j host-list] | [-k host-list]] [-w timeout] target_name 這里對實驗中可能用到的參數解釋如下:

-t :用戶所在主機不斷向目標主機發送回送請求報文 ,直到用戶中斷;

-n count: 指定要 Ping 多少次,具體次數由后面的 count 來指定 ,缺省值為 4;

-l size: 指定發送到目標主機的數據包的大小 ,默認為 32 字節,最大值是 65,527;

-w timeout:指定超時間隔,單位為毫秒;

target_name:指定要 ping 的遠程計算機。

Unix/Linux系統下Ping命令使用格式如下:

ping [-c count] [-s size] target_name

-c count: 指定要 Ping 多少次,具體次數由后面的 count 來指定

-s size: 指定發送到目標主機的數據包的大小,默認為 32 字節

target_name:指定要 ping 的遠程計算機。

5、traceroute命令與工作原理

其主要功能是跟蹤(報文傳輸)沿途所經過的路由,通信協議是ICMP,用于unix、linux系統環境,在Windows系統環境內,對應的命令是tracert。命令格式:Traceroute 目標主機名或IP. Traceroute程序的設計是利用ICMP及IP header的TTL(Time To Live)欄位(field)。首先,traceroute送出一個TTL是1的IP datagram(其實,每次送出的為3個40字節的包,包括源地址,目的地址和包發出的時間標簽)到目的地,當路徑上的第一個路由器(router)收到這個datagram時,它將TTL減1。此時,TTL變為0了,所以該路由器會將此datagram丟掉,并送回一個「ICMP time exceeded」消息(包括發IP包的源地址,IP包的所有內容及路由器的IP地址),traceroute 收到這個消息后,便知道這個路由器存在于這個路徑上,接著traceroute 再送出另一個TTL是2 的datagram,發現第2 個路由器...... traceroute 每次將送出的datagram的TTL 加1來發現另一個路由器,這個重復的動作一直持續到某個datagram 抵達目的地。當datagram到達目的地后,該主機并不會送回ICMP time exceeded消息,因為它已是目的地了,那么traceroute如何得知目的地到達了呢?Traceroute在送出UDP datagrams到目的地時,它所選擇送達的port number 是一個一般應用程序都不會用的號碼(30000 以上),所以當此UDP datagram 到達目的地后該主機會送回一個「ICMP port unreachable」的消息,而當traceroute 收到這個消息時,便知道目的地已經到達了。 Traceroute提取發 ICMP TTL到期消息設備的IP地址并作域名解析。每次 Traceroute都打印出一系列數據,包括所經過的路由設備的域名及 IP地址,三個包每次來回所花時間。

【實驗任務】

1、切換到終端窗口

2、已知某目標機IP地址是119.38.215.130,測試IP報文由平臺虛擬機發送至目標機,沿途經過哪些路由器? 執行命令:traceroute 119.38.215.130 把得到的數據整理后,保存到實驗報告中,課后分析沿途經過哪些路由器。

3、分析沿途所經過的路由器的數目,并填寫到代碼文件窗口第一行末尾(不要破壞“冒號”之前提示內容)。 注:有兩種可能的答案,系統只認其中一種(如果你的答案系統不認,可以將其減1或加1再試)。

4、打開wireshark ,開始抓取網絡接口eth0上的分組,將窗口最小化;

5、在終端窗口內,執行如下命令: ping -c 3 -s 0 www.educoder.net 在實驗報告中解釋該命令行各參數的含義; 把得到的數據整理后,保存到實驗報告中,課后完成數據分析。

6、切換到Wireshark窗口,并停止抓取分組;

7、利用分組過濾功能,過濾出icmp分組;在報文摘要窗口中點擊選取第1個icmp報文;

8、調節分組頭部細節窗口大小,將其中IP報頭和ICMP報頭全部字段都展開,然后對該窗口進行截圖,并粘貼到實驗報告中,課后對其中主要字段進行分析解讀。

9、分析第一個icmp響應(reply)報文,把其類型值、代碼,分別填寫到代碼文件窗口的第二、三行末尾(不要破壞“冒號”之前提示內容)。

  1. 調節分組頭部細節窗口大小,將其中IP報頭和ICMP報頭全部字段都展開,然后對該窗口進行截圖,并粘貼到實驗報告中,課后對其中主要字段進行分析解讀。

21 IP

這是一個IPv4的數據包,其中包含了源IP地址和目標IP地址,以及其他一些信息。具體分析如下:

- 版本號為4,表示這是IPv4協議。

- 頭部長度為20字節,即5個32位字長。

- 差分服務字段為0x14,其中DSCP為Unknown,ECN為Not-ECT。

- 總長度為28字節。

- 標識符為0x3b17,即15127。

- 標志位為0x4000,表示不分片。

- 存活時間為55。

- 協議為ICMP,即Internet控制報文協議。

- 頭部校驗和為0xdb65。

- 源IP地址為122.225.212.158。

- 目標IP地址為172.16.49.192。

22 icmp

這是一個ICMP協議的回復報文,其中包含了以下信息:

- Type: 0,表示這是一個回復報文,而不是請求報文。

- Code: 0,表示這是一個Echo (ping) reply。

- Checksum: 0xfdd7,表示校驗和正確。

- Identifier (BE): 552 (0x0228),表示標識符為552。

- Identifier (LE): 10242 (0x2802),表示標識符的小端字節序為10242。

- Sequence number (BE): 0 (0x0000),表示序列號為0。

- Sequence number (LE): 0 (0x0000),表示序列號的小端字節序為0。

根據這些信息,我們可以確定這是一個回復報文,而不是請求報文,并且是一個Echo (ping) reply。標識符為552,序列號為0。校驗和正確。

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

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

相關文章

編程語言發展史:C++語言的發展和應用

預計更新 第一部分:早期編程語言 1.1布爾代數和機器語言 1.2匯編語言的出現和發展 1.3高級語言的興起 第二部分:主流編程語言 1.1 C語言的誕生及其影響 1.2 C語言的發展和應用 1.3 Java語言的出現和發展 1.4 Python語言的興起和特點 1.5 JavaScript語言…

基于Towers of Binary Fields的succinct arguments

1. 引言 Ulvetanna團隊Benjamin E. Diamond和Jim Posen 2023年論文《Succinct Arguments over Towers of Binary Fields》,開源代碼見: https://github.com/recmo/binius(Rust Sage)【基于plonky3等庫】 在該論文中&#xff1…

Apache POI簡介

三十二、Apache POI 32.1 介紹 Apache POI 是一個處理Miscrosoft Office各種文件格式的開源項目。簡單來說就是,我們可以使用POI在Java程序中對Miscrosoft Office各種文件進行讀寫操作。 一般情況下,POI都是用于操作Excel文件。 Apache POI 的應用場…

基于區域劃分的GaN HEMT 準物理大信號模型

GaN HEMT器件的大信號等效電路模型分為經驗基模型和物理基模型。經驗基模型具有較高精度但參數提取困難,特別在GaN HEMT器件工藝不穩定的情況下不易應用。相比之下,物理基模型從器件工作機理出發,參數提取相對方便,且更容易更新和…

火山引擎 ByteHouse 的增強型數據導入技術實踐

作為企業數字化建設的必備要素,易用的數據引擎能幫助企業提升數據使用效率,更好提升數據應用價值,夯實數字化建設基礎。 數據導入是衡量OLAP引擎性能及易用性的重要標準之一,高效的數據導入能力能夠加速數據實時處理和分析的效率。…

Sa-Token 整合Java17和SpringBoot

目錄 前言引入項目開啟登錄認證路由攔截鑒權解決兼容問題總結 前言 之前無意中發現Sa-Token權限認證框架,項目十分好用。 項目地址: https://github.com/dromara/sa-token 官網地址: https://sa-token.cc/doc.html#/start/example 我的個人…

如何輕松應對企業網絡管理挑戰,釋放網絡靈活性

企業在日常經營中,越來越依賴于云應用程序,分散的團隊和統一通信。這些變化使得保持網絡連接性不僅是必要的,而且對任務的成功完成至關重要。 傳統的廣域網(WAN)并不總能適應這些挑戰,因為它們往往無法提供…

不停的挖掘硬盤的最大潛能

從 NAS 上退休的硬盤被用在了監控的存儲上了。 隨著硬盤使用壽命的接近尾聲,感覺就是從高附加值數據到低附加值數據上。監控數據只會保留那么幾個月的時間,很多時候都會被覆蓋重新寫入。 有人問為什么監控數據不保留幾年的,那是因為監控數據…

java_函數式接口

文章目錄 一、什么是函數式接口二、四大核心函數式接口三、使用舉例 一、什么是函數式接口 如果一個接口只有一個抽象方法,那么該接口就是一個函數式接口函數式接口的實例可以通過 lambda 表達式、方法引用或者構造方法引用來創建如果我們在某個接口上聲明了 Funct…

【Unity入門】鼠標輸入和鍵盤輸入

Unity的Input類提供了許多監聽用戶輸入的方法,比如我們常見的鼠標,鍵盤,手柄等。我們可以用Input類的接口來獲取用戶的輸入信息 一、監聽鼠標輸入 GetMouseButtonUp 、GetMouseButtonDown、GetMouseButton input.GetMouseButtonDown和 inp…

從mysql源碼編譯出相應的庫和可執行文件及搭建mysql服務端

目錄 1. 問題的提出 2. 源碼下載 3. 升級或安裝某些前置軟件 3.1. 升級CMake 3.2. 升級gcc、g 4. 安裝依賴庫 4.1. 安裝OpenSSL 4.2. 安裝Curses 4.3. 安裝pkg-config 5. 編譯、安裝 6. 編譯結果、配置 7. 編譯錯誤處理 7.1. 錯誤1 7.2. 錯誤2 8. 搭建mysql數…

VMware三種網絡模式

橋接模式 NAT(網絡地址轉換模式) Host-Only(僅主機模式) 參考: vmware虛擬機三種網絡模式 - 知乎 (zhihu.com)

【中國平安社招校招】【內推】【當天內推】

中國平安社招校招內推 通過內推鏈接即時內推,反饋速度比正常要快(可私信問進度) 開放大量HC(不限崗位和地區,技術、設計、產品、運營、數據等都可內推) Step1:查看相關職位 瀏覽平安的招聘官網:復制以下地址至瀏覽器打開。注意以下鏈接包含…

一篇文章搞懂WPF動畫的使用技巧

WPF 動畫系統提供了豐富的功能,用于為 UI 元素創建流暢的動態效果。動畫可以應用于任何可用于渲染的屬性,比如位置、顏色、大小等。在 WPF 中,動畫是通過更改隨時間變化的屬性來實現的。 WPF動畫基本用法 例如實現如下的動畫效果&#xff1…

合并區間問題

以數組 intervals 表示若干個區間的集合,其中單個區間為 intervals[i] [starti, endi] 。請你合并所有重疊的區間,并返回 一個不重疊的區間數組,該數組需恰好覆蓋輸入中的所有區間 。 示例 1: 輸入:intervals [[1,…

Java如何獲取泛型類型

泛型(Generic) 泛型允許程序員在強類型程序設計語言中編寫代碼時使用一些以后才指定的類型,在實例化時作為參數指明這些類型。各種程序設計語言和其編譯器、運行環境對泛型的支持均不一樣。Ada、Delphi、Eiffel、Java、C#、F#、Swift 和 Vis…

WPF樹形控件TreeView使用介紹

WPF 中的 TreeView 控件用于顯示層次結構數據。它是由可展開和可折疊的 TreeViewItem 節點組成的&#xff0c;這些節點可以無限嵌套以表示數據的層次。 TreeView 基本用法 例如實現下圖的效果&#xff1a; xaml代碼如下&#xff1a; <Window x:Class"TreeView01.Mai…

springcloud整合seata我踩過的坑

版本問題 seata 1.5和1.5之前的目錄結構不同,使用docker修改的配置文件也不同 1.4的左右 1.5之后docker 掛載文件也不同 1.5之前是使用自己寫的掛載registry docker run -d -p 8091:8091 -p 7091:7091 --network newlead --name seata-serve -e SEATA_IP192.168.249.132…

4:kotlin 方法(Functions)

想要聲明一個函數需要使用fun關鍵字 fun hello() {return println("Hello, world!") }fun main() {hello()// Hello, world! }格式: fun 方法名(參數1: 參數1類型, 參數2 : 參數2類型, ...): 返回值類型 {方法體return 返回值 }fun 方法名(參數1: 參數1類型, 參數2…

人工智能基礎_機器學習047_用邏輯回歸實現二分類以上的多分類_手寫代碼實現邏輯回歸OVR概率計算---人工智能工作筆記0087

然后我們再來看一下如何我們自己使用代碼實現邏輯回歸的,對二分類以上,比如三分類的概率計算 我們還是使用鶯尾花數據 首先我們把公式寫出來 def sigmoid(z): 定義出來這個函數 可以看看到這需要我們理解OVR是如何進行多分類的,我們先來看這個 OVR分類器 思想 OVR(One-vs-…