1. 程式人生 > >高階計算機網路---常用知識梳理

高階計算機網路---常用知識梳理

基礎知識提綱

(1)乙太網的基本原理,幀格式;
(2)ARP,DHCP,ICMP協議原理,以及ping命令的工作原理
(3)VLAN基本原理;
(4)交換機工作原理,包括地址自學習,生成樹 演算法,乙太網幀交換流程;
(5)RIP,OSPF,BGP路由協議工作原理;
(6)路由器工作原理,包括控制平面與資料平面的概念,最長字首轉發,輸出排程等;
(7)DNS工作原理;
(8)TCP流量控制,擁塞控制和差錯控制原理;
(9)http,郵件等常見應用的原理

一、乙太網基本原理、幀格式

請簡述乙太網的工作原理和資料傳輸過程

https://blog.csdn.net/u011329762/article/details/40507587

乙太網裝置工作原理

https://blog.csdn.net/qq_34127958/article/details/70144322

乙太網幀結構解析

https://blog.csdn.net/u010487568/article/details/39329791

二、ARP,DHCP,ICMP協議原理,以及ping命令的工作原理

ARP與RARP詳細解析

https://blog.csdn.net/zln99/article/details/51050472

DHCP協議原理及抓包分析

https://blog.csdn.net/andy_93/article/details/78238931

ping原理與ICMP協議

https://blog.csdn.net/m0_37806112/article/details/82776806

三、VLAN基本原理;

vlan原理解釋

https://www.jianshu.com/p/077755c89d82

交換機工作原理,包括地址自學習,生成樹演算法,乙太網幀交換流程

MAC表學習過程:

任何楨傳送到交換機上時至少包含源MAC,因此交換機就可以記錄一條(埠,MAC)記錄到“埠MAC對映表”

交換機的工作原理

http://www.softbar.com/blog/post/123.html

路由器與交換機的基本工作原理

https://blog.csdn.net/qq_35580883/article/details/78879848

RIP,OSPF,BGP路由協議工作原理

“RIP、OSPF、BGP”這三個動態路由協議在工作原理上的區別是什麼?

https://zhidao.baidu.com/question/524944341797526205.html

常見的動態路由協議(RIP、OSPF、ISIS、BGP)

https://blog.csdn.net/btcover/article/details/50468886

路由器工作原理,包括控制平面與資料平面的概念,最長字首轉發,輸出排程等

路由器兩大基本功能

1、資料通道功能。資料通道功能包括轉發決定、轉發以及輸出資料鏈路排程等,一般由硬體來完成;
2、控制功能。一般用軟體來實現,包括與相鄰路由器之間的資訊交換、系統配置、系統管理等。

路由器與交換機的基本工作原理

https://blog.csdn.net/qq_35580883/article/details/78879848

控制平面與資料平面

高階路由器由控制平面control plane和資料平面data plane(也稱為轉發平面)組成。每個平面都有自己的CPU和記憶體。控制平面負責執行路由選擇協議,管理路由選擇處理必備的資料庫資訊並生成FIB表(Forward Information Base,轉發資訊庫).FIB資訊將會被轉發到用於接收傳輸分組的資料平面中。
   控制平面和資料平面分離的優點在於,當需要轉發的通訊量劇增導致資料平面資源枯竭時,雖然無法繼續進行分組轉發,但對控制平面上的路由選擇處理所涉及的資源沒有任何影響。同樣,當路由選擇處理負載劇增導致控制平面資源枯竭時,也不會給資料平面的資源以及分組轉發帶來任何影響。
低端路由器的控制平面和資料平面一般不分離,使用唯一的CPU和記憶體進行處理。當處理的通訊量達到極限時,會出現無法完成分組轉發,同時路由選擇處理也會停止的情況。

路由查詢最長字首匹配

路由掩碼最長匹配原則是指IP網路中當路由表中有多條條目可以匹配目的ip時,一般就採用掩碼最長的一條作為匹配項並確定下一跳。(也叫最長字首匹配,是路由器在查詢路由表進行選路的演算法)
https://blog.csdn.net/jeason29/article/details/45364885

DNS工作原理

DNS服務

DNS是域名系統(Domain Name System)的縮寫,是一種組織域層次結構的計算機和網路服務命名系統。當用戶在應用程式中輸入DNS名稱時,DNS服務可以將此名稱解析為與此名稱相關的IP地址資訊。
使用者在使用網路服務時喜歡在瀏覽器的位址列中輸入使用主機名和域名組成的名稱,如computer.myblog.com,因為這樣的名稱更容易被使用者記住。但是,計算機在網路上是使用IP地址來通訊的。為了能夠實現網路計算機之間通訊,DNS伺服器所提供的服務就是將使用者所使用的計算機或服務名稱對映為IP地址。

DNS步驟

DNS的工作原理及過程分下面幾個步驟:
第一步:客戶機提出域名解析請求,並將該請求傳送給本地的域名伺服器。
第二步:當本地的域名伺服器收到請求後,就先查詢本地的快取,如果有該紀錄項,則本地的域名伺服器就直接把查詢的結果返回。
第三步:如果本地的快取中沒有該紀錄,則本地域名伺服器就直接把請求發給根域名伺服器,然後根域名伺服器再返回給本地域名伺服器一個所查詢域(根的子域) 的主域名伺服器的地址。
第四步:本地伺服器再向上一步返回的域名伺服器傳送請求,然後接受請求的伺服器查詢自己的快取,如果沒有該紀錄,則返回相關的下級的域名伺服器的地址。
第五步:重複第四步,直到找到正確的紀錄。
第六步:本地域名伺服器把返回的結果儲存到快取,以備下一次使用,同時還將結果返回給客戶機。
例子見:
https://blog.csdn.net/u014774781/article/details/48376123

DNS原理總結及其解析過程詳解

https://blog.csdn.net/chenxianru1/article/details/78782728

DNS的工作原理及解析

https://blog.csdn.net/root_robot/article/details/53872812

TCP流量控制,擁塞控制和差錯控制原理

TCP協議的流量控制、擁塞控制和差錯控制

https://blog.csdn.net/tspangle/article/details/45072919

- 流量控制:

1、流量控制是管理兩端的流量,以免會產生髮送過塊導致收端溢位,或者因收端處理太快而浪費時間的狀態。用的是:滑動視窗,以位元組為單位

2、視窗有3種動作:展開(右邊向右),合攏(左邊向右),收縮(右邊向左)這三種動作受接收端的控制。
合攏:表示已經收到相應位元組的確認了
展開:表示允許快取傳送更多的位元組
收縮(非常不希望出現的,某些實現是禁止的):表示本來可以傳送的,現在不能傳送;但是如果收縮的是那些已經發出的,就會有問題;為了避免,收端會等待到快取中有更多快取空間時才進行通訊。
發端視窗的大小取決於收端的視窗大小rwnd(TCP報文的視窗大小欄位)和擁塞視窗大小cwnd(見擁塞控制)
發端視窗大小 = min{ rwnd , cwnd };

3、關閉視窗:視窗縮回有個例外,就是傳送rwnd=0表示暫時不願意接收資料。這種情況下,發端不是把視窗收縮,二是停止傳送資料。(為了比避免死鎖,會用一些探測報定時傳送試探,見定時器一節)

4、問題:某些時候,由於發端或收端的資料很慢,會引起大量的1位元組資料痛惜,浪費很多資源。
(1)、發端的程序產生資料很慢時候,時不時的來個1位元組資料,那麼TCP就會1位元組1位元組的傳送,效率很低。
解決方法(Nagle演算法):
a、將第一塊資料發出去
b、然後等到傳送快取有足夠多的資料(最大報文段長度),或者等到收端確認的ACK時再發送資料。
c、重複b的過程
(2)、收端程序由於消耗資料很慢,所以可能會有這麼一種情況,收端會發送其視窗大小為1的資訊,然後有是1位元組的傳輸
解決辦法(2種)
a、Clark方法:在接收快取的一半變空,或者有足夠空間放最大報文長度之前,宣告接收視窗大小為0
b、推遲確認:在對收到的報文段確認之前等待到足夠的接收快取,或者等待到一個時間段(現在一般定義500ms)

  • 擁塞控制:

1、如果網路上的負載(傳送到網路上的分組數)大於網路上的容量(網路同時能處理的分組數),就可能引起擁塞,判斷網路擁塞的兩個因素:延時和吞吐量。擁塞控制機制是:開環(預防)和閉環(消除)(見網路原理相關書籍,略)
tcp處理擁塞的三種策略:慢啟動(指數增大),擁塞避免(加法增大),擁塞檢測(除2減少,或叫做乘法減少)

2、慢啟動:指數增大
/* ssthresh是慢開始門限,slow start threshold表示一個上限,一般的實現為65535B */
cwnd = 1;(1表示一個MSS報文段,不是一個位元組)
while ( cwnd < ssthresh )
if( 發出的報文段確認 )
cwd *= 2;

3、擁塞避免:加法增大
當到達ssthresh之後,就是加法階段了,每收到一個確認,cwd += 1;

4、擁塞檢測:乘法減少(除2減少)
當報文需要重傳時,說明擁塞可能發生了,由於重傳有2種情況,所以也分兩種處理
(1)、由於超時重傳,這是擁塞的可能性比較大,如下做強反映調整
a、 ssthresh /= 2;
b、 cwnd = 1;
重新慢啟動過程
(2)、由於收到3個重複的ACK的重傳,採取弱反映:
a、ssthresh /= 2;
b、cwnd = ssthresh;
c、開始擁塞避免過程

  • 差錯控制:

1、TCP必須保證資料:按序,沒有差錯,沒有部分丟失,沒有重複的交給應用層。方法就是:校驗和,確認,超時重傳

2、校驗和:和UDP的做法一樣,也要偽首部,和UDP不同的是這個功能在TCP中是必須的

3、確認:ACK的確認機制(下面是一些原則)
a、ACK報文不需要確認,也不消耗序號
b、當一端傳送資料時,儘量包含捎帶確認。
c、收端推遲傳送ACK報文段,如果僅有一個未確認的按序報文段;延遲到500ms,或者有第二個報文段接收時(轉d),或者有資料要傳送時(轉b)
d、任何時候,不能有兩個(以上)未確認的報文段(就是說如果收端有兩個未確認的按序報文段,就馬上傳送ACK報文段進行確認)
e、當收到一個序號比期望序號還大的報文段時,馬上傳送ACK,讓發端進行快重傳
f、收到重複的報文段,就立即傳送確認(解決ACK丟失問題)
g、丟失的報文段到達,傳送確認,表示已經收到了丟失的報文

4、確認型別
累計確認:收端忽略掉所有失序報文,告知發端他期待下一個收到的序號,叫做肯定累計ACK。肯定是說:丟棄的,丟失的,重複的都不報告。
選擇確認(SACK):在某些新TCP實現裡面實現了這個東西,報告失序和重複的資料,作偽TCP首部選項欄位的一部分。

5、重傳(兩種情況) : 重傳定時器時間到,或者 發端收到重複的三個ACK(快重傳)

http、郵件工作原理

深入理解HTTP協議、HTTP協議原理分析

https://www.cnblogs.com/chenliyang/p/6558756.html

HTTP原理

https://blog.csdn.net/qq_32953079/article/details/59110427