一文完全理解IP


1.IP工作在哪一層?網絡層和數據鏈路層有什么關系?

IP工作在網絡層,IP 的作用是主機之間通信用的,而 MAC 的作用則是實現「直連」的兩個設備之間通信,而 IP 則負責在「沒有直連」的兩個網絡之間進行通信傳輸。

2.IP地址如何表示?

IP 地址(IPv4 地址)由 32 位正整數來表示,IP 地址在計算機是以二進制的方式處理的。
而人類為了方便記憶采用了點分十進制的標記方式,也就是將 32 位 IP 地址以每 8 位為組,共分為 4 組,每組以 「 . 」隔開,再將每組轉換成十進制。

 

IP最大地址是2^32 = 4294967296

實際上,IP 地址並不是根據主機台數來配置的,而是以網卡。像服務器、路由器等設備都是有 2 個以上的網卡,也就是它們會有 2 個以上的 IP 地址。
 

3.IP地址的分類有哪些?

IP 地址分類成了 5 種類型,分別是 A 類、B 類、C 類、D 類、E 類。

 

我們可以用下面這個表格, 就能很清楚的知道 A、B、C 分類對應的地址范圍、最大主機個數。

 

最大主機個數,就是要看主機號的位數,如 C 類地址的主機號占 8 位,那么 C 類地址的最大主機個數:2^8-2=254,為什么減2呢?
因為在 IP 地址中,有兩個 IP 是特殊的,分別是主機號全為 1 和 全為 0 地址。

主機號全為 1 指定某個網絡下的所有主機,用於廣播。主機號全為 0 指定某個網絡

4.廣播地址用於什么?

廣播地址用於在同一個鏈路中相互連接的主機之間發送數據包。
當主機號全為 1 時,就表示該網絡的廣播地址。
例如把 10101100.00010100.00000000.00000000 將這個地址的主機部分全部改為 1,則形成廣播地址: 10101100.00010100. 11111111.11111111 再將這個地址用十進制表示,則為 172.20.255.255
廣播地址可以分為本地廣播和直接廣播兩種。在本網絡內廣播的叫做本地廣播。例如網絡地址為 192.168.0.0/24 的情況下,廣播地址是 192.168.0.255 。
因為這個廣播地址的 IP 包會被路由器屏蔽,所以不會到達 192.168.0.0/24 以外的其他鏈路上。
在不同網絡之間的廣播叫做直接廣播。例如網絡地址為 192.168.0.0/24 的主機向 192.168.1.255/24 的目標地址發送 IP包。收到這個包的路由器,將數據轉發給 192.168.1.0/24,
從而使得所有 192.168.1.1~192.168.1.254 的主機都能收到這個包。
 

5.什么是D、E類地址?

而 D 類和 E 類地址是沒有主機號的,所以不可用於主機 IP,D 類常被用於多播,E類是預留的分類,暫時未使用
 

6.什么是無分類地址 CIDR?

 先了解下IP分類的缺點?

缺點一

同一網絡下沒有地址層次,比如一個公司里用了 B 類地址,但是可能需要根據生產環境、測試環境、開發環境來划 分地址層次,而這種 IP 分類是沒有地址層次划分的功能,所以這就缺少地址的靈活性。

缺點二

A、B、C類有個尷尬處境,就是不能很好的與現實網絡匹配。C 類地址能包含的最大主機數 實在太少了,只有 254 個,估計一個網吧都不夠用。

而 B 類地址能包含的最大主機數 又太多了,6 萬多台機器放在一個網絡下面,一般的企業基本達不到這個 規模,閑着的地址就是浪費。

正因為 IP 分類存在許多缺點,所以后面提出了無分類地址的方案,即 CIDR 。 這種方式不再有分類地址的概念,32 比特的 IP 地址被划分為兩部分,前面是網絡號,后面是主機號。
怎么划分網絡號和主機號?
表示形式 a.b.c.d/x ,其中 /x 表示前 x 位屬於網絡號, x 的范圍是 0 ~ 32 ,這就使得 IP 地址更加具有靈活性。

比如 10.100.122.2/24,這種地址表示形式就是 CIDR,/24 表示前 24 位是網絡號,剩余的 8 位是主機號。

還有一種划分網絡號與主機號形式,那就是子網掩碼,掩碼的意思就是掩蓋掉主機號,剩余的就是網絡號。

將子網掩碼和 IP 地址按位計算 AND,就可得到網絡號。

 

7.公有 IP 地址與私有 IP 地址

 在 A、B、C 分類地址,實際上有分公有 IP 地址和私有 IP 地址。

 

