WO2019214550A1 - Message transmission method, device and system, storage medium and electronic apparatus - Google Patents
Message transmission method, device and system, storage medium and electronic apparatus Download PDFInfo
- Publication number
- WO2019214550A1 WO2019214550A1 PCT/CN2019/085550 CN2019085550W WO2019214550A1 WO 2019214550 A1 WO2019214550 A1 WO 2019214550A1 CN 2019085550 W CN2019085550 W CN 2019085550W WO 2019214550 A1 WO2019214550 A1 WO 2019214550A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- message
- sequence number
- lost
- packet
- sent
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0604—Management of faults, events, alarms or notifications using filtering, e.g. reduction of information by using priority, element types, position or time
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/64—Addressing
- H04N21/6405—Multicasting
Definitions
- a message transmission system including one or more first devices, a second device, and a filtering device, wherein the first device is configured to receive the second device The original packet, and the packet loss detection packet is sent to the filtering device when the packet loss detection is performed on the original packet, and the filtering device includes: a receiving module, configured to receive The sequence number of the lost packet sent by the first device, where the sequence number of the lost packet is used to indicate the sequence number of the packet lost in the packet sent by the second device to the first device; The sequence of the lost message is subjected to a deduplication operation to obtain a lost message sequence number set; the sending module is configured to send the lost message sequence number set to the second device; and the second device is set to The first device sends the original message, and receives the lost message sequence number set.
- the de-duplication operation is performed on the sequence number of the lost packet, and the number of the sequence number of the same lost packet is reduced and then sent to the second device to avoid forming a message storm on the second device, which solves the problem of processing loss in the related art.
- the technical problem that the packet time is too long reduces the filtering workload of the second device for the serial number of the lost packet, thereby improving the efficiency of the second device for sending the repair packet for the lost packet, and reducing the loss of the first device repair report.
- the delay of the text is performed on the sequence number of the lost packet, and the number of the sequence number of the same lost packet is reduced and then sent to the second device to avoid forming a message storm on the second device, which solves the problem of processing loss in the related art.
- FIG. 2 is a flowchart of a message transmission method according to an embodiment of the present disclosure
- FIG. 13 is a structural diagram of a NORM-based IPTV live broadcast system in the third embodiment of the present invention.
- FIG. 2 is a flowchart of a message transmission method according to an embodiment of the present disclosure. As shown in FIG. 2, the process includes the following steps:
- the sending end uses the UDP to encapsulate the original data packet, and optionally, the sending end further performs FEC encoding on the data to be transmitted according to the redundancy policy, and generates NORM according to a certain order.
- the serial number of the data packet, and the NORM multicast data packet is sent according to the serial number.
- the type of the message is NORM_DATA.
- the data may be a data, a file, or a real-time stream.
- Each NORM data packet includes a corresponding serial number;
- the message server receives the NACK3, obtains the message that the client 1 and 2 packet loss is 4, 5, 6, and then resends three original data messages Message4, Message5 and Message6;
- the CDN node After collecting the NACK1 and NACK2 in the 10ms time window, the CDN node de-duplicates the sequence numbers, takes the union, and obtains the sequence number, and obtains the set-top box 1 and the set-top box 2 packet loss combination is 11-20, and then The intermediate server sends a NACK3 to the HLS content source station, and the message payload in the NACK3 includes 10 sequence numbers 11-20;
- the live broadcast encoder creates a group session with a multicast address norm://224.1.1.1:8080;
- the set-top box 2 joins the NORM group session with the multicast address norm://224.1.1.1:8080, and opens a buffer area to store the multicast live stream packets received within 5 seconds;
- the client 4, 5, 6 receives the Message6 retransmitted by the sender, and uses Message6 to restore the remaining part of the data, and then displays the message.
- the foregoing processor may be configured to perform the following steps by using a computer program:
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Provided are a message transmission method, device and system, and a storage medium and an electronic apparatus, wherein the method comprises: receiving a serial number, sent by a first device, of a lost message, wherein the serial number of the lost message is used for indicating the serial number of the lost message among messages sent to the first device by a second device; conducting a deduplication operation on the serial number of the lost message to obtain a set of serial numbers of lost messages; and sending the set of serial numbers of lost messages to the second device. By means of the present disclosure, the technical problem in the relevant art of the time it takes to process a lost message being too long is solved.
Description
本公开涉及通信领域,具体而言,涉及一种报文传输方法及装置、系统、存储介质、电子装置。The present disclosure relates to the field of communications, and in particular, to a message transmission method and apparatus, system, storage medium, and electronic device.
网络应用中,组播作为一种高效的传输方案,被广泛应用于视频传输、消息分发、文件推送,主流的组播方案是,基于无连接的UDP(User Data Protocol,用户数据报协议)协议封装原始数据报文,采用组播方式在网络设备中分发和传输。由于组播传输存在不可靠性,在网络异常时容易出现丢包或者误码,必须进行纠错补偿,以保证可靠性数据传输。IPTV(网路协定电视,Internet Protocol Television)\视频会议等视频业务领域中,相关技术中的组播传输方案是UDP组播+FEC(前向纠错,Forward Error Correction):对于媒体数据,发送端除了发送组播原始数据外,还会对媒体内容进行FEC纠错编码,发送FEC纠错报文,接收端可以同时接收到媒体内容的原始数据报文和FEC报文,对于丢包或者误码的原始数据报文,接收端使用FEC纠错报文对原始报文进行还原,从而大大提升媒体内容传输的质量。UDP组播+FEC方案存在的问题:FEC冗余报文只能提供部分的冗余度,原始数据报文丢包率超过FEC的冗余度的时候,FEC纠错报文依旧无法对数据进行还原;FEC纠错数据报文如果丢包,接收端将无法对原始数据报文进行还原。In network applications, multicast is widely used as an efficient transmission scheme for video transmission, message distribution, and file push. The mainstream multicast scheme is based on the connectionless UDP (User Data Protocol) protocol. The original data packet is encapsulated and distributed and transmitted in the network device in a multicast manner. Due to the unreliability of multicast transmission, packet loss or bit error is likely to occur when the network is abnormal, and error correction compensation must be performed to ensure reliable data transmission. In the field of video services such as IPTV (Internet Protocol Television) and video conferencing, the multicast transmission scheme in the related art is UDP multicast + FEC (Forward Error Correction): for media data, transmission In addition to transmitting the multicast original data, the terminal also performs FEC error correction coding on the media content, and sends the FEC error correction message. The receiving end can receive the original data packet and the FEC packet of the media content at the same time, for packet loss or error. The original data packet of the code, the receiving end uses the FEC error correction message to restore the original message, thereby greatly improving the quality of the media content transmission. Problems with the UDP multicast + FEC scheme: FEC redundant packets can only provide partial redundancy. When the packet loss rate of the original data packet exceeds the redundancy of the FEC, the FEC error correction packet cannot still perform data. Restore; if the FEC error correction data packet is lost, the receiving end will not be able to restore the original data packet.
为了实现更加高效的可靠组播传输,相关技术中IETF(The Internet Engineering Task Force,国际互联网工程任务组)提出了一种基于NACK(Negative Acknowledge,否定确认)机制的可靠组播协议NORM(NACK-Oriented Reliable Multicast Transport Protocol),其主要的思想是,在正常情况下,发送端基于UDP+FEC方式协议封装传输数据,以组播发送,接收端接收原始数据和FEC纠错数据,并且根据报文的序号进行丢 包检测,如果没有丢包,则进行FEC纠错、解码和业务呈现;如果存在丢包,那么接收端向发送端发送NACK(否定确认)报文,以此将丢失的组播报文的序号告诉发送端,发送端则根据NACK请求中的丢包报文序号,对指定的原始数据报文或者FEC纠错报文发送修复报文,接收端接收到修复报文,则进行数据重组,这样来实现可靠的数据传输。In order to achieve more efficient and reliable multicast transmission, the IETF (The Internet Engineering Task Force) proposed a reliable multicast protocol NORM (NACK-based based on NACK (Negative Acknowledge) mechanism). Oriented Reliable Multicast Transport Protocol), the main idea is that, under normal circumstances, the sender encapsulates the transmission data based on the UDP+FEC protocol, and transmits it by multicast. The receiver receives the original data and the FEC error correction data, and according to the message. The sequence number is detected by packet loss. If there is no packet loss, FEC error correction, decoding, and service presentation are performed. If there is packet loss, the receiver sends a NACK (negative acknowledgement) message to the sender, thereby losing the multicast. The sequence number of the packet is sent to the sender. The sender sends a repair packet to the specified original data packet or the FEC error correction packet according to the packet loss packet number in the NACK request. When the receiver receives the repair packet, the receiver performs the repair packet. Data reorganization, in order to achieve reliable data transmission.
NORM可靠组播传输方案与UDP组播+FEC纠错传输方案相比,引入了类似于TCP(Transport Control Protocol)的丢包重传和拥塞控制机制,在传输可靠性上,远远好于UDP组播+FEC方案,使得NORM可以适用于更多的传输场景。目前可以适用NORM的业务场景有:比如IPTV直播、OTT(Over The Top)直播、数字视频广播(Digital Video Broadcasting,DVB)直播、分布式消息队列、文件分发、网红直播、视频会议、网络游戏、军事指挥系统等等。著名的开源消息队列ZeroMQ就支持使用NORM作为传输协议,CableLabs的IPTV规范也将NORM定义为媒体传输的标准协议,其市场价值越来越高。Compared with the UDP multicast + FEC error correction transmission scheme, the NORM reliable multicast transmission scheme introduces a packet loss retransmission and congestion control mechanism similar to TCP (Transport Control Protocol), which is far better than UDP in terms of transmission reliability. The multicast + FEC scheme makes NORM suitable for more transmission scenarios. Currently, NORM can be applied to business scenarios such as IPTV live broadcast, OTT (Over The Top) live broadcast, digital video broadcast (DVB) live broadcast, distributed message queue, file distribution, web red live broadcast, video conference, online game. , military command system, and so on. The well-known open source message queue ZeroMQ supports the use of NORM as a transport protocol. CableLabs' IPTV specification also defines NORM as a standard protocol for media transmission, and its market value is getting higher and higher.
NORM的可靠组播传输机制也存在问题,如附图1所示,图1是本公开相关技术中NORM可靠组播传输机制的示意图。There is also a problem with the reliable multicast transmission mechanism of NORM. As shown in FIG. 1, FIG. 1 is a schematic diagram of a NORM reliable multicast transmission mechanism in the related art of the present disclosure.
如果NORM发送端与接收端之间,发生关键传输设备的异常或者抖动,大量的接收端会同时检测到丢包,而向发送端发送大量相同丢包报文序号的NACK,形成消息风暴,NORM发送端存在处理性能瓶颈。同时NORM协议要求发送端需要具有NACK一定延迟的修复窗口,即发送端需要在一段时间窗内,收集来自不同的接收端的NACK报文,进行去重处理后,然后对丢包报文的并集,发送修复报文。为了尽可能的避免发送重复的修复报文,发送端需要设置比较长的时间窗来处理NACK报文,这样拖延了修复报文发出的时间。对于接收端来说,丢包报文修复的延迟比较大,这容易导致业务质量下降,典型地,在视频业务场景,容易导致终端上的视频画面花屏或者跳帧,影响观影体验。随着接收端数量的增加,这个问题越发明显。NORM传输机制的这个特点,导致一个NORM发送端可以支撑的接收端的数量受到限制,无法支撑IPTV/OTT等大规模用户 的场景。If the abnormal transmission or the jitter of the key transmission device occurs between the NORM sender and the receiver, a large number of receivers will detect the packet loss at the same time, and send a large number of NACKs with the same packet loss packet number to the sender to form a message storm. There is a processing performance bottleneck on the sender side. At the same time, the NORM protocol requires the sender to have a repair window with a certain delay of the NACK. That is, the sender needs to collect NACK packets from different receivers in a period of time, perform deduplication processing, and then combine the packet loss packets. , send repair message. In order to avoid sending duplicate repair packets as much as possible, the sender needs to set a relatively long time window to process NACK packets, which delays the time for repairing the packets. For the receiving end, the delay of packet packet repair is relatively large, which may lead to a decline in service quality. Typically, in a video service scenario, the video screen on the terminal is likely to be screened or frame skipped, which affects the viewing experience. As the number of receivers increases, this problem becomes more apparent. This feature of the NORM transmission mechanism limits the number of receiving ends that a NORM sender can support, and cannot support large-scale users such as IPTV/OTT.
针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。In view of the above problems in the related art, no effective solution has been found yet.
发明内容Summary of the invention
本公开实施例提供了一种报文传输方法及装置、系统、存储介质、电子装置。Embodiments of the present disclosure provide a message transmission method and device, system, storage medium, and electronic device.
根据本公开的一个实施例,提供了一种报文传输方法,包括:接收第一设备发送的丢失报文的序号,其中,所述丢失报文的序号用于指示在第二设备发送给所述第一设备的报文中丢失报文的序号;对所述丢失报文的序号进行去重操作,得到丢失报文序号集合;将所述丢失报文序号集合发送给所述第二设备。According to an embodiment of the present disclosure, a message transmission method is provided, including: receiving a sequence number of a lost message sent by a first device, where a sequence number of the lost message is used to indicate that the message is sent to the second device Deleting the sequence number of the packet in the packet of the first device; performing a deduplication operation on the sequence number of the lost packet to obtain a lost packet sequence number set; and sending the lost packet sequence number set to the second device.
根据本公开的另一个实施例,提供了一种报文传输装置,包括:接收模块,设置为接收第一设备发送的丢失报文的序号,其中,所述丢失报文的序号用于指示在第二设备发送给所述第一设备的报文中丢失报文的序号;处理模块,设置为对所述丢失报文的序号进行去重操作,得到丢失报文序号集合;发送模块,设置为将所述丢失报文序号集合发送给所述第二设备。According to another embodiment of the present disclosure, a message transmission apparatus is provided, including: a receiving module, configured to receive a sequence number of a lost message sent by a first device, where a sequence number of the lost message is used to indicate The sequence number of the lost message in the packet sent by the second device to the first device; the processing module is configured to perform a deduplication operation on the sequence number of the lost packet to obtain a lost message sequence number set; and the sending module is set to Sending the lost message sequence number set to the second device.
根据本公开的又一个实施例,提供了报文传输系统,包括一个或多个第一设备、第二设备、过滤设备,其中,所述第一设备,设置为接收所述第二设备发送的原始报文,以及在对所述原始报文进行丢包检测确定存在丢失报文时,将所述丢失报文的序号发送给所述过滤设备;所述过滤设备包括:接收模块,设置为接收第一设备发送的丢失报文的序号,其中,所述丢失报文的序号用于指示在第二设备发送给所述第一设备的报文中丢失报文的序号;处理模块,设置为对所述丢失报文的序号进行去重操作,得到丢失报文序号集合;发送模块,设置为将所述丢失报文序号集合发送给所述第二设备;所述第二设备,设置为向所述第一设备发送原始报文,以及接收所述丢失报文序号集合。According to still another embodiment of the present disclosure, a message transmission system is provided, including one or more first devices, a second device, and a filtering device, wherein the first device is configured to receive the second device The original packet, and the packet loss detection packet is sent to the filtering device when the packet loss detection is performed on the original packet, and the filtering device includes: a receiving module, configured to receive The sequence number of the lost packet sent by the first device, where the sequence number of the lost packet is used to indicate the sequence number of the packet lost in the packet sent by the second device to the first device; The sequence of the lost message is subjected to a deduplication operation to obtain a lost message sequence number set; the sending module is configured to send the lost message sequence number set to the second device; and the second device is set to The first device sends the original message, and receives the lost message sequence number set.
根据本公开的又一个实施例,还提供了一种存储介质,所述存储介质 中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。According to still another embodiment of the present disclosure, there is also provided a storage medium having stored therein a computer program, wherein the computer program is configured to execute the steps of any one of the method embodiments described above at runtime.
根据本公开的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。According to still another embodiment of the present disclosure, there is also provided an electronic device comprising a memory and a processor, wherein the memory stores a computer program, the processor being configured to execute the computer program to perform any of the above The steps in the method embodiments.
通过本公开,通过对丢失报文的序号进行去重操作,减少相同丢失报文的序号的个数然后发送给第二设备,避免在第二设备上形成消息风暴,解决了相关技术中处理丢失报文时间太长的技术问题,减少了第二设备对丢失报文的序号的筛选工作量,进而提高了第二设备针对丢失报文发送修复报文的效率,降低了第一设备修复丢失报文的时延。Through the disclosure, the de-duplication operation is performed on the sequence number of the lost packet, and the number of the sequence number of the same lost packet is reduced and then sent to the second device to avoid forming a message storm on the second device, which solves the problem of processing loss in the related art. The technical problem that the packet time is too long reduces the filtering workload of the second device for the serial number of the lost packet, thereby improving the efficiency of the second device for sending the repair packet for the lost packet, and reducing the loss of the first device repair report. The delay of the text.
此处所说明的附图用来提供对本公开的进一步理解,构成本申请的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:The drawings described herein are provided to provide a further understanding of the present disclosure, which is a part of the present disclosure, and the description of the present disclosure and the description thereof are not intended to limit the disclosure. In the drawing:
图1是本公开相关技术中NORM可靠组播传输机制的示意图;1 is a schematic diagram of a NORM reliable multicast transmission mechanism in the related art of the present disclosure;
图2是根据本公开实施例的报文传输方法的流程图;2 is a flowchart of a message transmission method according to an embodiment of the present disclosure;
图3是根据本公开实施例的报文传输装置的结构框图;FIG. 3 is a structural block diagram of a message transmission apparatus according to an embodiment of the present disclosure; FIG.
图4是根据本公开实施例的报文传输系统的结构框图;4 is a structural block diagram of a message transmission system according to an embodiment of the present disclosure;
图5是本实施例的可靠组播通讯的示意图;Figure 5 is a schematic diagram of reliable multicast communication in the embodiment;
图6是本实施例的一种可靠组播通讯的系统的工作原理图;6 is a working principle diagram of a system for reliable multicast communication according to the embodiment;
图7是本实施例的一种可靠组播通讯的实现方法流程图;7 is a flowchart of a method for implementing reliable multicast communication according to this embodiment;
图8是本实施例的一种可靠组播NACK过滤装置内部结构图;FIG. 8 is a block diagram showing the internal structure of a reliable multicast NACK filtering apparatus according to this embodiment; FIG.
图9是实施场景一的可靠组播消息分发的系统结构图;9 is a system structural diagram of implementing reliable multicast message distribution in scenario one;
图10是实施场景一的可靠组播消息分发的流程图;10 is a flow chart of implementing reliable multicast message distribution in scenario one;
图11是本实施场景二的基于NORM的OTT直播业务系统结构图;11 is a structural diagram of a NORM-based OTT live broadcast service system in scenario 2 of the present embodiment;
图12是本实施场景二的基于NORM的OTT直播内容分发的流程图;12 is a flowchart of NORM-based OTT live content distribution in scenario 2 of the present embodiment;
图13是本实施场景三的基于NORM的IPTV直播系统结构图;13 is a structural diagram of a NORM-based IPTV live broadcast system in the third embodiment of the present invention;
图14是本实施场景三的基于NORM的IPTV直播业务流程图;14 is a flowchart of a NORM-based IPTV live broadcast service in the third scenario of the present implementation;
图15是本实施场景四的多级NORM过滤装置系统结构图;15 is a structural diagram of a multi-stage NORM filtering device system of the fourth embodiment of the present invention;
图16是本实施场景四的多级NORM过滤装置消息业务流程图。16 is a flow chart of message processing of a multi-level NORM filtering device in scenario 4 of the present embodiment.
下文中将参考附图并结合实施例来详细说明本公开。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。The present disclosure will be described in detail below with reference to the drawings in conjunction with the embodiments. It should be noted that the embodiments in the present application and the features in the embodiments may be combined with each other without conflict.
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。It is to be understood that the terms "first", "second", and the like in the specification and claims of the present disclosure are used to distinguish similar objects, and are not necessarily used to describe a particular order or order.
实施例1Example 1
本申请实施例可以运行的网络架构包括:一个或多个第一设备、第二设备,其中,第一设备与第二设备之间进行交互,第二设备向第一设备发送业务报文或原始报文,第一设备接收到业务报文或原始报文后,检测在传输过程中的丢失报文,或者是未接收到的丢失报文,向第二设备发起反馈过程。The network architecture that can be run by the embodiment of the present application includes: one or more first devices, and a second device, where the first device interacts with the second device, and the second device sends a service packet or original to the first device. After receiving the service packet or the original packet, the first device detects the lost packet in the transmission process or the lost packet that is not received, and initiates a feedback process to the second device.
在本实施例中提供了一种运行于上述网络架构的报文传输方法,图2是根据本公开实施例的报文传输方法的流程图,如图2所示,该流程包括如下步骤:In this embodiment, a message transmission method running on the network architecture is provided. FIG. 2 is a flowchart of a message transmission method according to an embodiment of the present disclosure. As shown in FIG. 2, the process includes the following steps:
步骤S202,接收第一设备发送的丢失报文的序号,其中,丢失报文的序号用于指示在第二设备发送给第一设备的报文中丢失报文的序号;Step S202: Receive a sequence number of the lost packet sent by the first device, where the sequence number of the lost packet is used to indicate the sequence number of the lost packet in the packet sent by the second device to the first device.
步骤S204,对丢失报文的序号进行去重操作,得到丢失报文序号集合;Step S204: Perform a deduplication operation on the sequence number of the lost message to obtain a lost message sequence number set.
步骤S206,将丢失报文序号集合发送给第二设备。Step S206: Send the lost message sequence number set to the second device.
通过上述步骤,通过对丢失报文的序号进行去重操作,减少相同丢失报文的序号的个数然后发送给第二设备,避免在第二设备上形成消息风暴,解决了相关技术中处理丢失报文时间太长的技术问题,减少了第二设备对丢失报文的序号的筛选工作量,进而提高了第二设备针对丢失报文发送修复报文的效率,降低了第一设备修复丢失报文的时延。Through the above steps, the de-duplication operation is performed on the sequence number of the lost packet, and the number of the sequence number of the same lost packet is reduced and then sent to the second device to avoid forming a message storm on the second device, which solves the problem of processing loss in the related art. The technical problem that the packet time is too long reduces the filtering workload of the second device for the serial number of the lost packet, thereby improving the efficiency of the second device for sending the repair packet for the lost packet, and reducing the loss of the first device repair report. The delay of the text.
可选地,上述步骤的执行主体可以为服务器,功能模块等,可以设置在第一设备与第二设备的通信链路之间,或者是集成在第二设备上,但不限于此。去重操作可以删除重复的丢失报文的序号,去重操作后的序号总数少于去重操作前的序号总数,如去重操作前序号1,序号2,序号3分别为5,2,3个,去重操作后,序号1,序号2,序号3可能分别只存在2,1,2个,总数较之前的10个少了5个,在一个特例中,去重操作后,序号1,序号2,序号3可能分别只存在1,1,1个,不管怎样去重,序号1,序号2,序号3都至少存在一个。Optionally, the execution body of the foregoing steps may be a server, a function module, or the like, and may be disposed between the communication link of the first device and the second device, or integrated on the second device, but is not limited thereto. The de-duplication operation can delete the sequence number of the duplicate lost message. The total number of the sequence number after the re-operation is less than the total number of the sequence number before the de-duplication operation. For example, before the de-duplication operation, the sequence number 1, the sequence number 2, and the sequence number 3 are respectively 5, 2, and 3 After de-duplication operation, the serial number 1, the serial number 2, and the serial number 3 may only exist 2, 1, and 2 respectively, and the total number is 5 less than the previous 10. In a special case, after the de-duplication operation, the serial number 1, No. 2, No. 3 may exist only 1, 1, 1 respectively, no matter how heavy, No. 1, No. 2, No. 3 have at least one.
在本实施例中,丢失报文包括:在第二设备发送报文后,第一设备在预定时间内未接收到的报文。当然也可以是在解码失败需要重新接收的报文。In this embodiment, the lost message includes: a message that is not received by the first device within a predetermined time after the second device sends the message. Of course, it may also be a message that needs to be re-received in the case of decoding failure.
可选地,第二设备根据丢失报文序号集合所指示的丢包报文,向第一设备发送修复报文,其中修复报文的序号来自丢失报文序号集合中其中一个。Optionally, the second device sends the repair packet to the first device according to the packet loss message indicated by the lost packet sequence number, where the sequence number of the repair packet is from one of the lost packet sequence numbers.
可选的,在将丢失报文序号集合发送给第二设备之后,还包括:第二设备向第一设备发送修复报文,其中,修复报文为丢失报文序号集合中的序号所指示的报文。第二设备向第一设备发送原始报文,其中原始报文包含不重复的序号,第一设备根据原始报文的序号检测丢包确定丢失报文,第一设备发送的丢包报文的序号,即为第一设备检测到的丢包的原始报文的序号。Optionally, after the sending of the lost packet sequence number to the second device, the method further includes: the second device sending the repair message to the first device, where the repair message is indicated by the sequence number in the lost message sequence set. Message. The second device sends the original packet to the first device, where the original packet includes a sequence number that is not repeated, and the first device detects the lost packet according to the sequence number of the original packet, and the sequence number of the packet loss packet sent by the first device. That is, the sequence number of the original packet of the packet loss detected by the first device.
可选的,接收第一设备发送的丢失报文的序号包括:接收来自一个或多个第一设备发送的NACK报文,其中,NACK报文携带丢失报文的序 号。Optionally, receiving the sequence number of the lost packet sent by the first device includes: receiving a NACK packet sent by the one or more first devices, where the NACK packet carries the sequence number of the lost packet.
可选地,接收第一设备发送的丢失报文的序号包括:接收第一设备发送的NACK报文,其中,NACK报文携带丢失报文的序号。在将丢失报文序号集合发送给第二设备时,丢失报文序号集合中的丢失报文序号也可以是携带在NACK报文集合的NACK报文中。Optionally, receiving the sequence number of the lost packet sent by the first device includes: receiving the NACK packet sent by the first device, where the NACK packet carries the sequence number of the lost packet. When the lost packet sequence number is sent to the second device, the lost packet sequence number in the lost packet sequence number may also be carried in the NACK packet of the NACK packet set.
可选地,NACK报文包括:基于可靠组播通讯协议NORM的NACK报文。Optionally, the NACK packet includes: a NACK packet based on a reliable multicast communication protocol NORM.
可选地,第一设备与第二设备之间传输的报文可以是组播报文或单播报文,丢失报文包括以下至少之一:组播报文,单播报文。Optionally, the packet transmitted between the first device and the second device may be a multicast packet or a unicast packet, and the lost packet includes at least one of the following: a multicast packet and a unicast packet.
可选地,对丢失报文的序号进行去重操作,得到丢失报文序号集合,包括以下两种策略:Optionally, the de-duplication operation is performed on the sequence number of the lost packet, and the lost message sequence number set is obtained, including the following two strategies:
在预定时间周期内接收的全部丢失报文的序号中,将存在重复的序号进行去重,不重复的序号保留,得到丢失报文序号集合;In the sequence numbers of all the lost packets received in the predetermined time period, there will be duplicate sequence numbers for deduplication, and the non-repeated sequence numbers are reserved, and the lost message sequence number sets are obtained;
根据在预定时间内已经发送过的历史丢包序号列表,在接收的全部丢失报文的序号中,选择序号不包括在历史丢包序号列表中的丢失报文的序号,得到丢失报文序号集合。According to the historical packet loss sequence number list that has been sent within the predetermined time, in the sequence number of all the lost packets received, the sequence number of the lost packet not included in the history packet loss sequence number is selected, and the lost message sequence number set is obtained. .
可选地,在将丢失报文序号集合发送给第二设备包括以下之一:将所述丢失报文序号集合发送给所述第二设备,然后接收第二设备反馈的ACK信息,其中,ACK信息用于指示第二设备接收到丢失报文序号集合;根据预设重发次数将丢失报文序号集合发送给第二设备。如可以发送三次,保证第二设备可以接收到丢失报文序号集合,第二设备在接收到丢失报文序号集合后,也可以进行去重操作。Optionally, the sending the lost message sequence number set to the second device includes one of: sending the lost message sequence number set to the second device, and then receiving the ACK information fed back by the second device, where, ACK The information is used to indicate that the second device receives the lost message sequence number set; and sends the lost message sequence number set to the second device according to the preset retransmission times. If the third device can receive the lost message sequence number set, the second device can perform the deduplication operation after receiving the lost message sequence number set.
可选地,接收第一设备发送的丢失报文的序号包括:接收第一设备在对应的第一区域发送的丢失报文的序号。可以按照第一设备的位置划分多个区域,在每个区域上增加一个过滤装置进行过滤去重,每个过滤装置负责接收区域内第一设备的丢失报文的序号。所述丢失报文序号集合可以携带在基于NORM的NACK报文中。Optionally, receiving the sequence number of the lost packet sent by the first device includes: receiving a sequence number of the lost packet sent by the first device in the corresponding first region. A plurality of areas may be divided according to the location of the first device, and a filtering device is added to each area for filtering and deduplication, and each filtering device is responsible for receiving the sequence number of the lost message of the first device in the area. The lost message sequence number set may be carried in a NORM-based NACK message.
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本公开各个实施例所述的方法。Through the description of the above embodiments, those skilled in the art can clearly understand that the method according to the above embodiment can be implemented by means of software plus a necessary general hardware platform, and of course, by hardware, but in many cases, the former is A better implementation. Based on such understanding, portions of the technical solutions of the present disclosure that contribute substantially or to the prior art may be embodied in the form of a software product stored in a storage medium (eg, ROM/RAM, disk, The optical disc includes a number of instructions for causing a terminal device (which may be a cell phone, a computer, a server, or a network device, etc.) to perform the methods described in various embodiments of the present disclosure.
实施例2Example 2
在本实施例中还提供了一种报文传输装置、系统,用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。In the embodiment, a message transmission device and a system are provided to implement the foregoing embodiments and preferred embodiments, which are not described again. As used below, the term "module" may implement a combination of software and/or hardware of a predetermined function. Although the apparatus described in the following embodiments is preferably implemented in software, hardware, or a combination of software and hardware, is also possible and contemplated.
图3是根据本公开实施例的报文传输装置的结构框图,如图3所示,该装置包括:FIG. 3 is a structural block diagram of a message transmission apparatus according to an embodiment of the present disclosure. As shown in FIG. 3, the apparatus includes:
接收模块30,设置为接收第一设备发送的丢失报文的序号,其中,丢失报文的序号用于指示在第二设备发送给第一设备的报文中丢失报文的序号;The receiving module 30 is configured to receive the sequence number of the lost message sent by the first device, where the sequence number of the lost message is used to indicate the sequence number of the lost message in the message sent by the second device to the first device;
处理模块32,设置为对丢失报文的序号进行去重操作,得到丢失报文序号集合;The processing module 32 is configured to perform a deduplication operation on the sequence number of the lost message to obtain a lost message sequence number set.
发送模块34,设置为将丢失报文序号集合发送给第二设备。The sending module 34 is configured to send the lost message sequence number set to the second device.
可选的,接收模块包括:接收单元,设置为接收来自一个或多个第一设备发送的NACK报文,其中,所述NACK报文携带所述丢失报文的序号。Optionally, the receiving module includes: a receiving unit, configured to receive a NACK message sent by the one or more first devices, where the NACK message carries the sequence number of the lost message.
可选的,处理模块包括以下之一:第一处理单元,设置为在预定时间周期内接收的全部丢失报文的序号中,将存在重复的序号进行去重,得到 丢失报文序号集合;第二处理单元,设置为根据在预定时间内已经发送过的历史丢包序号列表,在接收的全部丢失报文的序号中,选择序号不包括在历史丢包序号列表中的丢失报文的序号,得到丢失报文序号集合。Optionally, the processing module includes one of the following: the first processing unit is configured to de-duplicate the repeated sequence numbers in the sequence numbers of all the lost messages received in the predetermined time period, to obtain the lost message sequence number set; The second processing unit is configured to select, according to the historical packet loss sequence number list that has been sent within the predetermined time, the sequence number of the lost packet that is not included in the historical packet loss sequence number in the sequence number of all the lost packets received. Get the lost message sequence number set.
图4是根据本公开实施例的报文传输系统的结构框图,如图4所示,包括:第一设备40、过滤设备42、第二设备44。FIG. 4 is a structural block diagram of a message transmission system according to an embodiment of the present disclosure. As shown in FIG. 4, the first device 40 includes a first device 40, a filtering device 42, and a second device 44.
第一设备40,设置为接收第二设备发送的原始报文,以及在对原始报文进行丢包检测确定存在丢失报文时,将丢失报文的序号发送给过滤设备;The first device 40 is configured to receive the original packet sent by the second device, and send the sequence number of the lost packet to the filtering device when performing packet loss detection on the original packet to determine that there is a lost packet;
第二设备44,设置为向第一设备发送原始报文,以及接收丢失报文序号集合;The second device 44 is configured to send the original message to the first device, and receive the lost message sequence number set;
过滤设备42包括:接收模块30,设置为接收第一设备发送的丢失报文的序号,其中,丢失报文的序号用于指示在第二设备发送给第一设备的报文中丢失报文的序号;处理模块32,设置为对丢失报文的序号进行去重操作,得到丢失报文序号集合;发送模块34,设置为将丢失报文序号集合发送给第二设备。The filtering device 42 includes: a receiving module 30, configured to receive a sequence number of the lost packet sent by the first device, where the sequence number of the lost packet is used to indicate that the packet is lost in the packet sent by the second device to the first device The processing module 32 is configured to perform a deduplication operation on the sequence number of the lost message to obtain a lost message sequence number set, and the sending module 34 is configured to send the lost message sequence number set to the second device.
可选的,第二设备还包括:重发模块,设置为向第一设备重发修复报文,其中,修复报文为丢失报文序号集合中的序号所指示的报文。Optionally, the second device further includes: a retransmission module, configured to resend the repair message to the first device, where the repair message is a message indicated by the sequence number in the lost message sequence number set.
可选的,第一设备还包括:纠错模块,设置为接收修复报文,并使用修复报文对数据进行纠错还原处理,以得到完整的原始报文。Optionally, the first device further includes: an error correction module, configured to receive the repair message, and perform error correction and restoration processing on the data by using the repair message to obtain a complete original message.
可选的,重发模块还包括:第一重发单元,设置为确定一个或多个第一设备中每个第一设备所丢失的报文;将修复报文中与所丢失的报文相同的报文发送给对应的第一设备;第二重发单元,设置为将修复报文发送给所有的第一设备。仅发送每个第一设备所丢失的报文,目标报文在第一设备上不用再次筛选,可以减小第一设备的工作量。将所有修复报文都发送给所有第一设备,第一设备根据需要在选择修改报文,可以减小第二设备的工作量,因为不用查询每个修复报文所对应的第一设备。Optionally, the retransmission module further includes: a first retransmission unit, configured to determine a message that is lost by each of the one or more first devices; and the repair message is the same as the lost message The message is sent to the corresponding first device; the second resending unit is configured to send the repair message to all the first devices. Only the packets lost by each first device are sent, and the target packets are not filtered again on the first device, which can reduce the workload of the first device. All the repaired packets are sent to all the first devices. The first device can select the modified packets as needed to reduce the workload of the second device, because the first device corresponding to each repair packet is not queried.
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器 中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。It should be noted that each of the above modules may be implemented by software or hardware. For the latter, the foregoing may be implemented by, but not limited to, the foregoing modules are all located in the same processor; or, the above modules are in any combination. The forms are located in different processors.
实施例3Example 3
本实施例是本公开的可选实施例,用于结合具体的场景示例对本申请进行详细说明:This embodiment is an optional embodiment of the present disclosure, and is used to describe the application in detail in conjunction with a specific scenario example:
图5是本实施例的可靠组播通讯的示意图,如附图5,通过在发送端与接收端之间增加NACK过滤装置来解决的延迟和性能问题,使得能够更好地应用于海量用户的业务场景。本实施例通过在发送端与接收端之间设立过滤装置,可以按照接收端的位置划分多个区域,在每个区域上增加一个NACK报文过滤装置,每个过滤装置负责接收区域内终端装置的NACK报文;接收端接收发送端的组播数据报文,根据组播数据报文的序号检测丢包,如果有丢包,则给该区域的过滤装置发送NACK报文,携带丢失数据包的序号;过滤装置收集该区域内的终端的NACK报文,根据NACK报文中的携带的序号进行去重,得到本区域的接收端丢包的报文序号,并向发送端发送少量的NACK报文;发送端收集不同区域的过滤装置发送的少量NACK报文,然后给所有的接收端重传丢失的报文。FIG. 5 is a schematic diagram of reliable multicast communication according to the embodiment. As shown in FIG. 5, the delay and performance problems solved by adding a NACK filtering device between the transmitting end and the receiving end enable better application to a large number of users. Business scene. In this embodiment, by setting up a filtering device between the transmitting end and the receiving end, a plurality of areas can be divided according to the position of the receiving end, and a NACK message filtering device is added to each area, and each filtering device is responsible for receiving the terminal device in the area. The NACK packet is received by the receiving end. The receiving end receives the multicast data packet, and detects the packet loss according to the sequence number of the multicast data packet. If there is a packet loss, the device sends a NACK packet to the filtering device in the area, carrying the sequence number of the lost data packet. The filtering device collects the NACK packet of the terminal in the area, performs deduplication according to the carried sequence number in the NACK packet, obtains the packet sequence number of the packet loss at the receiving end of the local area, and sends a small number of NACK packets to the transmitting end. The sender collects a small number of NACK packets sent by filtering devices in different areas, and then retransmits the lost packets to all receiving ends.
本实施例提供了一种可靠组播通讯系统,如图6,图6是本实施例的一种可靠组播通讯的系统的工作原理图,包含发送端、一个或者多个过滤节点、多个数据设备、多个接收端。This embodiment provides a reliable multicast communication system, as shown in FIG. 6. FIG. 6 is a working principle diagram of a system for reliable multicast communication according to the embodiment, including a sender, one or more filter nodes, and multiple Data device, multiple receivers.
发送端:可靠组播的发送源,可以是消息服务器、文件服务器、视频源站、网站服务器、中心控制系统等等。发送端需要支持NORM协议,可以创建NORM群组会话,能够将消息、文件和实时流等数据封装成IP/UDP/RTP等原始数据和FEC纠错数据。发送端能够给每个原始数据、FEC纠错数据生成报文序号,并且顺序将报文以组播方式发送给接收端。发送端支持接收过滤节点发送的NACK报文,并且在一定的时间窗内,收集不同区域的NACK报文,能够按照NACK报文中的丢包报文的序号进行去重,获得接收端丢包报文的序号列表,最后,发送端可以根据这个丢包报文的序号列表,将接收端丢失的报文重新在同一个NORM群组会 话中发送。可选地,根据发送端的类型的不同,发送还支持发送NORM_CMD(包括但不限于CC、EOT、SQUELCH、REPAIR_ADV、FLUSH,参考RFC 5740)。本实施例中描述的NORM协议是以RFC 5740为例说明的,而在实际的应用中,NORM规范会更新,本实施例提出的装置、方法和系统同样是适用于RFC NORM协议的后续版本的,基于NORM新的版本使用本实施例,同样属于权利保护范围之内。Transmitter: The source of reliable multicast, which can be a message server, a file server, a video source station, a web server, a central control system, and so on. The sender needs to support the NORM protocol, and can create a NORM group session, which can encapsulate data such as messages, files, and real-time streams into original data such as IP/UDP/RTP and FEC error correction data. The transmitting end can generate a message sequence number for each original data and FEC error correction data, and sequentially send the message to the receiving end in a multicast manner. The sender supports receiving the NACK packet sent by the filtering node, and collects the NACK packet in the different area in a certain time window, and can decrement according to the sequence number of the packet loss packet in the NACK packet, and obtain the packet loss at the receiving end. The sequence number of the packet. Finally, the sender can resend the packet lost at the receiving end in the same NORM group session according to the sequence number list of the packet loss packet. Optionally, depending on the type of the sender, the transmission also supports the transmission of NORM_CMD (including but not limited to CC, EOT, SQUELCH, REPAIR_ADV, FLUSH, reference RFC 5740). The NORM protocol described in this embodiment is exemplified by RFC 5740. In actual applications, the NORM specification is updated. The apparatus, method and system proposed in this embodiment are also applicable to subsequent versions of the RFC NORM protocol. The use of this embodiment based on the new version of NORM is also within the scope of the rights protection.
过滤装置:用来实现对接收端的NACK请求的收集和过滤。过滤装置在区域内接收本区域所有接收端的单播或者组播NACK报文,并且可以采用时间窗聚集过滤模式以及缓存转发模式,能够对NACK报文中的丢包报文序号进行去重,得到本区域所有接收端的丢失报文序号集合,并且可以将丢失的报文序号放在新的NACK报文中发送给发送端。过滤装置对于接收到的多个NACK报文中包含的每个丢包报文序号,可以采用一定的冗余策略,通过一个或者多个NACK报文发送给发送端,但每个丢包报文序号,过滤装置发给发送端的次数要小于接收的次数。可选地,过滤装置还可以将的NACK报文进行单播到组播或者是组播到单播的转换之后,再发送给发送端。过滤装置的形态可以是数据设备上的软件模块,也可以是消息代理服务器、文件分发服务器、实时流中继服务器、CDN节点、数据设备上的特殊模块、SDN控制器+SDN转发设备等等,在部署上可以是一级部署:按照地域位置,将不同地域位置的接收端划分成不同区域,每个区域部署一个;或者是多级部署,即根据接收端的数量,数据设备组网,在网络的中心和边缘都部署,形成级联。Filtering device: used to collect and filter NACK requests from the receiving end. The filtering device receives the unicast or multicast NACK packet of all the receiving ends in the area in the area, and can use the time window aggregation filtering mode and the buffer forwarding mode to decrement the number of the lost packet in the NACK packet. The number of lost message sequences of all the receiving ends in the area, and the lost message sequence number can be sent to the sending end in a new NACK message. The filtering device may use a certain redundancy policy to send one or more NACK packets to the sending end, but each packet loss packet, for each received packet number of the received NACK packet. The serial number, the number of times the filtering device sends to the sending end is less than the number of times received. Optionally, the filtering device may perform the unicast to multicast or the multicast to unicast conversion, and then send the NACK packet to the sending end. The filtering device may be in the form of a software module on the data device, or may be a message proxy server, a file distribution server, a real-time stream relay server, a CDN node, a special module on the data device, an SDN controller + an SDN forwarding device, and the like. In the deployment, it can be a level 1 deployment: according to the geographical location, the receiving end of different geographical locations is divided into different areas, one for each area; or multiple levels of deployment, that is, according to the number of receiving ends, data equipment networking, in the network Both the center and the edge are deployed to form a cascade.
其中,冗余策略之一,在过滤装置与上级实体之间扩展NORM信令,具体可以参考NORM协议NORM_INFO消息,对于过滤装置发送的每个NACK报文,再返回一个ACK消息,过滤装置对过滤之后的丢包报文序号,发送NACK报文之后,确认上级实体反馈NACK报文的ACK之后,才不再重传向上级实体重复发送包含该丢包报文序号的NACK报文,否则重发N(可配置)次。冗余策略之二,过滤装置设置一定的重发次数M(可配置),对于经过过滤去重之后的丢包报文序号,每个序号在过滤装 置发送给上级实体的NACK报文中出现M次。One of the redundancy policies, the NORM signaling is extended between the filtering device and the upper entity, and the NORM_INFO message can be specifically referred to, and an ACK message is returned for each NACK message sent by the filtering device, and the filtering device filters the After the NACK message is sent, the ACK of the NACK message is sent to the higher-level entity. After the ACK is acknowledged, the higher-level entity does not retransmit the NACK message containing the packet loss sequence number. Otherwise, the NACK message is retransmitted. N (configurable) times. In the second redundancy policy, the filtering device sets a certain number of retransmissions M (configurable). For the packet loss message number after filtering and deduplication, each sequence number appears in the NACK message sent by the filtering device to the upper entity. Times.
数据设备:分成2种,组播复制装置,以及组播路由网络。组播复制装置可以分成多级部署,与发送端相连的组播复制装置主要是用来发送端发出的组播报文,并且复制成多份,发送给下级组播复制装置,直到将组播报文发送到所有的接收端。组播路由网络为支持转发单播和组播报文的交换机和路由器组成的网络,在实际应用中,可以根据需要,在发送端、过滤装置和接收端之间部署多个甚至是多级数据设备。Data equipment: divided into two types, multicast replication devices, and multicast routing networks. The multicast replication device can be deployed in multiple stages. The multicast replication device connected to the sender is mainly used to send multicast packets sent by the sender, and is copied into multiple copies and sent to the lower-level multicast replication device until multicast is enabled. The message is sent to all receivers. A multicast routing network is a network of switches and routers that support unicast and multicast packets. In actual applications, multiple or even multiple levels of data can be deployed between the sending end, the filtering device, and the receiving end. device.
接收端:分散在网络各个区域,支持使用NORM协议接收原始数据以及FEC纠错数据的组播报文。在接收来自发送端的NORM组播数据报文时,可以按照组播数据包中的序号,来检测是否有数据报文丢失,如果有数据报文丢失的时候,接收端可以向过滤节点发送NACK报文,并在NACK报文中包含所丢包报文的序号列表;接收端可以接收发送端发送的重传修复报文,并且可以使用修复报文进行数据还原。可选地,接收端还可以接收发送端发送的NORM_CMD(包括但不限于CC、EOT、SQUELCH、REPAIR_ADV、FLUSH,参考RFC 5740)并且做响应处理。接收端在能够对NORM传输的三种对象(消息、文件以及实时流)进行对应的业务呈现,业务呈现的方式包括大不限于消息展示、文件下载、音视频播放等等。接收端的形态可以是支持NORM标准协议的消息客户端、文件客户端、代理服务器、网络设备、电脑、手机等等。Receiver: Distributed in various areas of the network, supporting multicast packets that use the NORM protocol to receive raw data and FEC error correction data. When receiving the NORM multicast data packet from the sending end, the receiving end may detect whether there is a data packet loss according to the sequence number in the multicast data packet. If the data packet is lost, the receiving end may send a NACK report to the filtering node. And the NACK message includes a sequence number list of the packet loss packet; the receiving end can receive the retransmission repair message sent by the sender, and can use the repair message to perform data restoration. Optionally, the receiving end may further receive the NORM_CMD sent by the sending end (including but not limited to CC, EOT, SQUELCH, REPAIR_ADV, FLUSH, and reference RFC 5740) and perform response processing. The receiving end performs corresponding service presentation on three objects (messages, files, and real-time streams) that can be transmitted to the NORM, and the manner of service presentation includes not limited to message display, file downloading, audio and video playback, and the like. The form of the receiving end may be a message client, a file client, a proxy server, a network device, a computer, a mobile phone, and the like that support the NORM standard protocol.
本实施例提供了一种可靠组播通讯的实现方法,图7是本实施例的一种可靠组播通讯的实现方法流程图,如附图7,包括:This embodiment provides a method for implementing reliable multicast communication. FIG. 7 is a flowchart of a method for implementing reliable multicast communication according to the embodiment. As shown in FIG. 7, the method includes:
发送端初始化配置NORM群组会话的组播地址和端口:The sender initializes the multicast address and port configured for the NORM group session:
发送端创建NORM群组会话,其中群组会话使用步骤1中定义的组播地址和端口;The sender creates a NORM group session, where the group session uses the multicast address and port defined in step 1;
多个接收端按照以下过程加入群组通信会话:Multiple receivers join the group communication session as follows:
接收端初始化配置NORM群组会话的组播地址和端口,其中组播地址和端口与发送端创建的群组会话的组播地址和端口相同;The receiving end initializes the multicast address and port of the NORM group session, where the multicast address and port are the same as the multicast address and port of the group session created by the sender;
可选地,接收端初始化配置本区域的过滤装置地址信息,用于后续向此过滤装置发送单播NORM_NACK报文;Optionally, the receiving end initializes the filtering device address information of the local area, and is configured to send a unicast NORM_NACK message to the filtering device.
接收端根据步骤3中配置的组播地址和端口,加入NORM群组会话,并且开始在会话中接收NORM组播数据报文NORM_DATA,以及指令NORM_CMD(包括但不限于CC、EOT、SQUELCH、REPAIR_ADV、FLUSH);The receiving end joins the NORM group session according to the multicast address and port configured in step 3, and starts to receive the NORM multicast data message NORM_DATA in the session, and the instruction NORM_CMD (including but not limited to CC, EOT, SQUELCH, REPAIR_ADV, FLUSH);
可选地,发送端可以周期性地在群组会话中以组播发送NORM_CMD(FLUSH)指令,通知所有的接收端,发送准备接收NACK报文;Optionally, the sending end may periodically send a NORM_CMD (FLUSH) command in the group session to notify all receiving ends to send a NACK message.
NORM组播数据包发送过程包括:The NORM multicast packet sending process includes:
发送端在上述群组会话中,将需要传输的数据使用UDP封装原始数据报文,可选地,发送端还根据冗余策略,将需要传输的数据进行FEC编码,按照一定的顺序,生成NORM数据包序号,并且按照序号发送NORM组播数据报文,报文的类型为NORM_DATA,根据NORM协议的定义,可以是数据、文件或者实时流,每个NORM的数据包包含对应的序号;发送端在发送NORM组播数据报文的时候,原始数据,以及FEC纠错数据,可以是在一个NORM_DATA消息中,也可以分成不同的NORM_DATA消息。In the group session, the sending end uses the UDP to encapsulate the original data packet, and optionally, the sending end further performs FEC encoding on the data to be transmitted according to the redundancy policy, and generates NORM according to a certain order. The serial number of the data packet, and the NORM multicast data packet is sent according to the serial number. The type of the message is NORM_DATA. According to the definition of the NORM protocol, the data may be a data, a file, or a real-time stream. Each NORM data packet includes a corresponding serial number; When the NORM multicast data message is sent, the original data, and the FEC error correction data, may be in a NORM_DATA message or may be divided into different NORM_DATA messages.
接收端开始接收NORM组播数据报文,接收端根据NORM组播数据报文的序号进行检测丢包,组播数据报文序号具体参考RFC 5740中NORM_DATA消息格式定义;The receiving end starts to receive the NORM multicast data packet, and the receiving end detects the packet loss according to the sequence number of the NORM multicast data packet. The multicast data packet sequence number is specifically defined by the NORM_DATA message format in RFC 5740;
接收端对于丢失的组播数据报文,生成NORM_NACK报文,NACK报文中包含丢失组播数据报文的序号,接收端向本区域内的过滤装置发送NORM NACK报文,其中NACK报文可以单播方式(使用步骤4中初始化的过滤装置地址),也可以是组播方式(使用上述步骤中初始化的NORM组播会话地址),丢包报文的序号放在NORM_NACK的载荷中,具体参考RFC 5740 NORM_NACK的定义。The receiving end generates a NORM_NACK packet for the lost multicast data packet, and the NACK packet contains the sequence number of the lost multicast data packet, and the receiving end sends a NORM NACK packet to the filtering device in the local area, where the NACK packet can be The unicast mode (using the filtering device address initialized in step 4) may also be the multicast mode (using the NORM multicast session address initialized in the above step), and the sequence number of the packet loss message is placed in the payload of NORM_NACK. RFC 5740 NORM_NACK definition.
过滤装置NACK过滤、去重、转换和转发过程包括:The filtering device NACK filtering, deduplication, conversion and forwarding processes include:
过滤装置在长度为N的时间窗段内,接收本区域不同接收端的NACK报文;该步骤中,N的特点是,比较小;The filtering device receives the NACK packet of different receiving ends in the local area in the time window of length N; in this step, the characteristic of N is relatively small;
过滤装置根据不同的接收端发送的NACK报文的丢包报文的序号列表,进行去重;The filtering device performs deduplication according to the serial number list of the packet loss packets of the NACK packet sent by the different receiving end;
过滤装置将去重后的NACK报文,以单播或者组播的方式转发给发送端。该步骤中,NACK报文序号列表,为在该时间窗段内,本区域所有接收端的NACK报文中序号列表的并集的子集。The filtering device forwards the de-asserted NACK packet to the sender in unicast or multicast mode. In this step, the NACK message sequence number list is a subset of the union of the sequence number lists in the NACK messages of all receiving ends in the local time window.
发送端发送修复报文过程包括:The process of sending the repair message by the sender includes:
发送端在长度为M的时间窗内,接收不同的过滤装置的NACK报文;The sender receives NACK packets of different filtering devices in a time window of length M;
发送端根据过滤装置发送的NACK报文中发送端丢失的组播数据报文的序号,进行去重,得到整个系统中所有接收端丢包报文的序号集合;The sending end performs deduplication according to the sequence number of the lost multicast data packet sent by the sending end in the NACK packet sent by the filtering device, and obtains a sequence number set of all the receiving packet loss packets in the entire system;
发送端对于接收端丢失的组播数据报文,修复报文的序号与NACK报文中携带的丢失组播报文的序号相同,格式与对应序号的组播数据报文格式相同,发送端在上述的群组会话中,重传修复报文,重传报文格式依旧是NORM_DATA,具体参考RFC 5740。The sender sends the multicast data packet that is lost at the receiving end. The sequence number of the repair packet is the same as the sequence number of the lost multicast packet carried in the NACK packet. The format of the multicast data packet is the same as that of the corresponding sequence number. In the above group session, the repair message is retransmitted, and the retransmission message format is still NORM_DATA. For details, refer to RFC 5740.
接收端进行数据修复过程包括:The data repair process at the receiving end includes:
接收端对于每个接收到的发送端发送的NORM_DATA修复报文,判断修复报文中的序号,是否是该接收端丢失的组播数据包。如果是,则使用该NORM_DATA修复报文进行数据还原;如果不是,则接收端丢弃该NORM_DATA修复报文;The receiving end determines, for each NORM_DATA repair message sent by the sending end, whether the serial number in the repairing message is a multicast data packet lost by the receiving end. If yes, the NORM_DATA repair message is used for data restoration; if not, the receiving end discards the NORM_DATA repair message;
接收端对于还原后的完整NORM组播数据报文进行其他处理,做业务呈现,业务呈现的形式包括但不限于,媒体播放、文件下载、消息分发。The receiving end performs other processing on the restored complete NORM multicast data packet, and performs service presentation. The form of the service presentation includes but is not limited to, media playback, file downloading, and message distribution.
对于有边界的数据,发送端、过滤装置、接收端反复执行图7中所示的步骤07~17,直到数据发送完成;For the boundaryd data, the transmitting end, the filtering device, and the receiving end repeatedly perform steps 07 to 17 shown in FIG. 7 until the data transmission is completed;
对于无边界的数据,比如实时流,可选地,接收端可以在任何时刻加 入群组会话,发送端可以一直不关闭会话,持续发送NORM数据包;对于有边界的数据,比如消息和文件,发送端和接收端之间,在数据发送完成之后,还包含一个会话关闭过程:For borderless data, such as real-time streaming, optionally, the receiving end can join the group session at any time, and the sending end can continuously send the NORM data packet without closing the session; for the bounded data, such as messages and files, Between the sender and the receiver, after the data is sent, it also includes a session closure process:
可选地,对于有边界的数据,发送端发送NORM_CMD(EOT)指令,通知所有的接收端,传输完成;Optionally, for the bordered data, the sending end sends a NORM_CMD (EOT) command to notify all the receiving ends, and the transmission is completed;
接收端对NORM_EOT指令进行响应,等待传输完成后,退出群组会话,返回NORM_ACK;The receiving end responds to the NORM_EOT command, waits for the transmission to complete, exits the group session, and returns NORM_ACK;
发送端等所有的客户端都返回NORM_ACK之后,关闭群组会话。至此,附图7的流程结束。After all clients, such as the sender, return NORM_ACK, close the group session. So far, the flow of Fig. 7 ends.
本实施例提供了一种NORM NACK过滤装置,图8是本实施例的一种可靠组播NACK过滤装置内部结构图,如图8所示,所述NORM过滤装置,包括:The present embodiment provides a NORM NACK filtering device, and FIG. 8 is an internal structure diagram of a reliable multicast NACK filtering device according to the embodiment. As shown in FIG. 8, the NORM filtering device includes:
发送模块101,将过滤以及转换之后的NACK报文发送给上级实体,发送的NACK报文的格式由过滤模块过滤去重得来;The sending module 101 sends the filtered and converted NACK message to the upper entity, and the format of the sent NACK message is filtered by the filtering module to obtain the same;
转换模块102,可选模块,设置为将经过过滤去重之后的NACK报文进行单播转组播、或者是组播转单播的处理;The conversion module 102, the optional module, is configured to perform unicast-to-multicast or multicast-to-unicast processing on the NACK packet after filtering and de-duxing;
过滤模块103,对于接收到的多个NACK报文,根据NACK报文的丢包报文的序号,进行过滤去重;The filtering module 103 performs filtering and de-duxing according to the sequence number of the packet loss packet of the NACK packet for the received multiple NACK packets;
接收模块104,设置为接收来自下级实体的单播或者组播NACK报文;The receiving module 104 is configured to receive a unicast or multicast NACK message from a subordinate entity;
使用本实施场景的方案,在各个区域都有部署NACK过滤装置,在大量的接收端检测到丢包时,接收端发送的NACK报文,先经过NACK过滤装置过滤和去重,在一个区域内,不同的终端都是丢失相同的数据包,因此区域内的NACK过滤装置处理过的NACK报文会大大减少,对于发送端来说,只是收集不同区域的NACK过滤装置发送的少量NACK报文,发送端不会接收到NACK报文风暴,发送端的性能处理要求大大降低。对发送端的NACK报文处理性能要求,更多的是与发送直接相关的过滤装置的数量,接收端的数量的增加不直接增加发送端的性能要求,采用本 实施例的系统、装置和方法后,在同一个NORM会话中,接收端的数量可以大大提升。由于NACK过滤装置只接收到该区域的接收端的NACK报文,数量可控,因此NACK过滤装置可以使用很短的时间窗来收集NACK报文,接收端的NACK随机退避时长可以很小,而发送端同样因为只接收到少量NACK报文,没有性能瓶颈,也可以使用很小的时间窗来收集NACK报文,因此发送端可以更快地发出修复报文,接收端则可以尽快地接收到NORM修复报文,从而降低接收端的延迟。With the solution of the present implementation scenario, a NACK filtering device is deployed in each area. When a large number of receiving ends detect packet loss, the NACK packet sent by the receiving end is filtered and de-duplicated by the NACK filtering device in one area. The different terminals are lost with the same data packet. Therefore, the NACK packet processed by the NACK filtering device in the area is greatly reduced. For the transmitting end, only a small number of NACK packets sent by the NACK filtering device in different areas are collected. The sender does not receive NACK packet storms, and the performance processing requirements of the sender are greatly reduced. The performance requirement of the NACK packet processing on the transmitting end is more the number of filtering devices directly related to the sending, and the increase in the number of the receiving end does not directly increase the performance requirement of the transmitting end. After adopting the system, device and method of the embodiment, In the same NORM session, the number of receivers can be greatly improved. Since the NACK filtering device only receives the NACK packet of the receiving end of the area, the number is controllable. Therefore, the NACK filtering device can collect the NACK packet by using a short time window, and the NACK random backoff duration of the receiving end can be small, and the transmitting end can be small. Similarly, because only a small number of NACK packets are received, there is no performance bottleneck, and a small time window can be used to collect NACK packets. Therefore, the sender can send repair messages faster, and the receiving end can receive NORM repair as soon as possible. The message, thereby reducing the delay at the receiving end.
本实施例可以从业务场景、部署位置上来展开成不同的应用场景。This embodiment can be deployed into different application scenarios from the service scenario and the deployment location.
业务场景上看,NORM有三种主要的类别,消息、文件和实时流。消息业务场景主要有:聊天室、实时消息推送、军事指挥系统等等(实施场景一);文件业务场景有IPTV点播、OTT点播、OTT直播、互联网内容分发等等(实施场景二);实时流的业务场景有IPTV直播、DVB直播、视频会议、全球眼监控、网红直播等等(实施场景三)。In the business scenario, NORM has three main categories, messages, files, and live streams. The message business scenarios mainly include: chat room, real-time message push, military command system, etc. (implementation scenario 1); file service scenarios include IPTV on-demand, OTT on-demand, OTT live broadcast, Internet content distribution, etc. (implementation scenario 2); real-time flow The business scenarios include IPTV live broadcast, DVB live broadcast, video conference, global eye monitoring, web red live broadcast, etc. (Scenario 3).
从部署上看,过滤装置的位置,可以在发送端所在的网络中心,也可以是和接收端一起分散不同的网络边缘,也可以多层部署,比如,网络中心和网络边缘都存在过滤装置。NORM过滤装置接收接收端的NACK报文,可以是单播方式,也可以是组播方式,对于接收端发送的组播NACK报文,NORM过滤装置在去重之后,还可以转换成单播方式,转发给发送端,以支持长距离部署场景。实施场景四展示了2级过滤装置,并且进行了NACK的组播到单播的转换。下面分别进行详细说明:From the perspective of deployment, the location of the filtering device may be located at the network center where the transmitting end is located, or may be distributed with different receiving edges, or may be deployed in multiple layers. For example, filtering devices exist in the network center and the network edge. The NORM filtering device receives the NACK message of the receiving end, which may be a unicast mode or a multicast mode. For the multicast NACK packet sent by the receiving end, the NORM filtering device may be converted into a unicast mode after being deduplicated. Forward to the sender to support long-distance deployment scenarios. Implementation scenario 4 shows a level 2 filtering device and performs a NACK multicast to unicast conversion. The following is a detailed description:
实施场景一Implementation scenario one
使用NORM组播进行消息进行分发,消息组播报文不带FEC编码,发送端收到NACK后直接重传原始数据包,所有接收端同步接收所有的消息,并且展示。The message is distributed using NORM multicast. The message multicast message is not FEC-encoded. After receiving the NACK, the sender directly retransmits the original data packet. All receivers receive all the messages synchronously and display them.
图9是实施场景一的可靠组播消息分发的系统结构图,如附图9,本实施场景中:部署1个消息服务器,作为本公开中的NORM发送端;设立一个中间服务器,作为本公开中提出的NACK过滤装置;设立2个消 息客户端(1和2),用作本公开中的NORM接收端,消息发送的组播地址为221.1.1.1:8080;在用户网络边缘的区域内部署1个组播路由器,作为组播复制装置。9 is a system structure diagram of implementing reliable multicast message distribution in scenario 1, as shown in FIG. 9. In this implementation scenario, one message server is deployed as a NORM sender in the present disclosure; an intermediate server is set up as the present disclosure. The NACK filtering device proposed in the present invention; two message clients (1 and 2) are set up to be used as the NORM receiving end in the present disclosure, and the multicast address of the message is 221.1.1.1:8080; deployed in the area of the user network edge One multicast router acts as a multicast replication device.
图10是实施场景一的可靠组播消息分发的流程图,如附图10,消息分发流程交互如下:FIG. 10 is a flowchart of implementing reliable multicast message distribution in scenario 1. As shown in FIG. 10, the message distribution process interacts as follows:
701.消息服务器使用组播地址norm://221.1.1.1:8080创建群组会话;701. The message server creates a group session by using the multicast address norm://221.1.1.1:8080;
702.消息客户端1以组播地址norm://221.1.1.1:8080加入群组会话;702. The message client 1 joins the group session with the multicast address norm://221.1.1.1:8080;
703.消息客户端2以组播地址norm://221.1.1.1:8080加入群组会话;703. The message client 2 joins the group session with the multicast address norm://221.1.1.1:8080;
704.消息服务器以NORM_DATA对象封装消息数据,NORM_DATA的类型是NORM_OBJECT_DATA,发送10个消息Message(1~10),消息NORM序号分别是1~10,在发送过程中,Message4~5由于网络异常导致消息客户端1丢包,Message5~6由于网络异常导致消息客户端2丢包,其他序号的包都正常发送和接收,消息客户端1和消息客户端2对于正常的包都做展示处理。704. The message server encapsulates the message data with the NORM_DATA object, the type of the NORM_DATA is NORM_OBJECT_DATA, and sends 10 messages Message (1 to 10), and the message NORM sequence numbers are 1 to 10 respectively. In the sending process, Messages 4 to 5 cause messages due to network abnormalities. The client 1 loses the packet, and the message 5 to 6 causes the message client 2 to drop packets due to the network abnormality. The other serial number packets are normally sent and received, and the message client 1 and the message client 2 perform display processing for the normal packet.
705.消息客户端1检测到丢包,向中间服务器以组播方式发送一个NORM NACK报文NACK1,NACK1包含丢包序号4和5;705. The message client 1 detects the packet loss, and sends a NORM NACK message NACK1 to the intermediate server in a multicast manner, and the NACK1 includes the packet loss sequence numbers 4 and 5;
706.消息客户端2检测到丢包,向中间服务器以组播方式发送一个NORM NACK报文NACK2,NACK2包含丢包序号5和6;706. The message client 2 detects the packet loss, and sends a NORM NACK message NACK2 to the intermediate server in a multicast manner, and the NACK2 includes the packet loss sequence numbers 5 and 6;
707.中间服务器在10ms的时间窗口内,收集到NACK1和NACK2以后,对其中的序号进行去重,取并集,得到序号并集,得到消息客户端1和消息客户端2丢包并集是4,5,6,然后中间服务器给消息服务器发送NACK3,NACK3中消息载荷中包含序号4,5,6;707. After collecting the NACK1 and NACK2 in the 10ms time window, the intermediate server deduplicates the sequence number, takes the union, and obtains the sequence number, and obtains the message client 1 and the message client 2 packet collection. 4, 5, 6, and then the intermediate server sends NACK3 to the message server, the message payload in NACK3 contains the sequence number 4, 5, 6;
708.消息服务器,收到NACK3,取得消息客户端1和2丢包的包是4,5,6,则重新发送三个原始数据报文Message4、Message5和Message6;708. The message server receives the NACK3, obtains the message that the client 1 and 2 packet loss is 4, 5, 6, and then resends three original data messages Message4, Message5 and Message6;
709.消息客户端1收到Message4、Message5、Message6,则使用重传的Message4和Messag5进行展示,则丢弃重传的Message6,使用第一次 厚道的Message6进行展示;709. The message client 1 receives Message4, Message5, and Message6, and uses the retransmitted Message4 and Messag5 to display, and discards the retransmitted Message6, and uses the first thick message of Message6 to display;
710.消息客户端2收到Message4、Message5、Message6,则丢弃重传的Message4,使用第一次收到的Message4,以及重传的Message5和Message6进行展示;710. Message client 2 receives Message4, Message5, Message6, discards the retransmitted Message4, uses Message4 received the first time, and retransmits Message5 and Message6 for display;
711.等到所有的Message发送并且展示完成后,消息客户端1关闭NORM群组会话;711. After all Messages are sent and the presentation is completed, the message client 1 closes the NORM group session;
712.等到所有的Message发送并且展示完成后,消息客户端2关闭NORM群组会话;712. Wait until all Messages are sent and the presentation is complete, the message client 2 closes the NORM group session;
713.消息服务器关闭NORM群组会话。713. The message server closes the NORM group session.
实施场景二 Implementation scenario 2
将一个文件分发到多个区域的机顶盒终端,说明在文件分发的业务应用中如何实施本公开。Distributing one file to a set top box terminal in multiple regions illustrates how the present disclosure is implemented in a business application for file distribution.
图11是本实施场景二的基于NORM的OTT直播业务系统结构图,如附图11所示的OTT业务系统,本实施场景中:部署1个HLS内容源站,作为本公开中的NORM发送端;设立一个CDN节点,具备本公开中提出的NACK过滤装置功能;设立2个机顶盒客户端端(1和2),具备本公开中的NORM接收端功能。在用户网络边缘的区域内部署1个组播路由器,作为组播复制装置。HLS内容源站需要将一个视频文件列表File01~10.ts,推送到所有的机顶盒终端上播放。对于每个视频文件01~10.ts,HLS内容源站循环采用下面的步骤知道所有的视频文件传输并且播放完成。在本实施场景中,我们详细描述其中一个文件的组播分发过程,并且假设第一个文件01.ts,编码成300个NORM组播包FilePack001~300,由于中间数据设备异常,导致机顶盒1和机顶盒2同时对丢失的FilePack011~020产生NACK报文NACK1和NACK2,NACK1和NACK2中包含的丢包序号列表为11~20,以此说明。11 is a structural diagram of a NORM-based OTT live broadcast service system in the second embodiment of the present invention. As shown in FIG. 11, an OTT service system is deployed. In this implementation scenario, one HLS content source station is deployed as a NORM sender in the present disclosure. Setting up a CDN node with the NACK filtering device function proposed in the present disclosure; setting up two set top box clients (1 and 2) with the NORM receiving end function in the present disclosure. A multicast router is deployed in the area at the edge of the user network as a multicast replication device. The HLS content source station needs to push a video file list File01~10.ts to all set-top box terminals for playback. For each video file 01~10.ts, the HLS content source station loop uses the following steps to know all video file transfers and playback is complete. In this implementation scenario, we describe the multicast distribution process of one of the files in detail, and assume that the first file 01.ts is encoded into 300 NORM multicast packets FilePack001-300, and the set-top box 1 and the intermediate data device are abnormal. The set top box 2 simultaneously generates NACK messages NACK1 and NACK2 for the lost FilePacks 011 to 020, and the list of lost packet numbers included in NACK1 and NACK2 is 11 to 20, which is illustrated.
图12是本实施场景二的基于NORM的OTT直播内容分发的流程图,如附图12,视频文件分发流程交互如下:12 is a flowchart of NORM-based OTT live content distribution in scenario 2 of the present embodiment. As shown in FIG. 12, the video file distribution process interacts as follows:
901.HLS内容源站创建NORM群组会话,组播地址是norm://221.1.1.1:8080;901. The HLS content source station creates a NORM group session, and the multicast address is norm://221.1.1.1:8080;
902.机顶盒1以norm://221.1.1.1:8080加入NORM群组会话;902. The set top box 1 joins the NORM group session with norm://221.1.1.1:8080;
903.机顶盒2以norm://221.1.1.1:8080加入NORM群组会话;903. The set top box 2 joins the NORM group session with norm://221.1.1.1:8080;
HLS内容源站、CDN节点和机顶盒,重复使用步骤804到7xx视频文件直到所有的文件File01~10.ts播放完成。HLS content source station, CDN node and set-top box, repeat steps 804 to 7xx video files until all files File01~10.ts are played.
904.HLS内容源站以NORM_DATA对象封装视频内容01.ts内容,编码成300个NORM DATA数据包File Pack(001~300),NORM消息序号分别是1~300,NORM_DATA的类型是NORM_OBJECT_FILE,其他序号的包都正常发送和接收,机顶盒1和机顶盒2对于正常的包都做展示处理。904. The HLS content source station encapsulates the video content 01.ts content with the NORM_DATA object, and encodes it into 300 NORM DATA packets File Pack (001-300), the NORM message serial number is 1 to 300, and the NORM_DATA type is NORM_OBJECT_FILE, other serial numbers. The packets are normally sent and received, and the set top box 1 and the set top box 2 are displayed for normal packets.
905.机顶盒1检测到FilePach011到FilePack020丢包,向CDN节点以组播方式发送一个NACK报文NACK1,NACK1载荷中包含10个丢包序号11~20;905. The set top box 1 detects a packet loss from FilePach011 to FilePack020, and sends a NACK message NACK1 to the CDN node in a multicast manner, and the NACK1 payload contains 10 packet loss numbers 11 to 20;
906.机顶盒2检测到FilePach011到FilePack020丢包,向CDN节点以组播方式发送一个NACK报文NACK1,NACK1载荷中包含10个丢包序号11~20;906. The set top box 2 detects a packet loss from FilePach011 to FilePack020, and sends a NACK message NACK1 to the CDN node in a multicast manner, and the NACK1 payload contains 10 packet loss numbers 11 to 20;
907.CDN节点在10ms的时间窗内收集到NACK1和NACK2以后,对其中的序号进行去重,取并集,得到序号并集,得到机顶盒1和机顶盒2丢包并集是11~20,然后中间服务器给HLS内容源站发送NACK3,NACK3中消息载荷中包含10个序号11~20;907. After collecting the NACK1 and NACK2 in the 10ms time window, the CDN node de-duplicates the sequence numbers, takes the union, and obtains the sequence number, and obtains the set-top box 1 and the set-top box 2 packet loss combination is 11-20, and then The intermediate server sends a NACK3 to the HLS content source station, and the message payload in the NACK3 includes 10 sequence numbers 11-20;
908.HLS内容源站,收到NACK3,取得机顶盒1和2丢包的包是11~20,则重新发送10个包的组播修复报文FilePack010~020,分别是FilePack011~020的修复报文;908. The HLS content source station receives the NACK3, and the packets of the set- top box 1 and 2 are 11 to 20, and then re-send 10 packets of the multicast repair message FilePack010-020, which are the repair packets of FilePack011-020, respectively. ;
909.机顶盒1收到FilePack011~020,则开始进行数据修复,然后则转换成视频画面,继续播放File01.ts,直到播放完成。909. When the set top box 1 receives the FilePacks 011 to 020, it starts data repair, and then converts to a video screen and continues to play File01.ts until the playback is completed.
910.机顶盒2收到FilePack011~020,则开始进行数据修复,然后则转 换成视频画面,继续播放File01.ts,直到播放完成。910. When the set-top box 2 receives the FilePack011~020, it starts data repair, and then converts to a video screen and continues to play File01.ts until the playback is completed.
911.等到所有的Message发送并且展示完成后,机顶盒1关闭群组会话;911. After all the Messages are sent and the display is completed, the set top box 1 closes the group session;
912.等到所有的Message发送并且展示完成后,机顶盒2关闭群组会话;912. Wait until all Messages are sent and the presentation is complete, the set top box 2 closes the group session;
913.HLS内容源站关闭群组会话。913. The HLS content source station closes the group session.
实施场景三Implementation scenario three
以NORM的实时流对象说明,如何在无边界的实时流业务中实施本公开。The real-time flow object of NORM illustrates how the present disclosure can be implemented in a real-time stream service without borders.
图13是本实施场景三的基于NORM的IPTV直播系统结构图,如附图13所示的IPTV直播业务系统,本实施场景中:部署1个直播编码器,作为本实施例中的NORM发送端;设立一个CDN节点,具备本公开中提出的NACK过滤装置功能;设立2个机顶盒客户端端(1和2),具备本公开中的NORM接收端功能。在用户网络边缘的区域内部署1个组播路由器,作为组播复制装置。直播编码器向所有的机顶盒推送H.264直播流,直播流以H.264方式编码,并且使用8%的FEC冗余度,FEC纠错数据随NORM原始数据一起发送,直播编码器采用统一的NORM_DATA封装原始数据编码和FEC编码,序号统一生成。直播源在07:00分开始创建NORM会话,初始视频组播报文的序号是1,机顶盒1在07:05分加入NORM会话接收组播,开始观看视频,接收第一个组播报文的序号是30000。机顶盒2在07:10分加入NORM会话接收组播,开始观看视频,接收到的第一个组播报文序号是60000。直播编码器循在07:15分由于网络原因导致丢包50个,丢包报文的序号从90000~90050,对应的组播报文为Stream90000~90050.机顶盒1和机顶盒2同时在07:15分同时产生NACK1和NACK2,NACK1和NACK2中均包含丢包序号列表90000~90050。FIG. 13 is a structural diagram of a NORM-based IPTV live broadcast system according to the third embodiment of the present invention, such as the IPTV live broadcast service system shown in FIG. 13. In this implementation scenario, a live broadcast encoder is deployed as the NORM sender in this embodiment. Setting up a CDN node with the NACK filtering device function proposed in the present disclosure; setting up two set top box clients (1 and 2) with the NORM receiving end function in the present disclosure. A multicast router is deployed in the area at the edge of the user network as a multicast replication device. The live broadcast encoder pushes the H.264 live stream to all set-top boxes. The live stream is encoded in H.264 mode and uses 8% FEC redundancy. The FEC error correction data is sent along with the original NORM data. The live encoder is unified. NORM_DATA encapsulates the original data encoding and FEC encoding, and the serial number is uniformly generated. The live broadcast source starts to create a NORM session at 07:00. The sequence number of the initial video multicast packet is 1. The set-top box 1 joins the NORM session at 07:05 to receive the multicast, starts watching the video, and receives the first multicast packet. The serial number is 30000. The set-top box 2 joins the NORM session at 07:10 to receive the multicast, starts watching the video, and receives the first multicast packet sequence number of 60000. The live broadcast encoder has lost 50 packets due to network reasons at 07:15. The packet loss packet number is from 90000 to 90050, and the corresponding multicast packet is Stream90000 to 90050. The set-top box 1 and the set-top box 2 are simultaneously at 07:15. NACK1 and NACK2 are generated simultaneously, and NACK1 and NACK2 both contain a list of lost packet numbers 90000-9050.
图14是本实施场景三的基于NORM的IPTV直播业务流程图,如附图14所示的IPTV直播业务系统的交互流程如下:FIG. 14 is a flowchart of a NORM-based IPTV live broadcast service in the third scenario of the present embodiment. The interaction process of the IPTV live broadcast service system shown in FIG. 14 is as follows:
1101.直播编码器以组播地址norm://224.1.1.1:8080创建群组会话;1101. The live broadcast encoder creates a group session with a multicast address norm://224.1.1.1:8080;
1102. 07:00:00开始,直播编码器对产生组播直播流,直播流的基于NORM_DATA格式封装,NORM对象类型为NORM_OJECT_STREAM,NORM_DATA包含原始数据和FEC编码数据,以每秒100个组播报文速度发送,每个组播报文生成一个NORM_DATA序号,从0开始,序号为x的报文为Streamx。1102. Starting at 07:00:00, the live encoder generates a multicast live stream, and the live stream is encapsulated in a NORM_DATA format. The NORM object type is NORM_OJECT_STREAM, and the NORM_DATA contains original data and FEC encoded data, and is 100 multicast reports per second. The packet is transmitted at a speed. Each multicast packet generates a NORM_DATA sequence number. The packet with the sequence number x is Streamx.
1103. 07:05:00开始,机顶盒1以组播地址norm://224.1.1.1:8080加入NORM群组会话,并且开启一个缓存区,存放5秒以内接收到的组播直播流报文;1103. Starting at 07:05:00, the set-top box 1 joins the NORM group session with the multicast address norm://224.1.1.1:8080, and opens a buffer area to store the multicast live stream packets received within 5 seconds;
1104.机顶盒1开始组播报文序号30000开始接收组播直播流,解析NORM_DATA,获取到原始数据以及FEC编码数据,然后进行FEC解码,视频播放开始。1104. The set top box 1 starts the multicast message sequence number 30000 to start receiving the multicast live stream, parses the NORM_DATA, obtains the original data and the FEC encoded data, and then performs FEC decoding, and the video playback starts.
1105. 07:10:00开始,机顶盒2以组播地址norm://224.1.1.1:8080加入NORM群组会话,并且开启一个缓存区,存放5秒以内接收到的组播直播流报文;1105. Starting at 07:10:00, the set-top box 2 joins the NORM group session with the multicast address norm://224.1.1.1:8080, and opens a buffer area to store the multicast live stream packets received within 5 seconds;
1106.机顶盒2开始组播报文序号60000开始接收组播直播流,解析NORM_DATA,获取到原始数据以及FEC编码数据,然后进行FEC解码,视频播放开始。1106. The set top box 2 starts to receive the multicast broadcast stream number 60000, starts to receive the multicast live stream, parses the NORM_DATA, obtains the original data and the FEC encoded data, and then performs FEC decoding, and the video playback starts.
1107. 07:15:00,机顶盒1检测到缓存区中序号为90000~90050的组播直播流报文未接收到,向CDN节点以组播方式发送一个NACK报文NACK1,NACK1载荷中包含丢包序号范围90000~90050;1107. 07:15:00, the set-top box 1 detects that the multicast live stream packet with the serial number of 90000~90050 in the buffer is not received, and sends a NACK packet NACK1 to the CDN node in multicast mode. The NACK1 payload is included in the payload. The package serial number ranges from 90000 to 90050;
1108. 07:15:00,机顶盒2检测到缓存区中序号为90000~90050的组播直播流报文未接收到,向CDN节点以组播方式发送一个NACK报文NACK2,NACK2载荷中包含丢包序号范围90000~900501108. 07:15:00, the set-top box 2 detects that the multicast live stream packet with the sequence number 90000-90050 in the buffer area is not received, and sends a NACK message NACK2 to the CDN node in multicast mode, and the NACK2 payload includes the lost packet. Package serial number range 90000~90050
1109.CDN节点在100ms的时间窗段内,收到NACK1和NACK2以后,对其中的序号列表进行去重,取并集,得到序号并集,得到机顶盒1和机顶盒2丢包并集是90000~900500,然后CDN节点给直播编码器发送 NACK3,NACK3中消息载荷中包含序号范围90000~90050;1109. After receiving the NACK1 and NACK2 in the 100ms time window, the CDN node de-duplicates the sequence number list, takes the union, and obtains the sequence number, and obtains the set-top box 1 and the set-top box 2 packet loss set is 90000~ 900500, then the CDN node sends a NACK3 to the live broadcast encoder, and the message payload in the NACK3 includes a sequence number ranging from 90000 to 90050;
1110.直播编码器在100ms的时间窗段内,收到NACK3,取得机顶盒1和2丢包的包是90000~90050,则重新发送序号为90000~90050的组播直播流报文,Stream90000~Stream90050;1110. The live broadcast encoder receives the NACK3 in the time window of 100 ms, and obtains the packet of the set- top box 1 and 2 that is lost from 90000 to 90050, and then retransmits the multicast live stream packet with the serial number of 90000-90050, Stream90000-Stream90050 ;
1111.机顶盒1收到Stream90000~Stream90050,补齐缓冲区中对应的数据包,等到机顶盒视频播放达到Stream90000时,然后重新解析NORM_DATA,获取到原始数据以及FEC编码数据,然后进行FEC解码,持续进行画面展示。1111. The set top box 1 receives Stream90000~Stream90050, fills in the corresponding data packet in the buffer, waits until the video recording of the set top box reaches Stream90000, then re-interprets the NORM_DATA, obtains the original data and the FEC encoded data, and then performs FEC decoding to continue the screen. Show.
1112.机顶盒2收到Stream90000~Stream90050,补齐缓冲区中对应的数据包,等到机顶盒视频播放达到Stream90000时,然后重新解析NORM_DATA,获取到原始数据以及FEC编码数据,然后进行FEC解码,持续进行画面展示。1112. The set-top box 2 receives Stream90000~Stream90050, fills in the corresponding data packet in the buffer, waits until the video recording of the set-top box reaches Stream90000, then re-interprets the NORM_DATA, obtains the original data and the FEC encoded data, and then performs FEC decoding to continue the screen. Show.
1113.机顶盒1在遥控器切换或者关闭频道时,关闭群组会话,停止接收组播直播流;1113. The set top box 1 closes the group session when the remote controller switches or closes the channel, and stops receiving the multicast live stream;
1114.机顶盒2在遥控器切换或者关闭频道时,关闭群组会话,停止接收组播直播流;1114. The set top box 2 closes the group session when the remote controller switches or closes the channel, and stops receiving the multicast live stream;
本实施场景中,只要步骤1107、1110和1111所占用的时间之和,小于机顶盒1缓冲区的长度,即可以实现视频的连续播放,机顶盒1丢视频丢包无感知。同样,只要步骤1108、1110和1112所占用的时间之和,小于机顶盒2缓冲区的长度,即可以实现视频的连续播放,机顶盒2丢视频丢包无感知。In this implementation scenario, as long as the sum of the times occupied by the steps 1107, 1110, and 1111 is smaller than the length of the buffer of the set top box 1, the continuous play of the video can be realized, and the set top box 1 loses the video loss without sensing. Similarly, as long as the sum of the times occupied by steps 1108, 1110, and 1112 is less than the length of the buffer of the set top box 2, continuous playback of the video can be achieved, and the set top box 2 loses video loss without perception.
实施场景四Implementation scenario four
多级架构下,以文件分发为例,说明如何部署多级NORM过滤装置,以支持一个NORM发送端支持的接收端的数量,同时为了防止NORM NACK报文扩散,本实施场景中区域的过滤装置上增加了组播NACK转单播的方法,使得不同区域接收端的发送的组播NACK报文,只在本区域内传播,避免了组播NACK报文对接收端的性能冲击,进一步增加本 公开的实用性。In the multi-level architecture, file distribution is used as an example to illustrate how to deploy a multi-level NORM filtering device to support the number of receiving ends supported by a NORM sender. In order to prevent the spread of NORM NACK packets, the filtering device in the area in this implementation scenario The multicast NACK-to-unicast method is added to enable the multicast NACK packets sent by the receivers in different areas to be transmitted only in the local area, which avoids the performance impact of the multicast NACK packets on the receiving end, and further increases the utility of the present disclosure. Sex.
图15是本实施场景四的多级NORM过滤装置系统结构图,如图15所示,本实施场景中:部署1个消息服务器,作为本公开中的NORM发送端;设立2级NORM过滤装置,2个边缘过滤装置和1个中心过滤装置。区域1中包含消息客户端(1、2、3),区域2中包含息客户端(4、5、6),作为本公开中的接收端。每个区域中包含一个NORM过滤装置,分别是过滤装置1和过滤装置2,分别接收对应区域的消息客户端的组播NACK报文,边缘过滤装置1和2,将过滤去重之后的NACK报文转换成单播,发送给中心过滤装置3,中心过滤装置通过单播方式发送NACK报文给发送端。同时,每个区域还包含一个组播路由器,作为本公开中说明的组播复制装置。同时,为了说明本公开附属权利中提出的过滤装置的2种过滤模式,本实施场景中边缘过滤装置1和2,采用了时间窗聚集过滤模式,中心过滤装置3采用了缓存转发过滤模式,初始缓存中,已经发过NACK的丢包报文序号列表为空。15 is a system structure diagram of a multi-level NORM filtering device in the fourth embodiment of the present invention. As shown in FIG. 15, in this implementation scenario, one message server is deployed as a NORM transmitting end in the present disclosure; and a level 2 NORM filtering device is set up. 2 edge filter units and 1 center filter unit. The area 1 contains a message client (1, 2, 3), and the area 2 contains a client (4, 5, 6) as a receiving end in the present disclosure. Each area includes a NORM filtering device, which is a filtering device 1 and a filtering device 2, respectively, and receives the multicast NACK message of the message client in the corresponding area, and the edge filtering devices 1 and 2 filter the de-duplicated NACK message. It is converted into unicast and sent to the central filtering device 3. The central filtering device sends a NACK message to the transmitting end in a unicast manner. At the same time, each zone also contains a multicast router as the multicast replication device described in this disclosure. In the meantime, in order to explain the two filtering modes of the filtering device proposed in the appended claims, the edge filtering devices 1 and 2 in the present embodiment adopt a time window aggregation filtering mode, and the central filtering device 3 adopts a cache forwarding filtering mode. In the cache, the list of lost packet numbers that have been sent NACK is empty.
本实施场景还是采用消息类业务作为说明,出于篇幅考虑,关于消息类NORM会话创建、会话关闭的步骤请参考实施场景一,本实施场景中只列出和多级NORM过滤装置,以及NACK转换相关的步骤。本实施场景中NORM组播消息为NORM_DATA,传输对象类型为NORM_OBJECT_DATA,无FEC编码;NACK报文为NORM_NACK。NORM_DATA和NORM_NACK格式参考RFC 5740。In this implementation scenario, the message type service is used as the description. For the sake of space consideration, refer to the implementation scenario 1 for the steps of creating a message type NORM session and closing the session. Only the multi-level NORM filtering device and the NACK conversion are listed in this implementation scenario. Related steps. In this implementation scenario, the NORM multicast message is NORM_DATA, the transport object type is NORM_OBJECT_DATA, and there is no FEC encoding; the NACK packet is NORM_NACK. The NORM_DATA and NORM_NACK formats refer to RFC 5740.
图16是本实施场景四的多级NORM过滤装置消息业务流程图,如附图16,多级NORM过滤装置的消息业务实现流程包括:16 is a message flow diagram of a multi-level NORM filtering device in the fourth embodiment of the present invention. As shown in FIG. 16, the message service implementation process of the multi-level NORM filtering device includes:
1201,消息服务器按照顺序发送NORM组播消息Message1~10;1201, the message server sends NORM multicast messages Message1~10 in sequence;
1202~1204三个步骤为区域1的客户端、过滤装置的工作过程;The three steps 1202~1204 are the working process of the client and the filtering device of the area 1;
1202,区域1的消息客户端1,2,3检测到序号4,5丢包,分别向过滤装置1发送组播NACK报文1,包含序号丢包序号4,5;1202, the message client 1, 2, 3 of the area 1 detects the sequence number 4, 5 packet loss, and sends a multicast NACK message 1 to the filtering device 1, respectively, including the sequence number loss packet number 4, 5;
1203,过滤装置1采用时间窗聚集过滤模式,即在10ms的时间窗内, 接收客户端1,2,3发送的三个组播NACK报文,按照NACK报文中携带的序号进行过滤,去重,得到区域1丢包的报文序号列表4,5;1203, the filtering device 1 uses the time window aggregation filtering mode, that is, in the time window of 10 ms, receives three multicast NACK messages sent by the client 1, 2, 3, and filters according to the sequence number carried in the NACK message. Heavy, get the sequence number 4, 5 of the packet loss of the area 1 packet;
1204,过滤装置1向过滤装置3发送单播NACK报文NACK3,NACK报文中包含序号列表4,5;1204, the filtering device 1 sends a unicast NACK message NACK3 to the filtering device 3, the NACK message contains a sequence number list 4, 5;
1205~1207三个步骤为区域2的客户端、过滤装置的工作过程;The three steps 1205 to 1207 are the working process of the client and the filtering device of the area 2;
1205,区域2的消息客户端4,5,6检测到序号5,6丢包,分别向过滤装置2发送组播NACK报文2,包含序号丢包序号5,6;1205, the message client 4, 5, 6 of the area 2 detects the sequence number 5, 6 packet loss, and sends a multicast NACK message 2 to the filtering device 2, including the sequence number loss packet number 5, 6;
1206,过滤装置2采用时间窗聚集过滤模式,即在10ms的时间窗内,对客户端4,5,6发送的组播NACK2报文,按照NACK报文中携带的丢包序号进行过滤,去重,得到区域2丢包的报文序号列表5,6;1206, the filtering device 2 uses the time window aggregation filtering mode, that is, in the 10 ms time window, the multicast NACK2 message sent by the client 4, 5, 6 is filtered according to the packet loss sequence number carried in the NACK message, Heavy, get the sequence number list 5,6 of packet loss in area 2;
1207,过滤装置2向过滤装置3发送单播NACK报文NACK4,NACK报文中包含序号列表5,6;1207, the filtering device 2 sends a unicast NACK message NACK4 to the filtering device 3, the NACK message contains a sequence number list 5, 6;
区域1和区域2的2个工作过程为并行的,没有先后关系。这里我们假设,过滤装置1发送的NACK3比过滤装置2发送的NACK4先到达过滤装置3。The two working processes of Zone 1 and Zone 2 are parallel and have no sequential relationship. Here, we assume that the NACK3 transmitted by the filtering device 1 reaches the filtering device 3 first than the NACK4 transmitted by the filtering device 2.
1208,过滤装置3采用缓存转发过滤模式,即收到过滤装置1发送的单播NACK报文NACK3后,从缓存中判断序号4,5的NACK报文未发送过,则立即向发送端发送单播NACK报文NACK5,NACK中包含丢包序号列表4,5,过滤装置3,将丢包序号4,5保存在缓存中;1208, the filtering device 3 adopts a buffer forwarding filtering mode, that is, after receiving the unicast NACK packet NACK3 sent by the filtering device 1, after determining that the NACK packet of the sequence number 4, 5 has not been sent from the buffer, the sending device sends a single message to the transmitting end immediately. Broadcasting NACK message NACK5, the NACK includes the packet loss sequence number list 4, 5, and the filtering device 3 stores the packet loss sequence number 4, 5 in the cache;
1209,过滤装置3采用缓存转发过滤模式,收到过滤装置2发送的单播NACK报文NACK4后,从缓存中判断丢包序号5的NACK报文未发送过,而丢包序号6的NACK报文已经发送过,则向发送端发送单播NACK报文NACK6,NACK中只包含丢包序号列表6;过滤装置3将丢包序号6保存在缓存中;1209. The filtering device 3 adopts a buffer forwarding filtering mode. After receiving the unicast NACK packet NACK4 sent by the filtering device 2, it determines that the NACK packet of the packet loss sequence number 5 has not been sent from the buffer, and the NACK packet of the packet loss sequence number 6 is not sent. If the file has been sent, the unicast NACK message NACK6 is sent to the sender, and the NACK includes only the packet loss sequence number list 6; the filtering device 3 saves the packet loss sequence number 6 in the cache;
1210,发送端收到过滤装置3发送的单播NACK报文NACK5之后,则开始重传原始组播消息Message4,5;1210, after receiving the unicast NACK packet NACK5 sent by the filtering device 3, the transmitting end starts retransmitting the original multicast message Message4, 5;
1211,发送端收到过滤装置3发送的单播NACK报文NACK6之后,则开始重传原始组播消息Message6;1211, after receiving the unicast NACK packet NACK6 sent by the filtering device 3, the transmitting end starts retransmitting the original multicast message Message6;
1212,客户端1,2,3接收到发送端重传的Message4,5,则使用Message4,5进行数据还原,然后展示消息。1212, the client 1, 2, 3 receives the message 4, 5 retransmitted by the sender, then uses Message4, 5 to restore the data, and then displays the message.
1213,客户端4,5,6接收到发送端重传的Message4,5,则丢弃Message4,使用Message5,还原部分数据。1213, the client 4, 5, 6 receives the Message4, 5 retransmitted by the sender, then discards Message4, and uses Message5 to restore part of the data.
1214,客户端1,2,3接收到发送端重传的Message6,则丢弃Message6。1214. When the client 1, 2, 3 receives the Message6 retransmitted by the sender, the message 6 is discarded.
1215,客户端4,5,6接收到发送端重传的Message6,则使用Message6还原剩余的部分数据,然后展示消息。1215, the client 4, 5, 6 receives the Message6 retransmitted by the sender, and uses Message6 to restore the remaining part of the data, and then displays the message.
实施例4Example 4
本公开的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。Embodiments of the present disclosure also provide a storage medium having stored therein a computer program, wherein the computer program is configured to execute the steps of any one of the method embodiments described above.
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:Optionally, in the embodiment, the above storage medium may be configured to store a computer program for performing the following steps:
S1,接收第一设备发送的丢失报文的序号,其中,所述丢失报文的序号用于指示在第二设备发送给所述第一设备的报文中丢失报文的序号;S1. The sequence number of the lost packet sent by the first device is received, where the sequence number of the lost packet is used to indicate the sequence number of the lost message in the packet sent by the second device to the first device.
S2,对所述丢失报文的序号进行去重操作,得到丢失报文序号集合;S2, performing a deduplication operation on the sequence number of the lost packet, to obtain a lost message sequence number set;
S3,将所述丢失报文序号集合发送给所述第二设备。S3. Send the lost message sequence number set to the second device.
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。Optionally, in the embodiment, the foregoing storage medium may include, but is not limited to, a USB flash drive, a Read-Only Memory (ROM), and a Random Access Memory (RAM). A variety of media that can store computer programs, such as hard drives, disks, or optical disks.
本公开的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。Embodiments of the present disclosure also provide an electronic device including a memory and a processor having a computer program stored therein, the processor being configured to execute a computer program to perform the steps of any one of the method embodiments described above.
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。Optionally, the electronic device may further include a transmission device and an input and output device, wherein the transmission device is connected to the processor, and the input and output device is connected to the processor.
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:Optionally, in this embodiment, the foregoing processor may be configured to perform the following steps by using a computer program:
S1,接收第一设备发送的丢失报文的序号,其中,所述丢失报文的序号用于指示在第二设备发送给所述第一设备的报文中丢失报文的序号;S1. The sequence number of the lost packet sent by the first device is received, where the sequence number of the lost packet is used to indicate the sequence number of the lost message in the packet sent by the second device to the first device.
S2,对所述丢失报文的序号进行去重操作,得到丢失报文序号集合;S2, performing a deduplication operation on the sequence number of the lost packet, to obtain a lost message sequence number set;
S3,将所述丢失报文序号集合发送给所述第二设备。S3. Send the lost message sequence number set to the second device.
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。For example, the specific examples in this embodiment may refer to the examples described in the foregoing embodiments and the optional embodiments, and details are not described herein again.
显然,本领域的技术人员应该明白,上述的本公开的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本公开不限制于任何特定的硬件和软件结合。It will be apparent to those skilled in the art that the various modules or steps of the present disclosure described above can be implemented by a general-purpose computing device that can be centralized on a single computing device or distributed across a network of multiple computing devices. Alternatively, they may be implemented by program code executable by the computing device such that they may be stored in the storage device by the computing device and, in some cases, may be different from the order herein. The steps shown or described are performed, or they are separately fabricated into individual integrated circuit modules, or a plurality of modules or steps thereof are fabricated as a single integrated circuit module. As such, the disclosure is not limited to any specific combination of hardware and software.
以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。The above description is only a preferred embodiment of the present disclosure, and is not intended to limit the disclosure, and various changes and modifications may be made to the present disclosure. Any modifications, equivalent substitutions, improvements, etc., made within the scope of the present disclosure are intended to be included within the scope of the present disclosure.
如上所述,本发明实施例提供的一种报文传输方法及装置、系统、存储介质、电子装置具有以下有益效果:通过对丢失报文的序号进行去重操作,减少相同丢失报文的序号的个数然后发送给第二设备,避免在第二设 备上形成消息风暴,解决了相关技术中处理丢失报文时间太长的技术问题,减少了第二设备对丢失报文的序号的筛选工作量,进而提高了第二设备针对丢失报文发送修复报文的效率,降低了第一设备修复丢失报文的时延。As described above, the packet transmission method, device, system, storage medium, and electronic device provided by the embodiments of the present invention have the following beneficial effects: reducing the sequence number of the same lost message by performing a deduplication operation on the sequence number of the lost message. The number is then sent to the second device to avoid the formation of a message storm on the second device, which solves the technical problem that the lost time of the lost message is too long in the related art, and reduces the screening operation of the second device for the serial number of the lost message. The amount of the second device is improved by sending the repair packet to the lost packet, and the delay of the first device for repairing the lost packet is reduced.
Claims (18)
- 一种报文传输方法,包括:A message transmission method includes:接收第一设备发送的丢失报文的序号,其中,所述丢失报文的序号用于指示在第二设备发送给所述第一设备的报文中丢失报文的序号;Receiving a sequence number of the lost packet sent by the first device, where the sequence number of the lost packet is used to indicate a sequence number of the lost packet in the packet sent by the second device to the first device;对所述丢失报文的序号进行去重操作,得到丢失报文序号集合;Performing a deduplication operation on the sequence number of the lost packet to obtain a lost message sequence number set;将所述丢失报文序号集合发送给所述第二设备。Sending the lost message sequence number set to the second device.
- 根据权利要求1所述的方法,其中,在将所述丢失报文序号集合发送给所述第二设备之后,所述方法还包括:The method of claim 1, wherein after the sending the lost message sequence number set to the second device, the method further comprises:所述第二设备向所述第一设备发送修复报文,其中,所述修复报文为所述丢失报文序号集合中的序号所指示的报文。The second device sends a repair message to the first device, where the repair message is a message indicated by a sequence number in the lost message sequence number set.
- 根据权利要求1所述的方法,其中,接收第一设备发送的丢失报文的序号包括:The method of claim 1, wherein receiving the sequence number of the lost message sent by the first device comprises:接收来自一个或多个所述第一设备发送的NACK报文,其中,所述NACK报文携带所述丢失报文的序号。Receiving a NACK message sent by the one or more of the first devices, where the NACK message carries the sequence number of the lost message.
- 根据权利要求3所述的方法,其中,所述NACK报文包括:基于可靠组播通讯协议NORM的NACK报文。The method of claim 3, wherein the NACK message comprises: a NACK message based on a reliable multicast communication protocol NORM.
- 根据权利要求1所述的方法,其中,对所述丢失报文的序号进行去重操作,得到丢失报文序号集合,包括以下之一:The method according to claim 1, wherein the de-duplication operation is performed on the sequence number of the lost message to obtain a lost message sequence number set, including one of the following:在预定时间周期内接收的全部所述丢失报文的序号中,将存在重复的序号进行去重,得到所述丢失报文序号集合;In the sequence numbers of all the lost packets received in the predetermined time period, the repeated sequence numbers are deduplicated to obtain the lost message sequence number set;根据在预定时间内已经发送过的历史丢包序号列表,在接收的全部所述丢失报文的序号中,选择序号不包括在所述历史丢包序号列表中的丢失报文的序号,得到所述丢失报文序号集合。According to the historical packet loss sequence number list that has been sent within the predetermined time, in the sequence numbers of all the lost packets received, the serial number of the lost message that is not included in the historical packet loss sequence number list is selected. The lost message sequence number set.
- 根据权利要求1所述的方法,其中,将所述丢失报文序号集 合发送给所述第二设备包括以下之一:The method of claim 1 wherein transmitting the lost message sequence number to the second device comprises one of:将所述丢失报文序号集合发送给所述第二设备,并接收所述第二设备反馈的ACK信息,其中,所述ACK信息用于指示所述第二设备接收到所述丢失报文序号集合;And sending the lost packet sequence number to the second device, and receiving the ACK information that is sent by the second device, where the ACK information is used to indicate that the second device receives the lost message sequence number set;根据预设重发次数将所述丢失报文序号集合发送给所述第二设备。Sending the lost message sequence number set to the second device according to the preset number of retransmissions.
- 根据权利要求1所述的方法,其中,接收第一设备发送的丢失报文的序号包括:The method of claim 1, wherein receiving the sequence number of the lost message sent by the first device comprises:接收第一区域中所有所述第一设备发送的丢失报文的序号。And receiving a sequence number of the lost packet sent by all the first devices in the first area.
- 根据权利要求1所述的方法,其中,将所述丢失报文序号集合发送给所述第二设备包括以下之一:The method of claim 1 wherein transmitting the lost message sequence number set to the second device comprises one of:将所述丢失报文序号集合分成一次发送给所述第二设备;And sending the lost message sequence number set to the second device in one time;将所述丢失报文序号集合拆分后,分批发送给所述第二设备。After the lost message sequence number set is split, it is distributed to the second device.
- 根据权利要求8中所述的方法,其中,所述丢失报文序号集合携带在基于NORM的NACK报文中。The method of claim 8 wherein said set of lost message sequence numbers is carried in a NORM-based NACK message.
- 一种报文传输装置,包括:A message transmission device comprising:接收模块,设置为接收第一设备发送的丢失报文的序号,其中,所述丢失报文的序号用于指示在第二设备发送给所述第一设备的报文中丢失报文的序号;The receiving module is configured to receive the sequence number of the lost packet sent by the first device, where the sequence number of the lost packet is used to indicate the sequence number of the lost packet in the packet sent by the second device to the first device;处理模块,设置为对所述丢失报文的序号进行去重操作,得到丢失报文序号集合;The processing module is configured to perform a deduplication operation on the sequence number of the lost packet to obtain a lost message sequence number set;发送模块,设置为将所述丢失报文序号集合发送给所述第二设备。The sending module is configured to send the lost message sequence number set to the second device.
- 根据权利要求10所述的装置,其中,所述接收模块包括:The apparatus of claim 10, wherein the receiving module comprises:接收单元,设置为接收来自一个或多个第一设备发送的NACK报文,其中,所述NACK报文携带所述丢失报文的序号。The receiving unit is configured to receive a NACK message sent by the one or more first devices, where the NACK message carries the sequence number of the lost message.
- 根据权利要求10所述的装置,其中,所述处理模块包括以下之一:The apparatus of claim 10 wherein said processing module comprises one of:第一处理单元,设置为在预定时间周期内接收的全部所述丢失报文的序号中,将存在重复的序号进行去重,得到所述丢失报文序号集合;The first processing unit is configured to de-duplicate the repeated sequence numbers in the sequence numbers of all the lost packets received in the predetermined time period to obtain the lost message sequence number set;第二处理单元,设置为根据在预定时间内已经发送过的历史丢包序号列表,在接收的全部所述丢失报文的序号中,选择序号不包括在所述历史丢包序号列表中的丢失报文的序号,得到所述丢失报文序号集合。The second processing unit is configured to: according to the historical packet loss sequence number list that has been sent within the predetermined time, select, in the sequence numbers of all the lost packets that are received, the sequence number is not included in the history packet loss sequence number list. The sequence number of the packet is obtained by the sequence number of the lost message.
- 一种报文传输系统,包括一个或多个第一设备、第二设备、过滤设备,其中,A message transmission system includes one or more first devices, second devices, and filtering devices, where所述第一设备,设置为接收所述第二设备发送的原始报文,以及在对所述原始报文进行丢包检测确定存在丢失报文时,将所述丢失报文的序号发送给所述过滤设备;The first device is configured to receive the original message sent by the second device, and send a sequence number of the lost message to the device when performing packet loss detection on the original packet to determine that there is a lost packet Filtering device;所述过滤设备包括:接收模块,设置为接收第一设备发送的丢失报文的序号,其中,所述丢失报文的序号用于指示在第二设备发送给所述第一设备的报文中丢失报文的序号;处理模块,设置为对所述丢失报文的序号进行去重操作,得到丢失报文序号集合;发送模块,设置为将所述丢失报文序号集合发送给所述第二设备;The filtering device includes: a receiving module, configured to receive a sequence number of the lost packet sent by the first device, where the sequence number of the lost packet is used to indicate the packet sent by the second device to the first device The sequence number of the lost message; the processing module is configured to perform deduplication operation on the sequence number of the lost message to obtain a lost message sequence number set; and the sending module is configured to send the lost message sequence number set to the second device;所述第二设备,设置为向所述第一设备发送原始报文,以及接收所述丢失报文序号集合。The second device is configured to send an original message to the first device, and receive the lost message sequence number set.
- 根据权利要求13所述的系统,其中,所述第二设备还包括:The system of claim 13 wherein said second device further comprises:重发模块,设置为向所述第一设备重发修复报文,其中,所述修 复报文为所述丢失报文序号集合中的序号所指示的报文。The retransmission module is configured to resend the repair message to the first device, where the repair message is a message indicated by a sequence number in the lost message sequence number set.
- 根据权利要求14所述的系统,所述第一设备还包括:The system of claim 14, the first device further comprising:纠错模块,设置为接收所述修复报文,并使用所述修复报文对数据进行纠错还原处理,以得到完整的原始报文。The error correction module is configured to receive the repair message, and use the repair message to perform error correction and restoration processing on the data to obtain a complete original message.
- 根据权利要求14所述的系统,所述重发模块还包括:The system of claim 14, the retransmission module further comprising:第一重发单元,设置为确定所述一个或多个第一设备中每个第一设备所丢失的报文;将所述修复报文中与所丢失的报文相同的报文发送给对应的所述第一设备;a first retransmission unit, configured to determine a packet that is lost by each of the one or more first devices, and send a packet with the same packet as the lost packet to the corresponding packet The first device;第二重发单元,设置为将所述修复报文发送给所有的所述第一设备。And a second retransmission unit, configured to send the repair message to all of the first devices.
- 一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至9任一项中所述的方法。A storage medium having stored therein a computer program, wherein the computer program is arranged to execute the method of any one of claims 1 to 9 at runtime.
- 一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至9任一项中所述的方法。An electronic device comprising a memory and a processor, wherein the memory stores a computer program, the processor being arranged to execute the computer program to perform the method of any one of claims 1 to 9.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810443885.0A CN108616334B (en) | 2018-05-10 | 2018-05-10 | Message transmission method, device, system, storage medium and electronic device |
CN201810443885.0 | 2018-05-10 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019214550A1 true WO2019214550A1 (en) | 2019-11-14 |
Family
ID=63662621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2019/085550 WO2019214550A1 (en) | 2018-05-10 | 2019-05-05 | Message transmission method, device and system, storage medium and electronic apparatus |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108616334B (en) |
WO (1) | WO2019214550A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114338559A (en) * | 2021-12-15 | 2022-04-12 | 杭州迪普信息技术有限公司 | Message order preserving method and device |
WO2023131009A1 (en) * | 2022-01-07 | 2023-07-13 | 华为技术有限公司 | Communication system, communication method, and device |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108616334B (en) * | 2018-05-10 | 2020-09-29 | 南京中兴软件有限责任公司 | Message transmission method, device, system, storage medium and electronic device |
CN110932934B (en) * | 2019-11-21 | 2021-07-13 | 中国联合网络通信集团有限公司 | Network packet loss detection method and device |
CN113645175B (en) * | 2020-04-27 | 2023-08-08 | 北京京东乾石科技有限公司 | Data communication method, device, equipment and computer readable storage medium |
CN111885404A (en) * | 2020-07-16 | 2020-11-03 | RealMe重庆移动通信有限公司 | Data transmission method, device and storage medium |
CN113992607B (en) * | 2021-09-09 | 2023-11-03 | 新华三信息安全技术有限公司 | Message processing method and device |
CN114337942B (en) * | 2021-12-29 | 2023-06-13 | 伟乐视讯科技股份有限公司 | Message retransmission method and device and electronic equipment |
CN116830543A (en) * | 2022-01-11 | 2023-09-29 | 华为技术有限公司 | Packet loss processing method, device, switch, sending equipment and data transmission system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030126514A1 (en) * | 2001-12-27 | 2003-07-03 | Microsoft Corporation | Method and system for dynamically adjusting transmit and receive parameters for handling negative acknowledgments in reliable multicast |
CN105721950A (en) * | 2016-03-30 | 2016-06-29 | 浙江宇视科技有限公司 | Reliable media stream transmission device |
CN106301694A (en) * | 2016-08-11 | 2017-01-04 | 浙江宇视科技有限公司 | A kind of reduce the method and device of data packet retransmission number of times in reliable multicast transport |
CN108616334A (en) * | 2018-05-10 | 2018-10-02 | 中兴通讯股份有限公司 | Message transmitting method and device, system, storage medium, electronic device |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6907005B1 (en) * | 2000-07-24 | 2005-06-14 | Telefonaktiebolaget L M Ericsson (Publ) | Flexible ARQ for packet data transmission |
EP1263160A1 (en) * | 2001-06-01 | 2002-12-04 | Telefonaktiebolaget Lm Ericsson | Method and transmitter for an efficient packet data transfer in a transmission protocol with repeat requests |
CN106209915A (en) * | 2016-08-31 | 2016-12-07 | 深圳聚点互动科技有限公司 | A kind of real time flow medium radio transmitting method and system thereof |
-
2018
- 2018-05-10 CN CN201810443885.0A patent/CN108616334B/en active Active
-
2019
- 2019-05-05 WO PCT/CN2019/085550 patent/WO2019214550A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030126514A1 (en) * | 2001-12-27 | 2003-07-03 | Microsoft Corporation | Method and system for dynamically adjusting transmit and receive parameters for handling negative acknowledgments in reliable multicast |
CN105721950A (en) * | 2016-03-30 | 2016-06-29 | 浙江宇视科技有限公司 | Reliable media stream transmission device |
CN106301694A (en) * | 2016-08-11 | 2017-01-04 | 浙江宇视科技有限公司 | A kind of reduce the method and device of data packet retransmission number of times in reliable multicast transport |
CN108616334A (en) * | 2018-05-10 | 2018-10-02 | 中兴通讯股份有限公司 | Message transmitting method and device, system, storage medium, electronic device |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114338559A (en) * | 2021-12-15 | 2022-04-12 | 杭州迪普信息技术有限公司 | Message order preserving method and device |
CN114338559B (en) * | 2021-12-15 | 2024-03-22 | 杭州迪普信息技术有限公司 | Message order preserving method and device |
WO2023131009A1 (en) * | 2022-01-07 | 2023-07-13 | 华为技术有限公司 | Communication system, communication method, and device |
Also Published As
Publication number | Publication date |
---|---|
CN108616334B (en) | 2020-09-29 |
CN108616334A (en) | 2018-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019214550A1 (en) | Message transmission method, device and system, storage medium and electronic apparatus | |
CN106341738B (en) | Bandwidth calculation method, server side and system for streaming media network transmission | |
US11824746B2 (en) | Packet coding based network communication | |
US8175036B2 (en) | Multimedia wireless distribution systems and methods | |
JP5588019B2 (en) | Method and apparatus for analyzing a network abstraction layer for reliable data communication | |
US9565482B1 (en) | Adaptive profile switching system and method for media streaming over IP networks | |
US9781488B2 (en) | Controlled adaptive rate switching system and method for media streaming over IP networks | |
US10623143B2 (en) | Packet coding based network communication | |
US20100260180A1 (en) | Method and apparatus for adaptive forward error correction with merged automatic repeat request for reliable multicast in wireless local area networks | |
US10924216B2 (en) | Packet coding based network communication | |
WO2017144643A1 (en) | Retransmission of data in packet networks | |
WO2011079822A1 (en) | Method and apparatus for ensuring quality of service of internet protocol television live broadcast service | |
US8127196B2 (en) | Server and client for determining error restoration according to image data transmission, and method of determining error restoration according to image data transmission | |
US10666567B2 (en) | Packet coding based network communication | |
CN115883680A (en) | UDP (user Datagram protocol) data transmission method, system and equipment based on ARQ (automatic repeat request) | |
WO2008134897A1 (en) | Method and system for quality service enhancement in networks for media streaming | |
CN109792444B (en) | Play-out buffering in a live content distribution system | |
CN113726817B (en) | Streaming media data transmission method, device and medium | |
WO2018109500A1 (en) | Low delay, error resilient video transport protocol over public ip transit | |
EP3041184B1 (en) | Controlling transmission of data over a lossy transmission path to a client | |
CN113542685B (en) | Real-time ultra-high definition video transmission method based on reliable UDP | |
WO2024141075A1 (en) | Adaptive method and apparatus for video stream bitrate, and computer device and storage medium | |
CN106100803A (en) | The method and apparatus determined is retransmitted for making | |
Tafleen | Fault Tolerance Strategies for Low-Latency Live Video Streaming | |
JP2017092581A (en) | Gateway unit, broadcast receiver, broadcast relay method, broadcast reception method, broadcast relay program, and broadcast reception program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19800840 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 16.04.2021) |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19800840 Country of ref document: EP Kind code of ref document: A1 |