TCP/IP筆記(五)IP協(xié)議相關(guān)技術(shù)

IP旨在讓最終目標(biāo)主機收到數(shù)據(jù)包,但是在這一過程中僅僅有IP時無法實現(xiàn)通信的。必須還要又能夠解析主機名稱和MACdivide功能,以技術(shù)包在發(fā)送過程中異常情況處理的功能。
這篇主要介紹下DNS、ARP、ICMP等協(xié)議

DNS

TCP/IP網(wǎng)絡(luò)中要求每一個互連的計算機都具有其唯一的IP地址,并基于這個IP地址進(jìn)行通信。但是IP地址太長了,不好記。

人們希望主機有自己自己的名字,這個名字是唯一的,而且容易記住。于是,誕生了主機名“域名”的概念板鬓。域名是一種為了識別主機名稱和機構(gòu)名的具有分層的名稱,比如在域名 neu.edu.cn中探遵,neu是主機名,edu 和 cn 是不同層次下的機構(gòu)名。

為了實現(xiàn)這樣的功能,主機往往會利用一個叫做hosts的數(shù)據(jù)庫文件

hosts.png

但是隨著網(wǎng)絡(luò)規(guī)模的不斷擴(kuò)大,接入計算機的個數(shù)不斷增加,這種集中在本地電腦管理的方式就不可取了揽咕。

于是出現(xiàn)了DNS,當(dāng)我們輸入主機名(域名)時,DNS會先在互聯(lián)網(wǎng)上先自動檢索那個注冊了主機名和IP地址的數(shù)據(jù)庫,并迅速定位到對應(yīng)的IP地址蛹头。

域名和 IP 地址都可以唯一對應(yīng)一臺主機知染,DNS 協(xié)議的作用就是將自身具有意義的域名轉(zhuǎn)換成不容易記住的 IP 地址辫诅。

![Uploading 屏幕快照 2017-03-16 上午9.47.03_768491.png . . .]

域名是分層的涉枫,每層都有自己的 DNS 服務(wù)器用于處理 DNS 解析的請求衬廷。這樣的好處在于每層的服務(wù)器不用關(guān)注過多的信息救鲤,它只要知道自己這一層下的域名服務(wù)器信息即可稀颁。以解析域名: www.abc.com為例:

解析域名.png

根服務(wù)器其實并不知道 www.abc.com 的 IP 地址秃踩,但是它知道 abc.com 域名服務(wù)器的地址,所以它把這條查詢請求轉(zhuǎn)發(fā)給 abc.com 域名服務(wù)器。DNS請求被逐層下發(fā)朽们,直到找到對應(yīng)的 IP 地址為止啤誊。
解析器和域名服務(wù)器將最新了解到的信息暫時保存在緩存中醬紫可以減少每次查詢時的性能消耗。

DNS就如同互聯(lián)網(wǎng)中的分布式數(shù)據(jù)庫

ARP

只要確定了IP地址,就可以向這個目標(biāo)地址發(fā)送IP數(shù)據(jù)報。然而在底層數(shù)據(jù)鏈路層,進(jìn)行實際通信時,卻需要知道每個IP地址所對應(yīng)的MAC地址

ARP 協(xié)議(Address Resolution Protocol)用于通過目標(biāo) IP 地址痒给,定位下一個接收數(shù)據(jù)包的網(wǎng)絡(luò)設(shè)備的 MAC 地址。如果目標(biāo)主機處在同一個數(shù)據(jù)鏈路上母怜,那么可以直接得到目標(biāo)主機的 MAC 地址币喧,否則會得到下一條路由器的 MAC 地址枉长。

ARP 協(xié)議的工作原理可以分為兩部分:ARP 請求和 ARP 響應(yīng)。 首先术唬,源主機會通過廣播發(fā)送一個 ARP 請求包:“我要與 IP 地址為 xxx 的主機通話塘淑,誰知道它的 MAC地址肖油?”。

數(shù)據(jù)鏈路上的所有主機都會收到這條消息并檢查自己的 IP 地址杂数,如果與 ARP 請求包中的 IP 地址一致,主機就會發(fā)送 ARP 響應(yīng)包:“我就是 IP 地址為 xxx 的主機诉探,我的 MAC 地址是:xxxx”。

下圖表示了 ARP 協(xié)議的工作機制:

屏幕快照 2017-03-14 下午2.55.11.png

在實際的使用過程中丁恭,每次往目標(biāo)主機發(fā)送數(shù)據(jù)都要使用 ARP 是很低效的庸毫,通常的做法是把獲取到的 MAC 地址緩存一段時間臀栈。一般來說刁俭,一旦源主機向目標(biāo)地址發(fā)送一個數(shù)據(jù)包第晰,接下來繼續(xù)發(fā)送多次的概率非常大突倍,因此這種緩存非常容易命中诵闭。

當(dāng)下一次發(fā)送 ARP 請求或超過一定時間后嚼鹉,緩存都會失效锚赤,這保證了即使 MAC 地址與 IP 地址的對應(yīng)關(guān)系發(fā)生了變化晰绎,數(shù)據(jù)包依然能夠被正確的發(fā)往目標(biāo)地址荞下。

IP地址和MAC地址缺一不可?

MAC 和 IP 地址雖然看上去功能類似(都是用于唯一區(qū)分主機)蚯窥,但是兩者缺一不可荷鼠。如果只有 IP 地址歼狼,雖然可以跳過 ARP,直接在數(shù)據(jù)鏈路上發(fā)一個廣播添瓷,但是這僅適用于通信雙方處于同一個數(shù)據(jù)鏈路下的情況限寞。如果雙方處于不同的數(shù)據(jù)鏈路,數(shù)據(jù)報無法穿透中間的路由器仰坦。

僅憑MAC地址,人們無法知道這臺機器所處的位置履植。如果全世界只用 MAC 地址,那么網(wǎng)橋就得向全世界發(fā)包,那么請參考交換機的自學(xué)過程悄晃,可以想象這個過程會帶來龐大的玫霎,不必要的流量,而且網(wǎng)橋要維護(hù)一張巨大的表格來維護(hù)所有學(xué)到的MAC地址,當(dāng)這些信超過網(wǎng)橋極限,就沒法工作了,也就無法通信了。

正因為 MAC 和 IP 地址缺一不可妈橄,所以才產(chǎn)生了 ARP 這樣的協(xié)議將兩者關(guān)聯(lián)起來庶近。

RARP

RARP(Reverse Address Resolution Protocol)是將ARP反過來,從MAC地址定位IP地址的一種協(xié)議。

代理ARP

通常ARP包會被路由器隔離,但是采用代理ARP的路由器可以將ARP請求轉(zhuǎn)發(fā)給鄰近的網(wǎng)段眷蚓。由此兩個以上網(wǎng)段的節(jié)點之間可以像在同一個網(wǎng)段中一樣進(jìn)行通信鼻种。
一般情況下有路由器連接多個網(wǎng)絡(luò)時,會在每個網(wǎng)段定義各自的子網(wǎng),從而進(jìn)行路由控制,但是對于那些不支持設(shè)定子網(wǎng)掩碼的老設(shè)備,不適用代理ARP,有時就無法更好的使用網(wǎng)絡(luò)。

ICMP

架構(gòu)IP網(wǎng)絡(luò)時需要特別注意兩點:確認(rèn)網(wǎng)絡(luò)是否正常工作,以及遇到異常時進(jìn)行問題診斷沙热。
ICMP正是提供這類功能的一種協(xié)議叉钥。
主要功能包括:確認(rèn)IP包是否成功送達(dá)目標(biāo)地址,通知在發(fā)送過程中IP包被廢棄的具體原因,改善網(wǎng)絡(luò)設(shè)置等。
ICMP的消息大致可以分為兩類:一類是通知出錯原因的錯誤消息,另一類是用于診斷的查詢消息篙贸。

主要消息類型

主要消息類型.png

DHCP(Dynamic Host Configuration Protocol)

逐一為每一臺主機設(shè)置IP地址會非常繁瑣的事情投队。特別是移動設(shè)備,每到一個新地方,就要重新設(shè)置IP地址
于是為了實現(xiàn)自動設(shè)置IP地址、統(tǒng)一管理IP地址分配,就產(chǎn)生了DHCP協(xié)議爵川。
有了DHCP,計算機只要連接到網(wǎng)絡(luò),就可以進(jìn)行TCP/IP通信敷鸦。

DHCP.png

DHCP工作機制

使用DHCP前,首先要假設(shè)一臺DHCP服務(wù)器。然后將DHCP所要分配的IP地址設(shè)置到服務(wù)器上。此外,還需要將相應(yīng)的子網(wǎng)掩碼扒披、路由控制信息以及DNS服務(wù)器的地址等設(shè)置到服務(wù)器上值依。

工作機制.png

為了檢查所要分配的IP地址以及已經(jīng)分配了的IP地址是否可用,DHCP服務(wù)器或DHCP客戶端必須具備以下功能:

  • DHCP服務(wù)器:
    在分配IP底之前發(fā)送ICMP回送請求包,確認(rèn)沒有返回應(yīng)答
  • DHCP客戶端:
    針對從DHCP哪里獲得的IP地址發(fā)送ARP請求包,確認(rèn)沒有返回應(yīng)答

在大規(guī)模組織機構(gòu)的網(wǎng)絡(luò)環(huán)境中,往往需要將DHCP統(tǒng)一管理

DHCP中繼代理.png

NAT

NAT (Network Address Translator) 是一種用于將局域網(wǎng)中的私有地址轉(zhuǎn)換成全局 IP 地址的技術(shù)。

在連接上無線路由器的時候碟案,如果檢查一下設(shè)備的 IP 地址鳞滨,也許你會發(fā)現(xiàn)是類似于 192.168.1.1 這樣的局域網(wǎng) IP 地址。那不同網(wǎng)段中蟆淀,IP 地址都是 192.168.1.1 的主機改如何通信呢拯啦?

局域網(wǎng)中 IP 地址為 10.0.0.10 的主機向全局 IP 地址 163.221.120.9 發(fā)送數(shù)據(jù)。NAT 路由器將數(shù)據(jù)包的源地址修改成自己的全局 IP 地址:202.244.174.37熔任。同理褒链,接收數(shù)據(jù)時,路由器把目標(biāo)地址 202.244.174.37 翻譯成內(nèi)網(wǎng)地址:10.0.0.10

下圖描繪了 NAT 的工作原理:

NAT 的工作原理.png

路由器只有一個對外的全局 IP 地址疑苔,如果有多個內(nèi)網(wǎng)主機都向外部通訊怎么辦呢甫匹?這時就要使用 NAPT 技術(shù),它和 NAT 從原理上類似惦费,但它可以轉(zhuǎn)換 TCP 和 UDP 端口號兵迅。

使用 NAPT 技術(shù)時,不同的內(nèi)網(wǎng) IP 被轉(zhuǎn)換成同一個公共 IP 地址薪贫,也就是路由器對外顯示的全局 IP 地址恍箭,但是被附加不同的端口號以示區(qū)分:

NAPT 工作原理.png

不管是 NAT 還是 NAPT,都需要路由器路由器內(nèi)部維護(hù)一張自動生成的地址轉(zhuǎn)換表瞧省。以 TCP 為例扯夭,建立 TCP 連接首次握手的 SYN 包發(fā)出時會生成這個表,關(guān)閉連接時會發(fā)出 FIN 包鞍匾,收到這個包的應(yīng)答時轉(zhuǎn)換表被刪除交洗。

IP隧道

