計算機網路基礎知識 學習筆記

2021-10-02 22:16:18 字數 4203 閱讀 8593

中間涉及了那些過程

包含了那些網路協議

每個協議都幹了什麼

http協議:http協議定義web客戶端如何從web伺服器請求web頁面,以及伺服器如何把web頁面傳送給客戶端。http協議採用了請求/響應模型。客戶端向伺服器傳送乙個請求報文,請求報文包含請求的方法、url、協議版本、請求頭部和請求資料。伺服器以乙個狀態行作為響應,響應的內容包括協議的版本、成功或者錯誤**、伺服器資訊、響應頭部和響應資料

https協議:基本沿用http協議,只是在http和tcp之中加多一層tls/ssl協議,位於應用層和傳輸層的安全套接層,

https主要有幾個特性,機密性、完整性、身份認證和不可否認。機密性由對稱加密、非對稱加密或者兩個混合一起、完整性靠摘要演算法。身份認證和不可否認就靠數字簽名(私鑰加密,公鑰再解密)

傳輸層

tcp協議:提供全雙工通訊,確保可靠交付的服務

網路層

注:arp協議為ip協議提供服務,ip協議為icmp協議提供服務

icmp協議:確認ip包是否成功到達目標位址,報告在傳送過程中ip包被丟棄的原因

客戶端傳送乙個syn包給服務端

服務端返回乙個syn/ack應答報,表示伺服器接收連線

客戶端再發會乙個ack應答包,並進入連線狀態(established)

服務端收到這個應答包後也進入連線狀態

listening:監聽狀態

established:表示建立連線,正在通訊

close_wait:對方主動關閉連線或者網路異常導致連線中斷,這時我方的狀態會變成close_wait 此時我方要呼叫close()來使得連線正確關閉

time_wait:我方主動呼叫close()斷開連線,收到對方確認後狀態變為time_wait,time_wait狀態會一直持續2msl(即兩倍的分 段最大生存期),以此來確保舊的連線狀態不會對新連線產生影響。

syn_sent:請求連線狀態

答:tcp握手兩次可能會出現浪費資源的情況,當服務端傳送回應答報文後,若是兩次握手,那麼服務端此刻進入了established的連線狀態,可以傳送資料給客戶端,但是當這個應答報文中途丟失,客戶端並沒有接收到這個報文,就會再次傳送請求連線報文給服務端,而服務端就會再次新建連線狀態,就浪費了上一次開啟連線的資源。

冪等:多次請求結果是一樣的

安全性:對伺服器是否有改變

答:序列號字段

cp序列號(sequence number):佔 32 位。它表示本報文段所傳送資料的第乙個位元組的編號。在 tcp 連線中,所傳送的位元組流的每乙個位元組都會按順序編號。當syn標記不為1時,這是當前資料分段第乙個字母的序列號;如果syn的值是1時,這個欄位的值就是初始序列值(isn),用於對序列號進行同步。這時,第乙個位元組的序列號比這個欄位的值大1,也就是isn加1。

確認號字段

tcp 確認號(acknowledgment number,ack number):佔 32 位。它表示接收方期望收到傳送方下乙個報文段的第乙個位元組資料的編號。其值是接收計算機即將接收到的下乙個序列號,也就是下乙個接收到的位元組的序列號加1。

答:往不存在的埠傳送資料

異常終止連線

處於半開啟的連線狀態

詳解答:

根據情況自己設定傳送的時間,短可以5-6s,長可以幾分鐘等

給對方傳送乙個心跳包,並同時設定乙個超時計數器

若超時時間內接受到返回的確認報,那表示連線正常

超時時間內沒有收到確認報,認為已斷開連線,關閉連線

答:tcp是面向連線的、點對點的、可靠支付、面向位元組流、提供全雙工通訊的、首部開銷大(20位元組)

udp是面向無連線的,盡最大努力交付的,面向報文、沒有擁塞機制,首部開銷大(8位元組)

答:確認丟失和重傳機制

確認丟失指在設定的超時重傳的時間內沒有收到確認,就認為位元組傳送的分組出錯,重新傳送,應答端此時接收到這個報文,重複接收就丟棄不處理,不重複就向上傳輸,但是都要傳送確認報文。傳送方也一樣

答:流量控制:利用滑動視窗來進行限制,a向b傳送資料,在建立連線時,b告訴a我的接收視窗rwnd=400,告訴傳送方可以傳送的總資料位元組的長度,從而實現流量控制,當為0的時候就不能再傳送了。

擁塞機制的原因:我們知道tcp通過乙個定時器(timer)取樣了rtt並計算rto,但是,如果網路上的延時突然增加,那麼,tcp對這個事做出的應對只有重傳資料,然而重傳會導致網路的負擔更重,於是會導致更大的延遲以及更多的丟包,這就導致了惡性迴圈,最終形成「網路風暴」 —— tcp的擁塞控制機制就是用於應對這種情況。

擁塞避免:

答:a傳送斷開連線請求,進入終止等待狀態,b接受到請求,傳送收到確認,進入關閉等待狀態,此時處於半關閉(close_wait)狀態,a沒有資料發給b,但是b可以傳送給a資料,a收到b的確認後,就進入終止等待(half_close)的狀態,等b處理完所有的資料,就傳送連線釋放報文給a,進入最後確認狀態,a收到後傳送確認,進入時間等待狀態,b收到確認後就關閉連線,a等待2個msl時間後沒有收到重傳就關閉連線了。

答:tcp三次揮手,那麼在第三次的時候,如果伺服器釋放連線的請求沒有能正常到達客戶端,那麼客戶端就不能一直釋放資源,導致浪費資源。如果客戶端在第二次的時候就關閉了連線,那麼服務端的資料就不能完整的傳送完給客戶端。

答:乙個報文的最大存活時間,確保服務端的確收到了客戶端的確認報文

答:可以連續傳送報文而不需要等待確認報文到達,接收方接收到會把滑動視窗往後滑動,如果傳送方有乙個報文缺失,接收方接受到下乙個報文會重**送這個缺失的報文,直到接受到這個報文。若接收方接受到的報文其中乙個缺失了,但是下乙個報文收到了,就不會重**送。因此很大乙個缺點就是浪費,後面正確的報文沒有快取,也有選擇重傳機制,保留收到的報文到緩衝區,但是會導致亂序,因此需要排序

答:從http/1.1開始預設使用長連線。使用長連線的http協議會在響應頭加入connection: keep-alive。當開啟乙個網頁客戶端和服務端建立的tcp連線不會關閉。當再次訪問伺服器時還會使用這個連線。

session一般是伺服器生成之後給服務端(通過url引數和cookie)

cookie是實現session的一種機制,通過http的cookie實現

session是通過在伺服器儲存sessionid識別使用者,cookie儲存在客戶端

session的儲存時間是-1,關閉頁面就會消失

答:time_wait產生的原因是主動方發起tcp揮手的一方在最後傳送確認報文後進入的狀態,這個狀態下依然儲存了tcp連線的四元組,導致占用埠不可用,而過多將會導致很多埠不可用,占用太多資源,因此可以設定so_reuseaddr來讓埠可以重用,對於出於time_wait狀態的埠可以使用。

在http與tcp直接再加一層ssl/tls

用於對請求資料的加密,在使用http的時候我們抓取報文是可以看到資料的,但是使用http的時候我們抓取的報文是加密過的,在我們眼中看起來就是毫無規律的亂碼

客戶端和伺服器都支援很多密碼套件,如ecdhe-rsa-aes256-gcm-sha384,是一種固定的格式:「金鑰交換演算法+簽名演算法+對稱加密演算法-摘要演算法「,意思就是握手的時候使用ecdhe演算法進行金鑰交換,用rsa簽名和身份認證,握手後的通訊使用aes對稱演算法,金鑰長度256位,分組模式(把固定長度的金鑰加密成密文)是gcm,摘要演算法sha384用於訊息認證和產生隨機數

通訊安全的四大定義:機密性、完整性、身份認證和不可否認。機密性由對稱加密和非對稱加密混合加密來保證,完整性由摘要演算法來保證,身份認證和不可否認就由數字簽名來保證(私鑰加摘要演算法來實現)

因為多了一層ssl握手,https比http會更耗時

服務端向證書機構傳送公鑰,證書機構利用自己的私鑰加密公鑰,並通過伺服器的**生成證書簽名,再通過私鑰加密證書簽名生成證書發給伺服器

客戶端請求服務端,獲取證書,用瀏覽器或者本地已經儲存的根證書驗證證書的真假,找到這個證書機構的公鑰來解密獲得服務端的公鑰

客戶端對稱加密生成自己的私鑰,再通過獲得的公鑰加密,發給服務端,服務端用私鑰解密就可以獲取客戶端的私鑰,接下來就安全的交換了私鑰,並進行加密通訊了。

計算機網路實驗 計算機網路基礎知識筆記

計算機網路的定義 計算機網路是利用各種通訊介質,以傳輸協議為基準,將分布在不同地理位置的計算機系統或計算機終端連線起來,以實現資源共享的網路系統。計算機網路有一套複雜的體系結構,是計算機技術和通訊技術的完美結合。計算機網路推動人類文明進入新的發展階段。tcp ip協議架構 計算機網路的分類 區域網區...

計算機網路基礎知識

計算機網路協議 osi 七層協定 計算機網路協議 tcp ip 其實 tcp ip 也是使用 osi 七層協議的觀念,所以同樣具有分層的架構,只是將它簡化為四層,在結構上面比較沒有這麼嚴謹,程式撰寫會比較容易些。網路 一次傳輸的資料量是有限的,因此如果要被傳輸的資料太大時,我們在分層的包裝中,就得要...

計算機網路基礎知識

計算機網路建立在自頂向下分層設計 自底向上逐層抽象的基礎上。分層與抽象就是為了簡化問題。1.應用層,不同主機應用程式間的通訊。運輸層,通過埠,實現復用分用。網路層,解決不同異構網路連線的問題。資料鏈路層,加入協議,幫助分組從乙個主機傳送到另乙個主機。物理層主要任務描述為確定與傳輸 的介面的一些特性,...