網絡通信協議基礎(ISIS)——入門

今天是這個系列博客的開始,第一次寫博客,希望這些年自己所學到東西能夠幫助更多的人。但是轉載的時候還是請註明下是轉載的,謝謝啦,嘿嘿。

網絡通信協議是一個挺窄的方向。相對於Android、ios、JavaScript、python等等方向,網絡通信協議知道的人很少。本文也指在普及一下網絡通信協議,讓更多的人知道世界上還有這麼一羣人在維護着這麼一堆協議。

想要了解本文,需要擁有一些知識儲備,包括如下內容:

1.IP轉發原理(看一遍TCP/IP詳解卷一的IP章節,瞭解原理即可,不必精通)

2.二層轉發協議(看一遍TCP/IP詳解卷一的二層協議相關章節,瞭解原理即可,不必精通)

好,那麼我們先開始我們的旅程。

首先,我們瞭解一下我們的網絡,大家每天都接觸,甚至於離不開互聯網。但是,互聯網究竟是如何組成的呢?最早,當微型計算機剛發明的時候,還是單機時代,每臺計算機獨立運作。我家的計算機和你家的計算機各玩各的。我想要你家電腦上的遊戲怎麼辦?硬盤、光盤、U盤等等存儲介質逐一登場。其實這就是比較原始的信息交互手段。

後來,我們用網線將兩臺電腦連接起來,這樣兩臺電腦之間就可以通過網線傳遞數據了,省去了硬盤、光盤、U盤拷來拷去的麻煩。但是,三臺以上的電腦怎麼辦呢?最簡單的辦法就是用三根網線兩兩相連,那麼四臺呢?五臺呢?隨便一個公司都是好幾十個人、幾十臺電腦,全連接顯然太麻煩。

於是,一個叫HUB的東西誕生了。這東西又叫集線器,原理很簡單,從一個接口收上來的報文,從其他所有接口都複製一份過去。這樣,拓撲就從全連接變成了以HUB爲中心的星型連接,瞬間簡化了很多。但是,HUB有個問題,是啥呢?就是它是物理層面的複製。HUB裏面沒有邏輯,沒有什麼代碼,只是簡單的把從一個接口收進來的代表報文的電信號複製到其他接口上而已。功能上倒是沒啥問題,但是性能上會差一些。比如網絡裏面有255臺機器,A發個報文給B,好傢伙,報文到HUB這裏,HUB沒有邏輯啊,它又不知道你是發給誰的,於是網絡裏面的255臺機器都收到了A發送的報文。這明顯對於其他機器來說是個騷擾信息。那怎麼辦呢?當然是出現更高級的東西了。

這個東西叫交換機,英文名字叫switch。從這個東西開始就有轉發邏輯了,不再單純的複製信息,它能夠識別報文中的目的地址。當然,它被設計用來只能識別二層網絡協議的目的地址。於是,在一個網絡裏面,如果A發生報文給B,那麼交換機就可以和二層網絡協議一起保證報文只會給B,而不會騷擾其他機器。這顯然對其他機器來說是個好事情,他們節省了大量用於識別垃圾報文的資源。但是,交換機還有一個不足的地方,就是它無法連接異構網絡。交換機被設計只能和二層網絡協議一起工作,工作在同一片二層協議的網絡裏面。但是,隨着網絡的發展,一個一個獨立的局域網絡有越來越強烈的願望想要連接到一起。

後來,路由器出現了,英文名字叫router。路由器沒有明確的定義,通用和常見的一個,就是連接異構網絡的機器。這裏的異構說的是不同的二層協議,比如ethernet和ppp、atm和hdlc等等。路由器被設計工作在IP層,同時也有更強大的邏輯。我們這次要討論的ISIS協議,主要的應用常見就是路由器。

路由器將不同的網絡連接到一起,路由器和路由器之間也可以用路由器再連接到一起,層層疊疊,最終全世界的網絡都連接到了一起,形成了互聯網。當然,現在也不是隻有互聯網。我們說的互聯網通常指的是internet網絡,但是也有其他的網絡。幾臺電腦連在一起就可以叫一個網絡,不一定非要是互聯網。比如各國軍事網絡,各公司的內部專用網絡,某些組織的私有網絡等等,這些都是網絡。當然,在日常生活中說的網絡,通常說的是互聯網。

說了這麼多,大家應該對互聯網的基礎組成有了一定的概念。互聯網就是由計算機、網線和網絡協議組成。當然,計算機的職責各不相同。家裏的電腦是微機,打遊戲、上網、看視頻。小區機房裏的交換機也是計算機,只不過專門負責轉發報文,識別地址,保證通信。各縣/市/省級的路由器也是計算機,負責各片區所有報文的轉發。國家級的路由器也是計算機,負責國際流量的出入口。互聯網裏面還有其他特殊職責的計算機,比如負責將網址變成IP地址的DNS服務器。負責安全的防火牆。負責提供信息的網絡服務器,比如網易、百度、愛奇藝的服務器,存儲了大量的信息在裏面。

這些計算機有不同的型號,不同的生產時期,不同的技術,不同的硬件,不同的廠家。想一想一臺2007年的華碩公司出廠的筆記本,由本廠高級工程師設計,想要訪問SUN公司出品的服務器。而這個服務器又是個美國架構師設計的。我們怎麼保證這兩個人設計出來的計算機能夠互相通信?他們甚至都不認識對方,不知道對方的存在。華碩的筆記本不會知道將來用戶會訪問哪個公司的服務器。他們之間就好像有一道鴻溝。

提個問題,一個韓國人和一個坦桑尼亞人想要互相討論問題,該如何實現?當然是語言要統一。要麼坦桑尼亞人會韓語,要麼韓國人會非洲語言。當然,還有第三個選項,大家都說英語。這個在網絡裏面就是協議,大家事先約定都說英語,這樣就能對話了。在網絡的世界裏面,協議就是這樣的作用。協議由國際組織統一規定,各廠商都必須遵守,有了統一的標準,大家就能讓不同的計算機互相通信了。

網絡協議,就是這麼個東西。當然,隨着網絡的發展,只是簡單的互相對話滿足不了需求。只會英語不是目的,目的是交流,是協作。也就是說,大家逐漸發現英語不夠,要專業英語。普通的專業英語不夠,要各領域的專業英語。於是,網絡協議的分工越來越細,種類越來越多。制定協議的國際組織IETF,協議從1開始編號,每篇協議一個編號,現在已經七八千了。

ISIS協議就是衆多網絡協議中的一個,它的作用是負責自動構建路由表。之前說過,網絡由不同角色的計算機組成。每臺計算機如何知道怎樣到達遠端的服務器的呢?IP層轉發靠的是路由表。路由表裏有要訪問的機器的地址,那麼就能夠到達。這一部分參看TCP/IP詳解卷一里的IP轉發章節。

老式的路由表是網絡管理員手工配置的,那時候網絡規模小。現在網絡越來越大了。手工配置滿足不了需求。於是ISIS協議這種能夠自動構建路由表的協議越來越重要。ISIS協議能夠自動計算到達目的地的最短的路。如果最短的路有好幾條,那麼還能讓這幾條路同時承擔報文的轉發。在最短路徑故障時,還能自動換新路徑。在出現更好的路徑的時候,還能自動換到更好的路徑上。完全的全自動,同時也賦予網絡管理員一定的控制報文轉發的能力,能夠決定流量的走向。怎麼樣?高級吧。網絡管理員瞬間省了好多事情。只要配置上ISIS,那麼會自動構建路由表,學習遠端路由器、服務器的IP地址。等所有地址都學習完畢後。整片網絡的IP層就打通了,網絡內的任何機器都知道到所有其他機器的路徑。

在IP層打通以後,在大家平時看來,就相當於網絡連接通了。能ping通地址了。就好像偏遠山區通車了一樣。當然,光通車是沒有用的,在通車之後,會有其他的協議提供真正實用的內容和服務。比如有運商品的車進來,有運山貨的車出去,有運人的車進來,有運人的車出去。這些車,這些相當於車的協議,纔是給我們真正服務的東西,比如愛奇藝的電影,比如基於HTTP協議的瀏覽器。但是,一切的基礎,就是打通IP層,路要通。而通路,就是ISIS協議最大的作用之一。當然,只是之一,嘿嘿。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章