專利名稱:一種iptv網(wǎng)絡中實現(xiàn)nat穿越的方法及裝置的制作方法
技術(shù)領域:
本發(fā)明涉及多媒體通訊領域,尤其涉及一種處于內(nèi)網(wǎng)的終端設備與下一代交互式網(wǎng)絡電視(IPTV)系統(tǒng)服務器交互時的NAT (Network Address Translators,網(wǎng)絡地址轉(zhuǎn)換)穿越的方法與裝置。
背景技術(shù):
NAT是在IP地址日益缺乏的情況下產(chǎn)生的,它的主要目的就是為了能夠地址重用。NAT的工作原理是將內(nèi)網(wǎng)中的網(wǎng)絡地址映射為公網(wǎng)的一個地址,以便內(nèi)網(wǎng)中的設備能夠正常的訪問公網(wǎng)上的設備。IPTV 系統(tǒng)中,實時流傳輸協(xié)議(Real Time Streaming Protocol,RTSP)協(xié)議和實時傳輸協(xié)議(Real-time Transport Protocol, RTP)媒體報文的發(fā)送都是通過傳輸控制協(xié)議(Transmission Control Protocol,TCP)或用戶數(shù)據(jù)報協(xié)議(User Datagram Protocol, UDP)來完成的,隨著IPTV的發(fā)展以及技術(shù)的越來越成熟,個人電腦(PC)和手機終端已經(jīng)融入到下一代IPTV網(wǎng)絡中。在這其中,很多的終端設備都處于內(nèi)網(wǎng)之中,處于內(nèi)網(wǎng)中的終端設備在與IPTV服務器的交互過程中,需要NAT穿越來實現(xiàn)與服務器的正常交互。目前一些IPTV服務器系統(tǒng)已經(jīng)支持NAT穿越的功能,其做法為用戶終端向IPTV 服務器發(fā)送包含有用戶終端介質(zhì)訪問控制(Medium Access Control, MAC)地址的數(shù)據(jù)包; IPTV服務器請求公網(wǎng)服務器返回所述用戶終端MAC地址對應的用戶終端的公網(wǎng)IP地址與端口號;IPTV服務器向用戶終端發(fā)送連接數(shù)據(jù);用戶端路由器丟棄所述連接數(shù)據(jù);IPTV服務器請求公網(wǎng)服務器向用戶終端發(fā)送指令,所述指令為讓用戶終端主動向遠程控制端發(fā)送連接數(shù)據(jù);用戶終端向IPTV服務器發(fā)送連接數(shù)據(jù);用戶終端與IPTV服務器成功建立連接。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種IPTV網(wǎng)絡中實現(xiàn)NAT穿越的方法及裝置。用于解決終端設備依賴其所在的公網(wǎng)服務器來處理NAT穿越的問題。為達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的一種IPTV網(wǎng)絡中實現(xiàn)NAT穿越的方法,包括終端設備向RTSP處理模塊發(fā)送攜帶所述終端設備在其所屬網(wǎng)絡中的網(wǎng)絡地址的上報消息;所述RTSP處理模塊根據(jù)所述終端設備上報的網(wǎng)絡地址判斷是否需要執(zhí)行NAT穿越流程;當需要執(zhí)行NAT穿越流程時,所述RTSP處理模塊將媒體服務器的地址下發(fā)給終端設備;終端設備接收所述媒體服務器的地址后向所述媒體服務器發(fā)送NAT穿越報文。進一步地,所述判斷是否需要執(zhí)行NAT穿越流程的方法為判斷所述終端設備在其所屬網(wǎng)絡中的網(wǎng)絡地址是否與所述上報消息報文的源地址相同,如果相同,則不需要執(zhí)行NAT穿越流程,否則需要執(zhí)行NAT穿越流程。進一步地,上報所述終端設備在其所屬網(wǎng)絡中的網(wǎng)絡地址的消息為資源描述
4(Describe)請求消息。進一步地,所述RTSP處理模塊通過參數(shù)設置(SET_PARAMETER)消息將媒體服務器的網(wǎng)絡地址及端口下發(fā)給終端設備;所述RTSP處理模塊發(fā)送所述SET_PARAMETER消息的同時,通知對應的媒體服務器進行NAT穿越報文的監(jiān)聽。進一步地,所述方法還包括,所述媒體服務器在接收到NAT穿越報文后,向RTSP處理模塊上報NAT穿越成功消息。進一步地,在NAT穿越成功后,還包括所述終端設備和所述媒體服務器之間發(fā)送和響應NAT穿越心跳消息的步驟,以及所述媒體服務器向RTSP處理模塊上報當前碼流通道的狀態(tài)信息的步驟。進一步地,所述NAT穿越心跳消息的周期參數(shù)由所述RTSP處理模塊在資源分配 (SETUP)請求消息的應答響應消息中發(fā)送給所述終端設備。基于上述方法,本發(fā)明還提出一種IPTV網(wǎng)絡中實現(xiàn)NAT穿越的裝置,該裝置包括上報單元,位于終端設備,用于向判斷單元發(fā)送上報消息,上報終端設備在其所屬網(wǎng)絡中的網(wǎng)絡地址;判斷單元,位于RTSP處理模塊,用于根據(jù)所述終端設備上報的網(wǎng)絡地址判斷是否需要執(zhí)行NAT穿越流程;地址下發(fā)單元,位于RTSP處理模塊,用于在需要執(zhí)行NAT穿越流程時,將媒體服務器的地址下發(fā)給穿越處理單元;穿越處理單元,位于終端設備,用于在接收到所述媒體服務器的地址后向所述媒體服務器發(fā)送NAT穿越報文。進一步地,所述判斷單元包括報文源地址獲取單元,用于獲取所述上報消息報文的源地址;比較單元,用于比較所述終端設備在其所屬網(wǎng)絡中的網(wǎng)絡地址與所述上報消息報文的源地址是否相同,如果相同,則不需要執(zhí)行NAT穿越流程,否則需要執(zhí)行NAT穿越流程。進一步地,所述上報單元通過Describe請求消息上報所述終端設備在其所屬網(wǎng)絡中的網(wǎng)絡地址。進一步地,所述裝置還包括監(jiān)聽單元,位于媒體服務器,用于監(jiān)聽穿越處理單元發(fā)送的NAT穿越報文;所述地址下發(fā)單元通過SET_PARAMETER消息將媒體服務器的網(wǎng)絡地址及端口下發(fā)給穿越處理單元;所述地址下發(fā)單元發(fā)送所述SET_PARAMETER消息的同時,通知監(jiān)聽單元進行NAT穿越報文的監(jiān)聽。進一步地,所述裝置還包括心跳響應單元,位于媒體服務器,用于接收穿越處理單元發(fā)送的NAT穿越心跳消息;向RTSP處理模塊上報當前碼流通道的狀態(tài)信息;所述穿越處理單元還用于向心跳響應單元周期地發(fā)送NAT穿越心跳消息。本發(fā)明通過IPTV交互過程中擴展RTSP協(xié)議的方式簡單而有效的避免了終端設備依賴其所在的公網(wǎng)服務器來處理NAT穿越的技術(shù)問題,并保證良好的兼容性,主要的優(yōu)勢在于
(1)本發(fā)明使用終端直接攜帶內(nèi)網(wǎng)IP的方法來確認內(nèi)容是否需要NAT穿越,簡化了處理流程。(2)本發(fā)明只需要使用RTSP協(xié)議來解決NAT穿越的問題,流程簡單而有效,避免了系統(tǒng)的復雜性。(3)本發(fā)明無需依賴客戶端所在的公網(wǎng)服務器來處理NAT穿越的問題,提高了系統(tǒng)的可靠性。
圖1為IPTV網(wǎng)絡系統(tǒng)結(jié)構(gòu)示意圖;圖2為本發(fā)明提供的IPTV網(wǎng)絡中NAT穿越的方法流程圖;圖3為本發(fā)明提供的一種IPTV網(wǎng)絡中實現(xiàn)NAT穿越的裝置。
具體實施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,以下舉實施例并參照附圖,對本發(fā)明進一步詳細說明。圖1為IPTV網(wǎng)絡系統(tǒng)結(jié)構(gòu)示意圖,該系統(tǒng)中,終端設備1和終端設備2是處于內(nèi)網(wǎng)中的設備,通過公網(wǎng)服務器連接到公網(wǎng)中與IPTV服務器進行交互,在與IPTV服務器交互的過程中需要NAT穿越處理;終端設備3是直接處于公網(wǎng)上的設備,可以直接與IPTV服務進行交互,無需NAT穿越處理。 本發(fā)明的基本思想是,通過擴展RTSP協(xié)議,借助RTSP信令交互流程實現(xiàn)不依賴于公網(wǎng)服務器的NAT穿越。IPTV服務器主要包含RTSP處理模塊和媒體服務器模塊,其中RTSP處理模塊負責 RTSP協(xié)議的解析以及對媒體服務器進行控制,媒體服務器模塊負責NAT監(jiān)聽以及碼流數(shù)據(jù)的發(fā)送。圖2為本發(fā)明提供的IPTV網(wǎng)絡中NAT穿越的方法流程圖,該方法通過擴展RTSP 協(xié)議,借助RTSP信令交互流程實現(xiàn)不依賴于公網(wǎng)服務器的NAT穿越。該方法的具體步驟包括步驟201、首先終端設備發(fā)送RTSP協(xié)議的資源描述(Describe)請求消息給RTSP 處理模塊,所述Describe請求消息中攜帶所述終端設備所在網(wǎng)絡的網(wǎng)絡地址和端口 ;本發(fā)明不限制終端設備上報其所在網(wǎng)絡的網(wǎng)絡地址和端口的信令消息,只要在終端設備向RSTP處理模塊發(fā)送資源分配(SETUP)請求消息之前,RTSP處理模塊通過終端設備發(fā)送Describe消息、Option消息或其它消息獲得所述終端設備所在網(wǎng)絡的網(wǎng)絡地址和端口即可。優(yōu)選地,本發(fā)明對RTSP協(xié)議的DESCRIBE消息進行了擴展,在該消息中新增網(wǎng)絡地址字段(x-NAT)字段用于攜帶終端所在網(wǎng)絡的網(wǎng)絡地址(IP地址)和端口(PORT),如果終端處于內(nèi)網(wǎng)之中則攜帶其內(nèi)網(wǎng)IP和PORT,該消息示例如下DESCRIBErtsp ://10. 40. 91. 30 554/vod/00000020000000072. mpg ? userid = 023455346&vcdnid = 001RTSP/1. 0
User-Agent :ZTE Ltd. co RTSP protocal verion 1. 0Accept-Charset :UTF_8Accept :application/sdpCSeq 1x-NAT :192. 168. 1. 101:20019為了保持系統(tǒng)的兼容性,在DESCRIBE消息中可以不攜帶該字段,若不攜帶該字段,默認為該終端不支持該NAT穿越流程,以后的交互使用公網(wǎng)上的終端交互的流程。步驟202、RTSP處理模塊收到該Describe請求后,解析x_NAT字段,判斷該字段包含的網(wǎng)絡地址與該Describe請求消息報文的源地址是否相同,如果相同,說明該終端設備處于公網(wǎng)之中,如果不相同,則說明終端設備處于內(nèi)網(wǎng)之中,需要執(zhí)行NAT穿越流程。步驟203、RTSP處理模塊向終端設備回應Describe請求的2000K接收確認消息;步驟204、終端設備發(fā)送資源分配(SETUP)請求消息給RTSP處理模塊,該消息中攜帶終端設備支持的傳輸方式以及碼流接收地址和端口等信息。步驟205、RTSP處理模塊在收到SETUP請求后,向媒體服務器申請播放所需的資源;步驟206、媒體服務器進行資源分配,并向RTSP處理模塊反饋資源申請成功響應消息;步驟207、RTSP處理模塊向終端設備反饋SETUP的應答響應消息Q000K);若需要NAT穿越處理,RTSP處理模塊在申請播放所需要的資源后給終端回應答消息。為了保證終端設備和媒體服務器即時獲知發(fā)送NAT穿越報文的鏈路是否正常,本發(fā)明在終端設備和媒體服務器之間增加心跳?;钕?,優(yōu)選地,本發(fā)明在SETUP的2000K應答響應消息中攜帶?;铋g隔字段(x-Ke印Alivehterval),該字段用于通知終端設備發(fā)送NAT 穿越心跳消息的時間間隔,該應答消息示例如下RTSP/1. 0 200 OKServer =ZXUSS 100 1. 0X-KeepAliveInterval :5000CSeq 2Date Tue,25May 2010 03:28:15 GMTExpires :Tue,25May 2010 03:28:15 GMTSession :262188528Transport MP2T/RTP/UDP ;unicast ;destination = 192. 168. 0. 7 ;client_port = 39326-39327 ;server_port = 29014-29015 ;mode =“ PLAY" ;source = 58. 223. 255. 214終端設備收到該消息后,解析x-Ke印Alivehterval字段,在終端設備獲取媒體服務器的地址和端口后,終端設備即根據(jù)該字段指定的時間間隔,如上例的5000ms,發(fā)送 NAT穿越心跳消息給媒體服務器,以確保鏈路的存活。本發(fā)明不限制將NAT穿越心跳消息的?;铋g隔以具體何種信令傳送給終端設備, 只要在終端設備向RSTP處理模塊發(fā)送播放消息之前,將?;铋g隔字段的內(nèi)容發(fā)送給終端設備即可,例如,也可將保活間隔字段放在參數(shù)設置(SET_PARAMETER)消息中通知給終端設備。步驟208、RTSP處理模塊通過參數(shù)設置(SET_PARAMETER)消息通知終端設備媒體服務器的網(wǎng)絡地址及端口,以便終端設備能夠發(fā)送NAT穿越報文到媒體服務器;SET_PARAMETER 消息示例如下SET_PARAMETER rtsp://10. 40. 91. 30 554/vod/00000020000000072. mpgRTSP/1. 0Cseq :1x-Server 10.42.108. 110014-10015Session :262188528其中xlerver字段攜帶的地址是媒體服務器的地址,即終端設備發(fā)送NAT穿越報文的目的地址,按上例,終端需要向10. 42. 108. 1這個IP地址的10014和10015兩個端口發(fā)送NAT穿越報文。終端設備在接收到RTSP處理模塊發(fā)送SET_PARAMETER消息后需回復2000K接收確認消息; 步驟209、在RTSP處理模塊發(fā)送SET_PARAMETER消息的同時,通知對應的媒體服務器進行NAT穿越報文的監(jiān)聽;媒體服務器需記錄要監(jiān)聽的終端設備的網(wǎng)絡地址和端口,且媒體服務器需要對應的監(jiān)聽終端設備上報的終端設備所在網(wǎng)絡的網(wǎng)絡地址和端口及經(jīng)網(wǎng)絡地址轉(zhuǎn)換后的終端設備對應的網(wǎng)絡地址和端口;步驟210、終端設備向SET_PARAMETER消息中攜帶的媒體服務器的地址發(fā)送NAT穿越報文;由于發(fā)送碼流所需的鏈路還沒有在公網(wǎng)服務器上建立,所以需要通過發(fā)送NAT穿越報文,讓公網(wǎng)服務器建立這條鏈路。步驟211、當媒體服務器收到NAT穿越報文后,向終端設備回應NAT穿越應答消息;步驟212、媒體服務器向RTSP處理模塊上報NAT穿越成功消息;步驟213、終端設備向RTSP處理模塊發(fā)送播放(PLAY)消息;步驟214、RTSP處理模塊通知媒體服務器向終端發(fā)送碼流;步驟215、媒體服務器向終端設備發(fā)送點播節(jié)目的碼流,開始正常播放。步驟216、RTSP處理模塊向終端設備發(fā)送PLAY請求的2000K應答響應;步驟217、終端設備依據(jù)χ-Ke印Alivehterval字段的設置,向媒體服務器發(fā)送 NAT穿越心跳消息;所述NAT穿越心跳消息的報文格式可與NAT穿越報文的消息格式相同。步驟218、媒體服務器向終端設備響應NAT穿越心跳消息應答;步驟219、媒體服務器向RTSP處理模塊上報NAT穿越心跳狀態(tài)信息,用于通知 RTSP處理模塊當前碼流通道的狀態(tài),若當碼流通道出現(xiàn)故障時,可通過NAT穿越心跳消息即時獲知當前碼流通道的狀態(tài),并通知RTSP處理模塊進行相應的處理,例如拆除碼流通道鏈路等;圖3為本發(fā)明提供的一種IPTV網(wǎng)絡中實現(xiàn)NAT穿越的裝置,該裝置分別包括位于 RTSP處理模塊、媒體服務器和終端設備中的若干單元模塊,分別為上報單元、判斷單元、 地址下發(fā)單元、穿越處理單元、監(jiān)聽單元、心跳響應單元。
所述上報單元位于終端設備,用于向判斷單元發(fā)送上報消息,所述上報消息中攜帶終端設備在其所屬網(wǎng)絡中的網(wǎng)絡地址;優(yōu)選地,所述上報消息為Describe請求消息。所述判斷單元位于RTSP處理模塊,用于根據(jù)所述終端設備上報的網(wǎng)絡地址判斷是否需要執(zhí)行NAT穿越流程;所述判斷單元包括報文源地址獲取單元和比較單元,所述報文源地址獲取單元用于獲取所述上報消息報文的源地址;所述比較單元用于比較所述終端設備在其所屬網(wǎng)絡中的網(wǎng)絡地址與所述上報消息報文的源地址是否相同,如果相同,則不需要執(zhí)行NAT穿越流程,否則需要執(zhí)行NAT穿越流程。所述地址下發(fā)單元位于RTSP處理模塊,用于在需要執(zhí)行NAT穿越流程時,將媒體服務器的地址下發(fā)給穿越處理單元;優(yōu)選地,所述地址下發(fā)單元通過SET_PARAMETER消息將媒體服務器的網(wǎng)絡地址及端口下發(fā)給穿越處理單元;所述穿越處理單元位于終端設備,用于在接收到所述媒體服務器的地址后向所述媒體服務器發(fā)送NAT穿越報文。所述監(jiān)聽單元位于媒體服務器,用于監(jiān)聽穿越處理單元發(fā)送的NAT穿越報文;所述地址下發(fā)單元發(fā)送所述SET_PARAMETER消息的同時,通知監(jiān)聽單元進行NAT穿越報文的監(jiān)聽。所述心跳響應單元位于媒體服務器,用于接收穿越處理單元發(fā)送的NAT穿越心跳消息,并通過NAT穿越心跳消息的接收情況判斷當前碼流通道的狀態(tài),向RTSP處理模塊上報當前碼流通道的狀態(tài)信息;相應地,所述穿越處理單元還用于向心跳響應單元周期地發(fā)送NAT穿越心跳消息。以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。
權(quán)利要求
1.一種IPTV網(wǎng)絡中實現(xiàn)NAT穿越的方法,其特征在于,包括終端設備向?qū)崟r流傳輸協(xié)議(RTSP)處理模塊發(fā)送攜帶所述終端設備在其所屬網(wǎng)絡中的網(wǎng)絡地址的上報消息;所述RTSP處理模塊根據(jù)所述終端設備上報的網(wǎng)絡地址判斷是否需要執(zhí)行網(wǎng)絡地址轉(zhuǎn)換(NAT)穿越流程;當需要執(zhí)行NAT穿越流程時,所述RTSP處理模塊將媒體服務器的地址下發(fā)給終端設備;終端設備接收所述媒體服務器的地址后向所述媒體服務器發(fā)送NAT穿越報文。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述判斷是否需要執(zhí)行NAT穿越流程的方法為判斷所述終端設備在其所屬網(wǎng)絡中的網(wǎng)絡地址是否與所述上報消息報文的源地址相同,如果相同,則不需要執(zhí)行NAT穿越流程,否則需要執(zhí)行NAT穿越流程。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,上報所述終端設備在其所屬網(wǎng)絡中的網(wǎng)絡地址的消息為資源描述(Describe)請求消息。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述RTSP處理模塊通過參數(shù)設置(SET_ PARAMETER)消息將媒體服務器的網(wǎng)絡地址及端口下發(fā)給終端設備;所述RTSP處理模塊發(fā)送所述SET_PARAMETER消息的同時,通知對應的媒體服務器進行NAT穿越報文的監(jiān)聽。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括,所述媒體服務器在接收到NAT穿越報文后,向RTSP處理模塊上報NAT穿越成功消息。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,在NAT穿越成功后,還包括所述終端設備和所述媒體服務器之間發(fā)送和響應NAT穿越心跳消息的步驟,以及所述媒體服務器向RTSP 處理模塊上報當前碼流通道的狀態(tài)信息的步驟。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述NAT穿越心跳消息的周期參數(shù)由所述 RTSP處理模塊在資源分配(SETUP)請求消息的應答響應消息中發(fā)送給所述終端設備。
8.一種IPTV網(wǎng)絡中實現(xiàn)NAT穿越的裝置,其特征在于,該裝置包括上報單元,位于終端設備,用于向判斷單元發(fā)送上報消息,上報終端設備在其所屬網(wǎng)絡中的網(wǎng)絡地址;判斷單元,位于RTSP處理模塊,用于根據(jù)所述終端設備上報的網(wǎng)絡地址判斷是否需要執(zhí)行NAT穿越流程;地址下發(fā)單元,位于RTSP處理模塊,用于在需要執(zhí)行NAT穿越流程時,將媒體服務器的地址下發(fā)給穿越處理單元;穿越處理單元,位于終端設備,用于在接收到所述媒體服務器的地址后向所述媒體服務器發(fā)送NAT穿越報文。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述判斷單元包括報文源地址獲取單元,用于獲取所述上報消息報文的源地址;比較單元,用于比較所述終端設備在其所屬網(wǎng)絡中的網(wǎng)絡地址與所述上報消息報文的源地址是否相同,如果相同,則不需要執(zhí)行NAT穿越流程,否則需要執(zhí)行NAT穿越流程。
10.根據(jù)權(quán)利要求8或9所述的裝置,其特征在于,所述上報單元通過Describe請求消息上報所述終端設備在其所屬網(wǎng)絡中的網(wǎng)絡地址。
11.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括監(jiān)聽單元,位于媒體服務器,用于監(jiān)聽穿越處理單元發(fā)送的NAT穿越報文; 所述地址下發(fā)單元通過SET_PARAMETER消息將媒體服務器的網(wǎng)絡地址及端口下發(fā)給穿越處理單元;所述地址下發(fā)單元發(fā)送所述SET_PARAMETER消息的同時,通知監(jiān)聽單元進行NAT穿越報文的監(jiān)聽。
12.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括 心跳響應單元,位于媒體服務器,用于接收穿越處理單元發(fā)送的NAT穿越心跳消息;向 RTSP處理模塊上報當前碼流通道的狀態(tài)信息;所述穿越處理單元還用于向心跳響應單元周期地發(fā)送NAT穿越心跳消息。
全文摘要
本發(fā)明公開了一種IPTV網(wǎng)絡中實現(xiàn)NAT穿越的方法及裝置,用于解決終端設備依賴其所在的公網(wǎng)服務器來處理NAT穿越的問題。本發(fā)明擴展了RTSP協(xié)議,通過終端直接攜帶內(nèi)網(wǎng)IP的方法來確認內(nèi)容是否需要NAT穿越,只需要使用RTSP協(xié)議即可解決NAT穿越的問題,不需要依賴終端設備所在的公網(wǎng)服務器,提高了系統(tǒng)的可靠性。
文檔編號H04N21/6437GK102378064SQ20101025000
公開日2012年3月14日 申請日期2010年8月4日 優(yōu)先權(quán)日2010年8月4日
發(fā)明者劉澍, 葛寶磊 申請人:中興通訊股份有限公司