5.運輸層

5. 運輸層

1. 概述

  • 第2~4章依次介紹了計算機網絡體系結構中的物理層數據鏈路層網絡層,它們共同解決了將主機通過異構網絡互聯起來所面臨的問題,實現了主機到主機的通信
  • 然而在計算機網絡中實際進行通信的真正實體,是位于通信兩端主機中的進程
  • 如何為運行在不同主機上的應用進程提供直接的邏輯通信服務,就是運輸層的主要任務,運輸層協議又稱為端到端協議

2. 端口號,復用和分用

1. 運輸層端口號
  • 運行在計算機上的進程是使用進程標識符(Process ldentification,PID)來標識的。
    • 然而,因特網上的計算機并不是使用統一的操作系統,而不同操作系統(Windows、Linux、.MacOS)
      使用不同格式的進程標識符
    • 為了使運行不同操作系統的計算機的應用進程之間能夠基于網絡進行通信,就必須使用統一的方法
      對TCPP體系的應用進程進行標識
  • TCP/IP體系結構的運輸層使用端口號來標識和區分應用層的不同應用進程。端口號的長度為6比特,取
    值范圍是0~65535

端口號只具有本地意義,即端口號只是為了標識本計算機網絡協議棧應用層中的各應用進程。在因特網中,不同計算機中的相同端口號是沒有關系的,即相互獨立。另外,TCPUDP端口號之間也是沒有關系的

2. 發送方的復用和接收方的分用
  1. 復用(Multiplexing):
    • 定義: 復用是指將多個應用程序的數據流合并到一個共享的通信通道上
    • TCP中的復用: 在TCP中,復用通過源端口號來實現。TCP連接的兩端使用IP地址和端口號來唯一標識。源端口號表示發送端的應用程序,目的端口號表示接收端的應用程序。這樣,在單個TCP連接中,多個應用程序的數據可以共享同一個物理通信通道
    • UDP中的復用: 在UDP中,復用同樣通過源端口號來實現。UDP報文的源端口號用于標識發送端的應用程序,目的端口號用于標識接收端的應用程序
  2. 分用(Demultiplexing):
    • 定義: 分用是指根據數據流中的標識信息將合并的數據流分發給正確的應用程序
    • TCP中的分用: 在TCP中,分用通過目的端口號來實現。接收端根據目的端口號將接收到的數據分發給相應的應用程序。這樣,TCP層能夠將數據正確地傳遞給目標應用程序
    • UDP中的分用: 在UDP中,同樣通過目的端口號來實現分用。接收端通過目的端口號確定應該將數據交付給哪個應用程序

常見協議的分類

運輸層端口號應用舉例

3. TCPUDP的對比

注意

  • TCP面向連接是邏輯連接,并非真實物理連接
  • TCP面向字節流,UDP面向應用報文(只是給數據報添加一個UDP首部)
  • TCP只支持單播,UDP支持單播、多播和廣播
  • TCP提供可靠服務,UDP提供不可靠服務

4. TCP的流量控制

1. 概述

TCP為應用程序提供了流量控制Flow Control)機制,以解決因發送方發送數據太快而導致接收方來不及接收,造成接收方的接收緩存溢出的問題

流量控制的基本方法:接收方根據自己的接收能力(接收緩存的可用空間大小)控制發送方的發送速率

2. 流量控制方法
  1. 流程

  1. 例題

5. TCP的擁塞(se)控制

1. 基本概念
2. 4種擁塞控制方法

1. 慢開始、擁塞避免

2. 快重傳、快恢復

