TCP/IP之IP協(xié)議相關技術

本篇繼續(xù)介紹IP協(xié)議相關的內(nèi)容,主要介紹IP的輔助技術,包括DNS、ARP、ICMP、ICMPv6、DHCP、NAT等。

DNS

  • DNS的產(chǎn)生:TCP/IP網(wǎng)絡中要求每一個互連的計算機都具有其唯一的IP地址,并基于這個IP地址進行通信,然而,我們平時需要訪問網(wǎng)站(比如谷歌)的時候,輸入的是類似于www.google.com的網(wǎng)址,而不是直接輸入一個IP地址(當然,你如果記得IP的話,也可以直接輸入IP)。DNS就是將網(wǎng)址轉(zhuǎn)換成具體的IP地址的。
    互聯(lián)網(wǎng)最初給每一臺計計算機添加一個叫主機識別碼的東西,即為每臺計算機賦以唯一的主機名,在通信時直接使用主機名稱而不需要輸入IP。為此,系統(tǒng)必須通過一個hosts的數(shù)據(jù)庫文件,自動將主機名轉(zhuǎn)成具體的IP地址。隨著網(wǎng)絡規(guī)模的不斷擴大,接入的計算機個數(shù)不斷增加,這種處理方式就變得不可行。在此背景下,就產(chǎn)生了一個可以有效管理主機名和IP地址之間對應關系的系統(tǒng),這就是DNS系統(tǒng)。在這個系統(tǒng)中,主機的管理機構可以對數(shù)據(jù)進行變更和設定。
主機名與IP地址之間的轉(zhuǎn)換
  • 域名:理解DNS規(guī)范,就必須了解什么是域名。域名是指為了識別主機名稱和組織機構名稱的一種具有分層的名稱。例如,kusa.ac,jp,kusa表示某大學的域名,ac表示高等教育的相關機構,最后的jp表示日本,在使用域名的時候,可以在每個主機名后面追加上組織機構的域名。DNS的分層結構如下圖所示。
域名的分層
  • 域名服務器:域名服務器是指管理域名的主機和相應的軟件,他可以管理所在分層的域的相關信息。各個域的分層上都設有各自的域名服務器。各層域名服務器都了解該層以下分層中所有域名服務器的IP地址,因此,他們從根域名服務器開始呈樹狀結構相互連接。所有域名服務器都了解根域名服務器的IP地址。所以若從根開始按照順序追蹤,可以訪問世界上所有域名服務器的地址。
域名服務器
  • DNS查詢:如下圖所示,解析器向域名服務器進行查詢,接收這個查詢請求的域名服務器首先會在自己的數(shù)據(jù)庫進行查詢,如果有該域名所對應的IP地址則返回,沒有則域名服務器再向上一層根域名服務器進行查詢。因此,如圖所示,從根開始對這棵樹按照順序進行遍歷,直到找到指定的域名服務器,并由這個域名服務器返回想要的數(shù)據(jù)。解析器和域名服務器會將最新了解到的信息暫時保存在緩存里面。
DNS查詢

ARP

在數(shù)據(jù)鏈路通信時,有必要了解買個IP地址對應的MAC地址。ARP就是解決地址問題的協(xié)議。以目標IP地址為線索,用來定位下一個應該接收數(shù)據(jù)分包的網(wǎng)絡設備對應的MAC地址。如果目標主機不再同一個鏈路上時,可以通過ARP查找下一跳路由器的MAC地址。ARP只適用于IPv4,IPv6中使用ICMPv6代替ARP發(fā)送鄰居探索消息。

  • ARP工作機制:ARP是借助ARP請求與ARP響應兩種類型的包確定MAC地址的。如下圖所示,主機A向主機B發(fā)送IP包,主機A為了獲得主機B的MAC地址,通過廣播發(fā)送一個ARP請求包,這個包中包含了想要了解其MAC地址的主機IP地址,ARP請求包會被同一鏈路上所有的主機或路由器進行解析。如果ARP請求包中的目標IP地址與自己的IP地址一致,那么這個節(jié)點就將自己的MAC地址塞入ARP響應包返回給主機A。
ARP工作機制
ARP包格式
  • RARP:是從ARP反過來,從MAC地址定位IP地址的一種協(xié)議。例如,將打印機服務器等小型嵌入式設備接入到網(wǎng)絡時用到。
RARP

ICMP

  • ICMP主要功能:確認IP包是否成功送達目標地址,通知在發(fā)送過程當中IP包被廢棄的具體原因,改善網(wǎng)絡設置等。在IP通信中,如果某個IP包因為某種原因未能到達目標地址,那么這個具體的原因?qū)⒂蒊CMP負責通知。ICMP的消息大致分為兩類:一類是通知出錯原因的錯誤消息,一類是用于診斷的查詢消息。
