計算機網絡實驗4:HTTP、DNS協議分析

文章目錄

  • 1. 主要教學內容
  • 2. HTTP協議
  • 3. HTTP分析實驗
    • 【實驗目的】
    • 【實驗原理】
    • 【實驗內容】
    • 【實驗思考】
  • 4. HTTP分析實驗可能遇到的問題
    • 4.1 捕捉不到http報文
    • 4.2 百度是使用HTTPS協議進行傳輸
    • 4.3 Wireshark獲得數據太多如何篩選
    • 4.4 http報文字段含義不清楚
      • General(通用部分):
      • Request Headers(請求頭部):
      • Response Headers(響應頭部):
    • 4.5 http協議工作過程怎么填寫
  • 5. DNS協議
  • 6. DNS協議分析實驗
    • 【實驗目的】
    • 【實驗原理】
    • 【實驗內容】
    • 【實驗思考】
  • 7. DNS協議分析實驗可能遇到的問題
    • 7.1 不了解nslookup命令如何使用
    • 7.2 如何在Wireshark中對應DNS協議內容

1. 主要教學內容

  • 實驗內容:使用Wireshark捕獲數據包,根據捕獲的相關數據包分別對HTTP、DNS協議展開分析。額外內容:利用fiddler軟件對HTTPS協議進行分析。
  • 所需學時:1。
  • 重難點:HTTP和DNS協議的報文結構。
  • 周次:第3周。
  • 教材相關章節:2.4、2.7。

2. HTTP協議

HTTP(超文本傳輸協議)是一個基于請求與響應模式的無狀態(指協議對于事務處理沒有記憶能力)的應用層協議,常基于 TCP 的連接方式。HTTP 1.1版本中給出一種持續連接的機制,絕大多數的 Web 應用都構建在 HTTP 協議之上。
在 HTTP 的請求和應答標準中,客戶端是終端用戶,服務器端是網站。通過使用 Web瀏覽器或者其他的工具,客戶端發起一個到服務器上指定端口(默認端口為 80)的 HTTP請求,這個客戶端稱為用戶代理(User Agent)。應答的服務器上存儲著一些資源,比如HTML 文件和圖像,這個應答服務器稱為源服務器(Origin Server)。在用戶代理和源服務器中間可能存在多個中間層,比如代理、網關或者隧道(Tunnels)。盡管 TCP/IP 協議是互聯網上最流行的應用,但是 HTTP 協議并沒有規定必須使用它和它支持的層。事實上HTTP 可以在任何其他互聯網協議或其他網絡上實現。HTTP 只假定其下層協議提供可靠的傳輸,任何能夠提供這種保證的協議都可以被其使用。
通常情況下,由 HTTP 客戶端發起一個請求,建立一個到服務器指定端口的 TCP 連接。HTTP 服務器則在該端口監聽客戶端發送過來的請求。一旦收到請求,服務器向客戶端發回一個狀態行和響應的消息,消息的消息體可能是請求的文件、錯誤消息或者其他一些信息。

  • HTTP有兩類報文,HTTP的請求報文響應報文結構(SP:空格;crlf :回車換行):

在這里插入圖片描述

  • HTTP 協議定義了8種方法表示對指定數據的操作:

在這里插入圖片描述

在這里插入圖片描述

  • HTTP請求報文分為三部分:請求行、消息報頭、請求正文。

  • 在接收和解釋請求消息后,服務器返回一個HTTP響應消息(Request Mesage)。 HTTP 響應消息也由三部分組成,分別是狀態行、消息報頭、響應正文。

  • 狀態碼由三位數宇組成,第 一位數字定義了響應的類別,有以下5種可能取值。

1xx:指示信息,表示請求已接收,繼續處理。

2xx:成功,表示請求已被成功接收、理解、接受。

3xx:重定向,要完成請求必須進行更進一步的操作。

4xx:客戶端錯誤,請求有語法錯誤或請求無法實現。

5xx:服務器端錯誤,服務器未能實現合法的請求。

  • 常見狀態碼:

在這里插入圖片描述

