Disclosure of Invention
In view of the above, the present invention aims to provide a data channel service system and implementation method for an IMS network, which can implement a SCTP-based data channel based on the IMS network, and effectively optimize performance of the data channel in terms of transmission efficiency, utilization rate, transmission delay, and the like.
In order to achieve the above object, the present invention provides a data channel service system for an IMS network, comprising a data channel server and a plurality of mobile terminals UE, wherein:
a data channel server, establishing a data channel based on SCTP protocol with each UE, then receiving the network information feedback packet sent by each UE, adopting a congestion control algorithm based on delay and a congestion control algorithm based on loss to calculate corresponding sending rate, selecting small sending rate from the corresponding sending rate to send SCTP data flow to the corresponding UE,
The data channel server further comprises a priority control device and a priority management device FPM, wherein:
A priority control device registers a plurality of SCTP data flows passing through the same network path to the FPM, and inputs the congestion window size and network round trip delay of each SCTP data flow: cc_cwnd (f i) and last_rtt (f i), where f i represents the i-th SCTP data stream, cc_cwnd (f i) is the congestion window size of f i, last_rtt (f i) is the network round trip delay of f i,
The FPM further comprises:
A congestion window allocation unit, which forms a flow set of all SCTP data streams passing through a same network path, and stores network round trip delay of each SCTP data stream: last_rtt (f i) and then calculates the output rate of each SCTP data stream in the traffic set: cc_r (f i) is the output rate of f i, thus calculating the current output total rate s_cr for the obtained traffic set: N is the total number of SCTP data streams in the traffic set, the priority of each SCTP data stream in the traffic set is set, and the successful transmission income of each data stream is calculated:
Q (f i) is the benefit of f i transmission success, time now is the current time, time create(fi is the creation time of the f i corresponding data block, blcok remainsize(fi) is the remaining size of the f i corresponding data block, P (f i) is the priority of f i, and the sum of benefits s_q of all data streams in the traffic set transmission success is calculated: and finally, calculating the congestion window size of each SCTP data flow in the flow set according to the successful transmission income of each data flow: Fpm_cwnd (f i)=FPM_R(fi)×last_rtt(fi),FPM_R(fi) is the priority algorithm output rate of f i, fpm_cwnd (f i) is the congestion window size of the priority algorithm output of f i, l_r is the current remaining allocated total rate of the traffic set, its value is set to s_cr, and the calculated congestion window size of the priority algorithm output is allocated to the corresponding SCTP data stream in the traffic set.
In order to achieve the above object, the present invention further provides a method for implementing a data channel service for an IMS network, including:
Step one, each mobile terminal UE and a data channel server establish a data channel based on an SCTP protocol;
step two, the data channel server receives the network information feedback packet sent by each UE, then calculates the corresponding sending rate by adopting a congestion control algorithm based on delay and a congestion control algorithm based on loss at the same time, selects a small sending rate from the sending rate to send SCTP data flow to the UE,
The data channel server comprises a priority control device and a priority management device FPM, when the priority control device finds that a plurality of SCTP data streams flow through the same network path, the data channel server further comprises:
Step B1, the priority control device registers a plurality of SCTP data flows passing through the same network path to the FPM, and inputs the congestion window size and network round trip delay of each SCTP data flow: cc_cwnd (f i) and last_rtt (f i), where f i represents the i-th SCTP data stream, cc_cwnd (f i) is the congestion window size of f i, last_rtt (f i) is the network round trip delay of f i;
Step B2, FPM forms a flow set of all SCTP data flows passing through the same network path, and saves the network round trip delay of each SCTP data flow: last_rtt (f i) and then calculates the output rate of each SCTP data stream in the traffic set: Cc_r (f i) is the output rate of f i and the current output total rate s_cr of the traffic set is calculated from this: wherein N is the total number of SCTP data streams in the traffic set;
step B3, the FPM sets the priority of each SCTP data stream in the traffic set, and then calculates the successful transmission income of each data stream: Where Q (f i) is the benefit of f i transmission success, time now is the current time, time create(fi is the creation time of the f i corresponding data block, blcok remainsize(fi) is the remaining size of the f i corresponding data block, P (f i) is the priority of f i, and the sum of benefits s_q of all data stream transmission success in the traffic set is calculated based on this:
step B4, the FPM calculates the congestion window size of each SCTP data flow in the flow set according to the successful transmission income of each data flow: FPM_CWND (f i)=FPM_R(fi)×last_rtt(fi), wherein FPM_R (f i) is the output rate of the priority algorithm of f i, FPM_CWND (f i) is the congestion window size of the output of the priority algorithm of f i, L_R is the current total remaining allocation rate of the traffic set, the value is set as S_CR, and the calculated congestion window size of the output of the priority algorithm is allocated to the corresponding SCTP data flow in the traffic set.
Compared with the prior art, the invention has the beneficial effects that: the invention constructs an available data channel server based on IMS special bearing, creates a new call data channel on the basis of the existing audio and video capability, and introduces a congestion control algorithm into the data channel service, thereby introducing text and picture expression position actions and even sharing richer interaction information such as a mobile phone desktop and the like before, during and after calling on the basis of the original audio and video channel, upgrading the call from single media to multimedia, realizing multidimensional interaction and supporting a series of emerging multimedia call applications; the invention expands the FPM into the data channel service, shares a plurality of SCTP flows of the same path, gives different priorities according to different service types, dynamically adjusts the speed of the FPM to the flows of different priorities, and distributes more bandwidths for the service types with high priorities, thereby fairly distributing the available bandwidth, reducing the overall delay and loss and solving the related performance problems after the data channel service is introduced.
Detailed Description
The present invention will be described in further detail with reference to the accompanying drawings, in order to make the objects, technical solutions and advantages of the present invention more apparent.
As shown in fig. 1, the data channel service system for an IMS network of the present invention includes a data channel server and a plurality of mobile terminals UE, wherein:
And the data channel server establishes a data channel based on an SCTP protocol with each UE, then receives a network information feedback packet sent by each UE, calculates a corresponding sending rate by adopting a congestion control algorithm based on delay and a congestion control algorithm based on loss, and selects a small sending rate from the corresponding sending rate to send an SCTP data stream to the corresponding UE.
The data channel server further comprises:
The data channel constructing device firstly completes media description information SDP negotiation exchange with the UE, then exchanges candidate addresses CANDIDATE with the UE to establish a PeerConnection connection, and finally establishes DATACHANNEL connection with the UE.
The data channel construction device further comprises:
An SDP negotiation unit, when receiving the Offer SDP of the UE, sets up to local through a remote SDP setting method SetRemoteDescription, then creates ANSWER SDP through a remote create Answer method CREATEANSWER, sets up Answer to local through a local SDP setting method setLocalDescription, and sends ANSWER SDP to the UE;
CANDIDATE exchange unit, monitor OnICECandidate, trigger the method after setting up the local SDP description information, send candidate to UE when ICE CANDIDATE is available, and when candidate sent by UE is received, execute add partner network information method ADDICECANDIDATE to add candidate to local,
The UE further includes:
The UE-SDP negotiation device creates an Offer SDP to the data channel server through an Offer creating method CreateOffer, sets LocalDescription and sends the Offer SDP to the data channel server, then receives ANSWER SDP sent by the data channel server and sets SetRemoteDescription to the local;
The UE-CANDIDATE switching means listens OnICECandidate, sends candidate to the data path server when ICE CANDIDATE is available, and performs ADDICECANDIDATE adding candidate locally when candidate is received from the data path server.
The data channel construction means of the data channel server can configure reliability by parameters of ordered (whether sequential transmission is guaranteed or not), maxRetransmitTimeMs (maximum time allowed for retransmission), maxRetransmits (maximum number of retransmission allowed) when creating DATACHANNEL connections.
The invention can also use the reinforcement learning optimization algorithm GCC to adjust the parameters in the congestion control algorithm based on delay or the congestion control algorithm based on loss in the data channel server, and the data channel server also comprises:
reinforcement learning optimizing device, construction reinforcement learning model GCC, input is state space Wherein T t represents a throughput vector at time T, D t represents an inter-packet delay jitter vector at time T, R t represents an RTT vector at time T, L t represents a packet loss rate vector at time T, the output is a predicted transmission rate, and the reward function reward uses throughput as positive feedback, delay and packet loss rate as negative feedback: the method comprises the steps of (1) re-ward = alpha-throughput + beta-delay + gamma-packet loss, wherein alpha, beta and gamma are respectively weight coefficients of throughput, delay and packet loss, represent the influence of the throughput, delay and packet loss on the re-ward, alpha is more than 0, beta is less than 0, gamma is less than 0, and feature extraction is performed by using a fully connected network, the number of layers of the fully connected network is 2, and the number of neurons of each layer is set to 64.
When multiple data streams compete for shared bandwidth in the same network path, the rate is usually the result of the competition at the bottleneck, and the congestion window size can be dynamically adjusted for flows with different priorities by the priority management device FPM, so that the available bandwidth is distributed fairly, and the overall delay and loss are reduced. The data channel server further comprises a priority control device and an FPM, wherein:
A priority control device registers a plurality of SCTP data flows passing through the same network path to the FPM, and inputs the congestion window size and network round trip delay of each SCTP data flow: cc_cwnd (f i) and last_rtt (f i), where f i represents the i-th SCTP data stream, cc_cwnd (f i) is the congestion window size of f i, last_rtt (f i) is the network round trip delay of f i,
The FPM further comprises:
A congestion window allocation unit, which forms a flow set of all SCTP data streams passing through a same network path, and stores network round trip delay of each SCTP data stream: last_rtt (f i) and then calculates the output rate of each SCTP data stream in the traffic set: cc_r (f i) is the output rate of f i, thus calculating the current output total rate s_cr for the obtained traffic set: N is the total number of SCTP data streams in the traffic set, the priority of each SCTP data stream in the traffic set is set, and the successful transmission income of each data stream is calculated: Q (f i) is the benefit of f i transmission success, time now is the current time, time create(fi is the creation time of the f i corresponding data block, blcok remainsize(fi) is the remaining size of the f i corresponding data block, P (f i) is the priority of f i, and the sum of benefits s_q of all data streams in the traffic set transmission success is calculated: and finally, calculating the congestion window size of each SCTP data flow in the flow set according to the successful transmission income of each data flow: Fpm_cwnd (f i)=FPM_R(fi)×last_rtt(fi),FPM_R(fi) is the priority algorithm output rate of f i, fpm_cwnd (f i) is the congestion window size of the priority algorithm output of f i, l_r is the current remaining allocated total rate of the traffic set, its value is set to s_cr, and the calculated congestion window size of the priority algorithm output is allocated to the corresponding SCTP data stream in the traffic set.
When the congestion window size CWND of a certain SCTP data stream in the traffic set changes, the FPM may also dynamically adjust the congestion window size for all data streams in the traffic set. When monitoring that the congestion window size CWND of any SCTP data stream f a in the traffic set changes, the priority control device sends the current cc_cwnd (f a) and last_rtt (f a) of f a to the FPM, where the FPM further includes:
congestion window adjusting section updates last_rtt (f a) of f a stored locally, and calculates output rate cc_r (f a) of f a: Then, querying the flow set to which f a belongs, and adjusting the current output total rate S_CR' of the flow set to which f a belongs: s_cr '=s_cr+cc_r (f a)-FPM_R(fa),FPM_R(fa) is the output rate of the priority algorithm that is last allocated to f a by FPM, and updates the value of the current remaining total allocation rate l_r of the traffic set to which f a belongs to s_cr', and recalculates the congestion window size output by the priority algorithm of each SCTP data stream in the traffic set to which f a belongs: FPM_CWND (f j)=FPM_R(fj)×last_rtt(fj),fj is the jth SCTP data stream of the traffic set to which f a belongs, then)
And distributing the congestion window size output by the calculated priority algorithm to the SCTP data flow corresponding to the flow set to which f a belongs.
As shown in fig. 2, the method for implementing a data channel server for an IMS network of the present invention includes:
Step one, each mobile terminal UE and a data channel server establish a data channel based on an SCTP protocol;
And step two, the data channel server receives the network information feedback packet sent by each UE, calculates the corresponding sending rate by adopting a congestion control algorithm based on delay and a congestion control algorithm based on loss at the same time, and selects a small sending rate from the sending rate to send SCTP data streams to the UE. And step two, a google congestion control algorithm can be specifically adopted to calculate the sending rate.
Step one of fig. 2 may further include:
step A1, the UE and the data channel server complete SDP negotiation exchange of the media description information;
Step A2, the UE and the data channel server exchange candidate addresses CANDIDATE, and then a PeerConnection connection is established;
and step A3, the UE establishes DATACHANNEL connection with the data channel server.
Step A1 may further include:
Step A11, the UE creates an Offer SDP to the data channel server through an Offer creating method CreateOffer, sets LocalDescription and sends the SDP to the data channel server;
Step A12, the data channel server receives the Offer SDP of the UE and sets the Offer SDP to the local through setting a far-end SDP description information method SetRemoteDescription;
Step A13, the data channel server creates ANSWER SDP through a remote creation response method CREATEANSWER, and sets Answer to local through a local SDP description information setting method setLocalDescription, and sends ANSWER SDP to the UE;
step a14, the UE receives ANSWER SDP sent from the data channel server and sets it locally through SetRemoteDescription.
Step A2 may further include: the data path server (or UE) listens OnICECandidate, when ICE CANDIDATE is available, sends candidate to the UE (or data path server), which performs the add partner network information method ADDICECANDIDATE to add candidate locally.
When creating DATACHANNEL connection in step A3, the reliability can be configured by the data channel. Init's ordered (whether or not sequential transmission is guaranteed), maxRetransmitTimeMs (maximum time allowed for retransmission), maxRetransmits (maximum number of times allowed for retransmission) parameters.
In step two of fig. 2, the present invention may further use a reinforcement learning optimization algorithm GCC to adjust parameters in a delay-based congestion control algorithm or a loss-based congestion control algorithm, and further includes:
constructing a reinforcement learning model GCC, wherein the input is a state space Wherein T t represents a throughput vector at time T, D t represents an inter-packet delay jitter vector at time T, R t represents an RTT vector at time T, L t represents a packet loss rate vector at time T, the output is a predicted transmission rate, and the reward function reward uses throughput as positive feedback, delay and packet loss rate as negative feedback: the method comprises the steps of (1) re-ward = alpha-throughput + beta-delay + gamma-packet loss, wherein alpha, beta and gamma are respectively weight coefficients of throughput, delay and packet loss, represent the influence of the throughput, delay and packet loss on the re-ward, alpha is more than 0, beta is less than 0, gamma is less than 0, and feature extraction is performed by using a fully connected network, the number of layers of the fully connected network is 2, and the number of neurons of each layer is set to 64.
When multiple data streams compete for shared bandwidth in the same network path, the rate is usually the result of the competition at the bottleneck, and the congestion window size can be dynamically allocated to the flows with different priorities by the priority management device FPM, so that the available bandwidth can be fairly allocated, and the overall delay and loss can be reduced. As shown in fig. 3, the data channel server includes a priority control device and an FPM, and when the priority control device finds that there are multiple SCTP data streams flowing through the same network path, the data channel server further includes:
Step B1, the priority control device registers a plurality of SCTP data flows passing through the same network path to the FPM, and inputs the congestion window size and network round trip delay of each SCTP data flow: cc_cwnd (f i) and last_rtt (f i), where f i represents the i-th SCTP data stream, cc_cwnd (f i) is the congestion window size of f i, last_rtt (f i) is the network round trip delay of f i;
Step B2, FPM forms a flow set of all SCTP data flows passing through the same network path, and saves the network round trip delay of each SCTP data flow: last_rtt (f i) and then calculates the output rate of each SCTP data stream in the traffic set: Cc_r (f i) is the output rate of f i and the current output total rate s_cr of the traffic set is calculated from this: wherein N is the total number of SCTP data streams in the traffic set;
step B3, the FPM sets the priority of each SCTP data stream in the traffic set, and then calculates the successful transmission income of each data stream: Where Q (f i) is the benefit of f i transmission success, time now is the current time, time create(fi is the creation time of the f i corresponding data block, blcok remainsize(fi) is the remaining size of the f i corresponding data block, P (f i) is the priority of f i, and the sum of benefits s_q of all data stream transmission success in the traffic set is calculated based on this:
step B4, the FPM calculates the congestion window size of each SCTP data flow in the flow set according to the successful transmission income of each data flow: FPM_CWND (f i)=FPM_R(fi)×last_rtt(fi), wherein FPM_R (f i) is the output rate of the priority algorithm of f i, FPM_CWND (f i) is the congestion window size of the output of the priority algorithm of f i, L_R is the current total remaining allocation rate of the traffic set, the value is set as S_CR, and the calculated congestion window size of the output of the priority algorithm is allocated to the corresponding SCTP data flow in the traffic set.
As shown in fig. 4, when the congestion window size CWND of any SCTP data stream in the traffic set changes, the FPM may dynamically adjust the congestion window sizes of all data streams in the traffic set, and the method further includes:
Step C1, the priority control device sends the current CC_CWND (f a) and last_rtt (f a) of f a to the FPM;
Step C2, the FPM updates the locally saved last_rtt of f a (f a), and calculates the output rate cc_r of f a (f a): Then, querying the flow set to which f a belongs, and adjusting the current output total rate S_CR' of the flow set to which f a belongs: s_cr' =s_cr+cc_r (f a)-FPM_R(fa), where fpm_r (f a) is the last assigned priority algorithm output rate for FPM f a;
Step C3, the FPM updates the value of the current remaining allocation total rate l_r of the traffic set to which f a belongs to s_cr', and recalculates the congestion window size output by the priority algorithm of each SCTP data stream in the traffic set to which f a belongs: FPM_CWND (f j)=FPM_R(fj)×last_rtt(fj), wherein f j is the jth SCTP data stream of the traffic set to which f a belongs, and then the congestion window size output by the calculated priority algorithm is distributed to the corresponding SCTP data stream of the traffic set to which f a belongs.
The foregoing description of the preferred embodiments of the invention is not intended to be limiting, but rather to enable any modification, equivalent replacement, improvement or the like to be made within the spirit and principles of the invention.