專利名稱:一種刷新會話表的方法
技術領域:
本發(fā)明涉及數(shù)據(jù)流的刷新方法,更具體地,涉及一種刷新會話表的方法。
背景技術:
目前數(shù)據(jù)通信設備對數(shù)據(jù)報文的轉發(fā)處理通常有兩種方式一種是基于包轉發(fā),即對所有通過該數(shù)據(jù)通信設備的數(shù)據(jù)報文逐包進行規(guī)則過濾,安全檢查等操作。此種方式常見于路由器、交換機等設備,優(yōu)點是只需要對報文的二、三層(OSI網絡模型的鏈路層、網絡層協(xié)議)報文內容進行處理,而對報文的四層以上內容則很少關心。但這種方式也有缺點,對報文逐包檢查,轉發(fā)性能會受一定的影響。
另一種是基于流轉發(fā),即對具有相同五元組的數(shù)據(jù)報文劃分成數(shù)據(jù)流。數(shù)據(jù)通信設備對數(shù)據(jù)流進行統(tǒng)一處理,建立會話表,進行攻擊防范、安全檢查、日志輸出等操作。這種處理需要對報文的第四層(OSI網絡模型的傳輸層協(xié)議)以上內容進行解析。此種方式常見于防火墻等網絡設備。數(shù)據(jù)流會話是指五元組相同的一組數(shù)據(jù)流,五元組包括會話的源IP地址、源端口號、目的IP地址、目的端口號及協(xié)議號。
本發(fā)明是基于流轉發(fā)的數(shù)據(jù)報文處理方式。
對于每一條數(shù)據(jù)流,如果允許通過,則建立一會話表用來標識數(shù)據(jù)流相關信息,后續(xù)報文只有匹配會話表才允許通過。會話表包括數(shù)據(jù)流的協(xié)議類型、上一次報文通過時間、老化時間、轉發(fā)信息和上一級父會話索引KEY值(端口號、IP地址和協(xié)議類型)。
a.會話關聯(lián)若會話間滿足一定約束條件的會話,則彼此之間存在關聯(lián)關系。
以FTP(文件傳輸協(xié)議)服務為例,客戶端PC訪問FTP服務器,首先需要和服務器建立控制協(xié)商通道,通常情況下,對于從客戶端發(fā)出的目的端口為21的數(shù)據(jù)流,我們統(tǒng)稱為控制通道報文。經過TCP協(xié)議的三次握手后,控制通道協(xié)商完成。接下來會由客戶端和FTP服務器進行用戶身份的認證,以FTP的Port方式(主動方式)為例,由客戶端PC發(fā)起目的端口為20、包含有認證信息的數(shù)據(jù)流,我們統(tǒng)稱這種承載FTP數(shù)據(jù)內容的數(shù)據(jù)流為數(shù)據(jù)通道報文。
數(shù)據(jù)通道建立后,用戶和服務器端可以進行身份認證、文件傳輸?shù)炔僮?。而?shù)據(jù)通道的端口號等信息,則是通過客戶端和服務器互發(fā)控制通道報文,動態(tài)協(xié)商產生的。
數(shù)據(jù)通道和控制通道存在關聯(lián)關系,且數(shù)據(jù)通道是由控制通道派生出來的。一旦控制通道中斷,新的數(shù)據(jù)通道便無法協(xié)商建立。
所以,在數(shù)據(jù)通信設備中需要對這種彼此關聯(lián)的會話,建立關聯(lián)信息。由于會話的五元組包括了傳輸層定義的端口號概念,所以對于OSI七層網絡模型來說,會話是傳輸層以上的概念。
b.老化和刷新對于網絡設備來說,會話的容量是有限的,如何利用有限的空間承載更多的服務也是衡量一個設備好壞的標準之一。在應用層協(xié)議實現(xiàn)過程中,一個應用程序通常需要建立多條會話。對于每條會話都設定一個老化時間和一個最后一次命中時間戳,如果該最后一次命中時間戳和當前時間差值大于老化時間,則清除會話表。因此為了避免會話表被不恰當?shù)厍宄枰泳彆挶淼睦匣?,即需要對會話表予以刷新,具體來說就是要更新會話表的時間戳。換句話說,當判斷會話表老化時間大于當前時間與上一次命中時間戳的差時,需要對會話表予以刷新。
通常地是逐包地刷新關聯(lián)會話表。
具體來說,對通過網絡設備的報文,逐包查找是否存在其上一級父會話,如果存在上一級父會話,則索引到上一級父會話,并刷新上一級父會話表的時間戳,于是可以防止會話表被清除。
如圖1所示的,以FTP為例,建立控制通道會話后,通過協(xié)商建立數(shù)據(jù)通道會話。當數(shù)據(jù)通道有報文傳輸時,索引并刷新控制通道。
但是上述的刷新過程是基于逐包刷新的,而逐包刷新會話表會增加報文的處理難度,影響設備轉發(fā)的性能;并且會話表由于只保留一個上一級父會話表的索引KEY值,所以在刷新時,只能索引到上一級父會話,因此只能刷新上一級父會話表。而對于多級會話級聯(lián)的情況,上述方法就不適用。
例如如圖2所示的,H323協(xié)議會話派生H224協(xié)議會話;H224協(xié)議會話派生H245協(xié)議會話。
對于正在處理的H245報文來說,目前的逐包刷新方法只能刷新其上一級父會話表即H224協(xié)議會話表而不能刷新再上一級會話表即H323會話表。
發(fā)明內容
因此本發(fā)明的目的在于針對應用協(xié)議產生多級會話級聯(lián)的情況,提供一種刷新會話表的方法。
本發(fā)明采用獨立于報文處理過程的線程來刷新會話表,該方法包括步驟每隔一定時間間隔,啟動遍歷會話表的線程;判斷是否存在當前會話的上一級父會話;如果存在,則刷新該上一級父會話,重復以上操作直到不存在當前會話的上一級父會話則結束該次刷新操作。
上述方法中,當判斷存在上一級父會話時,利用上一級父會話表中的索引KEY值索引到該上一級父會話。由于采用獨立于報文處理過程的線程刷新會話表,該線程與報文的處理過程是相互獨立的,因此不會降低對報文的處理性能。此外該定時器觸發(fā)獨立于包文處理過程的線程的時間間隔可以通過硬件或者軟件方法實現(xiàn)。
本發(fā)明的特點和細節(jié)將可通過下面結合附圖的具體說明中進一步地了解。
圖1是顯示級聯(lián)會話的示例;圖2是現(xiàn)有技術中存在多級會話時的刷新情況的示例;圖3是本發(fā)明的刷新方法中建立會話表的流程圖;圖4是本發(fā)明的采用獨立于報文的線程刷新會話表的流程圖。
具體實施例方式
下面將結合附圖具體說明本發(fā)明的實施方式。
本發(fā)明針對應用協(xié)議產生多級會話的情況,提供一種采用獨立于報文的線程刷新會話表的方法。該方法采用了相對于報文處理過程獨立的線程,通過硬件或軟件方法來設定啟動的時間間隔、用定時器觸發(fā)該獨立于報文處理過程的線程,從而用獨立于報文處理過程的線程來刷新會話表。
如圖4中的流程圖所表示的,每隔一定時間間隔,用定時器觸發(fā)遍歷會話表的線程。在刷新當前會話表時,從會話表儲存的信息中,判斷是否存在上一級父會話。如果存在上一級父會話,利用會話表中儲存的上一級父會話索引KEY值,索引到上一級父會話且更新該上一級父會話上一次通過報文的時間為當前時間,即刷新其時間戳。重復這樣的過程直到遍歷完每一級會話表,從而可以實現(xiàn)多級會話表的刷新。其中索引KEY值包括會話的源IP地址、源端口號、目的IP地址、目的端口號及協(xié)議號。
圖3顯示了上述刷新方法中建立會話表的流程圖,其中包含當判斷存在級聯(lián)會話時在會話表中保存上一級父會話的信息及建立會話表的步驟。之后進行正常的報文轉發(fā),即在原報文處理過程中不刷新上一級父會話表,而以獨立的線程與報文處理過程并行地進行定時器刷新處理。刷新線程在設備正常運行時總是會定時啟動,在刷新任務完成時釋放。報文處理過程只在有報文經過網絡設備時啟動,在報文處理完成時釋放。
由此可見,通過本發(fā)明的刷新會話表的方法,解決了逐包刷新上一級父會話表帶來的轉發(fā)性能降低的問題,減少了報文轉發(fā)處理的復雜度,提高了轉發(fā)性能,還解決了逐包刷新上一級父會話表不能同時刷新多級父會話表的問題。
根據(jù)本發(fā)明的思想做出的任何改進或變動都應包含在后附的權利要求定義的本發(fā)明的保護范圍之內。
權利要求
1.一種刷新會話表的方法,其特征在于,采用獨立于報文處理過程的線程來刷新會話表。
2.根據(jù)權利要求1的刷新會話表的方法,其特征在于,所述獨立于報文處理過程的線程是由定時器觸發(fā)的。
3.根據(jù)權利要求1或2的刷新會話表的方法,其特征在于,可以刷新多級會話表。
4.根據(jù)權利要求2的刷新會話表的方法,其特征在于,所述獨立于報文處理過程的線程刷新會話表的過程包括步驟每隔一定時間間隔,啟動遍歷會話表的線程;判斷是否存在當前會話的上一級父會話;如果存在,則刷新該上一級父會話表。
5.根據(jù)權利要求4的刷新會話表的方法,其特征在于,當判斷存在上一級父會話時,利用上一級父會話表中的索引KEY值索引到該上一級父會話。
6.根據(jù)權利要求5的刷新會話表的方法,其特征在于所述索引KEY值包括會話的源IP地址、源端口號、目的IP地址、目的端口號及協(xié)議號。
7.根據(jù)權利要求4的刷新會話表的方法,其特征在于所述定時器觸發(fā)獨立于報文處理過程的線程的時間間隔用硬件或者軟件方法實現(xiàn)。
全文摘要
針對應用協(xié)議產生多級會話的情況,本發(fā)明提供一種刷新會話表的方法,采用獨立于報文處理過程的線程來刷新會話表,該方法包括步驟每隔一定時間間隔,啟動遍歷會話表的線程;判斷是否存在當前會話的上一級父會話;如果存在,則刷新該上一級父會話表。此方法解決了逐包刷新上一級父會話表帶來的性能下降的問題,還解決了逐包刷新上一級父會話表時不能同時刷新多級父會話表的問題。
文檔編號H04L29/08GK101043434SQ20061006144
公開日2007年9月26日 申請日期2006年6月30日 優(yōu)先權日2006年6月30日
發(fā)明者張雷 申請人:華為技術有限公司