在這里插入圖片描述

3. HTTP分析實驗

【實驗目的】

(1) 掌握 HTTP 協議獲取網頁的流程。
(2) 了解 HTTP 請求報文和響應報文的格式,并進行報文分析。
(3) 了解 HTTP 1.0 和 HTTP 1.1的區別。

【實驗原理】

HTTP 協議定義了 Web 客戶端(瀏覽器)如何向 Web 站點請求 Web 頁面以及 Web 服務器如何將 Web 頁面傳送給客戶機。具體而言,這是通過客戶端發送 HTTP 請求報文和HTTP 響應報文實現的。當用戶請求一個頁面時(在瀏覽器中輸人網址或者單擊網頁某一個鏈接),瀏覽器會向 Web 服務器發出對該頁及其引用的相關對象的 HTTP 請求報文,服務器響應這些請求報文,生成 HTTP 響應報文,并將請求的對象附在 HTTP 響應報文后發送給客戶端。

由于網頁文檔的傳輸需要可靠性的保證,所以 HTTP 協議使用傳輸層的 TCP 協議作為載體。TCP 協議是一個面向連接的協議,提供可靠的數據傳輸,HTTP 協議在默認的情況下使用TCP的80端口。

HTTP 協議是無狀態的協議,即當服務器收到某個客戶端發送的 HTTP 請求報文時, 并不清楚該客戶端是否曾經發送過相同的 HTTP 請求報文,即 HTTP 協議本身不會維護客戶端和服務器端的狀態。

非持久連接方式與網頁上的每個對象都需要建立一個TCP 連接,效率不高,HTTP 1. 0 只能使用非持久連接方式。持久連接方式使用一個TCP 連接,其流水線作業方式比非流水線作業方式效率高。HTTP 1. 1既能使用非持久連接方式又能使用持久連接方式,默認方式下使用持久連接的流水線作業方式。持久連接的缺點是對服務器的性能要求比較高。因為服務器對于每個TCP 的連接都需要花費較長的時間,而每個TCP 連接都需要占用服務器響應的資源, 非持久連接由于連接釋放得快,資源的釋放也相對快,并且連接客戶的數量對于持久連接而言相對要少一些。

HTTP報文包括HTTP請求報文和HTTP響應報文。這兩種報文在實際的傳輸中都是以 ASCII 碼方式編碼的。HTTP 報文格式反映了HTTP 協議的核心內容,包括客戶端如何向服務器端請求對象,通信雙方需要協商哪些內容等。

【實驗內容】

  • 步驟 1:打開 Wireshark,選擇監聽網卡,設置過濾規則(只捕獲 HTTP 的報文),開始偵聽。

  • 步驟 2:打開瀏覽器,輸人網址(例如 www.baidu.com),捕獲數據

  • 步驟 3:分析捕獲的數據包,回答以下問題。

(1) 在捕獲的報文中,共有幾種 HTTP 報文?客戶機與服務器之間共建立了幾個連接?服務器和客戶機分別使用了哪幾個端口?

(2) 在捕獲的 HTTP 報文中,選擇一個 HTTP 請求報文和對應的 HTTP 應答報文,按圖 2-8 所示分析它們的字段,并將分析結果填人表 2-4 和表 2-5 中。

在這里插入圖片描述

(3) 綜合分析捕獲的報文,理解HTTP協議的工作過程,將結果填人表2-6中。

在這里插入圖片描述

(4) 在第1個和第3個HTTP會話中,Web服務器對 Web客戶端GET請求的響應是什么?

【實驗思考】

(1) 實驗中哪臺計算機啟動了 HTTP 會話?是如何啟動的?

(2) 哪臺計算機首先發出了結束 HTTP 會話的信號? 是如何發出的?

(3) GET 方法取回由 Request-URI標識的信息,POST 方法可以用于提交表單。請尋找一個有表單提交特征的網頁,訪問該網頁,捕獲數據包并分析請求方法中的 GET 和POST 方法。

4. HTTP分析實驗可能遇到的問題

4.1 捕捉不到http報文

可能原因:不是無法抓取 http包,是抓到了沒有解密,顯示還是TLS。

解決方法

Windows系統參考:為什么我的 Wireshark 抓不到/抓不全 HTTP 數據包 ?

MAC系統參考:Mac電腦安裝配置Wireshark 抓包工具,解決Https無法抓包問題

4.2 百度是使用HTTPS協議進行傳輸

我們以為捕獲不到http報文,實際上是因為網站加密了,通過上述方法得到http報文中可能有許多看不懂的地方,而且發現使用的端口號是443而不是80,這是因為大部分網站都是使用HTTPS協議進行傳輸,以提高數據傳輸的安全性。

但是我們無法通過Wireshark進行捕捉數據包,因此,我們可以嘗試一些使用HTTP的網站。

盡管如此,仍然有一些HTTP開頭的網站存在。這些網站可能是因為運營成本較低、沒有很多個人信息輸入需求,或者本身不涉及敏感信息等原因。比如旅游網站“馬蜂窩”(http://www.mafengwo.cn/)。

4.3 Wireshark獲得數據太多如何篩選

  • 我們可以通過網站的前端頁面獲得網站的IP地址:

在這里插入圖片描述

通過Wireshark中的過濾器,篩選出該IP的數據:

在這里插入圖片描述

此時就能清晰的看到http請求報文,以及http響應報文。

進行對應分析即可:

在這里插入圖片描述

在這里插入圖片描述

4.4 http報文字段含義不清楚

General(通用部分):

  • Request URL:請求的URL地址,即請求的目標資源。
  • Request Method:請求方法,表示客戶端對資源的請求操作。常見的方法有GET、POST、PUT、DELETE等。
  • Status Code:狀態碼,表示服務器對請求的處理結果。常見的狀態碼有200 OK(成功)、404 Not Found(未找到資源)、500 Internal Server Error(服務器內部錯誤)等。
  • Remote Address:這個字段不是HTTP標準中的一部分,而是指示客戶端的IP地址和端口號,表示請求的源IP地址。在HTTP請求中,這個字段顯示客戶端的IP地址和端口號,通常是代理服務器或負載均衡器的地址,而不是最終用戶的真實IP地址。
  • Referrer Policy:Referrer是HTTP請求頭部的一個字段,用于指示請求的來源URL,即訪問當前頁面的前一個頁面的URL。Referrer Policy則是為了控制Referrer頭部的發送情況而定義的策略。Referrer Policy可以設置為no-referrer(不發送Referrer頭部)、no-referrer-when-downgrade(只在從HTTPS網頁導航到HTTP網頁時不發送Referrer頭部)、origin(僅發送源信息,但不包含路徑等具體內容)、strict-origin(僅在協議安全的情況下發送完整的源信息)等。

Request Headers(請求頭部):

  • User-Agent:用戶代理,標識發起請求的客戶端應用程序或設備類型,例如瀏覽器名稱和版本。
  • Accept:客戶端可接受的響應內容類型,通常是MIME類型(例如text/html、application/json等)。
  • Accept-Language:客戶端可接受的語言類型,用于指定客戶端希望接收的語言版本。
  • Cookie:包含客戶端發送給服務器的HTTP cookie信息,通常用于會話管理。
  • Referer:表示請求的來源URL,即訪問當前頁面的前一個頁面的URL,跨域時基于安全不會給全
  • Authorization:用于在請求中傳遞認證信息,例如JWT或者原始的用于HTTP基本認證的用戶名和密碼。
  • Cache-Control:緩存控制指令,用于指定緩存策略,例如no-cache(不使用緩存)或max-age(緩存的最大有效時間)等。
  • Host:表示請求的目標主機的域名或IP地址。在HTTP/1.1中,Host頭部是必需的,用于指定請求的目標服務器和端口號。例如:www.example.com:8080
  • Origin:Origin頭部用于指示請求的來源,即發起請求的網頁所在的源,包含協議、域名和端口號。它通常用于跨域請求中,由瀏覽器自動添加。例如:http://www.origin.com
  • Connection:Connection頭部用于控制是否在請求完成后保持與服務器的連接。它是一個非標準的HTTP頭部,在HTTP/1.1中引入了持久連接(Persistent Connection)后,取代了早期版本的Proxy-Connection和Keep-Alive頭部。Connection頭部的取值通常有幾種:
  • close:請求完成后關閉與服務器的連接。即,每次請求都會新建一個連接。
  • keep-alive:請求完成后保持與服務器的連接,以便在同一連接上進行多個請求。這是持久連接的一種方式,減少了連接的建立和關閉的開銷,提高了請求的效率。
  • Upgrade:允許客戶端和服務器協商更高級的協議。例如,WebSocket可以通過此頭部實現從HTTP協議升級到WebSocket協議。
  • 在現代的HTTP/1.1中,持久連接是默認啟用的,即默認使用keep-alive,除非顯示指定close,因此通常情況下可以不必手動添加Connection頭部。

Response Headers(響應頭部):

  • Content-Type:響應的內容類型,表示服務器返回的數據的MIME類型,例如text/html、application/json等。
  • Content-Length:響應的內容長度,表示服務器返回數據的字節數。
  • Set-Cookie:設置HTTP cookie,服務器通過該頭部向客戶端發送新的cookie信息,用于會話管理。
  • Expires:指定響應內容的過期時間,即緩存失效時間點。
  • Cache-Control:緩存控制指令,用于指定緩存策略,例如no-cache(不緩存)或max-age(緩存的最大有效時間)等。
  • Server:指示服務器軟件的名稱和版本。

4.5 http協議工作過程怎么填寫

可以參考:

在這里插入圖片描述

5. DNS協議

DNS(Domain Name System,域名系統)用于命名組織到域層次結構中的計算機和網絡服務。
DNS 協議分成包頭數據兩部分。如圖所示,該報文由12B的首部和4個長度可變的字段組成:

在這里插入圖片描述

各字段含義:

  • 標識字段:由客戶程序設置并有服務器返回結果,16 位,在對應的query和response報文中有著相同的ID,可以在捕獲到的包中配對請求和應答報文,提取相關信息,同時也可以根據它們的時間戳大致估計DNS的響應時間。
  • 標志字段:16 位,結構如圖所示:

在這里插入圖片描述

標志字段各字段解釋如下:

QR(查詢/響應):占 1B,定義報文類型。若為0則表示是查詢報文,否則就是響應報文。

OpCode:占4B,定義查詢或響應的類型。若為0則表示是標準的,若為 1則表示是反向的,若為2則表示是服務器狀態請求。

AA(授權回答):占1B,當它置位時(即值為 1),表示名字服務器是權限服務器,它只用在響應報文中。

TC(截斷的):占 1B,當它置位時,表示響應已超過512B并已截斷。

RD(要求遞歸):占 1B,當它置位時,表示客戶希望得到遞歸回答。它在查詢報文中置位,在響應報文中重復置位。

RA(遞歸可用):占 1B,當它在響應報文中置位時,表示可得到遞歸響應,它只能在響應報文中置位。

保留:占 1B,置為 0。

未知1與未知2均為新增字段,各占 1B。

RCode:占4B,表示在響應中的差錯狀態,只有權限服務器才能做出這個判斷。

  • 問題數字段

在這里插入圖片描述

查詢名:要查找的名字,它由一個或者多個標示符序列組成。每個標示符以首字節數的計數值說明該標示符長度,每個名字以 0 結束。計數字節數必須在 0~63 之間。該字段無須填充字節。

查詢類型:每個問題有一個查詢類型,通常查詢類型為 A(由名字獲得 IP 地址)或者PTR(獲得 IP 地址對應的域名)。

類域(class):置為0x0001 即可。

  • 資源記錄部分:是DNS協議的最后了個字段,回答字段、授權宇段和附加信息字段均采用資源記錄RR(Resource Record)的相同格式。

在這里插入圖片描述

6. DNS協議分析實驗

【實驗目的】

(1) 學會在客戶端使用 nslookup 命令進行域名解析

(2) 通過協議分析軟件掌握 DNS 協議的報文格式

【實驗原理】

DNS(Domain Name System,域名系統)是因特網的一項核心服務,它作為可以將域名和IP地址相互映射的一個分布式數據庫,能夠使用戶更方便地訪問互聯網,而不用去記住能夠被機器直接讀取的IP地址。在因特網中向主機提供域名解析服務的機器即為 DNS 服務器。

DNS 基于 IP 協議中的 UDP 協議,端口號為 53。目前 DNS 分布式查詢方式一般采用遞歸遞歸迭代相結合的方法。當在瀏覽器的地址欄中輸人某一網址時,瀏覽器首先會向默認的本地域名服務器發出 DNS 請求報文,DNS請求報文中包括請求的域名和請求的類別。若本地域名服務器能夠找到對應的 IP 地址,便返回一個 DNS 相應報文,其中包括域名以及一個或多個對應的IP 地址。若本地域名服務器不能找到,則會向上級根域名服務器發出域名解析請求,根域名服務器會返回一個 IP 地址告訴本地域名服務器應該到哪里請求所需域名的解析,本地域名服務器根據得到的 IP 向對應的域名服務器發出請求,最終獲得域名和對應的 IP。
DNS的正向解析用于通過域名解析 IP 地址,反向解析用于通過 IP 地址獲得域名。DNS 采用一個稱為資源記錄的數據結構描述某個域名和對應IP。每個資源記錄是一個五元組,包括域名(Domain name)、生存時間(TTL)、類別類型

  • 生存時間用于指示該記錄的穩定程度,極為穩定的信息會被分配一個很大的值,而極不穩定的信息則會被分配一個較小的值。
  • 類別字段對于 Internet 而言總是IN,事實上用于其他非 Internet 的情況幾乎沒有。類型字段指出了記錄的類型,主要的類型包括 A,表示一臺主機的IP 地址;MX,郵件服務器;NS,名字服務器;Cname,別名等。

nslookup 是一個監測網絡中DNS服務器是否能正確實現域名解析的命令行工具。適用于Linux/UNIX和Windows 平臺,用于簡單檢測DNS服務器的工作是否正常,也是排除 DNS服務器故障的一項重要手段。nslookup 指令適用于正向域名解析和反向域名解析。本實驗通過nslookup 檢測服務器的配置,并利用協議分析軟件Wireshark捕獲分析nslookup命令產生的DNS數據包。

nslookup查詢命令格式為 nslookup 域名,主要產生兩個操作,一是根據本地DNS服務器的IP地址獲得本地 DNS服務器的名字; 二是根據輸人查詢的域名查找該域名的 IP地址。

【實驗內容】

在一臺連接 Internet 的計算機上進行下列實驗。

  • 步驟 1:啟動 Wireshark,選定偵聽網卡,開始抓包。
  • 步驟 2:切換到命令提示窗口,在命令提示符下輸人 nslookup www.baidu.com,分析執行結果。
  • 步驟 3:分析 Wireshark 捕獲的數據,觀察 nslookup 的通信過程,正常情況下能夠捕獲到 4 幀,試具體分析捕獲的數據包中 DNS 的報文格式細節。
  • 步驟 4:繼續使用協議分析儀進行數據的捕獲,再次訪問 www.baidu.com,觀察此時是否還有 DNS 請求?
  • 步驟 5:關閉瀏覽器后再重新打開,訪問一個尚未訪問過的網站,例如 www.sohu.com,觀察此時是否有 DNS 請求?為什么?
  • 步驟 6:在Windows 系統的命令提示符下運行 ipconfig /displaydns,顯示本機緩沖區中的 DNS 解析內容。
  • 步驟 7:在 Windows 系統的命令提示符下運行 ipconfig /flushdns,則可以清除本機的 DNS 緩存記錄。
  • 步驟 8:關閉瀏覽器再打開,訪問剛才打開過的網站,觀察是否有 DNS 請求?為什么?

【實驗思考】

(1) DNS 協議中的資源記錄 RR(Record Resource)包含哪些內容?

(2) DNS 除了返回需查找的域名還可能返回哪些內容?

(3) 反復實驗,判斷一個域名是否可以對應多個 IP 地址?域名與 IP 地址之間是否有對應的關系?

(4) 若實驗中無法進行 DNS 解析,請寫出導致問題的原因及解決辦法

(5) DNS 協議何時用 UDP?何時用 TCP?

7. DNS協議分析實驗可能遇到的問題

7.1 不了解nslookup命令如何使用

可以參考:nslookup 入門命令詳解

7.2 如何在Wireshark中對應DNS協議內容

首先在過濾器中輸入dns,然后查看后面的info信息,看看哪些是自己發送的DNS請求,最后對應信息進行分析。

在這里插入圖片描述

在這里插入圖片描述

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

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

相關文章

[4G/5G/6G專題基礎-161]:常見的濾波技術

1. 濾波概述 1.1 什么是濾波 濾波(Filtering)是信號處理中的一種基本操作,用于改變信號的特性或者去除信號中的干擾成分。濾波器可以看作是一種系統,將輸入信號作為輸入,經過處理后產生輸出信號。 濾波在信號處理中…

Git和GitHub

文章目錄 1.Git介紹2. 常用命令3. Git分支操作4. Git團隊協作機制5. GitHub操作6. IDEA集成Git7.IDEA操作GitHub8. Gitee 1.Git介紹 Git免費的開源的分布式版本控制系統,可以快速高效從小到大的各種項目 Git易于學習,占地面積小,性能快。它…

@RunWith的使用

引言 當談到在Java中進行單元測試時,JUnit是開發人員的常見選擇之一。JUnit是一個流行的單元測試框架,它允許您編寫和執行測試來驗證代碼的正確性。在JUnit中,RunWith注解是一個強大的工具,它可以用來定制測試運行器,…

【日常積累】RPM包依賴下載及私有yum倉庫搭建

概述 某些時候,我們需要下載某個RPM包依賴的依賴。如某些內網環境,就需要自行準備rpm包。可以通過能上互聯網的服務器進行相應的rpm包下載,然后在拷貝到相應的服務器安裝,或者搭建自己的內容rpm包倉庫。 查看*.rpm 包依賴&#…

Flink多流處理之Broadcast(廣播變量)

寫過Spark批處理的應該都知道,有一個廣播變量broadcast這樣的一個算子,可以優化我們計算的過程,有效的提高效率;同樣在Flink中也有broadcast,簡單來說和Spark中的類似,但是有所區別,首先Spark中的broadcast是靜態的數據,而Flink中的broadcast是動態的,也就是源源不斷的數據流.在…

批處理自動切換ip地址與網絡的啟用、禁用

啟用禁用網絡 echo off :: BatchGotAdmin :------------------------------------- REM --> Check for permissions >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" REM --> If error flag set,…

什么是微服務?

2.微服務的優缺點 優點 單一職責原則每個服務足夠內聚,足夠小,代碼容易理解,這樣能聚焦一個指定的業務功能或業務需求;開發簡單,開發效率提高,一個服務可能就是專一的只干一件事;微服務能夠被小…

命令提示符之操作基礎(Windows)

打開命令提示符 方法一 打開指定文件的文件夾,在路徑欄里輸入“cmd”,回車,就進入控制臺了。默認路徑就是指定文件夾的路徑。 方法二 打開指定的文件夾,按住shift鍵,在空白處右擊,在菜單欄中選擇“在此處打…

社區團購商城拼團秒殺接龍分銷團長小程序開源版開發

社區團購商城拼團秒殺接龍分銷團長小程序開源版開發 功能介紹: 商品管理:增加商品-商品列表-商品分類-商品單/多規格-商品標簽 訂單管理:訂單列表-訂單挑選-訂單導出-訂單打印-批量發貨-商品評價 會員管理:會員列表-會員挑選-會員…

【Git】—— 標簽管理

目錄 (一)理解標簽 1、作用 (二)創建標簽 (三)操作標簽 1、刪除標簽 2、推送標簽 3、刪除遠程標簽 (一)理解標簽 標簽 tag ,可以簡單的理解為是對某次 commit 的…

python中的迭代器和生成器

一、迭代器 支持迭代的容器,如列表(list)、元組(tuple)、字典(dict)、集合(set)這些序列式容器。 自定義迭代器的類中必須實現以下2個方法: __next__(self)…

監控Kubernetes 控制面組件的關鍵指標

控制面組件的監控,包括 APIServer、Controller-manager(簡稱 CM)、Scheduler、etcd 四個組件。 1、APIServer APIServer 的核心職能是 Kubernetes 集群的 API 總入口,Kube-Proxy、Kubelet、Controller-Manager、Scheduler 等都需…

【字符串】649. Dota2 參議院

649. Dota2 參議院 解題思路 R true 表示循環結束之后 字符串仍然存在 Rflag > 0 說明R在D之前出現 R可以消滅Dflag < 0 說明D在R之前出現 D 可以消滅R一旦其中有一個為false 說明只剩下R 或者D 那么就可以決定誰獲勝遍歷字符串 如果當前字符是R 判斷flag 如果flag &l…

‘open3d.open3d.geometry.PointCloud‘ object has no attribute ‘voxel_down_sample‘

scene_cloud open3d.geometry.PointCloud() scene_cloud.points open3d.utility.Vector3dVector(scene_points) scene_cloud scene_cloud.voxel_down_sample(voxel_size) 執行上面代碼第三句報錯&#xff0c;出現了下面這個錯誤&#xff1a; AttributeError: open3d.open…

TCP 協議十大相關特性總結

目錄 一、TCP特性 二、報文格式 TCP十大核心特性 1. 確認應答 2. 超時重傳 3. 連接管理(三次握手,四次揮手) 三次握手 四次揮手 4. 滑動窗口 情況一:接收方的ACK丟失 情況二:發送方的數據包丟失 5. 流量控制 6. 擁塞控制 7. 延遲應答 8. 捎帶應答 9. 字節流粘包問題 10. TCP的…

k8s--使用cornJob定時執行sql文件

CronJob apiVersion: batch/v1beta1 kind: CronJob metadata:name: hello spec:schedule: "0 * * * *"jobTemplate:spec:template:spec:containers:- name: postgres-alpineimage: xxxximagePullPolicy: IfNotPresentcommand:- psql- -h- 數據庫服務地址- -d- 數據庫…

大語言模型:LLM的概念是個啥?

一、說明 大語言模型&#xff08;維基&#xff1a;LLM- large language model&#xff09;是以大尺寸為特征的語言模型。它們的規模是由人工智能加速器實現的&#xff0c;人工智能加速器能夠處理大量文本數據&#xff0c;這些數據大部分是從互聯網上抓取的。 [1]所構建的人工神…

02 - git 文件重命名

查看所有文章鏈接&#xff1a;&#xff08;更新中&#xff09;GIT常用場景- 目錄 文章目錄 1. 第一種方式2. 第二種方式 1. 第一種方式 mv kongfu_person.txt kongfu.txt git add .2. 第二種方式 git mv kongfu_person.txt kongfu.txt

微服務實戰項目-學成在線-項目優化(redis緩存優化)

微服務實戰項目-學成在線-項目優化(redis緩存優化) 1 優化需求 視頻播放頁面用戶未登錄也可以訪問&#xff0c;當用戶觀看試學課程時需要請求服務端查詢數據&#xff0c;接口如下&#xff1a; 1、根據課程id查詢課程信息。 2、根據文件id查詢視頻信息。 這些接口在用戶未認…

Unity 人物連招(三段連擊)

一&#xff1a; 連招思路 首先人物角色上有三個攻擊實例對象 Damage,每一個damage定義了攻擊的傷害值&#xff0c;攻擊距離&#xff0c;觸發器名稱&#xff0c;傷害的發起者&#xff0c;攻擊持續時間&#xff0c;攻擊重置時間&#xff0c;傷害的碰撞框大小等字段&#xff1a; …