快重傳算法和快恢復算法(改進TCP性能,1990年Reno版本)

  1. 問題:只是個別報文丟失,沒有出現擁塞,這種情況下還是會將擁塞窗口設置為1,降低了網絡利用率

  1. 快重傳

    • 采用快重傳算法可以讓發送方盡早知道發生了個別TCP報文段的丟失
    • “快重傳”是指使發送方盡快(盡早)進行重傳,而不是等重傳計時器超時再重傳
      • 這就要求接收方不要等待自己發送數據時才進行捎帶確認,而是要立即發送確認,即使收到了失序的報文段也要立即發出對已收到的報文段的重復確認
      • 發送方一旦收到3個連續的重復確認,就將相應的報文段立即重傳,而不是等該報文段的重傳計時器超時再重傳

  2. 快恢復

與快重傳算法配合使用的是快恢復算法發送方一旦收到3個重復確認,就知道現在只是丟失了個別的報文段,于是不啟動慢開始算法,而是執行快恢復算法

  • 快恢復算法:發送方將慢開始門限ssthresh的值和擁塞窗口cwnd的值都調整為當前cwnd值的一半,并開始執行擁塞避免算法
  • 也有的快恢復實現是把快恢復開始時的cwnd值再增大一些,即cwnd=新ssthresh+3

6. TCP超時重傳時間的選擇

TCP超時重傳時間RTO的選擇是TCP最復雜的問題之一

問題:

  • 超時重傳時間設置過小,在確認報文段發送給接收方的過程中,發送方重傳數據報文,增大了網絡負荷
  • 超時重傳時間設置過大,需要重傳數據報文時,推遲時間太長,網絡空閑時間大,降低了傳輸效率
  • 超時重傳時間RTO應略大于往返時間RTT
RTO的選擇
1. RTTs的計算

2. RRTd和RTO的計算

發生超時重傳時無法測準RTT

通過上述兩個例子可以看出:當發送方出現超時重傳后,收到確認報文段時是無法判斷出該確認到底是對原數據報文段的確認還是對重傳數據報文段的確認,也就是無法準確測量出RTT,進而無法正確計算RTO

Karn算法及修正

總結

7. TCP可靠傳輸的實現

  • TCP的窗口以字節為單位

  • 發送方
    • 發送窗口內的已發送數據如果遲遲未收到確認,會發生超時重傳
    • 只有處于發送窗口內的數據才能發送

  • 接收方
    • 接收方只能對按序收到的數據中的最高序號給出累計確認,3次重復確認會導致發送方快重傳
    • 序號落入接收窗口內的數據是允許接收的數據

  • 總結

8. TCP的運輸連接管理

1. TCP連接的建立

TCP雙方連接的建立要解決的三個問題

2. 三報文握手

思考:第三次確認是否多余,能不能兩報文握手?

答案:不能,如下圖所示

3. 四報文揮手

思考:為什么客戶端發送完最后一個確認報文段后不立刻關閉而是等待2個MSL時間后才關閉?

答案:如圖所示

image-20241104141359755

TCP保活計時器的作用

9. TCP、UDP報文段首部格式對比

參閱思維導圖1

img

10. UDP的校驗

[!IMPORTANT]

偽首部只是計算校驗和的時候添加的,計算完后會拆除,不參與運輸!

UDP校驗

11. 思維導圖和習題

第5章 運輸層(思維導圖)-1 (kdocs.cn)

第5章 運輸層(思維導圖)-2 (kdocs.cn)

第5章 運輸層 習題 (kdocs.cn)

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

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

相關文章

告別手動時代!物聯網軟件開發讓萬物自動互聯

清晨,智能窗簾隨著陽光自動拉開;運動時,手表精準記錄著健康數據;回到家,室溫早已調節至最舒適狀態...這些場景的實現,都離不開物聯網軟件開發的技術支撐。在智能家居軟件開發、智能穿戴軟件開發、醫療器械軟…

Fiori學習專題十二:Shell Control as Container

為了讓我們的app更加適應不同的設備&#xff0c;這節課我們引入shell控件作為根元素 1.修改App.view.xml&#xff0c;加入Shell控件 <mvc:ViewcontrollerName"ui5.walkthrough.controller.App"xmlns"sap.m"xmlns:mvc"sap.ui.core.mvc"displa…

