你說你懂計算機網絡,那這些你都知道嗎

今天的因特網無疑是有史以來由人類創造的、精心設計的最大系統、該系統由數以千計的計算機設備(計算機、平板電腦、智能手機)彼此相互連接構成,並且還有一批與因特網相互連接的物品比如遊戲機、監控系統、汽車、醫療設備、智能眼鏡、手錶、運動手環等,隨著5G時代的到來,萬物互聯也越來越稱為可能,這裡推薦一下 尤瓦爾·赫拉利 的《未來簡史》,這個人的格局很高,他書中描述的未來也越來越成為現實,他寫的文字能讓你感覺到你更想變為計算機世界裡的一片硅片。

但是,面對互聯網如此巨大且迅速的變化,我們能做些什麼?我在地鐵站等車的時候經常被地鐵廣告洗腦,鼓吹人工智能發展的多麼牛逼,鼓吹大家都成為人工智能的高端型人才,我不能否認這個操作,但是我認為人工智能並不適合每個人,而且人工智能需要的技術和知識儲備是巨大的,所以,與其憧憬成為人工智能的高端型人才,不如把眼下的計算機基礎知識學好,你的未來才會有更多的可能性。畢竟,一切計算力發展的源頭都是計算機,也可以說現在互聯網一切的衍生物都是計算機的兒子。

說到計算機基礎,就不得不提計算機網絡,就像人長大後是需要和外界進行交流一樣,計算機網絡也是計算機彼此通信的必要條件。如果計算機的創造好比新中國成立,那麼計算機網絡的出現就相當於是改革開放。並且計算機網絡是每個軟件工程師必須要學好的一門知識。扯了這麼多,下面開始進入正題,一展計算機網絡的宏圖。

什麼是因特網

首先來聊一下因特網是什麼,wiki 對它的定義是:因特網是一個全球範圍的互聯網系統,它使用 TCP/IP 協議簇來鏈接全世界的設備。我們可以從兩個方面來描述一下因特網

  • 我們描述因特網可以通過基本硬件和軟件組件來進行描述
  • 我們能夠根據為分佈式應用提供服務的聯網基礎設施來描述因特網

我們先從第一條描述開始

因特網的描述

通過硬件和軟件來描述

因特網是一個世界範圍的計算機網絡。說到因特網的構成,就不得不提構成因特網的組件是什麼,還記得我們開頭提到的因特網設備嗎?智能手機、平板電腦,智能電視,智能家居,遊戲機,手錶,汽車,眼鏡,溫度調節系統,這些構件在因特網中有個專門的術語,所有的這些設備都被稱為主機(host)或者端系統(end system),一提到主機你是不是想到的是計算機的主機?這兩個主機的領域雖然不同,但是它們的作用是相同的,都是系統的大腦。據保守性評估,2015年已經有大約50億臺設備接入了因特網。而到了2020年這個數字將會變為250億。

你說你懂計算機網絡,那這些你都知道嗎

那麼這些主機或者端系統之間是如何進行通信的呢?實際上,端系統通過通信鏈路(communication link)和分組交換機(packet switch) 連接到一起。

通信鏈路:指的是因特網中兩個節點之間的物理通道。通信鏈路的傳輸介質有雙絞線、光纖 和 微波

分組交換機:網絡交換設備,它主要包括三個基本部分:交換單元、接口單元和控制單元。

不同的鏈路能夠以不同的速率進行傳輸數據,稱為鏈路的傳輸速率(transmission type) ,以 比特/秒(bit/s,或 bps)進行度量。當一臺端系統要向另一臺端系統發送數據時,發送端系統將數據分段,併為每段加上首部字節。由此形成的信息包用計算機網絡的術語稱為分組(packet),這個分組的概念非常重要,以後我們會經常提到。這些分組通過網絡發送到目的端系統,在那裡被裝配成初始數據。

分組交換機從它的一條入通信鏈路接收到達的分組,並從它的一條出通信鏈路轉發該分組。分組交換機的種類有很多種,最著名最常見的分組交換機就是路由器(router) 和 鏈路層交換機(link-layer switch),一個分組所經歷的一系列通信鏈路和分組交換機稱為通過該網絡的路徑(route 或者 path)。

你說你懂計算機網絡,那這些你都知道嗎

上面講述的名詞肯能比較晦澀,如果你不是很理解的話,就可以把分組在交換網絡中的傳輸比作是 運輸車在高速公路上的運輸,分組類似於卡車,通信鏈路類似於高速公路,分組交換機類似於交叉口,端系統類似於建築物,就像卡車需要從某一建築物的起點經過高速公路和交叉口到達另外一個建築物的過程。就像卡車需要選取一條路進行運輸一樣,分組也選取計算機網絡的一條路徑前行。

端系統通過因特網服務提供商(Internet Service Provider,ISP) 接入因特網,包括如本地電纜或電話公司那樣的住宅區 ISP、公司 ISP、大學 ISP,在機場、咖啡館或者公共場所所提供的 WiFi 接入的 ISP,以及為智能手機或者其他設備提供移動接入的蜂窩數據。

我們國家的 ISP 主要有三大基礎運營商,中國電信、中國移動和中國聯通。

端系統、分組交換機和其他因特網部件都要運行一系列的 協議(protocol),這些協議控制因特網中信息的接收和發送。其中 TCP和 IP 協議是因特網中最重要的兩個協議。IP協議定義了在路由器和端系統之間發送和接收的分組格式。因特網中的協議統稱為TCP/IP,而不單單指的是TCP 和 IP 兩個協議。

那麼這些協議是由誰制定的呢?實際上,這些因特網協議或者稱為因特網標準是由因特網工程任務組(Internet Engineering Task Force)

通過分佈式應用程序來描述

上面我們描述的因特網是從硬件和軟件層面進行說明的,除此之外,我們還可以通過為分佈式應用提供服務的聯網基礎設施來描述因特網,這個概念比較抽象,我們還是舉例子說明一下。除了傳統應用程序就像是電子郵件和web 衝浪外,因特網應用還包括智能手機和平板應用程序,這些應用程序中又包括像是即時通訊、來自雲的音樂流、電影和電視流、在線社交網絡、視頻會議、多人遊戲和基於位置的推薦系統。因為這些應用程序涉及多個相互交換的端系統,所以這些應用被稱為分佈式應用程序。重要的是,因特網應用程序運行在端系統上,而不是運行在網絡核心的分組交換機中。

我們來深入的探究一下,因為應用程序可能會運行在端系統上,所以你需要編寫使其運行在端系統上的程序,你可能會使用 C、Java、Python 來編寫。現在,因為你開發了一個分佈式應用程序,這個程序運行在不同的端系統需要彼此發送消息。此時我們遇見一個核心問題,那就是一個運行在端系統的應用程序如何讓其他運行在端系統的應用程序收發數據呢?

接入因特網的端系統提供了一個套接字接口(socket Interface)用於和其他端系統的應用程序收發數據。這個因特網套接字是應用程序必須要遵守的約定。

協議是什麼

既然我們已經對因特網有了一點概念了,下面我們就來探討一下因特網又一個很重要的概念那就是協議,協議就相當於是人類活動所遵守的約定。

人類活動的比喻

理解計算機網絡協議最簡單的方式就是把它抽象為我們的生活,因為我們人類無時無刻都在執行協議。考慮一下當你想向其他人詢問當前時間的時候你會怎樣做?下面是一個典型的詢問方式

你說你懂計算機網絡,那這些你都知道嗎

上圖是一個男女雙方都比較友好的對話,那麼假如女方回答:"請不要煩我",或者說我不會說中文等等類似不合時宜的回答造成雙方不再對話,那麼此時就會造成中斷。通常情況下,發問者就會放棄繼續詢問。那麼造成上述中斷的原因是什麼呢?是不是男女雙方沒有就詢問時間這個話題達成一致呢?也就是說,協議最重要的一點就是為了完成一項工作,需要兩個(或多個)通信實體遵守相同的協議

網絡協議

網絡協議非常類似於人類協議,除了通信雙方由人類變為樂計算機載體,哦,協議也會不一樣。以大家熟悉的一個計算機網絡協議為例,考慮當你向一個 Web 服務器發送請求時(即你在 Web 瀏覽器中鍵入一個 Web 頁面的 URL)所發生的情況。

