今天的因特網無疑是有史以來由人類創造的、精心設計的最大系統、該系統由數以千計的計算機設備(計算機、平板電腦、智能手機)彼此相互鏈接構成,而且還有一批與因特網相互鏈接的物品好比遊戲機、監控系統、汽車、醫療設備、智能眼鏡、手錶、運動手環等,隨着5G時代的到來,萬物互聯也愈來愈稱爲可能,這裏推薦一下 尤瓦爾·赫拉利 的《將來簡史》,這我的的格局很高,他書中描述的將來也愈來愈成爲現實,他寫的文字能讓你感受到你更想變爲計算機世界裏的一片硅片。git
可是,面對互聯網如此巨大且迅速的變化,咱們能作些什麼?我在地鐵站等車的時候常常被地鐵廣告洗腦,鼓吹人工智能發展的多麼牛逼,鼓吹你們都成爲人工智能的高端型人才,我不可否認這個操做,可是我認爲人工智能並不適合每一個人,並且人工智能須要的技術和知識儲備是巨大的,因此,與其憧憬成爲人工智能的高端型人才,不如把眼下的計算機基礎知識學好,你的將來纔會有更多的可能性。畢竟,一切計算力發展的源頭都是計算機,也能夠說如今互聯網一切的衍生物都是計算機的兒子。web
說到計算機基礎,就不得不提計算機網絡,就像人長大後是須要和外界進行交流同樣,計算機網絡也是計算機彼此通訊的必要條件。若是計算機的創造比如新中國成立,那麼計算機網絡的出現就至關因而改革開放。而且計算機網絡是每一個軟件工程師必需要學好的一門知識。扯了這麼多,下面開始進入正題,一展計算機網絡的宏圖。瀏覽器
首先來聊一下因特網是什麼,wiki 對它的定義是:因特網是一個全球範圍的互聯網系統,它使用 TCP/IP
協議簇來連接全世界的設備。咱們能夠從兩個方面來描述一下因特網服務器
咱們先從第一條描述開始網絡
因特網是一個世界範圍的計算機網絡。說到因特網的構成,就不得不提構成因特網的組件是什麼,還記得咱們開頭提到的因特網設備嗎?智能手機、平板電腦,智能電視,智能家居,遊戲機,手錶,汽車,眼鏡,溫度調節系統,這些構件在因特網中有個專門的術語,全部的這些設備都被稱爲主機(host)
或者端系統(end system)
,一提到主機你是否是想到的是計算機的主機?這兩個主機的領域雖然不一樣,可是它們的做用是相同的,都是系統的大腦
。據保守性評估,2015年已經有大約50億臺設備接入了因特網。而到了2020年這個數字將會變爲250億。less
那麼這些主機或者端系統之間是如何進行通訊的呢?實際上,端系統經過通訊鏈路(communication link)
和分組交換機(packet switch)
鏈接到一塊兒。socket
通訊鏈路:指的是因特網中兩個節點之間的物理通道。通訊鏈路的傳輸介質有
雙絞線
、光纖
和微波
分佈式分組交換機:網絡交換設備,它主要包括三個基本部分:交換單元、接口單元和控制單元。ide
不一樣的鏈路可以以不一樣的速率進行傳輸數據,稱爲鏈路的傳輸速率(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
咱們通常家庭最經常使用的接入方式就是數字用戶線(Digital Subscriber Line)
和 電纜
。住戶一般從提供本地電話接入的本地電話公司處得到 DSL 因特網接入。
先來看一下這幅圖片吧,DSL 調制解調器是容許你的計算機經過 DSL 鏈接與 ISP 進行通訊的硬件設備。每一個用於的 DSL 調制解調器使用現有的電話線(雙絞銅線)與位於電話公司的本地中心局(CO) 中的數字用戶線接入複用器(DSLAM) 交換數據。
在計算機網絡中,上游是指能夠將數據從客戶端
傳遞到服務器
(上載)的方向,上游的速度很是寶貴。下游是指從網絡提供商
發送給客戶
的數據。
上圖中有三條電話線,它們使用不一樣的頻率進行編碼
這種方法使得單根 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 相連,並通過這臺家庭路由器接入因特網。
光纖有潛力提供每秒千兆比特範圍的因特網接入速率,然而,服務提供商根據不一樣的網絡傳輸速率來收費,較高的速率固然花費更多。
在公司和大學校園以及愈來愈多的家庭環境中,使用局域網(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 幾乎無處不在,如大學、商業辦公室、咖啡廳、機場、家庭甚至是在飛機上。
iPhone 和 安卓等設備愈來愈多的用於在移動中發信息、在社交網絡中分享照片、觀看視頻和播放音樂等。這些設備應用了與蜂窩移動電話相同的無線基礎設施,經過蜂窩網提供商運營的基站來發送和接收分組。與 WiFi 不用的是,蜂窩網提供的範圍要比 WiFi 大太多了。
下面是使用 3G 無線技術進行接入的示意圖
電信公司在第三代無線技術中進行了大量的投資,3G 爲分組交換廣域無線因特網接入提供了超過 1Mbps 的速率。甚至更高速率的廣域接入即第四代 4G 廣域無線網絡也已經被部署了(咳咳,咱們國家已經立刻5G 了謝謝)。LTE(Long-Term Evolution)
來源於 3G 技術,它可以取得超過 10Mbps 的速率。
在前面的內容中,咱們描述了互聯網接入技術,那麼要進行這些互聯網必然是少不了傳輸媒介的,那麼你考慮一下這個發送過程,一個比特數據包從一個端系統開始傳輸,通過一系列的鏈路和路由器,從而到達另一個端系統。這個比特會被轉發了不少次,那麼這個比特通過傳輸的過程所跨越的媒介就被稱爲物理媒介(phhysical medium)
,物理媒介有不少種,好比雙絞銅線、同軸電纜、多模光纖欖、陸地無線電頻譜和衛星無線電頻譜。其實大體分爲兩種:引導性媒介和非引導性媒介。
最便宜且最經常使用的引導性傳輸媒介就是雙絞銅線
,多年以來,它一直應用於電話網。從電話機到本地電話交換機的連線超過 99% 都是使用的雙絞銅線,例以下面就是雙絞銅線的實物圖
雙絞銅線由兩根絕緣的銅線組成,每根大約 1cm 粗,以規則的螺旋形狀排列,一般許多雙絞線捆紮在一塊兒造成電纜,並在雙絞餡的外面套上保護層。一對電纜構成了一個通訊鏈路。無屏蔽雙絞線
通常經常使用在局域網(LAN)中。
與雙絞線相似,同軸電纜也是由兩個銅導體組成,下面是實物圖
藉助於這種結構以及特殊的絕緣體和保護層,同軸電纜可以達到較高的傳輸速率,同軸電纜廣泛應用在在電纜電視系統中。同軸電纜常被用戶引導型共享媒介。
光纖是一種細而柔軟的、可以引導光脈衝的媒介,每一個脈衝表示一個比特。一根光纖可以支持極高的比特率,高達數十甚至數百 Gbps。它們不受電磁干擾。光纖是一種引導型物理媒介,下面是光纖的實物圖
通常長途電話網絡全面使用光纖,光纖也普遍應用於因特網的主幹。
無線電信道承載電磁頻譜中的信號。它不須要安裝物理線路,並具備穿透牆壁、提供與移動用戶的鏈接以及長距離承載信號的能力。
一顆衛星電信道鏈接地球上的兩個或多個微博發射器/接收器,它們稱爲地面站。通訊中常用兩類衛星:同步衛星和近地衛星。
歡迎關注個人我的公衆號
做者:cxuan 本文版權歸做者全部,未經做者容許不能轉載,轉載須要聯繫,不然追究法律責任的權利。 若是文中有什麼錯誤,歡迎指出。以避免更多的人被誤導。 |