電腦網路基礎知識總結

我把自己以往的文章匯總成為了 Github ,歡迎各位大佬 star
//github.com/crisxuan/bestJavaer

computer network1001

如果說電腦把我們從工業時代帶到了資訊時代,那麼電腦網路就可以說把我們帶到了網路時代。隨著使用電腦人數的不斷增加,電腦也經歷了一系列的發展,從大型通用電腦 -> 超級電腦 -> 小型機 -> 個人電腦 -> 工作站 -> 攜帶型電腦 -> 智慧手機終端等都是這一過程的產物。電腦網路也逐漸從獨立模式演變為了 網路互聯模式

computer network1002

可以看到,在獨立模式下,每個人都需要排隊等待其他人在一個機器上完成工作後,其他用戶才能使用。這樣的數據是單獨管理的。

computer network1003

現在切換到了網路互聯模式,在這種模式下,每個人都能獨立的使用電腦,甚至還會有一個伺服器,來為老大哥、cxuan 和 sonsong 提供服務。這樣的數據是集中管理的。

電腦網路按規模進行劃分,有 WAN(Wide Area Network, 廣域網)LAN(Local area Network, 區域網)。如下圖所示

computer network1004

上面是區域網,一般用在狹小區域內的網路,一個社區、一棟樓、辦公室經常使用區域網。

computer network1005

距離較遠的地方組成的網路一般是廣域網。

最初,只是固定的幾台電腦相連在一起形成電腦網路。這種網路一般是私有的,這幾台電腦之外的電腦無法訪問。隨著時代的發展,人們開始嘗試在私有網路上搭建更大的私有網路,逐漸又發展演變為互聯網,現在我們每個人幾乎都能夠享有互聯網帶來的便利。

電腦網路發展歷程

批處理

就和早期的電腦作業系統一樣,最開始都要先經歷批處理(atch Processing)階段,批處理的目的也是為了能讓更多的人使用電腦。

批處理就是事先將數據裝入卡帶或者磁帶,並且由電腦按照一定的順序進行讀入。

computer network1006

當時這種電腦的價格比較昂貴,並不是每個人都能夠使用的,這也就客觀暗示著,只有專門的操作員才能使用電腦,用戶把程式提交給操作員,由操作員排隊執行程式,等一段時間後,用戶再來提取結果。

這種電腦的高效性並沒有很好的體現,甚至不如手動運算快。

分時系統

在批處理之後出現的就是分時系統了,分時系統指的是多個終端與同一個電腦連接,允許多個用戶同時使用一台電腦。分時系統的出現實現了一人一機的目的,讓用戶感覺像是自己在使用電腦,實際上這是一種 獨佔性 的特性。

computer network1007

分時系統出現以來,電腦的可用性得到了極大的改善。分時系統的出現意味著電腦越來越貼近我們的生活。

還有一點需要注意:分時系統的出現促進了像是 BASIC 這種人機交互語言的誕生。

分時系統的出現,同時促進者電腦網路的出現。

電腦通訊

在分時系統中,每個終端與電腦相連,這種獨佔性的方式並不是電腦之間的通訊,因為每個人還是在獨立的使用電腦。

到了 20 世紀 70 年代,電腦性能有了高速發展,同時體積也變得越來越小,使用電腦的門檻變得更低,越來越多的用戶可以使用電腦。

沒有一個電腦是資訊孤島促使著電腦網路的出現和發展。

電腦網路的誕生

20 世紀 80 年代,一種能夠互連多種電腦的網路隨之誕生。它能夠讓各式各樣的電腦相連,從大型的超級電腦或主機到小型電腦。

20 世紀 90 年代,真正實現了一人一機的環境,但是這種環境的搭建仍然價格不菲。與此同時,諸如電子郵件(E-mail)萬維網(WWW,World Wide Web) 等資訊傳播方式如雨後春筍般迎來了前所未有的發展,使得互聯網從大到整個公司小到每個家庭內部,都得以廣泛普及。

電腦網路的高速發展

現如今,越來越多的終端設備接入互聯網,使互聯網經歷了前所未有的高潮,近年來 3G、4G、5G 通訊技術的發展更是互聯網高速發展的產物。

許多發展道路各不相同的網路技術也都正在向互聯網靠攏。例如,曾經一直作為通訊基礎設施、支撐通訊網路的電話網。隨著互聯網的發展,其地位也隨著時間的推移被 IP(Internet Protocol) 網所取代,IP 也是互聯網發展的產物。

computer network1008

網路安全

正如互聯網也具有兩面性,互聯網的出現方便了用戶,同時也方便了一些不法分子。互聯網的便捷也帶來了一些負面影響,電腦病毒的侵害、資訊泄漏、網路詐騙層出不窮。

在現實生活中,通常情況下我們挨揍了會予以反擊,但是在互聯網中,你被不法分子攻擊通常情況下是無力還擊的,只能防禦,因為還擊需要你精通電腦和互聯網,這通常情況下很多人辦不到。

通常情況下公司和企業容易被作為不法分子獲利的對象,所以,作為公司或者企業,要想不受攻擊或者防禦攻擊,需要建立安全的互聯網連接。

互聯網協議

協議這個名詞不僅局限於互聯網範疇,也體現在日常生活中,比如情侶雙方約定好在哪個地點吃飯,這個約定也是一種協議,比如你應聘成功了,企業會和你簽訂勞動合約,這種雙方的僱傭關係也是一種 協議。注意自己一個人對自己的約定不能成為協議,協議的前提條件必須是多人約定。

那麼網路協議是什麼呢?

網路協議就是網路中(包括互聯網)傳遞、管理資訊的一些規範。如同人與人之間相互交流是需要遵循一定的規矩一樣,電腦之間的相互通訊需要共同遵守一定的規則,這些規則就稱為網路協議

沒有網路協議的互聯網是混亂的,就和人類社會一樣,人不能想怎麼樣就怎麼樣,你的行為約束是受到法律的約束的;那麼互聯網中的端系統也不能自己想發什麼發什麼,也是需要受到通訊協議約束的。

我們一般都了解過 HTTP 協議, HTTP 是一個在電腦世界裡專門在兩點之間傳輸文字、圖片、音頻、影片等超文本數據的約定和規範

但是互聯網又不只有 HTTP 協議,它還有很多其他的比如 IP、TCP、UDP、DNS 協議等。下面是一些協議的匯總和介紹

網路體系結構 協議 主要用途
TCP/IP HTTP、SMTP、TELNET、IP、ICMP、TCP、UDP 等 主要用於互聯網、區域網
IPX/SPX IPX、NPC、SPX 主要用於個人電腦區域網
AppleTalk AEP、ADP、DDP 蘋果公司現有產品互聯

ISO 在制定標準化的 OSI 之前,對網路體系結構相關的問題進行了充分的探討,最終提出了作為通訊協議設計指標的 OSI 參考模型。這一模型將通訊協議中必要的功能分為了 7 層。通過這 7 層分層,使那些比較複雜的協議簡單化。

computer network1009

在 OSI 標準模型中,每一層協議都接收由它下一層所提供的特定服務,並且負責為上一層提供服務,上層協議和下層協議之間通常會開放 介面,同一層之間的交互所遵守的約定叫做 協議

OSI 標準模型

上圖只是簡單的介紹了一下層與層之間的通訊規範和上層與下層的通訊規範,並未介紹具體的網路協議分層,實際上,OSI 標準模型將複雜的協議整理並分為了易於理解的 7 層。如下圖所示

computer network1010

互聯網的通訊協議都對應了 7 層中的某一層,通過這一點,可以了解協議在整個網路模型中的作用,一般來說,各個分層的主要作用如下

computer network1011

  • 應用層:應用層是 OSI 標準模型的最頂層,是直接為應用進程提供服務的。其作用是在實現多個系統應用進程相互通訊的同時,完成一系列業務處理所需的服務。包括文件傳輸、電子郵件遠程登錄和遠端介面調用等協議。
  • 表示層: 表示層向上對應用進程服務,向下接收會話層提供的服務,表示層位於 OSI 標準模型的第六層,表示層的主要作用就是將設備的固有數據格式轉換為網路標準傳輸格式。
  • 會話層:會話層位於 OSI 標準模型的第五層,它是建立在傳輸層之上,利用傳輸層提供的服務建立和維持會話。
  • 傳輸層:傳輸層位於 OSI 標準模型的第四層,它在整個 OSI 標準模型中起到了至關重要的作用。傳輸層涉及到兩個節點之間的數據傳輸,向上層提供可靠的數據傳輸服務。傳輸層的服務一般要經歷傳輸連接建立階段,數據傳輸階段,傳輸連接釋放階段 3 個階段才算完成一個完整的服務過程。
  • 網路層:網路層位於 OSI 標準模型的第三層,它位於傳輸層和數據鏈路層的中間,將數據設法從源端經過若干個中間節點傳送到另一端,從而向運輸層提供最基本的端到端的數據傳送服務。
  • 數據鏈路層:數據鏈路層位於物理層和網路層中間,數據鏈路層定義了在單個鏈路上如何傳輸數據。
  • 物理層:物理層是 OSI 標準模型中最低的一層,物理層是整個 OSI 協議的基礎,就如同房屋的地基一樣,物理層為設備之間的數據通訊提供傳輸媒體及互連設備,為數據傳輸提供可靠的環境。

TCP/IP 協議簇

TCP/IP 協議是我們程式設計師接觸最多的協議,實際上,TCP/IP 又被稱為 TCP/IP 協議簇,它並不特指單純的 TCP 和 IP 協議,而是容納了許許多多的網路協議。

OSI 模型共有七層,從下到上分別是物理層、數據鏈路層、網路層、運輸層、會話層、表示層和應用層。但是這顯然是有些複雜的,所以在TCP/IP協議中,它們被簡化為了四個層次

computer network1012

和 OSI 七層網路協議的主要區別如下

  • 應用層、表示層、會話層三個層次提供的服務相差不是很大,所以在 TCP/IP 協議中,它們被合併為應用層一個層次。
  • 由於數據鏈路層和物理層的內容很相似,所以在 TCP/IP 協議中它們被歸併在網路介面層一個層次里。

我們的主要研究對象就是 TCP/IP 的四層協議。

下面 cxuan 和你聊一聊 TCP/IP 協議簇中都有哪些具體的協議

IP 協議

IP 是 互聯網協議(Internet Protocol) ,位於網路層。IP是整個 TCP/IP 協議族的核心,也是構成互聯網的基礎。IP 能夠為運輸層提供數據分發,同時也能夠組裝數據供運輸層使用。它將多個單個網路連接成為一個互聯網,這樣能夠提高網路的可擴展性,實現大規模的網路互聯。二是分割頂層網路和底層網路之間的耦合關係。

ICMP 協議

ICMP 協議是 Internet Control Message Protocol, ICMP 協議主要用於在 IP 主機、路由器之間傳遞控制消息。ICMP 屬於網路層的協議,當遇到 IP 無法訪問目標、IP 路由器無法按照當前傳輸速率轉發數據包時,會自動發送 ICMP 消息,從這個角度來說,ICMP 協議可以看作是 錯誤偵測與回報機制,讓我們檢查網路狀況、也能夠確保連線的準確性。

ARP 協議

ARP 協議是 地址解析協議,即 Address Resolution Protocol,它能夠根據 IP 地址獲取物理地址。主機發送資訊時會將包含目標 IP 的 ARP 請求廣播到區域網絡上的所有主機,並接受返回消息,以此來確定物理地址。收到消息後的物理地址和 IP 地址會在 ARP 中快取一段時間,下次查詢的時候直接從 ARP 中查詢即可。

TCP 協議

TCP 就是 傳輸控制協議,也就是 Transmission Control Protocol,它是一種面向連接的、可靠的、基於位元組流的傳輸協議,TCP 協議位於傳輸層,TCP 協議是 TCP/IP 協議簇中的核心協議,它最大的特點就是提供可靠的數據交付。

TCP 的主要特點有 慢啟動、擁塞控制、快速重傳、可恢復

UDP 協議

UDP 協議就是 用戶數據報協議,也就是 User Datagram Protocol,UDP 也是一種傳輸層的協議,與 TCP 相比,UDP 提供一種不可靠的數據交付,也就是說,UDP 協議不保證數據是否到達目標節點,也就是說,當報文發送之後,是無法得知其是否安全完整到達的。UDP 是一種無連接的協議,傳輸數據之前源端和終端無需建立連接,不對數據報進行檢查與修改,無須等待對方的應答,會出現分組丟失、重複、亂序等現象。但是 UDP 具有較好的實時性,工作效率較 TCP 協議高。

FTP 協議

FTP 協議是 文件傳輸協議,英文全稱是 File Transfer Protocol,應用層協議之一,是 TCP/IP 協議的重要組成之一,FTP 協議分為伺服器和客戶端兩部分,FTP 伺服器用來存儲文件,FTP 客戶端用來訪問 FTP 伺服器上的文件,FTP 的傳輸效率比較高,所以一般使用 FTP 來傳輸大文件。

DNS 協議

DNS 協議是 域名系統協議,英文全稱是 Domain Name System,它也是應用層的協議之一,DNS 協議是一個將域名和 IP 相互映射的分散式資料庫系統。DNS 快取能夠加快網路資源的訪問。

SMTP 協議

SMTP 協議是 簡單郵件傳輸協議,英文全稱是 Simple Mail Transfer Protocol,應用層協議之一,SMTP 主要是用作郵件收發協議,SMTP 伺服器是遵循 SMTP 協議的發送郵件伺服器,用來發送或中轉用戶發出的電子郵件

SLIP 協議

SLIP 協議是指串列線路網際協議(Serial Line Internet Protocol) ,是在串列通訊線路上支援 TCP/IP 協議的一種點對點(Point-to-Point)式的鏈路層通訊協議。

PPP 協議

PPP 協議是 Point to Point Protocol,即點對點協議,是一種鏈路層協議,是在為同等單元之間傳輸數據包而設計的。設計目的主要是用來通過撥號或專線方式建立點對點連接發送數據,使其成為各種主機、網橋和路由器之間簡單連接的一種共通的解決方案。

網路核心概念

傳輸方式

網路根據傳輸方式可以進行分類,一般分成兩種 面向連接型和面向無連接型

  • 面向連接型中,在發送數據之前,需要在主機之間建立一條通訊線路。
  • 面向無連接型則不要求建立和斷開連接,發送方可用於任何時候發送數據。接收端也不知道自己何時從哪裡接收到數據。

分組交換

在互聯網應用中,每個終端系統都可以彼此交換資訊,這種資訊也被稱為 報文(Message),報文是一個集大成者,它可以包括你想要的任何東西,比如文字、數據、電子郵件、音頻、影片等。為了從源目的地向端系統發送報文,需要把長報文切分為一個個小的數據塊,這種數據塊稱為分組(Packets),也就是說,報文是由一個個小塊的分組組成。在端系統和目的地之間,每個分組都要經過通訊鏈路(communication links)分組交換機(switch packets) ,分組要在端系統之間交互需要經過一定的時間,如果兩個端系統之間需要交互的分組為 L 比特,鏈路的傳輸速率問 R 比特/秒,那麼傳輸時間就是 L / R秒。

一個端系統需要經過交換機給其他端系統發送分組,當分組到達交換機時,交換機就能夠直接進行轉發嗎?不是的,交換機可沒有這麼無私,你想讓我幫你轉發分組?好,首先你需要先把整個分組數據都給我,我再考慮給你發送的問題,這就是存儲轉發傳輸

存儲轉發傳輸

存儲轉發傳輸指的就是交換機再轉發分組的第一個比特前,必須要接受到整個分組,下面是一個存儲轉發傳輸的示意圖,可以從圖中窺出端倪

computer network1013

由圖可以看出,分組 1、2、3 向交換器進行分組傳輸,並且交換機已經收到了分組1 發送的比特,此時交換機會直接進行轉發嗎?答案是不會的,交換機會把你的分組先快取在本地。這就和考試作弊一樣,一個學霸要經過學渣 A 給學渣 B 傳答案,學渣 A 說,學渣 A 在收到答案後,它可能直接把卷子傳過去嗎?學渣A 說,等我先把答案抄完(保存功能)後再把卷子給你。

排隊時延和分組丟失

什麼?你認為交換機只能和一條通訊鏈路進行相連?那你就大錯特錯了,這可是交換機啊,怎麼可能只有一條通訊鏈路呢?

所以我相信你一定能想到這個問題,多個端系統同時給交換器發送分組,一定存在順序到達排隊的問題。事實上,對於每條相連的鏈路,該分組交換機會有一個輸出快取(output buffer)輸出隊列(output queue) 與之對應,它用於存儲路由器準備發往每條鏈路的分組。如果到達的分組發現路由器正在接收其他分組,那麼新到達的分組就會在輸出隊列中進行排隊,這種等待分組轉發所耗費的時間也被稱為 排隊時延,上面提到分組交換器在轉發分組時會進行等待,這種等待被稱為 存儲轉發時延,所以我們現在了解到的有兩種時延,但是其實是有四種時延。這些時延不是一成不變的,其變化程式取決於網路的擁塞程度。

因為隊列是有容量限制的,當多條鏈路同時發送分組導致輸出快取無法接受超額的分組後,這些分組會丟失,這種情況被稱為 丟包(packet loss),到達的分組或者已排隊的分組將會被丟棄。

下圖說明了一個簡單的分組交換網路

computer network1014

在上圖中,分組由三位數據平板展示,平板的寬度表示著分組數據的大小。所有的分組都有相同的寬度,因此也就有相同的數據包大小。下面來一個情景模擬: 假定主機 A 和 主機 B 要向主機 E 發送分組,主機 A 和 B 首先通過100 Mbps乙太網鏈路將其數據包發送到第一台路由器,然後路由器將這些數據包定向到15 Mbps 的鏈路。如果在較短的時間間隔內,數據包到達路由器的速率(轉換為每秒比特數)超過15 Mbps,則在數據包在鏈路輸出緩衝區中排隊之前,路由器上會發生擁塞,然後再傳輸到鏈路上。例如,如果主機 A 和主機 B 背靠背同時發了5包數據,那麼這些數據包中的大多數將花費一些時間在隊列中等待。實際上,這種情況與許多普通情況完全相似,例如,當我們排隊等候銀行出納員或在收費站前等候時。

轉發表和路由器選擇協議

我們剛剛講過,路由器和多個通訊線路進行相連,如果每條通訊鏈路同時發送分組的話,可能會造成排隊和丟包的情況,然後分組在隊列中等待發送,現在我就有一個問題問你,隊列中的分組發向哪裡?這是由什麼機制決定的?

換個角度想問題,路由的作用是什麼?把不同端系統中的數據包進行存儲和轉發 。在網際網路中,每個端系統都會有一個 IP 地址,當原主機發送一個分組時,在分組的首部都會加上原主機的 IP 地址。每一台路由器都會有一個 轉發表(forwarding table),當一個分組到達路由器後,路由器會檢查分組的目的地址的一部分,並用目的地址搜索轉發表,以找出適當的傳送鏈路,然後映射成為輸出鏈路進行轉發。

那麼問題來了,路由器內部是怎樣設置轉發表的呢?詳細的我們後面會講到,這裡只是說個大概,路由器內部也是具有路由選擇協議的,用於自動設置轉發表。

電路交換

在電腦網路中,另一種通過網路鏈路和路由進行數據傳輸的另外一種方式就是 電路交換(circuit switching)。電路交換在資源預留上與分組交換不同,什麼意思呢?就是分組交換不會預留每次端系統之間交互分組的快取和鏈路傳輸速率,所以每次都會進行排隊傳輸;而電路交換會預留這些資訊。一個簡單的例子幫助你理解:這就好比有兩家餐館,餐館 A 需要預定而餐館 B 不需要預定,對於可以預定的餐館 A,我們必須先提前與其進行聯繫,但是當我們到達目的地時,我們能夠立刻入座並選菜。而對於不需要預定的那家餐館來說,你可能不需要提前聯繫,但是你必須承受到達目的地後需要排隊的風險。

下面顯示了一個電路交換網路

computer network1015

在這個網路中,4條鏈路用於4台電路交換機。這些鏈路中的每一條都有4條電路,因此每條鏈路能支援4條並行的鏈接。每台主機都與一台交換機直接相連,當兩台主機需要通訊時,該網路在兩台主機之間創建一條專用的 端到端的鏈接(end-to-end connection)

分組交換和電路交換的對比

分組交換的支援者經常說分組交換不適合實時服務,因為它的端到端時延時不可預測的。而分組交換的支援者卻認為分組交換提供了比電路交換更好的頻寬共享;它比電路交換更加簡單、更有效,實現成本更低。但是現在的趨勢更多的是朝著分組交換的方向發展。

分組交換網的時延、丟包和吞吐量

網際網路可以看成是一種基礎設施,該基礎設施為運行在端系統上的分散式應用提供服務。我們希望在電腦網路中任意兩個端系統之間傳遞數據都不會造成數據丟失,然而這是一個極高的目標,實踐中難以達到。所以,在實踐中必須要限制端系統之間的 吞吐量 用來控制數據丟失。如果在端系統之間引入時延,也不能保證不會丟失分組問題。所以我們從時延、丟包和吞吐量三個層面來看一下電腦網路

分組交換中的時延

電腦網路中的分組從一台主機(源)出發,經過一系列路由器傳輸,在另一個端系統中結束它的歷程。在這整個傳輸歷程中,分組會涉及到四種最主要的時延:節點處理時延(nodal processing delay)、排隊時延(queuing delay)、傳輸時延(total nodal delay)和傳播時延(propagation delay)。這四種時延加起來就是 節點總時延(total nodal delay)

如果用 dproc dqueue dtrans dpop 分別表示處理時延、排隊時延、傳輸時延和傳播時延,則節點的總時延由以下公式決定: dnodal = dproc + dqueue + dtrans + dpop。

時延的類型

下面是一副典型的時延分布圖,讓我們從圖中進行分析一下不同的時延類型

computer network1016

分組由端系統經過通訊鏈路傳輸到路由器 A,路由器A 檢查分組頭部以映射出適當的傳輸鏈路,並將分組送入該鏈路。僅當該鏈路沒有其他分組正在傳輸並且沒有其他分組排在該該分組前面時,才能在這條鏈路上自由的傳輸該分組。如果該鏈路當前繁忙或者已經有其他分組排在該分組前面時,新到達的分組將會加入排隊。下面我們分開討論一下這四種時延

節點處理時延

節點處理時延分為兩部分,第一部分是路由器會檢查分組的首部資訊;第二部分是決定將分組傳輸到哪條通訊鏈路所需要的時間。一般高速網路的節點處理時延都在微妙級和更低的數量級。在這種處理時延完成後,分組會發往路由器的轉發隊列中

排隊時延

在隊列排隊轉發過程中,分組需要在隊列中等待發送,分組在等待發送過程中消耗的時間被稱為排隊時延。排隊時延的長短取決於先於該分組到達正在隊列中排隊的分組數量。如果該隊列是空的,並且當前沒有正在傳輸的分組,那麼該分組的排隊時延就是 0。如果處於網路高發時段,那麼鏈路中傳輸的分組比較多,那麼分組的排隊時延將延長。實際的排隊時延也可以到達微秒級。

傳輸時延

隊列 是路由器所用的主要的數據結構。隊列的特徵就是先進先出,先到達食堂的先打飯。傳輸時延是理論情況下單位時間內的傳輸比特所消耗的時間。比如分組的長度是 L 比特,R 表示從路由器 A 到路由器 B 的傳輸速率。那麼傳輸時延就是 L / R 。這是將所有分組推向該鏈路所需要的時間。正是情況下傳輸時延通常也在毫秒到微妙級

傳播時延

從鏈路的起點到路由器 B 傳播所需要的時間就是 傳播時延。該比特以該鏈路的傳播速率傳播。該傳播速率取決於鏈路的物理介質(雙絞線、同軸電纜、光纖)。如果用公式來計算一下的話,該傳播時延等於兩台路由器之間的距離 / 傳播速率。即傳播速率是 d/s ,其中 d 是路由器 A 和 路由器 B 之間的距離,s 是該鏈路的傳播速率。

傳輸時延和傳播時延的比較

電腦網路中的傳輸時延和傳播時延有時候難以區分,在這裡解釋一下,傳輸時延是路由器推出分組所需要的時間,它是分組長度和鏈路傳輸速率的函數,而與兩台路由器之間的距離無關。而傳播時延是一個比特從一台路由器傳播到另一台路由器所需要的時間,它是兩台路由器之間距離的倒數,而與分組長度和鏈路傳輸速率無關。從公式也可以看出來,傳輸時延是 L/R,也就是分組的長度 / 路由器之間傳輸速率。傳播時延的公式是 d/s,也就是路由器之間的距離 / 傳播速率。

排隊時延

在這四種時延中,人們最感興趣的時延或許就是排隊時延了 dqueue。與其他三種時延(dproc、dtrans、dpop)不同的是,排隊時延對不同的分組可能是不同的。例如,如果10個分組同時到達某個隊列,第一個到達隊列的分組沒有排隊時延,而最後到達的分組卻要經受最大的排隊時延(需要等待其他九個時延被傳輸)。

那麼如何描述排隊時延呢?或許可以從三個方面來考慮:流量到達隊列的速率、鏈路的傳輸速率和到達流量的性質。即流量是周期性到達還是突發性到達,如果用 a 表示分組到達隊列的平均速率( a 的單位是分組/秒,即 pkt/s)前面說過 R 表示的是傳輸速率,所以能夠從隊列中推出比特的速率(以 bps 即 b/s 位單位)。假設所有的分組都是由 L 比特組成的,那麼比特到達隊列的平均速率是 La bps。那麼比率 La/R 被稱為流量強度(traffic intensity),如果 La/R > 1,則比特到達隊列的平均速率超過從隊列傳輸出去的速率,這種情況下隊列趨向於無限增加。所以,設計系統時流量強度不能大於1

現在考慮 La / R <= 1 時的情況。流量到達的性質將影響排隊時延。如果流量是周期性到達的,即每 L / R 秒到達一個分組,則每個分組將到達一個空隊列中,不會有排隊時延。如果流量是 突發性 到達的,則可能會有很大的平均排隊時延。一般可以用下面這幅圖表示平均排隊時延與流量強度的關係

computer network1017

橫軸是 La/R 流量強度,縱軸是平均排隊時延。

丟包

我們在上述的討論過程中描繪了一個公式那就是 La/R 不能大於1,如果 La/R 大於1,那麼到達的排隊將會無窮大,而且路由器中的排隊隊列所容納的分組是有限的,所以等到路由器隊列堆滿後,新到達的分組就無法被容納,導致路由器 丟棄(drop) 該分組,即分組會 丟失(lost)

電腦網路中的吞吐量

除了丟包和時延外,衡量電腦另一個至關重要的性能測度是端到端的吞吐量。假如從主機 A 向主機 B 傳送一個大文件,那麼在任何時刻主機 B 接收到該文件的速率就是 瞬時吞吐量(instantaneous throughput)。如果該文件由 F 比特組成,主機 B 接收到所有 F 比特用去 T 秒,則文件的傳送平均吞吐量(average throughput) 是 F / T bps。

單播、廣播、多播和任播

在網路通訊中,可以根據目標地址的數量對通訊進行分類,可以分為 單播、廣播、多播和任播

單播(Unicast)

單播最大的特點就是 1 對 1,早期的固定電話就是單播的一個例子,單播示意圖如下

computer network1018

廣播(Broadcast)

我們一般小時候經常會跳廣播體操,這就是廣播的一個事例,主機和與他連接的所有端系統相連,主機將訊號發送給所有的端系統。

computer network1019

多播(Multicast)

多播與廣播很類似,也是將消息發送給多個接收主機,不同之處在於多播需要限定在某一組主機作為接收端。

computer network1020

任播(Anycast)

任播是在特定的多台主機中選出一個接收端的通訊方式。雖然和多播很相似,但是行為與多播不同,任播是從許多目標機群中選出一台最符合網路條件的主機作為目標主機發送消息。然後被選中的特定主機將返回一個單播訊號,然後再與目標主機進行通訊。

computer network1021

物理媒介

網路的傳輸是需要介質的。一個比特數據包從一個端系統開始傳輸,經過一系列的鏈路和路由器,從而到達另外一個端系統。這個比特會被轉發了很多次,那麼這個比特經過傳輸的過程所跨越的媒介就被稱為物理媒介(phhysical medium),物理媒介有很多種,比如雙絞銅線、同軸電纜、多模光纖欖、陸地無線電頻譜和衛星無線電頻譜。其實大致分為兩種:引導性媒介和非引導性媒介。

雙絞銅線

最便宜且最常用的引導性傳輸媒介就是雙絞銅線,多年以來,它一直應用於電話網。從電話機到本地電話交換機的連線超過 99% 都是使用的雙絞銅線,例如下面就是雙絞銅線的實物圖

computer network1022

雙絞銅線由兩根絕緣的銅線組成,每根大約 1cm 粗,以規則的螺旋形狀排列,通常許多雙絞線捆紮在一起形成電纜,並在雙絞餡的外面套上保護層。一對電纜構成了一個通訊鏈路。無屏蔽雙絞線一般常用在區域網(LAN)中。

同軸電纜

與雙絞線類似,同軸電纜也是由兩個銅導體組成,下面是實物圖

computer network1023

藉助於這種結構以及特殊的絕緣體和保護層,同軸電纜能夠達到較高的傳輸速率,同軸電纜普遍應用在在電纜電視系統中。同軸電纜常被用戶引導型共享媒介。

光纖

光纖是一種細而柔軟的、能夠引導光脈衝的媒介,每個脈衝表示一個比特。一根光纖能夠支援極高的比特率,高達數十甚至數百 Gbps。它們不受電磁干擾。光纖是一種引導型物理媒介,下面是光纖的實物圖

computer network1024

一般長途電話網路全面使用光纖,光纖也廣泛應用於網際網路的主幹。

陸地無線電信道

無線電信道承載電磁頻譜中的訊號。它不需要安裝物理線路,並具有穿透牆壁、提供與移動用戶的連接以及長距離承載訊號的能力。

衛星無線電信道

一顆衛星電信道連接地球上的兩個或多個微博發射器/接收器,它們稱為地面站。通訊中經常使用兩類衛星:同步衛星和近地衛星。

後記

這是電腦網路的第一篇文章,也是屬於基礎前置知識,後面會陸續更新電腦網路的內容。

如果文章還不錯,希望小夥伴們可以點贊、在看、留言、分享,這就是最好的白嫖 。

另外,我輸出了 六本 PDF,全集 PDF 如下。

鏈接: //pan.baidu.com/s/1mYAeS9hIhdMFh2rF3FDk0A 密碼: p9rs