計算機網(wǎng)絡硬核指南|網(wǎng)絡設計核心思想
發(fā)布時間:2021-04-23作者:小編閱讀:0
本文轉載自"職場重生"
本篇主要是對計算機網(wǎng)絡一些核心思想理解,屬于內功心法,初學者適合入門,非初學者可以學習其設計思想,總之希望幫助大家提高對網(wǎng)絡的理解。
深入淺出Linux網(wǎng)絡硬核指南
計算機網(wǎng)絡通信的理解
1、計算機網(wǎng)絡通信的本質
1948年 香農(nóng) 在 《通信的數(shù)學理論》中寫道:
“通信的基本問題是在一點精確地或者近似的復現(xiàn)在另一個點所選取的信息”
網(wǎng)絡通信的本質是信息的傳播:
這里A與B之間的傳播介質可以有很多不同層次的理解
可以是有線的(雙絞線、電纜、光纖等)
可以是無線的(藍牙,WIFI,2345G等)
可以是具體的(物理直連)
可以是間接抽象的(跨網(wǎng)絡)
我們可以看看計算機網(wǎng)絡通信模型:
這張圖揭示計算機網(wǎng)絡通信中的核心元素和要解決的核心問題:
發(fā)送端:"數(shù)據(jù)的生產(chǎn)者"
信息編碼
數(shù)據(jù)發(fā)送
怎么發(fā)送數(shù)據(jù)?
要發(fā)送數(shù)據(jù),需要借助網(wǎng)卡這種硬件,OS會按照RFC標準格式來封裝數(shù)據(jù),然后把數(shù)據(jù)傳給網(wǎng)卡,網(wǎng)卡把數(shù)據(jù)轉化為電信號/電磁波傳輸出去;
數(shù)據(jù):"信息載體"
01比特流
編碼格式
怎么定義數(shù)據(jù)格式?
大家按照標準來封裝報文,整個鏈路所有網(wǎng)絡設備都講相同的“語言”,這樣大家才可以自由交流;
傳輸通道:數(shù)據(jù)傳輸中轉站
數(shù)據(jù)存儲
數(shù)據(jù)運輸
怎么轉發(fā)數(shù)據(jù)?
由于發(fā)送端和接收端:
一個發(fā)送端可能要發(fā)給多個接收端,或者多對多場景,發(fā)送端端口有限,不能每個都單獨通信,而且成本高,不易操作;
兩臺設備長距離傳輸,不可能直接網(wǎng)線相連,性價比太低;
這個時候數(shù)據(jù)需要中間節(jié)點來轉發(fā)。中轉節(jié)點一般是從一個網(wǎng)口進轉到另外一個網(wǎng)口出,一般都是專有硬件處理,可以達到線速轉發(fā)(像”直接連線一樣速度”);
接收端:"數(shù)據(jù)的消費者"
數(shù)據(jù)接收
解碼信息
怎么接收數(shù)據(jù)?
同樣要接收數(shù)據(jù),需要借助網(wǎng)卡這種硬件,把電信號/電磁波信號轉化為數(shù)據(jù)傳給OS,OS會按照RFC標準格式來解析,最后把真正的數(shù)據(jù)交給應用;
計算機網(wǎng)絡通信原理本質上是比較“簡單”的,好理解,如果讓你去設計一個全球網(wǎng)絡通信系統(tǒng),類似當今的互聯(lián)網(wǎng),你會怎么設計呢?你會考慮下面的問題嗎?
協(xié)議要怎么設計?
報文的轉發(fā)機制是什么?
怎么保證系統(tǒng)不會掛掉(不可用)?
怎么滿足不同類型計算機通信要求?
互聯(lián)網(wǎng)獲得的成功顯而易見,它已經(jīng)成為當今全球數(shù)字社會最重要的基礎設施,改變我們生活方方面面,如今電腦,筆記本,電視,iPad,手機等都可以輕松上網(wǎng),網(wǎng)絡四通八達,信息隨處可達,這背后到底是什么核心技術支撐這個世界最大網(wǎng)絡通信系統(tǒng)。是不是你也很好奇,不妨讓我們來看一看互聯(lián)網(wǎng)是怎么解決這些問題的。
2、計算機網(wǎng)絡通信的核心思想
網(wǎng)絡的復雜性
長距離傳輸,比如訪問國外的網(wǎng)站,數(shù)據(jù)跨越幾千公里,怎么保證數(shù)據(jù)可達?
隨著設備規(guī)模增大,數(shù)據(jù)流量增大,網(wǎng)絡會不會崩潰?
計算機性能各異,怎么保證網(wǎng)絡的公平性?
…
那計算機網(wǎng)絡是如何解決這些問題的呢?
分布式思想—無連接分組交換
在此之前,數(shù)據(jù)通信是基于電路交換的想法,就像在傳統(tǒng)的電話網(wǎng)絡一樣,在通話前先建立專有線路,時延小,適合電話實時通信場景,電路交換體現(xiàn)了一種集中管理思想,所有通信資源都集中分配管理。但適合計算機網(wǎng)絡通信嗎?
電路交換(英語:Circuit Switching)是相對于報文交換(或稱分組交換)的一個概念。電路交換要求必須首先在通信雙方之間建立連接通道。在連接建立成功之后,雙方的通信活動才能開始。通信雙方需要傳遞的信息都是通過已經(jīng)建立好的連接來進行傳遞的,而且這個連接也將一直被維持到雙方的通信結束。在某次通信活動的整個過程中,這個連接將始終占用著。連接建立開始時,通信系統(tǒng)分配給它的資源(通道、帶寬、時隙、碼字等等),這也體現(xiàn)了電路交換區(qū)別于報文交換的本質特征。
電路交換雖然通信實時性高但不適合計算機網(wǎng)絡通信:
建立專有連接代價高,需要整條鏈路每個節(jié)點分配資源,計算機網(wǎng)絡通信場景復雜,高頻低流,不好預估資源,資源管理會很復雜;
電路交換采用時分復用的原理,完全無法應對現(xiàn)代互聯(lián)網(wǎng)的流量突發(fā),同時將會有大量的能量被空閑時隙浪費,鏈路資源利用不高,可以說,傳統(tǒng)的電信網(wǎng)絡是不可擴展的;
報文交換提高了通信線路的利用率,不需要建立連接,但也不適合計算機網(wǎng)絡通信:
報文交換是以報文為數(shù)據(jù)交換的單位,報文攜帶有目標地址、源地址等信息,報文整個地發(fā)送,一次一跳,在交換結點采用存儲轉發(fā)的傳輸方式,電報通信采用這種傳輸技術,由于報文長度沒有限制,而每個中間結點都要完整地接收傳來的整個報文,當輸出線路不空閑時,還可能要存儲幾個完整報文等待轉發(fā),要求網(wǎng)絡中每個結點有較大的緩沖區(qū)。為了降低成本,減少結點的緩沖存儲器的容量,有時要把等待轉發(fā)的報文存在磁盤上,進一步增加了傳送時延;
最終計算機網(wǎng)絡采用了分組交換技術:
基于報文交換,將報文劃分為更小的數(shù)據(jù)單位:報文分組(也稱為段、包、分組),分組交換比報文交換的時延小,尤其適合于計算機之間的突發(fā)式的數(shù)據(jù)通信;
分組交換采用分布式思想,每臺電腦都是一個“節(jié)點”(node),每個節(jié)點都彼此相聯(lián),形成縱橫交錯的網(wǎng)狀結構。此種網(wǎng)絡結構中,不存在中央的概念,而且單個節(jié)點的重要性大大降低,每個節(jié)點只關心與自己相鄰節(jié)點,不會考慮整個鏈路,這樣新節(jié)點更容易加入網(wǎng)絡,而新節(jié)點加入,增加路徑選擇,又加強了網(wǎng)絡的容錯性;
不需要建立連接,數(shù)據(jù)報文獨立于網(wǎng)絡鏈路之上(每個報文都會攜帶地址信息),鏈路可復用,資源利用率高;
所有轉發(fā)節(jié)點采用存儲轉發(fā)模式,網(wǎng)絡節(jié)點僅僅負責交換數(shù)據(jù)包,業(yè)務響應的功能則被推送到網(wǎng)絡邊緣的設備上,由上層來保證數(shù)據(jù)完整性,這樣極大減輕網(wǎng)絡節(jié)點設計;
分組交換采用統(tǒng)計復用原則,意味著在一個處理節(jié)點,數(shù)據(jù)包分組的到達的分布是符合泊松分布,再結合存儲轉發(fā)機制,節(jié)點可緩存一定量報文,從而有效避免處理不及時導致的丟包,保證了整個網(wǎng)絡穩(wěn)定和平衡。
分組交換(英語:Packet switching)是一種相對于電路交換的通信范例,分組(又稱消息、或消息碎片)在節(jié)點間單獨路由,不需要在傳輸前先建立通信路徑。分組交換是數(shù)據(jù)通信中一種新的且重要的概念,現(xiàn)在是世界上互聯(lián)網(wǎng)通訊、數(shù)據(jù)和語音通信中最重要的基礎。在此之前,數(shù)據(jù)通信是基于電路交換的想法,就像在傳統(tǒng)的電話電路一樣,在通話前先建立專有線路,通信雙方要在電路的兩端。分組交換技術是在1960年代末出現(xiàn)的,當時美國高級研究計劃局(簡稱ARPA)為實現(xiàn)遠程計算機之間的信息交換,資助建設一個試驗性的網(wǎng)絡,該網(wǎng)絡被稱為ARPANET。ARPANET的主要研究成果之一就是開發(fā)一種新的網(wǎng)絡協(xié)議,在ARPANET網(wǎng)絡上對話必須使用這種網(wǎng)絡協(xié)議。該協(xié)議采用一種新的網(wǎng)絡信息傳輸技術,這就是分組交換技術。
理解分組交換這種設計對我們理解網(wǎng)絡有什么好處?
整個互聯(lián)網(wǎng)就是一個大型分布式系統(tǒng),TCP/IP協(xié)議就是站在這種視角來設計的, 擁塞控制算法通過自我退讓機制(非自私思想,我為人人,人人為我),保障整個網(wǎng)絡公平性和穩(wěn)定性;
網(wǎng)絡設備在轉發(fā)層面上只關心與它相連節(jié)點,節(jié)點根據(jù)轉發(fā)規(guī)則,按照統(tǒng)一轉發(fā)機制路由最長匹配,把數(shù)據(jù)包扔給下一跳設備,而配置是管理員配置或者動態(tài)學習的,網(wǎng)絡節(jié)點只是轉發(fā)工具,上層控制轉發(fā)行為;
網(wǎng)絡節(jié)點轉發(fā)行為不是集中控制的,沒有上帝視角,但網(wǎng)絡最終可以實現(xiàn)數(shù)據(jù)轉發(fā),這里面反映出一些哲學思考,網(wǎng)絡可以通過節(jié)點周圍關系連接任何一個未知節(jié)點(六度理論),這或許就是分組交換能夠成功的底層理論;
分層思想—網(wǎng)絡協(xié)議分層設計
網(wǎng)絡協(xié)議要怎么設計?
分層好處是降低耦合,上層不關心底層實現(xiàn),只關心底層提供服務(接口);
這樣層與層之間通信就可以標準化。標準化意味著層與層之間獨立性。,可以獨自發(fā)展,這樣設計帶來很大靈活性和擴展性,比如傳輸層有TCP/UDP/DCCP/STCP等,網(wǎng)絡層有IPv4/IPv6等, 數(shù)據(jù)鏈路層有以太網(wǎng),VLAN,WIFI,無線3G,4G,5G協(xié)議等;
網(wǎng)絡是異構復雜的,分層可以整合異構網(wǎng)絡,向上層提供統(tǒng)一視圖,比如中間IP層做了適配,傳輸層和鏈路層互不糾纏,可以獨立發(fā)展;
分層模式擁有遞歸特性,該特性允許邏輯意義的任意封裝和再封裝,比如overlay網(wǎng)絡,VPN,各種tunnel等,使網(wǎng)絡擴展性大大增強;
理解了計算機網(wǎng)絡的分層設計對我們理解網(wǎng)絡有什么好處?
1.每一層只關心自己邏輯執(zhí)行,不會受到其他層的影響
2.網(wǎng)絡問題可以從上而下或者從下而上分層分析
報文分層封裝處理:
應用層:需要用socket編程接口發(fā)送應用數(shù)據(jù);
傳輸層(四層):四層采用TCP/UDP等傳輸協(xié)議進行數(shù)據(jù)傳輸;
網(wǎng)絡層(三層):三層主要是實現(xiàn)路由轉發(fā);
路由表主要是存儲路由條目,IP層采用最長匹配算法,查詢路由再再轉發(fā):
鏈路層(二層):
根據(jù)接口對應的鏈路層協(xié)議(如以太網(wǎng))組裝報文:
鄰居表主要是保存目的IP地址對應的mac地址,mac地址是2層以太網(wǎng)節(jié)點標識,一般通過ARP協(xié)議報文動態(tài)學習,也可以靜態(tài)配置指定:
記錄在ARP表里面:
ARP表主要是給報文添加mac頭部:
二層轉發(fā)報文:
主要二層設備(橋,交換機等)用來根據(jù)目的mac地址查找轉發(fā)端口,實現(xiàn)二層轉發(fā);
物理層: 主要是網(wǎng)卡驅動,網(wǎng)卡芯片處理,把數(shù)據(jù)轉化電或者光信息或者無線信號;
網(wǎng)絡分層分析可以參考: 云網(wǎng)絡丟包故障定位全景指南
公平思想—傳輸控制
隨著互聯(lián)網(wǎng)規(guī)模越來越大,計算機處理性能提高,大量數(shù)據(jù)包流向網(wǎng)絡,必然會加劇網(wǎng)絡擁塞,當網(wǎng)絡發(fā)生擁塞時,一般會出現(xiàn)數(shù)據(jù)丟失,時延增加,吞吐量下降,嚴重時甚至會導致“擁塞崩潰“。
擁塞控制需要確保網(wǎng)絡能夠承載用戶提交的通信量,是一個全局性問題,涉及主機、路由器等很多因素:互聯(lián)網(wǎng)采用TCP擁塞控制算法來控制系統(tǒng)的容量,核心思想是主動退讓機制,發(fā)現(xiàn)網(wǎng)絡擁塞(丟包或者延時加大),就主動減少發(fā)包量,我為人人,人人為我,最終解除擁塞,達到共贏局面:
在終端系統(tǒng)上通常根據(jù)接受到的ACK(Acknowledge character)確認包中包含的信息來調整擁塞控制窗口的大小,進而控制TCP連接的發(fā)送速率,譬如:TCP Tahoe, TCP Reno, TCP Vegas, TCP NewReno, TCP BIC, TCP CBIC, BBR等算法;
在網(wǎng)絡中間設備上(路由器、防火墻、交換機等)的擁塞控制算法(AQM-Active Queue Management-主動隊列管理)通常根據(jù)設備中的緩存隊列長度信息對網(wǎng)絡擁塞控制程度進行判斷,并將擁塞控制信息顯示或隱式地告知端點,端點根據(jù)獲得的擁塞控制信息對自身發(fā)送速率進行調整,譬如:FIFO, RED(Random Early Detection), ECN(Explicit Congestion Notification), FQ(Fair Queuing)等算法;
道路交通系統(tǒng)是一個典型的統(tǒng)計復用的分組交換系統(tǒng),其實早在TCP/IP分組交換網(wǎng)絡之前,道路交通系統(tǒng)就已經(jīng)存在了好幾千年了,我們可以用道路交通系統(tǒng)一些問題來類比分析TCP/IP網(wǎng)絡中出現(xiàn)的問題,比如道路擁堵類比網(wǎng)絡擁塞,可以幫助我們更容易理解網(wǎng)絡。
總結
這里主要提到了互聯(lián)網(wǎng)通信的三種設計思想:
分布式思想—分組交換:提供足夠簡單且靈活的分組轉發(fā)邏輯,實現(xiàn)數(shù)據(jù)報文在系統(tǒng)中穩(wěn)定轉發(fā),網(wǎng)絡節(jié)點轉發(fā)行為不是集中控制的,沒有上帝視角,但網(wǎng)絡最終可以實現(xiàn)數(shù)據(jù)轉發(fā),反映出網(wǎng)絡設計參考一些哲學思想,網(wǎng)絡可以通過節(jié)點周圍關系連接任何一個未知節(jié)點(六度理論),這或許就是分組交換能夠成功的底層理論。
分層思想—網(wǎng)絡協(xié)議分層設計:應用層高度可擴展,應用程序爆炸式增長,得益于網(wǎng)絡的分層模型;
公平思想—傳輸控制:TCP的擁塞控制使網(wǎng)絡更加公平和穩(wěn)定,提高系統(tǒng)的容錯率,讓系統(tǒng)可以持續(xù)正常運轉;
從技術上看,“無連接分組交換”這一“革命性的創(chuàng)造”為互聯(lián)網(wǎng)帶來了勝利。而TCP/IP分層模型的“系統(tǒng)化和完備化”使得互聯(lián)網(wǎng)進入了蓬勃發(fā)展的商業(yè)化發(fā)展階段。互聯(lián)網(wǎng)的設計原理保證了TCP/IP的成功,使其成為了當今信息社會最重要的基礎設施。
一些應對復雜性設計思想:
底層實現(xiàn)一套穩(wěn)定運行的機制(轉發(fā)機制): 比如三層路由最長匹配轉發(fā)機制;二層mac地址轉發(fā)機制(bridge 轉發(fā)機制);
上層實現(xiàn)可配置策略(各種轉發(fā)規(guī)則): 比如路由表,鄰居表,mac轉發(fā)表等;
分層設計經(jīng)典思想一致延續(xù)至今,加一層的思想可以實現(xiàn)解耦,也可以實現(xiàn)關聯(lián),增強了設計的擴展性;
越簡單且可擴展的設計越能應對未來的變化;
3、計算機網(wǎng)絡技術演進
推動網(wǎng)絡不斷向前發(fā)展的核心訴求:
網(wǎng)絡通信場景不斷擴展
人們不斷擴展網(wǎng)絡通信場景:局域網(wǎng),城域網(wǎng),廣域網(wǎng),無線網(wǎng)絡,互聯(lián)網(wǎng),移動互聯(lián)網(wǎng),工業(yè)互聯(lián)網(wǎng),云計算網(wǎng)絡,物聯(lián)網(wǎng),車聯(lián)網(wǎng)等;
網(wǎng)絡容量和用戶爆發(fā)式增長
從Web1.0、Web2.0、到移動互聯(lián)網(wǎng)發(fā)展,社交,游戲,短視頻,直播等應用流行,互聯(lián)網(wǎng)流量暴漲幾十倍,對網(wǎng)絡的支撐能力帶來巨大挑戰(zhàn),倒逼網(wǎng)絡不斷進行向前發(fā)展
TCP/IP協(xié)議不斷發(fā)展: 從TCP擁塞控制算法Reno到BBR,從TCP到QUIC,從http1.0到http3.0,從IPv4到IPv6等等;
網(wǎng)絡架構演進:從分布式網(wǎng)絡->中心化網(wǎng)絡演進,SDN興起;
移動網(wǎng)絡技術演進:2G->3G->4G->5G->6G…
傳輸網(wǎng)絡技術演進:PDH→SDH->WDM->OTN
…
計算機網(wǎng)絡安全問題
計算機網(wǎng)絡安全是當今世界的重要關注點。黑客一直在使用各種創(chuàng)新技術竊取重要信息?,F(xiàn)在人們在利用網(wǎng)絡空間進行日?;顒?,對網(wǎng)絡空間的依賴性非常高。無論人們被竊取的是業(yè)務和技術機密,還是金融系統(tǒng),威脅性都是致命的。
防火墻技術演進:包防火墻->狀態(tài)防火墻->應用防火墻->…
加密技術演進:對稱加密->非對稱加密->量子加密
安全領域演進:傳統(tǒng)網(wǎng)絡安全->移動網(wǎng)絡安全->云計算網(wǎng)絡安全->云原生網(wǎng)絡安全
…
以上是我對網(wǎng)絡的部分理解,主要是核心思想理解,希望能夠幫助大家更好理解網(wǎng)絡,也為該系列后續(xù)文章做一些鋪墊,希望大家喜歡。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,請聯(lián)系站長郵箱:shawn.lee@eliancloud.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。
標題:計算機網(wǎng)絡硬核指南|網(wǎng)絡設計核心思想
TAG標簽:企業(yè)專線
地址:http://www.dangdangload.com/article/20210423142526.html