專利名稱:檢測轉(zhuǎn)發(fā)循環(huán)的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信網(wǎng)絡(luò)的領(lǐng)域,并且更確切地說,本發(fā)明涉及檢測
轉(zhuǎn)發(fā)循環(huán)(forwarding loop)。
背景技術(shù):
會話初始化協(xié)議(SIP)協(xié)議是用于發(fā)起、修改和終止支持語音、 即時通信、視頻、在線游戲等等的交互式用戶會話的端到端客戶端-服 務(wù)器信令協(xié)議。在諸如網(wǎng)際協(xié)議(IP)多媒體子系統(tǒng)(IMS)網(wǎng)絡(luò)的下 一代網(wǎng)絡(luò)中利用的SIP協(xié)議使得在分布式單元之間(例如,在SIP用 戶代理(UA)之間)能夠通信。使用SIP協(xié)議,在SIPUA之間交換的 SIP消息遍歷一系列SIP網(wǎng)絡(luò)單元(被稱為代理)。不幸的是,由于不 正確配置的網(wǎng)絡(luò)單元或惡意的網(wǎng)絡(luò)攻擊,轉(zhuǎn)發(fā)循環(huán)可能形成,以致SIP 消息在SIP網(wǎng)絡(luò)單元之間被重復(fù)轉(zhuǎn)發(fā),從而阻止將SIP消息遞送到預(yù) 期的SIP UA并且引起高的消息處理負(fù)荷。由于轉(zhuǎn)發(fā)循環(huán)可以出現(xiàn)在利 用SIP的網(wǎng)絡(luò)(以及利用其他電信協(xié)議的網(wǎng)絡(luò))中,已經(jīng)實現(xiàn)若干措 施來試圖減少轉(zhuǎn)發(fā)循環(huán)。
在一個潛在的解決方案中,例如,客戶端設(shè)備可以將"最大轉(zhuǎn)發(fā)" 頭部字段添加到SIP消息的頭部,以便限制在轉(zhuǎn)發(fā)循環(huán)被檢測先前轉(zhuǎn) 發(fā)SIP消息的次數(shù)(即SIP消息可以在轉(zhuǎn)發(fā)循環(huán)被檢測先前僅僅被轉(zhuǎn) 發(fā)N次(例如,N=70))。不利地,使用"最大轉(zhuǎn)發(fā),,頭部字段可能 引起大量問題。如果"最大轉(zhuǎn)發(fā)"頭部字段值(N)被設(shè)置過低,則有 效服務(wù)提供可能被過度地限制。如果"最大轉(zhuǎn)發(fā)"頭部字段值(N)被 設(shè)置太高,則可能消耗重大的網(wǎng)絡(luò)資源。此外,響應(yīng)于檢測轉(zhuǎn)發(fā)循環(huán) 產(chǎn)生的轉(zhuǎn)發(fā)循環(huán)錯誤消息可以沿著遍歷的路徑被轉(zhuǎn)發(fā),從而導(dǎo)致額外 地消耗網(wǎng)絡(luò)資源。
發(fā)明內(nèi)容
現(xiàn)有技術(shù)中的各種缺陷。該方法包括確定接收到的消息先前是否被第 一網(wǎng)絡(luò)單元接收,以及如果接收到的消息先前被接收,則計算當(dāng)前的 路由摘要和確定接收到的消息的頭部是否包括先前的路由摘要。如果接收到的消息的頭部包括先前的路由摘要,則確定轉(zhuǎn)發(fā)循環(huán)是否存在。 如果接收到的消息的頭部并不包括先前的路由摘要,則當(dāng)前的路由摘 要被插入到接收到的消息的頭部中,并且朝向第二網(wǎng)絡(luò)單元轉(zhuǎn)發(fā)該消 息。如果接收到的消息先前未被接收到,則朝向第二網(wǎng)絡(luò)單元轉(zhuǎn)發(fā)接 收到的消息。
通過結(jié)合附圖考慮以下詳細(xì)說明,本發(fā)明的教導(dǎo)能夠容易被理解, 其中
圖l描繪通信網(wǎng)絡(luò)的高級框圖; 圖2描繪根據(jù)本發(fā)明的一個實施例的方法;以及 圖3描繪適用于執(zhí)行這里所描述的至少一部分功能的通用計算機 的高級框圖。
為了便于理解,在可能的地方已經(jīng)使用相同的附圖標(biāo)記來標(biāo)明附 圖共有的相同的要素。
具體實施例方式
本發(fā)明提供轉(zhuǎn)發(fā)循環(huán)檢測處理。本發(fā)明能夠檢測轉(zhuǎn)發(fā)循環(huán)。本發(fā)
現(xiàn)折衷,從而提供有效的轉(zhuǎn)發(fā)循環(huán)檢測能力,同時顯著地減少執(zhí)行轉(zhuǎn) 發(fā)循環(huán)檢測處理所利用的網(wǎng)絡(luò)單元處理資源。本發(fā)明消除了網(wǎng)絡(luò)單元 在缺少轉(zhuǎn)發(fā)循環(huán)時執(zhí)行摘要計算的需要,而不是推遲摘要計算和插入, 直到網(wǎng)絡(luò)單元檢測到潛在的轉(zhuǎn)發(fā)循環(huán)為止(即,如果消息先前由網(wǎng)絡(luò) 單元接收和轉(zhuǎn)發(fā))。
本發(fā)明的轉(zhuǎn)發(fā)循環(huán)檢測處理比RFC3261的轉(zhuǎn)發(fā)循環(huán)檢測處理提供 明顯的優(yōu)點。如與RFC3261的轉(zhuǎn)發(fā)循環(huán)檢測處理相比,本發(fā)明的轉(zhuǎn)發(fā) 循環(huán)檢測處理能夠成本更低地檢測轉(zhuǎn)發(fā)循環(huán)(在CPU處理方面)。在 一個實施例中,使用本發(fā)明的轉(zhuǎn)發(fā)循環(huán)檢測處理,轉(zhuǎn)發(fā)循環(huán)被檢測比 轉(zhuǎn)發(fā)循環(huán)另外會使用RFC3261的轉(zhuǎn)發(fā)循環(huán)檢測處理被檢測(例如,網(wǎng) 絡(luò)單元第二次接收消息)遲一個轉(zhuǎn)發(fā)步驟(例如,網(wǎng)絡(luò)單元第三次接 收消息)。在一個實施例中,通過利用新頭部字段(而不是如在RFC3261 中那樣重新使用現(xiàn)有頭部字段的部分),本發(fā)明的轉(zhuǎn)發(fā)循環(huán)檢測處理 可能在不干擾其他消息處理的情況下被執(zhí)行。
圖1描繪通信網(wǎng)絡(luò)的高級框圖。確切地說,通信網(wǎng)絡(luò)100包括第一多個SIP用戶代理(UA) 102A1-102AN (統(tǒng)稱SIP UA 102A) 、 SIP網(wǎng) 絡(luò)IIO和第二多個SIP用戶代理(UA)102z廣102zN(統(tǒng)稱SIPUA 102z)。 SIP UA 102a和102z可以被統(tǒng)稱為SIP UA 102。 SIP網(wǎng)絡(luò)110包4舌多個 SIP代理服務(wù)器(SIP PS) 112,1124 (統(tǒng)稱SIP PS 112)以及多個 SIP應(yīng)用月l務(wù)器(AS) 114,1142 (統(tǒng)稱SIP AS 114) 。 SIP PS 112 使用多個通信鏈路(CL) 113 (統(tǒng)稱CL 113)進(jìn)行通信。SIP PS 1122 和1123使用通信鏈路(CL) 115i和1152 (統(tǒng)稱CL 115 )與SIP AS 114! 和1142進(jìn)行通信。
如在圖1中描述,SIPUA 102包括支持SIP信令的終端用戶設(shè)備。 SIP UA 102可以作為SIP UA客戶端(用于將SIP請求提供到SIP UA 服務(wù)器)以及SIP UA服務(wù)器(用于將SIP響應(yīng)提供到SIP UA客戶端) 操作。SIP UA 102A1- 102"和SIP UA 102Z1 - 102^分別使用相應(yīng)的多個 通信鏈路(CL) 103A1-103AN (統(tǒng)稱CL 103A)以及103Z1-103ZN (統(tǒng)稱 CL 103z)與SIP PS 112,和1123進(jìn)行通信。SIP UA 102可以使用有線 線路接入(例如,電纜接入、數(shù)字用戶線路(DSL)接入、以太網(wǎng)接入 等等及其各種組合)、無線接入(例如碼分多址(CDMA)接入、通用 分組無線電業(yè)務(wù)(GPRS)接入、無線局域網(wǎng)(WLAN)接入等等及其各 種組合)來接入SIP網(wǎng)絡(luò)IIO。
如在圖1中描繪的那樣,SIP PS 112促進(jìn)用于建立、修改和終止 SIP UA 102之間的多媒體連接的SIP UA 102之間的SIP信令。SIP PS 112促進(jìn)與各種其他基于SIP的網(wǎng)絡(luò)單元(作為例證的,SIP AS 114) 的SIP信令,所述各種其他基于SIP的網(wǎng)絡(luò)單元用于支持與用于建立、 修改和終止SIP UA 102之間的多媒體連接的SIP UA 102之間的SIP 信令相關(guān)聯(lián)的各種功能。例如,SIP PS 112支持用于建立、修改和終 止多媒體連接的SIPUA 102之間的SIP信令,所述多媒體連接適于支 持語音、即時通信、視頻、游戲、存在(presence)等等及其各種組 合。SIP AS 114將各種功能(例如,呼叫等待、呼叫轉(zhuǎn)移、電話會議 業(yè)務(wù)、即時通信業(yè)務(wù)等等及其各種組合)提供給SIP UA 102。
如這里所描述的那樣,使用各種SIP消息執(zhí)行SIP信令。作為SIP UA客戶端操作的SIP UA 102發(fā)起的SIP消息是SIP請求。例如,SIP 請求消息包括"邀請"(INVITE) 、 ACK、"再見"(BYE)、"取消" (CANCEL)、"選項,,(OPTIONS)、"登記,,(REGISTER)等等。作為SIP UA服務(wù)器操作的SIP UA 102發(fā)起的SIP消息是SIP響應(yīng)。例 如,SIP響應(yīng)消息^括SIP lxx報告響應(yīng)(informational response )、 SIP 2xx成功響應(yīng)、SIP 3xx指向性響應(yīng)、SIP 4xx客戶端故障響應(yīng)、 SIP 5xx服務(wù)器故障響應(yīng)、SIP 6xx全局故障響應(yīng)等等。SIP請求消息 和SIP響應(yīng)消息以及適于支持建立、修改和終止SIP會話的其他SIP 消息通常在這里可以凈皮稱為SIP消息。
如這里所描述的那樣,各種網(wǎng)絡(luò)條件(例如,未正確配置的SIP 代理服務(wù)器(多個未正確配置的SIP代理服務(wù)器),惡意網(wǎng)絡(luò)攻擊等 等)可以導(dǎo)致轉(zhuǎn)發(fā)循環(huán)在SIP網(wǎng)絡(luò)110內(nèi)的形成。例如,SIP邀請消息 可以從SIP UA 102a2朝向SIP UA 102zj皮發(fā)起。SIP UA 102"將該SIP 邀請消息轉(zhuǎn)發(fā)給SIP代理112ls SIP代理112!將該消息轉(zhuǎn)發(fā)給SIP代 理1122。 SIP代理1122將SIP邀請消息轉(zhuǎn)發(fā)給SIP代理1123。但是, 由于網(wǎng)絡(luò)條件(例如,SIP代理1123未被正確地配置),不是將SIP 邀請消息轉(zhuǎn)發(fā)到SIP代理1124,以遞送到SIP UA 102Z1,而是SIP代 理1123可以將SIP邀請消息轉(zhuǎn)發(fā)回SIP代理1122。SIP代理1122將SIP 邀請消息重新轉(zhuǎn)發(fā)給SIP代理1123。如這里所描述的那樣,本發(fā)明(參 考圖2可以更好地理解)能夠有效地、節(jié)省成本地檢測這些轉(zhuǎn)發(fā)循環(huán)。
圖2描繪才艮據(jù)本發(fā)明的一個實施例的方法。確切地i兌,方法200 包括用于在網(wǎng)絡(luò)單元檢測轉(zhuǎn)發(fā)循環(huán)的方法。盡管這里主要相對于用于 檢測與SIP消息相關(guān)聯(lián)的轉(zhuǎn)發(fā)循環(huán)的SIP代理服務(wù)器執(zhí)行的處理來描 述,但是方法200可以通過分別檢測與SIP和非SIP消息相關(guān)聯(lián)的轉(zhuǎn) 發(fā)循環(huán)的其他SIP和非SIP網(wǎng)絡(luò)單元來執(zhí)行。盡管在這里被描繪且被 說明為連續(xù)地執(zhí)行,但是方法200的至少一部分步驟可以同時地或以 不同于圖2中描繪的次序被執(zhí)行。方法200在步驟202開始并進(jìn)行到 步驟204。
在步驟204,在SIP代理服務(wù)器接收SIP消息(請求)。接收到的 SIP消息可以是任何SIP請求消息(例如,SIP邀請、SIP登記等等)。 可以從任何SIP網(wǎng)絡(luò)單元(例如,SIPUA (客戶端或服務(wù)器)、SIPPS、 SIP AS等等)接收SIP消息。在步驟206,確定接收到的SIP請求消 息先前是否被SIP代理服務(wù)器接收(即,接收到的SIP請求消息先前 是否通過SIP代理)??梢允褂枚鄠€方法之一來執(zhí)行確定接收到的SIP 請求消息先前是否被SIP代理服務(wù)器接收。在一個實施例中,確定接收到的SIP消息先前是否被SIP代理服
務(wù)器接收包括確定接收到的SIP消息的頭部是否包括SIP代理服務(wù)器
插入的(即當(dāng)接收到的SIP消息先前被SIP代理服務(wù)器處理時由SIP
代理服務(wù)器插入的)頭部字段。在一個實施例中,確定接收到的SIP
消息的頭部是否包括SIP代理服務(wù)器先前插入的頭部字段包括搜索接
收到的SIP消息的頭部的一個或多個頭部字段以查找標(biāo)識SIP代理的
頭部字段值(例如,解析包括在接收到的消息的頭部中的標(biāo)識包括SIP
代理服務(wù)器的IP地址或主機名的SIP VIP頭部字段的多個SIP VIA頭
部字段)。示例性的包括SIP頭部的SIP消息如下,該SIP頭部具有
多個SIP VIA頭部字段和會話描述協(xié)議(SDP)主體 INVITE sip:UAS@127.0.0.1:5060;transport=UDP SIP/2.0
Via: SIP/2.0/UDP 135.85.65.214:5061 ;branch=z9hG4bK-1
V'舊SIP/2.0/UDP 135.85.65.214:5062;branch=z9hG4bK-2
Record-Route: <sip:135.85.65.214:5061 ;lr>
Route: <sip:127.0.0.1;lr>
Max-Forwards: 69
CSeq: 1 INVITE
Call-ID: 7a66e93e@135.85.65.214
From: "UAC"<sip:UAC@135.85.65.214>;tag=363e5a34
To: "UAS"<sip:UAS@127.0.0.1:5060;transport=UDP>
Contact: "UAC"<sip:uac_a@ 127.0.0.1:5062;transport=UDP>
Subject: Performance test
Route: <sip:proxy@127.0.0.1:5061 >
Content-Type: application/sdp
Content-Length: 101
v=0
o=- 0 0 IN IP4 lucent.com s=-
c=IN IP4 10,20.30.60 t=0 0
m-audio 5004 RTP/AVP 8 3 0 在一個實施例中,確定接收到的SIP消息先前是否被SIP代理服務(wù)器接收包括確定接收到的SIP消息的一個或多個頭部字段是否包括 通過SIP代理服務(wù)器插入的(即,當(dāng)接收到的SIP消息先前被SIP代 理服務(wù)器接收到時由SIP代理服務(wù)器插入的)頭部字段值。在一個實 施例中,所述頭部字段包括SIP VIA頭部字段。在一個這樣的實施例 中,確定接收到的SIP消息的一個或多個頭部字段是否包括先前由SIP 代理服務(wù)器插入的頭部字段值包括搜索接收到的SIP消息頭部的一個 或多個頭部字段以查找標(biāo)識SIP代理的頭部字段值(例如,解析包括 在接收到的消息的頭部中的標(biāo)識包括SIP代理服務(wù)器的IP地址的SIP VIA頭部字段的多個SIP VIA頭部字段)。
如在圖2中描繪的那樣,如果接收到的消息先前未曾被SIP代理 服務(wù)器接收,則方法200進(jìn)行到步驟220,在該步驟轉(zhuǎn)發(fā)接收到的SIP 消息。朝向另一 SIP網(wǎng)絡(luò)單元(例如,SIPPS、 SIPAS、 SIPUA等等) 轉(zhuǎn)發(fā)接收到的SIP消息。從步驟220,方法200進(jìn)行到步驟226,方法 200在該步驟結(jié)束。如在圖2中描繪的那樣,如果接收到的SIP消息先 前被SIP代理服務(wù)器接收,則方法200進(jìn)行到步驟208。在步驟208, 計算當(dāng)前的路由摘要(CRD)。
在一個實施例中,通過在一個或多個以下頭部和消息部分上對散 列函數(shù)的結(jié)果進(jìn)行求和來計算路由摘要請求統(tǒng)一資源標(biāo)識符(URI )、 最高路由頭部、任何或全部要求(Require)和/或代理要求頭部、任 何或全部授權(quán)和/或代理授權(quán)頭部、呼叫-Id頭部、來自(From)和/ 或到(To)頭部(包括標(biāo)簽參數(shù))以及CSeq頭部等等及其各種組合。 通常,可以包括代理服務(wù)器路由判定能夠基于的任何信息。通過計算 路由摘要,檢測這種信息中的變化。假設(shè)如果自上次消息遍歷所述 代理起該信息的任何部分都未被改變,則該代理將做出相同的路由判 定。如果所有代理遵循這種邏輯,則請求將最終再次到達(dá)當(dāng)前代理, 因此形成循環(huán)。
在步驟210,確定接收到的SIP消息是否包括先前的路由摘要 (PRD) 。 PRD是先前被計算并且通過SIP代理服務(wù)器插入到接收到的 SIP消息中的路由摘要。在一個實施例中,確定接收到的SIP消息是否 包括PRD包括搜索接收到的SIP消息的至少一個消息頭部字段(例如, 被標(biāo)識為先前已經(jīng)被SIP代理服務(wù)器插入到接收到的SIP消息中的消 息頭部字段(例如,SIPVIA頭部字段))。如果接收到的SIP消息并不包括PRD (先前被計算并且通過SIP代理服務(wù)器插入),方法200 進(jìn)行到步驟212。如果接收到的SIP消息的確包括PRD (先前被計算并 且由SIP代理服務(wù)器插入),方法200進(jìn)行到步驟214。
在步驟212, CRD被插入到接收到的SIP消息中。在一個實施例中, 使用CRD參數(shù)(這里表示為"循環(huán)檢查"(即"lc,,)參數(shù))將所述 CRD插入到接收到的SIP消息中。在一個實施例中,CRD被插入到接收 到的SIP消息的頭部中。在一個實施例中,CRD作為現(xiàn)有SIP消息頭部 字段的部分被插入。在一個實施例中,通過使用CRD參數(shù)值(例如, "Via: SIP/2. O/UDP 135.85.65.214: 5062 ; branch = z9hG4bK-2 ; 03abd87f,,,其中路由摘要值是十六進(jìn)制)將CRD作為現(xiàn)有SIP消息 頭部字段的部分而插入。在一個實施例中,通過使用CRD參數(shù)名(例 如,"lc")和相關(guān)聯(lián)的CRD參數(shù)值(例如,"Via: SIP/2. O/UDP 135.85.65.214:5062; branch = z9hG4bK-2; lc = 03abd87f",其中路 由摘要值是十六進(jìn)制)將CRD作為現(xiàn)有SIP消息頭部字段的部分而插 入。在一個實施例中,CRD作為新的SIP消息頭部字段被插入,該新的 SIP消息頭部字段具有SIP消息頭部字段名和相關(guān)聯(lián)的SIP消息頭部字 段值(例如,"Loop-Check: proxy.example.com; lc = 012345678")。 包括示例性的所計算的路由摘要(例如,PRD或CRD )的示例性SIP 消息如下。如在示例性SIP消息中所描述的那樣,VIA頭部字段之一包 括"循環(huán)檢查,,參數(shù)(被表示為"lc" ) 。 "lc"參數(shù)可以包括"lc" 參數(shù)名(例如,被表示為"lc")和相關(guān)聯(lián)的"lc"參數(shù)值。盡管被 描述為通過"lc"參數(shù)名進(jìn)行標(biāo)識,但是各種其他參數(shù)名可以被用來 標(biāo)識路由摘要。盡管描述了特定的"lc"參數(shù)值,但是各種其他"lc" 參數(shù)值(例如,具有其他格式的"lc"參數(shù)值)可以被用于傳送所計 算的路由摘要。INVITE sip:UAS@127.0.0.1:5060;transport=UDP SIP/2.0 Via: SIP/2.0/UDP 135,85.65.214:5061 ;branch=z9hG4bK-1;lc=012345678
Via: SIP/2.0/UDP 135.85.65.214:5062;branch=z9hG4bK-2 Record-Route: <sip:135.85.65,214:5061 ;lr> Route: <sip:127.0.0.1;lr> Max-Forwards: 69 CSeq: 1 INVITE
Call-ID: 7a66e93e@135.85.65.214
From: "UAC"<sip:UAC@135.85.65.214>;tag=363e5a34
To: "UAS"<sip:UAS@127.0,0.1:5060;transport=UDP>
Contact: "UAC"<sip:uac—a@127.0.0.1:5062;transport=UDP>
Subject: Performance test
Route: <sip:proxy@127.0.0.1:5061 > Content-Type: application/sdp
Content-Length: 101
v=0
o=- 0 0 IN IP4 lucent.com s=-
c=IN IP4 10.20.30.60 t=0 0
m=audio 5004 RTP/AVP 8 3 0 盡管被描述為VIA頭部字段的參數(shù),在一個實施例中,所計算的 路由摘要可以被實現(xiàn)為參數(shù)(例如,"lc"參數(shù)或一個或多個其他頭 部字段的一個或多個其他參數(shù))。盡管被描述為VIA頭部字段的參數(shù), 在一個實施例中,所計算的路由摘要可以被實現(xiàn)為單獨的頭部字段 (即,使用路由摘要頭部字段,而不是被包括為諸如VIA頭部字段的 現(xiàn)有頭部字段的參數(shù))。在一個實施例中,其中所計算的路由摘要被 實現(xiàn)為單獨的頭部字段,立即跟隨與計算所計算的路由摘要的SIP網(wǎng) 絡(luò)單元相關(guān)聯(lián)的VIA頭部字段,該單獨的頭部字段可以;波插入到SIP 消息頭部中。
在步驟214,確定PRD。在一個實施例中,通過解析接收到的SIP消息的頭部來確定PRD。在一個實施例中,通過識別路由摘要頭部字段 名和識別相關(guān)聯(lián)的路由摘要頭部字段值來確定PRD。在一個實施例中, 通過識別路由摘要參數(shù)名(例如,頭部字段的部分)和識別相關(guān)聯(lián)的 路由摘要參數(shù)值來確定PRD。在一個實施例中,PRD被確定為用于確定 接收到的SIP消息是否包括PRD所執(zhí)行的處理的部分。
在步驟216,比較CRD和PRD。 CRD和PRD被比較來以便確定轉(zhuǎn)發(fā) 循環(huán)是否存在。在步驟218,確定轉(zhuǎn)發(fā)循環(huán)是否被檢測。在一個實施例 中,如果CRD和PRD是相同的,則檢測轉(zhuǎn)發(fā)循環(huán)(以及如果CRD和PRD 是不同的,則不檢測轉(zhuǎn)發(fā)循環(huán))。在一個實施例中,如果CRD和PRD 基本上類似(例如,如果CRD與PRD之間的差落入閾值之內(nèi)),則檢 測轉(zhuǎn)發(fā)循環(huán)。
如在圖2中所描繪的那樣,如果轉(zhuǎn)發(fā)循環(huán)未被檢測,則方法200 進(jìn)行到步驟220,在該步驟轉(zhuǎn)發(fā)接收到的消息。朝向另一SIP網(wǎng)絡(luò)單元 轉(zhuǎn)發(fā)接收到的消息。從步驟220,方法200進(jìn)行到步驟226,方法200 在該步驟結(jié)束。如果轉(zhuǎn)發(fā)循環(huán)被檢測,則方法200進(jìn)行到步驟"2。在 步驟222,產(chǎn)生循環(huán)錯誤。在步驟224,朝向至少一個SIP網(wǎng)絡(luò)單元產(chǎn) 生循環(huán)4普誤。從步驟224,方法200進(jìn)^f于到步驟226,方法200在該步 驟結(jié)束。
圖3描繪適用于執(zhí)行這里所描述的功能的通用計算機的高級框圖。 如在圖3中所描繪的那樣,系統(tǒng)300包括處理器單元302 (例如CPU)、 例如隨機存取存儲器(RAM)和/或只讀存儲器(ROM)的存儲器304、 循環(huán)檢測模塊305和各種輸入/輸出設(shè)備306 (例如,包括但不局限于 磁帶驅(qū)動器、軟盤驅(qū)動器、硬盤驅(qū)動器或光盤驅(qū)動器的存儲設(shè)備、接 收機、發(fā)射機、揚聲器、顯示器、輸出端口和用戶輸入設(shè)備(諸如鍵 盤、小鍵盤、鼠標(biāo)等等))。
應(yīng)該注意到,本發(fā)明可以以軟件和/或以軟件和硬件的組合實現(xiàn), 例如使用專用集成電路(ASIC)、通用計算機或任何其他硬件等同物 來實現(xiàn)。在一個實施例中,本循環(huán)檢測模塊或過程305能夠被加栽到 存儲器304中并通過處理器302執(zhí)行,以實現(xiàn)以上討論的功能。同樣, 本發(fā)明的循環(huán)檢測過程305 (包括相關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu))能夠被存儲在計 算機可讀介質(zhì)或載體上,該計算機可讀介質(zhì)或載體例如是RAM存儲器、 磁或光驅(qū)動器或磁盤等等。在一個實施例中,本發(fā)明的轉(zhuǎn)發(fā)循環(huán)檢測處理可以以防止對其他 消息處理功能的影響的方式實現(xiàn)。在一個實施例中,例如,適于執(zhí)行 本發(fā)明的轉(zhuǎn)發(fā)循環(huán)檢測處理功能的至少 一部分的過程呼叫可以被添加 到其中處理每個接收到的消息的代碼路徑中。盡管相對于特定的實施 方案來描述,但是本發(fā)明的轉(zhuǎn)發(fā)循環(huán)檢測處理可以使用各種其他設(shè)計 (例如,網(wǎng)絡(luò)單元部件的配置、其他代碼路徑修改等等及其各種組合) 來實現(xiàn),這些設(shè)計可能影響或可能不影響各種其他被支持的消息處理 功能。
在 一 個實施例中,本發(fā)明的轉(zhuǎn)發(fā)循環(huán)檢測處理可以被配置來使得 可以激活或去激活(例如,單獨在每個單元的基礎(chǔ)上、全局地在多個 單元上等等及其各種組合)本發(fā)明的轉(zhuǎn)發(fā)循環(huán)檢測處理功能。在一個 實施例中,可以自動地激活或去激活本發(fā)明的轉(zhuǎn)發(fā)循環(huán)檢測處理(例 如,每個網(wǎng)絡(luò)單元可以根據(jù)每個網(wǎng)絡(luò)單元(例如,從相關(guān)聯(lián)的管理系 統(tǒng))獲得的預(yù)定調(diào)度來激活和去激活轉(zhuǎn)發(fā)循環(huán)檢測功能)。在一個實 施例中,可以手動地激活或去激活本發(fā)明的轉(zhuǎn)發(fā)循環(huán)檢測處理(例如, 每個網(wǎng)絡(luò)單元可以手動地被配置,以便激活和去激活轉(zhuǎn)發(fā)循環(huán)檢測功 能)。
在一個實施例中,本發(fā)明的轉(zhuǎn)發(fā)循環(huán)檢測處理可以被配置來使得 通過使用至少一個轉(zhuǎn)發(fā)循環(huán)檢測準(zhǔn)則來執(zhí)行轉(zhuǎn)發(fā)循環(huán)的檢測。在一個 實施例中,例如,可以響應(yīng)于確定消息中的特定頭部的數(shù)目滿足閾值 而僅執(zhí)行本發(fā)明的轉(zhuǎn)發(fā)循環(huán)檢測處理。在一個這樣的實施例中,例如,
可以響應(yīng)于確定消息中的SIP VIA頭部的數(shù)目滿足閾值而僅執(zhí)行本發(fā) 明的轉(zhuǎn)發(fā)循環(huán)檢測處理。盡管相對于多個SIP VIA頭部來描述,但是
' 盡管這里主要相對于利用SIP消息的基于MP的網(wǎng)絡(luò)進(jìn)行了描繪 和說明,但是在各種其他實施例中,本發(fā)明的至少一部分功能可以被 用于在利用各種其他網(wǎng)絡(luò)單元、信令協(xié)議、消息類型、消息格式等等 及其各種組合的各種其他網(wǎng)絡(luò)中檢測轉(zhuǎn)發(fā)循環(huán)。本發(fā)明并無意圖被限
制于利用SIP消息的基于SIP的網(wǎng)絡(luò)。
例,^是本領(lǐng)域的4通技術(shù)人員能夠容易地設(shè)計出仍然并入這些S導(dǎo) 的許多其他已變化的實施例。
權(quán)利要求
1. 一種用于在第一網(wǎng)絡(luò)單元檢測轉(zhuǎn)發(fā)循環(huán)的方法,其包括(a)確定接收到的消息先前是否被第一網(wǎng)絡(luò)單元接收;(b1)如果接收到的消息先前被第一網(wǎng)絡(luò)單元接收,則計算當(dāng)前的路由摘要和確定接收到的消息的頭部是否包括先前的路由摘要以及執(zhí)行以下步驟之一(b11)如果接收到的消息的頭部包括先前的路由摘要,則確定轉(zhuǎn)發(fā)循環(huán)是否存在;以及(b12)如果接收到的消息的頭部并不包括先前的路由摘要,則將當(dāng)前的路由摘要插入到接收到的消息的頭部中并且朝向第二網(wǎng)絡(luò)單元轉(zhuǎn)發(fā)所述消息;以及(b2)如果接收到的消息先前未被第一網(wǎng)絡(luò)單元接收,則朝向第二網(wǎng)絡(luò)單元轉(zhuǎn)發(fā)接收到的消息。
2. 根據(jù)權(quán)利要求1所述的方法,其中,確定接收到的消息先前是 否被第一網(wǎng)絡(luò)單元接收包括確定接收到的消息的頭部是否包括當(dāng)接收到的消息先前被第 一 網(wǎng) 絡(luò)單元接收時由第一網(wǎng)絡(luò)單元插入的頭部字段。
3. 根據(jù)權(quán)利要求1所述的方法,其中,確定轉(zhuǎn)發(fā)循環(huán)是否存在包括..比較當(dāng)前的路由摘要和先前的路由摘要以及執(zhí)行以下之一 如果當(dāng)前的路由摘要和先前的路由摘要匹配,則檢測轉(zhuǎn)發(fā)循環(huán);和如果當(dāng)前的路由摘要和先前的路由摘要并不匹配,則朝向第二網(wǎng) 絡(luò)單元轉(zhuǎn)發(fā)所述消息。
4. 根據(jù)權(quán)利要求1所述的方法,其中,計算當(dāng)前的路由摘要包括 在接收到的消息的頭部中,識別多個頭部字段中與接收到的消息的路由相關(guān)聯(lián)的所選擇的頭部字段;和使用頭部字段中與接收到的消息的路由相關(guān)聯(lián)的所選擇的頭部字 段來計算當(dāng)前的路由摘要。
5. 根據(jù)權(quán)利要求1所述的方法,其中,使用頭部字段中與接收到 的消息的路由相關(guān)聯(lián)的所選擇的頭部字段來計算當(dāng)前的路由摘要包 括和。
6. 根據(jù)權(quán)利要求1所述的方法,其中,當(dāng)前的路由摘要作為接收 到的消息的頭部的部分被插入到接收到的消息中。
7. 根據(jù)權(quán)利要求1所述的方法,其中,當(dāng)前的路由摘要作為接收 到的消息頭部的頭部字段的部分被插入到接收到的消息中,其中當(dāng)前 的路由摘要包括路由摘要參數(shù)名和路由摘要參數(shù)值。
8. —種用于在第一網(wǎng)絡(luò)單元檢測轉(zhuǎn)發(fā)循環(huán)的設(shè)備,其包括 用于確定接收到的消息先前是否被第一網(wǎng)絡(luò)單元接收的裝置; 裝置,用于如果接收到的消息先前被第一網(wǎng)絡(luò)單元接收,則計算當(dāng)前路由摘要和確定接收到的消息的頭部是否包括先前的路由摘要, 該裝置還包括裝置,用于如果接收到的消息的頭部包括先前的路由摘要, 則確定轉(zhuǎn)發(fā)循環(huán)是否存在;和裝置,用于如果接收到的消息的頭部并不包括先前的路由摘 要,則將當(dāng)前的路由摘要插入到接收到的消息的頭部中并且朝向第二 網(wǎng)絡(luò)單元轉(zhuǎn)發(fā)所述消息;以及裝置,用于如果接收到的消息先前未被第一網(wǎng)絡(luò)單元接收,則朝 向第二網(wǎng)絡(luò)單元轉(zhuǎn)發(fā)接收到的消息。
9. 根據(jù)權(quán)利要求8所述的設(shè)備,其中,用于確定轉(zhuǎn)發(fā)循環(huán)是否存 在的裝置包括用于比較當(dāng)前的路由摘要和先前的路由摘要的裝置,該裝置還包括裝置,用于如果當(dāng)前的路由摘要和先前的路由摘要匹配,則檢測 轉(zhuǎn)發(fā)循環(huán);和裝置,用于如果當(dāng)前的路由摘要和先前的路由摘要并不匹配,則 朝向第二網(wǎng)絡(luò)單元轉(zhuǎn)發(fā)所述消息。
10. —種存儲軟件程序的計算機可讀介質(zhì),當(dāng)該軟件程序被計算 機執(zhí)行時,該軟件程序使得計算機執(zhí)行包括以下步驟的方法(a)確定接收到的消息先前是否被笫一網(wǎng)絡(luò)單元接收; (bl)如果接收到的消息先前被第一網(wǎng)絡(luò)單元接收,則計算當(dāng)前 的路由摘要和確定接收到的消息的頭部是否包括先前的路由摘要以及執(zhí)行以下步驟之一(bll)如果接收到的消息的頭部包括先前的路由摘要,則確定轉(zhuǎn)發(fā)循環(huán)是否存在;和(bl2)如果接收到的消息的頭部并不包括先前的路由摘要,則將當(dāng)前的路由摘要插入到接收到的消息的頭部中并且朝向第二網(wǎng)絡(luò) 單元轉(zhuǎn)發(fā)所述消息;以及(b2)如果接收到的消息先前未被第一網(wǎng)絡(luò)單元接收,則朝向第 二網(wǎng)絡(luò)單元轉(zhuǎn)發(fā)接收到的消息。
全文摘要
本發(fā)明包括用于在網(wǎng)絡(luò)單元檢測轉(zhuǎn)發(fā)循環(huán)的方法和設(shè)備。該方法包括確定接收到的消息先前是否被第一網(wǎng)絡(luò)單元接收,以及如果接收到的消息先前被接收,則計算當(dāng)前的路由摘要和確定接收到的消息的頭部是否包括先前的路由摘要。如果接收到的消息的頭部包括先前的路由摘要,則確定轉(zhuǎn)發(fā)循環(huán)是否存在。如果接收到的消息的頭部并不包括先前的路由摘要,則當(dāng)前的路由摘要被插入到接收到的消息的頭部中并且朝向第二網(wǎng)絡(luò)單元轉(zhuǎn)發(fā)該消息。如果接收到的消息先前未被接收,則朝向第二網(wǎng)絡(luò)單元轉(zhuǎn)發(fā)接收到的消息。
文檔編號H04L12/56GK101449530SQ200780018701
公開日2009年6月3日 申請日期2007年5月11日 優(yōu)先權(quán)日2006年5月22日
發(fā)明者J·范貝梅爾 申請人:盧森特技術(shù)有限公司