七、一個小結(jié)

2018-02-24 16:04 更新

上一篇文章分析了互聯(lián)網(wǎng)的總體構(gòu)思,從下至上,每一層協(xié)議的設(shè)計思想。
這是從設(shè)計者的角度看問題,今天我想切換到用戶的角度,看看用戶是如何從上至下,與這些協(xié)議互動的。

先對前面的內(nèi)容,做一個小結(jié)。

我們已經(jīng)知道,網(wǎng)絡(luò)通信就是交換數(shù)據(jù)包。電腦A向電腦B發(fā)送一個數(shù)據(jù)包,后者收到了,回復(fù)一個數(shù)據(jù)包,從而實現(xiàn)兩臺電腦之間的通信。數(shù)據(jù)包的結(jié)構(gòu),基本上是下面這樣:

發(fā)送這個包,需要知道兩個地址:

  * 對方的MAC地址

  * 對方的IP地址

有了這兩個地址,數(shù)據(jù)包才能準(zhǔn)確送到接收者手中。但是,前面說過,MAC地址有局限性,如果兩臺電腦不在同一個子網(wǎng)絡(luò),就無法知道對方的MAC地址,必須通過網(wǎng)關(guān)(gateway)轉(zhuǎn)發(fā)。

2015-08-04/55c0533482a7c

上圖中,1號電腦要向4號電腦發(fā)送一個數(shù)據(jù)包。它先判斷4號電腦是否在同一個子網(wǎng)絡(luò),結(jié)果發(fā)現(xiàn)不是(后文介紹判斷方法),于是就把這個數(shù)據(jù)包發(fā)到網(wǎng)關(guān)A。網(wǎng)關(guān)A通過路由協(xié)議,發(fā)現(xiàn)4號電腦位于子網(wǎng)絡(luò)B,又把數(shù)據(jù)包發(fā)給網(wǎng)關(guān)B,網(wǎng)關(guān)B再轉(zhuǎn)發(fā)到4號電腦。

1號電腦把數(shù)據(jù)包發(fā)到網(wǎng)關(guān)A,必須知道網(wǎng)關(guān)A的MAC地址。所以,數(shù)據(jù)包的目標(biāo)地址,實際上分成兩種情況:

場景 數(shù)據(jù)包地址
同一個子網(wǎng)絡(luò) 對方的MAC地址,對方的IP地址
非同一個子網(wǎng)絡(luò) 網(wǎng)關(guān)的MAC地址,對方的IP地址

發(fā)送數(shù)據(jù)包之前,電腦必須判斷對方是否在同一個子網(wǎng)絡(luò),然后選擇相應(yīng)的MAC地址。接下來,我們就來看,實際使用中,這個過程是怎么完成的。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號