午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

網(wǎng)絡(luò)封包串流仿真方法

文檔序號(hào):7970536閱讀:229來(lái)源:國(guó)知局
專(zhuān)利名稱:網(wǎng)絡(luò)封包串流仿真方法
技術(shù)領(lǐng)域
本發(fā)明是提供一種網(wǎng)絡(luò)封包串流仿真方法,尤指一種可減少存儲(chǔ)器使用量的網(wǎng)絡(luò)封包串流仿真方法。
背景技術(shù)
因特網(wǎng)的發(fā)達(dá)帶來(lái)許多生活上的便利,然而另一方面卻也讓人們的計(jì)算機(jī)設(shè)備與個(gè)人數(shù)據(jù)暴露于網(wǎng)絡(luò)中而易受侵害,因而有許多不同的解決方案,例如在軟件的防毒軟件和防火墻軟件或是內(nèi)建于硬件的防火墻技術(shù)和防入侵功能。以網(wǎng)絡(luò)硬設(shè)備而言,防火墻技術(shù)是以封包為單位,針對(duì)封包內(nèi)容來(lái)做檢測(cè)分析。但是以入侵檢測(cè)技術(shù)而言,不只包含防火墻技術(shù),還需要有重組封包與檢測(cè)連續(xù)封包的能力。意即,黑客入侵行為或惡意的攻擊程序在網(wǎng)絡(luò)上傳遞時(shí)有可能會(huì)被分割成小塊,同時(shí)由于網(wǎng)絡(luò)架構(gòu)與環(huán)境的問(wèn)題,這些小塊在被傳送的過(guò)程中會(huì)有遺失或不照順序的問(wèn)題。而入侵檢測(cè)技術(shù)需要有能力先處理遺失與不照順序的問(wèn)題,再將封包排序后,依序送入檢測(cè)引擎內(nèi),如此才能回復(fù)原始數(shù)據(jù)達(dá)到精確檢測(cè)的目的。此外,又如以網(wǎng)關(guān)器為基礎(chǔ)的防毒墻,也需要類(lèi)似的技術(shù)。為了減少封包在網(wǎng)絡(luò)傳輸中遺失與不照順序的問(wèn)題,因此可信賴網(wǎng)絡(luò)傳輸?shù)耐ㄓ崊f(xié)議遂成為網(wǎng)絡(luò)傳輸所使用的主要通訊協(xié)議,以減少封包遺失與不照順序所造成的困擾。
目前在可信賴網(wǎng)絡(luò)傳輸?shù)耐ㄓ崊f(xié)議上處理入侵檢測(cè)的技術(shù)可分為兩種,第一種是以接口(socket)與代理主機(jī)(proxy)的技術(shù)為主,例如以路由器(或代理主機(jī))為終端主機(jī),將封包利用傳輸控制協(xié)議/因特網(wǎng)協(xié)議(TCP/IP)與接口和代理主機(jī)技術(shù)復(fù)原封包原有數(shù)據(jù),此技術(shù)的缺點(diǎn)是需要海量存儲(chǔ)器空間來(lái)儲(chǔ)存封包,才能處理遺失與重組問(wèn)題,同時(shí)傳輸控制協(xié)議/因特網(wǎng)協(xié)議位于開(kāi)放系統(tǒng)互連架構(gòu)中的第三層,而接口則位于在開(kāi)放系統(tǒng)互連架構(gòu)中的第七層,數(shù)據(jù)上下層傳遞上也會(huì)花很多時(shí)間。第二種是以隊(duì)列(queue)配合封包為主,采用海量存儲(chǔ)器空間來(lái)儲(chǔ)存封包,以仿真網(wǎng)絡(luò)上的協(xié)議(session)行為,也就是同時(shí)模擬不同客戶端間對(duì)于封包的所有可能反應(yīng),例如客戶端之間的流量,或者是客戶端所使用的滑動(dòng)窗口(sliding window)的狀態(tài),并利用服務(wù)器和代理主機(jī)所暫存的封包來(lái)處理封包的不同片段的遺失與重組的問(wèn)題,但是不送到接口,藉此模擬傳輸控制協(xié)議/因特網(wǎng)協(xié)議兩端的行為。上述的兩種方法都會(huì)產(chǎn)生海量存儲(chǔ)器需求與效能的問(wèn)題,且到目前為止,第二種仍無(wú)法有效解決重新傳送的問(wèn)題。因此,若能同時(shí)解決封包在網(wǎng)絡(luò)中失序與重新傳送的問(wèn)題,并大幅降低存儲(chǔ)器使用量,則不會(huì)因資源不足而省略封包處理問(wèn)題,而降低保護(hù)能力,并降低仿真協(xié)議行為的效率。
在先前技術(shù)中,有一種稱為Snort的網(wǎng)絡(luò)入侵檢測(cè)軟件。Snort可用來(lái)實(shí)現(xiàn)實(shí)時(shí)(real-time)的網(wǎng)絡(luò)流量檢測(cè)以及因特網(wǎng)協(xié)議(Internet Protocol,IP)上的封包管理,其中Snort即以上述的隊(duì)列配合封包的方式來(lái)實(shí)施封包管理。除此以外,Snort亦可實(shí)施各種網(wǎng)絡(luò)的通訊協(xié)議的檢測(cè),根據(jù)封包中的內(nèi)容做特征的比對(duì),以防堵各種形式的網(wǎng)絡(luò)攻擊。然而Snort并無(wú)法妥善地仿真上述的協(xié)議行為,因此也無(wú)法完整地處理遺失的封包引起的重傳問(wèn)題。所以,Snort到目前仍定義為入侵檢測(cè)系統(tǒng)而非入侵防御系統(tǒng),即使也有in-line Snort的研究,也遇到相同的問(wèn)題。
除此以外,在網(wǎng)絡(luò)中已經(jīng)過(guò)設(shè)備端處理,但卻又在網(wǎng)絡(luò)中遺失的封包,會(huì)由包含接收端或發(fā)送端的客戶端來(lái)提起重新傳送該封包的要求。然而,即使已經(jīng)經(jīng)過(guò)防毒軟件或掃描引擎的個(gè)別檢查,這樣的重傳封包仍然會(huì)造成設(shè)備端在處理封包的失序問(wèn)題時(shí),引起其它無(wú)法預(yù)期的安全漏洞。

發(fā)明內(nèi)容
本發(fā)明提供一種在使封包進(jìn)入設(shè)備端前得以遵照順序的網(wǎng)絡(luò)封包串流仿真方法,包含減少該客戶端所應(yīng)用的通訊協(xié)議的窗口大小;使用隊(duì)列暫存序號(hào)不照順序的封包;丟棄序號(hào)不照順序的封包;以及向客戶端請(qǐng)求重新遞送遺失的封包。
本發(fā)明提供一種在封包通過(guò)設(shè)備端后處理重新傳送的封包以節(jié)省存儲(chǔ)器使用量的網(wǎng)絡(luò)封包串流仿真方法,包含接收已照順序排列并來(lái)自于第一客戶端的第n封包;依順序儲(chǔ)存該第n封包的特征值于連接清單;當(dāng)該第一封包已通過(guò)該設(shè)備端,且未到達(dá)或無(wú)法到達(dá)第二客戶端時(shí),該第二客戶端發(fā)送請(qǐng)求以重新傳送該第n封包,該請(qǐng)求是經(jīng)由該設(shè)備端轉(zhuǎn)送至該第一客戶端,或該第一客戶端因逾時(shí)而主動(dòng)重送該第n封包,該重送的第n封包為第m封包;該設(shè)備端接收該第m封包,并獲取該第m封包的信息以產(chǎn)生特征值;將計(jì)算出的該第m封包的特征值依序與連接清單上已儲(chǔ)存的特征值做比對(duì),以確認(rèn)該第m封包是否為該連接清單所儲(chǔ)存的某一特征值所屬的封包的重傳封包;當(dāng)該連接清單中存在有特征值與該第m封包的特征值相同時(shí),則確認(rèn)該第m封包為該第n封包的重傳封包,即兩者封包內(nèi)容一致。此時(shí)該設(shè)備端會(huì)盡快將第m封包轉(zhuǎn)送給該第二客戶端,該第二客戶端在收到封包后,會(huì)發(fā)出已接收到該第m封包的確認(rèn)信號(hào),當(dāng)該設(shè)備端接收到該確認(rèn)信號(hào)后,將儲(chǔ)存于該連接清單中已被第二客戶端確認(rèn)的多個(gè)特征值與相關(guān)封包丟棄,或保留部分已確認(rèn)的多個(gè)較新的特征值,但將相關(guān)暫存封包丟棄,并將該確認(rèn)信號(hào)送往該第一客戶端。
本發(fā)明還提供一種在封包到達(dá)設(shè)備端后處理重新傳送的封包以節(jié)省存儲(chǔ)器使用量的網(wǎng)絡(luò)封包串流仿真方法,包含(a)封包重傳處理單元由封包限制單元接收第n封包;(b)減少所處理的窗口大??;(c)確認(rèn)該第n封包是否包含確認(rèn)信號(hào);(d)當(dāng)該第n封包包含該確認(rèn)信號(hào)時(shí),確認(rèn)連接清單中是否存在有已確認(rèn)過(guò)的特征值項(xiàng)目;(d1)選擇性地不完全清除已確認(rèn)過(guò)的特征值,以通過(guò)保留較新的多個(gè)已確認(rèn)過(guò)的特征值,來(lái)處理確認(rèn)后封包經(jīng)過(guò)設(shè)備端后被遺失的狀況;(e)當(dāng)該連接清單中存在有已確認(rèn)過(guò)的特征值項(xiàng)目時(shí),清除已被確認(rèn)的特征值項(xiàng)目;(f)確認(rèn)該連接清單中是否包含有內(nèi)容;(g)當(dāng)該連接清單中包含有內(nèi)容時(shí),或當(dāng)該第n封包未包含該確認(rèn)信號(hào)時(shí),將該第n封包的序號(hào)與該連接清單中各特征值項(xiàng)目的序號(hào)范圍做比較;(h)確認(rèn)該第n封包的序號(hào)是否為該連接清單所追蹤的序號(hào);(i)設(shè)備端檢查該連接清單的長(zhǎng)度是否超過(guò)限定值;(j)設(shè)備端計(jì)算封包的特征值,并依序儲(chǔ)存于該連接清單中;(k)當(dāng)該連接清單中未包含有內(nèi)容,或是設(shè)備端已依序?qū)⒎獍奶卣髦祪?chǔ)存于該連接清單時(shí),送出該第n封包;(l)當(dāng)該第n封包的序號(hào)并非為該連接清單所追蹤的序號(hào)時(shí),確認(rèn)該第n封包的內(nèi)容是否與該連接清單中的特征值的第k項(xiàng)目對(duì)應(yīng)的序號(hào)范圍重迭;(m)當(dāng)該第n封包的內(nèi)容并未與該連接清單中的特征值的第k項(xiàng)目對(duì)應(yīng)的序號(hào)范圍重迭,或當(dāng)該連接清單的長(zhǎng)度超過(guò)限定值時(shí),丟棄該第n封包;(n)當(dāng)該第n封包的內(nèi)容是與該連接清單中的特征值的第k項(xiàng)目對(duì)應(yīng)的序號(hào)范圍重迭時(shí),確認(rèn)該第n封包的內(nèi)容與該連接清單內(nèi)某一特征值的第k項(xiàng)目對(duì)應(yīng)的序號(hào)范圍重迭的狀況,或該第n封包的內(nèi)容在確認(rèn)重迭狀況之前,是先儲(chǔ)存于該第k項(xiàng)目所屬的暫存器封包,以產(chǎn)生第L封包,其中該第L封包是由該第n封包而來(lái),或由該第k項(xiàng)目所屬的暫存器封包而來(lái);(o)當(dāng)該第L封包的序號(hào)與該連接清單中的特征值的第k項(xiàng)目序號(hào)吻合時(shí),比較該第L封包與該第k項(xiàng)目的長(zhǎng)度;(p)當(dāng)該第L封包與該第k項(xiàng)目的長(zhǎng)度相等時(shí),計(jì)算該第L封包的特征值的檢查碼,并確認(rèn)計(jì)算出的檢查碼與該第k項(xiàng)目的檢查碼是否吻合;(q)當(dāng)該計(jì)算出的檢查碼與該第k項(xiàng)目的檢查碼吻合時(shí),送出該第L封包;(r)當(dāng)該第L封包的長(zhǎng)度小于該第k項(xiàng)目的長(zhǎng)度時(shí),將該第L封包儲(chǔ)存于該第k項(xiàng)目的暫存器中;(s)檢查該第k項(xiàng)目的暫存器封包是否已符合該第k項(xiàng)目的長(zhǎng)度;(t)當(dāng)該第L封包不符合該第k項(xiàng)目的長(zhǎng)度時(shí),等待逾時(shí)消息,且當(dāng)?shù)却皆撚鈺r(shí)消息時(shí),丟棄該第L封包;(u)當(dāng)該第L封包的長(zhǎng)度大于該第k項(xiàng)目的長(zhǎng)度時(shí),分割該第L封包為第i封包與第j封包,其中該第i封包是起始于該第L封包的序號(hào),且該第i封包的長(zhǎng)度是等于該第k項(xiàng)目的長(zhǎng)度,該第j封包的長(zhǎng)度是等于該第L封包的長(zhǎng)度減去該第k項(xiàng)目的長(zhǎng)度;(v)辨識(shí)該第i封包與該第j封包,且當(dāng)辨識(shí)出該第i封包時(shí),對(duì)該第i封包執(zhí)行步驟(p);(w)當(dāng)辨識(shí)出該第j封包時(shí),對(duì)該第j封包確認(rèn)該第k項(xiàng)目是否為該連接清單的最后一個(gè)項(xiàng)目;當(dāng)該第k項(xiàng)目為該連接清單的最后一個(gè)項(xiàng)目時(shí),對(duì)該第j封包執(zhí)行步驟(i),否則對(duì)該第j封包執(zhí)行步驟(n);(x1)當(dāng)該第L封包序號(hào)落在該連接清單內(nèi)某特征值的第k項(xiàng)目范圍內(nèi)時(shí),將該第L封包分割為第x封包與第y封包,其中該第x封包是起始于該第L封包的序號(hào),且該第x封包是起始于該第L封包的序號(hào),且該第x封包的結(jié)尾是等于該第k項(xiàng)目的結(jié)尾,該第y封包的長(zhǎng)度是等于該第L封包的長(zhǎng)度減去該第x封包的長(zhǎng)度;(x2)辨識(shí)該第x封包與該第y封包,當(dāng)辨識(shí)出該第x封包時(shí),對(duì)該第x封包執(zhí)行步驟(r);(x3)確認(rèn)該第y封包中,該第k項(xiàng)目是否為該連接清單的最后一個(gè)項(xiàng)目,當(dāng)該第k項(xiàng)目為該連接清單的最后一個(gè)項(xiàng)目時(shí),以該第y封包執(zhí)行步驟(i);否則,以該第y封包執(zhí)行步驟(n);(y1)將該第L封包分割為第s封包與第t封包,其中該第t封包是起始于該第k項(xiàng)目的起始序號(hào),并結(jié)束于該第L封包的尾端,該第s封包是起始于該第L封包的起始序號(hào),并結(jié)束于該第k項(xiàng)目的結(jié)尾序號(hào);及(y2)辨識(shí)該第s封包與該第t封包,當(dāng)辨識(shí)出該第t封包時(shí),則對(duì)該第t封包執(zhí)行步驟(n)。
本發(fā)明還提供一種在使封包進(jìn)入設(shè)備端前得以遵照順序且在封包到達(dá)設(shè)備端后處理重新傳送的封包以節(jié)省存儲(chǔ)器使用量的網(wǎng)絡(luò)封包串流仿真方法,包含(z1)丟棄序號(hào)不照順序的封包;(z2)向第一客戶端請(qǐng)求重新遞送遺失的封包;(z3)過(guò)濾該第一客戶端的選擇性確認(rèn)信號(hào)機(jī)制,并減少該客戶端所應(yīng)用的通訊協(xié)議的窗口大?。?z4)使用隊(duì)列暫存序號(hào)不照順序的封包;(a)封包重傳處理單元由封包限制單元接收第n封包;(b)減少所處理的窗口大??;(c)確認(rèn)該第n封包是否包含確認(rèn)信號(hào);(d)當(dāng)該第n封包包含該確認(rèn)信號(hào)時(shí),確認(rèn)連接清單中是否存在有已確認(rèn)過(guò)的特征值項(xiàng)目;(d1)選擇性地不完全清除已確認(rèn)過(guò)的特征值,以通過(guò)保留較新的多個(gè)已確認(rèn)過(guò)的特征值,來(lái)處理確認(rèn)后封包經(jīng)過(guò)設(shè)備端后被遺失的狀況;(e)當(dāng)該連接清單中存在有已確認(rèn)過(guò)的特征值項(xiàng)目時(shí),清除已被確認(rèn)的特征值項(xiàng)目;(f)確認(rèn)該連接清單中是否包含有內(nèi)容;(g)當(dāng)該連接清單中包含有內(nèi)容時(shí),或當(dāng)該第n封包未包含該確認(rèn)信號(hào)時(shí),將該第n封包的序號(hào)與該連接清單中各特征值項(xiàng)目的序號(hào)范圍做比較;(h)確認(rèn)該第n封包的序號(hào)是否為該連接清單所追蹤的序號(hào);(i)設(shè)備端檢查該連接清單的長(zhǎng)度是否超過(guò)限定值;(j)設(shè)備端計(jì)算封包的特征值,并依序儲(chǔ)存于該連接清單中;(k)當(dāng)該連接清單中未包含有內(nèi)容,或是設(shè)備端已依序?qū)⒎獍奶卣髦祪?chǔ)存于該連接清單時(shí),送出該第n封包;(l)當(dāng)該第n封包的序號(hào)并非為該連接清單所追蹤的序號(hào)時(shí),確認(rèn)該第n封包的內(nèi)容是否與該連接清單中的特征值的第k項(xiàng)目對(duì)應(yīng)的序號(hào)范圍重迭;(m)當(dāng)該第n封包的內(nèi)容并未與該連接清單中的特征值的第k項(xiàng)目對(duì)應(yīng)的序號(hào)范圍重迭,或當(dāng)該連接清單的長(zhǎng)度超過(guò)限定值時(shí),丟棄該第n封包;(n)當(dāng)該第n封包的內(nèi)容是與該連接清單中的特征值的第k項(xiàng)目對(duì)應(yīng)的序號(hào)范圍重迭時(shí),確認(rèn)該第n封包的內(nèi)容與該連接清單內(nèi)某一特征值的第k項(xiàng)目對(duì)應(yīng)的序號(hào)范圍重迭的狀況,或該第n封包的內(nèi)容在確認(rèn)重迭狀況之前,是先儲(chǔ)存于該第k項(xiàng)目所屬的暫存器封包,以產(chǎn)生第L封包,其中該第L封包是由該第n封包而來(lái),或由該第k項(xiàng)目所屬的暫存器封包而來(lái);(o)當(dāng)該第L封包的序號(hào)與該連接清單中的特征值的第k項(xiàng)目序號(hào)吻合時(shí),比較該第L封包與該第k項(xiàng)目的長(zhǎng)度;(p)當(dāng)該第L封包與該第k項(xiàng)目的長(zhǎng)度相等時(shí),計(jì)算該第L封包的特征值的檢查碼,并確認(rèn)計(jì)算出的檢查碼與該第k項(xiàng)目的檢查碼是否吻合;(q)當(dāng)該計(jì)算出的檢查碼與該第k項(xiàng)目的檢查碼吻合時(shí),送出該第L封包;(r)當(dāng)該第L封包的長(zhǎng)度小于該第k項(xiàng)目的長(zhǎng)度時(shí),將該第L封包儲(chǔ)存于該第k項(xiàng)目的暫存器中;(s)檢查該第k項(xiàng)目的暫存器封包是否已符合該第k項(xiàng)目的長(zhǎng)度;(t)當(dāng)該第L封包不符合該第k項(xiàng)目的長(zhǎng)度時(shí),等待逾時(shí)消息,且當(dāng)?shù)却皆撚鈺r(shí)消息時(shí),丟棄該第L封包;(u)當(dāng)該第L封包的長(zhǎng)度大于該第k項(xiàng)目的長(zhǎng)度時(shí),分割該第L封包為第i封包與第j封包,其中該第i封包是起始于該第L封包的序號(hào),且該第i封包的長(zhǎng)度是等于該第k項(xiàng)目的長(zhǎng)度,該第j封包的長(zhǎng)度是等于該第L封包的長(zhǎng)度減去該第k項(xiàng)目的長(zhǎng)度;(v)辨識(shí)該第i封包與該第j封包,且當(dāng)辨識(shí)出該第i封包時(shí),對(duì)該第i封包執(zhí)行步驟(p);(w)當(dāng)辨識(shí)出該第j封包時(shí),對(duì)該第j封包確認(rèn)該第k項(xiàng)目是否為該連接清單的最后一個(gè)項(xiàng)目;當(dāng)該第k項(xiàng)目為該連接清單的最后一個(gè)項(xiàng)目時(shí),對(duì)該第j封包執(zhí)行步驟(i),否則對(duì)該第j封包執(zhí)行步驟(n);(x1)當(dāng)該第L封包序號(hào)落在該連接清單內(nèi)某特征值的第k項(xiàng)目范圍內(nèi)時(shí),將該第L封包分割為第x封包與第y封包,其中該第x封包是起始于該第L封包的序號(hào),且該第x封包是起始于該第L封包的序號(hào),且該第x封包的結(jié)尾是等于該第k項(xiàng)目的結(jié)尾,該第y封包的長(zhǎng)度是等于該第L封包的長(zhǎng)度減去該第x封包的長(zhǎng)度;(x2)辨識(shí)該第x封包與該第y封包,當(dāng)辨識(shí)出該第x封包時(shí),對(duì)該第x封包執(zhí)行步驟(r);(x3)確認(rèn)該第y封包中,該第k項(xiàng)目是否為該連接清單的最后一個(gè)項(xiàng)目,當(dāng)該第k項(xiàng)目為該連接清單的最后一個(gè)項(xiàng)目時(shí),以該第y封包執(zhí)行步驟(i);否則,以該第y封包執(zhí)行步驟(n);(y1)將該第L封包分割為第s封包與第t封包,其中該第t封包是起始于該第k項(xiàng)目的起始序號(hào),并結(jié)束于該第L封包的尾端,該第s封包是起始于該第L封包的起始序號(hào),并結(jié)束于該第k項(xiàng)目的結(jié)尾序號(hào);及(y2)辨識(shí)該第s封包與該第t封包,當(dāng)辨識(shí)出該第t封包時(shí),則對(duì)該第t封包執(zhí)行步驟(n)。


圖1為使用本發(fā)明網(wǎng)絡(luò)架構(gòu)的方塊圖。
圖2為本發(fā)明所提供的網(wǎng)絡(luò)封包串流仿真方法中處理封包進(jìn)入路由器之前的程序的流程圖。
圖3至圖5是圖示本發(fā)明在封包進(jìn)入設(shè)備端后,所提供的解決重新遞送封包所引起的問(wèn)題的網(wǎng)絡(luò)封包串流仿真方法的流程圖。
圖6為圖3至圖5所述的連接清單的運(yùn)作流程。
100 網(wǎng)絡(luò)架構(gòu)110、150 客戶端130 設(shè)備端
131 封包限制單元133 封包重傳處理單元135 存儲(chǔ)器200-210、300-399、400-460 步驟具體實(shí)施方式
本發(fā)明的目標(biāo)即為提供一種在可信賴網(wǎng)絡(luò)傳輸下,可解決因?yàn)榉獍捻樞蝈e(cuò)誤、遺失、或重傳造成入侵檢測(cè)系統(tǒng)、防火墻系統(tǒng)、防毒系統(tǒng)運(yùn)作不正常的問(wèn)題,并可同時(shí)節(jié)省存儲(chǔ)器使用量的網(wǎng)絡(luò)封包串流仿真方法。
本發(fā)明所提供的網(wǎng)絡(luò)封包串流仿真方法是應(yīng)用于提供可信賴網(wǎng)絡(luò)傳輸?shù)耐ㄓ崊f(xié)議上,例如傳輸控制協(xié)議(Transmission Control Protocol,TCP)與序列封包交換協(xié)議(Sequenced Packet Exchange,SPX)等,這些協(xié)議皆采用序號(hào)(sequence)與確認(rèn)(acknowledge)的方式來(lái)達(dá)到可信賴網(wǎng)絡(luò)傳輸?shù)囊?,因此亦使得本發(fā)明所提供的網(wǎng)絡(luò)封包串流仿真方法可適用于此。
本發(fā)明所提供的網(wǎng)絡(luò)封包串流仿真方法主要分為兩個(gè)部分,第一部分是處理封包進(jìn)入路由器之前的程序,第二部分是處理封包進(jìn)入路由器之后的程序。且之后的敘述皆針對(duì)同一筆數(shù)據(jù)在發(fā)送端分解成多個(gè)序號(hào)連續(xù)的封包后傳送至接收端,且發(fā)送端分解的序號(hào)是以由小而大的順序來(lái)排列所產(chǎn)生的情形來(lái)加以說(shuō)明,其它種類(lèi)的序號(hào)排列情況可視為其變型。
請(qǐng)參照?qǐng)D1,圖1為采用本發(fā)明技術(shù)的網(wǎng)絡(luò)架構(gòu)100的示意圖。網(wǎng)絡(luò)架構(gòu)100包含有第一客戶端110、設(shè)備端130和第二客戶端150。第一客戶端110為發(fā)送端,而第二客戶端150為接收端。設(shè)備端130包含有封包限制單元131、封包重傳處理單元133和存儲(chǔ)器135,設(shè)備端130可為采用本發(fā)明技術(shù)的路由器、網(wǎng)關(guān)器、代理主機(jī)或是擁有類(lèi)似功能的網(wǎng)絡(luò)硬件,而第一客戶端110和第二客戶端150可為計(jì)算機(jī)或擁有類(lèi)似功能的網(wǎng)絡(luò)硬件。封包限制單元131用來(lái)處理上述本發(fā)明所提供的方法的第一部分,也就是封包正式進(jìn)入設(shè)備端130之前的程序,以確保離開(kāi)封包限制單元131的封包皆是依照其序號(hào)的順序來(lái)排列,并保持與原本在第一客戶端110的原始數(shù)據(jù)相同的正確性。除此以外,封包限制單元131會(huì)隨時(shí)追蹤位于其內(nèi)的特定封包,并不允許其序號(hào)大于該特定封包的封包通過(guò),也就是說(shuō)序號(hào)小的封包必定較序號(hào)較大的封包先通過(guò)封包限制單元131,以確保其序號(hào)順序的正確性。當(dāng)確認(rèn)欲通過(guò)封包限制單元131的封包的序號(hào)與被追蹤的特定封包的序號(hào)的下一個(gè)時(shí),則可讓該特定封包通過(guò)封包限制單元131,并改而追蹤該欲通過(guò)封包限制單元131的封包。舉例來(lái)說(shuō),假設(shè)原先封包限制單元131所追蹤的封包的序號(hào)為N(其中N為正整數(shù)),且此時(shí)欲通過(guò)封包限制單元131的封包的序號(hào)為(N+1),則封包限制單元131會(huì)先行讓封包序號(hào)為N的封包通過(guò)封包限制單元131,此時(shí)若遺失序號(hào)為N的封包,則封包限制單元131必需等待序號(hào)為N的封包到來(lái)后,同時(shí)并改而追蹤序號(hào)為(N+1)的封包,才能讓序號(hào)為(N+1)的封包通過(guò)。然而,封包限制單元131可允許序號(hào)小于封包限制單元131正在追蹤的封包的序號(hào)的封包通過(guò)封包限制單元131,此是因這類(lèi)封包為重傳封包,因此需要由封包重傳處理單元133來(lái)處理。以上述的例子來(lái)說(shuō),當(dāng)序號(hào)為(N-a)的封包欲通過(guò)封包限制單元131時(shí)(其中a為小于N的正整數(shù)),封包限制單元131會(huì)先行讓序號(hào)為(N-a)的封包通過(guò),此是因該封包為重傳封包。封包重傳處理單元133主要的作用為處理重傳的封包。由此可知,封包重傳處理單元133會(huì)接收到兩種封包,第一種為經(jīng)過(guò)封包限制單元131處理后按照其順序排列的封包,第二種為之前設(shè)備端130曾經(jīng)傳送過(guò)的封包。第二種封包出現(xiàn)的原因主要是因?yàn)榫W(wǎng)絡(luò)環(huán)境不穩(wěn)定,以致于封包通過(guò)設(shè)備端130之后遺失了,為了補(bǔ)回遺失的封包,第二客戶端150會(huì)要求第一客戶端110重新傳送該封包,第一客戶端110也會(huì)自動(dòng)重新傳送遺失的封包;然而,由于在設(shè)備端130中,針對(duì)該遺失的封包的防毒程序或入侵檢測(cè)程序已經(jīng)執(zhí)行過(guò),因此若任意讓此類(lèi)重傳封包通過(guò),即使是在該重傳封包已被再次掃描的前提下,仍然會(huì)造成設(shè)備端130的安全漏洞,因此封包重傳處理單元133亦被設(shè)計(jì)來(lái)處理此類(lèi)問(wèn)題。
請(qǐng)參閱圖2,其為本發(fā)明所提供的網(wǎng)絡(luò)封包串流仿真方法中處理封包進(jìn)入路由器之前的程序的示意圖,并請(qǐng)同時(shí)參閱圖1。圖2所述的網(wǎng)絡(luò)封包串流仿真方法主要是由圖1所示的封包限制單元131來(lái)處理,并包含以下步驟步驟200步驟開(kāi)始;步驟202從下層收取第i封包;步驟204將該第i封包的序號(hào)放入隊(duì)列中,并維護(hù)該隊(duì)列中序號(hào)的順序性;步驟206封包限制單元131依序由該隊(duì)列中取出第j封包;步驟208經(jīng)由該第j封包的序號(hào)與追蹤數(shù)據(jù),確認(rèn)該第j封包是否為連續(xù)性封包;若是,則執(zhí)行步驟210,否則執(zhí)行步驟214;步驟210將該第j封包的序號(hào)由該隊(duì)列中移除;步驟212將該第j封包傳送至封包重傳處理單元133;步驟214確認(rèn)該第j封包的序號(hào)是否小于目前所追蹤的數(shù)據(jù);若是,則執(zhí)行步驟218,否則執(zhí)行步驟216;步驟216使用快速要求機(jī)制,要求第一客戶端110重新傳送追蹤數(shù)據(jù)封包;步驟218步驟結(jié)束。
圖2所述的步驟主要是由圖1所示的封包限制單元131來(lái)執(zhí)行。
上述的步驟的處理原則為使用隊(duì)列(Queue)將序號(hào)不照順序的封包依序排入隊(duì)列中,若有缺號(hào)可先略過(guò);若隊(duì)列已滿,則丟棄該封包;若該封包可補(bǔ)足原不連續(xù)的隊(duì)列,則將該封包插入隊(duì)列中正確位置,并丟棄隊(duì)列中最后的封包。接著依序檢查隊(duì)列中序號(hào),若有不連續(xù)發(fā)生,則向發(fā)送端請(qǐng)求重送遺失的封包;需等待遺失的封包補(bǔ)足后才能再取隊(duì)列中的下個(gè)封包。
為了達(dá)到加快處理的速度,該設(shè)備端由第一客戶端收取到的封包先依序放入隊(duì)列中。因?yàn)榉獍趥鬏數(shù)倪^(guò)程中可能遺失或是由于路徑不同,而導(dǎo)致到達(dá)該設(shè)備端的時(shí)間不一致,因而造成失序(不照順序)的現(xiàn)象。該設(shè)備端依照封包的序號(hào),依序放入隊(duì)列中可以首先解決因路徑不同而產(chǎn)生的失序問(wèn)題,有遺缺的封包則暫時(shí)略過(guò)其序號(hào)。另因該設(shè)備端的資源有限,即隊(duì)列的長(zhǎng)度也有所限制,超過(guò)隊(duì)列長(zhǎng)度可以儲(chǔ)存的封包即丟棄。若有后來(lái)的封包序號(hào)可以補(bǔ)足已在隊(duì)列中的跳號(hào)時(shí),則該封包需插入隊(duì)列順序正確的位置,并丟棄隊(duì)列中最大序號(hào)的暫存封包,以維持隊(duì)列的大小。而此隊(duì)列長(zhǎng)度最大依資源而無(wú)限制,以可摸擬可信賴協(xié)議為目標(biāo),最小長(zhǎng)度為當(dāng)下收取的封包。
接著會(huì)將封包從隊(duì)列依序取出,并一一檢查序號(hào)是否有連續(xù)。遇到?jīng)]有連續(xù)的部分時(shí),必需等待此缺少的封包補(bǔ)足后才可繼續(xù)取出隊(duì)列中的下一個(gè)封包。如此運(yùn)作,即可以維持封包的順序性,達(dá)到入侵檢測(cè)、防毒墻等系統(tǒng)的要求。
以RFC規(guī)格建議書(shū)(Request For Comments)來(lái)說(shuō),第一客戶端110必須等到收到timeout的消息,且沒(méi)有收到第二客戶端150所傳來(lái)的確認(rèn)消息才能夠重新傳送封包。對(duì)設(shè)備端130來(lái)說(shuō),這樣的條件會(huì)耽擱太多的時(shí)間來(lái)判定是否需要重新傳送封包,因此設(shè)備端130會(huì)發(fā)出消息給第一客戶端110,使其盡速再次重新傳送遺失的封包,其中設(shè)備端130可采用直接發(fā)出多個(gè)確認(rèn)信號(hào)的方式來(lái)要求第一客戶端110快速重新遞送遺失的封包。在本發(fā)明的一實(shí)施例中,可直接連續(xù)發(fā)出四個(gè)確認(rèn)信號(hào),其中較晚發(fā)出的三個(gè)確認(rèn)信號(hào)為最先被發(fā)出的確認(rèn)信號(hào)的復(fù)制信號(hào)。
請(qǐng)注意,當(dāng)隊(duì)列的大小正好等于所應(yīng)用的協(xié)議所訂定的窗口大小時(shí),存儲(chǔ)器135的使用率可達(dá)到最大,并可完全模擬第一客戶端110與第二客戶端150之間的對(duì)話行為。而當(dāng)隊(duì)列長(zhǎng)度為零,亦即當(dāng)不使用隊(duì)列時(shí)(此時(shí)存儲(chǔ)器的使用量最小,只暫存當(dāng)下收取的封包),則不執(zhí)行步驟204、206、210,僅執(zhí)行步驟200、202、208、212、214、216、218,且并不會(huì)影響到本發(fā)明的方法的正常執(zhí)行。
在圖2所述的所有步驟中,以有隊(duì)列長(zhǎng)度情況來(lái)說(shuō)明若先前丟棄的封包在丟棄后的下一瞬間需要馬上被設(shè)備端130所存取,再加上要求重新遞送遺失的封包的請(qǐng)求所加起來(lái)的時(shí)間損耗。為了盡可能避免此種時(shí)間上的浪費(fèi),可通過(guò)存儲(chǔ)器135有限的部分儲(chǔ)存量來(lái)將部分序號(hào)不按照順序的封包先行以隊(duì)列(Queue)的方式采步驟204儲(chǔ)存起來(lái),儲(chǔ)存在隊(duì)列中的封包可迅速地以步驟204、206、208、210使用并由該隊(duì)列中移除,也減緩了上述的時(shí)間浪費(fèi)。隊(duì)列中可儲(chǔ)存的封包最大數(shù)量可由設(shè)備端130自行根據(jù)需要來(lái)動(dòng)態(tài)的修改。而當(dāng)該隊(duì)列已到達(dá)其最大儲(chǔ)存量卻又有新的封包需要儲(chǔ)存時(shí),則可通過(guò)優(yōu)先權(quán)順序來(lái)決定移除其儲(chǔ)存的某一封包,再將新的封包儲(chǔ)存于該隊(duì)列中。
請(qǐng)注意,在步驟204中所述的隊(duì)列可依設(shè)備端130本身的資源來(lái)加以動(dòng)態(tài)調(diào)整其長(zhǎng)度,因此該隊(duì)列的最小長(zhǎng)度可為0。該隊(duì)列本身的作用在于減少執(zhí)行步驟216的頻率,以減少執(zhí)行重傳封包機(jī)制所延遲的時(shí)間。
在封包限制單元131執(zhí)行完圖2中所示的步驟后,可確保由封包限制單元131遞送至封包重傳處理單元133的封包都會(huì)遵照其順序。然而重新遞送的封包會(huì)造成系統(tǒng)安全上的漏洞,且重新遞送的封包與相關(guān)數(shù)據(jù)也不一定會(huì)和已經(jīng)遞送的數(shù)據(jù)內(nèi)容及其大小一樣。在考慮設(shè)備端130的系統(tǒng)資源限制時(shí),一般的設(shè)備端130無(wú)法如上述的網(wǎng)絡(luò)侵入防治軟件Snort一樣,為每一個(gè)對(duì)話保留不小的空間以管理封包的問(wèn)題。因此本發(fā)明亦提供一種解決重新遞送封包所引起的問(wèn)題的網(wǎng)絡(luò)封包串流仿真方法,并配合圖1所述的封包重傳處理單元133來(lái)實(shí)施。請(qǐng)參閱圖3、圖4、與圖5,其為本發(fā)明在封包到達(dá)設(shè)備端后,所提供的解決重新遞送封包所引起的問(wèn)題的網(wǎng)絡(luò)封包串流仿真方法的流程圖,并請(qǐng)同時(shí)參閱圖1。圖3至圖5包含下列步驟步驟300步驟開(kāi)始;步驟302封包重傳處理單元133由封包限制單元131接收第n封包;步驟304減少窗口大小;步驟306確認(rèn)是否包含確認(rèn)信號(hào);若是,則執(zhí)行步驟308,否則執(zhí)行步驟314;步驟308確認(rèn)清單中是否存在有已確認(rèn)過(guò)的特征值項(xiàng)目;若是,則執(zhí)行步驟310,否則執(zhí)行步驟312;步驟310清除已被第二客戶端確認(rèn)的特征值項(xiàng)目;步驟312確認(rèn)是否含有內(nèi)容;若是,則執(zhí)行步驟314,否則執(zhí)行步驟322;步驟314將該第n封包的序號(hào)與清單中各特征值項(xiàng)目的序號(hào)范圍做比較;步驟316確認(rèn)該第n封包的序號(hào)是否為連接清單所追蹤的序號(hào);若是,執(zhí)行步驟318,否則執(zhí)行步驟324;步驟318設(shè)備端130檢查連接清單的長(zhǎng)度是否超過(guò)限定值;若是,則執(zhí)行步驟326,否則執(zhí)行步驟320;步驟320設(shè)備端130計(jì)算封包的特征值,并依序儲(chǔ)存于連接清單中;步驟322送出該第n封包;步驟324確認(rèn)該第n封包的內(nèi)容是否與連接清單中的特征值的第k項(xiàng)目對(duì)應(yīng)的序號(hào)范圍重迭;若是,執(zhí)行步驟330;若否,則執(zhí)行步驟326;步驟326丟棄該第n封包;步驟328步驟結(jié)束;步驟330確認(rèn)該第n封包的內(nèi)容與該連接清單內(nèi)某一特征值的第k項(xiàng)目對(duì)應(yīng)的序號(hào)范圍重迭的狀況,或該第n封包的內(nèi)容在確認(rèn)重迭狀況之前,是先儲(chǔ)存于該第k項(xiàng)目所屬的暫存器封包,不論要處理的封包為從該第n封包而來(lái)或是由該第k項(xiàng)目的暫存器封包而來(lái),以下皆以第L封包稱之,并作以下敘述;當(dāng)該第L封包的序號(hào)與該連接清單中某一特征值的第k項(xiàng)目的序號(hào)范圍的開(kāi)頭序號(hào)吻合時(shí),執(zhí)行步驟332;當(dāng)該第L封包的序號(hào)落在該連接清單中某一特征值的第k項(xiàng)目的序號(hào)范圍內(nèi)時(shí),執(zhí)行步驟356;當(dāng)該第L封包的序號(hào)比該連接清單中最小特征值的第k項(xiàng)目的序號(hào)范圍小時(shí),執(zhí)行步驟362;步驟332比較該第L封包的長(zhǎng)度與該第k項(xiàng)目的長(zhǎng)度;當(dāng)該第L封包的長(zhǎng)度與該第k項(xiàng)目的長(zhǎng)度相等時(shí),執(zhí)行步驟334;當(dāng)該第L封包的長(zhǎng)度小于該第k項(xiàng)目的長(zhǎng)度時(shí),執(zhí)行步驟344;當(dāng)該第L封包的長(zhǎng)度大于該第k項(xiàng)目的長(zhǎng)度時(shí),執(zhí)行步驟350;步驟334計(jì)算該第L封包的特征值的檢查碼,并確認(rèn)計(jì)算出的該檢查碼與該第k項(xiàng)目的檢查碼是否吻合;當(dāng)吻合時(shí),執(zhí)行步驟336,否則執(zhí)行步驟338;步驟336送出該第L封包;步驟338確認(rèn)該第L封包是否已執(zhí)行過(guò)步驟346;若是,則執(zhí)行步驟348,否則執(zhí)行步驟340;步驟340丟棄該第L封包;步驟342步驟結(jié)束;步驟344將該第L封包儲(chǔ)存于該第k項(xiàng)目的暫存器中;步驟346檢查該第k項(xiàng)目暫存器封包是否已符合該第k項(xiàng)目的長(zhǎng)度;若符合,則執(zhí)行步驟334,否則執(zhí)行步驟348;步驟348等待timeout消息,且當(dāng)?shù)却絫imeout消息時(shí),丟棄該第L封包,并執(zhí)行步驟342;步驟350分割該第L封包為第i封包與第j封包,其中該第i封包是起始于該第L封包的序號(hào),且該第i封包的長(zhǎng)度是等于該第k項(xiàng)目的長(zhǎng)度,該第j封包的長(zhǎng)度是等于該第L封包的長(zhǎng)度減去該第k項(xiàng)目的長(zhǎng)度;步驟352辨識(shí)該第i封包與該第j封包,若辨識(shí)出該第i封包,則以該第i封包執(zhí)行步驟334;若辨識(shí)出該第j封包,則以該第j封包執(zhí)行步驟354;步驟354確認(rèn)該第k項(xiàng)目是否為該連接清單的最后一個(gè)項(xiàng)目;若是,則丟棄該第j封包,并執(zhí)行步驟342,否則以該第j封包執(zhí)行步驟330;步驟356分割該第L封包為第i封包與第j封包,其中該第i封包是起始于該第L封包的序號(hào),且該第i封包的結(jié)尾是等于該第k項(xiàng)目的結(jié)尾,該第j封包的長(zhǎng)度是等于該第L封包的長(zhǎng)度減去該第i封包的長(zhǎng)度;步驟358辨識(shí)該第i封包與該第j封包,若辨識(shí)出該第i封包,則以該第i封包執(zhí)行步驟344;若辨識(shí)出該第j封包,則以該第j封包執(zhí)行步驟360;步驟360確認(rèn)該第k項(xiàng)目是否為該連接清單的最后一個(gè)項(xiàng)目;若是,則丟棄該第j封包,并執(zhí)行步驟342,否則以該第j封包執(zhí)行步驟330;步驟362將該第L封包分割為第i封包與第j封包,其中該第j封包是起始于該第k項(xiàng)目的起始序號(hào),并結(jié)束于該第L封包的尾端,該第i封包是起始于該第L封包的起始序號(hào),并結(jié)束于該第k項(xiàng)目的結(jié)尾序號(hào);步驟364辨識(shí)該第i封包與該第j封包;若辨識(shí)出該第I封包,則丟棄該第i封包,并執(zhí)行步驟342;若辨識(shí)出該第j封包,則以該第j封包執(zhí)行步驟330。
在上述的步驟中,封包所包含的特征值可為儲(chǔ)存有多個(gè)變量的數(shù)據(jù)結(jié)構(gòu)或是字符串,并可用來(lái)經(jīng)由特定的算法輸入特征值后得到封包所包含的各種信息,例如封包的序號(hào)、開(kāi)頭、開(kāi)頭長(zhǎng)度、封包本身的長(zhǎng)度、檢查碼等,且不同的特征值必定代表不同的封包。除此以外,在本發(fā)明中,特征值是以連接清單的方式來(lái)加以儲(chǔ)存,因此不同的特征值將會(huì)形成連接清單中不同的項(xiàng)次。若特征值是以數(shù)據(jù)結(jié)構(gòu)的方式來(lái)實(shí)施的話,可以將上述的各種封包信息以變量的形式儲(chǔ)存于數(shù)據(jù)結(jié)構(gòu)中,再通過(guò)上述的算法將數(shù)據(jù)結(jié)構(gòu)中的變量直接取出以得到所需的封包信息;而若特征值是以字符串的方式來(lái)實(shí)施的話,則上述的算法可滿足輸入特征值后可計(jì)算得到所需的封包信息的要求;封包的大小、開(kāi)頭、與檢查碼也可以用同樣的方式儲(chǔ)存于特征值中。需要特別提出的是,本發(fā)明在封包中所使用的檢查碼需要滿足向量空間的特性,例如結(jié)合律或交換律等特性,以滿足對(duì)檢查碼做不同計(jì)算來(lái)做驗(yàn)證的要求。在本發(fā)明的某些實(shí)施例中,可直接通過(guò)傳輸通訊協(xié)議中所使用的checksum變量來(lái)實(shí)現(xiàn)檢查碼的功能,亦可以使用自行設(shè)計(jì)的向量空間函數(shù)來(lái)實(shí)現(xiàn)檢查碼的功能。
在比較封包的差異時(shí),并不需非得要得到封包的序號(hào)才能夠確認(rèn)封包之間的差異,通過(guò)不同的封包其特征值必定不同的特性,可以直接判定是否為重新傳送的封包,因?yàn)橹匦聜魉偷姆獍囟ㄅc先前遺失的封包的特征值相同。而若需要判別封包之間序號(hào)的連續(xù)性時(shí),只要設(shè)計(jì)好適當(dāng)?shù)乃惴?,便可以?jì)算出特征值中有關(guān)序號(hào)的信息,進(jìn)而判別封包之間是否連續(xù)。例如可設(shè)計(jì)出適當(dāng)?shù)奶卣髦蹬c對(duì)應(yīng)的算法,使得只有將兩個(gè)相鄰的封包的特征值輸入該算法時(shí),才會(huì)得到某種特征,并可據(jù)此證明所驗(yàn)證的兩個(gè)封包確實(shí)為連續(xù)的封包。請(qǐng)注意,單一特征值可用來(lái)涵蓋多個(gè)連續(xù)序號(hào)。
上述的特征值由于所占用的數(shù)據(jù)量可相當(dāng)小,相較于先前技術(shù)中需要占用海量存儲(chǔ)器儲(chǔ)存數(shù)據(jù)并等到確認(rèn)信號(hào)的做法,本發(fā)明在大部分的情況中僅儲(chǔ)存特征值,并再加以查詢符合條件的特征值所涵蓋的序號(hào)范圍是個(gè)可節(jié)省存儲(chǔ)器使用量的做法。
在上述的所有步驟中,通過(guò)特征值所儲(chǔ)存的各種消息來(lái)辨認(rèn)屬于同一筆原始數(shù)據(jù)的不同封包。在接收到該第n封包時(shí),將該第n封包的特征值與該連接清單中先前儲(chǔ)存的各特征值經(jīng)過(guò)特定算法運(yùn)算后加以比對(duì)。若在該連接清單中找到條件符合的特征值(亦即該第一封包的特征值),則表示該第n封包為設(shè)備端130先前所接收的封包的重送封包。若并未在該連接清單中找到條件符合的特征值,則表示該第n封包與該連接清單中所儲(chǔ)存的任一特征值所屬的封包無(wú)關(guān),因此直接丟棄該第n封包以縮減處理量。該第n封包根據(jù)特征值所據(jù)以比對(duì)的信息可為該第n封包的開(kāi)頭(header)或與封包開(kāi)頭相關(guān)的信息,例如封包開(kāi)頭的內(nèi)容或長(zhǎng)度等;而上述的用來(lái)判斷是否符合的條件可將該連接清單儲(chǔ)存的特征值輸入特定算法加以計(jì)算后所得到的值來(lái)取得,舉例來(lái)說(shuō),若將特征值加以計(jì)算所得到的值為封包的開(kāi)頭,則當(dāng)該值與該第n封包的開(kāi)頭或該開(kāi)頭的某部分消息時(shí),即為上述的條件符合的狀況;若將特征值加以計(jì)算所得到的值為封包長(zhǎng)度的范圍,例如該第n封包的長(zhǎng)度落在該封包長(zhǎng)度的范圍內(nèi),則亦可視為上述的條件符合的狀況;以上所述的條件符合的狀況僅為本發(fā)明所提供的方法的實(shí)施例,但其它針對(duì)特征值或是封包的其它消息所做的比對(duì)不構(gòu)成脫離本發(fā)明的范疇的事實(shí)。
請(qǐng)注意,步驟304可視情況執(zhí)行或不執(zhí)行,其是根據(jù)設(shè)備端130的資源所提供的連接清單長(zhǎng)度而定。若設(shè)備端130本身的資源不足,以至于連接清單長(zhǎng)度較短時(shí),調(diào)整窗口大小可減少遺失封包的機(jī)率。
請(qǐng)注意,在步驟310中,可以不完全清除已確認(rèn)過(guò)的特征值;通過(guò)保留較新的多個(gè)已確認(rèn)過(guò)的特征值,可以處理確認(rèn)信號(hào)被遺失的問(wèn)題。同時(shí)根據(jù)設(shè)備端數(shù)據(jù)源的多寡,可以調(diào)整保留的特征值的數(shù)目。
請(qǐng)注意,在步驟344中,在將該第L封包儲(chǔ)存至特征值的第k項(xiàng)目所屬的暫存器后,若所儲(chǔ)存的該第L封包的內(nèi)容與該暫存器內(nèi)所對(duì)應(yīng)的內(nèi)容在序號(hào)上有所重迭,可選擇覆蓋或刪除。
請(qǐng)注意,在步驟346中,因?yàn)榈贚封包小于特征值記錄的長(zhǎng)度,因此只能先暫存于該第k項(xiàng)目的暫存器中。然而接下來(lái)所收到的其它同樣暫存于該第k項(xiàng)目的暫存器的封包可能也都小于特征值記錄的長(zhǎng)度,且原則上也必須在每次暫存封包于該第k項(xiàng)目的暫存器時(shí),重新檢查對(duì)應(yīng)的檢查碼(例如checksum等),但如此一來(lái)也會(huì)造成暫存封包的流程過(guò)于冗長(zhǎng)而犧牲其處理效率。因此,在本發(fā)明的一較佳實(shí)施例中,在所暫存的第L封包的數(shù)據(jù)到達(dá)特征值的范圍結(jié)尾時(shí)才會(huì)開(kāi)始檢查上述的檢查碼,或是在該第L封包到達(dá)特征值的范圍結(jié)尾時(shí),才開(kāi)始對(duì)接下來(lái)所暫存的所有封包進(jìn)行相關(guān)檢查碼的檢查,以在處理效率與封包的正確性之間取得平衡(tradeoff)。再者,若該第k項(xiàng)目的暫存器一直無(wú)法接收到可到達(dá)特征值的結(jié)尾的第L封包時(shí),則會(huì)將已逾時(shí)并已儲(chǔ)存于該第k項(xiàng)目的暫存器的第L封包直接丟棄。
在圖3至圖5所述的步驟中,連接清單主要是用來(lái)儲(chǔ)存每個(gè)封包的特征值,而只會(huì)在極少的狀況下才會(huì)儲(chǔ)存整個(gè)封包的內(nèi)容。而儲(chǔ)存封包的特征值僅準(zhǔn)備需要8~16個(gè)字節(jié)的存儲(chǔ)器空間,相較于先前技術(shù)中動(dòng)輒需要儲(chǔ)存整個(gè)封包的數(shù)據(jù)需要數(shù)兆字節(jié)的存儲(chǔ)器空間,本發(fā)明提供的方法將可節(jié)省許多存儲(chǔ)器的使用量。除此以外,上述的特征值的長(zhǎng)度皆小于該特征值所屬的封包的長(zhǎng)度。請(qǐng)參照?qǐng)D6,圖6為圖3至圖5所述的連接清單的運(yùn)作流程。
步驟400開(kāi)始;步驟410接收到傳遞確認(rèn)信號(hào)的封包后,連接清單刪除在接收包含該確認(rèn)信號(hào)的封包之前所儲(chǔ)存的所有特征值與相關(guān)數(shù)據(jù);或選擇性地不完全清除已確認(rèn)過(guò)的特征值,保留較新的多個(gè)已確認(rèn)過(guò)的特征值,但清除與其相關(guān)的暫存器封包;步驟420設(shè)備端130檢查連接清單的長(zhǎng)度是否超過(guò)限定值,若連接清單的長(zhǎng)度超過(guò)限定值,則繼續(xù)步驟430,否則跳至步驟440;步驟430設(shè)備端130丟棄目前所接收的封包,不加入該封包的特征值至連接清單中,使該連接清單的長(zhǎng)度小于該限定值;步驟440設(shè)備端130將封包的特征值儲(chǔ)存為該連接清單中的項(xiàng)目;步驟450設(shè)備端130檢查該連接清單中是否有經(jīng)過(guò)限定時(shí)間后仍未接收到對(duì)應(yīng)的確認(rèn)信號(hào)的特征值,若有經(jīng)過(guò)限定時(shí)間后仍未接收到對(duì)應(yīng)的確認(rèn)信號(hào)的特征值,則將該特征值由連接清單中移除,并丟棄該特征值所屬的封包;步驟460結(jié)束。
連接清單可以使用隊(duì)列(Queue)來(lái)實(shí)施,以達(dá)到先進(jìn)先出的目的。除此以外,圖6所述的連接清單的長(zhǎng)度可以根據(jù)設(shè)備端130的需要,由設(shè)備端130自行加以設(shè)定。
本發(fā)明是在仿真協(xié)議行為的過(guò)程中,在封包進(jìn)入設(shè)備端前由封包限制單元對(duì)封包作處理,使得離開(kāi)該封包限制單元的封包都能夠確保其順序的正確性。并在先行傳送多個(gè)確認(rèn)信號(hào)至發(fā)送端的過(guò)程中,避免發(fā)送端需要等待逾時(shí)后重送的時(shí)間延遲。
封包在離開(kāi)封包限制單元并進(jìn)入封包重傳處理單元以后,通過(guò)封包內(nèi)所儲(chǔ)存的特征值對(duì)封包的唯一性來(lái)對(duì)封包作各種辨識(shí)的工作,以判定特征值所屬的封包是否為先前設(shè)備端所處理過(guò)的某一封包的重傳封包。當(dāng)根據(jù)封包的特征值所計(jì)算出的長(zhǎng)度發(fā)現(xiàn)該封包所屬的原始數(shù)據(jù)尚未收集完畢時(shí),將該封包暫存于連接清單中,以繼續(xù)收集與該原始數(shù)據(jù)相關(guān)的封包;而當(dāng)已超過(guò)預(yù)定長(zhǎng)度時(shí),則將封包再加以切割為適當(dāng)?shù)拈L(zhǎng)度,并將被切割而剩下來(lái)的部分再以未收集完畢的形式為準(zhǔn)繼續(xù)處理。當(dāng)所收集的封包未到達(dá)或已超過(guò)下一特征值所屬的封包的開(kāi)頭時(shí),亦將所收集的封包暫時(shí)儲(chǔ)存起來(lái),以等待適當(dāng)?shù)臅r(shí)機(jī)(例如收到對(duì)應(yīng)的確認(rèn)信號(hào)或該封包的有效時(shí)間結(jié)束時(shí))將該封包刪除。通過(guò)特征值儲(chǔ)存量遠(yuǎn)較封包為小,且在本發(fā)明的方法中需要將整個(gè)封包儲(chǔ)存起來(lái)的狀況不常發(fā)生的特點(diǎn),可有效節(jié)省存儲(chǔ)器的使用量,并解決先前技術(shù)中不能同時(shí)解決封包亂序、重送與存儲(chǔ)器使用量增加的問(wèn)題。除此以外,本發(fā)明可單純?cè)诰W(wǎng)絡(luò)第三層獨(dú)立運(yùn)作,因此也不會(huì)有效能減失的問(wèn)題。
以上所述僅為本發(fā)明的較佳實(shí)施例,凡依本發(fā)明權(quán)利要求范圍所做的均等變化與修飾,皆應(yīng)屬本發(fā)明的涵蓋范圍。
權(quán)利要求
1.一種在使封包進(jìn)入設(shè)備端前得以遵照順序的網(wǎng)絡(luò)封包串流仿真方法,包含丟棄序號(hào)不照順序的封包;向客戶端請(qǐng)求重新遞送遺失的封包;減少該客戶端所應(yīng)用的通訊協(xié)議的窗口大??;及使用隊(duì)列暫存序號(hào)不照順序的封包。
2.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)封包串流仿真方法,其中丟棄序號(hào)不照順序的封包包含檢查封包的序號(hào)是否有重復(fù)的情況;及當(dāng)有兩個(gè)以上的封包的序號(hào)發(fā)生重復(fù)時(shí),僅保留其中一個(gè)封包,并移除其它重復(fù)序號(hào)的封包。
3.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)封包串流仿真方法,其中向該第一客戶端請(qǐng)求重新遞送遺失的封包包含一次發(fā)送三個(gè)以上的連續(xù)確認(rèn)信號(hào)至該客戶端。
4.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)封包串流仿真方法,還包含將隊(duì)列中的封包依序排列,缺號(hào)可先省略,若后續(xù)可補(bǔ)足序號(hào),則插入隊(duì)列中維護(hù)連續(xù)性。若隊(duì)列長(zhǎng)度超過(guò)設(shè)備端有限制時(shí),則移除最大序號(hào)的封包。
5.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)封包串流仿真方法是應(yīng)用于可信賴傳輸協(xié)議。
6.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)封包串流仿真方法是應(yīng)用于傳輸控制協(xié)議。
7.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)封包串流仿真方法是應(yīng)用于序列封包交換協(xié)議。
8.一種在封包到達(dá)設(shè)備端后處理重新傳送的封包以節(jié)省存儲(chǔ)器使用量的網(wǎng)絡(luò)封包串流仿真方法,包含(a)封包重傳處理單元由封包限制單元接收第n封包;(b)減少所處理的窗口大小;(c)確認(rèn)該第n封包是否包含確認(rèn)信號(hào);(d)當(dāng)該第n封包包含該確認(rèn)信號(hào)時(shí),確認(rèn)連接清單中是否存在有已確認(rèn)過(guò)的特征值項(xiàng)目;(d1)選擇性地不完全清除已確認(rèn)過(guò)的特征值,以通過(guò)保留較新的多個(gè)已確認(rèn)過(guò)的特征值,來(lái)處理確認(rèn)后封包經(jīng)過(guò)設(shè)備端后被遺失的狀況;(e)當(dāng)該連接清單中存在有已確認(rèn)過(guò)的特征值項(xiàng)目時(shí),清除已被確認(rèn)的特征值項(xiàng)目;(f)確認(rèn)該連接清單中是否包含有內(nèi)容;(g)當(dāng)該連接清單中包含有內(nèi)容時(shí),或當(dāng)該第n封包未包含該確認(rèn)信號(hào)時(shí),將該第n封包的序號(hào)與該連接清單中各特征值項(xiàng)目的序號(hào)范圍做比較;(h)確認(rèn)該第n封包的序號(hào)是否為該連接清單所追蹤的序號(hào);(i)設(shè)備端檢查該連接清單的長(zhǎng)度是否超過(guò)限定值;(j)設(shè)備端計(jì)算封包的特征值,并依序儲(chǔ)存于該連接清單中;(k)當(dāng)該連接清單中未包含有內(nèi)容,或是設(shè)備端已依序?qū)⒎獍奶卣髦祪?chǔ)存于該連接清單時(shí),送出該第n封包;(l)當(dāng)該第n封包的序號(hào)并非為該連接清單所追蹤的序號(hào)時(shí),確認(rèn)該第n封包的內(nèi)容是否與該連接清單中的特征值的第k項(xiàng)目對(duì)應(yīng)的序號(hào)范圍重迭;(m)當(dāng)該第n封包的內(nèi)容并未與該連接清單中的特征值的第k項(xiàng)目對(duì)應(yīng)的序號(hào)范圍重迭,或當(dāng)該連接清單的長(zhǎng)度超過(guò)限定值時(shí),丟棄該第n封包;(n)當(dāng)該第n封包的內(nèi)容是與該連接清單中的特征值的第k項(xiàng)目對(duì)應(yīng)的序號(hào)范圍重迭時(shí),確認(rèn)該第n封包的內(nèi)容與該連接清單內(nèi)某一特征值的第k項(xiàng)目對(duì)應(yīng)的序號(hào)范圍重迭的狀況,或該第n封包的內(nèi)容在確認(rèn)重迭狀況之前,是先儲(chǔ)存于該第k項(xiàng)目所屬的暫存器封包,以產(chǎn)生第L封包,其中該第L封包是由該第n封包而來(lái),或由該第k項(xiàng)目所屬的暫存器封包而來(lái);(o)當(dāng)該第L封包的序號(hào)與該連接清單中的特征值的第k項(xiàng)目序號(hào)吻合時(shí),比較該第L封包與該第k項(xiàng)目的長(zhǎng)度;(p)當(dāng)該第L封包與該第k項(xiàng)目的長(zhǎng)度相等時(shí),計(jì)算該第L封包的特征值的檢查碼,并確認(rèn)計(jì)算出的檢查碼與該第k項(xiàng)目的檢查碼是否吻合;(q)當(dāng)該計(jì)算出的檢查碼與該第k項(xiàng)目的檢查碼吻合時(shí),送出該第L封包;(r)當(dāng)該第L封包的長(zhǎng)度小于該第k項(xiàng)目的長(zhǎng)度時(shí),將該第L封包儲(chǔ)存于該第k項(xiàng)目的暫存器中;(s)檢查該第k項(xiàng)目的暫存器封包是否已符合該第k項(xiàng)目的長(zhǎng)度;(t)當(dāng)該第L封包不符合該第k項(xiàng)目的長(zhǎng)度時(shí),等待逾時(shí)消息,且當(dāng)?shù)却皆撚鈺r(shí)消息時(shí),丟棄該第L封包;(u)當(dāng)該第L封包的長(zhǎng)度大于該第k項(xiàng)目的長(zhǎng)度時(shí),分割該第L封包為第i封包與第j封包,其中該第i封包是起始于該第L封包的序號(hào),且該第i封包的長(zhǎng)度是等于該第k項(xiàng)目的長(zhǎng)度,該第j封包的長(zhǎng)度是等于該第L封包的長(zhǎng)度減去該第k項(xiàng)目的長(zhǎng)度;(v)辨識(shí)該第i封包與該第j封包,且當(dāng)辨識(shí)出該第i封包時(shí),對(duì)該第i封包執(zhí)行步驟(p);(w)當(dāng)辨識(shí)出該第j封包時(shí),對(duì)該第j封包確認(rèn)該第k項(xiàng)目是否為該連接清單的最后一個(gè)項(xiàng)目;當(dāng)該第k項(xiàng)目為該連接清單的最后一個(gè)項(xiàng)目時(shí),對(duì)該第j封包執(zhí)行步驟(i),否則對(duì)該第j封包執(zhí)行步驟(n);(x1)當(dāng)該第L封包序號(hào)落在該連接清單內(nèi)某特征值的第k項(xiàng)目范圍內(nèi)時(shí),將該第L封包分割為第x封包與第y封包,其中該第x封包是起始于該第L封包的序號(hào),且該第x封包是起始于該第L封包的序號(hào),且該第x封包的結(jié)尾是等于該第k項(xiàng)目的結(jié)尾,該第y封包的長(zhǎng)度是等于該第L封包的長(zhǎng)度減去該第x封包的長(zhǎng)度;(x2)辨識(shí)該第x封包與該第y封包,當(dāng)辨識(shí)出該第x封包時(shí),對(duì)該第x封包執(zhí)行步驟(r);(x3)確認(rèn)該第y封包中,該第k項(xiàng)目是否為該連接清單的最后一個(gè)項(xiàng)目,當(dāng)該第k項(xiàng)目為該連接清單的最后一個(gè)項(xiàng)目時(shí),以該第y封包執(zhí)行步驟(i);否則,以該第y封包執(zhí)行步驟(n);(y1)將該第L封包分割為第s封包與第t封包,其中該第t封包是起始于該第k項(xiàng)目的起始序號(hào),并結(jié)束于該第L封包的尾端,該第s封包是起始于該第L封包的起始序號(hào),并結(jié)束于該第k項(xiàng)目的結(jié)尾序號(hào);及(y2)辨識(shí)該第s封包與該第t封包,當(dāng)辨識(shí)出該第t封包時(shí),則對(duì)該第t封包執(zhí)行步驟(n)。
9.根據(jù)權(quán)利要求8所述的網(wǎng)絡(luò)封包串流仿真方法,其中步驟(x3)還包含當(dāng)該第y封包中,該第k項(xiàng)目為該連接清單的最后一個(gè)項(xiàng)目時(shí),以該第y封包執(zhí)行步驟(i)。
10.根據(jù)權(quán)利要求8所述的網(wǎng)絡(luò)封包串流仿真方法,其中步驟(y2)還包含當(dāng)辨識(shí)出該第s封包時(shí),丟棄該第s封包。
11.根據(jù)權(quán)利要求8所述的網(wǎng)絡(luò)封包串流仿真方法,其中步驟(p)還包含當(dāng)該計(jì)算出的檢查碼與該第k項(xiàng)目的檢查碼不吻合時(shí),確認(rèn)該第L封包是否已經(jīng)過(guò)步驟(s)的處理;當(dāng)該第L封包已經(jīng)過(guò)步驟(s)的處理時(shí),執(zhí)行步驟(t);及當(dāng)該第L封包未經(jīng)過(guò)步驟(s)的處理時(shí),丟棄該第L封包。
12.根據(jù)權(quán)利要求8所述的網(wǎng)絡(luò)封包串流仿真方法,其中各封包的檢查碼是屬于向量空間,并符合結(jié)合律與交換律的條件。
13.根據(jù)權(quán)利要求12所述的網(wǎng)絡(luò)封包串流仿真方法,其中各封包的檢查碼是以傳輸控制協(xié)議所使用的檢查和變量來(lái)實(shí)施。
14.根據(jù)權(quán)利要求12所述的網(wǎng)絡(luò)封包串流仿真方法,其中各封包的檢查碼為自訂的向量空間函數(shù)。
15.一種在使封包進(jìn)入設(shè)備端前得以遵照順序且在封包到達(dá)設(shè)備端后處理重新傳送的封包以節(jié)省存儲(chǔ)器使用量的網(wǎng)絡(luò)封包串流仿真方法,包含(z1)丟棄序號(hào)不照順序的封包;(z2)向第一客戶端請(qǐng)求重新遞送遺失的封包;(z3)過(guò)濾該第一客戶端的選擇性確認(rèn)信號(hào)機(jī)制,并減少該客戶端所應(yīng)用的通訊協(xié)議的窗口大??;(z4)使用隊(duì)列暫存序號(hào)不照順序的封包;(a)封包重傳處理單元由封包限制單元接收第n封包;(b)減少所處理的窗口大??;(c)確認(rèn)該第n封包是否包含確認(rèn)信號(hào);(d)當(dāng)該第n封包包含該確認(rèn)信號(hào)時(shí),確認(rèn)連接清單中是否存在有已確認(rèn)過(guò)的特征值項(xiàng)目;(d1)選擇性地不完全清除已確認(rèn)過(guò)的特征值,以通過(guò)保留較新的多個(gè)已確認(rèn)過(guò)的特征值,來(lái)處理確認(rèn)后封包經(jīng)過(guò)設(shè)備端后被遺失的狀況;(e)當(dāng)該連接清單中存在有已確認(rèn)過(guò)的特征值項(xiàng)目時(shí),清除已被確認(rèn)的特征值項(xiàng)目;(f)確認(rèn)該連接清單中是否包含有內(nèi)容;(g)當(dāng)該連接清單中包含有內(nèi)容時(shí),或當(dāng)該第n封包未包含該確認(rèn)信號(hào)時(shí),將該第n封包的序號(hào)與該連接清單中各特征值項(xiàng)目的序號(hào)范圍做比較;(h)確認(rèn)該第n封包的序號(hào)是否為該連接清單所追蹤的序號(hào);(i)設(shè)備端檢查該連接清單的長(zhǎng)度是否超過(guò)限定值;(j)設(shè)備端計(jì)算封包的特征值,并依序儲(chǔ)存于該連接清單中;(k)當(dāng)該連接清單中未包含有內(nèi)容,或是設(shè)備端已依序?qū)⒎獍奶卣髦祪?chǔ)存于該連接清單時(shí),送出該第n封包;(l)當(dāng)該第n封包的序號(hào)并非為該連接清單所追蹤的序號(hào)時(shí),確認(rèn)該第n封包的內(nèi)容是否與該連接清單中的特征值的第k項(xiàng)目對(duì)應(yīng)的序號(hào)范圍重迭;(m)當(dāng)該第n封包的內(nèi)容并未與該連接清單中的特征值的第k項(xiàng)目對(duì)應(yīng)的序號(hào)范圍重迭,或當(dāng)該連接清單的長(zhǎng)度超過(guò)限定值時(shí),丟棄該第n封包;(n)當(dāng)該第n封包的內(nèi)容是與該連接清單中的特征值的第k項(xiàng)目對(duì)應(yīng)的序號(hào)范圍重迭時(shí),確認(rèn)該第n封包的內(nèi)容與該連接清單內(nèi)某一特征值的第k項(xiàng)目對(duì)應(yīng)的序號(hào)范圍重迭的狀況,或該第n封包的內(nèi)容在確認(rèn)重迭狀況之前,是先儲(chǔ)存于該第k項(xiàng)目所屬的暫存器封包,以產(chǎn)生第L封包,其中該第L封包是由該第n封包而來(lái),或由該第k項(xiàng)目所屬的暫存器封包而來(lái);(o)當(dāng)該第L封包的序號(hào)與該連接清單中的特征值的第k項(xiàng)目序號(hào)吻合時(shí),比較該第L封包與該第k項(xiàng)目的長(zhǎng)度;(p)當(dāng)該第L封包與該第k項(xiàng)目的長(zhǎng)度相等時(shí),計(jì)算該第L封包的特征值的檢查碼,并確認(rèn)計(jì)算出的檢查碼與該第k項(xiàng)目的檢查碼是否吻合;(q)當(dāng)該計(jì)算出的檢查碼與該第k項(xiàng)目的檢查碼吻合時(shí),送出該第L封包;(r)當(dāng)該第L封包的長(zhǎng)度小于該第k項(xiàng)目的長(zhǎng)度時(shí),將該第L封包儲(chǔ)存于該第k項(xiàng)目的暫存器中;(s)檢查該第k項(xiàng)目的暫存器封包是否已符合該第k項(xiàng)目的長(zhǎng)度;(t)當(dāng)該第L封包不符合該第k項(xiàng)目的長(zhǎng)度時(shí),等待逾時(shí)消息,且當(dāng)?shù)却皆撚鈺r(shí)消息時(shí),丟棄該第L封包;(u)當(dāng)該第L封包的長(zhǎng)度大于該第k項(xiàng)目的長(zhǎng)度時(shí),分割該第L封包為第i封包與第j封包,其中該第i封包是起始于該第L封包的序號(hào),且該第i封包的長(zhǎng)度是等于該第k項(xiàng)目的長(zhǎng)度,該第j封包的長(zhǎng)度是等于該第L封包的長(zhǎng)度減去該第k項(xiàng)目的長(zhǎng)度;(v)辨識(shí)該第i封包與該第j封包,且當(dāng)辨識(shí)出該第i封包時(shí),對(duì)該第i封包執(zhí)行步驟(p);(w)當(dāng)辨識(shí)出該第j封包時(shí),對(duì)該第j封包確認(rèn)該第k項(xiàng)目是否為該連接清單的最后一個(gè)項(xiàng)目;當(dāng)該第k項(xiàng)目為該連接清單的最后一個(gè)項(xiàng)目時(shí),對(duì)該第j封包執(zhí)行步驟(i),否則對(duì)該第j封包執(zhí)行步驟(n);(x1)當(dāng)該第L封包序號(hào)落在該連接清單內(nèi)某特征值的第k項(xiàng)目范圍內(nèi)時(shí),將該第L封包分割為第x封包與第y封包,其中該第x封包是起始于該第L封包的序號(hào),且該第x封包是起始于該第L封包的序號(hào),且該第x封包的結(jié)尾是等于該第k項(xiàng)目的結(jié)尾,該第y封包的長(zhǎng)度是等于該第L封包的長(zhǎng)度減去該第x封包的長(zhǎng)度;(x2)辨識(shí)該第x封包與該第y封包,當(dāng)辨識(shí)出該第x封包時(shí),對(duì)該第x封包執(zhí)行步驟(r);(x3)確認(rèn)該第y封包中,該第k項(xiàng)目是否為該連接清單的最后一個(gè)項(xiàng)目,當(dāng)該第k項(xiàng)目為該連接清單的最后一個(gè)項(xiàng)目時(shí),以該第y封包執(zhí)行步驟(i);否則,以該第y封包執(zhí)行步驟(n);(y1)將該第L封包分割為第s封包與第t封包,其中該第t封包是起始于該第k項(xiàng)目的起始序號(hào),并結(jié)束于該第L封包的尾端,該第s封包是起始于該第L封包的起始序號(hào),并結(jié)束于該第k項(xiàng)目的結(jié)尾序號(hào);及(y2)辨識(shí)該第s封包與該第t封包,當(dāng)辨識(shí)出該第t封包時(shí),則對(duì)該第t封包執(zhí)行步驟(n)。
16.根據(jù)權(quán)利要求15所述的網(wǎng)絡(luò)封包串流仿真方法,其中丟棄序號(hào)不照順序的封包包含檢查封包的序號(hào)是否有重復(fù)的情況;及當(dāng)有兩個(gè)以上的封包的序號(hào)發(fā)生重復(fù)時(shí),僅保留其中一個(gè)封包,并移除其它重復(fù)序號(hào)的封包。
17.根據(jù)權(quán)利要求15所述的網(wǎng)絡(luò)封包串流仿真方法,其中向該第一客戶端請(qǐng)求重新遞送遺失的封包包含一次發(fā)送三個(gè)以上的連續(xù)確認(rèn)信號(hào)至該客戶端。
18.根據(jù)權(quán)利要求15所述的網(wǎng)絡(luò)封包串流仿真方法是應(yīng)用于可信賴傳輸協(xié)議。
19.根據(jù)權(quán)利要求15所述的網(wǎng)絡(luò)封包串流仿真方法是應(yīng)用于傳輸控制協(xié)議。
20.根據(jù)權(quán)利要求15所述的網(wǎng)絡(luò)封包串流仿真方法是應(yīng)用于序列封包交換協(xié)議。
21.根據(jù)權(quán)利要求15所述的網(wǎng)絡(luò)封包串流仿真方法,其中各封包的檢查碼是屬于向量空間,并符合結(jié)合律與交換律的條件。
22.根據(jù)權(quán)利要求15所述的網(wǎng)絡(luò)封包串流仿真方法,其中各封包的檢查碼是以傳輸控制協(xié)議所使用的檢查和變量來(lái)實(shí)施。
23.根據(jù)權(quán)利要求15所述的網(wǎng)絡(luò)封包串流仿真方法,其中各封包的檢查碼為自訂的向量空間函數(shù)。
24.根據(jù)權(quán)利要求15所述的網(wǎng)絡(luò)封包串流仿真方法,其中步驟(x3)還包含當(dāng)該第y封包中,該第k項(xiàng)目為該連接清單的最后一個(gè)項(xiàng)目時(shí),以該第y封包執(zhí)行步驟(i)。
25.根據(jù)權(quán)利要求15所述的網(wǎng)絡(luò)封包串流仿真方法,其中步驟(y2)還包含當(dāng)辨識(shí)出該第s封包時(shí),丟棄該第s封包。
26.根據(jù)權(quán)利要求15所述的網(wǎng)絡(luò)封包串流仿真方法,其中步驟(p)還包含當(dāng)該計(jì)算出的檢查碼與該第k項(xiàng)目的檢查碼不吻合時(shí),確認(rèn)該第L封包是否已經(jīng)過(guò)步驟(s)的處理;當(dāng)該第L封包已經(jīng)過(guò)步驟(s)的處理時(shí),執(zhí)行步驟(t);及當(dāng)該第L封包未經(jīng)過(guò)步驟(s)的處理時(shí),丟棄該第L封包。
全文摘要
在封包進(jìn)入路由器前,封包限制單元丟棄失序的封包、減少窗口大小,并將部分失序的封包暫時(shí)儲(chǔ)存,以使得封包以較佳的效率通過(guò)封包限制單元后的順序正確。在封包進(jìn)入路由器后,封包重傳處理單元通過(guò)封包所儲(chǔ)存的特征值及由該特征值可計(jì)算出的各種消息,以得到封包的順序性、大小、開(kāi)頭、及檢查碼等消息來(lái)輔助辨識(shí)封包之間的差異,并通過(guò)連接清單將已通過(guò)設(shè)備端封包的特征值暫存起來(lái),取代整個(gè)封包的儲(chǔ)存,以減少存儲(chǔ)器的使用量。通過(guò)上述的兩種方法,可同時(shí)解決封包在傳輸時(shí)的失序與重傳問(wèn)題,并解決存儲(chǔ)器使用量過(guò)大的問(wèn)題。
文檔編號(hào)H04L1/18GK1968074SQ20061014326
公開(kāi)日2007年5月23日 申請(qǐng)日期2006年11月1日 優(yōu)先權(quán)日2005年11月3日
發(fā)明者文長(zhǎng)中, 楊子劍, 張偉泰, 涂政宏 申請(qǐng)人:居易科技股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1