本發(fā)明涉及計(jì)算機(jī)通訊領(lǐng)域,尤其涉及一種網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性方法和裝置。
背景技術(shù):
網(wǎng)絡(luò)連通性檢測(cè)技術(shù)ping技術(shù)是ip網(wǎng)絡(luò)中用于測(cè)試網(wǎng)絡(luò)連通性的一種技術(shù)。目前作為運(yùn)營(yíng)商或企業(yè)數(shù)據(jù)中心的網(wǎng)關(guān)設(shè)備基本上都是由主控和線卡組成的,網(wǎng)關(guān)設(shè)備在接收到終端發(fā)送的ping請(qǐng)求時(shí),基本上都是通過(guò)線卡獲取終端的控制協(xié)議報(bào)文icmp報(bào)文,然后線卡將獲取到的icmp報(bào)文上報(bào)給主控的進(jìn)行處理,而當(dāng)大量終端用戶同時(shí)ping網(wǎng)關(guān)設(shè)備時(shí),且其它協(xié)議報(bào)文也在主控中處理時(shí),網(wǎng)關(guān)設(shè)備的主控利用率會(huì)升高,導(dǎo)致主控處理icmp報(bào)文的時(shí)間過(guò)長(zhǎng),響應(yīng)終端ping請(qǐng)求的時(shí)間也延長(zhǎng)了,從而降低了網(wǎng)關(guān)設(shè)備響應(yīng)終端ping請(qǐng)求的速度。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的主要目的在于提出一種網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性方法和裝置,旨在解決大量終端用戶同時(shí)ping網(wǎng)關(guān)設(shè)備時(shí),網(wǎng)關(guān)設(shè)備響應(yīng)終端ping請(qǐng)求的速度低的技術(shù)問題。
為實(shí)現(xiàn)上述目的,本發(fā)明提供的一種網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性方法,所述網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性方法包括以下步驟:
在接收到終端發(fā)送的網(wǎng)間控制協(xié)議報(bào)文即icmp報(bào)文時(shí),線卡獲取所述icmp報(bào)文的源ip地址和目的ip地址;
在所述目的ip地址與其所在的網(wǎng)關(guān)設(shè)備的ip地址匹配,且所述源ip地址與所述網(wǎng)關(guān)設(shè)備的路由表中的IP地址匹配時(shí),所述線卡基于所述icmp報(bào)文生成響應(yīng)icmp報(bào)文;
所述線卡反饋所述響應(yīng)icmp報(bào)文至所述終端。
優(yōu)選地,所述線卡基于所述icmp報(bào)文生成響應(yīng)icmp報(bào)文的步驟包括:
所述線卡計(jì)算所述icmp報(bào)文的校驗(yàn)和并判斷所述校驗(yàn)和是否為0;
若所述校驗(yàn)和為0,所述線卡互換所述icmp報(bào)文的源ip地址和目的ip地址;
所述線卡計(jì)算互換ip地址后的icmp報(bào)文中icmp報(bào)文頭的校驗(yàn)和,并將計(jì)算后的校驗(yàn)和寫入到icmp報(bào)文頭對(duì)應(yīng)的位置;
所述線卡計(jì)算整個(gè)icmp報(bào)文的校驗(yàn)和,并將計(jì)算后的校驗(yàn)和寫入到icmp報(bào)文對(duì)應(yīng)的位置;
所述線卡將所述網(wǎng)絡(luò)設(shè)備的mac地址作為源mac地址以及將所述終端對(duì)應(yīng)的mac地址作為目的mac地址,并將所述源mac地址和目的mac地址封裝至所述icmp報(bào)文中,以生成響應(yīng)icmp報(bào)文。
優(yōu)選地,所述線卡反饋所述響應(yīng)icmp報(bào)文至所述終端的步驟包括:
所述線卡查找路由表中與所述源ip地址對(duì)應(yīng)的下一跳表的輸出端口;
所述線卡將所述響應(yīng)icmp報(bào)文通過(guò)所述輸出端口發(fā)送給終端。
優(yōu)選地,所述在接收到終端發(fā)送的網(wǎng)間控制協(xié)議報(bào)文即icmp報(bào)文時(shí),所述線卡獲取所述icmp報(bào)文的源ip地址和目的ip地址的步驟之前,所述網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性方法包括:
在接收到終端發(fā)送的報(bào)文時(shí),所述線卡檢測(cè)所述網(wǎng)關(guān)設(shè)備是否處于快速響應(yīng)icmp報(bào)文的模式;
若檢測(cè)到網(wǎng)關(guān)設(shè)備處于快速響應(yīng)icmp報(bào)文的模式,所述線卡判斷當(dāng)前接收到的報(bào)文是否為icmp報(bào)文。
優(yōu)選地,所述網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性方法還包括:
在接收到終端發(fā)送的報(bào)文,且所述報(bào)文不是icmp報(bào)文時(shí),所述線卡將接收到的報(bào)文發(fā)送給主控,以供主控響應(yīng)所述報(bào)文。
此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性裝置,所述網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性裝置包括:
獲取模塊,用于在接收到終端發(fā)送的網(wǎng)間控制協(xié)議報(bào)文即icmp報(bào)文時(shí),獲取所述icmp報(bào)文的源ip地址和目的ip地址;
生成模塊,用于在所述目的ip地址與其所在的網(wǎng)關(guān)設(shè)備的ip地址匹配,且所述源ip地址與所述網(wǎng)關(guān)設(shè)備的路由表中的ip地址匹配時(shí),基于所述icmp報(bào)文生成響應(yīng)icmp報(bào)文;
反饋模塊,用于反饋所述響應(yīng)icmp報(bào)文至所述終端。
優(yōu)選地,所述生成模塊包括:
計(jì)算單元,用于計(jì)算所述icmp報(bào)文的校驗(yàn)和并判斷所述校驗(yàn)和是否為0;
互換單元,用于若所述校驗(yàn)和為0,互換所述icmp報(bào)文的源ip地址和目的ip地址;
處理單元,用于計(jì)算互換ip地址后的icmp報(bào)文中icmp報(bào)文頭的校驗(yàn)和,并將計(jì)算后的校驗(yàn)和寫入到icmp報(bào)文頭對(duì)應(yīng)的位置;
所述處理單元,還用于計(jì)算整個(gè)icmp報(bào)文的校驗(yàn)和,并將計(jì)算后的校驗(yàn)和寫入到icmp報(bào)文對(duì)應(yīng)的位置;
生成單元,用于將所述網(wǎng)絡(luò)設(shè)備的mac地址作為源mac地址以及將所述終端對(duì)應(yīng)的mac地址作為目的mac地址,并將所述源mac地址和目的mac地址封裝至所述icmp報(bào)文中,以生成響應(yīng)icmp報(bào)文。
優(yōu)選地,所述反饋模塊包括:
查找單元,用于查找路由表中與所述源ip地址對(duì)應(yīng)的下一跳表的輸出端口;
發(fā)送單元,用于將所述響應(yīng)icmp報(bào)文通過(guò)所述輸出端口發(fā)送給終端。
優(yōu)選地,所述網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性裝置還包括:
檢測(cè)模塊,用于在接收到終端發(fā)送的報(bào)文時(shí),檢測(cè)所述網(wǎng)關(guān)設(shè)備是否處于快速響應(yīng)icmp報(bào)文模式;
判斷模塊,用于若檢測(cè)到網(wǎng)關(guān)設(shè)備處于快速響應(yīng)icmp報(bào)文模式,判斷當(dāng)前接收到的報(bào)文是否為icmp報(bào)文。
優(yōu)選地,所述網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性裝置還包括:
處理模塊,用于在接收到終端發(fā)送的報(bào)文,且所述報(bào)文不是icmp報(bào)文時(shí),將接收到的報(bào)文發(fā)送給主控,以供主控響應(yīng)所述報(bào)文。
本發(fā)明提出的網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性方法和裝置,網(wǎng)關(guān)設(shè)備的線卡先獲取icmp報(bào)文的源ip地址和目的ip地址,再對(duì)所述icmp報(bào)文進(jìn)行處理以生成響應(yīng)icmp報(bào)文,最后將所述響應(yīng)icmp報(bào)文發(fā)送給終端,以響應(yīng)終端ping網(wǎng)關(guān)設(shè)備的請(qǐng)求,而不是通過(guò)線卡獲取終端的icmp報(bào)文,然后線卡再將獲取到的icmp報(bào)文上報(bào)給主控進(jìn)行處理,因?yàn)橹骺匾幚砀黝悎?bào)文,因此響應(yīng)icmp 報(bào)文的時(shí)間會(huì)變長(zhǎng),而通過(guò)線卡直接處理icmp報(bào)文并發(fā)送給終端的方式,提高了網(wǎng)關(guān)設(shè)備響應(yīng)終端ping請(qǐng)求的速度。
附圖說(shuō)明
圖1為本發(fā)明網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性方法第一實(shí)施例的流程示意圖;
圖2為本發(fā)明所述線卡基于所述icmp報(bào)文生成響應(yīng)icmp報(bào)文較佳實(shí)施例的流程示意圖;
圖3為本發(fā)明所述線卡反饋所述響應(yīng)icmp報(bào)文至所述終端較佳實(shí)施例的流程示意圖;
圖4為本發(fā)明網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性方法第四實(shí)施例的流程示意圖;
圖5為本發(fā)明網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性裝置第一實(shí)施例的功能模塊示意圖;
圖6為圖5中生成模塊的較佳實(shí)施例細(xì)化功能模塊示意圖;
圖7為圖5中反饋模塊的較佳實(shí)施例細(xì)化功能模塊示意圖;
圖8為本發(fā)明網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性裝置第四實(shí)施例的功能模塊示意圖。
本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說(shuō)明。
具體實(shí)施方式
應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明提供一種網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性方法。
參照?qǐng)D1,圖1為本發(fā)明網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性方法第一實(shí)施例的流程示意圖。
本實(shí)施例提出一種網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性方法,所述網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性方法包括:
步驟S10,在接收到終端發(fā)送的網(wǎng)間控制協(xié)議報(bào)文即icmp報(bào)文時(shí),線卡獲取所述icmp報(bào)文的源ip地址和目的ip地址;
在本實(shí)施例中,若接收到終端發(fā)送的報(bào)文為icmp報(bào)文,所述線卡先提取 所述icmp報(bào)文的指針,所述指針是2層報(bào)文頭的指針,需要通過(guò)偏移12個(gè)字節(jié),指向報(bào)文的vlan字段,所述線卡再判斷所述icmp報(bào)文是否是多vlan標(biāo)簽類型的報(bào)文,進(jìn)一步獲取icmp報(bào)文的vlan標(biāo)簽的個(gè)數(shù),可以理解的是,icmp報(bào)文源mac地址和目的mac地址各占用6個(gè)字節(jié),一共占用12個(gè)字節(jié),一個(gè)vlan占用4個(gè)字節(jié),再乘以vlan的標(biāo)簽數(shù)得到vlan信息一共占用的字節(jié)數(shù),這樣mac地址加上vlan一共占用的字節(jié)數(shù)就是3層報(bào)文頭相對(duì)于2層報(bào)文頭的偏移量,報(bào)文的2層頭指針加上這個(gè)偏移量就指向了報(bào)文的3層信息頭,3層信息頭的前4個(gè)字節(jié)就是報(bào)文的目的ip地址,5-8個(gè)字節(jié)是報(bào)文的源ip地址,通過(guò)這種方法我們就獲取到了報(bào)文的源ip和目的ip地址。
步驟S20,在所述目的ip地址與其所在的網(wǎng)關(guān)設(shè)備的ip地址匹配,且所述源ip地址與所述網(wǎng)關(guān)設(shè)備的路由表中的IP地址匹配時(shí),所述線卡基于所述icmp報(bào)文生成響應(yīng)icmp報(bào)文;
在本實(shí)施例中,所述步驟S20包括步驟:
步驟A,所述線卡判斷所述目的ip地址是否是其所在的網(wǎng)關(guān)設(shè)備的網(wǎng)關(guān)ip地址;
在本實(shí)施例中,所述線卡判斷所述目的ip地址是否是網(wǎng)關(guān)設(shè)備的網(wǎng)關(guān)ip地址優(yōu)選方式為:線卡獲取到icmp報(bào)文的目的ip后,判斷所述ip是否是網(wǎng)關(guān)ip。一般來(lái)說(shuō),在配置網(wǎng)關(guān)ip的時(shí)候,網(wǎng)關(guān)設(shè)備會(huì)下發(fā)主機(jī)路由給硬件芯片路由表,即網(wǎng)關(guān)設(shè)備的網(wǎng)關(guān)ip,同時(shí)網(wǎng)關(guān)設(shè)備也會(huì)保存一份相同的記錄在軟件路由表中,不同類型的ip會(huì)有不同的類型標(biāo)記,網(wǎng)關(guān)ip會(huì)被設(shè)備標(biāo)記為本地ip標(biāo)識(shí),網(wǎng)關(guān)的環(huán)回口地址也會(huì)有一個(gè)loopback(環(huán)回地址)標(biāo)識(shí)。用目的ip去查找軟件路由表,如果找到該ip在主機(jī)路由表中,并且該ip的標(biāo)識(shí)是本地ip標(biāo)識(shí)或者是loopback標(biāo)識(shí),則證明該icmp報(bào)文是其他設(shè)備ping網(wǎng)關(guān)ip地址的,需要我們進(jìn)行快速的回包處理,即需要進(jìn)行ping請(qǐng)求的響應(yīng)。
步驟B,所述線卡判斷所述源ip地址是否存在所述網(wǎng)關(guān)設(shè)備的路由表中;
在本實(shí)施例中,所述線卡判斷所述源ip地址是否存在所述網(wǎng)關(guān)設(shè)備的路由表中優(yōu)選方式為:所述線卡判斷icmp報(bào)文的源ip地址是否在網(wǎng)關(guān)設(shè)備的路由表中,這么做的目的是需要判斷后續(xù)中將源ip地址和目的ip地址互換之后,最后發(fā)送出去的報(bào)文的目的ip(即收到的icmp報(bào)文的源ip)能找到響應(yīng)的路由表,即可以找到實(shí)際的出端口。進(jìn)一步地,如果判斷源ip地址沒有在網(wǎng)關(guān) 設(shè)備的路由表中,那么就不會(huì)繼續(xù)后面的流程,而是把icmp報(bào)文上送到主控的進(jìn)行處理。
步驟C,所述線卡處理所述icmp報(bào)文,以生成響應(yīng)的icmp報(bào)文。
在本實(shí)施例中,優(yōu)選所述線卡對(duì)所述icmp報(bào)文的校驗(yàn)和進(jìn)行計(jì)算和檢驗(yàn)等操作,并根據(jù)校驗(yàn)和的檢驗(yàn)結(jié)果對(duì)源ip地址和目的ip地址進(jìn)行互換等,以供最后發(fā)送出去的icmp報(bào)文的目的ip(即收到的icmp報(bào)文的源ip)能找到響應(yīng)的路由表,即可以找到實(shí)際的輸出端口,最后,所述線卡獲取所述網(wǎng)絡(luò)設(shè)備的源mac地址和所述路由表的目的mac地址,將所述源mac地址和目的mac地址封裝至所述icmp報(bào)文中,以生成響應(yīng)icmp報(bào)文。步驟S30,所述線卡反饋所述響應(yīng)icmp報(bào)文至所述終端。
本實(shí)施例提出的網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性方法,網(wǎng)關(guān)設(shè)備的線卡先獲取icmp報(bào)文的源ip地址和目的ip地址,再對(duì)所述icmp報(bào)文進(jìn)行處理以生成響應(yīng)icmp報(bào)文,最后將所述響應(yīng)icmp報(bào)文發(fā)送給終端,以響應(yīng)終端ping網(wǎng)關(guān)設(shè)備的請(qǐng)求,而不是通過(guò)線卡獲取終端的icmp報(bào)文,然后線卡再將獲取到的icmp報(bào)文上報(bào)給主控進(jìn)行處理,因?yàn)橹骺匾幚砀黝悎?bào)文,因此響應(yīng)icmp報(bào)文的時(shí)間會(huì)變長(zhǎng),而通過(guò)線卡直接處理icmp報(bào)文并發(fā)送給終端的方式,提高了網(wǎng)關(guān)設(shè)備響應(yīng)終端ping請(qǐng)求的速度。
進(jìn)一步地,為了增加網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性的靈活性,基于第一實(shí)施例提出本發(fā)明網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性方法的第二實(shí)施例,在本實(shí)施例,參照?qǐng)D2,所述步驟S20包括:
步驟S21,所述線卡計(jì)算所述icmp報(bào)文的校驗(yàn)和并判斷所述校驗(yàn)和是否為0;
在本實(shí)施例中,線卡先計(jì)算icmp報(bào)文的校驗(yàn)和并判斷所述校驗(yàn)和是否為0,具體算法就是:把icmp報(bào)文的首部看成以16位為單位的數(shù)字組成,依次進(jìn)行二進(jìn)制反碼求和,例如,當(dāng)前獲取的icmp報(bào)文的首部是32位的數(shù)字,將32的數(shù)字分為兩個(gè)16進(jìn)制數(shù),分別進(jìn)行二進(jìn)制反碼計(jì)算,并將計(jì)算的結(jié)構(gòu)求和;然后檢查計(jì)算出的校驗(yàn)和的結(jié)果是否為0,如果不為0就是代表校驗(yàn)和有誤不進(jìn)行后續(xù)的處理,返回錯(cuò)誤,即停止下列步驟操作。
步驟S22,若所述校驗(yàn)和為0,所述線卡互換所述icmp報(bào)文的源ip地址 和目的ip地址;
在本實(shí)施例中,所述線卡根據(jù)之前找到的指向報(bào)文的3層頭指針信息,獲取到報(bào)文的源ip地址和目的ip地址,然后把換后的目的ip地址寫入3層指針的前4個(gè)字節(jié)中,把換后的源ip地址寫到3層指針偏移的5到8字節(jié)中,這樣完成了報(bào)文的源ip地址和目的ip地址的互換。
步驟S23,所述線卡計(jì)算互換ip地址后的icmp報(bào)文中icmp報(bào)文頭的校驗(yàn)和,并將計(jì)算后的校驗(yàn)和寫入到icmp報(bào)文頭對(duì)應(yīng)的位置;
在本實(shí)施例中,所述線卡對(duì)互換了源ip地址和目的ip地址后的報(bào)文的校驗(yàn)和進(jìn)行重新計(jì)算,計(jì)算的算法是:把需校驗(yàn)的數(shù)據(jù)看成以16位為單位的數(shù)字組成,依次進(jìn)行二進(jìn)制反碼求和;把得到的結(jié)果存入到icmp報(bào)文頭對(duì)應(yīng)的位置中。
步驟S24,所述線卡計(jì)算整個(gè)icmp報(bào)文的校驗(yàn)和,并將計(jì)算后的校驗(yàn)和寫入到icmp報(bào)文對(duì)應(yīng)的位置;
在本實(shí)施例中,所述線卡還可事先設(shè)置ip報(bào)文的ttl值的,優(yōu)選將ttl值設(shè)置為默認(rèn)值255,可以理解的是,所述把ip報(bào)文的time to live字段即指定ip包被路由器丟棄之前允許通過(guò)的最大網(wǎng)段數(shù)量設(shè)置為默認(rèn)值255,并再次計(jì)算整個(gè)ip報(bào)文的校驗(yàn)和,將計(jì)算的校驗(yàn)和寫入到icmp報(bào)文對(duì)應(yīng)的位置。
步驟S25,所述線卡將所述網(wǎng)絡(luò)設(shè)備的mac地址作為源mac地址以及將所述終端對(duì)應(yīng)的mac地址作為目的mac地址,并將所述源mac地址和目的mac地址封裝至所述icmp報(bào)文中,以生成響應(yīng)icmp報(bào)文。
在本實(shí)施例中,所述線卡將所述源mac地址和目的mac地址封裝至所述icmp報(bào)文中的方式優(yōu)選為所述線卡先添加所述路由表相關(guān)聯(lián)的下一跳表的mac地址到icmp報(bào)文的目的mac地址中,添加網(wǎng)關(guān)設(shè)備的網(wǎng)關(guān)mac地址到icmp報(bào)文的源mac地址中,然后將根據(jù)所述icmp報(bào)文的源ip地址在所述網(wǎng)關(guān)設(shè)備中的對(duì)應(yīng)的路由表的下一跳表,查找到所述源ip地址的路由表的下一跳表,將所述查找到的下一跳表作為出端口,并將封裝了源mac地址和目的mac地址的icmp報(bào)文發(fā)送給終端,以完成響應(yīng)終端ping網(wǎng)關(guān)設(shè)備的請(qǐng)求。
進(jìn)一步地,為了增加網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性的靈活性,基于第一實(shí)施例提出本發(fā)明網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性方法的第三實(shí)施例,在本實(shí)施例,參 照?qǐng)D3,所述步驟S30包括:
步驟S31,所述線卡查找路由表中與所述源ip地址對(duì)應(yīng)的的下一跳表的輸出端口;
步驟S32,所述線卡將所述響應(yīng)icmp報(bào)文通過(guò)所述輸出端口發(fā)送給終端。
在本實(shí)施例中,可以理解的是,路由表中存儲(chǔ)源ip地址對(duì)應(yīng)的地址信息,但是,但是該地址信息不是源ip地址對(duì)應(yīng)的出端口,即所述路由表中的地址信息為快速響應(yīng)icmp報(bào)文的索引信息,當(dāng)在所述路由表找到所述源ip地址對(duì)應(yīng)地址信息時(shí),根據(jù)所述地址信息索引到下一跳表中,并確認(rèn)所述下一跳表中對(duì)應(yīng)的位置為響應(yīng)icmp報(bào)文的輸出端口。
進(jìn)一步地,為了增加網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性的靈活性,基于第一實(shí)施例提出本發(fā)明網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性方法的第四實(shí)施例,在本實(shí)施例,參照?qǐng)D4,所述步驟S10之前,所述網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性方法包括:
步驟S40,在接收到終端發(fā)送的報(bào)文時(shí),所述線卡檢測(cè)所述網(wǎng)關(guān)設(shè)備是否處于快速響應(yīng)icmp報(bào)文模式;
步驟S50,若檢測(cè)到網(wǎng)關(guān)設(shè)備處于快速響應(yīng)icmp報(bào)文模式,所述線卡判斷當(dāng)前接收到的報(bào)文是否為icmp報(bào)文。
在本實(shí)施例中,步驟S40之前包括配置開啟快速響應(yīng)ping請(qǐng)求指令的步驟,即用戶可通過(guò)快速響應(yīng)icmp報(bào)文的指令觸發(fā)快速響應(yīng)ping網(wǎng)關(guān)設(shè)備的指令,當(dāng)用戶處于快速響應(yīng)ping網(wǎng)關(guān)設(shè)備的模式時(shí),在接收到終端發(fā)送的ping請(qǐng)求時(shí),網(wǎng)關(guān)設(shè)備將觸發(fā)指令,并進(jìn)入快速處理icmp報(bào)文的流程;若檢測(cè)到網(wǎng)關(guān)設(shè)備處于快速響應(yīng)icmp報(bào)文模式,所述線卡判斷當(dāng)前接收到的報(bào)文是否為icmp報(bào)文,即線卡先獲取所述終端對(duì)應(yīng)的報(bào)文,并判斷所述獲取的報(bào)文是否為icmp報(bào)文,所述判斷所述獲取的報(bào)文是否為icmp報(bào)文的方式優(yōu)選通過(guò)acl規(guī)則(一種訪問控制技術(shù))進(jìn)行判斷,所述利用acl判斷的方式優(yōu)選通過(guò)獲取報(bào)文的唯一標(biāo)識(shí)如協(xié)議號(hào),根據(jù)獲取的協(xié)議號(hào)即可判斷當(dāng)前獲取的報(bào)文的類型是否與icmp報(bào)文的類型相匹配,若匹配,線卡即可判斷收到的報(bào)文為icmp報(bào)文。并進(jìn)行快速響應(yīng)ping請(qǐng)求的過(guò)程,若不是,進(jìn)入報(bào)文正常處理流程,即通過(guò)線卡獲取報(bào)文,線卡再將獲取的報(bào)文上送給主控,通過(guò)主控進(jìn)行一系列響應(yīng)過(guò)程。
進(jìn)一步地,為了增加網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性的靈活性,基于第一實(shí)施例提出本發(fā)明網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性方法的第五實(shí)施例,在本實(shí)施例,所述網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性方法還包括:
在接收到終端發(fā)送的報(bào)文,且所述報(bào)文不是icmp報(bào)文時(shí),所述線卡將接收到的報(bào)文發(fā)送給主控,以供主控響應(yīng)所述報(bào)文。
在本實(shí)施例中,優(yōu)選判斷接收到的是否為icmp報(bào)文,若不是,按照正常的流程發(fā)送主控,以供主控響應(yīng)所述報(bào)文。
本發(fā)明進(jìn)一步提供一種網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性裝置。
參照?qǐng)D5,圖5為本發(fā)明網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性裝置較佳實(shí)施例的功能模塊示意圖。
需要強(qiáng)調(diào)的是,對(duì)本領(lǐng)域的技術(shù)人員來(lái)說(shuō),圖5所示功能模塊圖僅僅是一個(gè)較佳實(shí)施例的示例圖,本領(lǐng)域的技術(shù)人員圍繞圖5所示的網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性裝置的功能模塊,可輕易進(jìn)行新的功能模塊的補(bǔ)充;各功能模塊的名稱是自定義名稱,僅用于輔助理解該網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性裝置的各個(gè)程序功能塊,不用于限定本發(fā)明的技術(shù)方案,本發(fā)明技術(shù)方案的核心是,各自定義名稱的功能模塊所要達(dá)成的功能。
本實(shí)施例提出一種網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性裝置,所述網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性裝置包括:
獲取模塊10,用于在接收到終端發(fā)送的網(wǎng)間控制協(xié)議報(bào)文即icmp報(bào)文時(shí),獲取所述icmp報(bào)文的源ip地址和目的ip地址;
在本實(shí)施例中,若接收到終端發(fā)送的報(bào)文為icmp報(bào)文,所述獲取模塊10先提取所述icmp報(bào)文的指針,所述指針是2層報(bào)文頭的指針,需要通過(guò)偏移12個(gè)字節(jié),指向報(bào)文的vlan字段,再判斷所述icmp報(bào)文是否是多vlan標(biāo)簽類型的報(bào)文,所述獲取模塊10進(jìn)一步獲取icmp報(bào)文的vlan標(biāo)簽的個(gè)數(shù),可以理解的是,icmp報(bào)文源mac地址和目的mac地址各占用6個(gè)字節(jié),一共占用12個(gè)字節(jié),一個(gè)vlan占用4個(gè)字節(jié),再乘以vlan的標(biāo)簽數(shù)得到vlan信息一共占用的字節(jié)數(shù),這樣mac地址加上vlan一共占用的字節(jié)數(shù)就是3層報(bào)文頭相對(duì)于2層報(bào)文頭的偏移量,報(bào)文的2層頭指針加上這個(gè)偏移量就指向了 報(bào)文的3層信息頭,3層信息頭的前4個(gè)字節(jié)就是報(bào)文的目的ip地址,5-8個(gè)字節(jié)是報(bào)文的源ip地址,通過(guò)這種方法我們就獲取到了報(bào)文的源ip和目的ip地址。
生成模塊20,用于在所述目的ip地址與其所在的網(wǎng)關(guān)設(shè)備的ip地址匹配,且所述源ip地址與所述網(wǎng)關(guān)設(shè)備的路由表中的IP地址匹配時(shí),基于所述icmp報(bào)文生成響應(yīng)icmp報(bào)文;
在本實(shí)施例中,所述生成模塊20包括:
判斷單元,用于判斷所述目的ip地址是否是其所在的網(wǎng)關(guān)設(shè)備的網(wǎng)關(guān)ip地址;
在本實(shí)施例中,所述判斷單元判斷所述目的ip地址是否是網(wǎng)關(guān)設(shè)備的網(wǎng)關(guān)ip地址優(yōu)選方式為:獲取模塊10獲取到icmp報(bào)文的目的ip后,判斷單元判斷所述ip是否是網(wǎng)關(guān)ip。一般來(lái)說(shuō),在配置網(wǎng)關(guān)ip的時(shí)候,網(wǎng)關(guān)設(shè)備會(huì)下發(fā)主機(jī)路由給硬件芯片路由表,即網(wǎng)關(guān)設(shè)備的網(wǎng)關(guān)ip,同時(shí)網(wǎng)關(guān)設(shè)備也會(huì)保存一份相同的記錄在軟件路由表中,不同類型的ip會(huì)有不同的類型標(biāo)記,網(wǎng)關(guān)ip會(huì)被設(shè)備標(biāo)記為本地ip標(biāo)識(shí),網(wǎng)關(guān)的環(huán)回口地址也會(huì)有一個(gè)loopback(環(huán)回地址)標(biāo)識(shí)。用目的ip去查找軟件路由表,如果找到該ip在主機(jī)路由表中,并且該ip的標(biāo)識(shí)是本地ip標(biāo)識(shí)或者是loopback標(biāo)識(shí),則證明該icmp報(bào)文是其他設(shè)備ping網(wǎng)關(guān)ip地址的,需要我們進(jìn)行快速的回包處理,即需要進(jìn)行ping請(qǐng)求的響應(yīng)。
所述判斷單元,還用于判斷所述源ip地址是否存在所述網(wǎng)關(guān)設(shè)備的路由表中;
在本實(shí)施例中,所述判斷單元判斷所述源ip地址是否存在所述網(wǎng)關(guān)設(shè)備的路由表中優(yōu)選方式為:所述判斷單元判斷icmp報(bào)文的源ip地址是否在網(wǎng)關(guān)設(shè)備的路由表中,這么做的目的是需要判斷后續(xù)中將源ip地址和目的ip地址互換之后,最后發(fā)送出去的報(bào)文的目的ip(即收到的icmp報(bào)文的源ip)能找到響應(yīng)的路由表,即可以找到實(shí)際的出端口。進(jìn)一步地,如果所述判斷單元判斷源ip地址沒有在網(wǎng)關(guān)設(shè)備的路由表中,那么就不會(huì)繼續(xù)后面的流程,而是把icmp報(bào)文上送到主控的進(jìn)行處理。
生成單元,用于處理所述icmp報(bào)文,以生成響應(yīng)的icmp報(bào)文。
在本實(shí)施例中,優(yōu)選所述生成單元對(duì)所述icmp報(bào)文的校驗(yàn)和進(jìn)行計(jì)算和 檢驗(yàn)等操作,并根據(jù)校驗(yàn)和的檢驗(yàn)結(jié)果對(duì)源ip地址和目的ip地址進(jìn)行互換等,以供最后發(fā)送出去的icmp報(bào)文的目的ip(即收到的icmp報(bào)文的源ip)能找到響應(yīng)的路由表,即可以找到實(shí)際的輸出端口,最后,獲取所述網(wǎng)絡(luò)設(shè)備的源mac地址和所述路由表的目的mac地址,將所述源mac地址和目的mac地址封裝至所述icmp報(bào)文中,以供生成單元生成響應(yīng)icmp報(bào)文。
本實(shí)施例提出的網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性裝置,網(wǎng)關(guān)設(shè)備的線卡先獲取icmp報(bào)文的源ip地址和目的ip地址,再對(duì)所述icmp報(bào)文進(jìn)行處理以生成響應(yīng)icmp報(bào)文,最后將所述響應(yīng)icmp報(bào)文發(fā)送給終端,以響應(yīng)終端ping網(wǎng)關(guān)設(shè)備的請(qǐng)求,而不是通過(guò)線卡獲取終端的icmp報(bào)文,然后線卡再將獲取到的icmp報(bào)文上報(bào)給主控進(jìn)行處理,因?yàn)橹骺匾幚砀黝悎?bào)文,因此響應(yīng)icmp報(bào)文的時(shí)間會(huì)變長(zhǎng),而通過(guò)線卡直接處理icmp報(bào)文并發(fā)送給終端的方式,提高了網(wǎng)關(guān)設(shè)備響應(yīng)終端ping請(qǐng)求的速度。
進(jìn)一步地,為了增加網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性的靈活性,基于第一實(shí)施例提出本發(fā)明網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性裝置的第二實(shí)施例,在本實(shí)施例,參照?qǐng)D6,所述生成模塊20包括:
計(jì)算單元21,用于計(jì)算所述icmp報(bào)文的校驗(yàn)和并判斷所述校驗(yàn)和是否為0;
在本實(shí)施例中,計(jì)算單元21先計(jì)算icmp報(bào)文的校驗(yàn)和并判斷所述校驗(yàn)和是否為0,具體算法就是:把icmp報(bào)文的首部看成以16位為單位的數(shù)字組成,依次進(jìn)行二進(jìn)制反碼求和,例如,當(dāng)前獲取的icmp報(bào)文的首部是32位的數(shù)字,將32的數(shù)字分為兩個(gè)16進(jìn)制數(shù),分別進(jìn)行二進(jìn)制反碼計(jì)算,并將計(jì)算的結(jié)構(gòu)求和;然后檢查計(jì)算出的校驗(yàn)和的結(jié)果是否為0,如果不為0就是代表校驗(yàn)和有誤不進(jìn)行后續(xù)的處理,返回錯(cuò)誤,即停止下列步驟操作。
互換單元22,用于若所述校驗(yàn)和為0,互換所述icmp報(bào)文的源ip地址和目的ip地址;
在本實(shí)施例中,所述互換單元22根據(jù)之前找到的指向報(bào)文的3層頭指針信息,獲取到報(bào)文的源ip地址和目的ip地址,然后把換后的目的ip地址寫入3層指針的前4個(gè)字節(jié)中,把換后的源ip地址寫到3層指針偏移的5到8字節(jié)中,這樣完成了報(bào)文的源ip地址和目的ip地址的互換。
處理單元23,用于計(jì)算互換ip地址后的icmp報(bào)文中icmp報(bào)文頭的校驗(yàn)和,并將計(jì)算后的校驗(yàn)和寫入到icmp報(bào)文頭對(duì)應(yīng)的位置;
在本實(shí)施例中,所述處理單元23對(duì)互換了源ip地址和目的ip地址后的報(bào)文的校驗(yàn)和進(jìn)行重新計(jì)算,計(jì)算的算法是:把需校驗(yàn)的數(shù)據(jù)看成以16位為單位的數(shù)字組成,依次進(jìn)行二進(jìn)制反碼求和;把得到的結(jié)果存入到icmp報(bào)文頭對(duì)應(yīng)的位置中。
所述處理單元23,還用于計(jì)算整個(gè)icmp報(bào)文的校驗(yàn)和,并將計(jì)算后的校驗(yàn)和寫入到icmp報(bào)文對(duì)應(yīng)的位置;
在本實(shí)施例中,所述處理單元23還可事先設(shè)置ip報(bào)文的ttl值的,優(yōu)選將ttl值設(shè)置為默認(rèn)值255,可以理解的是,所述把ip報(bào)文的time to live字段即指定ip包被路由器丟棄之前允許通過(guò)的最大網(wǎng)段數(shù)量設(shè)置為默認(rèn)值255,并再次計(jì)算整個(gè)ip報(bào)文的校驗(yàn)和,將計(jì)算的校驗(yàn)和寫入到icmp報(bào)文對(duì)應(yīng)的位置。
生成單元24,用于將所述網(wǎng)絡(luò)設(shè)備的mac地址作為源mac地址以及將所述終端對(duì)應(yīng)的mac地址作為目的mac地址,并將所述源mac地址和目的mac地址封裝至所述icmp報(bào)文中,以生成響應(yīng)icmp報(bào)文。
在本實(shí)施例中,先將所述源mac地址和目的mac地址封裝至所述icmp報(bào)文中的方式優(yōu)選為所述生成單元24先添加所述路由表的mac地址到icmp報(bào)文的目的mac地址中,添加網(wǎng)關(guān)設(shè)備的網(wǎng)關(guān)mac地址到icmp報(bào)文的源mac地址中,然后將根據(jù)所述icmp報(bào)文的源ip地址在所述網(wǎng)關(guān)設(shè)備中的對(duì)應(yīng)的路由表的下一跳表,查找到所述源ip地址的路由表的下一跳表,將所述查找到的下一跳表作為出端口,并將封裝了源mac地址和目的mac地址的icmp報(bào)文發(fā)送給終端,以完成響應(yīng)終端ping網(wǎng)關(guān)設(shè)備的請(qǐng)求。
進(jìn)一步地,為了增加網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性的靈活性,基于第一實(shí)施例提出本發(fā)明網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性裝置的第三實(shí)施例,在本實(shí)施例,參照?qǐng)D7,所述反饋模塊30包括:
查找單元31,用于查找路由表中與所述源ip地址對(duì)應(yīng)的下一跳表的輸出端口;
發(fā)送單元32,用于將所述響應(yīng)icmp報(bào)文通過(guò)所述輸出端口發(fā)送給終端。
在本實(shí)施例中,可以理解的是,路由表中存儲(chǔ)源ip地址對(duì)應(yīng)的地址信息,但是,但是該地址信息不是源ip地址對(duì)應(yīng)的出端口,即所述路由表中的地址信息為快速響應(yīng)icmp報(bào)文的索引信息,當(dāng)在所述路由表找到所述源ip地址對(duì)應(yīng)地址信息時(shí),查找單元31根據(jù)所述地址信息索引到下一跳表中,并確認(rèn)所述下一跳表中對(duì)應(yīng)的位置為響應(yīng)icmp報(bào)文的輸出端口。
進(jìn)一步地,為了增加網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性的靈活性,基于第一實(shí)施例提出本發(fā)明網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性裝置的第四實(shí)施例,在本實(shí)施例,參照?qǐng)D8,所述網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性裝置還包括:
檢測(cè)模塊40,用于在接收到終端發(fā)送的報(bào)文時(shí),檢測(cè)所述網(wǎng)關(guān)設(shè)備是否處于快速響應(yīng)icmp報(bào)文模式;
判斷模塊50,用于若檢測(cè)到網(wǎng)關(guān)設(shè)備處于快速響應(yīng)icmp報(bào)文模式,判斷當(dāng)前接收到的報(bào)文是否為icmp報(bào)文。
在本實(shí)施例中,檢測(cè)模塊40還包括配置單元,用于配置開啟快速響應(yīng)ping請(qǐng)求,即用戶可通過(guò)快速響應(yīng)icmp報(bào)文的指令觸發(fā)快速響應(yīng)ping網(wǎng)關(guān)設(shè)備的指令,當(dāng)用戶處于快速響應(yīng)ping網(wǎng)關(guān)設(shè)備的模式時(shí),在接收到終端發(fā)送的ping請(qǐng)求時(shí),網(wǎng)關(guān)設(shè)備將觸發(fā)指令,并進(jìn)入快速處理icmp報(bào)文的流程;若檢測(cè)到網(wǎng)關(guān)設(shè)備處于快速響應(yīng)icmp報(bào)文模式,所述判斷模塊50判斷當(dāng)前接收到的報(bào)文是否為icmp報(bào)文,即先獲取所述終端對(duì)應(yīng)的報(bào)文,并判斷所述獲取的報(bào)文是否為icmp報(bào)文,所述判斷所述獲取的報(bào)文是否為icmp報(bào)文的方式優(yōu)選通過(guò)acl規(guī)則(一種訪問控制技術(shù))進(jìn)行判斷,所述利用acl判斷的方式優(yōu)選通過(guò)獲取報(bào)文的唯一標(biāo)識(shí)如協(xié)議號(hào),根據(jù)獲取的協(xié)議號(hào)即可判斷當(dāng)前獲取的報(bào)文的類型是否與icmp報(bào)文的類型相匹配,若匹配,所述判斷模塊50即可判斷收到的報(bào)文為icmp報(bào)文。并進(jìn)行快速響應(yīng)ping請(qǐng)求的過(guò)程,若不是,進(jìn)入報(bào)文正常處理流程,即通過(guò)線卡獲取報(bào)文,再將獲取的報(bào)文上送給主控,通過(guò)主控進(jìn)行一系列響應(yīng)過(guò)程。
進(jìn)一步地,為了增加網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性的靈活性,基于第一實(shí)施例提出本發(fā)明網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性裝置的第五實(shí)施例,在本實(shí)施例,所 述網(wǎng)關(guān)設(shè)備響應(yīng)網(wǎng)絡(luò)連通性裝置還包括:
處理模塊,用于在接收到終端發(fā)送的報(bào)文,且所述報(bào)文不是icmp報(bào)文時(shí),將接收到的報(bào)文發(fā)送給主控,以供主控響應(yīng)所述報(bào)文。
在本實(shí)施例中,優(yōu)選所述處理模塊判斷接收到的是否為icmp報(bào)文,若不是,按照正常的流程發(fā)送主控,以供主控響應(yīng)所述報(bào)文。
需要說(shuō)明的是,在本文中,術(shù)語(yǔ)“包括”、“包含”或者其任何其它變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者系統(tǒng)不僅包括那些要素,而且還包括沒有明確列出的其它要素,或者是還包括為這種過(guò)程、方法、物品或者系統(tǒng)所固有的要素。在沒有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括該要素的過(guò)程、方法、物品或者系統(tǒng)中還存在另外的相同要素。
上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實(shí)施例方法可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但很多情況下前者是更佳的實(shí)施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,空調(diào)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說(shuō)明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其它相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。