0. 粉絲提問
粉絲提問:「我們的電腦是如何獲得路由器自動(dòng)分配的ip地址,并實(shí)現(xiàn)上網(wǎng)的?」
粉絲提問,一口君必須滿足!好在一口君對(duì)網(wǎng)絡(luò)協(xié)議還是比較熟悉的,畢竟當(dāng)年也有幾篇專利,做過的網(wǎng)絡(luò)協(xié)議模塊一大堆。
【本文默認(rèn)大家了解了IP地址,及其分類】
粉絲提問一、家庭網(wǎng)
這個(gè)問題說難不難,但是要想解釋清楚,我們還是需要一些基礎(chǔ)知識(shí)。
1. 家庭網(wǎng)絡(luò)簡介
如上圖是一口君家庭網(wǎng)絡(luò)組網(wǎng)環(huán)境。
要連接公網(wǎng),必須通過Modem撥號(hào)才能上網(wǎng),撥號(hào)通過pppoe協(xié)議撥號(hào)wlan路由器的wan口鏈接ADSL 貓,會(huì)動(dòng)態(tài)獲取一個(gè)公網(wǎng)IP地址100.87.59.254,在廣域網(wǎng)內(nèi),任何一個(gè)主機(jī),均可以訪問到該ip地址臺(tái)式機(jī)、手機(jī)、ipad、筆記本等終端可以通過有線或者無線的方式通過共享無線路由器的wan口訪問公網(wǎng)終端通過路由器的dhcp協(xié)議自動(dòng)獲取的地址是局域網(wǎng)地址,pc獲得地址是192.168.0.104,網(wǎng)段是192.168.0.0/24,但是我們無法使用該地址直接訪問公網(wǎng)局域網(wǎng)內(nèi)終端通過共享WAN地址上網(wǎng),所有走wlan路由器的數(shù)據(jù)包都要通過NAT協(xié)議進(jìn)行源、目的IP,源、目的端口號(hào)的轉(zhuǎn)換局域網(wǎng)內(nèi)終端之間通信運(yùn)行的是以太網(wǎng)協(xié)議,網(wǎng)卡通過mac地址過濾數(shù)據(jù)幀要獲取局域網(wǎng)內(nèi)其他網(wǎng)口的mac地址需要通過arp協(xié)議公網(wǎng)內(nèi)路由器之間數(shù)據(jù)傳輸一般是ppp協(xié)議
WAN口地址:「100.87.59.254」
2. 本地IP地址
一口君的pc是通過無線連接的無線路由器。PC網(wǎng)絡(luò)信息如下:
ipconfig /all
本機(jī)無線網(wǎng)卡信息:
ip地址:「192.168.0.104」mac地址:「44-33-4C-FF-5A-22」子網(wǎng)掩碼:「255.255.255.0」默認(rèn)網(wǎng)關(guān):「192.168.0.1」DHCP服務(wù)器:「192.168.0.1」
后面幾章我們普及下一些網(wǎng)絡(luò)的基礎(chǔ)知識(shí)。
二、router路由器
路由器(Router)是互聯(lián)網(wǎng)的主要結(jié)點(diǎn)設(shè)備。路由器通過路由決定數(shù)據(jù)的轉(zhuǎn)發(fā)。
轉(zhuǎn)發(fā)策略稱為路由選擇(routing),這也是路由器名稱的由來(router,轉(zhuǎn)發(fā)者)。
作為不同網(wǎng)絡(luò)之間互相連接的樞紐,路由器系統(tǒng)構(gòu)成了基于TCP/IP 的國際互聯(lián)網(wǎng)絡(luò)Internet 的主體脈絡(luò),也可以說,路由器構(gòu)成了Internet的骨架。
第一章圖中的無線路由器就是我們最常用的路由器。
通常有一個(gè)wan口,4個(gè)物理連接網(wǎng)口。既可以通過網(wǎng)線連接,也可以通過無線連接,通常帶寬100M到450M。
此外還有只有在一些大型的機(jī)房中才能看到的大型路由器。這些路由器性能強(qiáng)悍,帶寬可高達(dá)T一級(jí)。
路由器
以下是1個(gè)企業(yè)級(jí)網(wǎng)絡(luò)的組網(wǎng)拓?fù)鋱D,我們通常用圖中的圖標(biāo)表示路由器:
企業(yè)級(jí)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
路由器的一些使用規(guī)則:
路由器工作在IP(網(wǎng)絡(luò))層;路由器用來連接不同的網(wǎng)絡(luò);路由器的每一個(gè)接口都必須是不同網(wǎng)段的;路由器之間互聯(lián)是接口直接連接,一般用ppp協(xié)議通信;處于不同網(wǎng)絡(luò)中的2個(gè)設(shè)備要想互相通信,必須通過路由器;一個(gè)成熟穩(wěn)定的網(wǎng)絡(luò),路由器必須知道每一個(gè)網(wǎng)絡(luò)設(shè)備到達(dá)另外一個(gè)網(wǎng)絡(luò)的通路,否則會(huì)直接丟棄,路由器通過路由表來維護(hù)這些通路;路由器只解析到數(shù)據(jù)包的IP層(傳輸層和應(yīng)用層不會(huì)查看)
三、路由表
剛才我們說了,公網(wǎng)里,數(shù)據(jù)包要想到達(dá)目的地,必須通過設(shè)備路由器,那么路由器是如何知道把數(shù)據(jù)包送到目的地的呢?
就要通過路由表。
1. 「ip頭」
公網(wǎng)中的數(shù)據(jù)包都是ip數(shù)據(jù)包,ip數(shù)據(jù)包頭中有個(gè)非常重要的協(xié)議字段:「目的地址」。
一口君隨機(jī)抓取了一個(gè)本機(jī)網(wǎng)絡(luò)通信的ip數(shù)據(jù)包:
如上圖所示,源ip地址是:192.168.0.104目的ip地址是:140.246.147.33
很顯然,源地址是一個(gè)c類地址,就是本機(jī)地址,也是一個(gè)私網(wǎng)地址,目的地址是一個(gè)公網(wǎng)地址。
路由器之所以能轉(zhuǎn)發(fā)數(shù)據(jù)包就是靠路由表和ip數(shù)據(jù)包的目的ip地址+源ip地址。
2. 路由表
以下是windows下的路由表
route print
windows路由表
路由表中包含了若干個(gè)路由條目。
「PC路由條目:」
名稱說明網(wǎng)絡(luò)目標(biāo)表示要到達(dá)某個(gè)網(wǎng)段的網(wǎng)絡(luò),可以查詢?cè)摋l路由條目網(wǎng)絡(luò)掩碼點(diǎn)分十進(jìn)制法,配合網(wǎng)絡(luò)目標(biāo),可得出最終的目標(biāo)網(wǎng)絡(luò)號(hào)網(wǎng)關(guān)數(shù)據(jù)包要發(fā)送給哪個(gè)網(wǎng)口所在的路由器接口表示數(shù)據(jù)包要從哪個(gè)本地的接口發(fā)送出去躍點(diǎn)數(shù)數(shù)據(jù)包在網(wǎng)絡(luò)中最多能經(jīng)過多少個(gè)路由器,放置數(shù)據(jù)包在網(wǎng)絡(luò)中無限轉(zhuǎn)發(fā)
永久路由:
網(wǎng)絡(luò)地址網(wǎng)絡(luò)掩碼網(wǎng)關(guān)地址躍點(diǎn)數(shù)0.0.0.00.0.0.0192.168.0.1默認(rèn)
該條路由其實(shí)是一條默認(rèn)路由,表示如果查找不到路由條目,就將數(shù)據(jù)包發(fā)送給192.168.0.1這個(gè)ip地址所在的路由器。
3. 公網(wǎng)中路由器非常的多,路由器是如何知道到達(dá)所有的網(wǎng)絡(luò)的通路的呢?
通常借助ospf、rip等協(xié)議可以動(dòng)態(tài)學(xué)會(huì)到達(dá)各個(gè)網(wǎng)絡(luò)的協(xié)議。
廣域網(wǎng)中的設(shè)備路由協(xié)議更加復(fù)雜,往往需要專業(yè)的網(wǎng)絡(luò)工程師搭建網(wǎng)絡(luò)。
此塊內(nèi)容不再
四、DHCP+wlan
家用路由器也是路由器一種,只是他只能連接兩個(gè)網(wǎng)絡(luò),一個(gè)是局域網(wǎng),一個(gè)是與運(yùn)營商連接的那個(gè)網(wǎng)絡(luò)。
無線路由器上設(shè)置撥號(hào)賬號(hào)以及設(shè)置無線ssid、密碼在此不討論。
1. PPPOE撥號(hào)
家用路由器上網(wǎng)通常是通過PPPoE撥號(hào)上網(wǎng),賬號(hào)密碼由運(yùn)營商提供。
撥號(hào)成功后會(huì)獲得一個(gè)公網(wǎng)IP。
如果擁有一個(gè)固定的公網(wǎng)IP,那么此處也可以設(shè)置固定ip。
「一口君當(dāng)年第一份工作是在ZTE,參與開發(fā)的第一個(gè)項(xiàng)目就是在路由器中實(shí)現(xiàn)PPPoE client模塊,一把辛酸淚啊。」
2. DHCP
DHCP(動(dòng)態(tài)主機(jī)配置協(xié)議)是一個(gè)局域網(wǎng)的網(wǎng)絡(luò)協(xié)議。指的是由服務(wù)器控制一段IP地址范圍,客戶機(jī)登錄服務(wù)器時(shí)就可以自動(dòng)獲得服務(wù)器分配的IP地址和子網(wǎng)掩碼。
如上,地址池地址是192.168.0.100~192.168.0.199;這就是為什么我們的終端連接家用路由器之后,獲得地址「192.168.0.104」。
分配動(dòng)態(tài)ip地址的時(shí)候,同時(shí)也會(huì)分配DNS服務(wù)器地址和網(wǎng)關(guān)地址。這也就是為什么,我們并沒有設(shè)置任何路由條目,但是我們能上網(wǎng)的原因。
以下是連接到無線路由器的客戶端的MAC地址和IP地址信息:
3. 局域網(wǎng)
以太網(wǎng)是一種局域網(wǎng),但是因?yàn)楝F(xiàn)在大部分的局域網(wǎng)均為以太網(wǎng),因此一般提及局域網(wǎng)都會(huì)默認(rèn)為以太網(wǎng)。
以太網(wǎng)是一種總線型局域網(wǎng),它并不是一種具體網(wǎng)絡(luò),而是一種技術(shù)規(guī)范,由施樂公司創(chuàng)建,并由施樂、Intel和Dec公司聯(lián)合開發(fā)的局域網(wǎng)規(guī)范。
上述家用的無線網(wǎng)絡(luò),大多數(shù)是無線局域網(wǎng),是基于IEEE802.11標(biāo)準(zhǔn),在這個(gè)標(biāo)準(zhǔn)下的無線局域網(wǎng)大多使用的是2.4GHz 或5GHz的射頻。
「工作原理:」
采用載波監(jiān)聽多點(diǎn)接入/碰撞檢測(CSMA/CD)機(jī)制。
以太網(wǎng)中結(jié)點(diǎn)都可以收到在網(wǎng)絡(luò)中傳送的所有信息。因此,以太網(wǎng)是一種廣播網(wǎng)絡(luò)。
「實(shí)例:」
總線上的每一個(gè)工作的計(jì)算機(jī)都能檢測到 B 發(fā)送的數(shù)據(jù)信號(hào)。由于只有計(jì)算機(jī) D 的地址與數(shù)據(jù)幀首部寫入的地址一致,因此只有 D 才接收這個(gè)數(shù)據(jù)幀。其他所有的計(jì)算機(jī)(A, C 和 E)都檢測到不是發(fā)送給它們的數(shù)據(jù)幀,因此就丟棄這個(gè)數(shù)據(jù)幀而不能夠收下來。這樣就在具有廣播特性的總線上實(shí)現(xiàn)了一對(duì)一的通信。
4. Mac地址
在以太網(wǎng)中,硬件地址又稱為物理地址,或 MAC 地址,6個(gè)字節(jié),共48 位。
IEEE 的注冊(cè)管理機(jī)構(gòu) RA 負(fù)責(zé)向廠家分配地址字段的前三個(gè)字節(jié)(即高位 24 位)。
適配器從網(wǎng)絡(luò)上每收到一個(gè) MAC 幀就首先用硬件檢查 MAC 幀中的 MAC 地址.
如果是發(fā)往本站的幀則收下,然后再進(jìn)行其他的處理,否則就將此幀丟棄,不再進(jìn)行其他的處理。
5. ARP
假如我們要訪問局域網(wǎng)中的另外一個(gè)pc上的進(jìn)程,假設(shè)我們只知道對(duì)方的IP地址,那么如何才能知道對(duì)方的mac地址呢?
可以通過ARP協(xié)議。
ARP(地址解析)協(xié)議是一種解析協(xié)議,本來主機(jī)是完全不知道這個(gè)IP對(duì)應(yīng)的是哪個(gè)主機(jī)的哪個(gè)接口,當(dāng)主機(jī)要發(fā)送一個(gè)IP包的時(shí)候,會(huì)首先查一下自己的ARP高速緩存(就是一個(gè)IP-MAC地址對(duì)應(yīng)表緩存),如果查詢的IP-MAC值不存在,那么主機(jī)就向網(wǎng)絡(luò)發(fā)送一個(gè)ARP協(xié)議廣播包。
這個(gè)廣播包里面就有待查詢的IP地址,而直接收到這份廣播的包的所有主機(jī)都會(huì)查詢自己的IP地址,如果收到廣播包的某一個(gè)主機(jī)發(fā)現(xiàn)自己符合條件,那么就準(zhǔn)備好一個(gè)包含自己的MAC地址的ARP包傳送給發(fā)送ARP廣播的主機(jī)。
而廣播主機(jī)拿到ARP包后會(huì)更新自己的ARP緩存(就是存放IP-MAC對(duì)應(yīng)表的地方)。發(fā)送廣播的主機(jī)就會(huì)用新的ARP緩存數(shù)據(jù)準(zhǔn)備好數(shù)據(jù)鏈路層的的數(shù)據(jù)包發(fā)送工作。
windows 的arp表查詢:
arp -a
如上圖所示,是PC緩存的arp表。其中192.168.0.1 80-8f-1d-c7-a6-07就是無線路由器的LAN口ip地址、MAC地址。
5. NAT
最后一個(gè)知識(shí)點(diǎn)是,局域網(wǎng)內(nèi)的終端是如何共用一個(gè)wan口來上網(wǎng)的?
主要通過NAT(Network Address Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換)協(xié)議來實(shí)現(xiàn)的。
NAT是1994年提出的。當(dāng)在專用網(wǎng)內(nèi)部的一些主機(jī)本來已經(jīng)分配到了本地IP地址(即僅在本專用網(wǎng)內(nèi)使用的專用地址),但現(xiàn)在又想和因特網(wǎng)上的主機(jī)通信(并不需要加密)時(shí),可使用NAT方法。
這種方法需要在專用網(wǎng)連接到因特網(wǎng)的路由器上安裝NAT軟件。裝有NAT軟件的路由器叫做NAT路由器,它至少有一個(gè)有效的外部全球IP地址。這樣,所有使用本地地址的主機(jī)在和外界通信時(shí),都要在NAT路由器上將其本地地址轉(zhuǎn)換成全球IP地址,才能和因特網(wǎng)連接。
另外,這種通過使用少量的公有IP 地址代表較多的私有IP 地址的方式,將有助于減緩可用的IP地址空間的枯竭。在RFC 2663中有對(duì)NAT的說明。
「舉例:」
經(jīng)過NAT轉(zhuǎn)換的數(shù)據(jù)包IP地址替換見下圖:
NAT
如上圖所示:
從局域網(wǎng)內(nèi)部發(fā)往路由器的數(shù)據(jù)包,源ip:192.168.0.104,經(jīng)過路由器之后源ip替換為WAN口地址:100.87.59.254從服務(wù)器返回的數(shù)據(jù)包目的ip地址:100.87.59.254,經(jīng)過路由器之后又被替換成了192.168.0.104,這樣數(shù)據(jù)包就可以發(fā)送到局域網(wǎng)內(nèi)部的某個(gè)終端了五、 總結(jié)
綜上,我們可知,粉絲的問題答案:
路由器的IP地址分wan口和lan口,wan口地址是PPPoE撥號(hào)時(shí)運(yùn)營商的其他設(shè)備分配的用于公網(wǎng)尋址,lan口地址在路由器中設(shè)置, 用于和局域網(wǎng)內(nèi)終端通信終端連接無線路由器時(shí),路由器通過dhcp協(xié)議給終端分配了動(dòng)態(tài)ip地址,通過DHCP的地址池可以設(shè)置分配的ip地址的范圍分配ip地址的時(shí)候,同時(shí)終端會(huì)將無線路由器的lan口地址設(shè)置為自己的默認(rèn)網(wǎng)關(guān),所以pc訪問外網(wǎng),所有的數(shù)據(jù)包都會(huì)發(fā)送給網(wǎng)關(guān),就是無線路由器當(dāng)用戶要訪問外網(wǎng)的時(shí)候,需要知道網(wǎng)關(guān)的mac地址,如果arp緩存中沒有對(duì)應(yīng)的的arp條目,那么就通過arp協(xié)議找到lan口的mac地址,因?yàn)榫W(wǎng)關(guān)地址已分配局域網(wǎng)內(nèi)終端通過共享WAN地址上網(wǎng),所有走wlan路由器的數(shù)據(jù)包都要通過NAT協(xié)議進(jìn)行源、目的IP,源、目的端口號(hào)的轉(zhuǎn)換
責(zé)任編輯:PSY
-
網(wǎng)絡(luò)
+關(guān)注
關(guān)注
14文章
7570瀏覽量
88833 -
局域網(wǎng)
+關(guān)注
關(guān)注
5文章
754瀏覽量
46293 -
ip地址
+關(guān)注
關(guān)注
0文章
303瀏覽量
17059
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論