理解IP路由,是理解IP網絡的關鍵,不了解路由,就無法了解IP網絡的本質。這裡我們使用類比的方法為初學者介紹一些關於IP路由的基本概念,希望能幫助初學者更好的理解IP網絡。我個人認為現實生活中的郵政系統與由IP構建的網絡系統最為類似,因此如果你了解郵政系統,那麼理解IP的原理也不會太難。
首先,請問大家:我們寫完信以後接下來需要做什麼事情呢?對,是把信裝進信封,然後在信封上面填寫收件人的郵政編碼和地址,當然還有寄信人的郵政編碼和地址(但這不是必須的)。IP 的情況也是一樣的,在IP數據包的頭部,會由操作系統填寫目的IP地址(收件人)和源IP地址(發件人)。因此IP包頭就是我們的信封,IP包內部的數據就是我們寫在信上面的內容或者叫信息。
信封填寫好以後,接下來就是找一個距離發件人最近的郵筒投遞我們的信件,那麼這個郵筒就相當於我們平時經常提到的網關。你可以把它理解成每家每戶上網用到的那個小路由器。當然也有一些用戶使用光纖寬帶上網,那麼可以理解成他直接把信件投遞給本地郵局了。
隨後,郵筒會把信件投遞到管理它的那個郵局(實際上是由郵遞員完成的)。然後郵政系統會盡最大努力將信件送給信封上指定的收件人。注意,我們這裡說的是盡最大努力,因為郵政系統在默認情況下是不會保證普通信件能保證送達。因為很多時候我們的信件會丟失。比如:投遞過程中,郵件丟失了、被人誤領了…等等。IP也是一樣,數據包發出去以後,網絡系統是無法保證這個數據包一定能安全送達,系統只是盡力在做。
下面我們假設有一封從廣州的路人乙寄送給北京路人甲的信件,然後我們來看看這個系統具體是如何進行信件的投遞的。
1、廣州郵局先將郵件分類,即按照信封上收件人的郵政編碼將信件分類;
2、廣州郵局會按時將北京方向(注意:北京方向包括了去長沙、武漢的信件)的信件取走,交給一輛開往長沙(假設跨省信件只在省會間傳遞)的郵政汽車;
3、信件到達長沙後,長沙郵政局將把這些信件中省內的信件留下,剩下的信件則交給一輛開往武漢的郵政汽車;
4、如此繼續下去,汽車載著北京的郵件經過武漢、鄭州,最後才到達北京的郵政局;
5、北京郵政收到這批信件後,將留下目的地為北京的郵件,並根據信封上的收件人信息,安排郵遞員將信件最終送達收件人。
IP的情況也類似,讓我們按照上面的步驟走一遍。
1、廣州路由器在接收到IP數據包以後,先是查詢路由表;
2、廣州路由器將所有北京方向的數據包發送給長沙的路由器;
3、長沙路由器收到數據包以後,繼續查詢路由表,本省的從去往地市的線路上發走,北京方向的從去往武漢的線路上發走;
4、如此繼續下去,武漢發給鄭州,鄭州發給北京;
5、最後北京的路由器收到了這個IP數據包,在查詢過路由表後,發現這是發送給本地網絡的數據包,於是繼續查詢MAC地址表,並通過MAC地址將數據包發送給最終的收件人。
當然收件人可能會有回信,也就是回包。這很好辦,無非就是上述過程的重復,而僅僅只是將收件人與發件人的信息對調了一下。至此,郵件的投遞結束,IP包的投遞也結束,兩者是多麼的相似呀。也許大家已經發現,以上IP轉發的過程中有一個核心的操作就是“查路由表”。路由表是什麼?在設備中啟什麼作用?請繼續往下看…
路由這個詞是英文 Route 的音譯,做名詞的時候表示“路線”“航線”等意思…做動詞的時候表示“確定路線、選路”等含義。簡單來說可以把路由理解成指示路徑的指示牌,而路由表則是指示牌的集合,通過查詢路由表來決定數據包的走向。
以陸路交通系統為例,從湖南出發,往東則是江西、往南則是廣東、往西則是貴州,往北則是湖北。也就是說,若要從湖南去北京,則必須先從北站出發到達湖北,去上海則必須先從東站出發到達江西…而路由表則是用來描述這些信息的一個集合,我們根據以上信息構建的湖南省路由表如下:
目的地 下一站 車站
北京 湖北南站 北站
上海 江西西站 東站
香港 廣東北站 南站
雲南 貴州東站 西站
相應的其他所有的省都會有一張類似的,但僅屬於自己的路由表,也就是說湖南的表只能在湖南用,湖北的表的只能在湖北用。比如:從湖南去北京,下一站是湖北,而從湖北去北京,下一站則是河南了…
現在讓我們來類比一下:每個省代表網絡中的一台路由器,每個省的車站則是路由器上的接口,連接各省之間的高速公路或者鐵路就是路由器之間的網線…一個龐大的網絡是不是就這樣誕生了…然後每台路由器都維護著自己的一張路由表,當數據進入路由器後,只需簡單的查表操作便能指導數據的轉發了。
實戰練習1:完成廣東、湖南、湖北三省的路由表,要求數據能從廣東發送到湖北,而且能從湖北返回廣東。
實戰練習2:完成各省路由器的路由表,要求數據能從廣東發送到湖北,而且能從湖北返回廣東。