#### 第6章:
#### 計算機網絡
##### 6.1 數據通信
1. 模擬通信
其信號的波形可以表現為時間的連續函數。
:-: 
電話信號就是語音聲波的電模擬,利用送話器的聲/電變換功能,把語音聲波壓力的強弱變化轉變成語音電流的大小變化。
1. 數字信號
:-: 
通常以兩個離散值(0和1)來表示二進制數字信號,以數字信號為傳輸對象的傳輸方式稱為`數字傳輸`, 以數字信號來傳送消息的通信方式稱為`數字通信`。傳輸數字信號的通信系統統稱為`數字通信系統`。此刻你使用的電腦形成的數據傳輸系統使用的是數字信號,微觀每一個電腦是一個小型數字通信處理器(或數字通信系統),宏觀整個計算機網絡是一個巨大無比的數字通信系統。其特征是幅度不隨時間連續變化,只能取有限個離散值。
:-: 
數據通信模型
數據通信系統模型包括三個系統,和以下5個要素
1. 源點
2. 發送器
3. 傳輸系統
4. 接收器
5. 終點
數據通信系統的組成
1. 終端設備子系統:數據終端設備及有關的傳輸和控制設備組成。
2. 數據傳輸子系統:由傳輸信道及兩端的數據電路終端設備組成。
3. 數據處理子系統:包括通信控制器在內的計算機。通信控制器把來自主計算機的數據經過通信控制器分送給相應的通信線路,或者把來自通信線路的數據經由通信控制器送往主計算機進行處理。
#### 6.2 數據通信網絡
數據通信系統中的數據傳輸子系統實際上是一個數據通信網絡。
這個通信網絡是由一些處于不同地理位置的數據傳輸設備、數據交換設備、通信線路等構成的。
:-: 
試想一下:如果沒有計算機網絡,要實現“人-機”,“機-機”交互是不是要給臺計算機拉無數根網線與其他無數臺計算機相連呢。
數據通信網絡由硬件和軟件兩個部分組成。
硬件部分包括終端處理設備、數據傳輸設備、數據交換設備、通信線路和計算機系統等。
軟件部分是支持上述硬件配置實現網絡協議功能的各種程序。
1. 廣域網
廣域網通常指覆蓋范圍很廣的遠程網絡,它由一些結點交換機以及連接這些交換機的鏈路組成。結點交換機只提供交換功能,它將數據從一個結點交換機傳送到另一個節點交換機,直到到達終點。(目前采用分組交換技術)。
2. 局域網
局域網指通過通信線路把較小范圍內的各種設備連接在一起的通信網絡。與廣域網的相比,主要區別在于:覆蓋范圍小,局域網之間相連的設備屬于同一單位,傳輸率高。
3. 城域網
城域網的地域覆蓋介于廣域網和局域網之間,是一種主要面向企業用戶、可提供豐富業務和支持多種通信協議的公用網絡。
##### ISP(Internet Service Provider)因特網服務提供者
ISP指的是英特網服務提供者,比如中國的電信、網通、鐵通、聯通、移動公司等。他們一般提供主干ISP服務和地區ISP服務。
:-: 
英特網交換點IXP是一個物理基礎架構,它允許不同的ISP之間通過對等協議進行通信,減少它們各自對上層ISP的依賴,這就使得英特網上的流量分布更加合理,減少分組轉發延遲時間,減低分組轉發費用,從而提高了運行效率和容錯性。比如電信的網絡可以和移動的網絡相連。
##### 英特網的組成
英特網是一個覆蓋全球、拓撲結構頗為復雜的互聯網,由兩大部分構成。
1. 核心部分。由大量各種網絡和連接這些網絡的路由器組成。它為周邊部分提供連通和交換服務。
2. 周邊部分。由所有連接在英特網上的主機組成。它為用戶提供數據通信和資源共享服務。
在端系統中運行的程序之間,通常有以下兩種通信模式。
1. 客戶/服務器模式(C/S模式)
特點:非對等作用;通信完全異步。
:-: 
主機A運行客戶端程序,主機B作為服務器運行服務器程序。主機A的客戶進程向主機B的服務器進程發送服務請求,而主機B的服務器進程根據主機A客戶進程的請求向其提供所需要的服務。有時候客戶進程和服務器進程之間僅需要一次交互即告完成,而有時則需要多次交互才可結束。
1. 對等模式(P2P模式)
:-: 
傳統的C/S模式能夠實現一定程度的資源共享,但客戶和服務器所處的地位是不對等的。服務器通常由功能強大的計算機擔任,作為資源的提供者響應來自多個客戶的請求。
對等模式(Peer-to-Peer,P2P)是指兩主機通信時所處的地位是對等的。它們運行著對等軟件(P2P軟件),就可以同時起著客戶或服務器的作用向對方提供服務。在P2P系統中。把任務分布到整個網絡的大量類似結點上,就可以避免中心結點或超級結點的存在。通過將資源的所有權和控制權分散,使得這些結點成為服務的提供者,這樣既充分利用了各結點的計算、存儲和帶寬資源,又減少了網絡關鍵結點的擁塞狀況,從而大大提高了網絡資源的利用率。同時,由于沒有中央結點集中控制,可避免其故障,增強了系統的伸縮性,提高了系統的容錯性和堅定性。利用P2P的軟件:迅雷。
P2P并不是一種高效的傳輸模式,因為在P2P應用的傳輸過程中可能會出現很多重復的分組,從而占用大量的網絡帶寬,甚至造成網絡擁塞,降低其他業務的性能。然而,采用P2P模式的網絡利用了多路并行傳輸帶來的快速傳輸性能卻使其他應用望塵莫及。
#### 6.3 計算機網絡性能
1. 速率
速率是指計算機網絡中主機在信道(有線信道,無線信道,廣域無線信道,局域無線信道)上單位時間內傳輸的數據量。單位為比特/秒(b/s或bps)。當速率較高時可用kb/s,Mb/s、Gb/s或者Tb/s,其中k表示千(10的3次方),M表示兆(10的六次方),G表示吉(10的9次方),T表示太(10的12次方)。
1. 帶寬
帶寬是指某個信號所具有的頻帶寬度。一個信號可能包括不同的頻率成分,因此它的帶寬也就是該信號的各種不同頻率成分所占用的頻率范圍。帶寬也是傳輸介質的一種物理特性,通常取決于傳輸介質的構成、厚度和長度。過去通信線路傳輸的是模擬信號,通信線路允許傳送的信號頻率范圍稱為線路的帶寬,單位是赫茲(Hz)、千赫茲(kHz)、兆赫茲、吉赫茲、太赫茲。如今通信線路可以傳送數字信號,帶寬用來表示線路傳送數據的能力,即從網絡中某一點到另一點所能達到的最高數據傳輸速率,單位是比特/s(b/s)。以上兩種分別稱為頻域稱謂(分頻傳輸)和時域稱謂(分時傳輸)。
1. 吞吐量
吞吐量是指單位時間內通過某個網絡(或信道、接口)的數據量,其單位是比特/秒。吞吐量常用于對某個實際網絡的性能測試。
1. 時延
時延是指數據(一個報文或分組或比特)從網絡(或鏈路)的一端傳送到另一端的時間。
時延分為
* 發送時延
主機或路由器發送數據幀所需要的時間
* 傳播時延
電磁波在信道中傳播一定距離所需要的時間
* 處理時延
主機或網絡結點處理數據分組所需要的時間
* 排隊時延
分組進入處網絡節點后排隊等待處理所需要的時間
:-: 
總時延 = 發送時延 + 傳播時延+處理時延+排隊時延
1. 時延帶寬積
時延帶寬積=時延 X 帶寬
1. 利用率
利用率分為信道利用率和網絡利用率。
信道利用率指規定時間內信道上用于傳輸數據的時間比例。
網絡利用率指全網絡的信道利用率的加權平均值。
#### 6.4 層次型的體系結構
假設網絡中的兩臺計算機之間需要傳送一件文件,那么它們之間除了必須有一條傳送數據的通路,還需要完成以下工作:
1. 源端計算機必須用命令“激活”所連接數據通信通路,并告知通信網絡如何識別接收數據的目的端計算機。
2. 源端計算機必須確定網絡連接正常,目的端計算機已經做好接收數據的準備。
3. 源端計算機必須確定目的端計算機已經做好接收和存儲文件的準備,如果兩者文件格式不兼容,必須有一臺計算機來完成格式的轉換工作。
4. 當網絡出現故障,出現傳送數據出錯、重復或丟失等現象時,應有適當的措施來保證目的端計算機仍能正確接收到完整的文件。
以上工作需要相互通信的計算機密切配合。但具體的工程實現上,人們不可能用一個單一的模塊來實現以上所有功能,而是將他們分解成若干個子任務,獨立地實現每個子任務。
:-: 
以文件傳送為例的體系結構
#### 計算機網絡的模型(OSI模型、TCP/IP模型)
##### OSI模型
OSI模型(開放系統互連參考模型)有七個層次,自下向上為物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層。1-3層是網絡服務平臺,其任務是在物理上把數據從一個設備傳送到另外一個設備,對電氣約定、物理連接、物理編址以及傳輸的定時和可靠性等做出規定。5-7層是用戶服務平臺,使得一些無關的軟件具有互操作性。第4層是把上述兩個部分連接起來,使得低層發送的是高層可以使用的形式。在OSI中,高三層總是用軟件來實現,而低三層是硬件和軟件的組合(物理層絕大部分是硬件)。
:-: 
1. 物理層
物理層為數據鏈路層提供一個物理連接,在傳輸介質上透明地傳送比特流。“物理連接”不是永遠存在于傳輸介質上的,而是需要物理層去建立、維持、終止。物理層所傳單位是比特。
2. 數據鏈路層
數據鏈路層屏蔽物理層的特性,為網絡層提供一個數據鏈路,在一條可能出差錯的物理連接上,進行幾乎無差錯的數據傳輸。數據鏈路層通過校驗、確認以及反饋重發等手段將原始的物理連接改造成無差錯的數據鏈路。該層將物理層傳送的比特流組合成幀。幀是數據鏈路層的單位。幀中包含地址、控制、數據、校驗等信息。數據鏈路層負責建立、維持、釋放數據鏈路。
3. 網絡層
網絡層為源端的傳輸層送來的分組選擇合適的路由和交換結點,正確無誤地按照地址傳送給目的端的傳輸層。分組或包是網絡層傳送數據的單位。當分組僅通過一個通信子網就能達到目的端時,通信子網中的結點交換機相當于源端與目的端之間的中繼站,此時結點交換機要時間物理層到網絡層的功能。當分組需要通過數個通信子網才能到達目的端時,網絡層還要解決網際互連(怎么找到目的端)的問題。
4. 傳輸層
傳輸層為會話層用戶提供一個端到端(主機到主機)可靠、透明和優化數據傳輸服務機制。傳輸層是網絡體系中結構中的`關鍵層次`,是一個端到端的層次。高層用戶可以利用傳輸層提供的服務進行端到端的數據傳輸,傳輸層對高層用戶起屏蔽作用。報文是傳輸層的單位。由于網絡層的數據傳送單位是分組,報文大于分組時候將報文劃分為數個分組再交由網絡層進行傳輸。
高層用戶請求建立一條傳輸虛通信連接時,傳輸層就通過網絡層在通信子網中建立一條獨立的網絡連接。需要較高吞吐量時就建立多條網絡連接來支持一條傳輸連接,起到分流作用;反之,節省通信開銷,就多條傳輸連接合用一條網絡連接,達到復用的作用。
5. 會話層
會話層為端系統的應用程序之間提供了對話控制機制,允許不同主機上的各種進程之間進行會話,并參與管理。是一個進程到進程的層次。會話層及以上層的數據傳送單位統稱為報文。
6. 表示層
表示層主要為上層用戶解決用戶信息的語法問題。為了讓不同的計算機采用不同的編碼方式,來表示用戶的抽象數據類型和數據結構,并管理這些抽象的數據結構,把計算機內部的表示形式轉換成網絡中采用的表示形式。
7. 應用層
應用層為特定類型的網絡應用提供了訪問OSI環境的手段。應用層包括一些管理功能以及支持分布式應用的常用機制,還有諸如文件傳送,電子郵件和遠程訪問等通用的應用協議。
##### TCP/IP模型
TCP/IP模型由四個層次組成,自下而上分別是鏈路層、互聯網層、傳輸層和應用層
1. 鏈路層
不是真正意義上的層次,是端系統和通信子網之間的邏輯接口,實現端系統和其相連的網絡進行數據交換。
2. 互聯網層
是TCP/IP模型中的`關鍵層次`,功能對應OSI的網絡層。
3. 傳輸層
功能對應OSI的傳輸層。
4. 應用層
TCP/IP模型中沒有會話層和表示層,由應用簡單包含了所需的會話和表示功能。
雖然OSI存在很多問題,但理念清除,理論完整。雖然OSI模型相關的協議已經很少使用,但是由于本身的通用性,每一層特性仍然非常重要,用來討論計算機網絡非常有用。
與此相反TCP/IP模型的使用價值不高,但是協議卻得到了廣泛使用。從某種意義上來說TCP/IP協議簇已經稱為了“事實上的工業標準”。
所以在學習計算機的原理時,綜合OSI和TCP/IP的優點,可以采用五個層次的體系結構:物理層,數據鏈路層,網絡層,傳輸層,應用層。
##### 進程間通信

兩個應用進程的通信
抽象的認為主機A與主機B之間層級一樣的是對等層。它們分別把數據交給對方的對等層。但是復雜的是下層做了復雜的封裝控制工作。
1. 主機A進程A將數據交給應用程
2. 主機A應用層加上自己的報文交給傳輸層
3. 主機A傳輸層加上自己的報文交給網絡層
4. 主機A網絡層加上自己的信息交給數據鏈路層
5. 主機A數據鏈路層的數據通過物理層的比特流發出
6. 經過交換結點時,交換結點進行從下到上的拆分和從上到下的組合再發送到A與B建立連接的通信子網中
7. 主機B物理層組裝數據交給數據鏈路層
8. 主機B的數據鏈路層分解協議和數據交給網絡層
9. 主機B的網絡層分解協議和數據交給傳輸層
10. 主機B的傳輸層分解協議和數據交給應用層
11. 主機B的應用層將數據交給進程B
注意:5個層同時進行工作,經過復雜的分工協作。對等層之間必須遵守各對等層之間的協議。
##### 實體、協議、服務和服務訪問點
1. 實體
實體這一名詞用來表示進行發送或接收信息的硬件或軟件進程。每一層都可看作若干個實體組成。位于對等層的交互實體稱為對等實體。OSI模型把對等層實體之間傳送的數據單位稱為協議數據單元。
2. 協議
協議是兩個對等實體通信行為規則的集合。協議的語法規則定義了所交換信息的結構或格式,而格式的語義規則定義了源端與目的端所要完成的操作。在協議的控制下,兩個對等實體間的通信使得本層能向上一層提供服務。當然,要實現本層的協議,還需要使用下一層提供的服務。
3. 服務
服務是同一開放系統中某一層向它的上一層提供的操作。下一層的實體是上一層實體的服務提供者,而上一層實體下一層實體的”服務用戶“。
4. 服務訪問點
服務訪問點是本層實體向上一層實體提供服務的交互處。它位于相鄰層的界面上,也是本層實體與上一層實體進行交互連接的邏輯接口。服務訪問點有時也成為端口(port).每一個服務訪問點都被賦予一個唯一的標識地址。同一個開放系統的相鄰層之間允許存在多個服務訪問點。本層一個實體通過多個服務訪問點提供服務的情況,稱為連接復用;上一層同一個實體使用多個服務訪問點的現象,稱為連接分用。一個服務訪問點一次只能連接相鄰層的兩個實體。
##### 面向連接服務與無連接服務
從通信的角度,服務可分為面向連接服務和無連接服務兩大類。
1. 面向連接
面向連接指的是兩個對等實體在進行數據交換之前必須先建立連接。當數據交換結束后應終止或釋放這種連接關系。面向連接具有建立連接、數據交換和釋放連接這三個階段,以及按序傳送數據的特點。雖面向連接因建立和釋放連接增加了通信開銷,卻可提供可靠的有序傳輸服務。
2. 無連接服務
無連接服務是指兩個對等實體間的通信無需先建立一個連接就可以進行數據交換。數據通信所需的資源可以動態分配,發、收兩方不必同事處于激活狀態。顯示了靈活方便和傳遞迅速的優點,但存在報文丟失、重復、失序的可能性。特點是服務簡單、通信開銷少,發完就結束,不需要接收端做任何相應。
##### 服務原語
一個服務可用一組“原語”來說明,`用戶進程`通過這些原語來訪問該服務。原語定義了該服務要執行的某個操作,或將對等實體所執行的操作告訴用戶。多數協議棧位于操作系統內,因此這些服務原語是一些系統調用。就是說服務原語的具體實現是通過操作系統內核提供的進程管理機制(如系統調用)來完成的。
可用的原語取決于底層提供的服務。面向連接服務和無連接服務的原語是不相同的。
下面是客戶/服務器環境下實現“請求-應答”交互式應用的原語。
1. LISTEN 等待一個連接,該原語具有阻塞作用
2. CONNECT 正在等待于對等實體建立連接
3. ACCEPT 接收來自對等實體的連接請求
4. RECEIVE 等待一個數據分組,該原語具有阻塞作用
5. SEND 向對等實體發送一個數據分組
6. DISCONNECT 終止一個連接,通常該原語具有阻塞作用