1: 1層,2層,3層?
這篇文章主要是面向自學(xué)TCP/IP的讀者的.因為市面上講解計算機網(wǎng)絡(luò)的書雖然非常多,但是個人認為沒有一本可以做到深入淺出的.都是照搬某些權(quán)威書籍中的概念,使得很多讀者讀了之后還是沒有具體概念.希望我寫的東西可以讓大家有個具體概念,而不是只停留在能夠背出官方的,嚴謹?shù)?深奧的概念.
由于本人水平有限,如果你在文章中發(fā)現(xiàn)了錯誤,請立即和我聯(lián)系.我會
盡快修改.
TCP/IP基礎(chǔ)講座-1: 1層,2層,3層?
讀過關(guān)于網(wǎng)絡(luò)的課程的,都知道ISO-OSI 7層協(xié)議這個名詞,許多書籍都會具體的畫出那幅圖,然后標注上物理層,數(shù)據(jù)鏈路層,網(wǎng)絡(luò)層等等.背的大家要死.但是卻又不知道具體這些層次干嗎用的勒?
其實在互聯(lián)網(wǎng)中,由于實際使用的是TCP/IP模型,也就是DOD模型(現(xiàn)在不知道沒關(guān)系,后面會說).所以7層模型在現(xiàn)實網(wǎng)絡(luò)環(huán)境中只是一個理論上,學(xué)究派的東西.這個模型中,我們真正關(guān)心的是下面的3層.
1.物理層.哦.是的.這個名詞還算容易了解.網(wǎng)卡還有那些網(wǎng)線構(gòu)成了這一層.那些在網(wǎng)線中傳播的二進制數(shù)據(jù)流是這層的具體表象.也就是說,這一層上面沒有什么協(xié)議(不是很精確的說法,但是你可以這么理解).有的都是電流而已.我們把兩臺機器用網(wǎng)線連起來.或者用HUB把機器都連起來,這些工作就是物理層的工作.
有2個設(shè)備屬于物理層的,一個是中繼器,一個是HUB.大家知道.物理上面的連線距離一長就會產(chǎn)生電信號的衰減.為了重新加強這個信號,我們就需要在一定距離之后加上一個信號放大器,這就是中繼器(repeater)
恩...這個比較容易理解.repeater就是連接在2根網(wǎng)線之間的么.沒有做任何處理.所以只是一個物理設(shè)備.屬于1層的.
那么集線器(HUB)呢?這個怎么會是在1層???似乎非常難以理解.
當(dāng)我說出HUB的本質(zhì),大家就能夠清楚了解了
HUB的本質(zhì)其實只是一個多口中繼器(MULTI PORT REPEATER).啊...這樣大家能夠理解了.HUB不叫多口中繼器其實只是為了銷售上面的策略.他的本質(zhì)就是連接多根網(wǎng)線的一個物理設(shè)備.也是不對經(jīng)過的電信號做任何邏輯處理的.
2.數(shù)據(jù)鏈路層
歐~這個名詞有些別扭了.DATA LINK層.英文似乎更加容易理解.
這個層面上面的東西不再是電信號了.而是DATA了.對,既然是DATA就有了邏輯關(guān)系了.這個層面上面的基本單位是幀(Frame).這層和物理層的接觸是最緊密的.他是把從網(wǎng)線上面?zhèn)鬏數(shù)碾娏鬓D(zhuǎn)換成0和1的組合.
物理層只是網(wǎng)卡對網(wǎng)線發(fā)出或者接受各種電平信號,那就是說物理層是無法判別電流的來源和目標的.那么把電流打成0和1的幀之后.里面就有邏輯數(shù)據(jù)了.有了數(shù)據(jù),就可以判別數(shù)據(jù)從何而來,到何處去.所以也就可以真正的形成LINK.
既然可以判別地址,那么地址是按照什么來判別的呢?
那就是最重要的概念之一:MAC地址
大家肯定都聽說過我們的網(wǎng)卡都有MAC地址
有些人可能也知道MAC地址都是唯一的.
對.MAC地址是全球唯一的.也就是說你的網(wǎng)卡雖然便宜.但是他也是世界上獨一無二的.
有些人說他可以改MAC.那就不是唯一了.對.雖然可以更改,那只是欺騙上層對封包里面的MAC地址進行改寫.你網(wǎng)卡真正的MAC地址是固化的.無法修改的.
我們有了MAC地址了.這樣就可以有針對性對所有連接在一起的計算機進行通訊了.是的.我們終于可以在一個局域網(wǎng)內(nèi)通訊了.
但是有個問題我們前面沒有提到.就是既然物理層傳輸?shù)氖请娦盘?那么如果我有2臺機器一起發(fā)電信號,信號豈不是混亂了么?
非常正確.這個問題在網(wǎng)絡(luò)里面成為"碰撞",所以協(xié)議里面規(guī)定了如果你需要往外發(fā)數(shù)據(jù),一定需要先看看電纜里面有沒有別的信號.如果沒有,那就可以發(fā).如果2者同時發(fā)送,檢測到碰撞之后2者分別等待一個隨機時間,然后重發(fā).這個就是重要的"碰撞檢測".
哈.看來問題解決了.不是么.現(xiàn)在整個網(wǎng)絡(luò)可以正常運行了.
確實如此.但是如果連接在網(wǎng)絡(luò)上的計算機越來越多,那么碰撞的現(xiàn)象會越來越頻繁.這樣效率一定很低了.恩.這里還有一個重要概念"沖突域".在同一個物理上連接的網(wǎng)絡(luò)上的所有設(shè)備是屬于同一個沖突域的.
接著就需要引入我們的2層設(shè)備來分割沖突域了.
網(wǎng)橋(Bridge)就是連接2個不同的物理網(wǎng)絡(luò)的.主要功能是在2個網(wǎng)絡(luò)之間轉(zhuǎn)發(fā)Frame.因為從實際中我們可以知道.其實很多時候并非整個網(wǎng)絡(luò)都在相互通訊.最多相互通訊的一組計算機我們可以分在一個小的沖突域內(nèi).這樣分割以后可以減少沖突域,也就相對的減少了沖突的機會.而之間使用網(wǎng)橋來橋接,由于網(wǎng)橋兩邊的通訊不是非常頻繁,所以使用網(wǎng)橋來為2邊作為"代言人".這樣任意一個小網(wǎng)絡(luò)里面產(chǎn)生沖突的機會就少了.
交換機(Switch)是我們最熟悉的設(shè)備了,交換機的本質(zhì)其實就是一個多口網(wǎng)橋(Multi port Bridge).同理可得.交換機的每個口后面都是一個沖突域.我們都說交換機比HUB快,就是因為交換機分割了所有的沖突域.
由于現(xiàn)在交換機非常便宜.所以一般我們都是直接在交換機的口上接計算機.這樣每臺計算機都是一個獨立的沖突域.這樣碰撞的問題就沒有了.所以速度是比HUB快.
而前面說過.2層設(shè)備主要是個轉(zhuǎn)發(fā)的功能.交換機的主要功能就是轉(zhuǎn)發(fā)包.而不是讓所有的沖突域直接物理連接.所以交換機有CPU,有內(nèi)存,可以對frame進行處理等等.這些也是交換機和HUB的區(qū)別.
3.網(wǎng)絡(luò)層
我們前面的一些技術(shù)就可以構(gòu)建出局域網(wǎng)了.有了網(wǎng)絡(luò)層以后.數(shù)據(jù)才能夠真正的在整個世界間傳送
由于倫納德·博薩卡(Leonard Bosack)和姍蒂•雷納(Sandy Lerner)為了解決他們之間的通信問題(關(guān)于路由器發(fā)明的版本有很多.你聽到的別的說法可能比這個說法更準確,但是誰知道呢.呵呵).路由器被發(fā)明用來解決"信息孤島"問題.而且如果是由SWITCH來構(gòu)建整個網(wǎng)絡(luò),那么整個網(wǎng)絡(luò)將會有"中心節(jié)點",這樣也不符合ARPANET的初衷.所以我們有了這一層.(這樣說可能會感覺本末倒置,但是先這么理解吧.)
這一層的基本單元是包(Packet).所有的包都有一個IP頭.啊.聽起來很熟悉不是么.IP就是用來在這層上面標識包的來源和目的地址的.
這層的一個主要概念就是"路由",也就是和switch一樣,把包轉(zhuǎn)發(fā)到其他的地方.不過有個不同的地方,switch只有知道具體的MAC在哪里的情況下才能夠發(fā)送給指定的計算機,而路由則不需要知道最終IP所在的計算機在哪個位置,只要知道那個途徑可以過去就可以工作.
這3層構(gòu)建了整個網(wǎng)絡(luò)的基礎(chǔ).由于TCP/IP模型將最下面2層合并成為一層,所以在TCP/IP里面總共這2層也是整個構(gòu)架最基礎(chǔ)的內(nèi)容.而網(wǎng)絡(luò)方面要做的工作也都是針對于這2層做的.