IP 協議是互聯網的核心協議,工作在網絡層。它給網絡中的設備分配唯一的 IP 地址,把上層數據封裝成數據包,然后根據目的 IP 地址通過路由器等設備進行轉發,實現數據在不同網絡間的傳輸。它還能在必要時對數據包進行分片和重組,以適應不同網絡的 MTU 限制,為互聯網上的設備通信提供了基礎的尋址和數據傳輸功能。
IP 地址就像是網絡中每個主機的 “身份證”,具有標識主機身份和位置的作用。
ip由網絡號和主機號構成:
通過合理設置主機號和網絡號,就可以保證在相互連接的網絡中,每臺主機的 IP 地址都不相同。
那么問題來了,手動管理子網內的 IP,是一個相當麻煩的事情。
- 有一種技術叫做 DHCP,能夠自動的給子網內新增主機節點分配 IP 地址,避免了手動管理 IP 的不便。
- 一般的路由器都帶有 DHCP 功能。因此路由器也可以看做一個 DHCP 服務器。
ip報文:
?有類地址分類?:
它是ip最基礎的分類,把IP地址可以分為五類:A\B\C\D\E,不好的是它對每一個類區分以后會有不同的要求,而且數量上有限制。
針對這種效率不高的情況提出了新的劃分方案,稱為 CIDR (Classless Interdomain Routing):
- 引入一個額外的子網掩碼 (subnet mask) 來區分網絡號和主機號;
- 子網掩碼也是一個 32 位的正整數。通常用一串 "0" 來結尾;
- 將 IP 地址與子網掩碼進行 "按位與" 操作,得到的結果就是網絡號;
- 網絡號和主機號的劃分與這個 IP 地址是 A 類、B 類還是 C 類無關;
通過將 IP 地址與子網掩碼的反碼進行按位與運算,得到的結果就是主機號;通過讓 IP 地址和子網掩碼進行按位與運算,就能得到網絡號。
所以在這個子網范圍里面不存在網絡號主機和廣播主機,所以可以用的主機只有256-2=254個
主機號就是.0廣播號就是.255(也就是ip的首位和末位)
特殊的 IP 地址
- 將 IP 地址中的主機地址全部設為 0,就成為了網絡號,代表這個局域網;
- 將 IP 地址中的主機地址全部設為 1,就成為了廣播地址,用于給同一個鏈路中相互連接的所有主機發送數據包;
- 127.* 的 IP 地址用于本機環回 (loop back) 測試,通常是 127.0.0.1
CIDR 在一定程度上緩解了 IP 地址不夠用的問題 (提高了利用率,減少了浪費,但是 IP 地址的絕對上限并沒有增加),仍然不是很夠用。這時候有三種方式來解決:
- 動態分配 IP 地址:只給接入網絡的設備分配 IP 地址。因此同一個 MAC 地址的設備,每次接入互聯網中,得到的 IP 地址不一定是相同的;
- NAT 技術;
- IPv6:IPv6 并不是 IPv4 的簡單升級版。這是互不相干的兩個協議,彼此并不兼容;IPv6 用 16 字節 128 位來表示一個 IP 地址;但是目前 IPv6 還沒有普及;
私有 IP 地址和公網 IP 地址
如果一個組織內部組建局域網,IP 地址只用于局域網內的通信,而不直接連到 Internet 上,理論上 使用任意的 IP 地址都可以,但是 RFC 1918 規定了用于組建局域網的私有 IP 地址
- 10.*,前 8 位是網絡號,共 16,777,216 個地址
- 172.16. 到 172.31.,前 12 位是網絡號,共 1,048,576 個地址
- 192.168.*,前 16 位是網絡號,共 65,536 個地址
包含在這個范圍中的,都成為私有 IP,其余的則稱為全局 IP (或公網 IP);
也就是說,私有和共有都是有規定的:在某個范圍內是私有其余就是公有了!
在日常生活中其實都使用的公有IP,私有IP比較少見,例如云服務器就是私有!
NAT技術:
在我看來就是一個轉發技術:NAT 就像一個 “翻譯員”。家里或公司里很多設備用的是不能直接連外網的私有 IP 地址,沒法直接和外網通信。NAT 路由器就把這些設備的私有 IP 地址,轉換成能連外網的公網 IP 地址 。比如你家電腦想上網,它的私有 IP 地址別人不認識,NAT 路由器就把這個地址換成自己的公網 IP,再把上網請求發出去。等外網有回應了,NAT 路由器又能把回應里的公網 IP 換回你家電腦的私有 IP,這樣你家電腦就能正常上網了。而且,它還能讓好多設備共用一個公網 IP,就像很多人用一個 “身份證” 出門一樣,既省了公網 IP 的數量,又能把家里、公司里設備的真實 IP 藏起來,讓外面的人不容易找到,更安全 。
公有+私有=互聯網
網絡層進行了分片,那等目標主機收到以后在網絡層再進行組裝!
交換機是存在于數據鏈路層的!它的作用:劃分碰撞域,減少局域網碰撞!
Mac幀只在局域網內有效,一旦涉及轉發的時候就和mac幀無關了
- IP 地址描述的是路途總體的 起點 和 終點;
- MAC 地址描述的是路途上的每一個區間的起點和終點
在傳輸的過程中,會有情況是需要你知道MAC地址或者一定要知道IP地址,此時就會有一種協議進行交換。
ARP是拿IP換MAC;RARP是拿mac換ip
ICMP 協議
ICMP 協議是一個 網絡層協議
一個新搭建好的網絡,往往需要先進行一個簡單的測試,來驗證網絡是否暢通;但是 IP 協議并不提供可靠傳輸。如果丟包了,IP 協議并不能通知傳輸層是否丟包以及丟包的原因。
ICMP 功能
ICMP 正是提供這種功能的協議;ICMP 主要功能包括:
確認 IP 包是否成功到達目標地址。
- 通知在發送過程中 IP 包被丟棄的原因。
- ICMP 也是基于 IP 協議工作的。但是它并不是傳輸層的功能,因此人們仍然把它歸結為網絡層協議;
- ICMP 只能搭配 IPv4 使用。如果是 IPv6 的情況下,需要是用 ICMPv6;
結論就是:Icmp分為兩大類報文:一類是通知出錯原因 另一類是用于診斷原因