計算機網絡在信息時代的作用
有三類大家都很熟悉的網路,即電信網絡,有線電視網絡和計算機網絡。
-
電線網絡用於向用戶提供電話,電報和傳真等服務。
-
有線電視網絡向用戶提供各種電視節目服務。
-
計算機網絡則使用戶能夠在計算機之間傳遞數據文件。
發展過程中,起發展速度最快且最核心的就是計算機網絡,互聯網之所以能夠向用戶提供很多服務,就是因為互聯網有兩個重要基本特點:連通性和共享
-
連通性:凡是能夠上網的多個用戶之間,不管相距多遠,都可以方便的交換各種信息。
-
共享:指的是資源共享,貢獻的意思是多方面的,可以使信息共享,軟件共享,硬件共享等等,
互聯網概述
網絡的網絡
什么叫計算機網絡?其實是由若干結點和連接這些結點的鏈路組成,這些結點,可以是計算機,可以是集線器,可以是路由器等等。
網絡之間可以通過路由器互連起來,這樣構成了一個范圍更大的計算機網絡,這樣的網絡稱之為互聯網,如圖:
因此呢互聯網也就是網絡的網絡。習慣上,我們把與網絡相連的計算機稱之為主機。網絡上把許多計算機連接在一起,而互聯網則是許多網絡通過路由器連接在一起。有一點值得注意的是,網絡互聯並不僅僅是簡單的在物理上連接起來,因為這樣做並不能達到計算機之間相互傳遞數據的目的,我們還需要在計算上安裝能夠交換信息的軟件才行,因此當我們談到網絡互聯時,就隱含的表示了計算機上已經安裝了適當的軟件,因而在計算機之間可以通過網絡交換數據。
互聯網基礎結構發展的三大階段
第一個階段是從單個網絡ARPANET向互聯網發展的過程。成為了如今互聯網的雛形。
第二個階段是擁有三級結構的互聯網,分別是主干網,區域網,校園網(企業網)。
第三個階段是形成了多層次ISP結構的互聯網。ISP指的是互聯網服務提供商。例如中國移動,聯通,電信等就是我國最有名的ISP。ISP可以從互聯網管理機構申請到很多IP地址(互聯網上的所有主機必須擁有IP地址才能上網),同時擁有通信線路和路由器等聯網設備,
互聯網的標准化工作
互聯網的標准化工作對互聯網的發展起到了非常重要的作用,互聯網在制定其標准上有很大特色,其中的一個很大特點就是面向公眾。互聯網所有的RFC文檔都可以從互聯網上免費下載,並且任何人都可以通過電子郵件發表對某個文檔的意見或者建議,這種開放的方法對互聯網的影響很大。所有的互聯網標准都是以RFC(Request For Comments請求評論)的形式在互聯網上發表的。
互聯網的組成
互聯網的拓撲結構雖然非常復雜,且在地理上覆蓋全球,但是從工作方式上看可以划分為以下兩大塊:
- 邊緣部分:由所有連接在在互聯網上的主機組成,這部分是用戶直接使用的,用來進行通信(數據傳輸等)和資源共享。
- 核心部分:有大量網絡和連接這些網絡的路由器組成。這部分是為邊緣部分提供交換(提供連通性和交換)。
互聯網的邊緣部分
處在互聯網的邊緣部分就是連接在互聯網上的所有主機。這些主機又稱為端系統(即互聯網的末端),這個端系統,可以是普通筆記本電腦,也可以是一個很小的網絡攝像頭等等。邊緣部分利用核心部分所提供的的服務,使得眾多主機能夠相互通信並交換或者共享信息。在網絡邊緣的端系統之間的通信方式可以划分為兩大類:客戶服服務器(C/S)方式和對等方式(P2P)方式。
- 客戶-服務器(C/S)方式:這種方式是互聯網上最常用的,也是傳統的方式。客戶(client)和服務器(server)指的是通信中所涉及的兩個應用進程。客戶-服務器方式所描述的是進程之間服務與被服務之間的關系,如下圖:
主機A運行客戶程序,而主機B 運行服務程序,在這中情況下,A是客戶端而B是服務端,客戶A向服務器B發送請求,而服務器B向客戶A提供服務。這里最主要的特點是:客戶是服務請求方,服務器是服務提供方。服務請求方和服務提供方都需要使用網絡中的核心部分所提供的服務。在實際的應用中,客戶端程序和服務端程序通常會有以下一些特點。
客戶程序:被用戶調用后運行,在通信時主動向遠程服務器發起通信(請求服務),因此,客戶程序必須要知道服務器程序的地址。不需要特殊的硬件和很復雜的操作系統。
服務器程序:是一種專門用來提供某種服務的程序,可同時處理多個遠地或本地客戶的請求。系統啟動后即自動調用並一直不斷地運行着,被動地等待並接受來自各地的客戶的通信請求,,因此,服務器程序不需要知道客戶程序的地址。一般需要有強大的硬件和高級操作系統支持。
客戶與服務器的通信關系建立后,通信可以是雙向的,客戶和服務器都可發送和接收數據。順便要說一下,上面所說的客戶和服務器本來都指的是計算機進程(軟件)。使用計算機的人是計算機的“用戶”(user)而不是“客戶”( client)。但在許多國外文獻中,經常也把運行客戶程序的機器稱為 client(在這種情況下也可把 client譯為“客戶機”),把運行服務器程序的機器稱為 server。因此我們應當根據上下文來判斷 client或 server是指軟件還是硬件。在本書中,在表示機器時,我們也使用“客戶端”(或“客戶機”)或“服務器端”(或服務器)來表示“運行客戶程序的機器”或“運行服務器程序的機器”。
-
對等連接(P2P)方式
對等連接( peer-to-peer,簡寫為P2P。這里使用數字2是因為英文的2是two,其讀音與to同,因此英文的to常縮寫為數字2)是指兩台主機在通信時並不區分哪一個是服務請求方哪一個是服務提供方。只要兩台主機都運行了對等連接軟件(P2P軟件),它們就可以進行平等的、對等連接通信。這時,雙方都可以下載對方已經存儲在硬盤中的共享文檔。因此這種工作方式也稱為P2P方式。在圖1-8中,主機C,D,E和F都運行了P2P軟件,因此這幾台主機都可進行對等通信(如C和D,E和F,以及C和F)。實際上,對等連接方式從本質上看仍然是使用客戶-服務器方式,只是對等連接中的每一台主機既是客戶又同時是服務器。例如主機C,當C請求D的服務時,C是客戶,D是服務器。但如果C又同時向F提供服務,那么C又同時起着服務器的作用。
對等連接工作方式可以支持大量對等用戶同時工作,關於這種工作模式以后會講到。
互聯網的核心部分
網絡核心部分是互聯網中最復雜的部分,因為網絡中的核心部分要向網絡邊緣中的大量主機提供連通性,使邊緣部分中的任何一台主機都能夠向其他主機通信。在網絡核心部分起特殊作用的是路由器 (router),它是一種專用計算機(但不叫做主機)。路由器是實現分組交換 packet switching)的關鍵構件,其任務是轉發收到的分組,這是網絡核心部分最重要的功能。為了弄清分組交換,下面先介紹電路交換的基本概念。
電路交換的主要特點
在電話問世后不久,人們就發現,要讓所有的電話機都兩兩相連接是不現實的。圖1%(a)表示兩部電話只需要用一對電線就能夠互相連接起來。但若有5部電話要兩兩相連,則需要10對電線,見圖1-9(b)所示。顯然,若N部電話要兩兩相連,就需要N(N-1)2對電線。當電話機的數量很大時,這種連接方法需要的電線數量就太大了(與電話機的數量的平方成正比)。於是人們認識到,要使得每一部電話能夠很方便地和另一部電話進行通信,就應當使用電話交換機將這些電話連接起來,如圖19(c)所示。每一部電話都連接到交換機上,而交換機使用交換的方法,讓電話用戶彼此之間可以很方便地通信。電話發明后的一百多年來,電話交換機雖然經過多次更新換代,但交換的方式一直都是電路交換( (circuit switching)
當電話機的數量增多時,就要使用很多彼此連接起來的交換機來完成全網的交換任務。用這樣的方法,就構成了覆蓋全世界的電信網。從通信資源的分配角度來看,交換( switching)就是按照某種方式動態地分配傳輸線路的資源。在使用電路交換通話之前,必須先撥號請求建立連接。當被叫用戶聽到交換機送來的振鈴音並摘機后,從主叫端到被叫端就建立了一條連接,也就是一條專用的物理通路。這條連接保證了雙方通話時所需的通信資源,而這些資源在雙方通信時不會被其他用戶占用。此后主叫和被叫雙方就能互相通電話。通話完畢掛機后,交換機釋放剛才使用的這條專用的物理通路(即把剛才占用的所有通信資源歸還給電信網)。這種必須經過“建立連接(占用通信資源)→通話(一直占用通信資源)→釋放連接(歸還通信資源)”三個步驟的交換方式稱為電路交換°。如果用戶在撥號呼叫時電信網的資源已不足以支持這次的呼叫,則主叫用戶會聽到忙音,表示電信網不接受用戶的呼叫,用戶必須掛機,等待一段時間后再重新撥號。
下圖為電路交換的示意圖。為簡單起見,圖中沒有區分市話交換機和長途電話交換機。應當注意的是,用戶線是電話用戶到所連接的市話交換機的連接線路,是用戶獨占的傳送模擬信號的專用線路,而交換機之間擁有大量話路的中繼線(這些傳輸線路早已都數字化了)則是許多用戶共享的,正在通話的用戶只占用了中繼線里面的一個話路。電路交換的個重要特點就是在通話的全部時間內,通話的兩個用戶始終占用端到端的通信資源。
當使用電路交換來傳送計算機數據時,其線路的傳輸效率往往很低。這是因為計算機數據是突發式地出現在傳輸線路上的,因此線路上真正用來傳送數據的時間往往不到10%甚至1%。已被用戶占用的通信線路資源在絕大部分時間里都是空閑的。例如,當用戶閱讀終端屏幕上的信息或用鍵盤輸入和編輯一份文件時,或計算機正在進行處理而結果尚未返回時,寶貴的通信線路資源並未被利用而是白白被浪費了。
分組交換的特點
分組交換則采用存儲轉發技術。圖1-11表示把一個報文划分為幾個分組后再進行傳送。通常我們把要發送的整塊數據稱為一個報文( message)。在發送報文之前,先把較長的報文划分成為一個個更小的等長數據段,例如,每個數據段為1024bit。在每一個數據段前面,加上一些由必要的控制信息組成的首部 Header)后,就構成了一個分組( packet)。分組又稱為“包”,而分組的首部也可稱為“包頭”。分組是在互聯網中傳送的數據單元。分組中的“首部”是非常重要的,正是由於分組的首部包含了諸如目的地址和源地址等重要控制信息,每一個分組才能在互聯網中獨立地選擇傳輸路徑,並被正確地交付到分組傳輸的終點。
圖1-12(a)強調互聯網的核部分是由許多網絡和把它們相互連接起來的路由器組成。而主機處於互聯網的邊緣部分。在互聯網核心部分的路由器部分一般采用告高速鏈路相連接,而在網絡邊緣的主機接入到核心部分則通常以相對較低速率的鏈路相連。
位於網絡邊緣的主機和位於網絡核心部分的路由器都是計算機,但它們的作用卻很不一樣。主機是為用戶進行信息處理的,並且可以和其他主機通過網絡交換信息。路由器則是用來轉發分組的,即進行分組交換的。路由器收到一個分組,先暫時存儲一下,檢查其首部,查找轉發表,按照首部中的目的地址,找到合適的接口轉發出去,把分組交給下一個路由器。這樣一步一步地(有時會經過幾十個不同的路由器)以存儲轉發的方式,把分組交付最終的目的主機。各路由器之間必須經常交換彼此掌握的路由信息,以便創建和動態維護路由器中的轉發表,使得轉發表能夠在整個網絡拓撲發生變化時及時更新。當我們討論互聯網的核心部分中的路由器轉發分組的過程時,往往把單個的網絡簡化成一條鏈路,而路由器成為核心部分的結點,如圖1-12(b)所示。這種簡化圖看起來可以更加突出重點,因為在轉發分組時最重要的就是要知道路由器之間是怎樣連接起來的。現在假定圖1-12(b)中的主機H1向主機H發送數據。主機H1先將分組逐個地發往與它直接相連的路由器A。此時,除鏈路H1-A外,其他通信鏈路並不被目前通信的雙方所占用。需要注意的是,即使是鏈路H1-A,也只是當分組正在此鏈路上傳送時才被占用。在各分組傳送之間的空閑時間,鏈路H1-A仍可為其他主機發送的分組使用。路由器A把主機H1發來的分組放入緩存。假定從路由器A的轉發表中查出應把該分組轉發到鏈路A-C。於是分組就傳送到路由器C。當分組正在鏈路AC傳送時,該分組並不占用網絡其他部分的資源。路由器C繼續按上述方式查找轉發表,假定査出應轉發到路由器E。當分組到達路由器E后,路由器E就最后把分組直接交給主機H假定在某一個分組的傳送過程中,鏈路AC的通信量太大,那么路由器A可以把分組沿另一個路由傳送,即先轉發到路由器B,再轉發到路由器E,最后把分組送到主機H5。在網絡中可同時有多台主機進行通信,如主機H2也可以經過路由器B和E與主機H6通信。
這里需要注意,路由器暫時存儲的是一個短分組,而不是整個的長報文。段分組是暫存在路由器的存儲器上的(即內存),並不是存儲在磁盤中,互聯網可以容忍很多主機同時進行通信,而一台主機上的多個進程(即正在運行中的多個程序)也可以各自和不同的主機中的不同進程進行通信。
應當注意,分組交換在傳送數據之前不必先占用一條端到端的鏈路的通信資源。分組在哪段鏈路上傳送才占用這段鏈路的通信資源。分組到達一個路由器后,先暫時存儲下來,査找轉發表,然后從一條合適的鏈路轉發出去。分組在傳輸時就這樣一段一段地斷續占用通信資源,而且還省去了建立連接和釋放連接的開銷,因而數據的傳輸效率更高。互聯網采取了專門的措施,保證了數據的傳送具有非常高的可靠性(在第5章54節介紹運輸層協議時要着重討論這個問題)。當網絡中的某些結點或鏈路突然出現故障時,在各路由器中運行的路由選擇協議( protocol)能夠自動找到轉發分組最合適的路徑。這些將在后面詳細討論。從以上所述可知,采用存儲轉發的分組交換,實質上是采用了在數據通信的過程中斷續(或動態)分配傳輸帶寬的策略(關於帶寬的進一步討論見后面的1.61節)。這對傳送突發式的計算機數據非常合適,使得通信線路的利用率大大提高了。
為了提高分組交換網的可靠性,互聯網的核心部分常采用網狀拓撲結構,使得當發生網絡擁塞或少數結點、鏈路出現故障時,路由器可靈活地改變轉發路由而不致引起通信的中斷或全網的癱瘓。此外,通信網絡的主干線路往往由一些高速鏈路構成,這樣就可以較高的數據率迅速地傳送計算機數據。
綜上所述,分組交換的主要優點可歸納如表1-2所示。
分組交換也帶來一些新的問題。例如,分組在各路由器存儲轉發時需要排隊,這就會造成一定的時延。因此,必須盡量設法減少這種時延。此外,由於分組交換不像電路交換那樣通過建立連接來保證通信時所需的各種資源,因而無法確保通信時端到端所需的帶寬。分組交換帶來的另一個問題是各分組必須攜帶的控制信息也造成了一定的開銷( overhead)。整個分組交換網還需要專門的管理和控制機制。應當指出,從本質上講,這種斷續分配傳輸帶寬的存儲轉發原理並非是完全新的概念。自古代就有的郵政通信,就其本質來說也屬於存儲轉發方式。而在20世紀40年代,電報通信也采用了基於存儲轉發原理的報文交換( message switching)。在報文交換中心,一份份電報被接收下來,並穿成紙帶。操作員以每份報文為單位,撕下紙帶,根據報文的目的站地址,拿到相應的發報機轉發出去。這種報文交換的時延較長,從幾分鍾到幾小時不等。現在報文交換已不使用了。分組交換雖然也采用存儲轉發原理,但由於使用了計算機進行處理,就使分組的轉發非常迅速。例如 ARPANET建網初期的經驗表明,在正常的網絡負荷下,當時橫跨美國東西海岸的端到端平均時延小於0.1秒。這樣,分組交換雖然采用了某些古老的交換原理,但實際上已變成了一種嶄新的交換技術。
圖1-13表示電路交換,報文交換和分組交換的區別。圖中的A和D分別是源點和終點,而B和C是在A和D之間的中間結點。
三種交換方式的主要特點:
- 電路交換:整個報文的比特流連續地從源點直達終點,好像在一個管道中進行。
- 報文交換:整個報文先傳送到相鄰的結點,全部存儲下來后查找轉發表,轉發到下一個結點。
- 分組交換:單個分組(整個報文的一部分)傳送到相鄰的結點,存儲下來后查找轉發表,轉發到下一個結點。