我們每天使用互聯(lián)網(wǎng)荆残,你是否想過(guò)奴艾,它是如何實(shí)現(xiàn)的?
全世界幾十億臺(tái)電腦脊阴,連接在一起握侧,兩兩通信。上海的某一塊網(wǎng)卡送出信號(hào)嘿期,洛杉磯的另一塊網(wǎng)卡居然就收到了品擎,兩者實(shí)際上根本不知道對(duì)方的物理位置,你不覺(jué)得這是很神奇的事情嗎备徐?
互聯(lián)網(wǎng)的核心是一系列協(xié)議萄传,總稱為"互聯(lián)網(wǎng)協(xié)議"(Internet Protocol Suite)。它們對(duì)電腦如何連接和組網(wǎng)蜜猾,做出了詳盡的規(guī)定秀菱。理解了這些協(xié)議,就理解了互聯(lián)網(wǎng)的原理蹭睡。
下面就是我的學(xué)習(xí)筆記衍菱。因?yàn)檫@些協(xié)議實(shí)在太復(fù)雜、太龐大肩豁,我想整理一個(gè)簡(jiǎn)潔的框架脊串,幫助自己從總體上把握它們。為了保證簡(jiǎn)單易懂清钥,我做了大量的簡(jiǎn)化琼锋,有些地方并不全面和精確,但是應(yīng)該能夠說(shuō)清楚互聯(lián)網(wǎng)的原理祟昭。
互聯(lián)網(wǎng)協(xié)議入門
一缕坎、概述
1.1 五層模型
互聯(lián)網(wǎng)的實(shí)現(xiàn),分成好幾層篡悟。每一層都有自己的功能谜叹,就像建筑物一樣匾寝,每一層都靠下一層支持。
用戶接觸到的叉谜,只是最上面的一層旗吁,根本沒(méi)有感覺(jué)到下面的層踩萎。要理解互聯(lián)網(wǎng)停局,必須從最下層開始,自下而上理解每一層的功能香府。
如何分層有不同的模型董栽,有的模型分七層,有的分四層企孩。我覺(jué)得锭碳,把互聯(lián)網(wǎng)分成五層,比較容易解釋勿璃。
如上圖所示擒抛,最底下的一層叫做"實(shí)體層"(Physical Layer),最上面的一層叫做"應(yīng)用層"(Application Layer)补疑,中間的三層(自下而上)分別是"鏈接層"(Link Layer)歧沪、"網(wǎng)絡(luò)層"(Network Layer)和"傳輸層"(Transport Layer)。越下面的層莲组,越靠近硬件诊胞;越上面的層,越靠近用戶锹杈。
它們叫什么名字撵孤,其實(shí)并不重要。只需要知道竭望,互聯(lián)網(wǎng)分成若干層就可以了邪码。
1.2 層與協(xié)議
每一層都是為了完成一種功能。為了實(shí)現(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é)議肆汹。
二愚墓、實(shí)體層
我們從最底下的一層開始。
電腦要組網(wǎng)昂勉,第一件事要干什么浪册?當(dāng)然是先把電腦連起來(lái),可以用光纜岗照、電纜村象、雙絞線、無(wú)線電波等方式攒至。
這就叫做"實(shí)體層"厚者,它就是把電腦連接起來(lái)的物理手段。它主要規(guī)定了網(wǎng)絡(luò)的一些電氣特性迫吐,作用是負(fù)責(zé)傳送0和1的電信號(hào)库菲。
三、鏈接層(以太網(wǎng)協(xié)議志膀,MAC地址熙宇,廣播)
3.1 定義
單純的0和1沒(méi)有任何意義,必須規(guī)定解讀方式:多少個(gè)電信號(hào)算一組溉浙?每個(gè)信號(hào)位有何意義烫止?
這就是"鏈接層"的功能,它在"實(shí)體層"的上方放航,確定了0和1的分組方式烈拒。
3.2 以太網(wǎng)協(xié)議
早期的時(shí)候,每家公司都有自己的電信號(hào)分組方式广鳍。逐漸地荆几,一種叫做"以太網(wǎng)"(Ethernet)的協(xié)議,占據(jù)了主導(dǎo)地位赊时。
以太網(wǎng)規(guī)定吨铸,一組電信號(hào)構(gòu)成一個(gè)數(shù)據(jù)包,叫做"幀"(Frame)祖秒。每一幀分成兩個(gè)部分:標(biāo)頭(Head)和數(shù)據(jù)(Data)诞吱。
"標(biāo)頭"包含數(shù)據(jù)包的一些說(shuō)明項(xiàng),比如發(fā)送者竭缝、接受者房维、數(shù)據(jù)類型等等;"數(shù)據(jù)"則是數(shù)據(jù)包的具體內(nèi)容抬纸。
"標(biāo)頭"的長(zhǎng)度咙俩,固定為18字節(jié)。"數(shù)據(jù)"的長(zhǎng)度,最短為46字節(jié)阿趁,最長(zhǎng)為1500字節(jié)膜蛔。因此,整個(gè)"幀"最短為64字節(jié)脖阵,最長(zhǎng)為1518字節(jié)皂股。如果數(shù)據(jù)很長(zhǎng),就必須分割成多個(gè)幀進(jìn)行發(fā)送命黔。
3.3 MAC地址
上面提到呜呐,以太網(wǎng)數(shù)據(jù)包的"標(biāo)頭",包含了發(fā)送者和接受者的信息纷铣。那么卵史,發(fā)送者和接受者是如何標(biāo)識(shí)呢?
以太網(wǎng)規(guī)定搜立,連入網(wǎng)絡(luò)的所有設(shè)備,都必須具有"網(wǎng)卡"接口槐秧。數(shù)據(jù)包必須是從一塊網(wǎng)卡啄踊,傳送到另一塊網(wǎng)卡。網(wǎng)卡的地址刁标,就是數(shù)據(jù)包的發(fā)送地址和接收地址颠通,這叫做MAC地址。
每塊網(wǎng)卡出廠的時(shí)候膀懈,都有一個(gè)全世界獨(dú)一無(wú)二的MAC地址顿锰,長(zhǎng)度是48個(gè)二進(jìn)制位,通常用12個(gè)十六進(jìn)制數(shù)表示启搂。
前6個(gè)十六進(jìn)制數(shù)是廠商編號(hào)硼控,后6個(gè)是該廠商的網(wǎng)卡流水號(hào)。有了MAC地址胳赌,就可以定位網(wǎng)卡和數(shù)據(jù)包的路徑了牢撼。
3.4 廣播
定義地址只是第一步,后面還有更多的步驟疑苫。
首先熏版,一塊網(wǎng)卡怎么會(huì)知道另一塊網(wǎng)卡的MAC地址?
回答是有一種ARP協(xié)議捍掺,可以解決這個(gè)問(wèn)題撼短。這個(gè)留到后面介紹,這里只需要知道挺勿,以太網(wǎng)數(shù)據(jù)包必須知道接收方的MAC地址曲横,然后才能發(fā)送。
其次满钟,就算有了MAC地址胜榔,系統(tǒng)怎樣才能把數(shù)據(jù)包準(zhǔn)確送到接收方胳喷?
回答是以太網(wǎng)采用了一種很"原始"的方式,它不是把數(shù)據(jù)包準(zhǔn)確送到接收方夭织,而是向本網(wǎng)絡(luò)內(nèi)所有計(jì)算機(jī)發(fā)送吭露,讓每臺(tái)計(jì)算機(jī)自己判斷,是否為接收方尊惰。
上圖中获印,1號(hào)計(jì)算機(jī)向2號(hào)計(jì)算機(jī)發(fā)送一個(gè)數(shù)據(jù)包瘪板,同一個(gè)子網(wǎng)絡(luò)的3號(hào)、4號(hào)、5號(hào)計(jì)算機(jī)都會(huì)收到這個(gè)包汁汗。它們讀取這個(gè)包的"標(biāo)頭",找到接收方的MAC地址关噪,然后與自身的MAC地址相比較拿穴,如果兩者相同,就接受這個(gè)包全庸,做進(jìn)一步處理秀仲,否則就丟棄這個(gè)包。這種發(fā)送方式就叫做"廣播"(broadcasting)壶笼。
有了數(shù)據(jù)包的定義神僵、網(wǎng)卡的MAC地址、廣播的發(fā)送方式覆劈,"鏈接層"就可以在多臺(tái)計(jì)算機(jī)之間傳送數(shù)據(jù)了保礼。
。责语。炮障。
接下來(lái)是網(wǎng)絡(luò)層,傳輸層和應(yīng)用層鹦筹,由于簡(jiǎn)書篇幅有限制铝阐,只能分為兩篇文章來(lái)寫了,不好意思哈铐拐!
下篇鏈接:五(七)層互聯(lián)網(wǎng)協(xié)議(計(jì)算機(jī)網(wǎng)絡(luò))深入淺出徘键,看完必懂【圖文二】
參考鏈接:互聯(lián)網(wǎng)協(xié)議入門(一)-阮一峰
好看的人兒,點(diǎn)個(gè)喜歡? 你會(huì)更好看哦~~