AI 與高性能計算的深度融合:開啟科技新紀元

在當今科技迅猛發展的時代&#xff0c;人工智能&#xff08;AI&#xff09;與高性能計算&#xff08;HPC&#xff09;正以前所未有的態勢深度融合&#xff0c;這種融合宛如一場強大的風暴&#xff0c;席卷并重塑著眾多領域的格局。從科學研究的突破到商業應用的革新&#xff0c…

「Unity3D」TextMeshPro使用TMP_InputField實現,輸入框高度自動擴展與收縮

先看實現效果&#xff1a; 要實現這個效果&#xff0c;有三個方面的問題需要解決&#xff1a; 第一&#xff0c;輸入框的高度擴展&#xff0c;內部子元素會隨著錨點&#xff0c;拉伸變形——要解決這個問題&#xff0c;需要將內部元素改變父類&#xff0c;然后增加父類高度&am…

多模態大語言模型arxiv論文略讀(四十七)

AdaShield: Safeguarding Multimodal Large Language Models from Structure-based Attack via Adaptive Shield Prompting ?? 論文標題&#xff1a;AdaShield: Safeguarding Multimodal Large Language Models from Structure-based Attack via Adaptive Shield Prompting …

美的人形機器人即將投入實際應用

國內家電巨頭美的集團近日公布了其自主研發的人形機器人的具體落地計劃。根據公司披露的信息&#xff0c;這款機器人將于5月在湖北荊州的洗衣機工廠率先投入使用&#xff0c;承擔設備運維、質量檢測和物料搬運等工作任務。預計今年下半年&#xff0c;該機器人還將進入美的線下門…

從零開始搭建你的個人博客:使用 GitHub Pages 免費部署靜態網站

&#x1f310; 從零開始搭建你的個人博客&#xff1a;使用 GitHub Pages 免費部署靜態網站 在互聯網時代&#xff0c;擁有一個屬于自己的網站不僅是一種展示方式&#xff0c;更是一種技術能力的體現。今天我們將一步步學習如何通過 GitHub Pages 搭建一個免費的個人博客或簡歷…

canvas動畫:點隨機運動 距離內自動連接成線 鼠標移動自動吸附附近的點

思路/實現步驟 創建canvas元素 獲取canvas的上下文ctx 初始化點的信息&#xff08;數量、初始坐標、移動方向、移動速度、大小、顏色&#xff09; 繪制點 繪制點之間的連線 點有規律的動起來 動畫循環 鼠標移動相關邏輯 點鼠標之間連線 鼠標吸附邏輯 添加配置項 重繪…

2025年4月AI科技領域周報(4.21-4.27):大模型生態加速演進 通用AI開啟產業融合新范式

2025年4月AI科技領域周報&#xff08;4.21-4.27&#xff09;&#xff1a;大模型生態加速演進 通用AI開啟產業融合新范式 一、本周熱點回顧1. OpenAI發布全球首款通用AI芯片「GPT-NPU」 重塑AI算力架構2. 谷歌DeepMind發布醫療AI系統「Med-Pathfinder」 實現全科室智能診斷3. 微…

【Bash】可以請您解釋性地說明一下“2>1”這個語法嗎?

Qwen3-235B 當然可以&#xff01;我們一步步拆解 2>&1 的含義&#xff0c;用生活化的例子來理解它&#xff1a; &#x1f9e0; 前提知識&#xff1a;三個“水流通道” 在 Linux/Unix 系統中&#xff0c;程序運行時有三種默認的“水流通道”&#xff1a; 標準輸入&…

MAC如何安裝多版本jdk(以8,11,17為例)

