你買了一臺(tái)新電腦,插上網(wǎng)線,開(kāi)機(jī),這時(shí)電腦能夠上網(wǎng)嗎?
通常你必須做一些設(shè)置。有時(shí),管理員(或者ISP)會(huì)告訴你下面四個(gè)參數(shù),你把它們填入操作系統(tǒng),計(jì)算機(jī)就能連上網(wǎng)了:
本機(jī)的IP地址
子網(wǎng)掩碼
網(wǎng)關(guān)的IP地址
DNS的IP地址
下圖是Windows系統(tǒng)的設(shè)置窗口。
這四個(gè)參數(shù)缺一不可,后文會(huì)解釋為什么需要知道它們才能上網(wǎng)。由于它們是給定的,計(jì)算機(jī)每次開(kāi)機(jī),都會(huì)分到同樣的IP地址,所以這種情況被稱作"靜態(tài)IP地址上網(wǎng)"。
但是,這樣的設(shè)置很專業(yè),普通用戶望而生畏,而且如果一臺(tái)電腦的IP地址保持不變,其他電腦就不能使用這個(gè)地址,不夠靈活。出于這兩個(gè)原因,大多數(shù)用戶使用"動(dòng)態(tài)IP地址上網(wǎng)"。
所謂"動(dòng)態(tài)IP地址",指計(jì)算機(jī)開(kāi)機(jī)后,會(huì)自動(dòng)分配到一個(gè)IP地址,不用人為設(shè)定。它使用的協(xié)議叫做DHCP協(xié)議。
這個(gè)協(xié)議規(guī)定,每一個(gè)子網(wǎng)絡(luò)中,有一臺(tái)計(jì)算機(jī)負(fù)責(zé)管理本網(wǎng)絡(luò)的所有IP地址,它叫做"DHCP服務(wù)器"。新的計(jì)算機(jī)加入網(wǎng)絡(luò),必須向"DHCP服務(wù)器"發(fā)送一個(gè)"DHCP請(qǐng)求"數(shù)據(jù)包,申請(qǐng)IP地址和相關(guān)的網(wǎng)絡(luò)參數(shù)。
前面說(shuō)過(guò),如果兩臺(tái)計(jì)算機(jī)在同一個(gè)子網(wǎng)絡(luò),必須知道對(duì)方的MAC地址和IP地址,才能發(fā)送數(shù)據(jù)包。但是,新加入的計(jì)算機(jī)不知道這兩個(gè)地址,怎么發(fā)送數(shù)據(jù)包呢?
DHCP協(xié)議做了一些巧妙的規(guī)定。
首先,它是一種應(yīng)用層協(xié)議,建立在UDP協(xié)議之上,所以整個(gè)數(shù)據(jù)包是這樣的:
(1)最前面的"以太網(wǎng)標(biāo)頭",設(shè)置發(fā)出方(本機(jī))的MAC地址和接收方(DHCP服務(wù)器)的MAC地址。前者就是本機(jī)網(wǎng)卡的MAC地址,后者這時(shí)不知道,就填入一個(gè)廣播地址:FF-FF-FF-FF-FF-FF。
(2)后面的"IP標(biāo)頭",設(shè)置發(fā)出方的IP地址和接收方的IP地址。這時(shí),對(duì)于這兩者,本機(jī)都不知道。于是,發(fā)出方的IP地址就設(shè)為0.0.0.0,接收方的IP地址設(shè)為255.255.255.255。
?。?)最后的"UDP標(biāo)頭",設(shè)置發(fā)出方的端口和接收方的端口。這一部分是DHCP協(xié)議規(guī)定好的,發(fā)出方是68端口,接收方是67端口。
這個(gè)數(shù)據(jù)包構(gòu)造完成后,就可以發(fā)出了。以太網(wǎng)是廣播發(fā)送,同一個(gè)子網(wǎng)絡(luò)的每臺(tái)計(jì)算機(jī)都收到了這個(gè)包。因?yàn)榻邮辗降腗AC地址是FF-FF-FF-FF-FF-FF,看不出是發(fā)給誰(shuí)的,所以每臺(tái)收到這個(gè)包的計(jì)算機(jī),還必須分析這個(gè)包的IP地址,才能確定是不是發(fā)給自己的。當(dāng)看到發(fā)出方IP地址是0.0.0.0,接收方是255.255.255.255,于是DHCP服務(wù)器知道"這個(gè)包是發(fā)給我的",而其他計(jì)算機(jī)就可以丟棄這個(gè)包。
接下來(lái),DHCP服務(wù)器讀出這個(gè)包的數(shù)據(jù)內(nèi)容,分配好IP地址,發(fā)送回去一個(gè)"DHCP響應(yīng)"數(shù)據(jù)包。這個(gè)響應(yīng)包的結(jié)構(gòu)也是類似的,以太網(wǎng)標(biāo)頭的MAC地址是雙方的網(wǎng)卡地址,IP標(biāo)頭的IP地址是DHCP服務(wù)器的IP地址(發(fā)出方)和255.255.255.255(接收方),UDP標(biāo)頭的端口是67(發(fā)出方)和68(接收方),分配給請(qǐng)求端的IP地址和本網(wǎng)絡(luò)的具體參數(shù)則包含在Data部分。
新加入的計(jì)算機(jī)收到這個(gè)響應(yīng)包,于是就知道了自己的IP地址、子網(wǎng)掩碼、網(wǎng)關(guān)地址、DNS服務(wù)器等等參數(shù)。
這個(gè)部分,需要記住的就是一點(diǎn):不管是"靜態(tài)IP地址"還是"動(dòng)態(tài)IP地址",電腦上網(wǎng)的首要步驟,是確定四個(gè)參數(shù)。這四個(gè)值很重要,值得重復(fù)一遍:
本機(jī)的IP地址
子網(wǎng)掩碼
網(wǎng)關(guān)的IP地址
DNS的IP地址
有了這幾個(gè)數(shù)值,電腦就可以上網(wǎng)"沖浪"了。接下來(lái),我們來(lái)看一個(gè)實(shí)例,當(dāng)用戶訪問(wèn)網(wǎng)頁(yè)的時(shí)候,互聯(lián)網(wǎng)協(xié)議是怎么運(yùn)作的。
更多建議: