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