文章目錄
IP 地址的分類,如何劃分的,及會計算各類地址支持的主機數
- A 類地址:首位爲 0,1.0.0.1~~126.255.255.254;主機號 24 位
- B 類地址:首位爲 10,128.0.0.1~~191.255.255.254;主機號 16 位
- C 類地址:首位爲 110,192.0.0.1~~223.255.255.254;主機號 8 位
- D 類地址(多播地址,也叫做組播地址):首位爲 1110,224.0.0.1~~239.255.255.254
- E 類地址:此類地址是保留地址,首位爲 11110,240.0.0.1~~254.255.255.254
各個層使用的是哪個數據交換設備
- 網關:應用層、傳輸層(網關在傳輸層上以實現網絡互連,是最複雜的網絡互連設
備,僅用於兩個高層協議不同的網絡互連。網關的結構也和路由器類似,不同的是
互連層。網關既可以用於廣域網互連,也可以用於局域網互連) - 路由器:網絡層(路由選擇、存儲轉發)
- 交換機:數據鏈路層、網絡層(識別數據包中的 MAC 地址信息,根據 MAC 地址進
行轉發,並將這些 MAC 地址與對應的端口記錄在自己內部的一個地址表中) - 網橋:數據鏈路層(將兩個 LAN 連起來,根據 MAC 地址來轉發幀)
- 集線器(Hub):物理層(純硬件設備,主要用來連接計算機等網絡終端)
- 中繼器:物理層(在比特級別對網絡信號進行再生和重定時,從而使得它們能夠在
網絡上傳輸更長的距離)
各個層的功能詳解
- 應用層(數據):確定進程之間通信的性質以滿足用戶需要以及提供網絡與用戶應用
- 表示層(數據):主要解決擁護信息的語法表示問題,如加密解密
- 會話層(數據):提供包括訪問驗證和會話管理在內的建立和維護應用之間通信的機
制,如服務器驗證用戶登錄便是由會話層完成的 - 傳輸層(段):實現網絡不同主機上用戶進程之間的數據通信,可靠
與不可靠的傳輸,傳輸層的錯誤檢測,流量控制等 - 網絡層(包):提供邏輯地址(IP)、選路,數據從源端到目的端的
傳輸 - 數據鏈路層(幀):將上層數據封裝成幀,用 MAC 地址訪問媒介,錯誤檢測與修正
- 物理層(比特流):設備之間比特流的傳輸,物理接口,電氣特性等
各個層的協議棧
ICMP 報文的分類?
ICMP 分爲兩類,一類是 ICMP 查詢報文,另一類是 ICMP 差錯報文。
爲什麼要 3 次握手,4 次揮手
3 次握手
假設 A 爲客戶端,B 爲服務器端。
-
首先 B 處於 LISTEN(監聽)狀態,等待客戶的連接請求。
-
A 向 B 發送連接請求報文,SYN=1,ACK=0,選擇一個初始的序號 x。
-
B 收到連接請求報文,如果同意建立連接,則向 A 發送連接確認報文,SYN=1,ACK=1,確認號爲 x+1,同時也選擇一個初始的序號 y。
-
A 收到 B 的連接確認報文後,還要向 B 發出確認,確認號爲 y+1,序號爲 x+1。
-
B 收到 A 的確認後,連接建立。
3 次握手:第三次握手是爲了防止失效的連接請求到達服務器,讓服務器錯誤打開連接。
- 客戶端發送的連接請求如果在網絡中滯留,那麼就會隔很長一段時間才能收到服務器端發回的連接確認。客戶端等待一個超時重傳時間之後,就會重新請求連接。但是這個滯留的連接請求最後還是會到達服務器,如果不進行三次握手,那麼服務器就會打開兩個連接。如果有第三次握手,客戶端會忽略服務器之後發送的對滯留連接請求的連接確認,不進行第三次握手,因此就不會再次打開連接。
==4 次揮手 ==
以下描述不討論序號和確認號,因爲序號和確認號的規則比較簡單。並且不討論 ACK,因爲 ACK 在連接建立之後都爲 1。
-
A 發送連接釋放報文,FIN=1。
-
B 收到之後發出確認,此時 TCP 屬於半關閉狀態,B 能向 A 發送數據但是 A 不能向 B 發送數據。
-
當 B 不再需要連接時,發送連接釋放報文,FIN=1。
-
A 收到後發出確認,進入 TIME-WAIT 狀態,等待 2 MSL(最大報文存活時間)後釋放連接。
-
B 收到 A 的確認後釋放連接。
4 次揮手:客戶端發送了 FIN 連接釋放報文之後,服務器收到了這個報文,就進入了 CLOSE-WAIT 狀態。這個狀態是爲了讓服務器端發送還未傳送完畢的數據,傳送完畢之後,服務器會發送 FIN 連接釋放報文。
TIME_WAIT
客戶端接收到服務器端的 FIN 報文後進入此狀態,此時並不是直接進入 CLOSED 狀態,還需要等待一個時間計時器設置的時間 2MSL。這麼做有兩個理由:
-
確保最後一個確認報文能夠到達。如果 B 沒收到 A 發送來的確認報文,那麼就會重新發送連接釋放請求報文,A 等待一段時間就是爲了處理這種情況的發生。
-
等待一段時間是爲了讓本連接持續時間內所產生的所有報文都從網絡中消失,使得下一個新的連接不會出現舊的連接請求報文。
Cookies 和 Session 的區別
- cookie 是一種發送到客戶瀏覽器的文本串句柄,並保存在客戶機硬盤上,可以用來在
某個 WEB 站點會話間持久的保持數據 - session 其實指的就是訪問者從到達某個特定主頁到離開爲止的那段時間。 Session 其
實是利用 Cookie 進行信息處理的,當用戶首先進行了請求後,服務端就在用戶瀏覽器
上創建了一個 Cookie,當這個 Session 結束時,其實就是意味着這個 Cookie 就過期 了 - cookie 數據保存在客戶端,session 數據保存在服務器端
一次完整的 HTTP 請求所經歷的步驟
- 比如:在瀏覽器中輸入 www.baidu.com 後執行的全部過程
TCP 與 UDP 的概念相互的區別及優劣
- TCP 面向連接,UDP 面向無鏈接
- TCP 面向報文,UDP 面向字節流
- TCP 提供可靠傳輸服務(數據順序、正確性),UDP 傳輸不可靠
- TCP 協議傳輸速度慢,UDP 協議傳輸速度快
- TCP 協議對系統資源要求多(頭部開銷大),UDP 協議要求少
IP 路由選擇的特性有什麼?
(1) IP 路由選擇是逐跳進行的。
IP 並不知道到達任何目的的完整路徑,只提供下一跳地址。
(2) 爲一個網絡指定一個路由器,而不是爲每個主機指定一個路由器。
這樣可以縮小路由表規模。
TCP 通過哪些方式來保證可靠性?
1) 應用數據被分割成 TCP 認爲最適合發送的數據塊。
2) 確認機制,發送報文後,等待確認。
3) 重發機制,沒有收到確認,將重發數據段。
4) 保持它首部和數據的校驗和。確認數據的準確性。
5) 排序,丟棄重複的,流量控制。
TCP、UDP 爲什麼存在僞包頭?
UDP(TCP)檢驗和:是根據 UDP(TCP)數據報和僞報頭計算得到的差錯檢測值。
僞報頭包含源和目的 IP 地址,以及來自 IP 數據報報頭的協議值。IP 數據報在網絡中傳送時
包含 UDP 數據報。
僞報頭並不會在網絡中傳送,校驗和中所包含的僞報頭內容可以避免目的端錯誤地接收錯誤
路由的數據報。校驗和值的計算方法和 IP 報頭檢驗和的計算方法類似
常用端口
你知道的越多,你不知道的越多。
有道無術,術尚可求,有術無道,止於術。
如有其它問題,歡迎大家留言,我們一起討論,一起學習,一起進步