IP地址和MAC地址是什么?Dhcp和arp又是什么?
本期武漢海翎光電的小編和大家聊聊 計算機(jī)是如何通信的?IP地址和MAC地址是什么?Dhcp和arp又是什么?在我們的家庭網(wǎng)絡(luò)中,有許多的網(wǎng)絡(luò)設(shè)備,比如我們可以有兩臺計算機(jī)A和B, 一臺手機(jī)一臺電視機(jī),他們都連接到了路由器上,并且路由器都過運(yùn)營商線路,接入了因特網(wǎng)。
在這個網(wǎng)絡(luò)模型中,有許多的應(yīng)用場景。比如計算機(jī)A和計算機(jī)B之間可以互相發(fā)送文件、手機(jī)可以通過APP控制電視、電視機(jī)訪問計算機(jī)A上共享的影片、計算機(jī)和手機(jī)訪問互聯(lián)網(wǎng)上的網(wǎng)站。在家中通過VPN連接到公司內(nèi)網(wǎng)進(jìn)行工作等等。以上幾種工作場景都脫離不了一件事,就是通過網(wǎng)絡(luò)進(jìn)行通信。
聽到IP地址這個概念,想必大家都不會陌生。如果我們想要和對方進(jìn)行通信,通常我們需要知道對方的IP地址。但是在網(wǎng)絡(luò)通信中,還有一個非常重要的地址MAC地址,它在網(wǎng)絡(luò)中提到了至關(guān)重要的作用。到底IP地址和MAC地址是多少?他們又是如何起作用的?請隨武漢海翎光電的小編一起耐心地看完本期的內(nèi)容,你一定會有所收獲。
在現(xiàn)實生活中,我們?nèi)绻o對方寫信,除了信件內(nèi)容以外,還需要填寫信封地址。信封有兩個重要信息。一個是收件地址,一個是收件人。收件地址表示這封信要寄到哪里?收件人表示信要寄給誰?同樣的道理,在網(wǎng)絡(luò)世界中,我們要發(fā)信息給別人,也需要知道收件地址、收件人。他們就是MAC地址和IP地址。MAC地址就是收件地址,IP地址就是收件人。
映射到上面的例子,比如說海翎光電的小編我,我是一個可以活動的人,我可以住在自己家,也可以住在公司,也可以住在父母家。如果你要給我寫信,首先要知道我現(xiàn)在住在哪里?在網(wǎng)絡(luò)中也是這樣的,如果把網(wǎng)絡(luò)比喻為我們生活的城市,那網(wǎng)卡就是城市中的建筑,MAC地址就是這些物理建筑的地址。而IP地址就是這些建筑中的人。
與寫信不同,在計算機(jī)網(wǎng)絡(luò)中發(fā)送信息,我們只需要填寫內(nèi)容和對方的IP地址,操作系統(tǒng)會根據(jù)目標(biāo)IP自動查詢arp表獲取對方的MAC地址補(bǔ)齊這封信,從網(wǎng)卡發(fā)出。
雖然計算機(jī),手機(jī),電視機(jī)他們是不同類型的電子產(chǎn)品,但是他們的通訊,都是由內(nèi)部的網(wǎng)卡設(shè)備所進(jìn)行的。所以我們統(tǒng)一用網(wǎng)卡來表示設(shè)備。每張網(wǎng)卡在出廠時都寫入一個地址,就是MAC地址。這個地址是由6個字節(jié)構(gòu)成的。其中前3個數(shù)表示的是網(wǎng)絡(luò)硬件廠商編號,由(IEEE)國際性電子技術(shù)與電子工程師協(xié)會分配。后3個字節(jié)代表的是該制造廠商所制造的網(wǎng)卡的序列號。所以MAC地址是全球唯一的地址。雖然可以通過一些其他手段修改MAC地址,但不在我們的討論范圍。
我們上面說了,MAC地址表示了網(wǎng)卡在網(wǎng)絡(luò)中的確定位置,那這個位置是如何表示與確定的呢?比如我們的計算機(jī)A,通過網(wǎng)線接入到了交換機(jī)的端口1,那這個端口1就是網(wǎng)絡(luò)中的具體位置,就像我們的門牌號一樣。交換機(jī)就知道了某個MAC地址在端口1上,從而就把MAC地址與端口進(jìn)行了綁定。
我們的網(wǎng)卡接入網(wǎng)絡(luò)中,如果要通信需要給他配置另一個地址,就是IP地址。IP地址有兩種,IPV4地址和IPV6地址。比如我們常用的192.168.1.N,這就是IPV4地址。由4位0-255的數(shù)字,用小數(shù)點(diǎn)間隔構(gòu)成。目前IPV4的技術(shù)可以使用的IP地址最多有42億,看上去像是很難用盡,但由于早期編碼和分配上的問題,很多區(qū)域的編碼實際上被空出或不能使用。隨著互聯(lián)網(wǎng)的快速成長,IPV4的42億個地址最終于2011年2月3日用盡。相應(yīng)的科研組織已經(jīng)研究出128位的IPV6其IP地址的數(shù)量最高可達(dá)3.4*10-38個,屆時每個人家中的每個網(wǎng)絡(luò)設(shè)備,甚至地球上的每一粒沙子都可以擁有自己的IP地址。
現(xiàn)在我們知道了,網(wǎng)卡上需要配置好IP地址才可以工作。這時候又有朋友要問了,我的電腦接上網(wǎng)線或者手機(jī)連上路由器之后,沒有讓我配置IP地址也可以正常使用啊?這是因為由稱之為dhcp的協(xié)議自動幫我們配置了。當(dāng)電腦插上網(wǎng)線或者手機(jī)連入到WIFI操作系統(tǒng),網(wǎng)絡(luò)協(xié)議棧會自動向外發(fā)送一包DHCP請求,請求為其分配IP地址。路由器獲取到DHCP請求后,會為其分配一個IP地址,并通過DHCP回復(fù)報文發(fā)送回去。操作系統(tǒng)收到了DHCP回包后,將其分配的IP地址配置到網(wǎng)卡上。注意在一個局域網(wǎng)中IP地址也是唯一的,路由器不會分配重復(fù)的IP地址給不同的設(shè)備。
當(dāng)然你也可以手動把DHCP關(guān)掉,這樣你需要手動來配置網(wǎng)卡IP地址,但是你要保證你配置的IP地址不能與此網(wǎng)絡(luò)中的其他地址重復(fù),這樣網(wǎng)卡就配置好了IP地址。
我們上面提到,MAC地址是由操作系統(tǒng)來補(bǔ)齊的,那操作系統(tǒng)是如何知道對方的MAC地址的?實際上這一步是用arp協(xié)議來完成的。當(dāng)計算機(jī)A想向計算機(jī)B發(fā)送消息時,操作系統(tǒng)并不會立即發(fā)出,他會先發(fā)送一包arp廣播報文出去,問一下192.168.1.10的 MAC地址是多少,此時,網(wǎng)絡(luò)中的所有設(shè)備都收到了這一包請求報文。除了192.168.1.0以外的設(shè)備都會丟棄這包請求報文,只有192.168.1.10會回復(fù)自己的MAC地址是多少,計算機(jī)A收到了回復(fù),知道了計算機(jī)B的MAC地址,他首先會把計算機(jī)B的MAC地址緩存起來,以便下次使用。然后把這封信補(bǔ)全從網(wǎng)卡發(fā)送出去,交換機(jī)根據(jù)數(shù)據(jù)包中的目標(biāo)的MAC地址找到了計算機(jī)B所在的端口,從此端口發(fā)送出去,數(shù)據(jù)就被B收到了。