今天的因特網無疑是有史以來由人類創造的、精心設計的最大系統、該系統由數以千計的計算機裝置(計算機、平板電腦、智慧手機)彼此相互連線構成,並且還有一批與因特網相互連線的物品比如遊戲機、監控系統、汽車、醫療裝置、智慧眼鏡、手錶、運動手環等,隨著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。它們不受電磁干擾。光纖是一種引導型物理媒介,下面是光纖的實物圖
一般長途電話網路全面使用光纖,光纖也廣泛應用於因特網的主幹。
陸地無線電通道
無線電通道承載電磁頻譜中的訊號。它不需要安裝物理線路,並具有穿透牆壁、提供與移動使用者的連線以及長距離承載訊號的能力。
衛星無線電通道
一顆衛星電通道連線地球上的兩個或多個微博發射器/接收器,它們稱為地面站。通訊中經常使用兩類衛星:同步衛星和近地衛星。
文章參考:
《計算機網路:自頂向下方法》
《Computer Networking A Top-Down Approach (7th Edition)》
searchnetworking.techtarget.com/definition/…
www.rfwireless-world.com/Terminology…
www.androidauthority.com/worlds-fast…
www.investopedia.com/articles/ma…
歡迎關注我的個人公眾號