網(wǎng)絡(luò)--TCP/IP(三)IP協(xié)議相關(guān)技術(shù)

這篇文章我們簡要介紹IP協(xié)議相關(guān)技術(shù),下篇文章我們就會開始介紹這一系列教程的重點--傳輸層與TCP協(xié)議。
這篇文章我們會了解到DNS、ARP、NAT協(xié)議,這些協(xié)議雖然與TCP沒有直接關(guān)聯(lián),但理解他們有助于鞏固基礎(chǔ)知識,更好的理解網(wǎng)絡(luò)工作的原理.

一、 DNS解析

  1. 域名
    IP地址是用于識別通信雙方的地址,但它是一串長數(shù)字,不方便記憶,人們希望主機有自己的名字,這個名字是唯一的,并且是容易記住的。于是,誕生了“域名”的概念。域名是一種為了識別主機名稱和機構(gòu)名稱的具有分層的名稱,比如neu.edu.cn中,neu是主機名,edu是不同層次下的機構(gòu)名。

  2. DNS解析
    域名和IP地址都可以唯一對應(yīng)一臺主機,DNS協(xié)議的作用就是將自身具有意義的域名轉(zhuǎn)換為不容易記住的IP地址
    域名是分層的,每一層都有自己的DNS服務(wù)器,用于處理DNS解析的請求。這樣的好處在于每層的服務(wù)器不用關(guān)注過多的信息,它只要知道自己這一層下的域名服務(wù)器信息即可。以解析www.ietf.org為例:

DNS解析過程

根域名服務(wù)器其實并不知道www.ietf.org的IP地址,但是它知道ietf.org的域名服務(wù)器的地址,所以它把這條查詢請求轉(zhuǎn)發(fā)給ietf.org的域名服務(wù)器。DNS被逐層下發(fā),直到找到對應(yīng)的IP地址為止。

二、 ARP協(xié)議(地址解析協(xié)議)

在通過以太網(wǎng)發(fā)送IP數(shù)據(jù)包時,需要先封裝第三層IP首部(里邊包含目標IP地址)、第二層以太網(wǎng)幀首部(里邊包含目標MAC地址),但由于發(fā)送時只知道目標IP地址,不知道其MAC地址,又不能跨第二、三層,所以需要使用地址解析協(xié)議。ARP協(xié)議只使用于局域網(wǎng)中。

  1. ARP(Address Resolution Protocol)用于根據(jù)目標IP地址,定位下一個接收數(shù)據(jù)包的網(wǎng)絡(luò)設(shè)備的MAC地址。結(jié)果是如果目標主機處在同一個數(shù)據(jù)鏈路上,可以直接得到目標主機的MAC地址,否則會得到下一個路由器的MAC地址。
  2. ARP協(xié)議的工作原理可以分為兩部分ARP請求和ARP響應(yīng)。
    首先源主機會通過廣播發(fā)送一個ARP請求包,“我要與目標IP地址進行通信,誰知道它的MAC地址”。
    數(shù)據(jù)鏈路上的所有主機都會收到這個消息并檢查自己的IP地址,如果與ARP請求中的IP地址一致,就會發(fā)送ARP響應(yīng)包,“我就是,我的MAC地址是xxxx...”。
    下圖描述了ARP協(xié)議的工作機制:
ARP工作機制
  1. 在實際使用過程中,每次向目標主機發(fā)送數(shù)據(jù)都使用ARP是很低效的,通常的做法是把獲取到的MAC地址緩存一段時間。一般來說,一旦源主機向目標地址發(fā)送一個數(shù)據(jù)包,接下來多次發(fā)送的概率非常大,所以這種緩存命中率很高。
    當下一次發(fā)送ARP請求或超過緩存時間以后,緩存都會失效,這保證了即使目標IP地址與MAC地址對應(yīng)關(guān)系即使發(fā)生了改變,數(shù)據(jù)包扔能被正確的發(fā)送到目標地址。
  2. IP地址負責標記發(fā)送方和接收方,而MAC地址負責傳輸過程中的分段傳送,所以二者缺一不可。

三、NAT和NAPT技術(shù)

1. NAT(Network Address Translator)

NAT是一種將局域網(wǎng)中的私有IP地址轉(zhuǎn)換為全局IP地址的技術(shù)。
在連接上路由器的時候,如果檢查一下設(shè)備的IP地址,會發(fā)現(xiàn)是類似于192.168.1.1這樣的IP地址。那不同網(wǎng)段中,IP地址都是192.168.1.1的主機該如何通信呢?
下圖描述了NAT的工作原理:

NAT工作原理

局域網(wǎng)中IP地址為10.0.0.10的主機向全局IP地址為163.221.120.9的主機發(fā)送數(shù)據(jù)。NAT路由器將數(shù)據(jù)包IP首部中的源地址修改為自己的全局IP地址。同理,接收數(shù)據(jù)時,把目標地址202.224.174.37翻譯為私有IP地址10.0.0.10。

2. NAPT

路由器只有一個對外的全局IP地址,如果有多個內(nèi)網(wǎng)主機都需要和外部通信怎么區(qū)分它們呢?這時就要用到NAPT技術(shù)了,它和NAT原理上類似,但它可以轉(zhuǎn)換TCP和UDP端口號。
在使用NAPT技術(shù)是,不同的內(nèi)網(wǎng)私有IP被轉(zhuǎn)換為相同的全局IP地址,也就是路由器對外顯示的全局IP地址,但是被附加不同的端口號加以區(qū)分:

NAPT工作原理

不管是NAT還是NAPT技術(shù),都需要路由器內(nèi)部維護一張自動生成的地址轉(zhuǎn)換表。以TCP為例,建立TCP連接首次握手的SYN包發(fā)出時會生成這個表,關(guān)閉連接時會發(fā)出FIN包,收到這個包應(yīng)答時,轉(zhuǎn)換表會被刪除。
具體的TCP和三次握手我們會在下一篇文章中具體講解。

參考:
TCP/IP(三):IP協(xié)議相關(guān)技術(shù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容