一种udp端口的复用方法
【技术领域】
[0001] 本发明设及通信技术领域,具体地说,设及一种基于UDP的实时通信系统中的端口 复用方法。
【背景技术】
[0002] UDP是实时通信系统中比较常见的一种传输层协议,由于NAT(化twork Address Translator)设备的部署,导致了UDP数据传输需要借助类似STUN或TURN运样的代理服务 器。但是不管是STUN(RFC3489)还是TURN(Rrc5766)都是建立在端口转发的基础上的,即每 个会话申请单独的UDP端口。
[0003] 在实际应用中中转服务器可能会有端口数量的限制。例如,中转服务器位于NAT设 备或防火墙设备后面,管理员只开放了有限数量的UDP端口可供使用。由于通常一个端口只 能承载一条会话,此时会话的数量会因为UDP端口数量的限制而无法达到应用要求。
[0004] 因此,亟需一种在一个UDP端口上承载多条会话的端口复用方法。
【发明内容】
[0005] 本发明的目的之一在于解决现有技术中基于UDP的实时通信系统中会话数量受 UDP端口数量限制的技术缺陷。
[0006] 本发明首先提供用于中转服务器的UDP端口复用方法,包括:
[0007] 预先为UDP端口上承载的至少一条会话分别分配SID;
[000引接收第一UMC的注册请求信息,其中,第一UMC为当前会话中的接收方;
[0009] 向第一 UMC反馈包含SID的注册响应信息,使得第一 UMC获取当前会话的SID从而加 入到当前会话中;
[0010] 接收第二UMC的携带SID和数据负荷的转发请求,其中,第二UMC为当前会话中的发 送方;
[0011] 识别所述转发请求中的SID,将包含SID和数据负荷的转发信息发送至第一 UMC。
[0012] 在一个实施例中,所述注册请求信息包括中转服务器的IP监听地址、UDP监听端口 地址和注册关联CID,所述注册响应信息包括第一 UMC的IP源地址、第一 UMC的UDP源端口地 址,W及所述注册关联CID和SID;其中,
[0013] 第一UMC在注册过程中识别出与所述注册关联CID匹配的注册响应信息,W使第一 UMC基于所述注册关联CID与唯一的会话SID进行绑定。
[0014] 在一个实施例中,还包括:
[0015] 接收第一 UMC的包含SID的注销请求信息;
[0016] 向第一UMC反馈注销响应信息,使得第一UMC从当前会话中退出。
[0017] 在一个实施例中,所述注销请求信息包括中转服务器的IP监听地址、UDP监听端口 地址、注销关联CID和SID,所述注销响应信息包括第一 UMC的IP源地址、第一 UMC的UDP源端 口地址和所述注销关联CID;其中,
[0018] 第一UMC在注销过程中识别出与所述注销关联CID匹配的注销响应信息,W使得第 一 UMC基于所述注销关联CID与当前会话SID解除绑定。
[0019] 本发明的实施例还提供一种用于接收方客户端的UDP端口复用方法,包括:
[0020] 向中转服务器发送注册请求信息;
[0021] 接收中转服务器的包含当前会话SID的注册响应信息,从而加入到当前会话中;
[0022] 接收中转服务器转发的包含当前会话SID和数据负荷的转发信息。
[0023] 在一个实施例中,所述注册请求信息包括中转服务器的IP监听地址、监听端口地 址和注册关联CID,所述注册响应信息包括客户端的IP源地址、UDP源端口地址,W及所述注 册关联CID和SID;其中,
[0024] 所述客户端在注册过程中识别出与所述注册关联CID匹配的注册响应信息,W基 于所述注册关联CID与唯一的会话SID进行绑定。
[0025] 在一个实施例中,还包括:
[0026] 向中转服务器发送包含当前会话SID的注销请求信息;
[0027] 接收中转服务器反馈的注销响应信息,W从当前会话中退出。
[00%]在一个实施例中,所述注销请求信息包括中转服务器的IP监听地址、UDP监听端口 地址、注销关联CID和SID,所述注销响应信息包括第客户端的IP源地址、UDP源端口地址和 所述注销关联CID;其中,
[0029] 所述客户端在注销过程中识别出与所述注销关联CID匹配的注销响应信息,W基 于所述注销关联CID与当前会话SID解除绑定。
[0030] 本发明的实施例还提供一种用于发送方客户端的UDP端口复用方法,包括:
[0031] 接收中转服务器预先分配的当前会话SID;
[0032] 向中转服务器发送携带当前会话SID和数据负荷的转发请求。
[0033] 在本申请的实施例中,中转服务器在一个UDP端口内为每条会话分配SID,当不同 的客户端相互之间进行会话时,中转服务器可W在同一个UDP端口上构建出由SID标识出来 的相应会话通道。在每条会话中,发送客户端仅需发送携带有SID的应用数据负荷而不必知 晓接收端的所连接的UDP端口,中转服务器将携带有SID的应用数据负荷转发至接收客户 端。其中,接收客户端需要预先在中转服务器上注册W获得复用服务器为其分配的SID。运 样在一个UDP端口内复用多条会话,客户端之间的会话数量会突破中转服务器上UDP端口的 限制,从而提高实时通信系统的容量。
[0034] 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变 得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利 要求书W及附图中所特别指出的结构来实现和获得。
【附图说明】
[0035] 附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实 施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
[0036] 图1是本发明实施例一的实时通信系统的结构示意图;
[0037] 图2是本发明实施例一的UDP端口复用方法的步骤流程图;
[0038] 图3是本发明实施例二的实时通信系统的结构示意图;
[0039] 图4是本发明实施例二的UDP端口复用方法的步骤流程图。
【具体实施方式】
[0040] 为使本发明的目的、技术方案和优点更加清楚,W下结合附图对本发明作进一步 地详细说明。
[0041] W下结合说明书附图对本发明的实施例进行说明,应当理解,此处所描述的优选 实施例仅用于说明和解释本发明,并不用于限定本发明。并且在不相冲突的情况下,本发明 的实施例中的特征可W相互结合。
[00创实施例一
[0043] 图1是本实施例提供的基于UDP的实时通信系统的结构示意图。该系统主要包括中 转服务器UMS、发送客户端UMC1和接收客户端UMC2。其中,接收客户端UMC2通过IP网络连接 至中转服务器UMS,发送客户端UMC1先连接到NAT设备再通过IP网络连接至中转服务器UMS。 其中,中转服务器UMS提供的一个UDP端口上可W承载在UMC1和UMC2之间建立的至少一条会 话。因此,图1中的中转服务器称为UDP复用服务器化DP Multiplex Server),客户端称为 UDP复用客户端(UDP Multiplex Client)。
[0044] 图2是本实施例提供的在UMS的一个UDP端口上,UMCl向UMC2单向发送数据的步骤 流程图。该流程主要包括UMC向UMS的注册过程、数据转发过程和UMC从UMS注销的过程。在运 些过程中定义如下的消息。
[0045] (l)UMC 注册请求(re 曲 eq)
[0046] 当UMC希望开始接收UDP数据时,向IMS发送re曲eq消息,其格式如下表所示。
[0047]
[0048] 其中各个字符段的含义为:
[0049] IP: IP头,目的地址设为IMS监听地址;
[(K)加]UDP:UDP头,目的端口为IMS监听端口;
[0化1] Type:消息类型,长度1字节,取值为0x01;
[0052] CID:由UMC分配的消息标识,长度4字节,用于关联请求和响应。
[0053] (2)UMC 注册响应(re 曲 es)
[0化4] 当UMS接收到upcRegReq时,向UMC发送re曲es消息,其格式如下表所示。
[0化5]
[0056]其中各个字符段的含义为:
[0化7] IP:目的地址设为IMS接收到UMC注册请求的源地址;
[0化引 UDP:目的端口为IMS接收到UMC注册请求的源端口;
[0化9] Type:消息类型,取值为0x02;
[0060] CID:与re曲eq消息中的CID相同,用于关联请求和响应;
[0061 ] SID:由UMS分配的会话ID,长度4字节,用于之后的UMC注销和UMC数据发送。UMS必 须保证分配的SID是全局唯一用于区分UMC会话。
[0062] (3)UMC 注销请求(unre 曲 eq)
[0063] 当UMC希望停止接收UDP报文时,向IMS发unre曲eq消息。其格式如下表所示。
[0064] _ '[0065]其中各个字符段的含义为I:
' ' '
[0066] IP: IP头,目的地址设为IMS监听地址;
[0067] UDP:UDP头,目的端口为IMS监听端口;
[0068] Type:消息类型,长度1字节,取值为0x03;
[0069] CID:由UMC分配的消息标识,长度4字节,用于关联请求和响应;
[0070] SID:与之前reqRes响应中的SID相同。
[0071] (4)UMC 注销响应(unre 曲 es)
[0072] 当IMS接收到unre曲eq时,向UMC发送unre曲es消息,其格式如下表所示。
[0073]
[0074] 其中各个字符段的含义为:
[00巧]IP:目的地址设为IMS接收到UMC注册请求的源地址;
[0076] UDP:目的端口为IMS接收到UMC注册请求的源端口;
[0077] Type:消息类型,取值为0x04;
[007引 CID:与unre曲eq消息中的CID相同,用于关联请求和响应。
[00 巧](5)UMC 数据发送(dataReq)
[0080] 当UMC1需要向其他UMC2发送应用数据时,UMC1向UMS发送dataReq消息,其格式如 下表所示。
[0081]
[0082] 其中各个字符段的含义为:
[0083] IP: IP头,目的地址设为IMS监听地址;
[0084] UDP:UDP头,目的端口为IMS监听端口;
[0085] Type:消息类型,取值为0x05;
[00化]SID:与之前UMC2收到的reqRes响应中的SID相同;
[0087]化y load:应用数据负荷。
[008 引(6)UMC 数据转发(dataFwd)
[0089] 当UMS接收到UMC1发来的dataReq时,向UMC2发送dataFwd消息,其格式如下表所 /J、- 〇 Γ00901
[0091] 其中各个字符段的含义为:
[0092] IP: IP头,目的地址设为IMS监听地址;
[0093] UDP:UDP头,目的端口为IMS监听端口;
[0094]