TCP/IP--IP層轉(zhuǎn)發(fā)分組的流程

本篇結(jié)構(gòu):

  • 前言
  • IP路由選擇
  • 補充幾個概念
  • 總結(jié)

一瓮孙、前言

接著上一篇TCP/IP--網(wǎng)際協(xié)議IP,這篇繼續(xù)網(wǎng)際協(xié)議IP的內(nèi)容,在了解了IP協(xié)議的基礎(chǔ)上,繼續(xù)學(xué)習(xí)IP路由選擇琳状。

先看張圖,主機甲與主機乙分別在兩個不同的網(wǎng)段上,中間通過路由器進行連接。現(xiàn)在假設(shè)主機甲要跟主機乙進行通信轿偎,那么主機甲如何才能夠找到主機乙的位置呢?

二典鸡、IP路由選擇

假設(shè)現(xiàn)在主機甲的用戶利用Ping命令被廓,來確認主機乙的連通性問題。這個網(wǎng)絡(luò)架構(gòu)雖然比較簡單萝玷,但是其路由選擇過程的步驟則是一步不缺的嫁乘。主要通過如下步驟:

第一步:當用戶在主機甲上輸入PING 172.168.80.8之后昆婿,主機甲中有一個網(wǎng)際控制報文協(xié)議ICMP(下面會介紹)。這個協(xié)議將創(chuàng)建一個回應(yīng)請求數(shù)據(jù)包蜓斧,在它的數(shù)據(jù)域中只包含有字母仓蛆。

第二步:網(wǎng)際控制報文協(xié)議會將這個有效負荷(即剛創(chuàng)建的數(shù)據(jù)包)交給網(wǎng)際協(xié)議IP。然后這個網(wǎng)際協(xié)議也會創(chuàng)建一個數(shù)據(jù)包挎春。在這個網(wǎng)際協(xié)議IP創(chuàng)建的數(shù)據(jù)包中看疙, 所包含的內(nèi)容要比因特網(wǎng)控制報文協(xié)議所創(chuàng)建的數(shù)據(jù)包豐富的多。在這個包中包括主機甲的IP地址直奋、目的地主機已的IP地址以及值為01h的協(xié)議字段能庆。當數(shù)據(jù)包到達主機乙時,這些內(nèi)容就是告訴對方脚线,應(yīng)該將這個有效負荷交給網(wǎng)際控制報文協(xié)議來處理搁胆。

第三步:IP協(xié)議會判斷目的IP地址是屬于遠程網(wǎng)絡(luò),還是在本地網(wǎng)絡(luò)邮绿。由于根據(jù)IP地址規(guī)劃規(guī)則渠旁,主機甲與主機乙屬于不同的網(wǎng)絡(luò)。此時船逮,剛才網(wǎng)際協(xié)議IP所創(chuàng)建的數(shù)據(jù)包將會被發(fā)送到默認的網(wǎng)關(guān)中去顾腊。在主機甲的網(wǎng)絡(luò)屬性配置中,除了有自身的邏輯IP地址傻唾,還有默認的網(wǎng)關(guān)地址投慈。網(wǎng)關(guān)地址就是用來不同網(wǎng)絡(luò)之間的主機進行通信的一扇門。只有通過網(wǎng)關(guān)冠骄,主機甲的數(shù)據(jù)包才能夠被發(fā)送到不同網(wǎng)絡(luò)的主機乙中伪煤。

第四步:確認路由器相應(yīng)接口的MAC地址。假設(shè)主機甲(IP地址為172.168.60.6)的默認網(wǎng)關(guān)被配置為172.168.60.1凛辣。若主機甲的數(shù)據(jù)包要發(fā)送到這個默認網(wǎng)關(guān)上抱既,則就必須知道其對應(yīng)的路由器接口的物理地址,即MAC地址扁誓。因為只有如此防泵,數(shù)據(jù)包才能夠被傳遞到更下一層的數(shù)據(jù)鏈路層并根據(jù)一定的規(guī)則生成幀。然后主機甲才能夠把數(shù)據(jù)包發(fā)送給172.168.60.0網(wǎng)絡(luò)連接的路由器接口蝗敢。在本地局域網(wǎng)上捷泞,主機只可以通過硬件地址來相互之間進行通信。所以當主機甲要把數(shù)據(jù)包發(fā)送給特定的網(wǎng)關(guān)時寿谴,必須要知道這個網(wǎng)關(guān)所對應(yīng)的MAC地址锁右。這一個過程是不可避免的。為了達到這個目的,主機甲首先會檢查自己的ARP緩存咏瑟,查看一個默認網(wǎng)關(guān)的IP地址是否已經(jīng)解析為對應(yīng)接口的硬件地址拂到。如果在ARP緩存表中已經(jīng)有對應(yīng)的記錄,表示已經(jīng)被成功解析码泞。此時兄旬,數(shù)據(jù)包將會被釋放并傳遞到數(shù)據(jù)鏈路層并生成幀。其中目的方的硬件地址也將同數(shù)據(jù)包一起下傳到數(shù)據(jù)鏈路層余寥。通常情況下领铐,在主機甲上,可以通過ARP命令來查看主機當前的IP地址與MAC地址的對應(yīng)表宋舷。

第五步:生成幀罐孝。當這個數(shù)據(jù)包和目的方的硬件地址被傳遞給數(shù)據(jù)鏈路層之后,局域網(wǎng)驅(qū)動器將用來提供媒體訪問服務(wù)肥缔,以通過以太網(wǎng)進行數(shù)據(jù)傳輸莲兢。一個數(shù)據(jù)幀即將產(chǎn)生,使用一些控制信息來封裝這個數(shù)據(jù)包续膳。在這個數(shù)據(jù)幀中會包含有目的方和源方的硬件地址改艇。以及以太網(wǎng)類型字段。這個以太網(wǎng)類型字段主要用來描述的是交付這個數(shù)據(jù)包到數(shù)據(jù)鏈路層的網(wǎng)絡(luò)層協(xié)議坟岔。在這個幀的結(jié)尾谒兄,是一種被稱作為幀校驗序列的字段,它是裝載循環(huán)冗余校驗計算值的區(qū)域社付。也就是說承疲,在這個幀中,主要包括目的MAC地址(對應(yīng)路由器接口的MAC地址)鸥咖、源MAC地址(主機甲的MAC地址)燕鸽、以太網(wǎng)類型字段、數(shù)據(jù)包啼辣、幀校驗序列五部分內(nèi)容啊研。注意,這里指的目的地址并不是主機乙的地址鸥拧,而是里主機甲最近的默認網(wǎng)關(guān)地址党远。在第一次通信時,主機甲并不知道主機乙的MAC地址富弦。一旦完成幀的封裝沟娱,則這個幀將會被交付到物理層。

上面五個步驟主要都是在主機甲上完成腕柜。這五個步驟執(zhí)行完畢之后济似,IP路由選擇過過程的前期工作就算完成了柳爽。下面才是網(wǎng)際協(xié)議IP路由選擇的步驟。

第六步:在主機甲所在的沖突域中的每臺網(wǎng)絡(luò)設(shè)備都將接收這些位并重新合并成數(shù)據(jù)幀碱屁。接收完畢后,他們會運行CRC過程并核對保存在幀校驗序列字段中的內(nèi)容蛾找。如果這兩個值不匹配的話娩脾,則這個幀將會被丟棄。如果兩個值相同(主機甲的默認網(wǎng)關(guān)打毛,即緊鄰主機甲的路由器接口)柿赊,則網(wǎng)絡(luò)設(shè)備會接收這個幀,并核查目的方的硬件地址幻枉,檢查他們是否也匹配碰声。如果目的方的硬件地址也是匹配的,那么路由器將會查看這個幀的以太網(wǎng)類型字段熬甫,以了解在網(wǎng)絡(luò)層上采用了什么協(xié)議胰挑,然后路由器就會抽出幀中的數(shù)據(jù)包,把其余部分內(nèi)容丟棄椿肩。然后把抽出來的數(shù)據(jù)包傳送給以太網(wǎng)類型字段中列出的上層協(xié)議瞻颂,如網(wǎng)際協(xié)議IP等等。

