【Linux】TCP協議【中】{確認應答機制/超時重傳機制/連接管理機制}

文章目錄

  • 1.確認應答機制
  • 2.超時重傳機制:超時不一定是真超時了
  • 3.連接管理機制

1.確認應答機制

在這里插入圖片描述
TCP協議中的確認應答機制是確保數據可靠傳輸的關鍵部分。以下是該機制的主要步驟和特點的詳細解釋:

數據分段與發送:
發送方將要發送的數據分成一個個數據段(或稱為TCP報文段)進行發送。
接收方確認:
接收方在成功收到數據段后,會向發送方發送一個確認(ACK)報文。這個ACK報文包含了確認序號,通常是接收到的數據段的下一個字節的序列號,表示接收方已經成功接收到了該序列號之前的數據。
發送方繼續發送:
發送方在收到接收方的ACK確認后,會繼續發送下一個數據段。
超時重傳:
如果發送方在發送數據段后的一定時間內(稱為超時時間,RTO)沒有收到接收方的ACK確認,它會認為該數據段可能丟失或出錯,并會重新發送該數據段。這個時間是根據往返時間(RTT)和網絡條件來動態調整的。
重復確認:
如果接收方檢測到有數據段重復(即接收到了先前已確認的數據),它會向發送方發送一個重復確認(Duplicate ACK)。這有助于發送方更快地識別出數據丟失,并觸發快速重傳。
快速重傳:
當發送方收到連續的3個或更多的重復ACK時,它會認為有數據段丟失,并立即重新發送該數據段,而不是等待超時時間到達。這有助于減少傳輸延遲并提高網絡效率。
擁塞控制:
如果發送方的數據段在一段時間內未收到確認(即發生了超時),發送方會認為網絡發生了擁塞,并會減慢發送速率,以減輕網絡負載。這通常是通過調整擁塞窗口大小來實現的。
序列號與確認號:
TCP協議使用32位的序列號和確認號來對數據進行編號和確認。這有助于發送方和接收方精確地跟蹤數據傳輸的進度,并確保數據的完整性和順序性。
通過這些機制,TCP協議能夠確保數據的可靠傳輸,即使在復雜的網絡環境中也能保持較高的傳輸效率和準確性。

2.超時重傳機制:超時不一定是真超時了

TCP協議中的超時重傳機制是確保數據可靠傳輸的關鍵部分之一。當TCP發送一個數據段(或稱為報文段)后,它會等待接收方的確認應答(ACK)。如果在規定的時間內沒有收到確認應答,發送方會認為該數據段已經丟失或者出現了錯誤,并會啟動超時重傳機制。

以下是超時重傳機制的基本步驟:

設置定時器:
當TCP發送一個數據段后,它會為該數據段設置一個定時器(或稱為重傳定時器)。這個定時器的超時時間(RTO, Retransmission TimeOut)是根據網絡條件動態計算的,通常基于之前的往返時間(RTT, Round-Trip Time)的樣本值進行估計。
等待確認:
發送方在發送數據段后會等待接收方的確認應答(ACK)。確認應答中包含了一個確認序號,表示接收方已經成功接收到了該序號之前(不包括該序號)的所有數據。
檢查超時:
如果在定時器超時之前收到了確認應答,發送方會停止該定時器并繼續發送后續的數據段。
如果在定時器超時之前沒有收到確認應答,發送方會認定該數據段已經丟失或出錯,并會重傳該數據段。
重傳數據段:
當發送方決定重傳數據段時,它會再次發送該數據段,并重置相應的定時器。
調整超時時間:
TCP使用一種稱為指數退避(Exponential Backoff)的算法來動態調整RTO值。每次發生超時重傳時,RTO值會按照指數增長,以應對網絡條件的變化。這種調整有助于避免在網絡擁塞時頻繁地發送無用的重傳數據。
快速重傳:
除了基于定時器的超時重傳外,TCP還使用了一種稱為快速重傳的機制。當接收方檢測到有數據段丟失時(通過收到重復的ACK),它會立即向發送方發送重復ACK。如果發送方收到足夠多的重復ACK(通常是3個或更多),它會認為有數據段丟失,并會立即重傳該數據段,而不需要等待定時器超時。
通過超時重傳和快速重傳機制,TCP能夠確保在網絡出現丟包或錯誤時,數據仍然能夠可靠地傳輸到接收方。這些機制是TCP協議中可靠性保證的重要組成部分。
參考優質博文
發送方發生了一個數據沒有收到ack,他不知道這個數據:丟包?在網絡中未到達?有應答但是應答丟了?

