IP 位址的組成
IP 組成是 32 bits 的數值,也就是由 32 個 0 與 1 組成的一連串數字。在把 32 bits 的 IP 分成四小段,

每段含有 8 個 bits ,將 8 個 bits 計算成為十進位,並且每一段中間以小數點隔開,就成了大家所熟悉的 IP, 例如:
00000000.00000000.00000000.00000000 => 0.0.0.0 11111111.11111111.11111111.11111111 => 255.255.255.255 11000000.10101000.00101010.00000001 => 192.168.42.1 IP位址可分為 Net_ID (網路編號) 與 Host_ID (主機編號) 兩部份。 我們以 192.168.0.0 ~ 192.168.0.255 這個 Class C的網域說明,前面三組數字 (192.168.0) 就是網路編號,最後面一組數字則稱為主機編號。 至於同一個網域的定義是在同一個網段內,主機的 IP 具有相同的網路編號,並且具有唯一的主機編號。 上面例子當中的 192.168.0.0、192.168.0.1、192.168.0.2、....、192.168.0.255 (共 256 個) 這些 IP 都是同一個網域裡, 並且同一個網域內,不能具有相同的主機編號,否則會發生 IP 衝突,會造成兩部主機都沒有辦法使用網路。 主機號碼的限制:主機號碼在二進位的表示法當中,不可同時為 0 也不可同時為 1 。 例如在上面的例子當中,192.168.0.0 (主機號碼全部為 0) 以及 192.168.0.255 (主機號碼全部為 1) 不可用來作為網段內主機的 IP 設定,
也就是說,這個網段內可用來設定主機的 IP 是從 192.168.0.1 到 192.168.0.254。
IP位址分五種等級
網際網路名稱與號碼分配組織 (ICANN) 負責將 IP 位址分配給實際使用的 ISP 或企業用戶,
依所分配的組織規模不同將整個 IP 網段分為五種等級,表示如下:

網路等級

IP分佈範圍

可用網路組

可連結主機數目

A

0.0.0.0~127.0.0.0

126

16,777,214  (224-2)

B

128.0.0.0~191.255.0.0

16383

65,534  (216-2)

C

192.0.0.0~223.255.255.0

2,097,152

254

D

224.0.0.0~239.255.255.255

 

 

E

240.0.0.0~255.255.255.255

 

 

Class A :  0.xx.xx.xx ~ 127.xx.xx.xx            |0xxxxxxx|.xxxxxxxx.xxxxxxxx.xxxxxxxx| ( 二進位表示 )        
                                                  網路編號          主機編號
Class B : 128.xx.xx.xx ~ 191.xx.xx.xx           |10xxxxxx.xxxxxxxx|.xxxxxxxx.xxxxxxxx| ( 二進位表示 )
                                      網路編號          主機編號
Class C : 192.xx.xx.xx ~ 223.xx.xx.xx           |110xxxxx.xxxxxxxx.xxxxxxxx|.xxxxxxxx| ( 二進位表示 )
                                     網路編號          主機編號
Class D : 224.xx.xx.xx ~ 239.xx.xx.xx           1110xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ( 二進位表示 )
Class E : 240.xx.xx.xx ~ 255.xx.xx.xx           1111xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ( 二進位表示 )

能夠在一般系統上設定的,只有 Class A、B、C 三種的 IP。 
此外,IP 是由 ICANN 統一規劃,可區分為兩種類別,
Public IP : 這種 IP 才能連上 Internet ;
Private IP : 不能直接連上 Internet,主要用於區域網路內的連線規劃。
其中 A、B、C 三個 Class 當中又各保留一段作為 Private IP 網段,分別是: Class A:10.0.0.0 - 10.255.255.255 Class B:172.16.0.0 - 172.31.255.255 Class C:192.168.0.0 - 192.168.255.255 由於這三段 Class 的 IP 是預留使用的,所以不能直接作為連接 Internet 之用,適合一些尚未具有 Public IP 的企業內部用來規劃其網路設定。
子網遮罩(Netmask)與子網路 
在前面提到的 A、B、C 三個層級的網域是由 IP 協定預設分配的,在同一個 A Class 的網域內,主機的數量可以達到256 X 256 X 256 - 2 ( HostID 全為 0 或 1 ) = 16777214。
因為 IP 位址採取階層式架構,所以能夠將大型網路分割成數個子網路,就比較容易管理。
而 IP 位址是由網路編號和主機編號所組成的,要分割成子網路時,必須將主機編號的位元,再分割為子網路編號和主機編號。
例如:Class B 網路的位址為:172.16.0.0,我們可將主機編號的 16 個位元分成子網路編號 8 位元和主機號 8 位元,如此一來,一號子網路中一號主機的 IP 位址就變為:
10101100.00010000.000001.00000001 
|----網路編號----|子網路|主機編號 | 
   172.    16.      1.      1   (將上述 IP 依照切割方式轉換成十進位)
