一種udp端口的復(fù)用方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及通信技術(shù)領(lǐng)域,具體地說(shuō),設(shè)及一種基于UDP的實(shí)時(shí)通信系統(tǒng)中的端口 復(fù)用方法。
【背景技術(shù)】
[0002] UDP是實(shí)時(shí)通信系統(tǒng)中比較常見的一種傳輸層協(xié)議,由于NAT(化twork Address Translator)設(shè)備的部署,導(dǎo)致了UDP數(shù)據(jù)傳輸需要借助類似STUN或TURN運(yùn)樣的代理服務(wù) 器。但是不管是STUN(RFC3489)還是TURN(Rrc5766)都是建立在端口轉(zhuǎn)發(fā)的基礎(chǔ)上的,即每 個(gè)會(huì)話申請(qǐng)單獨(dú)的UDP端口。
[0003] 在實(shí)際應(yīng)用中中轉(zhuǎn)服務(wù)器可能會(huì)有端口數(shù)量的限制。例如,中轉(zhuǎn)服務(wù)器位于NAT設(shè) 備或防火墻設(shè)備后面,管理員只開放了有限數(shù)量的UDP端口可供使用。由于通常一個(gè)端口只 能承載一條會(huì)話,此時(shí)會(huì)話的數(shù)量會(huì)因?yàn)閁DP端口數(shù)量的限制而無(wú)法達(dá)到應(yīng)用要求。
[0004] 因此,亟需一種在一個(gè)UDP端口上承載多條會(huì)話的端口復(fù)用方法。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的之一在于解決現(xiàn)有技術(shù)中基于UDP的實(shí)時(shí)通信系統(tǒng)中會(huì)話數(shù)量受 UDP端口數(shù)量限制的技術(shù)缺陷。
[0006] 本發(fā)明首先提供用于中轉(zhuǎn)服務(wù)器的UDP端口復(fù)用方法,包括:
[0007] 預(yù)先為UDP端口上承載的至少一條會(huì)話分別分配SID;
[000引接收第一UMC的注冊(cè)請(qǐng)求信息,其中,第一UMC為當(dāng)前會(huì)話中的接收方;
[0009] 向第一 UMC反饋包含SID的注冊(cè)響應(yīng)信息,使得第一 UMC獲取當(dāng)前會(huì)話的SID從而加 入到當(dāng)前會(huì)話中;
[0010] 接收第二UMC的攜帶SID和數(shù)據(jù)負(fù)荷的轉(zhuǎn)發(fā)請(qǐng)求,其中,第二UMC為當(dāng)前會(huì)話中的發(fā) 送方;
[0011] 識(shí)別所述轉(zhuǎn)發(fā)請(qǐng)求中的SID,將包含SID和數(shù)據(jù)負(fù)荷的轉(zhuǎn)發(fā)信息發(fā)送至第一 UMC。
[0012] 在一個(gè)實(shí)施例中,所述注冊(cè)請(qǐng)求信息包括中轉(zhuǎn)服務(wù)器的IP監(jiān)聽地址、UDP監(jiān)聽端口 地址和注冊(cè)關(guān)聯(lián)CID,所述注冊(cè)響應(yīng)信息包括第一 UMC的IP源地址、第一 UMC的UDP源端口地 址,W及所述注冊(cè)關(guān)聯(lián)CID和SID;其中,
[0013] 第一UMC在注冊(cè)過(guò)程中識(shí)別出與所述注冊(cè)關(guān)聯(lián)CID匹配的注冊(cè)響應(yīng)信息,W使第一 UMC基于所述注冊(cè)關(guān)聯(lián)CID與唯一的會(huì)話SID進(jìn)行綁定。
[0014] 在一個(gè)實(shí)施例中,還包括:
[0015] 接收第一 UMC的包含SID的注銷請(qǐng)求信息;
[0016] 向第一UMC反饋?zhàn)N響應(yīng)信息,使得第一UMC從當(dāng)前會(huì)話中退出。
[0017] 在一個(gè)實(shí)施例中,所述注銷請(qǐng)求信息包括中轉(zhuǎn)服務(wù)器的IP監(jiān)聽地址、UDP監(jiān)聽端口 地址、注銷關(guān)聯(lián)CID和SID,所述注銷響應(yīng)信息包括第一 UMC的IP源地址、第一 UMC的UDP源端 口地址和所述注銷關(guān)聯(lián)CID;其中,
[0018] 第一UMC在注銷過(guò)程中識(shí)別出與所述注銷關(guān)聯(lián)CID匹配的注銷響應(yīng)信息,W使得第 一 UMC基于所述注銷關(guān)聯(lián)CID與當(dāng)前會(huì)話SID解除綁定。
[0019] 本發(fā)明的實(shí)施例還提供一種用于接收方客戶端的UDP端口復(fù)用方法,包括:
[0020] 向中轉(zhuǎn)服務(wù)器發(fā)送注冊(cè)請(qǐng)求信息;
[0021] 接收中轉(zhuǎn)服務(wù)器的包含當(dāng)前會(huì)話SID的注冊(cè)響應(yīng)信息,從而加入到當(dāng)前會(huì)話中;
[0022] 接收中轉(zhuǎn)服務(wù)器轉(zhuǎn)發(fā)的包含當(dāng)前會(huì)話SID和數(shù)據(jù)負(fù)荷的轉(zhuǎn)發(fā)信息。
[0023] 在一個(gè)實(shí)施例中,所述注冊(cè)請(qǐng)求信息包括中轉(zhuǎn)服務(wù)器的IP監(jiān)聽地址、監(jiān)聽端口地 址和注冊(cè)關(guān)聯(lián)CID,所述注冊(cè)響應(yīng)信息包括客戶端的IP源地址、UDP源端口地址,W及所述注 冊(cè)關(guān)聯(lián)CID和SID;其中,
[0024] 所述客戶端在注冊(cè)過(guò)程中識(shí)別出與所述注冊(cè)關(guān)聯(lián)CID匹配的注冊(cè)響應(yīng)信息,W基 于所述注冊(cè)關(guān)聯(lián)CID與唯一的會(huì)話SID進(jìn)行綁定。
[0025] 在一個(gè)實(shí)施例中,還包括:
[0026] 向中轉(zhuǎn)服務(wù)器發(fā)送包含當(dāng)前會(huì)話SID的注銷請(qǐng)求信息;
[0027] 接收中轉(zhuǎn)服務(wù)器反饋的注銷響應(yīng)信息,W從當(dāng)前會(huì)話中退出。
[00%]在一個(gè)實(shí)施例中,所述注銷請(qǐng)求信息包括中轉(zhuǎn)服務(wù)器的IP監(jiān)聽地址、UDP監(jiān)聽端口 地址、注銷關(guān)聯(lián)CID和SID,所述注銷響應(yīng)信息包括第客戶端的IP源地址、UDP源端口地址和 所述注銷關(guān)聯(lián)CID;其中,
[0029] 所述客戶端在注銷過(guò)程中識(shí)別出與所述注銷關(guān)聯(lián)CID匹配的注銷響應(yīng)信息,W基 于所述注銷關(guān)聯(lián)CID與當(dāng)前會(huì)話SID解除綁定。
[0030] 本發(fā)明的實(shí)施例還提供一種用于發(fā)送方客戶端的UDP端口復(fù)用方法,包括:
[0031] 接收中轉(zhuǎn)服務(wù)器預(yù)先分配的當(dāng)前會(huì)話SID;
[0032] 向中轉(zhuǎn)服務(wù)器發(fā)送攜帶當(dāng)前會(huì)話SID和數(shù)據(jù)負(fù)荷的轉(zhuǎn)發(fā)請(qǐng)求。
[0033] 在本申請(qǐng)的實(shí)施例中,中轉(zhuǎn)服務(wù)器在一個(gè)UDP端口內(nèi)為每條會(huì)話分配SID,當(dāng)不同 的客戶端相互之間進(jìn)行會(huì)話時(shí),中轉(zhuǎn)服務(wù)器可W在同一個(gè)UDP端口上構(gòu)建出由SID標(biāo)識(shí)出來(lái) 的相應(yīng)會(huì)話通道。在每條會(huì)話中,發(fā)送客戶端僅需發(fā)送攜帶有SID的應(yīng)用數(shù)據(jù)負(fù)荷而不必知 曉接收端的所連接的UDP端口,中轉(zhuǎn)服務(wù)器將攜帶有SID的應(yīng)用數(shù)據(jù)負(fù)荷轉(zhuǎn)發(fā)至接收客戶 端。其中,接收客戶端需要預(yù)先在中轉(zhuǎn)服務(wù)器上注冊(cè)W獲得復(fù)用服務(wù)器為其分配的SID。運(yùn) 樣在一個(gè)UDP端口內(nèi)復(fù)用多條會(huì)話,客戶端之間的會(huì)話數(shù)量會(huì)突破中轉(zhuǎn)服務(wù)器上UDP端口的 限制,從而提高實(shí)時(shí)通信系統(tǒng)的容量。
[0034] 本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說(shuō)明書中闡述,并且,部分地從說(shuō)明書中變 得顯而易見,或者通過(guò)實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過(guò)在說(shuō)明書、權(quán)利 要求書W及附圖中所特別指出的結(jié)構(gòu)來(lái)實(shí)現(xiàn)和獲得。
【附圖說(shuō)明】
[0035] 附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說(shuō)明書的一部分,與本發(fā)明的實(shí) 施例共同用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中:
[0036] 圖1是本發(fā)明實(shí)施例一的實(shí)時(shí)通信系統(tǒng)的結(jié)構(gòu)示意圖;
[0037] 圖2是本發(fā)明實(shí)施例一的UDP端口復(fù)用方法的步驟流程圖;
[0038] 圖3是本發(fā)明實(shí)施例二的實(shí)時(shí)通信系統(tǒng)的結(jié)構(gòu)示意圖;
[0039] 圖4是本發(fā)明實(shí)施例二的UDP端口復(fù)用方法的步驟流程圖。
【具體實(shí)施方式】
[0040] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,W下結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步 地詳細(xì)說(shuō)明。
[0041] W下結(jié)合說(shuō)明書附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行說(shuō)明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選 實(shí)施例僅用于說(shuō)明和解釋本發(fā)明,并不用于限定本發(fā)明。并且在不相沖突的情況下,本發(fā)明 的實(shí)施例中的特征可W相互結(jié)合。
[00創(chuàng)實(shí)施例一
[0043] 圖1是本實(shí)施例提供的基于UDP的實(shí)時(shí)通信系統(tǒng)的結(jié)構(gòu)示意圖。該系統(tǒng)主要包括中 轉(zhuǎn)服務(wù)器UMS、發(fā)送客戶端UMC1和接收客戶端UMC2。其中,接收客戶端UMC2通過(guò)IP網(wǎng)絡(luò)連接 至中轉(zhuǎn)服務(wù)器UMS,發(fā)送客戶端UMC1先連接到NAT設(shè)備再通過(guò)IP網(wǎng)絡(luò)連接至中轉(zhuǎn)服務(wù)器UMS。 其中,中轉(zhuǎn)服務(wù)器UMS提供的一個(gè)UDP端口上可W承載在UMC1和UMC2之間建立的至少一條會(huì) 話。因此,圖1中的中轉(zhuǎn)服務(wù)器稱為UDP復(fù)用服務(wù)器化DP Multiplex Server),客戶端稱為 UDP復(fù)用客戶端(UDP Multiplex Client)。
[0044] 圖2是本實(shí)施例提供的在UMS的一個(gè)UDP端口上,UMCl向UMC2單向發(fā)送數(shù)據(jù)的步驟 流程圖。該流程主要包括UMC向UMS的注冊(cè)過(guò)程、數(shù)據(jù)轉(zhuǎn)發(fā)過(guò)程和UMC從UMS注銷的過(guò)程。在運(yùn) 些過(guò)程中定義如下的消息。
[0045] (l)UMC 注冊(cè)請(qǐng)求(re 曲 eq)
[0046] 當(dāng)UMC希望開始接收UDP數(shù)據(jù)時(shí),向IMS發(fā)送re曲eq消息,其格式如下表所示。
[0047]
[0048] 其中各個(gè)字符段的含義為:
[0049] IP: IP頭,目的地址設(shè)為IMS監(jiān)聽地址;
[(K)加]UDP:UDP頭,目的端口為IMS監(jiān)聽端口;
[0化1] Type:消息類型,長(zhǎng)度1字節(jié),取值為0x01;
[0052] CID:由UMC分配的消息標(biāo)識(shí),長(zhǎng)度4字節(jié),用于關(guān)聯(lián)請(qǐng)求和響應(yīng)。
[0053] (2)UMC 注冊(cè)響應(yīng)(re 曲 es)
[0化4] 當(dāng)UMS接收到upcRegReq時(shí),向UMC發(fā)送re曲es消息,其格式如下表所示。
[0化5]
[0056]其中各個(gè)字符段的含義為:
[0化7] IP:目的地址設(shè)為IMS接收到UMC注冊(cè)請(qǐng)求的源地址;
[0化引 UDP:目的端口為IMS接收到UMC注冊(cè)請(qǐng)求的源端口;
[0化9] Type:消息類型,取值為0x02;
[0060] CID:與re曲eq消息中的CID相同,用于關(guān)聯(lián)請(qǐng)求和響應(yīng);
[0061 ] SID:由UMS分配的會(huì)話ID,長(zhǎng)度4字節(jié),用于之后的UMC注銷和UMC數(shù)據(jù)發(fā)送。UMS必 須保證分配的SID是全局唯一用于區(qū)分UMC會(huì)話。
[0062] (3)UMC 注銷請(qǐng)求(unre 曲 eq)
[0063] 當(dāng)UMC希望停止接收UDP報(bào)文時(shí),向IMS發(fā)unre曲eq消息。其格式如下表所示。
[0064] _ '[0065]其中各個(gè)字符段的含義為I:
' ' '
[0066] IP: IP頭,目的地址設(shè)為IMS監(jiān)聽地址;
[0067] UDP:UDP頭,目的端口為IMS監(jiān)聽端口;
[0068] Type:消息類型,長(zhǎng)度1字節(jié),取值為0x03;
[0069] CID:由UMC分配的消息標(biāo)識(shí),長(zhǎng)度4字節(jié),用于關(guān)聯(lián)請(qǐng)求和響應(yīng);
[0070] SID:與之前reqRes響應(yīng)中的SID相同。
[0071] (4)UMC 注銷響應(yīng)(unre 曲 es)
[0072] 當(dāng)IMS接收到unre曲eq時(shí),向UMC發(fā)送unre曲es消息,其格式如下表所示。
[0073]
[0074] 其中各個(gè)字符段的含義為:
[00巧]IP:目的地址設(shè)為IMS接收到UMC注冊(cè)請(qǐng)求的源地址;
[0076] UDP:目的端口為IMS接收到UMC注冊(cè)請(qǐng)求的源端口;
[0077] Type:消息類型,取值為0x04;
[007引 CID:與unre曲eq消息中的CID相同,用于關(guān)聯(lián)請(qǐng)求和響應(yīng)。
[00 巧](5)UMC 數(shù)據(jù)發(fā)送(dataReq)
[0080] 當(dāng)UMC1需要向其他UMC2發(fā)送應(yīng)用數(shù)據(jù)時(shí),UMC1向UMS發(fā)送dataReq消息,其格式如 下表所示。
[0081]
[0082] 其中各個(gè)字符段的含義為:
[0083] IP: IP頭,目的地址設(shè)為IMS監(jiān)聽地址;
[0084] UDP:UDP頭,目的端口為IMS監(jiān)聽端口;
[0085] Type:消息類型,取值為0x05;
[00化]SID:與之前UMC2收到的reqRes響應(yīng)中的SID相同;
[0087]化y load:應(yīng)用數(shù)據(jù)負(fù)荷。
[008 引(6)UMC 數(shù)據(jù)轉(zhuǎn)發(fā)(dataFwd)
[0089] 當(dāng)UMS接收到UMC1發(fā)來(lái)的dataReq時(shí),向UMC2發(fā)送dataFwd消息,其格式如下表所 /J、- 〇 Γ00901
[0091] 其中各個(gè)字符段的含義為:
[0092] IP: IP頭,目的地址設(shè)為IMS監(jiān)聽地址;
[0093] UDP:UDP頭,目的端口為IMS監(jiān)聽端口;
[0094]