WO2006133655A1 - A method for transmitting data reliably by using multicast and unicast protocol and the host for receiving the data - Google Patents

A method for transmitting data reliably by using multicast and unicast protocol and the host for receiving the data Download PDF

Info

Publication number
WO2006133655A1
WO2006133655A1 PCT/CN2006/001384 CN2006001384W WO2006133655A1 WO 2006133655 A1 WO2006133655 A1 WO 2006133655A1 CN 2006001384 W CN2006001384 W CN 2006001384W WO 2006133655 A1 WO2006133655 A1 WO 2006133655A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
host
packet
multicast
replenishment
Prior art date
Application number
PCT/CN2006/001384
Other languages
French (fr)
Chinese (zh)
Inventor
Hongbo Gu
Original Assignee
Hongbo Gu
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hongbo Gu filed Critical Hongbo Gu
Publication of WO2006133655A1 publication Critical patent/WO2006133655A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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/18Automatic repetition systems, e.g. Van Duuren systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0093Point-to-multipoint

Definitions

  • the invention belongs to the field of communication technologies and relates to data transmission in a network, in particular to a data transmission method for transmitting a supplementary multicast protocol by using a unicast protocol in a data network, which is applicable to all networks having a unicast and multicast communication mode and Network protocol.
  • Background technique
  • the first one is unicast (icast) mode, which is a one-to-one communication mode.
  • the Internet is mainly based on this communication mode;
  • the second is Broadcast broadcast mode, which is a pair of all modes. All hosts on the network receive broadcasts regardless of whether they need it or not. Broadcast information is unconditionally copied on the network. Because of the waste of resources, the broadcast mode is limited to the range of small LAN.
  • the third mode is a multicast mode (multicast, which is also translated into a multi-transmission mode, a multicast mode, and a multicast mode in China), and the wave mode is a communication mode that combines the advantages of the above two modes.
  • the multi-finger refers to multiple hosts in need.
  • the information is copied by the router or the Layer 3 switch according to the conditions in the network. All the hosts in need obtain the copy by sending a request.
  • the only drawback is that the packet loss that occurs during the transmission process is difficult to repair.
  • the current broadband network is characterized in that the bandwidth of the backbone network is much smaller than the sum of the access bandwidths of all users.
  • BT technology uses the principle of P2P to bypass the pressure problem of the server, it cannot bypass the pressure of the network backbone and causes the current backbone of the broadband network. Great pressure, so that there is an ISP sealed BT port. CDN technology can alleviate this situation slightly, but the high cost of its numerous servers is destined to solve the underlying problem.
  • the solution to the above problem is to promote the use of multicast protocols on a large scale.
  • the current multicast protocol uses the routers in the network to instantly copy information on demand, which has the advantage of saving network and server resources, but the multicast protocol has a fatal The defect is that the reliability is poor. Because there is no retransmission mechanism for packet loss during the transmission process, the data transmitted by the multicast protocol is unreliable. This unreliable transmission characteristic seriously hinders the promotion and use of the multicast protocol. And it seems to be impossible to solve in the short term.
  • the reliable multicast protocol currently under discussion tries to pass the original multicast. The address is repackaged and retransmitted. Although it is technically feasible in a small scale, it has hindered its application due to its technical complexity and process reliability in large-scale multicast, because of large-scale multicast. This approach is clearly unrealistic and uneconomical. Content of the invention
  • One of the objectives of the present invention is to provide a method for comprehensively using multicast and unicast protocols to transmit data in a data network to solve the problem of poor reliability of multicast protocol transmission data.
  • the second purpose is to provide a receiving data reception. Host to achieve the reception of transmitted data.
  • the present invention is applicable to all network and network protocols having unicast and multicast communication modes. Since the current network protocols basically use the TCP/IP protocol, IP multicast and IP unicast are taken as an example for ease of understanding. However, it does not mean that the invention is limited to an IP network.
  • the method for reliably transmitting data by using a multicast and a unicast protocol in a data network is a method for repacking and retransmitting a packet of a multicast data stream by using a unicast protocol. It is completely independent of the multicast protocol and uses the existing multicast protocol to transmit. For the packet loss during the transmission process, the unicast protocol is used to complete the replenishment work. This replenishment process can also be embedded in the future IP protocol.
  • the process of data transmission includes sending and receiving, wherein
  • a host that sends or forwards multicast data sends at least one multicast data stream
  • the supplemental host of the agreed address receives the replenishment request from the host receiving the data using at least one agreed unicast address
  • the replenishing host of the agreed address receives and identifies the replenishment request, and locates from the memory and finds the corresponding data according to the scale of the request;
  • the unicast protocol sends the replenishment data to the host that requests the replenishment of the data; the process of receiving the data is as follows - a.
  • the host receiving the data joins at least a multicast group that receives data of a multicast data stream;
  • the host receiving the data continuously monitors whether there is a wrong packet or packet loss data during the process of receiving the multicast data stream; c After the host receiving the data finds the wrong packet and the packet is lost, the host is replenished to the appointed address by the unicast protocol. Issue a replenishment request; d. The host receiving the data integrates the received packetized multicast data with the unicast packet data to make it complete or partially complete.
  • the host for implementing the method for receiving data of the present invention includes the following functional modules:
  • a storage module configured to store the received data
  • a multicast receiving module configured to receive data of a multicast data stream and data received by the multicast protocol, and store the received data in the storage module;
  • the packet loss judging and replenishing control module is configured to determine whether the data of the received multicast data stream is lost, and control the unicast transceiver module to perform replenishment;
  • the single-wave transceiver module is configured to send a replenishment request to the replenishment server by using a unicast protocol, and receive the replenishment data sent by the replenishment server; and then hand over the received replenishment data to the packet loss judgment and replenishment control module. Integration with packet loss data in the storage module.
  • the forwarding device can be a Layer 3 switch, a Layer 2 switch, or a CDN node server.
  • the memory belongs to the fast memory; the hard disk and the optical disk belong to the slow memory, and the speed of the flash memory is between the two, and can be used for both fast memory and slow memory. It is not excluded that the development of the future technology will have a new type of memory as a fast memory or a slow memory. For example, ferroelectric memories, holographic memories, and the like, which are currently under study.
  • Devices in the network that have the ability to process, copy, and forward data information.
  • Devices such as servers, clients, network routers, and switches can be collectively referred to as hosts.
  • the host that provides the multicast data source in the network is the host that sends the multicast, such as the server.
  • a host that forwards broadcast data to a next-level network router or client in the network is called a host that forwards multicast, such as a network router or a Layer 3 switch.
  • the proxy server or CDN network edge server that forwards multicast data can be called a host that sends multicast data, or a host that forwards multicast data.
  • the replenishment host refers to a host that completes the work of replenishing the host receiving data in the present invention, due to the current group.
  • the broadcast protocol does not specify how to handle the packet loss, and does not define where to replenish the packet. Therefore, in the present invention, it is necessary to stipulate where to request the packet data for each packet loss of the multicast data stream. It can be agreed to be the source server itself that sends the multicast stream; it can be agreed to be a router or switch in the network; it can be agreed to be an edge server of the CDN, or a different client; or some new hardware that will appear in the future The device can become a replenishment host as long as it can complete the response replenishment request.
  • the agreed address means that the above-mentioned client, server and switch can be fixedly agreed or fixed by some rules to use certain unicast addresses. Since the client requests the server that sends the multicast stream or the switch router that forwards the multicast stream to replenish the packet loss packet in the original multicast data stream, which is confusing and difficult, the client and the server are in the present invention. And the switch can be fixed by convention or by some rule to supplement with some unicast address.
  • the address convention includes but is not limited to: It may be agreed to replenish one or some multicast addresses with one or some unicast addresses; it may be agreed to use the original unicast address of the server and the client, or may additionally subscribe to the supplemental address.
  • the manner in which the agreed addresses are provided for the above clients, servers, and switches mainly includes, but is not limited to, the following:
  • the address of the replenishing host is obtained from a server responsible for the guidance.
  • the guiding server can also direct the multicast address, as shown in FIG. This replenishment can be used in the manner described by the CDN Edge Server.
  • the set-top box is named because it is placed on the top of the TV set. However, from the technical point of view, it is essentially a simple computer, but it is different from the general computer. The main difference is two points: First, its display interface The output is not a general computer display but a TV; the second is that the operation input interface is not a keyboard mouse but a remote control. In the present invention, the set top box can be completely a client.
  • the metrics mainly include, but are not limited to, the following two types of data-based storage methods, for example, taking the starting point of the file as the origin and measuring the position and length in units of stored length or offset. The other is to directly use the data packet as the unit of measure of the ruler.
  • the label of the data packet can be borrowed from the serial number in the IP header, or it can be numbered by the program in the internal data of the data packet. If the data packet is used as the ruler scale, the scale may be indefinitely long, because the server may send packets of variable length depending on the need. For example, many streaming media transmit their packets indefinitely.
  • the method provided by the invention can conveniently solve the problem of the reliability of the data transmitted by the multicast protocol.
  • the promotion of the technology can make the multicast protocol widely applicable to the transmission of various data in the network, thereby fundamentally solving the troubled broadband network.
  • FIG. 1 is a schematic diagram of a data transmission process of the present invention, wherein FIG. 1a is a schematic diagram of a data transmission process in which an address of a replenishing host is set in a host receiving data; FIG. 1b is a responsible guidance from a certain process in the process of dynamically accessing the network.
  • the server dynamically obtains a schematic diagram of the data transmission process of accessing the replenishment host address.
  • FIG. 2 is a diagram of a first embodiment of the present invention in which the server that sends the multicast and the replenishment server are the same physical server.
  • FIG. 3 is a diagram of a second embodiment of the present invention in which the replenishment server is located at the edge of the network and is dedicated to replenishing clients for a certain area. .
  • FIG. 4 is a diagram showing a third embodiment of the present invention in which partial replenishment is performed by a client, and each client concurrently serves as a complement for other clients.
  • FIG. 5 is a diagram of a fourth embodiment of the present invention in which a certain level or each level of routers can discover packet loss and request replenishment to a higher level.
  • Figure 6 is a simplified logic block diagram of the present invention for determining packet loss.
  • FIG. 7 is a smart logic block diagram of the present invention for determining packet loss.
  • FIG. 8 is a functional block diagram of a receiving data host of the present invention. detailed description
  • the method of the present invention is divided into a transmission mode and a reception mode as in the television system, and the two can be separately implemented as separate systems, which are implemented by different individuals, but for convenience of description and understanding of the cooperation, the sender and the receiver are provided. The two are put together to describe their operation.
  • the data transmission process of the present invention is:
  • the host receiving the data continuously monitors whether there are error packets and packet loss data during the process of receiving the multicast data stream. After discovering and receiving the data of the error packet and the packet loss, the host sends the packet to the replenishing host in a unicast protocol. Replenishment request
  • the replenishing host uses at least one agreed unicast address, receives the replenishment request, and finds corresponding data from the memory according to the positioning rule of the replenishment request, and receives the data from the request replenishment packet by the unicast protocol.
  • the host sends the supplemental data;
  • the host receiving the data integrates the received packetized multicast data with the unicast packet data to make it a complete or partially complete data stream.
  • the address of the replenishing host of the present invention is to dynamically obtain data for accessing the replenishment host address from a server responsible for guiding the network during the process of dynamically accessing the network, and the data transmission process is:
  • the guidance server After receiving the guidance request, the guidance server sends guidance information to the host receiving the data;
  • the host receiving the data directs the guidance information sent by the server to request to join the multicast and receive the multicast data stream;
  • the host receiving the data continuously monitors whether there are error packets and packet loss data according to the processes of FIG. 6 and FIG. 7, and after discovering and receiving the data of the error packet and the packet loss, Issue a replenishment request to the replenishment host in a unicast protocol;
  • the replenishing host uses at least one agreed unicast address, receives the replenishment request, and finds corresponding data from the memory according to the positioning rule of the replenishment request, and receives the data from the request replenishment packet by the unicast protocol.
  • the host sends the supplemental data;
  • the host receiving the data integrates the received packetized multicast data with the unicast packet data to make it a complete or partially complete data stream.
  • This method is mainly used for transporting streaming media, but it can also be used to transmit other data because it solves the reliability of transmission.
  • the first embodiment of the present invention is a basic method for implementing data transmission in a data network, as shown in FIG. In Figure 2, it consists of a server, several clients, and a network, where the network includes several routers and switches.
  • Server A sends several multicast data streams to several multicast addresses.
  • Client A applies for multicast with address 224.
  • the network router responds to the request sent by the client and copies the group to the client. The data stream in broadcast 1. Under normal circumstances, if a packet loss packet is not repaired during the replication transmission, it is even difficult for the client to find the packet loss. In this method, the client or router discovers the packet loss in a unique manner.
  • the client sends a request packet to the server in a unicast protocol, requesting the server to resend one or several data packets.
  • the server sends one or several packets to the client in a unicast protocol as requested by the client to compensate for the data lost by the multicast packet loss.
  • the host receiving the data can either use the structure of a general-purpose computer such as a client; it can also be a device specially designed for its specific functions such as a router, and even the module can be an Application Specific Integrated Circuit (ASCI).
  • ASCI Application Specific Integrated Circuit
  • they must have several modules to perform their functions: a storage module for storing received data; a multicast receiving module for receiving multicast data; a packet loss determination and replenishment control module, Determining whether the received data generates packet loss, and controlling the unicast transceiver module to perform replenishment; the single-wave transceiver module is configured to send a replenishment request to the replenishment server by using a unicast protocol and receive a supplement sent by the replenishment server.
  • Package data is configured to send a replenishment request to the replenishment server by using a unicast protocol and receive a supplement sent by the replenishment server.
  • these functional modules can be specially designed modules.
  • these modules are implemented by controlling a general-purpose CPU, a memory, and a data transfer interface, wherein the multicast receiving module is controlled by the program to control the CPU and the network card.
  • the memory module is composed of the program by controlling the CPU and by the memory; the packet loss judgment and the packet replacement control module are constituted by the program controlling the CPU memory; the single wave transceiver module is controlled by the program.
  • the CPU and the network card are configured; the process of receiving the data by each functional module is as shown in FIG. 8.
  • the multicast receiving module stores the received data into the storage module; the packet loss judgment and the packet replacement control module judges the received data, wherein the specific operation process of the packet loss module and the packet replacement control module may be as shown in the figure.
  • the simple way shown in 6 Or the intelligent mode shown in Figure 7, the main function is to be able to determine the packet loss according to the serial number of the data packet, to determine the recalculation of the packet number and the packet loss in this case, and further intelligent functions are in the previous If the packet sequence number of the multicast data transmitted by the level is abnormally arranged, the packet loss can be accurately determined.
  • the packet loss judgment and the packet replacement control module find that the packet is lost, the location and length of the packet loss are used, and the packet is used.
  • the information is controlled by the unicast transceiver module to perform replenishment; the unicast transceiver module requests replenishment from the replenishing host of the agreed address, and after receiving the replenishment data, it is handed over to the packet loss judgment and the replenishment control module;
  • the judgment and replenishment control module integrates the replenishment data with the packet loss data received by the multicast protocol stored in the storage module according to the packet loss record and the ruler, so as to become complete or partially complete data.
  • the discovery of packet loss and replenishment is realized by complex reciprocating responses such as ACK and NACK, but in the current multicast protocol, there is no such process, and it is difficult to implement this process. Therefore, the current multicast protocol itself cannot automatically discover the packet loss.
  • the client program or the next-level router only receives the multicast data, but does not know whether the data is complete.
  • the present invention adopts adding a sequence number information in ascending or descending order in each data packet, and may also consider using the packet sequence number in the IP packet header to find the packet loss according to the sequence of the data packet, as shown in FIG.
  • the order of the data packets is found to be 2, 3, and 6, the packets of 4 and 5 are considered to be lost.
  • the intelligent process first counts the packet loss into the packet loss list.
  • the data of No. 4 and No. 5 has not been found yet.
  • the judgment condition of the waiting time can be used in a plurality of different manners. In the delay condition of FIG. 7, four data packets are postponed from the first packet loss, and in the actual application, the delay number can be calculated from the last packet loss. Packets, or other more complex algorithms, are important for complex networks where multi-level transmissions are multi-staged.
  • the serial number of the data packet is not infinite, so there is a problem that when the serial number is used up, it is necessary to use the serial number from the beginning, that is, the serial number of the data packet is restarted. At this time, it is possible to generate confusion of judgment, and then it is necessary. To judge complex conditions.
  • the maximum packet number is 65535.
  • the order in which the client receives the packets is 65532, 65533, 3, 4.
  • the subsequent packet sequence number is smaller than the previous packet.
  • the packet server sends data from 65534 to the maximum sequence number 65535 and from the lowest sequence number 0 to 2 for a total of five packets.
  • the length of a piece of data may be short.
  • the server needs to start from the beginning. Cyclic transfer of data, if you ignore the structure of the data, the serial number continues to increase, you can use the above processing method to solve.
  • the structure of the data is taken into consideration and the data is expected to correspond to the serial number, the data sequence number must be started from the beginning when the data is re-circulated from the beginning. In this case, the client needs to know in advance the length of the looped data and judge it. If the length of this segment of data is longer than the sequence number range, it is necessary to combine the packet sequence number and the length of the segment data for comprehensive judgment.
  • Another special case is that if the second layer of the network finds a wrong packet, it may discard it directly.
  • the data link layer of the Ethernet network will perform a CRC check on each packet and find that the error will discard it. It is considered a packet loss.
  • the location of packet loss data is an important issue that needs to be solved by the method of the present invention.
  • the data packet is buffered in the form of a data packet in the server and the router, and any data that is just sent out at the first level can be requested to be replenished to the next level.
  • This is in the TCP/IP protocol stack.
  • the functions that have been defined, these functions are automatically done by the router and the underlying IP stack of the computer in the network.
  • the replenishment function needs to be implemented by the software functions of the client and the server, and there is a problem of positioning, that is, the data to be transmitted needs to have a ruler mechanism to locate and measure it to ensure that it is guaranteed.
  • the replenishment data sent by the server to the client is that it needs to be supplemented and integrated with the original data.
  • One measure is based on how data is stored, for example, taking the starting point of the file as the origin and measuring its position and length in units of stored length or offset.
  • Another way to measure is to use packet positioning directly, that is, a buffer controlled by the server's program.
  • This buffer can be on the hard disk or in the memory.
  • the data is stored in the way that it will be sent.
  • the form of the packet is stored.
  • the content of each lk byte is a data packet
  • the storage method is to use lk bytes as a storage unit
  • the storage unit of each data packet is a metric ruler.
  • the storage unit may also be indefinitely long. For example, one frame or several frames of the streaming medium are used as the storage unit and the metric scale, and the scale of the scale is not fixed. But this does not affect the use of the ruler, Because this ruler is not used to measure the absolute length of the data, but to locate the lost and replenished data, so as long as he can correctly find the replacement data.
  • the client After the client finds that the packet is lost, it can request the replenishment immediately. It can also wait for a period of time to request the replenishment of all the packets found during this period.
  • the first method is suitable for situations where the timeliness of the data is high, such as IPTV, VOD, etc.; the second mode is suitable for the case where the timeliness of the data is low, such as downloading.
  • the packet can be requested directly from the upstream router or the Layer 3 switch, and the upper router or switch will retransmit the packet, but the existing multicast protocol cannot complete such a process.
  • the replenishment work can be completed by the source server that sends the multicast data stream.
  • the client finds the packet loss, it sends a request to the source server, which describes the sequence number of the lost packet, or directly describes the missing data according to the data meter, so that the server knows which client is missing the data. .
  • the network card that the server sends multicast must have a unicast address, and the multicast packet sent by the server carries the unicast address, and the client can use the unicast address as the target address. Send the replenishment request directly to the replenishment server. Of course, you can also specify an address or even another host's address. .
  • a network card of the server can separately send multiple multicast data streams to multiple multicast addresses.
  • the client requests the replenishment to be a multicast to the multicast data stream in which the packet loss has occurred.
  • the address is sent, but a replenishment request is sent to a unicast address.
  • the simple method is that each multicast address corresponds to a unicast replenishment address, but this way consumes a lot of unicast addresses.
  • the more cost-effective way is that multiple multicast addresses correspond to a single unicast address, so there is a data on how to identify which multicast data stream the client needs to supplement.
  • consider the agreement server to send multicast The data stream uses different port numbers.
  • the server replenishment service is also a different port for unicast addresses.
  • the server sends three multicast streams with addresses 224. 2. 2. 1 : 4001 , 224. 2. 2. 2 : 4002 , 224. 2. 2. 3 : 4003 , unicast address of the server NIC Is 192. 168. 2. 2. In this way, it is possible to "contract" the packet loss found in the process of receiving the data stream of the multicast address 224. 2. 2. 3 : 4003, and always send the unicast address to the server 192. 168. 2. 2 : 4003 Send a replenishment request.
  • the server receives the replenishment request from port 4003, it understands that the client needs to repackage the data stream of 224. 2.2.3.
  • Another safer way is that the client's replenishment request directly describes a certain data packet of a data stream to be supplemented by a certain multicast address in a certain format, so that the server does not need to open multiple ports to correspond to multiple multicasts.
  • the advantage of the address is that the server has fewer ports, which makes the server more secure.
  • the server sends a replenishment packet to the client in response to the client request to send the replenishment data directly to the source address of the packet that the client requested to repackage.
  • the server sends a replenishment packet to the client in response to the client request to send the replenishment data directly to the source address of the packet that the client requested to repackage.
  • the client has multiple unicast addresses and it requires the server to send the replenishment data to another address of the client, it can also be sent as required.
  • the data sender can refuse service for such a receiver; it can also set a limit value in the software of the receiver, and if the packet loss rate exceeds a certain value, it will not request the packet.
  • the memory buffer of the server can be processed differently from the general multicast method to improve the efficiency and speed of the replenishment.
  • the current multicast protocol does not have a supplement, so the current program and operating system will immediately send the multicast data out of the memory buffer.
  • the server can establish a shared fast memory buffer.
  • the fast memory mainly refers to the memory RAM, mainly including DDR RAM, ECC RAM, etc., and there may be better fast memory in the future.
  • Special storage hardware can be set up on the network card for buffering.
  • a memory buffer or a buffer we still call it a memory buffer or a buffer.
  • a normal multicast program clears a multicast packet immediately after it is sent out.
  • the shared memory buffer is used for both the multicast stream and the unicast packet, so this memory buffer The data in the data is not cleared immediately after being sent out through multicast, but is kept in the memory buffer for a period of time. If the client requests replenishment during this period, the server immediately reads the corresponding data from the memory buffer and unicasts it. The form is sent to the client that made the request.
  • a server or server group can provide at least one replenishment service for the current broadband metropolitan area network to ensure reliable data transmission using multicast in the metropolitan area network.
  • the second embodiment of the present invention is an improvement of the above embodiment 1, as shown in FIG.
  • the load of the unicast protocol server is often very heavy.
  • unicast is only used for replenishment
  • most of the data streams are transmitted by multicast.
  • This is also a huge load, especially when the network environment is relatively poor and the packet loss is serious.
  • the replenishment service can be done exclusively by one or several servers, which can even be distributed in different locations on the network.
  • the location of the unicast replenishment server can be borrowed from the commonly used CDN (abbreviation of Content distribution network or Content delivery network) and anycast mode to spread the load of the replenishment to the edge of the network, which is closer to the client.
  • CDN abbreviation of Content distribution network or Content delivery network
  • anycast mode to spread the load of the replenishment to the edge of the network, which is closer to the client.
  • the server is completed, and its advantage is that the replenishment response is fast and the pressure on the network backbone is small. In this way, it is necessary to
  • One way is anycast mode.
  • the client still seeks to replenish the packet according to the unicast address of the multicast source server, but the network device automatically relocates the request of one area to another server closer to the client, "convention" Which areas of the request relocation are sent to which server is set in the network device.
  • Another way is to directly ask the client to seek replenishment services from another "contracted address" server. This can be done in a variety of techniques. It can be specified that the client's program must first ask the main server which one to go to. Or those servers seeking replenishment, the server may indicate to which or those servers seek replenishment according to the area to which the client's address belongs, or send a list to the client, and the client autonomously decides which one or those servers to seek replenishment. ;
  • the client it is also possible to set the client to a certain contracted server replenishment when the client establishes a connection with the source server or requires replenishment; it can also refer to the DNS method, and set an indication server, client software for each region in each region. You need to manually or automatically set the address of the local server, request replenishment from this server or ask which server or servers you can seek replenishment.
  • the third embodiment of the present invention is another modification of the embodiment 1, as shown in FIG.
  • the P2P method is used in the replenishment mode.
  • the current P2P transmission method is to transmit all the information from each client to the client.
  • the server only provides some guidelines, such as BT.
  • the result of this is that each client has to go to one or more clients. Services, sometimes providing services to others with more bandwidth than the data they receive, which is too heavy for network backbones and clients.
  • the primary data is also transmitted via multicast sent by the server, and only a portion of the missing data is supplemented by mutual service between the clients. To do this, you need to maintain a list in the server that indicates which clients are receiving or have received multicast data.
  • a client When a client starts receiving a multicast, it notifies the server that the server will receive the same.
  • the unicast address of the client "buddy" of this multicast data advertises this client and also notifies it as a partner record to other partners.
  • this client finds that a packet loss or data is missing, it can request supplementary data from its "partner", and another one or several clients that are its partners send missing data to it, that is, another client is part-time. Complete the work that should have been done by the make-up server. Similarly, this client can also provide replenishment services to other clients.
  • the server and multiple clients form a server group to work together to complete the multicast transmission and replenishment, but the part of the client that serves part-time for others can be logically regarded as Part of the server.
  • the fourth embodiment of the present invention is an improvement of the above-described Embodiment 1, Embodiment 2, and Embodiment 3. Because the methods of the above embodiments are supplemented by a computer, whether by using a server or a client, the replenishment method is easy to implement, but the result of relying on the software of the computer is that the efficiency is relatively low, and The reaction rate is relatively slow. In the unicast TCP protocol, the work of replenishing packets is implemented by the router at the upper level, and the processing efficiency and response speed are fast. Therefore, you can consider the work of replenishing the package to be implemented by a router or a Layer 3 switch, as shown in Figure 5.
  • This method can implement step-by-step replenishment of unicast protocols in a large-scale network with multi-level routing.
  • you want a router or a Layer 3 switch to implement this function you need to make a large-scale software for its built-in software, operating system, or even hardware. change.
  • the simpler implementation method is to directly implement the above-mentioned work done by the server to the router, but this requires the router to have not only the functions of the three layers of the 0SI seven-layer protocol but also the functions of the fourth layer or higher. Because it not only needs to view the information of the IP header, but also must open the IP packet, and view the contents to know the packet loss of the client. Fortunately, the current technology realizes four-layer exchange, and even higher-level functions are not difficult.
  • the more complex but more efficient processing method is to directly reflect the client's replenishment requirements in the IP header. This requires some modifications to the existing IP protocol stack. First, there must be a flag in the IP packet header to indicate the client. This packet of the machine is a request packet for requesting replenishment.
  • the router distinguishes the replenishment request and other information packets by this flag, and then the router can propose this information for further processing.
  • the client or Which multicast stream needs to be replenished for the next-level router and how much needs to be filled can be described in the header or in the packet.
  • the client For which multicast stream the client needs to replenish, it can also be identified by the method corresponding to the port number as described above.
  • each level of router can transmit multicast in this improved manner, it can implement step-by-step replenishment in the network.
  • Each level of router in the network implements reliable transmission of multicast, instead of the first three.
  • the multicast data needs to be transmitted to the client receiving the data before the packet loss can be found. But in this way, each router is both the host that receives the data and the host that sends the data. This involves how it handles the received multicast and supplemental data and transmits it to the next-level host.
  • the transmission includes but is not limited to the following:
  • the added data packets are directly integrated into the original order regardless of their original order.
  • the original multicast data stream is transmitted to the next stage. Because the previous stage of the replenishment requires a time process, the data packet that is replenished by the replenishment in the multicast data stream of the host of the next level is sent to the host. It will lag behind the normal packet sequence, and the next-level host may misjudge this packet loss when the data packet that lags behind the normal sequence has not arrived. This requires the host to judge the packet loss in a more flexible and intelligent way, for example, as described in "How to find packet loss".
  • each host After receiving the multicast, each host does not immediately copy and forward, but waits for a certain period of time. This time is enough for the host to discover the loss, request the replenishment, and get the replenishment of the host of the upper level.
  • the data packets are integrated into the original multicast data stream in the original order and transmitted to the next level.
  • the host of this level puts the packets that are supplemented by the unicast protocol from the upper-level host into the cache without adding it to the original multicast data stream, but one problem it faces is its next The host will also find that these packets are lost. Of course, some new packets will be found in the next-level transmission of the host. In this case, the host can use unicast for both cases. The protocol replenishes the next-level host.
  • the entire network uses the multicast protocol to transmit reliable data.
  • the network environment is Huawei's S3526 Layer 3 switch and S2026Z Layer 2 switch. During the test, there are other normal unicast network communication.
  • the server is P4 2. 8G/1G RAM, and the client is P3 1G/256 RAM notebook.
  • the simulation made transmission performance test statistics in two different environments.
  • the first group is the transmission effect statistics under the normal campus network environment, as shown in Table 1.
  • the second group is dedicated to the use of very poor but unicast ping-through network cable to simulate transmission performance statistics in harsh environments, as shown in Table 2.
  • Network environment BIG HAMMER6808 three-layer switch and Haminer24E Layer 2 switch in the harbor. There are other normal unicast network communication during the test.
  • the server is P4 2. 8G/1G RAM and the client is P4 2. 8G/256 RAM.
  • the simulation also made transmission performance test statistics in two different environments.
  • the first group is the transmission effect statistics in the normal campus network environment, as shown in Table 3.
  • the second group is a network that uses very poor but unicast pings.
  • the line simulates the transmission effect statistics in a harsh environment, as shown in Table 4.
  • the poor network environment will cause the multicast packet loss rate to increase.
  • the replenishment server load is very low, and one server can easily undertake the work of replenishing tens of thousands of clients.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

