路由器是最常見(jiàn)的網(wǎng)絡(luò)設(shè)備了,小到十幾塊錢(qián)的消費(fèi)級(jí)路由器,大到幾十萬(wàn)的企業(yè)級(jí)路由器,不一而足。本文將用一張流程圖,詳細(xì)介紹路由器的工作原理。

我們知道路由器有兩種接口,一種是LA口,一種是WAN口。
LAN口可以有多個(gè)用來(lái)接家庭網(wǎng)絡(luò)設(shè)備,比如臺(tái)式機(jī)、手機(jī)、筆記本,其中手機(jī)和筆記本是通過(guò)wifi連接到路由器的設(shè)備也相當(dāng)于連接到了LAN口上。
WAN口只有一個(gè)用來(lái)接入運(yùn)營(yíng)商網(wǎng)絡(luò),已連接到互聯(lián)網(wǎng)中。如果把路由器的WAN口忽略,只用LAN口,其實(shí)路由器就是一臺(tái)交換機(jī)。
路由器的原理
TCP/IP協(xié)議規(guī)定:在計(jì)算機(jī)網(wǎng)絡(luò)中,同一個(gè)子網(wǎng)中的設(shè)備,是可以通過(guò)該子網(wǎng)的網(wǎng)關(guān)直接通信的。但是,不同子網(wǎng)之間是不可以直接通信的!如果要通信,需要通過(guò)網(wǎng)關(guān)來(lái)進(jìn)行轉(zhuǎn)達(dá)。每個(gè)網(wǎng)關(guān)上都有兩張網(wǎng)卡,分別配置了屬于兩個(gè)子網(wǎng)的IP地址,可以在兩個(gè)網(wǎng)絡(luò)之間轉(zhuǎn)發(fā)數(shù)據(jù)包,這樣我們就擁有了一個(gè)連接了兩個(gè)子網(wǎng)的網(wǎng)絡(luò)。
我們來(lái)舉一個(gè)簡(jiǎn)單的例子,來(lái)說(shuō)明數(shù)據(jù)在路由轉(zhuǎn)發(fā)中的步驟。

第1步:子網(wǎng)一中的一臺(tái)計(jì)算機(jī)a發(fā)送數(shù)據(jù)包,數(shù)據(jù)包中包含了源ip1目標(biāo)ip2;
第2步:計(jì)算機(jī)a會(huì)根據(jù)目標(biāo)IP判斷是否跟自己屬于同一個(gè)子網(wǎng),如果是同一個(gè)子網(wǎng),則直接從網(wǎng)卡發(fā)出。
第3步:如果不是同一個(gè)子網(wǎng),則需要把數(shù)據(jù)包的目標(biāo)mac地址改為網(wǎng)關(guān)mac,然后發(fā)送給網(wǎng)關(guān)。
第4步:網(wǎng)關(guān)拿到這一包數(shù)據(jù)后,再通過(guò)路由表查詢(xún)到這一包數(shù)據(jù)屬于子網(wǎng)二。
第5步:網(wǎng)關(guān)修改目標(biāo)Mac地址為計(jì)算機(jī)b的Mac地址,修改源mac為自己的Mac,
第6步:數(shù)據(jù)從子網(wǎng)二的網(wǎng)卡發(fā)出,到ip2所對(duì)應(yīng)的計(jì)算機(jī)b。
總結(jié)
以上出現(xiàn)了多次根據(jù)目標(biāo)IP判斷數(shù)據(jù)包應(yīng)該如何發(fā)送的行為,我們就稱(chēng)之為路由行為。
路由器有一個(gè)wan口接入互聯(lián)網(wǎng),多個(gè)LAN口接入本地網(wǎng)絡(luò),他們就分別屬于兩個(gè)不同的子網(wǎng),所以從內(nèi)網(wǎng)訪問(wèn)互聯(lián)網(wǎng)就是跨網(wǎng)絡(luò)的行為,這時(shí)候就需要路由器來(lái)?yè)?dān)任網(wǎng)關(guān)的角色,他的行為就叫路由。