TCP/IP 傳輸層詳解

TCP/IP 傳輸層詳解

傳輸層(Transport Layer)是 TCP/IP 模型的第四層(對應 OSI 模型的傳輸層),核心功能是實現 端到端(進程到進程)的可靠通信。主要協議包括:

  • TCP(傳輸控制協議):面向連接、可靠傳輸
  • UDP(用戶數據報協議):無連接、高效傳輸

核心功能
功能TCPUDP
連接管理三次握手建立連接,四次揮手斷開無連接
可靠性確認應答、重傳、排序無可靠性保證
流量控制滑動窗口機制
擁塞控制慢啟動、擁塞避免等算法
數據單元段(Segment)數據報(Datagram)
頭部開銷20~60 字節8 字節

TCP 協議深度解析

1. TCP 段結構
 0                   1                   2                   3  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
|          Source Port          |       Destination Port        |  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
|                        Sequence Number                        |  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
|                     Acknowledgment Number                     |  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
|  Data |           |U|A|P|R|S|F|                               |  
| Offset| Reserved  |R|C|S|S|Y|I|            Window             |  
|       |           |G|K|H|T|N|N|                               |  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
|           Checksum            |         Urgent Pointer        |  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
|                    Options (if any)           |    Padding    |  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
|                             Data                              |  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
  • 關鍵字段
    • 序列號(Seq):數據字節流的編號
    • 確認號(Ack):期望接收的下一個字節編號
    • 標志位:SYN(建立連接)、ACK(確認)、FIN(斷開連接)、RST(重置連接)
    • 窗口大小(Window):流量控制參數

2. TCP 連接管理(三次握手與四次揮手)
ClientServerCLOSED → SYN_SENTSYN=1, Seq=xLISTEN → SYN_RCVDSYN=1, ACK=1, Seq=y, Ack=x+1ESTABLISHEDACK=1, Seq=x+1, Ack=y+1ESTABLISHEDFIN_WAIT_1FIN=1, Seq=uCLOSE_WAITACK=1, Seq=v, Ack=u+1LAST_ACKFIN=1, ACK=1, Seq=w, Ack=u+1TIME_WAIT (2MSL)ACK=1, Seq=u+1, Ack=w+1CLOSEDClientServer

為什么需要三次握手?
防止失效的連接請求突然傳到服務器(網絡延遲導致的歷史連接問題)


3. TCP 可靠性機制
接收端
發送端
正確
錯誤
超時未收到ACK
ACK到達
校驗和檢查
接收數據
發送ACK
丟棄數據
按序列號重組
添加TCP頭部
數據分段
啟動定時器
重發數據
滑動窗口前移
  • 關鍵機制
    • 序列號/確認號:確保數據有序到達
    • 超時重傳:RTT動態計算超時時間
    • 滑動窗口:動態調整發送速率(流量控制)
    • 選擇性確認(SACK):高效重傳丟失片段

4. TCP 擁塞控制

在這里插入圖片描述

  • 階段說明
    1. 慢啟動:窗口從1 MSS開始指數增長
    2. 擁塞避免:窗口線性增長(加法增大)
    3. 快速重傳:收到3個重復ACK立即重傳
    4. 快速恢復:窗口減半后直接進入擁塞避免

UDP 協議解析

1. UDP 數據報結構
 0                   1                   2                   3  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
|          Source Port          |       Destination Port        |  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
|            Length             |           Checksum            |  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
|                             Data                              |  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
  • 特點
    • 無連接:直接發送數據
    • 無可靠性機制:不保證順序和到達
    • 低延遲:頭部僅8字節
    • 支持廣播/多播

2. UDP 通信流程
應用進程AUDP模塊AUDP模塊B應用進程B發送數據(帶端口)封裝UDP數據報解封裝,按端口交付無確認/重傳機制應用進程AUDP模塊AUDP模塊B應用進程B

端口(Port)機制

核心作用:區分同一主機上的不同應用程序
在這里插入圖片描述

  • 常見端口
    • HTTP: 80, HTTPS: 443
    • FTP: 21, SSH: 22
    • DNS: 53, DHCP: 67/68

TCP/UDP 應用場景對比

場景推薦協議原因
網頁瀏覽TCP需要可靠傳輸HTML/CSS/JS
視頻直播UDP容忍丟包,追求低延遲
文件傳輸TCP數據完整性要求高
DNS查詢UDP短報文,快速響應
在線游戲UDP實時性優先于可靠性
電子郵件TCP保證郵件內容完整到達

Mermaid 綜合原理圖

TCP 端到端通信全流程
接收主機
網絡路徑
發送主機
正確
錯誤
ACK
IP層解封裝
TCP重組數據
校驗序列號
發送ACK
丟棄等待重傳
交付應用
路由器1
路由器2
路由器N
TCP分段
應用數據
添加TCP頭部
傳遞給IP層

💡 傳輸層核心價值

  1. 為應用層屏蔽網絡復雜性(丟包、亂序、擁塞)
  2. 通過端口機制實現多路復用
  3. TCP/UDP 互補滿足不同場景需求
    “TCP提供可靠傳輸的管道,UDP提供高效的傳輸通道”

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

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

相關文章

深度學習筆記:Overview

本文根據吳恩達老師的深度學習課程整理而來,在此表示感知。 文章目錄1.課程筆記2.編程作業1.課程筆記 1)深度學習筆記(1):神經網絡基礎 2)深度學習筆記(2):淺層神經網絡…

LLM之RAG理論(十八)| ChatGPT DeepResearch 深度研究功能全面技術分析報告

一、背景與行業環境1.1 DeepResearch 的誕生與戰略意義ChatGPT DeepResearch(深度研究)是 OpenAI 于 2025 年 2 月 3 日正式發布的全新 AI 智能體產品,是繼 o3-mini 模型發布后,OpenAI 在 AI 研究領域的又一重大突破。這一功能的推…

數據庫學習--------數據庫日志類型及其與事務特性的關系

在數據庫系統中,日志是保證數據可靠性和一致性的重要組成部分,尤其與事務的特性緊密相連。無論是事務的原子性、一致性,還是持久性,都離不開日志的支持。數據庫日志(Database Log)是數據庫系統記錄自身操作…

如何在 Ubuntu 24.04 或 22.04 LTS 上安裝 OpenShot 視頻編輯器

OpenShot 視頻編輯器是一款輕量級工具,不需要高性能硬件即可編輯視頻。它最初是一個愛好項目,后來成為一款擁有簡單干凈用戶界面的流行免費編輯工具。這款直觀的視頻編輯器可以剪輯影片,并添加額外的視頻和音頻素材。最終,您可以將作品導出為您選擇的格式。本教程將向您展示…

SpringMVC核心原理與實戰指南

什么是MVC? MVC英文是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計規范。 MVC是用一種業務邏輯、數據、界面顯示分離的方法,將業務邏輯聚集到一個部件里面&am…

【JavaEE】(7) 網絡原理 TCP/IP 協議

一、應用層 應用層是程序員最關心的一層,需要自定義數據傳輸的格式,即前(客戶端)后(服務器)端交互的接口,然后調用傳輸層的 socket api 來實現網絡通信。 自定義數據傳輸的協議,主要…

深入理解 Slab / Buddy 分配器與 MMU 映射機制

📖 推薦閱讀:《Yocto項目實戰教程:高效定制嵌入式Linux系統》 🎥 更多學習視頻請關注 B 站:嵌入式Jerry 深入理解 Slab / Buddy 分配器與 MMU 映射機制 在現代 Linux 內核中,物理內存的管理和虛擬地址的映射是系統性能…

Layui核心語法快速入門指南

Layui 基本語法學習指南 Layui 是一個經典的模塊化前端框架,以其輕量易用、組件豐富著稱。以下是 Layui 的核心語法結構和使用方法: 一、模塊加載機制(核心基礎) // 標準模塊加載語法 layui.use([module1, module2], function()…

基于百度 iframe 框架與語音解析服務的數字人交互系統實現

在智能化交互場景中,數字人作為人機交互的重要載體,其語音交互能力與指令響應效率直接影響用戶體驗。本文將詳細介紹如何基于百度提供的 iframe 框架與語音解析服務,實現數字人語音播報、文字展示及指令響應的完整業務流程,涵蓋從插件初始化到實時語音交互的全鏈路實現邏輯…

高防服務器租用的優勢有哪些?

高防服務器具有著強大的防護能力,可以幫助企業抵御各種網絡攻擊,其中包括大規模的DDOS攻擊,高防服務器中還有著防火墻、流量清洗和負載均衡等多種安全技術,能夠保證業務持續穩定的運行,降低了企業整體的損失和安全風險…

7.28 進制交換|迭代器模式|map|子集按位或|帶參遞歸

lc701.二叉搜索樹插入void dfs不行TreeNode* dfs,帶接受參數處理的dfs當為空的時候,就可以添加插入if (!root){return new TreeNode(val);}插入位置root->left insertIntoBST(root->left, val);class Solution {public:TreeNode* insertIntoBST(T…

方法學習(二)

.一、變量作為實參使用:1.定義一個方法,比較兩個整數的大小,如果第一個整數比第二個整數大,返回true否則返回false。public static void main(String[] args) {int i 3;int j 5;//傳遞的是i和j,但是真正傳遞的是i和j…

計算機視覺CS231n學習(1)

面向視覺識別的卷積神經網絡 CS231n Introduction計算機視覺的歷史 the history of computer vision 重要節點:1959 Hubel & Wiesel 利用和人比較相像的貓的視覺神經做實驗:簡單細胞反應燈的位置;復雜細胞反應燈的位置和移動;…

【NLP輿情分析】基于python微博輿情分析可視化系統(flask+pandas+echarts) 視頻教程 - 微博內容IP地圖可視化分析實現

大家好,我是java1234_小鋒老師,最近寫了一套【NLP輿情分析】基于python微博輿情分析可視化系統(flaskpandasecharts)視頻教程,持續更新中,計劃月底更新完,感謝支持。今天講解微博內容IP地圖可視化分析實現 視頻在線地…

Z20K118庫中寄存器及其庫函數封裝-SYSCTRL庫

1. 系統設備識別寄存器(SCM)7個位域。 記錄設備信息。Z20K11x[FAM_ID:Z20K/Z20M,SUBF_ID:1/3,SER_ID:1/4]特征ID版本號FLASH存儲器大小封裝類型。1-1 SYSCTRL_DeviceId_t SYSCTRL_GetDeviceId(void)讀取設備信息。2.獨一ID號寄存器(SCM)4個該寄存器存儲完…

007TG洞察:波場TRON上市觀察,Web3流量工具的技術解析與應用

引言:波場TRON(TRX)登陸資本市場及近期加密市場熱點(如MEME幣),凸顯了實時流量捕獲與轉化在Web3領域的戰略地位。對于技術團隊而言,構建支撐全球業務的Web3平臺,核心挑戰在于&#x…

STM32——HAL 庫MDK工程創建

總:STM32——學習總綱 參考工程: 實驗0-3,新建工程實驗-HAL庫版本 前置知識: STM32——HAL庫 一、HAL 庫 MDK工程新建步驟簡介 例: 各個文件夾內容: 1.1 Drivers 1.2 Middlewares 1.3 Output 1.4 Pro…

【圖像處理】霍夫變換:霍夫變換原理、霍夫空間、霍夫直線、霍夫圓詳解與代碼示例

霍夫變換詳解與代碼示例 霍夫變換(Hough Transform)是一種用于檢測圖像中幾何形狀(如直線、圓)的特征提取技術。其核心思想是將圖像空間中的點映射到參數空間(霍夫空間),通過累積投票機制識別形…

Java WEB技術-序列化和反序列化認識(SpringBoot的Jackson序列化行為?如何打破序列化過程的駝峰規則?如何解決學序列化循環引用問題?)

一、什么是序列化和反序列化 在java項目中,對象序列化和反序列化通常用于對象的存儲或網絡傳輸等。如:服務端創建一個JSON對象,對象如何在網絡中進行傳輸呢?我們知道網絡傳輸的數據通常都是字節流的形式,對象想要在網絡…

【生活系列】MBTI探索 16 種性格類型

博客目錄一、MBTI 的四個核心維度1. 精力來源:外向(E)vs 內向(I)2. 信息獲取方式:感覺(S)vs 直覺(N)3. 決策方式:思考(T)v…