丟包或 數據包/應答 因速度原因在網絡里傳輸很慢

在這里插入圖片描述

應答丟了:發送重復數據 – 重復數據是不可靠的一種情況 --需要去重 – 通過序號!

在這里插入圖片描述

如何確定超時?

最理想的情況下, 找到一個最小的時間, 保證 “確認應答一定能在這個時間內返回”.
但是這個時間的長短, 隨著網絡環境的不同, 是有差異的.
如果超時時間設的太長, 會影響整體的重傳效率;
如果超時時間設的太短, 有可能會頻繁發送重復的包;

如何設置?

TCP為了保證無論在任何環境下都能比較高性能的通信, 因此會動態計算這個最大超時時間.
Linux中(BSD Unix和Windows也是如此), 超時以500ms為一個單位進行控制, 每次判定超時重發的超時時間都是500ms的整數倍.
如果重發一次之后, 仍然得不到應答, 等待 2500ms 后再進行重傳.
如果仍然得不到應答, 等待 4
500ms 進行重傳. 依次類推, 以指數形式遞增.
累計到一定的重傳次數, TCP認為網絡或者對端主機出現異常, 強制關閉連接

3.連接管理機制

連接管理機制,特別是在TCP協議中,是確保數據在客戶端和服務器之間可靠傳輸的關鍵過程。以下是TCP連接管理機制的主要步驟和特點的詳細解釋:

三次握手建立連接:
第一次握手:客戶端發送一個SYN(同步)報文段到服務器,請求建立連接。客戶端進入SYN_SENT狀態。
第二次握手:服務器收到SYN報文段后,如果同意建立連接,則回復一個SYN+ACK(同步/確認)報文段,表示接受請求。服務器進入SYN_RECV狀態。
第三次握手:客戶端收到服務器的SYN+ACK報文段后,發送一個ACK(確認)報文段給服務器,表示連接已經建立。客戶端進入ESTABLISHED狀態,服務器也進入ESTABLISHED狀態,此時連接正式建立。
這個過程就像是兩個人在建立關系,互相確認對方的意圖和意愿。
狀態轉換:
客戶端狀態轉換:從CLOSED(關閉)到SYN_SENT,再到ESTABLISHED,以及后續的FIN_WAIT1、FIN_WAIT2、TIME_WAIT,最后回到CLOSED。
服務器狀態轉換:從CLOSED(關閉)到LISTEN(監聽),再到SYN_RECV,然后進入ESTABLISHED,以及后續的CLOSE_WAIT、LAST_ACK,最后回到CLOSED。
四次揮手斷開連接:
客戶端或服務器中的一方(假設為客戶端)首先發起斷開連接的請求,發送一個FIN(結束)報文段。
另一方(服務器)收到FIN報文段后,回復一個ACK報文段,表示收到斷開連接的請求。
隨后,服務器也發送一個FIN報文段給客戶端,表示自己也準備斷開連接。
客戶端收到服務器的FIN報文段后,回復一個ACK報文段,表示連接已經關閉。
這個過程就像是兩個人在結束關系,互相確認并道別。
超時重傳:如果在規定的時間內沒有收到對方的確認報文段(ACK),發送方會啟動超時重傳機制,重新發送之前的報文段。這是為了確保在網絡不穩定或丟包的情況下,數據仍然能夠可靠地傳輸。
連接管理機制的作用:連接管理機制是TCP保證可靠性的一個核心機制。通過三次握手建立連接和四次揮手斷開連接,TCP能夠在客戶端和服務器之間建立一個可靠的、全雙工的、面向連接的通信管道。同時,通過狀態轉換和超時重傳機制,TCP能夠確保數據在傳輸過程中的完整性和準確性。
在這里插入圖片描述

  1. 客戶端connect發起連接請求,客戶端tcp會發一個帶有syn的報文,收到ack后一旦客戶端發起ack connect返回。accpet只會把建立好的連接拿上來用。即應用層的接口只會開始和結束某一動作,動作怎么完成的不關心,有OS完成。即他們并不關心三次握手的具體過程,只把握手前和后的結果拿來用。
  2. tcp通信是基于連接的,需要建立和斷開連接 — 三次握手四次揮手

