我相信我們都玩過(guò)一款特別火的游戲:帝國(guó)時(shí)代。小時(shí)候想要玩帝國(guó)時(shí)代,需要到軟件城購(gòu)買盜版光盤安裝,大概3塊錢一張左右的樣子,當(dāng)時(shí)已經(jīng)覺(jué)得很便宜了,誰(shuí)想到現(xiàn)在有了網(wǎng)絡(luò)之后是免費(fèi)。
小A是一個(gè)帝國(guó)時(shí)代大神,他打通了游戲的所有關(guān)卡,可以一個(gè)人單挑8個(gè)瘋狂的電腦玩家。漸漸地他覺(jué)得無(wú)聊了,想要找小伙伴一起PK。
但是兩個(gè)電腦需要互聯(lián)才行,如何實(shí)現(xiàn)兩臺(tái)設(shè)備的互聯(lián)呢?
小A很聰明,他發(fā)明了一個(gè)類似于USB口一樣的可以傳輸數(shù)據(jù)的端口,他將其命名為網(wǎng)口。小A通過(guò)一根網(wǎng)線將自己的電腦與小B的網(wǎng)口相連,實(shí)現(xiàn)了兩臺(tái)電腦間的互連(如下圖)。
兩個(gè)小伙伴很開(kāi)心,聯(lián)機(jī)玩了起來(lái),這時(shí)被路過(guò)的小C看見(jiàn)了,小C也要加入進(jìn)來(lái)。
但是我們知道,每臺(tái)電腦只有一個(gè)網(wǎng)口,無(wú)法實(shí)現(xiàn)三臺(tái)電腦的相互連接,那要要怎么辦呢?
這時(shí)候小B出了一個(gè)主意:咱們?cè)僬乙慌_(tái)計(jì)算機(jī),給他多設(shè)計(jì)幾個(gè)網(wǎng)口,我們每個(gè)人都連到這臺(tái)計(jì)算機(jī)的網(wǎng)口上,不也實(shí)現(xiàn)咱們哥幾個(gè)之間的互連了嗎。
說(shuō)干就干,于是他們?cè)O(shè)計(jì)出了一款微型計(jì)算機(jī),他本身具備多個(gè)網(wǎng)口,專門實(shí)現(xiàn)多臺(tái)計(jì)算機(jī)的互聯(lián)作用,這個(gè)微型計(jì)算機(jī)就是集線器(HUB)。
顧名思義,集線器起到了一個(gè)將網(wǎng)線集結(jié)起來(lái)的作用,實(shí)現(xiàn)最初級(jí)的網(wǎng)絡(luò)互通。
集線器是通過(guò)網(wǎng)線直接傳送數(shù)據(jù)的,我們說(shuō)他工作在物理層(如下圖所示)。
有了集線器后,越來(lái)越多的小伙伴加入到游戲中,小D、小E等人都慕名而來(lái)。
然而集線器有一個(gè)問(wèn)題,由于和每臺(tái)設(shè)備相連,他不能分辨出具體信息是發(fā)送給誰(shuí)的,只能廣泛地廣播出去。
例如小A本來(lái)想問(wèn)小C:你吃了嗎?結(jié)果小B,小D和小E等所有連接在集線器上的用戶都收到了這一信息。
由于處于同一網(wǎng)絡(luò),小A說(shuō)話時(shí)其他人不能發(fā)言,否則信息間會(huì)產(chǎn)生碰撞,引發(fā)錯(cuò)誤,對(duì)這種情況,我們稱為各設(shè)備處于同一沖突域內(nèi)。
這樣的設(shè)備用戶體驗(yàn)極差,于是小伙伴們一起討論改進(jìn)措施。
這時(shí)聰明的小D發(fā)話了:我們給這臺(tái)設(shè)備加入一個(gè)指令,讓他可以根據(jù)網(wǎng)口名稱自動(dòng)尋址傳輸數(shù)據(jù)。
比如我把小A的網(wǎng)口命名為macA,將小C的命名為macC,這時(shí)如果小A想要將數(shù)據(jù)傳給小C,則設(shè)備會(huì)根據(jù)網(wǎng)口名稱macA和macC自動(dòng)將資料從A的電腦傳送到C的電腦中,而不讓小B、小D和小E收到。
(補(bǔ)充說(shuō)明: 這里的macA, macB指的就是MAC地址,相當(dāng)于一個(gè)人的身份證,獨(dú)一無(wú)二。)
也就是說(shuō),這臺(tái)設(shè)備解決了沖突的問(wèn)題,實(shí)現(xiàn)了任意兩臺(tái)電腦間的互聯(lián),大大地提升了網(wǎng)絡(luò)間的傳輸速度,我們把它叫做交換機(jī)。
由于交換機(jī)是根據(jù)網(wǎng)口地址傳送信息,比網(wǎng)線直接傳送多了一個(gè)步驟,我們也說(shuō)交換機(jī)工作在數(shù)據(jù)鏈路層(如下圖)。
這回小伙伴們高興了,他們愉快地玩耍起來(lái)。
漸漸地,他們?cè)诋?dāng)?shù)赜辛嗣麣?,吸引了越?lái)越多的小伙伴加入到他們的隊(duì)伍中。有一天,一個(gè)外村的小伙突然找上門來(lái),希望能和他們一起互聯(lián),實(shí)現(xiàn)跨村間的網(wǎng)絡(luò)對(duì)戰(zhàn)。
小A說(shuō)可以呀,于是他們找了一根超長(zhǎng)的網(wǎng)線將兩個(gè)村落的交換機(jī)連在了一起。結(jié)果發(fā)現(xiàn)一件奇怪的事:兩個(gè)村落間竟然不能相互通信。
怎么回事?原來(lái)那邊的電腦和他們用的不是一套操作系統(tǒng),這導(dǎo)致信息間的傳送形式的不匹配。在這期間,還有其他村落的人也來(lái)找過(guò)小A,可是小A發(fā)現(xiàn),每個(gè)村子之間用的操作系統(tǒng)都不一樣。
這可咋辦吶?難道以后只能各自村子玩各自的了嗎?為了解決這一問(wèn)題,各村的小伙伴們坐在一起組織了一場(chǎng)會(huì)議,最終得出了一套解決方案:采用同樣的信息傳送形式(像不像秦始皇統(tǒng)一度量衡?)。
那如何實(shí)現(xiàn)呢?小伙伴們規(guī)定,不同的村子間先在各自的操作系統(tǒng)上加上一套相同的協(xié)議。不同村落通信時(shí),信息經(jīng)協(xié)議加工成統(tǒng)一形式,再經(jīng)由一個(gè)特殊的設(shè)備傳送出去。這個(gè)設(shè)備就叫做路由器。
在這套協(xié)議中,每個(gè)機(jī)器都被賦予了一個(gè)IP地址,相當(dāng)于一個(gè)門牌號(hào)一樣。路由器通過(guò)IP地址尋址,我們說(shuō)它工作在計(jì)算機(jī)的網(wǎng)絡(luò)層。
這樣,經(jīng)由如此的一系列改裝,小A終于帶領(lǐng)村民們實(shí)現(xiàn)了整個(gè)鄉(xiāng)鎮(zhèn)的通信。隨著越來(lái)越多的城里人也加入小A的協(xié)議,小A帶領(lǐng)村民逐步實(shí)現(xiàn)了全市、全國(guó)乃至全世界的通信。這一套協(xié)議便是TCP/IP協(xié)議簇,互聯(lián)網(wǎng)也便這樣形成了。
然而,即便如今全網(wǎng)絡(luò)已遍布了全世界,在小A和村里的小伙伴對(duì)戰(zhàn)帝國(guó)時(shí)代的時(shí)候,也仍然用著交換機(jī)。只有和外面更大的世界交流的時(shí)候才用到路由器。
其實(shí)上圖只是為了幫助您更好地理解路由器,一個(gè)真實(shí)的網(wǎng)絡(luò)拓?fù)渲?,路由器、交換機(jī)、集線器是一起分工合作的,正如下圖所示: