0-0-電腦網路概述

  • 2021 年 10 月 17 日
  • 筆記

電腦網路在資訊時代的作用

有三類大家都很熟悉的網路,即電信網路有線電視網路電腦網路

  • 電線網路用於向用戶提供電話,電報和傳真等服務。

  • 有線電視網路向用戶提供各種電視節目服務。

  • 電腦網路則使用戶能夠在電腦之間傳遞數據文件。

    發展過程中,起發展速度最快且最核心的就是電腦網路,互聯網之所以能夠向用戶提供很多服務,就是因為互聯網有兩個重要基本特點:連通性共享

  • 連通性:凡是能夠上網的多個用戶之間,不管相距多遠,都可以方便的交換各種資訊。

  • 共享:指的是資源共享,貢獻的意思是多方面的,可以使資訊共享,軟體共享,硬體共享等等,

互聯網概述

網路的網路

​ 什麼叫電腦網路?其實是由若干結點和連接這些結點的鏈路組成,這些結點,可以是電腦,可以是集線器,可以是路由器等等。

​ 網路之間可以通過路由器互連起來,這樣構成了一個範圍更大的電腦網路,這樣的網路稱之為互聯網,如圖:

image

​ 因此呢互聯網也就是網路的網路。習慣上,我們把與網路相連的電腦稱之為主機。網路上把許多電腦連接在一起,而互聯網則是許多網路通過路由器連接在一起。有一點值得注意的是,網路互聯並不僅僅是簡單的在物理上連接起來,因為這樣做並不能達到電腦之間相互傳遞數據的目的,我們還需要在計算上安裝能夠交換資訊的軟體才行,因此當我們談到網路互聯時,就隱含的表示了電腦上已經安裝了適當的軟體,因而在電腦之間可以通過網路交換數據。

互聯網基礎結構發展的三大階段

第一個階段是從單個網路ARPANET向互聯網發展的過程。成為了如今互聯網的雛形

第二個階段是擁有三級結構的互聯網,分別是主幹網區域網校園網(企業網)

第三個階段是形成了多層次ISP結構的互聯網。ISP指的是互聯網服務提供商。例如中國移動,聯通,電信等就是中國最有名的ISP。ISP可以從互聯網管理機構申請到很多IP地址(互聯網上的所有主機必須擁有IP地址才能上網),同時擁有通訊線路和路由器等聯網設備,

互聯網的標準化工作

​ 互聯網的標準化工作對互聯網的發展起到了非常重要的作用,互聯網在制定其標準上有很大特色,其中的一個很大特點就是面向公眾。互聯網所有的RFC文檔都可以從互聯網上免費下載,並且任何人都可以通過電子郵件發表對某個文檔的意見或者建議,這種開放的方法對互聯網的影響很大。所有的互聯網標準都是以RFC(Request For Comments請求評論)的形式在互聯網上發表的。

互聯網的組成

互聯網的拓撲結構雖然非常複雜,且在地理上覆蓋全球,但是從工作方式上看可以劃分為以下兩大塊:

  • 邊緣部分:由所有連接在在互聯網上的主機組成,這部分是用戶直接使用的,用來進行通訊(數據傳輸等)和資源共享。
  • 核心部分:有大量網路和連接這些網路的路由器組成。這部分是為邊緣部分提供交換(提供連通性和交換)

image

互聯網的邊緣部分

處在互聯網的邊緣部分就是連接在互聯網上的所有主機。這些主機又稱為端系統(即互聯網的末端),這個端系統,可以是普通筆記型電腦電腦,也可以是一個很小的網路攝影機等等。邊緣部分利用核心部分所提供的的服務,使得眾多主機能夠相互通訊並交換或者共享資訊。在網路邊緣的端系統之間的通訊方式可以劃分為兩大類:客戶服伺服器(C/S)方式和對等方式(P2P)方式。

  • 客戶-伺服器(C/S)方式:這種方式是互聯網上最常用的,也是傳統的方式。客戶(client)和伺服器(server)指的是通訊中所涉及的兩個應用進程。客戶-伺服器方式所描述的是進程之間服務與被服務之間的關係,如下圖:

image

主機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又同時起著伺服器的作用。

    image

    對等連接工作方式可以支援大量對等用戶同時工作,關於這種工作模式以後會講到。

互聯網的核心部分

網路核心部分是互聯網中最複雜的部分,因為網路中的核心部分要向網路邊緣中的大量主機提供連通性,使邊緣部分中的任何一台主機都能夠向其他主機通訊。在網路核心部分起特殊作用的是路由器 (router),它是一種專用電腦(但不叫做主機)。路由器是實現分組交換 packet switching)的關鍵構件,其任務是轉發收到的分組,這是網路核心部分最重要的功能。為了弄清分組交換,下面先介紹電路交換的基本概念。

電路交換的主要特點

在電話問世後不久,人們就發現,要讓所有的電話機都兩兩相連接是不現實的。圖1%(a)表示兩部電話只需要用一對電線就能夠互相連接起來。但若有5部電話要兩兩相連,則需要10對電線,見圖1-9(b)所示。顯然,若N部電話要兩兩相連,就需要N(N-1)2對電線。當電話機的數量很大時,這種連接方法需要的電線數量就太大了(與電話機的數量的平方成正比)。於是人們認識到,要使得每一部電話能夠很方便地和另一部電話進行通訊,就應當使用電話交換機將這些電話連接起來,如圖19(c)所示。每一部電話都連接到交換機上,而交換機使用交換的方法,讓電話用戶彼此之間可以很方便地通訊。電話發明後的一百多年來,電話交換機雖然經過多次更新換代,但交換的方式一直都是電路交換( (circuit switching)

image

當電話機的數量增多時,就要使用很多彼此連接起來的交換機來完成全網的交換任務。用這樣的方法,就構成了覆蓋全世界的電信網。從通訊資源的分配角度來看,交換( switching)就是按照某種方式動態地分配傳輸線路的資源。在使用電路交換通話之前,必須先撥號請求建立連接。當被叫用戶聽到交換機送來的振鈴音並摘機後,從主叫端到被叫端就建立了一條連接,也就是一條專用的物理通路。這條連接保證了雙方通話時所需的通訊資源,而這些資源在雙方通訊時不會被其他用戶佔用。此後主叫和被叫雙方就能互相通電話。通話完畢掛機後,交換機釋放剛才使用的這條專用的物理通路(即把剛才佔用的所有通訊資源歸還給電信網)。這種必須經過「建立連接(佔用通訊資源)→通話(一直佔用通訊資源)→釋放連接(歸還通訊資源)」三個步驟的交換方式稱為電路交換°。如果用戶在撥號呼叫時電信網的資源已不足以支援這次的呼叫,則主叫用戶會聽到忙音,表示電信網不接受用戶的呼叫,用戶必須掛機,等待一段時間後再重新撥號。

下圖為電路交換的示意圖。為簡單起見,圖中沒有區分市話交換機和長途電話交換機。應當注意的是,用戶線是電話用戶到所連接的市話交換機的連接線路,是用戶獨佔的傳送模擬訊號的專用線路,而交換機之間擁有大量話路的中繼線(這些傳輸線路早已都數字化了)則是許多用戶共享的,正在通話的用戶只佔用了中繼線裡面的一個話路。電路交換的個重要特點就是在通話的全部時間內,通話的兩個用戶始終佔用端到端的通訊資源。

image

當使用電路交換來傳送電腦數據時,其線路的傳輸效率往往很低。這是因為電腦數據是突髮式地出現在傳輸線路上的,因此線路上真正用來傳送數據的時間往往不到10%甚至1%。已被用戶佔用的通訊線路資源在絕大部分時間裡都是空閑的。例如,當用戶閱讀終端螢幕上的資訊或用鍵盤輸入和編輯一份文件時,或電腦正在進行處理而結果尚未返回時,寶貴的通訊線路資源並未被利用而是白白被浪費了。

分組交換的特點

分組交換則採用存儲轉發技術。圖1-11表示把一個報文劃分為幾個分組後再進行傳送。通常我們把要發送的整塊數據稱為一個報文( message)。在發送報文之前,先把較長的報文劃分成為一個個更小的等長數據段,例如,每個數據段為1024bit。在每一個數據段前面,加上一些由必要的控制資訊組成的首部 Header)後,就構成了一個分組( packet)。分組又稱為「包」,而分組的首部也可稱為「包頭」。分組是在互聯網中傳送的數據單元。分組中的「首部」是非常重要的,正是由於分組的首部包含了諸如目的地址和源地址等重要控制資訊,每一個分組才能在互聯網中獨立地選擇傳輸路徑,並被正確地交付到分組傳輸的終點。

image

圖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所示。

image

分組交換也帶來一些新的問題。例如,分組在各路由器存儲轉發時需要排隊,這就會造成一定的時延。因此,必須盡量設法減少這種時延。此外,由於分組交換不像電路交換那樣通過建立連接來保證通訊時所需的各種資源,因而無法確保通訊時端到端所需的頻寬。分組交換帶來的另一個問題是各分組必須攜帶的控制資訊也造成了一定的開銷( overhead)。整個分組交換網還需要專門的管理和控制機制。應當指出,從本質上講,這種斷續分配傳輸頻寬的存儲轉發原理並非是完全新的概念。自古代就有的郵政通訊,就其本質來說也屬於存儲轉發方式。而在20世紀40年代,電報通訊也採用了基於存儲轉發原理的報文交換( message switching)。在報文交換中心,一份份電報被接收下來,並穿成紙帶。操作員以每份報文為單位,撕下紙帶,根據報文的目的站地址,拿到相應的發報機轉發出去。這種報文交換的時延較長,從幾分鐘到幾小時不等。現在報文交換已不使用了。分組交換雖然也採用存儲轉發原理,但由於使用了電腦進行處理,就使分組的轉發非常迅速。例如 ARPANET建網初期的經驗表明,在正常的網路負荷下,當時橫跨美國東西海岸的端到端平均時延小於0.1秒。這樣,分組交換雖然採用了某些古老的交換原理,但實際上已變成了一種嶄新的交換技術。

圖1-13表示電路交換,報文交換和分組交換的區別。圖中的A和D分別是源點和終點,而B和C是在A和D之間的中間結點。

image

三種交換方式的主要特點:

  • 電路交換:整個報文的比特流連續地從源點直達終點,好像在一個管道中進行。
  • 報文交換:整個報文先傳送到相鄰的結點,全部存儲下來後查找轉發表,轉發到下一個結點。
  • 分組交換:單個分組(整個報文的一部分)傳送到相鄰的結點,存儲下來後查找轉發表,轉發到下一個結點。