ip 地址相當于收發快遞時的收貨地址和發貨地址
IPV4 的地址:192.168.0.1
11000000.10101000.00000000.00000001
windows 使用 >ipconfig;linux 使用 ifconfig
可以看到 IPV4 地址 / inet 旁邊的就是 IP 地址
- IP 地址的分類
IP 地址有 32 位,分為 A B D E 四類
- A 類:0 7 位網絡号 24 位主機号
- B 類:10 14 位網絡号 16 位主機号
- C 類:110 21 位網絡号 8 位主機号
- D 類:1110 28 位組播地址
- E 類:1111 28 位以後用
網絡号:相當于停車場主機号:相當于停車位
1 個停車場可以有多個停車位;A 類相當于大型停車場少,但是大型停車場内停車位多;C 類相當于小型停車場多,但是小型停車場内停車位少
以上的分類機制已經被取代,因為不同類别的網絡号和主機号數量懸殊取而代之,不再使用分類 ABCD 法,使用以下分類機制:CIDR 無類别域間路由
隻保留網絡号和主機号,用 “/” 告訴用戶多少位是網絡号,其餘是主機号172.20.61.69/20 網絡号:20 位;主機号:12 位能夠放 2*12 次方 = 4096 台機子
二、讓 IP 夠用就算把所有 IP 分出去:2*32 次方 = 4294967296 42 億也不夠用,這是基于每人都處在一層的情況下
【取而代之,将網絡分為兩層,如下圖】
2 個人組成小網絡(5 6)公用一個 IP,但是 5 6 内部的 IP 不一樣 ,5 6 構成的網絡叫做:局域網(内網)5 6 的 IP 叫做:私有 IP(内網 IP)
1 2 構成的網絡叫做:廣域網,1 2 的 IP 叫做:公有 IP(公網 IP)
在 ABC 類 IP 中,也有私有和公有兩部分
- A 類局域網部分 IP:10.0.0.0~10.255.255.255
- B 類局域網地址 IP:172.16.0.0~172.31.255.255
- C 類局域網地址 IP:192.168.0.0~192.168.255.255
上面隻考慮了一層局域網,其實局域網内還能再分成多層,局域網内再嵌套局域網。就像下面這樣,這樣能用的 IP 數量就更多了。
三、我自己的 IP 地址怎麼看ipconfig 裡面的 IPV4 地址 == 内網 IP百度搜索:我的 IP 地址 == 公網 IP
四、局域網内的私有 IP 如何訪問局域網外的公有 IP?需要進行 IP 轉換:NAT:全稱NetworkAddressTranslation,網絡地址轉換。基本上家用路由器都支持這功能。
發送 / 接收的數據包相當于 收發快遞的快遞包
數據包的内容:
發送數據包的過程:
IP 轉換過程:
- 1、A 發送 C:在 a 準備發送數據包時:我的電腦會構造 IP 數據包,發送端 IP 地址是 192.168.30.5, 接收端 IP 地址是 192.168.30.5;電腦把數據包發到 NAT 路由器,路由器把源 IP 地址 192.168.30.5 改成:20.20.20.20,這個過程叫做 SNAT(Source Network Address Translation,源地址轉換)
并且會在 NAT 路由器裡,留下192.168.30.5-》20.20.20.20 的映射記錄,下次就會直接在記錄裡讀取了。最後就去找接收端 IP 了
- 2、C 響應 A:接收端填:20.20.20.20,發送端填:30.30.30.30,在經過 NAT 時,會找到之前192.168.30.5-》20.20.20.20 的映射記錄,然後把目的 IP 地址修改為内網 IP192.168.30.5,,這個過程叫做DNAT(Destination Network Address Translation,目的地址轉換)。
但是一個公網 IP 下,有多個私網 IP,響應時怎麼找映射哪個?
這個時候用到的是 NAPTNAPT(Network Address Port Transfer , 網絡地址端口轉換 )。
加入其他信息區分内網裡的各個網絡連接,就是端口
IP 數據包屬于【網絡層】,端口存在于【傳輸層】的 TCP 和 UDP 數據報文裡
那麼最後數據包的組成是:IP header TCP header / UDP header 數據
為什麼 PING 沒有帶端口信息,也能夠接收響應?
ICMP 協議,NAT 路由器做了特殊處理。ping 報文頭裡有個Identifier的信息,它其實指的是放出 ping 命令的進程 id。對 NAT 路由器來說,這個Identifier的作用就跟端口一樣。
當我們去抓包的時候,就會發現有兩個Identifier,一個後面帶個BE(Big Endian),另一個帶個LE(Little Endian)。
其實他們都是同一個數值,隻不過大小端不同,讀出來的值不一樣。就好像同樣的數字 345,反着讀就成了 543。這是為了兼容不同操作系統(比如 linux 和 Windows)下大小端不同的情況。
五、内網穿透家裡啟動了一個 http 服務,地址是 192.168.30.5:5000,公司裡的手機想訪問,卻訪問不了
外網機器如何訪問内網服務?
因為 NAT 的存在,我們隻能從内網主動發出連接,NAT 沒有記錄映射關系的話,也轉發不了數據。
為了解決這個問題,可以在公網加一台服務器 X,暴露一個訪問域名,讓内網服務主動連接服務器 X,NAT 也會有一個内網到服務器 X 的映射關系,然後所有人去訪問服務器 X,就可以了。
六、兩個局域網設備如何建立連接?
- 1.小明的 QQ 和小紅的 QQ 客戶端如何建立連接?
兩個 QQ 客戶端之間隔了一個聊天服務器,QQ 登錄時,主動向公網的聊天服務器建立連接,兩邊的 NAT 都有公網聊天服務器和私網的映射關系,
- 2.P2P 下載,沒有第三方服務器,怎麼進行通訊
P2P 下載 = 種子迅雷下載
下圖為NAT 打洞,我們現在常見的都是錐形 NAT
來源:入門小站
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!