為什么要進行三次握手四次揮手?

  1. 實際上三次還是四次并不重要,三次握手也可以是四次握手,只不過捎帶應答讓握手次數三次就可以;揮手三次也可以,稍帶應答即可。即進行握手揮手的主要目的是通過雙方分別一個發送一個響應來保證我們要開始建立或結束連接的可靠性!
  2. 為什么大多數情況下握手壓縮成三次,揮手不壓縮?握手時,客戶端發來連接請求,服務端都是無條件答應即服務端一定會發送ack和syn,所以這里壓縮。而揮手時,即便服務端發了ack,也不一定就會給客戶端說我們斷開連接吧,所以如果揮手想要變成三次,需要一種場景:服務端一定會斷開鏈接。
  3. 另外,三次握手可以驗證全雙工是否通暢:三次握手使得cs雙方至少都經歷了一次發收。即三次握手的目的是保證雙方都能進行收發 — 可靠的驗證全雙工。
  4. 三次握手確保一般情況下握手失敗的管理連接成本讓客戶端承擔:首先達成共識:這里我們講握手揮手并沒講這樣安不安全而是在講邏輯上這樣能不能為通信建立前提,至于安全問題這里暫且不討論,只考慮邏輯正確性。一次握手:c向s只發起一次syn,這是服務端和客戶端都認為建立好連接了,于是服務端會創建連接結構體對象,如果客戶端惡意發起很多個syn,那么服務端就會建立很多連接 ---- 成本增加且沒用 — 浪費資源降低效率;二次握手:c發syn到s,s發ack給c,s一經發出ack就認為握手成功,那么s就會創建連接結構體對象,同樣的,c惡意發起多個syn或發起syn后崩掉,服務端都會建立原來的連接對象,只有在很久之后沒有收到消息認為客戶端關閉后才會關閉連接 — 成本/資源/效率問題;三次握手:c在收到ack后就建立連接,而s只有在收到第三次ack才會建立連接,所以即便第三次ack丟失,s不會建立連接。而c會===》把成本壓在客戶端而非服務端上了。— 從設計減少服務端的成本。
  5. 是不是次數越多越好?不!且不說浪費資源,三次已經可以了沒必要。其次,次數越多帶來試錯次數多也同樣帶來犯錯的次數多==》本來建立好了,但有一次ack丟了認為建立好的連接是不成功的連接。其次,一般都是奇數次的握手,這樣使得發起連接請求的一方在第一次和最后一次都是它,使得即便最后一次丟失了成本在它不在客戶端。(x是奇數,前x-1次都是可靠的因為都有ack只有最后一次沒有ack也就不知道對方是否收到)
  6. 三次握手也有可能受syn洪水攻擊,具體見下面syn洪水介紹。黑客用肉機某一時間段統一向某服務端發起連接請求消耗服務端半連接資源。這屬于安全范疇。我們上面談的是功能邏輯范疇。
  7. 為什么四次揮手?保證雙方都能得知對方不再發送數據的意愿。一個fin–我不想跟你發送數據了但是我還可以收數據,也可以發報頭即回應服務端分的ack;一個ack–我知道了。然后對方發了一個fin:我也不想跟你發送數據了;一個ack–知道了;
  8. 三次握手不僅僅是握手!即不僅僅是syn/ack等。由于只是傳輸報頭,所以此時他們還進行了協商緩沖區大小等事情。有一個字段是16位窗口大小,并不意味著窗口大小一定是65535,因為還有一個字段:窗口擴展因子,在握手階段,雙方通過該字段來協商緩沖區大小!
    在這里插入圖片描述

gpt回答

面試中經常被問到為什么TCP協議需要三次握手來建立連接以及四次揮手來斷開連接,以下是這兩個問題的詳細解釋:

為什么需要三次握手來建立連接?
TCP協議使用三次握手來建立連接,主要是為了確保通信雙方的連接狀態是可靠的,并且能夠處理網絡中的異常情況。以下是三次握手的主要目的:

確認雙方的通信能力:通過三次握手,雙方可以確認彼此都能夠發送和接收數據,從而確保連接的可靠性。
同步雙方的初始序列號:TCP是一個字節流協議,沒有報文邊界。因此,需要雙方協商一個初始序列號,以便后續的數據傳輸能夠按照正確的順序進行。三次握手中的SYN和ACK報文段就用于協商和確認雙方的初始序列號。
避免失效的連接請求報文段:如果客戶端發送的連接請求報文段在網絡中滯留(例如,由于網絡擁堵),客戶端可能會超時并重發連接請求。如果此時舊的連接請求報文段到達了服務器,服務器會發送一個確認報文段給客戶端。但是,由于客戶端已經關閉了連接,這個確認報文段對于客戶端來說是無效的。使用三次握手可以避免這種情況,因為服務器只有在收到客戶端的確認報文段后才會認為連接已經建立。
為什么需要四次揮手來斷開連接?
TCP協議使用四次揮手來斷開連接,主要是為了確保通信雙方都能夠可靠地關閉連接,并且處理數據發送的完成情況。以下是四次揮手的主要目的:

確保數據發送完成:在斷開連接之前,通信雙方需要確保所有數據都已經成功發送和接收。四次揮手中的第二次和第三次揮手就是用于處理這個問題的。客戶端發送一個FIN報文段告訴服務器它已經完成了數據的發送,但是服務器可能還有數據要發送給客戶端。因此,服務器需要發送一個ACK報文段告訴客戶端它已經收到了FIN報文段,并且等待自己的數據發送完成后再發送一個FIN報文段給客戶端。
釋放連接資源:在斷開連接后,通信雙方需要釋放與連接相關的資源(如緩沖區、連接狀態等)。四次揮手中的最后一次揮手就是用于通知對方連接已經關閉,并且可以釋放相關資源。
處理半關閉狀態:TCP連接是一個全雙工的連接,即通信雙方都可以同時發送和接收數據。四次揮手可以處理連接處于半關閉狀態的情況,即一方已經關閉了發送通道(或接收通道),但另一方仍然可以發送(或接收)數據。
綜上所述,三次握手和四次揮手是TCP協議中非常重要的機制,它們確保了TCP連接的可靠性和數據的完整性。

SYN洪水(又名SYN洪水攻擊或SYN洪泛)

SYN洪水(又名SYN洪水攻擊或SYN洪泛)是一種分布式拒絕服務(DDoS)攻擊,其目標是耗盡目標服務器上的資源,使其無法響應合法流量。以下是關于SYN洪水攻擊的詳細解釋:

定義
SYN洪水攻擊是一種利用TCP協議缺陷進行的攻擊,攻擊者向被攻擊的主機發送大量偽造的TCP連接請求(SYN數據包),導致目標主機上的資源耗盡(如CPU滿負荷或內存不足),從而無法處理正常的TCP連接請求。

工作原理
TCP三次握手:在正常的TCP連接建立過程中,客戶端和服務器會進行三次握手。首先,客戶端向服務器發送一個SYN(同步)數據包請求建立連接;然后,服務器響應一個SYN-ACK(同步-確認)數據包;最后,客戶端發送一個ACK(確認)數據包完成連接建立。
攻擊過程:在SYN洪水攻擊中,攻擊者會向目標服務器上的每個端口重復發送SYN數據包,通常使用偽造的IP地址。服務器收到這些看似合法的連接請求后,會向每個請求分配資源并發送SYN-ACK數據包。然而,由于攻擊者使用了偽造的IP地址或者選擇不發送ACK數據包,服務器將無法完成三次握手并一直保持這些連接處于半開狀態。
資源耗盡:隨著半開連接的數量不斷增加,服務器上的資源(如內存和CPU)將逐漸被耗盡。當服務器的連接溢出表填滿時,它將無法再處理新的連接請求,從而導致對合法用戶的服務被拒絕。
特點
分布式:SYN洪水攻擊通常是由多個攻擊源同時發起的,使得攻擊更加難以檢測和防御。
偽裝性:攻擊者通常使用偽造的IP地址發起攻擊,使得追蹤和定位攻擊源變得困難。
資源消耗:SYN洪水攻擊會大量消耗目標服務器的資源,導致服務不可用。
緩解方法
微塊:管理員可以在服務器內存中為每個傳入的SYN請求分配一個微記錄(少至16字節),而不是一個完整的連接對象,以減少資源消耗。
SYN Cookie:使用SYN Cookie技術,服務器可以在收到SYN數據包時生成一個唯一的Cookie值,并將其與SYN-ACK數據包一起發送。當客戶端發送ACK數據包時,服務器將驗證Cookie值以確認連接的有效性。這可以防止攻擊者利用偽造的IP地址發起攻擊。
防火墻和入侵檢測系統:配置防火墻和入侵檢測系統以檢測和過濾異常的SYN數據包流量,從而減少SYN洪水攻擊的影響。
通過了解SYN洪水攻擊的工作原理和緩解方法,網絡管理員可以采取相應的措施來保護他們的服務器和網絡免受此類攻擊的影響。

連接管理機制中在四次揮手時客戶端狀態從TIME_WAIT到CLOSE為什么隔一段時間

在TCP連接管理機制的四次揮手過程中,客戶端狀態從TIME_WAIT到CLOSE需要隔一段時間,這是為了保證網絡傳輸的可靠性和避免因為網絡丟包或者網絡延遲而造成的問題。以下是對此過程的詳細解釋:

TIME_WAIT狀態的作用:
在TCP四次揮手中,當客戶端接收到來自服務器的FIN包并發送ACK確認后,客戶端進入TIME_WAIT狀態。
這個狀態存在的目的是確保客戶端發送的最后一個ACK包能夠到達服務器,因為TCP協議是可靠的,需要確保雙方的連接都已經被關閉。
如果客戶端發送的ACK包在網絡中丟失,服務器會因為沒有收到ACK而重傳FIN包,這時客戶端需要再次發送ACK包。
TIME_WAIT狀態的持續時間:
這個狀態通常持續的時間是2MSL(Maximum Segment Lifetime,報文最大生存時間)。在RFC 793協議中,建議的MSL時間是兩分鐘,但在實際操作系統(如Linux)中,這個時間通常被設置為30秒,因此2MSL就是60秒。
設置這樣的時間間隔是為了確保在網絡中的殘留數據包都已經過期,從而避免因為網絡延遲或丟包而引發的問題。
從TIME_WAIT到CLOSE的轉換:
當客戶端在TIME_WAIT狀態持續了2MSL時間后,如果沒有再次收到來自服務器的數據包,那么客戶端就可以安全地關閉連接,從TIME_WAIT狀態轉變為CLOSED狀態。
這個過程確保了客戶端和服務器之間的連接已經完全關閉,并且網絡中的殘留數據包不會對下一次連接造成影響。
綜上所述,客戶端在TCP四次揮手過程中從TIME_WAIT狀態到CLOSE狀態需要隔一段時間,這是為了確保網絡傳輸的可靠性,避免因為網絡丟包或延遲而引發的問題。這個時間間隔通常是2MSL,也就是60秒(在Linux系統中)。

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

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

相關文章

vue深度選擇器(:deep?)

處于 scoped 樣式中的選擇器如果想要做更“深度”的選擇&#xff0c;也即&#xff1a;影響到子組件&#xff0c;可以使用 :deep() 這個偽類&#xff1a; <style lang"scss" scoped> .evaluation-situation-details :deep .cl-icon-arrow-right {display: none…

【Python 對接QQ的接口(二)】簡單用接口查詢【等級/昵稱/頭像/Q齡/當天在線時長/下一個等級升級需多少天】

文章日期&#xff1a;2024.05.25 使用工具&#xff1a;Python 類型&#xff1a;QQ接口 文章全程已做去敏處理&#xff01;&#xff01;&#xff01; 【需要做的可聯系我】 AES解密處理&#xff08;直接解密即可&#xff09;&#xff08;crypto-js.js 標準算法&#xff09;&…

JS根據所選ID數組在源數據中取出對象

let selectIds [1, 3] // 選中id數組let allData [{ id: 1, name: 123 },{ id: 2, name: 234 },{ id: 3, name: 345 },{ id: 4, name: 456 },] // 源數據let newList [] // 最終數據selectIds.map((i) > {allData.filter((item) > {item.id i && newList.pus…

websocket的壓縮和wireshark如何解碼tls

1. websocket的壓縮 見Compression EXPERIMENTAL那一節。 官方文檔&#xff1a;gorilla/websocket 2. 如何wireshark如何解碼tls 下文中代碼中去掉sudo。正常執行 Mac電腦安裝配置Wireshark 抓包工具&#xff0c;解決Https無法抓包問題_mac winshark抓不到-CSDN博客 如果…

aws sqs基礎概念和隊列參數解析

分布式隊列的組成部分 生產者&#xff0c;向隊列發送消息的組件消費者&#xff0c;接受隊列消息隊列&#xff0c;多個sqs服務器存儲冗余存儲消息 sqs自動刪除超過最大留存時間的消息&#xff08;默認4天&#xff09;&#xff0c;可以通過SetQueueAttributes調整為&#xff08…

【408真題】2009-13

“接”是針對題目進行必要的分析&#xff0c;比較簡略&#xff1b; “化”是對題目中所涉及到的知識點進行詳細解釋&#xff1b; “發”是對此題型的解題套路總結&#xff0c;并結合歷年真題或者典型例題進行運用。 涉及到的知識全部來源于王道各科教材&#xff08;2025版&…

JMH 微基準測試(性能測試)

寫本文主要是簡單記錄一下JMH的使用方式。JMH全名是Java Microbenchmark Harness&#xff0c;主要為在jvm上運行的程序進行基準測試的工具。作為一個開發人員&#xff0c;在重構代碼&#xff0c;或者確認功能的性能時&#xff0c;可以選中這個工具。 本文場景&#xff1a;代碼重…

VBA即用型代碼手冊:刪除Excel中空白行Delete Blank Rows in Excel

我給VBA下的定義&#xff1a;VBA是個人小型自動化處理的有效工具。可以大大提高自己的勞動效率&#xff0c;而且可以提高數據的準確性。我這里專注VBA,將我多年的經驗匯集在VBA系列九套教程中。 作為我的學員要利用我的積木編程思想&#xff0c;積木編程最重要的是積木如何搭建…

IDEA中好用的插件

IDEA中好用的插件 CodeGeeXMybatis Smart Code Help ProAlibaba Java Coding Guidelines?(XenoAmess TPM)?通義靈碼常用操作 TranslationStatistic CodeGeeX 官網地址&#xff1a;https://codegeex.cn/ 使用手冊&#xff1a;https://zhipu-ai.feishu.cn/wiki/CuvxwUDDqiErQU…

Android 自定義圖片進度條

用系統的Progressbar&#xff0c;設置圖片drawable作為進度條會出現圖片長度不好控制&#xff0c;容易被截斷&#xff0c;或者變形的問題。而我有個需求&#xff0c;使用圖片背景&#xff0c;和圖片進度&#xff0c;而且在進度條頭部有個閃光點效果。 如下圖&#xff1a; 找了…

速盾:流量攻擊防護DDOS有哪幾種有效的防御措施?