而子網遮罩 (Netmask) 的用途就是要切分子網路,子網遮罩用來代表 IP 位址所指向的網路編號。
我們用上面的例子來說明,IP 位址可以分為網路編號和主機編號,既然網路編號是不可變的,那子網遮罩編號的部分假設全部為 1 ,而主機編號編號是可變的,
全部假設為 0, 這時Netmask 可表示為: 255 . 255 . 255 . 0 
 
依照同樣的作法, A、B、C Class 的 Netmask 可表示為:
Class A : 255. 0. 0. 0       
Class B : 255.255. 0. 0     
Class C : 255.255.255. 0 
當我們要把 Class C 進行子網路 (Subnet) 的切分時,以 192.168.0.0 ~192.168.0.255 分為兩個子網路這個情況為例,我們可以將主機編號當作網路編號,
假設網路編號使用了 25 bits 時,最後我們可以得到:
第一個子網路
Network:  192.168.0.0
Broadcast: 192.168.0.127
Netmask:    255.255.255.128
第二個子網路
Network:     192.168.0.128
Broadcast:  192.168.0.255
Netmask:    255.255.255.128 

IP 封包 
封包是什麼?其實封包很像我們在郵寄的信件,一封信件主要有兩個部分,分別是"信封"和"信件內容",而信封上面會有收信人的住址與姓名和寄信人住址。
相同地,網路的封包主要也是分為兩部分,一個是表頭 ( Header ) 的部分,另一個則是內容 ( messages ) 的部分,一個封包要傳送到何處,
都是藉由 Header 的訊息來進行分傳送的,所以 Header 至少會有來源與目標 IP 、來源與目標 Port。
IP 的表頭資料中最重要的是:Protocol、來源位址與目標位址。有了 IP 表頭的來源與目標 IP,就能瞭解到這個 IP 將如何被傳送到目的端。詳情介紹如下:
Protocol:由於網路上面太多的封包協定, 所以 IP 得在表頭上面告知接受端,這個 IP 內含有的資料是什麼協定。 一般常見的網路協定如下所示: 
IP 內的號碼 協定名稱
1 ICMP
2 IGMP
3 GGP
4 IP
6 TCP
8 EGP
17 UDP
Source Address (SA):來源端的 IP 位址,長度為 32 bit。

Destination Address (DA):目的端的 IP 位址,長度為 32 bit。 

IP 封包的 Header 資料如下(其中每一行皆佔用 32 bits): 


路由器 
兩個不同的網域是無法透過廣播來資料的傳遞,此時便需要 IP 的路徑選擇 (routing) 功能,才能決定要透過哪個網路來傳送封包,
路由器乃是決定最佳路徑的方式,如果沒有路由器的話,就無法在不同網域之間傳送資料了。
例如,192.168.0.0 與 192.168.1.0 是不同網域,所以主機 A 與主機 B 是不能直接互通資料,必須有路由器找尋需要經過哪些網路才能到達 B 網域的主機 B。
1. 查詢 IP 封包的目標 IP 位址:
   當主機 A 有 IP 封包需要傳送時,主機會查閱 IP 封包表頭的目標 IP 位址; 
2. 查詢主機所在的網域:
   當主機 A 發現目標 IP 與本機 IP 的 Net_ID 相同時 (同一網域),則主機 A 會直接透過區域網路功能,將資料直接傳送給目的地主機; 
3. 送出封包至路由器:
   在本例中,主機 A 與主機 B 並非同一網域,因此主機 A 直接將該 IP 封包送到路由器上,路由器接收到這個封包後,會分析路由資料表當中與目的地網路之間的距離、
   下一個負責中繼的路由器、與路由器互相連接的來源端 Port,然後繼續傳輸到正確的目標主機 B。如下圖所示: