計算機網絡-網絡層協議(思維導圖)以及面試題總結(tcp/ip卷一筆記)

思維導圖

思維導圖下載

IP協議的特點(不可靠與無連接)

  • 不可靠:指的是不能保證數據報能成功地到達目的地。
    發生錯誤時候,丟棄該數據包,發送 ICMP 消息給信源端。 可靠性由上層提供。
  • 無連接:IP 不維護關於後續數據報的狀態信息。
    體現在,IP 數據可以不按順序發送和接收。A 發送連續的數據報,到達 B 不一定是連續的,來回路由選擇可能不一樣,路線也不一樣,到達先後順序也不一樣

IP首部

在這裏插入圖片描述

  1. 版本號:佔4位,協議版本號IPV4或者IPV6。
  2. 首部長度:首部長度,佔4位
  3. 區分服務:佔8位,用來獲得更好的服務,只有使用區分服務時,這個字段才起作用,一般情況不使用這個字段
  4. 總長度:總長度值首部和數據之和的長度,總長度字段是16位,因而數據報的最大長度爲2^16-1,當IP封裝成以太網幀時,其長度不能超過最大傳送單元MTU的值。
  5. 標識:佔16位,IP軟件裏面維持着一個計數器,每產生一個數據報,計數器就加1,並且將這個值賦給標識,這個標識不是爲了記錄IP數據報發送的順序,而是當分片時,這個值被複制到所有數據報片裏面,相同標識字段的值可以在分片後重新組裝成原來的數據報
  6. 標誌:佔3位,但目前只有兩位有用
    DF不分片標識,當DF=0時纔可以分片
    MF更多分片標識,MF=1表示後面還有分片,MF=0表示是最後一個分片
  7. 片偏移:佔13位,片偏移指出較長的分組在分片時,某片在原來分組中的相對位置。
  8. 生存時間(8位):TTL,每次經過一個路由器時,TTL字段會減一,當TTL字段爲零時,會丟棄該數據報,最大可以爲225,如果將TTL設置爲1,則只能在局域網上通信
  9. 首部檢驗和:佔16位,數據報每次經過一個路由器,路由器都要重新計算一下首部檢驗和,對首部每個16bit進行二進制反碼求和,結果存在檢驗和字段中,當收到一份IP數據報時,同樣對該數據報首部中每個16bit進行二進制反碼求和,由於接收方在計算過程中包含了發送方的首部檢驗和,因此若沒有在傳輸過程裏面發生差錯,那麼結果應該爲全1,發現差錯時IP就丟棄該數據報,但是不產生差錯報文,由上層去發現丟失的數據報並且進行重傳。
    10.源地址,目的地址:分別是32位

爲什麼 IP 首部中要有總長度字段?

  • 因爲一些數據鏈路(以太網)需要填充一些數據以達到最小長度。
  • 因爲以太網幀的最小長度是 46 個字節,但是 IP 長度可能更短,所以需要總長度來確定 IP 數據部分的內容

IP 首部校驗和怎麼計算的,與 ICMP,IGMP,TCP,UDP 的首部校驗和有什麼區別與共同點?

(1) 先把校驗和字段置 0。
(2) 對首部中每個 16 位比特進行二進制反碼求和。
(3) 結果存在檢驗和字段中。
(4) 收到一份 IP 數據包後,同樣對首部中每個 16bit 二進制反碼求和。
(5) 最後結果全爲 1,表示正確,否則表示錯誤。
(6) 如果是錯誤的,IP 就丟棄該數據報,但是不生成差錯報文,由上層去處理。

區別:IP 計算的時候沒有將數據包括在內。
ICMP,IGMP,TCP,UDP 同時覆蓋首部和數據檢驗碼

IP 路由選擇的過程是怎麼樣的?

根據最長匹配原則,找到條目,發送到指定的路由器。如果不能找到,返回一個“主機不可達”或“網絡不可達”的錯誤。

IP 路由選擇的特性有什麼?

(1) IP 路由選擇是逐跳進行的。
IP 並不知道到達任何目的的完整路徑,只提供下一跳地址。
(2) 爲一個網絡指定一個路由器,而不是爲每個主機指定一個路由器。這樣可以縮小路由表規模

IP 搜索路由表的步驟

搜索匹配的主機地址 ----》搜索匹配的網絡地址 ----》搜索默認選項
IP 層進行的選路實際上是一種選路機制,它搜索路由表並決定向哪個網絡接口發送分組。

如果路由表中沒有默認項,而又沒有找到匹配項,這時如何處理?

  • 結果取決於該 IP 數據報是由主機產生的還是被轉發的。
  • 如果數據報是由本機產生的,那麼就給發送該數據報的應用程序返回一個差錯,或者是“主機不可達差錯”或者是“網絡不可達差錯”。
  • 如果是被轉發的數據報,就給原始發送一份 ICMP 主機不可達的差錯報文。

將網絡互連起來的中間設備

  1. 物理層使用的是轉發器
  2. 數據鏈路層使用網橋
  3. 網絡層使用路由器
  4. 網絡層以上使用網關
    當中間的設備是網橋或者是路由器時,這僅僅是把一個路由器擴大了,而從網絡層的角度看這還是同一個網絡,路由器是一臺用來進行路由選擇的計算機

IP 地址的分類,如何劃分的,及會計算各類地址支持的主機數

  1. A 類地址:首位爲 0,1.0.0.1~~126.255.255.254;主機號 24 位
  2. B 類地址:首位爲 10,128.0.0.1~~191.255.255.254;主機號 16 位
  3. C 類地址:首位爲 110,192.0.0.1~~223.255.255.254;主機號 8 位
  4. D 類地址(多播地址,也叫做組播地址):首位爲 1110,224.0.0.1~~239.255.255.254
  5. E 類地址:此類地址是保留地址,首位爲 11110,240.0.0.1~~254.255.255.254

子網劃分

由於A類和B類地址裏面主機號劃分太多,而事實上,一個網絡裏面沒有那麼多臺主機,因此需要對其進行劃分,把主機號在劃分成一個子網號和一個主機號。當獲得某類網絡號後,可由當地系統管理員進行分配,以及分配多少比特給子網號和主機號,子網對外部路由器隱藏了劃分的細節,但是對於子網內部的路由器是不透明的,子網劃分縮小了路由表的規模

子網掩碼

通過子網掩碼確定多少位是用於子網號多少位是用於主機號,在引導過程中通過子網掩碼來指定。通過IP地址與子網掩碼相與確定網絡地址

選路的簡單原理:

IP搜索路由表的步驟:

  1. 搜索匹配的主機地址
  2. 搜索匹配的網絡地址
  3. 搜索默認路由表項

簡單路由表

使用netstat -rn
在這裏插入圖片描述
U代表該路由是可以使用的
G代表該路由是到一個網關,如果沒有這個標誌,說明和目的地是直連的
M代表該路由已被重定向報文修改
D代表該路由是被重定向報文創建的
H代表該路由是一個主機
說明

  1. G標誌說明了直接路由和間接路由。當分組被髮送到一個網關時,不僅有目的端的IP地址還有網關的Mac地址
  2. 沒有說明H標誌,說明目的地址是一個網絡地址(主機號爲全0)
  3. 輸出的第一行是默認路由

初始化路由表

route add default sun 1

default(代表目的地址)
sun(路由器)
1(路由的度量,route在度量值大於1時設置G標誌)

沒有到達目的地的路由

如果路由表中沒有默認項,也沒有找到匹配項,主機會給該數據報發一份主機不可達或者網絡不可達差錯

域間路由選擇CIDR

特點

  1. CIDR消除了傳統的A,B,C類地址以及子網劃分的概念,用網絡前綴指明網絡,後面部分指明主機
  2. CIDR採用斜線記法,也就是IP地址後有斜線指明前綴所佔的位數
  3. CIDR把網絡前綴都相同的IP地址組成一個CIDR地址塊,由於一個CIDR地址塊裏面有很多網絡,使用在路由表中用該地址塊查找網絡,稱爲路由聚合,也叫構成超網,這大大的縮減了路由表規模
  4. 可以更加有效的分配IP地址

使用最長前綴匹配
在查找路由表時,可能匹配的不僅僅是一個結果,這時我們將從匹配結果中選出具有最長網絡前綴的路由,這叫做最長前綴匹配,這時因爲前綴越長,地址塊越小,路由越具體。

網際控制報文協議ICMP

在這裏插入圖片描述

什麼情況不會導致產生 ICMP 差錯報文?

1) ICMP 差錯報文。
2) 目的地址是廣播地址或者多播地址的 IP 數據報。
3) 鏈路層廣播的數據報
4) 不是 IP 分片的第一片
5) 源地址不是單個主機的數據包

四種ICMP差錯報文

  1. 終點不可達
  2. 參數問題
  3. 時間超過
  4. 重定向

兩種詢問報文

  1. 回送請求報文或回答
  2. 時間戳請求或回答

ICMP的應用

  1. ping程序:使用了ICMP回送請求和回送回答報文,應用層直接使用網絡層ICMP,沒有通過運輸層的TCP和UDP,Ping一臺服務器,也就是向這臺服務器一連發出四個ICMP回送請求報文,如果該服務器正常工作而且響應這個報文,那麼他就發回ICMP回送回答報文,往返的ICMP報文上有時間戳,因此很容易得到往返時間
  2. traceroute程序:路由跟蹤,之前已經講過。看前面博客

ICMP 重定向差錯報文是怎麼來的,在何種場合出現?

在這裏插入圖片描述
1) 主機發送 IP 數據報給 R1,因爲主機的默認路由指向的下一跳是 R1。 2) R1 收到數據報並且檢查它的路由表,發現 R2 是發送該數據報的下一跳。當他將數
據報發送給 R2 的時候,發現發送的接口與接受的端口是一樣的,因此同時發送一
個 ICMP 重定向報文給主機。
3) R1 接受到 ICMP 重定向報文後,接下來的數據報就發送給 R2,而不再發送給 R1。

重定向報文有什麼規則?

  • 重定向報文只能有路由器生成。
  • 重定向報文是爲主機而不是爲路由器使用的。

ping程序

  • Ping 是 ICMP 的一個重要應用,主要用來測試兩臺主機之間的連通性。
  • Ping 的原理是通過向目的主機發送 ICMP Echo 請求報文,目的主機收到之後會發送 Echo 回答報文。Ping 會根據時間和成功響應的次數估算出數據包往返時間以及丟包率。

Traceroute

  • Traceroute 是 ICMP 的另一個應用,用來跟蹤一個分組從源點到終點的路徑。

  • Traceroute 發送的 IP 數據報封裝的是無法交付的 UDP 用戶數據報,並由目的主機發送終點不可達差錯報告報文。

  • 源主機向目的主機發送一連串的 IP 數據報。第一個數據報 P1 的生存時間 TTL 設置爲 1,當 P1 到達路徑上的第一個路由器 R1 時,R1 收下它並把 TTL 減 1,此時 TTL 等於 0,R1 就把 P1 丟棄,並向源主機發送一個 ICMP 時間超過差錯報告報文;

  • 源主機接着發送第二個數據報 P2,並把 TTL 設置爲 2。P2 先到達 R1,R1 收下後把 TTL 減 1 再轉發給 R2,R2 收下後也把 TTL 減 1,由於此時 TTL 等於 0,R2 就丟棄 P2,並向源主機發送一個 ICMP 時間超過差錯報文。

  • 不斷執行這樣的步驟,直到最後一個數據報剛剛到達目的主機,主機不轉發數據報,也不把 TTL 值減 1。但是因爲數據報封裝的是無法交付的 UDP,因此目的主機要向源主機發送 ICMP 終點不可達差錯報告報文。

  • 之後源主機知道了到達目的主機所經過的路由器 IP 地址以及到達每個路由器的往返時間。

虛擬專用網VPN

由於 IP 地址的緊缺,一個機構能申請到的 IP 地址數往往遠小於本機構所擁有的主機數。並且一個機構並不需要把所有的主機接入到外部的互聯網中,機構內的計算機可以使用僅在本機構有效的 IP 地址(專用地址)。

有三個專用地址塊:

  • 10.0.0.0 ~ 10.255.255.255
  • 172.16.0.0 ~ 172.31.255.255
  • 192.168.0.0 ~ 192.168.255.255

VPN 使用公用的互聯網作爲本機構各專用網之間的通信載體。專用指機構內的主機只與本機構內的其它主機通信;虛擬指好像是,而實際上並不是,它有經過公用的互聯網。

下圖中,場所 A 和 B 的通信經過互聯網,如果場所 A 的主機 X 要和另一個場所 B 的主機 Y 通信,IP 數據報的源地址是 10.1.0.1,目的地址是 10.2.0.3。數據報先發送到與互聯網相連的路由器 R1,R1 對內部數據進行加密,然後重新加上數據報的首部,源地址是路由器 R1 的全球地址 125.1.2.3,目的地址是路由器 R2 的全球地址 194.4.5.6。路由器 R2 收到數據報後將數據部分進行解密,恢復原來的數據報,此時目的地址爲 10.2.0.3,就交付給 Y。
在這裏插入圖片描述

NAT

專用網內部的主機使用本地 IP 地址又想和互聯網上的主機通信時,可以使用 NAT 來將本地 IP 轉換爲全球 IP。

在以前,NAT 將本地 IP 和全球 IP 一一對應,這種方式下擁有 n 個全球 IP 地址的專用網內最多隻可以同時有 n 臺主機接入互聯網。爲了更有效地利用全球 IP 地址,現在常用的 NAT 轉換表把傳輸層的端口號也用上了,使得多個專用網內部的主機共用一個全球 IP 地址。使用端口號的 NAT 也叫做網絡地址與端口轉換 NAPT。
在這裏插入圖片描述

路由器分組轉發流程

  • 從數據報的首部提取目的主機的 IP 地址 D,得到目的網絡地址 N。
  • 若 N 就是與此路由器直接相連的某個網絡地址,則進行直接交付;
  • 若路由表中有目的地址爲 D 的特定主機路由,則把數據報傳送給表中所指明的下一跳路由器;
  • 若路由表中有到達網絡 N 的路由,則把數據報傳送給路由表中所指明的下一跳路由器;
  • 若路由表中有一個默認路由,則把數據報傳送給路由表中所指明的默認路由器;
  • 報告轉發分組出錯。

arp地址解析協議

概述:網絡層實現主機之間的通信,而鏈路層實現具體每段鏈路之間的通信。因此在通信過程中,IP 數據報的源地址和目的地址始終不變,而 MAC 地址隨着鏈路的改變而改變
在這裏插入圖片描述
ARP報文的各個字段以及作用
在這裏插入圖片描述
幀類型:ARP:0x0806 (2) ARP 首部:
硬件類型:硬件地址的類型,1 表示以太網地址。(2)
協議類型:協議地址的類型,0x0800 表示 IP 地址。(2)
硬件地址長度:字節爲單位 6 (1)
協議地址長度:字節爲單位 4 (1)
操作類型:2 個字節。 ARP 請求 1,ARP 回覆 2,RARP 請求 3,RARP 應答 4。(2)
發送者硬件地址:6 個字節(6)
發送者 IP 地址:4 個字節(4)
目標硬件地址:6 個字節(6)
目標 IP 地址:4 個字節(4)
CRC 校驗:4 個字節 (4)
總結:
arp 總共 28 個字節。
記憶方法: 以太網先目地後源,ARP 先發送端後目地端。先硬件後協議

ARP 協議有什麼弱點?

1)緩存:主機的地址映射是基於高速緩存的,動態更新的。地址刷新是有時間限制的。 可以通過下次更新之前修改計算機上的地址緩存,造成拒絕服務攻擊或者 ARP 欺騙。
2)廣播: 攻擊者可以僞裝 ARP 應答。
3)ARP 應答沒有認證,都是合法的。可以在不接受到請求的時候就發出應答包。

ARP 代理的概念和應用場景

  • 若 ARP 請求是從一個網絡的主機發送給另一個網絡上的主機,那麼連接這兩個網絡的路由器就可以回答該請求,這個過程叫做 ARP 代理。
  • ARP 代理路由器響應 ARP 請求的 MAC 地
    址爲路由器的 MAC 地址而非 ARP 請求的主機的 MAC 地址。
  • ARP 代理的應用環境:
    兩個物理網絡之間的路由是使用相同的網絡號,兩個路由器設置成 ARP 代理,實現相互隱瞞物理網絡

免費 ARP

指主機發送 ARP 查找自己的 IP 地址,即數據鏈路層 SIP=DIP
作用有兩個:
1)一個主機使用免費 ARP 確定是有存在有其他主機設置了相同的 IP 地址
2)如果發送免費 ARP 的主機改變了 MAC 地址,可以通過發送免費 ARP 的方式告知其他主機端更新 ARP 表

數據鏈路層 MTU 的最大值和最小值是多少?

  1. 數據鏈路層的最小MTU 爲 64 字節。對於 IEEE802.3,兩個站點的最遠距離不超過 2500m, 由 4 箇中繼器連接而成,其衝突窗口爲 51.2us(2 倍電纜傳播延遲加上 4 箇中繼器的雙向延遲).對於 10Mbps 的 IEEE802.3 來說,這個時間等於發送 64 字節,即 512 位的時間,64 字節就是由此而來的。如果一個站點已經傳輸了 512bit,就認爲它已經佔用了這個信道。
  2. 數據鏈路層的最大 MTU 爲 1500 字節,即數據字段的最大長度

參考來源:

  • 《tcp/ip卷一》
  • 《計算機網絡第七版》
  • bilibili
  • CyC2018的GitHub筆記
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章