1. 程式人生 > >1、網路硬體、軟體

1、網路硬體、軟體

1.1、使用計算機網路

引言:

  • 大量互相獨立但彼此連線的計算機共同完成計算任務——這些系統被稱為計算機網路。如何設計並組織這些網路是本書的主題。
  • 計算機與分散式系統的關鍵差別在於:由一組獨立計算機組成的分散式系統呈現給使用者的是一個關聯絡統。最著名的分散式系統是全球資訊網。

1.1.1商業應用:

  • 公司內部通常需要資源共享。虛擬專用網路(VPN,Virrual Private
    Networks)技術可以將不同地點的單個網路連成一個擴充套件網路,以試圖終結“地理位置的束縛”。
  • 公司的資訊系統就像是一個或多個數據庫。資料儲存在效能強大的計算機上(即伺服器),通常伺服器集中在一起,由一個系統管理員負責維護,員工桌子上用於訪問資料的機器就稱為客戶機。這種安排方式稱為客戶機——伺服器模型。最受歡迎的是Web應用。
  • 構建計算機網路的第二個原因是公司員工之間通訊的需要。員工們可以使用電子郵件和IP語音通訊。領導可以使用視訊會議。桌面共享使得遠端工作人員與一個圖形化計算機螢幕互動工作,因而多個員工可以在不同地點讀寫同一塊黑板,或者合寫一份報告。
  • 第三個原因則是電子商務。這樣可以減少庫存,提高工作效率。

1.1.2家庭應用:

  • 個人與遠端資料庫之間的互動。
  • 對等通訊:使用客戶機——伺服器模型,但沒有固定分工,也沒有中央資料庫。每個使用者在本地維護自己的資料庫併為附近群體中的其他成員提供服務。(電子郵件本質上也是對等模式)
  • 人與人之間的通訊。電子郵件、即時訊息、遠端學習等。
  • 電子商務。
  • 娛樂。
  • 普適計算。通過嵌入智慧家居監控的感測器,家庭用電可以通過網路獲得;煙霧探測器可以直接呼叫消防部門。
  • 射頻識別(PFID,Raio Frequency IDentification)技術可能將物聯網世界的想法逐步變成現實。

1.1.3移動使用者:

  • 與Internet的連通性是移動應用(如筆記本)的前提。由電話公司經營的蜂窩網路是一種我們最熟悉的無線網路,通過基站提供的手機覆蓋面把大家聯絡在一些。基於802.11標準的無線熱點是另一種無線網路,只需一臺膝上型電腦和一個無線調變解調器就能連線到Internet。
  • 手機了驅動移動無線的應用,智慧手機迎上了電話和internet的融合時代,結合了行動電話和移動電腦兩方面的內容。它們連線的蜂窩網路可以提供Internet的快速資料服務,同時處理電話服務,許多手機還能連線到無線熱點。
  • 未來預見:感測器網路、可穿戴式計算機。

1.1.4社會問題

  • 敏感政治問題、盜版作品問題、隱私問題、資訊的真實性、垃圾資訊、電子賭博以及病毒、釣魚郵件等。
  • 完全自動圖靈測試(CAPTCHA,Completely Automated Public Turing test to tell Computers and Human Apart):區分人類和計算機的技術。例如在一個扭曲的影象中顯示字母並輸入對應的字母,以便證實他們是人類。

1.2網路硬體

引言:

  • 計算機網路沒有被普遍接受的分類方法,但有兩個重要維度:傳輸技術和網路尺度

傳輸技術:

  • 目前普遍使用的傳輸技術有兩種:廣播式鏈路和點到點鏈路。

  • 點到點鏈路:將一對單獨的機器連線起來。在這種網路中,為了從源端到達接收方,短訊息必須首先訪問一個或多箇中間機器,這種短訊息在某些情況下被稱為資料包或者包(packet)。通常在網路中有可能存在多條不同的路由,因此,找到一條好的路由對點到點網路非常重要。點到點傳輸只有一個傳送方和接收方,有時候也被稱為單播。

  • 廣播式鏈路:在此網路上,任何一臺機器發出的資料包能被其他任何機器收到。每個資料包的地址欄位指定了預期的接收方。當一個機器收到資料包時,它檢查地址欄位。如果包的目的地就是接收機器,則該機器要處理次資料包;否則忽略。廣播系統往往提供將一個數據包傳送給所有目標的可能性,只要在地址欄位中使用一個特殊的編碼。如果被傳輸的資料包帶有這樣的地址編碼,那麼網路中的每一臺機器都會接受該包並處理——即廣播。有些廣播系統還支援給一組機器傳送資料包的模式——即組播。

網路尺度:

  • 個域網、區域網、都會網路、廣域網、網際網路絡(兩個或多個網路的連線)。

  • 個域網(PAN,Personal Area Network):處理器之間的距離在10米之內。
    應用:計算機通過無線網路(藍芽)與外圍裝置連線。(如果外設不通過電纜連線的話)
    最簡單的形式下,藍芽採用主—從操作模式,系統單元(PC)通常是主裝置,與滑鼠、鍵盤燈從裝置通訊。主裝置告訴從裝置以後廣播時使用什麼地址、它們能傳輸多長時間、它們可以使用什麼頻率等所有與傳輸相關的資訊。
    其他應用:藍芽耳麥與手機,數字音樂播放器與汽車等(都是個域網)
    PAN也可以採用其他短程通訊技術搭建:比如智慧卡和圖書館書籍上的RFID。

  • 區域網(LAN,Local Area Network):處理器之間的距離在10公里之內。
    區域網是一種私有網路。區域網被廣泛用來連線個人計算機和消費電子裝置,使它們能夠共享資源和交換資訊。當局域網被用於公司時,它們就稱為企業網路。這些系統中,每臺計算機都有一個都有一個無線調變解調器和一個天線,用於與其他計算機通訊,大多數情況下,每臺計算機與安裝在天花板上的一個裝置通訊,這個裝置被稱為接入點、無線路由器或者基站,它負責中繼無線計算機之間、無線計算機與Internet之間的資料包。

  • IEEE 802.11:是無線區域網的一個標準,俗稱WiFi。

  • 有線區域網使用了各種不同的傳輸技術。它們大多使用銅線作為傳輸介質,有一些使用光纖。有線區域網在效能所有方面都超過了無線區域網,因為通過空氣傳送訊號更難。許多有線區域網的拓撲結構是以點到點鏈路為基礎的。俗稱乙太網的IEEE 802.3是迄今為止最常見的一種有線區域網。
    舉例:交換式乙太網——每臺計算機按照乙太網協議規定的方式執行,通過一條點到點鏈路連線到一個盒子,這個盒子稱為交換機。一個交換機有多個埠,每個埠連線一臺計算機。交換機的工作是中繼與之連線的計算機之間的資料包,根據每個資料包中的地址來確定這個資料包的目標計算機。為了建立更大的區域網,交換機必須插入到彼此的埠中。為了將大的區域網分成兩個較小的邏輯區域網即獨享的虛擬區域網(Virtual LAN或者VLAN),在這種設計中,交換機每個埠都帶有一個“彩色”的標籤,比如說綠色表示工程部門,而紅色表示財務部門,交換機在轉發資料時會區別開來。

  • 其他形式的有線區域網拓撲結構:經典乙太網(原始乙太網)——在最初的乙太網設計中,所有資料包在一條線性電纜上廣播,因而一次至多隻有一臺機器能成功傳送,為此,需要一個分散式仲裁機制來解決衝突問題。分散式機制的演算法很簡單:只要電纜空閒計算機就可以傳輸;如果兩個或以上的資料包發生衝突,每臺計算機只是等待一個隨機時間後再次試圖傳送。

  • 無線和有線廣播網路可以分為靜態設計和動態設計,兩種設計取決於如何分配通道。一個典型的靜態分配方案是將時間劃分為離散的時間間隔(時間槽)並使用輪循演算法,每臺機器只能在分配給它的時間槽到來時廣播。當一臺機器在分配給它的時間槽到來時沒有任何資料需要傳送,這種方案就浪費了時間,因此大多數系統都試圖動態分配通道。一個公共通道的動態分配方法可以是集中式的,也可以是分散式的。在集中式的通道分配方法中,有一箇中心實體,例如蜂窩網路中的基站,由這個中心實體決定接下來誰使用通道。具體的演算法可能是他接收多個數據包,按照某個內部演算法確定這些資料包傳送的優先次序。在分散式通道分配方法中,沒有一箇中心實體;每臺機器必須自行決定是否可以傳輸。

  • 都會網路(MAN,Metropolitan Area Network):處理器在100公里之內。
    應用:有線電視網。當Internet開始吸引人們的時候,有線電視網路經營商也開始意識到,只需要利用原來尚未使用的頻譜就可以提供雙向的Internet服務。電視訊號和Internet流量都被送往一個集中式線纜的前端,然後再分發到居民家中。
    有線電視不是唯一的都會網路,雖然它是一種區域網。另一種都會網路——被標準化為IEEE 802.16——即WiMAX。

  • 廣域網(WAN,Wide Area Network):處理器在一萬公里以內。
    以一個公司為例:公司在墨爾本、珀斯、布利斯三處有辦事處。每個辦事處的計算機稱為主機,連線主機的部分稱為子網。子網組成:傳輸線路和交換元素。傳輸線路負責在機器之間移動位元,可以是銅線、光纖、無線鏈路。交換元素或簡稱為交換機(現在常稱為路由器),是專用的計算機,負責連線兩條或兩條以上的傳輸線路。
    第一種廣域網:辦事處直接連線到Internet,辦事處通過虛擬鏈路相互連線,而這些虛擬鏈路使用了底層Internet的容量,這種方式稱為虛擬專用網路(VPN,Virtual Private Network)。
    第二種廣域網:子網由不同的公司負責運營。子網運營者稱為網路服務提供商。如果子網運營商還與Internet的其他網路相連,這樣的子網運營商稱為Internet服務提供商(ISP,Internet Service Provide),相應的子網被稱為ISP網路。兩個路由器沒有直連的傳輸線路,必須通過其他路由器間接通訊,決定使用哪條路徑的策略稱為路由演算法。每個路由器決定如何把一個數據包傳送到哪個位置的策略稱為轉發演算法。
    其他廣域網:衛星系統、蜂窩行動電話網路。

  • 網際網路絡:一組相互連線的網路稱為網際網路或網際網路。全球範圍的網際網路稱為因特網(首字母大寫),Internet使用ISP網路連線各種各樣的企業網路、家庭網路和其他網路。(第一,如果不同的組織出資構建了網路的不同部分,並且各自維護,那麼它們可以構成網際網路絡;第二,如果網路的不同部分採用了不同的底層技術,如廣播與點到點、無線與有線。也可以構成無線網路。)。將兩個或多個網路連線起來並提供必要轉換的機器,其硬體和軟體方面的總稱是閘道器。路由器可以是閘道器。

