文章轉自:https://blog.csdn.net/weixin_43914604/article/details/105138313
學習課程:《2019王道考研計算機網絡》
學習目的:利用最省時間的方法學習考研面試中的計算機網絡。
1、思維導圖
2、TCP/IP協議棧
- 首先我們了解一下IP在TCP/IP中的位置
3、IPv4分組
- 網絡層將傳輸層的數據打包后,如果數據很小,可以稱為IP數據報,如果數據過大則進行分片,每一片稱為IPv4分組。一般數據都比較多,大部分情況都是分組。
(1)IPv4分組格式
- 一個IP分組由首部和數據兩部分組成。首部前一部分的長度固定,共
20B
,是所有IP分組必須具有的。在首部固定部分的后面是一些可選字段,其長度可變,用來提供錯誤檢測及安全等機制。
IP首部的部分重要字段含義如下: - 1)
版本
。指IP的版本,目前廣泛使用的版本號為4。 - 2)
首部長度
。占4位,1B
。以32位為單位,最大值為60B (15*4B)。最常用的首部長度是20B,此時不使用任何選項(即可選字段)。 - 3)
總長度
。占16位,2B
。指首部和數據之和的長度,單位為字節,因此數據報的最大長度為216-1= 65535B。以太網幀的最大傳送單元(MTU)為1500B,因此當一個IP數據報封裝成幀時,數據報的總長度(首部加數據) - -定不能超過下面數據鏈路層的MTU值。 - 4)
標識
。占16位。它是一個計數器,每產生一個數據報就加1,並賦值給標識字段。但它並不是“序號”(因為IP是無連接服務)。當一個數據報的長度超過網絡的MTU時,必須分片,此時每個數據報片都復制一次標識號, 以便能正確重裝成原來的數據報。 - 5)
標志
。占3位。標志字段的最低位為MF, MF= 1表示后面還有分片,MF= 0表示最后一個分片。” 標志字段中間的一位是DF,只有當DF =0時才允許分片。 - 6)
片偏移
。占13位。它指出較長的分組在分片后,某片在原分組中的相對位置。片偏移以8個字節為偏移單位,8B
,即每個分片的長度一定是8B (64 位)的整數倍。 - 7)
首部校驗和
。占16位。IP數據報的首部校驗和只校驗分組的首部,而不校驗數據部分。 - 8)
生存時間(TTL)
。占8位。數據報在網絡中可通過的路由器數的最大值,標識分組在網絡中的壽命,以確保分組不會永遠在網絡中循環。路由器在轉發分組前,先把TTL減1。若TTL被減為0,則該分組必須丟棄。 - 9)
協議
。占8位。指出此分組攜帶的數據使用何種協議,即分組的數據部分應交給哪個傳輸層協議,如TCP、UDP等。其中值為6表示TCP,值為17表示UDP。 - 10)
源地址字段
。占4B,標識發送方的IP地址。 - 11)
目的地址字段
。占4B,標識接收方的IP地址。
(2)IP數據報分片
一個鏈路層數據報能承載的最大數據量稱為最大傳送單元(MTU)。
因為IP數據報被封裝在鏈路層數據報中,因此鏈路層的MTU嚴格地限制着IP數據報的長度,而且在IP數據報的源與目的地路徑上的各段鏈路可能使用不同的鏈路層協議,有不同的MTU
。例如,以太網的MTU為1500B
,而許多廣域網的MTU不超過576B。當IP數據報的總長度大於鏈路MTU時,就需要將IP數據報中的數據分裝在兩個或多個較小的IP數據報中,這些較小的數據報稱為片
。
- 再回憶一下IP數據報格式的相關字段意義
(3)網絡層轉發分組的流程
網絡層的路由器執行的分組轉發算法如下:
- 1)從數據報的首部提取目的主機的IP地址D,得出目的網絡地址N。
- 2)若網絡N與此路由器直接相連,則把數據報直接交付給目的主機D,這稱為路由器的直接交付;否則是間接交付,執行步驟3)。
- 3)若路由表中有目的地址為D的特定主機路由(對特定的目的主機指明一個特定的路由,通常是為了控制或測試網絡,或出於安全考慮才采用的),則把數據報傳送給路由表中所指明的下一跳路由器;否則,執行步驟4)。
- 4)若路由表中有到達網絡N的路由,則把數據報傳送給路由表指明的下一跳路由器;否則,執行步驟5)。
- 5)若路由表中有一個默認路由,則把數據報傳送給路由表中所指明的默認路由器;否則,執行步驟6)。
- 6)報告轉發分組出錯。
注意:得到下一跳路由器的IP 地址后並不是直接將該地址填入待發送的數據報,而是將該IP地址轉換成MAC地址(通過ARP),將其放到MAC幀首部中,然后根據這個MAC地址找到下一跳路由器。在不同網絡中傳送時,MAC幀中的源地址和目的地址要發生變化,但是網橋在轉發幀時,不改變幀的源地址,請注意區分。
4、IPv4與NAT
(1)IPv4地址
① 組成與分類
-
連接到因特網上的每台
主機(或路由器)
都分配一個32比特的全球唯一標識符
,即IP地址
。傳統的IP地址是分類的地址,分為A、B、C、D、E
五類。
-
無論哪類IP地址,都由
網絡號
和主機號
兩部分組成
。 -
即IP地址::= {<網絡號>, <主機號>}。
-
其中
網絡號
標志主機(或路由器)
所連接到的網絡
。一個網絡號在整個因特網范圍內必須是唯一的。 -
主機號
標志該主機(或路由器)
。一台主機號在它前面的網絡號所指明的網絡范圍內必須是唯一的。 -
由此可見,一個IP地址在整個因特網范圍內是唯一的。
② 特殊地址不做主機IP地址
- 在各類IP地址中,有些IP地址具有
特殊用途
,不用做主機的IP地址:
③ 常用IP地址ABC使用范圍
常用的三種類別IP地址的使用范圍見表
A類
地址可用的網絡數為27-2,減2的原因是:第一
,網絡號字段全為0的IP地址是保留地址,意思是“本網絡”;第二
,網絡號為127的IP地址是環回測試地址。B類
地址的可用網絡數為214-1,減1的原因是128.0這個網絡號是不可指派的。C類
地址的可用網絡數為221-1,減1的原因是網絡號為192.0.0 的網絡是不可指派的。
④ IP地址的重要特點
IP地址有以下重要特點:
- 1)每個
IP
地址都由網絡號
和主機號
兩部分組成
,因此IP地址是一種分等級的地址結構。分等級的好處是:①
IP地址管理機構在分配IP地址時只分配網絡號(第一級
), 而主機號(第二級
)則由得到該網絡的單位自行分配,方便了IP 地址的管理;②
路由器僅根據目的主機所連接的網絡號來轉發分組(而不考慮目標主機號),從而減小了路由表所占的存儲空間。 - 2)
IP地址是標志一台主機(或路由器)和一條鏈路的接口
。當一台主機同時連接到兩個網絡時,該主機就必須同時具有兩個相應的IP地址,每個IP地址的網絡號必須與所在網絡的網絡號相同,且這兩個IP地址的網絡號是不同的。因此IP網絡上的一個路由器必然至少應具有兩個IP地址(路由器每個端口必須至少分配一個IP地址)。 - 3)
用轉發器或橋接器(網橋等)連接的若干LAN仍然是同一個網絡
(同一個廣播域),因此該LAN
中所有主機
的IP
地址的網絡號必須相同
,但主機號必須不同。 - 4)在IP地址中,所有分配到網絡號的
網絡
(無論是LAN還是WAN)都是平等
的。 - 5)
在同一個局域網上的主機或路由器的IP地址中的網絡號必須是一樣的
。路由器總是具有兩個或兩個以上的IP地址,路由器的每個端口都有一個不同網絡號的IP地址。
(2)網絡地址轉換—NAT
① NAT簡介
網絡地址轉換(NAT)
是指通過將專用網絡地址
(如Intranet)轉換為公用地址
(如Internet),從而對外隱藏內部管理的IP地址。它使得整個專用網只需要一個全球IP地址就可以與因特網連通
,由於專用網本地IP地址是可重用的,所以NAT大大節省了IP地址的消耗。同時,它隱藏了內部網絡結構,從而降低了內部網絡受到攻擊的風險。
② 私有IP地址
- 此外,
為了網絡安全,划出了部分IP地址為私有IP地址
。私有IP地址只用於LAN,不用於WAN連接
(因此私有IP地址不能直接用於Internet,必須通過網關利用NAT把私有IP地址轉換為Internet中合法的全球IP地址后才能用於Internet), 並且允許私有IP地址被LAN重復使用。這有效地解決了IP地址不足的問題。私有IP地址網段如下:
③ 專用互聯網/本地互聯網
- 在因特網中的所有路由器,
對目的地址是私有地址的數據報一律不進行轉發
。這種采用私有IP地址的互聯網絡
稱為專用互聯網
或本地互聯網
。私有IP地址
也稱可重用地址
。
④ 如何實現私有IP地址上網
使用NAT時需要在專用網連接到因特網的路由器上安裝NAT軟件,NAT路由器至少有一個有效的外部全球地址
。使用本地地址的主機和外界通信時,NAT路由器使用NAT轉換表將本地地址轉換成全球地址,或將全球地址轉換成本地地址
。- NAT轉換表中存放着{本地IP地址:端口}到{全球IP地址:端口}的映射。
- 通過{ip地址:端口}這樣的映射方式,
- 可讓多個私有IP地址映射到同一個全球IP地址。
5、子網划分與子網掩碼、CIDR
(1)子網划分
-
兩級IP地址的缺點
:IP地址空間的利用率有時很低;給每個物理網絡分配一個網絡號會使路由表變得太大而使網絡性能變壞;兩級的IP地址不夠靈活。
-
從1985年起,在IP地址中又增加了一個
“子網號字段”
,使兩級IP地址變成了三級IP地址
。這種做法稱為子網划分
。子網划分已成為因特網的正式標准協議。
①子網划分的基本思路
●子網划分純屬一個單位內部的事情。單位對外
仍然表現為沒有划分子網
的網絡
。
●從主機號借用若干比特作為子網號
,當然主機號也就相應減少了相同的比特。三級IP地址的結構如下: IP地址={<網絡號>,<子網號>, <主機號>}
。
●凡是從其他網絡發送給本單位某台主機的IP數據報,仍然是根據IP數據報的目的網絡號,先找到連接到本單位網絡上的路由器
。然后該路由器在收到IP數據報后
,按目的網絡號.和子網號找到目的子網
。最后把IP數據報直接交付給目的主機
。
(2)子網掩碼
子網掩碼
的引入,為了告訴主機或路由器對一個A類、B類、C類網絡進行了子網划分,使用子網掩碼來表達對原網絡中主機號的借位。為了使外部可以連接子網內的網絡。
- 子網掩碼是一個與IP地址相對應的、長32bit的二進制串,它由一串1和跟隨的一串0組成。
- 其中,
1對應於IP地址中的網絡號及子網號,而0對應於主機號
。 - 計算機只需將
IP地址
和其對應的子網掩碼逐位“與”
(邏輯AND運算),就可得出相應子網的網絡地址
。
- 現在的因特網標准規定:所有的網絡都必須使用子網掩碼。如果一個網絡未划分子網,那么就采用默認子網掩碼。
- A、B、C類地址的默認子網掩碼分別為255.0.0.0、 255.255.0.0、255.255.255.0.
- 例如,某主機的IP地址192.168.5.56,子網掩碼為255.255.255.0,進行逐位“與”運算后,得出該主機所在子網的網絡號為192.168.5.0。
- 一道例題:
- 另一道例題
①使用子網時的分組轉發
- 由於子網掩碼是一個網絡或一個子網的重要屬性,所以路由器在相互之間交換路由信息時,
必須把自己所在網絡(或子網)的子網掩碼告訴對方。路由表中的每個條目,除要給出目的網絡地址和下一跳地址外,還要同時給出該目的網絡的子網掩碼
。
②在使用子網掩碼的情況下
- 1)一台主機在設置IP地址信息的同時,必須設置
子網掩碼
。 - 2)
同
屬於一個子網
的所有主機及路由器
的相應端口
,必須設置相同
的子網掩碼
。 - 3)
路由器的路由表
中,所包含信息的主要內容必須有目的網絡地址、子網掩碼、下一跳地址
。
③使用子網掩碼時路由器的分組轉發算法如下
- 1)從收到的分組的首部
提取目的IP地址
,記為D
。 - 2)
先判斷是否為直接交付
。對路由器直接相連的網絡逐個進行檢查:用各網絡的子網掩碼和D逐位相“與”,看結果是否和相應的網絡地址匹配。若匹配,則將分組直接交付,否則間接交付,執行步驟3)
。 - 3)
若路由表中有目的地址為D的特定主機路由,則將分組傳送給路由表中所指明的下一跳路由器
;否則,執行4)。 - 4)對路由表中的每一行(
目的網絡地址、子網掩碼、下一跳地址
)中的子網掩碼
和D
逐位相“與”
,其結果為N。若N與該行的目的網絡地址匹配,則將分組傳送給該行指明的下一跳路由器;否則,執行步驟5)。 - 5)若路由表中有一個默認路由,則將分組傳送給路由表中所指明的默認路由器;否則,執行步驟6)。
- 6)報告轉發分組出錯。
(3)無分類域間路由選擇CIDR
①為什么要發明CIDR?
- 在域名系統出現之后的第一個十年里,基於分類網絡進行地址分配和路由IP數據包的設計就已明顯顯得可擴充性不足 。為了解決這個問題,互聯網工程工作小組在1993年發布了一新系列的標准,以定義新的分配IP地址塊和路由IPv4數據包的方法。
- 一個IP地址包含兩部分:標識網絡的前綴和緊接着的在這個網絡內的主機地址。在之前的分類網絡中,IP地址的分配把IP地址的32位按每8位為一段分開。這使得前綴必須為8,16或者24位。
因此,可分配的最小的地址塊有256(24位前綴,8位主機地址,2^8 =256)個地址,而這對大多數企業來說太少了。大一點的地址塊包含65536(16位前綴,16位主機,2^16 =65536)個地址,而這對大公司來說都太多了
。這導致不能充分使用IP地址和在路由上的不便
,因為大量的需要單獨路由的小型網絡(C類網絡)因在地域上分得很開而很難進行聚合路由,於是給路由設備增加了很多負擔。
②兩張圖了解CIDR的特點
③路由器根據路由表轉發的CIDR原則
- 一道考研例題熟悉一下:
6、地址解析協議—ARP協議
(1)IP地址與硬件地址的概念
- IP地址是網絡層使用的地址,它是分層次等級的。
- 硬件地址是數據鏈路層使用的地址(如MAC地址),它是平面式的。
- 在網絡層及網絡層之上使用IP地址,IP地址放在IP數據報的首部,
- 而MAC地址放在MAC幀的首部。
- 通過數據封裝,把IP數據報分組封裝為MAC幀后,數據鏈路層看不見數據報分組中的IP地址。
(2)ARP協議引入
無論網絡層使用什么協議,在實際網絡的鏈路上傳送數據幀時,最終必須使用硬件地址
。所以需要一種方法來完成 IP地址到MAC地址的映射,這就是地址解析協議(Address Resolution Protocol, ARP)
。 每台主機都設有一個ARP高速緩存,用來存放本局域網上各主機和路由器的IP地址到MAC地址的映射表,稱ARP表。使用ARP來動態維護此ARP表。
(3)工作過程
- 一個題目例子
7、動態主機配置協議—DHCP協議
動態主機配置協議
(Dynamic Host Configuration Protocol,DHCP
)常用於給主機動態地分配IP地址
,它提供了即插即用聯網的機制,這種機制允許一台計算機加入新的網絡和獲取IP地址而不用手工參與。- DHCP是應用層協議,它是基於UDP的。
(1)DHCP的工作原理
- 使用客戶/服務器方式
- 需要IP地址的主機在啟動時就向DHCP服務器廣播發送發現報文,這時該主機就成為DHCP客戶。本地網絡上所有主機都能收到此廣播報文,但只有DHCP服務器才回答此廣播報文。
- DHCP服務器先在其數據庫中查找該計算機的配置信息。若找到,則返回找到的信息。
- 若找不到,則從服務器的IP地址池中取一個地址分配給該計算機。DHCP服務器的回答報文稱為提供報文。
8、網際控制報文協議— ICMP
- 為了提高IP數據報交付成功的機會,在網絡層使用了
網際控制報文協議
(Internet Control Message Protocol,ICMP
)來讓主機或路由器報告差錯和異常情況
。
- ICMP 報文作為IP層數據報的數據,加上數據報的首部,組成IP數據報發送出去。ICMP是IP層協議。
- ICMP報文的種類有兩種,即
ICMP差錯報告報文
和ICMP詢問報文
。
(1)ICMP差錯報告報文
- 不發送ICMP差錯報文的情況
(2)ICMP詢問報文
(3)ICMP的應用
- ICMP的兩個常見應用是
分組網間探測PING(用來測試兩台主機之間的連通性)
和Traceroute(UNIX中的名字,在Windows中是tracert,可以用來跟蹤分組經過的路由)
。 - 其中PING使用了ICMP
回送請求
和回答報文
, - Traceroute (Tracert) 使用了ICMP
時間超過報文
。 - 注意: PING工作在應用層,它直接使用網絡層的ICMP,而未使用傳輸層的TCP或UDP。Traceroute/Tracert工作在網絡層。