1.7 計算機網絡體系結構
在計算機網絡的基本概念中,分層次的體系結構是最重要的。計算機網絡體系結構的抽象概念較多,在學習時要多思考。這些概念對后面的學習很有幫助。
1.7.1 計算機網絡體系結構的形成
計算機網絡是個非常復雜的系統。為了說明這一點,可以設想一個最簡單的情況:連接在網絡上的兩臺計算機要互相傳送文件。
顯然,在這兩臺計算機之間必須有一條傳送數據的通路。但這還遠遠不夠。至少還有以下幾件工作需要去完成:
(1)必須保證要傳送的計算機數據能在這條通路上正確發送和接收。
(2)要告訴網絡如何識別接收數據的計算機。
(3)發起通信的計算機必須查明對方計算機是否已開機,并且與網絡連接正常。
(4)發起通信的計算機中的應用程序必須弄清楚,在對方計算機中的文件管理程序是否已做好文件接收和存儲文件的準備工作。
(5)若計算機的文件格式不兼容,則至少其中的一個計算機應完成格式轉換功能。
(6)對出現的各種差錯和意外事故,如數據傳送錯誤、重復或丟失,網絡中某個結點交換機出故障等,應當有可靠的措施保證對方計算機最終能夠收到正確的文件。
還可以舉出一些要做的其他工作。由此可見。相互通信的兩個計算機系統必須高度協調工作才行,而這種“協調”是相當復雜的。為了設計這樣復雜的計算機網絡,早在最初的ARPANET設計時即提出了分層的方法。“分層”可將龐大而復雜的問題,轉化為若干較小的局部問題,而這些較小的局部問題就比較易于研究和處理。
1974年,美國的IBM公司宣布了系統網絡體系結構SNA(System Network Architecture)。這個著名的網絡標準就是按照分層的方法制訂的。現在用IBM大型機構建的專用網絡仍在使用SNA。不久后,其他一些公司也相繼推出自己公司的具有不同名稱的體系結構。
不同的網絡體系結構出現后,使用同一個公司生產的各種設備都能夠很容易地互連成網。這種情況顯然有利于一個公司壟斷市場。用戶一旦購買了某個公司的網絡,當需要擴大容量時,就只能再購買原公司的產品。如果購買了其他公司的產品,那么由于網絡體系結構的不同,就很難互相連通。
然而全球經濟的發展使得不同網絡體系結構的用戶迫切要求能夠互相交換信息。為了使不同體系結構的計算機網絡都能互連,國際標準化組織ISO于1977年成立了專門機構來研究該問題。不久,他們就提出一個試圖使各種計算機在世界范圍內互連成網的標準框架,即著名的開放系統互連基本參考模型OSI/RM(Open Systems Interconnection Reference Model),簡稱為OSI。“開放”是指非獨家壟斷的。因此只要遵循OSI標準,一個系統就可以和位于世界上任何地方的、也遵循這同一標準的其他任何系統進行通信。這一點很像世界范圍的電話和郵政系統,這兩個系統都是開放系統。“系統”是指在現實的系統中與互連有關的各部分(我們知道,并不是一個系統中的所有部分都與互連有關。OSI/RM參考模型是把與互連無關的部分除外,而僅僅考慮與互連有關的那些部分)。所以OSI/RM是個抽象的概念。在1983年形成了開放系統互連基本參考模型的正式文件,即著名的ISO7498國際標準,也就是所謂的七層協議的體系結構。
OSI試圖達到一種理想境界,即全世界的計算機網絡都遵循這個統一的標準,因而全世界的計算機將能夠很方便地進行互連和交換數據。在20世紀80年代,許多大公司甚至一些國家的政府機構紛紛表示支持OSI。當時看來似乎在不久的將來全世界一定會按照OSI制定的標準來構造自己的計算機網絡。然而到了20世紀90年代初期,雖然整套的OSI國際標準都已經制定出來了,但由于因特網已搶先在全世界覆蓋了相當大的范圍,而與此同時卻幾乎找不到有哪個廠家生產出符合OSI標準的商用產品。因此人們得出這樣的結論:OSI只獲得了一些理論研究的成果,但在市場化方面OSI則事與愿違地失敗了。現今規模最大的、覆蓋全世界的因特網并未使用OSI標準。OSI失敗的原因可歸納為:
(1)OSI的專家們缺乏實際經驗,他們在完成OSI標準時缺乏商業驅動力;
(2)OSI的協議實現起來過分復雜,而且運行效率很低;
(3)OSI標準的制定周期太長,因而使得按OSI標準生產的設備無法及時進入市場;
(4)OSI的層次劃分不太合理,有些功能在多個層次中重復出現。
順便說一下,雖然OSI在一開始是由ISO來制訂的,但后來的許多標準都是ISO與原來的國際電報電話咨詢委員會CCITT聯合制訂的。從歷史上來看,CCITT原來是從通信的角度考慮一些標準的制定,而ISO則關心信息的處理。但隨著科學技術的發展,通信與信息處理的界限變得比較模糊了。于是,通信與信息處理就都成為CCITT與ISO所共同關心的領域。CCITT的建議書X.200就是關于開放系統互連參考模型,它和上面提到的ISO7498基本上是相同的。
按照一般的概念,網絡技術和設備只有符合有關的國際標準才能大范圍地獲得工程上的應用。但現在情況卻反過來了。得到最廣泛應用的不是法律上的國際標準OSI,而是非國際標準TCP/IP。這樣,TCP/IP就常被稱為是事實上的國際標準。從這種意義上說,能夠占領市場的就是標準。在過去制定標準的組織中往往以專家、學者為主。但現在許多公司都紛紛擠進各種各樣的標準化組織,使得技術標準具有濃厚的商業氣息。一個新標準的出現,有時不一定反映出其技術水平是最先進的,而是往往有著一定的市場背景。
1.7.2 協議與劃分層次
在計算機網絡中要做到有條不紊地交換數據,就必須遵守一些事先約定好的規則。這些規則明確規定了所交換的數據的格式,以及需要發出何種控制信息和響應(包括事件實現順序)。這些為進行網絡中的數據交換而建立的規則、標準或約定稱為網絡協議(network protocol)。網絡協議也可簡稱為協議。
由此可見,網絡協議是計算機網絡的不可缺少的組成部分。實際上,只要我們想讓連接在網絡上的另一臺計算機做點什么事情(例如,從網絡上的某臺主機下載文件),我們都需要有協議。但是當我們經常在自己的PC上進行文件的讀寫操作時,就不需要任何網絡協議,除非這個用來存儲文件的磁盤是網絡上的某個文件服務器的磁盤。
協議通常有兩種不同的形式。一種是使用便于人來閱讀和理解的文字描述。另一種是使用讓計算機能夠理解的程序代碼。這兩種不同形式的協議都必須能夠對網絡上信息交換過程做出精確的解釋。
ARPANET的研制經驗表明,對于非常復雜的計算機網絡協議,其結構應該是層次式的。我們可以舉一個簡單的例子來說明劃分層次的概念。
現在假定我們在主機1和主機2之間通過一個通信網絡傳送文件。這是一件比較復雜的工作,因為需要做不少的工作。
我們可以將要做的工作劃分為三類。第一類工作與傳送文件直接有關。例如,發送端的文件傳送應用程序應當確信接收端的文件管理程序已做好接收和存儲文件的準備。若兩臺主機所用的文件格式不一樣,則至少其中的一臺主機應完成文件格式的轉換。這兩件工作可用一個文件傳送模塊來完成。這樣,兩臺主機可將文件傳送模塊作為最高的一層(見圖1-14)。在這兩個模塊之間的虛線表示兩臺主機系統交換文件和一些有關文件交換的命令。

圖1-14 劃分層次的舉例
但是,我們并不想讓文件傳送模塊完成全部工作的細節,這樣會使文件傳送模塊過于復雜。可以再設立一個通信服務模塊,用來保證文件和文件傳送命令可靠地在兩個系統之間交換。也就是說,讓位于上面的文件傳送模塊利用下面的通信服務模塊所提供的服務。我們還可以看出,如果將位于上面的文件傳送模塊換成電子郵件模塊,那么電子郵件模塊同樣可以利用在它下面的通信服務模塊所提供的可靠通信的服務。
同樣道理,我們再構造一個網絡接入模塊,讓這個模塊負責做與網絡接口細節有關的工作,并向上層提供服務,使上面的通信服務模塊能夠完成可靠通信的任務。
從上述簡單例子可以更好地理解分層可以帶來很多好處。例如:
(1)各層之間是獨立的。某一層并不需要知道它的下一層是如何實現的,而僅僅需要知道該層通過層間的接口(即界面)所提供的服務。由于每一層只實現一種相對獨立的功能,因而可將一個難以處理的復雜問題分解為若干個較容易處理的更小一些的問題。這樣,整個問題的復雜程度就降低了。
(2)靈活性好。當任何一層發生變化時(例如由于技術的變化),只要層間接口關系保持不變,則在這層以上或以下各層均不受影響。此外,對某一層提供的服務還可進行修改。當某層提供的服務不再需要時,甚至可以將這層取消。
(3)結構上可分割開。各層都可以采用最合適的技術來實現。
(4)易于實現和維護。這種結構使得實現和調試一個龐大而又復雜的系統變得易于處理,因為整個的系統已被分解為若干個相對獨立的子系統。
(5)能促進標準化工作。因為每一層的功能及其所提供的服務都已有了精確的說明。
分層時應注意使每一層的功能非常明確。若層數太少,就會使每一層的協議太復雜。但層數太多又會在描述和綜合各層功能的系統工程任務時遇到較多的困難。通常各層所要完成的功能主要有以下一些(可以只包括一種,也可以包括多種):
① 差錯控制 使得和網絡對等端的相應層次的通信更加可靠。
② 流量控制 使得發送端的發送速率不要太快,要使接收端來得及接收。
③ 分段和重裝 發送端將要發送的數據塊劃分為更小的單位,在接收端將其還原。
④ 復用和分用 發送端幾個高層會話復用一條低層的連接,在接收端再進行分用。
⑤ 連接建立和釋放 交換數據前先建立一條邏輯連接。數據傳送結束后釋放連接。
分層當然也有一些缺點,例如,有些功能會在不同的層次中重復出現,因而產生了額外開銷。
我們把計算機網絡的各層及其協議的集合,稱為網絡的體系結構(architecture)。換種說法,計算機網絡的體系結構就是這個計算機網絡及其構件所應完成的功能的精確定義。需要強調的是:這些功能究竟是用何種硬件或軟件完成的,則是一個遵循這種體系結構的實現(implementation)的問題。體系結構的英文名詞architecture的原意是建筑學或建筑的設計和風格。它和一個具體的建筑物的概念很不相同。例如,我們可以走進一個明代的建筑物中,但卻不能走進一個明代的建筑風格之中。同理,我們也不能把一個具體的計算機網絡說成是一個抽象的網絡體系結構。總之,體系結構是抽象的,而實現則是具體的,是真正在運行的計算機硬件和軟件。
1.7.3 具有五層協議的體系結構
OSI的七層協議體系結構的概念清楚,理論也較完整,但它既復雜又不實用。TCP/IP體系結構則相反,但它現在卻得到了非常廣泛的應用。TCP/IP是一個四層的體系結構,它包含應用層、運輸層、網際層和網絡接口層。不過從實質上講,TCP/IP只有最上面的三層,因為最下面的網絡接口層并沒有什么具體內容。因此在學習計算機網絡的原理時往往采取折中的辦法,即綜合OSI和TCP/IP的優點,采用一種只有五層協議的體系結構(見圖1-15),這樣既簡潔又能將概念闡述清楚。

圖1-15 具有五層協議的計算機網絡體系結構
現在結合因特網的情況,自上而下地、非常簡要地介紹一下各層的主要功能。實際上,只有認真學習完本書各章的協議后才能真正弄清各層的作用。
(1)應用層(application layer)
應用層是體系結構中的最高層。應用層直接為用戶的應用進程提供服務。這里的進程(process)就是指正在運行的程序。在因特網中的應用層協議很多,如支持萬維網應用的HTTP協議,支持電子郵件的SMTP協議,支持文件傳送的FTP協議,等等。
(2)運輸層(transport layer)
運輸層的任務就是負責向兩臺主機中進程之間的通信提供服務。由于一臺主機可同時運行多個進程,因此運輸層有復用和分用的功能。復用就是多個應用層進程可同時使用下面運輸層的服務,分用則是運輸層把收到的信息分別交付上面應用層中的相應的進程。
運輸層主要使用以下兩種協議:
① 傳輸控制協議TCP(Transmission Control Protocol)——面向連接的,數據傳輸的單位是報文段(segment),能夠提供可靠的交付。
② 用戶數據報協議UDP(User Datagram Protocol)——無連接的,數據傳輸的單位是用戶數據報,不保證提供可靠的交付,只能提供“盡最大努力交付(best-effort delivery)”。
(3)網絡層(network layer)
網絡層負責為分組交換網上的不同主機提供通信服務。在發送數據時,網絡層把運輸層產生的報文段或用戶數據報封裝成分組或包進行傳送。在TCP/IP體系中,由于網絡層使用IP協議,因此分組也叫作IP數據報,或簡稱為數據報。
請注意:不要將運輸層的“用戶數據報UDP”和網絡層的“IP數據報”弄混。
還有一點也請注意:無論在哪一層傳送的數據單元,習慣上都可籠統地用“分組”來表示(特別是在網絡層討論問題時)。在閱讀國外文獻時,特別要注意packet(分組或包)往往是作為任何一層傳送的數據單元的同義詞。
網絡層的另一個任務就是要使源主機運輸層所傳下來的分組,能夠通過網絡中的路由器找到合適的路由,最后到達目的主機。例如,在圖1-11(b)中,從主機H1發送到H5的分組,有的沿路由H1→R1→R2→R4→R5→H5傳送,而有的沿路由H1→R1→R3→R5→H5傳送。
這里要強調指出,網絡層中的“網絡”二字,已不是我們通常談到的具體的網絡,而是在計算機網絡體系結構模型中的專用名詞。
對于由廣播信道構成的分組交換網,路由選擇的問題很簡單,因此這種網絡的網絡層非常簡單,甚至可以沒有。
因特網是一個很大的互聯網,它由大量的異構(heterogeneous)網絡通過路由器(router)相互連接起來。因特網主要的網絡層協議是無連接的網際協議IP(Internet Protocol)和許多種路由選擇協議,因此因特網的網絡層也叫做網際層或IP層。在本書中,網絡層、網際層和IP層都是同義語。
(4)數據鏈路層(data link layer)
數據鏈路層常簡稱為鏈路層。我們知道,兩臺主機之間的數據傳輸,總是在一段一段的鏈路上傳送的,也就是說,在兩個相鄰結點之間(主機和路由器之間或兩個路由器之間)傳送數據是直接傳送的(點對點)。這時就需要使用專門的鏈路層的協議。在兩個相鄰結點之間傳送數據時,數據鏈路層將網絡層交下來的IP數據報組裝成幀(framing),在兩個相鄰結點間的鏈路上“透明”地傳送幀(frame)中的數據。每一幀包括數據和必要的控制信息(如同步信息、地址信息、差錯控制等)。典型的幀長是幾百字節到一千多字節。
“透明”是一個很重要的術語。它表示:某一個實際存在的事物看起來卻好像不存在一樣(例如,你看不見在你前面有100%透明的玻璃的存在)。“在數據鏈路層透明傳送數據”表示無論什么樣的比特組合的數據都能夠通過這個數據鏈路層。因此,對所傳送的數據來說,這些數據就“看不見”數據鏈路層。或者說,數據鏈路層對這些數據來說是透明的。
在接收數據時,控制信息使接收端能夠知道一個幀從哪個比特開始和到哪個比特結束。這樣,數據鏈路層在收到一個幀后,就可從中提取出數據部分,上交給網絡層。
控制信息還使接收端能夠檢測到所收到的幀中有無差錯。如發現有差錯,數據鏈路層就簡單地丟棄這個出了差錯的幀,以免繼續在網絡中傳送下去白白浪費網絡資源。如果需要改正數據在數據鏈路層傳輸時出現的差錯(這就是說,數據鏈路層不僅要檢錯,而且要糾錯),那么就要采用可靠傳輸協議來糾正出現的差錯。這種方法會使數據鏈路層的協議復雜些。
(5)物理層(physical layer)
在物理層上所傳送的數據的單位是比特。物理層的任務就是透明地傳送比特流。也就是說,發送方發送1(或0)時,接收方應當收到1(或0)而不是0(或1)。因此物理層要考慮用多大的電壓代表“1”或“0”,以及接收方如何識別出發送方所發送的比特。物理層還要確定連接電纜的插頭應當有多少根引腳,以及各條引腳應如何連接。當然,哪幾個比特代表什么意思,則不是物理層所要管的。請注意,傳遞信息所利用的一些物理媒體,如雙絞線、同軸電纜、光纜、無線信道等,并不在物理層協議之內而是在物理層協議的下面。因此也有人把物理媒體當做第0層。
在因特網所使用的各種協議中,最重要的和最著名的就是TCP和IP兩個協議。現在人們經常提到的TCP/IP并不一定是單指TCP和IP這兩個具體的協議,而往往是表示因特網所使用的整個TCP/IP協議族(protocol suite)。
圖1-16說明的是應用進程的數據在各層之間的傳遞過程中所經歷的變化。這里為簡單起見,假定兩臺主機是直接相連的。

圖1-16 數據在各層之間的傳遞過程
假定主機1的應用進程AP1向主機2的應用進程AP2傳送數據。AP1先將其數據交給本主機的第5層(應用層)。第5層加上必要的控制信息H5就變成了下一層的數據單元。第4層(運輸層)收到這個數據單元后,加上本層的控制信息H4,再交給第3層(網絡層),成為第3層的數據單元。依此類推。不過到了第2層(數據鏈路層)后,控制信息被分成兩部分,分別加到本層數據單元的首部(H2)和尾部(T2);而第1層(物理層)由于是比特流的傳送,所以不再加上控制信息。請注意,傳送比特流時應從首部開始傳送。
OSI參考模型把對等層次之間傳送的數據單位稱為該層的協議數據單元PDU(Protocol Data Unit)。這個名詞現已被許多非OSI標準采用。
當這一串的比特流離開主機1經網絡的物理媒體傳送到目的站主機2時,就從主機2的第1層依次上升到第5層。每一層根據控制信息進行必要的操作,然后將控制信息剝去,將該層剩下的數據單元上交給更高的一層。最后,把應用進程AP1發送的數據交給目的站的應用進程AP2。
可以用一個簡單例子來比喻上述過程。有一封信從最高層向下傳,每經過一層就包上一個新的信封,寫上必要的地址信息。包有多個信封的信件傳送到目的站后,從第1層起,每層拆開一個信封后就把信封中的信交給它的上一層。傳到最高層后,取出發信人所發的信交給收信人。
雖然應用進程數據要經過如圖1-16所示的復雜過程才能送到終點的應用進程,但這些復雜過程對用戶來說,卻都被屏蔽掉了,以致應用進程AP1覺得好像是直接把數據交給了應用進程AP2。同理,任何兩個同樣的層次(例如在兩個系統的第4層)之間,也好像如同圖1-16中的水平虛線所示的那樣,將數據(即數據單元加上控制信息)通過水平虛線直接傳遞給對方。這就是所謂的“對等層(peer layers)”之間的通信。我們以前經常提到的各層協議,實際上就是在各個對等層之間傳遞數據時的各項規定。
在文獻中還可以見到術語“協議棧(protocol stack)”。這是因為幾個層次畫在一起很像一個棧(stack)的結構。
1.7.4 實體、協議和服務
當研究開放系統中的信息交換時,往往使用實體(entity)這一較為抽象的名詞來表示任何可發送或接收信息的硬件或軟件進程。在許多情況下,實體就是一個特定的軟件模塊。
協議是控制兩個對等實體(或多個實體)進行通信的規則的集合。協議的語法方面的規則定義了所交換的信息的格式,而協議的語義方面的規則就定義了發送者或接收者所要完成的操作,例如,在何種條件下數據必須重傳或丟棄。
在協議的控制下,兩個對等實體間的通信使得本層能夠向上一層提供服務。要實現本層協議,還需要使用下面一層所提供的服務。
一定要弄清楚,協議和服務在概念上是很不一樣的。
首先,協議的實現保證了能夠向上一層提供服務。使用本層服務的實體只能看見服務而無法看見下面的協議。下面的協議對上面的實體是透明的。
其次,協議是“水平的”,即協議是控制對等實體之間通信的規則。但服務是“垂直的”,即服務是由下層向上層通過層間接口提供的。另外,并非在一個層內完成的全部功能都稱為服務。只有那些能夠被高一層實體“看得見”的功能才能稱之為“服務”。
計算機網絡的協議還有一個很重要的特點,就是協議必須把所有不利的條件事先都估計到,而不能假定一切都是正常的和非常理想的。例如,兩個朋友在電話中約好,下午3時在某公園門口碰頭,并且約定“不見不散”。這就是一個很不科學的協議,因為任何一方臨時有急事來不了而又無法通知對方時(如對方的電話或手機都無法接通),則另一方按照協議就必須永遠等待下去。因此,看一個計算機網絡協議是否正確,不能只看在正常情況下是否正確,而且還必須非常仔細地檢查這個協議能否應付各種異常情況。
下面是一個有關網絡協議的非常著名的例子。
【例1-1】 占據東、西兩個山頂的藍軍1和藍軍2與駐扎在山谷的白軍作戰。其力量對比是:單獨的藍軍1或藍軍2打不過白軍,但藍軍1和藍軍2協同作戰則可戰勝白軍。現藍軍1擬于次日正午向白軍發起攻擊。于是用計算機發送電文給藍軍2。但通信線路很不好,電文出錯或丟失的可能性較大(沒有電話可使用)。因此要求收到電文的友軍必須回送一個確認電文。但此確認電文也可能出錯或丟失。試問能否設計出一種協議使得藍軍1和藍軍2能夠實現協同作戰因而一定(即100%而不是99.999…%)取得勝利?
解:藍軍1先發送:“擬于明日正午向白軍發起攻擊,請協同作戰和確認。”
假定藍軍2收到電文后發回了確認。
然而現在藍軍1和藍軍2都不敢下決心進攻。因為,藍軍2不知道此確認電文對方是否正確地收到了。如未正確收到,則藍軍1必定不敢冒然進攻。在此情況下,自己單方面發起進攻就肯定要失敗。因此,必須等待藍軍1發送“對確認的確認”。
假定藍軍2收到了藍軍1發來的確認。但藍軍1同樣關心自己發出的確認是否已被對方正確地收到。因此還要等待藍軍2的“對確認的確認的確認”。
這樣無限循環下去,藍軍1和藍軍2都始終無法確定自己最后發出的電文對方是否已經收到(見圖1-17)。因此,在本例題給出的條件下,沒有一種協議可以使藍軍1和藍軍2能夠100%地確保勝利。

圖1-17 無限循環的協議
這個例子告訴我們,看似非常簡單的協議,設計起來要考慮的問題還是比較多的。
1.7.5 TCP/IP的體系結構
前面已經說過,TCP/IP的體系結構比較簡單,它只有四層。圖1-18給出了用這種四層協議表示方法的例子。請注意,圖中的路由器在轉發分組時最高只用到網絡層而沒有使用運輸層和應用層。

圖1-18 TCP/IP四層協議的表示方法舉例
還有一種方法,就是分層次畫出具體的協議來表示TCP/IP協議族(見圖1-19),它的特點是上下兩頭大而中間小:應用層和網絡接口層都有多種協議,而中間的IP層很小,上層的各種協議都向下匯聚到一個IP協議中。這種很像沙漏計時器形狀的TCP/IP協議族表明:TCP/IP協議可以為各式各樣的應用提供服務(所謂的everything over IP),同時TCP/IP協議也允許IP協議在各式各樣的網絡構成的互聯網上運行(所謂的IP over everything)。正因為如此,因特網才會發展到今天的這種全球規模。從圖1-19不難看出IP協議在因特網中的核心作用。

圖1-19 沙漏計時器形狀的TCP/IP協議族示意
【例1-2】 利用協議棧的概念,說明在因特網中常用的客戶-服務器工作方式。
解:圖1-20中的主機A和主機B都各有自己的協議棧。主機A中的應用進程(即客戶進程)的位置在最高的應用層。這個客戶進程向主機B應用層的服務器進程發出請求,請求建立連接(圖中的?)。然后,主機B中的服務器進程接受A的客戶進程發來的請求(圖中的?)。所有這些通信,實際上都需要使用下面各層所提供的服務。但若僅僅考慮客戶進程和服務器進程的交互,則可把它們之間的交互看成是如圖1-20中的水平虛線所示的那樣。

圖1-20 在應用層的客戶進程和服務器進程的交互
圖1-21畫出了三臺主機的協議棧。主機C的應用層中同時有兩個服務器進程在通信。服務器1在和主機A中的客戶1通信,而服務器2在和主機B中的客戶2通信。有的服務器進程可以同時向幾百個客戶進程提供服務。

圖1-21 主機C的兩個服務器進程分別向A和B的客戶進程提供服務
本章的重要概念
● 計算機網絡(可簡稱為網絡)把許多計算機連接在一起,而互聯網則把許多網絡連接在一起。因特網是世界上最大的互聯網。
● 以小寫字母i開始的internet(互聯網或互連網)是通用名詞,它泛指由多個計算機網絡互連而成的網絡。在這些網絡之間的通信協議(即通信規則)可以是任意的。
● 以大寫字母I開始的Internet(因特網)是專用名詞,它指當前全球最大的、開放的、由眾多網絡相互連接而成的特定計算機網絡,它采用TCP/IP協議族作為通信規則,且其前身是美國的ARPANET。
● 因特網現在采用存儲轉發的分組交換技術,以及三層ISP結構。
● 因特網按工作方式可劃分為邊緣部分與核心部分。主機在網絡的邊緣部分,其作用是進行信息處理。路由器在網絡的核心部分,其作用是按存儲轉發方式進行分組交換。
● 計算機通信是計算機中的進程(即運行著的程序)之間的通信。計算機網絡采用的通信方式是客戶-服務器方式和對等連接方式(P2P方式)。
● 客戶和服務器都是指通信中所涉及的兩個應用進程。客戶是服務請求方,服務器是服務提供方。
● 按作用范圍的不同,計算機網絡分為廣域網WAN、城域網MAN、局域網LAN和個人區域網PAN。
● 計算機網絡最常用的性能指標是:速率、帶寬、吞吐量、時延(發送時延、傳播時延、處理時延、排隊時延)和信道(或網絡)利用率。
● 網絡協議即協議,是為進行網絡中的數據交換而建立的規則。計算機網絡的各層及其協議的集合,稱為網絡的體系結構。
● 五層協議的體系結構由應用層、運輸層、網絡層(或網際層)、數據鏈路層和物理層
組成。運輸層最重要的協議是TCP和UDP協議,而網絡層最重要的協議是IP協議。