两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

通過(guò)擴(kuò)展IPv4包頭實(shí)現(xiàn)在互聯(lián)網(wǎng)中按路徑尋址和路由的方法

文檔序號(hào):7849931閱讀:164來(lái)源:國(guó)知局
專利名稱:通過(guò)擴(kuò)展IPv4包頭實(shí)現(xiàn)在互聯(lián)網(wǎng)中按路徑尋址和路由的方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種網(wǎng)絡(luò)和通信領(lǐng)域,主要是一種通過(guò)擴(kuò)展IPv4包頭實(shí)現(xiàn)在互聯(lián)網(wǎng)中按路徑尋址和路由的方法。這種在采用IPv4規(guī)程的互聯(lián)網(wǎng)中擴(kuò)展IPv4包的頭部的方法,其目的一方面在于使IPv4包的頭部可以載送更多的信息,另一方面也是對(duì)本人的另一項(xiàng)發(fā)明“在互聯(lián)網(wǎng)中按路徑尋址和路由的方法”的改進(jìn)和補(bǔ)充。
背景介紹本人的另一項(xiàng)發(fā)明“在互聯(lián)網(wǎng)中按路徑尋址和路由的方法”(中國(guó)專利申請(qǐng)?zhí)?00410053139.9)提供了在IPv4網(wǎng)絡(luò)中按節(jié)點(diǎn)所在位置的路徑信息尋址和路由的方法,其特征是在IPv4包的頭部提供具有唯一性的對(duì)節(jié)點(diǎn)在內(nèi)網(wǎng)中的位置/路徑的描述,即由一個(gè)公網(wǎng)地址開(kāi)頭后隨一個(gè)或幾個(gè)私網(wǎng)地址、或若干私網(wǎng)地址后隨一個(gè)公網(wǎng)地址的地址序列,并以此作為尋址的依據(jù),使采用內(nèi)網(wǎng)地址的節(jié)點(diǎn)成為在互聯(lián)網(wǎng)內(nèi)可以尋址,并使以這些節(jié)點(diǎn)為目標(biāo)的IP包在互聯(lián)網(wǎng)內(nèi)可以路由,從而可以在對(duì)現(xiàn)有IPv4規(guī)程改動(dòng)最小且完全兼容的條件下解決地址容量不足的問(wèn)題。為此,在IPv4規(guī)程的包頭可選項(xiàng)中增加了兩個(gè)新的可選項(xiàng)“源端路徑段”和“目標(biāo)端路徑段”,格式與原有的“源路徑”可選項(xiàng)相同。采用這種方法以后,公網(wǎng)包括骨干網(wǎng)中的路由器都可以原封不動(dòng)地繼續(xù)使用,因?yàn)樗鼈儗?duì)包頭中不認(rèn)識(shí)的可選項(xiàng)會(huì)忽略不理,而包頭中除兩個(gè)新可選項(xiàng)以外的內(nèi)容又跟原先完全一樣。
可是,盡管如此,“在互聯(lián)網(wǎng)中按路徑尋址和路由的方法”所提供的方法還是有些缺點(diǎn),主要表現(xiàn)在三個(gè)方面1)IPv4包頭的大小連可選項(xiàng)在內(nèi)最多只有60個(gè)字節(jié)。這是因?yàn)榘^中“頭部長(zhǎng)度”位段只有4位,其最大值為15,其單位為“長(zhǎng)字”、即4個(gè)字節(jié),所以頭部最長(zhǎng)只有60個(gè)字節(jié)。其中20字節(jié)是IPv4的基本包頭,可以用于可選項(xiàng)的不超過(guò)40字節(jié)。這樣,如果采用了“源地址路徑段”和“目標(biāo)地址路徑段”可選項(xiàng),就擠占了別的可選項(xiàng)本來(lái)可用的空間。事實(shí)上,在一般的數(shù)據(jù)流量中,(別的)可選項(xiàng)是很少使用、甚至從來(lái)不用的,可是這畢竟是個(gè)問(wèn)題。
2)同樣的原因,包頭中有限的可選項(xiàng)空間給“源端路徑段”和“目標(biāo)端路徑段”的長(zhǎng)度也帶來(lái)了限制。因?yàn)榭捎糜诳蛇x項(xiàng)的不超過(guò)40字節(jié),單個(gè)“源端路徑段”或“目標(biāo)端路徑段”可選項(xiàng)的長(zhǎng)度就不能超過(guò)20字節(jié)、即5個(gè)32位長(zhǎng)字。由于在路徑段中還需要有個(gè)“當(dāng)前指針”,實(shí)際的路徑段長(zhǎng)度就不能超過(guò)4個(gè)IP地址。其中最后一個(gè)是節(jié)點(diǎn)本身的“相對(duì)地址”,所以前面最多可以有三個(gè)IP地址。也就是說(shuō),內(nèi)網(wǎng)最多可以有三層。一般而言這已經(jīng)足夠了,但是有時(shí)候也可能不夠。
3)骨干網(wǎng)中的高端路由器往往是帶有硬件加速的。一般不帶可選項(xiàng)的IP包(包頭長(zhǎng)度為5)都由硬件完成路由,無(wú)需CPU的介入;而帶有可選項(xiàng)的IP包(包頭長(zhǎng)度>5)則“上交”給CPU,由軟件完成處理及路由。這些路由器并不認(rèn)識(shí)“源地址路徑段”和“目標(biāo)地址路徑段”可選項(xiàng),所以只是檢查一下、而并不進(jìn)行任何實(shí)質(zhì)性的處理和操作。但是,本來(lái)可以由硬件處理的流量現(xiàn)在卻要求CPU介入了。這當(dāng)然會(huì)降低骨干路由器的效率。這樣的流量多了,整個(gè)網(wǎng)絡(luò)的有效帶寬就下降了。
可見(jiàn),要解決這些問(wèn)題,就需要滿足兩個(gè)條件1.設(shè)法擴(kuò)展IPv4包頭的大小,即包頭中可以用于各種可選項(xiàng)的空間。由于“頭部長(zhǎng)度”位段只有4位,在原來(lái)的IPv4包頭中實(shí)際上不存在這樣的可能,所以解決的辦法只能是“外掛”。所謂外掛,使指新增加的空間在邏輯上屬于包頭,而物理上卻歸入(載荷)數(shù)據(jù)中,到了終點(diǎn)之后再?gòu)臄?shù)據(jù)中剔除。而沿途凡是需要使用這些信息的節(jié)點(diǎn)(包括終點(diǎn)),則必須能知道到包中的什么位置上獲取這些信息。為此,在原來(lái)的包頭中至少必須帶有某種擴(kuò)展標(biāo)志,說(shuō)明包中是否帶有“外掛”的包頭擴(kuò)展空間。這樣就可以解決前述的第一、第二兩個(gè)問(wèn)題。
2.上述包頭中的擴(kuò)展標(biāo)志對(duì)于骨干路由器必須是“透明”的、即不可見(jiàn)的。而且,“源地址路徑段”和“目標(biāo)地址路徑段”可選項(xiàng)也應(yīng)該放在“外掛”的包頭擴(kuò)展空間中,使這兩個(gè)可選項(xiàng)對(duì)骨干路由器透明。這樣,才能不干擾骨干路由器中的硬件加速,從而解決前述的第三個(gè)問(wèn)題。
本發(fā)明提供了一種能夠滿足這兩個(gè)條件的方法。

發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)的缺陷,本發(fā)明提供了一種通過(guò)擴(kuò)展IPv4包頭實(shí)現(xiàn)在互聯(lián)網(wǎng)中按路徑尋址和路由的方法。該方法既使IPv4包的頭部可以載送更多的信息,又在與IPv4完全兼容的條件下實(shí)現(xiàn)在互聯(lián)網(wǎng)中按路徑尋址和路由,從而解決IP地址容量不足的問(wèn)題。而且,采用本發(fā)明所提供的方法還可以使擴(kuò)展了包頭的IPv4包對(duì)骨干路由器“透明”,使其硬件加速的效率不受影響。
本發(fā)明所采用的技術(shù)方案。這種通過(guò)擴(kuò)展IPv4包頭實(shí)現(xiàn)在互聯(lián)網(wǎng)中按路徑尋址和路由的方法,將IPv4包頭“標(biāo)志”位段中的最高位定義成“包頭擴(kuò)展”標(biāo)志位EXT;如果一個(gè)IPv4包的“包頭擴(kuò)展”標(biāo)志位為1,就說(shuō)明在IPv4包頭與包的有效載荷之間存在著一個(gè)擴(kuò)展部;包頭擴(kuò)展部在包中的起點(diǎn)由包頭中“包頭長(zhǎng)度”位段的值確定;包頭擴(kuò)展部有個(gè)擴(kuò)展部描述,說(shuō)明擴(kuò)展部的長(zhǎng)度;包頭擴(kuò)展部的長(zhǎng)度計(jì)入包的總長(zhǎng)度,就是包頭中“包長(zhǎng)度”位段的值;包頭擴(kuò)展部中含有至少一個(gè)可選項(xiàng)。針對(duì)在互聯(lián)網(wǎng)中按路徑尋址和路由,包頭擴(kuò)展部中可按實(shí)際需要帶有“源端路徑段”和“目標(biāo)端路徑段”可選項(xiàng)。
本發(fā)明有益的效果是包頭擴(kuò)充部的長(zhǎng)度實(shí)際上不受限制,使得路徑段描述的長(zhǎng)度實(shí)際上不受限制,包頭中的擴(kuò)展標(biāo)志對(duì)于骨干路由器是“透明”的,不會(huì)干擾骨干路由器中的硬件加速。
具體實(shí)施例方式
下面結(jié)合“在互聯(lián)網(wǎng)中按路徑尋址和路由的方法”所述“源端路徑段”和“目標(biāo)端路徑段”兩個(gè)可選項(xiàng)的使用對(duì)本發(fā)明的實(shí)施作進(jìn)一步介紹;IPv4包頭中原來(lái)有3位是保留未用的。早期的IPv4包頭中有個(gè)TOS字節(jié),字節(jié)中的最高三位用來(lái)表示包的優(yōu)先級(jí),還有三位表示包的路由選擇準(zhǔn)則。后來(lái)把這個(gè)字節(jié)改成了“DS”字節(jié),用這個(gè)字節(jié)中的6位來(lái)表示與包的流量控制有關(guān)的屬性,在此基礎(chǔ)上實(shí)現(xiàn)一種稱為“區(qū)別服務(wù)(DiffSrv)”的機(jī)制,為用戶提供服務(wù)質(zhì)量承諾、即QoS。當(dāng)時(shí)DS字節(jié)中的最后兩位保留未用,因此對(duì)于路由器是透明的。但是,RFC2481已經(jīng)提議(規(guī)定)用這兩位構(gòu)成一個(gè)“ECN”位段,用于“顯式擁擠通知(Explicit CongestionNotification)”。這是屬于流量控制的一種機(jī)制,放在DS字節(jié)中顯然是合理的。盡管現(xiàn)在還很少有路由器已經(jīng)支持ECN位段,但是既然已經(jīng)規(guī)定就不能再用了。還有一位保留未用的是在“標(biāo)志(Flags)”位段中。這個(gè)位段有三位,實(shí)際上只用了兩位,即“禁止分割(Don′t Fragment)”和“更多片斷(More Fragments)”,用于大包的分割傳輸和恢復(fù)。但是,這個(gè)位段中還有一位是保留未用的,事實(shí)上這是IPv4基本包頭中還剩下的唯一的一位了。本發(fā)明就把這一位定義為“包頭擴(kuò)展(EXT)”標(biāo)志位。
這樣,如果一個(gè)IP包(指IPv4包,下同)頭部的“包頭擴(kuò)展(EXT)”標(biāo)志位為1,就說(shuō)明這個(gè)包頭帶有擴(kuò)展部,其位置(起點(diǎn))取決于包頭中的“包頭長(zhǎng)度”位段。為了說(shuō)明擴(kuò)展部的大小和擴(kuò)展部中可選項(xiàng)的數(shù)量,將其第一個(gè)長(zhǎng)字(4個(gè)字節(jié))用作“擴(kuò)展部描述”,其格式如下

這里將第一個(gè)字節(jié)的前4位作為特征碼,例如0xA,以便驗(yàn)證。剩余的4位用作標(biāo)志位。第二個(gè)字節(jié)中的前5位表示擴(kuò)展部的長(zhǎng)度,以長(zhǎng)字為單位;其余3位表示可選項(xiàng)個(gè)數(shù);最后兩個(gè)字節(jié)用作擴(kuò)展部的誤碼校驗(yàn)。當(dāng)然,擴(kuò)展部描述的格式可以與此不同,例如特征碼也可以不要、擴(kuò)展部長(zhǎng)度和可選項(xiàng)個(gè)數(shù)也可以各用8位,或者標(biāo)志位也可以不要,等等。擴(kuò)展部描述的具體格式并不影響本發(fā)明的實(shí)質(zhì)。
未經(jīng)定義的標(biāo)志位一律取0值。目前只定義其中的最低位為“加密”標(biāo)志位,表示擴(kuò)展部的內(nèi)容已加密,至于具體怎樣加密和解密則不屬于本發(fā)明的范疇。如“在互聯(lián)網(wǎng)中按路徑尋址和路由的方法”所述,不管兩端的路徑段如何,當(dāng)一個(gè)IP包進(jìn)入公網(wǎng)、并且還在公網(wǎng)中穿行時(shí),其包頭中的源地址和目標(biāo)地址兩個(gè)位段中就總是兩個(gè)公網(wǎng)地址,在典型情況下代表著兩個(gè)頂層網(wǎng)關(guān)、或曰“門(mén)戶網(wǎng)關(guān)”。也就是說(shuō),兩端的路徑段信息只是在門(mén)戶網(wǎng)關(guān)的轄區(qū)內(nèi)才受倒關(guān)心,對(duì)于公網(wǎng)中的節(jié)點(diǎn)則并無(wú)意義。而網(wǎng)上對(duì)IP包的偷聽(tīng)、欄截、偽造等等惡意行為,則大多發(fā)生于公網(wǎng)中。因此,將擴(kuò)展部的內(nèi)容加密,就使公網(wǎng)中的偷聽(tīng)者不能確定IP包的具體目標(biāo)是誰(shuí),從而提高了安全性。
在使用中,并非先要把包頭中原來(lái)就用于可選項(xiàng)的空間用完以后才加上擴(kuò)展部,特別是“源端路徑段”和“目標(biāo)端路徑段”可選項(xiàng)更是應(yīng)該放在擴(kuò)充部分,這樣才能對(duì)骨干網(wǎng)路由器透明。所以,如果一個(gè)IP包中除此之外沒(méi)有別的可選項(xiàng),那么其包頭中的“包頭長(zhǎng)度”為5、即20字節(jié),而包頭擴(kuò)展標(biāo)志位EXT為1,整個(gè)包中從第21個(gè)字節(jié)開(kāi)始為擴(kuò)展部,擴(kuò)展部后面才是報(bào)文(數(shù)據(jù))。這樣,由于擴(kuò)展部的容量可以超過(guò)40字節(jié),“源端路徑段”和“目標(biāo)端路徑段”的長(zhǎng)度就都可以超過(guò)4個(gè)IP地址。換言之,內(nèi)網(wǎng)的層次可以超過(guò)3層。
擴(kuò)展部目前的用途是載送“源端路徑段”和“目標(biāo)端路徑段”可選項(xiàng),但是并不排除將來(lái)有其它可選項(xiàng)出現(xiàn)。
如“在互聯(lián)網(wǎng)中按路徑尋址和路由的方法”的說(shuō)明書(shū)所述,一般而言,一個(gè)IP包從源節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的傳輸可以依次分為三段。第一段為源端路徑段,這是一段內(nèi)網(wǎng)路徑段,如果源節(jié)點(diǎn)不在內(nèi)網(wǎng)中(源節(jié)點(diǎn)有公網(wǎng)地址)則不存在源端路徑段。第二段為公網(wǎng)路徑段,IP包頭中的目標(biāo)地址和源地址兩個(gè)位段在公網(wǎng)路徑段中保持不變。第三段為目標(biāo)端路徑段,這又是一段內(nèi)網(wǎng)路徑段,如果目標(biāo)節(jié)點(diǎn)不在內(nèi)網(wǎng)中(目標(biāo)節(jié)點(diǎn)有公網(wǎng)地址)則不存在目標(biāo)端路徑段。
采用了“在互聯(lián)網(wǎng)中按路徑尋址和路由的方法”、并進(jìn)一步采用本方法以后,對(duì)公網(wǎng)路徑段中的路由器無(wú)任何要求,這些路由器無(wú)需任何改動(dòng),因?yàn)檫@些路由器本來(lái)就會(huì)忽略包頭擴(kuò)展標(biāo)志位。
對(duì)于IP包的發(fā)送方的要求● 根據(jù)“源端路徑段”和“目標(biāo)端路徑段”可選項(xiàng)的需要與否和大小計(jì)算出擴(kuò)展部的大小;● 根據(jù)擴(kuò)展部的大小在包頭與有效載荷之間插入擴(kuò)展部;
● 將“源端路徑段”和“目標(biāo)端路徑段”可選項(xiàng)填寫(xiě)到擴(kuò)展部中;● 設(shè)置擴(kuò)展部描述,并計(jì)算和填寫(xiě)擴(kuò)展部的誤碼效驗(yàn)。
● 將包頭中“總長(zhǎng)度”位段的值增加擴(kuò)展部的大??;● 將包頭中的包頭擴(kuò)展標(biāo)志位設(shè)置成1;● 將包頭中的“禁止分割”標(biāo)志位也設(shè)置成1,以防沿途的路由器因緩沖區(qū)不夠大而加以分割。
對(duì)于IP包的接收方的要求● 根據(jù)包頭擴(kuò)展標(biāo)志位的值確定接收到的IP包中是否帶有擴(kuò)展部;● 如果有,則找到擴(kuò)展部,根據(jù)擴(kuò)展部的大小計(jì)算并核對(duì)擴(kuò)展部的誤碼效驗(yàn)。
● 如果帶有源地址路徑段可選項(xiàng),就記錄下來(lái)供回信之需。
● 根據(jù)包頭的大小和擴(kuò)展部的大小找到包中的有效載荷;● 根據(jù)擴(kuò)展部的大小調(diào)整有效載荷的長(zhǎng)度,達(dá)到從包中剔除擴(kuò)展部的效果。
而對(duì)于源端路徑段和目標(biāo)端路徑段所涉及的網(wǎng)關(guān),則要求● 根據(jù)包頭擴(kuò)展標(biāo)志位的值確定接收到的IP包中是否帶有擴(kuò)展部;● 如果有,則找到擴(kuò)展部,根據(jù)擴(kuò)展部的大小計(jì)算并核對(duì)擴(kuò)展部的誤碼效驗(yàn)。
● 按“在互聯(lián)網(wǎng)中按路徑尋址和路由的方法”所述處理源端路徑段、目標(biāo)端路徑段、和包頭中的目標(biāo)地址/源地址位段。
如果源端或目標(biāo)端內(nèi)網(wǎng)中除網(wǎng)關(guān)以外還有路由器,則對(duì)這些路由器也無(wú)任何要求,這些路由器也無(wú)需任何改動(dòng);因?yàn)橐粊?lái)這些路由器本來(lái)就會(huì)忽略包頭擴(kuò)展標(biāo)志位,二來(lái)此時(shí)包頭中的目標(biāo)地址位段必定指向上一層網(wǎng)關(guān),只要按常規(guī)路由即可。
最后,對(duì)于無(wú)需進(jìn)入公網(wǎng)、只在內(nèi)網(wǎng)中就能到達(dá)目標(biāo)節(jié)點(diǎn)的IP包而言,固然可以延用“在互聯(lián)網(wǎng)中按路徑尋址和路由的方法”中所述的規(guī)范格式的路徑段描述,即一個(gè)公網(wǎng)地址后隨若干私網(wǎng)地址的序列,而如“在互聯(lián)網(wǎng)中按路徑尋址和路由的方法”中所述由沿途的各個(gè)內(nèi)網(wǎng)網(wǎng)關(guān)對(duì)路徑加以優(yōu)化、消去兩個(gè)路徑段描述中的公共部分。另一方面,這樣的優(yōu)化也可以放在源節(jié)點(diǎn)發(fā)送[P包之前,以減輕沿途各個(gè)內(nèi)網(wǎng)網(wǎng)關(guān)的負(fù)擔(dān)。例如,要是源端路徑段為“101.202.10.11,192.168.100.31,10.40.120.3”,而目標(biāo)端路徑段為“101.202.10.11,192.168.100.31,10.40.120.5,192.168.10.22”,就可以在發(fā)送之前就把公共部分消去,于是源端路徑段成為“10.40.120.3”,而目標(biāo)端路徑段則成為“10.40.120.5,192.168.10.22”。進(jìn)一步,由于源端路徑段中只有一個(gè)地址,就可以不必使用源端路徑段可選項(xiàng)了。所以,如果源端路徑段和目標(biāo)端路徑段都在同一個(gè)頂層內(nèi)網(wǎng)的內(nèi)部,則源端路徑段和目標(biāo)端路徑段可以只是內(nèi)網(wǎng)地址的序列,而不必是“一個(gè)公網(wǎng)地址后隨若干內(nèi)網(wǎng)地址的序列”。相應(yīng)地,上述對(duì)發(fā)送方的要求中也要加上一條“對(duì)源端路徑段和目標(biāo)端路徑段可選項(xiàng)進(jìn)行可能的優(yōu)化,自頂向下地消去其公共部分”。反過(guò)來(lái)這也可以適用于“在互聯(lián)網(wǎng)中按路徑尋址和路由的方法”中所述的路徑段描述還要說(shuō)明,“在互聯(lián)網(wǎng)中按路徑尋址和路由的方法”中所述的內(nèi)網(wǎng)網(wǎng)關(guān)逐步改變包頭中的目標(biāo)地址位段是一種“規(guī)范”的處理方式,這樣做的好處是在相繼兩個(gè)網(wǎng)關(guān)之間還可以有普通(不支持路徑段描述可選項(xiàng))的路由器或三層交換機(jī)存在。因?yàn)檫@樣,才要求只要包中有源端路徑段可選項(xiàng)就必須也有目標(biāo)端路徑段可選項(xiàng),否則就沒(méi)有地方可以暫存真正的目標(biāo)地址??墒恰耙?guī)范”的處理方式并不是唯一可行的處理方式,如果不是逐步改變包頭中的目標(biāo)地址(盡管處理起來(lái)不便),那就不需要僅僅因?yàn)榘杏性炊寺窂蕉慰蛇x項(xiàng)就也要有目標(biāo)端路徑段可選項(xiàng)。當(dāng)然,這樣的實(shí)施細(xì)節(jié)并不改變本發(fā)明以及“在互聯(lián)網(wǎng)中按路徑尋址和路由的方法”的實(shí)質(zhì)。
下面進(jìn)一步給出有關(guān)算法的偽代碼描述。
發(fā)送IP包(用于主機(jī)或網(wǎng)關(guān)節(jié)點(diǎn))輸入目標(biāo)端路徑段描述,數(shù)據(jù)緩沖區(qū)指針及數(shù)據(jù)長(zhǎng)度,用作“草稿”的20字節(jié)“基本包頭”緩沖區(qū)。
用作“草稿”的包頭擴(kuò)展部緩沖區(qū)。
算法源端路徑段描述=本節(jié)點(diǎn)的路徑段描述;自頂向下(從公網(wǎng)地址開(kāi)始)比較源端路徑段描述和目標(biāo)端路徑段描述,并消去公共部分;if(源端路徑段長(zhǎng)度>1){根據(jù)源端路徑段描述構(gòu)建源端路徑段選擇項(xiàng);根據(jù)目標(biāo)端路徑段描述構(gòu)建目標(biāo)端路徑段選擇項(xiàng);將本節(jié)點(diǎn)的IP地址填寫(xiě)到基本包頭中的源地址位段;目標(biāo)地址=目標(biāo)端路徑段描述中的第一個(gè)地址(必是公網(wǎng)地址);將目標(biāo)地址填寫(xiě)到基本包頭中的目標(biāo)地址位段;}else /*無(wú)源端路徑段選擇項(xiàng) */
{將本節(jié)點(diǎn)的IP地址填寫(xiě)到基本包頭中的源地址位段;if(目標(biāo)端路徑段長(zhǎng)度>1){根據(jù)目標(biāo)端路徑段描述構(gòu)建目標(biāo)端路徑段選擇項(xiàng);}目標(biāo)地址=目標(biāo)端路徑段描述中的第一個(gè)地址(必是公網(wǎng)地址);將目標(biāo)地址填寫(xiě)到基本包頭中的目標(biāo)地址位段;}擴(kuò)展部長(zhǎng)度=源端路徑段選擇項(xiàng)長(zhǎng)度(如果有的話)+目標(biāo)端路徑段選擇項(xiàng)長(zhǎng)度(如果有的話)+4;if(擴(kuò)展部長(zhǎng)度>4)根據(jù)源端路徑段選擇項(xiàng)和目標(biāo)端路徑段選擇項(xiàng)構(gòu)建擴(kuò)展部;else擴(kuò)展部長(zhǎng)度=0; /*無(wú)擴(kuò)展部 */包頭長(zhǎng)度=(20字節(jié)+別的選擇項(xiàng)長(zhǎng)度(如果有的話))/4;根據(jù)包頭長(zhǎng)度設(shè)置基本包頭中的“包頭長(zhǎng)度”位段;把基本包頭中的版本號(hào)位段設(shè)置成4;基本包頭中其他位段的設(shè)置與傳統(tǒng)IPv4相同;根據(jù)(包頭長(zhǎng)度+擴(kuò)展部長(zhǎng)度+數(shù)據(jù)長(zhǎng)度)分配IP包緩沖區(qū)。將基本包頭、擴(kuò)展部、以及數(shù)據(jù)復(fù)制到IP包緩沖區(qū)中;將包頭中的總長(zhǎng)度位段設(shè)置成(包頭長(zhǎng)度+擴(kuò)展部長(zhǎng)度+數(shù)據(jù)長(zhǎng)度);if(擴(kuò)展部長(zhǎng)度>0){將包頭中的包頭擴(kuò)展標(biāo)志位設(shè)置成1;將包頭中的禁止分割標(biāo)志位設(shè)置成1}將IP包緩沖區(qū)交付鏈路層發(fā)送;/* 結(jié)束 */接收IP包(用于主機(jī)或網(wǎng)關(guān)節(jié)點(diǎn))輸入IP包緩沖區(qū)指針及包的長(zhǎng)度。
算法檢查包頭中的版本號(hào)位段;if(版本號(hào)==4){包頭長(zhǎng)度=包頭中的“包頭長(zhǎng)度”位段;if(包頭擴(kuò)展標(biāo)志位為1)/*有擴(kuò)展部*/{擴(kuò)展部起點(diǎn)=包頭長(zhǎng)度;擴(kuò)展部長(zhǎng)度=擴(kuò)展部描述中的長(zhǎng)度位段;對(duì)擴(kuò)展部進(jìn)行誤碼校驗(yàn);if(效驗(yàn)出錯(cuò)){將包丟棄,報(bào)錯(cuò),退出處理;}if(第一個(gè)可選項(xiàng)是源端路徑段)/*源端路徑段必須是第一個(gè)可選項(xiàng)*/{源端路徑段描述=源端路徑段可選項(xiàng);if(下一個(gè)可選項(xiàng)是目標(biāo)端路徑段){目標(biāo)端路徑段描述=目標(biāo)端路徑段可選項(xiàng);}else{報(bào)錯(cuò);/*只要有源端路徑段就必有目標(biāo)端路徑段*/}if(源端路徑段可選項(xiàng)中的指針不指向第一個(gè)地址)
{/*尚未進(jìn)入公網(wǎng)*/比較源端路徑段描述和目標(biāo)端路徑段描述;if(有公共部分開(kāi)且(公共部分的最后一個(gè)地址與本節(jié)點(diǎn)地址相符)){轉(zhuǎn)發(fā)IP包。/*見(jiàn)后*/}}}else /*無(wú)源端路徑段可選項(xiàng)*/if(第一個(gè)可選項(xiàng)是目標(biāo)端路徑段){目標(biāo)端路徑段描述=目標(biāo)端路徑段可選項(xiàng);}if(包頭中的目標(biāo)地址與本節(jié)點(diǎn)地址相符并且(無(wú)目標(biāo)端路徑段可選項(xiàng)或目標(biāo)端路徑段可選項(xiàng)中的指針指向最后一個(gè)地址)){對(duì)方路徑段描述=源端路徑段描述;/*供反向發(fā)送IP包時(shí)使用*/該IP包以本節(jié)點(diǎn)為目標(biāo),遞交給應(yīng)用層或上一層網(wǎng)絡(luò)規(guī)程;}else{轉(zhuǎn)發(fā)IP包。/*見(jiàn)后*/}}else/*無(wú)擴(kuò)展部*/
{傳統(tǒng)IPv4的處理。
}}else /*不是IPv4*/{其它規(guī)程(如IPv6)的處理;}/*結(jié)束*/轉(zhuǎn)發(fā)IP包(用于網(wǎng)關(guān)節(jié)點(diǎn))輸入IP包緩沖區(qū)指針及包的長(zhǎng)度,源端路徑段描述,目標(biāo)端路徑段描述。
算法包頭長(zhǎng)度=包頭中的“包頭長(zhǎng)度”位段;if(包頭擴(kuò)展標(biāo)志位為0)/*無(wú)擴(kuò)展部*/{常規(guī)的IP包轉(zhuǎn)發(fā);}擴(kuò)展部起點(diǎn)=包頭長(zhǎng)度;擴(kuò)展部長(zhǎng)度=擴(kuò)展部描述中的長(zhǎng)度位段;對(duì)擴(kuò)展部進(jìn)行誤碼效驗(yàn);if(效驗(yàn)出錯(cuò)){將包丟棄,報(bào)錯(cuò),退出處理;}檢查源端路徑可選項(xiàng)中的指針;if(無(wú)源端路徑段可選項(xiàng)或(源端路徑段可選項(xiàng)中的指針指向其頂層第一個(gè)地址并且該地址?。奖竟?jié)點(diǎn)地址)){/*已穿越公網(wǎng)到達(dá)目標(biāo)端,或源與目標(biāo)在同一個(gè)內(nèi)網(wǎng)樹(shù)中*/if(無(wú)目標(biāo)端路徑段可選項(xiàng)){傳統(tǒng)IPv4的處理;}else{if(目標(biāo)端路徑段可選項(xiàng)中的指針?biāo)福剑奖竟?jié)點(diǎn)地址){/*本節(jié)點(diǎn)在路徑描述中, 因而是網(wǎng)關(guān)*/使目標(biāo)端路徑段可選項(xiàng)中的指針指向下一個(gè)地址;將這個(gè)地址填寫(xiě)入包頭中的目標(biāo)地址位段;}else{/*本節(jié)點(diǎn)不在路徑描述中, 因而是普通路由器*/傳統(tǒng)IPv4內(nèi)網(wǎng)路由或三層交換;}}}else/*還在源端尚未進(jìn)入公網(wǎng),或源與目標(biāo)在同一個(gè)內(nèi)網(wǎng)樹(shù)中*/{if(源端路徑段可選項(xiàng)中的指針指向第一個(gè)地址){if(是公網(wǎng)地址){/*本節(jié)點(diǎn)是源端頂層網(wǎng)關(guān)*/
將本節(jié)點(diǎn)的公網(wǎng)地址填寫(xiě)入包頭中的源地址位段;使目標(biāo)端路徑段可選項(xiàng)中的指針指向第一個(gè)地址;將這個(gè)地址填寫(xiě)入包頭中的目標(biāo)地址位段;}else/*是經(jīng)過(guò)優(yōu)化的路徑段描述*/{將目標(biāo)端路徑段可選項(xiàng)中的第一個(gè)地址填寫(xiě)入包頭中的目標(biāo)地址位段;}}else/*并非頂層網(wǎng)關(guān),尚在源端路徑段中*/{if(源端路徑段可選項(xiàng)中的指針?biāo)福剑奖竟?jié)點(diǎn)地址){/*本節(jié)點(diǎn)在路徑描述中, 因而是網(wǎng)關(guān)*/if(源端路徑段可選項(xiàng)中的第一個(gè)地址是公網(wǎng)地址){/*路徑段描述未經(jīng)優(yōu)化,試行實(shí)事優(yōu)化*/比較源端路徑段描述和目標(biāo)端路徑段描述;if(有公共部分并且(公共部分以后的第一個(gè)地址與本節(jié)點(diǎn)地址相符)){使源端路徑段可選項(xiàng)中的指針指向第一個(gè)地址;/*裝作已經(jīng)穿越公網(wǎng)*/在目標(biāo)端路徑段可選項(xiàng)中找到公共部分以后的第一個(gè)地址;使目標(biāo)端路徑段可選項(xiàng)中的指針指向該地址;并將該地址填寫(xiě)入包頭中的目標(biāo)地址位段;/*裝作已經(jīng)路由到了公共部分的最后一個(gè)節(jié)點(diǎn)*/}}
else{使源端路徑段可選項(xiàng)中的指針指向上一層地址;將這個(gè)地址填寫(xiě)入包頭中的目標(biāo)地址位段;}}else{/*本節(jié)點(diǎn)不在路徑描述中,因而是普通路由器*/傳統(tǒng)IPv4內(nèi)網(wǎng)路由或三層交換;}}}根據(jù)包頭中的目標(biāo)地址位段進(jìn)行路由;/*查路由表*/發(fā)送IP包;/*結(jié)束*/這些算法可以通過(guò)軟件實(shí)現(xiàn),也可以通過(guò)集成電路芯片(或芯片組)以硬件形式實(shí)現(xiàn)。具體的實(shí)現(xiàn)形式與手段并不改變本發(fā)明在IP網(wǎng)絡(luò)中按路徑尋址的實(shí)質(zhì)。此外,實(shí)際實(shí)現(xiàn)時(shí)還可對(duì)這些算法加以優(yōu)化,這同樣也不改變本發(fā)明的實(shí)質(zhì)。
權(quán)利要求
1.一種通過(guò)擴(kuò)展IPv4包頭實(shí)現(xiàn)在互聯(lián)網(wǎng)中按路徑尋址和路由的方法,其特征是1)將IPv4包頭“標(biāo)志”位段中的最高位定義成“包頭擴(kuò)展”標(biāo)志位EXT;2)如果一個(gè)IPv4包的“包頭擴(kuò)展”標(biāo)志位為1,就說(shuō)明在IPv4包頭與包的有效載荷之間存在著一個(gè)擴(kuò)展部;3)包頭擴(kuò)展部在包中的起點(diǎn)由包頭中“包頭長(zhǎng)度”位段的值確定;4)包頭擴(kuò)展部有個(gè)擴(kuò)展部描述,說(shuō)明擴(kuò)展部的長(zhǎng)度;5)包頭擴(kuò)展部的長(zhǎng)度計(jì)入包的總長(zhǎng)度,就是包頭中“包長(zhǎng)度”位段的值;6)包頭擴(kuò)展部中含有至少一個(gè)可選項(xiàng)。
2.根據(jù)權(quán)利要求1所述通過(guò)擴(kuò)展IPv4包頭實(shí)現(xiàn)在互聯(lián)網(wǎng)中按路徑尋址和路由的方法,其特征是1)需要使用新增加的兩個(gè)可選項(xiàng)“源端路徑段”和“目標(biāo)端路徑段”時(shí),將這兩個(gè)可選項(xiàng)放在包頭擴(kuò)展部中。
3.根據(jù)權(quán)利要求2所述通過(guò)擴(kuò)展IPv4包頭實(shí)現(xiàn)在互聯(lián)網(wǎng)中按路徑尋址和路由的方法,其特征是1)“源端路徑段”和“目標(biāo)端路徑段”可選項(xiàng)都可以是不帶公網(wǎng)地址的私網(wǎng)地址序列;2)包的發(fā)送方先自頂向下比對(duì)其“目標(biāo)端路徑段”地址序列和“源端路徑段”地址序列;如果部分重合就說(shuō)明目標(biāo)節(jié)點(diǎn)與源節(jié)點(diǎn)都在同一個(gè)頂層內(nèi)網(wǎng)網(wǎng)關(guān)下面,因而可以將兩個(gè)路徑段地址序列中的公共部分消去,形成只含私網(wǎng)地址的路徑段可選項(xiàng)。
全文摘要
本發(fā)明涉及一種通過(guò)擴(kuò)展IPv4包頭實(shí)現(xiàn)在互聯(lián)網(wǎng)中按路徑尋址和路由的方法。將IPv4包頭“標(biāo)志”位段中的最高位定義成“包頭擴(kuò)展”標(biāo)志位EXT;如果一個(gè)IPv4包的“包頭擴(kuò)展”標(biāo)志位為1,說(shuō)明在IPv4包頭與包的有效載荷之間存在著一個(gè)擴(kuò)展部;包頭擴(kuò)展部在包中的起點(diǎn)由包頭中“包頭長(zhǎng)度”位段的值確定;包頭擴(kuò)展部有個(gè)擴(kuò)展部描述;包頭擴(kuò)展部的長(zhǎng)度計(jì)入包的總長(zhǎng)度;包頭擴(kuò)展部中含有至少一個(gè)可選項(xiàng)。針對(duì)在互聯(lián)網(wǎng)中按路徑尋址和路由,包頭擴(kuò)展部中可帶有“源端路徑段”和“目標(biāo)端路徑段”可選項(xiàng)。本發(fā)明優(yōu)點(diǎn)是包頭擴(kuò)充部的長(zhǎng)度不受限制,使得路徑段描述的長(zhǎng)度不受限制,包頭中的擴(kuò)展標(biāo)志對(duì)于骨干路由器是“透明”的,不會(huì)干擾骨干路由器中的硬件加速。
文檔編號(hào)H04L12/56GK1588912SQ20041006622
公開(kāi)日2005年3月2日 申請(qǐng)日期2004年9月9日 優(yōu)先權(quán)日2004年9月9日
發(fā)明者毛德操 申請(qǐng)人:毛德操, 浙江浙大網(wǎng)新科技股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
泾阳县| 阿拉善右旗| 望奎县| 盐津县| 岫岩| 阳信县| 合作市| 常德市| 安顺市| 西平县| 延长县| 泽州县| 西安市| 利川市| 阿拉尔市| 南安市| 渑池县| 天等县| 三江| 连云港市| 阳西县| 卓尼县| 临洮县| 广饶县| 麻阳| 凌海市| 四会市| 文山县| 恭城| 自贡市| 莫力| 赣榆县| 蓬莱市| 灵宝市| 兰州市| 凤山县| 剑川县| 汝城县| 桃源县| 内江市| 锦屏县|