理解面向連接和無連接協議之間的區別

?????????? 理解面向連接和無連接協議之間的區別

???????? 網絡編程中最基本的概念就是面向連接(connection-oriented)和無連接(connectionless)協議。

???????? 面向連接和無連接指的都是協議。也就是說,這些術語指的并不是無理介質本身,而是用來說明如何在物理介質上傳輸數據。面向連接和無連接協議可以,而且通常也確實會共享一條物理介質。

???????? 它們的本質區別在于,對無連接協議來說,每個分組的處理信息都獨立于所有其他分組,而對面向連接的協議來說,協議實現則維護了與后繼分組有關的狀態信息。

???????? 無連接協議中的分組被稱為數據報datagram),每個分組都是獨立尋址。

???????? 面向連接的協議則維護了分組之間的狀態,使用這種協議的應用程序通常都會進行長時間的對話。記住這些狀態,協議就可以提供可靠的傳輸。

???????? 典型的面向連接協議有三個階段。第一階段,在對等實體間建立連接。接下來是數據傳輸階段,在這個階段中,數據在對等實體間傳輸。最后,當對等實體完成數據傳輸時,連接被拆除。

???????? 連接為我們維護的狀態中包含了這些地址。我們只要發送數據就行了,不需要考慮尋址或其他與協議相關的數據。

??????????????????

???????? 使用無連接協議可以很方便地支持一對多和多對一通信,而面向連接協議通常都需要多個獨立的連接才能做到。但更重要的是,無連接協議 是構建面向連接協議 的基礎。

?

???????? TCPUDP都是建立在IP之上的。因此,IP是構建整個TCP/IP協議族的基礎。但IP提供的是一種盡力而為的、不可靠的無連接服務。它接收來自其上層的分組,將它們封裝在一個IP分組中,根據路由為分組選擇正確的硬件接口,從這個接口將分組發送出去。一旦將分組發送出去了,IP就不在關心這個分組了。

???????? IP可以運行在任何能夠承載分組的網絡上。

?

???????? TCP的分組被稱為段(segment), 是放在IP數據報中發送的,因此,根本無法假定這些分組會抵達目的地,更不用說保證分組無損壞且已原來的順序到達了。為了提供可靠性,TCP向基本的IP服務添加了三項功能。首先,它為TCP段中的數據提供了校驗和。這樣有助于確保抵達目的地的數據在傳輸過程中不會被網絡損壞。第二,它為每個字節分配了一個序列號,這樣,如果數據抵達目的地時真的錯序了,接受端也能夠按照恰當的順序將其重裝起來。第三,TPC提供了一種確認-重傳機制,以確保最終每個端都會被傳送出去。

?

