種種緣由,中間停更許久,想來既然文集號稱要包括網絡,那就趁近日偷得閒暇,慢慢補上。node
聲明: 本系列文章中圖片大部分並不是自繪,若有侵權,請聯繫刪除。git
慣例回顧前文,從電學講到硬件,從硬件講到操做系統,至此腦中的計算機已可開機運行。所謂程序,不過是既定的指令排版,隨外界觸發而應答。也就是說必需要有I/O的參與,運行纔有了意義。在計算機還未普及的時代,I/O的參與者並很少,網絡也並未普及,人們只能使用軟盤、硬碟以致後期的U盤經過手動拷貝、人工攜帶的方式進行資料的傳播。及至網絡(尤爲是WIFI)的普及,Internet才真正突飛猛進地改變生活。服務器
那麼先來解決一個問題,什麼是Internet?網絡
The Internet is the global system of interconnected computer networks that use the Internet protocol suite (TCP/IP) to link devices worldwide. A computer network, or data network, is a digital telecommunications network which allows nodes to share resources.負載均衡
從字面來看,意爲經過協議互聯的計算機網絡。而計算機網絡,就是經過數字通信實現結點資源共享的網絡。簡單地講,計算機網絡就是計算機之間經過某種連接進行信息傳遞,而所謂因特網(Internet),就是不少計算機網絡之間爲了進行信息傳遞,而按照必定協議相互連接造成的大網絡。稍微整理一下,就能夠看到這裏面有幾個要素:ide
結點ui
結點,也叫終端(End Systems)、主機(Hosts)等等,歸根結底一句話,是一個可聯網的設備。可聯網必須有網卡,網卡有其出產前定下的MAC地址,這就是結點在網絡中的惟一硬件標識。操作系統
連接計算機網絡
連接能夠是有形的硬件,好比網線,也能夠是無形的能量,好比電波。條條大路通羅馬,只要結點雙方能夠找到一條通路,便是互聯。cdn
協議
全部的約束源於不一樣,人與人之間須要共同語言(至少是共同語種)才能進行對話,結點之間也同樣。爲了順暢而準確地交流,不一樣結點間必須定義某種協議,各自嚴格遵照,纔不會引起誤解。一樣的事情還發生在各種文件格式標準中,只有遵照約定俗成的文件格式進行讀寫,才能可靠還原出本來的內容。
進一步以前,先看一下一條信息在網絡中傳遞的大體路徑。
從圖中能夠看出,信息從結點A傳遞至結點B須要通過以下環節:
Swtich也成爲網橋(MAC bridge),意爲將多個MAC地址集中互聯,組成網絡。其面向的是MAC地址一層,屬於數據鏈路層(後續協議中會講到)。
路由器用於在不一樣網絡之間進行分組交換,其面向的是IP地址一層,屬於網絡層。所以相對交換機而言,最大的不一樣是各自面向的層級。
路由器鏈接數個由交換機組成的網絡後,造成初級規模的互聯網,多爲區域性網絡。爲了能使不一樣區域網絡中的設備也能相互通訊,那麼就須要架設更多硬件實現互聯,而硬件也表明着成本,專業從事這項工做的部門或企業就成爲了互聯網運營商,國內如移動、聯通、電信等都是互聯網運營商。
運營商運營的是硬件設備間數據通訊的能力,即數據流量、帶寬等資源。出於成本及市場控制等因素的考慮,不一樣運營商之間進行數據通訊,則每每須要消費者付出更大的代價。
同時,有了通訊能力運營商的出現,使得信息販賣更加便捷,所以也逐步出現了內容供應商,他們提供內容資源,經過通訊網絡販賣給有相應需求的用戶。這類供應商典型的有愛奇藝、優酷等。
CDN
多提一句,中華地大,若是內容供應商只在某地提供服務器,則遠離該服務器物理地址的用戶須要經過更屢次路由器轉發才能訪問成功,會極大提升獲取內容所需時長,下降體驗,所以一般會採起CDN技術避免該類現象。所以CDN的本質是經過:
- 單點服務器冗餘實現負載均衡
- 地理多點服務器內容冗餘下降響應時長
從上面結點A、B間通訊路徑來看,單次通訊所需時長很大程度由以下因素決定(爲便於描述,將下圖中信息統稱爲分組Packet):
Porcessing
分組處理視需求而定,如是否包含位校驗等,一般高速路由器在該階段所需時長在毫秒級甚至更少。
Queueing
路由器內部會爲每一個出口連接維護一個隊列,處理後的分組將會根據其頭部中的IP地址信息分往對應出口。此處所耗費時間視當前隊列空閒狀況而定,隊列越滿,耗費時間越長,隊列越空,則耗費時間越短甚至爲0。所以須要注意,這段延時是每一個分組各自不相關的,即存在各不相同的狀況。
Transmission
路由器在發出一個分組以前,必須完整接收該分組,不然也不能完成前面的處理環節。不一樣路由器處理的能力有快慢,單位一般爲Mbps,也就是常說的百兆千兆路由。假設分組長度爲L,而處理速率爲R,那麼傳輸延時就是 L/R。
Propagation
傳輸只是送出路由自己,路漫漫纔剛開始。或是經過硬件光纖、或是經過無線電波,都必須將電信號一一傳輸到對端,路徑越長、路徑自己傳輸速率越低,相應延時就越大。但不論多遠,距離/速度也終有到達之日,因此說最遙遠的距離,是你就站在我面前,我卻找不到路由器來連接你。
一人旅行從A到B,卻在中途丟失,那一般有兩個可能:
分組也同樣,丟失有兩種可能:
因此說管理源於資源稀缺性,世界雖大,物種也很多,網絡雖大,分組則更多。個體的消失其實司空見慣,若是某個個體真的重要,那請多耗費些資源,將其變成Very Important Person(VIP)。對應的,UDP服務於通常分組,TCP則靜待貴賓。
不忘初心,分組只是想從A到B,歷經三大要素。按照前面管理,自此行文會花開三朵,各起一章。然而本人對硬件部分關注很少,幸虧常理來說,讀者也不會過於深挖硬件,所以網絡三要素中,只講協議,至於前兩點涉及部分,將只在相關協議層中穿插說明。