A method for transmitting data reliably by using the multicast and unicast protocol together includes: the host which sends or forwards the multicast data sends at least one multicast data stream to the host which receives the data; the host which receives the data monitors whether there is error packet and lost packet during receiving the multicast data stream, and sends retransmission request to the retransmission host whose address is appointed by using the unicast protocol after it detects that error packet is received and packed is lost; the retransmission host whose address is appointed receives the retransmission request by using at least one appointed unicast address and sends the retransmission packet to the receiving data host which requests retransmission by using unicast protocol; the receiving data host combines the received multicast data which lost packet and the unicast retransmission data so as to be complete or partly complete data stream. This invention can resolve the poor reliability of transmitting data by multicast protocol in the data network and can be used in the network and network protocol which have unicast and multicast communication modes.

Description

用组播和单播协议可靠传输数据的方法及接收数据的主机 技术领域  Method for reliably transmitting data by multicast and unicast protocol and host for receiving data
本发明属于通信技术领域,涉及网络中的数据传输,特别是一种在数据网络中用单 播协议传输补充组播协议的数据传输方法,适用于所有具有单播和组播通讯模式的网络 和网络协议。 背景技术  The invention belongs to the field of communication technologies and relates to data transmission in a network, in particular to a data transmission method for transmitting a supplementary multicast protocol by using a unicast protocol in a data network, which is applicable to all networks having a unicast and multicast communication mode and Network protocol. Background technique
目前在数据网络中传输数据分为三大模式, 第一种是单播 (皿 icast ) 模式, 它是 一对一的通讯模式,例如, Internet就是以这种通信模式为主;第二种是广播 broadcast 模式, 它是一对所有的模式, 所有在网上的主机无论其是否需要都收到广播,广播信息 在网络上进行无条件复制, 由于其浪费资源所以广播方式被限制在小型局域网的范围 内; 第三种模式是组播模式 (multicast, 国内也有将其翻译成多目传送模式、 多点传 送模式、 多播的模式), 该组波模式是兼具上述两种模式优点的通讯方式, 是一对多的 通讯方式,这里的多指的是有需要的多个主机,信息在网络中由路由器或三层交换机进 行按条件按需要的复制,所有有需要的主机通过发送请求获得复制的信息,唯一的缺点 就是在传输过程中发生的丢包难以补充修复。  Currently, data transmission in data networks is divided into three major modes. The first one is unicast (icast) mode, which is a one-to-one communication mode. For example, the Internet is mainly based on this communication mode; the second is Broadcast broadcast mode, which is a pair of all modes. All hosts on the network receive broadcasts regardless of whether they need it or not. Broadcast information is unconditionally copied on the network. Because of the waste of resources, the broadcast mode is limited to the range of small LAN. The third mode is a multicast mode (multicast, which is also translated into a multi-transmission mode, a multicast mode, and a multicast mode in China), and the wave mode is a communication mode that combines the advantages of the above two modes. It is a one-to-many communication method. The multi-finger refers to multiple hosts in need. The information is copied by the router or the Layer 3 switch according to the conditions in the network. All the hosts in need obtain the copy by sending a request. The only drawback is that the packet loss that occurs during the transmission process is difficult to repair.
目前的宽带网的结构特点是主干网络带宽远小于所有用户接入带宽之和,在这种网 络结构中,如果只用单播协议传输数据、为客户提供宽的服务必然会存在客户带宽无法 得到满足的情况。单播传输协议提供宽带服务需要两个等式,一个是: 网络主干总带宽 =所有客户接入带宽之和; 另一个是: 所有服务器总带宽=所有客户机总带宽之和。要 在宏观上实现这两个等式几乎是不可能完成的任务, 虽然 BT技术运用 P2P的原理绕过 了服务器的压力问题,但是它无法绕过网络主干的压力,对目前宽带网主干造成了极大 的压力, 以至于有 ISP封了 BT端口。 CDN技术能稍微缓解这一状况, 但其众多服务器 的高昂的成本注定其不可能解决根本问题。  The current broadband network is characterized in that the bandwidth of the backbone network is much smaller than the sum of the access bandwidths of all users. In this network structure, if only the unicast protocol is used to transmit data and provide a wide service to the customer, the bandwidth of the client cannot be obtained. Satisfied situation. The unicast transport protocol provides two services for broadband services. One is: total bandwidth of the network backbone = the sum of all customer access bandwidths; the other is: total bandwidth of all servers = sum of total bandwidth of all clients. It is almost impossible to achieve these two equations on a macroscopic level. Although BT technology uses the principle of P2P to bypass the pressure problem of the server, it cannot bypass the pressure of the network backbone and causes the current backbone of the broadband network. Great pressure, so that there is an ISP sealed BT port. CDN technology can alleviate this situation slightly, but the high cost of its numerous servers is destined to solve the underlying problem.
" 解决上述问题的方法是大规模推广使用组播协议,现行的组播协议用网络中的路由 器按需对信息进行即时复制,具有能节省网络和服务器资源的优点,但是组播协议存在 一个致命的缺陷就是可靠性差, 由于其在传输过程中, 对于丢包没有重传机制, 所以利 用组播协议传输的数据是不可靠的,这种不可靠传输特性严重阻碍了组播协议的推广使 用,而且在但短期内似乎无法解决。 目前正在讨论的可靠组播协议试图通过原来的组播 地址进行补包重传,虽说在小规模范围内其技术可行,但在大规模的组播范围内由于其 技术的复杂性和实现过程可靠性一直阻碍了其应用,因为在大规模的组播范围内这种方 式明显是不现实和不划算的。 发明的内容 "The solution to the above problem is to promote the use of multicast protocols on a large scale. The current multicast protocol uses the routers in the network to instantly copy information on demand, which has the advantage of saving network and server resources, but the multicast protocol has a fatal The defect is that the reliability is poor. Because there is no retransmission mechanism for packet loss during the transmission process, the data transmitted by the multicast protocol is unreliable. This unreliable transmission characteristic seriously hinders the promotion and use of the multicast protocol. And it seems to be impossible to solve in the short term. The reliable multicast protocol currently under discussion tries to pass the original multicast. The address is repackaged and retransmitted. Although it is technically feasible in a small scale, it has hindered its application due to its technical complexity and process reliability in large-scale multicast, because of large-scale multicast. This approach is clearly unrealistic and uneconomical. Content of the invention
本发明的目的之一是提供一种在数据网络中综合运用组播和单播协议传输数据的 方法, 以解决组播协议传输数据可靠性差的问题; 目的之二是提供一种接收数据的接收 主机, 以实现对传送数据的接收。  One of the objectives of the present invention is to provide a method for comprehensively using multicast and unicast protocols to transmit data in a data network to solve the problem of poor reliability of multicast protocol transmission data. The second purpose is to provide a receiving data reception. Host to achieve the reception of transmitted data.
本发明的技术方案是这样实现的:  The technical solution of the present invention is implemented as follows:
本发明适用于所有具有单播和组播通讯模式的网络和网络协议,由于现行的网络协 议基本上都是用 TCP/IP协议, 为了便于理解就以 IP组播和 IP单播为例来说明, 但并 不表示本发明局限于 IP网络。  The present invention is applicable to all network and network protocols having unicast and multicast communication modes. Since the current network protocols basically use the TCP/IP protocol, IP multicast and IP unicast are taken as an example for ease of understanding. However, it does not mean that the invention is limited to an IP network.
本发明提出的在数据网络中综合运用组播和单播协议可靠传送数据的方法方法是 一种完全采用单播协议对组播数据流的丢包进行补包重传的方式,这种方式可以完全独 立于组播协议,使用现有的组播协议传输,对于传输过程中的丢包由单播协议完成补包 工作, 此补包流程也可以嵌入将来的 IP协议中。 该数据传输的过程包括发送和接收, 其中,  The method for reliably transmitting data by using a multicast and a unicast protocol in a data network is a method for repacking and retransmitting a packet of a multicast data stream by using a unicast protocol. It is completely independent of the multicast protocol and uses the existing multicast protocol to transmit. For the packet loss during the transmission process, the unicast protocol is used to complete the replenishment work. This replenishment process can also be embedded in the future IP protocol. The process of data transmission includes sending and receiving, wherein
所述的发送数据过程如下: '  The process of transmitting data is as follows: '
a. 发送或转发组播数据的主机发送至少一条组播数据流;  a host that sends or forwards multicast data sends at least one multicast data stream;
b. 约定地址的补包主机使用至少一个约定的单播地址接收来自接收数据的主机的 补包请求;  b. The supplemental host of the agreed address receives the replenishment request from the host receiving the data using at least one agreed unicast address;
c 约定地址的补包主机接收并识别补包请求,并按照请求的标尺刻度从存储器中定 位并找到相应的数据;  c The replenishing host of the agreed address receives and identifies the replenishment request, and locates from the memory and finds the corresponding data according to the scale of the request;
d. 约定地址的补包主机找到相应的数据后,以单播协议向请求补包的接收数据的主 机发送补包数据; ' ' 所述的接收数据过程如下- a. 接收数据的主机加入至少一个组播组, 接收组播数据流的数据;  d. After the replenishing host of the agreed address finds the corresponding data, the unicast protocol sends the replenishment data to the host that requests the replenishment of the data; the process of receiving the data is as follows - a. The host receiving the data joins at least a multicast group that receives data of a multicast data stream;
b. 接收数据的主机在接收组播数据流的过程中不断监测是否有错包和丢包数据; c 接收数据的主机发现错包和丢包后,以单播协议向约定地址的补包主机发出补包 请求; d. 接收数据的主机将接收到的有丢包的组播数据与单播补包数据进行整合,使之成 为完整或部分完整的数据。 b. The host receiving the data continuously monitors whether there is a wrong packet or packet loss data during the process of receiving the multicast data stream; c After the host receiving the data finds the wrong packet and the packet is lost, the host is replenished to the appointed address by the unicast protocol. Issue a replenishment request; d. The host receiving the data integrates the received packetized multicast data with the unicast packet data to make it complete or partially complete.
实现本发明接收数据方法的主机包括如下几个功能模块:  The host for implementing the method for receiving data of the present invention includes the following functional modules:
存储模块, 用于存储接收到的数据;  a storage module, configured to store the received data;
组播接收模块,用于接收组播数据流的数据和以组播协议收到的有丢包的数据, 并 将接收到的这些数据存储到存储模块中;  a multicast receiving module, configured to receive data of a multicast data stream and data received by the multicast protocol, and store the received data in the storage module;
丢包判断及补包控制模块,用于判断所收到的组播数据流的数据是否产生丢包,并 控制单播收发模块进行补包;  The packet loss judging and replenishing control module is configured to determine whether the data of the received multicast data stream is lost, and control the unicast transceiver module to perform replenishment;
单波收发模块,用于以单播协议向补包服务器发送补包请求,并接收补包服务器发 来的补包数据;再将收到的补包数据交给丢包判断及补包控制模块与存储模块中的丢包 数据进行整合。  The single-wave transceiver module is configured to send a replenishment request to the replenishment server by using a unicast protocol, and receive the replenishment data sent by the replenishment server; and then hand over the received replenishment data to the packet loss judgment and replenishment control module. Integration with packet loss data in the storage module.
. 本发明中有关技术术语的含义及内容进一步解释如下:  The meaning and content of the technical terms in the present invention are further explained as follows:
1 . 转发设备  1. Forwarding device
是指在数据网络中转发、 复制数据信息的设备, 该转发设备可以是三层交换机、 二层交换机、 CDN结点服务器等设备。  A device that forwards and copies data information in a data network. The forwarding device can be a Layer 3 switch, a Layer 2 switch, or a CDN node server.
2. 快速存储器  2. Fast memory
是指能够快速存取数据的存储器。 在当前的技术条件下, 内存属于快速存储器; 硬盘、 光盘属于慢速存储器, 闪存的速度介于两者之间, 既可以当快速存储器用, 也 可以当慢速存储器用。不排除将来技术的发展会有新型的存储器成为快速存储器或慢 速存储器。 例如, 现在正在研究的铁电存储器和全息存储器等。  It refers to a memory that can quickly access data. Under the current technical conditions, the memory belongs to the fast memory; the hard disk and the optical disk belong to the slow memory, and the speed of the flash memory is between the two, and can be used for both fast memory and slow memory. It is not excluded that the development of the future technology will have a new type of memory as a fast memory or a slow memory. For example, ferroelectric memories, holographic memories, and the like, which are currently under study.
' 3. 主机  ' 3. Host
是指网络中的那些有能力对数据信息进行处理、复制和转发的设备,例如服务器、 客户机、 网络路由器、 交换机等设备都可以统称为主机。  Refers to devices in the network that have the ability to process, copy, and forward data information. Devices such as servers, clients, network routers, and switches can be collectively referred to as hosts.
4. 发送或转发组播数据的主机  4. Host that sends or forwards multicast data
在网络中提供组播数据源的主机就是发送组播的主机, 例如服务器。在网路中向 下一级网络路由器或客户机转发转播数据的主机就称为转发组播的主机,例如网络路 由器或三层交换机。转发组播数据的代理服务器或 CDN网络边缘服务器既可以称之为 发送组播数据的主机, 也可以称之为转发组播数据的主机。  The host that provides the multicast data source in the network is the host that sends the multicast, such as the server. A host that forwards broadcast data to a next-level network router or client in the network is called a host that forwards multicast, such as a network router or a Layer 3 switch. The proxy server or CDN network edge server that forwards multicast data can be called a host that sends multicast data, or a host that forwards multicast data.
5. 约定地址的补包主机  5. Replenishment host with agreed address
补包主机是指在本发明中完成对接收数据的主机补包工作的主机, 由于现行的组 播协议没有规定对于丢包如何处理, 更没有定义在哪里补包, 所以在本发明中需要约 定针对每个组播数据流的丢包要到哪里寻求补包数据。它可以约定是发送组播流的源 服务器本身; 可以约定是网络中的路由器或交换机; 可以约定是 CDN的边缘服务器, 或是约定另外一台客户机; 也不排除将来出现的某种新型硬件设备, 只要它能完成响 应补包请求都可以成为补包主机。 The replenishment host refers to a host that completes the work of replenishing the host receiving data in the present invention, due to the current group. The broadcast protocol does not specify how to handle the packet loss, and does not define where to replenish the packet. Therefore, in the present invention, it is necessary to stipulate where to request the packet data for each packet loss of the multicast data stream. It can be agreed to be the source server itself that sends the multicast stream; it can be agreed to be a router or switch in the network; it can be agreed to be an edge server of the CDN, or a different client; or some new hardware that will appear in the future The device can become a replenishment host as long as it can complete the response replenishment request.
约定地址, 是指对上述客户机、 服务器和交换机可以固定约定或用某种规则^定 用某些单播地址进行补包。由于客户机要求发送组播流的服务器或转发组播流的交换 机路由器在原来的组播数据流当中对丢包错包进行补包容易造成混乱且比较困难,所 以在本发明中客户机、服务器和交换机可以固定约定或用某种规则约定用某些单播地 址进行补包。该地址约定包括但不限于: 可以约定用某个或某些单播地址对一个或一 些组播地址补包; 可以约定使用服务器和客户机原有的单播地址, 也可以另外约定补 包地址; 还可以在传输过程中根据负载临时约定补包地址; 也可以约定由另外一个正 在接收此数据流或已经接收到此数据的客户机给自己补包,而此提供补包服务的客户 机的单播地址也就成为了补包地址。  The agreed address means that the above-mentioned client, server and switch can be fixedly agreed or fixed by some rules to use certain unicast addresses. Since the client requests the server that sends the multicast stream or the switch router that forwards the multicast stream to replenish the packet loss packet in the original multicast data stream, which is confusing and difficult, the client and the server are in the present invention. And the switch can be fixed by convention or by some rule to supplement with some unicast address. The address convention includes but is not limited to: It may be agreed to replenish one or some multicast addresses with one or some unicast addresses; it may be agreed to use the original unicast address of the server and the client, or may additionally subscribe to the supplemental address. It is also possible to replenish the address according to the temporary contract of the load during the transmission; it is also possible to stipulate that another client that is receiving the data stream or has received this data replenishes itself, and the client that provides the replenishment service The unicast address also becomes the patch address.
为上述客户机、服务器和交换机提供约定地址的方式主要包括但不仅限于以下几 种: .  The manner in which the agreed addresses are provided for the above clients, servers, and switches mainly includes, but is not limited to, the following:
( 1 )在接收数据的主机内部进行设置,在接收数据端约定固定的补包地址,或按固 定规则约定的补包地址, 如图 la所示, 一旦发现丢包, 接收数据的主机直接寻找约定 地址的补包主机请求补包。  (1) Set in the host that receives the data, and agree on the fixed replenishment address at the receiving data end or the replenishment address according to the fixed rule. As shown in Figure la, once the packet loss is found, the host receiving the data directly seeks The replenishment host of the agreed address requests the replenishment.
(2)在动态访问网络的过程中从某负责指引的服务器动 地取得访问补包主机的 地址, 在实际应用中此指引服务器还可以同时指引组播地址, 如图 lb所示, 在后面 '叙 述的利用 CDN边缘服务器补包的方式就可以使用这种补包方式。  (2) In the process of dynamically accessing the network, the address of the replenishing host is obtained from a server responsible for the guidance. In the actual application, the guiding server can also direct the multicast address, as shown in FIG. This replenishment can be used in the manner described by the CDN Edge Server.
(3) 将以上两种结合,即接收数据的主机先访问固定或固定规则约定的地址的主 机,从其获得所需的补包主机的地址等相关指引信息,然后再根据指引找到补包主机进 行补包;  (3) Combine the above two, that is, the host that receives the data first accesses the host of the address fixed or fixed by the rule, obtains the relevant guidance information such as the address of the required replenishment host, and then finds the replenishment host according to the guide. Make up the package;
6. 接收数据的主机  6. Host receiving data
是指用本发明方式中接收数据的主机, 它主要指的是客户机; 网络中的路由器和 CDN边缘服务器, 如果既使用本发明方式接收数据又采用本发明的方式转发数据, 则 其身份既是接收数据的主机又是转发数据的主机;如果用网络中的客户机兼职完成向 其他客户机补包的工作, 则其身份既是接收数据的主机又是补包主机。 是指处于使用数据的客户一端的接收的计算机,是相对于专门提供服务的服务器 计算机而言的。 客户机主要包括但不仅限于台式计算机、 笔记本电脑、 PDA、 机顶盒 等设备 It refers to a host that receives data in the manner of the present invention, which mainly refers to a client; a router in the network and a CDN edge server, if both the data is received by the method of the present invention and the data is forwarded by the method of the present invention, the identity is The host that receives the data is the host that forwards the data. If the client in the network completes the work of replenishing the other client part-time, the identity is both the host receiving the data and the replenishing host. Refers to the receiving computer at the client side that uses the data, relative to the server computer that provides the service. Clients mainly include but are not limited to desktop computers, laptops, PDAs, set-top boxes, etc.
机顶盒因其放置于电视机的顶部而得名,但从技术角度讲其本质就是一台比较简 单的计算机, 但又与一般的计算机有所不同, 其主要区别有两点: 一是其显示接口输 出不是一般的计算机显示器而是电视机; 二是操作输入接口不是键盘鼠标而是遥控 器。 在本发明中机顶盒完全可以成为一台客户机。  The set-top box is named because it is placed on the top of the TV set. However, from the technical point of view, it is essentially a simple computer, but it is different from the general computer. The main difference is two points: First, its display interface The output is not a general computer display but a TV; the second is that the operation input interface is not a keyboard mouse but a remote control. In the present invention, the set top box can be completely a client.
8. 定位标尺  8. Positioning ruler
是指在本发明中为了使补包主机准确地知道接收数据的主机需要哪些数据,而采 用的一种能够定位和衡量数据的准确度量。该度量方式主要包括但不仅限于以下两种一 种是基于数据的存储方式,例如, 以文件的起始点为原点, 以存储的长度或偏移量为单 位度量其位置和长度。另一种是直接用数据包为标尺的度量单位,数据包的标号可以借 用 IP包头中的序号, 也可以由程序在数据包的内部数据中进行编号。 如果是釆用数据 包作为标尺刻度, 则此刻度可能是不定长的, 因为, 根据需要服务器可能发送不定长的 数据包, 例如, 许多流媒体的传输其数据包就是不定长的。  It refers to an accurate metric that can be used to locate and measure data in order to make the replenishing host accurately know what data is needed by the host receiving the data. The metrics mainly include, but are not limited to, the following two types of data-based storage methods, for example, taking the starting point of the file as the origin and measuring the position and length in units of stored length or offset. The other is to directly use the data packet as the unit of measure of the ruler. The label of the data packet can be borrowed from the serial number in the IP header, or it can be numbered by the program in the internal data of the data packet. If the data packet is used as the ruler scale, the scale may be indefinitely long, because the server may send packets of variable length depending on the need. For example, many streaming media transmit their packets indefinitely.
本发明提出的方法可以方便地解决组播协议传输数据的可靠性的问题,这一技术的: 推广使用可以使组播协议可以广泛应用于网络中传输各种数据,从根本上解决困扰宽带 网的 "宽带无内容" 问题。 附图说明  The method provided by the invention can conveniently solve the problem of the reliability of the data transmitted by the multicast protocol. The promotion of the technology can make the multicast protocol widely applicable to the transmission of various data in the network, thereby fundamentally solving the troubled broadband network. The "Broadband No Content" issue. DRAWINGS
图 1是本发明的数据传输过程示意图, 其中图 la是在接收数据的主机内设定了补 包主机的地址的数据传输过程示意图; 图 lb是在动态访问网络的过程中从某负责指引 的服务器动态地取得访问补包主机地址的数据传输过程示意图。  1 is a schematic diagram of a data transmission process of the present invention, wherein FIG. 1a is a schematic diagram of a data transmission process in which an address of a replenishing host is set in a host receiving data; FIG. 1b is a responsible guidance from a certain process in the process of dynamically accessing the network. The server dynamically obtains a schematic diagram of the data transmission process of accessing the replenishment host address.
图 2是本发明的第一种实施例图,其中发送组播的服务器和补包服务器是同一个物 理服务器。  Figure 2 is a diagram of a first embodiment of the present invention in which the server that sends the multicast and the replenishment server are the same physical server.
图 3是本发明的第二种实施例图,其中补包服务器位于网络边缘,专门为某一区域 的客户机补包。 .  Figure 3 is a diagram of a second embodiment of the present invention in which the replenishment server is located at the edge of the network and is dedicated to replenishing clients for a certain area. .
图 4是本发明的第三种实施例图其中部分补包工作由客户机完成,每个客户机同时 兼职为其他客户机补包。 图 5是本发明中的第四种实施例图,其中某一级或每一级路由器都可以发现丢包并 向上一级请求补包。 Figure 4 is a diagram showing a third embodiment of the present invention in which partial replenishment is performed by a client, and each client concurrently serves as a complement for other clients. FIG. 5 is a diagram of a fourth embodiment of the present invention in which a certain level or each level of routers can discover packet loss and request replenishment to a higher level.
图 6是本发明判断丢包的简化逻辑框图。  Figure 6 is a simplified logic block diagram of the present invention for determining packet loss.
图 7是本发明判断丢包的智能逻辑框图。  FIG. 7 is a smart logic block diagram of the present invention for determining packet loss.
图 8是本发明接收数据主机的功能模块图。 具体实施方式  FIG. 8 is a functional block diagram of a receiving data host of the present invention. detailed description
以下结合附图对本发明作进一步详细描述。  The invention is further described in detail below with reference to the accompanying drawings.
本发明的方法如同电视***一样分为发送方式和接收方式,两者可以分别构成独立 的***由不同的个体来分部实施,但为了便于描述和理解两者的配合,将发送方和接收 方两者放到一起来描述其运作过程。  The method of the present invention is divided into a transmission mode and a reception mode as in the television system, and the two can be separately implemented as separate systems, which are implemented by different individuals, but for convenience of description and understanding of the cooperation, the sender and the receiver are provided. The two are put together to describe their operation.
参照图 la, 本发明的数据传输过程为: · Referring to Figure la, the data transmission process of the present invention is:
( 1 ) 由发送或转发组播数据的主机向接收数据的主机发送至少一条组播数据流;(1) transmitting, by the host that sends or forwards the multicast data, at least one multicast data stream to the host that receives the data;
( 2 ) 在接收数据的主机内部中设定了补包主机的地址, 接收组播数据流的数据,(2) The address of the replenishing host is set in the host receiving the data, and the data of the multicast data stream is received.
( 3 )接收数据的主机在接收组播数据流的过程中不断监测是否有错包和丢包数据, 在发现并接收到错包和丢包的数据后, 以单播协议向补包主机发出补包请求; (3) The host receiving the data continuously monitors whether there are error packets and packet loss data during the process of receiving the multicast data stream. After discovering and receiving the data of the error packet and the packet loss, the host sends the packet to the replenishing host in a unicast protocol. Replenishment request
(4 ) 补包主机使用至少一个约定的单播地址, 接收该补包请求, 并按照该补包请 求的定位标尺从存储器中找到相应的数据,以单播协议向请求补包的接收数据的主机发 送补包数据;  (4) The replenishing host uses at least one agreed unicast address, receives the replenishment request, and finds corresponding data from the memory according to the positioning rule of the replenishment request, and receives the data from the request replenishment packet by the unicast protocol. The host sends the supplemental data;
( 5) 接收数据的主机将接收到的有丢包的组播数据与单播补包数据整合, 使之成 为完整或部分完整的数据流。  (5) The host receiving the data integrates the received packetized multicast data with the unicast packet data to make it a complete or partially complete data stream.
参照图 lb, 本发明的补包主机的地址是在动态访问网络的过程中, 从某负责指引 的服务器动态地取得访问补包主机地址的数据, 其数据传输过程为:  Referring to FIG. 1b, the address of the replenishing host of the present invention is to dynamically obtain data for accessing the replenishment host address from a server responsible for guiding the network during the process of dynamically accessing the network, and the data transmission process is:
( 1 ) 由接收数据的主机向指引服务器请求指引;  (1) requesting guidance from the host receiving the data to the guidance server;
( 2 ) 指引服务器接收到指引请求后, 向接收数据的主机发出指引信息;  (2) After receiving the guidance request, the guidance server sends guidance information to the host receiving the data;
( 3 ) 接收数据的主机指引服务器发送的指引信息, 请求加入组播并接收组播数据 流;  (3) The host receiving the data directs the guidance information sent by the server to request to join the multicast and receive the multicast data stream;
( 4) 接收数据的主机在接收组播数据流的过程中, 按照图 6和图 7的过程不断监 测是否有错包和丢包数据,在发现并接收到错包和丢包的数据后, 以单播协议向补包主 机发出补包请求; ( 5) 补包主机使用至少一个约定的单播地址, 接收该补包请求, 并按照该补包请 求的定位标尺从存储器中找到相应的数据,以单播协议向请求补包的接收数据的主机发 送补包数据; (4) In the process of receiving the multicast data stream, the host receiving the data continuously monitors whether there are error packets and packet loss data according to the processes of FIG. 6 and FIG. 7, and after discovering and receiving the data of the error packet and the packet loss, Issue a replenishment request to the replenishment host in a unicast protocol; (5) The replenishing host uses at least one agreed unicast address, receives the replenishment request, and finds corresponding data from the memory according to the positioning rule of the replenishment request, and receives the data from the request replenishment packet by the unicast protocol. The host sends the supplemental data;
(6) 接收数据的主机将接收到的有丢包的组播数据与单播补包数据整合, 使之成 为完整或部分完整的数据流。  (6) The host receiving the data integrates the received packetized multicast data with the unicast packet data to make it a complete or partially complete data stream.
本方法主要用于传输流媒体,但由于其解决了传输的可靠性也可以用来传输其他数 据。 实现本发明的方法可以有多种变化形式, 以下给出四种实施例, 且丛最直接简单的 方式逐步描述其他提高的变化方式。  This method is mainly used for transporting streaming media, but it can also be used to transmit other data because it solves the reliability of transmission. There are many variations to the method of carrying out the invention. Four embodiments are given below, and the most straightforward way of the cluster is to describe other improved variations step by step.
实施例 1  Example 1
本发明的第一实施例是在数据网络中实现数据传输的基本方法, 如图 2所示。 图 2 中, 包括一台服务器、 数台客户机和网络, 其中网络包括数台路由器和交换机。服务器 A向数个组播地址分别发送数个组播数据流, 客户机 A申请加入其中地址为 224. 2. 2. 1 的组播, 网络路由器应答客户机发送的请求, 向客户机复制组播 1中的数据流。在一般 情况下如果在复制传输过程中出现丢包错包是无法修复的, 客户机甚至难以发现丢包。 在本方法中, 客户机或路由器采用特有方式发现丢包, 如果发生丢包, 客户机将以单播 协议向服务器发送请求数据包,请求服务器重发一个或几个数据包。服务器按客户机的 请求以单播协议向客户机发送一个或几个数据包, 以弥补组播丢包所丧失的数据。  The first embodiment of the present invention is a basic method for implementing data transmission in a data network, as shown in FIG. In Figure 2, it consists of a server, several clients, and a network, where the network includes several routers and switches. Server A sends several multicast data streams to several multicast addresses. Client A applies for multicast with address 224. 2. 2. 1. The network router responds to the request sent by the client and copies the group to the client. The data stream in broadcast 1. Under normal circumstances, if a packet loss packet is not repaired during the replication transmission, it is even difficult for the client to find the packet loss. In this method, the client or router discovers the packet loss in a unique manner. If a packet loss occurs, the client sends a request packet to the server in a unicast protocol, requesting the server to resend one or several data packets. The server sends one or several packets to the client in a unicast protocol as requested by the client to compensate for the data lost by the multicast packet loss.
接收数据的主机既可以采用像客户机这样的通用计算机的结构;也可以是向路由器 这样的根据其专门功能专门设计的设备, 甚至其中的模块可以是特定应用集成线路 (ASCI)。但在本发明中他们必须具备这样几个模块来完成其功能: 存储模块, 用于存储 接收到的数据; 组播接收模块, 用于接收组播数据; 丢包判断及补包控制模块, 用于判 断所收到的数据是否产生丢包, 并控制单播收发模块进行补包; 单波收发模块, 用于以 单播协议向补包服务器发送补包请求并接收补包服务器发来的补包数据。在专用设备中 这些功能模块可以是专门设计的模块,在通用计算机结构当中这些模块是程序通过控制 通用 CPU、 存储器和数据传输接口来实现的, 其中组播接收模块是由程序通过控制 CPU 和网卡来构成的;存储模块是由程序通过控制 CPU和由存储器来构成的;丢包判断及补 包控制模块是由程序通过控制 CPU 存储器来构成的; 单波收发模块是由程序通过控制 The host receiving the data can either use the structure of a general-purpose computer such as a client; it can also be a device specially designed for its specific functions such as a router, and even the module can be an Application Specific Integrated Circuit (ASCI). However, in the present invention, they must have several modules to perform their functions: a storage module for storing received data; a multicast receiving module for receiving multicast data; a packet loss determination and replenishment control module, Determining whether the received data generates packet loss, and controlling the unicast transceiver module to perform replenishment; the single-wave transceiver module is configured to send a replenishment request to the replenishment server by using a unicast protocol and receive a supplement sent by the replenishment server. Package data. In a dedicated device, these functional modules can be specially designed modules. In a general computer structure, these modules are implemented by controlling a general-purpose CPU, a memory, and a data transfer interface, wherein the multicast receiving module is controlled by the program to control the CPU and the network card. The memory module is composed of the program by controlling the CPU and by the memory; the packet loss judgment and the packet replacement control module are constituted by the program controlling the CPU memory; the single wave transceiver module is controlled by the program.
CPU和网卡来构成的; 各功能模块执行接收数据的过程如图 8所示。 组播接收模块将接 收到的数据存储到存储模块当中; 丢包判断及补包控制模块对所接收到的数据进行判 断,其中判断丢包模块和补包控制模块的具体操作过程可以是如图 6所示的简捷的方式 或图 7所示的智能方式,其主要功能是能根据数据包的序号判断出丢包,能判断出数据 包序号的重计及在此情况下的丢包,进一步的智能功能是在上一级传来的组播数据的数 据包序号非正常排列的情况下也能准确判断出丢包,如果丢包判断及补包控制模块发现 丢包则使用标尺度量丢包的位置和长度, 并利用这些信息控制单播收发模块进行补包; 单播收发模块向约定地址的补包主机请求补包,并在收到补包数据后将其交给丢包判断 及.补包控制模块;丢包判断及补包控制模块根据丢包的记录及标尺将补包数据与存于存 储模块中的以组播协议收到的有丢包的数据进行整合,使之成为完整或是部分完整的数 据。 The CPU and the network card are configured; the process of receiving the data by each functional module is as shown in FIG. 8. The multicast receiving module stores the received data into the storage module; the packet loss judgment and the packet replacement control module judges the received data, wherein the specific operation process of the packet loss module and the packet replacement control module may be as shown in the figure. The simple way shown in 6 Or the intelligent mode shown in Figure 7, the main function is to be able to determine the packet loss according to the serial number of the data packet, to determine the recalculation of the packet number and the packet loss in this case, and further intelligent functions are in the previous If the packet sequence number of the multicast data transmitted by the level is abnormally arranged, the packet loss can be accurately determined. If the packet loss judgment and the packet replacement control module find that the packet is lost, the location and length of the packet loss are used, and the packet is used. The information is controlled by the unicast transceiver module to perform replenishment; the unicast transceiver module requests replenishment from the replenishing host of the agreed address, and after receiving the replenishment data, it is handed over to the packet loss judgment and the replenishment control module; The judgment and replenishment control module integrates the replenishment data with the packet loss data received by the multicast protocol stored in the storage module according to the packet loss record and the ruler, so as to become complete or partially complete data.
这一过程看似比较简单,在单播协议传输的数据流很容易实现补包,但对于组播传 输的数据流实现补包需要解决一系列问题,这也就是为什么组播协议在实际使用中一直 未能实现可靠传输的原因。.  This process seems to be relatively simple. The data stream transmitted in the unicast protocol is easy to implement replenishment. However, it is necessary to solve a series of problems for the data stream of the multicast transmission, which is why the multicast protocol is actually used. The reason for reliable transmission has not been achieved. .
本发明对于用组播传输的数据流实现补包所解决的关键技术如下:  The key technologies for realizing the replenishment of the data stream transmitted by multicast are as follows:
(1) 如何发现丢包?  (1) How do I find a packet loss?
在单播 TCP协议的传输过程中是通过 ACK和 NACK等复杂的往复应答来实现发现丢 包并补包的, 但在目前的组播协议中并没有这一过程, 也很难实现这一过程, 所以目前 的组播协议本身是不能自动发现丢包的, 客户端程序或下一级路由器只是接收组播数 据, 但并不知道此数据是否完整。  In the transmission process of the unicast TCP protocol, the discovery of packet loss and replenishment is realized by complex reciprocating responses such as ACK and NACK, but in the current multicast protocol, there is no such process, and it is difficult to implement this process. Therefore, the current multicast protocol itself cannot automatically discover the packet loss. The client program or the next-level router only receives the multicast data, but does not know whether the data is complete.
为了解决这一问题,本发明采用在每个数据包中加入一个按升序或降续排列的序号 信息, 也可以考虑使用 IP包头中的包序号, 根据数据包顺序发现丢包, 如图 6所示的 简化过程, 当发现数据包的顺序是 2、 3、 6时, 就认为 4、 5号数据包被丢失。 但这样 在复杂的网络环境中有可能将数据在传输过程中的意外导致的数据包顺序混乱误认为 丢包, 在此例中, 有可能在' 2、 3、 6号数据包之后 5、 4、 7、 8号数据包就传来了。 所 以可以作较为智能的判断, 如图 7所示智能过程, 先将丢包计入丢包列表, 等 7、 8号 数据包甚至更多数据包传来以后, 还未发现 4、 5号数据包时, 才判定 4、 5号数据包被 丢失。该等待时间的判断条件可以采用多种不同方式,在图 7的推迟条件是从第一个丢 包开始向后推迟 4个数据包,在实际应用中也可以从最后一个丢包开始计算推迟数个数 据包,或其他更复杂的算法,这种智能判断对于多级传输多级补包的复杂网络来说是很 重要的。  In order to solve this problem, the present invention adopts adding a sequence number information in ascending or descending order in each data packet, and may also consider using the packet sequence number in the IP packet header to find the packet loss according to the sequence of the data packet, as shown in FIG. In the simplified process shown, when the order of the data packets is found to be 2, 3, and 6, the packets of 4 and 5 are considered to be lost. However, in a complex network environment, it is possible to misinterpret the packet sequence caused by accidents in the transmission process, in this case, it is possible to follow the packets 2, 3, and 6 5, 4 7, 7, and 8 packets came. Therefore, it can be judged more intelligently. As shown in Figure 7, the intelligent process first counts the packet loss into the packet loss list. After the data packets of 7, 7 or even more packets are transmitted, the data of No. 4 and No. 5 has not been found yet. When the packet is packaged, it is determined that packets 4 and 5 are lost. The judgment condition of the waiting time can be used in a plurality of different manners. In the delay condition of FIG. 7, four data packets are postponed from the first packet loss, and in the actual application, the delay number can be calculated from the last packet loss. Packets, or other more complex algorithms, are important for complex networks where multi-level transmissions are multi-staged.
另外一个问题是数据包序号不是无限大的,所以存在一个问题就是当序号用尽时需 要从头开始使用序号, 即数据包序号重新开始, 这时有可能产生判断的混乱, 这时就需 要复杂的条件判断。 例如: 如图 7所示假设最大数据包序号是 65535, 客户端接到数据 包的顺序是 65532、 65533、 3、 4, 发现后面的数据包序号小于前面的数据包, 这时就 需要请求补包服务器发送从 65534到最大序号 65535以及从最小序号 0到 2,共五个数 据包的数据。 Another problem is that the serial number of the data packet is not infinite, so there is a problem that when the serial number is used up, it is necessary to use the serial number from the beginning, that is, the serial number of the data packet is restarted. At this time, it is possible to generate confusion of judgment, and then it is necessary. To judge complex conditions. For example: As shown in Figure 7, the maximum packet number is 65535. The order in which the client receives the packets is 65532, 65533, 3, 4. The subsequent packet sequence number is smaller than the previous packet. The packet server sends data from 65534 to the maximum sequence number 65535 and from the lowest sequence number 0 to 2 for a total of five packets.
还有一种技术实现方式会将上述情况变得更加复杂,如在循环重复传输数据的方法 中, 可能一段数据长度较短, 还不到最大序号的时候就到此段的末尾了, 服务器需要从 头循环传输数据, 此时如果不理会数据的结构, 序号继续增加, 则用上面的处理方法就 可以解决。但如果考虑到数据的结构, 希望数据与序号有所对应, 则数据从头开始再次 循环时需要将数据包序号也从头开始。在这种情况下客户机需要预先知道此段循环传输 数据的长度, 并以此判断。 如果此段数据的长度较长, 超出了序号范围, 则需要同时结 合数据包序号和此段数据的长度进行综合的判断。  There is also a technical implementation that will make the above situation more complicated. For example, in the method of repeatedly transmitting data in a loop, the length of a piece of data may be short. When the maximum sequence number is not reached, the end of the paragraph is reached. The server needs to start from the beginning. Cyclic transfer of data, if you ignore the structure of the data, the serial number continues to increase, you can use the above processing method to solve. However, if the structure of the data is taken into consideration and the data is expected to correspond to the serial number, the data sequence number must be started from the beginning when the data is re-circulated from the beginning. In this case, the client needs to know in advance the length of the looped data and judge it. If the length of this segment of data is longer than the sequence number range, it is necessary to combine the packet sequence number and the length of the segment data for comprehensive judgment.
另有一种特殊情况就是网络的第二层如果发现错包可能会直接将其丢弃, Ethernet 网的数据链路层会对每一个数据包进行 CRC效验,发现错误会将其丢弃,这种情况也被 视为丢包。  Another special case is that if the second layer of the network finds a wrong packet, it may discard it directly. The data link layer of the Ethernet network will perform a CRC check on each packet and find that the error will discard it. It is considered a packet loss.
(2) 如何定位丢包?  (2) How to locate lost packets?
对丢包数据进行定位是本发明方法需要解决的重要问题。在单播协议中,数据包在 服务器和路由器当中以数据包的形式缓存部分刚发送过的数据,任何一级发现丢包都可 以立刻向上一级要求补包, 这是 TCP/IP协议栈中已经定义的功能, 这些功能都是网络 中的路由器和计算机的底层 IP协议栈自动来完成的。 但是在本实施例中补包功能需要 由客户机和服务器的软件功能来实现,这就存在一个定位的问题, 即对于传输的数据需 要有一种标尺的机制对其迸行定位和度量,以保证服务器发给客户机的补包数据是其需 要补充的, 并将其与原数据整合。  The location of packet loss data is an important issue that needs to be solved by the method of the present invention. In the unicast protocol, the data packet is buffered in the form of a data packet in the server and the router, and any data that is just sent out at the first level can be requested to be replenished to the next level. This is in the TCP/IP protocol stack. The functions that have been defined, these functions are automatically done by the router and the underlying IP stack of the computer in the network. However, in this embodiment, the replenishment function needs to be implemented by the software functions of the client and the server, and there is a problem of positioning, that is, the data to be transmitted needs to have a ruler mechanism to locate and measure it to ensure that it is guaranteed. The replenishment data sent by the server to the client is that it needs to be supplemented and integrated with the original data.
一种度量方式是基于数据的存储方式, 例如, 以文件的起始点为原点, 以存储的长 度或偏移量为单位度量其位置和长度。  One measure is based on how data is stored, for example, taking the starting point of the file as the origin and measuring its position and length in units of stored length or offset.
另一种度量方式是直接用数据包定位, 即由服务器的程序控制一块缓冲区,这块缓 冲区可以在硬盘上, 也可以在内存中, 在缓冲区中, 数据的存储方式是以将要发送的数 据包的形式来存储的。 例如, 发送组播的时候是以每 lk字节内容为一个数据包的, 则 存储方式就是以 lk字节为一个存储单元, 并配合排列序号, 则每个数据包的存储单元 就是度量标尺的一个刻度。此存储单元也可以是不定长的, 例如, 以流媒体的一帧或几 帧作为存储单元和度量标尺, 其表尺的刻度就是不定长的。 但这并不影响标尺的使用, 因为这个标尺并不是用来度量数据的绝对长度,而是用来定位丢包和补包数据的,所以 只要他能正确的找到补包数据就可以了。 Another way to measure is to use packet positioning directly, that is, a buffer controlled by the server's program. This buffer can be on the hard disk or in the memory. In the buffer, the data is stored in the way that it will be sent. The form of the packet is stored. For example, when sending multicast, the content of each lk byte is a data packet, and the storage method is to use lk bytes as a storage unit, and with the sequence number, the storage unit of each data packet is a metric ruler. A scale. The storage unit may also be indefinitely long. For example, one frame or several frames of the streaming medium are used as the storage unit and the metric scale, and the scale of the scale is not fixed. But this does not affect the use of the ruler, Because this ruler is not used to measure the absolute length of the data, but to locate the lost and replenished data, so as long as he can correctly find the replacement data.
(3)何时请求补包?  (3) When is the request for replenishment?
客户机发现丢包后可以立刻请求补包,也可以等一段时间,将在此时间段中发现的 所有丢包一并请求补包。 第一种方式适合用于对数据的及时性要求较高的情况, 例如 IPTV、 V0D等; 第二种方式适合用于对数据的及时性要求较低的情况例如下载。  After the client finds that the packet is lost, it can request the replenishment immediately. It can also wait for a period of time to request the replenishment of all the packets found during this period. The first method is suitable for situations where the timeliness of the data is high, such as IPTV, VOD, etc.; the second mode is suitable for the case where the timeliness of the data is low, such as downloading.
(4)向谁请求补包?  (4) To whom is the request for replenishment?
在现有的单播***中,可以直接向上一级的路由器或三层交换机请求补包,上一级 路由器或交换机将丢包重传,但现有的组播协议无法完成这样的过程。为了实现数据的 可靠传输,在本实施例中可以由发送组播数据流的源服务器完成补包工作。在客户端发 现丢包后立刻向源服务器发送一个请求,此请求描述所丢数据包的序号,或直接根据数 据的度量表尺对丢失的数据进行描述, 从而使服务器知道哪台客户机缺少那些数据。  In the existing unicast system, the packet can be requested directly from the upstream router or the Layer 3 switch, and the upper router or switch will retransmit the packet, but the existing multicast protocol cannot complete such a process. In order to achieve reliable transmission of data, in this embodiment, the replenishment work can be completed by the source server that sends the multicast data stream. Immediately after the client finds the packet loss, it sends a request to the source server, which describes the sequence number of the lost packet, or directly describes the missing data according to the data meter, so that the server knows which client is missing the data. .
在现有的 IP组播协议当中, 服务器发送组播的网卡必定有一个单播地址, 而且其 发送的组播数据包中携带此单播地址,可以约定客户机使用此单播地址作为目标地址直 接向补包服务器发送补包请求, 当然也可以另外约定一个地址,甚至是另外一个主机的 地址。 .  In the existing IP multicast protocol, the network card that the server sends multicast must have a unicast address, and the multicast packet sent by the server carries the unicast address, and the client can use the unicast address as the target address. Send the replenishment request directly to the replenishment server. Of course, you can also specify an address or even another host's address. .
(5)如何识别补包请求?  (5) How to identify the replenishment request?
在一般情况下, 服务器的一块网卡可以分别向多个组播地址发送多个组播数据流, 而在本发明中客户机请求补包并不是向发生了丢包的组播数据流的组播地址发送,而是 向一个单播地址发送补包请求, 简单的方法是每一个组播地址对应一个单播补包地址, 但这样的方式要消耗很多单播地址。 比较划算的方式是多个组播地址对应一个单播地 址,这样就存在一个如何识别客户机到底是需要补的是哪一个组播数据流的数据,在实 际应用当中可以考虑约定服务器发送组播数据流时使用不同的端口号,服务器补包服务 也是约定用单播地址的不同端口,这些端口与组播数据流的端口一一对应,服务器就可 以识别客户需要补包的数据流了。 例如: 服务器发送三个组播数据流,地址分别是 224. 2. 2. 1 : 4001 , 224. 2. 2. 2 : 4002 , 224. 2. 2. 3 : 4003 , 服务器网卡的单播地址是 192. 168. 2. 2。这样就可以 "约定"凡是客户机在接收组播地址 224. 2. 2. 3 : 4003的数据 流的过程中发现的丢包, 一律向服务器的单播地址 192. 168. 2. 2 : 4003发送补包请求。 而服务器根据约定, 一旦从 4003 号端口收到补包请求, 就理解为客户机需要对 224. 2. 2. 3的数据流进行补包。 另外一种更安全的方式是客户机的补包请求中直接按照某种格式描述要补某个组 播地址的数据流的某几个数据包,这样服务器不用开多个端口对应多个组播地址,其优 点是服务器所开的端口少, 从而使服务器更安全。 In general, a network card of the server can separately send multiple multicast data streams to multiple multicast addresses. In the present invention, the client requests the replenishment to be a multicast to the multicast data stream in which the packet loss has occurred. The address is sent, but a replenishment request is sent to a unicast address. The simple method is that each multicast address corresponds to a unicast replenishment address, but this way consumes a lot of unicast addresses. The more cost-effective way is that multiple multicast addresses correspond to a single unicast address, so there is a data on how to identify which multicast data stream the client needs to supplement. In practical applications, consider the agreement server to send multicast. The data stream uses different port numbers. The server replenishment service is also a different port for unicast addresses. These ports correspond to the ports of the multicast data stream, and the server can identify the data stream that the customer needs to replenish. For example: The server sends three multicast streams with addresses 224. 2. 2. 1 : 4001 , 224. 2. 2. 2 : 4002 , 224. 2. 2. 3 : 4003 , unicast address of the server NIC Is 192. 168. 2. 2. In this way, it is possible to "contract" the packet loss found in the process of receiving the data stream of the multicast address 224. 2. 2. 3 : 4003, and always send the unicast address to the server 192. 168. 2. 2 : 4003 Send a replenishment request. According to the agreement, once the server receives the replenishment request from port 4003, it understands that the client needs to repackage the data stream of 224. 2.2.3. Another safer way is that the client's replenishment request directly describes a certain data packet of a data stream to be supplemented by a certain multicast address in a certain format, so that the server does not need to open multiple ports to correspond to multiple multicasts. The advantage of the address is that the server has fewer ports, which makes the server more secure.
(6) 如何发送补包?  (6) How to send a replenishment package?
服务器响应客户机请求向其发送补包可以直接根据客户机请求补包的数据包的源 地址向其发送补包数据。当然如果客户机具有多个单播地址,并且其要求服务器向客户 机的另一个地址发送补包数据, 也可以按其要求发送。  The server sends a replenishment packet to the client in response to the client request to send the replenishment data directly to the source address of the packet that the client requested to repackage. Of course, if the client has multiple unicast addresses and it requires the server to send the replenishment data to another address of the client, it can also be sent as required.
(7)如何应对大量丢包的情况?  (7) How to deal with a large number of lost packets?
在网络中可能会存在个别线路状况极差的情况,其接收端有可能发现丢失大量的数 据包需要重发,这样可能会对发送补包数据的一端产生极大的压力。对于这种状况数据 发送端可以对于这样的接收端拒绝服务;也可以在接收端的软件中设置一个极限值,如 果丢包率超过某一值便不再请求补包。  There may be cases where the individual line conditions are extremely poor in the network, and the receiving end may find that a large number of lost data packets need to be retransmitted, which may cause great pressure on the end of the data to be transmitted. For this situation, the data sender can refuse service for such a receiver; it can also set a limit value in the software of the receiver, and if the packet loss rate exceeds a certain value, it will not request the packet.
通过采用以上技术关键,就可以在现行的网络环境和组播协议的条件下顺利地实现 对组播数据流进行补包, 实现数据的可靠传输。但是如果只用上述的基本方式, 在大规 模网络的环境下还不够完美,处理效率还不够高,所以还可以采用或综合运用如下几种 改进方式来提高效率。 .  By adopting the above key technologies, it is possible to smoothly replenish the multicast data stream under the current network environment and multicast protocol conditions, and realize reliable data transmission. However, if only the basic method mentioned above is used, it is not perfect in the environment of large-scale network, and the processing efficiency is not high enough. Therefore, the following several improvement methods can be adopted or integrated to improve efficiency. .
由于在本发明当中规定对组播数据进行补包,所以对于服务器的内存缓冲可以进行 与一般组播方式不同的处理来提高补包的效率和速度。 现行的组播协议由于不存在补 包, 所以现行的程序和操作***将发送过的组播数据立即将其清除出内存缓冲区。  Since the multicast data is replenished in the present invention, the memory buffer of the server can be processed differently from the general multicast method to improve the efficiency and speed of the replenishment. The current multicast protocol does not have a supplement, so the current program and operating system will immediately send the multicast data out of the memory buffer.
在本发明中,服务器可以建立一个共用的快速存储器缓冲区,在目前的技术条件下, 快速存储器主要是指内存 RAM, 主要包括 DDR RAM、 ECC RAM等, 将来可能会有更好的 快速存储器而且可以在网卡上建立专门的存储硬件用于缓冲,在本实施例中,为了便于 理解我们暂时仍然称其为内存缓冲或缓冲区。通常的组播程序将一个组播数据包发送出 去以后立即将其清除,但在本发明中此共用的内存缓冲区既用于发送组播流也用于单播 补包,所以此内存缓冲区中的数据在通过组播发送出去以后并不立即清除,而是在内存 缓冲区保持一段时间,如果在此期间客户机请求补包,服务器立刻从内存缓冲当中读取 相应的数据并以单播形式发送给发请求的客户机。  In the present invention, the server can establish a shared fast memory buffer. Under the current technical conditions, the fast memory mainly refers to the memory RAM, mainly including DDR RAM, ECC RAM, etc., and there may be better fast memory in the future. Special storage hardware can be set up on the network card for buffering. In this embodiment, for the sake of understanding, we still call it a memory buffer or a buffer. A normal multicast program clears a multicast packet immediately after it is sent out. However, in the present invention, the shared memory buffer is used for both the multicast stream and the unicast packet, so this memory buffer The data in the data is not cleared immediately after being sent out through multicast, but is kept in the memory buffer for a period of time. If the client requests replenishment during this period, the server immediately reads the corresponding data from the memory buffer and unicasts it. The form is sent to the client that made the request.
这种改进方式的优点是提髙了补包的效率, 同时也提高了服务器的补包能力。现行 的流媒体服务器***的瓶颈在于其磁盘或磁盘阵列的读取速度,而 CPU处理能力和内存 空间往往有富裕, 所以通过这一改进减少了磁盘的负担, 提高了服务器的整体能力 ·, 使 得一个服务器或服务器群组能够至少为一个目前的宽带城域网提供补包服务,保障城域 网范围内利用组播传输可靠数据。 The advantage of this improvement is that it improves the efficiency of the replenishment and also improves the replenishment ability of the server. The bottleneck of the current streaming server system is the read speed of its disk or disk array, and the CPU processing power and memory space are often rich, so this improvement reduces the burden on the disk and improves the overall capacity of the server. A server or server group can provide at least one replenishment service for the current broadband metropolitan area network to ensure reliable data transmission using multicast in the metropolitan area network.
实施例 2 _ Example 2 _
本发明的第二实施例是对上述实施例 1的改进,如图 3所示。由于在客户数量巨大 的网络环境下,用单播协议服务器的负载往往是很重的,在此例中虽然单播只是用于补 包, 而绝大部分数据流都是由组播传输的, 但这也是一个巨大的负载, 特别是当网络环 境比较差丢包比较严重的时候。为了解决这个问题可以让补包服务专门由一个或几个服 务器来完成,这几台服务器甚至可以分布在网络的不同位置。单播补包服务器的布放位 置可以借鉴现在常用的 CDN (Content distribution network 或 Content delivery network的缩写)和任播的方式, 将补包的负载分散到网络的边缘, 由那些较靠近客户 机的服务器完成, 其优点是补包反应快, 对网络主干的压力小。这种方式就需要改进客 户机和网络的寻找、 定位补包服务器的方式。  The second embodiment of the present invention is an improvement of the above embodiment 1, as shown in FIG. In the network environment where the number of customers is huge, the load of the unicast protocol server is often very heavy. In this example, although unicast is only used for replenishment, most of the data streams are transmitted by multicast. But this is also a huge load, especially when the network environment is relatively poor and the packet loss is serious. To solve this problem, the replenishment service can be done exclusively by one or several servers, which can even be distributed in different locations on the network. The location of the unicast replenishment server can be borrowed from the commonly used CDN (abbreviation of Content distribution network or Content delivery network) and anycast mode to spread the load of the replenishment to the edge of the network, which is closer to the client. The server is completed, and its advantage is that the replenishment response is fast and the pressure on the network backbone is small. In this way, it is necessary to improve the way the client and the network look for and locate the replenishment server.
一种方式是任播方式,客户机还是按照组播源服务器的单播地址寻求补包,但是由 网络设备自动将某一区域的请求重定位到另一个距离客户较近的服务器, "约定"哪些 区域的请求重定位发送到哪个服务器是在网络设备当中进行设置的。  One way is anycast mode. The client still seeks to replenish the packet according to the unicast address of the multicast source server, but the network device automatically relocates the request of one area to another server closer to the client, "convention" Which areas of the request relocation are sent to which server is set in the network device.
另一种方式是直接让客户机向另外一个 "约定地址"的服务器寻求补包服务, 可以 用多种技术来实现这种方式,可以规定客户机的程序必须先向主服务器询问可以向哪一 个或那些服务器寻求补包,服务器可以根据客户机的地址所属区域指示其向哪一个或那 些服务器寻求补包,或者给客户机发送一个列表, 由客户机自主判断向哪一个或那些服 务器寻求补包;  Another way is to directly ask the client to seek replenishment services from another "contracted address" server. This can be done in a variety of techniques. It can be specified that the client's program must first ask the main server which one to go to. Or those servers seeking replenishment, the server may indicate to which or those servers seek replenishment according to the area to which the client's address belongs, or send a list to the client, and the client autonomously decides which one or those servers to seek replenishment. ;
也可以在客户机与源服务器建立连接或要求补包时服务器指示客户机到某个约定 的服务器补包; 还可以借鉴 DNS的方式, 在每个区域设置一个指示服务器, 各地区的客 户机软件都需要手工或自动设置本地区指引务器的地址,向此服务器要求补包或询问可 以向哪一个或哪些服务器寻求补包。  It is also possible to set the client to a certain contracted server replenishment when the client establishes a connection with the source server or requires replenishment; it can also refer to the DNS method, and set an indication server, client software for each region in each region. You need to manually or automatically set the address of the local server, request replenishment from this server or ask which server or servers you can seek replenishment.
在这种方式中,在物理上是多台服务器组成一个服务器群组共同协作完成组播的发 送和补包, 但可以在逻辑上将他们视为一个服务器。  In this way, physically multiple servers form a server group to work together to complete multicast delivery and replenishment, but they can be logically treated as a server.
实施例 3 Example 3
本发明的第三实施例是对实施 1的另一种改进,如图 4所示。本例是在补包方式上 借鉴 P2P的方式,现行的 P2P传输的方式是将所有的信息都由客户机之间相互传输,服 务器只提供一些指引, 例如 BT。 这样做的结果就是每个客户机都要向一个或多个客户 服务,有时向别人提供服务的带宽比自己接收数据的带宽还要大,这对网络主干和客户 机来说负载太大。在本发明的此改进方式中,主要数据还是通过服务器发送的组播来传 输的, 只有部分缺失的数据才通过客户机之间的相互服务来补充。要实现这种方式, 需 要在服务器中维护一个列表, 此列表表明哪些客户机正在或已经接收过哪些组播数据, 当一个客户机开始接收某个组播时通知服务器,服务器将几个同样接收此组播数据的客 户机"伙伴"的单播地址通告此客户机,同时也会将它作为一个伙伴记录通知其他伙伴。 当此客户机发现丢包或数据缺失时可以向其 "伙伴"请求补充数据, 由另一个或几个作 为其伙伴的客户机向其发送缺失的数据,也就是说由另一台客户机兼职完成原本应由补. 包服务器来完成的工作。 同样的, 此客户机也能向其他客户机提供补包服务。 The third embodiment of the present invention is another modification of the embodiment 1, as shown in FIG. In this example, the P2P method is used in the replenishment mode. The current P2P transmission method is to transmit all the information from each client to the client. The server only provides some guidelines, such as BT. The result of this is that each client has to go to one or more clients. Services, sometimes providing services to others with more bandwidth than the data they receive, which is too heavy for network backbones and clients. In this modification of the invention, the primary data is also transmitted via multicast sent by the server, and only a portion of the missing data is supplemented by mutual service between the clients. To do this, you need to maintain a list in the server that indicates which clients are receiving or have received multicast data. When a client starts receiving a multicast, it notifies the server that the server will receive the same. The unicast address of the client "buddy" of this multicast data advertises this client and also notifies it as a partner record to other partners. When this client finds that a packet loss or data is missing, it can request supplementary data from its "partner", and another one or several clients that are its partners send missing data to it, that is, another client is part-time. Complete the work that should have been done by the make-up server. Similarly, this client can also provide replenishment services to other clients.
在此方式中,如果是网络的核心交换机丢包,将会导致大面积的的客户丢失相同的 数据包, 客户机将难以相互补包。但是在实际网络环境当中, 网络主干的服务质量比较 容易保障, 网络的客户接入端特别是"最后一公里"的服务质量难以保障, 所以此方式 在实际环境当中还是有实用价值的。对于个别的大面积客户丢失相同数据包的情况可以 用服务器或网络交换机另行补包。  In this way, if the core switch of the network loses packets, it will cause a large area of customers to lose the same data packet, and the client will be difficult to complement each other. However, in the actual network environment, the service quality of the network backbone is relatively easy to guarantee. The service quality of the network's customer access terminal, especially the "last mile" is difficult to guarantee, so this method still has practical value in the actual environment. For individual large-area customers who lose the same packet, they can be re-packaged with a server or network switch.
在这种方式中,在物理上是服务器和多台客户机组成一个服务器群组共同协作完成 组播的发送和补包,但可以在逻辑上将客户机中兼职为别人服务的那部分视为服务器的 一部分。  In this way, physically, the server and multiple clients form a server group to work together to complete the multicast transmission and replenishment, but the part of the client that serves part-time for others can be logically regarded as Part of the server.
实施例 4' Example 4'
本发明的第四实施例是对上述实施例 1、 实施例 2、 实施例 3的改进。 由于以上几 种实施例的方式无论是用服务器还是用客户机兼职,都是用计算机进行补包的,这种补 包方式容易实施,但靠计算机的软件来实现的结果就是效率比较低,而且反应速度都比 较慢。在单播 TCP协议中, 补包的工作是由上一级的路由器来实现的, 其处理效率和反 应速度都很快。 所以可以考虑将补包的工作交由路由器或三层交换机来实现, 如图 5 所示。此方式可以在多级路由的大型网络中实现类似单播协议的逐级补包,但如果要路 由器或三层交换机来实现此功能,需要对其内置软件、操作***甚至是硬件作较大的改 动。  The fourth embodiment of the present invention is an improvement of the above-described Embodiment 1, Embodiment 2, and Embodiment 3. Because the methods of the above embodiments are supplemented by a computer, whether by using a server or a client, the replenishment method is easy to implement, but the result of relying on the software of the computer is that the efficiency is relatively low, and The reaction rate is relatively slow. In the unicast TCP protocol, the work of replenishing packets is implemented by the router at the upper level, and the processing efficiency and response speed are fast. Therefore, you can consider the work of replenishing the package to be implemented by a router or a Layer 3 switch, as shown in Figure 5. This method can implement step-by-step replenishment of unicast protocols in a large-scale network with multi-level routing. However, if you want a router or a Layer 3 switch to implement this function, you need to make a large-scale software for its built-in software, operating system, or even hardware. change.
较为简单的实现方式是直接将上述的由服务器完成的工作交由路由器来实现,但这 就要求路由器不仅具有 0SI七层协议的三层以内的功能,还必须具有第四层甚至更高层 的功能, 因为它不仅需要查看 IP包头的信息还必须打开 IP数据包,查看其中的内容才 能得知客户机的丢包情况,幸好现在的技术实现四层交换,甚至更高层的功能并不困难。 比较复杂但处理效率更高的处理方法是直接在 IP包头中体现客户机的补包要求, 这需要对现有的 IP协议栈进行一定的修改,首先在 IP数据包头中要有标志位表示客户 机的此数据包是一个请求补包的请求数据包,路由器通过此标志位区分补包请求和其他 信.息数据包,然后路由器就可以将此信息提出来另做处理了,至于客户机或下一级路由 器需要针对哪一个组播流进行补包、需要补多少则可以在包头中描述也可以在数据包内 进行描述。对于客户机需要对哪一个组播流进行补包还可以采用前面所述的用端口号对 应的方式来识别。 The simpler implementation method is to directly implement the above-mentioned work done by the server to the router, but this requires the router to have not only the functions of the three layers of the 0SI seven-layer protocol but also the functions of the fourth layer or higher. Because it not only needs to view the information of the IP header, but also must open the IP packet, and view the contents to know the packet loss of the client. Fortunately, the current technology realizes four-layer exchange, and even higher-level functions are not difficult. The more complex but more efficient processing method is to directly reflect the client's replenishment requirements in the IP header. This requires some modifications to the existing IP protocol stack. First, there must be a flag in the IP packet header to indicate the client. This packet of the machine is a request packet for requesting replenishment. The router distinguishes the replenishment request and other information packets by this flag, and then the router can propose this information for further processing. As for the client or Which multicast stream needs to be replenished for the next-level router, and how much needs to be filled can be described in the header or in the packet. For which multicast stream the client needs to replenish, it can also be identified by the method corresponding to the port number as described above.
如果每一级路由器能用此改进方式所述传输组播, 在网络中就可以实现逐级补包, 在网络中的每一级路由器都实行对组播的可靠传输,而不是像前三种改进方式那样需要 组播数据一直传到接收数据的客户端以后才能发现丢包。但在这种方式中,每一台路由 器既是接收数据的主机又是发送数据的主机,这就涉及到它如何处理已经收到的组播和 补包数据并向下一级主机传输。 该传输包括但不局限于以下方式:  If each level of router can transmit multicast in this improved manner, it can implement step-by-step replenishment in the network. Each level of router in the network implements reliable transmission of multicast, instead of the first three. In the improved way, the multicast data needs to be transmitted to the client receiving the data before the packet loss can be found. But in this way, each router is both the host that receives the data and the host that sends the data. This involves how it handles the received multicast and supplemental data and transmits it to the next-level host. The transmission includes but is not limited to the following:
1. 将那些用单播协议补到的数据包重新加入到组播数据流中向下一级  1. Re-add the packets that were added by the unicast protocol to the multicast data stream to the next level.
主机复制转发。但这样有可能会打乱原来的数据包顺序,无论下一级主机是客户机还是 另一台路由器,混乱的数据包顺序都会对下一级主机的丢包判断和补包造成困扰。对于 这样的情况可以有两种处理方式: Host replication forwarding. However, this may disrupt the original packet sequence. No matter whether the next-level host is a client or another router, the chaotic packet sequence will bother the packet loss judgment and replenishment of the next-level host. There are two ways to handle this situation:
a. 不管数据包的顺序, 将补到的数据包不顾其原有顺序直接整合到  a. Regardless of the order of the data packets, the added data packets are directly integrated into the original order regardless of their original order.
原来的组播数据流当中向下一级传输, 由于上一级的补包需要一个时间过程,这样在本 级主机发向下一级主机的组播数据流中通过补包补回来的数据包就会落后于正常的数 据包顺序,下一级主机有可能在此落后于正常顺序的数据包还未到达时就误判此数据包 丢失。这样就需要各级主机对于丢包的判断釆用较为灵活智能的方式,例如,像前面 "如 何发现丢包"所述的那样。 The original multicast data stream is transmitted to the next stage. Because the previous stage of the replenishment requires a time process, the data packet that is replenished by the replenishment in the multicast data stream of the host of the next level is sent to the host. It will lag behind the normal packet sequence, and the next-level host may misjudge this packet loss when the data packet that lags behind the normal sequence has not arrived. This requires the host to judge the packet loss in a more flexible and intelligent way, for example, as described in "How to find packet loss".
b. 每一级主机收到组播后并不立即复制转发, 而是等待一定时间, 这段时间足够本主机发现丢保、请求补包、并得到上一级主机的补包, 将补到的数据包 按原有顺序整合到原来的组播数据流当中向下一级传输。  b. After receiving the multicast, each host does not immediately copy and forward, but waits for a certain period of time. This time is enough for the host to discover the loss, request the replenishment, and get the replenishment of the host of the upper level. The data packets are integrated into the original multicast data stream in the original order and transmitted to the next level.
2. 本级主机将那些用单播协议从上一级主机补到的数据包放到缓存中,而不将其 补充到原来的组播数据流中,但是其面临的一个问题就是其下一级主机也会发现这些数 据包丢失了, 当然也会发现一些在本级主机向下一级传输中新增的丢包,这时本级主机 可以对于这两种情况的丢包都用单播协议对下一级主机进行补包。  2. The host of this level puts the packets that are supplemented by the unicast protocol from the upper-level host into the cache without adding it to the original multicast data stream, but one problem it faces is its next The host will also find that these packets are lost. Of course, some new packets will be found in the next-level transmission of the host. In this case, the host can use unicast for both cases. The protocol replenishes the next-level host.
通过运用上述的几种方式就可以在一个中小规模的城域网范围内利用组播向大量 用户提供可靠的数据,如果再综合运用基本方式和几种改进方式,就有条件在几乎整个By using the above several methods, you can use multicast to a large number in a small and medium-sized metropolitan area network. Users provide reliable data, and if the basic methods and several improvements are combined, there are conditions in almost the whole
Internet上全网运用组播协议传输可靠数据。 The entire network uses the multicast protocol to transmit reliable data.
本发明的效果可以通过仿真测试予以证明。 ' 仿真环境 1  The effects of the present invention can be demonstrated by simulation tests. ' Simulation environment 1
网络环境是华为的 S3526三层交换机和 S2026Z二层交换机, 测试期间有其他正常 的单播网络通讯, 服务器为 P4 2. 8G/1G RAM,客户机为 P3 1G/256 RAM笔记本。  The network environment is Huawei's S3526 Layer 3 switch and S2026Z Layer 2 switch. During the test, there are other normal unicast network communication. The server is P4 2. 8G/1G RAM, and the client is P3 1G/256 RAM notebook.
本仿真作出了在两组不同环境下的传输效果测试统计,其中第一组是在正常校园网 环境下的传输效果统计, 如表 1所示。 第二组是专门使用很差但单播能 Ping通的网线 模拟恶劣环境下的传输效果统计, 如表 2所示。 正常校园网环境下传输效果统计表  The simulation made transmission performance test statistics in two different environments. The first group is the transmission effect statistics under the normal campus network environment, as shown in Table 1. The second group is dedicated to the use of very poor but unicast ping-through network cable to simulate transmission performance statistics in harsh environments, as shown in Table 2. Statistical effect of transmission effect in normal campus network environment
Figure imgf000017_0001
模拟恶劣的实际环境下传输效果统计表
Figure imgf000017_0001
Simulation of the transmission performance statistics in a harsh environment
Figure imgf000017_0002
Figure imgf000017_0002
说明: 在表 1、 2中的 6Μ码流时, 组播丢包率骤升及补包率未能达到 100%是因为客 户机的配置较低。 仿真环境 2  NOTE: In the 6 Μ code stream in Tables 1 and 2, the multicast packet loss rate and the packet replenishment rate fail to reach 100% because the client configuration is low. Simulation environment 2
网络环境:港湾的 BIG HAMMER6808三层交换机和 Haminer24E二层交换机,测试期间 有其他正常的单播网络通讯, 服务器为 P4 2. 8G/1G RAM,客户机为 P4 2. 8G/256 RAM台 式机。  Network environment: BIG HAMMER6808 three-layer switch and Haminer24E Layer 2 switch in the harbor. There are other normal unicast network communication during the test. The server is P4 2. 8G/1G RAM and the client is P4 2. 8G/256 RAM.
本仿真也作出了在两组不同环境下的传输效果测试统计,其中第一组是在正常校园 网环境下的传输效果统计, 如表 3所示。 第二组是专门使用很差但单播能 Ping通的网 线模拟恶劣环境下的传输效果统计, 如表 4所示。 正常校园网环境下传输效果统计表 : The simulation also made transmission performance test statistics in two different environments. The first group is the transmission effect statistics in the normal campus network environment, as shown in Table 3. The second group is a network that uses very poor but unicast pings. The line simulates the transmission effect statistics in a harsh environment, as shown in Table 4. Statistics of transmission effects in a normal campus network environment :
Figure imgf000018_0001
从上述表 1、 表 2、 表 3、 表 4的几组测试数据可得出以下结论:
Figure imgf000018_0001
From the above test data of Table 1, Table 2, Table 3, and Table 4, the following conclusions can be drawn:
1. 网络环境恶劣会导致组播丢包率上升。  1. The poor network environment will cause the multicast packet loss rate to increase.
2. 网络环境恶劣不会导致单播补包成功率下降, 几乎对单播补包毫无影响。 2. The bad network environment will not lead to a decrease in the success rate of unicast replenishment, and will have almost no impact on unicast replenishment.
3. 本方法对于组播丢包的识别和补包率几乎达到 100%。 3. The method for identifying and replenishing multicast packet loss is almost 100%.
4. 在大流量的情况下, 客户机性能对补包成功率有影响。  4. In the case of large traffic, client performance has an impact on the success rate of the replenishment.
5. 补包服务器负载很低, 一台服务器可以轻易承担向数万台客户机补包的工作。  5. The replenishment server load is very low, and one server can easily undertake the work of replenishing tens of thousands of clients.

