互聯(lián)網(wǎng)協(xié)議必須掌握的三個(gè)方面
互聯(lián)網(wǎng)協(xié)議是我們網(wǎng)絡(luò)使用和發(fā)展的根基。那么對于這個(gè)協(xié)議的理解也就顯得尤為重要了。現(xiàn)在我們將要對這個(gè)協(xié)議的一些內(nèi)容進(jìn)行解析,包括了它的尋址、分段和網(wǎng)關(guān)方面的知識。在這之中,尋址方式,也是我們目前IPv4協(xié)議中所采用的地址方式。隨著網(wǎng)絡(luò)的不斷發(fā)展,我們將會用IPv6協(xié)議代替現(xiàn)在的IPv4,兩者的地址協(xié)議也有著差異,在后面的文章中,我們也會將兩者進(jìn)行比較。
尋址
名字,地址和路由是有區(qū)別的,名字是我們要找的,地址指出這個(gè)名字在什么地方,路由解決如何到那里的問題。IP主要處理地址的問題。把名字和地址進(jìn)行映射的工作由上層協(xié)議完成。IP模塊將地址和本地網(wǎng)絡(luò)地址加以映射,而將本地網(wǎng)絡(luò)地址和路由進(jìn)行映射則是低層協(xié)議的任務(wù)。
地址是32位長,由網(wǎng)絡(luò)號和本地地址兩部分構(gòu)成。地址有三類:A類的***位為0,后7位表示網(wǎng)絡(luò)號,其它的24位表示本地地址;B類前兩位為10,后14位表示網(wǎng)絡(luò)地址,其它16位表示本地地址;C類三位為110,后21位是網(wǎng)絡(luò)號,其它8位代表本地地址。
在將網(wǎng)絡(luò)地址和本地網(wǎng)絡(luò)地址進(jìn)行映射時(shí)必須注意,有些主機(jī)可能使用幾個(gè)不同的IP地址(我們可以把本地網(wǎng)絡(luò)地址理解為MAC地址)。我們必須能夠處理一臺主機(jī)有幾個(gè)處理端口,而每個(gè)端口都有幾個(gè)邏輯的互聯(lián)網(wǎng)協(xié)議的地址。
分段
對于不同的網(wǎng)絡(luò),其中傳送的包大小可能不一樣,因此把大包分小的功能是必須的。數(shù)據(jù)報(bào)也可以被標(biāo)記為“不可分段”,如果一個(gè)數(shù)據(jù)報(bào)被如何標(biāo)記了,那么在任何情況下都不準(zhǔn)對它進(jìn)行分段。如果不分段到不了目的地,那就把包在半路拋棄了。在本地網(wǎng)內(nèi)進(jìn)行的重新分段和重組對IP模塊是不可見的,這種方法也可以使用。
本地網(wǎng)分段和重組把重組的各段加上標(biāo)記,接收方使用這些標(biāo)記使不同的段區(qū)別開來。段偏移量域告訴接收方應(yīng)該把這一段放在什么地方,多段標(biāo)記指示***一個(gè)段,利用不同的域完全可以重組一個(gè)數(shù)據(jù)報(bào)。標(biāo)記域是用于唯一標(biāo)記數(shù)據(jù)報(bào)的,它是最初的發(fā)送方設(shè)置,而且要保證數(shù)據(jù)報(bào)在網(wǎng)絡(luò)傳輸?shù)娜^程中它中唯一的。最初的發(fā)送方把多段標(biāo)記設(shè)置為零,段偏移量設(shè)置為零。
我們假設(shè)互聯(lián)網(wǎng)協(xié)議模塊把一個(gè)大數(shù)據(jù)報(bào)分為兩個(gè)小的,IP模塊首先取得數(shù)據(jù)報(bào)頭,再分隔數(shù)據(jù)為兩份,將數(shù)據(jù)報(bào)頭加在兩份數(shù)據(jù)上。分隔數(shù)據(jù)時(shí)以8個(gè)字節(jié)為單位,第二段不一定是8個(gè)字節(jié),但***個(gè)必須是。我們把***段中的8位字節(jié)數(shù)稱為段塊數(shù)(NFB)。新生成的***個(gè)數(shù)據(jù)報(bào)內(nèi)是生成的***段數(shù)據(jù),設(shè)置多段標(biāo)記為1;新生成的第二個(gè)數(shù)據(jù)報(bào)內(nèi)是生成的第二段數(shù)據(jù),多段標(biāo)記等于原來數(shù)據(jù)報(bào)內(nèi)的值,段偏移量等于原數(shù)據(jù)報(bào)中的值加上NFB。上述過程可以從2擴(kuò)展至N的情況。
對段的重組要求以下四個(gè)域有相同的值:標(biāo)記,源地址,目標(biāo)地址和協(xié)議。將不同的數(shù)據(jù)報(bào)根據(jù)自己帶的偏移量重新組合為新段,***個(gè)段的偏移量為0,***一個(gè)段的多段標(biāo)記為0。
網(wǎng)關(guān)
網(wǎng)關(guān)在不同網(wǎng)絡(luò)間傳送數(shù)據(jù)報(bào),網(wǎng)關(guān)也實(shí)現(xiàn)網(wǎng)關(guān)到網(wǎng)關(guān)協(xié)議(GGP),它用于傳送路由和其它控制信息。網(wǎng)關(guān)中的高層協(xié)議根本不用實(shí)現(xiàn),GGP的功能可以在互聯(lián)網(wǎng)協(xié)議模塊內(nèi)實(shí)現(xiàn)。