在下圖所示的網(wǎng)絡(luò)環(huán)境中,網(wǎng)絡(luò)A、B使用IPv6,如果處于中間位置的網(wǎng)絡(luò)C支持使用IPv4的話,A與B之間就無法直接進(jìn)行通信橡淑。為了讓他們之間正常通信,這是必須得采用IP隧道的功能构拳。

舉個??.png

IP隧道中可以將那些從網(wǎng)絡(luò)A發(fā)過來的IPv6的包統(tǒng)和為一個數(shù)據(jù),再為之追加一個IPv4的首部以后轉(zhuǎn)發(fā)給網(wǎng)絡(luò)C。
一般情況下,緊接著IP首部的是TCP或UDP的首部梁棠。然而,現(xiàn)在的應(yīng)用中,"IP首部的后面還是IP首部"或者"IP首部的后面是IPv6的首部"等情況與日俱增置森。這種在網(wǎng)絡(luò)層的首部后面繼續(xù)追加網(wǎng)絡(luò)層首部 的通信方法就叫做"IP隧道"。

IP隧道.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末掰茶,一起剝皮案震驚了整個濱河市暇藏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌濒蒋,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異沪伙,居然都是意外死亡瓮顽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門围橡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來暖混,“玉大人,你說我怎么就攤上這事翁授〖鸩ィ” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵收擦,是天一觀的道長贮配。 經(jīng)常有香客問我,道長塞赂,這世上最難降的妖魔是什么泪勒? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮宴猾,結(jié)果婚禮上圆存,老公的妹妹穿的比我還像新娘。我一直安慰自己仇哆,他們只是感情好沦辙,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著讹剔,像睡著了一般怕轿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上辟拷,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天撞羽,我揣著相機與錄音,去河邊找鬼衫冻。 笑死诀紊,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的隅俘。 我是一名探鬼主播邻奠,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼为居!你這毒婦竟也來了碌宴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤蒙畴,失蹤者是張志新(化名)和其女友劉穎贰镣,沒想到半個月后呜象,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡碑隆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年恭陡,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片上煤。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡休玩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出劫狠,到底是詐尸還是另有隱情拴疤,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布独泞,位于F島的核電站呐矾,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏阐肤。R本人自食惡果不足惜凫佛,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望孕惜。 院中可真熱鬧愧薛,春花似錦、人聲如沸衫画。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽削罩。三九已至瞄勾,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間弥激,已是汗流浹背进陡。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留微服,地道東北人趾疚。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像以蕴,于是被迫代替她去往敵國和親糙麦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344

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

  • 個人認(rèn)為丛肮,Goodboy1881先生的TCP /IP 協(xié)議詳解學(xué)習(xí)博客系列博客是一部非常精彩的學(xué)習(xí)筆記赡磅,這雖然只是...
    貳零壹柒_fc10閱讀 5,051評論 0 8
  • 1.這篇文章不是本人原創(chuàng)的,只是個人為了對這部分知識做一個整理和系統(tǒng)的輸出而編輯成的宝与,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,037評論 6 174
  • 前言 寫這篇文章的緣由是客戶提出的一個問題:客戶使用公司的Wi-Fi產(chǎn)品的App焚廊,有兩個設(shè)備出現(xiàn)了問題冶匹,點擊App...
    Noskthing閱讀 2,942評論 2 23
  • 本篇繼續(xù)介紹IP協(xié)議相關(guān)的內(nèi)容,主要介紹IP的輔助技術(shù)节值,包括DNS徙硅、ARP榜聂、ICMP搞疗、ICMPv6、DHCP须肆、NA...
    我系哆啦閱讀 755評論 0 6
  • 地址解析協(xié)議ARP 物理這一級匿乃,主機和路由器是用物理地址來區(qū)別的。物理地址是一個本地地址豌汇,管轄范圍是本地網(wǎng)絡(luò)幢炸,所以...
    顧慎為閱讀 1,059評論 0 1