???????? TCP連接的每一端都維護了一個接受窗口(receive window,接受窗口就是可以從對等實體接受的數據序列號范圍。除了接受窗口之外,每個TCP還維護了一個發送窗口(send window,發送窗口被劃分為兩部分:已發送還未被確認的字節,以及可以發送但還未發送的字節。

?

???????? RTORetransmission Timeout 超時重傳。

?

???????? UDP只向底層IP協議中添加了兩項功能。首先,它提供了一個可選的校驗和來檢測數據的損壞情況。盡管IP也有校驗和,但它只對IP分組首部進行計算。UDP??? IP添加的第二項特性就是端口的概念。

?

???????? 應用程序可以通過顯式的bind調用來設置這個端口,也可以有操作系統為其選擇。分組到達時,內核會搜索器套接字列表,查找一個與分組中的協議、地址、和端口號相匹配的套接字。如果找到了匹配的套接字,就由指定的協議來處理數據,并將這些數據提供給所有打開了匹配套接字的應用程序

轉載于:https://www.cnblogs.com/run-to-success/archive/2011/08/30/2159981.html

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

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

相關文章

標記圖標_標記您的圖標

標記圖標Not labeling your icons is the same as assuming that we are all fluent in ancient hieroglyphics. Are you? Can you just walk up to Cleopatras needle and read it like you could read a childrens book? Even emojis, our modern hieroglyphics dont mean …

找出無序數組中最小的k個數(top k問題)

2019獨角獸企業重金招聘Python工程師標準>>> 給定一個無序的整型數組arr,找到其中最小的k個數 該題是互聯網面試中十分高頻的一道題,如果用普通的排序算法,排序之后自然可以得到最小的k個數,但時間復雜度高達O(NlogN)&…

你應該知道的 Node 基礎知識

大家好,我是若川。最近組織了源碼共讀活動,感興趣的可以加我微信 ruochuan12 參與,已進行兩個多月,大家一起交流學習,共同進步。源碼共讀學的多數是 Node.js ,今天分享一篇 Node.js 基礎知識的文章。一. N…

C# 中數據緩存總結

在C#嘗試了5種方法進行數據緩存,具體如下:(如有遺漏,錯誤歡迎大家指正,歡迎提建議。)1:Session方法:此方法是針對于每個用戶來的,如果用戶量比較大,那么建議不要采用此方法&#xff…

react 引入 mobx @babel/core: 7.2.2

為什么80%的碼農都做不了架構師?>>> yarn add babel/plugin-proposal-class-propertiesyarn add babel/plugin-proposal-decorators"babel": {"plugins": [["babel/plugin-proposal-decorators", {"legacy": …

面試官問:怎么自動檢測你使用的組件庫有更新

大家好,我是若川。最近組織了源碼共讀活動,感興趣的可以加我微信 ruochuan12本文來自V同學投稿的源碼共讀第六期筆記,寫得很有趣。現在已經進行到第十期了。你或許經常看見 npm 更新的提示。npm 更新提示面試官可能也會問你,組件庫…

設計模式完整備忘錄

小言:這不是設計模式講解型博文,以下將設計模式的概述、類圖,代碼示例,總結分每篇博文單獨展示,現將其歸類,便于以后翻閱,設計模式也不是一兩個月學完了就能完全領悟,它只告訴我們幾…

使用Microsoft Web Application Stress Tool對web進行壓力測試

你的Web服務器和應用到底能夠支持多少并發用戶訪問?在出現大量并發請求的情況下,軟件會出現問題嗎?這些問題靠通常的測試手段是無法解答的。本文介紹 了Microsoft為這個目的而提供的免費工具WAS及其用法。另外,本文介紹了一種Web應…

2021前端高頻面試題整理,附答案

大家好,我是若川。最近組織了源碼共讀活動,感興趣的可以加我微信 ruochuan12若川視野原意是若川的前端視野。但太長了就留下了四個字,不知道的以為關注的不是技術公眾號。今天分享一篇慕課網精英講師河畔一角的好文章~廢話不多說,…

OO第二單元作業小結

總結性博客作業 第一次作業 (1)從多線程的協同和同步控制方面,分析和總結自己三次作業的設計策略。 第一次作業為單電梯傻瓜調度,可以采用生產者——消費者模型,是一個有一個生產者(標準輸入電梯請求),一個…

dribbble加速vpn_關于Dribbble設計的幾點思考

dribbble加速vpn重點 (Top highlight)I’d like to start with the following quote from Paul Adam’s “The Dribbbilisation of Design,” a powerful read that examines the superficiality of modern product design portfolios, often containing Dribbble posts that l…

JS Compress and Decompress

<html><head><title>JavaScript字符串之壓縮與還原</title><meta http-equiv"Content-Type"content"text/html; charsetutf-8"/><script type"text/javascript"><!--/** * 壓縮 */functionCompress(strN…

尤雨溪推薦神器 ni ,能替代 npm/yarn/pnpm ?簡單好用!源碼揭秘!

1. 前言大家好&#xff0c;我是若川。最近組織了源碼共讀活動&#xff0c;感興趣的可以加我微信 ruochuan12想學源碼&#xff0c;極力推薦之前我寫的《學習源碼整體架構系列》jQuery、underscore、lodash、vuex、sentry、axios、redux、koa、vue-devtools、vuex4、koa-compose、…

如何了解自己的認知偏差_了解吸引力偏差

如何了解自己的認知偏差Let me introduce you the attractiveness bias theory known as cognitive bias.讓我向您介紹稱為認知偏差的吸引力偏差理論。 Think about a person with outstanding fashion. It will draw our attention, and maybe encourage us to interact with…

隱馬爾可夫模型(HMM)及Viterbi算法

HMM簡介 對于算法愛好者來說&#xff0c;隱馬爾可夫模型的大名那是如雷貫耳。那么&#xff0c;這個模型到底長什么樣&#xff1f;具體的原理又是什么呢&#xff1f;有什么具體的應用場景呢&#xff1f;本文將會解答這些疑惑。  本文將通過具體形象的例子來引入該模型&#xf…

尤大直播分享:vue3生態進展和展望

大家好&#xff0c;我是若川。最近組織了源碼共讀活動&#xff0c;感興趣的可以加我微信 ruochuan12前言10月23日&#xff0c;參加了前端早早聊組織的【vue生態專場】&#xff0c;準備寫一波分享方便大家學習。早上有4個話題&#xff1a;volar開發&#xff0c;搭建平臺組件開發…

利用Python查看微信共同好友

思路 首先通過itchat這個微信個人號接口掃碼登錄個人微信網頁版&#xff0c;獲取可以識別好友身份的數據。這里是需要分別登錄兩人微信的&#xff0c;拿到兩人各自的好友信息存到列表中。 這樣一來&#xff0c;查共同好友就轉化成了查兩個列表中相同元素的問題。獲取到共同好友…

女生適合學ux嗎_UX設計色彩心理學,理論與可訪問性

女生適合學ux嗎Colour is an interesting topic, which I feel is often overlooked and sometimes under-appreciated. One of the first things I was taught was the power of colour, how it can have an impact on human emotion, and that there should be purpose behin…

初學者也能看懂的 Vue2 源碼中那些實用的基礎工具函數

1. 前言大家好&#xff0c;我是若川。最近組織了源碼共讀活動&#xff0c;感興趣的可以加我微信 ruochuan12想學源碼&#xff0c;極力推薦之前我寫的《學習源碼整體架構系列》jQuery、underscore、lodash、vuex、sentry、axios、redux、koa、vue-devtools、vuex4、koa-compose、…

清除浮動mini版

1&#xff09; 清除浮動mini版(簡約而不簡單).clr:after { content:"";display:table;clear:both;}.clr{zoom:1;} 轉載于:https://www.cnblogs.com/jinbiao/archive/2011/09/26/2191170.html