五(七)層互聯(lián)網(wǎng)協(xié)議(計算機網(wǎng)絡(luò))深入淺出,看完必懂【圖文一】

我們每天使用互聯(lián)網(wǎng),你是否想過,它是如何實現(xiàn)的?

全世界幾十億臺電腦,連接在一起,兩兩通信。上海的某一塊網(wǎng)卡送出信號,洛杉磯的另一塊網(wǎng)卡居然就收到了,兩者實際上根本不知道對方的物理位置,你不覺得這是很神奇的事情嗎?

互聯(lián)網(wǎng)的核心是一系列協(xié)議,總稱為"互聯(lián)網(wǎng)協(xié)議"(Internet Protocol Suite)。它們對電腦如何連接和組網(wǎng),做出了詳盡的規(guī)定。理解了這些協(xié)議,就理解了互聯(lián)網(wǎng)的原理。

下面就是我的學(xué)習(xí)筆記。因為這些協(xié)議實在太復(fù)雜、太龐大,我想整理一個簡潔的框架,幫助自己從總體上把握它們。為了保證簡單易懂,我做了大量的簡化,有些地方并不全面和精確,但是應(yīng)該能夠說清楚互聯(lián)網(wǎng)的原理。


互聯(lián)網(wǎng)協(xié)議入門

一、概述

1.1 五層模型

互聯(lián)網(wǎng)的實現(xiàn),分成好幾層。每一層都有自己的功能,就像建筑物一樣,每一層都靠下一層支持。
用戶接觸到的,只是最上面的一層,根本沒有感覺到下面的層。要理解互聯(lián)網(wǎng),必須從最下層開始,自下而上理解每一層的功能。
如何分層有不同的模型,有的模型分七層,有的分四層。我覺得,把互聯(lián)網(wǎng)分成五層,比較容易解釋。


如上圖所示,最底下的一層叫做"實體層"(Physical Layer),最上面的一層叫做"應(yīng)用層"(Application Layer),中間的三層(自下而上)分別是"鏈接層"(Link Layer)、"網(wǎng)絡(luò)層"(Network Layer)和"傳輸層"(Transport Layer)。越下面的層,越靠近硬件;越上面的層,越靠近用戶。

它們叫什么名字,其實并不重要。只需要知道,互聯(lián)網(wǎng)分成若干層就可以了。

1.2 層與協(xié)議

每一層都是為了完成一種功能。為了實現(xiàn)這些功能,就需要大家都遵守共同的規(guī)則。

大家都遵守的規(guī)則,就叫做"協(xié)議"(protocol)。

互聯(lián)網(wǎng)的每一層,都定義了很多協(xié)議。這些協(xié)議的總稱,就叫做"互聯(lián)網(wǎng)協(xié)議"(Internet Protocol Suite)。它們是互聯(lián)網(wǎng)的核心,下面介紹每一層的功能,主要就是介紹每一層的主要協(xié)議。

二、實體層

我們從最底下的一層開始。
電腦要組網(wǎng),第一件事要干什么?當(dāng)然是先把電腦連起來,可以用光纜、電纜、雙絞線、無線電波等方式。

實體層鏈接

這就叫做"實體層",它就是把電腦連接起來的物理手段。它主要規(guī)定了網(wǎng)絡(luò)的一些電氣特性,作用是負責(zé)傳送0和1的電信號。

三、鏈接層(以太網(wǎng)協(xié)議,MAC地址,廣播)

3.1 定義

單純的0和1沒有任何意義,必須規(guī)定解讀方式:多少個電信號算一組?每個信號位有何意義?
這就是"鏈接層"的功能,它在"實體層"的上方,確定了0和1的分組方式。

3.2 以太網(wǎng)協(xié)議

早期的時候,每家公司都有自己的電信號分組方式。逐漸地,一種叫做"以太網(wǎng)"(Ethernet)的協(xié)議,占據(jù)了主導(dǎo)地位。
以太網(wǎng)規(guī)定,一組電信號構(gòu)成一個數(shù)據(jù)包,叫做"幀"(Frame)。每一幀分成兩個部分:標(biāo)頭(Head)和數(shù)據(jù)(Data)。

標(biāo)頭和數(shù)據(jù)

"標(biāo)頭"包含數(shù)據(jù)包的一些說明項,比如發(fā)送者、接受者、數(shù)據(jù)類型等等;"數(shù)據(jù)"則是數(shù)據(jù)包的具體內(nèi)容。
"標(biāo)頭"的長度,固定為18字節(jié)。"數(shù)據(jù)"的長度,最短為46字節(jié),最長為1500字節(jié)。因此,整個"幀"最短為64字節(jié),最長為1518字節(jié)。如果數(shù)據(jù)很長,就必須分割成多個幀進行發(fā)送。

3.3 MAC地址

上面提到,以太網(wǎng)數(shù)據(jù)包的"標(biāo)頭",包含了發(fā)送者和接受者的信息。那么,發(fā)送者和接受者是如何標(biāo)識呢?
以太網(wǎng)規(guī)定,連入網(wǎng)絡(luò)的所有設(shè)備,都必須具有"網(wǎng)卡"接口。數(shù)據(jù)包必須是從一塊網(wǎng)卡,傳送到另一塊網(wǎng)卡。網(wǎng)卡的地址,就是數(shù)據(jù)包的發(fā)送地址和接收地址,這叫做MAC地址。

網(wǎng)卡

每塊網(wǎng)卡出廠的時候,都有一個全世界獨一無二的MAC地址,長度是48個二進制位,通常用12個十六進制數(shù)表示。

Mac Address

前6個十六進制數(shù)是廠商編號,后6個是該廠商的網(wǎng)卡流水號。有了MAC地址,就可以定位網(wǎng)卡和數(shù)據(jù)包的路徑了。

3.4 廣播

定義地址只是第一步,后面還有更多的步驟。
首先,一塊網(wǎng)卡怎么會知道另一塊網(wǎng)卡的MAC地址?

回答是有一種ARP協(xié)議,可以解決這個問題。這個留到后面介紹,這里只需要知道,以太網(wǎng)數(shù)據(jù)包必須知道接收方的MAC地址,然后才能發(fā)送。

其次,就算有了MAC地址,系統(tǒng)怎樣才能把數(shù)據(jù)包準(zhǔn)確送到接收方?

回答是以太網(wǎng)采用了一種很"原始"的方式,它不是把數(shù)據(jù)包準(zhǔn)確送到接收方,而是向本網(wǎng)絡(luò)內(nèi)所有計算機發(fā)送,讓每臺計算機自己判斷,是否為接收方。

image.png

上圖中,1號計算機向2號計算機發(fā)送一個數(shù)據(jù)包,同一個子網(wǎng)絡(luò)的3號、4號、5號計算機都會收到這個包。它們讀取這個包的"標(biāo)頭",找到接收方的MAC地址,然后與自身的MAC地址相比較,如果兩者相同,就接受這個包,做進一步處理,否則就丟棄這個包。這種發(fā)送方式就叫做"廣播"(broadcasting)。

有了數(shù)據(jù)包的定義、網(wǎng)卡的MAC地址、廣播的發(fā)送方式,"鏈接層"就可以在多臺計算機之間傳送數(shù)據(jù)了。
。。。

接下來是網(wǎng)絡(luò)層,傳輸層和應(yīng)用層,由于簡書篇幅有限制,只能分為兩篇文章來寫了,不好意思哈!
下篇鏈接:五(七)層互聯(lián)網(wǎng)協(xié)議(計算機網(wǎng)絡(luò))深入淺出,看完必懂【圖文二】

參考鏈接:互聯(lián)網(wǎng)協(xié)議入門(一)-阮一峰


好看的人兒,點個喜歡? 你會更好看哦~~

最后編輯于
?著作權(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)容

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