計算機網路

2021-08-30 02:13:13 字數 3565 閱讀 5215

安全

ession和cookie的區別

參考 http請求中session實現原理

參考 redirect與forward區別

參考 dns原理及其解析過程

參考 ddos攻擊及預防

參考 如果客戶端不斷的傳送請求連線會怎樣

參考 那怎麼知道連線是惡意的呢?可能是正常連線

參考 常見協議的埠號

tcp伺服器程序先建立【傳輸控制塊tcb】,時刻準備接受客戶程序的連線請求,此時伺服器就進入了listen(監聽)狀態;

客戶端程序先建立【傳輸控制塊tcb】,然後向伺服器發出連線請求報文段,首部中同步位syn置為1,同時選擇乙個初始序列號 seq=x 。此時,tcp客戶端程序進入了 syn_sent(同步已傳送狀態)狀態。

伺服器收到請求報文後,如果同意連線,則發出確認報文,在確認報文段中將syn位和ack位置1,確認號ack=x+1(客戶端初始序列號+1),同時傳送自己的初始化序列號seq=y。此時,tcp伺服器程序進入了syn_rcvd(同步收到)狀態。

客戶程序收到確認後,還要向伺服器給出確認。確認報文段的ack置1,確認號ack=y+1,自己的序列號seq=x+1。此時,tcp連線建立,客戶端進入established(已建立連線)狀態。

當伺服器收到客戶端的確認後也進入established狀態,此後雙方就可以開始通訊了。

客戶端發出連線釋放報文,並且停止傳送資料。把連線釋放報文段首部的終止控制位fin置1,其序列號seq=u(等於前面已經傳送過來的資料的最後乙個位元組的序號加1)。客戶端進入fin_wait_1(終止等待1)狀態,等待伺服器確認。

伺服器收到連線釋放報文,發出確認報文,確認號ack=u+1,以及自己的序列號seq=v(等於伺服器前面已經傳送的資料的最後乙個位元組的序號+1)。然後服務端進入了close_wait(關閉等待)狀態。tcp伺服器通知高層的應用程序,客戶端向伺服器方向的連線釋放,這時的tcp連線處於半關閉狀態(客戶端已經沒有資料要傳送了,但是伺服器若傳送資料,客戶端依然要接受)。這個狀態還要持續一段時間,也就是整個close_wait狀態持續的時間。

客戶端收到伺服器的確認請求後,進入fin_wait_2(終止等待2)狀態,等待伺服器傳送連線釋放報文(在這之前還需要接受伺服器傳送的最後的資料)。

伺服器將最後的資料傳送完畢後,就向客戶端傳送連線釋放報文,fin=1,ack=u+1,由於在半關閉狀態,伺服器很可能又傳送了一些資料,假定此時的序列號為seq=w。伺服器進入last_ack(最後確認)狀態,等待客戶端的確認。

客戶端收到伺服器的連線釋放報文後,必須最後發出確認,ack=1,確認號ack=w+1,自己的序列號seq=u+1。客戶端進入time_wait(時間等待)狀態。此時tcp連線還沒有釋放,必須經過2∗msl(兩倍最長報文段壽命)的時間沒問題後,才進入closed狀態。

伺服器只要收到了客戶端發出的確認,立即進入closed狀態。

實現:

以位元組為單位的滑動視窗

超時重傳時間的選擇:如果超過一定時間仍然沒有收到確認,就認為剛才傳送的分組丟失了,進行重傳。

選擇確定sack:收到的報文未按序號,中間缺了一段,可以開啟「允許sack」,在tcp首部字段告知a哪一段沒收到。

子網掩碼的表示方法

點分十進位制表示法

cidr斜線記法【常用】

例:172.16.198.12/20。其子網掩碼表示為255.255.240.0,二進位制表示為11111111.11111111.11110000.00000000

子網掩碼的分類【ip位址編址方式】

自定義子網掩碼

如:192.168.1.100/25,其子網掩碼表示:255.255.255.128

意思就是將192.168.1.0這個網段的主機位的最高1位劃分為了子網。

traceroute 

客戶端傳送的 請求報文 第一行為請求行,包含了方法字段。

當前網路請求中,絕大部分使用的是 get 方法。

和 get 方法一樣,但是不返回報文實體主體部分。 主要用於確認 url 的有效性以及資源更新的日期時間等。

post 主要用來傳輸資料,而 get 主要用來獲取資源。

由於自身不帶驗證機制,任何人都可以上傳檔案,因此存在安全性問題,一般不使用該方法。

put 也可以用於修改資源,但是只能完全替代原始資源,patch 允許部分修改。

與 put 功能相反,並且同樣不帶驗證機制。

查詢指定的 url 能夠支援的方法。會返回 allow: get, post, head, options 這樣的內容。

使用 ssl(secure sockets layer,安全套接層)和 tls(transport layer security,傳輸層安全)協議把通訊內容加密後經網路隧道傳輸。

伺服器會將通訊路徑返回給客戶端。

參考 

傳輸層為tcp協議,網際層為ip 

http報文格式  http報文內容

2xx 成功 

3xx 重定向 

4xx 客戶端錯誤

5xx 伺服器錯誤

所以,就有了https,使用 https 協議主要是為了保護使用者隱私,防止流量劫持。

資料完整性。防止內容被第三方冒充或者篡改。

客戶端發起乙個https的請求,把自身支援的一系列cipher suite(金鑰演算法套件,簡稱cipher)傳送給服務端。

服務端存在乙個公匙和私匙。

服務端,接收到客戶端所有的cipher後與自身支援的對比,如果不支援則連線斷開,反之則會從中選出一種加密演算法和hash演算法以證書的形式返回給客戶端 證書中還包含了 公鑰 頒證機構 ** 失效日期等等。

客戶端收到服務端響應後會做以下幾件事

驗證證書的合法性:頒發證書的機構是否合法與是否過期,證書中包含的**位址是否與正在訪問的位址一致等,證書驗證通過後,在瀏覽器的位址列會加上一把小鎖(每家瀏覽器驗證通過後的提示不一樣 不做討論(官網:www.fhadmin.org))。

生成隨機密碼:如果證書驗證通過,或者使用者接受了不授信的證書,此時瀏覽器會生成一串隨機數,然後用證書中的公鑰加密。 

hash握手資訊:用最開始約定好的hash方式,把握手訊息取hash值,然後用隨機數加密 「握手訊息+握手訊息hash值(簽名)」  並一起傳送給服務端。在這裡之所以要取握手訊息的hash值,主要是把握手訊息做乙個簽名,用於驗證握手訊息在傳輸過程中沒有被篡改過。

客戶端將加密後的內容傳給服務端

服務端拿到客戶端傳來的密文,用自己的私鑰來解密握手訊息取出隨機數密碼,再用隨機數密碼 解密 握手訊息與hash值,並與傳過來的hash值做對比確認是否一致。

然後用隨機密碼加密一段握手訊息(握手訊息+握手訊息的hash值 )給客戶端。

客戶端用隨機數解密並計算握手訊息的hash,如果與服務端發來的hash一致,此時握手過程結束,之後所有的通訊資料將由之前瀏覽器生成的隨機密碼並利用對稱加密演算法進行加密。因為這串金鑰只有客戶端和服務端知道,所以即使中間請求被攔截也是沒法解密資料的,以此保證了通訊的安全。

錯誤通知的管理

host頭處理

長連線

分塊編碼

非對稱加密:rsa

計算機網路9 計算機網路效能

1.網路效能的衡量指標 2.速率 3.頻寬 4.延遲 5.丟包率 6.時延頻寬積 7.吞吐率 網路效能的好壞可以由網路的速率 頻寬 延遲 丟包率 網路頻寬積 吞吐率等方面來判斷,下面讓我們一一詳細介紹。速率 資料率 data rate 也稱 資料傳輸速率或位元率 bit rate 指的是 單位時間 ...

計算機網路 計算機網路的效能

目錄 1.網路效能的衡量指標 2.速率 3.頻寬 4.延遲 5.丟包率 6.時延頻寬積 7.吞吐率 網路效能的好壞可以由網路的速率 頻寬 延遲 丟包率 網路頻寬積 吞吐率等方面來判斷,下面讓我們一一詳細介紹。速率 資料率 data rate 也稱 資料傳輸速率或位元率 bit rate 指的是 單位...

計算機網路學習 計算機網路效能

出自 1.網路效能的衡量指標 2.速率 3.頻寬 4.延遲 5.丟包率 6.時延頻寬積 7.吞吐率 網路效能的好壞可以由網路的速率 頻寬 延遲 丟包率 網路頻寬積 吞吐率等方面來判斷,下面讓我們一一詳細介紹。速率 資料率 data rate 也稱 資料傳輸速率或位元率 bit rate 指的是 單位...