Claims

权利要求 Rights request
1. 一种用组播和单播协议可靠传送数据的方法, 采用单播协议对组播数据流的丢 包进行补包重传, 其过程如下-1. A method for reliably transmitting data by using a multicast and unicast protocol, using a unicast protocol to repackage a packet of a multicast data stream, the process is as follows -
( 1 ) 由发送或转发组播数据的主机发送至少一条组播数据流; (1) transmitting at least one multicast data stream by a host that sends or forwards multicast data;
(2) 约定地址的补包主机使用至少一个约定的单播地址接收来自接收数据的主机 的补包请求;  (2) The supplemental host of the agreed address receives the replenishment request from the host receiving the data using at least one agreed unicast address;
(3 ) 约定地址的补包主机接收并识别补包请求, 并按照请求的定位标尺从存储 器中找到相应的数据;  (3) The replenishing host of the agreed address receives and identifies the replenishment request, and finds corresponding data from the memory according to the requested positioning ruler;
(4) 约定地址的补包主机找到相应的数据后, 以单播协议向请求补包的接收数 据的主机发送补包数据。  (4) After the replenishing host of the agreed address finds the corresponding data, it sends the replenishment data to the host that receives the received data of the replenished packet by the unicast protocol.
2. 一种用于接收权利要求 1的接收数据方法, 其过程如下- 2. A method for receiving a received data according to claim 1, the process of which is as follows -
( 1 ) 接收数据的主机加入至少一个组播组, 接收组播数据流的数据; (1) The host receiving the data joins at least one multicast group to receive data of the multicast data stream;
(2) 接收数据的主机在接收组播数据流的过程中, 不断监测是否有错包和丢包 数据;  (2) The host receiving the data continuously monitors whether there is a wrong packet or packet loss data during the process of receiving the multicast data stream;
( 3 ) 接收数据的主机发现错包和丢包后, 以单播协议向约定地址的补包主机发 出补包请求;  (3) After the host receiving the data finds the wrong packet and the packet loss, the unicast protocol sends a replenishment request to the replenishing host of the agreed address;
(4) 接收数据的主机将接收到的有丢包的组播数据与单播补包数据进行整合, 使其成为完整或部分完整的数据。  (4) The host receiving the data integrates the received packetized multicast data with the unicast packet data to make it complete or partially complete.
3. 一种实现用组播和单播协议可靠接收数据的接收主机, 包括:  3. A receiving host that implements reliable reception of data using multicast and unicast protocols, including:
存储模块, 用于存储接收到的数据;  a storage module, configured to store the received data;
组播接收模块, 用于接收组播数据流的数据和以组播协议收到的有丢包的数据, 并将接收到的这些数据存储到存储模块中;  a multicast receiving module, configured to receive data of a multicast data stream and data received by the multicast protocol, and store the received data in the storage module;
丢包判断及补包控制模块, 用于判断所收到的组播数据流的数据是否产生丢包, 并控制单播收发模块进行补包;  The packet loss judging and replenishing control module is configured to determine whether the data of the received multicast data stream is lost, and control the unicast transceiver module to perform replenishment;
单播收发模块,用于以单播协议向补包服务器发送补包请求,并接收补包服务器发 来的补包数据;再将收到的补包数据交给丢包判断及补包控制模块与存储模块中的丢包 数据进行整合。  The unicast transceiver module is configured to send a replenishment request to the replenishment server by using a unicast protocol, and receive the replenishment data sent by the replenishment server; and then hand over the received replenishment data to the packet loss judgment and replenishment control module. Integration with packet loss data in the storage module.
4. 根据权利要求 1所述的传送数据的方法, 其中所述的约定地址的补包主机, 可 以约定是发送组播流的源服务器本身; 或是网络中的路由器或交换机;或是 CDN的边缘 服务器; 或是另外一台客户机; 或是能完成响应补包请求的其他主机; 4. The method of transmitting data according to claim 1, wherein the supplemental host of the agreed address may agree to be the source server itself that sends the multicast stream; or the router or switch in the network; or the CDN. Edge Server; or another client; or other host capable of responding to a replenishment request;
该约定地址可以约定用某个或某些单比地址对一个或一些单播地址补包;可以约定 服务器和客户机原有的单播地址,也可以另外约定补包地址;还可以在传输过程中根据 负载临时约定补包地址;也可以约定由另外一个正在接收此数据流或已经接收到此数据 的客户机给自己补包, 该提供补包服务的客户机的单播地址也为补包地址;  The agreed address may stipulate that one or some unicast addresses are replenished by one or some single ratio addresses; the original unicast address of the server and the client may be agreed, or the supplementary address may be additionally agreed; and the transmission process may also be Replenish the address according to the temporary contract of the load; it may also be agreed to be replenished by another client that is receiving the data stream or has received the data, and the unicast address of the client providing the replenishment service is also a replenishment Address
实现该约定地址的方式可选择以下几种:  The way to implement the agreed address can be as follows:
a. 在客户机内部进行设置,即在接收数据端约定固定的补包地址,或按固定规则约 定补包地址;  a. Set inside the client, that is, the fixed data address is agreed at the receiving data end, or the supplementary address is determined according to a fixed rule;
b. 在动态访问网络的过程中从某负责指引的服务器动态地取得访问补包主机的地 址;  b. dynamically accessing the address of the replenishment host from a server responsible for directing during the process of dynamically accessing the network;
c将该两者结合,接收数据的主机先访问固定或固定规则约定的地址的主机,获得 所需的补包主机的地址等相关指引信息, 再根据指引找到补包主机进行补包。  c. Combine the two, and the host that receives the data first accesses the host of the address fixed or fixed by the rule, obtains the relevant guidance information such as the address of the required replenishment host, and then finds the replenishment host to replenish according to the guidelines.
5. 根据权利要求 2所述的接收数据的方法, 其中所述的接收数据的主机可以是网 络中的客户机; 或是网络中的路由器; 或是专门用于补包的约定地址的补包主机, 该补 包主机将接收到的数据用于向其他客户机提供补包数据。  The method for receiving data according to claim 2, wherein the host receiving the data may be a client in a network; or a router in a network; or a supplemental address of an agreed address specifically used for replenishing The host, the supplemental host uses the received data to provide supplemental data to other clients.
6. 根据权利要求 1所述的数据传输方法, 其中所述的定位标尺主要有两种度量方 式:一种是基于数据的存储方式, 即以文件的起始点为原点, 以存储的长度或偏移量为 单位度量其位置和长度; 另一种是直接用数据包作为标尺的度量单位, 即将每个数据包 的存储单元作为度量标尺的一个刻度, 数据包的标号可以借用 IP包头中的序号, 也可 以由程序在数据包的内部数据中进行编号。  6. The data transmission method according to claim 1, wherein the positioning ruler has two main measurement methods: one is a data-based storage method, that is, starting from a starting point of the file, and storing the length or partial The shift is measured in units of position and length; the other is to directly use the data packet as the unit of measure of the scale, that is, the storage unit of each data packet is used as a scale of the metric scale, and the label of the data packet can be borrowed from the serial number in the IP header. , can also be numbered by the program in the internal data of the packet.
7. 根据权利要求 2或 5或 6所述的接收数据的方法, 其中所述的接收数据的主机 在接收组播数据流的过程中不断监测是否有错包和丢包数据, 其监测方式有如下几种: The method for receiving data according to claim 2 or 5 or 6, wherein the host receiving the data continuously monitors whether there is a wrong packet or a packet loss data in the process of receiving the multicast data stream, and the monitoring manner thereof is The following are the following:
( 1 ) 接收数据的主机不断监测位于数据包头或数据包中的数据包序号, 按数据包 顺序判断是否丢包, 一但发现丢包立刻请求补包; (1) The host receiving the data continuously monitors the sequence number of the packet located in the packet header or the data packet, determines whether the packet is lost according to the sequence of the packet, and immediately finds that the packet is requested to be replenished immediately;
(2) 接收数据的主机不断监测位于数据包头或数据包中的数据包序号, 按数据包 顺序判断是否丢包,一但发现丢包立刻计入丢包列表,按照某种延迟规则等待后再请求 补包,在延迟等待过程中不断监测后续传来的数据包,如果发现有丢包列表中记录的数 据包, 则将此记录删除。  (2) The host receiving the data continuously monitors the sequence number of the packet located in the packet header or the data packet, and judges whether the packet is lost according to the sequence of the packet. Once the packet is found, the packet is immediately counted in the packet loss list, and waits according to a certain delay rule. The request is replenished, and the subsequent data packets are continuously monitored during the delay waiting process. If the data packet recorded in the packet loss list is found, the record is deleted.
8. 根据权利要求 1所述的数据传输方法, 其中所述的约定地址的补包主机对所 接收的补包请求的识别,是通过约定服务器发送组播数据流时使用不同的端口号,与补 包服务器约定用单播地址使用不同地址或端口的对应关系, 识别客户需要补包的数据 流; 或直接从数据包的内容当中识别补包请求是针对哪一个组播数据流的。 The data transmission method according to claim 1, wherein the replenishing host of the agreed address identifies the received replenishment request by using a different port number when the server sends the multicast data stream, and Make up The packet server stipulates that the unicast address uses the correspondence of different addresses or ports to identify the data stream that the client needs to replenish; or directly identifies from the content of the data packet which multicast data stream the replenishment request is for.
9. 根据权利要求 1或 4所述的数据传送方法, 其中所述的发送或转发组播数据的 主机与约定地址的补包主机使用同一台服务器,该服务器中建立了共用快速存储器缓冲 区,从该共用快速存储器缓冲区中取得数据,可分别用于发送组播和向请求补包的客户 机发送补包数据。  The data transmission method according to claim 1 or 4, wherein the host that sends or forwards the multicast data uses the same server as the supplemental host of the agreed address, and a shared fast memory buffer is established in the server. Data is retrieved from the shared fast memory buffer and can be used to send multicast and send supplemental data to the client requesting the replenishment, respectively.
10. 根据权利要求 1或 4所述数据传送方法, 其中所述的约定地址的补包主机使 用一台客户机兼职完成所述的补包任务, 且需要在发送组波数据服务器中维护一个列 表,该列表记载有客户机正在或已经接收过的组播数据, 当一个客户机开始接收某个组 播时通知服务器,服务器将一个或几个正接收或已经接收过相同组播数据的客户机"伙 伴"的单播地址通告此客户机, 并将它作为一个伙伴记录通知其他伙伴, 当此客户机发 现丢包或数据缺失时可以向其 "伙伴"请求补充数据, 由另一个或几个作为其伙伴的客 户机向其发送缺失的数据。  10. The data transfer method according to claim 1 or 4, wherein the replenishing host of the agreed address uses a client to perform the replenishment task part-time, and needs to maintain a list in the sending group wave data server. The list records the multicast data that the client is or has received. When a client starts receiving a multicast, it notifies the server that the server will be one or several clients that are receiving or have received the same multicast data. The buddy address of the "buddy" advertises this client and notifies it to other partners as a partner record. When this client finds that a packet loss or data is missing, it can request supplementary data from its "partner", by another or several The client as its partner sends missing data to it.
11. 根据权利要求 1或 4所述数据传送方法, 其中所述的约定地址的补包主机使用 网络中的路由器完成所述的补包任务,且将那些用单播协议补到的数据包,重新加入到 组播数据流中向下一级主机复制转发; 或将那些用单播协议补到的数据包放到缓存中, 由路由器用单播协议向下一级主机进行补包。  11. The data transfer method according to claim 1 or 4, wherein the supplemental host of the agreed address completes the replenishment task using a router in the network, and the data packets that are supplemented by the unicast protocol are Re-join the multicast data stream to the next-level host to copy and forward; or put those packets that are supplemented by the unicast protocol into the cache, and the router uses the unicast protocol to repackage the next-level host.
PCT/CN2006/001384 2005-06-17 2006-06-15 A method for transmitting data reliably by using multicast and unicast protocol and the host for receiving the data WO2006133655A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN200510042830.1 2005-06-17
CN 200510042830 CN1697354B (en) 2005-06-17 2005-06-17 Method for reliable transmitting data through multicast and unicast protocol, and host of receiving data