MAC如何安裝多版本jdk(以8,11,17為例&#xff09;_mac安裝jdk17-CSDN博客

Nginx核心

一、概述 Nginx一個具有高性能的【HTTP】和【反向代理】的【WEB服務器】&#xff0c;同時也是一個電子郵件代理服務器。正向代理服務的是客戶端&#xff08;比如VPN&#xff09;&#xff0c;反向代理服務的是服務端。Nginx是多進程的&#xff0c;有一個Master進程控制多個Worke…

綜合開發-手機APP遠程控制PLC1500柱燈的亮滅

要通過 ??Unity3D?? 開發的手機 App 控制 ??電氣柜上面的柱燈&#xff0c;需要WIFI模塊作為橋梁&#xff0c;按照以下步驟實現&#xff1a; ??1. 硬件準備&#xff08;硬件部分&#xff09;?? ??所需材料?? ??ESP32開發板??&#xff08;如ESP32-WROOM-32&a…

五款提效工具

1. 億可達 核心功能&#xff1a;通過“觸發器動作”模式&#xff0c;實現任務自動執行&#xff08;如郵件轉發、評論回復、數據同步&#xff09;。 適用場景&#xff1a;自動同步Notion項目到滴答清單生成待辦事項 優勢&#xff1a;節省重復操作時間&#xff0c;減少人為錯誤&a…

Docker化HBase排錯實錄:從Master hflush啟動失敗到Snappy算法未支持解決

前言 在容器化時代&#xff0c;使用 Docker 部署像 HBase 這樣復雜的分布式系統也比較方便。社區也提供了許多方便的 HBase Docker 鏡像&#xff0c;沒有找到官方的 apache的&#xff0c;但有包含許多大數據工具的 harisekhon/hbase 或用于學習目的的 bigdatauniversity/hbase…

windows遠程服務器數據庫的搭建和遠程訪問(Mysql忘記密碼通過Navicat連接記錄解密密碼)

服務器數據庫的搭建和遠程訪問 mysql數據庫安裝&#xff08;詳細&#xff09; window安裝mysql詳細流程 路程&#xff1a;重設MySQL5密碼&#xff0c;發現遠程服務器原本有一個MySQL5&#xff0c;嘗試在服務器本地建立連接被拒絕&#xff0c;因為不知道密碼。 &#xff08;1…

每日c/c++題 備戰藍橋杯(P1093 [NOIP 2007 普及組] 獎學金)

洛谷P1093 [NOIP 2007 普及組] 獎學金 詳解題解 題目背景與要求 題目鏈接&#xff1a;P1093 獎學金 核心任務&#xff1a;根據學生三科總分評選前5名獎學金獲得者&#xff0c;需按特定規則排序輸出。 排序規則&#xff08;按優先級從高到低&#xff09;&#xff1a; 總分降…

openEuler 22.03 安裝 Nginx,支持離線安裝

目錄 一、環境檢查1.1 必要環境檢查1.2 在線安裝&#xff08;有網絡&#xff09;1.3 離線安裝&#xff08;無網絡&#xff09; 二、下載Nginx2.1 在線下載2.2 離線下載 三、安裝Nginx四、開機自啟服務五、開放防火墻端口六、常用命令 一、環境檢查 1.1 必要環境檢查 # 查看 g…

基于深度學習的圖像壓縮技術(二)

接上篇&#xff1a;基于深度學習的圖像壓縮技術&#xff08;一&#xff09;-CSDN博客 3 基于生成對抗神經網絡的圖像壓縮技術 生成對抗網絡是一種先進的無監督學習算法&#xff0c;由Goodfellow等人在2014 年首次提出&#xff0c;其核心思想源于博弈論。 生成對抗網絡在圖像壓…

TCP和UDP的數據傳輸+區別

目錄 一、數據傳輸過程 1.1 TCP字節流服務圖 1.2 UDP數據報服務圖 二、tcp與udp的區別 1.連接方式 2.可靠性 3.傳輸效率 4.有序性 5.流量控制和擁塞控制 6.應用場景 7.首部長度 三、tcp與udp能不能使用同一個端口號&#xff1f; 四、同一個協議&#xf…