第七步:判斷路由表項目郑象。網(wǎng)際協(xié)議IP會接收這個數(shù)據(jù)包贡这,并檢查目的IP地址。在這個案例中厂榛,由于數(shù)據(jù)包中的目的地址與接收路由器所配置的任何地址都不相匹配盖矫。此時,路由器就會在自己的路由表在路由表中击奶,對每一條路由最主要的是以下兩個信息:(目的網(wǎng)絡(luò)地址辈双,下一跳地址))中,查看目的IP的網(wǎng)絡(luò)地址柜砾。在這個案例中辐马,由于路由器同時連接著172.16.80.0的網(wǎng)絡(luò)。所以在這個路由器的路由表中局义,有相關(guān)的紀錄喜爷。若沒有記錄的話,則這個數(shù)據(jù)包會被直接丟棄萄唇。若路由器丟棄數(shù)據(jù)包的話檩帐,則會發(fā)送一個“目標地址不可達”的錯誤信息給主機甲。

第八步:路由器轉(zhuǎn)發(fā)數(shù)據(jù)包另萤。如果路由器的確在他的路由表中找到了相應(yīng)網(wǎng)絡(luò)的記錄湃密,則數(shù)據(jù)包就會被轉(zhuǎn)發(fā)到輸出接口诅挑。在本例中,就是主機乙所連接的接口泛源。路由器會將這個數(shù)據(jù)包交換到對應(yīng)接口的緩沖區(qū)內(nèi)拔妥。

第九步:緩沖區(qū)中數(shù)據(jù)的處理。路由器對應(yīng)接口的緩沖區(qū)需要了解目的方主機的硬件地址达箍。因為這個數(shù)據(jù)包中已經(jīng)有目的方的IP地址没龙,所以,路由器會先檢查ARP緩存表缎玫。如果主機甲的硬件地址已經(jīng)被解析并保存在路由器的ARP緩沖中硬纤,則這個數(shù)據(jù)包和這個硬件地址將被傳遞到數(shù)據(jù)鏈路層以便重新生成幀。通常情況下赃磨,若路由器以前跟主機乙通信過的話筝家,則這個IP地址與MAC地址的對應(yīng)記錄將會在路由器ARP緩沖表中。若緩沖過期后邻辉,則這個對應(yīng)的記錄將會被刪除溪王。如果在路由器的ARP緩沖表中沒有相關(guān)記錄的話,則路由器接口會在其連接的網(wǎng)絡(luò)內(nèi)部值骇,發(fā)送一個ARP請求在扰。這個ARP請求就像一個廣播,我現(xiàn)在需要知道IP地址為172.12.80.8的MAC地址雷客。此時芒珠。其他網(wǎng)絡(luò)設(shè)備發(fā)現(xiàn)自己不是這個IP地址,就會拋棄這個包搅裙。而主機乙發(fā)現(xiàn)有人在問自己的MAC地址皱卓,就會進行響應(yīng)。告訴路由器部逮,我的IP地址就是這個娜汁,我的MAC地址是多少。路由器知道目的主機乙的MAC地址之后兄朋,就會把數(shù)據(jù)包連同目的方的MAC地址傳遞到下一層的數(shù)據(jù)鏈路中掐禁。

第十步:路由器會重復(fù)上面的第五步操作,生成數(shù)據(jù)幀颅和。并傳送到物理層傅事,以一次一位的方式再發(fā)送到物理媒體上。在網(wǎng)絡(luò)中進行傳輸峡扩。

在路由器上的工作也完成蹭越。通過以上的分析,我們可以看到教届,路由器的作用主要就是進行數(shù)據(jù)交換响鹃。把其收到的數(shù)據(jù)包根據(jù)一定的規(guī)則轉(zhuǎn)發(fā)到另一個可達的接口上驾霜。路由器就好像是一個十字路口,各個數(shù)據(jù)包都根據(jù)自己所需要到達的目的地买置,現(xiàn)在合適的出口粪糙。