Publications (1)

Publication Number Publication Date
WO2006133655A1 true WO2006133655A1 (en) 2006-12-21

Family

ID=35349902

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2006/001384 WO2006133655A1 (en) 2005-06-17 2006-06-15 A method for transmitting data reliably by using multicast and unicast protocol and the host for receiving the data

Country Status (3)

Country Link
CN (1) CN1697354B (en)
HK (1) HK1085865A1 (en)
WO (1) WO2006133655A1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2486743A (en) * 2010-12-24 2012-06-27 Wireless Tech Solutions Llc A cellular communication system for broadcast communication comprises an broadcast transmission augmented with a unicast transmission.
GB2486741A (en) * 2010-12-24 2012-06-27 Wireless Tech Solutions Llc Wireless communication unit, integrated circuit, computer program and method for reception comprises a broadcast transmission augmented with a unicast transmi
US9445242B2 (en) 2010-12-24 2016-09-13 Nvidia Corporation Methods and apparatuses for supplementing MBMS transmission to a relay via unicast transmission
US11695855B2 (en) 2021-05-17 2023-07-04 Margo Networks Pvt. Ltd. User generated pluggable content delivery network (CDN) system and method
US11860982B2 (en) 2022-05-18 2024-01-02 Margo Networks Pvt. Ltd. Peer to peer (P2P) encrypted data transfer/offload system and method
US11930439B2 (en) 2019-01-09 2024-03-12 Margo Networks Private Limited Network control and optimization (NCO) system and method

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101136759A (en) * 2006-09-01 2008-03-05 华为技术有限公司 Transmission processing method and system of multimedia broadcasting multicast service
CN101488897B (en) * 2009-02-25 2012-11-28 北京东土科技股份有限公司 Zero packet loss technique implementing method when fast redundancy reverse occurs
US8612622B2 (en) * 2009-10-02 2013-12-17 Limelight Networks, Inc. Real-time message queuing for a processing ring
WO2011071474A1 (en) * 2009-12-10 2011-06-16 Thomson Licensing Protocol booster for sctp in muticast networks
CN102340742B (en) * 2010-07-22 2015-04-15 华为技术有限公司 Data processing method and access point equipment
CN103533387B (en) * 2013-10-21 2016-08-17 腾讯科技(深圳)有限公司 A kind of live video control, equipment and system
CN105357577A (en) * 2014-08-22 2016-02-24 中兴通讯股份有限公司 Packet loss retransmission method and device
CN107613367B (en) * 2016-07-11 2019-12-03 成都鼎桥通信技术有限公司 Stream medium data playback method and player
CN106549956B (en) * 2016-11-02 2019-12-24 惠州高盛达科技有限公司 Local area network communication method combining UDP and TCP
CN109756846A (en) * 2017-11-06 2019-05-14 成都鼎桥通信技术有限公司 The benefit packet method and system of group communication
CN108390764B (en) * 2018-01-02 2020-07-31 东南大学 Broadcast content repacking method and system for broadcast storage network
CN108933835A (en) * 2018-07-23 2018-12-04 安徽广行领视通信科技有限公司 A kind of CDN distribution method for saving bandwidth resources
CN110768709A (en) * 2018-07-27 2020-02-07 清华大学 Multicast and unicast cooperative data transmission method, server and terminal
CN111865874B (en) * 2019-04-28 2022-08-16 成都鼎桥通信技术有限公司 Data transmission method and device
CN112533154B (en) * 2019-09-19 2022-04-22 成都鼎桥通信技术有限公司 Data processing method, device and storage medium
CN111770389A (en) * 2020-03-20 2020-10-13 深圳宇翊技术股份有限公司 PIS frame supplementing algorithm based on multicast and unicast mixed strategy

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020194333A1 (en) * 2001-06-15 2002-12-19 Wonin Baek Message transmission method and system capable of balancing load
WO2003105353A2 (en) * 2002-06-11 2003-12-18 Meshnetworks, Inc. System and method for multicast media access using broadcast transmissions with multiple acknowledgments in an ad-hoc communications network

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1317870C (en) * 2003-12-10 2007-05-23 联想(北京)有限公司 Method for guaranteeing reliability of data transmission from one point to multiple points

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020194333A1 (en) * 2001-06-15 2002-12-19 Wonin Baek Message transmission method and system capable of balancing load
WO2003105353A2 (en) * 2002-06-11 2003-12-18 Meshnetworks, Inc. System and method for multicast media access using broadcast transmissions with multiple acknowledgments in an ad-hoc communications network

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2486743A (en) * 2010-12-24 2012-06-27 Wireless Tech Solutions Llc A cellular communication system for broadcast communication comprises an broadcast transmission augmented with a unicast transmission.
GB2486741A (en) * 2010-12-24 2012-06-27 Wireless Tech Solutions Llc Wireless communication unit, integrated circuit, computer program and method for reception comprises a broadcast transmission augmented with a unicast transmi
GB2486743B (en) * 2010-12-24 2013-02-13 Nvidia Corp Cellular communication system for broadcast communication
GB2486741B (en) * 2010-12-24 2013-02-13 Nvidia Corp Wireless communication unit, integrated circuit and method for reception of broadcast communication
US9445242B2 (en) 2010-12-24 2016-09-13 Nvidia Corporation Methods and apparatuses for supplementing MBMS transmission to a relay via unicast transmission
US9961412B2 (en) 2010-12-24 2018-05-01 Nvidia Corporation Cellular communication system for broadcast communication
US11930439B2 (en) 2019-01-09 2024-03-12 Margo Networks Private Limited Network control and optimization (NCO) system and method
US11695855B2 (en) 2021-05-17 2023-07-04 Margo Networks Pvt. Ltd. User generated pluggable content delivery network (CDN) system and method
US11860982B2 (en) 2022-05-18 2024-01-02 Margo Networks Pvt. Ltd. Peer to peer (P2P) encrypted data transfer/offload system and method

Also Published As

Publication number Publication date
HK1085865A1 (en) 2006-09-01
CN1697354A (en) 2005-11-16
CN1697354B (en) 2010-05-05

Similar Documents

Publication Publication Date Title
WO2006133655A1 (en) A method for transmitting data reliably by using multicast and unicast protocol and the host for receiving the data
US9344287B2 (en) Scalable transport system for multicast replication
Li et al. OTERS (On-tree efficient recovery using subcasting): A reliable multicast protocol
US9900168B2 (en) System and method for reliable multicast data transport
Kumar et al. Survey on transport layer protocols: TCP & UDP
Wang et al. SDUDP: A reliable UDP-Based transmission protocol over SDN
CN113194509B (en) Multi-network fusion transmission system and transmission method based on QoS
US9118494B2 (en) Method for group-based multicast with non-uniform receivers
KR101600060B1 (en) Protocol booster for sctp in multicast networks
Argyriou et al. Bandwidth aggregation with SCTP
Lee et al. IRMA: A reliable multicast architecture for the Internet
Chen et al. Improvement and implementation of a multi-path management algorithm based on MPTCP
Gupta et al. Fast interest recovery in content centric networking under lossy environment
Adamson et al. Multicast Negative-Acknowledgment (NACK) Building Blocks
Palacios et al. High-throughput multi-multicast transfers in data center networks
Li et al. MSRT: Multi-source request and transmission in content-centric networks
Li et al. A reliable message multicast transport protocol for virtual circuits
Shi Named data networking in local area networks
Rajput et al. Comparing stream control and datagram congestion control with traditional transmission control protocol
Duan et al. Reliable Multicast Based on Congestion-Aware Cache in ICN. Electronics 2021, 10, 1579
Xu et al. A Design Idea of Multicast Application in Satellite Communication Network
Rosen Network service delivery and throughput optimization via software defined networking
Brandt Reliable multicast protocols and their application on the Green Bank Telescope
Huang et al. SCTP-based bandwidth aggregation across heterogeneous networks
Ghaderi et al. On the Scalability of Reliable Data Transfer in High Speed Networks

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 06742189

Country of ref document: EP

Kind code of ref document: A1