?
1、不考慮NAT,IP地址不會(huì)改變
2、考慮NAT,內(nèi)網(wǎng)IP地址會(huì)改變
3、只要經(jīng)過(guò)路由器,MAC地址都改變?
在不考慮NAT情況下:
????????源/目的IP地址永遠(yuǎn)不會(huì)改變
????????源/目的MAC地址會(huì)改變
假設(shè)主機(jī)A想要向主機(jī)C發(fā)送IP數(shù)據(jù)報(bào),過(guò)程如下:
?????????1、主機(jī)A準(zhǔn)備好想要發(fā)送的IP數(shù)據(jù),并在IP數(shù)據(jù)前加上首部部分(各種字段),傳輸過(guò)程中主要使用 源地址(A)、目的地址(C)。
????????2、打包形成協(xié)議塊,向下傳遞到數(shù)據(jù)鏈路層,增加額外信息,由于A和C不直接相連,故額外信息中 源地址(A),目的地址(路由器)。
????????3、路由器收到信息后,剝除數(shù)據(jù)鏈路層信息,獲得MAC幀數(shù)據(jù)部分,即IP數(shù)據(jù)報(bào)部分,此時(shí)IP數(shù)據(jù)報(bào)中首部中的 源IP地址和目的IP地址 仍然是 A和C。
????????4、打包形成協(xié)議塊,向下傳遞到數(shù)據(jù)鏈路層,增加額外信息,額外信息中 源地址(路由器),目的地址(C)。
?
在考慮NAT情況下:
????????源/目的內(nèi)網(wǎng)IP地址會(huì)改變
????????源/目的MAC地址會(huì)改變
?
路由器的分組轉(zhuǎn)發(fā)算法
?
- 1、從數(shù)據(jù)報(bào)的首部提取目的主機(jī)的IP地址D,得出目的網(wǎng)絡(luò)地址為N。
- 2、
- 若N就是與此路由器直接相連的某個(gè)網(wǎng)絡(luò)地址,則進(jìn)行直接交付,不需要再經(jīng)過(guò)其他的路由器,直接把數(shù)據(jù)報(bào)交付目的主機(jī)(這里包括把目的主機(jī)地址D轉(zhuǎn)換為具體的硬件地址,把數(shù)據(jù)報(bào)封裝為MAC幀,再發(fā)送此幀);
- 否則就是間接交付,執(zhí)行3。
- 3、若路由表中有目的地址為D的特定主機(jī)路由,則把數(shù)據(jù)報(bào)傳送給路由表中所指明的下一跳路由器;否則,執(zhí)行4。
- 4、若路由表中有到達(dá)網(wǎng)絡(luò)N的路由,則把數(shù)據(jù)報(bào)傳送給路由表中所指明的下一跳路由器;否則,執(zhí)行5。
- 5、若路由表中有一個(gè)默認(rèn)路由,則把數(shù)據(jù)報(bào)傳送給路由器中所指明的默認(rèn)路由器;否則,執(zhí)行6。
- 6、報(bào)告轉(zhuǎn)發(fā)分組出錯(cuò)。
路由表并沒(méi)有給分組指明到某個(gè)網(wǎng)絡(luò)的完整路徑(即先經(jīng)過(guò)哪一個(gè)路由器,然后再經(jīng)過(guò)哪一個(gè)路由器,等等)。
路由表指出,到某個(gè)網(wǎng)絡(luò)應(yīng)當(dāng)先到某個(gè)路由器(即下一跳路由器),在到達(dá)下一跳路由器后,再繼續(xù)查找其路由表,知道再下一步應(yīng)當(dāng)?shù)侥囊粋€(gè)路由器。這樣一步一步地查找下去,直到最后到達(dá)目的網(wǎng)絡(luò)。
?
【劃分子網(wǎng)】路由器的分組轉(zhuǎn)發(fā)算法
?
在劃分子網(wǎng)的情況下,分組轉(zhuǎn)發(fā)的算法必須做相應(yīng)的改動(dòng)。
使用子網(wǎng)劃分后,路由表必須包含以下三項(xiàng)內(nèi)容:目的網(wǎng)絡(luò)地址、子網(wǎng)掩碼和下一跳地址。
在劃分子網(wǎng)的情況下,路由器轉(zhuǎn)發(fā)分組的算法如下:
- 1、從收到的數(shù)據(jù)報(bào)的首部提取目的IP地址D。
- 2、先判斷是否為直接交付。
- ?對(duì)路由器直接相連的網(wǎng)絡(luò)逐個(gè)進(jìn)行檢查:用各網(wǎng)絡(luò)的子網(wǎng)掩碼和D逐位相“與”,看結(jié)果是否和相應(yīng)的網(wǎng)絡(luò)地址匹配。
- 若匹配,則把分組進(jìn)行直接交付(還需要把D轉(zhuǎn)換成物理地址,把數(shù)據(jù)報(bào)封裝成幀發(fā)送出去),轉(zhuǎn)發(fā)任務(wù)結(jié)束。
- 否則就是間接交付,執(zhí)行(3)。
- ?對(duì)路由器直接相連的網(wǎng)絡(luò)逐個(gè)進(jìn)行檢查:用各網(wǎng)絡(luò)的子網(wǎng)掩碼和D逐位相“與”,看結(jié)果是否和相應(yīng)的網(wǎng)絡(luò)地址匹配。
- 3、若路由表中有目的地址為D的特定主機(jī)路由,則把數(shù)據(jù)報(bào)傳送給路由表中所指明的下一跳路由器;否則,執(zhí)行(4)。
- 4、對(duì)路由表中的每一行(目的網(wǎng)絡(luò)地址,子網(wǎng)掩碼,下一跳地址),用其中的子網(wǎng)掩碼和D逐位相“與”,其結(jié)果為N。
- 若N與該行的目的網(wǎng)絡(luò)地址匹配,則把數(shù)據(jù)報(bào)傳送給改行指明的下一跳路由器;
- 否則,執(zhí)行5。
- 5、若路由表中有一個(gè)默認(rèn)路由,則把數(shù)據(jù)報(bào)傳送給路由表中所指明的默認(rèn)路由器;否則,執(zhí)行6。
- 6、報(bào)告轉(zhuǎn)發(fā)分組出錯(cuò)。
?
【例4-4】圖4-24有三個(gè)子網(wǎng),兩個(gè)路由器,以及路由器R1中的部分路由表?,F(xiàn)在源主機(jī)H1向目的主機(jī)H2發(fā)送分組。R1收到H1向H2發(fā)送的分組后查找路由表的過(guò)程。?
解:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-441535.html
- 源主機(jī)H1首先要進(jìn)行的操作是要判斷:發(fā)送的這個(gè)分組,是在本子網(wǎng)上進(jìn)行直接交付還是要通過(guò)本子網(wǎng)上的路由器進(jìn)行間接交付?
- 源主機(jī)H1把本子網(wǎng)的“子網(wǎng)掩碼255.255.255.128”與目的主機(jī)H2的“IP地址128.30.33.138”逐位相“與”(即逐位進(jìn)行AND操作),得出128.30.33.128,它不等于H1的網(wǎng)絡(luò)地址(128.30.33.0)。
- 這說(shuō)明H2與H1不在同一個(gè)子網(wǎng)上。因此H1不能把分組直接交付H2,而必須交給子網(wǎng)上的默認(rèn)路由器R1,由R1來(lái)轉(zhuǎn)發(fā)。
- 路由器R1在收到一個(gè)分組后,就在其路由表中逐行尋找有無(wú)匹配的網(wǎng)絡(luò)地址
- 路由表第一行:用這一行的“子網(wǎng)掩碼255.255.255.128”和收到的分組的“目的地址128.30.33.138”逐位相“與”(即逐位進(jìn)行AND操作),得出128.30.33.128。然后和這一行給出的目的網(wǎng)絡(luò)地址128.30.33.0進(jìn)行比較。但比較的結(jié)果不一致(即不匹配)。
- 用同樣方法繼續(xù)往下找第二行:用第二行的“子網(wǎng)掩碼255.255.255.128”和該分組的“目的地址128.30.33.138”逐位相“與”(即逐位進(jìn)行AND操作),結(jié)果也是128.30.33.128。這個(gè)結(jié)果和第二行的目的網(wǎng)絡(luò)地址128.30.33.128相匹配說(shuō)明這個(gè)網(wǎng)絡(luò)(子網(wǎng)2)就是收到的分組所要尋找的目的網(wǎng)絡(luò)。于是不需要再繼續(xù)查找下去。
- R1把分組從接口1直接交付主機(jī)H2(它們都在一個(gè)子網(wǎng)上)。
【例4-2】圖4-23中有三個(gè)子網(wǎng)通過(guò)兩個(gè)路由器互連在一起。主機(jī)H1發(fā)送出一個(gè)分組,其目的地址是128.1.2.132?,F(xiàn)在源主機(jī)是H1而目的主機(jī)是H2。試討論分組怎樣從源主機(jī)傳送到目的主機(jī)。
【解】文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-441535.html
- 主機(jī)H1首先必須確定:目的主機(jī)是否連接在本網(wǎng)絡(luò)上?如果是,那么問(wèn)題很簡(jiǎn)單,就直接交付,根本不需要利用路由器;如果不是,就間接交付,把分組發(fā)送給連接在本網(wǎng)絡(luò)上的路由器,以后要做的事情都由這個(gè)路由器來(lái)處理。
- 主機(jī)H1先把要發(fā)送的分組的目的地址和本網(wǎng)絡(luò)N1的子網(wǎng)掩碼按位進(jìn)行AND運(yùn)算,得出運(yùn)算結(jié)果。
- 如果運(yùn)算結(jié)果等于本網(wǎng)絡(luò) N1的前綴,就表明目的主機(jī)連接在本網(wǎng)絡(luò)上;否則,就必須把分組發(fā)送到路由器R1,由路由器R1完成后續(xù)的任務(wù)。
- 由于采用了CIDR記法,轉(zhuǎn)發(fā)表中給出的都是網(wǎng)絡(luò)前綴,而沒(méi)有明顯給出子網(wǎng)掩碼。
- 其實(shí)只要細(xì)心觀察斜線后面的數(shù)字,就可知道相應(yīng)的子網(wǎng)掩碼。例如,/26 的子網(wǎng)掩碼就是點(diǎn)分十進(jìn)制的255.255.255.192。
- 現(xiàn)在,要發(fā)送的分組的目的地址是128.1.2.132,本網(wǎng)絡(luò)的掩碼是26個(gè)1,后面有6個(gè)0。如圖4-24(a)所示,按位.AND運(yùn)算的結(jié)果是128.1.2.128,不等于本網(wǎng)絡(luò)N1的前綴。
- 這說(shuō)明目的主機(jī)沒(méi)有連接在本網(wǎng)絡(luò)上。源主機(jī)H1必須把分組發(fā)送給路由器R1,讓路由器R1根據(jù)其轉(zhuǎn)發(fā)表來(lái)處理這個(gè)分組。
- 路由器R1的部分轉(zhuǎn)發(fā)表已在圖4-23右上方給出了。
- 轉(zhuǎn)發(fā)表中第1列就是“前綴匹配”,這是因?yàn)?strong>查找轉(zhuǎn)發(fā)表的過(guò)程就是尋找前綴匹配的過(guò)程。
- 現(xiàn)在先檢查路由器R1的轉(zhuǎn)發(fā)表中的第1行。
- 源主機(jī)H1要發(fā)送的分組的目的地址是128.1.2.132。本網(wǎng)絡(luò)128.1.2.192/26的前綴有26位,因此本網(wǎng)絡(luò)的掩碼是26個(gè)1,后面是6個(gè)0。
- 目的地址和子網(wǎng)掩碼按位.AND運(yùn)算的結(jié)果是128.1.2.128/26(見(jiàn)圖4-24(a))。很明顯,AND運(yùn)算結(jié)果與轉(zhuǎn)發(fā)表第1行的前綴不匹配。
- 接著檢查路由器R1的轉(zhuǎn)發(fā)表中的第2行。運(yùn)算結(jié)果是128.1.2.128/26,如圖4-24(b)所示。這個(gè)結(jié)果和轉(zhuǎn)發(fā)表第2行的前綴相匹配。
- 因此按照轉(zhuǎn)發(fā)表第2行指出的,在網(wǎng)絡(luò)N2上進(jìn)行分組的直接交付(通過(guò)路由器R1的接口1)。
- 這時(shí)路由器R1調(diào)用ARP,解析出目的主機(jī)H2的MAC地址,再封裝成鏈路層的幀,直接交付連接在本網(wǎng)絡(luò)N2上的目的主機(jī)H2。
- 如果按照同樣的方法,檢查路由器R1的轉(zhuǎn)發(fā)表中的第3行,不難得出不匹配的結(jié)果。
到了這里,關(guān)于計(jì)網(wǎng) | IP數(shù)據(jù)報(bào)的傳輸過(guò)程地址變化 及 路由器的分組轉(zhuǎn)發(fā)算法與例題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!