第十一步:主機乙會接收到這個數(shù)據(jù)幀并運行CRC過程。如果運算結(jié)果與幀校驗序列中字段的內(nèi)容相同忿项,則這個幀中目的方的MAC地址將會被讀取蓉冈。主機乙會判斷這個MAC地址是否跟自己的MAC地址相同。若相同的話倦卖,則會抽取其中的數(shù)據(jù)包,并根據(jù)以太網(wǎng)字段類型中指定的協(xié)議椿争,把數(shù)據(jù)包傳遞給相應(yīng)的協(xié)議處理怕膛。由于這個案例中,數(shù)據(jù)包中是一個回應(yīng)請求秦踪。主機乙就會把這個數(shù)據(jù)包交給ICMP協(xié)議處理褐捻。ICMP協(xié)議會應(yīng)答這個請求,同時把這個數(shù)據(jù)包丟棄并迅速生成一個新的有效負荷來作為回應(yīng)應(yīng)答椅邓。然后主機乙會利用同樣的過程把數(shù)據(jù)包以及目的MAC地址(路由器對應(yīng)接口的物理地址)傳遞到下一層柠逞,讓其生成幀。在數(shù)據(jù)幀上景馁,會帶有目的MAC地址板壮、源MAC地址、數(shù)據(jù)包合住、以太網(wǎng)字段類型绰精、幀校驗序列字段等內(nèi)容發(fā)送到下一層。然后再一位位的傳送到物理媒體透葛。

第十二步:路由器再重復(fù)第六步到第十步的過程笨使,把數(shù)據(jù)包從一個接口交換傳遞到另一個接口中。然后主機甲就收到一個回應(yīng)信息僚害,表示到主機乙的道路是通的硫椰。

三、補充幾個概念

3.1萨蚕、靜態(tài)路由

是指由網(wǎng)絡(luò)管理員手工配置的路由信息靶草。當網(wǎng)絡(luò)的拓撲結(jié)構(gòu)或鏈路的狀態(tài)發(fā)生變化時,網(wǎng)絡(luò)管理員需要手工去修改路由表中相關(guān)的靜態(tài)路由信息岳遥。靜態(tài)路由信息在缺省情況下是私有的爱致,不會傳遞給其他的路由器。當然寒随,網(wǎng)管員也可以通過對路由器進行設(shè)置使之成為共享的糠悯。靜態(tài)路由一般適用于比較簡單的網(wǎng)絡(luò)環(huán)境帮坚,在這樣的環(huán)境中,網(wǎng)絡(luò)管理員易于清楚地了解網(wǎng)絡(luò)的拓撲結(jié)構(gòu)互艾,便于設(shè)置正確的路由信息试和。

3.2、動態(tài)路由

是指路由器能夠自動地建立自己的路由表纫普,并且能夠根據(jù)實際實際情況的變化適時地進行調(diào)整阅悍。動態(tài)路由機制的運作依賴路由器的兩個基本功能:對路由表的維護;路由器之間適時的路由信息交換昨稼。

3.3节视、特定主機路由

雖然因特網(wǎng)所有的分組轉(zhuǎn)發(fā)都是基于目的主機所在的網(wǎng)絡(luò),但在大多數(shù)情況下都允許有這樣的特例假栓,即對特定的目的主機指明的一個路由寻行。這種路由叫做特定主機路由。
采用特定主機路由的好處:
(1)可使網(wǎng)絡(luò)管理人員能夠更方便地控制網(wǎng)絡(luò)和測試網(wǎng)絡(luò)匾荆,同時也可在需要考慮某種安全問題時采用這種特定主機路由拌蜘。
(2)在對網(wǎng)絡(luò)的連接或路由表進行排錯時,指明到某一主機的特定路由就十分有用牙丽。
注:特定主機路由是要到某一臺機器的路由简卧。特定網(wǎng)絡(luò)路由是你到某一個子網(wǎng)的路由。特定主機路由也可視為特定網(wǎng)絡(luò)路由的一個特例烤芦,即Mask為255.255.255.255的特定網(wǎng)絡(luò)路由举娩。

3.4、默認路由

默認路由是一種特殊的靜態(tài)路由构罗,指的是當路由表中與包的目的地址之間沒有匹配的表項時路由器能夠做出的選擇晓铆。
如果沒有默認路由,那么目的地址在路由表中沒有匹配表項的包將被丟棄绰播。
默認路由在某些時候非常有效骄噪,當存在末梢網(wǎng)絡(luò)時,默認路由會大大簡化路由器的配置蠢箩,減輕管理員的工作負擔(dān)链蕊,提高網(wǎng)絡(luò)性能。
主機里的默認路由通常被稱作默認網(wǎng)關(guān)谬泌,默認網(wǎng)關(guān)通常會是一個有過濾功能的設(shè)備滔韵,如防火墻和代理服務(wù)器。
默認路由和靜態(tài)路由的命令格式一樣掌实,只是把目的地ip和子網(wǎng)掩碼改成0.0.0.0和0.0.0.0陪蜻,默認路由只能存在末梢網(wǎng)絡(luò)中。

四贱鼻、總結(jié)

根據(jù)上述案例宴卖,簡單總結(jié)一下IP路由分組轉(zhuǎn)發(fā)算法

  • (1)從數(shù)據(jù)報的首部提取目的主機的IP地址D滋将,得出目的網(wǎng)絡(luò)地址為N。
  • (2)若N就是與此路由器直接相連的某個網(wǎng)絡(luò)地址症昏,則進行直接交付随闽,不需要再經(jīng)過其他的路由器,直接把數(shù)據(jù)報交付給目的主機(這里包括把目的主機地址D轉(zhuǎn)換為具體的硬件地址肝谭,把數(shù)據(jù)報封裝為MAC幀掘宪,再發(fā)送此幀);否則就要執(zhí)行(3)進行間接交付攘烛。
  • (3)若路由表中有目的地址為D的特定主機路由魏滚,則把數(shù)據(jù)報傳送給路由表中所指明的下一跳路由器,否則執(zhí)行(4)坟漱。
  • (4)若路由表中有到達網(wǎng)絡(luò)N的路由鼠次,則把數(shù)據(jù)報傳送給路由表中所指明的下一跳路由器,否則執(zhí)行(5)靖秩。
  • (5)若路由表中有一個默認路由须眷,則把數(shù)據(jù)報傳送給路由表中所指明的下一跳路由器竖瘾,否則執(zhí)行(6)沟突。
  • (6)報告轉(zhuǎn)發(fā)分組出錯。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末捕传,一起剝皮案震驚了整個濱河市惠拭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌庸论,老刑警劉巖职辅,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異聂示,居然都是意外死亡域携,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門鱼喉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來秀鞭,“玉大人,你說我怎么就攤上這事扛禽》姹撸” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵编曼,是天一觀的道長豆巨。 經(jīng)常有香客問我,道長掐场,這世上最難降的妖魔是什么往扔? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任贩猎,我火速辦了婚禮,結(jié)果婚禮上瓤球,老公的妹妹穿的比我還像新娘融欧。我一直安慰自己,他們只是感情好卦羡,可當我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布噪馏。 她就那樣靜靜地躺著,像睡著了一般绿饵。 火紅的嫁衣襯著肌膚如雪欠肾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天拟赊,我揣著相機與錄音刺桃,去河邊找鬼。 笑死吸祟,一個胖子當著我的面吹牛瑟慈,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播屋匕,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼葛碧,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了过吻?” 一聲冷哼從身側(cè)響起进泼,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎纤虽,沒想到半個月后乳绕,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡逼纸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年洋措,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杰刽。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡菠发,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出专缠,到底是詐尸還是另有隱情雷酪,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布涝婉,位于F島的核電站哥力,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜吩跋,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一寞射、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧锌钮,春花似錦桥温、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至氛谜,卻和暖如春掏觉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背值漫。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工澳腹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人杨何。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓酱塔,卻偏偏與公主長得像,于是被迫代替她去往敵國和親危虱。 傳聞我的和親對象是個殘疾皇子羊娃,可洞房花燭夜當晚...
    茶點故事閱讀 42,925評論 2 344

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