-
2024 DP讀書
第八章 跨機(jī)器通訊
- 在第六章之中,介紹了一個(gè)計(jì)算機(jī)系統(tǒng)內(nèi)線程間進(jìn)程間的通信機(jī)制,對(duì)于小白(至少我)來(lái)說(shuō)想要完全理解計(jì)算機(jī)中非常中重要的概念——進(jìn)程,并不容易
- 啃了很久的,編譯原理、處理器內(nèi)核、Rt-Thread 甚至Kunpeng、openEuler社區(qū)的各種文檔,才稍許有些理解
基于openEuler的TCP與UDP
- 在計(jì)算機(jī)系統(tǒng)領(lǐng)域,多機(jī)的網(wǎng)絡(luò)互聯(lián)成為越來(lái)越重要的也逐漸不容忽視的話題,很多的解決方案圍繞其不斷產(chǎn)生,對(duì)我來(lái)說(shuō)值得學(xué)習(xí)。
- 開始更新了,再不更,催更都99+了。
計(jì)算機(jī)網(wǎng)絡(luò)
本節(jié)從計(jì)算機(jī)網(wǎng)絡(luò)的歷史、分層模型、TCP/IP五層分層模型的功能特點(diǎn)出發(fā),開啃!
簡(jiǎn)介
計(jì)算機(jī)網(wǎng)絡(luò)發(fā)展形態(tài),在歷史初期分層模型用于解決計(jì)算機(jī)系統(tǒng)網(wǎng)絡(luò)之間的兼容弊端。
20世紀(jì)80年代,國(guó)際化標(biāo)準(zhǔn)組織(International Standards Organization,ISO)制定了計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)標(biāo)準(zhǔn)及國(guó)際標(biāo)準(zhǔn)化協(xié)議,并發(fā)布了“開發(fā)系統(tǒng)互聯(lián)參考模型”,簡(jiǎn)稱OSI模型。OSI將網(wǎng)絡(luò)協(xié)議棧分為七層的OSI模型
OSI定義了各層的功能,使計(jì)算機(jī)網(wǎng)絡(luò)變得拓展性強(qiáng)、兼容性好
但是,由于OSI模型的復(fù)雜性,另一種由DARPA(Defence Advanced Research Projects Agency)創(chuàng)建的TCP/IP四層模型,由于更為簡(jiǎn)單,成為了主導(dǎo)模型
隨著計(jì)算機(jī)網(wǎng)絡(luò)的不斷發(fā)展,OSI與TCP/IP 模型相融合,形成了TCP/IP五層模型,該模型沿用至今,成為計(jì)算機(jī)網(wǎng)絡(luò)的典型模型。
TCP/IP協(xié)議棧
A. 物理層
-
直連兩個(gè)信號(hào)間如何用信道(channel)傳遞信號(hào)
-
TCP/IP協(xié)議棧中的物理層是負(fù)責(zé)在通信鏈路中傳輸原始比特流,包括物理媒體(如電纜、光纖等)以及連接這些媒體的物理電子設(shè)備(如調(diào)制解調(diào)器、集線器等)。在這一層,目標(biāo)是確保比特流的可靠傳輸,以及提供數(shù)據(jù)鏈路層的物理接口。
-
物理層的核心功能:在直連通信中,信道通常指的是物理媒體本身,如雙絞線、同軸電纜、光纖等。這些信道通過(guò)使用不同的信號(hào)編碼和傳輸技術(shù),能夠?qū)l(fā)送端的信號(hào)(即比特流)準(zhǔn)確地傳輸?shù)浇邮斩恕?/p>
物理層涉及一些關(guān)鍵概念和技術(shù),如數(shù)據(jù)速率、傳輸延遲、誤碼率等,這些都是評(píng)估信道性能的重要參數(shù)。此外,物理層還需要處理諸如同步、信號(hào)調(diào)制和解調(diào)等問(wèn)題,以確保數(shù)據(jù)能夠有效地在信道上傳輸。
數(shù)據(jù)速率是指在單位時(shí)間內(nèi)傳輸?shù)臄?shù)據(jù)量,通常以比特率(bit rate)表示,即每秒傳輸?shù)谋忍財(cái)?shù)。數(shù)據(jù)速率的確定取決于物理層的傳輸能力和信道的質(zhì)量。在高速傳輸中,數(shù)據(jù)速率可能會(huì)受到信道帶寬和信號(hào)質(zhì)量的限制。
傳輸延遲是指數(shù)據(jù)從一個(gè)節(jié)點(diǎn)傳輸?shù)搅硪粋€(gè)節(jié)點(diǎn)所需要的時(shí)間。它包括發(fā)送延遲、傳播延遲、處理延遲和排隊(duì)延遲等組成部分。在計(jì)算機(jī)網(wǎng)絡(luò)中,傳輸延遲是一個(gè)重要的性能指標(biāo),它影響網(wǎng)絡(luò)的整體性能和用戶體驗(yàn)。
誤碼率是指數(shù)據(jù)傳輸過(guò)程中發(fā)生錯(cuò)誤的比特?cái)?shù)與總傳輸比特?cái)?shù)之比。由于各種原因,如信道噪聲、干擾和信號(hào)衰減等,數(shù)據(jù)在傳輸過(guò)程中可能會(huì)出現(xiàn)錯(cuò)誤。誤碼率是衡量數(shù)據(jù)傳輸質(zhì)量的一個(gè)重要指標(biāo),低誤碼率意味著數(shù)據(jù)傳輸?shù)臏?zhǔn)確性高,而高誤碼率則可能導(dǎo)致數(shù)據(jù)傳輸失敗或數(shù)據(jù)損壞。
在TCP/IP協(xié)議棧的物理層中,這些參數(shù)是非常重要的,因?yàn)樗鼈冎苯佑绊懼鴶?shù)據(jù)在網(wǎng)絡(luò)中的傳輸質(zhì)量和效率。通過(guò)優(yōu)化物理層的設(shè)計(jì)和參數(shù),可以降低傳輸延遲和誤碼率,提高數(shù)據(jù)傳輸?shù)男屎唾|(zhì)量。
1.信號(hào)及信道傳遞
信號(hào)和信道是數(shù)據(jù)傳輸中兩個(gè)相互關(guān)聯(lián)的重要概念。信號(hào)是數(shù)據(jù)在通信鏈路中傳輸?shù)木唧w形式,它可以表示為隨時(shí)間變化的電壓或電流。在物理層中,信號(hào)的傳輸依賴于信道,信道是用于傳輸信號(hào)的物理介質(zhì)。
信道可以是導(dǎo)線的電纜、光纖、無(wú)線電波等。根據(jù)信道類型的不同,信號(hào)的傳輸方式也會(huì)有所不同。例如,在雙絞線或同軸電纜中,信號(hào)通常以電壓的形式傳輸;而在光纖中,信號(hào)則通過(guò)光脈沖進(jìn)行傳輸。
在信號(hào)的傳輸過(guò)程中,信道的質(zhì)量和特性對(duì)信號(hào)的傳輸效果產(chǎn)生重要影響。信道的帶寬、阻抗、傳播延遲等參數(shù)都會(huì)影響信號(hào)的傳輸速率和質(zhì)量。如果信道質(zhì)量較差,信號(hào)可能會(huì)出現(xiàn)失真、噪聲、衰減等現(xiàn)象,導(dǎo)致信號(hào)無(wú)法準(zhǔn)確傳輸?shù)侥康牡亍?/p>
graph LR
A[數(shù)據(jù)傳輸] --> B[信號(hào) <font face="黑體" color="#7C8260">MIN</font>]
B --> C[信道 <font face="黑體" color="#db5079">MIN</font>]
C --> D[信號(hào)傳遞 <font face="黑體" color="#7C8260">MIN</font>]
D --> E[物理層 <font face="黑體" color="#db5079">MIN</font>]
因此,在TCP/IP協(xié)議棧的物理層中,為了確保數(shù)據(jù)的可靠傳輸,需要對(duì)信道進(jìn)行適當(dāng)?shù)呐渲煤凸芾?。這包括選擇適當(dāng)?shù)膫鬏斀橘|(zhì)、調(diào)整信號(hào)的調(diào)制方式、進(jìn)行差錯(cuò)控制和信道均衡等措施。通過(guò)這些措施,可以有效地降低信道對(duì)信號(hào)傳輸?shù)挠绊?,提高?shù)據(jù)傳輸?shù)目煽啃院托省?/p>
2.信號(hào)調(diào)制與調(diào)解
Line coding按照使用到的電壓等級(jí)(level)不同可以分成
- 單極性碼(Uni-polar Encoding)
- 極性碼(Polar Encoding)
- 雙極性碼(Bipolar Encoding)
- 曼徹斯特編碼(Manchester Encoding)
- 差分曼徹斯特編碼(Differential Manchester Encoding)
常見(jiàn)的編碼為曼切斯特編碼如下:
信號(hào)的調(diào)制和調(diào)解是數(shù)據(jù)傳輸中的重要過(guò)程。調(diào)制是將低頻信號(hào)轉(zhuǎn)換為高頻載波信號(hào)的過(guò)程,以便在信道中傳輸。常見(jiàn)的調(diào)制方式包括調(diào)幅(AM)、調(diào)頻(FM)和調(diào)相(PM)。在曼切斯特編碼中,也使用了相位的調(diào)制。
而調(diào)解則是與調(diào)制相反的過(guò)程,是將高頻載波信號(hào)還原為原始的低頻信號(hào)。在接收端,調(diào)解器將接收到的信號(hào)解調(diào)為原始信號(hào),以便進(jìn)行處理和使用。
曼切斯特編碼是一種常見(jiàn)的編碼方式,它使用相位的跳變來(lái)表示數(shù)據(jù)。在曼切斯特編碼中,每位編碼的中心點(diǎn)都有一個(gè)跳變,可以是上升沿或下降沿,分別表示二進(jìn)制數(shù)據(jù)的“1”和“0”。這種編碼方式的特點(diǎn)是每一位的中間都有一個(gè)跳變,可以作為同步時(shí)鐘信號(hào),使得接收端能夠準(zhǔn)確地判斷數(shù)據(jù)的起始和結(jié)束。
信號(hào)的調(diào)制和調(diào)解是數(shù)據(jù)傳輸中的關(guān)鍵技術(shù),它們能夠?qū)崿F(xiàn)數(shù)據(jù)的可靠傳輸和正確解譯。而曼切斯特編碼是一種常見(jiàn)的編碼方式,它通過(guò)使用相位的跳變來(lái)表示數(shù)據(jù),具有較好的抗干擾性能和自同步能力。
3.信道的復(fù)用
信道復(fù)用是一種將若干個(gè)彼此獨(dú)立的信號(hào),合并為一個(gè)可在同一信道上同時(shí)傳輸?shù)膹?fù)合信號(hào)的方法。信道復(fù)用技術(shù)主要有頻分復(fù)用、時(shí)分復(fù)用、統(tǒng)計(jì)時(shí)分復(fù)用、波分復(fù)用、碼分復(fù)用等。
頻分復(fù)用是將用于傳輸信道的總帶寬劃分成若干個(gè)子頻帶,每個(gè)子頻帶傳輸一路信號(hào),這樣就可以在同一個(gè)信道上傳輸多路信號(hào)。時(shí)分復(fù)用是將時(shí)間劃分為一段段等長(zhǎng)的時(shí)分復(fù)用幀,每個(gè)時(shí)分復(fù)用的用戶在每個(gè)時(shí)分復(fù)用幀中占用固定序號(hào)的時(shí)隙,這樣就可以在同一個(gè)信道上傳輸多路信號(hào)。統(tǒng)計(jì)時(shí)分復(fù)用是一種改進(jìn)的時(shí)分復(fù)用,它通過(guò)動(dòng)態(tài)分配時(shí)隙來(lái)提高信道的利用率。波分復(fù)用是利用不同波長(zhǎng)的光信號(hào)在光纖中傳輸時(shí)的不同頻帶寬度,將多個(gè)信號(hào)調(diào)制在不同的波長(zhǎng)上,然后通過(guò)一根光纖進(jìn)行傳輸。碼分復(fù)用是一種利用不同的碼字進(jìn)行信號(hào)調(diào)制的方法,不同用戶的信號(hào)在同一信道上傳輸時(shí),可以通過(guò)不同的碼字進(jìn)行區(qū)分。
信道復(fù)用技術(shù)可以顯著提高信道的利用率和傳輸效率,是現(xiàn)代通信系統(tǒng)中的重要技術(shù)之一。
B. 數(shù)據(jù)鏈路層
1.封裝成幀
在數(shù)據(jù)鏈路層,封裝成幀是一個(gè)重要的概念。它指的是將數(shù)據(jù)按照特定的格式進(jìn)行封裝,以便在物理層上傳輸。封裝成幀的目的是在發(fā)送方和接收方之間建立一個(gè)可靠的通信鏈路。
數(shù)據(jù)鏈路層使用幀作為數(shù)據(jù)傳輸?shù)幕締挝?。幀的結(jié)構(gòu)通常包括幀頭、幀尾以及幀的數(shù)據(jù)部分。幀頭包含了一些控制信息,如目的地址和源地址,用于標(biāo)識(shí)幀的發(fā)送方和接收方。幀尾包含了校驗(yàn)碼,用于檢測(cè)傳輸過(guò)程中可能發(fā)生的錯(cuò)誤。幀的數(shù)據(jù)部分則是實(shí)際要傳輸?shù)臄?shù)據(jù)。
封裝成幀的過(guò)程通常包括以下幾個(gè)步驟:
- 添加幀頭和幀尾:在發(fā)送數(shù)據(jù)之前,需要在數(shù)據(jù)的開頭和結(jié)尾分別添加幀頭和幀尾。幀頭和幀尾包含了必要的控制信息,用于標(biāo)識(shí)幀的發(fā)送方和接收方,以及用于錯(cuò)誤檢測(cè)的校驗(yàn)碼。
- 數(shù)據(jù)打包:在添加了幀頭和幀尾之后,將數(shù)據(jù)按照特定的格式進(jìn)行打包,以便在物理層上進(jìn)行傳輸。打包的過(guò)程可能會(huì)對(duì)數(shù)據(jù)進(jìn)行一些處理,例如進(jìn)行位填充等。
- 發(fā)送數(shù)據(jù):將打包后的數(shù)據(jù)發(fā)送到物理層,由物理層負(fù)責(zé)數(shù)據(jù)的實(shí)際傳輸。
- 接收數(shù)據(jù):在接收端,數(shù)據(jù)鏈路層接收到物理層傳輸?shù)臄?shù)據(jù)后,進(jìn)行相應(yīng)的解包和處理,提取出實(shí)際的數(shù)據(jù)內(nèi)容。
通過(guò) 封裝成幀 的過(guò)程,數(shù)據(jù)鏈路層能夠確保數(shù)據(jù)的可靠傳輸,并在發(fā)送方和接收方之間建立一個(gè)可靠的通信鏈路。
2.透明傳輸
由于我無(wú)法直接生成帶有顏色的關(guān)系圖,以下是一個(gè)文字描述的關(guān)系圖,描述了透明傳輸在串行通信中的作用和SerialNet模式的相關(guān)參數(shù)。
-
透明傳輸:
- 定義:一種數(shù)據(jù)傳輸方式,使數(shù)據(jù)在傳輸過(guò)程中保持原始狀態(tài),不改變數(shù)據(jù)的任何內(nèi)容。
- 作用:在網(wǎng)絡(luò)上實(shí)現(xiàn)數(shù)據(jù)的雙向透明傳輸,使設(shè)備不需要做任何改變。
透明傳輸是一種數(shù)據(jù)傳輸方式,其特點(diǎn)是無(wú)論所傳數(shù)據(jù)是什么樣的比特組合,都應(yīng)當(dāng)能夠在鏈路上傳送。當(dāng)所傳數(shù)據(jù)中的比特組合恰巧與某一個(gè)控制信息完全一樣時(shí),就必須采取適當(dāng)?shù)拇胧?,使接收方不?huì)將這樣的數(shù)據(jù)誤認(rèn)為是某種控制信息。這樣才能保證數(shù)據(jù)鏈路層的傳輸是透明的。
在串行通信中,透明傳輸通過(guò)實(shí)現(xiàn)在網(wǎng)絡(luò)上的通信,使設(shè)備不需要做任何改變。為此,SerialNet模式定義了一系列相關(guān)的操作參數(shù),這些參數(shù)的定義實(shí)現(xiàn)了網(wǎng)絡(luò)連接所需要的屬性。工作在SerialNet模式下的設(shè)備將自動(dòng)完成串口到網(wǎng)絡(luò)通信的轉(zhuǎn)換,所有數(shù)據(jù)可透明的在兩設(shè)備之間雙向傳輸。
-
SerialNet模式:
- 定義:一種串行通信模式,通過(guò)定義相關(guān)參數(shù)來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)連接的屬性。
- 參數(shù)定義:包括數(shù)據(jù)位、停止位、奇偶校驗(yàn)等本地異步串口通信參數(shù)和源端口號(hào)、目的端口號(hào)、IP地址等TCP/UDP協(xié)議棧參數(shù)。
- 作用:使設(shè)備自動(dòng)完成串口到網(wǎng)絡(luò)通信的轉(zhuǎn)換,所有數(shù)據(jù)可透明的在兩設(shè)備之間雙向傳輸。
SerialNet模式需要定義以下參數(shù):
- 本地異步串口通信的參數(shù),包括數(shù)據(jù)位、停止位、奇偶校驗(yàn)等。
- TCP/UDP協(xié)議棧的相關(guān)參數(shù),包括源端口號(hào)、目的端口號(hào)、IP地址等。
通過(guò)這些參數(shù),SerialNet模式可以實(shí)現(xiàn)本地異步串口通信與基于TCP/UDP協(xié)議的網(wǎng)絡(luò)通信之間的轉(zhuǎn)換,使得設(shè)備無(wú)需進(jìn)行任何修改即可在網(wǎng)絡(luò)上進(jìn)行通信。
3.差錯(cuò)控制
差錯(cuò)控制是指在數(shù)據(jù)傳輸過(guò)程中,對(duì)傳輸?shù)臄?shù)據(jù)進(jìn)行檢查、發(fā)現(xiàn)錯(cuò)誤并進(jìn)行糾正的過(guò)程。差錯(cuò)控制的主要目的是確保數(shù)據(jù)在傳輸過(guò)程中的準(zhǔn)確性和完整性。
- 差錯(cuò)控制可以通過(guò)不同的方式實(shí)現(xiàn),其中最常見(jiàn)的是使用冗余校驗(yàn)碼。冗余校驗(yàn)碼是一種附加的數(shù)據(jù),它被添加到原始數(shù)據(jù)中,以便在接收端進(jìn)行錯(cuò)誤檢測(cè)和糾正。常見(jiàn)的冗余校驗(yàn)碼包括奇偶校驗(yàn)碼和循環(huán)冗余校驗(yàn)碼(CRC)。
-
- 奇偶校驗(yàn)碼通過(guò)添加一個(gè)額外的位來(lái)確保數(shù)據(jù)中的1的個(gè)數(shù)是偶數(shù)(偶校驗(yàn))或奇數(shù)(奇校驗(yàn))。如果數(shù)據(jù)中的1的個(gè)數(shù)與校驗(yàn)位不匹配,則可以檢測(cè)到錯(cuò)誤。
-
- 循環(huán)冗余校驗(yàn)碼(CRC)是一種更復(fù)雜的校驗(yàn)碼,它使用模2除法運(yùn)算來(lái)檢測(cè)數(shù)據(jù)中的錯(cuò)誤。在發(fā)送端,發(fā)送方將數(shù)據(jù)作為被除數(shù),使用特定的生成多項(xiàng)式作為除數(shù),進(jìn)行模2除法運(yùn)算。將得到的余數(shù)附加到數(shù)據(jù)的末尾,作為冗余校驗(yàn)碼發(fā)送。在接收端,接收方使用相同的生成多項(xiàng)式對(duì)數(shù)據(jù)進(jìn)行模2除法運(yùn)算,并將得到的余數(shù)與接收到的余數(shù)進(jìn)行比較。如果兩者相等,則數(shù)據(jù)沒(méi)有錯(cuò)誤;否則,數(shù)據(jù)被標(biāo)記為錯(cuò)誤并采取相應(yīng)的措施進(jìn)行糾正。
除了冗余校驗(yàn)碼外,還有其他的差錯(cuò)控制方法,如自動(dòng)重傳請(qǐng)求(ARQ)和前向糾錯(cuò)(FEC)。自動(dòng)重傳請(qǐng)求是一種方法,它要求發(fā)送方重新發(fā)送出錯(cuò)的數(shù)據(jù)包,直到接收方成功接收為止。前向糾錯(cuò)是一種方法,它通過(guò)在數(shù)據(jù)中添加額外的信息來(lái)允許接收方糾正錯(cuò)誤,而不需要重新發(fā)送數(shù)據(jù)。
C. 網(wǎng)絡(luò)層
1.IP
網(wǎng)絡(luò)層是OSI參考模型中的第三層,負(fù)責(zé)處理網(wǎng)絡(luò)中數(shù)據(jù)的傳輸。在這一層中,數(shù)據(jù)被打包成數(shù)據(jù)包,以便能夠在網(wǎng)絡(luò)上進(jìn)行路由。IP(Internet Protocol) 是網(wǎng)絡(luò)層的核心協(xié)議,用于將數(shù)據(jù)包從一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)傳輸?shù)搅硪粋€(gè)網(wǎng)絡(luò)節(jié)點(diǎn)。
IP的主要功能如下:
- 無(wú)連接的數(shù)據(jù)傳輸:IP不建立連接,而是直接發(fā)送數(shù)據(jù)包。每個(gè)數(shù)據(jù)包都獨(dú)立發(fā)送,并獨(dú)立路由。
- 不可靠的數(shù)據(jù)傳輸:IP不保證數(shù)據(jù)包的可靠傳輸。如果數(shù)據(jù)包在傳輸過(guò)程中丟失或損壞,IP協(xié)議不會(huì)重新發(fā)送。
- 盡最大努力服務(wù):IP提供的是“盡最大努力”的數(shù)據(jù)傳輸服務(wù)。這意味著IP不會(huì)保證數(shù)據(jù)包一定會(huì)到達(dá)目的地,但會(huì)盡量做到。
- 分片與重組:如果一個(gè)數(shù)據(jù)包的大小超過(guò)網(wǎng)絡(luò)的MTU(最大傳輸單元),IP會(huì)將數(shù)據(jù)包分片,并在接收端重新組合。
- 多播與廣播:IP支持多播和廣播通信,允許一個(gè)發(fā)送方同時(shí)與多個(gè)接收方或特定網(wǎng)絡(luò)段的所有接收方通信。
- 服務(wù)類型:IP可以根據(jù)需要提供多種服務(wù)類型,如實(shí)時(shí)流媒體、電子郵件等。
- 安全與隱私:隨著IP協(xié)議的發(fā)展,它已經(jīng)集成了許多安全和隱私保護(hù)功能,如IPsec和GRE。
- 移動(dòng)性:隨著移動(dòng)設(shè)備和WiFi的普及,IP還提供了支持移動(dòng)設(shè)備的能力,使得設(shè)備可以在不同的網(wǎng)絡(luò)間無(wú)縫切換。
- 服務(wù)質(zhì)量:為了滿足某些業(yè)務(wù)需求,IP提供了一系列機(jī)制來(lái)控制和服務(wù)質(zhì)量(QoS),如DiffServ和IntServ。
2.ARP
網(wǎng)絡(luò)層的 APR(Address Resolution Protocol,地址解析協(xié)議) 是一個(gè)用于將IP地址解析為MAC地址(或稱物理地址)的協(xié)議。ARP的主要作用是在局域網(wǎng)中,當(dāng)主機(jī)或其它網(wǎng)絡(luò)設(shè)備有數(shù)據(jù)要發(fā)送給另一個(gè)主機(jī)或設(shè)備時(shí),它必須知道對(duì)方的網(wǎng)絡(luò)層地址(即IP地址)。但是僅僅有IP地址是不夠的,因?yàn)镮P數(shù)據(jù)報(bào)文必須封裝成幀才能通過(guò)物理網(wǎng)絡(luò)發(fā)送,因此發(fā)送站還必須有接收站的物理地址,所以需要一個(gè)從IP地址到物理地址的映射。ARP就是實(shí)現(xiàn)這個(gè)功能的協(xié)議。
ARP通過(guò)廣播或單播報(bào)文來(lái)解析IP地址與MAC地址之間的映射關(guān)系。當(dāng)主機(jī)發(fā)送信息時(shí),它將包含目標(biāo)IP地址的ARP請(qǐng)求廣播到網(wǎng)絡(luò)上的所有主機(jī)。收到ARP請(qǐng)求的主機(jī)將檢查其中的目標(biāo)IP地址,如果與自己的IP地址匹配,則它將返回一個(gè)ARP應(yīng)答,其中包含自己的MAC地址。這樣,發(fā)送主機(jī)就可以通過(guò)ARP協(xié)議獲取到目標(biāo)主機(jī)的MAC地址,從而將數(shù)據(jù)發(fā)送給目標(biāo)主機(jī)。
ARP協(xié)議是建立在網(wǎng)絡(luò)中各個(gè)主機(jī)互相信任的基礎(chǔ)上的,網(wǎng)絡(luò)上的主機(jī)可以自主發(fā)送ARP應(yīng)答消息,其他主機(jī)收到應(yīng)答報(bào)文時(shí)不會(huì)檢測(cè)該報(bào)文的真實(shí)性就會(huì)將其記入本機(jī)ARP緩存;由此攻擊者就可以向某一主機(jī)發(fā)送偽ARP應(yīng)答報(bào)文,使其發(fā)送的信息無(wú)法到達(dá)預(yù)期的主機(jī)或到達(dá)錯(cuò)誤的主機(jī),這就構(gòu)成了一個(gè)ARP欺騙。
-
除了ARP協(xié)議,網(wǎng)絡(luò)層還有許多其他的協(xié)議。其中一些重要的協(xié)議包括IP協(xié)議、ICMP協(xié)議、IGMP協(xié)議等。
-
IP協(xié)議(Internet Protocol)是網(wǎng)絡(luò)層的核心協(xié)議,用于在互聯(lián)網(wǎng)中傳輸數(shù)據(jù)。IP協(xié)議通過(guò)路由和轉(zhuǎn)發(fā)機(jī)制,將數(shù)據(jù)從一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)傳輸?shù)搅硪粋€(gè)網(wǎng)絡(luò)節(jié)點(diǎn),直到到達(dá)目的地。
-
ICMP協(xié)議(Internet Control Message Protocol)是用于在IP主機(jī)和路由器之間傳遞控制消息的協(xié)議。這些控制消息主要用于診斷和控制目的,例如ping命令就是基于ICMP實(shí)現(xiàn)的。
-
IGMP協(xié)議(Internet Group Management Protocol)是用于IPv4網(wǎng)絡(luò)中的多播組成員資格報(bào)告的協(xié)議。它允許主機(jī)向本地多播路由器報(bào)告其感興趣的多播組,以便多播路由器能夠?qū)⒍嗖?shù)據(jù)發(fā)送給該主機(jī)。
此外,還有一些其他的網(wǎng)絡(luò)層協(xié)議,如ARP協(xié)議、BOOTP協(xié)議、RARP協(xié)議等。這些協(xié)議在網(wǎng)絡(luò)層中發(fā)揮著重要的作用,以確保數(shù)據(jù)能夠可靠地傳輸?shù)侥繕?biāo)地址。
3.路由選擇協(xié)議
路由選擇協(xié)議是用于自動(dòng)發(fā)現(xiàn)和選擇最佳路徑的協(xié)議,以便將數(shù)據(jù)從一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)傳輸?shù)搅硪粋€(gè)網(wǎng)絡(luò)節(jié)點(diǎn)。路由選擇協(xié)議在網(wǎng)絡(luò)層中扮演著重要的角色,以確保數(shù)據(jù)能夠高效、可靠地傳輸?shù)侥康牡亍?/p>
-
路由選擇協(xié)議可以分為內(nèi)部網(wǎng)關(guān)協(xié)議(IGP)和外部網(wǎng)關(guān)協(xié)議(EGP)兩類。IGP是在一個(gè)自治系統(tǒng)內(nèi)部使用的協(xié)議,如RIP和OSPF等。EGP是在自治系統(tǒng)之間使用的協(xié)議,如BGP等。
-
常見(jiàn)的路由選擇協(xié)議包括RIP、OSPF、BGP等。這些協(xié)議通過(guò)不同的算法和策略來(lái)選擇最佳路徑,并維護(hù)路由表以記錄到達(dá)各個(gè)目標(biāo)網(wǎng)絡(luò)的最佳路徑。當(dāng)網(wǎng)絡(luò)發(fā)生變化時(shí),路由選擇協(xié)議能夠自動(dòng)更新路由表,以確保數(shù)據(jù)能夠繼續(xù)沿著最佳路徑傳輸。
路由選擇協(xié)議是網(wǎng)絡(luò)層中不可或缺的一部分,它能夠自動(dòng)發(fā)現(xiàn)和選擇最佳路徑,確保數(shù)據(jù)能夠可靠地傳輸?shù)侥康牡亍?/p>
D. 傳輸層
1.端口號(hào)
傳輸層使用端口號(hào)來(lái)標(biāo)識(shí)通信的應(yīng)用進(jìn)程,從而實(shí)現(xiàn)端到端的通信。端口號(hào)由一個(gè)16位的數(shù)字組成,范圍從0到65535。其中,端口號(hào)0到1023是預(yù)留給系統(tǒng)級(jí)服務(wù)的,稱為知名端口。端口號(hào)1024到49151是動(dòng)態(tài)分配的,而端口號(hào)49152到65535是保留給臨時(shí)端口使用的。
端口號(hào)的作用是標(biāo)識(shí)發(fā)送和接收數(shù)據(jù)的進(jìn)程,從而在網(wǎng)絡(luò)層的基礎(chǔ)上實(shí)現(xiàn)更高層次的數(shù)據(jù)傳輸和控制。在TCP/IP協(xié)議中,傳輸層有兩個(gè)主要的協(xié)議:TCP和UDP,它們都使用端口號(hào)來(lái)標(biāo)識(shí)通信的進(jìn)程。
TCP協(xié)議使用端口號(hào)來(lái)標(biāo)識(shí)發(fā)送和接收數(shù)據(jù)的進(jìn)程,從而建立可靠的連接并進(jìn)行有序的數(shù)據(jù)傳輸。TCP協(xié)議的端口號(hào)范圍是1到65535,其中一些端口號(hào)被預(yù)留給特定的服務(wù),如HTTP使用80端口,HTTPS使用443端口等。
UDP協(xié)議同樣使用端口號(hào)來(lái)標(biāo)識(shí)發(fā)送和接收數(shù)據(jù)的進(jìn)程,但它是無(wú)連接的協(xié)議,不保證數(shù)據(jù)的可靠傳輸。UDP協(xié)議的端口號(hào)范圍也是1到65535,一些常見(jiàn)的UDP服務(wù)包括DNS使用53端口,SNMP使用161端口等。
端口號(hào)是傳輸層中用于標(biāo)識(shí)通信進(jìn)程的一種機(jī)制,它使得數(shù)據(jù)可以在網(wǎng)絡(luò)中進(jìn)行有序、可靠的傳輸。
2.
TCP(Transmission Control Protocol,傳輸控制協(xié)議)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層協(xié)議。它是TCP/IP協(xié)議族中的核心協(xié)議之一,與IP協(xié)議一起共同構(gòu)成了互聯(lián)網(wǎng)的基礎(chǔ)。
TCP的主要特點(diǎn)如下:
- 面向連接:TCP協(xié)議是一種面向連接的協(xié)議,需要在傳輸數(shù)據(jù)之前先建立連接。通過(guò)三次握手(3-way handshake)過(guò)程,雙方協(xié)商并建立傳輸參數(shù),如端口號(hào)、數(shù)據(jù)傳輸速率等。
- 可靠傳輸:TCP協(xié)議通過(guò)一系列機(jī)制確保數(shù)據(jù)的可靠傳輸。它采用確認(rèn)機(jī)制(ACK)、重傳機(jī)制(Retransmission)、流量控制(Flow Control)和擁塞控制(Congestion Control)等機(jī)制,確保數(shù)據(jù)按照發(fā)送的順序、完整無(wú)誤地到達(dá)目的地。
- 字節(jié)流:TCP協(xié)議將數(shù)據(jù)看作字節(jié)流,不區(qū)分?jǐn)?shù)據(jù)的大小和邊界,按照發(fā)送的順序連續(xù)傳輸。接收端按照接收到的字節(jié)流重新組成完整的數(shù)據(jù)。
- 端到端通信:TCP協(xié)議采用端到端的通信模式,通信雙方建立連接后,直接進(jìn)行數(shù)據(jù)傳輸。數(shù)據(jù)的傳輸路徑由IP協(xié)議確定,而TCP協(xié)議主要負(fù)責(zé)端到端的通信控制。
- 全雙工通信:TCP協(xié)議支持全雙工通信模式,即通信雙方都可以同時(shí)發(fā)送和接收數(shù)據(jù)。TCP連接建立后,雙方都可以在任何時(shí)刻發(fā)送數(shù)據(jù),并且能夠?qū)崟r(shí)地接收對(duì)方的回應(yīng)。
- 流量控制和擁塞控制:TCP協(xié)議采用流量控制和擁塞控制機(jī)制來(lái)避免網(wǎng)絡(luò)擁塞和丟包現(xiàn)象。流量控制通過(guò)滑動(dòng)窗口機(jī)制控制發(fā)送速率,而擁塞控制通過(guò)慢啟動(dòng)、擁塞避免、快速重傳和快速恢復(fù)等算法來(lái)應(yīng)對(duì)網(wǎng)絡(luò)擁塞問(wèn)題。
TCP協(xié)議通過(guò)這些機(jī)制提供了可靠、有序和高效的數(shù)據(jù)傳輸服務(wù),廣泛應(yīng)用于互聯(lián)網(wǎng)和各種應(yīng)用程序中。
3.UDP
UDP(User Datagram Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)是另一種傳輸層協(xié)議,與TCP協(xié)議不同,它是一種無(wú)連接的協(xié)議。
UDP的主要特點(diǎn)如下:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-810164.html
- 無(wú)連接:UDP協(xié)議在進(jìn)行數(shù)據(jù)傳輸之前不需要建立連接,發(fā)送端可以直接發(fā)送數(shù)據(jù)報(bào)文到目標(biāo)地址,不需要事先與接收端進(jìn)行通信協(xié)商。
- 盡最大努力交付:UDP提供了一種盡最大努力交付的不可靠通信方式,它不保證數(shù)據(jù)報(bào)文的順序和完整性,可能會(huì)出現(xiàn)丟包、亂序或重復(fù)接收的情況。
- 面向報(bào)文:UDP將數(shù)據(jù)拆分成大小不一的數(shù)據(jù)報(bào)文進(jìn)行傳輸,每個(gè)數(shù)據(jù)報(bào)文稱為一個(gè)報(bào)文段。UDP對(duì)數(shù)據(jù)報(bào)文的邊界保持不變,接收端按照接收到的報(bào)文段重新組成完整的數(shù)據(jù)。
- 簡(jiǎn)單性:相對(duì)于TCP協(xié)議,UDP協(xié)議相對(duì)簡(jiǎn)單,它沒(méi)有TCP的確認(rèn)機(jī)制、流量控制和擁塞控制等復(fù)雜的通信機(jī)制。因此,UDP協(xié)議的處理速度較快,適用于對(duì)實(shí)時(shí)性要求較高的應(yīng)用,如視頻通話、在線游戲等。
- 快速傳輸:由于UDP協(xié)議沒(méi)有TCP的確認(rèn)機(jī)制和重傳機(jī)制,所以它可以快速地發(fā)送數(shù)據(jù)。在某些情況下,UDP的傳輸速度比TCP更快。
- 錯(cuò)誤檢測(cè):雖然UDP協(xié)議本身不保證數(shù)據(jù)的可靠傳輸,但許多應(yīng)用程序在應(yīng)用層實(shí)現(xiàn)錯(cuò)誤檢測(cè)和恢復(fù)機(jī)制,例如校驗(yàn)和、重傳和重排等。
UDP協(xié)議適用于一些對(duì)實(shí)時(shí)性要求較高、錯(cuò)誤檢測(cè)和恢復(fù)機(jī)制在應(yīng)用層實(shí)現(xiàn)的應(yīng)用場(chǎng)景,如在線視頻、語(yǔ)音通話、在線游戲等。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-810164.html
- 一個(gè)簡(jiǎn)單的有向圖,其中TCP和UDP是兩個(gè)節(jié)點(diǎn)
到了這里,關(guān)于DP讀書:《openEuler操作系統(tǒng)》(八)TCP、UDP與跨機(jī)器通訊的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!