這里寫目錄標題
- IP的基本認識
- 網絡層與數據鏈路層有什么關系
- IP地址基礎知識
- IP 地址的分類
- 什么是A、B、C類地址
- 廣播地址用來做什么
- 什么是D、E類廣播
- 多播地址用于什么
- IP分類的優點
- IP分類的缺點
- 無分類地址CIDR
- 如何劃分網絡號和主機號
- 怎么進性子網劃分
- 公有 IP 地址與私有 IP 地址
- 公有 IP 地址由誰管理呢
- IP 地址與路由控制
- 環回地址是不會流向網絡
- IPv6基本認識
- IPv6的亮點
- IPv6 地址的標識方法
- IPv6 地址的結構
- IP協議相關技術
- DNS相關
- 域名解析的工作流程
- ping的工作原理
- 什么是ping
- Ping 的工作原理
- 斷網了,能ping通127.0.0.1嗎
- 127.0.0.1、localhost和0.0.0.0的區別
- 常見面試題
- 什么是IP地址?
- IPv4和IPv6有什么區別?
- 什么是子網掩碼?
- 解釋一下CIDR是什么?
- 什么是公共IP地址和私有IP地址?
- 什么是NAT(網絡地址轉換)?
- **什么是IP路由?
- 什么是默認網關?
- 什么是ARP(地址解析協議)?
- 什么是IPv4地址的分類?
IP (Internet Protocol) 是計算機網絡中用于標識和定位設備的一種協議。它是互聯網通信的基礎協議之一,用于在網絡中傳送數據包。
IP 協議的主要功能是提供邏輯上的地址和路由選擇。每個連接到互聯網的設備(如計算機、路由器等)都被分配一個唯一的 IP 地址,用于在網絡中唯一標識這個設備。IP 地址由一串數字表示,通常以IPv4或IPv6的格式呈現。
IPv4(Internet Protocol version 4)是目前廣泛使用的 IP 版本,由四個由點分隔的十進制數字組成,每個數字的取值范圍是0到255,例如 192.168.0.1。IPv4 地址空間有限,隨著互聯網的迅速發展,IPv6(Internet Protocol version 6)被提出并逐漸推廣使用。IPv6 地址采用128位的格式,由冒號分隔的十六進制數字和字母組成,例如 2001:0db8:85a3:0000:0000:8a2e:0370:7334。
IP 協議還負責將數據包從源設備傳輸到目標設備。在發送數據時,數據被分割成多個 IP 數據包,每個包包含目標地址、源地址和數據等信息。通過路由選擇算法,IP 協議根據目標地址選擇合適的路徑將數據包傳遞到目標設備。每個中間設備(如路由器)根據目標地址進行轉發,直到數據包到達目標設備。
總結來說,IP 是計算機網絡中的一種協議,用于標識和定位設備,以及提供數據包的傳輸和路由功能。通過 IP 地址,設備可以在網絡中唯一標識和尋址。通過 IP 協議,數據可以通過路由選擇算法傳輸到目標設備。
IP的基本認識
IP在TCP/IP參考模型處于第三層,也就是網絡層。網絡層的主要作用是:實現主機與主機之間的通信,也叫點對點(end to end)通信。
網絡層與數據鏈路層有什么關系
IP 的作用是主機之間通信用的,而 MAC 的作用則是實現「直連」的兩個設備之間通信,而 IP 則負責在「沒有直連」的兩個網絡之間進行通信傳輸。
網絡層和數據鏈路層是計算機網絡中的兩個關鍵層次,它們在網絡通信中有不同的職責和功能。
-
數據鏈路層:
- 數據鏈路層位于OSI模型或TCP/IP模型中的第二層,負責將數據包轉換為比特流傳輸,并在物理介質上進行傳輸。它處理的是相鄰節點之間的通信,主要關注點是如何在物理鏈路上可靠地傳輸數據幀。
- 數據鏈路層提供了幀的傳輸、幀同步、流量控制、錯誤檢測和糾正等功能。它通過物理地址(如MAC地址)來識別和尋址網絡接口。
- 數據鏈路層的協議包括以太網(Ethernet)、Wi-Fi、PPP(Point-to-Point Protocol)等。
-
網絡層:
- 網絡層位于OSI模型或TCP/IP模型中的第三層,負責實現節點之間的邏輯通信和數據路由。它處理的是不同網絡之間的數據傳輸,主要關注點是如何將數據從源節點傳輸到目標節點。
- 網絡層提供了數據包的分組、轉發、路由選擇、地址分配和擁塞控制等功能。它通過網絡地址(如IP地址)來識別和尋址主機。
- 網絡層的協議包括IP(Internet Protocol)、ICMP(Internet Control Message Protocol)等。
關系:
數據鏈路層和網絡層在計算機網絡中是緊密相關的,它們協同工作以實現端到端的數據傳輸。數據鏈路層負責將數據幀從一個節點傳輸到下一個節點,而網絡層負責將數據包從源節點傳輸到目標節點。網絡層依賴于數據鏈路層提供的可靠傳輸服務,而數據鏈路層依賴于網絡層提供的路徑選擇和地址尋址服務。
具體而言,網絡層在傳輸數據時將數據分為多個數據包,并在每個數據包中添加源和目標的網絡地址。然后,數據鏈路層將每個數據包封裝為幀,并在物理鏈路上進行傳輸。在目標節點接收到幀后,數據鏈路層會將幀拆封,并將數據包傳遞給網絡層。網絡層根據目標地址對數據包進行路由選擇,并將數據包傳遞給上層的傳輸層或應用層。
因此,數據鏈路層和網絡層是協同工作的,它們共同實現了數據在計算機網絡中的傳輸和路由。網絡層依賴于數據鏈路層來提供物理鏈路上的可靠傳輸,而數據鏈路層依賴于網絡層來確定數據的目標地址和路由路徑。
IP地址基礎知識
IP 地址(IPv4 地址)由 32
位正整數來表示,IP 地址在計算機是以二進制的方式處理的。而人類為了方便記憶采用了點分十進制的標記方式,也就是將 32 位 IP 地址以每 8 位為組,共分為 4
組,每組以「.
」隔開,再將每組轉換成十進制。
IP 地址的分類
IP 地址分類成了 5 種類型,分別是 A 類、B 類、C 類、D 類、E 類。
什么是A、B、C類地址
其中對于 A、B、C 類主要分為兩個部分,分別是網絡號和主機號。
- 主機號全為1指定某個網路下的所有主機,用于廣播
- 主機號全為0指定某個網絡
廣播地址用來做什么
廣播地址用于在同一個鏈路中相互連接的主機之間發送數據包
廣播地址可以分為本地廣播和直接廣播兩種。
- 在本網絡內廣播的叫做本地廣播。例如網絡地址為 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 的主機都能收到這個包(由于直接廣播有一定的安全問題,多數情況下會在路由器上設置為不轉發。) 。
什么是D、E類廣播
而 D 類和 E 類地址是沒有主機號的,所以不可用于主機 IP,D 類常被用于多播,E 類是預留的分類,暫時未使用。
多播地址用于什么
多播用于將包發送給特定組內的所有主機。
IP分類的優點
簡單明了、選路(基于網絡地址)簡單
計算機網絡中,IP分類(也稱為IP地址分類)是一種將IP地址劃分為不同的類別,以便更有效地管理和分配IP地址。IP分類的主要優點包括:
-
簡單易于理解: IP分類將IP地址劃分為幾個不同的類別,每個類別有其固定的網絡和主機部分,使得網絡管理員和用戶能夠更容易地理解和識別網絡結構。
-
地址分配: IP分類允許將IP地址劃分為多個類別,每個類別可以用于不同規模和用途的網絡。這使得網絡管理員能夠更好地分配IP地址,并根據需求進行靈活的地址規劃。
-
路由表管理: IP分類使路由器能夠更有效地管理路由表。每個IP地址類別都有固定的網絡前綴,這樣路由器可以更快速地匹配目標地址并選擇正確的路由。
-
多子網支持: IP分類為多子網的創建提供了基礎。不同的子網可以在同一網絡內部運行,這有助于實現更好的資源分配和更精細的網絡管理。
-
網絡性能: 由于每個IP地址類別都有特定的網絡前綴,路由器可以更快地查找目標子網,并進行更高效的數據包轉發,從而提高網絡性能。
IP分類的缺點
然而,IP分類也存在一些缺點,導致它逐漸被CIDR(無類別域間路由,Classless Inter-Domain Routing)取代:
-
地址浪費: IP分類中的每個類別都有固定的網絡前綴長度,導致在某些情況下可能會浪費大量IP地址。這使得IP地址耗盡成為一個問題。
-
地址空間不均衡: 每個IP地址類別的地址空間分配是固定的,這可能導致某些類別的地址空間過剩,而其他類別則可能不足。
-
難以適應變化: IP分類不夠靈活,難以適應網絡拓撲變化和不同規模的網絡需求。CIDR更加靈活,能夠更好地應對不斷變化的網絡環境。
-
路由表大小: IP分類導致路由表大小不可控,特別是在互聯網規模的網絡中,可能會引發路由表爆炸問題,增加路由器的負擔。
綜上所述,雖然IP分類在早期的互聯網中發揮了重要作用,但隨著網絡的增長和發展,CIDR取代了傳統的IP分類,提供了更靈活和高效的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 地址:網絡地址+主機地址
- 做子網劃分后的 ip 地址:網絡地址+(子網網絡地址+子網主機地址)
公有 IP 地址與私有 IP 地址
在 A、B、C 分類地址,實際上有分公有 IP 地址和私有 IP 地址。
公有 IP 地址是有個組織統一分配的,假設你要開一個博客網站,那么你就需要去申請購買一個公有 IP,這樣全世界的人才能訪問。并且公有 IP 地址基本上要在整個互聯網范圍內保持唯一。
公有 IP 地址由誰管理呢
私有 IP 地址通常是內部的 IT 人員管理,公有 IP 地址是由 ICANN
組織管理,中文叫「互聯網名稱與數字地址分配機構」。IANA 是 ICANN 的其中一個機構,它負責分配互聯網 IP 地址,是按州的方式層層分配。
- ARIN 北美地區
- LACNIC 拉丁美洲和一些加勒比群島
- RIPE NCC 歐洲、中東和中亞
- AfriNIC 非洲地區
- APNIC 亞太地區
其中,在中國是由 CNNIC 的機構進行管理,它是中國國內唯一指定的全局 IP 地址管理的組織。
IP 地址與路由控制
IP地址的網絡地址這一部分是用于進行路由控制。路由控制表中記錄著網絡地址與下一步應該發送至路由器的地址。在主機和路由器上都會有各自的路由器控制表。在發送 IP 包時,首先要確定 IP 包首部中的目標地址,再從路由控制表中找到與該地址具有相同網絡地址的記錄,根據該記錄將 IP 包轉發給相應的下一個路由器。如果路由控制表中存在多條相同網絡地址的記錄,就選擇相同位數最多的網絡地址,也就是最長匹配。
環回地址是不會流向網絡
環回地址是在同一臺計算機上的程序之間進行網絡通信時所使用的一個默認地址。計算機使用一個特殊的 IP 地址 127.0.0.1 作為環回地址。與該地址具有相同意義的是一個叫做 localhost
的主機名。使用這個 IP 或主機名時,數據包不會流向網絡。
IPv6基本認識
IPv4 的地址是 32 位的,大約可以提供 42 億個地址,但是早在 2011 年 IPv4 地址就已經被分配完了。但是 IPv6 的地址是 128
位的,這可分配的地址數量是大的驚人,說個段子 **IPv6 可以保證地球上的每粒沙子都能被分配到一個 IP 地址。**但 IPv6 除了有更多的地址之外,還有更好的安全性和擴展性,說簡單點就是 IPv6 相比于 IPv4 能帶來更好的網絡體驗。但是因為 IPv4 和 IPv6 不能相互兼容,所以不但要我們電腦、手機之類的設備支持,還需要網絡運營商對現有的設備進行升級,所以這可能是 IPv6 普及率比較慢的一個原因。
IPv6的亮點
- IPv6 可自動配置,即使沒有 DHCP 服務器也可以實現自動分配IP地址,真是便捷到即插即用啊。
- IPv6 包頭包首部長度采用固定的值
40
字節,去掉了包頭校驗和,簡化了首部結構,減輕了路由器負荷,大大提高了傳輸的性能。 - IPv6 有應對偽造 IP 地址的網絡安全功能以及防止線路竊聽的功能,大大提升了安全性。
IPv6 地址的標識方法
IPv4 地址長度共 32 位,是以每 8 位作為一組,并用點分十進制的表示方式。
IPv6 地址長度是 128 位,是以每 16 位作為一組,每組用冒號 「:」 隔開。
IPv6 地址的結構
IPv6 的地址主要有以下類型地址:
- 單播地址,用于一對一的通信
- 組播地址,用于一對多的通信
- 任播地址,用于通信最近的節點,最近的節點是由路由協議決定
- 沒有廣播地址
IP協議相關技術
- DNS 域名解析
- ARP 與 RARP 協議
- DHCP 動態獲取 IP 地址
- NAT 網絡地址轉換
- ICMP 互聯網控制報文協議
- IGMP 因特網組管理協議
DNS相關
DNS 可以將域名網址自動轉換為具體的 IP 地址,DNS 中的域名都是用句點來分隔的,比如 www.server.com
,這里的句點代表了不同層次之間的界限。在域名中,越靠右的位置表示其層級越高。
域名的層級關系類似一個樹狀結構:
- 根 DNS 服務器
- 頂級域 DNS 服務器(com)
- 權威 DNS 服務器(server.com)
域名解析的工作流程
瀏覽器首先看一下自己的緩存里有沒有,如果沒有就向操作系統的緩存要,還沒有就檢查本機域名解析文件 hosts
,如果還是沒有,就會 DNS 服務器進行查詢,查詢的過程如下:
- 客戶端首先會發出一個 DNS 請求,問 www.server.com 的 IP 是啥,并發給本地 DNS 服務器(也就是客戶端的 TCP/IP 設置中填寫的 DNS 服務器地址)。
- 本地域名服務器收到客戶端的請求后,如果緩存里的表格能找到 www.server.com,則它直接返回 IP 地址。如果沒有,本地 DNS 會去問它的根域名服務器:“老大, 能告訴我 www.server.com 的 IP 地址嗎?” 根域名服務器是最高層次的,它不直接用于域名解析,但能指明一條道路。
- 根 DNS 收到來自本地 DNS 的請求后,發現后置是 .com,說:“www.server.com 這個域名歸 .com 區域管理”,我給你 .com 頂級域名服務器地址給你,你去問問它吧。”
- 本地 DNS 收到頂級域名服務器的地址后,發起請求問“老二, 你能告訴我 www.server.com 的 IP 地址嗎?”
- 頂級域名服務器說:“我給你負責 www.server.com 區域的權威 DNS 服務器的地址,你去問它應該能問到”。
- 本地 DNS 于是轉向問權威 DNS 服務器:“老三,www.server.com對應的IP是啥呀?” server.com 的權威 DNS 服務器,它是域名解析結果的原出處。為啥叫權威呢?就是我的域名我做主。
- 權威 DNS 服務器查詢后將對應的 IP 地址 X.X.X.X 告訴本地 DNS。
- 本地 DNS 再將 IP 地址返回客戶端,客戶端和目標建立連接。
ping的工作原理
什么是ping
ping 是應用層命令,ping應用的底層,用的是網絡層的ICMP協議,ICMP是利用了IP協議進行消息的傳輸。。
Ping 是計算機網絡中常用的診斷工具,用于測試網絡連接和測量網絡延遲。它通過發送 ICMP(Internet Control Message Protocol)回顯請求報文,并接收對應的回顯應答報文來實現。
Ping 的工作原理
-
發送請求:
- 客戶端(發送方)向目標主機發送一個 ICMP 回顯請求報文(Echo Request)。
- ICMP 回顯請求報文中包含一個隨機的標識符和序列號,以及一些其他的控制字段。
-
接收回應:
- 目標主機(接收方)收到 ICMP 回顯請求報文后,會返回一個 ICMP 回顯應答報文(Echo Reply)。
- 回應報文中包含與請求報文相同的標識符和序列號,以及其他的控制字段。
-
計算往返時間(Round-Trip Time):
- 客戶端收到 ICMP 回顯應答報文后,會計算往返時間(RTT),即從發送請求到接收回應的時間差。
- RTT 可以用來測量網絡連接的延遲,即從客戶端到目標主機的往返時間。
-
重復發送和統計信息:
- Ping 工具通常會重復發送一定數量的 ICMP 回顯請求,并對每個請求的往返時間進行統計,如最小值、最大值和平均值等。
- 這樣可以更準確地評估網絡的狀況和性能。
需要注意的是,Ping 工具使用 ICMP 協議來進行測試,而 ICMP 報文并不屬于傳輸層的 TCP 或 UDP 協議。因此,Ping 只能測試基于 IP 協議的網絡連接,而不能測試特定端口或應用層協議的可用性。
另外,由于 ICMP 報文的優先級較低,有些網絡設備或防火墻可能會限制或過濾 ICMP 報文,導致 Ping 不可用或不準確。因此,在使用 Ping 進行網絡測試時,需要考慮網絡環境和設備的限制。
斷網了,能ping通127.0.0.1嗎
當網絡斷開時,通常情況下是無法進行網絡通信的,包括無法進行 Ping 測試。然而,在某些情況下,盡管網絡連接斷開,仍然可以通過本地回環地址(loopback address)127.0.0.1 進行 Ping 測試。
本地回環地址是網絡協議棧中的一部分,專門用于在本地主機上進行測試和通信。它指向本地主機自身,通過回環接口(loopback interface)進行通信,而不經過物理網絡接口。
因此,即使網絡斷開,本地主機仍然可以通過發送 ICMP 回顯請求到 127.0.0.1,然后接收回顯應答來進行 Ping 測試。這是因為 Ping 測試在本地主機上進行,不需要經過網絡接口。
需要注意的是,盡管可以 Ping 通 127.0.0.1,但這并不意味著網絡連接正常。Ping 通 127.0.0.1 只是表示本地主機的網絡協議棧正常工作,而不涉及物理網絡連接。如果無法 Ping 通其他 IP 地址,可能是由于物理網絡連接故障、路由器配置問題或其他網絡故障引起的。在這種情況下,需要進一步檢查和排除網絡故障。
127.0.0.1、localhost和0.0.0.0的區別
127.0.0.1、localhost 和 0.0.0.0 都是與本地主機相關的 IP 地址,它們有一些區別和不同的使用場景。
-
127.0.0.1:
- 127.0.0.1 是本地回環地址(loopback address),指向本地主機自身。它是 IPv4 的回環地址之一。
- 當你在本地主機上訪問 127.0.0.1 時,實際上是通過回環接口在本地主機內部進行通信,而不經過物理網絡接口。
- 它常被用于測試和調試本地網絡服務或應用程序,例如通過訪問本地的 Web 服務器進行測試。
- 127.0.0.1 是一個固定的地址,對應于本地主機的回環接口。
-
localhost:
- localhost 是一個主機名,在大多數系統中都映射到 127.0.0.1,用于表示本地主機。
- 當你在本地主機上使用 localhost 訪問時,實際上是在訪問 127.0.0.1。
- localhost 可以用于在本地主機上進行網絡測試和通信。
-
0.0.0.0:
- 0.0.0.0 是一個特殊的 IP 地址,通常用作通配符地址(wildcard address)或未指定地址(unspecified address)。
- 當一個服務監聽在 0.0.0.0 上時,表示該服務會監聽在所有可用的網絡接口上,即同時監聽本地主機的所有 IP 地址。
- 0.0.0.0 通常用于服務器配置中,表示該服務會接受來自任何網絡接口的連接。
總結來說:
- 127.0.0.1 是本地主機的回環地址,用于本地主機內部的測試和通信。
- localhost 是一個主機名,通常映射到 127.0.0.1,用于表示本地主機。
- 0.0.0.0 是一個特殊的 IP 地址,用作通配符地址,表示服務會監聽所有可用的網絡接口。
常見面試題
當涉及計算機網絡中的IP(Internet Protocol)時,面試中可能會涉及以下一些常見問題:
什么是IP地址?
- IP地址是一種用于在計算機網絡中標識和定位設備的數字標識。它分為IPv4和IPv6兩個版本,用于唯一地標識網絡上的設備。
IPv4和IPv6有什么區別?
- IPv4使用32位地址,而IPv6使用128位地址,提供了更大的地址空間。IPv6設計旨在解決IPv4中地址耗盡的問題。
什么是子網掩碼?
- 子網掩碼是一個32位的二進制數字,用于指示IP地址中哪些部分是網絡部分,哪些部分是主機部分。它與IP地址結合使用來創建子網。
解釋一下CIDR是什么?
- CIDR(無類別域間路由)是一種更靈活的IP地址分配方法,允許將IP地址分成更小的子網,而不是受限于傳統的IP分類。它使用帶有前綴長度的IP地址表示,例如:192.168.1.0/24。
什么是公共IP地址和私有IP地址?
- 公共IP地址是在全球范圍內唯一標識設備的IP地址,用于在互聯網上通信。私有IP地址是在局域網內使用的地址,不能直接從公共互聯網訪問。
什么是NAT(網絡地址轉換)?
- NAT是一種技術,允許在私有網絡和公共網絡之間轉換IP地址。它允許多個設備共享單個公共IP地址,通過維護一個地址映射表來實現。
**什么是IP路由?
- IP路由是將數據包從源主機傳輸到目標主機的過程。路由器使用路由表來確定數據包的下一個跳,以便將其沿正確的路徑轉發。
什么是默認網關?
- 默認網關是在局域網中連接到其他網絡(通常是互聯網)的設備。它是數據包離開局域網進入其他網絡的出口點。
什么是ARP(地址解析協議)?
- ARP是用于將IP地址解析為物理MAC地址的協議,以便在局域網上發送數據包。
什么是IPv4地址的分類?
- IPv4地址根據第一個字節(8位)的范圍分為A、B、C、D和E類。每個類別有不同的網絡和主機部分分配。