1. 程式人生 > >網路程式設計——IP協議

網路程式設計——IP協議

文章目錄


IP協議在網路通訊模型中處於網路層,用於在“連線到網路中的所有主機中識別出進行通訊的目標地址”。因此,在 TCP/IP 通訊中所有主機或路由器必須設定自己的 IP 地址。

IP地址

網路標識與主機標識

IP地址由網路標識主機標識兩部分組成。
IP地址分為A、B、C、D四類,是根據 IP 地址中從第 1 位到第 4 位的位元列對其網路標識和主機標識進行區分,如下圖所示。
A類地址是以0開頭的地址,0-7位是它的網路標識,8-32位是它的主機標識
B類地址是以10開頭的地址,0-14位是它的網路標識,15-32位是它的主機標識
C類地址是以110開頭的地址,0-21位是它的網路標識,22-32位是它的主機標識
D類地址是以1110開頭的地址。後面全部是它的網路標識,沒有主機號,常用於多播
在這裡插入圖片描述


由圖中我們可以看出這幾類IP地址的範圍,分別為:
A:首位 0,00000000-01111111 0.0.0.0-127.255.255
B:首位 10,10000000-10111111 128.0.0.0-191.255.255.255
C:首位 110,11000000-11011111 192.0.0.0-223.255.255.255
D:首位1110,11100000-11101111 224.0.0.0-239.255.255.255
廣播地址
掛廣播地址用於在同一鏈路中相互連線的主機之間傳送資料包,將IP地址主機標識部分全部設定為1 就成了廣播地址。
廣播分為本地廣播和直接廣播兩種。在本網路內的廣播叫做本地廣播;在不同網路之間的廣播叫做直接廣播。

子網掩碼

子網掩碼實際上也是一個32位的二進位制數字,它對應的IP地址網路標識部分的位全為1,對應的主機標識部分的位全為0。
這樣IP地址將不再受限於自己的類別,可以用子網掩碼自由的定義自己的網路標識長度
子網掩碼的優點

  • 將IP細分為比A、B、C、D類更細的粒度。
  • 將原網路分為多個物理網路。
    子網掩碼的兩種表示方式
  • 第一種方式
    將 IP 地址與子網掩碼的地址分別用兩行來表示。以 172.20.100.52 的前 26 位是網路地址的情況為例,如下:

IP 地址: 172. 20. 100. 52
子網掩碼: 255. 255. 255. 192

網路地址 172. 20. 100. 0
子網掩碼 255. 255. 255. 192

廣播地址 172. 20. 100. 63
子網掩碼 255. 255. 255. 192

  • 第二種方式
    在每個 IP 地址後面追加網路地址的位數用 “/ ” 隔開,如下:

IP 地址 172. 20. 100. 52 / 26
網路地址 172. 20. 100. 0 / 26
廣播地址 172. 20. 100. 63 / 26

另外,在第二種方式下記述網路地址時可以省略後面的 “0” 。
例如:172.20.0.0/26 跟 172.20/26 其實是一個意思。

路由控制

IP 地址的網路地址部分用於進行路由控制。
路由控制表中記錄著網路地址與下一步應該傳送至路由器的地址。
在傳送 IP 包時,首先要確定 IP 包首部中的目標地址,再從路由控制表中找到與該地址具有相同網路地址的記錄,根據該記錄將 IP 包轉發給相應的下一個路由器。如果路由控制表中存在多條相同網路地址的記錄,就選擇一個最為吻合的網路地址。

在這裡插入圖片描述

在上圖中就展示了一次資料傳送過程中的路由控制
0.0.0.0/0 是預設的路由選擇,當路由表中沒有當前的網路地址,就轉發至預設的路由器。

  • 在上圖中首先IP包被髮送給了預設的路由器1,。
  • 路由器1 的路由表裡有目標地址的而網路標識,所以只要將IP包傳送給10.1.0.2的路由器(路由器2)即可。
  • 路由器2 的路由表裡也有記錄,通過記錄的值得到應該將IP包傳送給10.1.2.1 (也就是主機B)
    至此,IP包正確到達目標地址。

參考資料
http://47.98.109.76:4000/wang-luo-bian-cheng/wang-luo-xie-yi-zhi-tcp-ip-zhi-er.html
https://www.cnblogs.com/red-code/p/7132023.html