計算機基礎(chǔ) --圖解TCP/IP協(xié)議

最近一直在看計算機基礎(chǔ)相關(guān)的東西,其實之前也有略略的看過一些相關(guān)的文檔,但是留下了很多迷糊不清的地方,所以趁著北京入秋了,在家也重新整理整理,也能讓自己能不斷的復(fù)習(xí)。


1.計算機網(wǎng)絡(luò)概論

2.傳輸層

3.網(wǎng)絡(luò)層

4.數(shù)據(jù)鏈路層

5.物理層


1.計算機網(wǎng)絡(luò)概論

對于計算機網(wǎng)絡(luò)的實現(xiàn)而言,根據(jù)不同的協(xié)議以及指定的服務(wù)劃分了多層。其中國際標(biāo)準(zhǔn)化組織(ISO)和國際電報電話咨詢委員會(CCITT)聯(lián)合制定的開放系統(tǒng)互連參考模型,為開放式互連信息系統(tǒng)提供了一種功能結(jié)構(gòu)的框架。OSI/RM模型各層之間的目的很明確,但是由于在制定的過程中Internet互聯(lián)網(wǎng)已經(jīng)在使用中而且該模型劃分過細(xì)的原因,導(dǎo)致使用不廣。


OSI/RM模型各層提供服務(wù)

在實際上存在多個分層模型,分別為:
①OSI/RM模型(開放系統(tǒng)互連基本參考模型)是官方制定的并且各層之間劃分更為詳細(xì)的模型。
②TCP/IP協(xié)議是使用最為廣泛并且各層之間更適用于實際的模型。
③而五層協(xié)議往往是在TCP/IP協(xié)議之上便于說明的一種模型。

網(wǎng)絡(luò)劃分三種模型

因為數(shù)據(jù)鏈路層和物理層實現(xiàn)面對的對象以及目標(biāo)不同,所以以五層協(xié)議進行圖解分析。

2.傳輸層

傳輸層處于應(yīng)用層和網(wǎng)路層之間,處理的是端到端的數(shù)據(jù)傳輸服務(wù)。由于同時能有多個應(yīng)用進程進行網(wǎng)絡(luò)請求,所以該層的兩個最基本服務(wù)為:

①復(fù)用和分用

傳輸層可能同一時間接收到來自多個應(yīng)用進程進行網(wǎng)絡(luò)請求需要發(fā)送的數(shù)據(jù),并且可能同一時間需要分解由網(wǎng)絡(luò)響應(yīng)給不同應(yīng)用進程的數(shù)據(jù)。

復(fù)用分用原因示例圖
②校驗碼(16bit)

檢驗傳輸?shù)臄?shù)據(jù)和頭部字段中出現(xiàn)的位數(shù)錯誤,屬于最簡單的檢錯機制。因為如果同時多位發(fā)送錯誤,很可能檢驗不出錯誤,所以檢驗和未能檢驗出錯誤的數(shù)據(jù)并不一定是正確的。
檢驗和的計算過程如下:
①將整個傳輸層的數(shù)據(jù)報(包括頭部字段)以16位為一個整數(shù)單位進行相加計算sumResult。
②如果sumResult首位發(fā)生進位,便將該進位與去掉該進位的sumResult進行相加,得到校驗和。

計算校驗和的過程

傳輸層有兩大協(xié)議 ---UDP和TCP,因為傳輸層未涉及到網(wǎng)絡(luò)相關(guān)的實現(xiàn),所以該層的協(xié)議都不提供對延遲和帶寬的保證。

2.1 UDP協(xié)議 (User Datagram Protocol)

UDP被稱為“不可靠”的傳輸協(xié)議,因為該協(xié)議只是實現(xiàn)了傳輸層兩個最基本服務(wù)。

UDP協(xié)議

由于實現(xiàn)的服務(wù)少,UDP數(shù)據(jù)報的頭部只有8個字節(jié)。

2.2 TCP

TCP協(xié)議被稱為“可靠”的傳輸協(xié)議。所謂“可靠”指的的是:
① 不錯 --->校驗碼檢驗錯誤,以及數(shù)據(jù)確認(rèn)機制
②不亂 --->對于所有數(shù)據(jù)分組進行序列化,并且能夠進行“重組”
③不丟 --->對數(shù)據(jù)分組啟動定時器功能以及超時重傳機制
同時在數(shù)據(jù)亂序到達(dá)時,TCP為了避免接收主機緩存溢出,使用了擁塞控制以及流量控制機制。

首先,圖解TCP數(shù)據(jù)報結(jié)構(gòu):
TCP數(shù)據(jù)報結(jié)構(gòu)
其次,TCP的三次握手建立連接的過程:
TCP建立連接

為了避免主機緩存溢出,在建立連接的過程中主機間會交換各自的緩存空間的大小。并且在接收發(fā)送的過程中也會不斷的交流剩余空間的大小,以此控制傳輸數(shù)據(jù)的速率。
如:當(dāng)接收主機B的緩存空間接近零時,主機B會向發(fā)送主機A發(fā)送當(dāng)前的緩存空間大小,主機A接收到響應(yīng)后會調(diào)整傳輸?shù)臄?shù)據(jù),以最小的數(shù)據(jù)量不斷的詢問主機B是否已經(jīng)處理完成。

最后,TCP的關(guān)閉連接:
TCP關(guān)閉連接

TCP關(guān)閉連接需要4次的交互,主要是因為TCP是全雙工傳輸(在同一連接中能夠傳輸雙向數(shù)據(jù)流)。在TIME_WAIT階段中,客戶端一般會等待30秒,如果期間再接收到從服務(wù)器發(fā)送的數(shù)據(jù),會不斷的發(fā)送"ACK"給服務(wù)器。

2.3 UDP和TCP的對比

UDP的優(yōu)勢:
①由于不需要建立連接以及維護連接,所以UDP會減少時延。
②頭部開銷少:UDP只需要8個字節(jié),而TCP需要20個字節(jié)。
③沒有擁塞控制,應(yīng)用可以更好的控制發(fā)送的時間
UDP的劣勢:
只有簡單的錯誤校驗機制,沒有錯誤恢復(fù)機制,所以會產(chǎn)生數(shù)據(jù)的丟失,非按序到達(dá)等問題。
UDP的用途:
①用于流媒體應(yīng)用(容忍丟失,速率敏感)
②DNS和SNMP(使用廣播等的協(xié)議)

3.網(wǎng)絡(luò)層

網(wǎng)絡(luò)層主要是提供了邏輯尋址和路由選擇。詳細(xì)的介紹可以參考之前我寫的文章:TCP/IP協(xié)議 -IP

首先,圖解IP協(xié)議數(shù)據(jù)報結(jié)構(gòu):
IP協(xié)議數(shù)據(jù)報結(jié)構(gòu)

由于IP數(shù)據(jù)報的總長度字段為16bit,所以IP數(shù)據(jù)報最大為65535字節(jié),在IP傳輸?shù)倪^程中可以沒有數(shù)據(jù),所以IP數(shù)據(jù)報最短為20個字節(jié)。

其次,邏輯尋址
①發(fā)送端和接收端的主機在同一個子網(wǎng)中

如果兩個主機都在同一個子網(wǎng)中,根據(jù)以太網(wǎng)協(xié)議知道,需要依靠MAC地址進行主機的識別以及發(fā)送和接受數(shù)據(jù)。將需要將IP地址通過ARP和MAC地址連接起來,利用MAC地址進行廣播。

子網(wǎng)

ARP協(xié)議請求過程:如果在主機A的ARP表中并沒有一致的IP地址和MAC地址對應(yīng)的項,并將IP地址廣播到子網(wǎng)中,如果主機B的IP地址和廣播尋找的IP地址一致,主機B就會將自己的MAC地址發(fā)送給主機A。

①發(fā)送端和接收端的主機不在一個子網(wǎng)中