平時我們辦公室、家里、學校用的 IP 地址,一般都是私有 IP 地址。因為這些地址允許組織內部的 IT 人員自己管理、自己分配,而且可以重復。
因此,你學校的某個私有 IP 地址和我學校的可以是一樣的。
所以,公有 IP 地址是有個組織統一分配的,假設你要開一個博客網站,那么你就需要去申請購買一個公有 IP,這樣全世界的人才能訪問。並且公有 IP 地址基本上要在整個互聯網范圍內保持唯一。
 

8.IP 分片與重組

每種數據鏈路的最大傳輸單元 MTU 都是不相同的,如 FDDI 數據鏈路 MTU 4352、以太網的 MTU 是 1500 字節 等。

每種數據鏈路的 MTU 之所以不同,是因為每個不同類型的數據鏈路的使用目的不同。使用目的不同,可承載的 MTU 也就不同。

其中,我們最常⻅數據鏈路是以太網,它的 MTU 是 1500 字節。

那么當 IP 數據包大小大於 MTU 時, IP 數據包就會被分片。

經過分片之后的 IP 數據報在被 組的時候,只能由目標主機進行,路由器是不會進行 組的。

假設發送方發送一個 4000 字節的大數據報,若要傳輸在以太網鏈路,則需要把數據報分片成 3 個小數據報進行傳 輸,再交由接收方 組成大數據報。

在分片傳輸中,一旦某個分片丟失,則會造成整個 IP 數據報作廢,所以 TCP 引入了 MSS 也就是在 TCP 層進行 分片不由 IP 層分片,那么對於 UDP 我們盡量不要發送一個大於 MTU 的數據報文。
 

9.IPV6有哪些亮點? 

IPv6 不僅僅只是可分配的地址變多了,它還有非常多的亮點。
IPv6 可自動配置,即使沒有 DHCP 服務器也可以實現自動分配IP地址,真是便捷到即插即用啊。

IPv6 包頭包首部⻓度采用固定的值 40 字節,去掉了包頭校驗和,簡化了首部結構,減輕了路由器負荷,大 大提高了傳輸的性能。

IPv6 有應對偽造 IP 地址的網絡安全功能以及防止線路竊聽的功能,大大提升了安全性。

10.IPV6的表示方法? 

IPv4 地址⻓度共 32 位,是以每 8 位作為一組,並用點分十進制的表示方式。 IPv6 地址⻓度是 128 位,是以每 16 位作為一組,每組用冒號 「:」 隔開。

 

如果出現連續的 0 時還可以將這些 0 省略,並用兩個冒號 「::」隔開。但是,一個 IP 地址中只允許出現一次兩個連續的冒號

 

 

11.IPv4 首部與 IPv6 首部有哪些不同?

4位版本信息:描述IP協議的版本。   

4位頭部長度:表示IP協議頭部的長度,4個比特位表示的數值 * 4   = IP協議頭部的長度,IP協議頭部最大為60字節(固定的20字節+可選的40字節)

8位服務類型:

16位總長度:表示IP數據包總體(IP協議首部+數據)的長度。  IP數據報最大的長度為65535字節

16位標識:用於分片重組,也可以說用於識別哪些被分片的UDP數據包能組成一個完整的UDP數據包。同一UDP數據包中所有的分片具有相同的標識。不同數據包的標識不相同。

 即使不同UDP包的標識相同,也可以通過源IP地址,目的IP地址、協議等進行區分
3位標志:

13位片偏移:用來表示被分片每一個分段相對於原始數據的位置。片偏移=13個比特位表示的數值 *  8

 8位生存時間:數據在到達目的地前允許中轉的路由器個數

                      TTL : 跳數,(一般為64,防止路由循環)每經過一個路由設備轉發之后,TTL會減1,TTL為0之后,轉發設備會丟棄這個數據包

8位協議:表示傳輸層用的協議。接收端接收到這個數據包后通過這8位知道提交給傳輸層哪個協議

16位頭部檢驗和:檢驗數據包在傳輸過程中是否損壞

32位源IP地址 :發送端IP地址

32位目的IP地址:接收端IP地址

IPv6 相比 IPv4 的首部改進: 

取消了首部校驗和字段。 因為在數據鏈路層和傳輸層都會校驗,因此 IPv6 直接取消了 IP 的校驗 。

取消了分片/重新組裝相關字段。 分片與 組是耗時的過程,IPv6 不允許在中間路由器進行分片與 組,這種操作只能在源與目標主機,這將大大提高了路由器轉發的速度。

取消選項字段。 選項字段不再是標准 IP 首部的一部分了,但它並沒有消失,而是可能出現在 IPv6 首部中的

「下一個首部」指出的位置上。刪除該選項字段使的 IPv6 的首部成為固定⻓度的 40字節

12.IPv4 與 IPv6 有哪些區別?

https://www.php.cn/windows-413502.html

https://www.ibm.com/docs/zh/i/7.2?topic=6-comparison-ipv4-ipv6

 

13.DNS域名如何解析?

 我們在上網的時候,通常使用的方式是域名,而不是 IP 地址,因為域名方便人類記憶。 那么實現這一技術的就是 DNS 域名解析,DNS 可以將域名網址自動轉換為具體的 IP 地址 

DNS 中的域名都是用句點來分隔的,比如 www.server.com ,這里的句點代表了不同層次之間的界限。 在域名中,越靠右的位置表示其層級越高。 

根域是在最頂層,它的下一層就是 com 頂級域,再下面是 server.com。 所以域名的層級關系類似一個樹狀結構:

根 DNS 服務器
頂級域 DNS 服務器(com)

權威 DNS 服務器(server.com) 

根域的 DNS 服務器信息保存在互聯網中所有的 DNS 服務器中。這樣一來,任何 DNS 服務器就都可以找到並訪問 根域 DNS 服務器了。

因此,客戶端只要能夠找到任意一台 DNS 服務器,就可以通過它找到根域 DNS 服務器,然后再一路順藤摸瓜找到 位於下層的某台目標 DNS 服務器 

域名解析的工作流程 ?

瀏覽器首先看一下自己的緩存里有沒有,如果沒有就向操作系統的緩存要,還沒有就檢查本機域名解析文件 hosts ,如果還是沒有,就會 DNS 服務器進行查詢,查詢的過程如下:

  1. 客戶端首先會發出一個 DNS 請求,問 www.server.com 的 IP 是啥,並發給本地 DNS 服務器(也就是客戶端 的 TCP/IP 設置中填寫的 DNS 服務器地址)。

  2. 本地域名服務器收到客戶端的請求后,如果緩存里的表格能找到 www.server.com,則它直接返回 IP 地址。 如果沒有,本地 DNS 會去問它的根域名服務器:“老大, 能告訴我 www.server.com 的 IP 地址嗎?” 根域名 服務器是最高層次的,它不直接用於域名解析,但能指明一條道路。

  3. 根 DNS 收到來自本地 DNS 的請求后,發現后置是 .com,說:“www.server.com 這個域名歸 .com 區域管 理”,我給你 .com 頂級域名服務器地址給你,你去問問它吧。”

  4. 本地 DNS 收到頂級域名服務器的地址后,發起請求問“老二, 你能告訴我 www.server.com 的 IP 地址嗎?”

  5. 頂級域名服務器說:“我給你負責 www.server.com 區域的權威 DNS 服務器的地址,你去問它應該能問到”。

  6. 本地 DNS 於是轉向問權威 DNS 服務器:“老三,www.server.com對應的IP是啥呀?” server.com 的權威 DNS 服務器,它是域名解析結果的原出處。為啥叫權威呢?就是我的域名我做主。 

       7. 權威 DNS 服務器查詢后將對應的 IP 地址 X.X.X.X 告訴本地 DNS。

       8. 本地 DNS 再將 IP 地址返回客戶端,客戶端和目標建立連接 

14.APR協議是干什么的?工作在哪一層?

APR協議工作在網絡層,

在傳輸一個 IP 數據報的時候,確定了源 IP 地址和目標 IP 地址后,就會通過主機「路由表」確定 IP 數據包下一 跳。然而,網絡層的下一層是數據鏈路層,所以我們還要知道「下一跳」的 MAC 地址。

由於主機的路由表中可以找到下一跳的 IP 地址,所以可以通過 ARP 協議,求得下一跳的 MAC 地址。 

簡單地說,ARP 是借助 ARP 請求與 ARP 響應兩種類型的包確定 MAC 地址的。 

主機會通過廣播發送 ARP 請求,這個包中包含了想要知道的 MAC 地址的主機 IP 地址。 當同個鏈路中的所有設備收到 ARP 請求時,會去拆開 ARP 請求包里的內容,如果 ARP 請求包中的目標 IP

地址與自己的 IP 地址一致,那么這個設備就將自己的 MAC 地址塞入 ARP 響應包返回給主機 

15.ICMP協議是什么?

ICMP 主要的功能包括:確認 IP 包是否成功送達目標地址、報告發送過程中 IP 包被廢棄的原因和改善網絡設置 等。 

ICMP 報文是封裝在 IP 包里面,它工作在網絡層,是 IP 協議的助手 

各個類型的含義 https://blog.csdn.net/zhenyi2000/article/details/79795095

 

 以上 大部分來自 小林coding 圖解網絡 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM