DNS與ARP的關係與原理解析

DNS與ARP的關係與原理解析

“計算機之間進行通信的只靠IP地址不能完成嗎?”

在這裏插入圖片描述

01 前言


我們在上網查詢某一個網站的時候,比如谷歌搜索,一般都是輸入www .google.com進行查詢,但是實際上我們是需要得到它的IP地址纔可以與主機進行連接的。這個過程就得益於DNS域名解析了,通過域名與IP地址的一個對應關係就可以得到目標的IP地址,從而進行通信。但是有了IP地址還不行,還需要一個MAC地址纔可以完成通信,而要得到MAC地址也得益於ARP地址解析協議,整個過程都是大家的相互合作,接下來就說一下中間到底是怎麼工作的。

在這裏插入圖片描述

02 什麼是DNS


通常我們記住一個網站不會去記他的IP地址,因爲那樣太難記憶了。DNS就是域名解析系統,裏面有一個主機名與IP地址的相對應的數據庫。它的的作用就是把域名轉成IP地址,IP地址是網絡上唯一確定的主機名,用以主機的識別。那麼它是怎麼去解析我們的IP地址的呢?總的來說他有可能經歷以下的步驟:

  • 查找瀏覽器時候緩存了IP地址
  • 查找操作系統是否緩存了IP地址
  • 查找路由器是否緩存了IP地址
  • 查找服務運營商時候緩存IP地址
  • 查找跟域名服務器對應IP地址

因爲網絡資源比較寶貴,要是中途沒有通過一下緩存的手段,可能會造成網絡的阻塞或者網絡承受不起中間的龐大請求,所以就必須緩存下來。但是也不是一直都有緩存,過了一定的時間就會消失記錄,重新請求然後緩存。

如果瀏覽器和路由器都沒有,一般服務運營商就是中國電信或者中國移動,查找是否緩存了IP地址,如果最後還是沒有,就只能去根域名服務器查找了,這一次就一定可以找的到。當IP地址返回的時候,中間的過程會被瀏覽器,操作系統,運營商等緩存下來,那麼下次再進行查找的時候就不會繞這麼遠的路了。

在這裏插入圖片描述

03 什麼是域名


域名指的是爲了識別主機名稱和組織機構名稱的一種具有分層結構的名稱。——圖解TCP/IP

域名是有分層結構的,比如有一些域名的後綴是.com/.cn/.org等,都代表了不同的組織機構,也便於域名的管理。域名的分層有點類似於倒掛的樹形結構,最頂級就代表了根域名,下面就是二級域名、三級域名等。

在這裏插入圖片描述
圖片來源於網絡(侵刪)

通過上面這張圖可以清楚地看到,頂級域名有一個國家頂級域名,比如中國的是以.cn結尾,英國就以.uk結尾。下面我們可以看到一些教育網站都會以.edu結尾的,大學官網都會以這些結尾。

04 什麼是ARP


ARP是地址解析協議,上面我們知道,通過DNS域名系統可以找到對應主機的IP地址,但是有了IP地址還不夠,因爲在底層的數據鏈路層在進行實際通信的時候會找每一個IP地址對應的MAC地址。而從IP地址到MAC地址的時候就要依靠ARP協議。

工作機制

我們可以以主機A向主機B發送數據爲例子,看一下中間的過程是怎麼工作的。

在這裏插入圖片描述

主機A爲了獲取主機B的MAC地址,會先在當前的數據鏈路上廣播發送一個ARP請求包,裏面包含目標IP地址。因爲在同一個鏈路上面的主機都會接收到這個請求包,然後每一個主機就會根據IP地址與自己的IP地址相比較,如果與自己的匹配就會接收這個請求包,然後發送響應包,裏面就包含自己的MAC地址。

初此之外,ARP請求包裏面也含有主機A的MAC地址。當獲取了B的MAC地址後也會緩存一下,防止下一次的請求又要發送請求包,節省流量。這樣的MAC地址與IP地址相對應的表就是ARP表,MAC地址緩存也是有一定的時間的,超過時間之後就會吧內容清除,然後重新請求。

IP地址與MAC地址的關係

其實有一段時間我也一直不太明白爲什麼有了IP後還要MAC來通信呢?這不是多此一舉嗎?

首先我們要明白一個很重要的區別,IP地址是會變的,一旦你關機重啓之後IP就可能會不一樣了,但是MAC地址就不一樣,永遠都是一樣的不會改變。相當於我們的身份證號碼一樣,但是你搬家之後的住址就可能會改變了。

網絡通信很大一部分都是不在同一個網絡上的,所以數據會經過很多路由器纔可以找到你的主機。比如我們網購東西寫的地址就是IP地址,快遞的分發機制我們都知道,通過省/市/區一層層分發下來,最終就會找到你的位置。但是除了這個位置還不行,你要知道你的名字是啥纔會準確分到你的手上,這就是MAC地址的作用。

在這裏插入圖片描述

RARP

這個其實就是與ARP相反,作用是把MAC地址對應的IP地址找出來。那麼這種協議有什麼用呢?我們知道DHCP的作用就是動態分配一個IP地址給當前的主機,通過電腦我們可以自己設置,如果不設置就是由DHCP來給你分配一個IP地址。比如我們打印機聯網的時候就會用到這個協議,當我們插上電源的時候,就會發送一條“我的MAC地址是xxx,我對應的IP地址是啥?”的請求信息。

那麼對應的RARP服務器就會在上面註冊你的MAC地址然後分配一個IP地址給你。

在這裏插入圖片描述

05 小結


通過上面的解析,我們知道了DNS域名解析系統與IP地址的關係,通過IP地址我們可以利用ARP地址解析協議找到MAC地址。通過IP地址與MAC地址的配合我們就會準確地與目標主機進行通信。這裏我們知道ARP就是一個廣播的功能,廣播的話我們就會用到UDP協議(TCP不支持廣播)了,其實各種協議之間也是有一定的聯繫的。

我們也知道域名之間的層級結構,由頂級域名統一分配,有一定的管理結構,而且域名我們也一般不能隨便申請,比如個人就不能申請教育類或者政府類的域名。

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章