【計算機網絡】5傳輸層

傳輸層是面向通信的最高層,也是用戶功能的最底層。?

傳輸層僅存在于主機中,路由器等中間設備只用到下三層(無傳輸層)。

傳輸層對上層應用隱藏了底層網絡的復雜細節(比如數據怎么路由、網絡怎么連接等)。

  • 對應用程序來說,它看到的只是一條虛擬的通信通道,就像兩臺電腦之間直接連了一根線(但實際上數據可能經過了很多路由器、交換機)。

  • 這條通道的表現取決于傳輸層協議TCP還是UDP:像發短信,速度快但不保證一定送達(適合視頻通話、在線游戲)。

通俗比喻:

  • 網絡層(IP)?負責把包裹(數據)送到正確的城市(主機)。

  • 傳輸層(TCP/UDP)?負責把包裹送到城市里的具體收件人(應用進程),并決定包裹是“必須簽收”(TCP)還是“丟了不管”(UDP)。

1.端口(Port)

概念作用示例
IP地址定位網絡中的主機192.168.1.1
端口號定位主機內的應用進程80(HTTP)、443(HTTPS)
套接字唯一標識一個通信端點(192.168.1.1:80)

1.1.作用

功能:端口是應用層進程與傳輸層之間數據交互的橋梁。


端口是SAP。

各層服務訪問點SAP對比

服務訪問點示例
數據鏈路層幀的“類型”字段0x0800(IPv4)
網絡層IP數據報的“協議”字段6(TCP)、17(UDP)
傳輸層“端口號”字段80(HTTP)、53(DNS)
應用層用戶界面瀏覽器、客戶端軟件

n層的SAP就是第n+1層可以訪問第n層服務的地方。


?軟件端口 ≠ 硬件端口

軟件端口(協議端口)硬件端口

屬于邏輯概念,用于標識應用層進程。

物理接口(如路由器、交換機的端口),用于設備間連接。

傳輸層使用軟件端口進行進程間通信。

與軟件端口無關。

1.2.端口號

通過“端口號”標識本主機的一個特定進程。

注意:每臺主機的端口號是相互獨立的。TCP、UDP兩種協議的端口號是相互獨立的。

🦊例題

端口號長度16bit\left (0\sim 65535 \right ),2^{16}=65536

類型范圍說明常見示例

服務器端

使用的端口號

熟知端口號

(背)

0~1023由IANA分配給TCP/IP重要應用程序HTTP:80、FTP:21、SSH:22
登記端口號1024~49151供未分配熟知端口號的應用程序使用,需在IANA登記以避免沖突。MySQL:3306、Redis:6379

客戶端

使用的端口號

(短暫端口號

49152~65535僅在客戶端程序運行時動態分配,通信結束后釋放。隨機分配(如Chrome連接用49200)

1.3.套接字(Socket)

定義:唯一標識網絡中的一臺主機上的一個應用進程。一個通信端點。格式為Socket = (IP地址 : 端口號)。例如,(192.168.1.1:80)?表示主機192.168.1.1上的Web服務。

通信過程

  • 源Socket:發送方的IP和端口(如[ClientIP:49152])。

  • 目的Socket:接收方的IP和端口(如[ServerIP:80])。

  • 反向通信:服務器回復時,將源/目的端口號互換。

2.功能

2.1.實現端到端的通信

數據鏈路層?提供 (鏈路上)相鄰節點之間?的邏輯通信(如交換機到路由器)關注“這一段鏈路怎么傳”
網絡層?提供?主機之間?的邏輯通信(如 IP 地址到 IP 地址)關注“整個網絡怎么找到目標主機”
傳輸層提供 (運行在不同主機上)進程之間(端之間)?的邏輯通信(如端口到端口)關注“主機收到后交給哪個程序”
例如:IP將數據送到主機,傳輸層確保數據交付給主機內的具體應用(如瀏覽器、微信)
即使網絡層不可靠(如丟包、亂序),傳輸層仍能確保可靠性。

邏輯通信:對等層之間的通信好像是沿水平方向傳送的,但兩個對等層之間并沒有一條水平方向的物理連接。

2.2.復用和分用

功能復用(發送端)分用(接收端)
傳輸層(TCP/UDP)

多個應用進程(如瀏覽器、微信)通過同一個傳輸協議(TCP/UDP)發送數據。

接收方傳輸層根據端口號(如HTTP:80、DNS:53)將數據分發給正確的目標進程。
網絡層(IP)

不同協議的數據(如TCP、UDP、ICMP)封裝成IP數據報統一傳輸。

接收方網絡層根據協議號(如TCP=6, UDP=17)將數據交給對應的傳輸層協議處理。

2.3.差錯檢測

TCP:可靠傳輸,檢測錯誤后要求重傳(如校驗和失敗)。

UDP:不可靠傳輸,直接丟棄錯誤數據報。

網絡層局限:IP僅檢查首部校驗和,不檢查數據部分。

2.4.向應用層提供兩種服務

特性面向連接的可靠服務(TCP)無連接的不可靠服務(UDP)
連接方式

面向連接:需三次握手建立連接,傳輸結束釋放連接

無連接:直接發送數據,無需建立連接

有建立連接的時延沒有建立連接的時延
有連接狀態,需要維護無連接狀態,所以能支持更多的活動用戶機

面向什么

面向字節流

面向報文

每次傳輸一個報文段

TCP把應用程序交下來的數據僅視為一連串的無結構的字節流

每次傳輸一個完整的報文

(UDP 處理的最小單位)

支持報文自動拆分、重裝,因此可以傳輸長報文。所以TCP 報文的長度則根據接收方給出的窗口值和當前網絡擁塞程度來決定。

不支持報文自動拆分、重裝,因此只能傳輸短報文。所以UDP報文的長度由發送應用進程決定。

應用進程傳送到TCP緩存的數據塊太長 → TCP就把它劃分得短一些再傳送

應用進程傳送到TCP緩存的數據塊太短 → TCP也可等到積累足夠多的字節后再構成報文段發送出去。

報文過長 → IP 層可能分片,降低效率。

報文過短 → IP 數據報首部相對長度過大,同樣降低效率。

可靠性

可靠(確認、重傳

不可靠(不確認、不重傳)→可能丟包

并不意味著應用對數據的要求是不可靠的,應用層來維護可靠性
幾對幾

僅支持一對一傳輸(因為通信雙方的傳輸層必須先建立連接)

支持一對一(封裝成單播IP數據報)

一對多傳輸(封裝成廣播/多播IP數據報)

全雙工通信

?? 支持

?? 支持

TCP 提供全雙工通信,允許通信雙方同時發送和接收數據。

TCP 連接的兩端都設有發送緩存接收緩存,用于臨時存放雙向通信的數據。

發送緩存暫存:

①發送應用程序傳送給發送方TCP準備發送的數據

②TCP 已發送但尚未收到確認的數據

接收緩存暫存:

①按序到達但尚未被接收應用程序讀取的數據

②不按序到達的數據

UDP 本身是全雙工的,但由于無連接和不可靠性,應用層需自行管理數據流的雙向傳輸(如 RTP 協議)。
傳輸效率

慢(需確認、重傳)

數據順序保證數據按序到達不保證順序
首部開銷

20B

8B

功能

可靠傳輸

分用

復用

差錯檢測(校驗和,但出錯直接丟棄)

流量控制(滑動窗口)
擁塞控制(慢啟動、擁塞避免)

沒有擁塞控制

不影響源主機發送速率,實時性,時延小

適用場景

適用于要求高可靠性的應用

(如網頁瀏覽、文件傳輸、電子郵件)

適用于實時性要求高或容忍少量丟失的應用

(如視頻流、DNS 查詢、實時語音)

常用于一次性傳輸較少數據的網絡應用,節省開銷;

常用于多媒體應用,不要求可靠,但要求時延小

應用

HTTP(網頁瀏覽)

FTP(文件傳輸)

SMTP(電子郵件)

TELNET(遠程登錄)

DNS(域名解析)

SNMP(網絡管理)

TFTP(簡單文件傳輸)

RTP(實時視頻/語音)

DHCP(動態IP分配)

3.UDP

3.1.UDP 數據報

當接收方的傳輸層從IP層收到UDP數據報時,就根據UDP數據報首部中的目的端口,把UDP數據報通過相應的端口,上交最后的終點一一接收方的應用進程。

若接收方UDP發現收到的報文中的目的端口號不正確(不存在對應于端口號的應用進程),則就丟棄該報文,并由ICMP發送“端口不可達”差錯報文給發送方。

3.2.UDP檢驗

3.2.1.概念

定義:數據的發送方給數據的接收方發送一個UDP數據報后,接收方如何去檢驗出UDP數據報當中是否有比特錯誤。

計算IP數據報首部檢驗和的方法和UDP計算檢驗和的方法基本相同。不同的是:IP數據報檢驗和只檢驗首部;UDP的檢驗和要將首部和數據部分一起檢驗。

偽首部:在計算檢驗和時,UDP數據報前臨時添加12B的偽首部。偽首部不向下傳送或向上遞交,只是為了計算檢驗和。?字段內容包括源IP地址(4字節)、目的IP地址(4字節)、全0字段(1字節)、協議字段(1字節,UDP為17)、UDP長度(2字節)。

3.2.2.步驟

1??發送方添加偽首部。把全0放入檢驗和字段。偽首部+首部+數據若不是16bit的整數,用0填充。

2??發送方計算檢驗和:將偽首部+首部+數據16bit為一組,進行二進制反碼求和(最高位產生的進位需要回卷),加法運算的最終結果逐位取反,得到16bit“檢驗和”。

3??發送方計算完校驗和之后,拆除偽首部。將16bit“檢驗和”寫入檢驗和字段。(而若檢驗和的計算結果恰好為0,則將檢驗和字段置為全1

4??發送方將UDP數據報(檢驗和字段為“檢驗和”發送給接收方。

5??接收方在差錯檢驗之前,需要添加偽首部

6??差錯檢驗:接收方將偽首部+首部+數據(與之前的區別是檢驗和字段為“檢驗和”)以16bit為一組,進行二進制反碼求和(最高位產生的進位需要回卷)。如果加法結果為全1,說明沒有差錯,就接收該UDP數據報。如果加法結果不是全1,說明有差錯,就丟棄該UDP數據報或交付給上層并附上錯誤報告。

7??檢驗完之后,拆除偽首部。


🦄例題?

4.TCP🦊

4.1.TCP報文段/TCP段

4.2.TCP連接管理

TCP連接的端點:套接字(IP地址+端口號)

即使IP或端口重復,通過套接字對(源IP+源端口+目標IP+目標端口)仍能唯一標識一條TCP連接。

TCP連接的建立模式:客戶/服務器模式(C/S模式)

客戶(Client):主動發起連接建立的應用進程。

服務器(Server):被動等待連接建立的應用進程。

TCP協議的三大階段:1??建立連接(三次握手)2??數據傳輸3??釋放連接(四次揮手)

階段\字段SYNACKFIN
握手1100
握手2110
握手3010
揮手1011
揮手2010
揮手3011
揮手4010

4.2.1.?建立連接(三次握手)

4.2.1.1.字段值

TCP連接建立需要解決的三個核心問題:①確認對方的存在②參數協商③資源分配

TCP通過“三次握手”機制解決上述三個問題。

階段\字段SYNACKFIN

seq

ack

特點
握手110(唯一的0)0x

SYN=1不能攜帶數據

SYN=1要多消耗一個序號

正在建立連接第一次握手,尚未收到對方的任何信息,所以確認號無效。
握手2110yx+1

SYN=1不能攜帶數據

SYN=1要多消耗一個序號

正在建立連接
握手3010x+1y+1

可以攜帶數據

連接已建立
雙向傳輸數據
4.2.1.2.狀態轉換

4.2.1.3.耗時分析

4.2.2.?釋放連接(四次揮手)

4.2.2.1.字段值

階段\字段SYNACKFIN

seq

ack

特點
揮手1011(只有這兩個)xy

①一般不攜帶數據,但是可以

FIN=1要多消耗一個序號

一方發送完了
揮手2010yx+1可以攜帶數據
單向傳輸數據
揮手3011(只有這兩個)zx+1

①一般不攜帶數據,但是可以

FIN=1要多消耗一個序號

另一方發送完了
揮手4010x+1z+1不可以攜帶數據
4.2.2.2.狀態轉換

注意:客戶機和服務器都可以先發出揮手。

4.2.2.3.耗時分析

4.3.TCP可靠傳輸(接收方反饋,端到端,局部)

4.3.1.檢驗

和UDP檢驗一樣

4.3.2.序號seq

每個字節分配唯一序號,起始序號在建立連接時確定。

作用:標識數據位置,確保有序傳輸。

示例:客戶端初始序號=599,服務器初始序號=199。

4.3.3.確認seq_ack

累積確認規則:接收方返回確認號ack=n,表示序號n-1及之前的所有數據已正確接收。

專門確認(非術語)攜帶確認
只有首部,沒有數據

若接收方有數據需發送,可攜帶在ACK段中(減少報文數量)。

屬于立即確認。

推遲確認(默認)立即確認

1??推遲確認就是ACK等一會再發送,如果又收到了一個報文段,那么可以累計確認。推遲時間最多不能超過0.5秒(TCP標準規定)

2??如果自己也有數據要傳送給對方,那么不推遲,立即返回ACK段,并“捎帶”自己的數據。

3??若連續收到兩個長度為MSS的報文段(就是允許范圍內的最大報文段),就應該立即返回ACK段。因為重傳代價很大,要讓這件事盡快塵埃落定。

每收到一個TCP報文段,就立即返回一個ACK段

即使收到一個失序報文段,也要立即返回ACK段
(失序報文段會導致冗余ACK)

4.3.4.重傳

超時重傳(默認)快重傳

每發出一個報文段,就設置一個計時器。

若計時器到期還沒收到確認,就重傳這一報文段,并重置計時器。

配套機制:立即確認

作用:讓可能出錯的報文段盡早重傳,而不是非要等到超時再重傳。

當發送方連續收到三個確認號相同的冗余ACK(1+3個確認號相同的ACK)時,就立即重傳該確認號對應的報文段

4.4.TCP流量控制(接收方反饋,端到端,局部)

接收緩沖區的數據交給應用層后要保證有序(比如說應用層的數組有1~17的字節,要交上去18~20的字節可以,20~22的字節不行)

4.5.TCP擁塞控制(控制發送方,整個網絡,全局)

發送窗口的上限值=min[rwnd接收窗口(流量控制),cwnd擁塞窗口(擁塞控制)]

每臺主機都有自己的發送窗口、接收窗口、擁塞窗口。

現象網絡是否擁塞?怎么辦?算法
發出的每個報文段,都能順利地收到ACK確認不擁塞小心翼翼調大cwnd擁塞窗口
收到冗余ACK,引發快重傳有點擁塞迅速減少發送的數據量
適當縮小cwnd擁塞窗口
快重傳算法和快恢復算法
發出的報文段未能按時收到ACK,引發超時重傳嚴重擁塞迅速減少發送的數據量
迅速縮小cwnd擁塞窗口
慢開始算法和擁塞避免算法

4.5.1.慢開始算法和擁塞避免算法

4.5.2.快重傳算法和快恢復算法

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

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

相關文章

SecureCRT連接密鑰交換失敗

SecureCRT連接密鑰交換失敗問題描述:問題分析:解決方案:問題描述: SecureCRT6.7連接銀河麒麟操作系統v10版本,報錯如下: key exchange failed 密鑰交換失敗 no compatible key exchange method. The serv…

2021-05-10 求出這十個數據的平均值,并輸入高于平均值的所有元素值及下標求出這十個數據的平均值,并輸入高于平均值的所有元素值及下標

緣由C語言向一維數組a[10]中輸入10個數據&#xff1a;12&#xff0c;15&#xff0c;18&#xff0c;21&#xff0c;24&#xff0c;32&#xff0c;34&#xff0c;36&#xff0c;38&#xff0c;4-其他-CSDN問答 double a[10000]{}, j 0; int n 0;while (n < 10000){std::cin …

WordPress與主流CMS拿Webshell實戰

一、wordpress安裝環境首先我們在vulhub中啟動我們wordpress的doaker容器然后去訪問我們的80端口然后選擇簡體中文進行安裝然后就可以登錄到我們的后臺界面了后臺修改模板拿webshell進入后臺&#xff0c;我們修改一下404頁面的代碼&#xff0c;添加我們的一句話木馬然后保存&am…

指針的運算與數組

一、指針的運算1.1加法對指針可以進行加法運算&#xff0c;即p n或者p - n。其結果依舊是一個是一個指針&#xff0c;新的指針是在原來的地址值基礎上加上/減去n *(sizeof(指針指向的數據類型)&#xff09;個字節。 指針也可以進行自增&#xff0c;即*&#xff08;p &#xf…

【PostgreSQL內核學習:WindowAgg 幀優化與節點去重】

PostgreSQL內核學習&#xff1a;WindowAgg 幀優化與節點去重背景關鍵詞解釋本優化主要修改內容描述提交信息提交描述源碼解讀optimize_window_clauses 函數核心邏輯拆解函數時序圖新增結構體類型 SupportRequestOptimizeWindowClause優化后的效果幀優化 sql 用例查詢計劃輸出節…

行業要聞|正式落地!新思科技宣布完成對Ansys的收購

2025年7月17日——新思科技&#xff08;Synopsys, Inc.&#xff0c;納斯達克股票代碼&#xff1a;SNPS&#xff09;宣布完成對Ansys的收購。該交易旨在整合芯片設計、IP核以及仿真與分析領域的領先企業&#xff0c;助力開發者快速創新AI驅動的產品。在擴大至310億美元的總潛在市…

Elasticsearch 基礎速成 5 步跑通索引、文檔、映射與查詢

1 準備工作運行環境 curl -fsSL https://elastic.co/start-local | sh # 一條命令拉起本地單節點集群 # 瀏覽器打開 http://localhost:5601 進入 Kibana → DevTools → Console已有云端或 Serverless 集群可以直接跳到第 2 步。操作界面 以下所有請求均可在 Kibana → DevT…

語音表示學習論文總結

語音表示學習&#xff08;Speech Representation Learning&#xff09;是語音信號處理與機器學習交叉領域的核心技術&#xff0c;其目標是通過數據驅動的方式&#xff0c;從原始語音信號中自動提取具有判別性、魯棒性和泛化能力的特征表示&#xff0c;以替代傳統手工設計的聲學…

國產芯+單北斗防爆終端:W5-D防爆智能手機,助力工業安全通信升級

在石油石化、煤礦開采、電力檢修等高危行業&#xff0c;防爆設備的定位精度、通信可靠性及供應鏈安全性直接決定作業安全與生產效率。傳統防爆手機依賴GPS定位與進口芯片&#xff0c;存在信號盲區、數據泄露風險及斷供隱患。針對此&#xff0c;我們推出W5-D防爆智能終端&#x…

Kafka簡述及學習課程

Kafka是由Apache軟件基金會開發的一個開源流處理平臺&#xff0c;由Scala和Java編寫。Kafka是一種高吞吐量的分布式發布訂閱消息系統&#xff0c;它可以處理消費者在網站中的所有動作流數據。 這種動作&#xff08;網頁瀏覽&#xff0c;搜索和其他用戶的行動&#xff09;是在現…

BLE PHY 幀結構

BLE&#xff08;低功耗藍牙&#xff09;的 PHY&#xff08;物理層&#xff09;幀結構根據傳輸模式&#xff08;廣播、數據&#xff09;和 PHY 類型&#xff08;1M、2M、Coded PHY&#xff09;有所差異&#xff0c;但基本框架一致。以下是 BLE PHY 幀的通用結構及各部分含義&…

海外貨運 app 系統架構分析

一、引言海外貨運業務涉及眾多復雜環節&#xff0c;從貨物攬收、倉儲管理、運輸調度到最后交付&#xff0c;需要一個高效、穩定且功能全面的 APP 系統來協調各方資源&#xff0c;提升物流效率&#xff0c;保障貨物安全準確送達。本文將對海外貨運 APP 系統架構進行詳細剖析&…

【硬件-筆試面試題】硬件/電子工程師,筆試面試題-52,(知識點:簡單一階低通濾波器的設計,RC濾波電路,截止頻率)

目錄 1、題目 2、解答 3、相關知識點 一、一階低通濾波器的核心原理 1. 電路結構 2. 關鍵特性參數 二、一階低通濾波器的設計步驟&#xff08;以 RC 電路為例&#xff09; 1. 確定截止頻率\(f_c\) 2. 選擇電阻 R 的阻值 3. 計算電容 C 的容值 4. 驗證與調整 三、典…

防火墻安全實驗

一、實驗拓補圖二、實驗需求1、VLAN 2屬于辦公區;VLAN 3屬于生產區2、辦公區PC在工作日時間(周一至周五&#xff0c;早8到晚6)可以正常訪OA Server&#xff0c;其他時間不允許3、辦公區PC可以在任意時刻訪問Web server4、生產區PC可以在任意時刻訪問OA Server&#xff0c;但是不…

TOC-Transformer-LSTM-ABKDE,計算機一區算法龍卷風優化算法應用到概率區間預測!Matlab實現

TOC算法概述 文獻《Tornado optimizer with Coriolis force: a novel bio-inspired meta-heuristic algorithm》核心解讀&#xff1a;科里奧利力的龍卷風優化算法&#xff08;Tornado optimizer with Coriolis force&#xff0c;TOC&#xff09;對龍卷風循環過程的觀察以及雷暴…

Adobe Illustrator安裝下載教程(附安裝包)Illustrator2025

文章目錄一、Illustrator2025 下載鏈接二、Illustrator2025 安裝步驟三、Illustrator 2025 軟件介紹一、Illustrator2025 下載鏈接 夸克下載鏈接&#xff1a;https://pan.quark.cn/s/b990bac7107c 二、Illustrator2025 安裝步驟 1.將安裝包下載并解壓&#xff0c;雙擊打開&am…

matlab - 算4個數的加減法

文章目錄matlab - 算4個數的加減法概述筆記ENDmatlab - 算4個數的加減法 概述 有個類似于下面的4個數的加減法&#xff0c;給出任意一組解就行。 反正都是遍歷, c可以&#xff0c;matlab也可以。 筆記 % file test.m % brief 用matlab來算"4個數的加減法" %a b…

C++ 1.面向對象編程(OOP)框架

目錄 面向對象編程(OOP)框架 問題背景 OOP框架開發的關鍵問題解析 步驟1&#xff1a;抽象設計階段 步驟2&#xff1a;繼承層次設計 步驟3&#xff1a;多態機制應用 步驟4&#xff1a;對象關系管理 這個案例展現的核心OOP價值 封裝的價值 繼承的價值 多態的價值 實際…

mac操作筆記

mac的操作筆記opt文件夾是干什么的&#xff1f;如何在某個訪達的文件夾里快速打開終端opt文件夾是干什么的&#xff1f; 在 macOS 中&#xff0c;/opt 目錄是一個可選&#xff08;optional&#xff09;軟件安裝目錄&#xff0c;主要用于存放第三方或非系統原生的應用程序。 /…

紅黑樹×協程×內存序:2025 C++后端核心三體問題攻防手冊

以下是2025年C后端開發全新高頻壓軸面試題&#xff0c;結合騰訊、字節、阿里等大廠最新技術棧&#xff0c;聚焦紅黑樹工程實踐、C20協程底層、Linux內核同步、分布式鎖實現及內存序重排五大核心領域&#xff0c;附工業級解決方案和手撕代碼示例&#xff1a; &#x1f333; 一、…