你說你懂計算機網絡,那這些你都知道嗎

首先,你的計算機會向 Web 服務器發送一條連接請求報文,並等待該服務器的響應,等到服務器發送響應到計算機之後,計算機會重新發送一條 GET 請求報文到服務器,最後,Web 服務器向計算機返回該 Web 頁面(文件)。

根據上面兩個例子你能給的出協議的定義了嗎?也許下面這個定義會比較準確呢

協議(protocol)定義了在兩個或多個通信實體之間交換報文的格式和順序,以及報文發送和/或接受一條報文或其他事件所採取的動作

因特網廣泛的採取了各種各樣的協議,不同的協議用於完成不同的通信任務。掌握計算機網絡領域知識的過程就是理解網絡協議的構成、原理和工作方式的過程。

接入網

回想上一節中計算機網絡的術語,通常把與因特網相連的計算機和其他設備稱為端系統。

你說你懂計算機網絡,那這些你都知道嗎

如上圖所示,因為它們位於因特網的邊緣,故而被稱為端系統。因特網的端系統包括了桌面計算機(桌面PC、Mac 和 Linux 設備)、服務器(Web 和電子郵件服務器)和移動計算機(便攜機、智能手機和平板電腦)。

端系統也稱為主機,即端系統 = 主機。後面一說主機也就指的就是端系統。主機進一步也可以劃為兩類:客戶(client) 和 服務器(server)。客戶通常是桌面 PC,移動 PC 和 智能手機等,而服務器通常是更為強大的機器,用於存儲和發佈 Web 頁面、流視頻、中繼電子郵件等。

考慮了位於網絡邊緣的應用程序和端系統後,我們接下來考慮一下接入網,接入網指的是將端系統物理鏈接到邊緣路由器(edge router)的網絡。邊緣路由器指的是端系統到任何其他遠程端系統的路徑上的第一臺路由器。

家庭接入: DSL、電纜、光纖

DSL

我們一般家庭最常用的接入方式就是數字用戶線(Digital Subscriber Line) 和 電纜。住戶通常從提供本地電話接入的本地電話公司處獲得 DSL 因特網接入。

你說你懂計算機網絡,那這些你都知道嗎

先來看一下這幅圖片吧,DSL 調制解調器是允許你的計算機通過 DSL 連接與 ISP 進行通信的硬件設備。每個用於的 DSL 調制解調器使用現有的電話線(雙絞銅線)與位於電話公司的本地中心局(CO) 中的數字用戶線接入複用器(DSLAM) 交換數據。

在計算機網絡中,上游是指可以將數據從客戶端傳遞到服務器(上載)的方向,上游的速度非常寶貴。下游是指從網絡提供商發送給客戶的數據。

上圖中有三條電話線,它們使用不同的頻率進行編碼

  • 高速下載通道,用於處理 50KHz - 1MHz的頻段
  • 中速上傳通道,用於處理 4KHz - 50KHz的頻段
  • 普通的雙向電話信道,位於 0 到 4KHz的頻段

這種方法使得單根 DSL 線路看起來像擁有三根一樣,因此一個電話通道和一個因特網連接能夠共享 DSL 鏈路,在用戶的一側,一個分配器把到達家庭的數據信號和電話信號分開,並將數據信號轉發給 DSL 調制解調器。在服務提供商一側,在中心局中,DSLAM 把數據信號和電話信號分隔開,並將數字信號發送給因特網。數百上千的家庭與一個 DSLAM 相連。

DSL 中定義了多個傳輸速率,DSL 的傳輸速率由服務提供商來決定的,根據價位的的不同,會有不同的傳輸速率,並且實際的上傳下載速率要比理論上的速率要慢很多,比如我家是 50M 光纖,實際也就是 30M 這樣。

電纜

DSL 利用電話公司現有的本地電話基礎設施,而 電纜因特網接入(cable Internet access) 利用了有線電視公司現有的有線電視基礎設施。用戶從有線電視公司獲得了電纜因特網接入。如下圖所示

你說你懂計算機網絡,那這些你都知道嗎

這種接入方式使用了同軸電纜和 光纖兩種接入方式,因此被稱為混合光纖同軸接入系統。

電纜因特網接入需要特殊的調制解調器,這種調制解調器稱為電纜調制解調器(cable modem)。和 DSL 相似,電纜調制解調器通常也是一個外部設備,通過一個以太網端口連接到家庭 PC,在電纜的頭部具有和 DSLAM 相似的功能,即將來自許多下游用戶中的電纜調制解調器發送的模擬信號轉換為數字形式。

電纜因特網接入的一個重要特徵是共享廣播媒體,由頭髮送的每個分組向下行經每條鏈路到每個家庭;每個家庭發送的每個分組經上行信道向頭部傳輸。因此,如果幾個用戶同時經下行信道下載一個視頻文件,每個用戶接受視頻文件的實際速率將大大低於電纜總計的下行速率。

光纖

DSL 和 電纜網絡在3年前還是提供網絡接入的主流,但是現在卻有一種更高速的新興技術是光纖到戶(FTTH)。最簡單的光線分佈網絡稱為直接光纖,從本地中心局到每戶都設置一根光纖。還有一種是從本地中心局拉出來的光纖被每個家庭網絡共享,光纖部署靠近用戶的位置才會分為光纖網絡為每個家庭接入。

光纖分佈體系結構就值得是光纖遍佈的光纖網絡,分為兩種:主動光纖網絡(AON)和 被動光纖網絡(PON),AON 的本質是交換因特網,這個比較複雜,後面的文章會進行介紹,這裡我們先介紹一下被動光纖網絡 PON,下面是 PON 的因特網接入圖

你說你懂計算機網絡,那這些你都知道嗎

上圖顯示了使用 PON 分佈體系結構的光纖網絡。每個家庭具有一個光纖網絡端連接器(Optical Network Terminator, ONT),它由臨近的光纖分配器進行分配。中心局有一個光纖線路端連接器(Optical Line Terminator, OLT)。 OLT 提供了光信號到電信號的轉換,經本地電話公司路由器與因特網相連。在每個家庭中,通常使用路由器與 ONT 相連,並經過這臺家庭路由器接入因特網。

光纖有潛力提供每秒千兆比特範圍的因特網接入速率,然而,服務提供商根據不同的網絡傳輸速率來收費,較高的速率當然花費更多。

企業和家庭接入:以太網和 WiFi

在公司和大學校園以及越來越多的家庭環境中,使用局域網(LAN)將端系統連接到邊緣路由器。儘管有許多不同類型的局域網技術,但是以太網是目前為止公司、大學和家庭網絡中用的最為流行的接入技術。

以太網

以太網是一種連接局域網的傳統技術,它能夠使設備通過協議(一組規則或通用網絡語言)相互通信,以太網的接入設備可以相互識別對方。

我之前一直想了解以太網是怎樣工作的,但是一直沒有細緻的瞭解,現在就來挖一下以太網的工作流程!下面是以太網的接入過程

你說你懂計算機網絡,那這些你都知道嗎

之前的以太網用戶使用雙絞銅線與一臺以太網交換機相連,以太網交換機或這樣相連的交換機網絡,則再與更大的因特網相連。使用以太網接入,用戶通常以 100 Mbps 或 1 Gbps 速率接入以太網交換機,而服務器可能具有 1 Gbps 甚至 10 Gbps 的接入速率。

而最新的以太網用戶可以使用雙絞線和光纖線路以及交換機接入。以太網傳輸速率從 2.94 Mbit/s 提高到最新的 400 Gbit/s 。

有線和無線

在往下進行前,需要先討論一下有線和無線的關係

有線 顧名思義就是使用電纜或者物理介質組成的,而有線網絡是使用有線把電信號從一端傳輸到另一端的網絡。通常在有線網絡中,使用 T1線,電纜解調器或任何其他方式使用 Internet 連接。

無線 指的是由電磁波(即 EM 波)或紅外波組成的介質。所有的無線設備都帶有天線或者傳感器。典型的無線設備包括蜂窩移動設備,無線傳感器,電視遙控器,帶有 WLAN 的筆記本電腦。無線網絡不使用電線 進行數據通信。

它們之間的差別如下

技術指標有線網絡無線網絡運作速度更高相比有線網絡要低,但是先進的無線技術(例如LTE,LTE-A和WLAN-11ad)將有可能實現與有線網絡相當的速度系統帶寬高低,因為頻譜是非常稀缺的資源成本更少,因為電纜不貴無線訂戶站,無線路由器,無線接入點和適配器價格昂貴安裝有線網絡安裝麻煩,需要更多時間無線網絡安裝簡便,所需時間更少流動性受限制,因為它在有線網絡連接的系統所覆蓋的區域中運行沒有限制,因為它在整個無線網絡覆蓋範圍內運行傳輸介質銅線,光纜,以太網電磁波或無線電波或紅外線網絡覆蓋範圍擴展需要集線器和交換機來擴展網絡覆蓋範圍相互連接的無線基站覆蓋了更多區域。應用領域局域網(以太網),城域網WLAN,WPAN(Zigbee,藍牙),紅外,蜂窩(GSM,CDMA,LTE)信道干擾和信號功率損耗干擾較小,因為一個有線網絡不會影響另一有線網絡由於無線發射器和接收器之間的障礙(例如天氣條件,牆壁反射等),干擾會更高。QoS(服務質量)更好由於抖動值高和連接設置延遲而導致的性能較差可靠性與無線同類產品相比,具有較高的優勢,因為多年以來由於有線技術的存在,製成的電纜具有更高的性能。合理高,這是由於路由器故障會影響整個網絡。

WiFi

如果你配置過網絡,那你一定見過 WLAN(Wireless LAN) 無線計算機網絡,它使用無線通信連接兩個或多個設備,用來形成一個 LAN。

現在,越來越多的人通過智能手機、平板電腦和其他物品無線接入因特網。基於 IEEE 802.11 技術的無線 LAN 接入,更通俗的稱為 WiFi,現在WiFi 幾乎無處不在,如大學、商業辦公室、咖啡廳、機場、家庭甚至是在飛機上。

廣域無線接入:3G 和 LTE

iPhone 和 安卓等設備越來越多的用於在移動中發信息、在社交網絡中分享照片、觀看視頻和播放音樂等。這些設備應用了與蜂窩移動電話相同的無線基礎設施,通過蜂窩網提供商運營的基站來發送和接收分組。與 WiFi 不用的是,蜂窩網提供的範圍要比 WiFi 大太多了。

下面是使用 3G 無線技術進行接入的示意圖

你說你懂計算機網絡,那這些你都知道嗎

電信公司在第三代無線技術中進行了大量的投資,3G 為分組交換廣域無線因特網接入提供了超過 1Mbps 的速率。甚至更高速率的廣域接入即第四代 4G 廣域無線網絡也已經被部署了(咳咳,我們國家已經馬上5G 了謝謝)。LTE(Long-Term Evolution) 來源於 3G 技術,它能夠取得超過 10Mbps 的速率。

物理媒介

在前面的內容中,我們描述了互聯網接入技術,那麼要進行這些互聯網必然是少不了傳輸媒介的,那麼你考慮一下這個發送過程,一個比特數據包從一個端系統開始傳輸,經過一系列的鏈路和路由器,從而到達另外一個端系統。這個比特會被轉發了很多次,那麼這個比特經過傳輸的過程所跨越的媒介就被稱為物理媒介(phhysical medium),物理媒介有很多種,比如雙絞銅線、同軸電纜、多模光纖欖、陸地無線電頻譜和衛星無線電頻譜。其實大致分為兩種:引導性媒介和非引導性媒介。

雙絞銅線

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

你說你懂計算機網絡,那這些你都知道嗎

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

同軸電纜

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

你說你懂計算機網絡,那這些你都知道嗎

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

光纖

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

你說你懂計算機網絡,那這些你都知道嗎

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

陸地無線電信道

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

衛星無線電信道

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

最後,小編想說:我是一名python開發工程師,整理了一套最新的python系統學習教程,想要這些資料的可以關注私信小編“01”即可,希望能對你有所幫助。


分享到:


相關文章: