Linux學習-TCP網絡協議(補充)

一、TCP 頭部標志位

TCP 頭部包含多種標志位,用于控制連接建立、數據傳輸、連接斷開等過程,核心標志位及作用如下:

標志位英文全稱作用
SYNSynchronize Sequence Numbers請求建立連接,三次握手第一步發送 SYN 包
ACKAcknowledgment響應報文標志,用于確認收到數據,確認號字段需配合 ACK 位使用
PSHPush攜帶數據標志,通知接收方立即從緩沖區讀數據,無需等待緩沖區滿
FINFinish請求斷開連接標志,四次揮手過程中用于發起斷開請求
RSTReset復位標志,用于異常斷開連接(如連接超時、錯誤),強制重置連接狀態
URGUrgent緊急數據標志,標記數據為緊急,緊急指針字段配合使用,指示緊急數據位置

在這里插入圖片描述

從 TCP 頭部結構看,這些標志位位于“數據偏移”“保留”之后的控制位區域,與源端口、目的端口、序列號、確認號等共同構成 TCP 報文首部(固定 20 字節,含選項則更長 ),TCP 報文段封裝在 IP 數據報的數據部分傳輸 。

二、TCP 保障安全可靠的機制

(一)連接管理:三次握手 & 四次揮手

  • 三次握手:通過 SYN、SYN + ACK、ACK 交互,確保收發雙方通信前就緒,同步序列號,確認雙向收發能力 。
  • 四次揮手:通過 FIN、ACK、FIN、ACK 交互,確保雙方數據傳輸完畢,有序釋放連接資源,避免數據殘留 。

(二)應答機制

TCP 發送數據時,用序列號標記數據包起始編號;接收方回復確認號(為收到的最后一個字節編號 + 1 ),告知發送方已接收數據范圍。發送方依據確認號判斷數據是否被接收,未確認則觸發重傳,保障數據可靠。

(三)超時重傳機制

數據發送后,若在**超時時間(RTO,Retransmission Timeout )**內未收到確認,發送方認為數據包丟失,重新發送該數據。超時時間會根據網絡情況動態調整(如基于往返時間 RTT 計算 ),平衡重傳效率與網絡開銷。

(四)滑動窗口機制

  • 發送方和接收方各維護一個窗口(緩沖區 ),窗口內是已發送未確認、或準備發送的數據 。
  • 發送方無需等每個數據包確認后再發下一個,可連續發送窗口內數據,提升傳輸效率;接收方通過窗口大小字段告知發送方自己的接收能力,動態調整發送速率,避免擁塞 。

三、TCP 提升效率的機制

(一)延遲應答機制

接收方不立即回復 ACK,等待一段時間(如緩存更多數據、湊齊應用層讀取需求 ),再批量確認。減少 ACK 報文數量,降低網絡開銷,提升整體傳輸效率。

(二)流量控制機制

結合 TCP 頭部窗口大小字段,接收方根據自身緩沖區剩余空間,調整窗口大小告知發送方。發送方按窗口大小控制發送數據量,避免發送過快導致接收方緩沖區溢出,實現收發速率匹配。

(三)捎帶應答機制

ACK 報文可與應用層數據合并發送(如接收方有數據要發給發送方時,將 ACK 與數據報文一起傳輸 ),減少單獨發送 ACK 的次數,降低網絡報文數量,提升傳輸效率。

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

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

相關文章

Go編寫的輕量文件監控器. 可以監控終端上指定文件夾內的變化, 阻止刪除,修改,新增操作. 可以用于AWD比賽或者終端應急響應

工具介紹 0RAYS-AWD-Filechecker一個用Golang編寫的, 輕量級的文件監控器, 會監控指定文件夾內文件刪除, 修改, 新增操作, 然后立刻告警并復原. 一開始是為AWD比賽寫的, 主要是為了防止靶機的web目錄被上馬. 但也可以用到藍隊等場景上. 由于使用的Linux的系統調用, 僅支持Linux…

【6】MySQL 數據庫基礎操作

MySQL 數據庫基礎操作數據庫操作查看數據庫創建數據庫刪除數據庫修改數據庫數據表操作創建表修改表刪除表數據庫操作 查看數據庫 查看有哪些數據庫? 示例: [rootlocalhost][(none)]> show databases; -------------------- | Database |…

Android 探索APP/應用啟動模式、Intent的Flag啟動標志位

寫在前面:Android APP有四種啟動模式——》標準模式(Standard)、棧頂復用模式(SingleTop)、棧內復用模式(SingleTask)、單例模式(SingleInstance),默認就是標準模式。啟動模式決定了Activity在任務棧內的存在方式,影響了Back返回鍵Activity返…

Y9000P部署開源模型

環境信息: 設備:Y9000P GPU:RTX 3060 6G 系統版本:Ubuntu 24.04 一、下載模型 1、環境準備 1、安裝工具 apt-get -y install git-lfs git lfs install apt-get install python3 python-is-python3 pip3.12 config set global.inde…

大模型入門實戰 | 基于 YOLO 數據集微調 Qwen2.5-VL-3B-Instruct 的目標檢測任務

大模型入門實戰 | 基于 YOLO 數據集微調 Qwen2.5-VL-3B-Instruct 的目標檢測任務這篇就是新手向的“保姆級”實操文。你將把 YOLO 檢測數據 轉成 對話式 Grounding 數據,用 ms-swift 做 LoRA 微調,再用腳本 推理 可視化。 但值得注意的是,一…

基于Python+MySQL實現物聯網引論課程一個火警報警及應急處理系統

物聯網引論課程大作業設計報告一、選題、內容及功能說明我們大作業選擇的是題目三:一個火警報警及應急處理系統。主要需要實現四個功能:感知環境溫度,當環境溫度超過閾值,自動觸發報警:終端 led 以固定頻率閃爍&#x…

基于印染數據的可視化系統設計與實現

標題:基于印染數據的可視化系統設計與實現內容:1.摘要 隨著印染行業的快速發展,印染數據呈現爆發式增長。為了更好地管理和分析這些數據,提高印染生產的效率和質量,本研究旨在設計并實現一個基于印染數據的可視化系統。通過收集印染生產過程中…

實驗1 第一個微信小程序

實驗1 第一個微信小程序一、實驗目標二、實驗步驟1. 自動生成小程序2. 手動創建小程序三、程序運行結果四、問題總結與體會chunk的博客地址一、實驗目標 1、學習使用快速啟動模板創建小程序的方法; 2、學習不使用模板手動創建小程序的方法。 二、實驗步驟 1. 自…

(計算機網絡)JWT三部分及 Signature 作用

JWT(JSON Web Token)是一種用于 無狀態認證 的輕量級令牌,廣泛用于分布式系統、單頁應用(SPA)和移動端登錄。JWT 結構概覽JWT 由 三部分組成,用 . 分隔:xxxxx.yyyyy.zzzzz Header(頭…

LangGraph

LangGraph 是由 LangChain 團隊開發的開源框架,專為構建??復雜、有狀態、多主體(Multi-Agent)的 LLM 應用??而設計。它通過??圖結構(Graph)?? 組織工作流,支持循環邏輯、動態分支、狀態持久化和人工…

STM32物聯網項目---ESP8266微信小程序結合OneNET平臺MQTT實現STM32單片機遠程智能控制---MQTT篇(三)

一、前言本篇文章通過發送AT指令,與云平臺建立通訊:1.創建云平臺2.燒錄AT固件3.MQTT訂閱(本篇)4.單片機代碼編寫5.微信小程序(下載微信開發者工具即可使用)二、AT指令集介紹AT指令是一種文本序列&#xff0…

Apache Ozone 2.0.0集群部署

單機部署參考:Apache Ozone 介紹與部署使用(最新版2.0.0)-CSDN博客 安裝部署 官方參考:Documentation for Apache Ozone 準備環境 環境準備參考:Linux環境下Hadoop3.4.0集群部署-CSDN博客 1->4-b 參考:Apache Ozone 介紹與部…

【計算機網絡 | 第9篇】信道的極限容量

文章目錄探秘信道的極限容量:從奈氏準則到香農定理一、信道極限容量的基本概念🤔二、奈氏準則:無噪聲情況下的碼元速率限制🐦?🔥(一)帶寬與信號傳輸的關系(二)碼間串擾問…

深入理解Linux iptables防火墻:從核心概念到實戰應用

一、概述:什么是iptables? 在Linux系統中,網絡安全防護的核心工具之一便是iptables。它絕非一個簡單的命令,而是一個功能強大的用戶態工具,與Linux內核中的netfilter框架協同工作,共同構建了Linux的防火墻體…

WebRTC音頻QoS方法一.1(NetEQ之音頻網絡延時DelayManager計算補充)

一、整體簡介 NetEQ計算的網絡延時,直接影響變速算法的決策。在變速算法里面啟動關鍵的作用。 網絡延時計算需要考慮兩種情況: 1、單純抖動的網絡延時計算,在UnderrunOptimizer類中實現; 2、在丟包亂序場景下的網絡延時計算。…

實時操作系統FreeRTOS移植到STM32VGT6

一、前言 下載平臺:STM32F407VGT6 代碼使用平臺:VSCode 編譯器:arm-none-aebi-gcc 程序下載工具:STlink 批處理工具:make 移植的FreeRTOS版本:V11.2.0 其實此方法并不局限在arm-none-aebi-gcc中,此方法對于Keil5也是可以使用的, 只不過復制的一些文件不同…

從線到機:AI 與多模態交互如何重塑 B 端與 App 界面設計

當下,界面設計已經不再是單純的“畫屏幕”。AI 的快速發展讓我們不得不重新審視:交互和視覺究竟會走向什么樣的未來?無論是移動端 App,還是復雜的 B 端產品,設計的核心都在于讓界面更懂用戶。本文嘗試從三個角度切入&a…

【智能化解決方案】大模型智能推薦選型系統方案設計

大模型智能推薦選型系統方案設計0 背景1 問題分析與定義2 模型假設與簡化3 核心模型構建3.1 決策變量與參數定義3.2 目標函數3.3 約束條件4 模型求解與驗證4.1 求解策略4.2 驗證方法4.3 模型迭代優化5 方案實施與系統設計5.1 系統架構設計5.2 工作流程5.3 關鍵算法實現5.4 時序…

【Java基礎】HashMap、HashTable與HashSet:區別、聯系與實踐指南

Java中HashMap、HashTable與HashSet的深度解析:區別、聯系與實踐指南 引言 在Java集合框架中,HashMap、HashTable與HashSet是最常用的哈希型數據結構。它們因高效的查找、插入與刪除性能(平均時間復雜度O(1)),廣泛應用…

互聯網大廠Java面試實戰:核心技術棧與場景化提問解析(含Spring Boot、微服務、測試框架等)

互聯網大廠Java面試實戰:核心技術棧與場景化提問解析 本文通過模擬面試官與求職者謝飛機的對話,深入探討互聯網大廠Java開發的核心技術棧面試問題,涵蓋Java SE、Spring生態、微服務、大數據等多個領域,結合音視頻、電商、AIGC等業…