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

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é)議
基于FPGA的TCP/IP協(xié)議的實(shí)現(xiàn)
TCP-IP協(xié)議講解

評(píng)論