計算機網絡01:計算機網絡概述


目錄

第一章 計算機網絡概述

1.1 什么是計算機網絡

計算機網絡就是由多個互聯的計算機連接在一起,使用通信系統達到共享數據資源和互相通信的目的的系統。

計算機網絡系統與交通系統具有很多相似之處,下面的內容也會以交通系統類比來進行敘述。

1.1.1 計算機網絡的特性

計算機網絡具有如下特性:

  1. 計算機網絡必須連接兩個或多個自治的計算機
    • 自治的計算機指一台計算機不需要依賴其他計算機,可以自主獨立運行,即計算機之間不存在主從關系
  2. 計算機可以位於地理上的任意位置
  3. 如果兩台計算機可以進行數據交流,則稱這兩台計算機是互聯的
  4. 計算機網絡不受大小、形狀和形式的限制

1.1.2 計算機網絡的組成

實際上,所有關於計算機方面的系統或技術都是由兩方面組成的:硬件和軟件。計算機網絡的完善所依托的硬件主要有以下幾種:

  • 端系統:主機,大型機,個人計算機,客戶端,工作站,服務器等
  • 中間系統(支持端系統彼此互聯):路由器(Router),交換機(Switcher)
  • 接口:NIC(網卡),Modem(調制解調器,即俗稱的“貓”)
  • 媒介:雙絞線(網線),銅軸電纜,光纖,無線連接

其中,端系統指的就是計算資源到達的最終位置,也是利用計算資源的位置;中間系統則是端系統之間進行連接所必需的設備,其地位類似於交通網絡中的信號燈。

網絡信息到達終端(比如個人計算機)中,終端又該如何使用這個網絡信息呢?顯然,這種使用方式是具有很強的硬件依賴性的,如果只定義一種使用方式,在終端A中可以正常工作,但在終端B中也許就無法正常運行,而需要重新設計使用方式。為了避免這種情況帶來的麻煩,我們可以為每一種終端設計一個接口,接口之外連接外部網絡,接口之內則用來適配各種不同的硬件,這樣一來,對於某種終端,只需要按照其對應的接口安裝一個適配器,就可以自由使用外部網絡,這就是接口的優勢。而終端上的這種網絡適配器就是NIC,即網卡。

媒介指的是主機之間的鏈路構成,類似交通系統中的公路:汽車只有運行在公路上才能從一個地方運行到另一個地方。常見的網絡鏈路媒介有雙絞線(網線)、銅軸電纜、光纖等,近些年無線網絡也在迅速普及,其媒介是電磁波。

計算機網絡的運行所依賴的軟件有以下幾種:

  • 協議:CSMA/CD,TCP/IP,UDP,PPP,ATM
  • 應用程序:HTTP,SMTP,FTP,Telnet

協議的內容之后會進行詳細敘述,在此只進行一個簡單的類比:

交通系統難道有了道路,有了汽車就可以正常運轉嗎?如果每輛車都可以隨心所欲地跑,難免會出現嚴重的交通事故。因此,交通系統還需要一個極其重要的內容:交通法規。交通法規規定了各個車輛在各種情況下應該如何運行,有了交規才能保證各個車輛有序並安全地運行。而協議在計算機網絡中的地位和作用就類似於交通法規:規定了數據應該以何種格式進行傳輸。

1.1.3 計算機網絡的應用

  • 資源共享
    • 硬件(計算資源,硬盤,打印機)
    • 軟件(應用程序,如數據庫等)
  • 信息共享
    • 在任意位置都可以訪問所需信息(文件,數據庫等)
    • 搜索能力(www)
  • 通訊
    • 電子郵件
    • 消息廣播
  • 移動終端
    • hotspot
    • 3G,4G,5G
    • 可穿戴計算設備

1.1.4 計算機網絡的分類

  • 按照網絡的拓撲結構分類
    • 拓撲結構:定義了計算機、打印機、路由器、交換機等互聯起來的方式

    • 拓朴結構描述了網絡設備與物理媒介構成的進行數據傳輸的路徑布局(layout)

    • 下圖中每個結點代表一個主機,路徑代表物理媒介

    • 總線型拓撲:

      • 各個節點通過鏈路連接到一條總線上
    • 星型拓撲

      • 是局域網絡常用的拓撲結構
    • 擴展星型拓撲(樹型拓撲)

      • 當網絡節點比較多時,可以采用樹型拓撲
      • 可以控制流量,防止網絡風暴等
    • 環形拓撲

      • 一個幀從一個節點按照一定的方向開始訪問其他節點,如果某一個節點有消息需要傳遞給其他結點,則在幀經過此節點時將信息和目的地址裝載到幀上,當幀經過目的節點時將數據發送給該節點。

      • 單環拓撲結構

      • 雙環拓撲結構

  • 按照網絡規模分類:
    • 局域網 LAN
      • 地理范圍最小
      • 一個區域的一組計算機通過鏈路連接或者無線連接
    • 廣域網 LAN
      • 地理范圍較小
      • 一個較大的區域內的計算機互聯互通
    • 因特網 Internet
      • 網絡之網絡,即由各種網絡之間互聯形成的全球性網絡
      • 用戶只要獲得允許,就可以從任何一個主機獲得消息,即使主機位於遠端
  • 按照網絡邊界分類
    • 內聯網 Intranet
      • 私有網絡
      • 在一個企業/機構的內部,提供相對封閉的網絡環境
      • 分層次進行開放,有權限的人員才能夠訪問,而外來人員的訪問則受到限制
    • 外聯網 Extranet
      • 私有網絡
      • 使用互聯網技術和公共通信系統來確保企業的合作伙伴可以訪問企業內部的信息或操作
      • 可以看作一個企業或公司的內聯網的一部分擴展到了公司的外部,由獲得許可的外部人員訪問

1.1.5 因特網

因特網:由大量互聯的計算設備彼此互聯,連接到一個通信網絡上實現通信和共享資源。

在互聯網中,主機即表示端系統。在主機中運行着各種網絡應用程序。

主機與主機之間通過通信鏈路與分組交換機實現互聯互通:

  • 鏈路:光纖、電纜、衛星通信

  • 網絡帶寬:衡量網絡數據的傳輸速率的量,單位為bit/s,即bps

  • 分組交換機

    • 對到達的分組進行轉發
    • 路由器與交換機
  • 協議

    • 控制發送和接收消息的方式
    • 例如:TCP、IP、HTTP、FTP、PPP
  • 互聯網:網絡之網絡

    • ISP:網絡提供商(層次結構的)
    • 松散的層次結構
  • 網絡標准

    • RFC
    • IETF

1.1.6 協議

什么是協議?人類之間的交流是遵循一定的協議的,如果你想與另一個人對話,你需要說”你好“,根據另一個人的回答再決定你的下一句話。而在計算機網絡中,主機之間的數據交換也是遵循一定的協議的:

與人類交流的協議不同,計算機網絡協議交流的主體是機器設備而不是人。所有的網絡通信都會受到這個協議的制約,也因此才實現了網絡通信格式的規范化,使得處理網絡數據的過程更加簡單。

計算機網絡定義了網絡實體之間發送和接收的消息的格式和順序,還有收到消息后的行為。以郵政系統為例,如果A給B寫了一封信,這封信該如何通過郵政系統到達B的手中?如果直接將這封信放到郵箱里,郵遞員並不知道這封信該從哪里寄往哪里,也不知道這封信到底是要寄出的信件還是剛剛收到的信件。正確方式是,將這封信件裝在信封里,寫地址,貼郵票,再放到信箱中,這樣郵遞員才有足夠的信息將這封信寄到正確的地址。從這個過程來看,信件的傳遞需要遵循郵政系統的規則,網絡中信息的交流同樣需要協議來規范。

1.1.7 從服務的角度看待因特網

因特網是為應用程序提供服務的基礎設施。這些應用程序包括:

  • Web程序
  • VoIP
  • Email
  • ……

因特網也提供了應用程序的編程接口。

1.2 因特網的歷史

1.2.1 1961~1972年:早期的分組交換原則

  • 1961年:Kleinrock隊列理論證明了分組交換的有效性
  • 1964年:RAND公司的Paul Baran在軍方網絡中使用了分組交換技術
    • 注:Paul Baran 被譽為分組交換技術的三個奠基人之一
  • 1967年:美國高級研究計划署構思ARPAnet
    • 互聯網的前身就是阿帕網(ARPANET,又稱ARPA網)
  • 1969年:第一個可操作的ARPAnet結點誕生
  • 1972年:
    • ARPAnet向公眾展示
    • NCP(Network Control Protocal,網絡控制協議)第一個主機到主機的協議誕生
    • 第一個電子郵件程序誕生
    • ARPAnet有了十五個結點

1.2.2 1972~1980:互聯網絡,新型專有網絡

  • 1970年:夏威夷的ALOHAnet衛星網絡誕生
  • 1974年:Cerf和Kahn——互聯網絡的體系結構
    • 國際計算機協會(ACM)於2005年2月16日宣布Vinton G.CerfRobert E.Kahn為2004年A.M.圖靈獎獲得者。
    • 1973年,Cerf加入了Kahn所在的一個國防遠景規划局(ARPA)的項目,將三個獨立的網絡連接成要給完整的“網絡之網”。他們試圖發展一個開放體系的網絡模型,使得不同種類的網絡之間可以相互通訊,不受具體硬件和軟件配置的影響,並且具有足夠的靈活性和端到端的可靠性來克服子網絡之間的傳輸錯誤和不一致。他們的合作最終達成共識:在網絡之間需要一個“網關”來容納不同的界面和數據包。這就意味着需要在一個全球性的網絡上指定一些主機,為此他們提出了互聯網協議(IP)地址的概念。
    • 在加州大學洛杉磯分校讀研究生期間,Cerf曾經為現在所說的ARPANET工作,為ARPA的最雛形的分組交換網絡的主機對主機的協議作過相關工作。Kahn,在加入ARPA之前,就已經在BBN(Bolt Beranek and Newman)領導了ARPANET分組交換的體系開發,1972年在第一屆國際計算機通訊大會上展示了ARPANET。當時ARPANET就把大約40台不同的計算機連接起來,並且示范了世界上第一例網絡電子郵件的應用。
    • 1974年5月,他們發表了一篇論文,描述了一種新的通訊方法,稱之為路徑信息或數據包的傳輸控制協議(TCP)。象一個裝着一封信的信封一樣,TCP把連續的信息流打斷成片,裝在稱為“數據報”的信封中,並標上標准化的“來自和去往”的地址,經由基礎網絡傳輸到主機上。只有主機能夠“打開”信封,閱讀內容。
  • 1976年:Xerox (施樂)PARC的以太網
    • Xerox PARC(Xerox Palo Alto Research Center),即施樂帕克研究中心,是施樂公司所成立的最重要的研究機構。
  • 上世紀七十年代早期:專有框架:DECnet、SNA、XNA
    • DECnet是由數字設備公司(Digital Equipment Corporation)推出並支持的一組協議集合,現在的DECnet已經成為HP開放VMS的一部分。
    • IBM系統網絡體系結構(IBM Systems Network Architecture)是IBM公司開發的網絡體系結構,在IBM的主機環境中得到廣泛的應用。
    • XNA:沒查到
  • 上世紀七十年代后期:Switching Fixed length Packets(交換固定長度數據包)
  • 1979年:ARPAnet有了2000個結點

1.2.3 1980~1990:新的協議,網絡的繼續發展

  • 1983年:TCP/IP的部署
  • 1982年:定義smtp電子郵件協議
  • 1983年:DNS(域名解析)定義了名稱到IP地址的轉換
  • 1985年:定義FTP協議
  • 1988年:TCP擁塞控制
  • 新的國際網絡:Csnet,BITnet,NSFnet,Minitel
  • 100,000個主機連接到互聯網

1.2.4 1990,2000年:商業化,Web,新的應用程序

  • 1990年早期:ARPAnet退出歷史舞台
  • 1991年:NSF取消了NSFnet商業用途的限制(1995年停止服務)
  • 1990年早期:Web
    • 超文本(Bush 1945,Nelson 1960年)
      • 1945年,Vannevar Bush提出了被稱為“存儲擴容器”的概念,形成了今天超文本的基礎
      • 1963年,Ted Nelson創造了術語“超文本”。
    • HTML,HTTP:
      • HTML是由Web的發明者 Tim Berners-Lee和同事Danial W.Connolly於1990年創立的一種標記語言
      • 1990年,由Tim Berners-Lee提出HTTP協議,隨后WWW聯盟成立,組織了IETF小組進一步發布和完善HTTP協議。
    • 1994年:Mosaic瀏覽器,網景公司
      • NCSA Mosaic,或簡稱Mosaic,是互聯網歷史上第一個獲得普遍使用和能夠顯示圖片的網頁瀏覽器,由伊利諾伊大學Urbana-Champaign分校的NCSA組織在1993年發表,並於1997年1月7日正式終止開發和支持。
      • 網景通信公司(Netscape Communications Corporation)曾經是美國的一家計算機服務公司,以其生產的同名網頁瀏覽器Netscape Navigator而聞名。1998年11月,網景被美國在線收購。
    • 90年代后期:Web服務的商業化
    • 90年代后期到千禧年:
      • 更多的殺手級應用:即時通信,P2P文件共享
      • 網絡安全至上
      • 超過5千萬主機,一億用戶
      • 以Gbps的超高速度運行的骨干鏈路

1.2.5 2005年~現在

  • 超過五十億的設備連接到互聯網(2016年)
    • 智能手機和平板電腦
  • 積極部署寬帶接入
  • 越來越多的高速無線接入
  • 在線社交網絡的出現:
    • FaceBook:大約1億用戶
  • 服務提供商(Google,Microsoft)創建了自己的網絡
    • 繞過Internet,提供對搜索,視頻內容,電子郵件等等的“即時”訪問
  • 電子商務,大學,在“雲”中運行服務的企業(Amazon EC2)

美國每個州的頂級互聯網提供商(ISP)(2014):

全球使用網絡人數最多的前二十個國家:

互聯網相關組織:

1.3 網絡邊緣

因特網由網絡邊緣和網絡核心組成。

  • 網絡邊緣:應用程序和主機
  • 網絡核心:由路由器之間互聯而成,即“網絡之網絡”

如果需要將主機接入通信系統,需要將其接入網絡,這需要物理媒介的存在,由物理媒介構成的通信鏈路支持數據流動。

1.3.1 網絡邊緣

即端系統,位於一個網絡系統的終端部分

典型模型:

  • Client-Server Model (客戶機/主機模型)

客戶機就是總是發送請求並接收從服務器端返回的響應的機器端,即“使用者”,“消費者”;而服務器則是接收客戶端發送的請求,並將處理請求后得到的信息再返回給客戶端的機器,即“生產者”,“提供者”。

服務器端由於需要隨時接收客戶端發來的響應,因此服務器端總是處於開機狀態,並且機器性能通常也很高。

這種模式的典型例子就是Web瀏覽器。

  • Peer-Peer Model(P2P模型)

客戶端與服務器端顯然是兩個地位不等的機器,而P2P是一個對等模型,即彼此鏈接的多台計算機之間都處於對等地位,每台計算機都有相等的功能,無主從之分,一台計算機既可以作為服務器,又可以作為工作站,整個網絡一般來說不依賴專用的集中服務器,也沒有專用的工作站。

這種模式的典型例子是GnutellaKaZaASkyper

1.3.2 面向連接服務 connection-oriented service

什么是連接?用打電話類比,通話之前需要先撥號並等待對方接通,這個過程就類似於建立連接:在兩台主機進行網絡連接之前,需要先進行物理連接。

兩台主機進行連接的全過程需要三步:

  1. 建立連接(握手)
  2. 數據傳輸
  3. 釋放連接

面向連接服務的目的是提供端系統之間的數據傳輸。這種連接方式最典型的應用就是TCP(Transmission Control Protocal,傳輸控制協議)。

而網絡連接時,數據傳輸需要的時可靠有序的字節流傳輸,但在傳輸過程中,信道可能會受到干擾,因此部分數據分組可能會丟失。那我們應該如何保證可靠的數據傳輸?

  • 采用確認重傳機制

即,從A向B傳遞數據,如果B完全獲取了所有數據,則B會發出消息x“我收到了”,之后A收到消息x確認傳遞無誤,傳輸結束;但如果B發現丟失了部分數據,則不會發出信息x,A在一段時間后未收到B的確認消息x,則認定B未收到信息,A開始重新傳輸。

  • 流控制

由於接收端存在緩存,如果一定時間內收到的數據量過大,則可能在接收端會發生數據丟失(淹沒)。為了避免這種情況的發生,我們可以采用流控制機制,即控制發送端的發送速率,使得發送端的數據傳輸不會太快,導致淹沒了接收端的緩存。

  • 擁塞控制

由於路由器采用分組轉發的方式,如果到達的分組太多,而轉發速率太慢,則可能會引起分組在路由器端排隊,這種情況稱為阻塞。此時如果路由器的緩存容量有限,則可能會有一部分數據丟失。

擁塞控制則減緩了這種情況的發生。它可以控制發送端的速率,降低網絡擁塞的概率。

TCP是互聯網中的關鍵協議。TCP協議就提供了流控制和擁塞控制的機制。

1.3.2 無連接服務 connectionless service

即發送數據前並不需要建立連接。此時設備只要有數據要發送,就可以立即發送。這種服務並不需要可靠的數據傳輸;短信就是一種典型的無連接服務。

無連接服務的目的也是在端系統之間提供數據交流。

端系統中提供無連接服務的協議是UDP(User Datagram Protocal,用戶數據報)協議,沒有數據流控制,也沒有擁塞控制。

顯然,無連接服務更適用於對網絡延時要求高的應用程序,而不適用於對數據傳輸精確度要求高的應用程序。

使用TCP協議的應用程序:

  • HTTP(Web)
  • FTP(File Transfer Protocal,文件傳輸協議)
  • Telnet(Remote Login,遠程登錄)
  • SWTP(Email)

使用UDP協議的應用程序:

  • Streaming Media(流媒體)
  • Teleconferencing(電話會議)
  • DNS(域名解析)
  • Internet Telephony(網絡電話)
  • QQ

1.4 網絡核心

網絡核心是由相互連接的路由器構成的網狀結構。其解決的基本問題是:如何通過網絡實現數據的交互?

網絡核心中的數據交互方式主要有兩種:

  • 電路交換

  • 分組交換

1.4.1 電路交換 Circuit Switching

電路交換中,每個用戶獨占資源,並不會與其他用戶共享,就像一個真實的電路一樣。由於互不干擾,這種方式能夠保證數據通信的有效性。而這需要有一個建立連接的過程,則電路交換是面向連接的服務。典型應用是電話網絡。

電路交換能夠保證通信過程中的帶寬,保證會話資源的獨占。

然而,對於一段物理鏈路,如果一對主機獨享一段光纖,這段物理鏈路能夠提供的帶寬會遠遠大於所需求的帶寬,造成很大的資源浪費。為了避免這種情況的出現,我們可以將帶寬按照需求進行分片。按照划分的方式,可以分成以下幾種:

  • 頻分復用 Frequency Division (FDM)
  • 時分復用 Time Division (TDM)
  • 碼分復用 Code Division (CDM)

頻分復用 Frequency Division (FDM)

頻分復用,將頻率分成固定的幾份,每一個用戶獨占其中一份。注意,此處的帶寬單位為Hz,表示一份頻率的單位。典型應用有電視等。

這種概念類似於高速公路,一條高速公路可以分成幾個車道,每輛車獨占一個車道。

時分復用 Time Division (TDM)

時分復用,將時間划分為幀(Frame),每一幀再划分為時隙。每一個時隙供一個用戶獨占使用。

但是,這種方式是否存在問題?

假設我們有四個用戶ABCD,采用時分復用技術:

四個用戶在每個時間幀上的使用情況:

由圖所示,在第一個幀中,A和B有數據發送,此時C和D所占據的時隙為空閑狀態;在第二個幀中,B和C有數據發送,但A和D所占據的時隙空閑……

顯然,每個幀的空白處都有資源,但沒有被用戶占用,存在資源浪費問題。


一道計算題:

利用電路交換網絡從主機A向主機B發送一個大小為\(640K\)比特的文件需要多長時間?假設所有的鏈路帶寬為\(1.536 Mbps\),每條鏈路采用時分復用技術,划分方式為\(24slot/sec\),端到端建立連接需要的時間為500毫秒。

每個時隙的傳播帶寬為:\(1.536Mbps\div24=64Kbps\)

傳輸時間為:\(640K\div64Kbps=10s\)

建立連接需要的時間為:\(0.5s\)

總時間為:\(10.5s\)


計算題:

利用電路交換網絡從主機A向主機B發送一個大小為\(640K\)比特的文件需要多長時間?假設所有的鏈路帶寬為\(1.536 Mbps\),每條鏈路采用頻分復用技術,划分方式為\(24channels/fequencies\),端到端建立連接需要的時間為500毫秒。

每個時隙的傳播帶寬為:\(1.536Mbps\div24=64Kbps\)

傳輸時間為:\(640K\div64Kbps=10s\)

建立連接需要的時間為:\(0.5s\)

總時間為:\(10.5s\)

1.4.2 分組交換 Packet Switching

將端到端交換的數據流分成一個一個的分組,用戶A和B可以共享網絡資源,而每一個分組可以使用完整的鏈路帶寬。網絡資源按需使用,且帶寬不會被分片,也不是專用分配,更不需要預留資源。

然而,分組交換也存在問題:

如果有大量用戶要發送數據,用戶所需要的資源數可能會超過實際擁有的資源數。

  • 可能會有分組在鏈路的路由器輸出緩存進行排隊,即發生擁塞

解決:存儲並轉發

  • 分組從路由器的輸入緩存到輸出緩存,在輸入緩存接收完分組的所有內容才能夠進行轉發

A和B的分組序列並沒有固定的模式,而是按需分配的,這種分配方式稱為統計復用(Statistical Multiplexing)。

兩台主機都要向外發送數據,則通過以太網的連接方式與第一個路由器進行連接。對於路由器左端的最大傳輸速率為10Mbps,但右端的最大傳輸速率為1.5Mbps。A與B都不會獨占鏈路,而是按需占用鏈路。

統計時分復用 STDM

四個用戶,對時間分幀和時隙,第一個幀中C和D沒有數據發送,如果采用TDM,則C和D的時隙部分的資源會被浪費,而如果采用STDM ,則C和D的時隙會按需分配給其他用戶。

1.4.3 分組交換與電路交換的比較

分組交換允許共享電路的用戶數更多

  • 如果一條鏈路的帶寬為\(1Mb/s\),每個活躍用戶占用的帶寬為\(100kb/s\)但每個用戶只會使用10%的時間,則電路交換能夠允許共享的用戶數為\(10000\div100=10\)個用戶;而如果采用分組交換,如果有35個用戶同時使用,則有超過10個用戶同時處於活躍狀態的概率\(\le0.0004\)
  • 活躍狀態:如果要訪問一個主頁,在瀏覽器鍵入地址,點擊回車,此時有數據傳輸到服務器,則此時你處於活躍狀態,同理,接收服務器數據的過程中也處於活躍狀態;而如果只是瀏覽網頁而沒有數據的傳輸,則不處於活躍狀態。
  • 注意:這個運算結果的前提是每個用戶只有10%的時間進入活躍狀態。如果用戶一直處於活躍狀態,則分組交換可能會發生擁塞。

分組交換會始終處於優勢地位嗎?

  • 如前所示,如果用戶一直處於活躍狀態,則分組交換可能會發生擁塞。而對於突發數據,則分組交換會更有優勢。
    • 突發數據:突然間有數據要發送,且有很長時間處於非活躍狀態

分組交換可以共享資源

分組交換更加簡單,且不涉及到連接的建立。(?)

注意:分組交換可以支持無連接服務,也可以支持面向連接服務。

電路交換需要預留網絡資源,能否有一種方式,使得分組交換具有類似電路交換的性能和行為?

  • 即能夠給視頻應用等提供足夠的帶寬

1.4.4 分組交換:存儲轉發

報文交換:將文件看作報文,采用的也是存儲轉發,其與分組交換的區別在於:發送時不會將報文進行划分,而是整體發送。

那么分組交換和報文交換哪一個用時更短?

假設有一個文件大小為\(L\),文件接收速率為\(R\),則從主機推向鏈路需要的時間為\(L/R\)。假設不考慮從主機到第一個路由器以及兩個路由器之間的傳播時間,到達路由器時進行接收,再將其推向下一個路由器,直到另一個主機接收。假設\(L=7.5M bits\),每段鏈路最大傳輸速率為\(R=1.5Mbps\),則傳輸時間為?

  • 如果采用報文交換,則從發送\(L\)到接收所需要的時間為\(3L/R\),即\(15sec\)
  • 如果采用分組交換,每個分組的大小\(l=1.5K\),則時間為\(L/R+2l/R=5.002sec\)
    • 如果有\(m\)個分組,\(n\)個路由器,則傳輸時間為\(ml/R+nl/R=L/R+nl/R\)

從計算結果可以看出,分組交換的時間明顯小於報文交換。

1.4.5 分組交換:轉發

目的:從源到目的地通過路由器進行分組的移動

  • 如何選擇路徑進行轉發?——通過路徑選擇算法(路由算法)

分組交換網絡種類

  • 數據報網絡
    • 每到達一個結點,都會根據目的地址判斷下一個路徑
    • 路徑可能在會話期間發生改變
  • 蓄電報網絡
    • 每一個分組都攜帶一個標簽,由標簽決定路徑
    • 在網絡層提供面向連接服務
    • 在分組轉發之前先建立連接,在連接過程中需要保持會話過程,路徑是固定的,即發送之前就知道怎么走

網絡分類:

數據報網絡在網絡層提供的是無連接服務,而數據報網絡本身不一定是面向連接的還是無連接的,這取決於上一層的協議類型。

1.5 網絡接入與物理媒介

主機想要訪問因特網,首先需要接入網絡。我們可以選擇哪些規模的網絡接入?

  • 住宅接入
  • 企業接入
  • 移動接入

選擇接入方式的因素

  • 帶寬
  • 共享還是專線接入
  • 在哪里接入網絡
  • 采用哪一個ISP

1.5.1 住宅接入

  • 撥號接入
    • 通過電話線接入網絡
    • 最大速率為56kbos
  • DSL 數字用戶線
    • 常用的是ADSL,非對稱數字用戶線
    • 解決了打電話時不能上網的問題
    • 上行速率:1Mbps
    • 下行速率:8Mbps
    • FDM
  • HFC:混合光纖同軸電纜
    • 非對稱方式
    • 用戶共享接入電源路由器
  • FTTx
    • Fiber To Home:光纖一直鋪設到用戶家庭可能是居民接入網最后的解決方法

1.5.2 企業接入 Enterprise access network

通過局域網連接端系統和邊緣路由器,通過局域網方式進行連接

以太網用戶通過雙絞線先與交換機進行連接,交換機再與路由器連接

  • 接入點
  • 無線連接方式

以太網和Wifi的方式最初部署在企業內部,現在已經成為了家庭中常見的部署方式。

現在的家用路由器已經把路由器、交換機、無線接入點等等集成到了一起。

無線接入

無線局域網:建築內部,有距離限制

廣域無線接入:借用蜂窩網絡

  • 3G,4G,5G

物理媒介

在線路上,無論傳輸的是光信號還是電信號,都是以二進制比特的形式傳輸的。

物理鏈路

  • 導引型媒介
    • 即能夠實際看到的線路;例如光纖、電纜等
  • 非導引型媒介
    • 在介質空間中自由傳播的;例如無線電、衛星連接等

  • 雙絞線
    • 由兩根耦合的銅線構成
    • 非屏蔽雙絞線
    • 屏蔽雙絞線
    • 三類線
    • 五類線
    • 六類線
  • coax 同軸電纜
    • 基帶
    • 寬帶
  • fiber 光纖
    • 玻璃光纖,承載數字脈沖
    • 支持高速點對點傳輸
    • 錯誤率低,傳輸距離遠
  • 廣播
    • 易受到干擾
    • 近地衛星
    • 局域網
    • 廣域網
    • 蜂窩通信

1.6 因特網結構與ISPs

端系統都需要通過ISP(Internet Service Provider, 網絡服務提供商)接入互聯網。與其相反,要訪問ISP要求端系統必須互聯,這樣兩個主機才能夠互相發送數據報。通常來說,網絡結構並不是由網絡的傳輸效率、性能等技術因素決定,而是由經濟和國家政策等決定。

思考問題 :如何將數以百萬計的ISPs互相連接起來呢?

  1. 直接兩兩互聯

顯然這樣的方式所需要的鏈路數量非常大,至少為\(O(N^2)\)規模,復雜度非常高,且難以維護。

  1. 建立一個全球范圍的ISP,每個接入ISP都與這個全球ISP互聯

接入ISP在地理上必須靠近全球ISP,而全球有百萬個接入ISP,無法與同一個ISP鏈接,且一定會出現企業間的競爭,這樣就引出了下一個方式:

  1. 多個全球ISp

用高速光纖線路將各個ISP進行對等連接(對等連接即各個ISP間地位平等,沒有主從)。多個ISP可以通過因特網交換點(Internet exchange point, IXP)進行連接,使得連接在不同的ISP下的接入ISP之間可以互相通信。

區域ISP:向下與接入ISP進行連接,向上與全球ISP鏈接。

這樣的方式催生出了一個新興產業:內容服務提供商,他們運行自己的網絡給端系統提供服務,典型的內容服務提供商有Google、Microsoft等。

全球的ISP分層設計,每一層有每一層的功能:

全球的ISP網絡在邏輯上是層次結構,實際上是同心圓,全球ISP位於中心,次級ISP向外擴展。

位於中心的是第一層ISP,互相之間進行對等連接,主要包括兩個類型的商業機構:

  • 商業ISP,例如Sprint,AT&T,NTT等
  • 內容提供網絡,例如Google等,負責將數據中心連接到Internet的專用網絡,通常會繞過一級區域ISP。

對於第一層ISP,需要給第二層ISP提供服務,而第二層ISP作為消費者需要使用上一層ISP提供的服務,此時提供服務的接口叫做存在點(POT)。

第二層為區域ISP,可能會與一個或多個一級ISP鏈接;如果與多個一級ISP鏈接,則稱為多宿。第二層ISP需要使用第一層所提供的服務,第二層就是第一層的用戶。這一層的ISP之間也可能彼此對等連接,且不需要付費,因為不存在提供服務的關系。這一層ISP之間也可能通過IXP進行連接。

第三層為接入ISP,下一層就是端系統,直接為端系統提供服務。

一個數據報需要穿過許多網絡才能夠從源主機到達目的主機:

互聯網其實就是由不同級別的網絡互聯而成的。

1.7 延遲,丟包

假設有兩個鏈路,傳播速率分別為\(10Mbps、100Mbps\),同時傳輸\(1bit\)數據,那么這條數據的傳播在哪一條鏈路上傳播更快?

  • 一樣快

1.7.1 計算機網絡的性能

數據率:計算機網絡上的主機在數字信道上傳送數據的速率,例如:\(100Mbps\) Ethetnet

帶寬:頻帶寬度,單位為Hz

吞吐量:從發送端到接收端傳輸bit的速率,單位為\(bits/time\space unit\)

1.7.2 信道

信道是一個物理傳輸的媒介,也可能是一個邏輯通信的鏈路,可能是有線的,也可能是無線的。可以將信號從一個/多個發送端傳輸到一個/多個接收端。

衡量信道性能的單位:數據率/Hz

類型:

  • 單向信道:從A到B發送信息只能單向發送
  • 半雙工 Half-duplex:信息可以雙向傳播,但同一時刻只能向一個方向傳輸
  • 全雙工 Full-duplex:信息可以同時雙向傳播

1.7.3 分組

分組交換可能會引起數據丟失、分組的排隊時延。如果A和B都通過路由器發送數據,到達的分組前面可能有其他分組正在發送,則這個分組需要在路由器緩存中排隊。排隊等待輪到當前分組到達前端進行傳輸的過程就叫做排隊時延,即由分組到達路由器端進行排隊等候的時間。

無論是哪一種設備,緩存都是有限的;當到達速率快,而轉發速率慢,就可能會將緩存區填滿,再到達的分組可能會被丟棄。

1.7.4 四種分組時延

節點處理時延 node processing

一個分組從主機端到達相鄰設備上,需要對分組進行處理,比如檢測分組是否存在錯誤;分組達到后還需要檢測其目的地址,時間就是節點處理時延。

排隊時延 queueing

在中間設備上進行排隊等待發送到輸出鏈路上所需要的時間。時間大小取決於路由器的擁塞程度。

這個時延的大小受到網絡擁塞程度的影響。一旦到達速率超過轉發速率就需要進行排隊。我們可以定義一個量進行分析。因為數據是突發的,因此分組並不是平均到達的,以下計算只是從統計量的角度觀察排隊時延。

假設輸出鏈路帶寬\(R\),分組長度為\(L\)(bit),平均到達時間為\(a\space pack/s\),則每個分組每秒到達路由器的速率為\(L/a\)

定義流量強度為\(L\times a/R\)

假設分組到達路由器的概率很小(很長時間才到達一個分組):

  • 如果\(La/R\rightarrow 0\),則直接發送,時延\(\rightarrow0\).
  • 如果\(La/R\rightarrow1\)
    • 如果是均勻到達,到達后可以馬上轉發;
    • 如果不均勻到達,則產生排隊,排隊時延增大
  • 如果\(La/R\geq0\),即到達速率超過轉發速率,則網絡擁塞加重,時延\(\rightarrow\infty\)

傳輸時延 Transmission delay

一個分組由多個比特組合而成,分組從設備被送上鏈路所消耗的時間就是傳輸時延,單位是\(bps\)

\(R\)為鏈路帶寬(速率),\(L\)為分組長度(bit),傳輸時延為\(L\div R\)

傳播時延 Propagation delay

一個分組在鏈路中都是以信號的形式傳播的,信號在信道上進行傳播需要的時間。

\(d\)為物理鏈路的長度,\(s\)為信號在鏈路上的傳播速率,則傳播時延為\(d\div s\)。通常來說\(s=2\times 10^8\)

一個小故事:

在互聯網發展早期,mit的人員發現電子郵件只能被發送到500英里以內的地方,再遠就無法接收。管理員檢查后發現,原因是系統升級導致遠程服務器的超時時間被設置為0秒,而信號傳播又存在傳播時延,導致郵件發送時稍微超過3秒后就停止連接,導致無法收到。

如果用旅行過程類比:

  • 假設一個車隊有十輛車,公路上有多個收費站,收費站之間的距離為100千米,車的行駛速度為100千米/小時;汽車每經過一個收費站需要消耗12秒。問車隊中所有的車從第一個收費站到達第二個收費站所需要的時間為?

我們可以將每輛車看作一個bit,收費站看作路由器,鏈路上的傳輸時延為12秒。

第一輛車到達第一個收費站~最后一輛車從第一個收費站出發的時間為\(12 \times 10 = 120\)s;

最后一輛車從第一個收費站到達第二個收費站的時間為\(100km/100km(hr) = 1hr\)

因此答案為\(60min+2min=62min\)

這道題沒有考慮一個情況:車在公路上行駛的速度快,可能第一輛車到達第二個收費站,但還有車在第一個服務站服務。

  • 第一個收費站到第二個100Km,傳播速率為1000km/h。第一輛車到達第二個收費站,其傳播時延是\(0.1h\),第一輛車進行服務的時間為1min,即經過7分鍾后第一輛車已經到達第二個收費站。

7min有多少輛車從第一個收費站出去?每一輛車經過收費站需要1min,

還有三輛車在第一個收費站排隊。


一個分組經過兩個路由器到達目的主機,每一段鏈路都應該有四種時延,則總時延為:

\(d_{nodal}=d_{proc}+d_{queue}+d_{trans}+d_{prop}\)。其中:

  • \(d_{modal}\)為分組從源主機到達目的主機的總時延
  • \(d_{proc}\)為節點處理時延,通常大小為微秒級
  • \(d_{queue}\)為排隊時延,大小取決於網絡擁塞的程度
  • \(d_{trans}\)為傳輸時延,大小為\(L/R\),對於低速鏈路不能忽略
  • \(d_{prop}\)為傳播時延,大小從幾微秒到幾百微秒

時延帶寬積

假設有兩個主機A、B,之間距離為\(L=10000Km\),有一條直接鏈路,帶寬為\(R=1Mbps\),假定跨越該鏈路的傳播速度為\(V=2.5\times10^8mps\),則:

  1. 傳播時延\(Tp\)為?
  2. \(Tp\)時間內,主機A向鏈路中發送了多少個bits?
  3. 每兩個bit之間的間距\(i\)

解:

  1. \(Tp=L/V=0.04s\)
  2. \(Numb=Tp\times R=1Mbps\times L/V=41943\)\(1Mbps=10^6bps, 1kbps=10^3bps\)
  3. \(i=L/Numb=V/R=238\)

\(L\div V\times R\)就是時延帶寬積,表示第一個比特到達目的端時,共發出了多少bit,即鏈路上最多可以容納多少bit,也稱為以bit為單位的鏈路長度。

練習:計算端到端的延遲(傳輸延遲與傳播延遲)

計算當左側的主機開始傳播分組的第一個比特到右側服務器接收到該分組的最后一個bit所需的總時間。已知:

光傳播速率為\(3\times10^8m/s\),傳輸速率單位為\(Mbps\),鏈路距離單位為\(Km\)。假設一個分組的長度為\(16000bits\),答案單位為\(millsecounds\)

解:

總時間\(t=t_1+t_2+t_3\),其中:

\(t_1=t_{trans}+t_{prop}=16000bits/1000Mbps+1Km/v_{light}\);

\(t_2=t_{trans}+t_{prop}=16000bits/100Mbps+1000Km/v_{light}\);

\(t_3=t_{trans}+t_{prop}=16000bits/1000Mbps+2Km/v_{light}\);

\(t=3.535333 msecs\)

在計算機上衡量時延問題

traceroute程序:從路由器到目的主機共有\(N\)個設備,發送\(3n\)個分組,每一個分組有一個標號,到達第一個路由器的三個分組不轉發,而是反饋一條信息並返回主機,該信息包含從主機發出到返回主機的時間,以此類推。

cmd命令:tracert some_address

C:\Users\lenovo>tracert www.163.com

通過最多 30 個躍點跟蹤
到 z163ipv6.v.bsgslb.cn [111.26.224.10] 的路由:

  1     6 ms     3 ms     4 ms  192.168.1.1
  2     5 ms    10 ms     5 ms  10.11.0.1
  3     7 ms     6 ms     7 ms  111.45.193.93
  4    16 ms    13 ms    13 ms  211.137.46.121
  5     *        *        *     請求超時。
  6     *        *        *     請求超時。
  7    38 ms    38 ms    39 ms  221.183.50.182
  8     *        *        *     請求超時。
  9     *        *        *     請求超時。
 10     *        *        *     請求超時。
 11     *        *        *     請求超時。
 12    36 ms    36 ms    38 ms  111.26.224.10

跟蹤完成。

1.7.5 分組丟失

如果到達的分組超過了路由器的緩存,則新到達的分組就會被丟棄。可能有上層協議對這種情況進行協調處理:

  • 讓前一個節點重新發送分組
  • 協調發送端重新發送
  • 忽略

1.7.6 吞吐量

吞吐量就是發送端到接收端進行比特傳輸的速率。

分為兩種:

  • 計時吞吐量:給定時間點的速率
  • 平均吞吐量:較長時間內的平均速率

假設輸入端管道傳輸速率為\(Rs\space bits/sec\),輸出端管道傳輸速率為\(Rc\space bits/sec\)

如果\(Rs<Rc\):吞吐量受到\(Rs\)的限制;如果\(Rs>Rc\),則吞吐量受到\(Rc\)的限制。總之,吞吐量受到瓶頸鏈路的限制,其期望值應該是\(Rs\)\(Rc\)的最小值。

互聯網場景下的吞吐量

核心網絡的帶寬\(R\)比較大,如果有10台服務器,以\(Rs\)速率連接到因特網,客戶端以\(Rc\)連接到因特網,吞吐量限制由\(Rs\)\(Rc\)決定。

1.8 協議分層,服務模型

1.8.1 協議分層

協議定義了網絡實體之間發送/接收數據的格式/順序和接收數據后發生的行為。

協議的三個因素:

  • 語法 Syntax
  • 語義 Sermantic
    • 即接收消息后需要發出什么樣的控制信息,做出何種響應
  • 時序 Synchronization
    • 網絡實體接收/發送信息的順序

為什么對協議進行分層?數據的傳輸過程很復雜:

  • 保證精確的數據傳輸
  • 發送數據的計算機必須激活數據通信的通路
  • 告訴網絡如何找到接收端
  • 檢測接收端是否已經准備好接收數據
  • 如果消息格式不同,如何約定發送端的格式統一還是接收端的格式統一
  • 錯誤檢測
  • 處理分組丟失和時延問題

從網絡組成山來說,協議的分層也是必要的:

  • 主機
  • 路由器
  • 鏈路
  • 程序
  • 協議
  • 軟硬件

能否有一種網絡的組織結構,能夠提供討論網絡結構的希望?在討論互聯網結構之前,先看一下對於人類活動的模擬:

如果要坐飛機,需要買票,涉及票務系統、行李托運、檢票登機、飛機起飛、飛行、到達目的地、着陸、離開飛機、取行李……很明顯,從出發到目的地都涉及到了票務系統、行李、登機口……

每一層的實現都需要下一層提供服務,通過自身采取一些行為,並且依賴於下一層的服務。

郵件系統:

通信接入模塊:

網絡接入模塊:


分層可以帶來的好處:

  • 各層之間是獨立的,將問題分解為許多子問題
  • 靈活性好,一層的變化不會影響其他層
  • 機構上可以分隔開
  • 易於實現和維護
  • 能夠促進標准化工作

每一層要做的工作:

  • 差錯控制
  • 流量控制
  • 分段和重裝
  • 復用和分開
  • 連接建立和連接釋放
  • ……

但分層也不都是好的,層次之間的功能可能存在冗余。且層次越多,效率反而可能越低。

在某些網絡中存在跨層的涉及。

1.8.2 ISO.OSI與TCP/IP

ISO.OSI(Open System Interconnection Reference Model,開放系統互聯基本參考模型)將網絡分為七個層次:

這個標准只是理論上的標准,但不能忽略其作用。很多實際交流和數據通信領域都在討論這個模型。

TCP/IP:工業驅動標准,是因特網的核心,將網絡分為五層:

1.8.3 因特網協議棧

因特網需要一個協議對實體進行控制,這就是因特網協議棧的作用。

應用層:支持網絡應用程序

  • FTP,SMTP,HTTP,POP3

傳輸層:端到端的數據傳輸

  • TCP,UDP

網絡層:從源主機到目的主機提供路由算法

  • IP,路由協議,ICMP,IGMP,RIP

鏈路層:相鄰網絡節點間數據傳輸

  • PPP,Ethernet

物理層:比特在鏈路上的傳輸

數據傳輸過程中,當前層會把信息加上首部和尾部傳遞給下一層;其中首部封裝了數據的起始地址、目的地址等信息,尾部封裝了數據錯誤檢測相關的信息。

路由器只實現了下三層,而交換機是鏈路層的涉筆,只實現了物理層和數據鏈路層。

給數據加上首部/尾部的過程稱為封裝(Encapsulation):

1.8.4 PDUS 協議數據單元

PDUS在應用層:報文

傳輸層:數據報/報文段

網絡層:分組,數據報

數據鏈路層:幀 Frame

物理層:bit

1.8.5 TCP/IP協議族

ARP是將IP地址轉換為鏈路層物理地址的協議,有人認為它是網絡層協議,有人認為是鏈路層的協議。

對於網絡層次種的每一層都可以認為是實體(實體:可以發送/接收信息的軟件或硬件),相同層次實體之間的通信需要遵循協議。

上一層需要用到下一層的服務,此時只需要知道下一層提供什么樣的服務即可,不需要關心如何提供服務。而下一層必須提供一個接口,稱為SAP(Service Access Point)。

本層的服務用戶只能看見服務而無法看見下面的協議,即下面的協議對上面的服務用戶是透明的。

協議是水平的,即協議是控制對等實體之間通信的規則。服務是垂直的,即服務是由下層向上層通過層間接口提供的。上下層垂直方向要訪問服務,需要兩層都可以理解的語言,這種語言稱為交換原語。

協議本身很復雜,必須把所有的不利條件都事先估計到,而不能假定一切都是正常的和非常理想的。看一個計算機網絡協議是否正常,不能只看在其在正常情況下是否正確,還必須仔細檢查協議能否應付各種異常情況。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM