應用層協議原理——可供應用程序使用的運輸服務

????????前面講過套接字是應用程序進程和運輸層協議之間的接口。在發送端的應用程序將報文推進該套接字。在該套接字的另一側,運輸層協議負責使該報文進入接收進程的套接字。

????????包括因特網在內的很多網絡提供了不止一種運輸層協議。當開發一個應用時,必須選擇一種可用的運輸層協議。如何做出這種選擇呢?最可能的方式是,通過研究這些可用的運輸層協議所提供的服務、選擇一個最能為你的應用需求提供恰當服務的協議。

????????一個運輸層協議能夠為調用它的應用程序提供什么樣的服務呢?大體能夠從四個方面對應用程序服務要求進行分類:可靠數據傳輸、吞吐量、定時和安全性

????????

1.可靠數據傳輸

???????分組在計算機網絡中可能丟失。例如,分組能夠使路由器中的緩存溢出,或者當分組中的某些比特損壞后可能被丟棄。像電子郵件、文件傳輸、遠程主機訪問、Web文檔傳輸以及金融應用等這樣的應用,數據丟失可能會造成災難性的后果(在后一種情況下,無論對銀行或對顧客都是如此!)。因此,為了支持這些應用,必須做一些工作以確保由應用程序的一端發送的數據正確、完全地交付給該應用程序的另一端。如果一個協議提供了這樣的確保數據交付服務,就認為提供了可靠數據傳輸(reliable data transfer)。運輸層協議能夠潛在地向應用程序提供的一個重要服務是進程到進程的可靠數據傳輸。當一個運輸協議提供這種服務時,發送進程只要將其數據傳遞進套接字,就可以完全相信該數據將能無差錯地到達接收進程。

????????當一個運輸層協議不提供可靠數據傳輸時,由發送進程發送的某些數據可能不能夠到達接收進程。這可能能被容忍丟失的應用(loss-tolerant application)所接受,最值得注意的是多媒體應用,如交談式音頻/視頻,它們能夠承受一定量的數據丟失。在這些多媒體應用中,丟失的數據引起播放的音頻/視頻出現小干擾,而不是致命的損傷。

2.吞吐量

????????可用吞吐量,在沿著一條網絡路徑上的兩個進程之間的通信會話場景中,可用吞吐量就是發送進程能夠向接收進程交付比特的速率。因為其他會話將共享沿著該網絡路徑的帶寬,并且因為這些會話將會到達和離開,該可用吞吐量將隨時間波動。這些觀察導致另一種自然的服務,即運輸層協議能夠以某種特定的速率提供確保的可用吞吐量。使用這種服務,該應用程序能夠請求r比特/秒的確保吞吐量,并且該運輸協議能夠確保可用吞吐量總是為至少r比特/秒。這樣的確保吞吐量的服務將對許多應用程序有吸引力。例如,如果因特網電話應用程序對語音以32kbps的速率進行編碼那么它也必須以這個速率向網絡發送數據,并向接收應用程序交付數據。如果運輸協議不能提供這種吞吐量,該應用程序或以較低速率進行編碼(并且接收足夠的吞吐量以維持這種較低的編碼速率),或它可能必須放棄發送,這是因為對于這種因特網電話應用而言,接收所需吞吐量的一半是幾乎沒有或根本沒有用處的。具有吞吐量要求的應用程序被稱為帶寬敏感的應用(bandwidh-sensitive application)。許多當前的多媒體應用是帶寬敏感的,盡管某些多媒體應用程序可能采用自適應編碼技術對數字語音或視頻以與當前可用帶寬相匹配的速率進行編碼。

????????帶寬敏感的應用具有特定的吞吐量要求,而彈性應用(elastic application)能夠根據情況或多或少地利用可供使用的吞吐量。電子郵件、文件傳輸以及Web傳送都屬于彈性應用。當然,吞吐量是越多越好。

3.定時

????????運輸層協議也能提供定時保證。如同具有吞吐量保證那樣,定時保證能夠以多種形式實現。一個保證的例子如:發送方注入進套接字中的每個比特到達接收方的套接字不遲于100ms。這種服務將對交互式實時應用程序有吸引力,如因特網電話、虛擬環境電話會議和多方游戲,所有這些服務為了有效性而要求數據交付有嚴格的時間限制。

????????對于非實時的應用,較低的時延總比較高的時延好,但對端到端的時延沒有嚴格的約束。

4.安全性

????????最后,運輸協議能夠為應用程序提供一種或多種安全性服務。例如,在發送主機中,運輸協議能夠加密由發送進程傳輸的所有數據,在接收主機中,運輸層協議能夠在將數據交付給接收進程之前解密這些數據。這種服務將在發送和接收進程之間提供機密性,以防該數據以某種方式在這兩個進程之間被觀察到。運輸協議還能提供除了機密性以外的其他安全性服務、包括數據完整性和端點鑒別

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

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

相關文章

什么是海外倉管理自動化?策略及落地實施步驟指南

作為海外倉的管理者,你每天都面臨提高海外倉運營效率、降低成本和滿足客戶需求的問題。海外倉自動化管理技術為這些問題提供了不錯的解決思路,不過和任何新技術一樣,從策略到落地實施,都有一個對基礎邏輯的認識過程。 今天我們整…

重生奇跡mu的地圖名

地圖之一:勇者大陸 勇者大陸地處奇跡大陸中央。終年陰雨連綿,氣候潮濕悶熱。植物由充滿黑暗陰森氣氛的草地所構成。這里的NPC數量是所有地圖中最多的。因為地步交通要沖,所以也是玩家聚集最多的地方。 這里是劍士、魔法師、魔劍士和圣導師初…

vue3關于在線考試 實現監考功能 推流拉流

vue3 關于在線考試 實現監考功能&#xff0c; pc端考試 本質是直播推流的功能 使用騰訊云直播: 在線文檔 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><link rel"icon" href"/f…

永磁同步電機控制算法--最大轉矩電流比控制(虛擬信號注入法)

目前&#xff0c;國內外相關學者對 MTPA 控制方法進行了一系列的理論研究與仿真分析。通過研究取得的成果綜合來看&#xff0c;該控制方法主要有&#xff1a;直接公式計算法、曲線擬合法、查表法、搜索法、高頻信號注入法以及參數辨識法等。 之前的文章中已經介紹了直接公式計…

Java.Maths類的常用方法

Maths類的常用方法 Math 類是 Java 標準庫中的一個類&#xff0c;位于 java.lang 包中。它提供了一些基本的數學操作方法&#xff0c;這些方法都是靜態的。以下是 Math 類的所有方法&#xff1a; 數學常量 double E: 自然對數的底數&#xff08;約等于 2.718&#xff09;doub…

對于“百模大戰”,幾乎所有大佬的口風都180 °大轉變了?

文 | 智能相對論 作者 | 陳泊丞 在2024世界人工智能大會暨人工智能全球治理高級別會議產業發展主論壇上&#xff0c;百度創始人、董事長兼首席執行官李彥宏談了些對于AI大模型的看法&#xff0c;語驚四座。 他先是指出&#xff0c;“百模大戰造成了社會資源的巨大浪費&#x…

ubuntu 如何復制文件夾的內容

在Ubuntu中&#xff0c;您可以使用cp命令來復制文件夾的內容。如果您想要復制文件夾及其所有內容&#xff08;包括子文件夾&#xff09;&#xff0c;可以使用-r&#xff08;遞歸&#xff09;選項。 cp -r /path/to/source/folder/* /path/to/destination/folder/ 這個命令會將s…

現在2024年網絡安全真實情況還好就業嗎?_2024年網絡安全專業到底行不行了

2024年網絡安全行業的前景看起來非常樂觀。根據當前的趨勢和發展&#xff0c;一些趨勢和發展可能對2024年網絡安全行業產生影響&#xff1a; 5G技術的廣泛應用&#xff1a;5G技術的普及將會使互聯網的速度更快&#xff0c;同時也將帶來更多的網絡威脅和安全挑戰。網絡安全專家…

java-spring boot光速入門教程(超詳細!!)

目錄 一、引言 1.1 初始化配置 1.2 整合第三方框架 1.3 后期維護 1.4 部署工程 1.5 敏捷式開發 二、SpringBoot介紹 spring boot 2.1 搭建一個spring boot工程 2.2 使用idea創建項目 2.3 在線創建姿勢 2.4 項目的目錄結構 2.5 項目的運行方式 2.6 yml文件格式 2…

CP AUTOSAR標準之XCP(AUTOSAR_CP_SWS_XCP)(更新中……)

1 簡介和功能概述 該規范規定了AUTOSAR基礎軟件模塊XCP的功能、API和配置。XCP是主設備(工具)和從設備(設備)之間的協議描述(ASAM標準),提供以下基本功能: 同步數據采集(測量)同步數據刺激(用于快速原型設計)在線內存校準(讀/寫訪問)校準數據頁面初始化和切換用于ECU開發目的…

分享外貿工作中常用英文標準表達和英文語句

常用英文表達 報拉格斯最低到岸價 quote the lowest price CIF Lagos經營紡織品多年 be in the line of textiles for many years貨物受歡迎 the goods are very popular with customers / have met with a warm reception /be well received/accepted/ enjoy a wide populari…

Java線程死鎖及解決方法

多線程環境下&#xff0c;死鎖即兩個或兩個以上的線程去爭奪同一個共享資源&#xff0c;而導致互相等待的情況。 要產生死鎖&#xff0c;必須滿足如下四個條件&#xff1a; 互斥條件&#xff0c;共享資源x和y只能被一個線程占有請求和保持條件&#xff0c;T1持有x&#xff0c…

解讀BASE理論:高可用性與性能的完美平衡

Base概念 BASE 理論是一種處理大規模分布式系統中的數據一致性問題的思路。相比于傳統的嚴格一致性&#xff0c;它更靈活&#xff0c;適用于那些需要高可用性和性能的系統。BASE 理論由三個部分組成&#xff1a; 基本可用&#xff08;Basically Available&#xff09; 基本可用…

【c++刷題筆記-動態規劃】day32: 509. 斐波那契數 、 70. 爬樓梯 、 746. 使用最小花費爬樓梯

509. 斐波那契數 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int fib(int n) {if(n0){return 0;}vector<int>dp(n1);dp[0]0;dp[1]1;for(int i2;i<n;i){dp[i]dp[i-1]dp[i-2];}return dp[n];} }; 70. 爬樓梯 - 力扣&#xff08;LeetCode&#x…

pytorch 模型保存到本地之后,如何繼續訓練

在 PyTorch 中&#xff0c;你可以通過以下步驟保存和加載模型&#xff0c;然后繼續訓練&#xff1a; 保存模型 通常有兩種方式來保存模型&#xff1a; 保存整個模型&#xff08;包括網絡結構、權重等&#xff09;&#xff1a; torch.save(model, model.pth) 只保存模型的state…

利用亞馬遜云科技云原生Serverless代碼托管服務開發OpenAI ChatGPT-4o應用

今天小李哥繼續介紹國際上主流云計算平臺亞馬遜云科技AWS上的熱門生成式AI應用開發架構。上次小李哥分享?了利用谷歌云serverless代碼托管服務Cloud Functions構建Gemini Pro API?&#xff0c;這次我將介紹如何利用亞馬遜的云原生服務Lambda調用OpenAI的最新模型ChatGPT 4o。…

CSAL: the Next-Gen Local Disks for the Cloud——論文泛讀

EuroSys 2024 Paper 論文閱讀筆記整理 問題 云本地磁盤以其實惠的價格和高性能而極具吸引力。在云本地磁盤中&#xff0c;物理存儲設備直接連接到計算服務器&#xff0c;并作為塊設備虛擬化到虛擬機&#xff08;VM&#xff09;。在這種設置下&#xff0c;計算節點受其有限的計…

純前端如何實現Gif暫停、倍速播放

前言 GIF 我相信大家都不會陌生&#xff0c;由于它被廣泛的支持&#xff0c;所以我們一般用它來做一些簡單的動畫效果。一般就是設計師弄好了之后&#xff0c;把文件發給我們。然后我們就直接這樣使用&#xff1a; <img src"xxx.gif"/>這樣就能播放一個 GIF …

MPC學習資料匯總

模型預測控制MPC學習資料匯總 需要的私信我~ 需要的私信我~ 需要的私信我~ 【01】課件內容 包含本號所有MPC課程的課件&#xff0c;以及相關MATLAB文檔。 【02】課件源代碼 本號所有MPC課程的源代碼。 【03】MPC仿真案例 三個MPC大型仿真案例&#xff1a; 1&#xff09;…

Python面試題:在 Python 中如何進行多線程編程?

在 Python 中進行多線程編程通常使用 threading 模塊。下面是一個簡單的示例&#xff0c;展示了如何創建和啟動多個線程。 示例代碼 import threading import time# 定義一個簡單的函數&#xff0c;它將在線程中運行 def print_numbers():for i in range(10):print(f"Nu…