Method and communication device for transmitting data

Sending live broadcast data packets through multicast solves the problem of low transmission resource utilization in network live broadcast, achieves efficient resource utilization and reduces signaling overhead.

CN116055231BActive Publication Date: 2025-09-26HUAWEI TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202111264843.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-10-28
Publication Date
2025-09-26
Estimated Expiration
2041-10-28

Smart Images

  • Figure CN116055231B_ABST
    Figure CN116055231B_ABST
Patent Text Reader

Abstract

The present application provides a method and communication device for transmitting data. The method may include: a communication device obtains a first live data packet and a second live data packet of a first live service, the first live data packet corresponds to a first terminal, the second live data packet corresponds to a second terminal, and the first live data packet and the second live data packet have the same effective payload; the communication device uses a multicast method to send a third live data packet to the first terminal and the second terminal based on the first live data packet and the second live data packet, and the third live data packet has the same effective payload as the second live data packet. Through this method, the communication device can use a multicast method to send live data packets with the same effective payload of a live service to multiple terminals using the live service, which can save transmission resources and help improve the utilization of transmission resources.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of communications, and more specifically, to a method and a communication device for transmitting data. Background Art

[0002] Live streaming can broadcast live content online, including product demonstrations, related meetings, background briefings, solution evaluations, online surveys, interviews, and online training. It can also broadcast government affairs conferences, public hearings, live court trials, civil service exam training, product launches, corporate and industry annual meetings, and exhibitions, which are difficult to broadcast on television. Live streaming's attractive presentation format, rich content, strong interactivity, unrestricted geographical coverage, and high degree of autonomy have led to its increasing widespread application.

[0003] As live streaming becomes more and more popular, limited transmission resources have become an important factor affecting the effectiveness of live streaming. Therefore, how to improve the utilization rate of transmission resources for live streaming has become an urgent problem to be solved. Summary of the Invention

[0004] The present application provides a method and a communication device for transmitting data, which can improve the utilization rate of transmission resources for live broadcasting on the Internet.

[0005] In a first aspect, the present application provides a method for transmitting data, the method comprising: a communication device obtains a first live data packet and a second live data packet of a first live service, the first live data packet corresponds to a first terminal, the second live data packet corresponds to a second terminal, and the first live data packet and the second live data packet have the same effective payload; the communication device sends a third live data packet to the first terminal and the second terminal in a multicast manner based on the first live data packet and the second live data packet, and the third live data packet has the same effective payload as the second live data packet.

[0006] Through the technical solution of this application, a communication device can use multicast to send live data packets with the same payload to multiple terminals using the live service. Compared to using unicast to send live data packets to multiple terminals separately, this can save transmission resources and help improve transmission resource utilization.

[0007] In combination with the first aspect, in a possible implementation, the method also includes: the communication device obtains a fourth live broadcast data packet of the first live broadcast service, the fourth live broadcast data packet corresponds to the third terminal, and the fourth live broadcast data packet has the same effective payload as the second live broadcast data packet; the communication device sends a third live broadcast data packet to the first terminal and the second terminal in a multicast manner based on the first live broadcast data packet and the second live broadcast data packet, including: the communication device sends the third live broadcast data packet to the first terminal, the second terminal and the third terminal in the multicast manner based on the first live broadcast data packet, the second live broadcast data packet and the fourth live broadcast data packet.

[0008] It can be understood that the technical solution of the present application can realize the transmission of live broadcast data packets of the same live broadcast service to two or more terminals in a multicast manner.

[0009] In combination with the first aspect or any one of its implementations, in another possible implementation, the header of the third live data packet includes at least one of the following fields: destination port number, destination address, sequence number, confirmation number, transport layer checksum, or network layer header checksum.

[0010] Optionally, the destination address is a destination Internet protocol (IP) address, the transport layer checksum is a transmission control protocol (TCP) checksum, and the network layer header checksum is an IP header checksum.

[0011] The destination port number of the third live broadcast data packet is mapped to the destination port number of the target live broadcast data packet. The destination port number of the third live broadcast data packet is the destination port number used when transmitting the live broadcast data packet of the first live broadcast service via the multicast method. The destination port number of the target live broadcast data packet is the port number of the terminal receiving the target live broadcast data packet. Alternatively, the communication device determines the destination port number of the third live broadcast data packet based on the destination port number of the target live broadcast data packet and the mapping relationship between the destination port number of the target live broadcast data packet and the destination port number of the third live broadcast data packet.

[0012] The destination address of the third live broadcast data packet is mapped to the destination address of the target live broadcast data packet. The destination address of the third live broadcast data packet is the destination address used when transmitting the live broadcast data packet of the first live broadcast service via the multicast method. The destination address of the target live broadcast data packet is the address of the terminal receiving the target live broadcast data packet. Alternatively, the communication device determines the destination address of the third live broadcast data packet based on the destination address of the target live broadcast data packet and the mapping relationship between the destination address of the target live broadcast data packet and the destination address of the third live broadcast data packet.

[0013] The sequence number of the third live data packet is determined based on the sequence number of the target live data packet, a first initial sequence number, and a second initial sequence number. The first initial sequence number is the initial sequence number used when sending the live data packet of the first live service to the terminal corresponding to the target live data packet in unicast mode, and the second initial sequence number is the initial sequence number used when transmitting the live data packet of the first live service in multicast mode. In another description, the communication device determines the sequence number of the third live data packet based on the sequence number of the target live data packet, the first initial sequence number, and the second initial sequence number. In yet another description, the sequence number of the target live data packet, the first initial sequence number, and the second initial sequence number are used to determine the sequence number of the third live data packet.

[0014] The confirmation number of the third live data packet is determined based on the confirmation number of the target live data packet, a first initial confirmation number, and a second initial confirmation number. The first initial confirmation number is the initial confirmation number used when sending the live data packet of the first live service to the terminal corresponding to the target live data packet using the unicast method, and the second initial confirmation number is the initial confirmation number used when transmitting the live data packet of the first live service using the multicast method. Alternatively, the communication device determines the confirmation number of the third live data packet based on the confirmation number of the target live data packet, the first initial confirmation number, and the second initial confirmation number. In yet another alternative, the confirmation number of the target live data packet, the first initial confirmation number, and the second initial confirmation number are used to determine the confirmation number of the third live data packet.

[0015] The transport layer checksum of the third live broadcast data packet is determined based on the effective payload of the third live broadcast data packet and other fields in the transport layer header of the third live broadcast data packet except the transport layer checksum, or is determined based on other fields in the transport layer header of the third live broadcast data packet except the transport layer checksum, and the transport layer header of the target live broadcast data packet. Alternatively, the communication device determines the transport layer checksum of the third live broadcast data packet based on the effective payload of the third live broadcast data packet and other fields in the transport layer header of the third live broadcast data packet except the transport layer checksum, or determines the transport layer checksum of the third live broadcast data packet based on other fields in the transport layer header of the third live broadcast data packet except the transport layer checksum, and the transport layer header of the target live broadcast data packet.

[0016] The network layer header checksum of the third live data packet is determined based on other fields in the network layer header of the third live data packet except the network layer header checksum, or is determined based on other fields in the network layer header of the third live data packet except the network layer header checksum and the network layer header of the target live data packet. Alternatively, the communication device determines the network layer header checksum of the third live data packet based on other fields in the network layer header of the third live data packet except the network layer header checksum, or determines the network layer header checksum of the third live data packet based on other fields in the network layer header of the third live data packet except the network layer header checksum and the network layer header of the target live data packet.

[0017] The target live data packet is one of multiple live data packets of the first live service, the multiple live data packets have the same effective payload, and the multiple live data packets include the first live data packet and the second live data packet.

[0018] In the above technical solution, the communication device obtains a live data packet transmitted in a multicast manner by modifying or replacing the header of the target live data packet, and can send live data packets with the same effective payload of the live service to multiple terminals using the live service in a multicast manner, which can save transmission resources and help improve the utilization of transmission resources.

[0019] In combination with the first aspect or any one of its implementations, in another possible implementation, the serial number of the third live broadcast data packet satisfies: S_n=S2_n–S2_0+S_0; or, the confirmation number of the third live broadcast data packet satisfies: A_n=A2_n–A2_0+A_0; wherein, S_n is the serial number of the third live broadcast data packet, S2_n is the serial number of the target live broadcast data packet, S2_0 is the first initial sequence number, S_0 is the second initial sequence number, A_n is the confirmation number of the third live broadcast data packet, A2_n is the confirmation number of the target live broadcast data packet, A2_0 is the first initial confirmation number, and A_0 is the second initial confirmation number.

[0020] In the above technical solution, the sequence number of the third live data packet is obtained by calculating the sequence number delta based on the first initial sequence number and the sequence number of the target live data packet, and then adding the delta to the second initial sequence number. The sequence number delta corresponding to multiple terminals requesting the same live service is the same. In this way, as long as the terminal side stores its own first and second initial sequence numbers, it can restore the third live data packet to the original live data packet.

[0021] In combination with the first aspect or any one of its implementations, in another possible implementation, the communication device is an application function network element, and the method further includes: the communication device sends first information to the session management function network element, and the first information is used to request configuration of transmission resources for transmitting the third live data packet.

[0022] Optionally, the method further includes: the communication device receiving second information from the session management function network element, where the second information is used to indicate that the transmission resource configuration is completed.

[0023] In the above technical aspect, the communication device requests to configure the transmission resources of the third live data packet. In this way, the communication device can request to configure the corresponding transmission resources only when it needs to transmit the live data packet via multicast, which can reduce signaling overhead and transmission resource waste.

[0024] In combination with the first aspect or any one of its implementations, in another possible implementation, the second information includes aggregation information; wherein the aggregation information includes at least one of the following information: an initial sequence number used when transmitting the live data packet of the first live service using the multicast method, an initial confirmation number used when transmitting the live data packet of the first live service using the multicast method, a destination address used when transmitting the live data packet of the first live service using the multicast method, or a destination port number used when transmitting the live data packet of the first live service using the multicast method.

[0025] In the present application, the aggregate information may be generated by the session management function network element and then sent to the application function network element, or may be pre-configured in the application function network element. When the aggregate information is generated by the session management function network element, the session management function network element may send the aggregate information to the application function network element by carrying the aggregate information in the second information.

[0026] In combination with the first aspect or any one of its implementations, in another possible implementation, the method further includes: the communication device sends third information to the first terminal, the third information including at least one of the following information: aggregation information, an identifier of the first terminal, or initial information corresponding to the first terminal; wherein the aggregation information includes at least one of the following information: an initial sequence number used when transmitting the live data packet of the first live service in the multicast manner, an initial confirmation number used when transmitting the live data packet of the first live service in the multicast manner, a destination address used when transmitting the live data packet of the first live service in the multicast manner, or a destination port number used when transmitting the live data packet of the first live service in the multicast manner; the initial information includes at least one of the following information: an initial sequence number used when sending the live data packet of the first live service to the first terminal in a unicast manner, or an initial confirmation number used when sending the live data packet of the first live service to the first terminal in a unicast manner.

[0027] In the above technical solution, the application function network element sends the aggregate information and the initial information of the first terminal to the first terminal, so that the first terminal does not need to keep the aggregate information all the time, and does not need to obtain the initial information of the first terminal from the transport layer or network layer of the first terminal, which helps to reduce the implementation difficulty of the terminal.

[0028] In combination with the first aspect or any one of its implementations, in another possible implementation, the communication device is a user plane function network element, and the method further includes: the communication device receives fourth information from the session management function network element, the fourth information includes a detection condition for a data packet, the detection condition includes: the source address is the address of the application server of the first live broadcast service, the source port number is the port number of the first live broadcast service, the confirmation flag is 1, and the synchronization flag is 1; the communication device detects at least one data packet based on the fourth information, and the at least one data packet meets the detection condition; the communication device sends information about the at least one data packet to the session management function network element.

[0029] The information of at least one data packet is used to trigger the session management function network element to configure transmission resources for transmitting the live data packet of the first live service.

[0030] In the above technical solution, the user plane functional network element transmits the live data packets of the first live broadcast service in a multicast manner, and the user plane functional network element detects the data packets according to the detection conditions of the data packets and reports the information of the detected data packets, so that the session management functional network element can configure the transmission resources for transmitting the live data packets of the first live broadcast service in a multicast manner.

[0031] Optionally, the information of the at least one data packet includes at least one initial information, and the initial information includes at least one of the following information: an initial sequence number used to send the live data packet of the first live service to the terminal corresponding to the initial information in a unicast manner, or an initial confirmation number used to send the live data packet of the first live service to the terminal corresponding to the initial information in a unicast manner.

[0032] In the above technical solution, the information of at least one data packet includes at least one initial information. In other words, the user plane function network element sends the initial information to the session management function network element, so that the session management function network element sends it to the terminal. In this way, the terminal does not need to obtain the initial information from the transport layer or network layer of the terminal, which helps to reduce the implementation difficulty of the terminal.

[0033] In combination with the first aspect or any one of its implementations, in another possible implementation, before the communication device sends information about the at least one data packet to the session management function network element, the method further includes: the communication device determines that the number of the at least one data packet reaches a preset threshold.

[0034] In combination with the first aspect or any one of its implementations, in another possible implementation, the method further includes: the communication device receives fifth information, and the fifth information is used to trigger the communication device to transmit the live data packet of the first live service in a multicast manner.

[0035] In combination with the first aspect or any one of its implementations, in another possible implementation, the fifth information includes aggregation information; wherein, the aggregation information includes at least one of the following information: an initial sequence number used when transmitting the live data packet of the first live broadcast service using the multicast method, an initial confirmation number used when transmitting the live data packet of the first live broadcast service using the multicast method, a destination address used when transmitting the live data packet of the first live broadcast service using the multicast method, or a destination port number used when transmitting the live data packet of the first live broadcast service using the multicast method.

[0036] In the present application, the user plane function network element may be pre-configured with aggregation information and may obtain the aggregation information from other network elements (such as a session management function network element or an application function network element, etc.). When the user plane function network element obtains the aggregation information from other network elements, the aggregation information may be obtained through the fifth information.

[0037] In combination with the first aspect or any one of its implementations, in another possible implementation, the communication device is a wireless access network device, and the method further includes: the communication device receives sixth information, and the sixth information is used to trigger the communication device to transmit the live data packets of the first live service in a multicast manner; the communication device configures wireless transmission resources according to the sixth information, and the wireless transmission resources are used to transmit the live data packets of the first live service in a multicast manner.

[0038] In the above technical aspects, after receiving the sixth information, the wireless access network device can configure, based on the sixth information, transmission resources for multicasting live data packets of the first live broadcast service. This allows the wireless access network device to request the configuration of corresponding transmission resources only when multicasting live data packets is needed, thereby reducing signaling overhead and wasted transmission resources.

[0039] In combination with the first aspect or any one of its implementations, in another possible implementation, the sixth information includes at least one of the following information: aggregation information, an identifier of the first terminal, and initial information corresponding to the first terminal; wherein the aggregation information includes at least one of the following information: an initial sequence number used when transmitting the live data packet of the first live service in the multicast manner, an initial confirmation number used when transmitting the live data packet of the first live service in the multicast manner, a destination address used when transmitting the live data packet of the first live service in the multicast manner, or a destination port number used when transmitting the live data packet of the first live service in the multicast manner; the initial information includes at least one of the following information: an initial sequence number used when sending the live data packet of the first live service to the first terminal in a unicast manner, or an initial confirmation number used when sending the live data packet of the first live service to the first terminal in a unicast manner.

[0040] In a second aspect, the present application provides a method for transmitting data, the method comprising: a first terminal receives a third live data packet of a first live service, the destination address in a header of the third live data packet being the destination address used when transmitting the live data packet of the first live service in a multicast manner; the first terminal determines a first live data packet based on the third live data packet, the first live data packet and the third live data packet have the same effective payload, and the destination address in the header of the first live data packet is the address of the first terminal.

[0041] In another description, the first terminal replaces the destination address of the third live broadcast data packet with the address of the first terminal.

[0042] Optionally, the destination address of the first live broadcast data packet and the destination address of the third live broadcast data packet have a mapping relationship.

[0043] Optionally, the destination address is a destination IP address.

[0044] In the above technical solution, the first terminal restores the third live broadcast data packet transmitted in multicast mode into the first live broadcast data packet, which helps to send live broadcast data packets with the same effective payload of the live broadcast service to multiple terminals using the live broadcast service in multicast mode, saving transmission resources and improving the utilization of transmission resources.

[0045] In combination with the second aspect, in a possible implementation, the header of the first live data packet further includes at least one of the following fields: a destination port number, a sequence number, an acknowledgment number, a transport layer checksum, or a network layer header checksum.

[0046] Optionally, the transport layer checksum is a TCP checksum, and the network layer header checksum is an IP header checksum.

[0047] The destination port number of the first live broadcast data packet and the destination port number of the third live broadcast data packet are mapped to each other. The destination port number of the first live broadcast data packet is the port number of the first terminal, and the destination port number of the third live broadcast data packet is the destination port number used when transmitting live broadcast data packets of the first live broadcast service via the multicast method. Alternatively, the first terminal replaces the destination port number of the third live broadcast data packet with the port number of the first terminal.

[0048] The sequence number of the first live data packet is determined based on the sequence number of the third live data packet, a first initial sequence number, and a second initial sequence number. The first initial sequence number is the initial sequence number used when sending the live data packet of the first live service to the first terminal using unicast, and the second initial sequence number is the initial sequence number used when transmitting the live data packet of the first live service using the multicast method. Alternatively, the first terminal determines the sequence number of the first live data packet based on the sequence number of the third live data packet, the second initial sequence number, and the first initial sequence number. In yet another alternative, the sequence number of the third live data packet, the first initial sequence number, and the second initial sequence number are used to determine the sequence number of the first live data packet.

[0049] The confirmation number of the first live data packet is determined based on the confirmation number of the third live data packet, a first initial confirmation number, and a second initial confirmation number. The first initial confirmation number is the initial confirmation number used when sending the live data packet of the first live service to the first terminal using the unicast method, and the second initial confirmation number is the initial confirmation number used when transmitting the live data packet of the first live service using the multicast method. Alternatively, the first terminal determines the confirmation number of the first live data packet based on the confirmation number of the third live data packet, the second initial confirmation number, and the first initial confirmation number. In yet another alternative, the confirmation number of the third live data packet, the first initial confirmation number, and the second initial confirmation number are used to determine the confirmation number of the first live data packet.

[0050] The transport layer checksum of the first live data packet is determined based on the effective payload of the first live data packet and other fields in the transport layer header of the first live data packet except the transport layer checksum, or is determined based on other fields in the transport layer header of the first live data packet except the transport layer checksum, and the transport layer header of the third live data packet. Alternatively, the first terminal determines the transport layer checksum of the first live data packet based on the effective payload of the first live data packet and other fields in the transport layer header of the first live data packet except the transport layer checksum, or determines the transport layer checksum of the first live data packet based on other fields in the transport layer header of the first live data packet except the transport layer checksum, and the transport layer header of the third live data packet.

[0051] The network layer header checksum of the first live data packet is determined based on other fields in the network layer header of the first live data packet except the network layer header checksum, or is determined based on other fields in the network layer header of the first live data packet except the network layer header checksum and the network layer header of the third live data packet. Alternatively, the first terminal determines the network layer header checksum of the first live data packet based on other fields in the network layer header of the first live data packet except the network layer header checksum, or determines the network layer header checksum of the first live data packet based on other fields in the network layer header of the first live data packet except the network layer header checksum and the network layer header of the third live data packet.

[0052] In the above technical solution, the communication device obtains the first live data packet by modifying or replacing the header of the third live data packet, which helps to send live data packets with the same effective payload of the live service to multiple terminals using the live service in a multicast manner, saving transmission resources and helping to improve the utilization of transmission resources.

[0053] In combination with the second aspect or any one of its implementations, in another possible implementation, the serial number of the first live data packet satisfies: S3_n=S_n–S_0+S3_0; or, the confirmation number of the first live data packet satisfies: A3_n=A_n–A_0+A3_0; wherein, S3_n is the serial number of the first live data packet, S_n is the serial number of the third live data packet, S_0 is the second initial sequence number, S3_0 is the first initial sequence number, A3_n is the confirmation number of the first live data packet, A_n is the confirmation number of the third live data packet, A_0 is the second initial confirmation number, and A3_0 is the first initial confirmation number.

[0054] In combination with the second aspect or any one of its implementations, in another possible implementation, the method further includes: the first terminal obtains at least one of the following information from the access network device, the session management function network element or the application function network element: aggregation information, and initial information corresponding to the first terminal; wherein the aggregation information includes at least one of the following information: the second initial sequence number, the second initial confirmation number, the destination address used when transmitting the live data packet of the first live service using the multicast method, or the destination port number used when transmitting the live data packet of the first live service using the multicast method; the initial information includes at least one of the following information: the first initial sequence number, or the first initial confirmation number.

[0055] In a third aspect, the present application provides a method for transmitting data, the method comprising: a user plane function network element receives fourth information from a session management function network element, the fourth information including a detection condition for a data packet, the detection condition including: the source address is the address of an application server of a first live broadcast service, the source port number is the port number of the first live broadcast service, the confirmation flag is 1, and the synchronization flag is 1; the user plane function network element detects at least one data packet based on the fourth information, and the at least one data packet meets the detection condition; the user plane function network element sends information of the at least one data packet to the session management function network element.

[0056] The information of at least one data packet is used to trigger the session management function network element to configure transmission resources for transmitting the live data packet of the first live service.

[0057] In the above technical solution, the user plane functional network element detects data packets according to the data packet detection conditions and reports the information of the detected data packets, so that the session management functional network element can configure transmission resources for transmitting the live data packets of the first live broadcast service in a multicast manner.

[0058] Optionally, the information of the at least one data packet includes at least one initial information, and the initial information includes at least one of the following information: an initial sequence number used to send the live data packet of the first live service to the terminal corresponding to the initial information in a unicast manner, or an initial confirmation number used to send the live data packet of the first live service to the terminal corresponding to the initial information in a unicast manner.

[0059] In the above technical solution, the information of at least one data packet includes at least one initial information. In other words, the user plane function network element sends the initial information to the session management function network element, so that the session management function network element sends it to the terminal. In this way, the terminal does not need to obtain the initial information from the transport layer or network layer of the terminal, which helps to reduce the implementation difficulty of the terminal.

[0060] In combination with the third aspect, in a possible implementation, before the user plane function network element sends information about the at least one data packet to the session management function network element, the method also includes: the user plane function network element determines that the number of the at least one data packet reaches a preset threshold.

[0061] In a fourth aspect, the present application provides a method for transmitting data, the method comprising: a session management function network element receiving seventh information from an application function network element, the seventh information including the address of an application server of a first live broadcast service and the port number of the first live broadcast service; the session management function network element sending fourth information to a user plane function network element, the fourth information including a detection condition for a data packet, the detection condition including: the source address is the address of the application server of the first live broadcast service, the source port number is the port number of the first live broadcast service, the confirmation flag is 1, and the synchronization flag is 1; the session management function network element receives information of at least one data packet from the user plane function network element; the session management function network element configures transmission resources based on the information of the at least one data packet, and the transmission resources are used to transmit the live data packet of the first live broadcast service in a multicast manner.

[0062] Optionally, the information of the at least one data packet includes at least one initial information, and the initial information includes at least one of the following information: an initial sequence number used to send the live data packet of the first live service to the terminal corresponding to the initial information in a unicast manner, or an initial confirmation number used to send the live data packet of the first live service to the terminal corresponding to the initial information in a unicast manner.

[0063] In the above technical solution, the session management function network element can send the data packet detection condition to the user plane function network element based on the seventh information of the application function network element, so that the user plane function network element detects the data packets that meet the detection conditions and reports the information of the data packets that meet the detection conditions. The session management function network element can configure the transmission resources for transmitting the live data packets of the first live service in a multicast manner based on the information of the data packets that meet the detection conditions sent by the user plane function network element.

[0064] In a fifth aspect, the present application provides a communication device for executing the method provided by any of the above aspects or its implementations. Specifically, the device may include units and / or modules, such as a processing unit and / or a communication unit, for executing the method provided by any of the above aspects or its implementations.

[0065] In one implementation, the apparatus is an application function network element, a user plane function network element, a radio access network device, a terminal, or a session management function network element. When the apparatus is an application function network element, a user plane function network element, a radio access network device, a terminal, or a session management function network element, the communication unit may be a transceiver or an input / output interface; and the processing unit may be at least one processor. Optionally, the transceiver is a transceiver circuit. Optionally, the input / output interface is an input / output circuit.

[0066] In another implementation, the apparatus is a chip, chip system, or circuit used in an application function network element, a user plane function network element, a radio access network device, a terminal, or a session management function network element. When the apparatus is a chip, chip system, or circuit used in an application function network element, a user plane function network element, a radio access network device, a terminal, or a session management function network element, the communication unit may be an input / output interface, an interface circuit, an output circuit, an input circuit, a pin, or related circuits on the chip, chip system, or circuit; and the processing unit may be at least one processor, a processing circuit, or a logic circuit.

[0067] In a sixth aspect, the present application provides a communication device, which includes: a memory for storing programs; and at least one processor for executing computer programs or instructions stored in the memory to execute the method provided by any one of the above aspects or its implementation.

[0068] In one implementation, the apparatus is an application function network element, a user plane function network element, a wireless access network device, a terminal, or a session management function network element.

[0069] In another implementation, the device is a chip, a chip system, or a circuit used in an application function network element, a user plane function network element, a wireless access network device, a terminal, or a session management function network element.

[0070] In a seventh aspect, the present application provides a processor for executing the methods provided in the above aspects.

[0071] For the operations such as sending and acquiring / receiving involved in the processor, unless otherwise specified, or if they do not conflict with their actual functions or internal logic in the relevant descriptions, they can be understood as processor output, reception, input and other operations, and can also be understood as sending and receiving operations performed by the radio frequency circuit and antenna. This application does not limit this.

[0072] In an eighth aspect, the present application provides a computer-readable storage medium, which stores program code for execution by a device, and the program code includes a method for executing any of the above aspects or its implementation method.

[0073] In a ninth aspect, the present application provides a computer program product comprising instructions, which, when executed on a computer, enables the computer to execute the method provided by any one of the above aspects or its implementation.

[0074] In the tenth aspect, the present application provides a chip, which includes a processor and a communication interface. The processor reads instructions stored in the memory through the communication interface and executes the method provided by any one of the above aspects or its implementation method.

[0075] Optionally, as an implementation method, the chip also includes a memory, in which a computer program or instruction is stored, and the processor is used to execute the computer program or instruction stored in the memory. When the computer program or instruction is executed, the processor is used to execute the method provided by any of the above aspects or its implementation methods.

[0076] In an eleventh aspect, the present application provides a communication system comprising the above communication device and a first terminal. BRIEF DESCRIPTION OF THE DRAWINGS

[0077] Figure 1 A schematic diagram of a network architecture is shown.

[0078] Figure 2 A framework diagram of a general network live broadcast model is shown.

[0079] Figure 3 Shows the structure of a TCP header.

[0080] Figure 4 The structure of an IPv4 header is shown.

[0081] Figure 5 The structure of an IPv6 header is shown.

[0082] Figure 6 It is a schematic diagram of the TCP connection establishment process.

[0083] Figure 7 It is a schematic diagram of a method 700 for transmitting data provided in an embodiment of the present application.

[0084] Figure 8 It is a schematic flowchart of a method 800 for transmitting data provided in an embodiment of the present application.

[0085] Figure 9 This is an example of AS determining and transmitting aggregated data packets.

[0086] Figure 10 This is an example of an endpoint processing aggregated packets.

[0087] Figure 11 It is a schematic flowchart of a method 1100 for transmitting data provided in an embodiment of the present application.

[0088] Figure 12 This is an example of a UPF determining and transmitting aggregated data packets.

[0089] Figure 13 It is a schematic flowchart of a method 1300 for transmitting data provided in an embodiment of the present application.

[0090] Figure 14 This is an example of RAN determining and transmitting aggregated data packets.

[0091] Figure 15 It is a schematic structural diagram of a possible device provided in an embodiment of the present application.

[0092] Figure 16 This is another structural diagram of a possible device provided by an embodiment of the present application. DETAILED DESCRIPTION

[0093] The technical solution in this application will be described below with reference to the accompanying drawings.

[0094] The technical solutions provided in this application can be applied to various communication systems, such as: fifth generation (5G) or new radio (NR) systems, long term evolution (LTE) systems, LTE frequency division duplex (FDD) systems, LTE time division duplex (TDD) systems, etc. The technical solutions provided in this application can also be applied to future communication systems, such as the sixth generation mobile communication system. The technical solutions provided in this application can also be applied to device to device (D2D) communication, vehicle-to-everything (V2X) communication, machine to machine (M2M) communication, machine type communication (MTC), and Internet of Things (IoT) communication systems or other communication systems.

[0095] First, a brief introduction to the network architecture applicable to this application is given.

[0096] As an example, Figure 1 A schematic diagram of a network architecture is shown.

[0097] like Figure 1 As shown in the figure, the network architecture is based on the 5G system (the 5 thgeneration system (5GS) as an example. The network architecture may include three parts, namely the user equipment (UE) part, the data network (DN) part and the operator network part. Among them, the operator network may include one or more of the following network elements: (radio) access network (R)AN) equipment, user plane function (UPF) network element, authentication server function (AUSF) network element, unified data repository (UDR) network element, access and mobility management function (AMF) network element, SMF network element, network exposure function (NEF) network element, network function library function (NRF) network element, policy control function module (PCF) network element, unified data management (UDM) network element and application function (AF) network element. In the above-mentioned operator network, the part other than the RAN part can be called the core network part. In this application, user equipment, (wireless) access network equipment, UPF network element, AUSF network element, UDR network element, AMF network element, SMF network element, NEF network element, NRF network element, PCF network element, UDM network element, and AF network element are respectively referred to as UE, (R)AN equipment, UPF, AUSF, UDR, AMF, SMF, NEF, NRF, PCF, UDM, and AF.

[0098] Below Figure 1 A brief description of each network element involved is given below.

[0099] 1.UE

[0100] The UE mainly accesses the 5G network and obtains services through the wireless air interface. The UE interacts with the RAN through the air interface and interacts with the AMF of the core network through non-access stratum signaling (NAS).

[0101] The UE in the embodiments of the present application may also be referred to as a terminal device, user, access terminal, user unit, user station, mobile station, mobile station, remote station, remote terminal, mobile device, user terminal, terminal, wireless communication device, user agent or user apparatus. UE can be a cellular phone, a smart watch, a wireless data card, a mobile phone, a tablet computer, a personal digital assistant (PDA) computer, a wireless modem, a handheld device, a laptop computer, a machine type communication (MTC) terminal, a computer with wireless transceiver function, an Internet of Things terminal, a virtual reality terminal device, an augmented reality terminal device, a wearable device, a vehicle, a terminal in device-to-device (D2D) communication, a terminal in vehicle to everything (V2X) communication, a terminal in machine-type communication (MTC), a terminal in the Internet of Things (IOT), a terminal in smart office, a terminal in industrial control, a terminal in unmanned driving, a terminal in remote surgery, a terminal in smart grid, a terminal in transportation safety, a terminal in a smart city, a terminal in a smart home, a terminal in satellite communication (for example, a satellite phone or a satellite terminal). UE may also be customer-premises equipment (CPE), a phone, a router, a network switch, a residential gateway (RG), a set-top box, a fixed-mobile convergence product, a home network adapter, and an Internet access gateway.

[0102] The embodiments of the present application do not limit the specific technology and specific device form adopted by the UE.

[0103] 2. (R)AN equipment

[0104] (R)AN devices provide access to communication networks for authorized users in a specific area. These devices can include wireless network devices in 3rd Generation Partnership Project (3GPP) networks or access points in non-3GPP networks. For ease of description, the term "AN device" will be used below.

[0105] AN equipment can adopt different wireless access technologies. There are currently two types of wireless access technologies: 3GPP access technology (for example, the wireless access technology used in the third generation (3rd generation, 3G), fourth generation (4G) or 5G systems) and non-3GPP (non-3GPP) access technology. 3GPP access technology refers to access technology that complies with 3GPP standard specifications. For example, the access network equipment in the 5G system is called the next generation NodeBase station (gNB) or RAN equipment. Non-3GPP access technologies may include air interface technologies represented by access points (APs) in wireless fidelity (WiFi), worldwide interoperability for microwave access (WiMAX), code division multiple access (CDMA), etc. AN equipment can allow terminal devices and the 3GPP core network to interconnect and communicate using non-3GPP technologies.

[0106] AN equipment is responsible for radio resource management, quality of service (QoS) management, data compression and encryption, etc. on the air interface side. AN equipment provides access services to terminal devices and forwards control signals and user data between terminal devices and the core network.

[0107] AN equipment may include, but is not limited to: macro base stations, micro base stations (also known as small stations), radio network controllers (RNCs), node Bs (NBs), base station controllers (BSCs), base transceiver stations (BTSs), home base stations (e.g., home evolved NodeBs, or home Node Bs, HNBs), baseband units (BBUs), APs in WiFi systems, base stations (BSs) in WiMAX, wireless relay nodes, wireless backhaul nodes, transmission points (TPs) or transmission and reception points (TRPs), etc. It may also be a gNB or transmission point (TRP or TP) in a 5G (e.g., NR) system, one or a group of (including multiple antenna panels) antenna panels of a base station in a 5G system, or a network node constituting a gNB or transmission point, such as a distributed unit (DU), or a base station in a next-generation communication 6G system.

[0108] The embodiments of the present application do not limit the specific technology and specific device form adopted by the AN device.

[0109] 3. UPF

[0110] The UPF primarily provides user plane functions such as forwarding and processing user messages, connecting to the DN, session anchoring, and Quality of Service (QoS) policy enforcement. For example, the UPF can receive user plane data from the DN and send it to the terminal device via the AN. The UPF can also receive user plane data from the terminal device via the AN and forward it to the DN.

[0111] 4. DN

[0112] DN is mainly used for operator networks that provide data services to UEs, such as the Internet, third-party service networks, and IP Multimedia Service (IMS) networks.

[0113] 5. AUSF

[0114] AUSF is mainly used for user authentication, etc.

[0115] 6. UDR

[0116] UDR mainly provides storage capabilities for contract data, policy data, and capability exposure-related data.

[0117] 7. AMF

[0118] AMF is mainly used for access control, mobility management, attachment and detachment functions.

[0119] 8. SMF

[0120] SMF is mainly responsible for session management (such as session establishment, modification, and release), Internet Protocol (IP) address allocation and management, and UPF selection and control.

[0121] 9. NEF

[0122] NEF is mainly used to securely open the services and capabilities provided by 3GPP network functions to the outside world.

[0123] 10. NRF

[0124] NRF is mainly used to store description information of network function entities and the services they provide.

[0125] 11. PCF

[0126] PCF is mainly used to guide the unified policy framework of network behavior and provide policy rule information for control plane network elements (such as AMF, SMF, etc.).

[0127] 12. UDM

[0128] UDM is mainly used for UE subscription data management, including storage and management of UE identification, UE access authorization, etc.

[0129] 13. AF

[0130] The AF is mainly used to provide services to the 3GPP network, such as interacting with the PCF for policy control.

[0131] exist Figure 1 In the network architecture shown, each network element can communicate with each other through an interface. The interface between each network element can be a point-to-point interface or a service-based interface, which is not limited in this application.

[0132] It should be understood that the network architecture shown above is only an exemplary illustration, and the network architecture applicable to the embodiments of the present application is not limited to this. Any network architecture that can realize the functions of the above-mentioned network elements is applicable to the embodiments of the present application.

[0133] It should also be understood that Figure 1The AMF, SMF, UPF, PCF, UDM, AUSF, UDR, NEF, NRF, AF and other functions or network elements shown in the specification can be understood as network elements used to implement different functions, for example, they can be combined into network slices as needed. These network elements can be independent devices, or they can be integrated into the same device to implement different functions, or they can be network elements in hardware devices, or they can be software functions running on dedicated hardware, or they can be virtualized functions instantiated on a platform (for example, a cloud platform). This application does not limit the specific form of the above network elements.

[0134] It should also be understood that the above naming is defined only to facilitate the distinction between different functions and should not constitute any limitation to this application. This application does not exclude the possibility of adopting other naming in 6G networks and other future networks. For example, in a 6G network, some or all of the above network elements may continue to use the terminology used in 5G, or may adopt other names.

[0135] To facilitate understanding of the embodiments of the present application, a brief description of the terms or technologies involved in the present application is provided.

[0136] 1. Live streaming

[0137] Figure 2 A framework diagram of a general network live broadcast model is shown.

[0138] The live broadcast source, also known as the host, director, or director device, can send live broadcast data collected by on-site signal acquisition equipment to the application server. The application server is primarily responsible for encoding and distributing the received live broadcast data. The live broadcast client can receive and play the live broadcast data from the application server.

[0139] like Figure 2 As shown, the live broadcast source sends the live broadcast data to the application server through the push process, and the application server sends the processed live broadcast data to the live broadcast client through the pull process, and then plays the live broadcast data.

[0140] The main protocols used for streaming are: Real-time Messaging Protocol (RTMP)

[0141] The main protocols used for streaming include: RTMP, streaming formats (Flash Video, FLV), HTTP live streaming (HLS), HTTP dynamic adaptive streaming over HTTP (DASH), etc. The protocols used for streaming are basically based on TCP.

[0142] 2. Live broadcast services and live broadcast data packages

[0143] Live broadcasting refers to the use of video to broadcast live or transmit media data in real time over the Internet, for example, Figure 2 The live broadcast service is also called live broadcast service, or simply live broadcast. For the sake of convenience, it is collectively referred to as live broadcast service below.

[0144] The data of the live broadcast service can be called a live broadcast data packet or live broadcast data. A live broadcast data packet or live broadcast data is a data packet that carries the content of the live broadcast service.

[0145] In this application, a live broadcast data packet includes a header and a valid payload. The header may include a TCP header and an IP header. Of course, if the live broadcast data packet uses other transmission protocols, the header will include the header of the corresponding transmission protocol.

[0146] 3. TCP header

[0147] Figure 3 Shows the structure of a TCP header.

[0148] like Figure 3 As shown in Figure 1, the TCP header may include basic TCP header fields and option fields. The basic TCP header field is 20 bytes long. The option field is a variable length 32-bit word unit. The option field may include "maximum segment size", "window scale", and "timestamp".

[0149] The meanings of the fields in the basic TCP header are as follows:

[0150] 1) Source port field and destination port field: used together with the source IP address and destination IP address in the IP header field to uniquely identify a TCP connection;

[0151] 2) Sequence Number Field: A byte used to identify the data stream from sender to receiver. This byte is the first byte in the segment containing the sequence number.

[0152] 3) Confirmation Number Field: The value contained in this field is the next sequence number that the sender of this confirmation number expects to receive.

[0153] 4) Header Length Field: Contains the length of the TCP header field in 32-bit words.

[0154] 5) Flag field: occupies 8 bits, and the meaning of each bit is as follows:

[0155] Congestion window reduced (CWR): indicates whether the sender reduces the sending rate;

[0156] Explicit congestion notification (ECN) echo (ECN-Echo, ECE):

[0157] Indicates whether the sender has received an earlier congestion notification;

[0158] Urgent flag (URG): indicates whether the urgent pointer field is valid;

[0159] Acknowledgement flag (ACK): indicates whether the confirmation number field is valid;

[0160] Push flag (PSH): indicates whether the receiver should send the data to the application as soon as possible;

[0161] Reset flag (reset, RST): indicates whether to cancel the connection;

[0162] Synchronize flag (SYN): used to initialize the synchronization sequence number of a connection;

[0163] Final flag (FIN): Indicates whether the sender of the segment has finished sending data to the other party;

[0164] 6) Window size field: used for flow control. The unit of flow control is the number of bytes, which indicates the number of bytes that the sender of this field expects to receive at one time.

[0165] 7) TCP checksum field: used for error checking, which covers the TCP header and data;

[0166] 8) Urgent pointer field: It is an offset, which, when added to the value in the sequence number field, represents the sequence number of the last byte of the urgent data.

[0167] It should be noted that Figure 3 This is just an example, and the technical solution of this application can also be applied to other TCP header structures.

[0168] 4. IP header

[0169] Figure 4 The structure of an IPv4 header is shown.

[0170] like Figure 4 As shown, the IPv4 header may include a basic IP header field and an option field. The length of the basic IP header field is 20 bytes, and the length of the option field is variable.

[0171] The meanings of the fields in the basic IP header are as follows:

[0172] 1) Version field: indicates the version number of the IP datagram;

[0173] 2) Internet header length (IHL) field: used to store the number of 32-bit words in the IP header;

[0174] 3) Differentiated Services (DS) field: This field is the differentiated services field, indicating different service types;

[0175] 4) ECN field: indicates congestion notification;

[0176] 5) Total Length field: indicates the total length of the IPv4 datagram in bytes;

[0177] 6) Identification field: used to help identify the datagram sent by the IPv4 host;

[0178] 7) Flags and Fragment Offset field: Combined with the Identifier field, used for IPv4 datagram fragmentation;

[0179] 8) Lifetime field: used to set the upper limit of the number of routers a datagram can pass through;

[0180] 9) Protocol field: indicates the data type of the payload part of the datagram;

[0181] 10) Checksum field: used for error checking. Error checking only covers the IP header.

[0182] 11) Source IP address field and destination IP address field: usually identify the IPv4 addresses of the source node and the receiving node respectively.

[0183] Figure 5 The structure of an IPv6 header is shown.

[0184] like Figure 5 As shown in the figure, the IPv6 header length is fixed at 40 bytes. The meanings of the fields in the IPv6 header are as follows:

[0185] 1) Version field: indicates the version number of the IP datagram;

[0186] 2) DS field: This field is the differentiated service field, indicating different service types;

[0187] 3) ECN field: indicates congestion notification;

[0188] 4) Flow Label field: This field is used to mark the data flow type of a segment, thereby distinguishing different messages at the network layer. The flow label is assigned by the source node and uniquely identifies a communication flow using the flow label, source IPv6 address, and destination IPv6 address.

[0189] 5) Payload Length Field: Indicates the total length of the payload portion of the IPv6 datagram in bytes;

[0190] 6) Next Header Field: Indicates the type of header following the IPv6 header;

[0191] 7) Hop limit field: used to specify the number of times a datagram can be effectively forwarded;

[0192] 8) Source IP address field and destination IP address field: usually identify the IPv6 addresses of the source node and the receiving node respectively.

[0193] It should be noted that Figure 4 and Figure 5 This is just an example, and the technical solution of this application can also be applied to other IP header structures.

[0194] 5. Quadruple

[0195] In this application, a quadruple consisting of the source port number, destination port number, source IP address, and destination IP address uniquely identifies a TCP connection. When an AS sends data or a message to a terminal via unicast, the quadruple consists of the AS's port number associated with the live broadcast service, the terminal's port number, the AS's IP address, and the terminal's IP address.

[0196] 6. TCP connection establishment process

[0197] Figure 6 It is a schematic diagram of the TCP connection establishment process.

[0198] like Figure 6As shown in FIG, the terminal and the AS complete the establishment of the TCP connection through three handshakes. Specifically, the terminal sends a first segment, which is a connection request segment. The SYN flag in the first segment is 1 and the sequence number is x (TCP stipulates that data cannot be carried when SYN=1, and x can be a randomly generated value). Then the terminal enters the SYN_SEND state. After receiving the first segment from the terminal, the AS confirms the connection by sending a second segment to the terminal, and then enters the SYN_RECV state, which is also called the semi-connected state. In the second segment sent by the AS to the terminal, the SYN flag is 1, the ACK flag is 1, the sequence number is y (y can also be a randomly generated value), and the acknowledgment number is x+1. After receiving the second segment from the AS, the terminal confirms the connection again by sending a third segment to the AS, and then enters the ESTABLISHED state. The ACK flag in the third segment sent by the terminal to the AS is 1 (SYN is not used at this time), the sequence number is x+1, and the acknowledgment number is y+1. After receiving the third segment from the terminal, the AS enters the ESTABLISHED state.

[0199] Where y is the initial sequence number used by the AS when sending data packets to a terminal using unicast, and x+1 is the initial acknowledgment number used by the AS when sending data packets to a terminal using unicast. In this application, the information including y and x+1 is referred to as initial information. The initial information of a terminal, the initial information corresponding to a terminal, or a terminal corresponding to initial information can be understood as the initial information used by the AS when sending data packets to the terminal using unicast.

[0200] It should be understood that the term "at least one" in this document refers to one or more, and "more than one" refers to two or more. "And / or" simply describes a relationship between related entities, indicating that three possible relationships exist. For example, "A and / or B" can mean: A exists alone, A and B exist simultaneously, or B exists alone. A and B can be singular or plural. Furthermore, the character " / " in this document generally indicates an "or" relationship between the related entities.

[0201] The above briefly explains the terms involved in this application, which will not be repeated in the following embodiments.

[0202] Currently, the protocol used for streaming is based on TCP, which does not support multicast data transmission. Therefore, when multiple terminals request data for the same live service, the application server needs to send the live data to the multiple terminals via unicast, resulting in serious waste of transmission resources.

[0203] In response to the above problems, the present application provides a method and device for transmitting data, which can realize the transmission of live data packets of live broadcast services to multiple terminals in a multicast manner, helping to improve the utilization rate of transmission resources and reduce the waste of transmission resources.

[0204] The following will describe in detail the method for transmitting data provided by the embodiment of the present application in conjunction with the accompanying drawings. The embodiment provided by the present application can be applied to the above Figure 1 The network architecture shown is not limited to this.

[0205] Figure 7 FIG. 7 is a schematic diagram of a method 700 for transmitting data provided in an embodiment of the present application. The method 700 may include at least part of the following contents.

[0206] In step 701, a communication device obtains a first live broadcast data packet and a second live broadcast data packet of a first live broadcast service.

[0207] The first live broadcast data packet corresponds to the first terminal, the second live broadcast data packet corresponds to the second terminal, and the first live broadcast data packet and the second live broadcast data packet have the same effective payload.

[0208] The first live broadcast data packet corresponds to the first terminal, which can be understood as the first live broadcast data packet being sent by the communication device to the first terminal, or the first terminal being the recipient of the first live broadcast data packet. Similarly, the second live broadcast data packet corresponds to the second terminal, which can be understood as the second live broadcast data packet being sent by the communication device to the second terminal, or the second terminal being the recipient of the second live broadcast data packet.

[0209] The first live broadcast data packet and the second live broadcast data packet have the same payload. The payload here can be the actual live broadcast data or the transport layer data, where the transport layer data can be understood as the content after the transport layer header or the entire data packet received by the transport layer from the upper layer. For example, the transport layer data can be the entire data packet received from the application layer, including the application layer header and the actual live broadcast data.

[0210] The communication device may be an AF, UPF, or wireless access network equipment. When the communication device is an AF, the communication device obtains the first and second live data packets of the first live broadcast service. This can be understood as the AF obtaining the first and second live data packets from the AF application layer. When the communication device is a UPF or wireless access network equipment, the communication device obtains the first and second live data packets of the first live broadcast service. This can be understood as the UPF or wireless access network equipment receiving the first and second live data packets from the AF.

[0211] In the present application, there are many ways for the communication device to determine that the effective payloads of the first live broadcast data packet and the second live broadcast data packet are the same.

[0212] In one possible implementation, the communication device determines whether the payloads of the first and second live broadcast data packets are the same based on the live broadcast services requested by the first and second terminals. If the first and second terminals request the same live broadcast service, the communication device determines that the payloads of the first and second live broadcast data packets are the same.

[0213] For example, the communication device detects the second message segment sent to the first terminal (the description of the second message segment can refer to Figure 6 , which will not be repeated here), and the source IP address and source port number of the second message segment sent to the second terminal. If the source IP address and source port number in the second message segment sent to the first terminal are the same as the source IP address and source port number in the second message segment sent to the second terminal, the communication device determines that the first terminal and the second terminal request the same live broadcast service. In this case, the communication device determines that the effective payload of the obtained first live broadcast data packet and the second live broadcast data packet is the same.

[0214] For another example, the communication device detects the source IP address and source port number of the second message segment sent to the first terminal, and the source IP address and source port number of the second message segment sent to the second terminal. If the source IP address and source port number in the second message segment sent to the first terminal are the same as the source IP address and source port number in the second message segment sent to the second terminal, and the second message segment is sent to the first terminal and the second terminal within a certain time range (for example, before the live broadcast starts or within a specific short time period after the live broadcast starts), the communication device determines that the first terminal and the second terminal request the same live broadcast service. In this case, the communication device determines that the effective payload of the obtained first live broadcast data packet and the second live broadcast data packet is the same.

[0215] In another possible implementation, the communication device determines whether the payloads of the first live broadcast data packet and the second live broadcast data packet are identical based on the media segments requested by the first terminal and the second terminal. For example, the communication device detects the media segments requested by the first terminal and the second terminal at the application layer. If the first terminal and the second terminal request the same media segments, the communication device determines that the payloads of the first live broadcast data packet and the second live broadcast data packet obtained are identical.

[0216] In step 702, the communication device sends a third live broadcast data packet to the first terminal and the second terminal in a multicast manner according to the first live broadcast data packet and the second live broadcast data packet.

[0217] Correspondingly, the first terminal and the second terminal receive the third live broadcast data packet from the communication device.

[0218] The third live data packet has the same effective payload as the second live data packet. In other words, the first live data packet, the second live data packet, and the third live data packet have the same effective payload.

[0219] Among them, the communication device uses a multicast method to send a third live broadcast data packet to the first terminal and the second terminal. It can be understood that the communication device sends a third live broadcast data packet, and the recipients of the third live broadcast data packet include the first terminal and the second terminal. Alternatively, it can also be understood that the transmission path from the communication device to the first terminal and the second terminal presents a tree structure, in which the communication device is the root node, the first terminal and the second terminal are leaf nodes, and there is only one third live broadcast data packet on each of the one or more links included in the transmission path.

[0220] In one possible implementation, method 700 further includes: the communication device obtaining a fourth live data packet of the first live broadcast service, wherein the fourth live data packet corresponds to the third terminal and has the same payload as the second live data packet. Step 702 specifically includes: the communication device transmitting the third live data packet to the first terminal, the second terminal, and the third terminal using the multicast method based on the first live data packet, the second live data packet, and the fourth live data packet. It can be understood that the technical solution of the present application can implement the multicast method for transmitting live data packets of the same live broadcast service to two or more terminals.

[0221] In one possible implementation, step 702 specifically includes: the communication device determining a third live data packet based on one of multiple live data packets of a first live broadcast service, wherein the multiple live data packets of the first live broadcast service have the same effective payload, and the multiple live data packets of the first live broadcast service include a first live data packet and a second live data packet. For example, if the multiple live data packets of the first live broadcast service include only a first live data packet and a second live data packet, the communication device may determine the third live data packet based on the first live data packet or the second live data packet. For another example, if the multiple live data packets of the first live broadcast service include a first live data packet, a second live data packet, and a fourth live data packet, the communication device may determine the third live data packet based on the first live data packet, the second live data packet, or the fourth live data packet. For ease of description, the live data packet selected by the communication device from the multiple live data packets of the first live broadcast service is referred to as the target live data packet.

[0222] In a possible implementation, the header of the third live data packet includes at least one of the following fields: a destination port number, a destination address, a sequence number, an acknowledgment number, a transport layer checksum, or a network layer header checksum.

[0223] The destination port number of the third live broadcast data packet is mapped to the destination port number of the target live broadcast data packet. The destination port number of the third live broadcast data packet is the destination port number used when transmitting live broadcast data packets of the first live broadcast service via multicast. The destination port number of the target live broadcast data packet is the port number of the terminal receiving the target live broadcast data packet. Alternatively, the communication device may determine the destination port number of the third live broadcast data packet based on the destination port number of the target live broadcast data packet and the mapping relationship between the destination port number of the target live broadcast data packet and the destination port number of the third live broadcast data packet.

[0224] The destination address of the third live broadcast data packet is mapped to the destination address of the target live broadcast data packet. The destination address of the third live broadcast data packet is the destination address used when transmitting live broadcast data packets of the first live broadcast service via multicast. The destination address of the target live broadcast data packet is the address of the terminal receiving the target live broadcast data packet. Alternatively, the communication device may determine the destination address of the third live broadcast data packet based on the destination address of the target live broadcast data packet and the mapping relationship between the destination address of the target live broadcast data packet and the destination address of the third live broadcast data packet. The sequence number of the third live broadcast data packet is determined based on the sequence number of the target live broadcast data packet, the first initial sequence number, and the second initial sequence number. The first initial sequence number is the initial sequence number used when transmitting live broadcast data packets of the first live broadcast service via unicast to the terminal corresponding to the target live broadcast data packet. The second initial sequence number is the initial sequence number used when transmitting live broadcast data packets of the first live broadcast service via multicast. Alternatively, the communication device may determine the sequence number of the third live broadcast data packet based on the sequence number of the target live broadcast data packet, the first initial sequence number, and the second initial sequence number. In yet another embodiment, the sequence number of the target live broadcast data packet, the first initial sequence number, and the second initial sequence number are used to determine the sequence number of the third live broadcast data packet.

[0225] In one possible implementation, the sequence number of the third live data packet satisfies: S_n=S2_n–S2_0+S_0, where S_n is the sequence number of the third live data packet, S2_n is the sequence number of the target live data packet, S2_0 is the first initial sequence number, and S_0 is the second initial sequence number.

[0226] The confirmation number of the third live broadcast data packet is determined based on the confirmation number of the target live broadcast data packet, the first initial confirmation number, and the second initial confirmation number. The first initial confirmation number is the initial confirmation number used when sending the live broadcast data packet of the first live broadcast service to the terminal corresponding to the target live broadcast data packet in unicast mode. The second initial confirmation number is the initial confirmation number used when transmitting the live broadcast data packet of the first live broadcast service in multicast mode. In another way of description, the communication device can determine the confirmation number of the third live broadcast data packet based on the confirmation number of the target live broadcast data packet, the first initial confirmation number, and the second initial confirmation number. In another way of description, the confirmation number of the target live broadcast data packet, the first initial confirmation number, and the second initial confirmation number are used to determine the confirmation number of the third live broadcast data packet.

[0227] In one possible implementation, the confirmation number of the third live data packet satisfies: A_n = A2_n - A2_0 + A_0, where A_n is the confirmation number of the third live data packet, A2_n is the confirmation number of the target live data packet, A2_0 is the first initial confirmation number, and A_0 is the second initial confirmation number.

[0228] The transport layer checksum of the third live data packet is determined based on the effective payload of the third live data packet and other fields in the transport layer header of the third live data packet except the transport layer checksum, or is determined based on other fields in the transport layer header of the third live data packet except the transport layer checksum, and the transport layer header of the target live data packet. In another way of description, the communication device determines the transport layer checksum of the third live data packet based on the effective payload of the third live data packet and other fields in the transport layer header of the third live data packet except the transport layer checksum, or determines the transport layer checksum of the third live data packet based on other fields in the transport layer header of the third live data packet except the transport layer checksum, and the transport layer header of the target live data packet. The effective payload here can be understood as the data of the transport layer. The description of the data of the transport layer can be found above and will not be repeated here.

[0229] The transport layer checksum covers the transport layer header and data. There are many ways for the communication device to determine the transport layer checksum of the third live broadcast data packet, which is not limited in this application.

[0230] For example, after determining the other fields in the transport layer header of the third live data packet, excluding the transport layer checksum, the communication device recalculates the transport layer checksum of the third live data packet. Specifically, the communication device recalculates the transport layer checksum based on the payload of the third live data packet (the payload from the transport layer perspective) and the other fields in the transport layer header of the third live data packet, excluding the transport layer checksum, and fills the corresponding fields.

[0231] For another example, the communication device determines the changes in other fields in the transport layer header of the third live data packet except the transport layer checksum relative to the corresponding fields of the target live data packet, and then based on the obtained changes, calculates a new transport layer checksum based on the transport layer checksum of the target live data packet and fills in the corresponding fields.

[0232] For another example, the communication device determines the changes in other fields in the transport layer header of the third live data packet except the transport layer checksum relative to the corresponding fields of the target live data packet, and the changes in the effective payload of the third live data packet relative to the effective payload of the target live data packet, and then based on the obtained changes, calculates a new transport layer checksum on the basis of the transport layer checksum of the target live data packet and fills in the corresponding fields.

[0233] The network layer header checksum of the third live data packet is determined based on fields other than the network layer header checksum in the network layer header of the third live data packet, or based on fields other than the network layer header checksum in the network layer header of the third live data packet and the network layer header of the target live data packet. Alternatively, the communication device determines the network layer header checksum of the third live data packet based on fields other than the network layer header checksum in the network layer header of the third live data packet, or determines the network layer header checksum of the third live data packet based on fields other than the network layer header checksum in the network layer header of the third live data packet and the network layer header of the target live data packet.

[0234] The network layer header checksum only covers the network layer header (IPv4 protocol). There are many ways for the communication device to determine the network layer checksum of the third live broadcast data packet, and this application does not limit them.

[0235] For example, after determining the other fields in the network layer header of the third live data packet, excluding the network layer header checksum, the communication device recalculates the network layer header checksum of the third live data packet. Specifically, the communication device recalculates the network layer header checksum based on the other fields in the network layer header of the third live data packet, excluding the network layer header checksum, and fills the corresponding fields. For another example, the communication device determines the changes in the other fields in the network layer header of the third live data packet, excluding the network layer header checksum, relative to the corresponding fields of the target live data packet. Based on the obtained changes, the communication device calculates a new network layer header checksum based on the network layer header checksum of the target live data packet and fills the corresponding fields.

[0236] Optionally, the first initial sequence number and the first initial confirmation number are obtained by the communication device during the TCP connection establishment process, or are obtained by the communication device from other communication devices. The TCP connection establishment process can refer to the above Figure 6 Description.

[0237] Optionally, the second initial sequence number and the second initial confirmation number are pre-configured in the communication device, or are generated by the SMF and sent to the communication device.

[0238] Optionally, the destination address is a destination IP address, the transport layer checksum is a TCP checksum, and the network layer header checksum is an IP header checksum.

[0239] Step 703: The first terminal determines the first live broadcast data packet according to the third live broadcast data packet.

[0240] The first live broadcast data packet and the third live broadcast data packet have the same effective payload.

[0241] In a possible implementation, the header of the first live broadcast data packet includes at least one of the following fields: a destination port number, a destination address, a sequence number, an acknowledgment number, a transport layer checksum, or a network layer header checksum.

[0242] The destination port number of the first live broadcast data packet and the destination port number of the third live broadcast data packet are mapped to each other. The destination port number of the first live broadcast data packet is the port number of the first terminal. The destination port number of the third live broadcast data packet is the destination port number used when transmitting live broadcast data packets of the first live broadcast service via multicast. In other words, the port number of the first terminal and the destination port number of the third live broadcast data packet are mapped to each other. Alternatively, the first terminal replaces the destination port number of the third live broadcast data packet with the port number of the first terminal.

[0243] The destination address of the first live broadcast data packet and the destination address of the third live broadcast data packet are mapped to each other. The destination address of the first live broadcast data packet is the address of the first terminal. The destination address of the third live broadcast data packet is the destination address used when transmitting live broadcast data packets of the first live broadcast service via multicast. In other words, the address of the first terminal and the destination address of the third live broadcast data packet are mapped to each other. Alternatively, the first terminal replaces the destination address of the third live broadcast data packet with the address of the first terminal.

[0244] When the first terminal receives the third live broadcast data packet, the first terminal determines that the third live broadcast data packet is sent to the first terminal based on the mapping relationship between the port number of the first terminal and the destination port number of the third live broadcast data packet, and the mapping relationship between the address of the first terminal and the destination address of the third live broadcast data packet, so that the third live broadcast data packet will not be discarded.

[0245] The sequence number of the first live data packet is determined based on the sequence number of the third live data packet, the first initial sequence number, and the second initial sequence number. The first initial sequence number is the initial sequence number used when sending the live data packet of the first live service to the first terminal in unicast mode. The second initial sequence number is the initial sequence number used when transmitting the live data packet of the first live service in multicast mode. In another description, the first terminal determines the sequence number of the first live data packet based on the sequence number of the third live data packet, the second initial sequence number, and the first initial sequence number. In yet another description, the sequence number of the third live data packet, the first initial sequence number, and the second initial sequence number are used to determine the sequence number of the first live data packet.

[0246] In one possible implementation, the sequence number of the first live data packet satisfies: S3_n = S_n - S_0 + S3_0, where S3_n is the sequence number of the first live data packet, S_n is the sequence number of the third live data packet, S_0 is the second initial sequence number, and S3_0 is the first initial sequence number.

[0247] The confirmation number of the first live broadcast data packet is determined based on the confirmation number of the third live broadcast data packet, the first initial confirmation number, and the second initial confirmation number. The first initial confirmation number is the initial confirmation number used when sending the live broadcast data packet of the first live broadcast service to the first terminal using unicast. The second initial confirmation number is the initial confirmation number used when transmitting the live broadcast data packet of the first live broadcast service using multicast. Alternatively, the first terminal determines the confirmation number of the first live broadcast data packet based on the confirmation number of the third live broadcast data packet, the second initial confirmation number, and the first initial confirmation number. In yet another alternative, the confirmation number of the third live broadcast data packet, the first initial confirmation number, and the second initial confirmation number are used to determine the confirmation number of the first live broadcast data packet.

[0248] In one possible implementation, the confirmation number of the first live data packet satisfies: A3_n = A_n - A_0 + A3_0, where A3_n is the confirmation number of the first live data packet, A_n is the confirmation number of the third live data packet, A_0 is the second initial confirmation number, and A3_0 is the first initial confirmation number.

[0249] The transport layer checksum of the first live data packet is determined based on the effective payload of the first live data packet and other fields in the transport layer header of the first live data packet except the transport layer checksum, or is determined based on other fields in the transport layer header of the first live data packet except the transport layer checksum, and the transport layer header of the third live data packet. Another way of describing it is that the first terminal determines the transport layer checksum of the first live data packet based on the effective payload of the first live data packet and other fields in the transport layer header of the first live data packet except the transport layer checksum, or determines the transport layer checksum of the first live data packet based on other fields in the transport layer header of the first live data packet except the transport layer checksum, and the transport layer header of the third live data packet. The effective payload here can be understood as the data of the transport layer. The description of the data of the transport layer can be found above and will not be repeated here.

[0250] The transport layer checksum covers the transport layer header and data. There are many ways for the first terminal to determine the transport layer checksum of the first live broadcast data packet, which is not limited in this application.

[0251] For example, after determining the other fields in the transport layer header of the first live data packet, excluding the transport layer checksum, the first terminal recalculates the transport layer checksum of the first live data packet. Specifically, the first terminal recalculates the transport layer checksum based on the payload of the first live data packet (the payload from the transport layer perspective) and the other fields in the transport layer header of the first live data packet, excluding the transport layer checksum, and fills in the corresponding fields.

[0252] For another example, the first terminal determines the changes in other fields in the transport layer header of the first live data packet except the transport layer checksum relative to the corresponding fields of the third live data packet, and then based on the obtained changes, calculates a new transport layer checksum based on the transport layer checksum of the third live data packet and fills in the corresponding fields.

[0253] For another example, the first terminal determines the changes in other fields in the transport layer header of the first live broadcast data packet except the transport layer checksum relative to the corresponding fields of the third live broadcast data packet, as well as the changes in the effective payload of the first live broadcast data packet relative to the effective payload of the third live broadcast data packet, and then based on the obtained changes, calculates a new transport layer checksum on the basis of the transport layer checksum of the third live broadcast data packet and fills in the corresponding fields.

[0254] The network layer header checksum of the first live broadcast data packet is determined based on other fields in the network layer header of the first live broadcast data packet except the network layer header checksum, or based on other fields in the network layer header of the first live broadcast data packet except the network layer header checksum and the network layer header of the third live broadcast data packet. Alternatively, the first terminal determines the network layer header checksum of the first live broadcast data packet based on other fields in the network layer header of the first live broadcast data packet except the network layer header checksum, or determines the network layer header checksum of the first live broadcast data packet based on other fields in the network layer header of the first live broadcast data packet except the network layer header checksum and the network layer header of the third live broadcast data packet.

[0255] The network layer header checksum only covers the network layer header (IPv4 protocol). There are many ways for the communication device to determine the network layer checksum of the first live broadcast data packet, and this application does not limit them.

[0256] For example, after determining the other fields in the network layer header of the first live broadcast data packet, excluding the network layer header checksum, the first terminal recalculates the network layer header checksum of the first live broadcast data packet. Specifically, the first terminal recalculates the network layer header checksum based on the other fields in the network layer header of the first live broadcast data packet, excluding the network layer header checksum, and fills the network layer header checksum into the corresponding fields.

[0257] For another example, the first terminal determines the changes in other fields in the network layer header of the first live broadcast data packet except the network layer header checksum relative to the corresponding fields of the third live broadcast data packet, and then based on the obtained changes, calculates a new network layer header checksum based on the network layer header checksum of the third live broadcast data packet and fills in the corresponding fields.

[0258] Optionally, the first initial sequence number and the first initial confirmation number are obtained by the first terminal from the AF, SMF or access network device, or are obtained by the first terminal from the TCP layer of the first terminal.

[0259] Optionally, the second initial sequence number and the second initial confirmation number are pre-configured in the first terminal, or are obtained from the AF, SMF or access network equipment.

[0260] Optionally, the destination address is a destination IP address, the transport layer checksum is a TCP checksum, and the network layer header checksum is an IP header checksum.

[0261] It should be noted that, in step 703, the first terminal is used as an example, and the operation performed by the second terminal can refer to the operation performed by the first terminal. The difference from the operation of the first terminal is that the second terminal determines the second live data packet based on the third live data packet.

[0262] Thus, through the technical solution of this application, a communication device can use multicast to send live data packets with the same payload to multiple terminals using the live service. Compared to using unicast to send live data packets to multiple terminals separately, this can save transmission resources and help improve transmission resource utilization.

[0263] In one possible implementation, the communication device is an AF, and method 700 further includes: the AF sends a first message to the SMF. The first message is used to request configuration of transmission resources for transmitting a third live broadcast data packet. The transmission resources include tunnel resources for the UPF to send the third live broadcast data packet to the access network device and / or wireless transmission resources for the access network device to send the third live broadcast data packet to the first terminal and the second terminal. It should be noted that no strict distinction is made between AF and AS here. The communication device can be an AF with AS function, or an AS with AF function, or can include AF and AS. This application does not limit this. For the sake of convenience of description, it is uniformly described as AF in method 700.

[0264] Optionally, the method 700 further includes: the AF receiving second information from the SMF, wherein the second information is used to indicate that the transmission resource configuration is completed.

[0265] Optionally, the second information includes aggregation information. The aggregation information includes at least one of the following information: an initial sequence number used when transmitting live data packets of the first live broadcast service in a multicast manner, an initial acknowledgment number used when transmitting live data packets of the first live broadcast service in a multicast manner, a destination address used when transmitting live data packets of the first live broadcast service in a multicast manner, or a destination port number used when transmitting live data packets of the first live broadcast service in a multicast manner. For example, when the aggregation information is generated by the SMF, the second information includes the aggregation information.

[0266] Optionally, method 700 further includes: AF generates a mapping relationship between aggregate information and multiple initial information. The multiple initial information corresponds one-to-one to multiple terminals requesting the first live broadcast service, and the multiple terminals include a first terminal and a second terminal. The initial information includes at least one of the following information: an initial sequence number used to send a live broadcast data packet of the first live broadcast service to the terminal corresponding to the initial information in a unicast manner, or an initial confirmation number used to send a live broadcast data packet of the first live broadcast service to the terminal corresponding to the initial information in a unicast manner. In this way, after AF obtains the first live broadcast data packet and the second live broadcast data packet, it can determine at least one of the following fields of the third live broadcast data packet based on the mapping relationship: destination port number, destination address, sequence number, confirmation number, transport layer checksum, or network layer header checksum. For a specific description, please refer to step 702.

[0267] It should be noted that the aggregation information here can be pre-configured in the AF or obtained by the AF from the SMF, and this application is not limited.

[0268] Optionally, method 700 further includes: the AF sending third information to the first terminal. The third information includes at least one of the following: aggregate information, an identifier of the first terminal, or initial information corresponding to the first terminal. The aggregate information here may be pre-configured in the AF or obtained by the AF from the SMF, which is not limited in this application. The AF sends the third information to the first terminal so that the first terminal can restore the third live broadcast data packet into the first live broadcast data packet based on the third information.

[0269] Optionally, method 700 further includes: the first terminal generating a mapping relationship between the aggregated information and the initial information corresponding to the first terminal. In this way, when the first terminal receives the third live broadcast data packet, the third live broadcast data packet can be restored to the first live broadcast data packet based on the mapping relationship. For a detailed description, please refer to step 703.

[0270] In another possible implementation, the communication device is a UPF, and the method 700 further includes: the AF sends seventh information to the SMF, wherein the seventh information includes the address of the application server of the first live broadcast service and the port number of the first live broadcast service; the SMF sends fourth information to the UPF, wherein the fourth information includes a detection condition of the data packet, and the detection condition includes: the source address is the address of the application server of the first live broadcast service, the source port number is the port number of the first live broadcast service, the confirmation flag is 1, and the synchronization flag is 1; the UPF detects at least one data packet based on the fourth information, wherein the at least one data packet meets the detection condition in the fourth information; the UPF sends information of the at least one data packet to the SMF, wherein, The information of at least one data packet includes at least one initial information, and the initial information includes at least one of the following information: an initial sequence number used for sending a live data packet of the first live service to a terminal corresponding to the initial information in a unicast manner, or an initial confirmation number used for sending a live data packet of the first live service to a terminal corresponding to the initial information in a unicast manner; the SMF configures, based on the information of the at least one data packet received, a transmission resource for transmitting a live data packet of the first live service in a multicast manner, wherein the transmission resources include a tunnel resource for the UPF to send a third live data packet to the access network device and / or a wireless transmission resource for the access network device to send the third live data packet to the first terminal and the second terminal.

[0271] Optionally, method 700 further includes: the UPF receiving fifth information from the SMF. The fifth information is used to trigger the UPF to transmit the live data packet of the first live broadcast service via multicast. In this way, the UPF sends the third live data packet to the first terminal and the second terminal via multicast based on the fifth information, the first live data packet, and the second live data packet.

[0272] Optionally, the fifth information includes aggregation information. The aggregation information includes at least one of the following information: an initial sequence number used when transmitting live data packets of the first live broadcast service in a multicast manner, an initial acknowledgment number used when transmitting live data packets of the first live broadcast service in a multicast manner, a destination address used when transmitting live data packets of the first live broadcast service in a multicast manner, or a destination port number used when transmitting live data packets of the first live broadcast service in a multicast manner. For example, when the aggregation information is generated by the SMF, the fifth information includes the aggregation information.

[0273] Optionally, method 700 also includes: before the UPF sends information of at least one data packet to the SMF, the UPF determines that the number of at least one data packet reaches a preset threshold; or before the SMF configures transmission resources, the SMF determines that the number of at least one data packet reaches a preset threshold.

[0274] Optionally, method 700 further includes: the UPF generating a mapping relationship between the aggregated information and the multiple initial information. The multiple initial information corresponds one-to-one to the multiple terminals requesting the first live broadcast service, the multiple terminals including the first terminal and the second terminal. Thus, after the UPF obtains the first live broadcast data packet and the second live broadcast data packet, it can determine at least one of the following fields of the third live broadcast data packet based on the mapping relationship: destination port number, destination address, sequence number, acknowledgment number, transport layer checksum, or network layer header checksum. For a detailed description, please refer to step 702.

[0275] It should be noted that the aggregation information here can be pre-configured in the UPF or obtained by the UPF from the SMF, and this application is not limited.

[0276] Optionally, method 700 further includes: the SMF sending third information to the first terminal. The third information includes at least one of the following: aggregate information, an identifier of the first terminal, or initial information corresponding to the first terminal. The aggregate information here may be pre-configured in the SMF or generated by the SMF, and this application is not limited thereto. The SMF sends the third information to the first terminal so that the first terminal can restore the third live broadcast data packet to the first live broadcast data packet based on the third information.

[0277] Optionally, method 700 further includes: the first terminal generating a mapping relationship between the aggregated information and the initial information corresponding to the first terminal. In this way, when the first terminal receives the third live broadcast data packet, the third live broadcast data packet can be restored to the first live broadcast data packet based on the mapping relationship. For a detailed description, please refer to step 703.

[0278] In another possible implementation, the communication device is a wireless access network device, and the method 700 further includes: the AF sends seventh information to the SMF, wherein the seventh information includes the address of the application server of the first live broadcast service and the port number of the first live broadcast service; the SMF sends fourth information to the UPF, wherein the fourth information includes a detection condition of the data packet, and the detection condition includes: the source address is the address of the application server of the first live broadcast service, the source port number is the port number of the first live broadcast service, the confirmation flag is 1, and the synchronization flag is 1; the UPF detects at least one data packet based on the fourth information, wherein the at least one data packet meets the detection condition in the fourth information; the UPF sends information of at least one data packet to the SMF, wherein at least one data packet meets the detection condition in the fourth information. The information of the data packet includes at least one initial information, and the initial information includes at least one of the following information: an initial sequence number used for sending the live data packet of the first live service to the terminal corresponding to the initial information in unicast mode, or an initial confirmation number used for sending the live data packet of the first live service to the terminal corresponding to the initial information in unicast mode; the SMF sends sixth information to the wireless access network device based on the information of the at least one data packet received, wherein the sixth information includes information for triggering the wireless access network device to transmit the live data packet of the first live service in multicast mode; the wireless access network device configures wireless transmission resources based on the sixth information, wherein the wireless transmission resources are used to transmit the live data packet of the first live service in multicast mode.

[0279] Optionally, method 700 also includes: before the UPF sends information of at least one data packet to the SMF, the UPF determines that the number of at least one data packet reaches a preset threshold; or, before the SMF sends the sixth information to the wireless access network device, the SMF determines that the number of at least one data packet reaches a preset threshold.

[0280] Optionally, the sixth information includes at least one of the following information: aggregation information, an identifier of the first terminal, and initial information corresponding to the first terminal. The aggregation information includes at least one of the following information: an initial sequence number used when transmitting live data packets of the first live broadcast service in a multicast manner, an initial confirmation number used when transmitting live data packets of the first live broadcast service in a multicast manner, a destination address used when transmitting live data packets of the first live broadcast service in a multicast manner, or a destination port number used when transmitting live data packets of the first live broadcast service in a multicast manner.

[0281] Optionally, method 700 further includes: the wireless access network device generating a mapping relationship between the aggregated information and the multiple initial information. The multiple initial information corresponds one-to-one to multiple terminals requesting the first live broadcast service, the multiple terminals including the first terminal and the second terminal. Thus, after the wireless access network device obtains the first live broadcast data packet and the second live broadcast data packet, it can determine, based on the mapping relationship, at least one of the following fields of the third live broadcast data packet: destination port number, destination address, sequence number, acknowledgment number, transport layer checksum, or network layer header checksum. For a detailed description, please refer to step 702.

[0282] Optionally, method 700 further includes: the radio access network device sending at least one of the following information to the first terminal: aggregate information and initial information corresponding to the first terminal. The aggregate information here may be preconfigured in the radio access network device or obtained from the SMF, and this application is not limited thereto. The radio access network device sends the aggregate information and the initial information corresponding to the first terminal to the first terminal, so that the first terminal can restore the third live broadcast data packet into the first live broadcast data packet based on the aggregate information and the initial information corresponding to the first terminal.

[0283] Optionally, method 700 further includes: the first terminal generating a mapping relationship between the aggregated information and the initial information corresponding to the first terminal. In this way, when the first terminal receives the third live broadcast data packet, the third live broadcast data packet can be restored to the first live broadcast data packet based on the mapping relationship. For a detailed description, please refer to step 703.

[0284] It should be noted that, in method 700 , the first terminal is taken as an example, and the operations performed by the second terminal may refer to the operations performed by the first terminal.

[0285] For ease of understanding, the following Figures 8 to 14 The embodiments of the present application are described illustratively. Figures 8 to 14 The AF and AS in the description are AF and AS related to the live data distribution of the live broadcast service. The AF and AS may be separate functions or network elements, or they may be combined together, which is not limited in this application. Figures 8 to 14 The description is given by taking AF and AS as independent functions or network elements as an example.

[0286] For the convenience of description, the transmission resources, wireless transmission resources, and tunnel resources used to transmit live data of live services in multicast mode will be referred to as aggregated transmission resources, aggregated wireless transmission resources, and aggregated tunnel resources below; the live data of live services transmitted in multicast mode will be referred to as aggregated data packets; the initial sequence number, initial confirmation number, destination IP address, and destination port number used when the AS sends live data packets to multiple UEs in multicast mode will be referred to as aggregated initial sequence number, aggregated initial sequence number, aggregated destination IP address, and aggregated destination port number; the initial sequence number, initial confirmation number, destination IP address, and destination port number used when the AS sends live data packets to UEs in unicast mode will be referred to as initial sequence number, initial sequence number, destination IP address, and destination port number.

[0287] Figure 8 FIG. 8 is a schematic flow chart of a method 800 for transmitting data provided in an embodiment of the present application. The method 800 may include the following steps.

[0288] Step 801: UE1, UE2 and UE3 respectively establish unicast sessions.

[0289] The specific implementation method of establishing the unicast session among UE1, UE2 and UE3 may refer to the existing method, which will not be described in detail here.

[0290] In step 802, UE1, UE2, and UE3 establish TCP connections with the AS respectively.

[0291] The specific implementation method of UE1, UE2 and UE3 establishing TCP connection with AS can refer to the above Figure 6 , I will not go into details here.

[0292] Step 803: AF determines that a preset condition is met.

[0293] The preset condition is used to configure the aggregate transmission resources. In one possible implementation, the preset condition includes: the number of UEs requesting the same live data is greater than or equal to a preset threshold. Optionally, the preset value is 2.

[0294] In one possible implementation, the AF determines whether UE1, UE2, and UE3 request the same live data based on at least one of the destination IP address and destination port number of the first segment, the source IP address and source port number of the second segment, and the destination IP address and destination port number of the third segment during the TCP connection establishment process. For example, if the source IP address and source port number in the second segment sent to UE1, the source IP address and source port number in the second segment sent to UE2, and the source IP address and source port number in the second segment sent to UE3 are the same, the AF determines that UE1, UE2, and UE3 request the same live data. For another example, if the source IP address and source port number in the second message segment sent to UE1, the source IP address and source port number in the second message segment sent to UE2, and the source IP address and source port number in the second message segment sent to UE3 are the same, and AF sends the second message segment to UE1, UE2 and UE3 within a certain time range (for example, within a specific short time period before the live broadcast starts or after the live broadcast starts), then AF determines that UE1, UE2 and UE3 request the same live broadcast data.

[0295] In another possible implementation, if multiple UEs request the same media segment at the application layer, the AF determines that the multiple UEs request the same live data. For example, if UE1, UE2, and UE3 request the same media segment via application layer signaling, the AF determines that UE1, UE2, and UE3 request the same live data.

[0296] Step 804: AS and AF obtain initial information of UE1, UE2 and UE3.

[0297] Among them, UE1, UE2 and UE3 request the same live data. The initial information includes at least one of the following information: initial sequence number and initial confirmation number. The description of initial sequence number and initial confirmation number can be found in Figure 6 , I will not go into details here.

[0298] In some implementations, if aggregation information is pre-configured in the AS, the AS can generate the initial information of UE1, UE2 and UE3, the correspondence between the quadruple corresponding to UE1, UE2 and UE3 and the aggregation information, wherein the aggregation information includes at least one of the following information: the aggregation initial sequence number, the aggregation initial confirmation number, the aggregation destination IP address, and the aggregation destination port number.

[0299] For example, AS generates the corresponding relationship shown in Table 1, where quadruple 1 includes the source IP address, destination IP address, source port number, and destination port number of UE1, quadruple 2 includes the source IP address, destination IP address, source port number, and destination port number of UE2, and quadruple 3 includes the source IP address, destination IP address, source port number, and destination port number of UE3.

[0300] Table 1

[0301]

[0302] Step 805: AF sends first information to SMF.

[0303] Accordingly, the SMF receives the first information from the AF.

[0304] The first message is used to request configuration of aggregated transmission resources, where the aggregated transmission resources may include aggregated radio transmission resources between the UE and the RAN, and aggregated tunnel resources between the RAN and the UPF.

[0305] Optionally, the first information includes at least one of aggregate information, a UE ID of UE1 and initial information of UE1, a UE ID of UE2 and initial information of UE2, and a UE ID of UE3 and initial information of UE3. The aggregate information includes at least one of the following information: an aggregate initial sequence number, an aggregate initial acknowledgment number, an aggregate destination IP address, and an aggregate destination port number.

[0306] Step 806: SMF sends a second message to AMF.

[0307] Accordingly, the AMF receives the second message from the SMF.

[0308] The second message is used by the RAN to configure aggregated transmission resources. The aggregated transmission resources may include aggregated radio transmission resources between the UE and the RAN, and aggregated tunnel resources between the RAN and the UPF. The second message may carry an N2 message container.

[0309] Optionally, the second message may also carry an N1 message container sent to UE1, an N1 message container sent to UE2, and an N1 message container sent to UE3. The N1 message container includes aggregation information and / or the initial information of the UE corresponding to the NI message container. For example, the N1 message container sent to UE1 includes aggregation information and / or the initial information of UE1, the N1 message container sent to UE2 includes aggregation information and / or the initial information of UE2, and the N1 message container sent to UE3 includes aggregation information and / or the initial information of UE3, so that the RAN sends the aggregation information and the initial information of the UE to the corresponding UE. The aggregation information may be pre-configured in the SMF, received by the SMF from the AF, or generated by the SMF, which is not limited in this application.

[0310] In one possible implementation, SMF sends Namf_Communication_N1N2MessageTransfer to AMF.

[0311] Step 807: AMF sends an N2 message to the RAN.

[0312] Accordingly, the RAN receives the N2 message from the AMF.

[0313] Among them, the N2 message is used by the RAN to configure aggregated transmission resources.

[0314] In step 808, the AMF sends an N1 message to UE1, UE2, and UE3 through the RAN.

[0315] The N1 message includes the aggregation information and the initial information of the UE corresponding to the N1 message. For example, the N1 message sent to UE3 may include the aggregation information and the initial information of UE3.

[0316] It should be noted that step 808 is an optional step. For example, step 808 may not be performed when the UE is pre-configured with aggregation information. For another example, step 808 may be performed when the aggregation information is generated by the SMF.

[0317] Step 809: The UE generates a correspondence between the initial information, the IP address of the UE, the port number of the UE and the aggregation information.

[0318] For example, the UE may generate a corresponding relationship as shown in Table 2, where the quadruple X includes the aggregation source IP address (e.g., the IP address of the AS), the aggregation destination IP address, the aggregation source port number (e.g., the port number of the AS related to the live broadcast service), and the aggregation destination port number. Table 2 takes UE3 as an example. The corresponding relationship generated by UE1 and UE2 is similar to Table 2 and is not repeated here.

[0319] Table 2

[0320]

[0321] In a possible implementation, if the UE receives an N1 message from the RAN, the UE may generate a correspondence between the initial information, the UE's IP address, the UE's port number, and the aggregation information according to the N1 message.

[0322] In another possible implementation, if the UE is pre-configured with aggregation information, the UE generates the above-mentioned correspondence based on the pre-configured aggregation information. For example, the UE may obtain initial information from the transport layer or the network layer and obtain the aggregation information locally. Furthermore, the UE may generate a correspondence between the initial information, the UE's IP address, the UE's port number, and the aggregation information.

[0323] Step 810: RAN configures aggregated radio transmission resources according to the N2 message.

[0324] In a possible implementation, the RAN performs RRC reconfiguration according to the N2 message to configure aggregated radio transmission resources.

[0325] In step 811, the RAN, AMF, SMF, and UPF construct an aggregation tunnel from the UPF to the RAN.

[0326] In one possible implementation, the RAN allocates the information of the aggregation tunnel according to the N2 message and sends it to the SMF through the AMF; the SMF configures the UPF to obtain the downlink aggregation tunnel from the UPF to the RAN.

[0327] Step 812: The SMF sends the second information to the AF.

[0328] Accordingly, the AF receives the second information from the SMF.

[0329] The second information is response information of the first information, and the second information is used to indicate that the configuration of the aggregated transmission resources has been completed.

[0330] Optionally, if the aggregation information is generated by the SMF, the second information includes the aggregation information. If the AS does not generate the correspondence between the initial information of UE1, UE2 and UE3, the quadruple corresponding to UE1, UE2 and UE3 and the aggregation information in step 804, the correspondence is generated in step 812.

[0331] Step 813: The AS determines the aggregated data packet.

[0332] In one possible implementation, the AS obtains downlink unicast data packets of UE1, UE2, and UE3; the AS selects a downlink unicast data packet from the three downlink unicast data packets, and replaces the destination IP address in the header of the downlink unicast data packet with the aggregated destination IP address, replaces the destination port number in the header of the downlink unicast data packet with the aggregated destination port number, replaces the sequence number in the header of the downlink unicast data packet with the aggregated sequence number, replaces the acknowledgment number in the header of the downlink unicast data packet with the aggregated acknowledgment number, recalculates the TCP checksum, and optionally recalculates the IP header checksum, and fills in the corresponding fields, thereby obtaining an aggregated data packet.

[0333] Take modifying the downlink unicast data packet of UE3 to obtain the aggregated data packet as an example, Figure 9As shown, the downlink unicast data packets of UE1, UE2 and UE3 pass the checksum check. At the aggregation layer AS, the destination port number Port_3 in the TCP header of the downlink unicast data packet of UE3 is replaced with Port_X, the sequence number SA2U3_1 is replaced with SX_1, and the acknowledgment number AA2U3_1 is replaced with AX_1. The TCP checksum TCS_X in the TCP header is recalculated based on the TCP checksum TCS_1 and the modified content. The destination IP address IP_3 in the IP header of the downlink unicast data packet of UE3 is replaced with IP_X. Optionally, the checksum in the IP header is recalculated to obtain ICS_X. The modified downlink unicast data packet is the aggregation data packet. Among them, SX_1 = SA2U3_1–SA2U3_0+SX_0, AX_1 = AA2U3_1–AA2U3_0+AX_0, where SA2U3_0 is the initial sequence number of UE3, SX_0 is the aggregate initial sequence number, AA2U3_0 is the initial acknowledgment number of UE3, and AX_0 is the aggregate initial acknowledgment number.

[0334] In another possible implementation, after determining that UE1, UE2, and UE3 are requesting the same live data, the AS can determine an aggregated data packet at the application layer. The destination port number in the TCP header of the aggregated data packet is port_X, the sequence number is SX_1, the acknowledgment number is AX_1, and the checksum is TCS_X. The destination IP address in the IP header is IP_X, and the checksum is ICS_X. Here, SX_1 = SA2U3_1–SA2U3_0+SX_0, and AX_1 = AA2U3_1–AA2U3_0+AX_0. SA2U3_0 is UE3's initial sequence number, SX_0 is the aggregated initial sequence number, AA2U3_0 is UE3's initial acknowledgment number, and AX_0 is the aggregated initial acknowledgment number.

[0335] Step 814: AS sends the aggregated data packet to UE1, UE2, and UE3 via multicast.

[0336] In one possible implementation, the AS sends an aggregated data packet to the UPF through the N6 interface, the UPF sends the aggregated data packet to the RAN through the aggregation tunnel, and the RAN sends the aggregated data packet to the UE through PTM / PTP.

[0337] Step 815: After receiving the aggregated data packet, UE1, UE2 and UE3 convert the aggregated data packet and then submit it to the TCP / IP protocol stack.

[0338] In a possible implementation, the UE maps and calculates the header of the aggregated data packet according to the correspondence between the initial information, the UE's IP address, the UE's port number and the aggregated information, and then submits it to the TCP / IP protocol stack.

[0339] Taking UE3 as an example, Figure 10 As shown, after receiving the aggregated data packet, UE3 modifies the aggregated data packet header through the aggregation conversion module that matches the quadruple X. Specifically, the destination port number Port_X in the TCP header of the aggregated data packet is replaced with Port_3, the sequence number SX_1 is replaced with SA2U3_1, and the acknowledgment number AX_1 is replaced with AA2U3_1. The TCP checksum TCS_3 is recalculated based on TCS_X and the modified content. The destination IP address IP_X in the IP header is replaced with IP_3, and the IP checksum ICS_3 is optionally recalculated. UE3 then submits the resulting data packet to the TCP / IP protocol stack. Here, SA2U3_1 = SX_1 – SX_0 + SA2U3_0, and AA2U3_1 = AX_1 – AX_0 + AA2U3_0, where SA2U3_0 is UE3's initial sequence number, SX_0 is the aggregated initial sequence number, AA2U3_0 is UE3's initial acknowledgment number, and AX_0 is the aggregated initial acknowledgment number.

[0340] Subsequently, the UE can deliver the data packets processed by the TCP / IP protocol stack to the live broadcast client.

[0341] Figure 11 FIG1 is a schematic flow chart of a method 1100 for transmitting data provided in an embodiment of the present application. The method 1100 may include the following steps.

[0342] Step 1101: UE1, UE2, and UE3 establish unicast sessions respectively.

[0343] The specific implementation method of establishing the unicast session among UE1, UE2 and UE3 may refer to the existing method, which will not be described in detail here.

[0344] Step 1102: AF notifies SMF of the seventh information.

[0345] Accordingly, the SMF receives the seventh information from the AF.

[0346] The seventh information is information related to the live broadcast service. In one implementation, the seventh information includes the IP address of the AS associated with the live broadcast service and the port number associated with the live broadcast service. For example, if the IP address of the AS associated with the live broadcast service is IP_A and the port associated with the live broadcast service is Port_A, the seventh information includes the port number of IP_A and Port_A.

[0347] Step 1103: SMF sends the fourth information to UPF.

[0348] Accordingly, the UPF receives the fourth information from the SMF.

[0349] The fourth information includes a detection condition of the data packet.

[0350] In one possible implementation, the detection conditions include: the source IP address is the IP address of an AS related to the live broadcast service, and the source port number is the port number related to the live broadcast service. This can be understood as the SMF instructing the UPF to detect downlink data packets with the source IP address being the IP address of an AS related to the live broadcast service, the source port number being the port number related to the live broadcast service, and the SYN flag and ACK flag being 1.

[0351] Optionally, the fourth information also includes a preset threshold.

[0352] In one possible implementation, the SMF sends the fourth information to the UPF via an N4 session modification request (N4 Session ModificationRequest).

[0353] In step 1104, UE1, UE2, and UE3 establish TCP connections with the AS respectively.

[0354] Step 1105, UPF reports the TCP connection information to SMF.

[0355] In one possible implementation, the UPF detects, based on the fourth information, a downlink data packet whose source IP address is the IP address of the AS related to the live broadcast service, whose source port number is the port number related to the live broadcast service, and whose SYN flag and ACK flag are 1, and reports the TCP connection information when a downlink data packet that meets the detection conditions is detected. The TCP connection information includes initial information. The initial information includes an initial sequence number and an initial acknowledgment number. Optionally, the TCP connection information also includes the UE ID of the terminal corresponding to the initial information. The IP address of the terminal corresponding to the UE ID is the destination IP address of the downlink data packet, and the port of the terminal corresponding to the UE ID is the destination port of the downlink data packet.

[0356] In another possible implementation, the UPF detects, based on the fourth information, downlink data packets whose source IP address is the IP address of the AS related to the live broadcast service, whose source port number is the port number related to the live broadcast service, and whose SYN flag and ACK flag are 1, and reports the TCP connection information to the SMF when it detects that the number of downlink data packets that meet the detection conditions is greater than or equal to a preset threshold. In this case, the TCP connection information includes multiple groups of UE IDs and initial information, for example, the TCP connection information includes the UE ID of UE1 and the initial information of UE1, the UE ID of UE2 and the initial information of UE2, and the UE ID of UE3 and the initial information of UE3. The preset threshold can be sent by the SMF to the UPF, or it can be pre-configured in the UPF.

[0357] One possible implementation method is that UPF reports the TCP connection information to SMF through N4 Session Report.

[0358] In some implementations, if aggregation information is preconfigured in the UPF, the UPF may generate a correspondence between the initial information of UE1, UE2, and UE3, the quadruple corresponding to UE1, UE2, and UE3, and the aggregation information, where the aggregation information includes at least one of the following: an aggregate initial sequence number, an aggregate initial acknowledgment number, an aggregate destination IP address, and an aggregate destination port number. For example, the UPF may generate the correspondence shown in Table 1 above.

[0359] Step 1106: SMF sends a second message to AMF.

[0360] Accordingly, the AMF receives the second message from the SMF.

[0361] The second message is used by the RAN to configure aggregated transmission resources. The aggregated transmission resources may include aggregated radio transmission resources between the UE and the RAN, and aggregated tunnel resources between the RAN and the UPF. The second message may carry an N2 message container.

[0362] Optionally, the second message may also carry an N1 message container sent to UE1, an N1 message container sent to UE2, and an N1 message container sent to UE3. The N1 message container includes aggregation information and / or the initial information of the UE corresponding to the NI message container. For example, the N1 message container sent to UE1 includes aggregation information and / or the initial information of UE1, the N1 message container sent to UE2 includes aggregation information and / or the initial information of UE2, and the N1 message container sent to UE3 includes aggregation information and / or the initial information of UE3, so that the RAN sends the aggregation information and the initial information of the UE to the corresponding UE. The aggregation information may be pre-configured in the SMF, generated by the SMF, or sent by the UPF to the SMF, which is not limited in this application.

[0363] In some implementations, if the UPF reports TCP connection information upon detecting a downlink data packet that meets the conditions, the SMF further determines whether a preset condition is met, where the preset condition is used to configure aggregate transmission resources. When the SMF determines that the preset condition is met, the SMF sends a second message to the AMF. In one possible implementation, the preset condition includes: the number of UEs requesting the same live data is greater than or equal to a preset threshold. Optionally, the preset value is 2.

[0364] In other implementations, if the UPF reports the TCP connection information to the SMF when it detects that the number of downlink data packets that meet the conditions is greater than or equal to a preset threshold, the SMF can send a second message to the AMF after receiving the TCP connection information reported by the UPF.

[0365] In one possible implementation, SMF sends Namf_Communication_N1N2MessageTransfer to AMF.

[0366] Step 1107: AMF sends an N2 message to the RAN.

[0367] Accordingly, the RAN receives the N2 message from the AMF.

[0368] Among them, the N2 message is used by the RAN to configure aggregated transmission resources.

[0369] In step 1108, the AMF sends an N1 message to UE1, UE2, and UE3 through the RAN.

[0370] The N1 message includes the aggregate information and the initial information of the UE corresponding to the N1 message. For example, the N1 message sent to UE3 may include the aggregate information and the initial information of UE3.

[0371] It should be noted that step 1108 is an optional step. For example, step 1108 may not be performed when the UE is pre-configured with aggregation information. For another example, step 1108 may be performed when the aggregation information is generated by the SMF.

[0372] Step 1109: The UE generates a correspondence between the initial information, the UE's IP address, the UE's port number, and the aggregation information.

[0373] For example, the UE may generate the corresponding relationship shown in Table 2 above.

[0374] In a possible implementation, if the UE receives an N1 message from the RAN, the UE may generate a correspondence between the initial information, the UE's IP address, the UE's port number, and the aggregation information according to the N1 message.

[0375] In another possible implementation, if the UE is pre-configured with aggregation information, the UE generates the above-mentioned correspondence based on the pre-configured aggregation information. For example, the UE may obtain the initial information from the transport layer or network layer and the aggregation information locally. Furthermore, the UE may generate a correspondence between the initial information, the UE's IP address, the UE's port number, and the aggregation information.

[0376] Step 1110: RAN configures aggregated radio transmission resources according to the N2 message.

[0377] In a possible implementation, the RAN performs RRC reconfiguration according to the N2 message to configure aggregated radio transmission resources.

[0378] In step 1111, RAN, AMF, SMF, and UPF construct an aggregation tunnel from UPF to RAN.

[0379] In one possible implementation, the RAN allocates the information of the aggregation tunnel according to the N2 message and sends it to the SMF through the AMF; the SMF configures the UPF to obtain the downlink aggregation tunnel from the UPF to the RAN.

[0380] Step 1112: SMF sends the fifth information to UPF.

[0381] Accordingly, the UPF receives the fifth information from the SMF.

[0382] Among them, the fifth information is used to instruct the UPF to perform data packet aggregation.

[0383] Optionally, if the SMF generates the aggregation information, the fifth information includes the aggregation information. If the UPF does not generate the correspondence between the initial information of UE1, UE2, and UE3, the quadruple corresponding to UE1, UE2, and UE3, and the aggregation information in step 1105, then the correspondence is generated in step 1112.

[0384] Step 1113: AS broadcasts data to UPF via unicast.

[0385] Accordingly, the UPF receives live data from the AS.

[0386] For example, the AS sends downlink unicast data packets of UE1, UE2, and UE3 to the UPF respectively, and accordingly, the UPF receives downlink unicast data packets of UE1, UE2, and UE3 from the AS.

[0387] In step 1114, the UPF determines the aggregated data packet.

[0388] A possible implementation method is that after receiving the downlink unicast data packets from UE1, UE2 and UE3, the UPF selects a downlink unicast data packet from the three downlink unicast data packets, and replaces the destination IP address in the header of the downlink unicast data packet with the aggregated destination IP address, replaces the destination port number in the header of the downlink unicast data packet with the aggregated destination port number, replaces the sequence number in the header of the downlink unicast data packet with the aggregated sequence number, replaces the confirmation number in the header of the downlink unicast data packet with the aggregated confirmation number, recalculates the TCP checksum, and optionally recalculates the IP header checksum, and fills in the corresponding fields to obtain an aggregated data packet.

[0389] Take modifying the downlink unicast data packet of UE3 to obtain the aggregated data packet as an example, Figure 12 As shown, the downlink unicast data packets of UE1, UE2 and UE3 pass the checksum check. AS transmits the downlink unicast data packets of UE1, UE2 and UE3 to UPF. UPF replaces the destination port number Port_3 in the TCP header of UE3's downlink unicast data packet with Port_X, replaces the sequence number SA2U3_1 with SX_1, replaces the acknowledgment number AA2U3_1 with AX_1, recalculates the TCP checksum TCS_X in the TCP header based on the TCP checksum TCS_1 and the modified content, replaces the destination IP address IP_3 in the IP header of UE3's downlink unicast data packet with IP_X, and optionally recalculates the checksum in the IP header to obtain ICS_X. The modified downlink unicast data packet is the aggregated data packet. Among them, SX_1 = SA2U3_1–SA2U3_0+SX_0, AX_1 = AA2U3_1–AA2U3_0+AX_0, where SA2U3_0 is the initial sequence number of UE3, SX_0 is the aggregate initial sequence number, AA2U3_0 is the initial acknowledgment number of UE3, and AX_0 is the aggregate initial acknowledgment number.

[0390] Step 1115: UPF sends the aggregated data packet to UE1, UE2, and UE3 via multicast.

[0391] In one possible implementation, the UPF sends an aggregated data packet to the RAN through an aggregation tunnel, and the RAN sends the aggregated data packet to the UE through PTM / PTP.

[0392] Step 1116: After receiving the aggregated data packet, UE1, UE2, and UE3 convert the aggregated data packet and then submit it to the TCP / IP protocol stack.

[0393] In a possible implementation, the UE maps and calculates the header of the aggregated data packet according to the correspondence between the initial information, the UE's IP address, the UE's port number and the aggregated information, and then submits it to the TCP / IP protocol stack.

[0394] Taking UE3 as an example, Figure 10As shown, after receiving the aggregated data packet, UE3 modifies the aggregated data packet header through the aggregation conversion module that matches the quadruple X. Specifically, the destination port number Port_X in the TCP header of the aggregated data packet is replaced with Port_3, the sequence number SX_1 is replaced with SA2U3_1, and the acknowledgment number AX_1 is replaced with AA2U3_1. The TCP checksum TCS_3 is recalculated based on TCS_X and the modified content. The destination IP address IP_X in the IP header is replaced with IP_3, and the IP checksum ICS_3 is optionally recalculated. UE3 then submits the resulting data packet to the TCP / IP protocol stack. Here, SA2U3_1 = SX_1 – SX_0 + SA2U3_0, and AA2U3_1 = AX_1 – AX_0 + AA2U3_0, where SA2U3_0 is UE3's initial sequence number, SX_0 is the aggregated initial sequence number, AA2U3_0 is UE3's initial acknowledgment number, and AX_0 is the aggregated initial acknowledgment number.

[0395] Subsequently, the UE can deliver the data packets processed by the TCP / IP protocol stack to the live broadcast client.

[0396] Figure 13 FIG1 is a schematic flow chart of a method 1300 for transmitting data provided in an embodiment of the present application. The method 1300 may include the following steps.

[0397] In step 1301, UE1, UE2, and UE3 respectively establish unicast sessions.

[0398] The specific implementation method of establishing the unicast session among UE1, UE2 and UE3 may refer to the existing method, which will not be described in detail here.

[0399] Step 1302: AF notifies SMF of the seventh information.

[0400] Accordingly, the SMF receives the seventh information from the AF.

[0401] The seventh information is information related to the live broadcast service. In one implementation, the seventh information includes the IP address of the AS associated with the live broadcast service and the port number associated with the live broadcast service. For example, if the IP address of the AS associated with the live broadcast service is IP_A and the port associated with the live broadcast service is Port_A, the seventh information includes the port number of IP_A and Port_A.

[0402] Step 1303: SMF sends the fourth information to UPF.

[0403] Accordingly, the UPF receives the fourth information from the SMF.

[0404] The fourth information includes a detection condition of the data packet.

[0405] One possible implementation is

[0406] The detection conditions include: the source IP address is the IP address of the AS related to the live broadcast service, and the source port number is the port number related to the live broadcast service. It can be understood that the SMF instructs the UPF to detect the downlink data packet with the source IP address being the IP address of the AS related to the live broadcast service, the source port number being the port number related to the live broadcast service, and the SYN flag and ACK flag being 1.

[0407] Optionally, the fourth information also includes a preset threshold.

[0408] In one possible implementation, the SMF sends the fourth information to the UPF via an N4 session modification request (N4 Session ModificationRequest).

[0409] In step 1304, UE1, UE2, and UE3 establish TCP connections with the AS respectively.

[0410] Step 1305: UPF reports the TCP connection information to SMF.

[0411] In one possible implementation, the UPF detects, based on the fourth information, a downlink data packet whose source IP address is the IP address of the AS related to the live broadcast service, whose source port number is the port number related to the live broadcast service, and whose SYN flag and ACK flag are 1, and reports the TCP connection information after detecting the downlink data packet that meets the detection conditions. The TCP connection information includes initial information. The initial information includes an initial sequence number and an initial acknowledgment number. Optionally, the TCP connection information also includes the UE ID of the terminal corresponding to the initial information. The IP address of the terminal corresponding to the UE ID is the destination IP address of the downlink data packet, and the port of the terminal corresponding to the UE ID is the destination port of the downlink data packet.

[0412] In another possible implementation, the UPF detects, based on the fourth information, downlink data packets whose source IP address is the IP address of the AS related to the live broadcast service, whose source port number is the port number related to the live broadcast service, and whose SYN flag and ACK flag are 1, and reports the TCP connection information to the SMF when it detects that the number of downlink data packets that meet the detection conditions is greater than or equal to a preset threshold. In this case, the TCP connection information includes multiple groups of UE IDs and initial information, for example, the TCP connection information includes the UE ID of UE1 and the initial information of UE1, the UE ID of UE2 and the initial information of UE2, and the UE ID of UE3 and the initial information of UE3. The preset threshold can be sent by the SMF to the UPF, or it can be pre-configured in the UPF.

[0413] One possible implementation method is that UPF reports the TCP connection information to SMF through N4 Session Report.

[0414] Step 1306: SMF sends the fifth message to AMF.

[0415] Accordingly, the AMF receives the fifth message from the SMF.

[0416] The fifth message is used by the RAN to configure aggregated transmission resources related to the live broadcast service and also includes information instructing the RAN to perform packet aggregation. The aggregated transmission resources include aggregated wireless transmission resources between the UE and the RAN. In one possible implementation, the fifth message may carry an N2 message container, which is used by the RAN to configure aggregated transmission resources related to the live broadcast service and includes information instructing the RAN to perform packet aggregation.

[0417] Optionally, the N2 message container further includes at least one of aggregation information, UE ID of UE1 and initial information of UE1, UE ID of UE2 and initial information of UE2, and UE ID of UE3 and initial information of UE3.

[0418] Optionally, the fifth message may also carry an N1 message container sent to UE1, an N1 message container sent to UE2, and an N1 message container sent to UE3. The N1 message container includes aggregation information and / or the initial information of the UE corresponding to the NI message container. For example, the N1 message container sent to UE1 includes aggregation information and / or the initial information of UE1, the N1 message container sent to UE2 includes aggregation information and / or the initial information of UE2, and the N1 message container sent to UE3 includes aggregation information and / or the initial information of UE3, so that the RAN sends the aggregation information and the initial information of the UE to the corresponding UE. The aggregation information can be pre-configured in the SMF or generated by the SMF, which is not limited in this application.

[0419] In one possible implementation, SMF sends Namf_Communication_N1N2MessageTransfer to AMF.

[0420] Step 1307: AMF sends an N2 message to the RAN.

[0421] Accordingly, the RAN receives the N2 message from the AMF.

[0422] The N2 message is used by the RAN to configure aggregation transmission resources, and the N2 message includes information for instructing the RAN to perform data packet aggregation.

[0423] In some implementations, the RAN may generate a correspondence between the initial information of UE1, UE2, and UE3, the corresponding quadruple of UE1, UE2, and UE3, and aggregate information, where the aggregate information includes at least one of the following: an aggregate initial sequence number, an aggregate initial acknowledgment number, an aggregate destination IP address, and an aggregate destination port number. For example, the UPF may generate the correspondence shown in Table 1 above. The aggregate information may be pre-configured in the RAN or sent to the RAN by the SMF, which is not limited in this application.

[0424] In step 1308, the AMF sends an N1 message to UE1, UE2, and UE3 through the RAN.

[0425] The N1 message includes the aggregation information and the initial information of the UE corresponding to the N1 message. For example, the N1 message sent to UE3 may include the aggregation information and the initial information of UE3.

[0426] It should be noted that step 1308 is an optional step. For example, step 1308 may not be performed when the UE is pre-configured with aggregation information. For another example, step 1308 may be performed when the aggregation information is generated by the SMF.

[0427] Step 1309: The UE generates a correspondence between the initial information, the UE's IP address, the UE's port number, and the aggregation information.

[0428] For example, the UE may generate the corresponding relationship shown in Table 2 above.

[0429] In a possible implementation, if the UE receives an N1 message from the RAN, the UE may generate a correspondence between the initial information, the UE's IP address, the UE's port number, and the aggregation information according to the N1 message.

[0430] In another possible implementation, if the UE is pre-configured with aggregation information, the UE generates the above-mentioned correspondence based on the pre-configured aggregation information. For example, the UE may obtain initial information from the transport layer or the network layer and obtain the aggregation information locally. Furthermore, the UE may generate a correspondence between the initial information, the UE's IP address, the UE's port number, and the aggregation information.

[0431] Step 1310: RAN configures aggregated radio transmission resources according to the N2 message.

[0432] In a possible implementation, the RAN performs RRC reconfiguration according to the N2 message to configure aggregated radio transmission resources.

[0433] Step 1311: The AS sends live data to the RAN via unicast.

[0434] Correspondingly, the RAN receives live data from the AS.

[0435] For example, the AS sends downlink unicast data packets of UE1, UE2, and UE3 to the RAN respectively, and accordingly, the RAN receives downlink unicast data packets of UE1, UE2, and UE3 from the AS.

[0436] Step 1312: The RAN determines the aggregated data packet.

[0437] In one possible implementation, after receiving downlink unicast data packets from UE1, UE2, and UE3, the RAN selects a downlink unicast data packet from the three downlink unicast data packets, replaces the destination IP address in the header of the downlink unicast data packet with the aggregated destination IP address, replaces the destination port number in the header of the downlink unicast data packet with the aggregated destination port number, replaces the sequence number in the header of the downlink unicast data packet with the aggregated sequence number, replaces the acknowledgment number in the header of the downlink unicast data packet with the aggregated acknowledgment number, recalculates the TCP checksum and, optionally, the IP header checksum, and fills in the corresponding fields, thereby obtaining an aggregated data packet.

[0438] Take modifying the downlink unicast data packet of UE3 to obtain the aggregated data packet as an example, Figure 14 As shown, the downlink unicast data packets of UE1, UE2, and UE3 pass the checksum check. The AS transmits the downlink unicast data packets of UE1, UE2, and UE3 to the RAN through the UPF. The RAN replaces the destination port number Port_3 in the TCP header of the downlink unicast data packet of UE3 with Port_X, replaces the sequence number SA2U3_1 with SX_1, and replaces the acknowledgment number AA2U3_1 with AX_1. The TCP checksum TCS_X in the TCP header is recalculated based on the TCP checksum TCS_1 and the modified content. The destination IP address IP_3 in the IP header of the downlink unicast data packet of UE3 is replaced with IP_X. Optionally, the checksum in the IP header is recalculated to obtain ICS_X. The modified downlink unicast data packet is the aggregated data packet. Among them, SX_1 = SA2U3_1–SA2U3_0+SX_0, AX_1 = AA2U3_1–AA2U3_0+AX_0, where SA2U3_0 is the initial sequence number of UE3, SX_0 is the aggregate initial sequence number, AA2U3_0 is the initial acknowledgment number of UE3, and AX_0 is the aggregate initial acknowledgment number.

[0439] Step 1313: RAN sends the aggregated data packet to UE1, UE2, and UE3 via multicast.

[0440] In a possible implementation, the RAN sends the aggregated data packet to the UE via PTM.

[0441] Step 1314: After receiving the aggregated data packet, UE1, UE2, and UE3 convert the aggregated data packet and then submit it to the TCP / IP protocol stack.

[0442] In a possible implementation, the UE maps and calculates the header of the aggregated data packet according to the correspondence between the initial information, the UE's IP address, the UE's port number and the aggregated information, and then submits it to the TCP / IP protocol stack.

[0443] Taking UE3 as an example, Figure 10 As shown, after receiving the aggregated data packet, UE3 modifies the aggregated data packet header through the aggregation conversion module that matches the quadruple X. Specifically, the destination port number Port_X in the TCP header of the aggregated data packet is replaced with Port_3, the sequence number SX_1 is replaced with SA2U3_1, and the acknowledgment number AX_1 is replaced with AA2U3_1. The TCP checksum TCS_3 is recalculated based on TCS_X and the modified content. The destination IP address IP_X in the IP header is replaced with IP_3, and the IP checksum ICS_3 is optionally recalculated. UE3 then submits the resulting data packet to the TCP / IP protocol stack. Here, SA2U3_1 = SX_1 – SX_0 + SA2U3_0, and AA2U3_1 = AX_1 – AX_0 + AA2U3_0, where SA2U3_0 is UE3's initial sequence number, SX_0 is the aggregated initial sequence number, AA2U3_0 is UE3's initial acknowledgment number, and AX_0 is the aggregated initial acknowledgment number.

[0444] Subsequently, the UE can deliver the data packets processed by the TCP / IP protocol stack to the live broadcast client.

[0445] Combined with the above Figures 7 to 14 , describes the method provided by this application in detail, and will be combined with Figures 15 and 16 , describes the device embodiment of the present application in detail. It can be understood that in order to realize the functions in the above embodiments, Figure 15 or Figure 16 The device includes hardware structures and / or software modules that perform the corresponding functions. Those skilled in the art should readily appreciate that, in combination with the units and method steps of the various examples described in the embodiments disclosed in this application, this application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in hardware or in a computer software-driven hardware manner depends on the specific application scenario and design constraints of the technical solution.

[0446] Figure 15 and Figure 16Schematic diagram of the structure of possible devices provided by the embodiments of the present application. These devices can be used to implement the functions of the communication device, terminal, user plane function network element or session management function network element in the above method embodiments, and thus can also achieve the beneficial effects of the above method embodiments.

[0447] like Figure 15 As shown, the device 1500 includes a transceiver unit 1510 and a processing unit 1520 .

[0448] When device 1500 is used to implement the functions of the communication device in the above-described method embodiment, transceiver unit 1510 is configured to obtain a first live data packet and a second live data packet of a first live service, wherein the first live data packet corresponds to a first terminal, the second live data packet corresponds to a second terminal, and the first and second live data packets have the same payload. Transceiver unit 1510 and / or processing unit 1520 is configured to send a third live data packet to the first and second terminals via multicast based on the first and second live data packets, wherein the third live data packet has the same payload as the second live data packet.

[0449] Optionally, the transceiver unit 1510 is further configured to obtain a fourth live broadcast data packet for the first live broadcast service, the fourth live broadcast data packet corresponding to the third terminal, and the fourth live broadcast data packet having the same payload as the second live broadcast data packet. The transceiver unit 1510 and / or the processing unit 1520 is specifically configured to send the third live broadcast data packet to the first terminal, the second terminal, and the third terminal using the multicast method based on the first live broadcast data packet, the second live broadcast data packet, and the fourth live broadcast data packet.

[0450] Optionally, the header of the third live broadcast data packet includes at least one of the following fields: destination port number, destination address, sequence number, confirmation number, transport layer checksum, or network layer header checksum.

[0451] The destination port number of the third live broadcast data packet has a mapping relationship with the destination port number of the target live broadcast data packet. The destination port number of the third live broadcast data packet is the destination port number used when the live broadcast data packet of the first live broadcast service is transmitted in the multicast manner. The destination port number of the target live broadcast data packet is the port number of the terminal receiving the target live broadcast data packet.

[0452] The destination address of the third live broadcast data packet has a mapping relationship with the destination address of the target live broadcast data packet. The destination address of the third live broadcast data packet is the destination address used when the live broadcast data packet of the first live broadcast service is transmitted in the multicast manner. The destination address of the target live broadcast data packet is the address of the terminal receiving the target live broadcast data packet.

[0453] The serial number of the third live broadcast data packet is determined based on the serial number of the target live broadcast data packet, the first initial sequence number, and the second initial sequence number. The first initial sequence number is the initial sequence number used to send the live broadcast data packet of the first live broadcast service to the terminal corresponding to the target live broadcast data packet in a unicast manner, and the second initial sequence number is the initial sequence number used when transmitting the live broadcast data packet of the first live broadcast service in a multicast manner.

[0454] The confirmation number of the third live broadcast data packet is determined based on the confirmation number of the target live broadcast data packet, the first initial confirmation number, and the second initial confirmation number. The first initial confirmation number is the initial confirmation number used to send the live broadcast data packet of the first live broadcast service to the terminal corresponding to the target live broadcast data packet in the unicast manner, and the second initial confirmation number is the initial confirmation number used when transmitting the live broadcast data packet of the first live broadcast service in the multicast manner.

[0455] The transport layer checksum of the third live broadcast data packet is determined based on the effective payload of the third live broadcast data packet and other fields in the transport layer header of the third live broadcast data packet except the transport layer checksum, or is determined based on other fields in the transport layer header of the third live broadcast data packet except the transport layer checksum and the transport layer header of the target live broadcast data packet.

[0456] The network layer header checksum of the third live broadcast data packet is determined based on other fields in the network layer header of the third live broadcast data packet except the network layer header checksum, or is determined based on other fields in the network layer header of the third live broadcast data packet except the network layer header checksum and the network layer header of the target live broadcast data packet.

[0457] The target live data packet is one of multiple live data packets of the first live service, the multiple live data packets have the same effective payload, and the multiple live data packets include the first live data packet and the second live data packet.

[0458] Optionally, the sequence number of the third live data packet satisfies: S_n = S2_n – S2_0 + S_0; or the confirmation number of the third live data packet satisfies: A_n = A2_n – A2_0 + A_0, where S_n is the sequence number of the third live data packet, S2_n is the sequence number of the target live data packet, S2_0 is the first initial sequence number, S_0 is the second initial sequence number, A_n is the confirmation number of the third live data packet, A2_n is the confirmation number of the target live data packet, A2_0 is the first initial confirmation number, and A_0 is the second initial confirmation number.

[0459] Optionally, the device 1500 is an application function network element, and the transceiver unit 1510 is also used to: send first information to the session management function network element, the first information is used to request configuration of transmission resources for transmitting the third live broadcast data packet; and receive second information from the session management function network element, the second information is used to indicate that the transmission resource configuration is completed.

[0460] Optionally, the second information includes aggregation information, wherein the aggregation information includes at least one of the following information: an initial sequence number used when transmitting live data packets of the first live broadcast service in the multicast mode, an initial acknowledgment number used when transmitting live data packets of the first live broadcast service in the multicast mode, a destination address used when transmitting live data packets of the first live broadcast service in the multicast mode, or a destination port number used when transmitting live data packets of the first live broadcast service in the multicast mode.

[0461] Optionally, the transceiver unit 1510 is further configured to send third information to the first terminal, the third information including at least one of the following: aggregation information, an identifier of the first terminal, or initial information corresponding to the first terminal. The aggregation information includes at least one of the following: an initial sequence number used when transmitting live data packets of the first live broadcast service using the multicast method, an initial confirmation number used when transmitting live data packets of the first live broadcast service using the multicast method, a destination address used when transmitting live data packets of the first live broadcast service using the multicast method, or a destination port number used when transmitting live data packets of the first live broadcast service using the multicast method. The initial information includes at least one of the following: an initial sequence number used when transmitting live data packets of the first live broadcast service to the first terminal using the unicast method, or an initial confirmation number used when transmitting live data packets of the first live broadcast service to the first terminal using the unicast method.

[0462] Optionally, apparatus 1500 is a user plane function network element, and transceiver unit 1510 is further configured to receive fourth information from a session management function network element, the fourth information including detection conditions for a data packet, the detection conditions including: a source address being the address of an application server of the first live broadcast service, a source port number being the port number of the first live broadcast service, a confirmation flag being 1, and a synchronization flag being 1. Processing unit 1520 is further configured to detect, based on the fourth information, at least one data packet that meets the detection conditions. Transceiver unit 1510 is further configured to send information about the at least one data packet to the session management function network element.

[0463] Optionally, the information of the at least one data packet includes at least one initial information. The initial information includes at least one of the following: an initial sequence number used for sending a live data packet of the first live broadcast service to a terminal corresponding to the initial information in a unicast manner, or an initial confirmation number used for sending a live data packet of the first live broadcast service to a terminal corresponding to the initial information in a unicast manner.

[0464] Optionally, before the communication device sends information about the at least one data packet to the session management function network element, the processing unit 15210 is further used to: determine whether the number of the at least one data packet reaches a preset threshold.

[0465] Optionally, the transceiver unit 1510 is further used to: receive fifth information, where the fifth information is used to trigger the communication device to transmit the live data packet of the first live broadcast service in a multicast manner.

[0466] Optionally, the fifth information includes aggregation information, wherein the aggregation information includes at least one of the following information: an initial sequence number used when transmitting the live data packet of the first live broadcast service in the multicast mode, an initial acknowledgment number used when transmitting the live data packet of the first live broadcast service in the multicast mode, a destination address used when transmitting the live data packet of the first live broadcast service in the multicast mode, or a destination port number used when transmitting the live data packet of the first live broadcast service in the multicast mode.

[0467] Optionally, apparatus 1500 is a wireless access network device, and transceiver unit 1510 is further configured to receive sixth information, the sixth information being used to trigger the communication apparatus to transmit live data packets of the first live broadcast service in a multicast manner. Processing unit 1520 is further configured to configure wireless transmission resources based on the sixth information, the wireless transmission resources being used to transmit live data packets of the first live broadcast service in a multicast manner.

[0468] Optionally, the sixth information includes at least one of the following: aggregation information, an identifier of the first terminal, and initial information corresponding to the first terminal. The aggregation information includes at least one of the following: an initial sequence number used when transmitting live data packets of the first live service via the multicast method, an initial confirmation number used when transmitting live data packets of the first live service via the multicast method, a destination address used when transmitting live data packets of the first live service via the multicast method, or a destination port number used when transmitting live data packets of the first live service via the multicast method. The initial information includes at least one of the following: an initial sequence number used when transmitting live data packets of the first live service to the first terminal via the unicast method, or an initial confirmation number used when transmitting live data packets of the first live service to the first terminal via the unicast method.

[0469] When apparatus 1500 is used to implement the terminal functions of the above-described method embodiment, transceiver unit 1510 is configured to receive a third live data packet of a first live service, where the destination address in the header of the third live data packet is the destination address used when transmitting live data packets of the first live service via multicast. Processing unit 1520 is configured to determine a first live data packet based on the third live data packet, where the first and third live data packets have the same payload, and the destination address in the header of the first live data packet is the address of the first terminal.

[0470] Optionally, the header of the first live broadcast data packet further includes at least one of the following fields: a destination port number, a sequence number, an acknowledgment number, a transport layer checksum, or a network layer header checksum.

[0471] Among them, the destination port number of the first live broadcast data packet and the destination port number of the third live broadcast data packet have a mapping relationship, the destination port number of the first live broadcast data packet is the port number of the first terminal, and the destination port number of the third live broadcast data packet is the destination port number used when the live broadcast data packet of the first live broadcast service is transmitted using the multicast method.

[0472] The serial number of the first live broadcast data packet is determined based on the serial number of the third live broadcast data packet, the first initial sequence number, and the second initial sequence number. The first initial sequence number is the initial sequence number used to send the live broadcast data packet of the first live broadcast service to the first terminal in a unicast manner, and the second initial sequence number is the initial sequence number used when transmitting the live broadcast data packet of the first live broadcast service in a multicast manner.

[0473] The confirmation number of the first live broadcast data packet is determined based on the confirmation number of the third live broadcast data packet, the first initial confirmation number, and the second initial confirmation number. The first initial confirmation number is the initial confirmation number used to send the live broadcast data packet of the first live broadcast service to the first terminal using the unicast method, and the second initial confirmation number is the initial confirmation number used when transmitting the live broadcast data packet of the first live broadcast service using the multicast method.

[0474] The transport layer checksum of the first live data packet is determined based on the effective payload of the first live data packet and other fields in the transport layer header of the first live data packet except the transport layer checksum, or is determined based on other fields in the transport layer header of the first live data packet except the transport layer checksum and the transport layer header of the third live data packet.

[0475] The network layer header checksum of the first live data packet is determined based on other fields in the network layer header of the first live data packet except the network layer header checksum, or is determined based on other fields in the network layer header of the first live data packet except the network layer header checksum and the network layer header of the third live data packet.

[0476] Optionally, the sequence number of the first live data packet satisfies: S3_n = S_n – S_0 + S3_0; or the confirmation number of the first live data packet satisfies: A3_n = A_n – A_0 + A3_0, where S3_n is the sequence number of the first live data packet, S_n is the sequence number of the third live data packet, S_0 is the second initial sequence number, S3_0 is the first initial sequence number, A3_n is the confirmation number of the first live data packet, A_n is the confirmation number of the third live data packet, A_0 is the second initial confirmation number, and A3_0 is the first initial confirmation number.

[0477] Optionally, the transceiver unit 1510 is further configured to obtain at least one of the following information from a radio access network device, a session management function network element, or an application function network element: aggregate information and initial information corresponding to the first terminal. The aggregate information includes at least one of the following information: the second initial sequence number, the second initial acknowledgment number, a destination address used when transmitting live data packets of the first live broadcast service using the multicast method, or a destination port number used when transmitting live data packets of the first live broadcast service using the multicast method. The initial information includes at least one of the following information: the first initial sequence number or the first initial acknowledgment number.

[0478] When apparatus 1500 is used to implement the functions of the user plane function network element in the above-described method embodiment, transceiver unit 1510 is configured to receive fourth information from a session management function network element, the fourth information including packet detection conditions, the detection conditions including: a source address being the address of an application server serving the first live broadcast service, a source port number being the port number of the first live broadcast service, a confirmation flag being 1, and a synchronization flag being 1. Processing unit 1520 is configured to detect, based on the fourth information, at least one packet that meets the detection conditions. Transceiver unit 1510 is further configured to send information about the at least one packet to the session management function network element.

[0479] Optionally, the information of the at least one data packet includes at least one initial information, and the initial information includes at least one of the following information: an initial sequence number used to send the live data packet of the first live service to the terminal corresponding to the initial information in a unicast manner, or an initial confirmation number used to send the live data packet of the first live service to the terminal corresponding to the initial information in a unicast manner.

[0480] Optionally, before the user plane function network element sends information about the at least one data packet to the session management function network element, the processing unit 1520 is further configured to: determine whether the number of the at least one data packet reaches a preset threshold.

[0481] When the apparatus 1500 is used to implement the functions of the session management function network element in the above-described method embodiment, the transceiver unit 1510 is configured to: receive seventh information from the application function network element, the seventh information including the address of the application server of the first live broadcast service and the port number of the first live broadcast service; send fourth information to the user plane function network element, the fourth information including packet detection conditions, the detection conditions including: the source address is the address of the application server of the first live broadcast service, the source port number is the port number of the first live broadcast service, the confirmation flag is 1, and the synchronization flag is 1; and receive information about at least one packet from the user plane function network element. The processing unit 1520 is configured to: configure transmission resources based on the information about the at least one packet, the transmission resources being used to transmit the live broadcast data packet of the first live broadcast service in a multicast manner.

[0482] Optionally, the information of the at least one data packet includes at least one initial information, and the initial information includes at least one of the following information: an initial sequence number used to send the live data packet of the first live service to the terminal corresponding to the initial information in a unicast manner, or an initial confirmation number used to send the live data packet of the first live service to the terminal corresponding to the initial information in a unicast manner.

[0483] For a more detailed description of the transceiver unit 1510 and the processing unit 1520 , please refer to the relevant description in the above method embodiment, which will not be described again here.

[0484] like Figure 16 As shown, device 1600 includes a processor 1610 and an interface circuit 1620. Processor 1610 and interface circuit 1620 are coupled to each other. It will be understood that interface circuit 1620 can be a transceiver or an input / output interface. Optionally, device 1600 may also include a memory 1630 for storing instructions executed by processor 1610, or storing input data required by processor 1610 to execute instructions, or storing data generated after processor 1610 executes instructions. When device 1600 is used to implement the method described above, processor 1610 is used to implement the functions of processing unit 1520 described above, and interface circuit 1620 is used to implement the functions of transceiver unit 1510 described above.

[0485] When device 1600 is a chip used in a communication device, the chip implements the functions of the communication device in the above method embodiments. The chip receives information from other modules (such as a radio frequency module or antenna) in the communication device, where the information is sent to the communication device by the other module; or the chip sends information to other modules (such as a radio frequency module or antenna) in the communication device, where the information is sent to the other module.

[0486] When device 1600 is a chip used in a terminal, the chip implements the functions of the terminal in the above method embodiments. The chip receives information from other modules in the terminal (such as a radio frequency module or antenna), which is information sent to the terminal by other devices; or the chip sends information to other modules in the terminal (such as a radio frequency module or antenna), which is information sent by the terminal to other devices.

[0487] When device 1600 is a chip applied to a user plane function network element, the chip implements the functions of the user plane function network element in the above method embodiment. The chip receives information from other modules (such as a radio frequency module or antenna) in the user plane function network element, and the information is sent by other devices to the user plane function network element; or the chip sends information to other modules (such as a radio frequency module or antenna) in the user plane function network element, and the information is sent by the user plane function network element to other devices.

[0488] When device 1600 is a chip used in a session management function network element, the chip implements the functions of the session management function network element in the above-mentioned method embodiments. The chip receives information from other modules (such as a radio frequency module or antenna) in the session management function network element, which is sent to the session management function network element by other devices; or the chip sends information to other modules (such as a radio frequency module or antenna) in the session management function network element, which is sent to other devices by the session management function network element.

[0489] The present application also provides a communication device, comprising a processor coupled to a memory, the memory being configured to store computer programs or instructions and / or data, the processor being configured to execute the computer programs or instructions stored in the memory, or to read data stored in the memory, to perform the methods described in the above method embodiments. Optionally, there are one or more processors. Optionally, the communication device includes a memory. Optionally, there are one or more memories. Optionally, the memory is integrated with the processor or provided separately.

[0490] The present application also provides a computer-readable storage medium storing computer instructions for implementing the methods executed by the communication device, terminal, user plane function network element or session management function network element in the above-mentioned method embodiments.

[0491] The present application also provides a computer program product comprising instructions, which, when executed by a computer, implement the methods performed by the communication device, terminal, user plane function network element or session management function network element in the above-mentioned method embodiments.

[0492] The present application also provides a communication system, which includes the communication device, terminal, user plane function network element and session management function network element in the above embodiments.

[0493] The explanation of the relevant contents and beneficial effects of any of the above-mentioned devices can be referred to the corresponding method embodiments provided above, which will not be repeated here.

[0494] It is understood that the processor in the embodiments of the present application may be a central processing unit (CPU), or may be other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field programmable gate arrays (FPGA), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. The general-purpose processor may be a microprocessor or any conventional processor.

[0495] The method steps in the embodiments of the present application can be implemented by hardware or by a processor executing software instructions. The software instructions can be composed of corresponding software modules, which can be stored in random access memory, flash memory, read-only memory, programmable read-only memory, erasable programmable read-only memory, electrically erasable programmable read-only memory, registers, hard disk, removable hard disk, CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor so that the processor can read information from the storage medium and write information to the storage medium. Of course, the storage medium can also be an integral part of the processor. The processor and storage medium can be located in an ASIC. In addition, the ASIC can be located in a communication device, a terminal, a user plane function network element, or a session management function network element. Of course, the processor and storage medium can also exist as discrete components in a communication device, a terminal, a user plane function network element, or a session management function network element.

[0496] In the above embodiments, all or part of the embodiments may be implemented using software, hardware, firmware, or any combination thereof. When implemented using software, all or part of the embodiments may be implemented in the form of a computer program product. The computer program product includes one or more computer programs or instructions. When the computer program or instructions are loaded and executed on a computer, the processes or functions described in the embodiments of the present application are performed in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, a network device, a user device, or other programmable device. The computer program or instructions may be stored in a computer-readable storage medium or transferred from one computer-readable storage medium to another. For example, the computer program or instructions may be transferred from one website, computer, server, or data center to another website, computer, server, or data center via wired or wireless means. The computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server or data center that integrates one or more available media. The available medium may be a magnetic medium, such as a floppy disk, hard disk, or magnetic tape; an optical medium, such as a digital video disk; or a semiconductor medium, such as a solid-state drive.

[0497] In the various embodiments of the present application, unless otherwise specified or there is a logical conflict, the terms and / or descriptions between different embodiments are consistent and can be referenced by each other. The technical features in different embodiments can be combined to form new embodiments according to their inherent logical relationships.

[0498] It is understood that the various numbers used in the embodiments of this application are merely for ease of description and are not intended to limit the scope of the embodiments of this application. The order of the sequence numbers of the above-mentioned processes does not necessarily imply a specific order of execution; the order of execution of the processes should be determined by their functions and inherent logic.

[0499] Unless otherwise indicated, all technical and scientific terms used in the embodiments of the present application have the same meaning as those generally understood by those skilled in the art of the technical field of the application. The terms used in this application are only for the purpose of describing specific embodiments and are not intended to limit the scope of the application. It should be understood that the above are for illustration, and the examples above are only for helping those skilled in the art to understand the embodiments of the present application, rather than limiting the application embodiments to the specific numerical values ​​or specific scenarios illustrated. Those skilled in the art can obviously carry out various equivalent modifications or changes based on the examples given above, and such modifications and changes also fall within the scope of the embodiments of the present application.

[0500] The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims.

Claims

1. A method for transmitting data, characterized in that: include: The communication device obtains a first live broadcast data packet and a second live broadcast data packet of a first live broadcast service, wherein the first live broadcast data packet corresponds to a first terminal, the second live broadcast data packet corresponds to a second terminal, and the first live broadcast data packet and the second live broadcast data packet have the same effective payload; The communication device sends a third live broadcast data packet to the first terminal and the second terminal in a multicast manner according to the first live broadcast data packet and the second live broadcast data packet, wherein the third live broadcast data packet has the same effective payload as the second live broadcast data packet; The sequence number of the third live data packet satisfies: S_n=S2_n-S2_0+S_0; and / or, The confirmation number of the third live data packet satisfies: A_n=A2_n–A2_0+A_0; Wherein, S_n is the sequence number of the third live data packet, S2_n is the sequence number of the target live data packet, S2_0 is the first initial sequence number, S_0 is the second initial sequence number, A_n is the confirmation number of the third live data packet, A2_n is the confirmation number of the target live data packet, A2_0 is the first initial confirmation number, and A_0 is the second initial confirmation number. The target live broadcast data packet is one of multiple live broadcast data packets of the first live broadcast service, the multiple live broadcast data packets have the same effective payload, and the multiple live broadcast data packets include the first live broadcast data packet and the second live broadcast data packet. The first initial sequence number is the initial sequence number used for sending the live broadcast data packet of the first live broadcast service to the terminal corresponding to the target live broadcast data packet in a unicast manner, the second initial sequence number is the initial sequence number used when transmitting the live broadcast data packet of the first live broadcast service in the multicast manner, the first initial confirmation number is the initial confirmation number used for sending the live broadcast data packet of the first live broadcast service to the terminal corresponding to the target live broadcast data packet in a unicast manner, and the second initial confirmation number is the initial confirmation number used when transmitting the live broadcast data packet of the first live broadcast service in a multicast manner.

2. The method according to claim 1, characterized in that The method further comprises: The communication device obtains a fourth live broadcast data packet of the first live broadcast service, the fourth live broadcast data packet corresponds to a third terminal, and the fourth live broadcast data packet has the same effective payload as the second live broadcast data packet; The communication device sends a third live broadcast data packet to the first terminal and the second terminal in a multicast manner according to the first live broadcast data packet and the second live broadcast data packet, including: The communication device sends the third live broadcast data packet to the first terminal, the second terminal and the third terminal in the multicast manner according to the first live broadcast data packet, the second live broadcast data packet and the fourth live broadcast data packet.

3. The method according to claim 1 or 2, characterized in that The header of the third live data packet includes at least one of the following fields: a destination port number, a destination address, a sequence number, an acknowledgment number, a transport layer checksum, or a network layer header checksum; The destination port number of the third live data packet is mapped to the destination port number of the target live data packet. The destination port number of the third live data packet is the destination port number used when the live data packet of the first live service is transmitted in the multicast manner. The destination port number of the target live data packet is the port number of the terminal receiving the target live data packet. The destination address of the third live data packet is mapped to the destination address of the target live data packet. The destination address of the third live data packet is the destination address used when the live data packet of the first live service is transmitted in the multicast manner. The destination address of the target live data packet is the address of the terminal receiving the target live data packet. The sequence number of the third live broadcast data packet is determined according to the sequence number of the target live broadcast data packet, the first initial sequence number, and the second initial sequence number; The confirmation number of the third live broadcast data packet is determined according to the confirmation number of the target live broadcast data packet, the first initial confirmation number, and the second initial confirmation number; The transport layer checksum of the third live broadcast data packet is determined based on a valid payload of the third live broadcast data packet and other fields in a transport layer header of the third live broadcast data packet except the transport layer checksum, or is determined based on other fields in the transport layer header of the third live broadcast data packet except the transport layer checksum and the transport layer header of the target live broadcast data packet; The network layer header checksum of the third live data packet is determined based on other fields in the network layer header of the third live data packet except the network layer header checksum, or is determined based on other fields in the network layer header of the third live data packet except the network layer header checksum and the network layer header of the target live data packet; The target live data packet is one of multiple live data packets of the first live service, the multiple live data packets have the same effective payload, and the multiple live data packets include the first live data packet and the second live data packet.

4. The method according to any one of claims 1 to 3, characterized in that The communication device is an application function network element, and the method further includes: The communication device sends first information to the session management function network element, where the first information is used to request configuration of transmission resources for transmitting the third live broadcast data packet; The communication device receives second information from the session management function network element, where the second information is used to indicate that the transmission resource configuration is completed.

5. The method according to claim 4, characterized in that The second information includes aggregate information; The aggregation information includes at least one of the following information: an initial sequence number used when transmitting the live data packet of the first live broadcast service in the multicast mode, an initial confirmation number used when transmitting the live data packet of the first live broadcast service in the multicast mode, a destination address used when transmitting the live data packet of the first live broadcast service in the multicast mode, or a destination port number used when transmitting the live data packet of the first live broadcast service in the multicast mode.

6. The method according to claim 4 or 5, characterized in that The method further comprises: The communication device sends third information to the first terminal, where the third information includes at least one of the following information: aggregation information, an identifier of the first terminal, or initial information corresponding to the first terminal; wherein, The aggregate information includes at least one of the following information: an initial sequence number used when transmitting a live data packet of the first live broadcast service in the multicast manner, an initial acknowledgment number used when transmitting a live data packet of the first live broadcast service in the multicast manner, a destination address used when transmitting a live data packet of the first live broadcast service in the multicast manner, or a destination port number used when transmitting a live data packet of the first live broadcast service in the multicast manner; The initial information includes at least one of the following information: an initial sequence number used for sending a live data packet of the first live service to the first terminal in a unicast manner, or an initial confirmation number used for sending a live data packet of the first live service to the first terminal in the unicast manner.

7. The method according to any one of claims 1 to 3, characterized in that The communication device is a user plane function network element, and the method further includes: The communication device receives fourth information from the session management function network element, the fourth information including a detection condition of the data packet, the detection condition including: a source address is an address of an application server of the first live broadcast service, a source port number is a port number of the first live broadcast service, a confirmation flag is 1, and a synchronization flag is 1; The communication device detects at least one data packet based on the fourth information, and the at least one data packet meets the detection condition; The communication device sends information of the at least one data packet to the session management function network element, where the information of the at least one data packet includes at least one initial information, and the initial information includes at least one of the following information: an initial sequence number used for sending a live data packet of the first live service to a terminal corresponding to the initial information in a unicast manner, or an initial confirmation number used for sending a live data packet of the first live service to a terminal corresponding to the initial information in a unicast manner.

8. The method according to claim 7, characterized in that The method further comprises: The communication device receives fifth information, where the fifth information is used to trigger the communication device to transmit live data packets of the first live broadcast service in a multicast manner.

9. The method according to claim 8, characterized in that The fifth information includes aggregate information; The aggregation information includes at least one of the following information: an initial sequence number used when transmitting the live data packet of the first live broadcast service in the multicast mode, an initial confirmation number used when transmitting the live data packet of the first live broadcast service in the multicast mode, a destination address used when transmitting the live data packet of the first live broadcast service in the multicast mode, or a destination port number used when transmitting the live data packet of the first live broadcast service in the multicast mode.

10. The method according to any one of claims 1 to 3, characterized in that The communication device is a wireless access network device, and the method further includes: The communication device receives sixth information, where the sixth information is used to trigger the communication device to transmit a live data packet of the first live broadcast service in a multicast manner; The communication device configures wireless transmission resources according to the sixth information, and the wireless transmission resources are used to transmit the live data packets of the first live service in a multicast manner.

11. The method according to claim 10, characterized in that The sixth information includes at least one of the following information: aggregate information, an identifier of the first terminal, and initial information corresponding to the first terminal; wherein, The aggregate information includes at least one of the following information: an initial sequence number used when transmitting a live data packet of the first live broadcast service in the multicast manner, an initial acknowledgment number used when transmitting a live data packet of the first live broadcast service in the multicast manner, a destination address used when transmitting a live data packet of the first live broadcast service in the multicast manner, or a destination port number used when transmitting a live data packet of the first live broadcast service in the multicast manner; The initial information includes at least one of the following information: an initial sequence number used for sending a live data packet of the first live service to the first terminal in a unicast manner, or an initial confirmation number used for sending a live data packet of the first live service to the first terminal in the unicast manner.

12. A method for transmitting data, characterized in that: include: The first terminal receives a third live data packet of the first live service, where the destination address in the header of the third live data packet is the destination address used when the live data packet of the first live service is transmitted in a multicast manner; The first terminal determines a first live broadcast data packet based on the third live broadcast data packet, where the first live broadcast data packet and the third live broadcast data packet have the same effective payload, and a destination address in a header of the first live broadcast data packet is an address of the first terminal; The sequence number of the first live data packet satisfies: S3_n=S_n–S_0+S3_0; and / or, The confirmation number of the first live broadcast data packet satisfies: A3_n=A_n–A_0+A3_0; Wherein, S3_n is the sequence number of the first live data packet, S_n is the sequence number of the third live data packet, S_0 is the second initial sequence number, S3_0 is the first initial sequence number, A3_n is the confirmation number of the first live data packet, A_n is the confirmation number of the third live data packet, A_0 is the second initial confirmation number, and A3_0 is the first initial confirmation number; Among them, the first initial sequence number is the initial sequence number used for sending the live data packet of the first live broadcast service to the first terminal in a unicast manner, the second initial sequence number is the initial sequence number used when transmitting the live data packet of the first live broadcast service in the multicast manner, the first initial confirmation number is the initial confirmation number used for sending the live data packet of the first live broadcast service to the first terminal in the unicast manner, and the second initial confirmation number is the initial confirmation number used when transmitting the live data packet of the first live broadcast service in the multicast manner.

13. The method according to claim 12, characterized in that The header of the first live data packet further includes at least one of the following fields: a destination port number, a sequence number, an acknowledgment number, a transport layer checksum, or a network layer header checksum; wherein, The destination port number of the first live broadcast data packet and the destination port number of the third live broadcast data packet have a mapping relationship, the destination port number of the first live broadcast data packet is the port number of the first terminal, and the destination port number of the third live broadcast data packet is the destination port number used when the live broadcast data packet of the first live broadcast service is transmitted in the multicast manner; The sequence number of the first live broadcast data packet is determined according to the sequence number of the third live broadcast data packet, the first initial sequence number, and the second initial sequence number; The confirmation number of the first live broadcast data packet is determined according to the confirmation number of the third live broadcast data packet, the first initial confirmation number, and the second initial confirmation number; The transport layer checksum of the first live broadcast data packet is determined based on a valid payload of the first live broadcast data packet and other fields in a transport layer header of the first live broadcast data packet except the transport layer checksum, or is determined based on other fields in the transport layer header of the first live broadcast data packet except the transport layer checksum and the transport layer header of the third live broadcast data packet; The network layer header checksum of the first live data packet is determined based on other fields in the network layer header of the first live data packet except the network layer header checksum, or is determined based on other fields in the network layer header of the first live data packet except the network layer header checksum and the network layer header of the third live data packet.

14. The method according to claim 13, characterized in that The method further comprises: The first terminal obtains at least one of the following information from a radio access network device, a session management function network element, or an application function network element: aggregation information, and initial information corresponding to the first terminal; wherein, The aggregate information includes at least one of the following information: the second initial sequence number, the second initial acknowledgment number, a destination address used when transmitting the live data packet of the first live broadcast service in the multicast manner, or a destination port number used when transmitting the live data packet of the first live broadcast service in the multicast manner; The initial information includes at least one of the following information: the first initial sequence number, or the first initial confirmation number.

15. A communication device, characterized in that: include: A processor, configured to execute a computer program stored in a memory, so that the apparatus performs the method according to any one of claims 1 to 11, or performs the method according to any one of claims 12 to 14.

16. The device according to claim 15, characterized in that The apparatus further comprises the memory.

17. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a computer program, which, when executed on a computer, enables the computer to execute the method according to any one of claims 1 to 11, or the method according to any one of claims 12 to 14.

18. A computer program product, characterized in that The computer program product comprises instructions for performing the method of any one of claims 1 to 11, or comprises instructions for performing the method of any one of claims 12 to 14.

19. A communication system, characterized in that: include: a communication device and a first terminal; The communication device is configured to perform the method according to any one of claims 1 to 11; The first terminal is configured to execute the method according to any one of claims 12 to 14.

Citation Information

Patent Citations

  • Live video transmission method, system and device, server, electronic equipment and storage medium

    CN111669610A