作者:程序員cxuan/cxuan (本文來自作者投稿)
本文的組織形勢如下
如果說計算機把我們從工業時代帶到了信息時代,那么計算機網絡就可以說把我們帶到了網絡時代。隨著使用計算機人數的不斷增加,計算機也經歷了一系列的發展,從大型通用計算機 -> 超級計算機 -> 小型機 -> 個人電腦 -> 工作站 -> 便攜式電腦 -> 智能手機終端等都是這一過程的產物。計算機網絡也逐漸從獨立模式演變為了網絡互聯模式。
可以看到,在獨立模式下,每個人都需要排隊等待其他人在一個機器上完成工作后,其他用戶才能使用。這樣的數據是單獨管理的。
現在切換到了網絡互聯模式,在這種模式下,每個人都能獨立的使用計算機,甚至還會有一個服務器,來為老大哥、cxuan 和 sonsong 提供服務。這樣的數據是集中管理的。
計算機網絡按規模進行劃分,有WAN(Wide Area Network, 廣域網)和LAN(Local area Network, 局域網)。如下圖所示
上面是局域網,一般用在狹小區域內的網絡,一個社區、一棟樓、辦公室經常使用局域網。
距離較遠的地方組成的網絡一般是廣域網。
最初,只是固定的幾臺計算機相連在一起形成計算機網絡。這種網絡一般是私有的,這幾臺計算機之外的計算機無法訪問。隨著時代的發展,人們開始嘗試在私有網絡上搭建更大的私有網絡,逐漸又發展演變為互聯網,現在我們每個人幾乎都能夠享有互聯網帶來的便利。
計算機網絡發展歷程
批處理
就和早期的計算機操作系統一樣,最開始都要先經歷批處理(atch Processing)階段,批處理的目的也是為了能讓更多的人使用計算機。
批處理就是事先將數據裝入卡帶或者磁帶,并且由計算機按照一定的順序進行讀入。
當時這種計算機的價格比較昂貴,并不是每個人都能夠使用的,這也就客觀暗示著,只有專門的操作員才能使用計算機,用戶把程序提交給操作員,由操作員排隊執行程序,等一段時間后,用戶再來提取結果。
這種計算機的高效性并沒有很好的體現,甚至不如手動運算快。
分時系統
在批處理之后出現的就是分時系統了,分時系統指的是多個終端與同一個計算機連接,允許多個用戶同時使用一臺計算機。分時系統的出現實現了一人一機的目的,讓用戶感覺像是自己在使用計算機,實際上這是一種獨占性的特性。
分時系統出現以來,計算機的可用性得到了極大的改善。分時系統的出現意味著計算機越來越貼近我們的生活。
“
還有一點需要注意:分時系統的出現促進了像是 BASIC 這種人機交互語言的誕生。
分時系統的出現,同時促進者計算機網絡的出現。
計算機通信
在分時系統中,每個終端與計算機相連,這種獨占性的方式并不是計算機之間的通信,因為每個人還是在獨立的使用計算機。
到了 20 世紀 70 年代,計算機性能有了高速發展,同時體積也變得越來越小,使用計算機的門檻變得更低,越來越多的用戶可以使用計算機。
沒有一個計算機是信息孤島促使著計算機網絡的出現和發展。
計算機網絡的誕生
20 世紀 80 年代,一種能夠互連多種計算機的網絡隨之誕生。它能夠讓各式各樣的計算機相連,從大型的超級計算機或主機到小型電腦。
20 世紀 90 年代,真正實現了一人一機的環境,但是這種環境的搭建仍然價格不菲。與此同時,諸如電子郵件(E-mail)、萬維網(WWW,World Wide Web)等信息傳播方式如雨后春筍般迎來了前所未有的發展,使得互聯網從大到整個公司小到每個家庭內部,都得以廣泛普及。
計算機網絡的高速發展
現如今,越來越多的終端設備接入互聯網,使互聯網經歷了前所未有的高潮,近年來 3G、4G、5G 通信技術的發展更是互聯網高速發展的產物。
許多發展道路各不相同的網絡技術也都正在向互聯網靠攏。例如,曾經一直作為通信基礎設施、支撐通信網絡的電話網。隨著互聯網的發展,其地位也隨著時間的推移被IP(Internet Protocol)網所取代,IP 也是互聯網發展的產物。
網絡安全
正如互聯網也具有兩面性,互聯網的出現方便了用戶,同時也方便了一些不法分子。互聯網的便捷也帶來了一些負面影響,計算機病毒的侵害、信息泄漏、網絡詐騙層出不窮。
在現實生活中,通常情況下我們挨揍了會予以反擊,但是在互聯網中,你被不法分子攻擊通常情況下是無力還擊的,只能防御,因為還擊需要你精通計算機和互聯網,這通常情況下很多人辦不到。
通常情況下公司和企業容易被作為不法分子獲利的對象,所以,作為公司或者企業,要想不受攻擊或者防御攻擊,需要建立安全的互聯網連接。
互聯網協議
協議這個名詞不僅局限于互聯網范疇,也體現在日常生活中,比如情侶雙方約定好在哪個地點吃飯,這個約定也是一種協議,比如你應聘成功了,企業會和你簽訂勞動合同,這種雙方的雇傭關系也是一種協議。注意自己一個人對自己的約定不能成為協議,協議的前提條件必須是多人約定。
那么網絡協議是什么呢?
網絡協議就是網絡中(包括互聯網)傳遞、管理信息的一些規范。如同人與人之間相互交流是需要遵循一定的規矩一樣,計算機之間的相互通信需要共同遵守一定的規則,這些規則就稱為網絡協議。
沒有網絡協議的互聯網是混亂的,就和人類社會一樣,人不能想怎么樣就怎么樣,你的行為約束是受到法律的約束的;那么互聯網中的端系統也不能自己想發什么發什么,也是需要受到通信協議約束的。
我們一般都了解過 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 層分層,使那些比較復雜的協議簡單化。
在 OSI 標準模型中,每一層協議都接收由它下一層所提供的特定服務,并且負責為上一層提供服務,上層協議和下層協議之間通常會開放接口,同一層之間的交互所遵守的約定叫做協議。
OSI 標準模型
上圖只是簡單的介紹了一下層與層之間的通信規范和上層與下層的通信規范,并未介紹具體的網絡協議分層,實際上,OSI 標準模型將復雜的協議整理并分為了易于理解的 7 層。如下圖所示
互聯網的通信協議都對應了 7 層中的某一層,通過這一點,可以了解協議在整個網絡模型中的作用,一般來說,各個分層的主要作用如下
應用層:應用層是 OSI 標準模型的最頂層,是直接為應用進程提供服務的。其作用是在實現多個系統應用進程相互通信的同時,完成一系列業務處理所需的服務。包括文件傳輸、電子郵件遠程登錄和遠端接口調用等協議。
表示層: 表示層向上對應用進程服務,向下接收會話層提供的服務,表示層位于 OSI 標準模型的第六層,表示層的主要作用就是將設備的固有數據格式轉換為網絡標準傳輸格式。
會話層:會話層位于 OSI 標準模型的第五層,它是建立在傳輸層之上,利用傳輸層提供的服務建立和維持會話。
傳輸層:傳輸層位于 OSI 標準模型的第四層,它在整個 OSI 標準模型中起到了至關重要的作用。傳輸層涉及到兩個節點之間的數據傳輸,向上層提供可靠的數據傳輸服務。傳輸層的服務一般要經歷傳輸連接建立階段,數據傳輸階段,傳輸連接釋放階段 3 個階段才算完成一個完整的服務過程。
網絡層:網絡層位于 OSI 標準模型的第三層,它位于傳輸層和數據鏈路層的中間,將數據設法從源端經過若干個中間節點傳送到另一端,從而向運輸層提供最基本的端到端的數據傳送服務。
數據鏈路層:數據鏈路層位于物理層和網絡層中間,數據鏈路層定義了在單個鏈路上如何傳輸數據。
物理層:物理層是 OSI 標準模型中最低的一層,物理層是整個 OSI 協議的基礎,就如同房屋的地基一樣,物理層為設備之間的數據通信提供傳輸媒體及互連設備,為數據傳輸提供可靠的環境。
TCP/IP 協議簇
TCP/IP 協議是我們程序員接觸最多的協議,實際上,TCP/IP 又被稱為TCP/IP 協議簇,它并不特指單純的 TCP 和 IP 協議,而是容納了許許多多的網絡協議。
OSI 模型共有七層,從下到上分別是物理層、數據鏈路層、網絡層、運輸層、會話層、表示層和應用層。但是這顯然是有些復雜的,所以在TCP/IP協議中,它們被簡化為了四個層次
和 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秒。
一個端系統需要經過交換機給其他端系統發送分組,當分組到達交換機時,交換機就能夠直接進行轉發嗎?不是的,交換機可沒有這么無私,你想讓我幫你轉發分組?好,首先你需要先把整個分組數據都給我,我再考慮給你發送的問題,這就是存儲轉發傳輸
存儲轉發傳輸
存儲轉發傳輸指的就是交換機在轉發分組的第一個比特前,必須要接受到整個分組,下面是一個存儲轉發傳輸的示意圖,可以從圖中窺出端倪
由圖可以看出,分組 1、2、3 向交換器進行分組傳輸,并且交換機已經收到了分組1 發送的比特,此時交換機會直接進行轉發嗎?答案是不會的,交換機會把你的分組先緩存在本地。這就和考試作弊一樣,一個學霸要經過學渣 A 給學渣 B 傳答案,學渣 A 說,學渣 A 在收到答案后,它可能直接把卷子傳過去嗎?學渣A 說,等我先把答案抄完(保存功能)后再把卷子給你。
排隊時延和分組丟失
什么?你認為交換機只能和一條通信鏈路進行相連?那你就大錯特錯了,這可是交換機啊,怎么可能只有一條通信鏈路呢?
所以我相信你一定能想到這個問題,多個端系統同時給交換器發送分組,一定存在順序到達和排隊的問題。事實上,對于每條相連的鏈路,該分組交換機會有一個輸出緩存(output buffer)和輸出隊列(output queue)與之對應,它用于存儲路由器準備發往每條鏈路的分組。如果到達的分組發現路由器正在接收其他分組,那么新到達的分組就會在輸出隊列中進行排隊,這種等待分組轉發所耗費的時間也被稱為排隊時延,上面提到分組交換器在轉發分組時會進行等待,這種等待被稱為存儲轉發時延,所以我們現在了解到的有兩種時延,但是其實是有四種時延。這些時延不是一成不變的,其變化程序取決于網絡的擁塞程度。
因為隊列是有容量限制的,當多條鏈路同時發送分組導致輸出緩存無法接受超額的分組后,這些分組會丟失,這種情況被稱為丟包(packet loss),到達的分組或者已排隊的分組將會被丟棄。
下圖說明了一個簡單的分組交換網絡
在上圖中,分組由三位數據平板展示,平板的寬度表示著分組數據的大小。所有的分組都有相同的寬度,因此也就有相同的數據包大小。下面來一個情景模擬:假定主機 A 和 主機 B 要向主機 E 發送分組,主機 A 和 B 首先通過100 Mbps以太網鏈路將其數據包發送到第一臺路由器,然后路由器將這些數據包定向到15 Mbps 的鏈路。如果在較短的時間間隔內,數據包到達路由器的速率(轉換為每秒比特數)超過15 Mbps,則在數據包在鏈路輸出緩沖區中排隊之前,路由器上會發生擁塞,然后再傳輸到鏈路上。例如,如果主機 A 和主機 B 背靠背同時發了5包數據,那么這些數據包中的大多數將花費一些時間在隊列中等待。實際上,這種情況與許多普通情況完全相似,例如,當我們排隊等候銀行出納員或在收費站前等候時。
轉發表和路由器選擇協議
我們剛剛講過,路由器和多個通信線路進行相連,如果每條通信鏈路同時發送分組的話,可能會造成排隊和丟包的情況,然后分組在隊列中等待發送,現在我就有一個問題問你,隊列中的分組發向哪里?這是由什么機制決定的?
換個角度想問題,路由的作用是什么?把不同端系統中的數據包進行存儲和轉發。在因特網中,每個端系統都會有一個IP地址,當原主機發送一個分組時,在分組的首部都會加上原主機的 IP 地址。每一臺路由器都會有一個轉發表(forwarding table),當一個分組到達路由器后,路由器會檢查分組的目的地址的一部分,并用目的地址搜索轉發表,以找出適當的傳送鏈路,然后映射成為輸出鏈路進行轉發。
那么問題來了,路由器內部是怎樣設置轉發表的呢?詳細的我們后面會講到,這里只是說個大概,路由器內部也是具有路由選擇協議的,用于自動設置轉發表。
電路交換
在計算機網絡中,另一種通過網絡鏈路和路由進行數據傳輸的另外一種方式就是電路交換(circuit switching)。電路交換在資源預留上與分組交換不同,什么意思呢?就是分組交換不會預留每次端系統之間交互分組的緩存和鏈路傳輸速率,所以每次都會進行排隊傳輸;而電路交換會預留這些信息。一個簡單的例子幫助你理解:這就好比有兩家餐館,餐館 A 需要預定而餐館 B 不需要預定,對于可以預定的餐館 A,我們必須先提前與其進行聯系,但是當我們到達目的地時,我們能夠立刻入座并選菜。而對于不需要預定的那家餐館來說,你可能不需要提前聯系,但是你必須承受到達目的地后需要排隊的風險。
下面顯示了一個電路交換網絡
在這個網絡中,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。
時延的類型
下面是一副典型的時延分布圖,讓我們從圖中進行分析一下不同的時延類型
分組由端系統經過通信鏈路傳輸到路由器 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 秒到達一個分組,則每個分組將到達一個空隊列中,不會有排隊時延。如果流量是?突發性?到達的,則可能會有很大的平均排隊時延。一般可以用下面這幅圖表示平均排隊時延與流量強度的關系
橫軸是 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,早期的固定電話就是單播的一個例子,單播示意圖如下
廣播(Broadcast)
我們一般小時候經常會跳廣播體操,這就是廣播的一個事例,主機和與他連接的所有端系統相連,主機將信號發送給所有的端系統。
多播(Multicast)
多播與廣播很類似,也是將消息發送給多個接收主機,不同之處在于多播需要限定在某一組主機作為接收端。
任播(Anycast)
任播是在特定的多臺主機中選出一個接收端的通信方式。雖然和多播很相似,但是行為與多播不同,任播是從許多目標機群中選出一臺最符合網絡條件的主機作為目標主機發送消息。然后被選中的特定主機將返回一個單播信號,然后再與目標主機進行通信。
物理媒介
網絡的傳輸是需要介質的。一個比特數據包從一個端系統開始傳輸,經過一系列的鏈路和路由器,從而到達另外一個端系統。這個比特會被轉發了很多次,那么這個比特經過傳輸的過程所跨越的媒介就被稱為物理媒介(phhysical medium),物理媒介有很多種,比如雙絞銅線、同軸電纜、多模光纖欖、陸地無線電頻譜和衛星無線電頻譜。其實大致分為兩種:引導性媒介和非引導性媒介。
雙絞銅線
最便宜且最常用的引導性傳輸媒介就是雙絞銅線,多年以來,它一直應用于電話網。從電話機到本地電話交換機的連線超過 99% 都是使用的雙絞銅線,例如下面就是雙絞銅線的實物圖
雙絞銅線由兩根絕緣的銅線組成,每根大約 1cm 粗,以規則的螺旋形狀排列,通常許多雙絞線捆扎在一起形成電纜,并在雙絞線的外面套上保護層。一對電纜構成了一個通信鏈路。無屏蔽雙絞線一般常用在局域網(LAN)中。
同軸電纜
與雙絞線類似,同軸電纜也是由兩個銅導體組成,下面是實物圖
借助于這種結構以及特殊的絕緣體和保護層,同軸電纜能夠達到較高的傳輸速率,同軸電纜普遍應用在在電纜電視系統中。同軸電纜常被用戶引導型共享媒介。
光纖
光纖是一種細而柔軟的、能夠引導光脈沖的媒介,每個脈沖表示一個比特。一根光纖能夠支持極高的比特率,高達數十甚至數百 Gbps。它們不受電磁干擾。光纖是一種引導型物理媒介,下面是光纖的實物圖
一般長途電話網絡全面使用光纖,光纖也廣泛應用于因特網的主干。
陸地無線電信道
無線電信道承載電磁頻譜中的信號。它不需要安裝物理線路,并具有穿透墻壁、提供與移動用戶的連接以及長距離承載信號的能力。
衛星無線電信道
一顆衛星電信道連接地球上的兩個或多個微博發射器/接收器,它們稱為地面站。通信中經常使用兩類衛星:同步衛星和近地衛星。
原文標題:計算機網絡基礎知識總結
文章出處:【微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。
責任編輯:haq
-
計算機
+關注
關注
19文章
7490瀏覽量
87878 -
網絡
+關注
關注
14文章
7557瀏覽量
88742
原文標題:計算機網絡基礎知識總結
文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論