引言
從上一篇文章,我們知道,ARP協(xié)議的工作原理,那么本次就來學(xué)習(xí)IP層的另一個重要協(xié)議——IP協(xié)議。
IP協(xié)議
IP協(xié)議(Internet Protocol),又稱之為網(wǎng)際協(xié)議,IP協(xié)議處于IP層工作,它是整個TCP/IP協(xié)議棧的核心協(xié)議之一,上層協(xié)議都要依賴IP協(xié)議提供的服務(wù),IP協(xié)議負(fù)責(zé)將數(shù)據(jù)報從源主機發(fā)送到目標(biāo)主機,通過IP地址作為唯一識別碼,簡單來說,不同主機之間的IP地址是不一樣的,在發(fā)送數(shù)據(jù)報的過程中,IP協(xié)議還可能對數(shù)據(jù)報進(jìn)行分片處理,同時在接收數(shù)據(jù)報的時候還可能需要對分片的數(shù)據(jù)報進(jìn)行重裝等等。注意:分片僅在IPv4中實現(xiàn),而IPv6是沒有分片的。本系列教程若非特別說明,IP協(xié)議均為IPv4。
IP協(xié)議是一種無連接的不可靠數(shù)據(jù)報交付協(xié)議,協(xié)議本身不提供任何的錯誤檢查與恢復(fù)機制。
IP地址
在學(xué)習(xí)IP協(xié)議之前,先來明確一下IP地址的概念。
在TCP/IP設(shè)計之初,為了標(biāo)識互聯(lián)網(wǎng)中的每臺主機的身份,設(shè)計人員為每個接入網(wǎng)絡(luò)中的主機都分配一個IP地址(Internet Protocol Address),是一個32位的整數(shù)地址,只有合法的IP地址才能接入互聯(lián)網(wǎng)中并且與其他主機進(jìn)行通信,IP地址是軟件地址而非硬件地址,硬件MAC地址是存儲在網(wǎng)卡中的,應(yīng)用于本地網(wǎng)絡(luò)中尋找目標(biāo)主機。而IP地址能讓一個網(wǎng)絡(luò)中的主機能夠與另一個網(wǎng)絡(luò)中的主機進(jìn)行通信,因為MAC地址的多樣性是很難通過MAC地址直接通信的,因此只能通過IP協(xié)議屏蔽這些差異。由于全世界存在著各式各樣的網(wǎng)絡(luò),它們使用不同的硬件地址。要使這些異構(gòu)網(wǎng)絡(luò)能夠互相通信就必須進(jìn)行非常復(fù)雜的硬件地址轉(zhuǎn)換工作,因此幾乎是不可能的事。
連接到因特網(wǎng)的主機都擁有統(tǒng)一的 IP 地址,它們之間的通信就像連接在同一個網(wǎng)絡(luò)上那樣簡單方便,因為調(diào)用 ARP 來尋找某個路由器或主機的硬件地址都是由計算機軟件自動進(jìn)行的,對用戶來說是看不見這種調(diào)用過程的。
在學(xué)習(xí)IP地址之前,我們需要簡述一下主機與路由器連入網(wǎng)絡(luò)的通信的方法:一臺主機通常只有一條或多條鏈路連接到網(wǎng)絡(luò),即有一個或多個網(wǎng)卡;當(dāng)主機中想發(fā)送一個數(shù)據(jù)報時,它就在對應(yīng)的鏈路上發(fā)送,一個網(wǎng)卡對應(yīng)一個MAC地址與IP地址。
每個IP地址長度為32比特(4字節(jié)),因此總共有2^32個可能的IP地址,大約有40億個IP地址能被使用的。這些地址一般按所謂點分十進(jìn)制記法(dotted-decimal notation)書寫,即地址中的每個字節(jié)用它的十進(jìn)制形式書寫,各字節(jié)間以點分隔開。例如, IP地址為192.168.0.122,192是該地址第一個8比特的十進(jìn)制等價數(shù),168是該地址第二個8比特的十進(jìn)制等價數(shù),依次類推。
IP地址編址
我們把整個因特網(wǎng)看成為一個單一的、抽象的網(wǎng)絡(luò)。IP 地址就是給每個連接在因特網(wǎng)上的主機(或路由器)分配一個在全世界范圍是唯一的 32 位的標(biāo)識符。
IP 地址現(xiàn)在由因特網(wǎng)名字與號碼指派公司ICANN (Internet Corporation for Assigned Names and Numbers)進(jìn)行分配。
分類的 IP 地址 :這是最基本的編址方法,在 1981 年就通過了相應(yīng)的標(biāo)準(zhǔn)協(xié)議。
子網(wǎng)的劃分 :這是對最基本的編址方法的改進(jìn),其標(biāo)準(zhǔn)在 1985 年通過。
構(gòu)成超網(wǎng) :這是比較新的無分類編址方法。1993 年提出后很快就得到推廣應(yīng)用。
每一類地址都由兩個固定長度的字段組成,其中一個字段是網(wǎng)絡(luò)號 net-id,它標(biāo)志主機(或路由器)所連接到的網(wǎng)絡(luò),而另一個字段則是主機號 host-id,它標(biāo)志該主機(或路由器)。
IP地址::={<網(wǎng)絡(luò)號>,<主機號>}
A 類網(wǎng)絡(luò)地址的第一個字節(jié)的第一位必須為0 ,因此, A 類網(wǎng)絡(luò)地址第一個字節(jié)的取值范圍為0~127(注意:但0 和127 不是有效的A 類網(wǎng)絡(luò)地址號),A類地址總共有128個網(wǎng)絡(luò)號,其中3個網(wǎng)絡(luò)號用作特殊用途,因此可以在互聯(lián)網(wǎng)上使用的還有125個,而每一個網(wǎng)絡(luò)號后面的3字節(jié)主機號表示能用于A類網(wǎng)絡(luò)地址不同網(wǎng)絡(luò)號的的主機數(shù)量(多達(dá)2^24-2 = 16777214個),所以總的來說A類網(wǎng)絡(luò)支持的主機數(shù)量為125*16777214=2097151750個,大約占據(jù)了40億IP地址的半壁江山,這些IP地址通常被分配給世界上超大型的幾個室友,但是通常沒有任何一個機構(gòu)能使用那么大量的IP地址,所以A類地址的很多IP地址都會被白白浪費掉。
B 類網(wǎng)絡(luò)地址的第一個字節(jié)的第一位必須為1 ,且第二位必須為0,因此, B 類網(wǎng)絡(luò)地址第一個字節(jié)的取值范圍為128~191,前2字節(jié)剩余的14bit表示網(wǎng)絡(luò)號,多達(dá)16384個網(wǎng)絡(luò)號,其中16個網(wǎng)絡(luò)號被保留使用,因此可以分配給企業(yè)使用的網(wǎng)絡(luò)號有16368個,每一個網(wǎng)絡(luò)號中可以擁有2^16-2 =65534個主機,總的來說B類網(wǎng)絡(luò)支持的主機個數(shù)為16368*65534=1072660512,大約占據(jù)了所有IP地址的四分之一。
**C **類網(wǎng)絡(luò)地址的第一個字節(jié)的第一位必須為1,第二位必須為1,第三位必須為0,因此C類網(wǎng)絡(luò)第一個字節(jié)的取值范圍為192~223,C類地址的前三個字節(jié)用于表示網(wǎng)絡(luò)號(剩下的21bit),所以擁有2097152個網(wǎng)絡(luò)號,但是其中的256個網(wǎng)絡(luò)號被保留出來,因此C類地址的可用網(wǎng)絡(luò)號為2096896個,每個網(wǎng)絡(luò)號下的主機個數(shù)為254,因此C類網(wǎng)絡(luò)支持的主機數(shù)量為532611584,大約占據(jù)了所有IP地址的八分之一。
**D **類IP地址的第一個字節(jié)前四位為1110,那么它第一個字節(jié)的取值范圍為224~239,約占據(jù)了所有IP地址的十六分之一,它是一個專門保留的地址,它并不指向特定的網(wǎng)絡(luò),目前這一類地址被用于多播。
**E **類IP地址的第一個字節(jié)前四位必須為1111,那么它第一個字節(jié)的取值范圍為240~255,約占據(jù)了所有IP地址的十六分之一,是為將來使用而保留的,其中32bit全為1的IP地址(255.255.255.255)用作廣播地址。
類別 | 第一字節(jié) | 第一字節(jié)取值范圍 | 網(wǎng)絡(luò)號個數(shù) | 主機號個數(shù) | 適用范圍 |
---|---|---|---|---|---|
A類 | 0XXX XXXX | 0~127 | 125 | 16777214 | 大型網(wǎng)絡(luò) |
B類 | 10XX XXXX | 128~191 | 16368 | 65534 | 中型網(wǎng)絡(luò) |
C類 | 110X XXXX | 192~223 | 2097152 | 254 | 小型網(wǎng)絡(luò) |
D類 | 1110 XXXX | 224~239 | - | - | 多播 |
E類 | 1111 XXXX | 240~255 | - | - | 保留 |
特殊IP地址
1.受限廣播地址
廣播通信是一對所有的通信方式,受限廣播地址用于定義整個互聯(lián)網(wǎng),如果設(shè)備想使IP數(shù)據(jù)報被整個網(wǎng)絡(luò)所接收,就發(fā)送這個目的地址全為1的廣播包,但這樣會給整個互聯(lián)網(wǎng)帶來災(zāi)難性的負(fù)擔(dān),所以在任何情況下,路由器都會禁止轉(zhuǎn)發(fā)目的地址為255.255.255.255的廣播數(shù)據(jù)包,因此這樣的數(shù)據(jù)包僅會出現(xiàn)在本地網(wǎng)絡(luò)中(局域網(wǎng)),255.255.255.255這個地址指本網(wǎng)段內(nèi)的所有主機, 相當(dāng)于“房子里面的人都聽著”通知所有主機。
注意:此處不要與以太網(wǎng)的廣播地址(255-255-255-255-255-255)混淆了。
2.直接廣播地址
受限廣播地址是網(wǎng)絡(luò)號與主機號都為1的地址,但是直接廣播地址是主機號全為1而得到的地址,廣播地址代表本網(wǎng)絡(luò)內(nèi)的所有主機,使用該地址可以向網(wǎng)絡(luò)內(nèi)的所有主機發(fā)送數(shù)據(jù),比如一個IP地址是192.168.0.181,這是C類地址,所以它的主機號只有一個字節(jié),那么對主機號全取1得到一個廣播地址192.168.0.255,向這個地址發(fā)送數(shù)據(jù)就能讓同一網(wǎng)絡(luò)下的所有主機接收到。
A、B、C三類地址的廣播地址結(jié)構(gòu)如下:
A類地址的廣播地址為:XXX.255.255.255(XXX為A類地址的第一個字節(jié)取值范圍)。
A類地址的廣播地址為:XXX. XXX.255.255(XXX為B類地址的前兩個字節(jié)取值范圍)。
A類地址的廣播地址為:XXX. XXX. XXX.255(XXX為C類地址的前三個字節(jié)取值范圍)。
注意:這個地址在IP數(shù)據(jù)報中只能作為目的地址。另外,直接廣播地址使一個網(wǎng)段中可分配給設(shè)備的地址數(shù)減少了1個。
3.多播地址
多播地址用在一對多的通信中,即一個發(fā)送者,多個接收者,不論接受者員數(shù)量的多少,發(fā)送者只發(fā)送一次數(shù)據(jù)包。多播地址屬于分類編址中的D類地址, D類地址只能用作目的地址,而不能作為主機中的源地址。
4.環(huán)回地址
127網(wǎng)段的所有地址都稱為環(huán)回地址,主要用來測試網(wǎng)絡(luò)協(xié)議是否工作正常的作用。比如在電腦中使用ping 命令去ping 127.1.1.1就可以測試本地TCP/IP協(xié)議是否正常。用通俗的話表示,就是“我自己”,不能以127網(wǎng)段中的IP地址作為主機地址,因此A類地址又少了一個可用網(wǎng)絡(luò)號。
5.本網(wǎng)絡(luò)本主機
IP地址32bit全為0的地址(0.0.0.0)表示的是本網(wǎng)絡(luò)本主機,這個IP地址在IP數(shù)據(jù)報中只能用作源IP地址,這發(fā)生在當(dāng)設(shè)備啟動時但又不知道自己的IP地址情況下。在使用DHCP分配IP地址的網(wǎng)絡(luò)環(huán)境中,這樣的地址是很常見的,主機為了獲得一個可用的IP地址,就給DHCP服務(wù)器發(fā)送IP數(shù)據(jù)報,并用這樣的地址(0.0.0.0)作為源地址,目的地址為255.255.255.255(因為主機這時還不知道DHCP服務(wù)器的IP地址),然后DHCP服務(wù)器就會知道這個主機暫時沒有IP地址,那么就會分配一個IP給這個主機。
-
IP協(xié)議
+關(guān)注
關(guān)注
3文章
85瀏覽量
21986 -
數(shù)據(jù)報
+關(guān)注
關(guān)注
0文章
4瀏覽量
7326 -
協(xié)議棧
+關(guān)注
關(guān)注
2文章
145瀏覽量
34013
發(fā)布評論請先 登錄
為什么會有TCP/IP協(xié)議
lwip tcp ip 協(xié)議
TCP/IP協(xié)議是什么
IP協(xié)議 (Internet協(xié)議中IP協(xié)議的概念及原理)
TCP/IP協(xié)議,TCP/IP協(xié)議內(nèi)容和作用是什么?
tcp ip協(xié)議_什么是tcp ip協(xié)議

TCP(IP)協(xié)議與網(wǎng)絡(luò)編程
tcp ip 協(xié)議講座:介紹IP協(xié)議與UDP協(xié)議
TCP-IP協(xié)議講解

評論