WO2002078263A1 - Method and system for multicasing cycle transmission data in data network - Google Patents

Method and system for multicasing cycle transmission data in data network Download PDF

Info

Publication number
WO2002078263A1
WO2002078263A1 PCT/CN2002/000184 CN0200184W WO02078263A1 WO 2002078263 A1 WO2002078263 A1 WO 2002078263A1 CN 0200184 W CN0200184 W CN 0200184W WO 02078263 A1 WO02078263 A1 WO 02078263A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
client
transmission
server
group
Prior art date
Application number
PCT/CN2002/000184
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 WO2002078263A1 publication Critical patent/WO2002078263A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1881Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with schedule organisation, e.g. priority, sequence management

Definitions

  • the present invention relates to a method and system for data transmission in a data network, and in particular, to a method and system for sending and receiving data in a data network using a multicast transmission method. Background technique
  • the transmission method commonly used in current data networks is usually a monocular transmission method, as shown in FIG. 1, that is, one-to-one transmission of data between the server 100 and the client 201, and each client requests data from the server 100,
  • the server 100 sends a corresponding data specifically to the client.
  • the operation process of this method is roughly that an unspecified client sends a request to the server based on the IP address on the Internet, and the server transmits the corresponding file to the client according to the request.
  • the browser program reads the file according to the agreed-upon language format, such as HTML, etc.
  • This data transmission method is characterized in that when the data transmission amount is not large, the duration that each client occupies the server bandwidth is generally short, so When the server load is not heavy, the server responds to the data transmission request in a timely manner and sends it at any time. Due to one-to-one transmission, the communication bandwidth (rate) between the server and the client can be adjusted according to the situation of the two parties. There is an error packet retransmission mechanism. Errors and lost data packets can be retransmitted in time.
  • the server since the monocular transmission method must occupy the transmission bandwidth of the server and the backbone network in real time during the data transmission process, when a large number (tens of thousands, millions) of clients request data from the server in the same period of time, the server responds to these The client needs to send a large amount of the same data, which increases the load on the server and the network backbone; and the more the client requests, the larger the load.
  • the server sends video service data according to the requests sent by each client to the server, so that the client can request the programs that they are interested in at any time.
  • the server due to the large data volume of video on demand, in the existing technology, first, the server is insufficient. At present, the best video on demand server can provide video on demand services to a maximum of 1,000 customers.
  • a multi-mode transmission mode should be used.
  • the server 110 sends data in a multi-mode transmission mode, all the clients 211 and 212 that have joined the multi-mode transmission group. Both, 213 can receive this data at the same time.
  • the server sends only one copy of the data, so the server load is not heavy. Only one copy of data is transmitted in the network backbone, and the distribution is replicated and distributed in the branch part of the network, so the burden on the network backbone is greatly reduced.
  • Cisco I0S network protocol provides a solution based on Mulcica and Unicast technologies. Its Network Engineering Series: Cisco I0S Network Protocol Solution Volume 1 : IP »(CISCO IOS SOLUTIONS FOR NETWORK PROTOCOLS VOLUME I: IP, [US] Ci sco Syetems company, published by the Electronic Industry Press in February 1999) The following explanation is given on page 828:
  • IP multicasting provides a third solution—allowing a host to send packets (ie, group transmissions) to a subset of all hosts.
  • the hosts in a subset are called group members.
  • Packets sent to group members are identified by a single multicast group address. Multicast packets are delivered to the group with the best reliability, similar to monocasting.
  • the multicast network environment consists of senders and receivers. Any host, whether it is a group member or not, can be a sender, but the receiver can only be a group member.
  • All recipients of the multicast group are assigned to the same multicast address, and the sender uses this address as the destination address to deliver the packet to all members of the group.
  • the group membership of a multicast group is dynamically changed, and the host can join or leave the group at any time. There is no limit to the number and location of members of the multicast group. The same host can be a member of more than one different multicast group at the same time.
  • the composition and activity of the different groups are different and change with time.
  • a group can be active for a long time or for a very short time.
  • the members of a group are constantly changing. Groups containing members may also be inactive.
  • the Manual of Network Interconnection Technology (Network Engineering Series, published by the Electronic Industry Press in April 1998) also introduces the multicast transmission method:
  • the single-multicast transmission routing protocol (SMRP) is a transport layer protocol. It provides routing for multi-media data streams on the AppleTalk network. It supports Apple Computer Quick Negotiation (QTC) technology.
  • SMRP relies on protocol services below the network layer to provide connectionless optimal transmission for multicast datagrams. In particular, SMRP simplifies the transmission of data from a single source to multiple destinations.
  • Multicast (Mul t icas t) protocol mainly refers to the transmission mode in which the TCP / IP protocol group allows a host to send packets (ie, group transmission) to a subset of all the hosts, but as described in the AppleTalk
  • Other protocol families such as SMRP also have protocols with similar functions, such as the IPX / SPX protocol family; the Ethernet protocol ERTHERNET among the second layer protocols of the network; C should be mainly used for wireless transmission and satellite data transmission protocols.
  • This protocol not only It can be grouped by its address, and it can be grouped by the carrier frequency.
  • the monocular transmission function point-to-point transmission) is a function that almost all protocol families already have.
  • the multicast transmission server sends data once, so that when the server starts to send data, all clients that need this data must know the start time of the server to send data in advance, and join the multicast transmission group in advance or at the same time. Only when you receive data from the beginning can you receive a complete data. If one or more clients fail to join this multicast group in time, they will not receive complete data.
  • the current multicast transmission methods cannot meet the requirements.
  • the bandwidth used by the server to send data cannot be adjusted for the bandwidth owned by each client.
  • the bandwidth used by all clients to receive data must be greater than or equal to the bandwidth sent by the server. Otherwise, the client cannot completely receive the data sent by the server, and it is impossible for all clients in the data network to receive data with a bandwidth greater than or equal to the bandwidth sent by the server.
  • the multicast server does not have a retransmission mechanism for error packets. In this way, when the client receives an incorrect data packet, it cannot request the server to retransmit the data packet, and it cannot guarantee the complete and correct transmission of data. Summary of the invention
  • An object of the present invention is to provide a method and a system for cyclically transmitting data by using a multi-eye transmission method based on network data transmission in accordance with the foregoing shortcomings of the prior art.
  • You can set the scale for each piece of data, and send the piece of data to at least one multicast transmission group.
  • Use the multicast transmission method to reduce the load on the server and the backbone network, and make the client join the multicast anytime.
  • the transmission group starts to receive data, and can all receive the piece of data completely.
  • the client can automatically choose to join multiple multi-eye transmission groups of the corresponding bandwidth according to its own bandwidth and other factors to start the reception of multiple pieces of data at the same time.
  • the client is receiving When erroneous data is obtained, the start time of receiving the corresponding segment of data can be calculated according to the ruler to correct the error to ensure the complete and correct reception of the data.
  • a further object of the present invention is to provide a method and system for cyclically transmitting data by using a multi-eye transmission method, combined with a mono-eye transmission method to receive data at the beginning, and utilizing the characteristics of its real-time response to implement a video-on-demand system server The features of real-time response and large amount of repeated data transmission effectively complete online real-time viewing.
  • a method for circularly transmitting data in a data network by using a multicast transmission, wherein a server that sends data takes the following steps:
  • the server stores at least a piece of data with a "ruler" to be transmitted in its memory; b.
  • the server provides a directory letter about the data to be transmitted in a single-shot or multi-shot transmission c.
  • the data to be transmitted by the server Send to the corresponding multicast group through the network respectively; d.
  • the server starts to transmit again from the beginning after each multicast group is transmitted, and so on; or when at least one client is receiving
  • the data is transmitted cyclically when the data is not transmitted; otherwise, the loop is terminated, and the data is transmitted cyclically again when at least one client needs to receive the data again.
  • step a further comprises:
  • the server divides a set of data to be sent into several data segments with a "ruler", and Stored in its memory and transmitted to the corresponding multicast group.
  • the server transmits at least one piece of data with a "ruler" to multiple multicast transmission groups, and the time when each multicast transmission loops to the starting point of the data is staggered with each other.
  • the server can respond to the request of the client to transmit a part or all of this piece of data to the client in a monocular transmission manner.
  • the "scale of the data” uses the sequence number of the data packet as the scale of the scale.
  • the "scale" of the data uses the number of bytes or digits from a certain data point to the beginning or the end of the data segment as a scale.
  • Clients who need to receive a certain piece of data obtain the directory information related to this set of data from the multicast transmission group or directly from the server;
  • the client receives this piece of data from one or several multicast transmission groups that transmit this piece of data, and records the "receiving start point" from which it starts to receive; It transmits data;
  • the client receives multiple pieces of data at the same time, and connects adjacent data pieces as a whole for use.
  • the client loops to the start time of this piece of data according to the data transmitted cyclically, and uses the start point or end point of this piece of data as the "receiving start point", so that it is not necessary after receiving this piece of data Connect it at the starting point of reception.
  • the client receiving the data verifies the data that has been received, and if the data is found to be incorrect or missing, the error or missing data fragments are positioned using the "scale,” and the scale is positioned, and According to the directory information, calculate the time when a multi-eye transmission group will cycle to this scale next time, and join this transmission group to receive data in time to correct or supplement some errors or missing data.
  • the client receiving the data verifies the received data, and if the data is found to be wrong or missing, the wrong or missing data segment is positioned with its "scale", and then the server is requested to monocularly Send some of the data described as erroneous or missing.
  • a server system for implementing cyclic transmission of data by using multi-mesh transmission includes a memory, a central processor, and a network adapter, and the server is configured to send data, where:
  • the server stores at least a piece of data with a "ruler" to be transmitted in its memory; b. The server provides directory information about the data to be transmitted in a single-shot or multi-shot transmission manner;
  • the server transmits the data to be transmitted to the corresponding multicast group through the network respectively.
  • the server retransmits from the beginning again after the transmission of each multicast group is completed.
  • At least one client transmits data cyclically when receiving data, otherwise the loop is terminated, and data is transmitted again until at least one client needs to receive data again.
  • a client system that implements cyclic transmission of data using multi-mesh transmission includes a memory, a central processor, and a network adapter, and the client system is configured to receive data, where:
  • the client that needs to receive a certain piece of data obtains the directory information related to this set of data from the multicast transmission group or directly from the server;
  • the client transmits the multicast data group from one or several groups. Receive this piece of data and record the "receiving start point" of receiving it; or at the same time require the server to send data to it in a single transmission;
  • the client When the client receives data from a multicast transmission group or a single transmission, the client stops receiving data from the multicast transmission group or a single transmission when the data reaches or exceeds a corresponding "reception start point" of the data;
  • the client system when the received multiple pieces of data are each data piece after a set of data is divided into several data pieces, the client system receives at least one piece of data at the same time and connects adjacent data pieces, Or it can be used as a whole.
  • the client system wherein the client system loops to the start time of the data according to the data transmitted cyclically, and uses the start or end point of the data as the "receiving start point" to complete the reception of the data. It is not necessary to connect the data at the starting point after receiving the data.
  • using the present invention greatly reduces the load on the server and the network backbone, and also makes it difficult for a hacker to attack the server, because the client only enters a certain multicast transmission group. And get a copy of the data, its request does not necessarily need to be sent to the server, all servers can be more strict management of its entrance.
  • the scale is fixed, and the server sends the data to at least one multicast transmission group cyclically.
  • any client can choose any time to join a multicast transmission group, and the scale is used to determine whether the data is complete and correct.
  • the client can The multicast transmission group corresponding to its bandwidth is automatically selected, and the error data can be calculated and added to the reception time according to the scale, thereby effectively achieving low-load and large-capacity data transmission of the network backbone and server.
  • the present invention provides a method and system for transmitting data in a cyclic manner using multi-eye transmission in a data network.
  • the mono-eye transmission method when receiving data at the beginning, it utilizes the characteristics of its real-time response, thereby realizing When data is transmitted, it can respond to the client's request quickly, as well as It enables a large amount of data to be transmitted to realize video on demand, and has little impact on the bandwidth of the network backbone and the server.
  • the present invention can download data quickly and reliably; download the data at any time and in time; start using the data as early as possible; the client on the client side feels like using Monocular transmission is as timely, convenient and fast.
  • FIG. 1 is a schematic diagram of a data flow when downloading data or video-on-demand by using a monocular transmission method in the prior art Internet, and the clients 201, 202, and 203 are shown downloading the same set of data from the server 100;
  • FIG. 2 is a schematic diagram of a data flow for downloading data or opening a video conference by using a multi-mode transmission method in the prior art Internet.
  • the figure shows clients 211, 212, and 213 downloading the same group of data from a multi-mode transmission group, respectively;
  • FIG. 3 is a schematic diagram of a data flow of a method for transmitting data in a multicast network in a data network according to the present invention.
  • the diagram shows clients 221, 222, and 223 downloading required data from different multicast delivery groups.
  • the client The machine 221 also downloads data from the server in a monocular transmission mode at the same time;
  • FIG. 4A shows the nth and 11 + 1th cycles of a segment of data that the server cyclically sends to a certain multicast transmission group in the first preferred embodiment of the present invention
  • FIG. 4B shows a way for a client to receive data from the data sent by the server shown in FIG. 4A: a complete cycle of the start receiving point from the beginning to the next cycle;
  • FIG. 4C shows another way for a client to receive data from the data sent by the server shown in FIG. 4A: from the beginning of receiving to the next cycle, after the start receiving point, continue to receive a piece of redundant data;
  • FIG. 4D is a schematic diagram of calculating and receiving correct data in a subsequent cycle after an error is found in the data received by the client shown in FIG. 4B or FIG. 4C;
  • FIG. 5 shows a method for transmitting data using a multi-drop transmission cycle in a data network of the present invention.
  • FIG. 6 is a schematic diagram of a method for transmitting data in a multicast network using a multicast transmission in the data network of the present invention.
  • FIG. 7 is a schematic diagram of a method for transmitting data by using multi-eye transmission in a data network according to the present invention.
  • a client with a larger bandwidth simultaneously combines a single-eye transmission mode and multiple multi-eye transmission groups to receive data;
  • FIG. 8 is In the method for cyclically transmitting data in a data network of the present invention by using multi-eye transmission, a client with a larger bandwidth receives a part of data of a group of data by using single-eye transmission, and simultaneously receives the remaining data by using multiple multi-eye transmission groups.
  • 9A and 9B are schematic diagrams of a method for transmitting data using multiple S transmission cycles in a data network according to the present invention.
  • the server uses multiple multicast transmission groups (a)-(e) to transmit the same piece of data and the client receives the schematic diagram.
  • 9A is a schematic diagram of the receiving method used by a client with a smaller bandwidth. The client only joins a multicast transmission group to receive it.
  • Figure 9B is a receiving method that can be selected by a client with a larger bandwidth. It uses multiple multicast transmission groups at the same time. Receive different parts of the same piece of data;
  • FIG. 10 shows another preferred embodiment of a method for cyclically transmitting data using a multicast transmission in a data network of the present invention. It shows that a client with a larger bandwidth receives multiple sets of data using multiple multicast transmission groups.
  • FIGS. 11A and 11B show a method for transmitting data in a cyclic manner in a data network according to the present invention.
  • a server uses multiple multicast transmission groups and a single transmission to transmit the same piece of data at the same time
  • the client receives the data.
  • Schematic diagram where FIG. 11A is the receiving method adopted by the client with a smaller bandwidth, and the client only joins a multicast transmission group and receives the data in a single transmission.
  • FIG. 11B is a method that the client with a higher bandwidth can choose , Using multiple multicast transmission groups and monocular transmission to receive different parts of the same piece of data at the same time;
  • FIG. 12 is a transmission schematic diagram of the server transmitting two sets of data of A and B in multiple multicast transmission groups in the present invention, where the data of group A is divided into five data segments, and the first segment of data of group A uses three multi-II
  • the transmission group transmits and 'cycles to the start point in time alternately with each other, and transmits a part of the first segment to the client in a monocular transmission manner.
  • the client receives the data using both monocular transmission and multicast transmission. When receiving data in a multicast transmission mode, it starts to cycle to the starting point according to the multicast transmission group. Receive. detailed description
  • Multicast (Mul ticas t) protocol mainly refers to the transmission mode of the TCP / IP protocol group that allows a host to send packets to a subset of all hosts (that is, group transmission), but it is similar to TCP / IP.
  • Other protocol groups such as the AppleTalk protocol group also have protocols with similar functions, called “simple multicast routing protocol (SMRP)".
  • SMRP simple multicast routing protocol
  • other protocol groups can also develop the same or similar functions as Multicast (Mul ticas t), for example: IPX / SPX protocol group; CDMA mainly used for wireless transmission; Ethernet in the second layer protocol of the network Network protocol (ETHERNET) and so on.
  • the “multi-eye transmission” in the present invention is not limited to the multi-eye transmission (Mul t icas t) and unicast transmission (Unicas t) protocols based on the TCP / IP protocol group.
  • Each port of a multicast IP address can transmit different content, so in the present invention, each port of the same multicast IP address can also be regarded as a different multicast group, which is used to transmit different data.
  • a server refers to: a device capable of responding to a client's request and transmitting its required data to the client through a data network, which may be a device physically, or a group of devices that are far apart but can cooperate with each other
  • a device that completes the method may send directory information and each data segment of a set of data to different devices, respectively.
  • a client refers to a device that requires data, can send a request to a server through a data network, and can receive data transmitted by the server through a network.
  • the same device can be both a client and a server, such as a proxy server in a forwarding role. 4.A set of data
  • a group of data refers to one or more data blocks that must be used as a whole in most cases. They can be one file or multiple files (for example, a web page consists of multiple Files), which can be data stored in the form of files, or data stored in other forms.
  • the client does not necessarily download all of a set of data, for example, an interactive movie, it needs to determine its plot to develop (download this piece of data), or develop (download that piece of data) according to the choice of the audience.
  • the data segment refers to a plurality of segments formed by dividing the foregoing group of data in order to facilitate the client to flexibly receive data.
  • a piece of data generally refers to the above-mentioned set of data and a piece of data.
  • a piece of data it may be a set of data or a piece of data.
  • a client when a client joins a multicast transmission group and starts to receive a piece of data, it may start receiving from any part of the data. Therefore, the client needs a ruler to locate the starting point where it starts to receive data.
  • the ruler is One of the best methods; In addition, if there is an error in the data received by the client, a ruler is also needed to determine the start and end positions of the error data.
  • the data scale can be set in the following ways, but is not limited to the ways listed below:
  • the time of the transmission process can be used as its natural scale, but at this time, the server needs to transmit data at a steady rate
  • a synchronization signal such as "hear tbea t" can be used as a scale.
  • the data scale can also be set by combining the above several methods.
  • the directory information refers to the information provided by the server to the client in order to enable the client to receive data quickly and conveniently.
  • the information may include, but is not limited to, the following information or a part thereof:-Whether the group data is divided into multiple How many pieces of data are divided into two pieces of data in total; which piece of data can be transmitted using the monocular transmission method, its address and port; which piece of data can be transmitted using the multicast transmission method, and which multicast transmission group is used; Each piece of data is transmitted using several multicast transmission groups, which multicast transmission group is used; the length of a group of data or a data segment; the current transmission progress of a multicast transmission group; which multicast transmission group can be used Fastest cycle to the beginning of this data.
  • the server may not provide the complete directory information for the client to choose, but recommends the client to use one or several multicast transmission groups according to the situation of the data it sends, or use a combination of monocular transmission and multicast transmission.
  • the server transmits daily news syndicated programs relatively fixedly using a certain and several multicast transmission groups.
  • the client only needs one time To obtain all or a relatively fixed part of the relevant directory information and store it in the memory for a long time, so that the client does not have to accept the directory information every time it requests this program, or only receives the relatively changed part each time Just fine.
  • the server and client can use some algorithm to reduce the amount of information in the directory information.
  • the address of the multicast group used by each segment of a group of data is an IP address or port number that increases or decreases in order.
  • a client starts to receive data at time t1 and records the position of the starting point of reception.
  • the client receives these five pieces of data.
  • the client receives these five pieces of data.
  • the client receives the previous part of the same piece of data sent immediately by the loop.
  • the data received by the client loops to the receiving starting position again. In this way, the data received from t1 to t2 It is the latter part of the data. From t2 to t3, the front part of the data is received.
  • the client connects the two parts at the starting point of the reception to complete the data.
  • the client can stop the multicast transmission from this multicast transmission group when it receives another "receiving start point" from another multicast transmission group.
  • the group receives data, because the data after another "receive start point" has been received from another multicast group or even received.
  • the client can also set the starting point of this piece of data as special The starting point. In this case, it is not necessary to record the "receiving starting point". As for the connection at the "receiving starting point", it is even more unnecessary.
  • the memory means all devices capable of storing or temporarily storing information, and it may be an opposite storage device or a part of other devices.
  • Joining and receiving data from a multicast group in the present invention may be direct or indirect.
  • the classic multicast transmission protocol completes the functions of data replication and distribution. It requires all
  • the client receiving the multicast group data changes its address to this group address to receive a copy of the data stream, but now there is a new multicast network device that does not require the client to change its address to Group address, this device still completes the function of copying and distributing data according to the needs of each client, but this device converts the original destination address to the address of each client that requires this data. Its advantage is that it does not support classic Adding such a device to a multicast network
  • the present invention is divided into a server sending method and system and a client receiving method and system. These two methods and systems are implemented relatively independently step by step, but must be technically coordinated with each other.
  • a server can send a group of data or multiple groups of data at the same time, and a client can also receive one or more groups of data at the same time.
  • the following describes a combination of sending and receiving one or more sets of data.
  • the process for transmitting data in a data network by using multi-mode transmission is:
  • the data is processed into a format convenient for this method and stored in the server's memory: a.
  • the server divides a group of data to be sent into multiple data fragments (this work can also be completed by other computers in advance, even in The process of producing data is completed together), and various segmentation forms can be used. It is not necessary to split for a smaller set of data.
  • Each piece of data that the server will need to transmit can be an undivided group of data, or it can be the divided data fragments, which are transmitted to different multicast transmission groups respectively, so that the client can flexibly choose the same time.
  • Figure 3 shows the data flow when the present invention uses three multicast transmission methods to download data or perform video on demand in the Internet network (the present invention is not limited to three multicast transmission groups, and any number of multicasts can be used according to the actual situation). Destination transmission group), and clients 221, 222, and 223 download the same set of data from the multicast transmission group, respectively. Both basic modes of the invention can be shown in the figures.
  • the server 120 cyclically transmits the same piece of data to three multicast transmission groups, and the time when each multicast transmission cycle reaches the starting point of this segment of data is interleaved.
  • the client chooses to receive according to the actual situation.
  • the server 120 cyclically transmits a group of data divided into three data segments to three multi-eye transmission groups, and the client chooses to receive it according to the actual situation. Or it also allows the server to provide data to the client in a unicast mode, so that the client can use a more flexible receiving mode, or repair the data with errors in a unicast mode. 3.
  • each data segment is transmitted again after the transmission is completed, and so on.
  • the client that needs data can start receiving data fragments and complete a complete loop at any time, as shown in Figure 4A. Or, at least one client transmits data cyclically when receiving data, otherwise the loop is terminated, and the number of transmission groups transmits data cyclically until at least one client needs to receive data again.
  • a client needs to obtain a group of data, it must first know whether this group of data is divided into multiple data fragments; it is divided into several data fragments; each segment is transmitted using several multi-eye transmission groups; Which multicast group is used to transmit each segment; and other related directory information. Therefore, it is required that the server be able to provide the directory information to the client in a unicast or multicast or other form.
  • the server transmits the data to be transmitted in a cyclic manner by using multi-purpose transmission
  • the client when the client needs to obtain the data, it can immediately join the corresponding multi-purpose transmission group, or wait for the cycle to the starting point of this segment of data. Add a multi-eye transmission group, or join the multi-eye transmission group at another appropriate time.
  • the client can receive and store the first part or the first or the first few clips of a certain type of program that the customer is interested in. The next part is only received when the program is actually on demand.
  • the client records the "receiving start point” that starts to receive data at the same time, until it loops to a "receiving start point” of the client; Received or received by a multicast group. If the client uses the start or end point of this piece of data as the "reception start point”, it is allowed not to make another record of this "reception start point”. It is also possible to exceed the "Receive Start Point” for verification.
  • FIG. 4B shows how the client records the "receiving start point" in the present invention to cyclically receive data and correct errors.
  • the client starts to receive data at tl time and records the "receiving start point". After receiving the end of this data, the client does not stop receiving until it loops to this "receiving start point” again. It can also exceed the “receiving start point”.
  • the time point for looping again to the "reception start point" is t 3.
  • the client finds some errors (or missing) in the received data, it locates the data with errors (or missing), calculates the time to next cycle to this scale, and joins the transmission group to receive data in time To correct (or supplement) part of the data with errors (or missing), use the ruler to locate the "reception point” or errors, or "Ruler plus offset", or data string comparison, can also be used in other ways.
  • the scale of the ruler is drawn under the bands that partially represent the transmitted data in Figs. 4A to 4D and Figs. 9A and 9B. Failure to draw the ruler ⁇ does not necessarily mean that the data does not have a ruler.
  • the client determines to receive data in a certain method or a certain combination according to its available network bandwidth, the processing capacity of the machine, and the actual needs.
  • Several methods are exemplified below, but the invention is not limited to the following methods:
  • FIG. 5 shows how a client with a smaller bandwidth in the present invention uses the positioning "receiving start point" to receive data in a loop.
  • a group of data A is divided into five data segments Al ⁇ A5.
  • the server transmits the five data segments to five multi-eye transmission groups in a cyclic manner.
  • the client only joins one multi-eye transmission group at the same time, and gradually receives these five data. Data fragments.
  • the client can also wait for the multicast group to join the multicast group when the cycle reaches the starting point, for example: receiving A1-2, A2-3, A3-4 in sequence, if the server sends the time of the starting point of each data segment cyclically Aligned with each other, the receiving effect will be better.
  • Fig. 6 shows how a client with a larger bandwidth in the present invention receives data in cycles using multiple multi-eye transmission groups.
  • group A there are three groups of data people, B, C, and group A is divided into five data segments Al-A5, which are transmitted using multi-purpose transmission groups (a)-(e).
  • Group B is divided into two data fragments Bl ⁇ B2, and transmitted using multi-eye transmission groups (f)-(g).
  • Group C is divided into 4 data segments C1 ⁇ C4, and is transmitted using the multicast transmission group Oi)-(k).
  • the server cyclically sends 11 data fragments to 11 multicast transmission groups.
  • the client joins only a few (4 or 3) multicast transmission groups at the same time, and gradually receives all the data fragments described. Of course, the client can also wait for the multicast group to cycle to the starting point of this segment of data before joining the multicast group, for example: Receive A1- 2, A2-2, A3- 2, A4-2 in order.
  • the client can receive two data segments of the B-group data in one cycle. Of course, the client can also wait for the multicast transmission group to join the multicast transmission group when it reaches the starting point of this segment of data.
  • d. Use a single transmission and a multiple transmission to receive each data segment of a group of data, as shown in Figure 7.
  • the shaded part in Fig. 7 shows how a client with a larger bandwidth in the present invention uses a combination of unicast and multicast transmission groups to receive data cyclically.
  • the client receives the first piece of data A1 by using the monocular transmission. Because the monocular transmission can be downloaded from the beginning of a piece of data, the client can use the data in time from the beginning of the data and receive it at the client.
  • the client has received the data of the second, third, and fourth data segments A2 ⁇ A4 in the multi-eye transmission group (a)-(c) And stored in the client, while using the data of the second data segment, it can continue to receive subsequent data segments and several other sets of data.
  • the client can also wait for the multicast group to cycle to the starting point of this segment of data and then join the multicast group, or receive A1 in the monocular transmission mode, and then receive other data fragments in the multicast transmission mode.
  • the use of monocular transmission and multi-eye transmission to receive a piece of data can be an independent piece of data or a piece of data of a group of data.
  • the shaded part in Fig. 8 shows how a client with a large bandwidth in the present invention uses a unicast transmission and multiple multicast transmission groups to receive data cyclically.
  • the monocular transmission is used to receive part of the data A1 of the first data segment of a group of data, and the multiple data transmission groups are used to receive the data segments A1-A4 at the same time. Because the monocular transmission can be downloaded from the beginning of a piece of data, the client can use the data from the beginning of the data in a timely manner. At the same time, the client receives the A2 ⁇ A4 data fragments at the same time by using the multi-eye transmission method, and records Start receiving
  • Receiving start point it can be seen from the figure that when the client starts to receive the first data segment A1 with the multi-cast transmission group (a), the server is in the process of transmitting this data, so when the client starts receiving data, In most cases this is not the starting point for this piece of data itself. So the client needs to record its
  • This method can not only be used to receive a piece of data in a group of data, but also can be used to receive Receive a separate piece of data.
  • A1 can be regarded as an independent piece of data.
  • the client can wait for the multicast transmission group to cycle to the starting point of this segment of data before joining the multicast transmission group; or receive A1 in a single transmission first.
  • FIG. 9A it can be seen that when the time is tl, the data transmitted by the multicast transmission group (a) is exactly cycled to the starting point of the data, and when the time is t2, the data transmitted by the multicast transmission group (b) is exactly Cycle to the starting point of this segment of data.
  • the time is t 3
  • the data transmitted by the multicast transmission group (c) is exactly cycled to the starting point of this segment of data.
  • the multicast transmission group (d) transmits. The data is looped to the start point of this segment of data.
  • the time is t5
  • the multicast transmission group (e) is transmitted to the start point of this segment of data.
  • the multicast transmission group (a) When the time is t6, the multicast transmission group (a) The transmitted data is cycled to the starting point of the data again. Therefore, the client chooses to receive data from the multicast transmission group (a) that can receive the starting point of this piece of data at the earliest.
  • the client can also choose other multicast transmission groups. For example, some people do not like to watch the movie title, they can choose Multicast transmission group (e).
  • the client decides to receive data from the three multicast transmission groups at the same time according to the network bandwidth it has. Receive data.
  • the client receives data from the multicast transmission group (a) to the tl time point, the data is looped to the "reception start point" of the data received by the client from the multicast transmission group (e), so the client is after the tl time point It is then possible to stop receiving data from the multicast transmission group (a).
  • the client When the client receives data from the multicast group (e) to the time point t2, the data is cycled to the "reception start point” of the data received by the client from the multicast group (c), so the client is after the time point t2 It is then possible to stop receiving data from the multicast group (e).
  • the client receives data from the multicast transmission group (c) to the time point t2, the data is cycled to the "receiving start point" of the data received by the client from the multicast transmission group (a), so it is possible after the time point t2 Stop receiving data from the multicast group (c). In this way, connecting these 3 parts of data is exactly A complete cycle is a complete piece of data.
  • the reason why the multicast group (a) is selected is because the client can receive the starting point of this piece of data as early as possible. It can be seen from the figure that the multicast group (a) is cyclically transmitted to this piece of data at time t Q Starting point, if the client receives a video program, then the client can start watching the video on demand. Of course, the client can also wait for the multicast group (a) to join the multicast group when the multicast group circulates to the starting point of the data (t O), and it does not affect the timeliness of user viewing.
  • FIG. 10 shows that in the present invention, the server sends the first piece of data A1 in more than three multicast transmission groups (a. B. C), and the client with a larger bandwidth receives data in multiple multicast transmission groups. It can be seen from the figure that the client receives a total of two sets of data A and ⁇ The server divides a set of data A into 5 data fragments A1 to A5, and divides a set of data B into 2 data fragments B1. B2, each data fragment Use separate multicast groups for transmission.
  • the server transmits one of the data A, the first data segment A1 in three multicast transmission groups (a)-(c), and the time when each multicast transmission loops to the starting point of this data segment is interleaved It's open. Because the client has a large network bandwidth, the client can receive four data segments at the same time. When the client is ready to start receiving the first data segment A1 of the data, it can send packets from three multicast groups (a), (b), (c) Select one or more multicast transmission groups to receive data.
  • the client uses the multicast group (a) to download the data
  • the data can be used from the time point; if the client uses the multicast group (b) to download the data, it can be used from the tl time point Data; if the client downloads the data using the multicast group (c), the data can be used from time t 3; if the client uses a suitable data stream, the data can be used from the beginning as soon as possible.
  • "a client" uses the multicast group (b) to start using the data as early as possible (at time t1). So the client selects the multicast group (b) to receive the first data segment. Receive the second, third, and fourth data segments at the same time. After that, a fifth data segment of a group of data A and two data segments of a group of data B are received.
  • the client can also wait for the multicast group to join the multicast group when the cycle starts to the starting point of the data.
  • FIG. 11A and FIG. 11B which shows that in the present invention, the client uses multiple multicast transmission groups to receive the same A piece of data (the starting points are interleaved with each other) uses the monocular transmission method at the same time.
  • the Yueliang server transmits one piece of data A with five multi-eye transmission groups, and the time when each multi-eye transmission loops to the starting point of this data segment is interlaced.
  • the client receives the data using the monocast transmission method, and also uses one of the multicast transmission groups to receive the data and records the "reception start point".
  • the client starts receiving the multicast transmission group (e).
  • the server is in the process of transmitting this piece of data, so the data received by the client when it starts to receive the data (referred to as: "reception point") is not the starting point of the piece of data itself in most cases. So the client needs to use the "ruler” to record its "receiving start point”.
  • the client receives data from the starting point of this piece of data in the monocular transmission mode and receives this "receiving start point", it can stop receiving data in the monocular transmission mode, because the subsequent data has been transmitted in the manner of multicast. Received and stored in the client, and this also saves server bandwidth.
  • the client selects the multicast group (e) because using this multicast group can minimize the transmission volume of the monocular transmission, thereby saving the bandwidth of the server.
  • the server transmits one of the data A in five multi-eye transmission groups (a) to (e), and the time when each multi-eye transmission cycle reaches the start point of this data segment is Intertwined.
  • the client receives data in a monocular transmission mode and also uses three of them to receive the data and record the "reception point".
  • the client decides according to its own network bandwidth Receive data using the monocular transmission method, and simultaneously receive data from the three multi-eye transmission groups. Based on the directory information, it is decided to receive data from the multi-eye transmission groups (a), (c), and (e) first.
  • the client When the client receives data from the start of this piece of data in a unicast transmission to the time t1, the "receiving start point" of the data received by the client and the data received by the client from the multicast transmission group (e) "Coincidence, the client can stop receiving data in a unicast mode after t1.
  • the client receives data from the multicast group (e) to the time point t2, the data is cycled to the "reception start point" of the data received by the client from the multicast group (c), so the client is at time t2 After that, you can stop receiving data from the multicast group (e).
  • the client When the client receives data from the multicast transmission group (c) to the time point t2, the data is looped to the "receiving start point" of the data received by the client from the multicast transmission group (a), so it is possible after the time point t2 Stop receiving data from the multicast group (c).
  • the client receives data from the multicast transmission group (a) to the time t1, the data is cycled to the end of the data.
  • the connection of 4 parts of data is exactly a complete cycle, that is, a complete piece of data. In this way, by comprehensively using this method, clients with different network bandwidths can make full use of their bandwidth to receive data as quickly as possible, and meet other needs of customers.
  • the client mostly selects the receiving scheme based on receiving a group or a complete set of data in a timely manner as the main requirement.
  • a more flexible selection scheme can be made according to the demand. For example, some people do not like watching movies or TV shows. At the beginning of the film, some people started to receive previously unfinished movies, etc. from the middle.
  • the client After receiving the data, the client performs validation on the received data. If the data is found to be wrong or missing, it can be corrected using the following methods:
  • Locate and record erroneous or missing data Immediately or at certain intervals, such as time, data volume, and number of segments, the server is required to resend part of the data with errors by means of monocular transmission.
  • the client can remove the "ruler” after receiving the correct data, merge multiple data fragments of the divided set of data, restore the original format of this set of data, or do not remove the "ruler” when storing. ", Does not do the physical operation of merging the fragments, but the client ignores the” ruler "when using these data, and connects the fragments, as long as the effect is the same as using the original continuous set of data, for example: Normal web pages are not connected when stored, but only used as a whole when they are read by the browser.
  • a proxy server can be set up in some places.
  • the proxy server can either obtain data from the server or other proxy server using the receiving method or other methods in this method, or send data to the client using the transmitting method or other methods in this method.
  • the following innovative transmission methods are used comprehensively on the server side: (1) Multiple cyclic transmission of data
  • the server transmits cyclically, and the client receives data from the multicast transmission group at any time.
  • the server repeatedly sends a piece of data to certain multicast groups, and the starting times are staggered with each other.
  • the client waits for the multicast transmission group to cyclically send to the start point of this piece of data to start receiving data, or can receive data from these multicast transmission groups at any time, as long as the client records the "reception start” record when it starts to receive data,
  • the client can stop receiving data from this multicast group when it receives the "receiving start point" received from this multicast group again, or when the client receives from a multicast group You can stop receiving data from this multicast group when you reach another "receive origin” of another multicast group, because the data after the other "receive origin" is already expected to be received or even received from another multicast group pass.
  • the client can choose a multicast group that is closest to the starting point of a piece of data, it solves the problem of real-time viewing of video on demand. Because the client can choose to join the number of multicast groups, it also solves the problem that different customers make full use of it. Problems with network bandwidth.
  • a client when a client joins a multicast transmission group and starts to receive a group or a piece of data, it does not necessarily start from the beginning of the data, so the client needs to be able to locate where it started to receive data. Starting point, using a ruler is one of the best ways to solve this problem.
  • the server only uses the circular transmission method with a ruler to transmit data
  • the client can already receive data at any time, but this is not enough for some large data that requires real-time use.
  • All clients receive data from the same multicast group.
  • This multicast group cannot take into account the network bandwidth of each client. Therefore, in the present invention, a group of data used as a whole can be divided into a plurality of data fragments and transmitted separately. In this way, the client can flexibly choose to receive data according to its actual situation.
  • a repeated division transmission method may be adopted. For example, a group of data is divided into two data segments A and B, and the two multi-purpose transmission groups are transmitted respectively, and then the data segment A is divided into two data, Al and A2.
  • the segments are respectively transmitted to two multicast transmission groups, and the entire group of data may also be transmitted to a certain multicast transmission group. Segmented data
  • the content of the fragment is allowed to repeat each other. For example, the content of the previous part of A2 in the above example can be compared with
  • data can be divided from multiple angles and in various ways.
  • the following examples illustrate but are not limited to the following methods.
  • segment by video data For example, there is a set of video data, the resolution of each frame is 800 600. If we take the horizontal direction of this picture, one pixel is taken every other pixel, and the horizontal direction is taken every other line. Taking one method, this picture can be divided into four pictures with a resolution of 400 X 300 which are basically the same. In this way, a set of video data can be divided into 4 data segments. If one of the data segments is received and used, a video program with a resolution of 400 300 can be viewed, and if all four data segments are received and used in combination, a video program with a resolution of 800 600 can be viewed.
  • Stereo video programs rely on the parallax of the left and right eyes to achieve the stereo effect.
  • the left eye video and the right eye video are divided into two data segments. If one of the data is received and used separately Clips, you can watch general video programs. If you receive 2 data clips and use them in conjunction with corresponding equipment, you can watch stereo video programs.
  • the server can respond to a client's request in real time and send data to the client from the starting point of a certain piece of data, or send a part or parts of data to the client as required. Therefore, the current video-on-demand systems use monocular transmission.
  • the present invention utilizes this feature of the monocular transmission method, and transmits the data of the previous part by the monocular transmission method to meet the client's requirements for real-time performance.
  • the data of the latter part is transmitted by using the multi-eye transmission mode to reduce the load of the server and the network backbone.
  • a data string comparison method may be used, that is, a part of the data at the "receiving start point" of the later part of the data is continuously compared with the newly received data, and if the data overlaps, the received data is determined to be
  • the server provides the transmission of a movie program or a news program, and the client needs to receive and watch the program.
  • one server or virtual server
  • the client can transmit multiple programs at the same time, and the client can also receive multiple programs at the same time or receive multiple programs in succession; it can also receive programs and other data at the same time or in succession.
  • the time required to watch a video news is 1 minute; the time required to watch a movie program is 90 minutes.
  • the client ordering a video news program needs to continuously occupy its 1M internet bandwidth within 1 minute of watching the video news, and the client ordering a movie program needs to continuously occupy its 1M internet bandwidth within 90 minutes of watching a movie.
  • the server In order to support the on-demand of the client, the server also needs to occupy 1M Internet bandwidth, and each additional user occupies 1M more bandwidth. According to this calculation, this 100M bandwidth server The server can support up to 100 clients to request this movie program at the same time.
  • the server also has 100M Internet bandwidth, and the client has 10M Internet bandwidth.
  • the Internet between the server and the client supports multicast transmission.
  • the server transmits data to each multicast transmission group with a bandwidth of 2M.
  • the machine uses a multi-eye transmission group to receive data at the same time. It only takes 30 seconds to receive a 1-minute video program.
  • the delay in data transmission, the time in which directory information is transmitted, and the time in which clients and servers process data are ignored in calculating time.
  • the server For a group of data with a small amount of data, such as a video news, the server only needs to cyclically transmit the entire group of data with a ruler to one or more multicast transmission groups. If the server only transmits to a multicast group cyclically, the minimum waiting time from when the client selects this news to when it can be watched is greater than Q seconds, the longest is 30 seconds, and the average waiting time is 15 seconds .
  • the server cyclically transmits to five multicast transmission groups respectively, and the time when each multicast transmission cycle reaches the starting point of this piece of data is interlaced with each other, as shown in Figure 9A and Figure 9B,
  • the minimum waiting time for the machine to select this news to be able to watch the news is greater than 0 seconds, the longest is 6 seconds, and the average waiting time is 3 seconds. This kind of waiting is still tolerable for people watching.
  • the advantage of this method is that this server can support more than 100,000 clients to watch at the same time.
  • the on-demand program is a movie program
  • simply using this method will not work. If the server cyclically transmits to 5 multicast transmission groups respectively, and the time when each multicast transmission loops to the starting point of this segment of data is If they are staggered with each other, the maximum waiting time from the client's selection of the movie program to the time when the movie program can be watched is 9 minutes, the shortest time is greater than Q seconds, and the average waiting time is 4 minutes 30 seconds. Such waiting is unbearable for people watching.
  • the server processes a movie program (a set of data) in a data format into a format convenient for this mode and stores it in the server's memory:
  • the server divides the movie program to be sent into multiple fragments, for example, 10
  • the minute video is taken as the first clip, and every subsequent 20 minutes of video data is taken as a data clip. In this way, a movie will be divided into about 5 clips. This work can also be done in advance by other computers, even in the production of data Completed in the process;
  • the server transmits each scaled data segment of the movie program to be transmitted to one or more multicast transmission groups. In this example, at least 5 multicast transmission groups are required to transmit this movie program, as shown in Figure 5 or
  • the program A shown in FIG. 6 occupies the network bandwidth of the server 10M. Whether there is only one client or 100,000 clients, this program is requested. In this way, the client can flexibly choose to receive one or several data segments at the same time according to its needs, network bandwidth and processing capacity; greatly reducing the waiting time between the client from the on-demand program to the time the program can be watched, and the maximum waiting time is 5 Minutes, average wait time 2 minutes 30 seconds.
  • traditional video-on-demand can be viewed at any time, it can only provide programs to 10 clients using 10M server network bandwidth, and can only provide 100 clients even if the entire 100M network bandwidth of the server is occupied. Section.
  • the server transmits again after each video data segment is transmitted, so the cycle is repeated, so that the client that needs data can start receiving the data segment at any time and complete a complete cycle.
  • the reception starting point when a client starts to receive a certain video data segment is not the starting point of the video data segment in most cases, but the reception starts from a certain point in the middle of the video data segment. So when the client receives the end of this video data segment, what it receives and stores is not a complete video data segment, but the second half of this video data segment.
  • the server transmits video data fragments in a circular manner, that is, the video data fragments are transmitted from the beginning again after the end of the video data fragments, so the client can continue to receive this after receiving the end of a video data fragment
  • the first half of the video data segment is until reaching or exceeding that reception starting point, as shown in FIG. 4B or 4C.
  • a client needs to request this movie program, it must first know the movie program Is divided into several video data fragments; which multicast group is used to transmit each video data fragment; if a video data fragment is transmitted using multiple multicast groups, the client also needs to know which multicast group to use Only the starting point of this video data clip can be downloaded first; or other related directory information. Therefore, the server is required to be able to transmit the directory information to the client in a single or multi-view transmission or other forms.
  • the server transmits the data segments that need to be transmitted in a cyclic manner using multi-mesh transmission
  • the client when the client needs to obtain some video data fragments, it can immediately join the corresponding multi-memory transmission group according to the directory information and use the data ruler. Record the starting point of the reception, until it is cycled to this starting point again or it can exceed the starting point of the reception, to further verify that the entire cyclic transmission of data has been received and assembled into a complete data segment, as shown in Figure 4B or Figure 4C.
  • the client can be automatically detected by software and hardware or manually defined to determine its simultaneous receiving mode:
  • the client After receiving the video data, the client performs validation on the received data. If the data is found to be incorrect or missing, it can be corrected using one of the following methods or a combination of the following methods: a. Use the ruler of the data segment Positioning the wrong or missing video data in a monocular transmission mode requires the server to resend some of the video data with errors.
  • the server may also be required to send part of the data with errors using a monocular transmission method.
  • the client can remove the ruler and merge multiple video data segments to restore the original format of this group of video data. Or you can not remove the ruler and not merge the segments. Ignore when using these video data and combine the clips together, as long as the effect is the same as using the original set of data.
  • the basic functions of the present invention can be realized according to the above points, but there are still some shortcomings.
  • the basic method described above can enable the client to greatly shorten the interval from when data is received to when it can be used, the client still needs to wait for a period of time to start using the data, because the client must wait at least until it sends
  • the server of the first data segment can only receive the start of this set of data when it is sent to the beginning of the data segment in a loop.
  • the average waiting time depends on the size of the data segment. The smaller the data segment, the smaller the average waiting time. 1/2 of the time this piece of data takes. In this example, the client needs to wait up to 5 minutes, with an average waiting time of 2 minutes and 30 seconds (of course, during this time, the client can browse other online content or watch advertisements stored in the client in advance).
  • the server is allowed to transmit the first segment or the first several segments of a group of data in a monocular transmission mode while the data starting from the second segment is allowed to be transmitted in a multi-mode transmission mode, as shown in FIG. 7, because the client When downloading data in a single transmission mode, the data can be used from the beginning of the data in a timely manner, so when the client downloads the data that needs to be used immediately from the beginning, the server allows the client to start the download in a single transmission. One clip or several clips, while using the data of the first clip while downloading, and downloading the second clip or the last several clips at the same time. The time for the client to receive and use the data of the first segment transmitted by the monocular is sufficient to download the second segment of data to the client in a multi-mode transmission mode.
  • the client downloads and uses the first segment of data in a monocular transmission mode and also downloads and stores the first segment of data in a multicast transmission mode.
  • the server is sending data when the client starts receiving data.
  • the starting point of the client's reception is not the starting point of this data segment.
  • the client can use this receiving starting point as a boundary.
  • the client can stop using the monocular.
  • the data is received in the transmission mode, because the client has received part of the data after the start of the reception in the manner of multicast transmission and stored it in the memory, so that the client can immediately watch the program after ordering a program, but the resulting
  • the network load is reduced by half compared to the previous method. If the load of the directory information is not included, the server can support an average of 1620 clients watching the program.
  • each segment uses several multiple transmissions and the time of its starting point is staggered with each other, so that the client can choose (this option can also be selected by the server Help the client)
  • a multi-eye transmission group can download the movie program to the starting point of the loop more quickly, so that the client can start watching the movie program as soon as possible.
  • the server uses the first piece of video data of program A for three times. Multicast transmission group (a), (b), (c), transmission.
  • the data can be used from the U point of time; if the client uses multicast transmission If group (b) downloads data, the data can be used from time t1; if the client downloads data using multicast (c), then data can be used from time t3; if the client uses a suitable multi-mesh
  • the transmission group can start using data from scratch as early as possible.
  • FIG. 5 shows that a client uses a multicast group (b), and data can be used as early as possible at t1. If other customers If the client computer starts downloading at another time, you may choose another multicast group to start using the data as soon as possible. After this improvement, the client needs to wait at most 1 minute and 40 seconds, with an average waiting time of 50 seconds.
  • This method allows more than 100,000 clients to order programs, but the server only increases the network load by 4M. If the first segment is transmitted using 20 multicast groups in this way, the client needs to wait up to 15 seconds, with an average waiting time of 7.5 seconds, and the server adds 3 network loads, that is, the total server load is about 48M .
  • the server transmits two sets of data A and B in multiple multicast transmission groups.
  • Group A data is divided into 5 data segments.
  • the first segment of Group A data is transmitted using three multicast transmission groups and the time to cycle to the starting point is interleaved with each other. Part of a fragment.
  • the client receives the data using both monocular transmission and multicast transmission.
  • the client starts to receive data according to the multicast transmission group to the starting point. It can be seen from the figure that because the multi-eye transmission group C is selected, the amount of data transmitted by a single eye can be minimized, and the server traffic for a large number of clients is greatly reduced.
  • the client can be allowed to use other data that has been downloaded in advance, such as playing an advertisement Continue to use after downloading data during this period.
  • proxy servers can be set up in some places.
  • the proxy server can obtain data from the server or other proxy server by the receiving method or other methods in this method, and can also send data to the client by the transmitting method in the present invention.