1.3、網路軟體

1.3.1 協議層次結構

  • 為了降低網路的複雜性,絕大多數網路被組織成一個層次棧或分級棧,每一層都建立在其下一層的基礎之上。
  • 一臺機器上的第n層與另一臺機器上的第n層進行對話,該對話中使用的規則和約定統稱為第n層協議(protocol)。
  • 不同機器上構成相應層次的實體稱為對等體(可以是軟體過程、硬體過程、甚至是人類)。
  • 每一層資料都將資料和控制資訊傳遞給它的下一層,直到傳遞到最底層,第一層下面是物理介質,通過它進行實際通訊。每一對相鄰層次之間的是介面。介面定義了下層向上層提供哪些原語操作和服務。層和協議的集合稱為網路體系結構。一個特定的系統所使用的一組協議,稱為協議棧。

1.3.2 層次設計問題

  • 可靠性:當某些位元遭到損壞,編碼的檢錯、糾錯機制;當某條路由不通時,網路應自動做出路由選擇。
  • 網路增長:協議分層,識別傳送方和接收方(定址和命名),訊息順序編號,網路傳輸的最大長度導致分段機制出現。
  • 資源分配:統計複用——動態共享網路寬頻,快速傳送方的資料不會把慢速接收方淹沒——流量控制,網路擁塞,實時的服務質量。
  • 安全性:保密性——認證機制,資訊完整性。

1.3.3 面向連線與無連線服務

  • 下層可以向上層提供兩種型別的服務:面向連線和無連線服務。
  • 面向連線服務:安裝電話系統建模的。服務使用者首先必須建立一個連線,然後使用該連線傳輸資料,最後釋放該連線。
  • 無連線服務:按照郵件系統建模的。每個報文(信件)都攜帶了完整的目標地址,每個報文都由系統中的中間節點路由,而且獨立於於後續報文。報文在不同上下文中有不同的稱呼:資料包/包是網路層的報文。如果中間節點收到報文所有內容後再發給下一個節點——儲存-轉換交換;如果報文在沒有全部接收完畢之前就向下一個節點傳輸——直通式交換。
  • 具體服務型別:
服務 例子
面向連線 可靠的報文流 順序頁面
面向連線 可靠的位元組流 移動下載
面向連線 不可靠的字連線 IP語音
無連線 不可靠的資料報 垃圾郵件
無連線 有確認的資料報 文字訊息
無連線 請求-應答 資料庫查詢

1.3.4 服務原語

  • 一個服務由一組原語正式說明,使用者程序通過這些原語(操作)來訪問該服務。原語告訴服務要執行某個動作,或者將對等體所執行的動作報告給使用者。如果協議棧位於作業系統中,則這些服務原語通常是一些系統呼叫。
  • 簡單例子
原語 含義
LISTEN 阻塞操作,等待入境連線請求
CONNECT 與等待中的對等實體建立連線
ACCEPT 接受來自對等實體的入境連線請求
RECEIVE 阻塞操作,等待入境報文
SEND 給對等實體傳送一個報文
DISCONNECT 終止一個連線

首先,伺服器執行LISTEN,表示它已經準備好接受入境連線。通常實現LISTEN的方式是將它做成一個阻塞的系統呼叫。在執行了LISTEN原語之後,伺服器程序被阻塞,知道有連線請求來到為止。
接著,客戶機執行CONNECT原語,以便於伺服器建立連線。CONNECT呼叫需要指定跟誰連線,所以它可能有一個引數來指定伺服器的地址。作業系統會發送一個數據包請求建立連線,客戶程序被掛起,直到有應答為止。
資料包到達伺服器時,伺服器看到這是一個請求連線包,它就檢查是否存在一個監聽程序。如果有,就解除該監聽程序的阻塞,用ACCEPT呼叫建立連線,之後發給客戶機一個確認訊息,客戶機接收後就恢復執行狀態,這時才真正建立一個連線。
下一步是伺服器執行RECEIVE,準備接受第一個請求。通常情況下,一旦伺服器從LISTEN的阻塞狀態被釋放後,會馬上執行RECEIVE,這時確認訊息往往還沒有到達客戶機。RECEIVE再次阻塞了伺服器。
然後客戶機執行SEND傳送它的請求,接著執行RECEIVE等待伺服器應答。請求資料包到達伺服器後,首先作業系統解除伺服器的RECEIVE阻塞,使得可以處理客戶請求。處理後,伺服器通過SEND將請求的執行結果返回給客戶機(是否此時繼續呼叫RECEIVE阻塞程序呢?書上無解釋)。資料包到達客戶機後,客戶機的RECEIVE阻塞被解除,並檢查伺服器返回的結果。如果客戶機還有其他請求,它現在可以繼續傳送這些請求。
如果客戶機的任務已經完成,它通過執行DISCONNECT終止當前連線,程序被阻塞,並給伺服器傳送一個數據包。伺服器接收這個包後,它也傳送一個DISCONNECT,作為確認訊息,並釋放該連線。伺服器的的包到達客戶機後,程序阻塞解除,該連線正式終止。綜上所述,就是面向連線的通訊過程。

1.3.5 服務與協議的關係
服務:是指某一層向上一層提供的一組原語(操作)。服務定義了該層準備代表使用者執行哪些操作。低層是上層的服務提供者。
協議:協議是一組規則,規定了同一層上對等體之間所交換的資料包或者報文的格式和含義。對等體利用協議來實現它們服務的定義。