如果這時候還是利用MAC地址進行廣播,那么在整個網(wǎng)絡(luò)上所有的主機都會收到一份數(shù)據(jù),不僅效率很低而且并不安全。所以如果兩個主機并不在同一個子網(wǎng)中,主機A默認(rèn)將數(shù)據(jù)發(fā)送到對應(yīng)的路由器中,并由路由器發(fā)送到Internet中,并進行邏輯尋址。

主機并不在一個子網(wǎng)中

4.數(shù)據(jù)鏈路層

數(shù)據(jù)鏈路層負(fù)責(zé)通過一條鏈路從一個節(jié)點向另一個物理鏈路直接相連的結(jié)點傳送數(shù)據(jù)報。并且封裝數(shù)據(jù)報構(gòu)成數(shù)據(jù)幀,為了標(biāo)識在物理鏈路中傳輸數(shù)據(jù)的開始與結(jié)尾,是唯一一層加入了首部和尾部字段。
基于以上的原理,將數(shù)據(jù)鏈路層分為兩個子層:
①介質(zhì)訪問控制MAC(multiple access control protocol)
采用分布式算法決定結(jié)點如何共享信道,即決策結(jié)點何時能傳輸數(shù)據(jù)
②邏輯鏈路控制LLC:對幀進行錯誤檢查,管理子網(wǎng)設(shè)備間的鏈路

MAC地址

以太網(wǎng)規(guī)定,連入網(wǎng)絡(luò)的所有設(shè)備,都必須具有"網(wǎng)卡"接口,而MAC地址指的是網(wǎng)絡(luò)接口卡-NIC中的地址。在幀數(shù)據(jù)結(jié)構(gòu)首部中的發(fā)送者和接收者的信息指的就是主機的MAC地址。

幀的頭部長度固定為18個字節(jié),而數(shù)據(jù)的長度最短為46字節(jié)(由于組裝幀和傳輸時延等問題),最長為1500字節(jié)(超過最大字節(jié)的數(shù)據(jù)報會被分割成多個幀進行發(fā)送)。

5.物理層

物理層,顧名思義,就是對將主機連接起來的物理手段的定義。由于設(shè)備之間進行連接的物理手段不同,所以制定了實際傳輸過程中的一些規(guī)定??梢苑譃橐韵碌膸追N規(guī)程:
①機械特性:接口所用的接線器的形狀與尺寸等插件規(guī)格
②電氣特性:接口電纜各條線上的電壓范圍
③功能特性:某一點平上的電壓所代表的意義
④過程特性:對于不同功能的各種可能事件的出現(xiàn)順序


大致的總結(jié)了一下計算機網(wǎng)絡(luò)中各層實現(xiàn)的功能和服務(wù),接下來會通過總結(jié)平時做的一些題來深入的解析各層。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 個人認(rèn)為,Goodboy1881先生的TCP /IP 協(xié)議詳解學(xué)習(xí)博客系列博客是一部非常精彩的學(xué)習(xí)筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,216評論 0 8
  • 1.這篇文章不是本人原創(chuàng)的,只是個人為了對這部分知識做一個整理和系統(tǒng)的輸出而編輯成的,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,393評論 6 174
  • 協(xié)議基礎(chǔ) 協(xié)議就是計算機之間通過網(wǎng)絡(luò)實現(xiàn)通信時實現(xiàn)所達(dá)成的一種“約定”,這種約定使得那些由不同廠商的設(shè)備,不同的C...
    d9fc24a0c9a9閱讀 2,556評論 0 6
  • 同樣的,本文篇幅也比較長,先來一張思維導(dǎo)圖,帶大家過一遍。 一、 計算機網(wǎng)絡(luò)體系結(jié)構(gòu)分層 二、 TCP/IP 基礎(chǔ)...
    滌生_Woo閱讀 66,205評論 38 1,037
  • 當(dāng)有一天, 你不再急著說 我知道 的時候,才開始 知道 一個 niu'niu 。 否則 ,你所知道的 ,從未對過 。
    牙伯閱讀 226評論 0 0

友情鏈接更多精彩內(nèi)容