DDoS&#xff08;分布式拒絕服務&#xff09;攻擊是一種網絡攻擊方式&#xff0c;攻擊者通過向目標服務器發送大量的請求&#xff0c;超出其處理能力&#xff0c;導致服務器無法正常運行&#xff0c;從而使服務中斷或降級。為了保護網絡安全&#xff0c;減少DDoS攻擊對網站和服…

Kafka(十三)監控與告警

目錄 Kafka監控與告警1 解決方案1.2 基礎知識JMX監控指標代理查看KafkaJMX遠程端口 1.3 真實案例Kafka Exporter:PromethusPromethus Alert ManagerGrafana 1.3 實際操作部署監控和告警系統1.2.1 部署Kafka Exporter1.2.2 部署Prometheus1.2.3 部署AlertManger1.2.4 添加告警規…

大疆上云API本地部署與飛機上云

文章目錄 前言一、安裝基礎環境1. EMQX 安裝(版本4.4.0)2. MySql 安裝(版本8.0.26)3. Redis 安裝 二、部署后端&#xff08;JDK必須11及以上&#xff09;三、部署前端四、成為大疆開發者五、飛機注冊上云六、綁定飛機七、無人機狀態查看八、直播流查看 前言 大疆上云API官方文…

HarmonyOS鴻蒙應用開發——ArkTS的“內置組件 + 樣式 + 循環和條件渲染”

一、內置組件是咩&#xff1f; 學過前端的都知道&#xff0c;一個組件就是由多個組件組成的&#xff0c;一個組件也可以是多個小組件組成的&#xff0c;組件就是一些什么導航欄、底部、按鈕......啥的&#xff0c;但是組件分為【自定義組件】跟【內置組件】 【自定義組件】就…

Web開發核心

文章目錄 1.http協議簡介2.http協議特性3.http請求和響應協議4.最簡單的Web程序5.基于flask搭建web?站6.瀏覽器開發者?具&#xff08;重點&#xff09; 1.http協議簡介 HTTP協議是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫&#xff0c;是用于 萬維網(WWW:Norld W…

【狂神說Java】Redis筆記以及拓展

一、Redis 入門 Redis為什么單線程還這么快&#xff1f; 誤區1&#xff1a;高性能的服務器一定是多線程的&#xff1f; 誤區2&#xff1a;多線程&#xff08;CPU上下文會切換&#xff01;&#xff09;一定比單線程效率高&#xff01; 核心&#xff1a;Redis是將所有的數據放在內…

用于時間序列概率預測的蒙特卡洛模擬

大家好&#xff0c;蒙特卡洛模擬是一種廣泛應用于各個領域的計算技術&#xff0c;它通過從概率分布中隨機抽取大量樣本&#xff0c;并對結果進行統計分析&#xff0c;從而模擬復雜系統的行為。這種技術具有很強的適用性&#xff0c;在金融建模、工程設計、物理模擬、運籌優化以…

【C語言】C語言-設備管理系統(源碼+數據文件)【獨一無二】

&#x1f449;博__主&#x1f448;&#xff1a;米碼收割機 &#x1f449;技__能&#x1f448;&#xff1a;C/Python語言 &#x1f449;公眾號&#x1f448;&#xff1a;測試開發自動化【獲取源碼商業合作】 &#x1f449;榮__譽&#x1f448;&#xff1a;阿里云博客專家博主、5…

AI大模型:大數據+大算力+強算法

前言&#xff1a;好久不見&#xff0c;甚是想念&#xff0c;我是辣條&#xff0c;我又回來啦&#xff0c;兄弟們&#xff0c;一別兩年&#xff0c;還有多少老哥們在呢&#xff1f; 目錄 一年半沒更文我干啥去了&#xff1f; AI大模型火了 人工智能 大模型的理解 為什么學習…

ComfyUI完全入門:圖生圖局部重繪

大家好&#xff0c;我是每天分享AI應用的螢火君&#xff01; 這篇文章的主題和美女有關&#xff0c;不過并不是教大家生產美女視頻&#xff0c;而是講解 ComfyUI 的圖生圖局部重繪&#xff0c;其中將會以美女圖片為例&#xff0c;來展示局部重繪的強大威力。 先看看效果&…