ICMP無法到達的消息
  • 主要的ICMP消息:
    • ICMP目標不可達消息:IP路由器無法將IP數(shù)據(jù)包發(fā)送給目標地址時,會給發(fā)送端主機返回一個目標不可達的ICMP消息,并在這個消息中顯示不可達的具體原因,包括主機不可達,MTU探索等。
  • ICMP重定向消息:如果路由器發(fā)現(xiàn)發(fā)送端主機使用了次優(yōu)的路徑發(fā)送數(shù)據(jù),那么它會返回一個ICMP重定向的消息給主機,這個消息中包含了最合適的路由信息和源數(shù)據(jù)。
  • ICMP超時消息:IP包中有一個TTL(生命周期),他的值隨著每經(jīng)過一次路由器就會減一,直到減到0時該IP包就會被丟棄,此時,IP路由器將會發(fā)生一個ICMP超時的消息給發(fā)送端主機,并通知該包已被丟棄。
  • ICMP回送消息:用于通信主機和路由器之間,判斷所發(fā)送的數(shù)據(jù)包是否已經(jīng)成功到達對端的一種消息,可以向?qū)Χ酥鳈C發(fā)送回送請求的消息,也可以接收對端主機發(fā)送回來的回送應答信息。網(wǎng)絡上的ping命令就是利用這個消息使實現(xiàn)的。
ICMP消息類型

-ICMPv6:在IPv6中,從IP地址定位MAC的協(xié)議從ARP換成ICMP的鄰居探索消息。

DHCP

DHCP是為了實現(xiàn)自動設置IP地址、統(tǒng)一管理ID地址分配的功能的。DHCP的工作機制如下圖所示。為了檢查所要分配的IP地址是否可用,DCHP服務器和DHCP客戶端必須具有以下功能:

  • DCHP服務器:在分配IP地址之前發(fā)送ICMP回送請求包,確認沒有返回應答;
  • DHCP客戶端:針對從DHCP那里獲得的IP地址發(fā)送ARP請求包,確認沒有返回應答。
DHCP工作機制

NAT

NAT是用于在本地網(wǎng)絡中使用私有地址,在連接互聯(lián)網(wǎng)時轉(zhuǎn)而使用全局IP地址的技術。除了轉(zhuǎn)換IP地址外,還出現(xiàn)了可以轉(zhuǎn)換TCP、UDP端口號的NAPT技術,由此可以實現(xiàn)用一個全局IP地址與多個主機的通信。NAT實際上是為正在面臨地址枯竭的IPv4而開發(fā)的技術。

NAT技術

IP隧道

一般情況下,緊接著IP首部的是TCP或者UDP的首部,然而,現(xiàn)在應用當中,會出現(xiàn)IP首部的后面還是IP首部或者IP首部的后面是IPv6的首部的情況,這種在網(wǎng)絡層的首部后面追加網(wǎng)絡層首部的通信方法就叫做IP隧道。比如:A網(wǎng)絡時IPv6,B網(wǎng)絡時IPV6,位于AB中間的C網(wǎng)絡是IPv4,此時,A與B無法進行直接通信,就必須采用IP隧道這種技術。

IP隧道

IP任播

想象以下,報警電話110與消防電話119等系統(tǒng),當人們撥打110或者119時,其接收電話并不只有一個,而是可以撥打到一個區(qū)域管轄范圍內(nèi)的所有公安或者消防部門。這種機制的實現(xiàn),在互聯(lián)網(wǎng)上就是IP任播。
IP任播是指為那些提供同一種服務的服務器配置同一個IP地址,并與最近的服務器進行通信的一種方法。

IP任播
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容

  • 前言 寫這篇文章的緣由是客戶提出的一個問題:客戶使用公司的Wi-Fi產(chǎn)品的App,有兩個設備出現(xiàn)了問題,點擊App...
    Noskthing閱讀 2,982評論 2 23
  • 1.這篇文章不是本人原創(chuàng)的,只是個人為了對這部分知識做一個整理和系統(tǒng)的輸出而編輯成的,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,129評論 6 174
  • 個人認為,Goodboy1881先生的TCP /IP 協(xié)議詳解學習博客系列博客是一部非常精彩的學習筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,090評論 0 8
  • IP旨在讓最終目標主機收到數(shù)據(jù)包,但是在這一過程中僅僅有IP時無法實現(xiàn)通信的。必須還要又能夠解析主機名稱和MACd...
    洛洛愛吃肉閱讀 515評論 1 2
  • 協(xié)議基礎 協(xié)議就是計算機之間通過網(wǎng)絡實現(xiàn)通信時實現(xiàn)所達成的一種“約定”,這種約定使得那些由不同廠商的設備,不同的C...
    d9fc24a0c9a9閱讀 2,396評論 0 6