二、dns的工作原理
三、dns記錄和報文
dns是一種在請求客戶方和伺服器之間的網域名稱轉換器。由於我們平時都是使用網頁的**對**進行訪問,而不會記住**的ip位址。而且由於**的ip位址可能會隨時更換,使用者請求**服務的時候會很不方便。
但是在網際網路上的機器都只認ip位址,**他們不認識那可咋辦呀。這個時候dns就應運而生了。
dns是執行在不可靠傳輸的udp之上。
dns是有分層的dns伺服器實現的分布式資料庫。在第二大點中會說明。
dns使用53號埠。
我的理解是dns是協議上的協議,它是由其他協議使用的。也就是說http等協議都得使用它才可以得到主機位址。
dns可以提供主機別名(就是它有其他的名字也會找到同乙個ip位址)、郵件伺服器別名、負載分配(簡單來說就是乙個名字允許擁有多個ip),有種資料庫多對多的感覺。
dns在書中是有三個等級的分布式伺服器,包括:根dns伺服器、頂級域(dns)伺服器(英文縮寫:tld)、權威dns伺服器這三個,但是一般在我們本地也有乙個dns伺服器(一般每乙個isp都會有)。而我們通過**找ip的旅程就從這4個主角開始。
首先我們提交乙個http請求,由前面的文章可知,http中有乙個host的首部行,這個時候這些應用程式需要將**轉換為ip位址。他們將會呼叫dns客戶端。然後dns客戶端會向網路傳送dns查詢報文。
這時候報文首先會傳送到本地dns伺服器,本地dns伺服器會在自己的快取中查詢是否有對應的tld伺服器或者權威dns伺服器,有就轉而向對應伺服器傳送查詢報文,然後將最後的結果返回給dns客戶端。如果在本地dns伺服器快取中找不到對應的伺服器,則會向三個等級的伺服器依次請求。每一次請求乙個等級的伺服器都會將下一級的伺服器位址返回到本地dns伺服器中,然後再由本地dns伺服器傳送查詢報文到下一級伺服器上。這種模式被稱為迭代查詢。當然也有遞迴查詢,在主機到本地dns伺服器上的模式就是遞迴查詢。
dns快取的作用和之前的web快取的作用類似。在一段時間之後會丟棄快取資訊。具體的使用方法在上一段中已進行說明。
格式為:(name,value,type,ttl)
其中ttl是該記錄的生存時間,它決定了資源記錄應當從快取中刪除的時間。
記錄的type分為4個,a(name是dns伺服器主機名,而value是ip位址)、ns(name是網域名稱,value是dns伺服器主機名)、cname(name是別名,value是dns伺服器主機名)、mx(name是郵件伺服器的別名,value是dns郵件伺服器的主機名)
由第二點可以看出,除了type a外所有的value都是dns伺服器的主機名。而type a則包含了主機名和ip位址。所以擁有一條type a在每乙個特定主機名的權威dns伺服器中是必不可少的。而如果這條記錄記錄的不是該伺服器的本命dns伺服器,則會產生1條ns域記錄和一條a記錄。通過這兩條記錄找到對應的伺服器ip位址(目前我還不了解為什麼…難道是乙個確定域,乙個確定ip嗎?)
推薦閱讀dns報文詳解
向某些註冊登記機構註冊網域名稱,然後將你自己的基和輔助dns伺服器的ip位址提供給他們,然後該機構會將你的資訊儲存在一條ns記錄和a記錄並新增到dns資料庫中。如果有必要還需要再錄入一條mx記錄用於郵件伺服器。
計算機網路第二章 Web和HTTP 應用層
五 http報文格式 六 cookie 使用者與伺服器的互動 七 web快取 八 條件get方法 web在計算機中是一種應用程式。http是web這種應用在應用層的一種協議,該協議確定了資訊在兩台計算機間的規則。在web中遵循這個原則才可以與其他計算機間正常通訊。此時,我們可以想象web客戶端 ht...
計算機網路 應用層
運輸層為應用程序提供了端到端的通訊服務。但不同的網路應用程序之間,還需要有不同的通訊規則。因此在運輸層協議之上,還需要有應用層協議。應用程序之間的通訊必須遵守嚴格的規則。應用層的協議應當定義 1 網域名稱系統dns 網域名稱到ip位址的解析是由分布在網際網路上的許多網域名稱伺服器程式共同完成的。網域...
計算機網路 應用層
計算機網路分層 應用層是網路應用程式和及應用層協議存留的地方。應用層協議分布在多個端系統上,乙個端系統中的應用程式使用協議與另乙個端系統中的應用程式交換資訊的分組。該層資訊被稱為報文。常用的應用層協議有 http,smtp,ftp,dns 1.基本概念 執行在不同端系統的程式的通訊是通過程序完成的。...