Communication method, device and system
By negotiating and selecting a suitable protocol stack in the IMS data channel, the problem of insufficient flexibility in the IMS data channel in the prior art is solved, and flexibility and efficiency are achieved to adapt to different communication scenarios.
Patent Information
- Application Number
- CN202311438471.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-10-31
- Publication Date
- 2025-05-02
AI Technical Summary
The existing IMS data channel protocol stack fixed structure leads to poor flexibility and is difficult to meet the needs of different communication scenarios.
By negotiating in SDP proposal and response information, the SDP proposal and reply party are allowed to select data channel protocol stacks suitable for different communication scenarios, such as UDP/DTLS/SCTP, TCP/DTLS/SCTP, UDP/QUIC, etc.
It improves communication flexibility and can select appropriate protocol stacks according to different communication needs to meet various requirements such as communication security, delay, and reliability.
Smart Images

Figure CN119922169A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of communication technologies, and in particular to communication methods, devices and systems. Background Art
[0002] Web real-time communication (WebRTC) is a real-time communication technology that allows network applications or websites to establish peer-to-peer (P2P) connections between browsers to achieve the transmission of audio streams, video streams, or any data other than audio streams and video streams. The above-mentioned audio stream and / or video stream can be transmitted through a media channel, and the above-mentioned data can be transmitted through a data channel (DC), which can be called a WebRTC data channel. The WebRTC data channel can use the stream control transmission protocol (SCTP) superimposed with the datagram transport layer security (DTLS), and then superimposed with the user datagram protocol (UDP) as the bearer protocol, and use interactive connectivity establishment (ICE) to achieve network address translation (NAT) traversal, so that the communicating parties can perceive each other's IP (Ineternet Protocol) address and port, for example, Figure 1A shown.
[0003] In order to transmit data other than audio and video streams in the Internet Protocol Multimedia Subsystem (IMS) network, the 3rd Generation Partnership Project (3GPP) 16th version (release 16) introduced a data channel for the IMS network, called the IMS data channel (IMSDC). The IMS data channel can use a protocol stack similar to the WebRTC data channel, that is, SCTP superimposed on DTLS, and then superimposed on UDP as the bearer protocol. However, this fixed protocol stack will make the IMS data channel only meet a single communication requirement and have poor flexibility. Summary of the invention
[0004] The present application provides a communication method, device and system, so that a session description protocol (SDP) offerer (SDP offerer) and an SDP answerer (SDP answerer) can negotiate a protocol stack for establishing an IMS data channel to adapt to communication scenarios with different requirements and improve the flexibility of communication.
[0005] In order to achieve the above purpose, the present application adopts the following technical solutions:
[0006] In a first aspect, a communication method is provided, which can be executed by a first communication entity; or, it can also be executed by a module applied to the first communication entity, such as a chip, a chip system or a circuit; or, it can also be implemented by a logical node, a logical module or software that can implement all or part of the functions of the first communication entity, without limitation. For ease of description, the following is an example of execution by the first communication entity. It can be understood that the first communication entity is an SDP responder.
[0007] The method comprises: a first communication entity receives session description protocol SDP proposal information from a second communication entity, and sends SDP response information to the second communication entity according to the SDP proposal information. The SDP proposal information indicates at least two types of protocol stacks for establishing a data channel, and the data channel is associated with an IMS session between the first communication entity and the second communication entity. The SDP response information indicates that the first communication entity decides to use a first type of protocol stack among the at least two types of protocol stacks for establishing a data channel to establish the data channel.
[0008] Based on the method provided in the first aspect above, the first communication entity and the second communication entity can negotiate the protocol stack used by the data channel of the IMS session in which the two participate, so that the data channel can be applicable to different communication scenarios. For example, for scenarios with high communication security requirements or encryption, the protocol stack of the data channel may include the DTLS protocol, and for scenarios with low communication security requirements or encryption is not required, the protocol stack of the data channel may not include the DTLS protocol. For another example, for scenarios that are sensitive to packet loss, the protocol stack of the data channel may include the transmission control protocol (TCP); for scenarios that are sensitive to delay, the protocol stack of the data channel may include UDP; for scenarios that have high real-time requirements, the protocol stack of the data channel may include SCTP; for scenarios that have high requirements for link establishment speed and high transmission performance, the protocol stack of the data channel may include the quick UDP internet connection (QUIC) protocol, etc. Therefore, the method provided in the first aspect can improve the flexibility of communication.
[0009] In one possible implementation, the at least two types of protocol stacks are at least two of the following protocol stacks: UDP / DTLS / SCTP protocol stack; TCP / DTLS / SCTP protocol stack; UDP / QUIC protocol stack; UDP / SCTP protocol stack; SCTP protocol stack; TCP protocol stack; or UDP protocol stack.
[0010] Based on the above possible implementation methods, the first communication entity can decide the protocol stack for establishing the data channel from the above at least two types of protocol stacks proposed by the second communication entity. It can be understood that UDP provides non-connection-oriented, unreliable data stream transmission. It does not need to establish a connection between the client and the server before transmitting the datagram, and there is no timeout retransmission mechanism, so the data transmission speed is very fast. The DTLS protocol can provide confidentiality and integrity protection for data transmission, and provide a two-way authentication mechanism for both communicating parties to ensure the secure transmission of data. SCTP has high requirements for real-time performance. The reliability and delivery mode of SCTP are configurable. SCTP also supports flow control and congestion control. TCP is connection-oriented, and its retransmission and congestion control mechanisms can ensure the reliability of data transmission and avoid packet loss. Compared with TCP and SCTP, the QUIC protocol has a faster link establishment speed, a more flexible congestion control mechanism, and a stronger evolution capability. Therefore, if the first communication entity decides to use the UDP / DTLS / SCTP protocol stack to establish a data channel, the data channel can guarantee one or more of the data transmission delay, communication security, transmission reliability or data real-time performance, and the data transmission mode and / or congestion control mechanism in the data channel can be configured. If the first communication entity decides to use the TCP / DTLS / SCTP protocol stack to establish a data channel, the data channel can guarantee one or more of the communication security, transmission reliability or data real-time performance, can control the packet loss rate, and the data transmission mode and / or congestion control mechanism in the data channel can be configured. If the first communication entity decides to use the UDP / QUIC protocol stack to establish a data channel, the data channel can guarantee data transmission delay and / or link establishment speed, and the congestion control mechanism of the data in the data channel can be configured. If the first communication entity decides to use the UDP / SCTP protocol stack to establish a data channel, the data channel can guarantee transmission delay and / or transmission reliability, and the data transmission mode in the data channel can be configured. If the first communication entity decides to use the SCTP protocol stack to establish a data channel, the data channel can ensure data transmission reliability and / or data real-time performance, and the data transmission method and / or congestion control mechanism in the data channel can be configured. If the first communication entity decides to use the TCP protocol stack to establish a data channel, the data channel can ensure data transmission reliability and avoid packet loss. If the first communication entity decides to use the UDP protocol stack to establish a data channel, the data channel can ensure data transmission delay.
[0011] In a possible implementation manner, the SDP proposal information includes first indication information, where the first indication information indicates the at least two types of protocol stacks for establishing a data channel.
[0012] Based on the above possible implementation manner, the first communication entity may determine at least two types of protocol stacks for establishing a data channel proposed by the second communication entity according to the first indication information in the SDP proposal information.
[0013] In a possible implementation manner, the SDP proposal information includes an "m=" line corresponding to the data channel, and the "m=" line includes the first indication information.
[0014] Based on the above possible implementation manner, the first communication entity may determine at least two types of protocol stacks for establishing the data channel according to the first indication information included in the "m=" line corresponding to the data channel in the SDP proposal information.
[0015] In one possible implementation, the first indication information includes at least two of the following: "UDP / DTLS / SCTP", "TCP / DTLS / SCTP", "UDP / QUIC", "UDP / SCTP", "SCTP", "TCP" or "UDP".
[0016] Based on the possible implementation manners described above, the first communication entity may determine at least two types of protocol stacks for establishing a data channel according to the information described above.
[0017] In a possible implementation manner, the SDP response information includes second indication information, where the second indication information indicates that the first communication entity decides to adopt a first type of protocol stack among the at least two types of protocol stacks for establishing data channels to establish the data channel.
[0018] Based on the above possible implementation manner, the first communication entity may indicate the protocol stack used to establish the data channel to the first communication entity through the second indication information in the SDP response information.
[0019] In a possible implementation manner, the SDP response information includes an "m=" line corresponding to the data channel, and the "m=" line included in the SDP response information includes the second indication information.
[0020] Based on the above possible implementation manner, the first communication entity may indicate the protocol stack used to establish the data channel to the first communication entity through the second indication information included in the "m=" line corresponding to the data channel in the SDP response information.
[0021] In one possible implementation, the second indication information is "UDP / DTLS / SCTP", "TCP / DTLS / SCTP", "UDP / QUIC", "UDP / SCTP", "SCTP", "TCP" or "UDP".
[0022] Based on the above possible implementation manner, the first communication entity may indicate the protocol stack used to establish the data channel to the first communication entity through the above information.
[0023] In a possible implementation manner, the first type of protocol stack meets the transmission requirement of the application of the data channel, and the transmission requirement includes at least one of a requirement on a packet loss rate, a requirement on a transmission delay, or a requirement on a protocol stack priority.
[0024] Based on the above possible implementation methods, the first communication entity may consider at least one of the requirements of the data channel application on packet loss rate, transmission delay, or protocol stack priority when determining the first type of protocol stack, so that the established data channel meets the transmission requirements of the data channel application.
[0025] In a possible implementation, the method further includes: the first communication entity sends first capability information to a call session control function entity, and receives first policy information from the call session control function entity. The first capability information indicates a protocol stack that the first communication entity supports for establishing a data channel. The first policy information is used by the first communication entity to determine the first type of protocol stack.
[0026] Based on the above possible implementation manner, the first communication entity may negotiate with the session control function entity on a policy for the first communication entity to establish a data channel, so that the first communication entity determines a protocol stack for establishing the data channel according to the SDP proposal information and the policy.
[0027] In a possible implementation, the first capability information is carried in a registration request message, and the first policy information is carried in a response message with a status code of 200.
[0028] Based on the above possible implementations, the first communication entity may send the first capability information through a registration request message, and receive the first policy information through a response message with a status code of 200, so as to negotiate a policy for the first communication entity to establish a data channel through an existing process.
[0029] In a possible implementation, the first policy information is included in a session initiation protocol (SIP) header field of the response message. For example, the first policy information is included in an extended header field (such as an IMSDC-Proto header field) or an existing header field (such as a Contact header field, an Accept header field, an Allow header field, a Feature-Caps header field, or a Require header field) of the SIP.
[0030] Based on the possible implementation manner, the first policy information may be carried in a SIP header field included in a response message with a status code of 200.
[0031] In a possible implementation manner, the first communication entity decides to adopt the first type of protocol stack to establish the data channel according to at least two types of protocol stacks proposed by the second communication entity and the first policy information.
[0032] Based on the above possible implementation manners, the first communication entity may decide to adopt the first type of protocol stack to establish the data channel according to at least two types of protocol stacks proposed by the second communication entity and the first policy information.
[0033] In a possible implementation manner, the data channel is an auxiliary data channel or an independent data channel.
[0034] Based on the above possible implementation manners, the first communication entity and the second communication entity may negotiate a protocol stack adopted by an auxiliary data channel of an IMS session in which both parties participate, or negotiate a protocol stack adopted by an independent data channel of an IMS session in which both parties participate.
[0035] In a second aspect, a communication method is provided, which can be executed by a second communication entity; or, it can also be executed by a module applied to the second communication entity, such as a chip, a chip system or a circuit; or, it can also be implemented by a logical node, a logical module or software that can implement all or part of the functions of the second communication entity, without limitation. For ease of description, the following is an example of execution by the second communication entity. It can be understood that the second communication entity is the SDP proposer.
[0036] The method comprises: a second communication entity sends SDP proposal information to a first communication entity, and receives SDP response information from the first communication entity. The SDP proposal information indicates at least two types of protocol stacks for establishing a data channel, and the data channel is associated with an IMS session between the first communication entity and the second communication entity. The SDP response information indicates that the first communication entity decides to use a first type of protocol stack among the at least two types of protocol stacks for establishing a data channel to establish the data channel.
[0037] Based on the method provided in the second aspect above, the first communication entity and the second communication entity can negotiate the protocol stack used by the data channel of the IMS session in which the two participate, so that the data channel can be applicable to different communication scenarios. For example, for scenarios with high communication security requirements or encryption requirements, the protocol stack of the data channel may include the DTLS protocol, and for scenarios with low communication security requirements or encryption requirements, the protocol stack of the data channel may not include the DTLS protocol. For another example, for scenarios that are sensitive to packet loss, the protocol stack of the data channel may include TCP; for scenarios that are sensitive to latency, the protocol stack of the data channel may include UDP; for scenarios that have high real-time requirements, the protocol stack of the data channel may include SCTP; for scenarios that have high requirements for link establishment speed and high transmission performance, the protocol stack of the data channel may include the QUIC protocol, etc. Therefore, the method provided in the first aspect can improve the flexibility of communication.
[0038] In one possible implementation, the at least two types of protocol stacks are at least two of the following protocol stacks: UDP / DTLS / SCTP protocol stack; TCP / DTLS / SCTP protocol stack; UDP / QUIC protocol stack; UDP / SCTP protocol stack; SCTP protocol stack; TCP protocol stack; or UDP protocol stack.
[0039] Based on the above possible implementation methods, the second communication entity can indicate the above at least two types of protocol stacks to the first communication entity, so that the first communication entity determines the protocol stack used to establish the data channel in the above at least two types of protocol stacks. It can be understood that UDP provides non-connection-oriented, unreliable data stream transmission. It does not need to establish a connection between the client and the server before transmitting the datagram, and there is no mechanism such as timeout retransmission, so the data transmission speed is very fast. The DTLS protocol can provide confidentiality and integrity protection for data transmission, and provide a two-way authentication mechanism for both parties to ensure the secure transmission of data. SCTP has high requirements for real-time performance. The reliability and delivery mode of SCTP are configurable. SCTP also supports flow control and congestion control. TCP is connection-oriented, and its retransmission and congestion control mechanisms can ensure the reliability of data transmission and avoid packet loss. Compared with TCP and SCTP, the QUIC protocol has a faster link establishment speed, a more flexible congestion control mechanism, and a stronger evolution capability. Therefore, if the first communication entity decides to use the UDP / DTLS / SCTP protocol stack to establish a data channel, the data channel can guarantee one or more of the data transmission delay, communication security, transmission reliability or data real-time performance, and the data transmission mode and / or congestion control mechanism in the data channel can be configured. If the first communication entity decides to use the TCP / DTLS / SCTP protocol stack to establish a data channel, the data channel can guarantee one or more of the communication security, transmission reliability or data real-time performance, can control the packet loss rate, and the data transmission mode and / or congestion control mechanism in the data channel can be configured. If the first communication entity decides to use the UDP / QUIC protocol stack to establish a data channel, the data channel can guarantee data transmission delay and / or link establishment speed, and the congestion control mechanism of the data in the data channel can be configured. If the first communication entity decides to use the UDP / SCTP protocol stack to establish a data channel, the data channel can guarantee transmission delay and / or transmission reliability, and the data transmission mode in the data channel can be configured. If the first communication entity decides to use the SCTP protocol stack to establish a data channel, the data channel can ensure data transmission reliability and / or data real-time performance, and the data transmission method and / or congestion control mechanism in the data channel can be configured. If the first communication entity decides to use the TCP protocol stack to establish a data channel, the data channel can ensure data transmission reliability and avoid packet loss. If the first communication entity decides to use the UDP protocol stack to establish a data channel, the data channel can ensure data transmission delay.
[0040] In a possible implementation manner, the SDP proposal information includes first indication information, where the first indication information indicates the at least two types of protocol stacks for establishing a data channel.
[0041] Based on the possible implementation manner described above, the second communication entity may indicate the at least two types of protocol stacks described above to the first communication entity through the first indication information in the SDP proposal information.
[0042] In a possible implementation manner, the SDP proposal information includes an "m=" line corresponding to the data channel, and the "m=" line includes the first indication information.
[0043] Based on the possible implementation manners described above, the second communication entity may indicate the at least two types of protocol stacks described above through the first indication information included in the "m=" line corresponding to the data channel in the SDP proposal information.
[0044] In one possible implementation, the first indication information includes at least two of the following: "UDP / DTLS / SCTP", "TCP / DTLS / SCTP", "UDP / QUIC", "UDP / SCTP", "SCTP", "TCP" or "UDP".
[0045] Based on the possible implementation manners described above, the second communication entity may indicate at least two types of protocol stacks through the above information.
[0046] In a possible implementation manner, the SDP response information includes second indication information, where the second indication information indicates that the first communication entity decides to adopt a first type of protocol stack among the at least two types of protocol stacks for establishing data channels to establish the data channel.
[0047] Based on the above possible implementation manner, the second communication entity may determine the protocol stack for establishing the data channel determined by the first communication entity according to the second indication information in the SDP response information.
[0048] In a possible implementation manner, the SDP response information includes an "m=" line corresponding to the data channel, and the "m=" line included in the SDP response information includes the second indication information.
[0049] Based on the above possible implementation manner, the second communication entity may determine the protocol stack for establishing the data channel determined by the first communication entity according to the second indication information included in the "m=" line corresponding to the data channel in the SDP response information.
[0050] In one possible implementation, the second indication information is "UDP / DTLS / SCTP", "TCP / DTLS / SCTP", "UDP / QUIC", "UDP / SCTP", "SCTP", "TCP" or "UDP".
[0051] Based on the above possible implementation manner, the second communication entity can determine the protocol stack for establishing the data channel determined by the first communication entity through the above information.
[0052] In a possible implementation, the method further includes: the second communication entity sends second capability information to a call session control function entity, and receives second policy information from the call session control function entity. The second capability information indicates that the second communication entity supports a protocol stack for establishing a data channel. The second policy information is used by the second communication entity to determine the at least two types of protocol stacks for establishing a data channel.
[0053] Based on the above possible implementation manner, the second communication entity may negotiate with the session control function entity on the strategy for the first communication entity to establish the data channel, so that the second communication entity proposes the above at least two types of protocol stacks for establishing the data channel.
[0054] In a possible implementation, the second capability information is carried in a registration request message, and the second policy information is carried in a response message with a status code of 200.
[0055] Based on the above possible implementation methods, the second communication entity can send the second capability information through a registration request message, and receive the second policy information through a response message with a status code of 200, so as to negotiate the policy for the second communication entity to establish a data channel through an existing process.
[0056] In a possible implementation, the second policy information is included in a SIP header field of the response message. For example, the second policy information is included in an extended header field of SIP (such as an IMSDC-Proto header field) or an existing header field (such as a Contact header field, an Accept header field, an Allow header field, a Feature-Caps header field, or a Require header field).
[0057] Based on the possible implementation manner, the second policy information may be carried in a SIP header field included in a response message with a status code of 200.
[0058] In a possible implementation manner, the data channel is an auxiliary data channel or an independent data channel.
[0059] Based on the above possible implementation manners, the first communication entity and the second communication entity may negotiate a protocol stack adopted by an auxiliary data channel of an IMS session in which both parties participate, or negotiate a protocol stack adopted by an independent data channel of an IMS session in which both parties participate.
[0060] In a third aspect, a communication method is provided, which can be executed by a call session control function (CSCF) entity; or, it can also be executed by a module applied to a CSCF entity, such as a chip, a chip system or a circuit; or, it can also be implemented by a logical node, a logical module or software that can implement all or part of the CSCF entity functions, without limitation. For ease of description, the following is an example of execution by a CSCF entity. Exemplarily, the CSCF entity can specifically be a serving CSCF (S-CSCF) entity.
[0061] The method comprises: receiving capability information, and sending policy information according to the capability information. The capability information indicates the protocol stack that the communication entity supports to establish a data channel. The policy information is used by the communication entity to determine at least two types of protocol stacks for establishing a data channel, or is used by the communication entity to determine the protocol stack for establishing a data channel, and the data channel is associated with an IMS session in which the communication entity participates.
[0062] Based on the method provided in the third aspect above, the CSCF entity can send the above-mentioned policy information according to the protocol stack for establishing a data channel supported by the communication entity (such as a terminal), so that the communication entity can determine at least two types of protocol stacks for establishing a data channel based on the policy information, or decide the protocol stack for establishing a data channel based on the policy information.
[0063] In a possible implementation, the capability information is carried in a registration request message, and the policy information is carried in a response message with a status code of 200.
[0064] Based on the above possible implementation, the CSCF entity may receive the capability information through a registration request message, and send the policy information through a response message with a status code of 200, so as to negotiate the communication entity's policy for establishing a data channel through an existing process.
[0065] In a possible implementation, the policy information is included in the SIP header field of the response message. For example, the policy information is included in an extended header field of SIP (such as the IMSDC-Proto header field) or an existing header field (such as the Contact header field, the Accept header field, the Allow header field, the Feature-Caps header field, or the Require header field).
[0066] Based on the possible implementation manner described above, the policy information may be carried in a SIP header field included in a response message with a status code of 200.
[0067] In a possible implementation manner, the data channel is an auxiliary data channel or an independent data channel.
[0068] Based on the possible implementation manners described above, the CSCF entity may indicate a protocol stack for an auxiliary data channel or a protocol stack for an independent data channel.
[0069] In a fourth aspect, a communication device is provided for implementing the above method. The communication device may be the first communication entity in the above first aspect, or a device including the above first communication entity, or a module in the first communication entity in the above first aspect, such as a chip, a chip system or a circuit, or a logical node, a logical module or a software implementation that can implement some or all of the functions of the first communication entity; or, the communication device may be the second communication entity in the above second aspect, or a device including the above second communication entity, or a module in the second communication entity in the above second aspect, such as a chip, a chip system or a circuit, or a logical node, a logical module or a software implementation that can implement some or all of the functions of the second communication entity; or, the communication device may be the CSCF entity in the above third aspect, or a device including the above CSCF entity, or a module in the CSCF entity in the above third aspect, such as a chip, a chip system or a circuit, or a logical node, a logical module or a software implementation that can implement some or all of the functions of the CSCF entity. The communication device includes a module, unit, or means corresponding to the implementation of the above method, and the module, unit, or means may be implemented by hardware, software, or by hardware executing the corresponding software implementation. The hardware or software includes one or more modules or units corresponding to the above functions.
[0070] In conjunction with the fourth aspect, in a possible implementation, the communication device may include an interface module. The interface module, which may also be referred to as an interface unit, is used to implement the sending and / or receiving functions in any of the above aspects and any possible implementations thereof. The interface module may be composed of an interface circuit, a transceiver, a transceiver or a communication interface.
[0071] In combination with the fourth aspect above, in a possible implementation, the interface module includes a sending module and a receiving module, which are respectively used to implement the sending and receiving functions in any of the above aspects and any possible implementations thereof.
[0072] In conjunction with the fourth aspect, in a possible implementation, the communication device further includes a processing module. The processing module can be used to implement the processing functions in any of the above aspects and any possible implementations thereof. The processing module can be, for example, a processor.
[0073] In a fifth aspect, a communication device is provided, comprising: a processor; the processor is coupled to a memory, and after reading an instruction in the memory, executes the method as described in any one of the above aspects according to the instruction. The communication device may be the first communication entity in the above first aspect, or a device including the above first communication entity, or a module in the first communication entity in the above first aspect, such as a chip, a chip system or a circuit, or a logical node, a logical module or a software implementation that can implement some or all functions of the first communication entity; or the communication device may be the second communication entity in the above second aspect, or a device including the above second communication entity, or a module in the second communication entity in the above second aspect, such as a chip, a chip system or a circuit, or a logical node, a logical module or a software implementation that can implement some or all functions of the second communication entity; or the communication device may be the CSCF entity in the above third aspect, or a device including the above CSCF entity, or a module in the CSCF entity in the above third aspect, such as a chip, a chip system or a circuit, or a logical node, a logical module or a software implementation that can implement some or all functions of the CSCF entity.
[0074] In conjunction with the fifth aspect, in a possible implementation, the communication device further includes a memory, the memory being used to store program instructions and data. Optionally, the memory is integrated with the processor; or, the memory is independent of the processor.
[0075] In conjunction with the fifth aspect, in a possible implementation, the communication device is a chip or a chip system. Optionally, when the communication device is a chip system, it can be composed of a chip, or it can include a chip and other discrete devices.
[0076] In a sixth aspect, a communication device is provided, comprising: a processor and an interface circuit; the interface circuit is used to receive a computer program or instruction and transmit it to the processor; the processor is used to execute the computer program or instruction so that the communication device executes the method as described in any of the above aspects. The communication device can be the first communication entity in the above first aspect, or a device including the above first communication entity, or a module in the first communication entity in the above first aspect, such as a chip, a chip system or a circuit, or a logical node, a logical module or a software implementation that can realize part or all of the functions of the first communication entity; or, the communication device can be the second communication entity in the above second aspect, or a device including the above second communication entity, or a module in the second communication entity in the above second aspect, such as a chip, a chip system or a circuit, or a logical node, a logical module or a software implementation that can realize part or all of the functions of the second communication entity; or, the communication device can be the CSCF entity in the above third aspect, or a device including the above CSCF entity, or a module in the CSCF entity in the above third aspect, such as a chip, a chip system or a circuit, or a logical node, a logical module or a software implementation that can realize part or all of the functions of the CSCF entity.
[0077] In conjunction with the sixth aspect, in a possible implementation, the communication device is a chip or a chip system. Optionally, when the communication device is a chip system, it can be composed of a chip, or it can include a chip and other discrete devices.
[0078] In a seventh aspect, a computer-readable storage medium is provided, wherein instructions are stored in the computer-readable storage medium, and when the computer-readable storage medium is run on a computer, the computer can execute the method described in any one of the above aspects.
[0079] In an eighth aspect, a computer program product comprising instructions is provided, which, when executed on a computer, enables the computer to execute the method described in any one of the above aspects.
[0080] In a ninth aspect, a communication system is provided, comprising a first communication entity for executing the method described in the first aspect, and a second communication entity for executing the method described in the second aspect.
[0081] In combination with the ninth aspect above, in a possible implementation manner, the communication system also includes a CSCF entity for executing the method described in the third aspect above.
[0082] Among them, the technical effects brought about by any possible implementation method in the fourth to ninth aspects can refer to the technical effects brought about by any aspect in the first to third aspects or different possible implementation methods in any aspect, and will not be repeated here.
[0083] It can be understood that, under the premise that the solutions are not contradictory, the solutions in each aspect can be combined. BRIEF DESCRIPTION OF THE DRAWINGS
[0084] Figure 1A This is a schematic diagram of the protocol stack used in WebRTC;
[0085] Figure 1B is a schematic diagram of an IMS session;
[0086] Figure 1C Schematic diagram 1 of the protocol stack of the IMS session provided for this application;
[0087] Figure 1D Schematic diagram of the protocol stack for the IMS session provided in this application Figure 2 ;
[0088] Figure 1E Schematic diagram 3 of the protocol stack of the IMS session provided for this application;
[0089] Figure 1F Schematic diagram of the protocol stack for the IMS session provided in this application Figure 4 ;
[0090] Figure 1G Schematic diagram of the protocol stack for the IMS session provided in this application Figure 5 ;
[0091] Figure 1H Schematic diagram of the protocol stack for the IMS session provided in this application Figure 6 ;
[0092] Fig. 1I Schematic diagram of the protocol stack for the IMS session provided in this application Figure 7 ;
[0093] Figure 2 A schematic diagram of the communication system architecture provided for this application;
[0094] Figure 3A Schematic diagram 1 of the communication scenario provided for this application;
[0095] Figure 3B Schematic diagram 1 of the data channel provided for this application;
[0096] Figure 3C Schematic diagram of the communication scenario provided for this application Figure 2 ;
[0097] Figure 3D Schematic diagram of the data channel provided for this application Figure 2 ;
[0098] Figure 4A schematic diagram of the hardware structure of the communication device provided in this application;
[0099] Figure 5 Flow chart 1 of the communication method provided in this application;
[0100] Figure 6 Schematic diagram of the communication method provided in this application Figure 2 ;
[0101] Figure 7 Flowchart 3 of the communication method provided for this application;
[0102] Figure 8 Schematic diagram of the communication method provided in this application Figure 4 ;
[0103] Fig. 9 Schematic diagram of the communication method provided in this application Figure 5 ;
[0104] Fig.10 A schematic diagram of the structure of the communication device provided in this application. DETAILED DESCRIPTION
[0105] Before introducing the technical solution of the present application, the relevant technical terms involved in the present application are explained. It is understandable that these explanations are intended to make the present application easier to understand and should not be regarded as limiting the scope of protection claimed by the present application.
[0106] 1. Terminal
[0107] The terminal described in the present application, such as the terminal 302, terminal 303, terminal 313 or terminal 314 in the following embodiments, can be called user equipment (UE), terminal device, access terminal, user unit, user station, mobile station, mobile station (MS), mobile terminal (MT), remote station, remote terminal, mobile device, user terminal, wireless communication device, user agent or user device, etc., which is a device with wireless or wired communication capabilities. For example, the terminal can be connected to a wireless access device through an air interface, or the terminal can be connected to a wired access device through a wired interface. From the product form, the terminal can include a handheld device, a vehicle-mounted device, a wearable device or a computing device with communication functions. Exemplarily, the terminal may be a mobile phone, a tablet computer, a computer with a wireless communication function (such as a laptop computer, a PDA, etc.), a mobile internet device (MID), a virtual reality (VR) terminal, an augmented reality (AR) terminal, a smart watch, a smart bracelet, smart glasses, a wireless terminal in industrial control, a wireless terminal in self driving, a wireless terminal in remote medical, a wireless terminal in a smart grid, a wireless terminal in transportation safety, a wireless terminal in a smart city, a wireless terminal in a smart home, a cellular phone, a cordless phone, a SIP phone, a wireless local loop (WLL) station, a personal digital assistant (PDA), a handheld device with a wireless communication function, other processing devices connected to a wireless modem, a terminal in an Internet of Things (IoT) system, a desktop computer, or a 3rd Generation Partnership Project (3GP) system. UE defined in the 3GPP (3rd Generation Partnership Project) standard specifications, etc., are not restricted.
[0108] 2. Call service
[0109] The call service described in this application refers to the service of voice calls or video calls between one or more terminals through a communication network (such as an IMS network) in which a terminal participates as a caller or a called party. The IMS network is an open system based on IP bearer and provides users with various multimedia services.
[0110] In this application, the call service can cover the entire process from the start of dialing to the end of the call, or it can cover part of the process from the start of dialing to the end of the call, such as the process from the parties involved in the call service entering the call state to the end of the call. The call service can be a one-to-one call service or a one-to-many (such as a conference) call service; this application takes a one-to-one call service as an example, but the relevant solutions can be used for one-to-many call services.
[0111] 3. IMS session
[0112] The IMS session described in this application refers to a session for multimedia communication established between people, people and things, or things and things, and is used to transmit multimedia data between the communicating parties, such as data between terminals, and / or data between the terminal and the communication network. The IMS session can be understood as a logical connection between communication devices in multimedia communication. For example, it can be understood as a logical connection between terminals in multimedia communication, which can transmit data between terminals; or it can be understood as a logical connection between a terminal and a communication network in multimedia communication, which is used to transmit data between the terminal and the communication network. In specific applications, the IMS session can be negotiated (or established) based on the session initiation protocol (SIP) / SDP. It should be understood that the IMS session can also be replaced by a communication session, an IMS communication session, a session or a session for call services, etc., without limitation.
[0113] It can be understood that the multimedia communication may correspond to at least one IMS session. Taking the multimedia communication between terminal 1 and terminal 2 as an example, the multimedia communication corresponds to one IMS session, such as the IMS session between terminal 1 and terminal 2. Taking the multimedia communication between terminal 1, terminal 2 and terminal 3 as an example, the multimedia communication corresponds to one IMS session, such as the IMS session between terminal 1, terminal 2 and terminal 3; or, the multimedia communication corresponds to three IMS sessions, such as the IMS session between terminal 1 and terminal 2, the IMS session between terminal 1 and terminal 3, and the IMS session between terminal 2 and terminal 3.
[0114] It is understandable that in order to transmit various types of data, a channel for transmitting the corresponding type of data may be established in the IMS session. Exemplarily, according to the data type, the channel may be divided into a media channel and a data channel. In some scenarios, the media channel may be further divided into an audio channel and a video channel. For example, in Figure 1B In the example, terminal 1 and terminal 2 can communicate via an IMS network, and the IMS session between terminal 1 and terminal 2 includes a data channel, an audio channel, and a video channel. It should be understood that Figure 1B This is only an example of an IMS session. In a specific application, the IMS session may include a data channel but not a media channel, or the IMS session may include one of an audio channel and a video channel and a data channel, without limitation.
[0115] In this application, the audio channel can be used to transmit voice, and the video channel can be used to transmit video. The data channel is described in detail below.
[0116] 4. Data Channel
[0117] The data channels described in the embodiments of the present application, such as data channels 304 to 307, data channels 315 to 321, etc. in the following embodiments, unless otherwise specified, refer to data channels in the IMS network, also known as IMS data channels, which are associated with the IMS session of the terminal, or are created during the IMS session of the terminal, and can be used to transmit application data or applications related to the terminal (for generating / consuming application data) during the duration of the IMS session.
[0118] Exemplarily, according to the relationship between the data channel and the audio / video call, the data channel of the embodiment of the present application can be divided into at least the following types.
[0119] (1) During an IMS session, when the terminal has an audio or video call with another session participant (which can be another terminal or a network element), there is also a data channel. The data channel at this time can be called an auxiliary data channel or a dependent data channel.
[0120] (2) During an IMS session, when a data channel exists between the terminal and other session participants, and there is no traditional voice call or video call, the data channel at this time can be called a standalone data channel or an independent data channel.
[0121] Whether it is an auxiliary data channel or an independent data channel, it can be used to transmit any type of application data between the session participants. Exemplarily, the uses of the data channel in the embodiment of the present application or the types of data that can be transmitted include at least the following.
[0122] Exemplarily, the application data transmitted by the data channel may be interactive application data (interactive data for short); the interactive application data may be application data used to support interactive operations (such as data or code / script used to generate a graphical user interface (GUI) for users to perform interactive operations, such as a "Like" button or a "Red Envelope" button), or application data generated by executing the interactive operation (such as control instructions, control signals or output files generated after the conversation participants perform interactive operations, such as the number of "Likes" and the amount in a "Red Envelope"); or data collected or stored by the terminal, for example, data collected by the terminal through an input / output (I / O) module, such as images or videos captured by a camera, voice collected by a microphone, text, symbols or emoticons input by a keyboard, data generated by actions such as clicking / sliding on a touch screen.
[0123] Exemplarily, the application data transmitted by the data channel may also be communication enhancement application data (communication enhancement data), referred to as communication enhancement data; the communication enhancement data may be data generated based on the content of the audio call / video call, such as converting the voice in the audio call / video call into text, or converting the sign language in the video call into text or voice, or it may be data superimposed on the audio call / video call, such as AR special effects pictures, etc., or it may be data independent of the audio call / video call, such as geographic location data, screen sharing data, etc.
[0124] Exemplarily, the application data transmitted by the data channel may also be a remote control command, which can provide a remote control service or a remote IOT device connection service for the user. It can be understood that in the above case, the data channel may also be used to transmit the remote control command.
[0125] Exemplarily, the application transmitted by the data channel may be an application installation package, executable code or script. The application may be an interactive enhanced application or a communication enhanced application for enhancing the interactive effect / communication effect of traditional voice calls / video calls. It may also be a remote control application / IoT communication application, which is not limited in the embodiments of the present application.
[0126] For example, depending on the usage, the auxiliary data channel or independent data channel can be divided into: bootstrap data channel (BDC) or application data channel (ADC). In the present application, BDC is used for the terminal to obtain the application from the data channel server (DCS). ADC is used to transmit application data.
[0127] A possible implementation manner is to negotiate (or establish) a data channel based on SIP / SDP.
[0128] Exemplarily, the SDP offerer and the SDP answerer determine the IP address and port used by both parties to transmit data, the relevant information of the protocol stack of the data channel, and the media information corresponding to the data channel through the SIP / SDP media negotiation process, so as to establish one or more data channels in the IMS session. The SDP offerer and the SDP answerer are two terminals in the same IMS session; or, the SDP offerer is a terminal in the IMS session, and the SDP answerer is a network device in the communication network, such as an IMS application server (AS); or, the SDP offerer is a network device in the communication network, and the SDP answerer is a terminal in the IMS session.
[0129] It is understandable that the SDP offerer and the SDP answerer can negotiate BDC and ADC based on the SIP / SDP media negotiation process, obtain one or more applications from the DCS through the BDC, run the application before, during or after the call, and transmit the application data through the ADC, so that the user can experience richer real-time interactive services in addition to voice calls, video calls and texts. It should be understood that the SDP offerer and the SDP answerer can negotiate BDC and ADC at the same time, or negotiate BDC first and then negotiate ADC, without limitation.
[0130] In order to distinguish ADC from BDC, the stream ID of ADC and the stream ID of BDC can be set to different values in the SDP message or SIP message. For example, the stream ID value of BDC is less than 1000, and the stream ID value of ADC is greater than or equal to 1000.
[0131] It can be understood that, unless otherwise specified, the description of the data channel in this application is applicable to auxiliary data channels, independent data channels, BDC and ADC, and a unified description is made here and no further elaboration is given later.
[0132] 5. IMS session protocol stack
[0133] In this application, the protocol stack of an IMS session is used to indicate the sum of protocols applicable to an IMS session, which can reflect the data transmission process in an IMS session. As mentioned above, an IMS session can transmit voice, video, text, and data other than voice, video, and text. Therefore, in order to match the transmission requirements of different types of data, different protocols can be configured for channels of different types of data. For example, the protocol stack of an IMS session can be as follows: Figure 1C shown.
[0134] exist Figure 1C In the , the bottom layer protocol of audio channel, video channel and data channel is Internet Protocol (IP), and above IP is UDP. For the above channels, the protocols above UDP are different, which are explained below. For audio channel or video channel, above UDP is real-time transport protocol (RTP) or RTP control protocol (RTCP), RTP can encapsulate voice, video or text payload, above which is conversational multimedia application, and above RTCP is also conversational multimedia application. For data channel, above UDP is DTLS protocol, above DTLS protocol is SCTP, above SCTP is data channel, and above data channel is conversational multimedia application.
[0135] It can be understood that UDP, RTP, RTCP, DTLS and SCTP protocols are all transport layer protocols. Therefore, the UDP / RTP protocol stack can be understood as a type of transport layer protocol stack for audio channels / video channels, the UDP / RTCP protocol stack can be understood as another type of transport layer protocol stack for audio channels / video channels, and the UDP / DTLS / SCTP protocol stack can be understood as a transport layer protocol stack for data channels. In this application, the symbol " / " used to describe the protocol stack represents the hierarchical relationship of the protocols in the protocol stack. For example, the UDP / DTLS / SCTP protocol stack indicates that the DTLS protocol is above UDP, and the SCTP protocol is above the DTLS protocol.
[0136] 6. Transport layer protocol stack of data channel
[0137] pass Figure 1C It can be seen that the transport layer protocol stack of the data channel is based on UDP encapsulation SCTP over DTLS protocol stack, that is, UDP / DTLS / SCTP protocol stack.
[0138] Among them, SCTP is a transport layer protocol widely used in telecommunication networks. It can meet different transmission requirements through configuration, so it has more advantages than other transport layer protocols. For example, as shown in Table 1, it is a capability comparison table of TCP, UDP and SCTP. It can be seen from Table 1 that the reliability and delivery mode of SCTP are configurable, and SCTP also supports flow control and congestion control. Therefore, the data transmitted in the data channel can meet different transmission requirements by configuring the reliability and / or delivery mode of SCTP. For example, if the real-time requirement is high and it is very sensitive to packet loss, the data channel can be configured through SCTP to support the ordered reliable mode. In some scenarios, flow control and / or congestion control can also be superimposed to further ensure the transmission quality of data. The DTLS protocol can provide confidentiality and integrity protection for data transmission, and provide a two-way authentication mechanism for both communicating parties to ensure the secure transmission of data. UDP can be applied to a variety of networks, so the use of UDP encapsulated messages can enable the messages to be transmitted in these networks and can be recognized by devices in the network, such as routers, NAT devices, etc. Therefore, when introducing the data channel into the IMS network, it is determined that the UDP / DTLS / SCTP protocol stack is used as the transport layer protocol stack of the data channel.
[0139] Table 1
[0140] TCP UDP SCTP reliability reliable Unreliable Configurable Delivery method Ordered delivery Out-of-order transmission Configurable Transmission method Byte transfer Transmit by message Transmit by message Flow Control support Not supported support Congestion Control support Not supported support
[0141] Optionally, in addition to SCTP, DTLS and UDP, the data channel can use NAT traversal technology to allow both parties to know each other's IP address and port. For example, ICE can integrate two mechanisms, session traversal utilities for NAT (STUN) and traversal using relays around NAT (TURN), to allow both parties to know each other's IP address and port.
[0142] It should be understood that in specific applications, there are multiple technologies for implementing NAT traversal, and ICE is only one of them. Therefore, ICE can also be replaced by other NAT traversal technologies without limitation.
[0143] However, with the development of communication technology, there are more and more communication scenarios. The UDP / DTLS / SCTP protocol stack can no longer adapt to the increasingly complex communication scenarios. In order to solve this problem, this application provides multiple types of protocol stacks that can be used by data channels. These protocol stacks are obtained by analyzing the current status of the IMS network, the current communication scenarios, and the communication scenarios that may appear in the future. The following is a detailed explanation.
[0144] First, the authentication / authorization / billing (AAA) interfaces of the IMS network, such as the authentication interfaces Cx and Sh, the billing interfaces Ro and Rf, and the authorization interfaces Gx and Rx, all use the Diameter protocol as the application layer protocol, and usually use SCTP as the transport layer protocol of Diameter. Therefore, in the IMS network, network devices such as routers and NAT all support the SCTP protocol, that is, the IMS network can support the SCTP protocol. The data channel is deployed in the IMS network, and the SCTP protocol can be used to transmit data in the IMS network without encapsulating the UDP protocol. In addition, the data transmitted in the data channel is usually user plane data, which is transmitted through Figure 1C After encapsulation of the protocol stack shown, an IP data packet can be obtained. When the IP data packet is transmitted between the terminal and the base station, it will also be encapsulated through the packet data convergence protocol (PDCP), and PDCP also supports encrypted transmission of data. It can be seen that during the data transmission process, the data is encrypted at least by the DTLS protocol and PDCP, that is, repeated encryption occurs. In some scenarios, in order to avoid repeated encryption, the DTLS protocol in the data channel protocol stack can be omitted. In other words, SCTP can be directly used as the transport layer protocol stack of the data channel.
[0145] Secondly, the various data channel applications used in IMS sessions have clear requirements for transmission delay, packet loss rate, etc. Therefore, it is possible to consider determining the transport layer protocol stack of the data channel used by the data channel application based on the requirements of the data channel application. For example, for data channel applications that are sensitive to packet loss, the transport layer protocol stack of the data channel used may include TCP, because TCP is connection-oriented, and its retransmission and congestion control mechanisms can ensure the reliability of data transmission and avoid packet loss. For data channel applications that are sensitive to transmission delay, the transport layer protocol stack of the data channel used may include UDP, because UDP provides non-connection-oriented, unreliable data stream transmission, it does not need to establish a connection between the client and the server before transmitting the datagram, and there is no timeout retransmission mechanism, so the data transmission speed is very fast.
[0146] Thirdly, the transport layer protocol is still developing, and new transport layer protocols will continue to emerge. For example, the more popular protocol is the QUIC protocol. Compared with TCP and SCTP, the QUIC protocol has the advantages of faster link establishment speed, more flexible congestion control mechanism, and stronger evolution capability. Therefore, the QUIC protocol can be identified as the transport layer protocol of the data channel.
[0147] In summary, in addition to UDP, DTLS and SCTP, TCP and QUIC protocols can also be determined as transport layer protocols for data channels. Therefore, the data channel can adopt various types of protocol stacks, for example, UDP / DTLS / SCTP protocol stack, TCP / DTLS / SCTP protocol stack, UDP / QUIC protocol stack, UDP / SCTP protocol stack, SCTP protocol stack, TCP protocol stack or UDP protocol stack. It should be understood that each of the above-mentioned protocol stacks is only an example of a protocol stack supported by the data channel. In specific applications, the data channel can support more or fewer types of protocol stacks than the above examples without limitation.
[0148] The following introduces the various transport layer protocol stacks supported by the data channel.
[0149] 7. UDP / DTLS / SCTP protocol stack
[0150] In this application, the UDP / DTLS / SCTP protocol stack can be understood as the transport layer protocol stack of the data channel, which includes UDP, DTLS protocol and SCTP from the bottom layer. Specifically, it can be as follows Figure 1CAs shown. It should be understood that the UDP / DTLS / SCTP protocol stack is only one form of expression of the protocol stack. In specific applications, the UDP / DTLS / SCTP protocol stack can also have other forms of expression. For example, the UDP / DTLS / SCTP protocol stack can be replaced by "SCTP over DTLS protocol over UDP protocol stack", "SCTP over DTLS over UDP protocol stack", or "SCTP over DTLS protocol stack based on UDP encapsulation", etc., without limitation.
[0151] It is understandable that UDP is applicable to many communication networks. Using it as a tunneling protocol to encapsulate SCTP messages can enable more network devices to recognize encapsulated messages, and the speed is faster when transmitting data through UDP. The DTLS protocol can provide confidentiality and integrity protection for data transmission, and provide a two-way authentication mechanism for both communicating parties, so it can improve communication security. SCTP can be configured to support ordered reliable mode, unreliable disordered mode or partially reliable mode to better meet the transmission requirements of different data channel applications. In addition, the data transmission method in SCTP can also be configured. The real-time performance of data in SCTP is high and SCTP has a congestion control mechanism. In summary, the UDP / DTLS / SCTP protocol stack is suitable for communication scenarios that require one or more of transmission delay, communication security, transmission reliability, data transmission method, data real-time performance or congestion control mechanism.
[0152] It can be understood that if the protocol stack of the data channel includes the UDP / DTLS / SCTP protocol stack, the attribute line corresponding to the protocol stack can be carried in the SDP media description (media description) corresponding to the data channel, for example, one or more of the a=setup attribute line, a=sctp-port attribute line, a=max-message-size attribute line, a=tls-id attribute line or a=fingerprint attribute line. Among them, the a=setup attribute line can indicate whether this endpoint initiates a DTLS link establishment request, receives a DTLS link establishment request, or both. The a=sctp-port attribute line can indicate the SCTP port value, and the port value of the "m=" line where the attribute line is located is the port value of the underlying transport layer UDP. The a=max-message-size attribute line can indicate the maximum SCTP user message size (expressed in bytes) received by the SCTP endpoint on the SCTP association associated with the "m=" line. The a=tls-id attribute line can define a pair of a=tls-id attribute values in the SDP Offer information (SDP Offer) and the SDP Answer information (SDPAnswer), which can uniquely identify a DTLS association (or connection). The a=fingerprint attribute line can carry the certificate fingerprint used by the DTLS session.
[0153] As an example, if the protocol stack of the data channel includes the UDP / DTLS / SCTP protocol stack, the content included in the SDP media description corresponding to the data channel can be as shown in Table 2. In Table 2, the attribute value of the a=setup attribute line is "actpass", indicating that this endpoint can both initiate a DTLS link establishment request and receive a DTLS link establishment request. The a=sctp-port attribute line indicates that the SCTP port value is 5000, and the port value 52718 of the "m=" line "m=application 52718UDP / DTLS / SCTP webrtc-datachannel" where the a=sctp-port attribute line is located is the UDP port value. The a=max-message-size attribute line indicates that the maximum SCTP user message size received by the SCTP endpoint with a port value of 5000 is 1024 bytes. The DTLS association (or connection) indicated by the a=tls-id attribute line is "abc3de65cddef001be82". The fingerprint of the certificate used in the DTLS session carried in the a=fingerprint attribute line is "SHA-14A:AD:B9:B1:3F:82:18:3B:54:02:12:DF:3E:5D:49:6B:19:E5:7C:AB".
[0154] Table 2
[0155]
[0156] It should be understood that the above are only examples of attribute rows corresponding to the UDP / DTLS / SCTP protocol stack. In specific applications, the attribute rows corresponding to the UDP / DTLS / SCTP protocol stack may include more attribute rows than in the above examples, or may include attribute rows in other forms, without limitation.
[0157] 8. TCP / DTLS / SCTP protocol stack
[0158] In this application, the TCP / DTLS / SCTP protocol stack can be understood as the transport layer protocol stack of the data channel, which includes TCP, DTLS protocol and SCTP from the bottom layer. Therefore, after replacing the transport layer protocol stack of the data channel in the protocol stack of the IMS session with the TCP / DTLS / SCTP protocol stack, the protocol stack of the IMS session can be as follows: Figure 1D As shown. It should be understood that the TCP / DTLS / SCTP protocol stack is only one form of expression of the protocol stack. In specific applications, the TCP / DTLS / SCTP protocol stack can also have other forms of expression. For example, the TCP / DTLS / SCTP protocol stack can be replaced by "SCTP superimposed on the DTLS protocol superimposed on TCP protocol stack", "SCTP over DTLS over TCP protocol stack", or "SCTP over DTLS protocol stack based on TCP encapsulation", etc., without limitation.
[0159] It is understandable that TCP is applicable to many communication networks. It will be used as a tunnel protocol to encapsulate SCTP messages, which can enable more network devices to recognize the encapsulated messages. In addition, TCP has high reliability and can avoid packet loss. The DTLS protocol can provide confidentiality and integrity protection for data transmission, and provide a two-way authentication mechanism for both parties in communication, so it can improve communication security. SCTP can be configured to support ordered reliable mode, unreliable disordered mode or partially reliable mode to better meet the transmission requirements of different data channel applications. In addition, the data transmission method in SCTP can also be configured. The real-time performance of data in SCTP is high and SCTP has a congestion control mechanism. In summary, the TCP / DTLS / SCTP protocol stack is suitable for communication scenarios that require one or more of packet loss, communication security, transmission reliability, data transmission method, data real-time performance or congestion control mechanism.
[0160] It can be understood that if the protocol stack of the data channel includes the TCP / DTLS / SCTP protocol stack, the attribute line corresponding to the protocol stack can be carried in the SDP media description corresponding to the data channel, for example, one or more of the a=setup attribute line, a=sctp-port attribute line, a=max-message-size attribute line, a=tls-id attribute line or a=fingerprint attribute line. Among them, the a=setup attribute line can indicate whether this endpoint initiates TCP link establishment and DTLS link establishment requests, or receives TCP link establishment and DTLS link establishment requests, or both. The a=sctp-port attribute line can indicate the SCTP port value, and the port value of the "m=" line where the attribute line is located is the port value of the underlying transport layer TCP. For the introduction of the a=max-message-size attribute line, the a=tls-id attribute line and the a=fingerprint attribute line, please refer to the previous description of the UDP / DTLS / SCTP protocol stack.
[0161] Exemplarily, if the protocol stack of the data channel includes the TCP / DTLS / SCTP protocol stack, the content of the SDP media description corresponding to the data channel can be shown in Table 3. In Table 3, the attribute value of the a=setup attribute line is "actpass", indicating that this endpoint can both initiate TCP link establishment and DTLS link establishment requests and receive TCP link establishment and DTLS link establishment requests; the a=sctp-port attribute line indicates that the SCTP port value is 5000, and the port value 52718 of the "m=" line "m=application52718TCP / DTLS / SCTP webrtc-datachannel" where the a=sctp-port attribute line is located is the TCP port value. The description of other attribute lines can refer to the above introduction to Table 2 and will not be repeated here.
[0162] Table 3
[0163]
[0164] It should be understood that the above are only examples of attribute rows corresponding to the TCP / DTLS / SCTP protocol stack. In specific applications, the attribute rows corresponding to the TCP / DTLS / SCTP protocol stack may include more attribute rows than in the above examples, or may include attribute rows in other forms, without limitation.
[0165] 9. UDP / QUIC protocol stack
[0166] In this application, the UDP / QUIC protocol stack can be understood as the transport layer protocol stack of the data channel, which includes UDP and QUIC protocols from the bottom layer. Therefore, after replacing the transport layer protocol stack of the data channel in the protocol stack of the IMS session with the UDP / QUIC protocol stack, the protocol stack of the IMS session can be as follows: Figure 1E As shown. It should be understood that the UDP / QUIC protocol stack is only one form of expression of the protocol stack. In specific applications, the UDP / QUIC protocol stack can also have other forms of expression. For example, the UDP / QUIC protocol stack can be replaced by "QUIC protocol stack with UDP superimposed", "QUIC over UDP protocol stack", or "QUIC protocol stack based on UDP encapsulation", etc., without limitation.
[0167] It is understandable that the QUIC protocol is a relatively new transport layer protocol. Compared with TCP and SCTP, it has the advantages of faster link establishment, more flexible congestion control mechanism, and stronger evolution capability. Considering that QUIC is a brand-new transport layer protocol, it takes a long time for existing network devices to support QUIC. Therefore, the QUIC protocol adopted the mechanism of UDP encapsulation of QUIC messages at the beginning of its design. Therefore, the UDP / QUIC protocol stack is suitable for communication scenarios that require link establishment speed and high transmission performance.
[0168] It is understandable that if the protocol stack of the data channel includes a UDP / QUIC protocol stack, the attribute line corresponding to the protocol stack may be carried in the SDP media description corresponding to the data channel, for example, an a=tls-id attribute line and / or an a=fingerprint attribute line. The a=tls-id attribute line may define a pair of a=tls-id attribute values in the SDP Offer and SDP Answer, which may uniquely identify a transport layer security (TLS) association (or connection). The a=fingerprint attribute line may carry the certificate fingerprint used for the TLS session.
[0169] As an example, if the protocol stack of the data channel includes a UDP / QUIC protocol stack, the content of the SDP media description corresponding to the data channel may be as shown in Table 4. In Table 4, the TLS association (or connection) indicated by the a=tls-id attribute line is "abc3de65cddef001be82". The certificate fingerprint used by the TLS session carried by the a=fingerprint attribute line is "SHA-14A:AD:B9:B1:3F:82:18:3B:54:02:12:DF:3E:5D:49:6B:19:E5:7C:AB".
[0170] Table 4
[0171]
[0172]
[0173] It should be understood that the above are only examples of attribute rows corresponding to the UDP / QUIC protocol stack. In specific applications, the attribute rows corresponding to the UDP / QUIC protocol stack may include more attribute rows than in the above examples, or may include attribute rows in other forms, without limitation.
[0174] 10. UDP / SCTP protocol stack
[0175] In this application, the UDP / SCTP protocol stack can be understood as the transport layer protocol stack of the data channel, which includes UDP and SCTP from the bottom layer. Therefore, after replacing the transport layer protocol stack of the data channel in the protocol stack of the IMS session with the UDP / SCTP protocol stack, the protocol stack of the IMS session can be as follows: Figure 1F As shown. It should be understood that the UDP / SCTP protocol stack is only one form of expression of the protocol stack. In specific applications, the UDP / SCTP protocol stack can also have other forms of expression. For example, the UDP / SCTP protocol stack can be replaced by "SCTP overlay UDP protocol stack", "SCTP over UDP protocol stack", or "SCTP protocol stack based on UDP encapsulation", etc., without limitation.
[0176] It is understandable that in order to avoid repeated encryption, the transport layer protocol stack of the data channel may not include the DTLS protocol. UDP is applicable to many communication networks, and will be used as a tunneling protocol to encapsulate SCTP messages, so that more network devices can recognize the encapsulated messages, and the data can be transmitted faster through UDP. SCTP can be configured to support ordered reliable mode, unreliable disordered mode or partially reliable mode to better meet the transmission requirements of different data channel applications. In addition, the data transmission method in SCTP can also be configured. In summary, the UDP / SCTP protocol stack is suitable for communication scenarios that require one or more of the transmission delay, transmission reliability or data transmission method.
[0177] It can be understood that if the protocol stack of the data channel includes a UDP / SCTP protocol stack, the attribute line corresponding to the protocol stack can be carried in the SDP media description corresponding to the data channel, for example, carrying an a=sctp-port attribute line, and / or an a=max-message-size attribute line. Among them, the a=sctp-port attribute line can indicate the SCTP port value, and the port value of the "m=" line where the attribute line is located is the port value of the underlying transport layer UDP. The a=max-message-size attribute line can indicate the maximum SCTP user message size (expressed in bytes) received by the SCTP endpoint on the SCTP coupling associated with the "m=" line.
[0178] As an example, if the protocol stack of the data channel includes a UDP / SCTP protocol stack, the content of the SDP media description corresponding to the data channel may be as shown in Table 5. In Table 5, the a=sctp-port attribute line indicates that the SCTP port value is 5002, and the port value 52718 of the "m=" line "m=application 52718UDP / DTLS / SCTP webrtc-datachannel" where the a=sctp-port attribute line is located is the UDP port value. The a=max-message-size attribute line indicates that the maximum SCTP user message size received by the SCTP endpoint with a port value of 5002 is 1024 bytes.
[0179] Table 5
[0180]
[0181] It should be understood that the above are only examples of attribute rows corresponding to the UDP / SCTP protocol stack. In specific applications, the attribute rows corresponding to the UDP / SCTP protocol stack may include more attribute rows than in the above examples, or may include attribute rows in other forms without limitation.
[0182] 11. SCTP protocol stack
[0183] In this application, the SCTP protocol stack can be understood as the transport layer protocol stack of the data channel including SCTP, but not including other transport layer protocols except SCTP. Therefore, after replacing the transport layer protocol stack of the data channel in the protocol stack of the IMS session with the SCTP protocol stack, the protocol stack of the IMS session can be as follows: Figure 1G shown.
[0184] As mentioned above, the SCTP protocol stack can be supported in the IMS network, so UDP or TCP is not required to encapsulate the SCTP message. In addition, SCTP can be configured to support ordered reliable mode, unreliable disordered mode, or partially reliable mode to better meet the transmission requirements of different data channel applications. In addition, the data transmission method in SCTP can also be configured, the real-time performance of the data in SCTP is high, and SCTP has a congestion control mechanism. Therefore, the SCTP protocol stack is suitable for communication scenarios in telecommunications networks that require one or more of the transmission reliability, data transmission method, data real-time performance, or congestion control mechanism.
[0185] It is understandable that if the protocol stack of the data channel includes the SCTP protocol stack, an attribute line corresponding to the protocol stack may be carried in the SDP media description corresponding to the data channel, for example, carrying an a=max-message-size attribute line. The a=max-message-size attribute line may indicate the maximum SCTP user message size (expressed in bytes) received by the SCTP endpoint on the SCTP association associated with the "m=" line.
[0186] As an example, if the protocol stack of the data channel includes the SCTP protocol stack, the content included in the SDP media description corresponding to the data channel may be as shown in Table 6. In Table 6, the "m=" line "m=application 5002SCTP webrtc-datachannel" indicates that the SCTP port value is 5002, and the a=max-message-size attribute line indicates that the maximum SCTP user message size received by the SCTP endpoint with a port value of 5002 is 1024 bytes.
[0187] Table 6
[0188]
[0189] It should be understood that the above are only examples of attribute lines corresponding to the SCTP protocol stack. In specific applications, the attribute lines corresponding to the SCTP protocol stack may include more attribute lines than in the above examples, or may include attribute lines in other forms, without limitation.
[0190] 12. TCP protocol stack
[0191] In this application, the TCP protocol stack can be understood as the transport layer protocol stack of the data channel including TCP, but not including transport layer protocols other than TCP. Therefore, after replacing the transport layer protocol stack of the data channel in the protocol stack of the IMS session with the TCP protocol stack, the protocol stack of the IMS session can be as follows: Figure 1H shown.
[0192] As you can understand, TCP has high reliability, can avoid packet loss, and is widely used on the Internet. Therefore, the TCP protocol stack can be applied to communication scenarios on the Internet that are sensitive to packet loss or have high reliability requirements.
[0193] It is understandable that if the protocol stack of the data channel includes a TCP protocol stack, the attribute line corresponding to the protocol stack can be carried in the SDP media description corresponding to the data channel, for example, carrying an a=setup attribute line and / or an a=connection attribute line. The a=setup attribute line can indicate whether the endpoint can initiate a TCP link establishment request, or can receive a TCP link establishment request, or both. The a=connection attribute line can be used to indicate whether the corresponding TCP connection is an existing TCP connection or a new TCP connection.
[0194] As an example, if the protocol stack of the data channel includes a TCP protocol stack, the content of the SDP media description corresponding to the data channel may be as shown in Table 7. In Table 7, the attribute value of the a=setup attribute line is "passive", indicating that the endpoint can receive TCP connection establishment requests. The a=connection attribute line indicates that the corresponding TCP connection is a new TCP connection.
[0195] Table 7
[0196]
[0197]
[0198] It should be understood that the above are only examples of attribute rows corresponding to the TCP protocol stack. In specific applications, the attribute rows corresponding to the TCP protocol stack may include more attribute rows than those in the above examples, or may include attribute rows in other forms, without limitation.
[0199] 13. UDP protocol stack
[0200] In this application, the UDP protocol stack can be understood as the transport layer protocol stack of the data channel including UDP, but not including transport layer protocols other than UDP. Therefore, after replacing the transport layer protocol stack of the data channel in the protocol stack of the IMS session with the UDP protocol stack, the protocol stack of the IMS session can be as follows: Fig. 1I shown.
[0201] As you can understand, UDP is widely used on the Internet because it is fast when transmitting data. Therefore, the UDP protocol stack can be applied to communication scenarios on the Internet that are sensitive to transmission delay.
[0202] As an example, if the protocol stack of the data channel includes a UDP protocol stack, the content included in the SDP media description corresponding to the data channel may be as shown in Table 8.
[0203] Table 8
[0204]
[0205] It should be understood that the above are only examples of attribute rows corresponding to the UDP protocol stack. In specific applications, the attribute rows corresponding to the UDP protocol stack may include more or fewer attribute rows than in the above examples, or may include other forms of attribute rows without limitation.
[0206] Optional, for FIG. 1D to FIG. 1I For any type of transport layer protocol stack shown, the data channel can also use NAT traversal technology to allow the communicating parties to perceive each other's IP address and port. For example, ICE can integrate STUN and TURN mechanisms to allow the communicating parties to perceive each other's IP address and port.
[0207] It should be understood that in specific applications, there are multiple technologies for implementing NAT traversal, and ICE is only one of them. Therefore, ICE can also be replaced by other NAT traversal technologies without limitation.
[0208] In summary, the data channel described in the present application can support multiple types of transport layer protocol stacks. Therefore, the data channel described in the present application can adapt to more communication scenarios, such as scenarios that require DTLS protocol encryption, scenarios that do not require DTLS protocol encryption, scenarios that are sensitive to link establishment speed, scenarios that are sensitive to packet loss rate, or scenarios that are sensitive to latency, etc., which can improve the flexibility of communication.
[0209] In order to enable the SDP proposer and the SDP responder to determine the protocol stack of the data channel to be finally used, the present application provides a communication method. In the communication method, the SDP proposer and the SDP responder can negotiate the protocol stack of the data channel of the IMS session in which both parties participate. Therefore, the method can determine the protocol stack of the data channel for communication scenarios with different requirements and improve the flexibility of communication. The method will be described in the following Figures 5 to 9 The method is described in detail in the figure and will not be repeated here.
[0210] It can be understood that the method provided in the present application can be used in various communication systems. For example, the communication system can be a long term evolution (LTE) system, a fifth generation (5G) communication system, a wireless fidelity (WiFi) system, a 3GPP-related communication system, a future evolution communication system (such as: a sixth generation (6G) communication system, etc.), or a system integrating multiple systems, etc., without limitation. Among them, 5G can also be called new radio (NR). The following is Figure 2 Taking the communication system 20 as an example, the method provided in the present application is described. Figure 2 It is only a schematic diagram and does not constitute a limitation on the applicable scenarios of the technical solution provided in this application.
[0211] like Figure 2 , which is a schematic diagram of the architecture of the communication system 20 provided in this application. Figure 2 In the embodiment, the communication system 20 may include at least two communication entities, such as a communication entity 201 and a communication entity 202. The communication entity 201 and the communication entity 202 may communicate with each other through an IMS network.
[0212] Exemplarily, communication entity 201 and communication entity 202 are respectively an SDP proposer and an SDP responder, and can negotiate a protocol stack of a data channel of an IMS session in which the two participate. The IMS session in which communication entity 201 and communication entity 202 participate can be understood as communication entity 201 and communication entity 202 can communicate through the IMS session. For example, the IMS session is a session between communication entity 201 and communication entity 202, or the session between communication entity 201 and communication entity 202 is a session in the IMS session.
[0213] It is understandable that the communication entity 201 and the communication entity 202 may be located in the same IMS network or in different IMS networks. Figure 3A and Figure 3C Take this as an example for introduction.
[0214] Figure 3A and Figure 3C A schematic diagram of a communication scenario provided for this application. Figure 3A The figure shows a communication scenario when the calling terminal and the called terminal are in the same IMS network. Figure 3C The figure shows a communication scenario when the calling terminal and the called terminal are in different IMS networks.
[0215] exist Figure 3AIn the figure, terminal 302 and terminal 303 can communicate through IMS network 301, which is both a call originating network and a call terminating network. Terminal 302 is a calling terminal and terminal 303 is a called terminal, or terminal 302 is a called terminal and terminal 303 is a calling terminal. IMS network 301 includes DC AS, a network exposure function (NEF) entity and DCS connected to DC AS, a home subscriber server (HSS) / unified data management (UDM) entity and IMS AS connected to DCS, a CSCF entity connected to IMS AS and HSS / UDM entity, and an IMS access media gateway (IMS-AGW) connected to CSCF entity.
[0216] The DCS may include a data channel signaling function (DCSF) entity and a MF entity. Optionally, the DCS may also include a data channel application repository (DCAR) entity. Figure 3A It is shown that the DCSF and DCAR are deployed on the same entity, and the MF is deployed on an entity separately. In a specific application, the deployment mode of the DCSF, DCAR and MF is not limited. For example, the DCSF, DCAR and MF can be deployed on different entities separately, or at least two of the DCSF, DCAR and MF are deployed on the same entity.
[0217] The CSCF entity is a functional entity within the IMS and is the core of the entire IMS. It is mainly responsible for processing signaling control during multimedia call sessions. It can manage IMS user authentication, IMS bearer quality of service (QoS), cooperate with other network elements to control SIP sessions, as well as service negotiation and resource allocation. According to different functions, the CSCF entity can be divided into proxy CSCF (P-CSCF) entity, interrogating CSCF (I-CSCF) entity, serving CSCF (S-CSCF) entity, etc. Figure 3AIt is shown that the I-CSCF and the S-CSCF are deployed on the same entity, and the P-CSCF is deployed on an entity separately. In specific applications, the deployment methods of the I-CSCF, S-CSCF, and P-CSCF are not limited. For example, the I-CSCF, S-CSCF, and P-CSCF can be deployed on different entities separately, or at least two of the I-CSCF, S-CSCF, and P-CSCF can be deployed on the same entity.
[0218] It can be understood that the communication system 20 can be applied to Figure 3A For example, communication entity 201 is terminal 302, communication entity 202 is terminal 303, and terminals 302 and 303 can negotiate the protocol stack of the data channel in the IMS session in which terminals 302 and 303 participate. The data channel is, for example, Figure 3B The data channel 304 (the data channel directly connected between the terminal 302 and the terminal 303) or the data channel 307 (the data channel between the terminal 302 and the terminal 303 anchored on the MF entity) between the terminal 302 and the terminal 303 is shown; or, the communication entity 201 is the terminal 302, the communication entity 202 is the IMS AS (or the DCSF entity), the terminal 302 and the IMS AS (or the DCSF entity) can negotiate the protocol stack of the data channel in the IMS session in which the terminal 302 and the IMS AS (or the DCSF entity) participate. The data channel is, for example, Figure 3B Alternatively, the communication entity 201 is the terminal 303, the communication entity 202 is the IMS AS (or DCSF entity), the terminal 303 and the IMS AS (or DCSF entity) can negotiate the protocol stack of the data channel in the IMS session in which the terminal 303 and the IMS AS (or DCSF entity) participate, and the data channel is, for example, Figure 3B A data channel 306 between the terminal 303 and the MF is shown.
[0219] exist Figure 3CIn the example, terminal 313 and terminal 314 can communicate through IMS network 311 and IMS network 312, one of which is a call origination network and the other is a call termination network. For example, if terminal 313 is a calling terminal and terminal 314 is a called terminal, IMS network 311 is a call origination network and IMS network 312 is a call termination network; if terminal 313 is a called terminal and terminal 314 is a calling terminal, IMS network 311 is a call termination network and IMS network 312 is a call origination network. The entities included in the IMS network 311 and the IMS network 312 are similar. For example, the IMS network 311 or the IMS network 312 includes a DC AS, a NEF entity and a DCS connected to the DC AS, an HSS / UDM entity and an IMS AS connected to the DCS, a CSCF entity connected to the IMS AS, an IMS-AGW and an interconnection border control function (IBCF) entity connected to the CSCF entity, and a transition gateway (TrGW) connected to the IMS-AGW. For an introduction to the DCS and CSCF entities, please refer to Figure 3A The corresponding description in .
[0220] It can be understood that the communication system 20 can be applied to Figure 3C For example, communication entity 201 is terminal 313, communication entity 202 is terminal 314, and terminal 313 and terminal 314 can negotiate the protocol stack of the data channel in the IMS session in which terminal 313 and terminal 314 participate. Figure 3D The data channel 315 (the data channel directly connected between the terminal 313 and the terminal 314), the data channel 320 (the data channel between the terminal 313 and the terminal 314 anchored on the MF entity in the IMS network 312) and the data channel 321 (the data channel between the terminal 313 and the terminal 314 anchored on the MF entity in the IMS network 311); or, the communication entity 201 is the terminal 313, the communication entity 202 is the IMS AS (or DCSF entity) in the IMS network 311, the terminal 313 and the IMS AS (or DCSF entity) in the IMS network 311 can negotiate the protocol stack of the data channel in the IMS session in which the terminal 313 and the IMS AS (or DCSF entity) in the IMS network 311 participate. The data channel is, for example, Figure 3DThe data channel 316 between the terminal 313 and the MF in the IMS network 311 shown in the figure; or, the communication entity 201 is the terminal 313, and the communication entity 202 is the IMS AS (or DCSF entity) in the IMS network 312. The terminal 313 and the IMS AS (or DCSF entity) in the IMS network 312 can negotiate the protocol stack of the data channel in the IMS session in which the terminal 313 and the IMS AS (or DCSF entity) in the IMS network 312 participate. The data channel is, for example, Figure 3D The data channel 317 between the terminal 313 and the MF in the IMS network 312 shown in the figure; or, the communication entity 201 is the terminal 314, the communication entity 202 is the IMS AS (or DCSF entity) in the IMS network 312, the terminal 314 and the IMS AS (or DCSF entity) in the IMS network 312 can negotiate the protocol stack of the data channel in the IMS session in which the terminal 314 and the IMS AS (or DCSF entity) in the IMS network 312 participate, and the data channel is, for example, Figure 3D The data channel 318 between the terminal 314 and the MF in the IMS network 312 shown in the figure; or, the communication entity 201 is the terminal 314, and the communication entity 202 is the IMS AS (or DCSF entity) in the IMS network 311. The terminal 314 and the IMS AS (or DCSF entity) in the IMS network 311 can negotiate the protocol stack of the data channel in the IMS session in which the terminal 314 and the IMS AS (or DCSF entity) in the IMS network 311 participate. The data channel is, for example, Figure 3D A data channel 319 is shown between the terminal 314 and the MF in the IMS network 311 .
[0221] In order to more clearly understand the communication scenario provided by this application, Figure 3A and Figure 3C The functions of various entities in the article are explained in detail.
[0222] DC AS can be used to provide data channel business logic. Figure 3A or Figure 3C In the present invention, DC AS is deployed in the IMS network and can be directly connected to other entities in the IMS network through interfaces (such as service-oriented interfaces). In specific applications, DC AS can also be deployed outside the IMS network instead of in the IMS network, and connected to other network elements in the IMS network through NEF entities (or IMS border network management).
[0223] The NEF entity can be used to securely open various services of the core network (such as the 5G core network) to third parties.
[0224] The DCSF entity can provide data channel signaling control functions.
[0225] DCAR can be used to store data channel applications. For example, after the developer completes the development of the data channel application, it is uploaded to the operator's DCS, and then saved to DCAR by DCS. When needed, DCS downloads the data channel application from DCAR to the local for subsequent processing.
[0226] The HSS / UDM entity can be responsible for storing IMS user subscription data. Specifically, for 4G networks, the IMS network includes the HSS, which can be responsible for storing IMS user subscription data in the 4G network. For 5G networks, the IMS network includes the UDM entity, which can be responsible for storing IMS user subscription data in the 5G network.
[0227] IMS AS is the topmost application layer device in the IMS network, providing various services, including basic and supplementary services of telecommunication network, multimedia conferencing, converged communication, SMS gateway, standard switchboard and other services. IMS AS can interact with CSCF entities to trigger and execute various network services. IMS AS can negotiate data channels with terminals. Exemplarily, IMS AS can be a multiMedia telephony application server (MMTEL AS) or a telephony application server (TAS).
[0228] The MF entity may be used to provide data channel media resource management functions.
[0229] The S-CSCF entity may be responsible for the registration, authentication, session, routing and service triggering of IMS users.
[0230] The I-CSCF entity is the unified entry point of the IMS user's home network and can be responsible for allocating or querying the S-CSCF that serves the user.
[0231] The P-CSCF entity is the entry node for users to access the IMS network and is responsible for forwarding SIP signaling between IMS users and the home network.
[0232] IMS AGW can provide IMS network access gateway and media gateway functions.
[0233] The IBCF entity can realize signaling intercommunication, topology hiding and IP security protection functions for voice, video and multimedia services.
[0234] The TrGW entity can realize media intercommunication, topology hiding and IP security protection functions of voice, video and multimedia services, and also supports functions such as voice codec format conversion.
[0235] It should be understood that Figure 3A or Figure 3C The communication scenarios to which the method provided in the present application can be applied are only examples. In specific applications, the communication scenarios to which the method provided in the present application can be applied can also be in other forms, for example, including Figure 3A or Figure 3C More or fewer entities, without limitation.
[0236] Understandably, Figure 2 The communication system 20 shown is only used as an example and is not used to limit the technical solution of the present application. Those skilled in the art should understand that in the specific implementation process, the communication system 20 may also include other devices, and the number of communication entities may also be determined according to specific needs without limitation.
[0237] Optional, this application Figure 2 Each communication entity in the communication device may also be referred to as a communication apparatus, which may be a general device or a dedicated device, and this application does not make any specific limitation on this.
[0238] Optional, this application Figure 2 The relevant functions of the communication entity in the communication entity can be implemented by one device, or by multiple devices together, or by one or more functional modules in one device, and this application does not make specific restrictions on this. It can be understood that the above functions can be network elements in hardware devices, or software functions running on dedicated hardware, or a combination of hardware and software, or virtualized functions instantiated on a platform (e.g., a cloud platform).
[0239] In the specific implementation, Figure 2 The communication entities shown can all use Figure 4 The structure shown, or including Figure 4 Parts shown. Figure 4 The hardware structure diagram of the communication device applicable to the present application is shown. The communication device 40 includes at least one processor 401 and at least one communication interface 404, which are used to implement the method provided by the present application. The communication device 40 may also include a communication line 402 and a memory 403.
[0240] The processor 401 may be a general-purpose central processing unit (CPU), a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits for controlling the execution of the program of the present application.
[0241] The communication link 402 may include a path to transmit information between the above-mentioned components, such as a bus.
[0242] The communication interface 404 is used to communicate with other devices or communication networks. The communication interface 404 can be any transceiver-like device, such as an Ethernet interface, a radio access network (RAN) interface, a wireless local area network (WLAN) interface, a transceiver, a pin, a bus, an interface circuit, or a transceiver circuit.
[0243] The memory 403 may be a read-only memory (ROM) or other types of static storage devices that can store static information and instructions, a random access memory (RAM) or other types of dynamic storage devices that can store information and instructions, or an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed optical disc, laser disc, optical disc, digital versatile disc, Blu-ray disc, etc.), a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store the desired program code in the form of an instruction or data structure and can be accessed by a computer, but is not limited thereto. The memory may be independent and coupled to the processor 401 via a communication line 402. The memory 403 may also be integrated with the processor 401. The memory provided in the present application may generally be non-volatile.
[0244] Among them, the memory 403 is used to store the computer execution instructions involved in executing the solution provided by this application, and the execution is controlled by the processor 401. The processor 401 is used to execute the computer execution instructions stored in the memory 403, so as to implement the method provided by this application. Alternatively, optionally, in this application, the processor 401 may also perform the processing-related functions in the method provided below in this application, and the communication interface 404 is responsible for communicating with other devices or communication networks, which is not specifically limited in this application.
[0245] Optionally, the computer-executable instructions in the present application may also be referred to as application code, which is not specifically limited in the present application.
[0246] The coupling in this application is an indirect coupling or communication connection between devices, units or modules, which can be electrical, mechanical or other forms, and is used for information exchange between devices, units or modules.
[0247] As an embodiment, the processor 401 may include one or more CPUs, such as Figure 4 CPU0 and CPU1 in.
[0248] As an embodiment, the communication device 40 may include multiple processors, such as Figure 4 401 and processor 407 in the embodiment of the present invention. Each of these processors may be a single-CPU processor or a multi-CPU processor. The processor herein may refer to one or more devices, circuits, and / or processing cores for processing data (e.g., computer program instructions).
[0249] As an embodiment, the communication device 40 may further include an output device 405 and / or an input device 406. The output device 405 is coupled to the processor 401 and can display information in a variety of ways. For example, the output device 405 may be a liquid crystal display (LCD), a light emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector. The input device 406 is coupled to the processor 401 and can receive user input in a variety of ways. For example, the input device 406 may be a mouse, a keyboard, a touch screen device, or a sensor device.
[0250] Understandably, Figure 4 The structure shown in the figure does not constitute a limitation on the communication device, except Figure 4 In addition to the components shown, the communication device may include more or fewer components than shown, or combine certain components, or arrange the components differently.
[0251] The method provided by the present application will be described below in conjunction with the accompanying drawings. Each network element in the following embodiments may have Figure 4 The parts shown are not described in detail.
[0252] It is understood that in this application, "transmit" can be understood as sending and / or receiving according to the specific context. "Transmit" can be a noun or a verb. When the execution subject of the action is not emphasized, "transmit" is often used instead of sending and / or receiving. For example, the phrase "transmitting data" can be understood as "sending data" from the perspective of the sender, and can be understood as "receiving data" from the perspective of the receiver.
[0253] It is understandable that the "connection" in this application can be a direct connection or an indirect connection; in addition, it can refer to an electrical connection or a communication connection. For example, the connection between two electrical components A and B can refer to A and B being directly connected, or it can refer to A and B being indirectly connected through other electrical components or connection media, so that electrical signals can be transmitted between A and B; for another example, the connection between two devices A and B can refer to A and B being directly connected, or it can refer to A and B being indirectly connected through other communication devices or communication media, so that A and B can communicate.
[0254] It can be understood that the message names between the various communication entities or the names of the parameters in the messages in the following embodiments of the present application are only examples, and other names may be used in specific implementations, and the present application does not make any specific limitations on this.
[0255] It can be understood that in this application, "sending information to... (such as a communication entity)" can be understood as the destination end of the information being the communication entity. It can include sending information to the communication entity directly or indirectly. "Receiving information from... (such as a communication entity)" can be understood as the source end of the information being the communication entity, which can include receiving information from the communication entity directly or indirectly. The information may be processed as necessary between the source end and the destination end of the information transmission, such as format changes, etc., but the destination end can understand the valid information from the source end. Similar expressions in this application can be understood similarly and will not be repeated here.
[0256] It is understandable that in the present application, " / " can indicate that the objects associated with each other are in an "or" relationship, for example, A / B can indicate A or B; "and / or" can be used to describe that there are three relationships between the associated objects, for example, A and / or B can indicate: A exists alone, A and B exist at the same time, and B exists alone, where A and B can be singular or plural. In addition, expressions similar to "at least one of A, B and C" or "at least one of A, B or C" are usually used to indicate any of the following: A exists alone; B exists alone; C exists alone; A and B exist at the same time; A and C exist at the same time; B and C exist at the same time; A, B and C exist at the same time. The above uses A, B and C as an example to illustrate the optional items of the item. When there are more elements in the expression, the meaning of the expression can be obtained according to the above rules.
[0257] In order to facilitate the description of the technical solution of the present application, in the present application, words such as "first" and "second" may be used to distinguish between technical features with the same or similar functions. The words such as "first" and "second" do not limit the quantity and execution order, and the words such as "first" and "second" do not necessarily limit them to be different. In the present application, words such as "exemplary" or "for example" are used to indicate examples, illustrations or explanations, and any embodiment or design described as "exemplary" or "for example" should not be interpreted as being more preferred or more advantageous than other embodiments or designs. The use of words such as "exemplary" or "for example" is intended to present related concepts in a concrete way for easy understanding.
[0258] It is understood that the "embodiment" mentioned throughout the specification means that the specific features, structures or characteristics related to the embodiment are included in at least one embodiment of the present application. Therefore, the various embodiments in the entire specification do not necessarily refer to the same embodiment. In addition, these specific features, structures or characteristics can be combined in one or more embodiments in any suitable manner. It is understood that in various embodiments of the present application, the size of the sequence number of each process does not mean the order of execution, and the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the present application.
[0259] It can be understood that in the present application, "when...", "in the case of...", "if" and "if" all mean that corresponding processing will be taken under certain objective circumstances, but do not limit the time, nor do they require any judgment action when implementing them, nor do they mean the existence of other limitations.
[0260] The term “simultaneously” in the present application may be understood as at the same time point, within a period of time, or within the same cycle.
[0261] In this application, unless otherwise specified, "multiple" can be understood as two or more than two. For example, multiple terminals can be understood as two or more than two terminals.
[0262] It is understandable that some optional features in this application may be implemented independently in some scenarios without relying on other features, such as the solution on which it is currently based, to solve corresponding technical problems and achieve corresponding effects. They may also be combined with other features according to needs in some scenarios. Accordingly, the device provided in this application may also realize these features or functions accordingly, which will not be elaborated here.
[0263] It can be understood that the same step or steps or technical features with the same functions in different embodiments of the present application can be referenced to each other.
[0264] Below Figure 2The communication entity 201 shown is an SDP proposer, and the communication entity 202 is an SDP responder, which is used as an example to introduce the communication method provided in the present application.
[0265] It is understandable that in the present application, the communication entity 201 and / or the communication entity 202 may perform some or all of the steps in the present application, and these steps are only examples, and the present application may also perform other steps or variations of various steps. In addition, the various steps may be performed in different orders presented in the present application, and it may not be necessary to perform all of the steps in the present application.
[0266] It is understandable that the method provided below in this application takes communication entity 201 and communication entity 202 as the execution subject of the interaction diagram as an example to illustrate the method, but this application does not limit the execution subject of the interaction diagram. For example, the communication entity (such as communication entity 201 or communication entity 202) in the method provided in the following embodiment of this application may also be a chip, chip system, or processor that supports the communication entity to implement the method, or may be a logical node, logical module, or software that can implement all or part of the functions of the communication entity.
[0267] like Figure 5 As shown, a communication method provided by the present application may include the following steps:
[0268] S501 : the communication entity 201 sends SDP offer information (SDP offer) to the communication entity 202 . Correspondingly, the communication entity 202 receives the SDP offer information from the communication entity 201 .
[0269] In the present application, the SDP proposal information may indicate at least two types of protocol stacks for establishing a data channel, or indicate that the communication entity 201 proposes to select / determine a protocol stack for establishing a data channel from at least two types of protocol stacks. It should be understood that the present application is introduced by taking the example of the SDP proposal information indicating at least two types of protocol stacks for establishing a data channel. In a specific application, the SDP proposal information may indicate at least one type of protocol stack for establishing a data channel, without limitation. Among them, the SDP proposal information indicates at least one type of protocol stack for establishing a data channel, which can be understood as the SDP proposal information indicating a type of protocol stack for establishing a data channel, or indicating multiple types of protocol stacks for establishing a data channel. When the SDP proposal information indicates a type of protocol stack for establishing a data channel, the communication entity 202 may decide to use the protocol stack to establish a data channel.
[0270] The data channel is associated with the IMS session between the communication entity 201 and the communication entity 202, or is created during the IMS session, and can be used to transmit application data or application programs between the communication entity 201 and the communication entity 202. Optionally, the data channel is a BDC or ADC, or the data channel is an auxiliary data channel or an independent data channel. It can be understood that the IMS session is an IMS session in which the communication entity 201 and the communication entity 202 participate. For a detailed introduction to the data channel, BDC and ADC, please refer to the description of the data channel in the previous text. For a detailed introduction to the IMS session, please refer to the description of the IMS session in the previous text.
[0271] It should be understood that, depending on the roles of the communication entity 201 and the communication entity 202, the data channel may be one of the data channels 304 to 306, or one of the data channels 315 to 319. For details, please refer to the above Figure 3B or Figure 3D The corresponding description in is not repeated here.
[0272] It is understandable that the present application does not limit the number and / or type of data channels applicable to at least two types of protocol stacks. For example, at least two types of protocol stacks indicated by the SDP proposal information can be used to establish data channel 1, and data channel 1 is ADC or BDC. For another example, at least two types of protocol stacks indicated by the SDP proposal information can be used to establish data channel 1 and data channel 2, wherein data channel 1 is ADC and data channel 2 is BDC, or both data channel 1 and data channel 2 are ADC, or both data channel 1 and data channel 2 are BDC.
[0273] In a possible design, at least two types of protocol stacks are at least two of the following protocol stacks: UDP / DTLS / SCTP protocol stack, TCP / DTLS / SCTP protocol stack, UDP / QUIC protocol stack, UDP / SCTP protocol stack, SCTP protocol stack, TCP protocol stack or UDP protocol stack. For the introduction of the above protocol stacks, please refer to the corresponding description in the previous text, which will not be repeated here. It should be understood that the above protocol stacks are only examples of protocol stacks that can be used to establish data channels. In specific applications, the protocol stacks used to establish data channels may include more or fewer protocol stacks than the above protocol stacks, without limitation.
[0274] In a possible design, the SDP proposal information includes first indication information, and the first indication information indicates at least two types of protocol stacks for establishing a data channel. For example, the SDP proposal information includes the first SDP media description corresponding to the above-mentioned data channel, and the first SDP media description includes an "m=" line. The "m=" line can be used to indicate the relevant information of the communication entity 201 to establish a data channel. For example, the "m=" line includes the first indication information, and the first indication information includes at least two of the following: "UDP / DTLS / SCTP", "TCP / DTLS / SCTP", "UDP / QUIC", "UDP / SCTP", "SCTP", "TCP" or "UDP". Among them, "UDP / DTLS / SCTP" can indicate a UDP / DTLS / SCTP protocol stack, "TCP / DTLS / SCTP" can indicate a TCP / DTLS / SCTP protocol stack, "UDP / QUIC" can indicate a UDP / QUIC protocol stack, "UDP / SCTP" can indicate a UDP / SCTP protocol stack, "SCTP" can indicate an SCTP protocol stack, "TCP" can indicate a TCP protocol stack, and "UDP" can indicate a UDP protocol stack.
[0275] It can be understood that the first indication information indicates which type of protocol stack, and the first indication information includes information corresponding to the type of protocol stack. For example, if the first indication information indicates the UDP / DTLS / SCTP protocol stack and the TCP / DTLS / SCTP protocol stack, the first indication information includes "UDP / DTLS / SCTP" and "TCP / DTLS / SCTP". If the first indication information indicates the UDP / QUIC protocol stack, the UDP / SCTP protocol stack and the SCTP protocol stack, the first indication information includes "UDP / QUIC", "UDP / SCTP" and "SCTP". If the first indication information indicates the TCP protocol stack and the UDP protocol stack, the first indication information includes "TCP" and "UDP". If the first indication information indicates the SCTP protocol stack and the TCP protocol stack, the first indication information includes "SCTP" and "TCP". If the first indication information indicates the TCP / DTLS / SCTP protocol stack, the UDP / QUIC protocol stack and the TCP protocol stack, the first indication information includes "TCP / DTLS / SCTP", "UDP / QUIC" and "TCP", which are not listed here one by one.
[0276] It can be understood that "UDP / DTLS / SCTP", "TCP / DTLS / SCTP", "UDP / QUIC", "UDP / SCTP", "SCTP", "TCP" and "UDP" are only one form of representation of the protocol stack. In specific applications, the protocol stack can also be represented in other ways. For example, the UDP / DTLS / SCTP protocol stack can be represented as "SCTP / DTLS / UDP", the TCP / DTLS / SCTP protocol stack can be represented as "SCTP / DTLS / TCP", the UDP / QUIC protocol stack can be represented as "QUIC / UDP", the UDP / SCTP protocol stack can be represented as "SCTP / UDP", etc., without limitation.
[0277] It can be understood that, in addition to the first SDP media description, the SDP proposal information may also include SDP media descriptions corresponding to one or more other data channels, without limitation.
[0278] Optionally, the first SDP media description also includes lines c, b and a related to the data channel, which are respectively used to carry information related to at least two types of protocol stacks, the IP address corresponding to the data channel, the IP port, the stream ID or at least one of the media information of the data channel.
[0279] The contents of the SDP proposal information are described below.
[0280] As an example, if at least two types of protocol stacks include an SCTP protocol stack and a TCP protocol stack, the content included in the SDP proposal information may be as shown in Table 9. In Table 9, the first SDP media description includes content from "m=application 52718SCTP,TCP webrtc-datachannel" to "a=dcmap:0subprotocol="http"". Among them, the "m=" line includes "m=application 52718SCTP,TCP webrtc-datachannel", and in the "m=" line, the first indication information is "SCTP,TCP", indicating that the communication entity 201 proposes to use the SCTP protocol stack or the TCP protocol stack to establish a data channel. The attribute lines corresponding to the SCTP protocol stack and the attribute lines corresponding to the TCP protocol stack can refer to the corresponding descriptions in the previous text and will not be repeated here.
[0281] Table 9
[0282]
[0283] When the number of data channels applicable to at least two types of protocol stacks is 2, the content included in the SDP proposal information may be as shown in Table 10 or Table 11. Compared with Table 9, Table 10 has one more line "a=dcmap:10subprotocol="http"", so Table 10 indicates that the SDP proposal information indicates that the communication entity 201 proposes to use the SCTP protocol stack or the TCP protocol stack to establish the two data channels, where the stream ID of one data channel is "0" and the stream ID of the other data channel is "10". It can be understood that the stream IDs of the two data channels are both less than 1000, so the two data channels are BDC.
[0284] Table 10
[0285]
[0286] Compared with Table 9, Table 11 has one more line "a=dcmap:1100subprotocol="http"", so Table 11 indicates that the SDP proposal information indicates that the communication entity 201 proposes to use the SCTP protocol stack or the TCP protocol stack to establish the two data channels, where the stream ID of one data channel is "0" and the stream ID of the other data channel is "1100". It can be understood that the stream ID of one data channel is less than 1000, so the data channel is BDC, and the stream ID of the other data channel is greater than 1000, so the data channel is ADC.
[0287] Table 11
[0288]
[0289]
[0290] It can be understood that the contents shown in Tables 9 to 11 are examples of SDP proposal information. In specific applications, the SDP proposal information may include more information than the contents shown in Tables 9 to 11, without limitation.
[0291] In a possible design, the SDP proposal information is carried in an invitation request (INVITE), an update request (UPDATE), or a re-INVITE request (re-INVITE).
[0292] S502 : The communication entity 202 sends SDP answer information (SDP answer) to the communication entity 201 according to the SDP proposal information. Correspondingly, the communication entity 201 receives the SDP answer information from the communication entity 202 .
[0293] In the present application, the SDP response information indicates that the communication entity 202 decides to use the first type of protocol stack in at least two types of protocol stacks to establish a data channel. For example, if the at least two types of protocol stacks include a UDP / DTLS / SCTP protocol stack, a TCP / DTLS / SCTP protocol stack, a UDP / QUIC protocol stack, a UDP / SCTP protocol stack, a SCTP protocol stack, a TCP protocol stack, and a UDP protocol stack, the first type of protocol stack is a UDP / DTLS / SCTP protocol stack, a TCP / DTLS / SCTP protocol stack, a UDP / QUIC protocol stack, a UDP / SCTP protocol stack, a SCTP protocol stack, a TCP protocol stack, or a UDP protocol stack.
[0294] In a possible design, the SDP response information includes second indication information, and the second indication information indicates that the communication entity 202 decides to use the first type of protocol stack of at least two types of protocol stacks to establish a data channel. For example, the SDP response information includes an SDP media description corresponding to the data channels of the same number and in the same order as those in the SDP proposal information, for example, including a second SDP media description corresponding to the above data channel, and the second SDP media description is an SDP media description associated with the above first SDP media description. The second SDP media description includes an "m=" line, and the "m=" line can be used to indicate the relevant information of the communication entity 202 to establish a data channel. For example, the "m=" line includes the second indication information, and the second indication information is "UDP / DTLS / SCTP", "TCP / DTLS / SCTP", "UDP / QUIC", "UDP / SCTP", "SCTP", "TCP" or "UDP".
[0295] It can be understood that the second indication information includes information corresponding to the first type of protocol stack. For example, when the first type of protocol stack is a UDP / DTLS / SCTP protocol stack, the second indication information is "UDP / DTLS / SCTP"; when the first type of protocol stack is a TCP / DTLS / SCTP protocol stack, the second indication information is "TCP / DTLS / SCTP"; when the first type of protocol stack is a UDP / QUIC protocol stack, the second indication information is "UDP / QUIC"; when the first type of protocol stack is a UDP / SCTP protocol stack, the second indication information is "UDP / SCTP"; when the first type of protocol stack is a SCTP protocol stack, the second indication information is "SCTP"; when the first type of protocol stack is a TCP protocol stack, the second indication information is "TCP"; when the first type of protocol stack is a UDP protocol stack, the second indication information is "UDP".
[0296] It can be understood that UDP provides non-connection-oriented, unreliable data stream transmission. It does not need to establish a connection between the client and the server before transmitting the datagram, and there is no timeout retransmission mechanism, so the data transmission speed is very fast. The DTLS protocol can provide confidentiality and integrity protection for data transmission, and provide a two-way authentication mechanism for both parties in communication to ensure the secure transmission of data. SCTP has high requirements for real-time performance. The reliability and transmission mode of SCTP are configurable. SCTP also supports flow control and congestion control. TCP is connection-oriented, and its retransmission and congestion control mechanisms can ensure the reliability of data transmission and avoid packet loss. Compared with TCP and SCTP, the QUIC protocol has a faster link establishment speed, a more flexible congestion control mechanism, and a stronger evolution capability. Therefore, if the first type of protocol stack is a UDP / DTLS / SCTP protocol stack, the data channel established according to the first type of protocol stack can ensure one or more of data transmission delay, communication security, transmission reliability or data real-time performance, and the data transmission mode and / or congestion control mechanism in the data channel can be configured. If the first type of protocol stack is a TCP / DTLS / SCTP protocol stack, the data channel established according to the first type of protocol stack can ensure one or more of communication security, transmission reliability or data real-time performance, can control the packet loss rate, and the data transmission mode and / or congestion control mechanism in the data channel can be configured. If the first type of protocol stack is a UDP / QUIC protocol stack, the data channel established according to the first type of protocol can ensure data transmission delay and / or link establishment speed, and the congestion control mechanism of the data in the data channel can be configured. If the first type of protocol stack is a UDP / SCTP protocol stack, the data channel established according to the first type of protocol stack can ensure transmission delay and / or transmission reliability, and the data transmission mode in the data channel can be configured. If the first type of protocol stack is an SCTP protocol stack, the data channel established according to the first type of protocol stack can ensure data transmission reliability and / or data real-time performance, and the data transmission mode and / or congestion control mechanism in the data channel can be configured. If the first type of protocol stack is a TCP protocol stack, the data channel established according to the first type of protocol stack can ensure the reliability of data transmission and avoid packet loss. If the first type of protocol stack is a UDP protocol stack, the data channel established according to the first type of protocol stack can ensure the data transmission delay.
[0297] Optionally, the second SDP media description also includes lines c, b and a related to the data channel, which are respectively used to carry information related to the first type of protocol stack, the IP address of the data channel, the IP port, the stream ID or at least one of the media information of the data channel.
[0298] The contents of the SDP response information are described below.
[0299] As an example, if the first type of protocol stack is a TCP protocol stack, the content included in the SDP response information may be as shown in Table 12. In Table 12, the second SDP media description includes content from "m=application 1224TCP webrtc-datachannel" to "a=dcmap:0subprotocol="http"". Among them, the "m=" line includes "m=application 1224TCP webrtc-datachannel", and in the "m=" line, the second indication information is "TCP", indicating that the communication entity 202 decides to use the TCP protocol stack to establish a data channel. In addition, line c indicates that the IP address of the data channel is "192.0.2.10", line a indicates that the IP port of the data channel is 1224, and the stream ID of the data channel is "0". The attribute lines corresponding to the TCP protocol stack can refer to the corresponding description in the previous text, which will not be repeated here.
[0300] Table 12
[0301]
[0302] As another example, if the first type of protocol stack is the SCTP protocol stack, the content included in the SDP response information can be as shown in Table 13. In Table 13, the second SDP media description includes content from "m=application 52718SCTP webrtc-datachannel" to "a=dcmap:0subprotocol="http"". Among them, the "m=" line includes "m=application 52718SCTP webrtc-datachannel", and in the "m=" line, the second indication information is "SCTP", indicating that the communication entity 202 decides to use the SCTP protocol stack to establish a data channel. In addition, the c line indicates that the IP address of the data channel is "192.0.2.10", the IP port 5002 of the "m=" line is the SCTP port, and the stream ID of the data channel is "0". The attribute lines corresponding to the SCTP protocol stack can refer to the corresponding description in the previous text, which will not be repeated here.
[0303] Table 13
[0304]
[0305] It can be understood that the contents shown in Table 12 and Table 13 are examples of SDP response information. In specific applications, the SDP response information may include more or less information than the contents shown in Table 12 and Table 13 without limitation.
[0306] In summary, the communication entity 201 can indicate at least two types of protocol stacks in the SDP proposal information sent to the communication entity 202. After receiving the SDP proposal information, the communication entity 202 can determine the protocol stack ultimately adopted by the data channel (that is, the communication entity 202 can determine the protocol stack of the data channel), and indicate the protocol stack ultimately adopted by the data channel in the SDP response information sent to the communication entity 201. Afterwards, the communication entity 201 and the communication entity 202 can establish a data channel based on the determined protocol stack and then communicate. For example, if the protocol stack ultimately adopted by the data channel is the SCTP protocol stack, the communication entity 201 and the communication entity 202 use SCTP as the data bearer protocol; if the protocol stack ultimately adopted by the data channel is the TCP protocol stack, the communication entity 201 and the communication entity 202 use TCP as the data bearer protocol.
[0307] A possible design is that the first type of protocol stack meets the transmission requirements of the data channel application and / or the operator's policy. The transmission requirements of the data channel application include at least one of the requirements for packet loss rate, transmission delay, or protocol stack priority. In other words, the first type of protocol stack is determined based on at least one of the requirements of the data channel application for packet loss rate, the requirements of the data channel application for transmission delay, the requirements of the data channel application for protocol stack priority, or the operator's policy. That is, after receiving the SDP proposal information, the communication entity 202 can determine the first type of protocol stack from at least two types of protocol stacks based on the requirements of the data channel application for packet loss rate, the requirements of the data channel application for transmission delay, the requirements of the data channel application for protocol stack priority, or at least one of the operator's policy, and send SDP response information to the communication entity 201 to indicate the first type of protocol stack.
[0308] Exemplarily, if there is a TCP protocol stack in at least two types of protocol stacks, and the application of the data channel is sensitive to packet loss, the communication entity 202 determines that the first type of protocol stack is a TCP protocol stack to ensure the reliability of data transmission. Alternatively, if there is a UDP protocol stack in at least two types of protocol stacks, and the application of the data channel is sensitive to transmission delay, the communication entity 202 determines that the first type of protocol stack is a UDP protocol stack to ensure the transmission rate of data. Alternatively, if there is an SCTP protocol stack in at least two types of protocol stacks, and the application of the data channel has high real-time requirements and is sensitive to packet loss, the communication entity 202 determines that the first type of protocol stack is an SCTP protocol stack to ensure the real-time performance and reliability of data transmission. Alternatively, if there is a UDP / QUIC protocol stack in at least two types of protocol stacks, and the UDP / QUIC protocol stack has the highest priority in at least two types of protocol stacks, the communication entity 202 determines that the first type of protocol stack is a UDP / QUIC protocol stack to ensure that a data channel is established using a protocol stack with a higher priority. Alternatively, if there are UDP / QUIC protocol stack and TCP protocol stack in at least two types of protocol stacks, and UDP / QUIC protocol stack and TCP protocol stack have the highest priority in at least two types of protocol stacks, and the application of the data channel is sensitive to packet loss, the communication entity 202 determines that the first type of protocol stack is the TCP protocol stack to ensure that the data channel is established with a protocol stack with a higher priority, and to ensure the reliability of data transmission. Alternatively, if there are UDP / QUIC protocol stack and TCP protocol stack in at least two types of protocol stacks, and the operator's policy indicates that the data channel is established with the UDP / QUIC protocol stack or the SCTP protocol stack, the communication entity 202 determines that the first type of protocol stack is the UDP / QUIC protocol stack to meet the operator's policy. Alternatively, if there are UDP protocol stack and TCP protocol stack in at least two types of protocol stacks, and the operator's policy indicates that the data channel is established with the UDP protocol stack or the TCP protocol stack, and the application of the data channel is sensitive to packet loss, the communication entity 202 determines that the first type of protocol stack is the TCP protocol stack to meet the operator's policy and to ensure the reliability of data transmission.
[0309] It should be understood that the above is only an example of determining the first type of protocol stack. In specific applications, the communication entity 202 can also use other methods to determine the first type of protocol stack. For example, the communication entity 202 randomly determines the first type of protocol stack from at least two types of protocol stacks. Alternatively, the communication entity 202 determines the first type of protocol stack based on the current network status of the IMS network. For example, if there is an SCTP protocol stack in at least two types of protocol stacks, and the current network status of the IMS network is not good and the congestion is severe, the communication entity 202 determines that the first type of protocol stack is the SCTP protocol stack to ensure the quality of data transmission. It can be understood that in addition to SCTP, TCP also has a congestion control mechanism, so the SCTP protocol stack in this example can also be replaced by the TCP protocol stack.
[0310] In a possible design, the SDP response information is carried in a response message with a status code of 180 (such as a 180 message), a response message with a status code of 183 (such as a 183 message), or a response message with a status code of 200 (such as a 200 message).
[0311] In the above example, the protocol stack finally adopted by the data channel is determined by the communication entity 202. In addition to this method, the protocol stack finally adopted by the data channel may also be determined by entities other than the communication entity 201 and the communication entity 202. For example, the communication entity 201 and the communication entity 202 may indicate at least two types of protocol stacks to the communication entity 203, and the communication entity 203 determines the protocol stack finally adopted by the data channel.
[0312] The actions of the communication entity 201 or the communication entity 202 in the above S501-S502 can be performed by Figure 4 The processor 401 in the communication device 40 shown calls the application code stored in the memory 403 for execution, and the present application does not impose any limitation on this.
[0313] based on Figure 5 According to the method shown, the communication entity 201 and the communication entity 202 can negotiate the protocol stack used by the data channel of the IMS session in which the two parties participate, so that the data channel can be suitable for different communication scenarios. For example, in scenarios where the communication security requirements are high or DTLS protocol encryption is required, the protocol stack of the data channel may include the DTLS protocol; in scenarios where the communication security requirements are not high or DTLS protocol encryption is not required, the protocol stack of the data channel may not include the DTLS protocol. For another example, for scenarios that are sensitive to packet loss, the protocol stack of the data channel may include TCP; for scenarios that are sensitive to delay, the protocol stack of the data channel may include UDP; for scenarios that have high real-time requirements, the protocol stack of the data channel may include SCTP; for scenarios with data congestion, the protocol stack of the data channel may include TCP, SCTP or QUIC; for scenarios that have high requirements for link establishment speed, the protocol stack of the data channel may include QUIC, and so on. Therefore, Figure 5 The approach shown can increase the flexibility of communication.
[0314] Optional, in Figure 5In one possible implementation of the method shown, the communication entity 201 and / or the communication entity 202 may negotiate with the network equipment in the communication network (such as the IMS network) on the respective applicable protocol stacks for establishing a data channel. In this way, the communication entity 201 may determine at least two types of protocol stacks indicated in the SDP proposal information based on the negotiated protocol stack. The communication entity 202 may determine the protocol stack ultimately adopted by the data channel based on the negotiated protocol stack and the indication of the communication entity 201. The above process is described below using the network equipment as an S-CSCF entity as an example. It should be understood that the S-CSCF entity may also be replaced by a CSCF entity, an I-CSCF entity, a P-CSCF entity or an I / S-CSCF entity, etc. For example, as Figure 6 As shown, Figure 5 The method shown also includes the following steps:
[0315] First, the process of the communication entity 201 and the S-CSCF entity negotiating the protocol stack for establishing a data channel applicable to the communication entity 201 is introduced. For details, refer to the description of S500A-S500B below.
[0316] S500A: The communication entity 201 sends the second capability information to the S-CSCF entity. Correspondingly, the S-CSCF entity receives the second capability information from the communication entity 201.
[0317] exist Figure 6 In the method shown, the S-CSCF entity is, for example, Figure 3A The S-CSCF entity in Figure 3C The S-CSCF entity in the IMS network 311 or the S-CSCF entity in the IMS network 312.
[0318] In the present application, the second capability information indicates that the communication entity 201 supports the protocol stack for establishing a data channel. It is understandable that the communication entity 201 can indicate multiple types of protocol stacks. For example, the second capability information indicates that the communication entity 201 supports the TCP / DTLS / SCTP protocol stack, the UDP / QUIC protocol stack, and the UDP / SCTP protocol stack.
[0319] In a possible design, the second capability information is carried in a registration (REGISTER) request message.
[0320] It can be understood that in a specific application, the second capability information can indicate the protocol stack in a variety of ways, for example, the protocol stack can be indicated by extending a new indication or parameter in the SIP header field, or by adding a new SIP header field (i.e., an extended header field of SIP) to indicate the protocol stack, or by indicating the protocol stack through an existing header field, such as the Contact header field. When indicating the protocol stack, the protocol stack can be indicated in a declarative or assignment manner, or by directly indicating the protocol stack. The second capability information is introduced below using the following cases 1 and 2 as examples. However, it should be understood that the way the second capability information indicates the protocol stack is not limited to the following examples.
[0321] Case 1: The second capability information is included in the Contact header field of the registration request message.
[0322] Exemplarily, the second capability information indicates the protocol stack in an assignment manner. For example, the content included in the registration request message may be as shown in Table 14. In Table 14, the second capability information includes "UDP / DTLS / SCTP, TCP / DTLS / SCTP, UDP / QUIC, UDP / SCTP, SCTP, TCP, UDP", indicating that the communication entity 201 supports the UDP / DTLS / SCTP protocol stack, TCP / DTLS / SCTP protocol stack, UDP / QUIC protocol stack, UDP / SCTP protocol stack, SCTP protocol stack, TCP protocol stack and UDP protocol stack.
[0323] Table 14
[0324]
[0325] Case 2: The second capability information is included in a new SIP header field of the registration request message.
[0326] Example 1: The second capability information indicates the protocol stack in a declarative manner. For example, the content included in the registration request message may be as shown in Table 15. In Table 15, the second capability information includes "UDP / DTLS / SCTP, TCP / DTLS / SCTP, UDP / QUIC, UDP / SCTP, SCTP, TCP, UDP", indicating that the communication entity 201 supports the UDP / DTLS / SCTP protocol stack, TCP / DTLS / SCTP protocol stack, UDP / QUIC protocol stack, UDP / SCTP protocol stack, SCTP protocol stack, TCP protocol stack and UDP protocol stack. The second capability information is declared through the new SIP header field "IMSDC-Proto".
[0327] Table 15
[0328]
[0329] Example 2: The second capability information indicates the protocol stack in the form of a parameter. For example, the content included in the registration request message may be as shown in Table 16. In Table 16, the second capability information includes "UDP / QUIC, UDP / SCTP, SCTP, TCP, UDP", indicating that the communication entity 201 supports the UDP / QUIC protocol stack, the UDP / SCTP protocol stack, the SCTP protocol stack, the TCP protocol stack, and the UDP protocol stack. The second capability information is indicated in the form of parameter assignment through the parameter "supported" of the new SIP header field "IMSDC-Proto".
[0330] Table 16
[0331]
[0332] In the above example, the second capability information is included in the SIP header field or the Contact header field of the registration request message. However, in a specific application, the second capability information may also be included in a header field other than the SIP header field or the Contact header field, and the declarative form or the assignment form may also be in other forms, without limitation. For example, the second capability information is included in the Accept header field, the Allow header field, the Feature-Caps header field, or the Require header field.
[0333] It should be understood that "IMSDC-Proto", "datachannel-proto" and "supported" in this application are only examples of header fields or header field parameters in a registration request message. In specific applications, header fields or header field parameters may also have other naming methods, which are not limited.
[0334] S500B: The S-CSCF entity sends the second policy information to the communication entity 201 according to the second capability information. Correspondingly, the communication entity 201 receives the second policy information from the S-CSCF entity.
[0335] In the present application, the second strategy information is used by the communication entity 201 to determine the at least two types of protocol stacks.
[0336] One possible implementation method is that the operator configures the protocol stack supported by the network (such as the IMS network where the communication entity 201 is located) in the S-CSCF entity. After the communication entity 201 initiates the registration process to the communication network, the S-CSCF entity determines the second policy information based on the protocol stack supported by the network and the protocol stack supported by the communication entity 201, and sends the second policy information to the communication entity 201.
[0337] In a possible design, the second policy information may indicate the protocol stack that can be used by the data channel of the IMS session in which the communication entity 201 participates. The data channel of the IMS session in which the communication entity 201 participates includes ADC and / or BDC, or includes an auxiliary data channel and / or an independent data channel. In other words, the second policy information may indicate to the communication entity 201 the protocol stack of the data channel that the communication entity 201 can use when negotiating the data channel later. It can be understood that the protocol stack indicated by the second policy information is included in both the protocol stack supported by the network and the protocol stack supported by the communication entity 201. For example, the protocol stack supported by the network includes the UDP / QUIC protocol stack, the UDP / SCTP protocol stack, the SCTP protocol stack, the TCP protocol stack and the UDP protocol stack, and the second capability information indicates that the communication entity 201 supports the SCTP protocol stack, the TCP protocol stack and the UDP protocol stack, then the second policy information indicates one or more of the SCTP protocol stack, the TCP protocol stack or the UDP protocol stack.
[0338] It is understandable that after receiving the second policy information, the communication entity 201 can indicate at least two types of protocol stacks to the communication entity 202 according to the second policy information. It is understandable that the at least two types of protocol stacks are included in the protocol stack indicated by the second policy information. For example, if the second policy information indicates the SCTP protocol stack, the TCP protocol stack, and the UDP protocol stack, the at least two types of protocol stacks include at least two of the SCTP protocol stack, the TCP protocol stack, or the UDP protocol stack.
[0339] In a possible design, the second policy information is carried in a response message with a status code of 200 (such as a 200OK message).
[0340] It is understandable that in a specific application, the second policy information may indicate the protocol stack in a variety of ways, for example, the protocol stack may be indicated by extending a new indication or parameter in the SIP header field, or by adding a new SIP header field, or by indicating the protocol stack in a declarative or assignment manner, or by directly indicating the protocol stack. This is described in detail below. However, it should be understood that the way the second policy information indicates the protocol stack is not limited to the following examples.
[0341] For the above situation 1, the second policy information is included in the Contact header field of the 200OK message. For example, the second policy information indicates the protocol stack in an assignment manner. Specifically, the 200OK message can be as shown in Table 17. In Table 17, the second policy information includes "UDP / QUIC, SCTP, TCP", and the indicated protocol stacks are UDP / QUIC protocol stack, SCTP protocol stack and TCP protocol stack.
[0342] Table 17
[0343]
[0344]
[0345] For example 1 in the above situation 2, the second policy information is included in the extended new SIP header field IMSDC-Proto of the 200OK message. For example, the second policy information indicates the protocol stack in a declarative manner. Specifically, the 200OK message can be as shown in Table 18. In Table 18, the second policy information includes "SCTP, TCP", and the indicated protocol stack is the SCTP protocol stack and the TCP protocol stack.
[0346] Table 18
[0347]
[0348] For example 2 in the above situation 2, the second policy information is included in the extended new SIP header field IMSDC-Proto of the 200OK message. For example, the second policy information indicates the protocol stack in the form of a parameter. Specifically, the 200OK message can be as shown in Table 19. In Table 19, the second policy information includes "SCTP, TCP", and the indicated protocol stack is the SCTP protocol stack and the TCP protocol stack.
[0349] Table 19
[0350]
[0351] In the above example, the second policy information is included in the extended new SIP header field or the existing Contact header field of the 200OK message. However, in a specific application, the second policy information may also be included in a field other than the SIP header field or the Contact header field, and the declarative form or the assignment form may also be in other forms, which are not limited. For example, the second policy information is included in the Accept header field, the Allow header field, the Feature-Caps header field, or the Require header field.
[0352] It should be understood that the S-CSCF entity may send the second policy information multiple times, and the protocol stack indicated by the second policy information sent each time may be different, so as to adjust the at least two types of protocol stacks proposed by the communication entity 201 when negotiating the data channel as needed.
[0353] The following describes the negotiation between the communication entity 202 and the S-CSCF entity for a protocol stack for establishing a data channel applicable to the communication entity 202. For details, refer to the description of S500C-S500D below.
[0354] S500C: The communication entity 202 sends the first capability information to the S-CSCF entity. Correspondingly, the S-CSCF entity receives the first capability information from the communication entity 202.
[0355] It is understandable that the S-CSCF entity in S500C and the S-CSCF entity in S500A may be the same entity or different entities. Figure 3A In the communication scenario shown, the S-CSCF entity in S500C is the same as the S-CSCF entity in S500A, both of which are S-CSCF entities in the IMS network 301. Figure 3B In the communication scenario shown, the S-CSCF entity in S500C is different from the S-CSCF entity in S500A, one of which is the S-CSCF entity in the IMS network 311 , and the other is the S-CSCF entity in the IMS network 312 .
[0356] In the present application, the first capability information indicates the protocol stack for establishing a data channel supported by the communication entity 202. It can be understood that the manner in which the first capability information indicates the protocol stack is similar to the manner in which the second capability information indicates the protocol stack. For details, reference can be made to the corresponding description in S500A above, and no further description is given.
[0357] S500D: The S-CSCF entity sends the first policy information to the communication entity 202 according to the first capability information. Correspondingly, the communication entity 202 receives the first policy information from the S-CSCF entity.
[0358] In the present application, the first policy information is used by the communication entity 202 to determine the first type of protocol stack.
[0359] In one possible implementation method, the operator configures the protocol stack supported by the network (such as the IMS network where the communication entity 202 is located) in the S-CSCF entity. After the communication entity 202 initiates the registration process to the communication network, the S-CSCF entity determines the first policy information based on the protocol stack supported by the network and the protocol stack supported by the communication entity 202, and sends the first policy information to the communication entity 202.
[0360] In a possible design, the first policy information may indicate the protocol stack used by the data channel of the IMS session in which the communication entity 202 participates. The data channel of the IMS session in which the communication entity 202 participates includes ADC and / or BDC, or includes an auxiliary data channel and / or an independent data channel. In other words, the first policy information may indicate to the communication entity 202 the protocol stack of the data channel that the communication entity 202 can use when negotiating the data channel later. It can be understood that the protocol stack indicated by the first policy information is included in both the protocol stack supported by the network and the protocol stack supported by the communication entity 202.
[0361] It can be understood that the communication entity 202 can determine the protocol stack for establishing the data channel, that is, the first type of protocol stack, according to the first policy information and the SDP proposal information.
[0362] In a possible implementation, the communication entity 202 determines the first type of protocol stack from the protocol stacks indicated by the first policy information and the SDP proposal information. In other words, the first type of protocol stack is included in both the protocol stack indicated by the first policy information and the protocol stack indicated by the SDP proposal information.
[0363] Exemplarily, taking the first policy information indicating the UDP / DTLS / SCTP protocol stack, TCP / DTLS / SCTP protocol stack, UDP / QUIC protocol stack, UDP / SCTP protocol stack, SCTP protocol stack, TCP protocol stack and UDP protocol stack, and the SDP proposal information indicating the UDP / QUIC protocol stack, UDP / SCTP protocol stack, SCTP protocol stack, TCP protocol stack and UDP protocol stack as an example, the communication entity 202 can determine that the first type of protocol stack is the UDP / QUIC protocol stack, UDP / SCTP protocol stack, SCTP protocol stack, TCP protocol stack or UDP protocol stack. For example, if the data channel application is sensitive to packet loss, the communication entity 202 determines that the first type of protocol stack is the TCP protocol stack; or, if the data channel application is sensitive to transmission delay, the communication entity 202 determines that the first type of protocol stack is the UDP protocol stack; or, if the data channel application has high real-time requirements and is sensitive to packet loss, the communication entity 202 determines that the first type of protocol stack is the SCTP protocol stack; or, if the UDP / QUIC protocol stack has the highest priority, the communication entity 202 determines that the first type of protocol stack is the UDP / QUIC protocol stack; or, if the UDP / QUIC protocol stack and the TCP protocol stack have the highest priority and the data channel application is sensitive to packet loss, the communication entity 202 determines that the first type of protocol stack is the TCP protocol stack.
[0364] It can be understood that the manner in which the first policy information indicates the protocol stack is similar to the manner in which the second policy information indicates the protocol stack. For details, reference may be made to the corresponding description in S500B above, and no further details will be given.
[0365] It should be understood that the S-CSCF entity may send the first policy information multiple times, and the protocol stack indicated by the first policy information sent each time may be different, so as to adjust the protocol stack of the data channel decided by the communication entity 202 when negotiating the data channel as needed.
[0366] It can be understood that the present application does not limit the execution order of S500A-S500B and S500C-S500D. For example, S500A-S500B can be executed first and then S500C-S500D, or S500C-S500D can be executed first and then S500A-S500B, or S500A-S500B and S500C-S500D can be executed simultaneously.
[0367] The actions of the S-CSCF entity or the communication entity 201 or the communication entity 202 in the above S500A to S500D may be performed by Figure 4 The processor 401 in the communication device 40 shown calls the application code stored in the memory 403 for execution, and the present application does not impose any limitation on this.
[0368] It is understandable that the above content is described by taking S500A-S500B and S500C-S500D executed before S501 as an example. However, in a specific application, S500A-S500B and S500C-S500D may be executed independently of S501 and S502. In other words, the present application also provides a communication method, which may include S500A-S500B and / or S500C-S500D, and is used for a network device in a communication network (such as an IMS network) and a terminal in the communication network to negotiate a protocol stack for establishing a data channel applicable to the terminal.
[0369] In order to better understand the communication method provided by this application, Figure 3C Taking the communication scenario shown in the figure as an example, the complete process of the communication method provided by this application is introduced. It can be understood that the above Figure 5 The method shown above Figure 6 The method shown below Figure 7 The method shown and the following Figure 8 The introduction of each feature in the methods shown can draw on each other.
[0370] First, the specific process of the network device in the communication network (such as the IMS network) indicating the policy of the data channel protocol stack applicable to each communication entity is introduced. It can be understood that the process of the network device indicating the policy of the data channel protocol stack to each communication entity is similar. For the convenience of description, this application takes the I / S-CSCF entity in the IMS network 311 indicating the policy of the data channel protocol stack to the terminal 313 as an example for introduction. Among them, the I / S-CSCF entity can be understood as having the functions of the I-CSCF entity and the S-CSCF entity. Figure 7 In the method shown, the operation performed by the I / S-CSCF entity can be understood as being performed by the I / S-CSCF entity, or by a module with S-CSCF functions in the I / S-CSCF entity. Figure 7The I / S-CSCF entity in the method shown may be replaced by an S-CSCF entity or a P-CSCF entity, etc.
[0371] like Figure 7 As shown, another communication method provided by the present application may include the following steps:
[0372] S701: The terminal 313 sends a first registration (REGISTER) request message to the I / S-CSCF entity through the P-CSCF entity. Correspondingly, the I / S-CSCF entity receives the first registration request message from the terminal 313 through the P-CSCF entity.
[0373] In the present application, the first registration request message may be used to request to register the terminal 313 in the IMS network 311. Exemplarily, the first registration request message includes information such as the IP multimedia private identity (IMPI) of the terminal 313 and the contact address of the user corresponding to the terminal 313. Optionally, the first registration request message also includes the first capability information or the second capability information. Figure 7 Only the first capability information is shown, and the second capability information is not shown.
[0374] Exemplarily, the terminal 313 initiates a registration process to the IMS network 311, and the first registration request message sent by the terminal 313 can be routed to the I / S-CSCF entity via the P-CSCF entity. In specific applications, the I-CSCF and the S-CSCF can be deployed on different entities. In this case, the first registration request message sent by the terminal 313 can be routed to the I-CSCF entity via the P-CSCF entity. After receiving the first registration request message, the I-CSCF entity sends a user authorization request (user authorization request, UAR) to the HSS / UDM entity. The UAR is used to request the address of the S-CSCF entity. After receiving the UAR, the HSS / UDM entity sends a user authorization response (user authorization answer, UAA) to the I-CSCF entity. The UAR includes the address or capability set of the S-CSCF entity. After receiving the UAR, the I-CSCF entity determines the S-CSCF entity to which the first registration request message is to be sent, and forwards the first registration request message to the S-CSCF entity. It can be understood that if the UAR includes the address of the S-CSCF entity, the I-CSCF entity forwards the first registration request message to the S-CSCF entity. If the UAR includes the capability set of the S-CSCF entity, the I-CSCF entity queries the capability set table of the local S-CSCF entity, selects an S-CSCF entity that meets the capability set requirements indicated by the UAR, and forwards the first registration request message to the S-CSCF entity.
[0375] S702: The I / S-CSCF entity sends a multimedia authentication request (MAR) to the HSS / UDM entity. Correspondingly, the HSS / UDM entity receives the MAR from the I / S-CSCF entity.
[0376] In this application, MAR is used to request an authentication vector (AV).
[0377] S703: The HSS / UDM entity sends a multimedia authentication answer (MAA) to the I / S-CSCF entity. Correspondingly, the I / S-CSCF entity receives the MAA from the HSS / UDM entity.
[0378] In the present application, MAA may include an authentication quintuple, for example, MAA includes an expected response (XRES), a random challenge (RAND), an authentication token (AUTN), an integrity key (IK), and a cipher key (CK).
[0379] After receiving the MAA, the I / S-CSCF entity may save the XRES for subsequent verification of the user's authentication response.
[0380] S704: The I / S-CSCF entity sends a 401 response to the terminal 313 through the P-CSCF entity. Accordingly, the terminal 313 receives the 401 response from the I / S-CSCF entity.
[0381] In the present application, the 401 response may include RAND, AUTN, IK, and CK.
[0382] S705: The terminal 313 authenticates the AUTN according to the shared key stored in the local subscriber identity module (ISIM).
[0383] It can be understood that if the terminal 313 passes the AUTN authentication, it means that the 401 response comes from the user's real home network.
[0384] S706: The terminal 313 sends a second registration request message to the I / S-CSCF entity through the P-CSCF entity. Correspondingly, the I / S-CSCF entity receives the second registration request message from the terminal 313 through the P-CSCF entity.
[0385] In the present application, the second registration request message includes a response (RES) calculated by the terminal 313 based on the RAND. The second registration request message also includes the first capability information or the second capability information. Figure 7 Only the first capability information is shown, and the second capability information is not shown.
[0386] S707 : The I / S-CSCF entity authenticates the terminal 313 .
[0387] It can be understood that after receiving the second registration request message, the I / S-CSCF entity compares the previously stored XRES with the RES included in the second registration request message. If the two match, the I / S-CSCF entity determines that the terminal 313 passes the network authentication, and the I / S-CSCF entity executes S708.
[0388] S708: The I / S-CSCF entity sends a service assignment request (SAR) to the HSS / UDM entity. Correspondingly, the HSS / UDM entity receives the SAR from the I / S-CSCF entity.
[0389] In this application, SAR is used to request the subscription data of terminal 313.
[0390] S709: The HSS / UDM entity sends a server assignment answer (SAA) to the I / S-CSCF entity. Correspondingly, the I / S-CSCF entity receives the SAA from the HSS / UDM entity.
[0391] In this application, SAA includes the subscription data of the terminal 313.
[0392] S710: The I / S-CSCF entity sends a 200OK message to the terminal 313 through the P-CSCF entity. Correspondingly, the terminal 313 receives the 200OK message from the I / S-CSCF entity.
[0393] The 200OK message includes the subscription data of the terminal 313. The 200OK message also includes the first policy information or the second policy information. Figure 7 Only the first policy information is shown, and the second policy information is not shown. It can be understood that the first policy information can be determined based on the protocol stack supported by the IMS network 311 and the first capability information in the second registration request message. The second policy information can be determined based on the protocol stack supported by the IMS network 311 and the second capability information in the second registration request message. Specifically, reference can be made to the corresponding description in S500B or S500D, which will not be repeated here.
[0394] It can be understood that after receiving the 200OK message, the terminal 313 can negotiate the protocol stack of the data channel according to the first policy information or the second policy information.
[0395] The actions of the terminal 313 or the I / S-CSCF entity in the above S701-S710 can be performed by Figure 4 The processor 401 in the communication device 40 shown calls the application code stored in the memory 403 for execution, and the present application does not impose any limitation on this.
[0396] based on Figure 7According to the method shown, after initiating the registration process, the terminal 313 can report the protocol stacks it supports to the I / S-CSCF entity through the second registration request message, so that the I / S-CSCF entity carries the protocol stack that the terminal 313 can use to establish a data channel in the 200OK message of successful registration. In this way, the terminal 313 can determine at least two types of protocol stacks indicated in the SDP proposal information, or determine the protocol stack that the data channel finally uses, such as the first type of protocol stack mentioned above.
[0397] Figure 7 The method shown is a process in which the I / S-CSCF entity in the IMS network 311 negotiates with the terminal 313 about the protocol stack for establishing a data channel applicable to the terminal 313. It should be understood that the I / S-CSCF entity in the IMS network 312 may also adopt the same Figure 7 The logic similar to the method shown in the figure negotiates with the terminal 314 about the protocol stack for establishing the data channel applicable to the terminal 314. For details, please refer to Figure 7 The corresponding description in will not be repeated here.
[0398] It can be understood that after the terminal 313 obtains the protocol stack for establishing the data channel that is applicable to it, it can negotiate the protocol stack of the data channel of the IMS session in which it participates. The following takes the terminal 313 as the SDP proposer and the IMS AS in the IMS network 312 as the SDP responder as an example to introduce the specific process of negotiating the protocol stack of the data channel 317 between the terminal 313 and the IMS AS in the IMS network 312. In this example, the data channel 317 is BDC.
[0399] like Figure 8 As shown, another communication method provided by the present application may include the following steps:
[0400] S801: The terminal 313 obtains second policy information.
[0401] For the specific process of S801 , reference may be made to the corresponding descriptions in S500A to S500B, or the descriptions in S701 to S710 .
[0402] S802: The terminal 313 sends a first invitation request to an IMS AS (hereinafter referred to as the first IMS AS) in the IMS network 311 according to the second policy information. Correspondingly, the first IMS AS receives the first invitation request from the terminal 313.
[0403] In the present application, the first invitation request includes first SDP proposal information, indicating at least two types of protocol stacks for establishing the data channel 317. For a detailed introduction to the first SDP proposal information, please refer to the above Figure 5 or Figure 6Description of the SDP proposal information in the method shown. Optionally, the first SDP proposal information also includes audio and video media description information.
[0404] It can be understood that if the terminal 313 indicates the SCTP protocol stack and the TCP protocol stack in the first SDP proposal information, the content included in the first SDP proposal information can be as shown in Table 20.
[0405] Table 20
[0406]
[0407] In a possible implementation, the first invitation request sent by the terminal 313 is routed to the first IMS AS providing services for the terminal 313 via the IMS core (such as the P-CSCF entity and the I / S-CSCF entity in the IMS network 311 ).
[0408] S803: The first IMS AS sends a first notification message to a DCSF entity (hereinafter referred to as the first DCSF entity) in the IMS network 311. Correspondingly, the first DCSF entity receives the first notification message from the first IMS AS.
[0409] In the present application, the first notification message may include a session and a media event.
[0410] S804: The first DCSF entity invokes the first IMS AS service to inform the first IMS AS of the processing strategy for the data channel 317 .
[0411] Exemplarily, after receiving the first notification message, the first DCSF entity may determine whether the terminal 313 can establish a data channel and a policy for establishing the data channel, so that the first IMS AS processes the SDP media description corresponding to the data channel in the first SDP proposal information according to the policy.
[0412] S805: The first IMS AS sends a second invitation request to an IMS AS (hereinafter referred to as the second IMS AS) in the IMS network 312. Correspondingly, the second IMS AS receives the second invitation request from the first IMS AS.
[0413] Among them, the second invitation request includes the second SDP proposal information. The second SDP proposal information is the SDP proposal information obtained after the first IMS AS performs corresponding processing on the SDP media description corresponding to the data channel in the first SDP proposal information according to the above strategy. It can be understood that the above "a=dcmap:100subprotocol="http"" is the information between the terminal 313 and the IMS network 312, so the second SDP proposal information includes "a=dcmap:100subprotocol="http"". It can be understood that the corresponding processing of the SDP media description corresponding to the data channel by the first IMS AS does not include the modification of the protocol stack of the data channel, that is, the second SDP proposal information indicates the above at least two types of protocol stacks for establishing the data channel 317.
[0414] In a possible implementation manner, the second invitation request sent by the first IMS AS is routed to the second IMS AS via the IMS core in the IMS network 311 and the IMS core in the IMS network 312 .
[0415] S806: The second IMS AS sends a second notification message to a DCSF entity (hereinafter referred to as the second DCSF entity) in the IMS network 312. Correspondingly, the second DCSF entity receives the second notification message from the second IMS AS.
[0416] In the present application, the second notification message may include session and media events.
[0417] S807: The second DCSF entity invokes the second IMS AS service to inform the second IMS AS of the processing strategy of the data channel 317.
[0418] S808: The second IMS AS applies for corresponding data channel resources from the MF entity (hereinafter referred to as the second MF entity) in the IMS network 312 according to the processing strategy of the data channel 317.
[0419] S809: The second IMS AS sends a third invitation request to the terminal 314. Correspondingly, the terminal 314 receives the third invitation request from the second IMS AS.
[0420] In the present application, the third invitation request includes the third SDP proposal information. The third SDP proposal information is obtained by updating the second SDP proposal information. It can be understood that the above "a=dcmap:100subprotocol="http"" is information between the terminal 313 and the IMS network 312, so the third SDP proposal information does not include "a=dcmap:100subprotocol="http"".
[0421] In a possible implementation manner, the third invitation request sent by the second IMS AS is routed to the terminal 314 via the IMScore in the IMS network 312 .
[0422] S810: The terminal 314 sends a first 183 response to the second IMS AS. Correspondingly, the second IMS AS receives the first 183 response from the terminal 314.
[0423] In the present application, the first 183 response includes first SDP answer information. The first SDP answer information is answer information of the third SDP proposal information.
[0424] In a possible implementation, the first 183 response sent by the terminal 314 is routed to the second IMS AS via the IMS core in the IMS network 312 .
[0425] S811: The second IMS AS sends a third notification message to the second DCSF entity. Correspondingly, the second DCSF entity receives the third notification message from the second IMS AS.
[0426] In the present application, the third notification message may include session and media events.
[0427] S812: The second IMS AS determines the protocol stack of the data channel 317 according to the at least two types of protocol stacks indicated by the second SDP proposal information and the data channel protocol stack policy in the IMS network 312 (the policy may be configured in the second IMS AS by the operator).
[0428] S813: The second IMS AS sends a second 183 response to the first IMS AS. Correspondingly, the first IMS AS receives the second 183 response from the second IMS AS.
[0429] In the present application, the second 183 response includes a second SDP response information, indicating that the second IMS AS decides to use the first type of protocol stack to establish the data channel 317. The second SDP response information may be an information response to the second SDP proposal information. For example, if the second IMS AS decides to use the TCP protocol stack to establish the data channel 317, the content included in the second SDP response information may be as shown in Table 21. For other descriptions of the second SDP response information, please refer to Figure 5 or Figure 6 Description of SDP response information.
[0430] Table 21
[0431]
[0432]
[0433] In a possible implementation, the second IMS AS sends the second 183 response, which may be routed to the first IMS AS via the IMS core in the IMS network 312 and the IMS core in the IMS network 311 .
[0434] S814: The first IMS AS sends a fourth notification message to the first DCSF entity. Correspondingly, the first DCSF entity receives the fourth notification message from the first IMS AS.
[0435] In the present application, the fourth notification message may include session and media events.
[0436] S815: The first IMS AS sends a third 183 response to the terminal 313. Accordingly, the terminal 313 receives the third 183 response from the first IMS AS.
[0437] In the present application, the third 183 response includes third SDP answer information. The third SDP answer information is answer information of the first SDP proposal information.
[0438] After S815 , the SIP PRACK / 200 process may continue to be executed.
[0439] S816: The data channel 317 between the terminal 313 and the second MF entity is established. The protocol stack of the data channel 317 is the TCP protocol stack.
[0440] After S816, the SIP 180 / PRACK / 200 / ACK process can be completed. At this point, the IMS call is connected.
[0441] based on Figure 8 In the method shown, the terminal 313 and the second IMS AS can negotiate to establish a data channel 317. During the negotiation to establish the data channel 317, the protocol stack of the data channel 317 can be negotiated.
[0442] Figure 8 The method shown introduces the process of negotiating the BDC protocol stack between the terminal 313 and the second IMS AS during the process of establishing the BDC. In a specific application, after the terminal 313 and / or the terminal 314 establishes the BDC, the data channel application can be downloaded through the BDC.
[0443] It can be understood that after the SDP proposer and the SDP responder establish a BDC and download the data channel application through the BDC, the corresponding ADC can be established. The following takes the negotiation of the protocol stack of the data channel 320 (ADC in this example) between the terminal 313 and the terminal 314 as an example to introduce the process of negotiating the protocol stack of the ADC between the SDP proposer and the SDP responder. Figure 3DThe data channel 320 shown in the figure substantially includes two sections of data channels, one of which is a data channel between the terminal 313 and the second MF entity (hereinafter referred to as data channel 320-1), and the other is a data channel between the second MF entity and the terminal 314 (hereinafter referred to as data channel 320-2). Therefore, the protocol stack of the data channel 320 negotiated between the terminal 313 and the terminal 314 can be understood as the protocol stack of the data channel 320-1 negotiated between the terminal 313 and the second IMS AS, and the protocol stack of the data channel 320-2 negotiated between the second IMS AS and the terminal 314. In the process of negotiating the protocol stack of the data channel 320-1 between the terminal 313 and the second IMS AS, the terminal 313 is the SDP proposer and the second IMS AS is the SDP responder; in the process of negotiating the protocol stack of the data channel 320-2 between the second IMS AS and the terminal 314, the second IMS AS is the SDP proposer and the terminal 314 is the SDP responder. This is explained in detail below.
[0444] like Fig. 9 As shown, another communication method provided by the present application may include the following steps:
[0445] S901: Terminal 313 obtains second policy information, and terminal 314 obtains first policy information.
[0446] For the specific process of S901, reference may be made to the corresponding descriptions in S500A to 500D, or the descriptions in S701 to S710.
[0447] After S901, a BDC can be established between the terminal 313 and the second IMS AS, and a data channel application can be downloaded through the BDC. A BDC can be established between the second terminal 314 and the IMS AS, and a data channel application can be downloaded through the BDC. The process of establishing a BDC between the terminal 313 and the second IMS AS, and the process of establishing a BDC between the terminal 314 and the second IMS AS, are similar to Figure 8 The process of establishing BDC in the method shown is similar, you can refer to Figure 8 The corresponding description in will not be repeated here. Subsequently, the terminal 313 and the terminal 314 have a call. During the call, a data channel 320 can be established between the terminal 313 and the terminal 314. The specific process is as follows.
[0448] S902: The terminal 313 sends a first re-invitation request to the first IMS AS according to the second policy information. Correspondingly, the first IMS AS receives the first re-invitation request from the terminal 313.
[0449] In the present application, the first re-invite request includes the first SDP proposal information, indicating at least two types of protocol stacks supported by the terminal 313 for establishing the data channel 320-1. For a detailed introduction to the first SDP proposal information, please refer to the above Figure 5 or Figure 6 Description of the SDP proposal information in the method shown. Optionally, the first SDP proposal information also includes audio and video media description information.
[0450] It can be understood that if the terminal 313 indicates the SCTP protocol stack and the TCP protocol stack in the first SDP proposal information, the content included in the first SDP proposal information can be as shown in Table 22.
[0451] Table 22
[0452]
[0453] In a possible implementation, the first re-invite request sent by the terminal 313 is routed to the first IMS AS providing services for the terminal 313 via the IMS core (such as the P-CSCF entity and the I / S-CSCF entity in the IMS network 311). The first re-invite request may be sent by the terminal 313 during a call between the terminal 313 and the terminal 314.
[0454] S903: The first IMS AS sends a first notification message to the first DCSF entity. Correspondingly, the first DCSF entity receives the first notification message from the first IMS AS.
[0455] In the present application, the first notification message may include a session and a media event.
[0456] S904: The first DCSF entity invokes the first IMS AS service to inform the first IMS AS of the processing strategy for the data channel 320-1.
[0457] Exemplarily, after receiving the first notification message, the first DCSF entity may determine whether the terminal 313 can establish a data channel and a policy for establishing the data channel, so that the first IMS AS processes the SDP media description corresponding to the data channel in the first SDP proposal information according to the policy.
[0458] S905: The first IMS AS sends a second re-invite request to the second IMS AS. Correspondingly, the second IMS AS receives the second re-invite request from the first IMS AS.
[0459] In the present application, the second re-invite request includes the second SDP proposal information. The second SDP proposal information is the SDP proposal information obtained after the first IMS AS performs corresponding processing on the SDP media description corresponding to the data channel in the first SDP proposal information according to the above strategy. It can be understood that the above "a=dcmap:1001" is the information between the terminal 313 and the IMS network 312, so the second SDP proposal information includes "a=dcmap:1001". It can be understood that the corresponding processing of the SDP media description corresponding to the data channel by the first IMS AS does not include the modification of the protocol stack of the data channel, that is, the second SDP proposal information indicates the above at least two types of protocol stacks for establishing the data channel 320-1.
[0460] In a possible implementation manner, the second re-invite request sent by the first IMS AS is routed to the second IMS AS via the IMS core in the IMS network 311 and the IMS core in the IMS network 312 .
[0461] S906: The second IMS AS sends a second notification message to the second DCSF entity. Correspondingly, the second DCSF entity receives the second notification message from the second IMS AS.
[0462] In the present application, the second notification message may include session and media events.
[0463] S907: The second DCSF entity invokes the second IMS AS service to inform the second IMS AS of the processing strategy of the data channel 320-2.
[0464] S908: The second IMS AS applies to the second MF entity for resources of the data channel 320-1 and the data channel 320-2.
[0465] S909: The second IMS AS sends a third re-invitation request to the terminal 314. Accordingly, the terminal 314 receives the third re-invitation request from the second IMS AS.
[0466] In this application, the third re-invite request includes the third SDP proposal information. The third SDP proposal information is obtained by the second IMS A S updating the second SDP proposal information according to the resources of the data channel 320-2 applied for. It can be understood that the above "a=dcmap:1001" is the information between the terminal 313 and the IMS network 312, so the third SDP proposal information does not include "a=dcmap:1001".
[0467] In a possible design, the third SDP proposal information indicates at least two types of protocol stacks supported by the second IMS AS for establishing the data channel 320-2. For a detailed introduction to the third SDP proposal information, please refer to the above Figure 5 or Figure 6 The description of the SDP proposal information in the method shown. Optionally, the third SDP proposal information also includes audio and video media description information.
[0468] Exemplarily, if the second IMS AS indicates the SCTP protocol stack and the TCP protocol stack in the third SDP proposal information, the content included in the third SDP proposal information may be as shown in Table 23.
[0469] Table 23
[0470]
[0471] In a possible implementation manner, the third re-invite request sent by the second IMS AS is routed to the terminal 314 via the IMS core in the IMS network 312 .
[0472] S910: The terminal 314 determines the protocol stack of the data channel 320-2 according to the at least two types of protocol stacks indicated by the third SDP proposal information and the protocol stack indicated by the first policy information.
[0473] S911: The terminal 314 sends a first 200 OK message to the second IMS AS. Correspondingly, the second IMS AS receives the first 200 OK message from the terminal 314.
[0474] In the present application, the first 200OK message includes the first SDP response information. The first SDP response information is the response information of the third SDP proposal information. The first SDP response information may indicate the protocol stack that the terminal 314 decides to establish the data channel 320-2. For example, if the terminal 314 decides to use the TCP protocol stack to establish the data channel 320-2, the content included in the first SDP response information may be as shown in Table 24. For other descriptions of the first SDP response information, please refer to Figure 5 or Figure 6 Description of SDP response information.
[0475] Table 24
[0476]
[0477] It can be understood that the second IMS AS may send the information related to the data channel 320-2 carried in the first SDP response information to the second MF, so that the second MF establishes the data channel 320-2.
[0478] In a possible implementation manner, the first 200 OK message sent by the terminal 314 is routed to the second IMS AS via the IMS core in the IMS network 312 .
[0479] S912: The second IMS AS sends a third notification message to the second DCSF entity. Correspondingly, the second DCSF entity receives the third notification message from the second IMS AS.
[0480] In the present application, the third notification message may include session and media events.
[0481] S913: The second IMS AS determines the protocol stack of the data channel 320-1 according to the at least two types of protocol stacks indicated by the second SDP proposal information and the data channel protocol stack policy in the IMS network 312 (the policy may be configured in the second IMS AS by the operator).
[0482] S914: The second IMS AS sends a second 200 OK message to the first IMS AS. Correspondingly, the first IMS AS receives the second 200 OK message from the second IMS AS.
[0483] In the present application, the second 200OK message includes the second SDP response information, and the second SDP response information is obtained by the second IMS AS updating the first SDP response information according to the resources of the applied data channel 320-1. The second SDP response information can indicate that the second IMS AS decides to establish the protocol stack of the data channel 320-1. The second SDP response information can be an information response to the second SDP proposal information. For example, if the second IMS AS decides to use the TCP protocol stack to establish the data channel 320-1, the content included in the second SDP response information can be as shown in Table 25. For other descriptions of the second SDP response information, please refer to Figure 5 or Figure 6 Description of SDP response information.
[0484] Table 25
[0485]
[0486] In a possible implementation manner, the second IMS AS sends a second 200 OK message, which may be routed to the first IMS AS via the IMS core in the IMS network 312 and the IMS core in the IMS network 311 .
[0487] S915: The first IMS AS sends a fourth notification message to the first DCSF entity. Correspondingly, the first DCSF entity receives the fourth notification message from the first IMS AS.
[0488] In the present application, the fourth notification message may include session and media events.
[0489] S916: The first IMS AS sends a third 200OK message to the terminal 313. Correspondingly, the terminal 313 receives the third 200OK message from the first IMS AS.
[0490] In the present application, the third 200OK message includes third SDP response information. The third SDP response information is response information of the first SDP proposal information.
[0491] It can be understood that after S916, the data channel 320 is established (or negotiated) successfully, the protocol stack of the data channel 320 is the TCP protocol stack, and the data channel 320 is anchored on the second MF entity.
[0492] based on Fig. 9 In the method shown, the terminal 313 and the terminal 314 can negotiate to establish the data channel 320. In the process of negotiating to establish the data channel 320, the protocol stack of the data channel 320 can be negotiated. Fig. 9 In the method shown, the TCP protocol is used to establish an ADC between the terminal 313 and the terminal 314 ; since the ADC is anchored on the second MF, the ADC is actually divided into two sections, namely, the data channel 317 and the data channel 318 .
[0493] Understandably, Figure 8 The method shown is a protocol stack for negotiating a data channel 317 between the terminal 313 and the second IMS AS. Fig. 9 The method shown is that the terminal 313 and the terminal 314 negotiate the protocol stack of the data channel 320. In addition, in a specific application, the terminal 313 and the first IMS AS may also negotiate the protocol stack of the data channel, and the first IMS AS and the terminal 314 may also negotiate the protocol stack of the data channel. Figure 8 The method shown or Fig. 9 The logic of the method shown is similar and will not be repeated here.
[0494] The various embodiments mentioned above in this application can be combined without limitation if there is no contradiction between the solutions.
[0495] The above mainly introduces the scheme provided by the present application from the perspective of interaction between various entities. Accordingly, the present application also provides a communication device, which may be the communication entity 201 in the above method embodiment, or a device including the above communication entity 201, or a component that can be used for the communication entity 201; or, the communication device may be the communication entity 202 in the above method embodiment, or a device including the above communication entity 202, or a component that can be used for the communication entity 202; or, the communication device may be the CSCF entity (such as S-CSCF entity or I / S-CSCF entity) in the above method embodiment, or a device including the above CSCF entity, or a component that can be used for the CSCF entity. It can be understood that the above communication entity 201, communication entity 202 or CSCF entity, etc., in order to realize the above functions, includes the hardware structure and / or software module corresponding to the execution of each function. Those skilled in the art should easily realize that, in combination with the units and algorithm operations of each example described in the embodiments disclosed herein, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is performed in hardware or in a computer software-driven hardware manner depends on the specific application and design constraints of the technical solution. Professional technicians can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0496] The present application can divide the communication entity 201, the communication entity 202 or the CSCF entity into functional modules according to the above method example. For example, each functional module can be divided according to each function, or two or more functions can be integrated into one processing module. The above integrated module can be implemented in the form of hardware or in the form of software functional modules. It can be understood that the division of modules in the present application is schematic and is only a logical function division. There may be other division methods in actual implementation.
[0497] For example, when the functional modules are divided in an integrated manner, Fig.10 A schematic diagram of the structure of a communication device 100 is shown. The communication device 100 includes an interface module 1001. Optionally, the communication device 100 also includes a processing module 1002. The interface module 1001, which may also be referred to as an interface unit, is used to perform transceiver operations, and may be, for example, an interface circuit, a transceiver, a transceiver or a communication interface. The processing module 1002, which may also be referred to as a processing unit, is used to perform operations other than transceiver operations, and may be, for example, a processing circuit or a processor.
[0498] In some embodiments, the communication device 100 may further include a storage module ( Fig.10 ), for storing program instructions and data.
[0499] Exemplarily, the communication device 100 is used to implement the functions of the communication entity 202. The communication device 100 is, for example, Figure 5 The embodiment shown or Figure 6 The communication entity 202 or the communication device 100 described in the embodiment shown is, for example, Figure 7 The terminal 313 or the communication device 100 described in the embodiment shown is, for example, Figure 8 The second IMS AS or the communication device 100 described in the embodiment shown is, for example, Fig. 9 The second IMS AS or terminal 314 of the illustrated embodiment.
[0500] The interface module 1001 is used to receive SDP proposal information from the second communication entity. The SDP proposal information indicates at least two types of protocol stacks for establishing a data channel, and the data channel is associated with an IMS session between the communication device 100 and the second communication entity. For example, the interface module 1001 can be used to execute S501.
[0501] The processing module 1002 is used to control the interface module 1001 to send SDP response information to the second communication entity according to the SDP proposal information. The SDP response information indicates that the communication device 100 decides to use the first type of protocol stack among at least two types of protocol stacks for establishing data channels to establish the data channel. For example, the processing module 1002 can be used to execute S502.
[0502] In one possible implementation, at least two types of protocol stacks are at least two of the following protocol stacks: UDP / DTLS / SCTP protocol stack; TCP / DTLS / SCTP protocol stack; UDP / QUIC protocol stack; UDP / SCTP protocol stack; SCTP protocol stack; TCP protocol stack; or UDP protocol stack.
[0503] In a possible implementation manner, the SDP proposal information includes first indication information, where the first indication information indicates at least two types of protocol stacks for establishing a data channel.
[0504] In a possible implementation manner, the SDP proposal information includes an "m=" line corresponding to the data channel, and the "m=" line includes the first indication information.
[0505] In one possible implementation, the first indication information includes at least two of the following: "UDP / DTLS / SCTP", "TCP / DTLS / SCTP", "UDP / QUIC", "UDP / SCTP", "SCTP", "TCP" or "UDP".
[0506] In a possible implementation manner, the SDP response information includes second indication information, where the second indication information indicates that the communication device 100 decides to adopt a first type of protocol stack among at least two types of protocol stacks for establishing data channels to establish the data channel.
[0507] In a possible implementation manner, the SDP response information includes an "m=" line corresponding to the data channel, and the "m=" line included in the SDP response information includes the second indication information.
[0508] In one possible implementation, the second indication information is "UDP / DTLS / SCTP", "TCP / DTLS / SCTP", "UDP / QUIC", "UDP / SCTP", "SCTP", "TCP" or "UDP".
[0509] In a possible implementation manner, the first type of protocol stack meets the transmission requirements of the application of the data channel, where the transmission requirements include at least one of a requirement on a packet loss rate, a requirement on a transmission delay, or a requirement on a protocol stack priority.
[0510] In one possible implementation, the interface module 1001 is further used to send first capability information to a call session control function entity, where the first capability information indicates that the communication device 100 supports a protocol stack for establishing a data channel; the interface module 1001 is further used to receive first policy information from the call session control function entity, where the first policy information is used by the communication device 100 to determine a first type of protocol stack.
[0511] In a possible implementation manner, the first capability information is carried in a registration request message, and the first policy information is carried in a response message with a status code of 200.
[0512] In a possible implementation manner, the first policy information is included in a SIP header field of the response message.
[0513] In a possible implementation, the communication device 100 decides to use the first type of protocol stack to establish the data channel according to at least two types of protocol stacks proposed by the second communication entity and the first policy information.
[0514] In a possible implementation manner, the data channel is an auxiliary data channel or an independent data channel.
[0515] When used to implement the function of the communication entity 202, for other functions that the communication device 100 can implement, refer to Figure 5 The embodiment shown, Figure 6 The embodiment shown, Figure 7 The embodiment shown, Figure 8 The embodiment shown or Fig. 9 The relevant introduction of the illustrated embodiment will not be repeated in detail.
[0516] Alternatively, illustratively, the communication device 100 is used to implement the functions of the communication entity 201. The communication device 100 is, for example, Figure 5 The embodiment shown or Figure 6 The communication entity 201 or the communication device 100 described in the embodiment shown is, for example, Figure 7 The embodiment shown or Figure 8 The terminal 313 or the communication device 100 described in the embodiment shown is, for example, Fig. 9 The terminal 313 or the second IMS AS described in the illustrated embodiment.
[0517] The interface module 1001 is used to send SDP proposal information to the first communication entity. The SDP proposal information indicates at least two types of protocol stacks for establishing a data channel, and the data channel is associated with an IMS session between the first communication entity and the communication device 100. For example, the interface module 1001 can be used to execute S501.
[0518] The interface module 1001 is further used to receive SDP response information from the first communication entity, where the SDP response information indicates that the first communication entity decides to use a first protocol stack of at least two protocol stacks for establishing data channels to establish a data channel. For example, the interface module 1001 can be used to execute S502.
[0519] In one possible implementation, at least two types of protocol stacks are at least two of the following protocol stacks: UDP / DTLS / SCTP protocol stack; TCP / DTLS / SCTP protocol stack; UDP / QUIC protocol stack; UDP / SCTP protocol stack; SCTP protocol stack; TCP protocol stack; or UDP protocol stack.
[0520] In a possible implementation manner, the SDP proposal information includes first indication information, where the first indication information indicates at least two types of protocol stacks for establishing a data channel.
[0521] In a possible implementation manner, the SDP proposal information includes an "m=" line corresponding to the data channel, and the "m=" line includes the first indication information.
[0522] In one possible implementation, the first indication information includes at least two of the following: "UDP / DTLS / SCTP", "TCP / DTLS / SCTP", "UDP / QUIC", "UDP / SCTP", "SCTP", "TCP" or "UDP".
[0523] In a possible implementation manner, the SDP response information includes second indication information, where the second indication information indicates that the first communication entity decides to adopt a first type of protocol stack among at least two types of protocol stacks for establishing data channels to establish the data channel.
[0524] In a possible implementation manner, the SDP response information includes an "m=" line corresponding to the data channel, and the "m=" line included in the SDP response information includes the second indication information.
[0525] In one possible implementation, the second indication information is "UDP / DTLS / SCTP", "TCP / DTLS / SCTP", "UDP / QUIC", "UDP / SCTP", "SCTP", "TCP" or "UDP".
[0526] In one possible implementation, the interface module 1001 is further used to send second capability information to the call session control function entity, where the second capability information indicates that the communication device 100 supports a protocol stack for establishing a data channel; the interface module 1001 is further used to receive second policy information from the call session control function entity, where the second policy information is used by the communication device 100 to determine at least two types of protocol stacks for establishing a data channel.
[0527] In a possible implementation manner, the second capability information is carried in a registration request message, and the second policy information is carried in a response message with a status code of 200.
[0528] In a possible implementation manner, the second policy information is included in a SIP header field of the response message.
[0529] In a possible implementation manner, the data channel is an auxiliary data channel or an independent data channel.
[0530] When used to implement the functions of the communication entity 201, for other functions that the communication device 100 can implement, refer to Figure 5 The embodiment shown, Figure 6 The embodiment shown, Figure 7 The embodiment shown, Figure 8 The embodiment shown or Fig. 9 The relevant introduction of the illustrated embodiment will not be repeated in detail.
[0531] Alternatively, illustratively, the communication device 100 is used to implement the functions of a CSCF entity. Figure 6 The S-CSCF entity described in the embodiment shown, or the communication device 100 is, for example, Figure 7 The I / S-CSCF entity described in the embodiment shown.
[0532] The interface module 1001 is used to receive capability information. The capability information indicates that the communication entity supports a protocol stack for establishing a data channel. For example, the interface module 1001 can be used to execute S500A or S500C.
[0533] The processing module 1002 is used to control the interface module 1001 to send policy information according to the capability information. The policy information is used by the communication entity to determine at least two types of protocol stacks for establishing a data channel, or is used by the communication entity to determine the protocol stack for establishing a data channel, and the data channel is associated with an Internet Protocol Multimedia Subsystem IMS session in which the communication entity participates. For example, the processing module 1002 can be used to execute S500B or S500D.
[0534] In a possible implementation, the capability information is carried in a registration request message, and the policy information is carried in a response message with a status code of 200.
[0535] In a possible implementation, the policy information is included in a SIP header field of the response message.
[0536] In a possible implementation manner, the data channel is an auxiliary data channel or an independent data channel.
[0537] When used to implement the functions of the CSCF entity, for other functions that the communication device 100 can implement, refer to Figure 6 The embodiment shown or Figure 7 The relevant introduction of the illustrated embodiment will not be repeated in detail.
[0538] In a simple embodiment, those skilled in the art will appreciate that the communication device 100 may use Figure 4 For example, Figure 4 The processor 401 in the communication device 100 can call the computer-executable instructions stored in the memory 403 to enable the communication device 100 to execute the method described in the above embodiment.
[0539] For example, Fig.10 The functions / implementation processes of the interface module 1001 and the processing module 1002 can be Figure 4 The processor 401 in the embodiment calls the computer execution instructions stored in the memory 403 to implement. Or, Fig.10 The function / implementation process of the processing module 1002 in Figure 4 The processor 401 in the embodiment calls the computer execution instruction stored in the memory 403 to implement, Fig.10 The function / implementation process of the interface module 1001 can be achieved by Figure 4 The communication interface 404 in is implemented.
[0540] It is understandable that one or more of the above modules or units can be implemented by software, hardware or a combination of the two. When any of the above modules or units is implemented in software, the software exists in the form of computer program instructions and is stored in a memory, and a processor can be used to execute the program instructions and implement the above method flow. The processor can be built into an SoC (system on chip) or an ASIC, or it can be an independent semiconductor chip. In addition to the core used to execute software instructions for calculation or processing in the processor, it can also further include necessary hardware accelerators, such as field programmable gate arrays (FPGA), PLDs (programmable logic devices), or logic circuits that implement dedicated logic operations.
[0541] When the above modules or units are implemented in hardware, the hardware can be any one or any combination of a CPU, a microprocessor, a digital signal processing (DSP) chip, a microcontroller unit (MCU), an artificial intelligence processor, an ASIC, a SoC, an FPGA, a PLD, a dedicated digital circuit, a hardware accelerator or a non-integrated discrete device, which can run the necessary software or not rely on the software to execute the above method flow.
[0542] Optionally, the present application also provides a chip system, including: at least one processor and an interface, the at least one processor is coupled to a memory through the interface, and when the at least one processor executes a computer program or instruction in the memory, the method in any of the above method embodiments is executed. In one possible implementation, the chip system also includes a memory. Optionally, the chip system can be composed of a chip, or it can include a chip and other discrete devices, which is not specifically limited in the present application.
[0543] Optionally, the present application also provides a computer-readable storage medium. All or part of the processes in the above method embodiments can be completed by a computer program to instruct the relevant hardware, and the program can be stored in the above computer-readable storage medium. When the program is executed, it can include the processes of the above method embodiments. The computer-readable storage medium can be an internal storage unit of the communication device of any of the above embodiments, such as a hard disk or memory of the communication device. The above computer-readable storage medium can also be an external storage device of the above communication device, such as a plug-in hard disk, a smart memory card (smart media card, SMC), a secure digital (secure digital, SD) card, a flash card (flash card), etc. equipped on the above communication device. Further, the above computer-readable storage medium can also include both the internal storage unit of the above communication device and an external storage device. The above computer-readable storage medium is used to store the above computer program and other programs and data required by the above communication device. The above computer-readable storage medium can also be used to temporarily store data that has been output or is to be output.
[0544] Optionally, the present application also provides a computer program product. All or part of the processes in the above method embodiments can be completed by a computer program to instruct related hardware, and the program can be stored in the above computer program product. When the program is executed, it can include the processes of the above method embodiments.
[0545] Optionally, the present application also provides a computer instruction. All or part of the processes in the above method embodiments can be completed by computer instructions to instruct related hardware (such as a computer, a processor, a communication entity or a CSCF entity, etc.). The program can be stored in the above computer-readable storage medium or in the above computer program product.
[0546] Optionally, the present application also provides a communication system, comprising: at least two of the communication entity 201, the communication entity 202 and the CSCF entity in the above embodiments.
[0547] Through the description of the above implementation methods, technical personnel in the relevant field can clearly understand that for the convenience and simplicity of description, only the division of the above-mentioned functional modules is used as an example. In actual applications, the above-mentioned functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above.
[0548] In the several embodiments provided in the present application, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of the modules or units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another device, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
[0549] The units described as separate components may or may not be physically separated, and the components shown as units may be one physical unit or multiple physical units, that is, they may be located in one place or distributed in multiple different places. Some or all of the units may be selected according to actual needs to achieve the purpose of the present embodiment.
[0550] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional units.
[0551] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any changes or substitutions within the technical scope disclosed in the present application should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.
Claims
1. A communication method, characterized in that: The method comprises: The first communication entity receives a session description protocol SDP proposal information from a second communication entity, wherein the SDP proposal information indicates at least two types of protocol stacks for establishing a data channel, wherein the data channel is associated with an Internet Protocol Multimedia Subsystem IMS session between the first communication entity and the second communication entity; The first communication entity sends SDP response information to the second communication entity according to the SDP proposal information, and the SDP response information indicates that the first communication entity decides to adopt a first type of protocol stack among the at least two types of protocol stacks for establishing data channels to establish the data channel.
2. The method according to claim 1, characterized in that The at least two types of protocol stacks for establishing a data channel are at least two of the following protocol stacks: User Datagram Protocol UDP / Datagram Transport Layer Security DTLS / Stream Control Transmission Protocol SCTP protocol stack; Transmission Control Protocol TCP / DTLS / SCTP protocol stack; UDP / Quick UDP Network Connection QUIC protocol stack; UDP / SCTP protocol stack; SCTP protocol stack; TCP protocol stack; or, UDP protocol stack.
3. The method according to claim 1 or 2, characterized in that: The SDP proposal information includes first indication information, where the first indication information indicates the at least two types of protocol stacks for establishing a data channel.
4. The method according to claim 3, characterized in that: The SDP proposal information includes an "m=" line corresponding to the data channel, and the "m=" line includes the first indication information.
5. The method according to claim 3 or 4, characterized in that: The first indication information includes at least two of the following: "UDP / DTLS / SCTP", "TCP / DTLS / SCTP", "UDP / QUIC", "UDP / SCTP", "SCTP", "TCP" or "UDP".
6. The method according to any one of claims 1 to 5, characterized in that The SDP response information includes second indication information, where the second indication information indicates that the first communication entity decides to adopt a first type of protocol stack among the at least two types of protocol stacks for establishing data channels to establish the data channel.
7. The method according to claim 6, characterized in that The SDP response information includes an "m=" line corresponding to the data channel, and the "m=" line included in the SDP response information includes the second indication information.
8. The method according to claim 6 or 7, characterized in that: The second indication information is "UDP / DTLS / SCTP", "TCP / DTLS / SCTP", "UDP / QUIC", "UDP / SCTP", "SCTP", "TCP" or "UDP".
9. The method according to any one of claims 1 to 8, characterized in that The first type of protocol stack meets the transmission requirements of the application of the data channel, where the transmission requirements include at least one of a requirement on a packet loss rate, a requirement on a transmission delay, or a requirement on a protocol stack priority.
10. The method according to any one of claims 1 to 9, characterized in that The method further comprises: The first communication entity sends first capability information to a call session control function entity, where the first capability information indicates that the first communication entity supports a protocol stack for establishing a data channel; The first communication entity receives first policy information from the call session control function entity, where the first policy information is used by the first communication entity to determine the first type of protocol stack.
11. The method according to claim 10, characterized in that The first capability information is carried in a registration request message, and the first policy information is carried in a response message with a status code of 200.
12. The method according to claim 11, characterized in that The first policy information is included in a Session Initiation Protocol (SIP) header field of the response message.
13. The method according to any one of claims 10 to 12, characterized in that: The first communication entity decides to adopt the first type of protocol stack to establish the data channel according to the at least two types of protocol stacks proposed by the second communication entity and the first policy information.
14. The method according to any one of claims 1 to 13, characterized in that The data channel is an auxiliary data channel or an independent data channel.
15. A communication method, characterized in that: The method comprises: The second communication entity sends a session description protocol SDP proposal information to the first communication entity, wherein the SDP proposal information indicates at least two types of protocol stacks for establishing a data channel, wherein the data channel is associated with an Internet Protocol Multimedia Subsystem IMS session between the first communication entity and the second communication entity; The second communication entity receives SDP response information from the first communication entity, where the SDP response information indicates that the first communication entity decides to adopt a first type of protocol stack among the at least two types of protocol stacks for establishing data channels to establish the data channel.
16. The method according to claim 15, characterized in that The at least two types of protocol stacks for establishing a data channel are at least two of the following protocol stacks: User Datagram Protocol UDP / Datagram Transport Layer Security DTLS / Stream Control Transmission Protocol SCTP protocol stack; Transmission Control Protocol TCP / DTLS / SCTP protocol stack; UDP / Quick UDP Network Connection QUIC protocol stack; UDP / SCTP protocol stack; SCTP protocol stack; TCP protocol stack; or, UDP protocol stack.
17. The method according to claim 15 or 16, characterized in that The SDP proposal information includes first indication information, where the first indication information indicates the at least two types of protocol stacks for establishing a data channel.
18. The method according to claim 17, characterized in that The SDP proposal information includes an "m=" line corresponding to the data channel, and the "m=" line includes the first indication information.
19. The method according to claim 17 or 18, characterized in that The first indication information includes at least two of the following: "UDP / DTLS / SCTP", "TCP / DTLS / SCTP", "UDP / QUIC", "UDP / SCTP", "SCTP", "TCP" or "UDP".
20. The method according to any one of claims 15 to 19, characterized in that The SDP response information includes second indication information, where the second indication information indicates that the first communication entity decides to adopt a first type of protocol stack among the at least two types of protocol stacks for establishing data channels to establish the data channel.
21. The method according to claim 20, characterized in that The SDP response information includes an "m=" line corresponding to the data channel, and the "m=" line included in the SDP response information includes the second indication information.
22. The method according to claim 20 or 21, characterized in that The second indication information is "UDP / DTLS / SCTP", "TCP / DTLS / SCTP", "UDP / QUIC", "UDP / SCTP", "SCTP", "TCP" or "UDP".
23. The method according to any one of claims 15 to 22, characterized in that The method further comprises: The second communication entity sends second capability information to the call session control function entity, where the second capability information indicates that the second communication entity supports a protocol stack for establishing a data channel; The second communication entity receives second policy information from the call session control function entity, where the second policy information is used by the second communication entity to determine the at least two types of protocol stacks for establishing a data channel.
24. The method according to claim 23, characterized in that The second capability information is carried in a registration request message, and the second policy information is carried in a response message with a status code of 200.
25. The method according to claim 24, characterized in that The second policy information is included in a Session Initiation Protocol (SIP) header field of the response message.
26. The method according to any one of claims 15 to 25, characterized in that The data channel is an auxiliary data channel or an independent data channel.
27. A communication method, characterized in that: The method comprises: receiving capability information, the capability information indicating a protocol stack supported by the communication entity for establishing a data channel; Policy information is sent according to the capability information, wherein the policy information is used by the communication entity to determine at least two types of protocol stacks for establishing a data channel, or is used by the communication entity to decide a protocol stack for establishing a data channel, wherein the data channel is associated with an Internet Protocol Multimedia Subsystem IMS session in which the communication entity participates.
28. The method according to claim 27, characterized in that The capability information is carried in the registration request message, and the policy information is carried in the response message with a status code of 200.
29. The method according to claim 28, characterized in that The policy information is included in a Session Initiation Protocol (SIP) header field of the response message.
30. The method according to any one of claims 27 to 29, characterized in that The data channel is an auxiliary data channel or an independent data channel.
31. A communication method, characterized in that: The method comprises: The second communication entity sends a session description protocol SDP proposal information to the first communication entity, wherein the SDP proposal information indicates at least two types of protocol stacks for establishing a data channel, wherein the data channel is associated with an Internet Protocol Multimedia Subsystem IMS session between the first communication entity and the second communication entity; The first communication entity receives the SDP proposal information from the second communication entity, and sends SDP response information to the second communication entity according to the SDP proposal information, wherein the SDP response information indicates that the first communication entity decides to use a first type of protocol stack among the at least two types of protocol stacks for establishing data channels to establish the data channel; The second communication entity receives the SDP response information from the first communication entity.
32. The method according to claim 31, characterized in that The at least two types of protocol stacks for establishing a data channel are at least two of the following protocol stacks: User Datagram Protocol UDP / Datagram Transport Layer Security DTLS / Stream Control Transmission Protocol SCTP protocol stack; Transmission Control Protocol TCP / DTLS / SCTP protocol stack; UDP / Quick UDP Network Connection QUIC protocol stack; UDP / SCTP protocol stack; SCTP protocol stack; TCP protocol stack; or, UDP protocol stack.
33. The method according to claim 31 or 32, characterized in that The SDP proposal information includes first indication information, where the first indication information indicates the at least two types of protocol stacks for establishing a data channel.
34. The method according to any one of claims 31 to 33, characterized in that The SDP response information includes second indication information, where the second indication information indicates that the first communication entity decides to adopt a first type of protocol stack among the at least two types of protocol stacks for establishing data channels to establish the data channel.
35. The method according to any one of claims 31 to 34, characterized in that The first type of protocol stack meets the transmission requirements of the application of the data channel, where the transmission requirements include at least one of a requirement on a packet loss rate, a requirement on a transmission delay, or a requirement on a protocol stack priority.
36. The method according to any one of claims 31 to 35, characterized in that The method further comprises: The first communication entity sends first capability information to a call session control function entity, where the first capability information indicates that the first communication entity supports a protocol stack for establishing a data channel; The call session control function entity receives the first capability information from the first communication entity, and sends first policy information according to the first capability information, where the first policy information is used by the first communication entity to determine the first type of protocol stack; The first communication entity receives the first policy information from the call session control function entity.
37. The method according to any one of claims 31 to 36, characterized in that The method further comprises: The second communication entity sends second capability information to the call session control function entity, where the second capability information indicates that the second communication entity supports a protocol stack for establishing a data channel; The call session control function entity receives the second capability information from the second communication entity, and sends second policy information according to the second capability information, where the second policy information is used by the second communication entity to determine the at least two types of protocol stacks for establishing a data channel; The second communication entity receives the second policy information from the call session control function entity.
38. A communication device, characterized in that: The method comprises a unit or module for executing the method according to any one of claims 1 to 14, or comprises a unit or module for executing the method according to any one of claims 15 to 26, or comprises a unit or module for executing the method according to any one of claims 27 to 30.
39. A communication device, characterized in that: include: A processor, the processor is coupled to a memory, the memory is used to store programs or instructions, when the program or instructions are executed by the processor, the device performs the method as claimed in any one of claims 1 to 14, or performs the method as claimed in any one of claims 15 to 26, or performs the method as claimed in any one of claims 27 to 30.
40. A computer-readable storage medium having a computer program or instruction stored thereon, characterized in that: When the computer program or instructions are executed, the computer performs the method according to any one of claims 1 to 14, or the method according to any one of claims 15 to 26, or the method according to any one of claims 27 to 30.
41. A computer program product, comprising computer program code, characterized in that: When the computer program code is executed on a computer, the computer is enabled to implement the method of any one of claims 1 to 14, or the method of any one of claims 15 to 26, or the method of any one of claims 27 to 30.
42. A communication system, characterized in that: include: An apparatus for performing the method as claimed in any one of claims 1 to 14, and an apparatus for performing the method as claimed in any one of claims 15 to 26.
43. The communication system according to claim 42, characterized in that The communication system further comprises: an apparatus for executing the method as claimed in any one of claims 27 to 30.