Abstract

Method and system for multicasting circular transmission data in data network, which including following steps : a. A server transmits a group of data to one or more segments with 'scale' which is stored in the memory ; b. Providing catalogue information for client machines ; c. Separately and circularly transmitting data which is need to be transmitted by network to respective multicasting packet ; d. The client machine randomly adds one or more multicasting packets for receiving data according to the received catalogue information, and register the origin point at the time of starting receiving according to the scale of data segment, then checking and connecting data. The system which used said method can relieve the load of servers and the backbone of network, moreover, it can download data momentary, immediately and reliably, and it can also use data as soon as possible, so that the user who used the client machine timely, conveniently and reliably feels like unicasting.

Description

在数据网络中利用多目传送循环传输数据的方法及其系统 技术领域  Method and system for cyclically transmitting data by using multi-eye transmission in data network
本发明涉及一种数据网络中数据传输的方法及其系统, 特别是, 涉及一 种在数据网路中利用多目传送方式发送和接收数据的方法及其系统。 背景技术  The present invention relates to a method and system for data transmission in a data network, and in particular, to a method and system for sending and receiving data in a data network using a multicast transmission method. Background technique
目前常用的数据网络中的传输方式通常是单目传送方式, 如图 1所示的, 也就是服务器 100与客户机 201之间一对一地传送数据, 每一客户机向服务 器 100请求数据, 服务器 100就专门向此客户机发送一份对应数据。 例如现 有的浏览网页或通过互联网进行视频点播, 该种方式的操作过程大致为在互 联网上由不特定的客户机根据 IP 地址向服务器发送请求, 该服务器根据请 求, 将对应文件传送到该客户机上, 从而由浏览器程序根据约定语言格式, 如 HTML等, 读取该文件; 该种数据传送方式的特点在于数据传输量不大时, 各客户机占用服务器带宽的持续时间一般很短, 从而在服务器负载不重时, 服务器对数据传输请求响应及时, 随时发送; 由于一对一发送, 服务器与客 户机之间可以才 据双方的情况调整通讯带宽(速率); 有错包重传机制, 发现 错误及丟失的数据包可以及时重传。  The transmission method commonly used in current data networks is usually a monocular transmission method, as shown in FIG. 1, that is, one-to-one transmission of data between the server 100 and the client 201, and each client requests data from the server 100, The server 100 sends a corresponding data specifically to the client. For example, the current browsing of web pages or video on demand through the Internet. The operation process of this method is roughly that an unspecified client sends a request to the server based on the IP address on the Internet, and the server transmits the corresponding file to the client according to the request. On the computer, the browser program reads the file according to the agreed-upon language format, such as HTML, etc. This data transmission method is characterized in that when the data transmission amount is not large, the duration that each client occupies the server bandwidth is generally short, so When the server load is not heavy, the server responds to the data transmission request in a timely manner and sends it at any time. Due to one-to-one transmission, the communication bandwidth (rate) between the server and the client can be adjusted according to the situation of the two parties. There is an error packet retransmission mechanism. Errors and lost data packets can be retransmitted in time.
但是, 单目传送方式由于数据传输过程中必须实时占用服务器和主干网 络的传输带宽, 因此当大量(数万、 数百万) 的客户机在同一段时间内向服 务器请求数据时, 服务器为了响应这些客户机的要求就得发送大量的相同数 据, 这加重了服务器和网络主干的负载; 而且客户机的要求越多, 负载越大。 的服务器根据各客户机向服务器发送的请求发送视频服务数据, 这样客户就 可以随时点播自己感兴趣的节目, 但是由于视频点播的数据流量大, 这样在 现有技术下, 首先, 服务器能力不足, 目前最好的视频点播服务器最多可以 向 1000个客户提供视频点播服务,象中央电视台的春节联欢晚会或新闻联播 这样的节目, 在单目传输技术下, 如果提供视频点播服务则需要几十万台以 上的服务器提供服务; 其次, 即使存在极高速度的大容量服务器, 任何地方 的数据网络也无法承载该数据传输重负。 However, since the monocular transmission method must occupy the transmission bandwidth of the server and the backbone network in real time during the data transmission process, when a large number (tens of thousands, millions) of clients request data from the server in the same period of time, the server responds to these The client needs to send a large amount of the same data, which increases the load on the server and the network backbone; and the more the client requests, the larger the load. The server sends video service data according to the requests sent by each client to the server, so that the client can request the programs that they are interested in at any time. However, due to the large data volume of video on demand, in the existing technology, first, the server is insufficient. At present, the best video on demand server can provide video on demand services to a maximum of 1,000 customers. For programs such as CCTV Spring Festival Gala or News Hookup, under the monocular transmission technology, if video on demand services are provided, hundreds of thousands of units are required. To The upper server provides services; secondly, even if there is a high-speed large-capacity server, the data network anywhere cannot carry the burden of the data transmission.
因此, 对于大量客户需要下载相同数据的情况应该利用多目传送方式, 如图 2所示的, 服务器 110以多目传送的方式发送数据时, 所有已经加入多 目传送组的客户机 211、 212、 213都可以同时接收到此份数据。 采用多目传 送方式, 服务器只发送一份数据, 所以服务器负载并不重。 数据在网络主干 中只传送一份, 在传送到网络的分支部分才进行复制分发, 所以就大大减轻 了网络主干的负担。  Therefore, for the case where a large number of customers need to download the same data, a multi-mode transmission mode should be used. As shown in FIG. 2, when the server 110 sends data in a multi-mode transmission mode, all the clients 211 and 212 that have joined the multi-mode transmission group. Both, 213 can receive this data at the same time. With multi-eye transmission, the server sends only one copy of the data, so the server load is not heavy. Only one copy of data is transmitted in the network backbone, and the distribution is replicated and distributed in the branch part of the network, so the burden on the network backbone is greatly reduced.
例如, 根据多目传送 ( Mul t icas t )和单目传送(Unicas t )技术, Ci sco I0S 网络协议提供了一种解决方案, 其《网络工程丛书: Ci sco I0S 网络协 议解决方案第一卷: IP»( CISCO IOS SOLUTIONS FOR NETWORK PROTOCOLS VOLUME I: IP, [美] Ci sco Syetems公司, 电子工业出版社 1999年 2月出版) 828 页作了如下说明:  For example, the Cisco I0S network protocol provides a solution based on Mulcica and Unicast technologies. Its Network Engineering Series: Cisco I0S Network Protocol Solution Volume 1 : IP »(CISCO IOS SOLUTIONS FOR NETWORK PROTOCOLS VOLUME I: IP, [US] Ci sco Syetems company, published by the Electronic Industry Press in February 1999) The following explanation is given on page 828:
传统的 IP协议通讯仅允许一个宿主机向单个宿主机发送信息包(即单目 传送), 或者向所有宿主机发送信息包(即广播发送)。 而 IP多目传送提供了 第三种解决方案-允许一宿主机向所有宿主机的某一子集发送包 (即组发 送)。子集中的宿主机称为组成员。发送给组成员的包由单一的多目传送组地 址标识。 多目传送的包以最佳可靠性传送给组, 这点与单目传送相似。  Traditional IP protocol communication only allows one host to send packets to a single host (ie, monocular transmission), or to send packets to all hosts (ie, broadcast transmission). IP multicasting provides a third solution—allowing a host to send packets (ie, group transmissions) to a subset of all hosts. The hosts in a subset are called group members. Packets sent to group members are identified by a single multicast group address. Multicast packets are delivered to the group with the best reliability, similar to monocasting.
多目传送网络环境由发送者和接收者组成。 任何宿主机, 不管其是否组 成员, 都可以是发送者, 但接收者只能是组成员。  The multicast network environment consists of senders and receivers. Any host, whether it is a group member or not, can be a sender, but the receiver can only be a group member.
多目传送组的所有接收者被分配给同一多目传送地址, 发送者以该地址 作为目的址, 将包送达组中所有成员。  All recipients of the multicast group are assigned to the same multicast address, and the sender uses this address as the destination address to deliver the packet to all members of the group.
多目传送组的組成员资格是动态变化的, 宿主机可随时加入或退出組。 对多目传送组成员的数量和位置无限制。 同一宿主机同时可以是一个以上不 同多目传送组的成员。  The group membership of a multicast group is dynamically changed, and the host can join or leave the group at any time. There is no limit to the number and location of members of the multicast group. The same host can be a member of more than one different multicast group at the same time.
不同的组其组成和活性各不相同, 且随时间变化。 一个组可以长时间有 活性, 也可以在极短的时间内有活性。 组中的成员是经常变化的。 包含成员 的组也可能没有活性。 《网络互连技术手册》(网络工程丛书, 电子工业出版社 1998年 4月出 版)也对多目传送方式进行了介绍: 筒单多目传送路由选择协议( SMRP )是 一种传输层协议, 它为 AppleTa lk网上多介质数据流提供路由。 它支持苹果 机快速协商 (QTC )技术, SMRP依靠网络层以下的协议服务, 为多目传送数 据报提供无连接的最佳传送。 尤其是, SMRP简化了数据从单一源地到多个目 的地的发送。 The composition and activity of the different groups are different and change with time. A group can be active for a long time or for a very short time. The members of a group are constantly changing. Groups containing members may also be inactive. The Manual of Network Interconnection Technology (Network Engineering Series, published by the Electronic Industry Press in April 1998) also introduces the multicast transmission method: The single-multicast transmission routing protocol (SMRP) is a transport layer protocol. It provides routing for multi-media data streams on the AppleTalk network. It supports Apple Computer Quick Negotiation (QTC) technology. SMRP relies on protocol services below the network layer to provide connectionless optimal transmission for multicast datagrams. In particular, SMRP simplifies the transmission of data from a single source to multiple destinations.
目前多目传送(Mul t icas t )协议这个名词主要指 TCP/IP协议组允许一 宿主机向所有宿主机的某一子集发送包 (即组发送) 的传输方式, 但是如上 述的 AppleTalk的 SMRP等其他协议族也具备类似功能的协议,例如 IPX/SPX 协议族; 网络的第二层协议当中的以太网协议 ERTHERNET; 主要用于无线传 输的 C應 A和卫星数据传输协议,该协议不仅可以利用其地址分组, 而且可以 利用载波频率来分组。 而单目传送功能(点到点传输)是几乎所有协议族都 已经具有的功能。  At present, the term Multicast (Mul t icas t) protocol mainly refers to the transmission mode in which the TCP / IP protocol group allows a host to send packets (ie, group transmission) to a subset of all the hosts, but as described in the AppleTalk Other protocol families such as SMRP also have protocols with similar functions, such as the IPX / SPX protocol family; the Ethernet protocol ERTHERNET among the second layer protocols of the network; C should be mainly used for wireless transmission and satellite data transmission protocols. This protocol not only It can be grouped by its address, and it can be grouped by the carrier frequency. The monocular transmission function (point-to-point transmission) is a function that almost all protocol families already have.
但是, 目前的多目传送方式存在有以下不足:  However, the current multicast transmission methods have the following disadvantages:
首先, 多目传送服务器发送数据是一次性的, 这样在服务器开始发送数 据时,所有需要此份数据的客户机必须事先知道服务器发送数据的起始时间, 并提前或同时加入该多目传送组, 从头开始接收数据, 才能接收到一份完整 的数据。 如果有一台或几台客户机未能及时加入此多目传送组, 则它们将收 不到完整的数据。 象上述视频点播系统, 由于要求及时下载、及时使用数据, 目前的多目传送方式无法满足要求。  First, the multicast transmission server sends data once, so that when the server starts to send data, all clients that need this data must know the start time of the server to send data in advance, and join the multicast transmission group in advance or at the same time. Only when you receive data from the beginning can you receive a complete data. If one or more clients fail to join this multicast group in time, they will not receive complete data. Like the video-on-demand system mentioned above, due to the requirement to download and use data in a timely manner, the current multicast transmission methods cannot meet the requirements.
其次, 服务器的发送数据所用的带宽不能针对每个客户所拥有的带宽而 调整, 而如果使用现有技术的多目传送技术, 所有客户机接收数据所用的带 宽必须大于或等于服务器发送数据的带宽, 否则客户机将无法完整接收服务 器所发送的数据, 而在数据网络中所有客户机接收数据所用的带宽大于或等 于服务器发送数据的带宽是不可能。  Secondly, the bandwidth used by the server to send data cannot be adjusted for the bandwidth owned by each client. However, if the existing multi-purpose transmission technology is used, the bandwidth used by all clients to receive data must be greater than or equal to the bandwidth sent by the server. Otherwise, the client cannot completely receive the data sent by the server, and it is impossible for all clients in the data network to receive data with a bandwidth greater than or equal to the bandwidth sent by the server.
再次, 多目传送服务器没有错包重发机制, 这样当客户机接收到错误的 数据包后, 无法请求服务器重发此数据包, 也就无法保证数据的完整和正确 传输。 发明内容 Again, the multicast server does not have a retransmission mechanism for error packets. In this way, when the client receives an incorrect data packet, it cannot request the server to retransmit the data packet, and it cannot guarantee the complete and correct transmission of data. Summary of the invention
本发明的目的在于针对现有技术的上述不足, 提供一种基于网络数据传 输中的, 利用多目传送方式循环传送数据的方法及其系统, 通过服务器对待 传送数据进行分割处理(较小的数据可以不分割)后将每段数据设定标尺, 向至少一个多目传送组循环发送该段数据, 利用多目传送方式减少服务器和 主干网络的负载,同时使得客户机无论在何时加入多目传送组开始接收数据, 都能完整接收该段数据; 客户机可以根据自己的带宽不同和其他因素自动选 择加入对应带宽的多个多目传送组, 以同时开始多段数据的接收; 客户机在 接收到错误数据时, 可以根据标尺计算接收对应段数据的开始时间即可纠正 错误, 以保证实现数据的完整和正确接收。  An object of the present invention is to provide a method and a system for cyclically transmitting data by using a multi-eye transmission method based on network data transmission in accordance with the foregoing shortcomings of the prior art. You can set the scale for each piece of data, and send the piece of data to at least one multicast transmission group. Use the multicast transmission method to reduce the load on the server and the backbone network, and make the client join the multicast anytime. The transmission group starts to receive data, and can all receive the piece of data completely. The client can automatically choose to join multiple multi-eye transmission groups of the corresponding bandwidth according to its own bandwidth and other factors to start the reception of multiple pieces of data at the same time. The client is receiving When erroneous data is obtained, the start time of receiving the corresponding segment of data can be calculated according to the ruler to correct the error to ensure the complete and correct reception of the data.
本发明的进一步的目的还在于, 提供一种利用多目传送方式循环传送数 据的方法和系统, 结合单目传送方式接收起始部分的数据, 利用其实时响应 的特点,以实现视频点播系统服务器的实时响应和重复数据大量发送的特点, 有效完成在线实时收看。  A further object of the present invention is to provide a method and system for cyclically transmitting data by using a multi-eye transmission method, combined with a mono-eye transmission method to receive data at the beginning, and utilizing the characteristics of its real-time response to implement a video-on-demand system server The features of real-time response and large amount of repeated data transmission effectively complete online real-time viewing.
本发明的技术方案如下:  The technical solution of the present invention is as follows:
一种在数据网络中利用多目传送循环传送数据的方法, 其中其发送数据 的服务器采取如下步骤:  A method for circularly transmitting data in a data network by using a multicast transmission, wherein a server that sends data takes the following steps:
a、 服务器将待传送的至少一段带 "标尺" 的数据存储于其存储器中; b、 服务器以单目传送或多目传送的方式提供有关待传送数据的目录信 c、 服务器将需要传送的数据通过网络分别向相应的的多目传送组传送; d、在传送数据期间,服务器对每个多目传送组传送完毕后再次从头开始 传送, 如此循环往复;. 或者当有至少一个客户机在接收数据时才循环传送, 否则便终止循环, 直到再次有至少一个客户机需要接收数据时才再次循环传 送数据。  a. The server stores at least a piece of data with a "ruler" to be transmitted in its memory; b. The server provides a directory letter about the data to be transmitted in a single-shot or multi-shot transmission c. The data to be transmitted by the server Send to the corresponding multicast group through the network respectively; d. During the data transmission period, the server starts to transmit again from the beginning after each multicast group is transmitted, and so on; or when at least one client is receiving The data is transmitted cyclically when the data is not transmitted; otherwise, the loop is terminated, and the data is transmitted cyclically again when at least one client needs to receive the data again.
所述的方法, 其中所述步骤 a还包括:  The method, wherein the step a further comprises:
a l、 服务器将待发送的一组数据分割成若干带 "标尺" 的数据片段, 并 存储于其存储器中,并向相应的多目传送组传送。 al. The server divides a set of data to be sent into several data segments with a "ruler", and Stored in its memory and transmitted to the corresponding multicast group.
所述的方法, 其中: 服务器将至少一段带 "标尺" 的数据分别向多个多 目传送组传送, 并且每个多目传送循环到此段数据的起始点时的时间是相互 交错开的。  In the method, the server transmits at least one piece of data with a "ruler" to multiple multicast transmission groups, and the time when each multicast transmission loops to the starting point of the data is staggered with each other.
述的方法, 其中: 服务器在传送一组被分割成若干带 "标尺" 的数据片 段时, 将该组数据的第一个数据片段或前几个数据片段分别向多个多目传送 组传送, 并且传送同一个数据片段的多目传送组循环到此段数据的起始点时 的时间是相互交错开的。  The method described above, wherein: when the server transmits a group of data fragments that are divided into a number of "scales", the server transmits the first data fragment or the first several data fragments of the group of data to multiple multicast transmission groups, And the time when the multicast transmission group transmitting the same data segment is cycled to the starting point of this segment of data is interleaved.
所述的方法, 其中: 在多目传送某段数据期间, 服务器能够响应客户机 的要求以单目传送方式向其传送此段数据中的一部分或全部。  The method, wherein: during the multicast transmission of a certain piece of data, the server can respond to the request of the client to transmit a part or all of this piece of data to the client in a monocular transmission manner.
所述的方法, 其中: 所述的数据的 "标尺,, 用数据包的顺序号作为标尺 刻度。  The method, wherein: the "scale of the data" uses the sequence number of the data packet as the scale of the scale.
所述的方法, 其中: 当将待传送的一段数据分割成若干小文件时, 所述 的数据的 "标尺" 以所述的若干小文件作为标尺刻度。  The method, wherein: when a piece of data to be transmitted is divided into a plurality of small files, the "scale" of the data uses the plurality of small files as a scale scale.
所述的方法, 其中: 所述的数据的 "标尺" 利用某一数据点到数据片段 的首或尾的字节数或位数作为标尺。  The method, wherein: the "scale" of the data uses the number of bytes or digits from a certain data point to the beginning or the end of the data segment as a scale.
一种数据网络中利用多目传送循环接收数据的方法, 其中接收数据的客 户机采取如下步骤:  A method for receiving data in a data network by using a cyclic multicast transmission, wherein a client receiving the data takes the following steps:
a、需要接收某段数据的客户机,从多目传送组或直接从服务器获取与这 組数据有关的目录信息;  a. Clients who need to receive a certain piece of data, obtain the directory information related to this set of data from the multicast transmission group or directly from the server;
b、客户机根据目录信息,从某一个或某几个传送此段数据的多目传送组 接收此段数据并, 记录下开始接收的 "接收起点"; 或同时要求服务器以单目 传送方式向其传送数据;  b. According to the directory information, the client receives this piece of data from one or several multicast transmission groups that transmit this piece of data, and records the "receiving start point" from which it starts to receive; It transmits data;
c、 当客户机从某个多目传送组或以单目传送接收的数椐达到或超过此 段数据的某个相应 "接收起点" 时, 停止从此多目传送组或单目传送接收数 据;  c. When the data received by the client from a multicast transmission group or a single transmission reaches or exceeds a corresponding "receiving start point" of this segment of data, stop receiving data from the multicast transmission group or a single transmission;
d、 如果 "接收起点" 并非此段数据的起始点, 则将所接收到的同一段数 据在 "接收起点" 处进行连接。 所述的方法, 其中: 当接收的多段数据为一组数据被分割成若干数据片 段后的各个数据片段时, 客户机同时接收多段数据, 并且连接相邻的数据片 段成为一个整体来使用。 d. If the "receiving start point" is not the starting point of this piece of data, connect the same piece of data received at the "receiving start point". In the method, when: the received multiple pieces of data are each data piece after a set of data is divided into several data pieces, the client receives multiple pieces of data at the same time, and connects adjacent data pieces as a whole for use.
所述的方法, 其中: 所述客户机根据循环传送的数据循环到此段数据的 起始点时刻, 以此段数据的起始点或结束点作为 "接收起点",从而接收完此 段数据后不必将其在接收起点处进行连接。  The method, wherein: the client loops to the start time of this piece of data according to the data transmitted cyclically, and uses the start point or end point of this piece of data as the "receiving start point", so that it is not necessary after receiving this piece of data Connect it at the starting point of reception.
所述的方法, 其中: 接收数据的客户机对已经接收的数据进行校验, 如 果发现数据有错误或遗失, 则将有错误或遗失的数据片段用所述的 "标尺,, 刻度定位,并根据目录信息计算出某个多目传送组下次循环到此刻度的时间, 并适时加入此传送組接收数据以修正或补充有错误或遗失的部分数据。  The method, wherein: the client receiving the data verifies the data that has been received, and if the data is found to be incorrect or missing, the error or missing data fragments are positioned using the "scale," and the scale is positioned, and According to the directory information, calculate the time when a multi-eye transmission group will cycle to this scale next time, and join this transmission group to receive data in time to correct or supplement some errors or missing data.
所述的方法, 其中: 接收数据的客户机对已经接收的数据进行校验, 如 果发现数据有错误或遗失, 则将有错误或遗失的数据片段用其 "标尺"定位, 然后请求服务器单目发送所述的有错误或遗失的部分数据。  The method, wherein: the client receiving the data verifies the received data, and if the data is found to be wrong or missing, the wrong or missing data segment is positioned with its "scale", and then the server is requested to monocularly Send some of the data described as erroneous or missing.
一种实现利用多目传送循环传输数据的服务器系统, 包括存储器、 中央 处理器、 网络适配器, 所述服务器用于发送数据, 其中:  A server system for implementing cyclic transmission of data by using multi-mesh transmission includes a memory, a central processor, and a network adapter, and the server is configured to send data, where:
a、 服务器将待传送的至少一段带 "标尺" 的数据存储于其存储器中; b、 服务器以单目传送或多目传送的方式提供有关待传送数据的目录信 息;  a. The server stores at least a piece of data with a "ruler" to be transmitted in its memory; b. The server provides directory information about the data to be transmitted in a single-shot or multi-shot transmission manner;
c、 服务器将需要传送的数据通过网络分别向相应的的多目传送组传送; d、在传送数据期间, 服务器对每个多目传送组传送完毕后再次从头开始 传送, 如此循环往复; 或者当有至少一个客户机在接收数据时才循环传送, 否则便终止循环, 直到再次有至少一个客户机需要接收数据时才再次循环传 送数据。  c. The server transmits the data to be transmitted to the corresponding multicast group through the network respectively. d. During the data transmission period, the server retransmits from the beginning again after the transmission of each multicast group is completed. At least one client transmits data cyclically when receiving data, otherwise the loop is terminated, and data is transmitted again until at least one client needs to receive data again.
一种实现利用多目传送循环传输数据的客户机系统, 包括存储器、 中央 处理器、 网络适配器, 所述客户机系统用于接收数据, 其中:  A client system that implements cyclic transmission of data using multi-mesh transmission includes a memory, a central processor, and a network adapter, and the client system is configured to receive data, where:
a、 需要接收某段数据的客户机,从多目传送组或直接从服务器获取与这 組数据有关的目录信息;  a. The client that needs to receive a certain piece of data obtains the directory information related to this set of data from the multicast transmission group or directly from the server;
b、客户机根据目录信息, 从某一个或某几个传送此段数据的多目传送组 接收此段数据, 并记录下开始接收的 "接收起点"; 或同时要求服务器以单目 传送方式向其传送数据; b. According to the directory information, the client transmits the multicast data group from one or several groups. Receive this piece of data and record the "receiving start point" of receiving it; or at the same time require the server to send data to it in a single transmission;
C、 当客户机从某个多目传送组或以单目传送接收的数据达到或超过此 段数据的某个相应 "接收起点" 时, 停止从此多目传送组或单目传送接收数 据;  C. When the client receives data from a multicast transmission group or a single transmission, the client stops receiving data from the multicast transmission group or a single transmission when the data reaches or exceeds a corresponding "reception start point" of the data;
d、 如果 "接收起点" 并非此段数据的起始点, 则将所接收到的同一段数 据在 "接收起点" 处进行连接。  d. If the "receiving start point" is not the starting point of this section of data, connect the same piece of data received at the "receiving start point".
所述的客户机系统, 其中, 当接收的多段数据为一组数据被分割成若干 数据片段后的各个数据片段时, 所述客户机系统同时接收至少一段数据, 并 且连接相邻的数据片段, 或使之能够成为一个整体来使用。  In the client system, when the received multiple pieces of data are each data piece after a set of data is divided into several data pieces, the client system receives at least one piece of data at the same time and connects adjacent data pieces, Or it can be used as a whole.
所述的客户机系统, 其中, 所述客户机系统根据循环传送的数据循环到 此段数据的起始点时刻, 以此段数据的起始点或结束点作为 "接收起点", 从 而接收完此段数据后不必将其在接收起点处进行连接。 与现有技术的单目传送方式浏览网页相比 , 使用本发明大大减小了服务 器和网络主干的负载, 并且还使黑客难以攻击服务器, 因为客户机只是力口入 某个多目传送组, 并取得一份数据的复本,其请求不一定需要发送到服务器, 所有服务器可以对其入口做更加严格的管理。  The client system, wherein the client system loops to the start time of the data according to the data transmitted cyclically, and uses the start or end point of the data as the "receiving start point" to complete the reception of the data. It is not necessary to connect the data at the starting point after receiving the data. Compared with the conventional monocular transmission method for browsing webpages, using the present invention greatly reduces the load on the server and the network backbone, and also makes it difficult for a hacker to attack the server, because the client only enters a certain multicast transmission group. And get a copy of the data, its request does not necessarily need to be sent to the server, all servers can be more strict management of its entrance.
本发明的在数据网络中利用多目传送循环传送数据的方法及其系统, 利 用多目传送方式本身减少网络主干负载的特点, 通过服务器对待发送数据的 分割处理, 将每一段分割后的数据设定标尺, 服务器向至少一个多目传送组 循环发送该数据, 根据该标尺, 任何客户机在选择加入某多目传送组的时间 可以任意, 而通过标尺确定数据的是否完整和正确; 客户机可以自动选择其 对应带宽的多目传送组, 并且对于错误数据可以根据标尺计算加入接收的时 间, 从而有效的实现网络主干和服务器的低负载, 大容量数据的传送。  The method and system for cyclically transmitting data in a data network by using multi-eye transmission, and utilizing the characteristics of the multi-eye transmission method itself to reduce the load on the network backbone, and by dividing the data to be sent by the server, each segmented data is set The scale is fixed, and the server sends the data to at least one multicast transmission group cyclically. According to the scale, any client can choose any time to join a multicast transmission group, and the scale is used to determine whether the data is complete and correct. The client can The multicast transmission group corresponding to its bandwidth is automatically selected, and the error data can be calculated and added to the reception time according to the scale, thereby effectively achieving low-load and large-capacity data transmission of the network backbone and server.
本发明提供的一种在数据网络中利用多目传送循环传送数据的方法及其 系统, 结合单目传送方式,接收起始部分的数据时, 利用其实时响应的特点, 从而实现视频点播系统的数据传送时, 既可以快速响应客户机的请求, 又能 使数据大量传送, 实现视频点播, 而且对网络主干和服务器的带宽影响不大。 与现有技术的简单直接使用多目传送方式传送数据相比,使用本发明能快速、 可靠地下载数据; 随时、 及时地下载数据; 尽早地开始使用数据; 在客户机 一端的客户感觉如同使用单目传送方式一样及时、 方便、 快捷。 附图简要说明 The present invention provides a method and system for transmitting data in a cyclic manner using multi-eye transmission in a data network. In combination with the mono-eye transmission method, when receiving data at the beginning, it utilizes the characteristics of its real-time response, thereby realizing When data is transmitted, it can respond to the client's request quickly, as well as It enables a large amount of data to be transmitted to realize video on demand, and has little impact on the bandwidth of the network backbone and the server. Compared with the prior art, which simply uses the multi-eye transmission method to transmit data, the present invention can download data quickly and reliably; download the data at any time and in time; start using the data as early as possible; the client on the client side feels like using Monocular transmission is as timely, convenient and fast. Brief description of the drawings
以下结合附图, 通过对本发明较佳实施例的详细描述, 将使本发明的技 术方案及其有益效果显而易见。  The technical solution of the present invention and its beneficial effects will be apparent from the following detailed description of the preferred embodiments of the present invention with reference to the accompanying drawings.
附图中,  In the drawings,
图 1 是现有技术的互联网络中利用单目传送方式下载数据或视频点播时 的数据流示意图, 图中示出了客户机 201、 202、 203分别从服务器 100下载 同一组数据;  FIG. 1 is a schematic diagram of a data flow when downloading data or video-on-demand by using a monocular transmission method in the prior art Internet, and the clients 201, 202, and 203 are shown downloading the same set of data from the server 100;
图 2 是现有技术的互联网络中利用多目传送方式下载数据或开视频会议 的数据流示意图, 图中示出了客户机 211、 212、 213分别从多目传送组下载 同一组数据;  FIG. 2 is a schematic diagram of a data flow for downloading data or opening a video conference by using a multi-mode transmission method in the prior art Internet. The figure shows clients 211, 212, and 213 downloading the same group of data from a multi-mode transmission group, respectively;
图 3 是本发明的在数据网络中利用多目传送循环传送数据的方法的数据 流示意图, 图中示出了客户机 221、 222、 223从不同的多目传送组下载所需 的数据, 客户机 221还同时以单目传送的方式从服务器下载数据;  FIG. 3 is a schematic diagram of a data flow of a method for transmitting data in a multicast network in a data network according to the present invention. The diagram shows clients 221, 222, and 223 downloading required data from different multicast delivery groups. The client The machine 221 also downloads data from the server in a monocular transmission mode at the same time;
图 4 A示出的是本发明的第一较佳实施例中服务器向某个多目传送组循环 发送一段数据的第 n次和第 11 + 1次循环;  FIG. 4A shows the nth and 11 + 1th cycles of a segment of data that the server cyclically sends to a certain multicast transmission group in the first preferred embodiment of the present invention;
图 4B示出的是某一客户机从图 4A所示的服务器发送的数据中接收数据 的一种方式: 从开始接收到下次循环的该开始接收点的一个完整循环;  FIG. 4B shows a way for a client to receive data from the data sent by the server shown in FIG. 4A: a complete cycle of the start receiving point from the beginning to the next cycle;
图 4C示出的是某一客户机从图 4A所示的服务器发送的数据中接收数据 的另一种方式: 从开始接收到下次循环的过该开始接收点后继续接收一段冗 余数据;  FIG. 4C shows another way for a client to receive data from the data sent by the server shown in FIG. 4A: from the beginning of receiving to the next cycle, after the start receiving point, continue to receive a piece of redundant data;
图 4D示出的是图 4B或图 4C所示的客户机接收的数据中发现一段错误数 据后, 在随后的循环中计算并接收正确的数据的示意图; ,  FIG. 4D is a schematic diagram of calculating and receiving correct data in a subsequent cycle after an error is found in the data received by the client shown in FIG. 4B or FIG. 4C;
图 5示出的是本发明的数据网络中利用多目传送循环传送数据的方法中, 当客户机具有较小带宽时循环接收数据的示意图; FIG. 5 shows a method for transmitting data using a multi-drop transmission cycle in a data network of the present invention. Schematic diagram of receiving data cyclically when the client has a small bandwidth;
图 6 是本发明的数据网络中利用多目传送循环传送数据的方法中, 当客 户机具有较大带宽时同时加入多个多目传送组接收数据的示意图;  FIG. 6 is a schematic diagram of a method for transmitting data in a multicast network using a multicast transmission in the data network of the present invention. When a client has a large bandwidth, it simultaneously joins multiple multicast transmission groups to receive data;
图 7 是本发明的数据网络中利用多目传送循环传送数据的方法中, 具有 较大带宽的客户机同时结合单目传送方式和多个多目传送组进行接收数据的 示意图; ' 图 8 是本发明的数据网络中利用多目传送循环传送数据的方法中, 具有 较大带宽的客户机利用单目传送接收一组数据的部分起始段数据, 同时利用 多个多目传送组接收剩余数据的示意图;  FIG. 7 is a schematic diagram of a method for transmitting data by using multi-eye transmission in a data network according to the present invention. A client with a larger bandwidth simultaneously combines a single-eye transmission mode and multiple multi-eye transmission groups to receive data; FIG. 8 is In the method for cyclically transmitting data in a data network of the present invention by using multi-eye transmission, a client with a larger bandwidth receives a part of data of a group of data by using single-eye transmission, and simultaneously receives the remaining data by using multiple multi-eye transmission groups. Schematic diagram
图 9A和图 9B是本发明的数据网络中利用多 S传送循环传送数据的方法 中, 服务器利用多个多目传送組( a ) ― ( e )传送同一段数据和客户机接收 示意图,其中图 9A是较小带宽的客户机所采用的接收方法示意图,客户机仅 加入一个多目传送组接收, 图 9B则是较大带宽的客户机可选择的接收方法, 同时使用多个多目传送組接收同一段数据的不同部分;  9A and 9B are schematic diagrams of a method for transmitting data using multiple S transmission cycles in a data network according to the present invention. The server uses multiple multicast transmission groups (a)-(e) to transmit the same piece of data and the client receives the schematic diagram. 9A is a schematic diagram of the receiving method used by a client with a smaller bandwidth. The client only joins a multicast transmission group to receive it. Figure 9B is a receiving method that can be selected by a client with a larger bandwidth. It uses multiple multicast transmission groups at the same time. Receive different parts of the same piece of data;
图 10示出的是本发明的数据网络中利用多目传送循环传送数据的方法的 另一较佳实施例, 示出了较大带宽的客户机利用多个多目传送组接收一组数 据的示意图;  FIG. 10 shows another preferred embodiment of a method for cyclically transmitting data using a multicast transmission in a data network of the present invention. It shows that a client with a larger bandwidth receives multiple sets of data using multiple multicast transmission groups. Schematic
图 11A和图 11B示出的是本发明的数据网络中利用多目传送循环传送数 据的方法中,服务器同时利用多个多目传送组和单目传送传输同一段数据时, 客户机接收数据的示意图, 其中图 11A是较小带宽的客户机所采用的接收方 式, 客户机仅加入一个多目传送组和单目传送接收该段数据, 图 11B则是较 大带宽的客户机可选择的方法, 同时使用多个多目传送组和单目传送接收同 一段数据的不同部分;  FIGS. 11A and 11B show a method for transmitting data in a cyclic manner in a data network according to the present invention. When a server uses multiple multicast transmission groups and a single transmission to transmit the same piece of data at the same time, the client receives the data. Schematic diagram, where FIG. 11A is the receiving method adopted by the client with a smaller bandwidth, and the client only joins a multicast transmission group and receives the data in a single transmission. FIG. 11B is a method that the client with a higher bandwidth can choose , Using multiple multicast transmission groups and monocular transmission to receive different parts of the same piece of data at the same time;
图 12是本发明中服务器以多个多目传送组传送 A和 B两组数据的传输示 意图, 其中 A組数据被分割为 5个数据片段, A组数据的第一个片段用三个 多 II传送组传送并 '且循环到起始点的时间相互交错, 并且以单目传送方式向 客户机传送第一片段的一部分。 客户机即利用单目传送也使用多目传送接收 数据, 在以多目传送方式接收数据时按照多目传送组循环到起始点之处开始 接收。 具体实施方式 FIG. 12 is a transmission schematic diagram of the server transmitting two sets of data of A and B in multiple multicast transmission groups in the present invention, where the data of group A is divided into five data segments, and the first segment of data of group A uses three multi-II The transmission group transmits and 'cycles to the start point in time alternately with each other, and transmits a part of the first segment to the client in a monocular transmission manner. The client receives the data using both monocular transmission and multicast transmission. When receiving data in a multicast transmission mode, it starts to cycle to the starting point according to the multicast transmission group. Receive. detailed description
下文, 将详细描述本发明。  Hereinafter, the present invention will be described in detail.
关于本发明所涉及概念的说明:  Explanation of the concepts involved in the present invention:
1、 多目传送  1. Multi-eye transmission
目前多目传送(Mul t icas t ) 协议这个名词主要指 TCP/IP协议组允许一 宿主机向所有宿主机的某一子集发送包 (即组发送) 的传输方式, 但是与 TCP/IP类似的其他协议组如 AppleTalk协议组也具备类似功能的协议,称为 "简单多目传送路由选择协议(SMRP )"。 另外, 其他协议組也可以开发出与 多目传送(Mul t icas t )相同或类似的功能, 例如: IPX/SPX协议组; 主要用 于无线传输的 CDMA; 网络的第二层协议当中的以太网协议(ETHERNET )等。 几乎所有协议组已经具备单目传送(点对点传输) 功能。  At present, the term Multicast (Mul ticas t) protocol mainly refers to the transmission mode of the TCP / IP protocol group that allows a host to send packets to a subset of all hosts (that is, group transmission), but it is similar to TCP / IP. Other protocol groups such as the AppleTalk protocol group also have protocols with similar functions, called "simple multicast routing protocol (SMRP)". In addition, other protocol groups can also develop the same or similar functions as Multicast (Mul ticas t), for example: IPX / SPX protocol group; CDMA mainly used for wireless transmission; Ethernet in the second layer protocol of the network Network protocol (ETHERNET) and so on. Almost all protocol groups already have the function of monocular transmission (point-to-point transmission).
所以本发明中所说的 "多目传送" 不限于基于 TCP/IP 协议组的多目传 送(Mul t icas t )和单目传送(Unicas t )协议, 本发明同样适用于任何能提 供类似多目传送和单目传送功能的数据网络。  Therefore, the “multi-eye transmission” in the present invention is not limited to the multi-eye transmission (Mul t icas t) and unicast transmission (Unicas t) protocols based on the TCP / IP protocol group. A data network with head and mono functions.
一个多目传送 IP地址的每个端口可以传送不同的内容, 所以在本发明中 也可以将同一个多目传送 IP地址的每个端口看作是不同的多目传送组,用来 传送不同的数据。  Each port of a multicast IP address can transmit different content, so in the present invention, each port of the same multicast IP address can also be regarded as a different multicast group, which is used to transmit different data.
2、 服务器  Server
在本发明中, 服务器是指: 能响应客户机的要求, 通过数据网络向客户 机传送其所需数据的设备, 在物理上可以是一个设备, 也可以是一组相距很 远但可以相互配合完成本方法的设备, 例如: 可以将目录信息及一组数据的 各个数据片段分别用不同的设备发送。  In the present invention, a server refers to: a device capable of responding to a client's request and transmitting its required data to the client through a data network, which may be a device physically, or a group of devices that are far apart but can cooperate with each other A device that completes the method, for example, may send directory information and each data segment of a set of data to different devices, respectively.
3、 客户机  3. Client
在本发明中, 客户机是指: 需要数据, 能够通过数据网络向服务器发出 请求, 并能够接收服务器通过网络传送的数据的设备。 同一个设备可以既是 客户机又是服务器, 例如担任转发角色的代理服务器。 4、 一组数据 In the present invention, a client refers to a device that requires data, can send a request to a server through a data network, and can receive data transmitted by the server through a network. The same device can be both a client and a server, such as a proxy server in a forwarding role. 4.A set of data
在本发明中, 一组数据是指, 在大多数情况下必须作为一个整体来使用 的一个或多个数据块, 它们可以是一个文件, 也可以是多个文件 (例如一个 WEB页面由多个文件组成), 可以是以文件形式存储的数据, 也可以是以其他 形式存储的数据。 客户机不一定下载一组数据的全部, 例如, 交互式电影, 需要根据观众的选择确定其情节这样发展(下载这段数据 ), 或那样发展 (下 载那段数据)。  In the present invention, a group of data refers to one or more data blocks that must be used as a whole in most cases. They can be one file or multiple files (for example, a web page consists of multiple Files), which can be data stored in the form of files, or data stored in other forms. The client does not necessarily download all of a set of data, for example, an interactive movie, it needs to determine its plot to develop (download this piece of data), or develop (download that piece of data) according to the choice of the audience.
5、 数据片段  5.Data fragments
在本发明中, 数据片段是指, 为了方便客户机灵活接收数据, 将上述一 组数据分割后形成的多个片段。  In the present invention, the data segment refers to a plurality of segments formed by dividing the foregoing group of data in order to facilitate the client to flexibly receive data.
6、 一段数据  6.A piece of data
在本发明中, 一段数据泛指上述的一组数据和一个数据片段, 在提到一 段数据时, 可能是一组数据也可能是一个数据片段。  In the present invention, a piece of data generally refers to the above-mentioned set of data and a piece of data. When referring to a piece of data, it may be a set of data or a piece of data.
7、 标尺及带标尺的数据  7, ruler and data with ruler
由于本发明的特殊性, 客户机在加入多目传送组并开始接收一段数据时, 可能从数据的任何部分开始接收, 所以客户机需要标尺用以定位自己开始接 收数据的起始点, 利用标尺是最好的方法之一; 另外, 如果客户机收到的数 据中有错误, 也需要标尺确定错误数据的起点和终点位置。  Due to the particularity of the present invention, when a client joins a multicast transmission group and starts to receive a piece of data, it may start receiving from any part of the data. Therefore, the client needs a ruler to locate the starting point where it starts to receive data. The ruler is One of the best methods; In addition, if there is an error in the data received by the client, a ruler is also needed to determine the start and end positions of the error data.
可以使用以下方式设定数据标尺, 但不限于以下列举的方式:  The data scale can be set in the following ways, but is not limited to the ways listed below:
( 1 )、 在数据中每隔一定字节加入起到标尺刻度作用的数据;  (1), adding data that functions as a ruler scale every certain byte in the data;
( 2 )、 利用数据包顺序号 (数据需要在网络中传输时发送方须将其顺序 打包传输)作为标尺刻度;  (2). Use the sequence number of the data packet (the sender must pack and transmit the data in sequence when the data needs to be transmitted in the network) as the scale;
( 3 )、 将数据分割成一系列小文件, 每个小文件就是一个标尺刻度; (3) The data is divided into a series of small files, and each small file is a ruler scale;
( 4 )、 利用某一数据点到数据片段的首或尾的字节数或位数作为其标尺 刻度; (4) using the number of bytes or digits of a data point to the beginning or end of the data segment as its scale;
( 5 )、 可以利用传输过程的时间作为其自然的标尺, 但这时需要服务器 以平稳的速率传送数据;  (5) The time of the transmission process can be used as its natural scale, but at this time, the server needs to transmit data at a steady rate;
( 6 )、 可以利用多目传送的同步信号如 "hear tbea t " 作为标尺。 ( 7 )、 也可以综合运用以上几种方式设置数据标尺。 (6) A synchronization signal such as "hear tbea t" can be used as a scale. (7) The data scale can also be set by combining the above several methods.
8、 目录信息  Directory information
在本发明中, 目录信息是指, 为了使客户机能够迅速、 方便地接收数据, 服务器向客户机提供的信息, 可以但不限于包括以下信息或其中的一部分: —组数据是否被分割成多个数据片段, 一共被分割成多少个数据片段; 哪一 段数据可以用单目传送方式传送, 其地址和端口; 哪一段数据可以用多目传 送方式传送, 用的是哪一个多目传送组; 每段数据用几个多目传送组传输, 用的是哪一个多目传送组; 一组数据或一个数据片段的长度; 某个多目传送 组当前传送进度; 使用哪一个多目传送组可以最快循环到这段数据的起始点 。  In the present invention, the directory information refers to the information provided by the server to the client in order to enable the client to receive data quickly and conveniently. The information may include, but is not limited to, the following information or a part thereof:-Whether the group data is divided into multiple How many pieces of data are divided into two pieces of data in total; which piece of data can be transmitted using the monocular transmission method, its address and port; which piece of data can be transmitted using the multicast transmission method, and which multicast transmission group is used; Each piece of data is transmitted using several multicast transmission groups, which multicast transmission group is used; the length of a group of data or a data segment; the current transmission progress of a multicast transmission group; which multicast transmission group can be used Fastest cycle to the beginning of this data.
服务器可以不提供完整的目录信息供客户机选择, 而是根据其发送数据 的情况推荐客户机使用某一个或某几个多目传送组, 或者联合使用单目传送 和多目传送。  The server may not provide the complete directory information for the client to choose, but recommends the client to use one or several multicast transmission groups according to the situation of the data it sends, or use a combination of monocular transmission and multicast transmission.
可以采用很多方法减少目录信息的传输量, 可以采用约定目录信息的方 法, 例如服务器传送每天的新闻联播节目都相对固定地用某一个和某几个多 目传送组, 这样客户机只需要一次性地获得有关的目录信息的全部或相对固 定的一部分, 并长期存储在存储器中, 以后客户机就可以不必每次点播这个 节目时都要接受目录信息了, 或者每次只接收相对变化了的部分即可。  Many methods can be used to reduce the amount of transmission of directory information, and the method of contracting directory information can be used. For example, the server transmits daily news syndicated programs relatively fixedly using a certain and several multicast transmission groups. In this way, the client only needs one time To obtain all or a relatively fixed part of the relevant directory information and store it in the memory for a long time, so that the client does not have to accept the directory information every time it requests this program, or only receives the relatively changed part each time Just fine.
服务器和客户机可以采用某种算法以减少目录信息的信息量, 例如一组 数据的各片段所使用的多目传送组的地址是按顺序递增或递减 IP地址或端 口号。  The server and client can use some algorithm to reduce the amount of information in the directory information. For example, the address of the multicast group used by each segment of a group of data is an IP address or port number that increases or decreases in order.
也可以将目录信息分布于某段或某几段数据中在接收数据的过程中逐步 传输。  It is also possible to distribute the directory information in a certain section or sections of data and gradually transmit it during the process of receiving data.
9、 接收起点  9. Receiving starting point
在本发明中由于服务器向多目传送组发送数据的进程不一定与每一个接收 数据的客户机同步, 大多数的情况是: 当一个客户机开始从某一个多目传送组接 收数据时,服务器正处于传送这段数据的过程中,所以客户机开始接收数据时所 接收到的数据并不是这一段数据本身的起点。 所以客户机可能需要记录其 "接 收起点", 例如: 可以将开始接收时所收到的一串数据记录下来然后利用数据串 对比来确认,也可以利用 "标尺"或 "标尺加偏移量"的方法来记录 "接收起点", 或根据目录信息预定一个 "接收起点" 并记录下来。 如图 4B 所示, 当时间 tl 时某客户机开始接收数据并记录接收起点位置, 当时间 t2时该客户机接收到这 5段数据的结尾,但并不停止,继续接收紧接的循环发送的同一段数据的前面部分, 当时间 t 3时, 客户机接收的数据再次循环到接收起点位置, 这样, 从 tl到 t2 所接收的是这段数据的后面部分, 从 t2到 t 3所接收的是这段数据的前面部分, 客户机将这两部分在接收起点处连接起来就是完整的一段数据。当客户机从多个 多目传送组接收同一段数据时,客户机从某个多目传送组接收到从另一个多目传 10送组的另一个 "接收起点" 时即可以停止从此多目传送组接收数据, 因为在另一 ■ 个 "接收起点"之后的数椐已经从预计从另一个多目传送组接收甚至已经接收过 了。 当然客户机也可以将此段数据的起始点定为特殊起点,这样的话就不一定需 要记录 "接收起点" 了, 至于在 "接收起点" 处连接就更没有必要了。 In the present invention, because a process in which a server sends data to a multicast group is not necessarily synchronized with each client that receives data, most cases are: When a client starts receiving data from a multicast group, the server It is in the process of transmitting this data, so the data received by the client when it starts receiving data is not the starting point of this data itself. So the client may need to record its "access "Receiving start point", for example: You can record a series of data received at the beginning of reception and then use data string comparison to confirm, or you can use the "rule" or "ruler plus offset" method to record the "receiving start point" , Or book a "receiving start point" according to the directory information and record it. As shown in Figure 4B, a client starts to receive data at time t1 and records the position of the starting point of reception. At time t2, the client receives these five pieces of data. At the end, but does not stop, continue to receive the previous part of the same piece of data sent immediately by the loop. At time t 3, the data received by the client loops to the receiving starting position again. In this way, the data received from t1 to t2 It is the latter part of the data. From t2 to t3, the front part of the data is received. The client connects the two parts at the starting point of the reception to complete the data. When the transmission group receives the same piece of data, the client can stop the multicast transmission from this multicast transmission group when it receives another "receiving start point" from another multicast transmission group. The group receives data, because the data after another "receive start point" has been received from another multicast group or even received. Of course, the client can also set the starting point of this piece of data as special The starting point. In this case, it is not necessary to record the "receiving starting point". As for the connection at the "receiving starting point", it is even more unnecessary.
10、 存储器  10.Memory
15 本发明中, 存储器是指所有能存储或暂时存储信息的装置, 它可以是对立 的存储装置也可以是其他装置中的一部分。  15 In the present invention, the memory means all devices capable of storing or temporarily storing information, and it may be an opposite storage device or a part of other devices.
11、 加入多目传送组及从多目传送组接收数据  11.Join and receive data from the multicast group
本发明中加入多目传送组及从多目传送组接收数据可以是直接的也可以 是间接的。 经典的多目传送协议完成数据的复制、 分发的功能, 它要求所有 Joining and receiving data from a multicast group in the present invention may be direct or indirect. The classic multicast transmission protocol completes the functions of data replication and distribution. It requires all
20 接收多目传送组数据的客户机将自己的地址变为此組的地址从而接收数据流 的一个拷贝, 但现在有一种新的多目传送网絡设备可以不要求客户机将自己 的地址变为组地址, 此设备仍然按照各个客户机的需求完成数据的复制、 分 发的功能, 但是此设备将原有的目的地址转换为各个要求此数据的客户机的 地址, 其优点是在不支持经典的多目传送协议的网络中加入这样的设备就可20 The client receiving the multicast group data changes its address to this group address to receive a copy of the data stream, but now there is a new multicast network device that does not require the client to change its address to Group address, this device still completes the function of copying and distributing data according to the needs of each client, but this device converts the original destination address to the address of each client that requires this data. Its advantage is that it does not support classic Adding such a device to a multicast network
25 以实现由一点向多个目的地传送数据的功能。 这种情况可以视为客户机间接 加入多目传送组及从多目传送组接收数据。 25 to transfer data from one point to multiple destinations. This situation can be considered as the client indirectly joining and receiving data from the multicast group.
本发明分为服务器的发送方法及系统和客户机的接收方法及系统, 这两 种方法及系统是分步地相对独立地实现的, 但在技术上必须相互配合的。 就 如同电视台的发射设备(对应于服务器)和电视机(对应于客户机), 一个服 务器可以发送一组数据也可以同时发送多组数据, 客户机也可以同时接收一 组或多组数据。 但为了便于理解, 以下将发送和接收一组或多组数据结合在 —起描述。 The present invention is divided into a server sending method and system and a client receiving method and system. These two methods and systems are implemented relatively independently step by step, but must be technically coordinated with each other. Just Like the transmitting equipment (corresponding to the server) and television (corresponding to the client) of a television station, a server can send a group of data or multiple groups of data at the same time, and a client can also receive one or more groups of data at the same time. However, in order to facilitate understanding, the following describes a combination of sending and receiving one or more sets of data.
本发明的在数据网络中利用多目传送传输数据的过程为:  The process for transmitting data in a data network by using multi-mode transmission is:
1、 将数据处理成为便于本方式使用的格式并存储于服务器的存储器中: a. 服务器将需要发送的一组数据分割成多个数据片段(这一工作也可 以事先由其他计算机完成,甚至在制作数据的过程中一并完成),可以采 用各种分割形式。 对于较小的一组数据也可以不做分割。  1. The data is processed into a format convenient for this method and stored in the server's memory: a. The server divides a group of data to be sent into multiple data fragments (this work can also be completed by other computers in advance, even in The process of producing data is completed together), and various segmentation forms can be used. It is not necessary to split for a smaller set of data.
b. 可以在各段数据中加入 "标尺" (这一工作也可以事先由其他计算 机完成、 在制作数据的过程中一并完成、 或者在存储到内部存储器或外 部存储器前并不加入 "标尺" 而是在服务器将数据向网络发送前才加 入), 也可以利用天然标尺如时间。  b. You can add a "ruler" to each piece of data (this work can also be completed by other computers in advance, completed in the process of making data, or you do not add a "ruler" before storing it in internal or external memory (It is added before the server sends the data to the network.) You can also use natural rulers such as time.
c 将处理好的数据存放于服务器的存储器中。  c Store the processed data in the server's memory.
2、服务器将需要传送的每一段数据, 可以是未被分割的一組数据, 也可以 是被分割后的各数据片段, 分别向不同的多目传送组传送, 使客户机能够灵 活地选择同时接收其中一个或几个数据片段。 图 3 所表示的是本发明在 Internet网絡中利用 3个多目传送方式下载数据或进行视频点播时的数据流 (本发明不限于 3个多目传送組,可以根据实际情况使用任意数量的多目传送 组), 客户机 221、 222、 223分别从多目传送组下载同一组数据。 本发明的两 种基本方式图中都可以表示。  2. Each piece of data that the server will need to transmit can be an undivided group of data, or it can be the divided data fragments, which are transmitted to different multicast transmission groups respectively, so that the client can flexibly choose the same time. Receive one or more pieces of data. Figure 3 shows the data flow when the present invention uses three multicast transmission methods to download data or perform video on demand in the Internet network (the present invention is not limited to three multicast transmission groups, and any number of multicasts can be used according to the actual situation). Destination transmission group), and clients 221, 222, and 223 download the same set of data from the multicast transmission group, respectively. Both basic modes of the invention can be shown in the figures.
a、服务器 120将同一段数据分别向 3个多目传送组循环传送,并且每个 多目传送循环到此段数据的起始点时的时间是相互交错开的。 客户机根据实 际情况选择接收。  a. The server 120 cyclically transmits the same piece of data to three multicast transmission groups, and the time when each multicast transmission cycle reaches the starting point of this segment of data is interleaved. The client chooses to receive according to the actual situation.
b、服务器 120将一组被分割成 3个数据片段的数据分别向 3个多目传送 组循环传送, 客户机根据实际情况选择接收。 . 或者也允许服务器以单目传送方式向客户机提供数据, 使客户机能够使 用更灵活的接收方式, 或以单目传送方式修补有错误的数据。 3、在服务器提供数据传送的期间,每个数据片段传送完毕后再次传送, 如 此循环往复。 使需要数据的客户机可以随时开始接收数据片段并完成一个完 整的循环,如图 4A所示。或者当有至少一个客户机在接收数据时才循环传送, 否则便终止循环, 直到再次有至少一个客户机需要接收数据时才循环传送数 目传送组传送数据。 b. The server 120 cyclically transmits a group of data divided into three data segments to three multi-eye transmission groups, and the client chooses to receive it according to the actual situation. Or it also allows the server to provide data to the client in a unicast mode, so that the client can use a more flexible receiving mode, or repair the data with errors in a unicast mode. 3. During the data transmission provided by the server, each data segment is transmitted again after the transmission is completed, and so on. The client that needs data can start receiving data fragments and complete a complete loop at any time, as shown in Figure 4A. Or, at least one client transmits data cyclically when receiving data, otherwise the loop is terminated, and the number of transmission groups transmits data cyclically until at least one client needs to receive data again.
4、如果某客户机需要获取一组数据,它必须首先知道这组数据是否被分割 成多个数据片段; 被分割成几个数据片段; 每段是用几个多目传送组来传送 的; 每段是用哪个多目传送组来传送的; 以及其他相关的目录信息。 所以要 求服务器能够以单目传送或多目传送或其他的形式向客户机提供目录信息。  4. If a client needs to obtain a group of data, it must first know whether this group of data is divided into multiple data fragments; it is divided into several data fragments; each segment is transmitted using several multi-eye transmission groups; Which multicast group is used to transmit each segment; and other related directory information. Therefore, it is required that the server be able to provide the directory information to the client in a unicast or multicast or other form.
5、 因为服务器用多目传送将需要传送的数据以循环的方式传送的, 当客户 机需要取得这些数据时可以立即加入相应的多目传送组, 或等待循环到此段 数据的起始点时才加多目传送组 ,· 或别的适当的时机加入多目传送组, 例如 客户机可以将客户感性趣的某类节目的前面一部分或第一个或前几个片段先 接收并存储, 当客户真正点播这个节目时才接收后面部分。 如果 "接收起点" 并非此段数据的起点则客户机同时记录下开始接收数据的 "接收起点",直到 循环到客户机某个 "接收起点"; 这个 "接收起点"有可能是预计将从另外一 个多目传送组接收到的或是已经接收到的。 如果客户机是以此段数据的起始 点或结束点作为 "接收起点" 的, 则允许不对此 "接收起点" 另作记录。 也 可以超过 "接收起点", 以便验证。  5. Because the server transmits the data to be transmitted in a cyclic manner by using multi-purpose transmission, when the client needs to obtain the data, it can immediately join the corresponding multi-purpose transmission group, or wait for the cycle to the starting point of this segment of data. Add a multi-eye transmission group, or join the multi-eye transmission group at another appropriate time. For example, the client can receive and store the first part or the first or the first few clips of a certain type of program that the customer is interested in. The next part is only received when the program is actually on demand. If the "receiving start point" is not the starting point of this piece of data, the client records the "receiving start point" that starts to receive data at the same time, until it loops to a "receiving start point" of the client; Received or received by a multicast group. If the client uses the start or end point of this piece of data as the "reception start point", it is allowed not to make another record of this "reception start point". It is also possible to exceed the "Receive Start Point" for verification.
图 4B所表示的是在本发明中客户机是如何记录 "接收起点"从而循环接 收数据, 并修正错误的。 客户机在 t l时间点开始接收数据, 并记录下 "接收 起点",客户机接收到这段数据的结尾后并不停止接收,直到再次循环到这个 "接收起点" ,也可以超过 "接收起点", 以验证完成整个循环传送数据的接 收,如图 4C所示。 再次循环到 "接收起点" 的时间点为 t 3。 如果客户机在接 收的到数据中发现一部分有错误(或遗失),则将有错误(或遗失)的数据定位, 并计算出下次循环到此刻度的时间,并适时加入此传送组接收数据以修正(或 补充)有错误(或遗失)的部分数据, 定位 "接收起点"或错误可以用标尺, 或 "标尺加偏移量", 或数据串对比, 也可以用其他方式。 FIG. 4B shows how the client records the "receiving start point" in the present invention to cyclically receive data and correct errors. The client starts to receive data at tl time and records the "receiving start point". After receiving the end of this data, the client does not stop receiving until it loops to this "receiving start point" again. It can also exceed the "receiving start point". In order to verify the reception of the entire cyclic transmission data, as shown in FIG. 4C. The time point for looping again to the "reception start point" is t 3. If the client finds some errors (or missing) in the received data, it locates the data with errors (or missing), calculates the time to next cycle to this scale, and joins the transmission group to receive data in time To correct (or supplement) part of the data with errors (or missing), use the ruler to locate the "reception point" or errors, or "Ruler plus offset", or data string comparison, can also be used in other ways.
有一点需要特别说明, 为了便于理解, 在图 4A〜图 4D和图 9A、 图 9B 中在部分表示传输数据的条带下画出了标尺的刻度并非表示数据一定带 "标 尺", 其他的图未将标尺刻度 ~画出来并不一定表示数据不带标尺。  There is one point that needs special explanation. In order to facilitate understanding, the scale of the ruler is drawn under the bands that partially represent the transmitted data in Figs. 4A to 4D and Figs. 9A and 9B. Failure to draw the ruler ~ does not necessarily mean that the data does not have a ruler.
6、客户机根据其可供使用的网络带宽、本机的处理能力及实际需求确定用 某种方式或某种组合方式接收数据, 以下例举几种方式, 但本发明不仅限于 以下方式:  6. The client determines to receive data in a certain method or a certain combination according to its available network bandwidth, the processing capacity of the machine, and the actual needs. Several methods are exemplified below, but the invention is not limited to the following methods:
a、 同一时刻只接收一个片段, 逐步接收完整段数据; 如图 5 所示。 图 5 的阴影部分所表示的是在本发明中具有较小带宽的客户机是如何利用定位 "接收起点"循环接收数据的。一组数据 A被分割成 Al ~ A5共 5个数据片段, 服务器将这 5个数据片段分别向 5个多目传送组循环传送, 客户机同一时刻 只加入一个多目传送组, 逐步接收这 5个数据片段。 当然客户机也可以等到 多目传送组循环到起始点时再加入多目传送组,例如:依次接收 A1 - 2、 A2-3、 A3-4 , 如果服务器循环发送各数据片段的起始点的时间相互对齐, 接 收效果会更好一些。  a. Only one segment is received at a time, and the complete segment data is gradually received; as shown in FIG. 5. The shaded part in Fig. 5 shows how a client with a smaller bandwidth in the present invention uses the positioning "receiving start point" to receive data in a loop. A group of data A is divided into five data segments Al ~ A5. The server transmits the five data segments to five multi-eye transmission groups in a cyclic manner. The client only joins one multi-eye transmission group at the same time, and gradually receives these five data. Data fragments. Of course, the client can also wait for the multicast group to join the multicast group when the cycle reaches the starting point, for example: receiving A1-2, A2-3, A3-4 in sequence, if the server sends the time of the starting point of each data segment cyclically Aligned with each other, the receiving effect will be better.
b、 同时接收几个片段, 逐步接收完整段数据,同时还可以接收另外一组数 据的某几个片段(需要较大的带宽和较强的处理能力)如图 6所示。 图 6的 阴影部分所表示的是在本发明中拥有较大带宽的客户机是如何用多个多目传 送组循环接收数据的。 其中有三组数据人、 B、 C, A組被分割成 5 个数据片 段 Al— A5,利用多目传送组(a)― (e)传送。 B组被分割成 2 个数据片段 Bl ~ B2 , 利用多目传送组(f)— (g)传送。 C组被分割成 C1 ~ C4 4个数据片段, 利用多 目传送组 Oi)― (k)传送。服务器将 11个数据片段向 11个多目传送组循环发送。 客户机在同一时刻只加入其中几个(图中为 4个或 3个)多目传送组, 逐步接 收所述的全部数据片段。 当然客户机也可以等到多目传送组循环到此段数据 的起始点时再加入多目传送组, 例如: 依次接收 A1- 2、 A2-2、 A3- 2、 A4-2、 b. Receive several segments at the same time, and gradually receive the complete segment of data. At the same time, it can also receive certain segments of another set of data (requires larger bandwidth and strong processing capability) as shown in Figure 6. The shaded part in Fig. 6 shows how a client with a larger bandwidth in the present invention receives data in cycles using multiple multi-eye transmission groups. Among them, there are three groups of data people, B, C, and group A is divided into five data segments Al-A5, which are transmitted using multi-purpose transmission groups (a)-(e). Group B is divided into two data fragments Bl ~ B2, and transmitted using multi-eye transmission groups (f)-(g). Group C is divided into 4 data segments C1 ~ C4, and is transmitted using the multicast transmission group Oi)-(k). The server cyclically sends 11 data fragments to 11 multicast transmission groups. The client joins only a few (4 or 3) multicast transmission groups at the same time, and gradually receives all the data fragments described. Of course, the client can also wait for the multicast group to cycle to the starting point of this segment of data before joining the multicast group, for example: Receive A1- 2, A2-2, A3- 2, A4-2 in order.
A5-3、 Bl_3、 B2- 3、 CI- 3 , 如果服务器循环发送各数据片段的起始点 的时间相互对齐, 接收效果会更好一些。 A5-3, Bl_3, B2-3, CI-3, if the time of the starting point of the cyclic sending of each data segment is aligned with each other, the receiving effect will be better.
c、 同时接收所有片段, 同时还可以接收另外一组数据的某几个片段, 但 需要较大的带宽和较强的处理能力, 如图 6的阴影部分所表示的客户机可以 在一个循环周期内接收 B组数据的两个数据片段。 当然客户机也可以等到多 目传送组循环到此段数据的起始点时再加入多目传送组。 c. Receive all fragments at the same time, and also receive some fragments of another set of data, but A larger bandwidth and a stronger processing capability are required. As shown in the shaded part of FIG. 6, the client can receive two data segments of the B-group data in one cycle. Of course, the client can also wait for the multicast transmission group to join the multicast transmission group when it reaches the starting point of this segment of data.
d、 联合使用单目传送和多目传送接收一组数据的各个数据片段, 如图 7 所示。 图 7的阴影部分所表示的是在本发明中拥有较大带宽的客户机是如何 联合使用单目传送和多目传送组循环接收数据的。 客户机利用单目传送接收 第 1片段数据 A1 , 因为单目传送可以从一个数据片段数据的起始部分开始下 载, 所以客户机可以及时地从数据的起始处开始使用数据, 在客户机接收并 使用完单目传送来的第 1个数据片段的数据的时间内,客户机已经将第 2、 3、 4个数据片段 A2 ~ A4的数据以多目传送组(a)— (c)接收并存储到客户机中, 在使用第 2数据片段的数据的同时则可以继续接收后续的数据片段和另外几 组数据。 当然客户机也可以等到多目传送组循环到此段数据的起始点时再加 入多目传送组, 或先以单目传送方式接收 A1 , 然后再以多目传送方式接收其 他数据片段。  d. Use a single transmission and a multiple transmission to receive each data segment of a group of data, as shown in Figure 7. The shaded part in Fig. 7 shows how a client with a larger bandwidth in the present invention uses a combination of unicast and multicast transmission groups to receive data cyclically. The client receives the first piece of data A1 by using the monocular transmission. Because the monocular transmission can be downloaded from the beginning of a piece of data, the client can use the data in time from the beginning of the data and receive it at the client. Within the time of using the data of the first data segment transmitted by the monogram, the client has received the data of the second, third, and fourth data segments A2 ~ A4 in the multi-eye transmission group (a)-(c) And stored in the client, while using the data of the second data segment, it can continue to receive subsequent data segments and several other sets of data. Of course, the client can also wait for the multicast group to cycle to the starting point of this segment of data and then join the multicast group, or receive A1 in the monocular transmission mode, and then receive other data fragments in the multicast transmission mode.
e、 联合使用单目传送和多目传送接收一段数据, 可以是独立的一段数据 或一组数据的某个数据片段。 图 8的阴影部分所表示的是在本发明中拥有较 大带宽的客户机是如何联合使用单目传送和多个多目传送组循环接收数据 的。 利用单目传送接收一组数据的第 1个数据片段的部分数据 A1 , 同时用 多个多目传送组接收数据片段 A1 - A4。 因为单目传送可以从一段数据的起始 部分开始下载, 所以客户机可以及时地从数据的起始处开始使用数据, 同时 客户机利用多目传送方式同时接收 A2 ~ A4 数据片段, 并记录下开始接收的 e. The use of monocular transmission and multi-eye transmission to receive a piece of data can be an independent piece of data or a piece of data of a group of data. The shaded part in Fig. 8 shows how a client with a large bandwidth in the present invention uses a unicast transmission and multiple multicast transmission groups to receive data cyclically. The monocular transmission is used to receive part of the data A1 of the first data segment of a group of data, and the multiple data transmission groups are used to receive the data segments A1-A4 at the same time. Because the monocular transmission can be downloaded from the beginning of a piece of data, the client can use the data from the beginning of the data in a timely manner. At the same time, the client receives the A2 ~ A4 data fragments at the same time by using the multi-eye transmission method, and records Start receiving
"接收起点", 从图中可以看出, 客户机开始用多目传送组(a)接收第 1数据 片段 A1时,服务器正处于传送这段数据的过程中,所以客户机开始接收数据 时, 在大多数情况下并不是这一段数据本身的起点。 所以客户机需要记录其"Receiving start point", it can be seen from the figure that when the client starts to receive the first data segment A1 with the multi-cast transmission group (a), the server is in the process of transmitting this data, so when the client starts receiving data, In most cases this is not the starting point for this piece of data itself. So the client needs to record its
"接收起点"。 当客户机以单目传送方式接收到的数据达到或超过这个 "接 收起点" 后就可以停止以单目传送方式接收数据了, 因为其后的数据已经以 多目传送的方式接收并存储到客户机中了, 而且这样也可以节省服务器的带 宽。 这一方式不仅可以用来接收一组数据中的一个数据片段, 也可以用来接 收独立的一段数据。在图 8中将 A1看作是独立的一段数据即可。 当然客户机 对于除了多目传送组(a)以外的多目传送组也可以等到多目传送組循环到此 段数据的起始点时再加入多目传送组;或先以单目传送方式接收 A1的一部分 数据直到预计可以与某个多目传送组的数据连接的预计的 "接收起点", 然后 再以多目传送方式在预计中的 "接收起点"处开始接收另外一部分数据片段。 f、 从传输同一段数据的多个多目传送组中选择接收数据, 如图 9A和图 9B 所示。 图 9A和图 9B所表示的是在本发明中服务器将一段数据分别向多个多 目传送组传送, 并且每个多目传送循环到此段数据的起始点时的时间是相互 交错开的。 "Receiving Start". When the data received by the client through the monocular transmission reaches or exceeds this "receiving start point", it can stop receiving data through the monocular transmission, because the subsequent data has been received and stored to the client through the multicast transmission. Machine, and this can also save server bandwidth. This method can not only be used to receive a piece of data in a group of data, but also can be used to receive Receive a separate piece of data. In FIG. 8, A1 can be regarded as an independent piece of data. Of course, for a multicast transmission group other than the multicast transmission group (a), the client can wait for the multicast transmission group to cycle to the starting point of this segment of data before joining the multicast transmission group; or receive A1 in a single transmission first. Part of the data until the expected "receiving start point" that can be connected to the data of a multicast transmission group, and then start receiving another part of the data segment at the expected "receiving start point" in the manner of multicast transmission. f. Select receiving data from multiple multicast transmission groups transmitting the same piece of data, as shown in Figures 9A and 9B. 9A and 9B show that in the present invention, the server transmits a piece of data to a plurality of multicast transmission groups, and the time when each multicast transmission loops to the starting point of the data is staggered with each other.
在图 9A中可以看到当时间为 t l时多目传送组(a)所传送的数据正好循环到 此段数据的起始点, 当时间为 t2时多目传送組(b)所传送的数据正好循环到 此段数据的起始点, 当时间为 t 3时多目传送组(c)所传送的数据正好循环到 此段数据的起始点, 当时间为 t4时多目传送组(d)所传送的数据正好循环到 此段数据的起始点, 当时间为 t5时多目传送组(e)所传送的数据正好循环到 此段数据的起始点, 当时间为 t6时多目传送组(a)所传送的数据再次循环到 此段数据的起始点。 所以客户机选择从能够最早接收到此段数据起始点的多 目传送组(a)接收数据, 当然客户机也可以选择其他的多目传送组,例如有些 人不喜欢看电影片头, 则可以选择多目传送组(e)。  In FIG. 9A, it can be seen that when the time is tl, the data transmitted by the multicast transmission group (a) is exactly cycled to the starting point of the data, and when the time is t2, the data transmitted by the multicast transmission group (b) is exactly Cycle to the starting point of this segment of data. When the time is t 3, the data transmitted by the multicast transmission group (c) is exactly cycled to the starting point of this segment of data. When the time is t4, the multicast transmission group (d) transmits. The data is looped to the start point of this segment of data. When the time is t5, the multicast transmission group (e) is transmitted to the start point of this segment of data. When the time is t6, the multicast transmission group (a) The transmitted data is cycled to the starting point of the data again. Therefore, the client chooses to receive data from the multicast transmission group (a) that can receive the starting point of this piece of data at the earliest. Of course, the client can also choose other multicast transmission groups. For example, some people do not like to watch the movie title, they can choose Multicast transmission group (e).
在图 9B的阴影部分看到客户机根据自己所拥有的网络带宽决定同时从 3 个多目传送组接收数据,根据目录信息决定首先从多目传送组(a)、 (c)、 (e) 接收数据。 当客户机从多目传送组(a)接收数据到 t l时间点时, 数据循环到 客户机从多目传送组(e)所接收的数据的 "接收起点",所以客户机在 t l时间 点之后便可以停止从多目传送组(a)接收数据。 当客户机从多目传送组(e)接 收数据到 t2时间点时, 数据循环到客户机从多目传送组(c)所接收的数据的 "接收起点",所以客户机在 t2时间点之后便可以停止从多目传送组(e)接收 数据。 当客户机从多目传送组(c)接收数据到 t2时间点时, 数据循环到客户 机从多目传送组(a)所接收的数据的 "接收起点",所以在 t2时间点之后便可 以停止从多目传送组(c)接收数据。这样,将这 3部分数据连接起来就正好是 一个完整的循环,也就是一段完整的数据。之所以选择多目传送组(a)是因为 这样客户机可以尽早接收到这一段数据的起点,从图中可以看出在 t Q时间点 多目传送组(a)循环传送到这一段数据的起始点,如果客户机所接收的是一段 视频节目, 则从这时起客户机就可以开始观看所点播的视频了。 当然客户机 对于多目传送组(a)也可以等到多目传送组循环到此段数据的起始点时(t O) 再加入多目传送组, 而且并不影响用户收看的及时性。 In the shaded part of FIG. 9B, it is seen that the client decides to receive data from the three multicast transmission groups at the same time according to the network bandwidth it has. Receive data. When the client receives data from the multicast transmission group (a) to the tl time point, the data is looped to the "reception start point" of the data received by the client from the multicast transmission group (e), so the client is after the tl time point It is then possible to stop receiving data from the multicast transmission group (a). When the client receives data from the multicast group (e) to the time point t2, the data is cycled to the "reception start point" of the data received by the client from the multicast group (c), so the client is after the time point t2 It is then possible to stop receiving data from the multicast group (e). When the client receives data from the multicast transmission group (c) to the time point t2, the data is cycled to the "receiving start point" of the data received by the client from the multicast transmission group (a), so it is possible after the time point t2 Stop receiving data from the multicast group (c). In this way, connecting these 3 parts of data is exactly A complete cycle is a complete piece of data. The reason why the multicast group (a) is selected is because the client can receive the starting point of this piece of data as early as possible. It can be seen from the figure that the multicast group (a) is cyclically transmitted to this piece of data at time t Q Starting point, if the client receives a video program, then the client can start watching the video on demand. Of course, the client can also wait for the multicast group (a) to join the multicast group when the multicast group circulates to the starting point of the data (t O), and it does not affect the timeliness of user viewing.
这一方式不仅可以用来接收作为一个整体的一段数据, 也可以用来接收 一组被分割的数据中的一个或多个数据片段, 如图 10所示。 图 10表示的是 在本发明中服务器将第一段数据 A1用 3多个多目传送组(a. b. c)发送, 拥有 较大带宽的客户机用多个多目传送组接收数据。 从图中可以看出客户机总共 接收两组数据 A和^ 服务器将一组数据 A分割成 5个数据片段 A1 ~ A5, 将 一组数据 B分割成 2个数据片段 B1. B2 , 各数据片段分别用不同的多目传送 组传送。 服务器将其中一组数据 A组第 1个数据片段 A1用 3个多目传送组 (a)― (c)传送,并且每个多目传送循环到此数据片段的起始点时的时间是相互 交错开的。 因为客户机具有较大的网络带宽, 所以客户机可以同时接收 4个 数据片段, 当客户机准备开始接收数据的第 1个数据片段 A1时, 它可以从 3 个多目传送组(a)、 (b)、 (c)中选择一个或多个多目传送组接收数据。在本图 中, 如果客户机用多目传送组(a)下载数据, 则可以从 时间点开始使用数 据; 如果客户机用多目传送组(b)下载数据, 则可以从 t l时间点开始使用数 据; 如果客户机用多目传送组(c)下载数据, 则可以从 t 3时间点开始使用数 据;如果客户机使用合适的数椐流则能尽早开始从头使用数据。在图中 "某客 户机" 用多目传送组(b)则能尽早(在 t l时间点)开始使用数据。 所以客户机 选择多目传送组(b)来接收第 1个数据片段。 同时接收第 2、 3、 4数据片段。 之后再接收一组数据 A的第 5个数据片段和一组数据 B的两个数据片段。 当 然客户机也可以等到多目传送组循环到此段数据的起始点时再加入多目传送 組。  This method can be used not only to receive a piece of data as a whole, but also to receive one or more data fragments in a group of divided data, as shown in FIG. 10. FIG. 10 shows that in the present invention, the server sends the first piece of data A1 in more than three multicast transmission groups (a. B. C), and the client with a larger bandwidth receives data in multiple multicast transmission groups. It can be seen from the figure that the client receives a total of two sets of data A and ^ The server divides a set of data A into 5 data fragments A1 to A5, and divides a set of data B into 2 data fragments B1. B2, each data fragment Use separate multicast groups for transmission. The server transmits one of the data A, the first data segment A1 in three multicast transmission groups (a)-(c), and the time when each multicast transmission loops to the starting point of this data segment is interleaved It's open. Because the client has a large network bandwidth, the client can receive four data segments at the same time. When the client is ready to start receiving the first data segment A1 of the data, it can send packets from three multicast groups (a), (b), (c) Select one or more multicast transmission groups to receive data. In this figure, if the client uses the multicast group (a) to download the data, the data can be used from the time point; if the client uses the multicast group (b) to download the data, it can be used from the tl time point Data; if the client downloads the data using the multicast group (c), the data can be used from time t 3; if the client uses a suitable data stream, the data can be used from the beginning as soon as possible. In the figure, "a client" uses the multicast group (b) to start using the data as early as possible (at time t1). So the client selects the multicast group (b) to receive the first data segment. Receive the second, third, and fourth data segments at the same time. After that, a fifth data segment of a group of data A and two data segments of a group of data B are received. Of course, the client can also wait for the multicast group to join the multicast group when the cycle starts to the starting point of the data.
g、 可以综合运用以上的几种方式, 例如综合运用 e、 f 两种方式, 如图 11A和图 11B所示, 表示的是在本发明中客户机利用多个多目传送組接收同 一段数据(起点相互交错)同时利用单目传送方式。 从图 11A中可以看出, 月良 务器将其中一段数据 A用 5个多目传送组传送, 并且每个多目传送循环到此 数据片段的起始点时的时间是相互交错开的。 客户机用单目传送方式接收数 据, 同时也利用其中 1个多目传送组接收数据并记录下 "接收起点", 从图中 可以看出,客户机开始用多目传送组(e)接收这一段数据时,服务器正处于传 送这段数据的过程中,所以客户机开始接收数据时所接收到的数据(称为: "接 收起点")在大多数情况下并不是这一段数据本身的起点。所以客户机需要利 用 "标尺" 记录其 "接收起点"。 当客户机以单目传送方式从此段数据的起 始点开始接收数据并接收到这个 "接收起点" 后就可以停止以单目传送方式 接收数据了, 因为其后的数据已经以多目传送的方式接收并存储到客户机中 了, 而且这样也可以节省服务器的带宽。 客户机之所以选用多目传送组(e) 是因为使用这个多目传送組能尽量减少单目传送的传输量, 从而节省服务器 的带宽。 g. The above methods can be used in combination, for example, the two methods e and f are used in combination, as shown in FIG. 11A and FIG. 11B, which shows that in the present invention, the client uses multiple multicast transmission groups to receive the same A piece of data (the starting points are interleaved with each other) uses the monocular transmission method at the same time. It can be seen from FIG. 11A that the Yueliang server transmits one piece of data A with five multi-eye transmission groups, and the time when each multi-eye transmission loops to the starting point of this data segment is interlaced. The client receives the data using the monocast transmission method, and also uses one of the multicast transmission groups to receive the data and records the "reception start point". As can be seen from the figure, the client starts receiving the multicast transmission group (e). When a piece of data is transmitted, the server is in the process of transmitting this piece of data, so the data received by the client when it starts to receive the data (referred to as: "reception point") is not the starting point of the piece of data itself in most cases. So the client needs to use the "ruler" to record its "receiving start point". When the client receives data from the starting point of this piece of data in the monocular transmission mode and receives this "receiving start point", it can stop receiving data in the monocular transmission mode, because the subsequent data has been transmitted in the manner of multicast. Received and stored in the client, and this also saves server bandwidth. The client selects the multicast group (e) because using this multicast group can minimize the transmission volume of the monocular transmission, thereby saving the bandwidth of the server.
从图 11B图 11B中可以看出服务器将其中一组数据 A用 5个多目传送组 (a)一(e)传送,并且每个多目传送循环到此数据片段的起始点时的时间是相互 交错开的。 客户机用单目传送方式接收数据同时也利用其中 3个多目传送組 (a. c. e)接收数据并记录下 "接收起点", 从图中可以看出, 客户机根据自己 所拥有的网络带宽决定用单目传送方式接收数据,并同时从 3 个多目传送组 接收数据, 根据目录信息决定首先从多目传送组(a)、 (c)、 (e)接收数据。 当 客户机从这段数据的起始点开始以单目传送方式接收数据到 t l时间点时,客 户机所接收到的数据与客户机从多目传送组(e)所接收的数据的 "接收起点" 重合,客户机在 t l时间点之后便可以停止以单目传送方式接收数据。 当客户 机从多目传送组(e)接收数据到 t 2时间点时, 数据循环到客户机从多目传送 组(c)所接收的数据的 "接收起点",所以客户机在 t 2时间点之后便可以停止 从多目传送组(e)接收数据。当客户机从多目传送组(c)接收数据到 t2时间点 时, 数据循环到客户机从多目传送组(a)所接收的数据的 "接收起点", 所以 在 t2时间点之后便可以停止从多目传送组(c)接收数据。 当客户机从多目传 送组(a)接收数据到 t l时间点时, 数据循环到这段数据的结尾。 这样, 将这 4部分数据连接起来就正好是一个完整的循环, 也就是一段完整的数据。 这样通过综合运用本方式, 拥有不同网络带宽的客户机都可以充分利用 其带宽尽快接收数据, 并满足客户的其它需求。 在上面的例子中客户机大多 按及时接收一组或一段完整数据为主要需求而选择接收方案的, 在实际中可 以根据需求作出更加灵活的选择方案, 例如某些人不喜欢看电影或电视剧的 片头, 某些人从中间开始接收以前未看完的电影等。 It can be seen from FIG. 11B and FIG. 11B that the server transmits one of the data A in five multi-eye transmission groups (a) to (e), and the time when each multi-eye transmission cycle reaches the start point of this data segment is Intertwined. The client receives data in a monocular transmission mode and also uses three of them to receive the data and record the "reception point". As can be seen from the figure, the client decides according to its own network bandwidth Receive data using the monocular transmission method, and simultaneously receive data from the three multi-eye transmission groups. Based on the directory information, it is decided to receive data from the multi-eye transmission groups (a), (c), and (e) first. When the client receives data from the start of this piece of data in a unicast transmission to the time t1, the "receiving start point" of the data received by the client and the data received by the client from the multicast transmission group (e) "Coincidence, the client can stop receiving data in a unicast mode after t1. When the client receives data from the multicast group (e) to the time point t2, the data is cycled to the "reception start point" of the data received by the client from the multicast group (c), so the client is at time t2 After that, you can stop receiving data from the multicast group (e). When the client receives data from the multicast transmission group (c) to the time point t2, the data is looped to the "receiving start point" of the data received by the client from the multicast transmission group (a), so it is possible after the time point t2 Stop receiving data from the multicast group (c). When the client receives data from the multicast transmission group (a) to the time t1, the data is cycled to the end of the data. Like this The connection of 4 parts of data is exactly a complete cycle, that is, a complete piece of data. In this way, by comprehensively using this method, clients with different network bandwidths can make full use of their bandwidth to receive data as quickly as possible, and meet other needs of customers. In the above example, the client mostly selects the receiving scheme based on receiving a group or a complete set of data in a timely manner as the main requirement. In practice, a more flexible selection scheme can be made according to the demand. For example, some people do not like watching movies or TV shows. At the beginning of the film, some people started to receive previously unfinished movies, etc. from the middle.
7、客户机在收到数据后, 对所收到的数据进行效验, 如果发现数据有错误 或遗失则用可以使用以下方法进行修正:  7. After receiving the data, the client performs validation on the received data. If the data is found to be wrong or missing, it can be corrected using the following methods:
a. 利用数据片段的标尺将错误或遗失的数据定位,以单目传送的方式 要求服务器重发一个或多个有错误的部分数据。  a. Use the ruler of the data segment to locate the erroneous or missing data, and ask the server to resend one or more partial data with errors.
b. 将错误或遗失的数据定位并记录下来。 立刻或每隔一定间隔, 如时间、 数据量、 片段数量, 以单目传送的方式要求服务器重发有错误的部分数据。  b. Locate and record erroneous or missing data. Immediately or at certain intervals, such as time, data volume, and number of segments, the server is required to resend part of the data with errors by means of monocular transmission.
c. 将错误或遗失的数据定位并计算出某个多目传送组下次循环到这一点 的时间, 并记录下来。根据时间的定位或提前一点重新接收有错误的部分数 据, 也可以接受其前后相关部分作为冗余, 如图 4D所示。 也可以要求服务器 用单目传送方式发送有错误的部分数据。  c. Locate the erroneous or missing data and calculate the time when a multicast group will next cycle to this point and record it. Depending on the positioning of time or re-receiving some of the data with errors in advance, the relevant parts before and after can also be accepted as redundancy, as shown in Figure 4D. It is also possible to require the server to send part of the data with errors using the unicast transmission method.
8、 客户机收到正确的数据后可以将 "标尺"去掉, 将被分割的一组数据的 多个数据片段合并,恢复这一组数据原有的格式,也可以在存储时不去掉"标 尺", 不做将各片段合并的物理操作, 只是客户机在使用这些数据时忽略 "标 尺",将各片段连接使用,只要使用效果如同使用原有的连续的一组数据一样 即可, 例如: 一般的网页存储时并不用将其连接, 只是在被浏览器读取时才 将其作为一个整体来使用。  8. The client can remove the "ruler" after receiving the correct data, merge multiple data fragments of the divided set of data, restore the original format of this set of data, or do not remove the "ruler" when storing. ", Does not do the physical operation of merging the fragments, but the client ignores the" ruler "when using these data, and connects the fragments, as long as the effect is the same as using the original continuous set of data, for example: Normal web pages are not connected when stored, but only used as a whole when they are read by the browser.
9、考虑到地理距离网络瓶颈或国家或行政区划上的原因,可以在某些地方 设置代理服务器。 代理服务器既能够以本方法中的接收方法或其他方法从服 务器或其他代理服务器取得数据, 又能够以本方法中的传送方法或其他方法 向客户机发送数据。  9. Considering the geographical bottleneck of the network or the country or administrative division, a proxy server can be set up in some places. The proxy server can either obtain data from the server or other proxy server using the receiving method or other methods in this method, or send data to the client using the transmitting method or other methods in this method.
为了实现本发明的任务,在服务器端综合使用了以下几个创新传送方式: (1)多重循环传送数据的方式 服务器循环传送, 客户机随时从多目传送组接收数据。 服务器周而复始 地向某些多目传送组传送某段数据, 并且起点时间相互交错。 客户机等待多 目传送组循环发送到此段数据的起始点开始接收数据, 或随时都可以从这些 多目传送组接收数据, 只要客户机在开始接收数据时将 "接收起点" 记录记 录下来,当客户机从某个多目传送组再次接收到从本多目传送组接受到的"接 收起点" 时即可以停止从此多目传送组接收数据, 或者当客户机从某个多目 传送组接收到另一个多目传送组的另一个 "接收起点" 时即可以停止从此多 目传送组接收数据, 因为在另一个 "接收起点" 之后的数据已经预计从另一 个多目传送组接收甚至已经接收过了。 因为客户机可以选择一个最接近某段 数据起始点的多目传送组所以解决了视频点播的实时收看的问题, 因为客户 机可以选择加入多目传送组的数量所以也解决了不同客户充分利用其网络带 宽的问题。 In order to achieve the task of the present invention, the following innovative transmission methods are used comprehensively on the server side: (1) Multiple cyclic transmission of data The server transmits cyclically, and the client receives data from the multicast transmission group at any time. The server repeatedly sends a piece of data to certain multicast groups, and the starting times are staggered with each other. The client waits for the multicast transmission group to cyclically send to the start point of this piece of data to start receiving data, or can receive data from these multicast transmission groups at any time, as long as the client records the "reception start" record when it starts to receive data, The client can stop receiving data from this multicast group when it receives the "receiving start point" received from this multicast group again, or when the client receives from a multicast group You can stop receiving data from this multicast group when you reach another "receive origin" of another multicast group, because the data after the other "receive origin" is already expected to be received or even received from another multicast group pass. Because the client can choose a multicast group that is closest to the starting point of a piece of data, it solves the problem of real-time viewing of video on demand. Because the client can choose to join the number of multicast groups, it also solves the problem that different customers make full use of it. Problems with network bandwidth.
(2)在数据中加入标尺  (2) Add a ruler to the data
由于本发明的特殊性,客户机在加入多目传送组并开始接收一组或一段数 据时不一定是从数据的起始部分开始接收的, 所以需要使客户机可以定位自 己开始接收数据的起始点, 利用标尺是解决这个问题的最好方法之一。  Due to the particularity of the present invention, when a client joins a multicast transmission group and starts to receive a group or a piece of data, it does not necessarily start from the beginning of the data, so the client needs to be able to locate where it started to receive data. Starting point, using a ruler is one of the best ways to solve this problem.
另外如果客户机收到的数据有错误,也需要利用标尺来定位错误数据在一 段数据中所在的位置, 以便于重收这部分数据。  In addition, if there is an error in the data received by the client, you also need to use a ruler to locate the position of the erroneous data in a piece of data in order to re-receive this part of the data.
(3)一组数据的分割  (3) Segmentation of a group of data
如果服务器仅使用带标尺循环传送的方式来传送数据,客户机就已经能够 4故到随时开始接收数据了, 但对于某些要求实时使用的较大的数据来说这还 是不够的, 另外, 如果所有的客户机都从同一个多目传送组接收数据, 这个 多目传送組无法兼顾到各个客户机所具有的网络带宽。 所以在本发明中可以 将一组作为整体来使用的数据分割成多个数据片段, 分别传送。 这样客户机 就可以根据自己的实际情况灵活地选择接收数据了。 在分割时可以采用重复 分割传送的方式, 例如: 将一組数据分割为 A、 B两个数据片段, 分别向两个 多目传送组传送,再将数据片段 A分割为 Al、 A2两个数据片段, 分别向两个 多目传送组传送, 也可以将整组数据向某个多目传送组传送。 分割后的数据 片段的内容允许相互重复,例如在上面的例子中 A2前面一部分的内容可以与If the server only uses the circular transmission method with a ruler to transmit data, the client can already receive data at any time, but this is not enough for some large data that requires real-time use. In addition, if All clients receive data from the same multicast group. This multicast group cannot take into account the network bandwidth of each client. Therefore, in the present invention, a group of data used as a whole can be divided into a plurality of data fragments and transmitted separately. In this way, the client can flexibly choose to receive data according to its actual situation. During the division, a repeated division transmission method may be adopted. For example, a group of data is divided into two data segments A and B, and the two multi-purpose transmission groups are transmitted respectively, and then the data segment A is divided into two data, Al and A2. The segments are respectively transmitted to two multicast transmission groups, and the entire group of data may also be transmitted to a certain multicast transmission group. Segmented data The content of the fragment is allowed to repeat each other. For example, the content of the previous part of A2 in the above example can be compared with
A1后面一部分的内容相互重复。 The contents of the latter part of A1 are repeated with each other.
在本发明中可以从多种角度、 用多种方式来分割数据。 以下举例说明, 但并不仅限于以下方式。  In the present invention, data can be divided from multiple angles and in various ways. The following examples illustrate but are not limited to the following methods.
a. 按数据的排列顺序分割: 例如一组 100M的视频数据, 按照数据的 排列顺序分割成 10个片段, 每个片段 10M。  a. Divide according to the order of the data: For example, a group of 100M video data is divided into 10 segments according to the order of the data, each segment is 10M.
b. 按视频数据的像素来分割: 例如有一组视频数据, 其每一帧画面 的分辨率是 800 600,如果我们将这幅画面的横向按照每隔一个像素取一个 像素, 横向按照每隔一行取一个的方法, 可以将这个画面分割成 4个分辨率 为 400 X 300的画面基本相同的画面。按照这种方式可以将一组视频数据分割 成 4个数据片段。 如果接收并使用其中一个数据片段, 则可以收看到分辨率 为 400 300的视频节目,如果接收并结合使用全部 4个数据片段,则可以收 看到分辨率为 800 600的视频节目。  b. Segment by video data: For example, there is a set of video data, the resolution of each frame is 800 600. If we take the horizontal direction of this picture, one pixel is taken every other pixel, and the horizontal direction is taken every other line. Taking one method, this picture can be divided into four pictures with a resolution of 400 X 300 which are basically the same. In this way, a set of video data can be divided into 4 data segments. If one of the data segments is received and used, a video program with a resolution of 400 300 can be viewed, and if all four data segments are received and used in combination, a video program with a resolution of 800 600 can be viewed.
c 按视频数据的帧来分割: 例如有一组视频数据, 我们将第 1帧、 第 4帧、 第 7帧 ... ...所组成的视频作为一个数据片段, 将第 2帧、 第 5帧、 第 8 帧 ... ...所组成的视频作为一个数据片段, 将第 3帧、 第 6帧、 第 9帧 ... ...所 组成的视频作为一个数据片段, 如果单独接收并使用其中一个数据片段, 则 可以收看到速率为原有视频节目 3倍的快进的视频节目, 如果将 3个数据片 段接收并联合使用将看到的是正常速度播放的视频节目。  c Divide by the frame of video data: For example, there is a set of video data. Let's take the video composed of frame 1, frame 4, frame 7 as a data segment, and frame 2 and frame 5. Frame, 8th frame ... as a data segment, and 3rd frame, 6th frame, 9th frame ... as a data segment, if received separately And using one of the data segments, you can view a fast-forward video program at a rate three times the original video program. If you receive and use the three data segments together, you will see a video program playing at normal speed.
d. 按照立体视频的左右眼视频来分割: 立体视频节目是靠左右眼的 视差来实现立体效果的, 将左目艮视频和右眼视频分割成两个数据片段, 如果 单独接收并使用其中一个数据片段, 则可以收看到一般的视频节目, 如果将 2个数据片段接收并配合相应的设备联合使用将可以收看到立体视频节目。  d. Split according to the left and right eye videos of the stereo video: Stereo video programs rely on the parallax of the left and right eyes to achieve the stereo effect. The left eye video and the right eye video are divided into two data segments. If one of the data is received and used separately Clips, you can watch general video programs. If you receive 2 data clips and use them in conjunction with corresponding equipment, you can watch stereo video programs.
e. 按照节目内容进行分割: 例如将一段节目的画面作为一个片段, 背景声音作为一个片段, 不同语言的人物对白作为可选的几个片段, 不同不 同语言的人物对白的字幕作为可选的几个片段, 这样客户机就可以灵活的选 择不同的语言配音和字幕了。  e. Divide according to the content of the program: For example, take a picture of a program as a segment, background sound as a segment, character dialogues of different languages as optional segments, and subtitles of character dialogues of different different languages as optional segments. Clip, so the client can flexibly choose different language dubbing and subtitles.
f · 按照某种数学算法枣分割数据。 g. 结合使用以上几种方式: 例如可以结合使用 a、 b、 c、 d这几种方式, 收看视频节目的客户可以先收看小分辨率、 快进、 非立体的视频节目, 看到 感兴趣的部分再转换方式, 收看大分辨率、正常播放速度、 立体的视频节目。 f · Divide the data according to some mathematical algorithm. g. Use the above methods in combination: For example, you can use a, b, c, and d together. Customers who watch video programs can watch small-resolution, fast-forward, non-stereoscopic video programs first. Part of the conversion method, watching large-resolution, normal playback speed, three-dimensional video programs.
(4)联合使用多目传送和单目传送方式:  (4) Combined use of multi-eye transmission and single-eye transmission:
使用单目传送方式服务器可以实时地响应某个客户机的请求从某段数据 的起始点开始向其发送数据,或向客户机发送其要求的某部分或某几部分数 据。 所以现在的视频点播系统都是用单目传送方式。 本发明就是利用了单目 传送方式的这一特点, 将前面部分的数据用单目传送方式传输, 以满足客户 机对实时性的要求。 同时利用多目传送方式传输后面部分的数据, 以减少服 务器和网络主干的负载。 但是要顺利的将两部分连接也需要用某种方法定 位。 例如可以用数据串对比的方式, 即将后面部分的数据的 "接收起点" 处 的一部分数据不断的与新收到的数据对比,如果重合则确定所接收的数据与  Using the unicast transmission mode, the server can respond to a client's request in real time and send data to the client from the starting point of a certain piece of data, or send a part or parts of data to the client as required. Therefore, the current video-on-demand systems use monocular transmission. The present invention utilizes this feature of the monocular transmission method, and transmits the data of the previous part by the monocular transmission method to meet the client's requirements for real-time performance. At the same time, the data of the latter part is transmitted by using the multi-eye transmission mode to reduce the load of the server and the network backbone. However, to successfully connect the two parts, it needs to be positioned in some way. For example, a data string comparison method may be used, that is, a part of the data at the "receiving start point" of the later part of the data is continuously compared with the newly received data, and if the data overlaps, the received data is determined to be
"接收起点" 重合。 也可以利用 "标尺"记录其后面部分的数据的 "接收起 点", 并在此处连接 , 也可以利用数据片段来连接, 即前面一个或多个数据 片段以单目传送方式传输, 后面的数据片段用多目传送方式传输。 "Receive start point" coincides. You can also use the "ruler" to record the "receiving start point" of the data in the later part and connect it here. You can also use data segments to connect, that is, one or more of the previous data segments are transmitted by monocular transmission, and the subsequent data Clips are transmitted using a multi-drop transmission.
工业应用性 Industrial applicability
下面就举一个实际的例子来说明本发明在实际环境中的应用效果。  The following is a practical example to illustrate the application effect of the present invention in an actual environment.
在下面的例子中服务器提供一个电影节目或一条新闻节目的传送, 客户 机需要接收并观看这个节目。当然在实际的应用中一个服务器(或虚拟服务器) 可以同时传送多个节目, 而客户机也可以同时接收多个节目或连续接收多个 节目; 也可以同时或连续接收节目和其他数据。  In the following example, the server provides the transmission of a movie program or a news program, and the client needs to receive and watch the program. Of course, in actual applications, one server (or virtual server) can transmit multiple programs at the same time, and the client can also receive multiple programs at the same time or receive multiple programs in succession; it can also receive programs and other data at the same time or in succession.
如果用传统的单纯用单目传送方式的视频点播, 收看一条视频新闻所需 的时间为 1分钟; 收看一个电影节目所需的时间为 90分钟。客户机点播一个 视频新闻节目需要在观看视频新闻的 1分钟内连续占用其 1M的互连网带宽, 客户机点播一个电影节目需要在观看电影的 90分钟内连续占用其 1M的互连 网带宽。 服务器为了支持这个客户机的点播, 也需要占用 1M的互连网带宽, 而且每增加一个用户就多占用 1M的带宽。 照此计算, 这个带宽为 100M的服 务器最多能同时支持 100个客户机点播这个电影节目。 If you use the traditional video on-demand method of monocular transmission, the time required to watch a video news is 1 minute; the time required to watch a movie program is 90 minutes. The client ordering a video news program needs to continuously occupy its 1M internet bandwidth within 1 minute of watching the video news, and the client ordering a movie program needs to continuously occupy its 1M internet bandwidth within 90 minutes of watching a movie. In order to support the on-demand of the client, the server also needs to occupy 1M Internet bandwidth, and each additional user occupies 1M more bandwidth. According to this calculation, this 100M bandwidth server The server can support up to 100 clients to request this movie program at the same time.
在下面的例子中服务器同样拥有 100M 的互连网带宽, 客户机拥有 10M 的互连网带宽, 服务器于客户机之间的互连网支持多目传送, 服务器以 2M 的带宽向各多目传送组传送数据, 如果客户机同一时刻用一个多目传送组接 收数据,只需要 30秒就可以接收到播放 1分钟的视频节目。在下面的例子中 计算时间时忽略数据传输的迟延、 传输目录信息的时间以及客户机和服务器 处理数据的时间。  In the following example, the server also has 100M Internet bandwidth, and the client has 10M Internet bandwidth. The Internet between the server and the client supports multicast transmission. The server transmits data to each multicast transmission group with a bandwidth of 2M. The machine uses a multi-eye transmission group to receive data at the same time. It only takes 30 seconds to receive a 1-minute video program. In the following example, the delay in data transmission, the time in which directory information is transmitted, and the time in which clients and servers process data are ignored in calculating time.
通过下面的例子我们将看到, 灵活运用本发明后会产生怎样的效果。 对于数据量较小的一组数据来说, 例如一条视频新闻, 服务器只需要将 整组带标尺的数据向一个或多个多目传送组循环传送即可。 如果服务器只向 一个多目传送组循环传送则从客户机选定这条新闻到可以收看这条新闻所需 等待的时间最短大于 Q秒, 最长 30秒, 所需等待的平均时间为 15秒。 如果 服务器分别向 5个多目传送组循环传送, 并且每个多目传送循环到此段数据 的起始点时的时间是相互交错开的, 如图 9 A和图 9 B所示, 则从客户机选定 这条新闻到可以收看这条新闻所需等待的时间最短大于 0秒, 最长 6秒, 所 需等待的平均时间为 3秒。 这样的等待对于收看的人来说还是可以忍受的。 这种方法所带来的优点就是这个服务器可以支持 100, 000以上的客户机同时 收看。  Through the following examples, we will see what effect will be produced after the present invention is flexibly applied. For a group of data with a small amount of data, such as a video news, the server only needs to cyclically transmit the entire group of data with a ruler to one or more multicast transmission groups. If the server only transmits to a multicast group cyclically, the minimum waiting time from when the client selects this news to when it can be watched is greater than Q seconds, the longest is 30 seconds, and the average waiting time is 15 seconds . If the server cyclically transmits to five multicast transmission groups respectively, and the time when each multicast transmission cycle reaches the starting point of this piece of data is interlaced with each other, as shown in Figure 9A and Figure 9B, The minimum waiting time for the machine to select this news to be able to watch the news is greater than 0 seconds, the longest is 6 seconds, and the average waiting time is 3 seconds. This kind of waiting is still tolerable for people watching. The advantage of this method is that this server can support more than 100,000 clients to watch at the same time.
但是如果所点播的是一个电影节目, 简单的使用此方法就行不通了, 如 果服务器分别向 5个多目传送组循环传送, 并且每个多目传送循环到此段数 据的起始点时的时间是相互交错开的, 则从客户机选定这个电影节目到可以 收看个电影节目所需等待的时间最长 9分钟, 最短大于 Q秒, 所需等待的平 均时间为 4分 30秒。 这样的等待对于收看的人来说是难以忍受的。  However, if the on-demand program is a movie program, simply using this method will not work. If the server cyclically transmits to 5 multicast transmission groups respectively, and the time when each multicast transmission loops to the starting point of this segment of data is If they are staggered with each other, the maximum waiting time from the client's selection of the movie program to the time when the movie program can be watched is 9 minutes, the shortest time is greater than Q seconds, and the average waiting time is 4 minutes 30 seconds. Such waiting is unbearable for people watching.
所以对于数据量较大的一组数据来说, 需要综合使用本发明中的循环、 相互交错、 分割以及结合使用单目传送的方法来减少收看人的等待时间。  Therefore, for a group of data with a large amount of data, it is necessary to comprehensively use the method of looping, interleaving, dividing, and using the monocular transmission method in the present invention to reduce the waiting time of viewers.
1、服务器将一个数据格式的电影节目(一组数据)处理成为便于本方式使 用的格式并存储于服务器的存储器中:  1. The server processes a movie program (a set of data) in a data format into a format convenient for this mode and stores it in the server's memory:
a、 服务器将需要发送的电影节目分割成多个片段, 例如将电影开始的 10 分钟视频作为第一个片段,以后的部分每 20分钟的视频数据作为一个数据片 段, 这样一部电影将被分割成大约 5个片段, 这一工作也可以事先由其他计 算机完成, 甚至在制作数据的过程中一并完成; a. The server divides the movie program to be sent into multiple fragments, for example, 10 The minute video is taken as the first clip, and every subsequent 20 minutes of video data is taken as a data clip. In this way, a movie will be divided into about 5 clips. This work can also be done in advance by other computers, even in the production of data Completed in the process;
b、 在数据片段中加入标尺, 这一工作也可以事先由其他计算机完成; 或 者在制作数据的过程中一并完成; 或者在存储时并不加入标尺而是在服务器 将数据向网络发送前才加入标尺;  b. Add a ruler to the data segment. This work can also be completed by other computers in advance; or it can be completed in the process of making data; or the ruler is not added when storing, but before the server sends the data to the network. Add ruler
c、 将处理好的视频数据各片段存放于视频服务器的存储器中。  c. Store each segment of the processed video data in the memory of the video server.
2、服务器将需要传送的电影节目的每个带标尺的数据片段分别向一个或 多个多目传送组传送, 在这个例子中传输这个电影节目至少需要 5个多目传 送组, 如图 5或图 6中的节目 A所示, 占用服务器 10M的网络带宽, 不管只 有 1个客户机还是有 100 , 000个客户机点播这个节目。这样使客户机能够根 据其需要, 网络带宽和处理能力灵活地选择同时接收其中一个或几个数据片 段; 大大的减少了客户机从点播节目到可以观看节目之间的等待时间, 最多 需要等待 5分钟, 平均等待时间 2分 30秒。 与之相比, 传统的视频点播虽然 可以随时点播随时收看,但占用 10M的服务器网络带宽只能给 10个客户机提 供节目,即便占用服务器全部的 100M网络带宽也只能给 100个客户机提供节 。  2. The server transmits each scaled data segment of the movie program to be transmitted to one or more multicast transmission groups. In this example, at least 5 multicast transmission groups are required to transmit this movie program, as shown in Figure 5 or The program A shown in FIG. 6 occupies the network bandwidth of the server 10M. Whether there is only one client or 100,000 clients, this program is requested. In this way, the client can flexibly choose to receive one or several data segments at the same time according to its needs, network bandwidth and processing capacity; greatly reducing the waiting time between the client from the on-demand program to the time the program can be watched, and the maximum waiting time is 5 Minutes, average wait time 2 minutes 30 seconds. In contrast, although traditional video-on-demand can be viewed at any time, it can only provide programs to 10 clients using 10M server network bandwidth, and can only provide 100 clients even if the entire 100M network bandwidth of the server is occupied. Section.
3、在服务器提供电影节目的期间,每个视频数据片段传送完毕后服务器 再次传送, 如此循环往复, 使需要数据的客户机可以随时开始接收数据片段 并完成一个完整的循环。 如图 5或图 6中所示, 因为客户机开始接收某一个 视频数据片段时的接收起点大多数情况下不是此视频数据片段的起点, 而是 从视频数据片段中间的某一点开始接收的, 所以客户机在接收到这个视频数 据片段的结尾时它所接收并存储的并不是一个完整的视频数据片段, 而是这 个视频数据片段的后半段。 但由于服务器传送视频数据片段的方式是循环的 方式,即传送到视频数据片段的结尾后再次从头开始传送这一视频数据片段, 所以客户机在接收到一个视频数据片段的结尾后可以继续接收这个视频数据 片段的前半段直到达到或超过那个接收起点, 如图 4B或图 4C所示的。  3. During the period that the server provides the movie program, the server transmits again after each video data segment is transmitted, so the cycle is repeated, so that the client that needs data can start receiving the data segment at any time and complete a complete cycle. As shown in FIG. 5 or FIG. 6, because the reception starting point when a client starts to receive a certain video data segment is not the starting point of the video data segment in most cases, but the reception starts from a certain point in the middle of the video data segment. So when the client receives the end of this video data segment, what it receives and stores is not a complete video data segment, but the second half of this video data segment. However, because the server transmits video data fragments in a circular manner, that is, the video data fragments are transmitted from the beginning again after the end of the video data fragments, so the client can continue to receive this after receiving the end of a video data fragment The first half of the video data segment is until reaching or exceeding that reception starting point, as shown in FIG. 4B or 4C.
4、如果某客户机需要点播这个电影节目, 它必须首先知道这个电影节目 被分割成几个视频数据片段; 每个视频数据片段是用哪个多目传送组来传送 的; 如果一个视频数据片段用多个多目传送組传送, 客户机还需要知道使用 哪个多目传送组才能最先下载到此视频数据片段的起始点; 或其他相关的目 录信息。 所以要求服务器能够将目录信息以单目传送或多目传送或其他的形 式向客户机传送。 4. If a client needs to request this movie program, it must first know the movie program Is divided into several video data fragments; which multicast group is used to transmit each video data fragment; if a video data fragment is transmitted using multiple multicast groups, the client also needs to know which multicast group to use Only the starting point of this video data clip can be downloaded first; or other related directory information. Therefore, the server is required to be able to transmit the directory information to the client in a single or multi-view transmission or other forms.
5、 因为服务器用多目传送将需要传送的数据片段以循环的方式传送的, 所以当客户机需要取得某些视频数据片段时可以根据目录信息立即加入相应 的多目传送组, 并利用数据标尺记录下开始接收的接收起点, 直到再次循环 到这个接收起点或者可超过接收起点, 以进一步验证确实完成了整个循环传 送数据的接收,并将其拼装成一个完整的数据片段,如图 4B或图 4C所示的。  5. Because the server transmits the data segments that need to be transmitted in a cyclic manner using multi-mesh transmission, when the client needs to obtain some video data fragments, it can immediately join the corresponding multi-memory transmission group according to the directory information and use the data ruler. Record the starting point of the reception, until it is cycled to this starting point again or it can exceed the starting point of the reception, to further verify that the entire cyclic transmission of data has been received and assembled into a complete data segment, as shown in Figure 4B or Figure 4C.
6、客户机根据其可供使用的网絡带宽、本机的处理能力及实际需求等实 际条件, 可由软硬件自动侦测或人为定义, 确定其同时接收方式:  6. According to the actual conditions such as the available network bandwidth, the processing capacity of the machine, and the actual requirements, the client can be automatically detected by software and hardware or manually defined to determine its simultaneous receiving mode:
例如:  E.g:
a . 同一时刻只接收一个视频数据片段, 逐步接收完整个节目, 如图 5 所示。  a. Only one video data segment is received at a time, and the entire program is gradually received, as shown in Figure 5.
b. 同时接收几个视频数据片段, 逐步接收完整个节目, 同时还可以接 收另外一组数据的某几个片段, 但需要较大的带宽和较强的处理能力, 如图 6节目 A和 B所示。  b. Receive several video data segments at the same time, gradually receive the entire program, and also receive certain segments of another set of data, but require larger bandwidth and strong processing capabilities, as shown in Figure 6 programs A and B As shown.
c. 同时接收所有视频数据片段, 同时还可以接收另外一组数据的某几 个片段, 但需要较大的带宽和较强的处理能力, 如图 6的节目 B和 C所 示。  c. Receive all video data segments at the same time, and also receive some segments of another set of data, but require larger bandwidth and strong processing capabilities, as shown in programs B and C of Figure 6.
这样拥有不同网络带宽的客户机都可以充分利用其带宽尽快接收节目。 In this way, clients with different network bandwidths can make full use of their bandwidth to receive programs as quickly as possible.
7、客户机在收到视频数据后, 对所收到的数据进行效验, 如果发现数据 有错误或遗失则用可以使用以下方法之一或结合使用以下方法进行修正: a、利用数据片段的标尺对错误或遗失的视频数据定位以单目传送的方式 要求服务器重发有错误的部分视频数据。 7. After receiving the video data, the client performs validation on the received data. If the data is found to be incorrect or missing, it can be corrected using one of the following methods or a combination of the following methods: a. Use the ruler of the data segment Positioning the wrong or missing video data in a monocular transmission mode requires the server to resend some of the video data with errors.
b、利用数据片段的标尺对错误或遗失的视频数据定位并记录下来,每隔 一定间隔(如时间、 数据量、 片段数量)以单目传送的方式要求服务器重发有 错误的部分视频数据。 b. Use the ruler of the data segment to locate and record the error or missing video data. At a certain interval (such as time, data amount, number of segments), request the server to resend Incorrect part of the video data.
C、利用数据片段的标尺对错误或遗失的视频数据定位并计算出某个多目 传送组下次循环到这一点的时间, 并记录下来, 根据时间的定位或提前一点 重新接收有错误的部分视频数据, 或者接受其前后相关部分作为冗余, 如图 C. Use the ruler of the data segment to locate the erroneous or missing video data and calculate the time when a certain multi-purpose transmission group will cycle to this point next time, and record it. According to the positioning of the time or re-accept the part with errors in advance Video data, or accept the relevant parts as redundancy, as shown in the figure
4 D所示, 也可以要求服务器用单目传送方式发送有错误的部分数据。 As shown in 4D, the server may also be required to send part of the data with errors using a monocular transmission method.
8、客户机收到正确的数据后可以将标尺去掉,将多个视频数据片段合并, 恢复这一组视频数据原有的格式,或者也可以不去掉标尺, 不将各片段合并, 而只是在使用这些视频数据时忽略 , 将各片段联合起来使用, 只要使用 效果如同使用原有的一组数据一样即可。  8. After receiving the correct data, the client can remove the ruler and merge multiple video data segments to restore the original format of this group of video data. Or you can not remove the ruler and not merge the segments. Ignore when using these video data and combine the clips together, as long as the effect is the same as using the original set of data.
9、按照上述几点就可以实现本发明的基本功能,但这样还存在一些不足 之处。 按照以上所述的基本方法虽然可以使客户机能够极大的缩短从开始接 收数据到可以开始使用数据的间隔时间, 但是客户机仍然需要等待一段时间 才能开始使用数据, 因为客户机至少要等到发送第一个数据片段的服务器循 环发送到数据片段的起点时才能接收到这组数据的起点(平均等待时间根据 数据片段的大小而定,数据片段越小平均等待时间越小,平均等待时间 =发送 这一片段数据所用时间的 1 /2)。 在本例子中客户机最多需要等待 5分钟, 平 均等待时间 2分 30秒(当然在这段时间内客户机可以可以浏览其他网上内容 或观看事先存储在客户机中的广告)。 改进:  9. The basic functions of the present invention can be realized according to the above points, but there are still some shortcomings. Although the basic method described above can enable the client to greatly shorten the interval from when data is received to when it can be used, the client still needs to wait for a period of time to start using the data, because the client must wait at least until it sends The server of the first data segment can only receive the start of this set of data when it is sent to the beginning of the data segment in a loop. (The average waiting time depends on the size of the data segment. The smaller the data segment, the smaller the average waiting time. 1/2 of the time this piece of data takes. In this example, the client needs to wait up to 5 minutes, with an average waiting time of 2 minutes and 30 seconds (of course, during this time, the client can browse other online content or watch advertisements stored in the client in advance). Improve:
1)、 允许服务器将一组数据的第一片段或前面数个片段以单目传送的方 式传送同时从第二段开始的数据允许以多目传送方式传输, 如图 7所示, 由 于客户机在以单目传送方式下载数据时, 可以及时地从数据的起始处开始使 用数据, 所以在客户机下载需要即时从起始处开始使用的数据时, 服务器允 许客户机以单目传送下载开始的一个片段或几个片段, 一边下载一边使用第 一个片段的数据, 同时以多目传送下载第二个片段或后几段。 客户机在接收 并使用完单目传送来的第一个片段的数据的时间内, 足以完成将第二段数据 以多目传送的方式下载到客户机, 在使用这一段数据的同时则可以继续用此 方式下载后续的片段。这样客户机点播了一个节目后将可以立刻观看此节目, 但是增加了服务器的网络负载, 如果不将目录信息的负载计算在内, 服务器 平均可以支持 810个收看节目的客户机。 1) The server is allowed to transmit the first segment or the first several segments of a group of data in a monocular transmission mode while the data starting from the second segment is allowed to be transmitted in a multi-mode transmission mode, as shown in FIG. 7, because the client When downloading data in a single transmission mode, the data can be used from the beginning of the data in a timely manner, so when the client downloads the data that needs to be used immediately from the beginning, the server allows the client to start the download in a single transmission. One clip or several clips, while using the data of the first clip while downloading, and downloading the second clip or the last several clips at the same time. The time for the client to receive and use the data of the first segment transmitted by the monocular is sufficient to download the second segment of data to the client in a multi-mode transmission mode. While using this segment of data, it can continue Use this Way to download subsequent clips. In this way, the client can immediately watch the program after ordering it, but it increases the network load of the server. If the load of the directory information is not included, the server can support an average of 810 clients watching the program.
2)、 允许服务器将一组数据的第一片段或前面数个片段以单目传送的方 式传送同时允许所有的数据片段以多目传送方式下载, 如图 8所示, 由于客 户机在以单目传送方式下载数据时, 可以及时地从数据的起始处开始开始使 用数据, 所以在下载需要即时从起始处开始使用的数据时, 允许以单目传送 下载开始的一个片段或几个片段, 一边下载一边使用第一个片段的数椐, 同 时以多目传送下载第一个片段和其后的数据片段。 客户机在以单目传送方式 下载并使用第一片段数据的同时也以多目传送的方式下载并存储第一片段数 据, 在绝大多数的情况下客户机开始接收数据时服务器是处于正在发送某一 数据片段期间, 所以客户机接收的起点并非此数据片段的起点, 客户机可以 以此接收起点作为界线, 当客户机用单目传送方式接收到这一接收起点后便 可以停止用单目传送方式接收数据, 因为客户机已经用多目传送的方式接收 了接收起点以后的部分数据并将其存储在存储器中, 这样客户机点播了一个 节目后将可以立刻观看此节目, 但是所造成的网络负载比起前一种方式减少 了一半,如果不将目录信息的负载计算在内,服务器平均可以支持 1620个收 看节目的客户机。  2) Allow the server to transmit the first fragment or the first few fragments of a group of data in a monocular transmission mode while allowing all data fragments to be downloaded in a multi-eye transmission mode, as shown in FIG. 8, because the client is When downloading data using the eye transfer method, the data can be used from the beginning of the data in a timely manner, so when downloading the data that needs to be used immediately from the beginning, it is allowed to send a fragment or several fragments of the download in a single eye. Use the data of the first clip while downloading, and download the first clip and the subsequent data clips in multiple transmissions. The client downloads and uses the first segment of data in a monocular transmission mode and also downloads and stores the first segment of data in a multicast transmission mode. In most cases, the server is sending data when the client starts receiving data. During a certain data segment, the starting point of the client's reception is not the starting point of this data segment. The client can use this receiving starting point as a boundary. When the client receives this receiving starting point by using the monocular transmission, the client can stop using the monocular. The data is received in the transmission mode, because the client has received part of the data after the start of the reception in the manner of multicast transmission and stored it in the memory, so that the client can immediately watch the program after ordering a program, but the resulting The network load is reduced by half compared to the previous method. If the load of the directory information is not included, the server can support an average of 1620 clients watching the program.
3)、 服务器在向外传送第一片段或前面数个片段时, 每段都用几个多目 传送同时其起始点的时间相互交错开,以便于客户机选择(这一选择也可以由 服务器帮客户机作出)一个多目传送组能够更快地循环下载到电影节目的起 始点, 使客户能够尽早开始观看电影节目, 如图 10 所示, 服务器将节目 A 的第一段视频数据使用三个多目传送組(a)、 (b)、 (c)、传送, 如果客户机用 多目传送组(a)下载数据, 则可以从 U时间点开始使用数据; 如果客户机用 多目传送组(b)下载数据, 则可以从 t l时间点开始使用数据; 如果客户机用 多目传送组(c)下载数据, 则可以从 t 3时间点开始使用数据; 如果客户机使 用合适的多目传送组则能尽早开始从头使用数据。 在图 5中示出了某客户机 使用了多目传送组(b) , 则能尽早的在 tl时间点开始使用数据。 如果其他客 户机在另外一个时间开始下载, 则可能选择另外一个多目传送组才能尽早开 始使用数据。经过这样改进后客户机最多需要等待 1分 40秒,平均等待时间 50秒, 这种方式允许 100, 000以上的客户机点播节目, 但服务器只增加了 4M的网络负载。 如果按这种方式分别使用 20个多目传送组传送第 1片段, 则客户机最多需要等待 15秒,平均等待时间 7. 5秒,服务器增加 3 的网络 负载, 即服务器总的负载约为 48M。 3) When the server transmits the first segment or the previous several segments to the outside, each segment uses several multiple transmissions and the time of its starting point is staggered with each other, so that the client can choose (this option can also be selected by the server Help the client) A multi-eye transmission group can download the movie program to the starting point of the loop more quickly, so that the client can start watching the movie program as soon as possible. As shown in FIG. 10, the server uses the first piece of video data of program A for three times. Multicast transmission group (a), (b), (c), transmission. If the client downloads data using the multicast transmission group (a), the data can be used from the U point of time; if the client uses multicast transmission If group (b) downloads data, the data can be used from time t1; if the client downloads data using multicast (c), then data can be used from time t3; if the client uses a suitable multi-mesh The transmission group can start using data from scratch as early as possible. FIG. 5 shows that a client uses a multicast group (b), and data can be used as early as possible at t1. If other customers If the client computer starts downloading at another time, you may choose another multicast group to start using the data as soon as possible. After this improvement, the client needs to wait at most 1 minute and 40 seconds, with an average waiting time of 50 seconds. This method allows more than 100,000 clients to order programs, but the server only increases the network load by 4M. If the first segment is transmitted using 20 multicast groups in this way, the client needs to wait up to 15 seconds, with an average waiting time of 7.5 seconds, and the server adds 3 network loads, that is, the total server load is about 48M .
4)、 也可以综合运用以上几点, 既能使客户机即时观看节目, 又不太多 增加服务器的负载,如图 12所示,服务器以多个多目传送組传送 A和 B两组 数据, 其中 A组数据被分割为 5个数据片段, A組数据的第一个片段用三个 多目传送组传送并且循环到起始点的时间相互交错, 并且以单目传送方式向 客户机传送第一片段的一部分。 客户机即利用单目传送也使用多目传送接收 数据, 在以多目传送方式接收数据时按照多目传送组循环到起始点之处开始 接收。 从图中可以看出, 由于选择了多目传送组 C可以将单目传送的数据量 减至最小, 对于面向大量客户机的服务器来说极大地减少了服务器的流量。  4). You can also use the above points in a comprehensive way, so that the client can watch the program in real time without increasing the load on the server. As shown in Figure 12, the server transmits two sets of data A and B in multiple multicast transmission groups. Group A data is divided into 5 data segments. The first segment of Group A data is transmitted using three multicast transmission groups and the time to cycle to the starting point is interleaved with each other. Part of a fragment. The client receives the data using both monocular transmission and multicast transmission. When receiving data in a multicast transmission mode, the client starts to receive data according to the multicast transmission group to the starting point. It can be seen from the figure that because the multi-eye transmission group C is selected, the amount of data transmitted by a single eye can be minimized, and the server traffic for a large number of clients is greatly reduced.
5)、 当第一个数据片段处于下载过程中时或当前面一段数据已经使用完 但其后的数据片段的下载没有跟上时, 可以允许客户机使用已经事先下载的 其他数据, 例如播放广告, 在这个期间下载数据后继续使用。 5). When the first data segment is in the downloading process or the previous data segment has been used but the subsequent data segment download has not kept up, the client can be allowed to use other data that has been downloaded in advance, such as playing an advertisement Continue to use after downloading data during this period.
考虑到地理距离或国家或行政区划上的原因, 可以在某些地方设置代理 服务器。 代理服务器既能够以本方法中的接收方法或其他方法从服务器或其 他代理服务器取得数据, 又能够以本发明中的传送方法向客户机发送数据。  Considering geographical distance or national or administrative divisions, proxy servers can be set up in some places. The proxy server can obtain data from the server or other proxy server by the receiving method or other methods in this method, and can also send data to the client by the transmitting method in the present invention.
应当理解的是, 对于本领域普通技术人员来说, 可以根据本发明的发明 构思及其技术方案, 作出各种可能的改变或替换, 而所有这些改变或替换都 应属于本发明后附权利要求的保护范围。  It should be understood that for a person of ordinary skill in the art, various possible changes or substitutions can be made according to the inventive concept and technical solution of the present invention, and all these changes or substitutions should belong to the appended claims of the present invention. Scope of protection.

Claims

权利要求书 Claim
1、一种在数据网络中利用多目传送循环传送数据的方法, 其特征在于其 发送数据的服务器采取如下步骤: 1. A method for transmitting data in a cyclic manner using a multi-eye transmission in a data network, characterized in that the server transmitting the data takes the following steps:
a、 服务器将待传送的至少一段带 "标尺" 的数据存储于其存储器中; b、 服务器以单目传送或多目传送的方式提供有关待传送数据的目录信 a. The server stores at least a piece of data with a "ruler" in its memory to be transmitted; b. The server provides a catalog message about the data to be transmitted in a single-shot or multi-shot transmission mode.
<¾ , <¾,
c、 服务器将需要传送的数据通过网络分别向相应的多目传送组传送; d、在传送数据期间,服务器对每个多目传送组传送完毕后再次从头开始 传送, 如此循环往复; 或者当有至少一个客户机在接收数据时才循环传送, 否则便终止循环, 直到再次有至少一个客户机需要接收数据时才再次循环传 送数据。  c. The server transmits the data to be transmitted to the corresponding multicast group through the network respectively. d. During the data transmission period, the server retransmits from the beginning again after the transmission of each multicast group is completed. At least one client only transmits data cyclically when receiving data, otherwise the loop is terminated, and data is not transmitted again until at least one client needs to receive data again.
2、 根据权利要求 1所述的方法, 其特征在于所述步骤 a还包括: al、 服务器将待发送的一组数据的若干带 "标尺" 的数据片段存储于其 存储器中,并分别向至少一个多目传送组传送。  2. The method according to claim 1, characterized in that the step a further comprises: a. The server stores a plurality of data segments with a "ruler" in a group of data to be transmitted in its memory, and respectively sends the data segments to at least A multicast transmission group.
3、 根据权利要求 1所述的方法, 其特征在于: 服务器将至少一段带 "标 尺" 的数据分别向多个多目传送组传送, 并且每个多目传送循环到此段数据 的起始点时的时间是相互交错开的。  3. The method according to claim 1, characterized in that: the server transmits at least one piece of data with a "ruler" to a plurality of multicast transmission groups, and each multicast transmission cycle to the starting point of the data in this segment The times are intertwined.
4、根据权利要求 1或 2或 3所述的方法, 其特征在于: 服务器在传送一 组被分割成若干带 "标尺" 的数据片段时, 将该组数据的第一个数据片段或 前几个数据片段分别向多个多目传送组传送, 并且传送同一个数据片段的多 目传送组循环到此段数据的起始点时的时间是相互交错开的。  4. The method according to claim 1 or 2 or 3, characterized in that: when the server transmits a group of data fragments that are divided into a number of "scales", the server transmits the first data fragment or the first few data of the group of data Each data segment is transmitted to multiple multicast transmission groups, and the time when the multicast transmission group transmitting the same data segment is cycled to the start point of this segment of data is mutually staggered.
5、根据权利要求 1或 2或 3所述的方法, 其特征在于: 在多目传送某段 数据期间, 服务器能够响应客户机的要求以单目传送方式向其传送此段数据 中的一部分或全部。  5. The method according to claim 1 or 2 or 3, characterized in that: during the multicast transmission of a certain piece of data, the server can respond to the request of the client by transmitting a part of this piece of data to the client in a monocular manner or All.
6、 根据权利要求 1所述的方法, 其特征在于: 所述的数据的 "标尺" 用 数据包的顺序号作为标尺刻度。  6. The method according to claim 1, wherein: the "scale" of the data uses the sequence number of the data packet as the scale scale.
7、根据权利要求 1所述的方法, 其特征在于: 当将待传送的一段数据是 被分割后的若干小文件时, 所述的数据的 "标尺" 以所述的若干小文件作为 标尺刻度。 7. The method according to claim 1, wherein: when a piece of data to be transmitted is When a number of small files are divided, the "scale" of the data uses the number of small files as a scale.
8、 根据权利要求 1所述的方法, 其特征在于: 所述的数据的 "标尺" 利 用某一数据点到数据片段的首或尾的字节数或位数作为标尺。  8. The method according to claim 1, wherein: the "scale" of the data uses the number of bytes or digits from a certain data point to the beginning or end of a data segment as a scale.
9、一种数据网络中利用多目传送循环接收数据的方法, 其特征在于接收 数据的客户机采取如下步骤:  9. A method for receiving data in a data network by using a multiplex transmission loop, characterized in that the client receiving the data takes the following steps:
a、 需要接收某段数据的客户机,从多目传送组或直接从服务器荻取与这 组数据有关的目录信息;  a. The client that needs to receive a piece of data fetches the directory information related to this set of data from the multicast transmission group or directly from the server;
b、客户机才艮据目录信息,从某一个或某几个传送此段数据的多目传送组 接收此段数据, 记录下开始接收的 "接收起点"; 或并且要求服务器以单目传 送方式向其传送数据;  b. According to the directory information, the client receives this piece of data from one or several multicast transmission groups that transmit this piece of data, and records the "reception point" at which it starts to receive; or requires the server to use the monocular transmission mode. Transfer data to it;
c、 当客户机从某个多目传送组或以单目传送接收的数据达到或超过此 段数据的某个相应 "接收起点" 时, 停止从此多目传送组或单目传送接收数 据;  c. When the client receives data from a multicast transmission group or a single transmission, the client stops receiving data from the multicast transmission group or a single transmission when the data reaches or exceeds a corresponding "reception start point" of the data;
d、 如果 "接收起点" 并非此段数据的起始点, 则将所接收到的同一段数 据在 "接收起点" 处进行连接。  d. If the "receiving start point" is not the starting point of this section of data, connect the same piece of data received at the "receiving start point".
10、 根据权利要求 9所述的方法, 其特征在于: 当接收的多段数据为一 组数据被分割成若干数据片段后的各个数据片段时, 客户机同时接收至少一 段数据, 并且连接相邻的数据片段, 或使之能够成为一个整体来使用。  10. The method according to claim 9, characterized in that: when the received multiple pieces of data are each data piece after a set of data is divided into a plurality of data pieces, the client receives at least one piece of data at the same time and connects adjacent Data fragments, or to make them available as a whole.
11、 根据权利要求 9所述的方法, 其特征在于: 所述客户机根据循环传 送的数据循环到此段数据的起始点时刻 , 以此段数据的起始点或结束点作为 11. The method according to claim 9, characterized in that: the client loops to the start time of the data segment according to the data transmitted cyclically, and uses the start point or the end point of the data segment as the
"接收起点", 从而接收完此段数据后不必将其在接收起点处进行连接。 "Receiving origin", so that after receiving this piece of data, it is not necessary to connect it at the receiving origin.
12、 根据权利要求 9所述的方法, 其特征在于: 接收数据的客户机对已 经接收的数据进行校验, 如果发现数据有错误或遗失, 则将有错误或遗失的 数据片段用所述的 "标尺" 刻度定位, 并根据目录信息计算出某个多目传送 组下次循环到此刻度的时间, 并适时加入此传送组接收数据以修正或补充有 错误或遗失的部分数据。  12. The method according to claim 9, characterized in that: the client receiving the data verifies the data that has been received, and if the data is found to be wrong or missing, the wrong or missing data fragments are used by the The "ruler" is used to locate the scale, and calculates the time when a multi-eye transmission group will cycle to this scale next time according to the directory information, and joins the transmission group to receive data in time to correct or supplement some of the errors or missing data.
1 3、 根据权利要求 9所述的方法, 其特征在于: 接收数据的客户机对已 经接收的数据进行校验, 如果发现数据有错误或遗失, 则将有错误或遗失的 数据片段用其 "标尺" 定位, 然后请求服务器单目发送所述的有错误或遗失 的部分数据。 1. The method according to claim 9, characterized in that: the client receiving the data has After the received data is verified, if the data is found to be wrong or missing, the wrong or missing data segment is positioned with its "ruler", and then the server is requested to unilaterally send the part of the data with errors or missing.
14、 一种实现利用多目传送循环传输数据的服务器系统, 包括存储器、 中央处理器、 网络适配器, 所述服务器用于发送数据, 其特征在于:  14. A server system that realizes cyclic transmission of data using multi-eye transmission, including a memory, a central processing unit, and a network adapter. The server is used to send data, and is characterized by:
a、 服务器将待传送的至少一段带 "标尺" 的数据存储于其存储器中; b、 服务器以单目传送或多目传送的方式提供有关待传送数据的目录信 息;  a. The server stores at least a piece of data with a "ruler" to be transmitted in its memory; b. The server provides directory information about the data to be transmitted in a single-shot or multi-shot transmission manner;
c、 服务器将需要传送的数据通过网络分别向相应的的多目传送组传送; d、在传送数据期间, 服务器对每个多目传送组传送完毕后再次从头开始 传送, 如此循环往复; 或者当有至少一个客户机在接收数据时才循环传送, 否则便终止循环, 直到再次有至少一个客户机需要接收数据时才再次循环传 送数据。  c. The server transmits the data to be transmitted to the corresponding multicast group through the network respectively. d. During the data transmission period, the server retransmits from the beginning again after the transmission of each multicast group is completed. At least one client transmits data cyclically when receiving data, otherwise the loop is terminated, and data is transmitted again until at least one client needs to receive data again.
15、 一种实现利用多目传送循环传输数据的客户机系统, 包括存储器、 中央处理器、 网络适配器, 所述客户机系统用于接收数据, 其特征在于: a、 需要接收某段数据的客户机,从多目传送组或直接从服务器获取与这 组数据有关的目录信息;  15. A client system that realizes cyclic transmission of data using multi-eye transmission, including a memory, a central processing unit, and a network adapter. The client system is used to receive data, and is characterized by: a. A client that needs to receive a certain piece of data To obtain directory information related to this group of data from the multicast group or directly from the server;
b、客户机根据目录信息,从某一个或某几个传送此段数据的多目传送组 接收此段数据, 记录下开始接收的 "接收起点"; 或并且要求服务器以单目传 送方式向其传送数据;  b. According to the directory information, the client receives this piece of data from one or several multicast transmission groups that transmit this piece of data, and records the "receiving start point" from which it starts to receive; or requires the server to send it to it in a single-shot manner. Transmit data
c、 当客户机从某个多目传送组或以单目传送接收的数据达到或超过此 段数据的某个相应 "接收起点" 时, 停止从此多目传送组或单目传送接收数 据;  c. When the client receives data from a multicast transmission group or a single transmission, the client stops receiving data from the multicast transmission group or a single transmission when the data reaches or exceeds a corresponding "reception start point" of the data;
d、 如果 "接收起点" 并非此段数据的起始点, 则将所接收到的同一段数 据在 "接收起点" 处进行连接。  d. If the "receiving start point" is not the starting point of this section of data, connect the same piece of data received at the "receiving start point".
16、 根据权利要求 15所述的客户机系统, 其特征在于, 当接收的多段数 据为一组数据被分割成若干数据片段后的各个数据片段时, 所述客户机系统 同时接收至少一段数据, 并且连接相邻的数据片段, 或使之能够成为一个整 体来使用。 16. The client system according to claim 15, wherein, when the received multiple pieces of data are each data piece after a set of data is divided into a plurality of data pieces, the client system receives at least one piece of data at the same time, And connect adjacent pieces of data, or make it a whole Body to use.
17、 根据权利要求 15所述的客户机系统, 其特征在于, 所述客户机系统 根据循环传送的数据循环到此段数据的起始点时刻, 以此段数据的起始点或 连接。  17. The client system according to claim 15, wherein the client system loops to the start time of this piece of data according to the data transmitted cyclically, and uses the start point or connection of this piece of data.
PCT/CN2002/000184 2001-03-22 2002-03-21 Method and system for multicasing cycle transmission data in data network WO2002078263A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN 01111023 CN1122390C (en) 2001-03-22 2001-03-22 Multiplex circular data transmission method and system for data network
CN01111023.6 2001-03-22

Publications (1)

Publication Number Publication Date
WO2002078263A1 true WO2002078263A1 (en) 2002-10-03

Family

ID=4658883

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2002/000184 WO2002078263A1 (en) 2001-03-22 2002-03-21 Method and system for multicasing cycle transmission data in data network

Country Status (2)

Country Link
CN (1) CN1122390C (en)
WO (1) WO2002078263A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6981195B2 (en) * 2002-08-02 2005-12-27 Analog Devices, Inc. Cyclic redundancy check with efficient re-computation of error detection code

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0409578A1 (en) * 1989-07-19 1991-01-23 BRITISH TELECOMMUNICATIONS public limited company Data communication method and system with cyclic sequence of acknowledgements
EP1052814A2 (en) * 1999-05-14 2000-11-15 Nortel Networks Limited Multicast scheduling for a network device
US6256673B1 (en) * 1998-12-17 2001-07-03 Intel Corp. Cyclic multicasting or asynchronous broadcasting of computer files

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0409578A1 (en) * 1989-07-19 1991-01-23 BRITISH TELECOMMUNICATIONS public limited company Data communication method and system with cyclic sequence of acknowledgements
US6256673B1 (en) * 1998-12-17 2001-07-03 Intel Corp. Cyclic multicasting or asynchronous broadcasting of computer files
EP1052814A2 (en) * 1999-05-14 2000-11-15 Nortel Networks Limited Multicast scheduling for a network device

