會話管理方法和裝置的制造方法
【技術領域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)領域,尤其涉及一種會話管理方法和裝置。
【背景技術】
[0002]隨著互聯(lián)網(wǎng)爆炸式發(fā)展,特別是網(wǎng)頁中外鏈接和圖片越來越多,網(wǎng)絡上的域名系統(tǒng)(DNS,Domain Name System)報文越來越多,而每個DNS查詢都會占用一個防火墻的會話,且如果這個DNS查詢多承載在用戶數(shù)據(jù)包協(xié)議(UDP,User Datagram Protocol)上,則查詢結束無法主動釋放會話,會浪費大量防火墻會話數(shù)。目前測算,DNS已經(jīng)占整個網(wǎng)絡20%的會話數(shù)目,防火墻上的會話數(shù)資源日趨緊張。
【發(fā)明內(nèi)容】
[0003]本發(fā)明提供了一種會話管理方法和裝置,解決了防火墻會話數(shù)資源緊張的問題。
[0004]一種會話管理方法,包括:
[0005]為每個DNS客戶端建立唯一的傳輸控制協(xié)議TCP會話;
[0006]接收承載于用戶數(shù)據(jù)包協(xié)議UDP會話的域名系統(tǒng)DNS查詢請求;
[0007]確認所述UDP會話對應的DNS客戶端的TCP會話,通過所述TCP會話向DNS服務器轉發(fā)所述DNS查詢請求。
[0008]優(yōu)選的,所述為每個DNS客戶端建立唯一的TCP會話包括:
[0009]在首次接收到所述用戶發(fā)送的DNS查詢報文時,根據(jù)所述DNS查詢報文攜帶的五元組建立TCP會話所述,五元組包括:DNS客戶端地址、DNS服務端地址、本地分配端口號、53端口和 PROT0.TCP ;
[0010]以DNS客戶端地址、DNS服務端地址和查詢請求編號TransID為索引建立所述TCP會話的映射表。
[0011 ] 優(yōu)選的,確認所述UDP會話對應的DNS客戶端的TCP會話,通過所述TCP會話向DNS服務器轉發(fā)所述DNS查詢請求包括:
[0012]提取接收到的DNS查詢請求的DNS客戶端地址、DNS服務端地址和TransID ;
[0013]根據(jù)所述DNS查詢請求的DNS客戶端地址、DNS服務端地址和TransID查詢所述映射表,確定相應的TCP會話。
[0014]優(yōu)選的,該方法還包括:
[0015]接收DNS服務器發(fā)送的承載于TCP會話的DNS應答報文;
[0016]根據(jù)該DNS應答報文的DNS客戶端地址、DNS服務端地址和TransID,查找所述映射表,找到歸屬的m)P會話;
[0017]將所述DNS應答報文承載于歸屬的UDP會話中,向DNS客戶端發(fā)送。
[0018]本發(fā)明還提供了一種會話管理裝置,包括:
[0019]TCP會話建立模塊,用于為每個DNS客戶端建立唯一的TCP會話;
[0020]請求接收模塊,用于接收承載于UDP會話的DNS查詢請求;
[0021]承載轉換模塊,用于確認所述UDP會話對應的DNS客戶端的TCP會話,通過所述TCP會話向DNS服務器轉發(fā)所述DNS查詢請求。
[0022]優(yōu)選的,所述TCP會話建立模塊包括:
[0023]會話創(chuàng)建單元,用于在首次接收到所述用戶發(fā)送的DNS查詢報文時,根據(jù)所述DNS查詢報文攜帶的DNS客戶端地址、DNS服務端地址、本地分配端口號、53端口和PROT0.TCP為五元組建立TCP會話;
[0024]映射管理單元,用于以DNS客戶端地址、DNS服務端地址和TransID為索引建立所述TCP會話的映射表。
[0025]優(yōu)選的,所述承載轉換模塊包括:
[0026]信息提取單元,用于提取接收到的DNS查詢請求的DNS客戶端地址、DNS服務端地址和 TransID ;
[0027]查詢單元,用于根據(jù)所述DNS查詢請求的DNS客戶端地址、DNS服務端地址和TransID查詢所述映射表,確定相應的TCP會話;
[0028]轉換單元,用于將所述DNS查詢請求承載于所述相應的TCP會話上,向DNS服務器發(fā)送。
[0029]優(yōu)選的,該裝置還包括:
[0030]應答接收模塊,用于接收DNS服務器發(fā)送的承載于TCP會話的DNS應答報文;
[0031]UDP會話查詢模塊,用于根據(jù)該DNS應答報文的DNS客戶端地址、DNS服務端地址、TransID,查找所述映射表,找到歸屬的Μ)Ρ會話;
[0032]報文轉發(fā)模塊,用于將所述DNS應答報文承載于歸屬的UDP會話中,向DNS客戶端發(fā)送。
[0033]本發(fā)明提供了一種會話管理方法和裝置,為每個用戶建立唯一的TCP會話,接收承載于UDP會話的DNS,確認所述UDP會話對應的DNS客戶端的TCP會話,通過所述TCP會話向DNS服務器轉發(fā)所述DNS查詢請求。實現(xiàn)了在防火墻上將多個UDP會話匯聚成為一個TCP會話,減少了資源占用,解決了防火墻會話數(shù)資源緊張的問題。
【附圖說明】
[0034]圖1為本發(fā)明的實施例一提供的一種會話管理方法的流程圖;
[0035]圖2為DNS會話匯聚流程圖;
[0036]圖3為DNS會話反向映射流程圖;
[0037]圖4為本發(fā)明的實施例二提供的一種會話管理裝置的結構示意圖;
[0038]圖5為圖4中TCP會話建立模塊的結構示意圖;
[0039]圖6為圖4中承載轉換模塊403的結構示意圖。
【具體實施方式】
[0040]每個DNS查詢都會占用一個防火墻的會話,且如果這個DNS查詢多承載在UDP上,則查詢結束無法主動主動釋放會話,會浪費大量防火墻會話數(shù)。
[0041]為了解決上述問題,本發(fā)明的實施例提供了一種會話管理方法和裝置。在用戶面功能實體(SAE-GW,System Architecture Evolut1n Gateway)實現(xiàn) DNS 匯聚功能,利用一種映射方式,將一個用戶發(fā)起的多個DNS UDP會話,匯聚成一個TCP會話發(fā)送給DNS服務器,達到減少PDN側會話數(shù)的目的。
[0042]下文中將結合附圖對本發(fā)明的實施例進行詳細說明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互任意組合。
[0043]本發(fā)明中所述方法是在SAE-GW上實現(xiàn)DNS UDP會話的匯聚,使一個用戶發(fā)起的DNS UDP會話,匯聚成一個與DNS服務器的TCP會話。
[0044]首先結合附圖,對本發(fā)明的實施例一進行說明。
[0045]本發(fā)明實施例提供了一種會話管理方法,在用戶發(fā)起一次web訪問的過程中,有多次DNS查詢(參見圖1),且每次查詢端口號不同。SAE-GW收到第一個UDP的查詢時,由SAE-Gff與DNS服務器建立一個TCP會話,并把該次查詢的內(nèi)容承載在該TCP會話上發(fā)送給DNS服務器,同時SAE-GW上保存該用戶該次查詢的UDP會話信息。SAE-Gff收到查詢結果后,反向映射到用戶的UDP會話上,發(fā)送給用戶。后續(xù)的DNS查詢,都走同一個TCP會話。
[0046]根據(jù)DNS協(xié)議,DNS報文中的查詢請求編號(TransID)由DNS客戶端分配,每次查詢分配一個,所以以DNS客戶端地址+DNS服務端地址+TransID為索引建立映射表可以唯一確定一個DNS UDP會話,實現(xiàn)UDP會話到TCP會話的多對一映射。
[0047]【具體實施方式】是:
[0048]圖1為本發(fā)明實施例的DNS會話匯聚交互圖,包括以下步驟:
[0049]步驟101、DNS客戶端發(fā)起DNS查詢,建立DNS UDP會話I。
[0050]步驟102、SAE-Gff使用“DNS客戶端地址、DNS服務端地址、本地分配端口號1、53端口、PROT0.TCP”為五元組與DNS服務器建立TCP會話1,其中,53端口是為DNS服務包傳輸預留的端口,PROT0.TCP表明該會話的類型為TCP會話。本發(fā)明實施例中,為每個用戶建立唯一的TCP會話,將來自于同一用戶的UDP會話匯聚于同一 TCP會話。在首次接收到所述用戶發(fā)送的DNS查詢報文時,根據(jù)所述DNS查詢報文攜帶的DNS客戶端地址、DNS服務端地址、本地分配端口號、53端口、PROT0.TCP為五元組建立TCP會話;以DNS客戶端地址、DNS服務端地址、TransID為索引建立所述TCP會話的映射表。
[0051]步驟103、SAE-GW將DNS UDP會話I的查詢請求,承載在TCP會話I上,發(fā)送給DNS服務器,同時保存DNS UDP會話I。
[0052]在完成TCP會話的創(chuàng)建后,SAE 一 Gff即可將接收到的承載于UDP會話DNS查詢請求的承載到該UDP會話對應的用戶的TCP會話上,通過TCP會話向DNS服務器轉發(fā)所述DNS查詢請求。在接收到DNS查詢請求時,提取接收到的DNS查詢請求的DNS客戶端地址、DNS服務端地址、TransID,再根據(jù)所述DNS查詢請求的DNS客戶端地址、DNS服務端地址、TransID查詢所述映射表,確定相應的TCP會話將所述DNS查詢請求承載于所述相應的TCP會話上,向DNS服務器發(fā)送。
[0053]步驟104、SAE-Gff收到承載TCP會話I上的應答消息,反向映射到UDP會話I上。
[0054]在接收到DNS服務器發(fā)送的承載于TCP會話的DNS應答報文時,亦可根據(jù)該DNS應答報文的DNS客戶端地址、DNS服務端地址、TransID,查找所述映射表,找到歸屬的UDP會話,將所述DNS應答報文承載于歸屬的UDP會話中,向DNS客戶端發(fā)送。
[0055]步驟105、SAE-Gff將DNS應答承載的UDP會話I上發(fā)送給DNS客戶端。
[0056]步驟106、DNS客戶端發(fā)新的DNS查詢,建立DNS UDP會話2。
[0057]步驟107、SAE-GW將