Also Published As

Publication number Publication date
CN1312633A (en) 2001-09-12
CN1122390C (en) 2003-09-24

Similar Documents

Publication Publication Date Title
US9628527B2 (en) System and method for delivering content in a unicast/multicast manner
US10205971B2 (en) Media data live broadcast method, device, and system
CN1126344C (en) Distributed internet protocol-based real-time multimedia streaming architecture
US7082142B1 (en) System and method for delivering content in a unicast/multicast manner
JP4937654B2 (en) Multicast distribution device for channel switching, multicast distribution system, and multicast distribution method for channel switching
Furht et al. Multimedia broadcasting over the Internet
EP2472799B1 (en) Method, apparatus and system for rapid acquisition of multicast realtime transport protocol sessions
McCanne Scalable multimedia communication using IP multicast and lightweight sessions
WO2013143912A1 (en) Conference system
US7143179B2 (en) Method and system for parallel data transmission on demand to an unlimited number of clients without acknowledgment and on the basis of constant data availability
EP2445162B1 (en) Method For Adaptive Streaming
EP1675318A1 (en) Media stream multicast distribution method and apparatus
US8869217B2 (en) Media files delivery system and method
WO2002056549A1 (en) Communication device and communication method
Maxemchuk et al. A cooperative packet recovery protocol for multicast video
McCanne Scalable multimedia communication with internet multicast, light-weight sessions, and the mbone
WO2002078263A1 (en) Method and system for multicasing cycle transmission data in data network
Furht et al. IP simulcast: A new technique for multimedia broadcasting over the Internet
CN102740131B (en) Based on the IPTV method and system of RTP
KR100779038B1 (en) Iptv system and channel establishing method using multi-channel streaming server
WO2009026421A1 (en) Apparatus, system, and method for video delivery using dual multicast streams with one being delayed
Zimmerman et al. Retransmission-based error control in a many-to-many client-server environment
KR100616250B1 (en) System And Method For Transmitting The Data From Server To Clients In The Internet Network
JP4943188B2 (en) Multicast delivery apparatus, multicast delivery program, and recording medium
US20110093611A1 (en) Network unit, a central distribution control unit and a computer program product

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US UZ VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 69(1) EPC

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP