Nothing Special   »   [go: up one dir, main page]

CN102769603B - The method of a kind of data transmission, system and equipment - Google Patents

The method of a kind of data transmission, system and equipment Download PDF

Info

Publication number
CN102769603B
CN102769603B CN201110113191.9A CN201110113191A CN102769603B CN 102769603 B CN102769603 B CN 102769603B CN 201110113191 A CN201110113191 A CN 201110113191A CN 102769603 B CN102769603 B CN 102769603B
Authority
CN
China
Prior art keywords
mobile terminal
distance
long connection
gateway
routing distance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110113191.9A
Other languages
Chinese (zh)
Other versions
CN102769603A (en
Inventor
王磊
陈阁
于蓉蓉
张炎
黄晓庆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201110113191.9A priority Critical patent/CN102769603B/en
Publication of CN102769603A publication Critical patent/CN102769603A/en
Application granted granted Critical
Publication of CN102769603B publication Critical patent/CN102769603B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Mobile Radio Communication Systems (AREA)

Abstract

The invention discloses the method for a kind of data transmission, system and equipment, adopt always online mechanism, gateway is set between mobile terminal and application server, set up the first length between mobile terminal with gateway to be connected, set up the second length between gateway with each application server respectively to be connected, make be connected respectively through long with the first of gateway and second long connect the high real-time realizing data interaction between mobile terminal and application server, reduce mobile terminal and be that length is connected the resource distributed with server。Additionally; for the first long connection; will be greater than the distance through core net fire wall, less than arrive cordless communication network distance as the life span of heartbeat data packets, send this heartbeat data packets to mobile terminal; heartbeat data packets is enable to pass core net fire wall on the one hand; reaching the first long keep-alive purpose connected, on the other hand, heartbeat data packets is not introduced into cordless communication network; the burden of cordless communication network will not be increased, without taking wireless channel。

Description

Data transmission method, system and equipment
Technical Field
The present invention relates to the field of communications, and in particular, to a method, a system, and a device for data transmission.
Background
In the current mobile data service execution process, data interaction between the mobile terminal side and the application server side has a Pull mode and a Push mode.
The Pull mode refers to: when an application program installed in the mobile terminal needs to acquire service data from a corresponding application server, the mobile terminal actively establishes connection with the server, performs data access on the server, and acquires corresponding service data. The Pull mode is a mode in which the mobile terminal actively acquires data from the server, and is only suitable for a data service interaction process with low real-time requirements, because if data to be pushed to the mobile terminal exists in the server but the mobile terminal is not connected with the server in time, a problem of untimely data pushing is caused, and if the Pull mode is applied to a data service interaction process with high real-time requirements, such as data service interaction of mails, instant messaging and the like, data delay occurs.
The Push mode is as follows: the server actively pushes the service data to the mobile terminal, and the Push mode can Push the service data to the mobile terminal in real time, so that the real-time effect of pushing the service data is better. There are various implementation schemes of the Push mode, including: a short message Push mode (smspump), a multimedia message Push mode (mmspump), a wireless application Push mode (wappuse), an internet Push mode (IPPush), and an internet short message Push mode (emppump).
The specific contents of the implementation schemes of the Push modes are as follows:
smspouh and mmspouh refer to: the server pushes the service data to the mobile terminal in a short message or multimedia message mode, and the user can directly check the service data in the short message or multimedia message through the mobile terminal. In the schemes of the smsuse and the mmuse, a short message or a multimedia message pushed to a mobile terminal by a server is affected by high and low network quality, and when the network quality is low, the transmission of the short message and the multimedia message is delayed, so that the real-time effect of pushing service data is affected; the service data carried in the short message and the multimedia message is in a plaintext form, and hidden danger also exists in the safety of the service data; in addition, the user can only read the service data through the mobile terminal, but can not realize the information interaction with the server through modes such as short message reply and the like, and only the mobile terminal with the software and hardware capability supporting the multimedia message can support the MMSPush, so that the requirement on the hardware capability of the mobile terminal is higher, and the mobile terminal is limited.
WAPPush refers to: the server pushes information containing the link to the mobile terminal, and the mobile terminal accesses and acquires corresponding service data through a Uniform Resource Locator (URL) in the information. In the wap push scheme, two operations including the server sending a link to the mobile terminal and the mobile terminal accessing the service data through the link are included (the operation that the mobile terminal accesses the service data through the link is actually a Pull operation), which has a bad influence on the real-time performance of the service data push.
EMNPush refers to: when the server needs to push service data to a mail program in a dormant state in the mobile terminal, a special awakening short message is sent to the mobile terminal, so that the mail program is converted from the dormant state to a starting state, and after the mail program is started, long connection is established with the mail server to acquire the service data. In the EMNPush scheme, the mobile terminal does not disconnect the long connection after acquiring the service data from the mail server, but the mail server is disconnected when there is no transmission of the service data for a period of time, and there is no transmission of the service data between the mobile terminal and the mail server within the waiting time of the mail server, but the long connection between the mobile terminal and the mail server still exists, resulting in high system resource overhead of the mobile terminal.
IPPush refers to: aiming at an application program in a mobile terminal, an application server providing service data for the application program keeps an IP long connection with the mobile terminal, and due to the existence of the long connection, the application server can push the service data to the application program in the mobile terminal in real time, so that the time delay problems of SMSPush, MMSPush and WAPPush, the potential safety hazards of the SMSPush and MMSPush and the interaction between the mobile terminal and the server are solved.
However, in the IPPush scheme, if the application program is not running or the application program does not need to perform data interaction with the application server, the long IP connection between the mobile terminal and the application server still exists continuously, which increases the resource overhead of the mobile terminal and causes large power consumption of the mobile terminal; in order to solve the resource expense brought by the long IP connection, the IPpush scheme is changed, the long IP connection is required to be connected when the application program runs, and is disconnected when the application program does not run, and the change can cause the long IP connection to be frequently connected and disconnected, and can still increase the system resource expense of the mobile terminal.
Meanwhile, for the application server, the number of the oriented mobile terminals is large, and if the application server establishes a long connection with a corresponding application program in each mobile terminal, the resource overhead of the application server is also very large.
The IPPush scheme is for an application installed in a mobile terminal, a large number of applications are installed in most of current intelligent mobile terminals, and if the IPPush scheme is executed for all applications in the mobile terminal, that is, when a plurality of applications are installed in one mobile terminal, the mobile terminal needs to establish long connections with a plurality of application servers respectively, and the mobile terminal needs to allocate a large amount of system resources for the long connections, which results in too large system overhead of the mobile terminal and even influences normal operation of other services of the mobile terminal.
In addition, if a long connection between the mobile terminal and the application server is to be kept in a connected state all the time, the application server needs to periodically send a keep-alive message to a core network firewall through which the long connection passes, so as to inform the firewall that the long connection is always valid, and the long connection must not be disconnected.
The purpose of sending heartbeat data packets by the application server is to keep alive the long connection and maintain the service state of the long connection, so that the data volume of the heartbeat data packets is relatively small, but the sending frequency is relatively high. The heartbeat data packet is generally only dozens of bytes, and includes the mobile terminal identifier of the receiver of the heartbeat data packet, the application program identifier installed in the mobile terminal interacting with the application server, the heartbeat serial number and other contents. The frequency of sending heartbeat data packets is different according to different services, and taking instant messaging service as an example, the frequency of sending heartbeat data packets to the mobile terminal by the application server can reach 30 seconds per mobile terminal.
During the transmission of the heartbeat data packet from the application server to the mobile terminal, the heartbeat data packet needs to go through an internet network, a core network and a wireless communication network, as shown in fig. 1. Because the data volume of the heartbeat data packets is relatively small, even if a large number of heartbeat data packets are transmitted in the internet network and the core network, the heartbeat data packets do not obviously affect the internet network and the core network. However, when the heartbeat data packet is transmitted in the wireless communication network, a channel needs to be allocated for transmission of the heartbeat data packet, and a large amount of signaling needs to be used in the channel allocation process, so that when the heartbeat data packet is transmitted in the wireless communication network, a large amount of wireless channel resources (the used signaling occupies a control channel, and the transmission heartbeat data packet occupies a service channel) are occupied, and if the heartbeat data packet is frequently transmitted in the wireless communication network, the network load is increased, and the performance of the wireless network is reduced; in addition, even if a transmission channel is allocated to the heartbeat data packet, because the data volume of the heartbeat data packet is small, the channel resource cannot be fully utilized, so that the channel is idle, and the use efficiency of the wireless channel is reduced.
In summary, in the transmission process of the heartbeat data packet at present, the transmission of the heartbeat data packet in the wireless communication network also has the problems of increasing network load and low wireless channel use efficiency.
Disclosure of Invention
Embodiments of the present invention provide a method, a system, and a device for data transmission, so as to solve the problems in the prior art that an amount of occupied resources of a mobile terminal or an application server is too large to ensure real-time data transmission between the mobile terminal and the application server, and that transmission of heartbeat data packets in a wireless communication network increases network load and causes low wireless channel utilization efficiency.
A method of data transmission, the method comprising:
the gateway receives an uplink data message from the mobile terminal through a first long connection established between the gateway and the mobile terminal, wherein the uplink data message carries an identifier of an application server, and the first long connection transmits the uplink data message generated by any application program in the mobile terminal;
when determining that a second long connection is established between the application servers corresponding to the identifiers of the application servers, the gateway sends the uplink data message to the application servers through the second long connection;
and aiming at the first long connection, sending the heartbeat data packet to the mobile terminal by taking a set routing distance as the survival time of the heartbeat data packet, wherein the routing distance is greater than the distance of the heartbeat data packet passing through the firewall of the core network but less than the distance of the heartbeat data packet reaching the wireless communication network where the mobile terminal is located.
A method of data transmission, the method comprising:
the gateway receives a downlink data message from an application server through a second long connection established between the gateway and the application server, wherein the downlink data message carries a first identifier used when the mobile terminal is registered in the application server, and the second long connection transmits the downlink data message sent to any terminal by the application server;
the gateway sends the downlink data message to the mobile terminal through a first long connection between the mobile terminals corresponding to the first identification;
and aiming at the first long connection, sending the heartbeat data packet to the mobile terminal by taking a set routing distance as the survival time of the heartbeat data packet, wherein the routing distance is greater than the distance of the heartbeat data packet passing through the firewall of the core network but less than the distance of the heartbeat data packet reaching the wireless communication network where the mobile terminal is located.
A system for data transmission comprising a mobile terminal, a gateway, an application server and a keep-alive device, wherein:
the mobile terminal is used for establishing a first long connection with the gateway and sending an uplink data message to the gateway through the first long connection, wherein the uplink data message carries an identifier of an application server, and the first long connection transmits the uplink data message generated by any application program in the mobile terminal;
the gateway is used for sending the uplink data message to the application server through a second long connection when the second long connection is established between the application servers corresponding to the identifiers of the application servers;
the application server is used for receiving the uplink data message through the second long connection;
and the keep-alive device is used for sending the heartbeat data packet to the mobile terminal by taking the set routing distance as the survival time of the heartbeat data packet aiming at the first long connection, wherein the routing distance is greater than the distance of the heartbeat data packet passing through the core network firewall but less than the distance of the heartbeat data packet reaching the wireless communication network where the mobile terminal is located.
A system for data transmission, the system comprising a mobile terminal, a gateway, an application server and a keep-alive device, wherein:
the application server is used for establishing a second long connection with the gateway and sending a downlink data message to the gateway through the second long connection, wherein the downlink data message carries a first identifier used when the mobile terminal is registered in the application server, and the second long connection transmits the downlink data message sent to any terminal by the application server;
the gateway is used for sending the downlink data message to the mobile terminal through first long connection between the mobile terminals corresponding to the first identification;
the mobile terminal is used for receiving the downlink data message through the first long connection;
and the keep-alive device is used for sending the heartbeat data packet to the mobile terminal by taking the set routing distance as the survival time of the heartbeat data packet aiming at the first long connection, wherein the routing distance is greater than the distance of the heartbeat data packet passing through the core network firewall but less than the distance of the heartbeat data packet reaching the wireless communication network where the mobile terminal is located.
A gateway, the gateway comprising:
the first connection module is used for establishing a first long connection with the mobile terminal and establishing a second long connection with the application server, wherein the first long connection transmits an uplink data message generated by any application program in the mobile terminal, and the second long connection transmits a downlink data message sent to any terminal by the application server;
and the transmission module is used for transmitting the uplink data message to the corresponding application server through the second long connection according to the identification of the application server carried in the uplink data message when receiving the uplink data message transmitted by the mobile terminal through the first long connection in the uplink transmission process, and transmitting the downlink data message to the corresponding mobile terminal through the first long connection according to the first identification of the mobile terminal carried in the downlink data message when receiving the downlink data message transmitted by the application server through the second long connection in the downlink transmission process.
A mobile terminal, the mobile terminal comprising:
the interface module is used for establishing a first long connection with the gateway, and the first long connection transmits uplink data messages generated by any application program in the mobile terminal;
and the data receiving and sending module is used for sending an uplink data message to the gateway through the first long connection, wherein the uplink data message carries the identifier of the application server, and receiving a downlink data message pushed by the gateway through the first long connection.
An application server, the application server comprising:
the interface module is used for establishing a second long connection with the gateway, and the second long connection transmits a downlink data message sent to any terminal by the application server;
and the data receiving and sending module is used for receiving the uplink data message sent by the gateway through the second long connection and sending the downlink data message to the gateway through the second long connection, wherein the downlink data message carries a first identifier used when the mobile terminal is registered in the application server.
A keep-alive device, characterized in that the keep-alive device comprises:
the distance detection module is used for taking a set routing distance as the survival time of the heartbeat data packet, wherein the routing distance is greater than the distance of the heartbeat data packet passing through the firewall of the core network but less than the distance of the heartbeat data packet reaching the wireless communication network where the mobile terminal is located;
and the data packet sending module is used for sending the heartbeat data packet to the mobile terminal according to the survival time.
The invention has the following beneficial effects:
the embodiment of the invention provides a new data transmission scheme, which adopts an always on line (AOI) mechanism, a gateway is arranged between a mobile terminal and an application server, a long connection is established between the mobile terminal and the gateway, the gateway and each application server are respectively established with one long connection, in the uplink process, uplink data messages sent by any application program in the mobile terminal are transmitted in the uplink through one long connection with the gateway, and in the downlink process, downlink data messages sent to any mobile terminal by the application server are also transmitted in the downlink through one long connection with the gateway. Therefore, the mobile terminal and the application server respectively realize high real-time performance of data interaction through the first long connection and the second long connection with the gateway, meanwhile, the mobile terminal only needs to allocate resources for one long connection with the gateway, and the application server only needs to allocate resources for one long connection with the gateway, so that the resource occupation between the mobile terminal and the application server is reduced. Meanwhile, aiming at the first long connection, the distance which is greater than the distance that the heartbeat data packet passes through the core network firewall and is less than the distance that the heartbeat data packet reaches the wireless communication network where the mobile terminal is located is used as the survival time of the heartbeat data packet, and the heartbeat data packet is sent to the mobile terminal.
Drawings
FIG. 1 is a diagram illustrating a heartbeat packet transmission through a network in the prior art;
fig. 2 is a schematic diagram illustrating steps of a method for performing uplink data transmission according to a first embodiment of the present invention;
fig. 3 is a schematic diagram illustrating steps of a method for registering and establishing a first long connection in a gateway by a mobile terminal according to a first embodiment of the present invention;
fig. 4 is a schematic diagram illustrating a method for transmitting heartbeat packets for a first long connection according to a first embodiment of the present invention;
fig. 5 is a schematic diagram illustrating a method for transmitting heartbeat packets for a first long connection according to a first embodiment of the present invention;
fig. 6 is a schematic diagram illustrating a method of performing downlink data transmission according to a third embodiment of the present invention;
fig. 7 is a schematic structural diagram of a system for data transmission according to a fourth embodiment of the present invention;
fig. 8 is a schematic structural diagram of a gateway in a sixth embodiment of the present invention;
fig. 9 is a schematic structural diagram of a mobile terminal according to a seventh embodiment of the present invention;
fig. 10 is a schematic structural diagram of an application server in an eighth embodiment of the present invention;
FIG. 11 is a schematic structural diagram of a nine keep-alive device according to an embodiment of the present invention;
FIG. 12 is a schematic structural diagram of a nine keep-alive device according to an embodiment of the present invention;
fig. 13 is a schematic structural diagram of a system including subsystems in a gateway according to an embodiment of the present invention.
Detailed Description
In order to reduce the resources occupied by a mobile terminal in establishing long connections between a large number of applications installed locally and a large number of application servers, meanwhile, the data transmission with high real-time performance between the mobile terminal and the application server in the IPpush scheme is obtained, the embodiment of the invention provides a new data transmission scheme, an always on line (AOI) mechanism is adopted, a gateway is arranged between the mobile terminal and the application server, a long connection is established between the mobile terminal and the gateway, a long connection is respectively established between the gateway and each application server, in the uplink process, uplink data messages sent by any application program in the mobile terminal are transmitted in an uplink mode through a long connection between the mobile terminal and the gateway, in the downlink process, the downlink data message sent to any mobile terminal by the application server is also transmitted in downlink through a long connection with the gateway. For the mobile terminal side, no matter how many application programs are installed in the mobile terminal, the mobile terminal can receive data in high real-time by only allocating resources for one long connection between the mobile terminal and the gateway; for the application server side, no matter the number of mobile terminals served by the application server, the application server only needs to allocate resources for a long connection with the gateway to push data to the mobile terminals in real time. That is to say, according to the scheme of the embodiment of the invention, in the data transmission process, the resource occupation between the mobile terminal and the application server is reduced, and the high real-time data transmission between the mobile terminal and the application server is ensured.
Meanwhile, before the heartbeat data packet is transmitted for the first long connection, the survival time of enabling the data packet to pass through the core network firewall but not enter the wireless communication network where the mobile terminal is located is determined through monitoring the transmission process of the test data packet, and when the heartbeat data packet is transmitted every time, the transmission is carried out according to the survival time, so that the heartbeat data packet can pass through the core network firewall on one hand, the purpose of keeping the first long connection between the mobile terminal and the gateway alive is achieved, and on the other hand, the heartbeat data packet does not enter the wireless communication network, the burden of the wireless communication network cannot be increased, and a wireless channel cannot be occupied.
The gateway involved in each embodiment of the present invention is an always on network gateway (AOG) under the AOI mechanism, and the AOG can provide a uniform access point for long connection applications based on the mobile internet, on one hand, the AOG is used as a channel for data transmission and synchronization between the mobile terminal and the network side, and on the other hand, the AOG is used as a channel for data transmission and synchronization between the application server and the mobile terminal side.
The mobile terminal in the embodiments of the present invention refers to a mobile terminal under the AOI mechanism, that is, the mobile terminal has the functions of orderly managing each application installed in the mobile terminal and managing long connection with a gateway. The mobile terminal under the AOI mechanism may be a mobile terminal installed with AOI middleware having the above-described function.
The application server in the embodiments of the present invention refers to a network server that performs service data interaction with an application program installed in a mobile terminal. Such as: if the instant messaging application program is installed in the mobile terminal, in order to ensure the normal operation of the instant messaging service, the instant messaging application program needs to perform effective service data interaction with the instant messaging server.
The long connection established in each embodiment of the present invention refers to a connection mode in which a plurality of data packets can be continuously sent over one connection, and during the connection maintenance period, if no data packet is sent, both sides need to send a link keep-alive packet, such as a long connection for a Socket (Socket).
The first long connection between the terminal and the gateway may be configured to perform uplink transmission for an uplink data message generated by any application in the mobile terminal, and to receive a downlink data message sent to any application in the terminal.
The second long connection between the application server and the gateway may be configured to receive, for the application server, the uplink data message sent by any terminal, and transmit the uplink data message sent by the application server to any terminal.
The heartbeat data packet related in each embodiment of the present invention refers to: and carrying out keep-alive data packet on a certain long connection appointed by the heartbeat data packet.
The core network firewall related in each embodiment of the present invention refers to: the first long connection between the mobile terminal and the gateway passes through the firewall at the Internet network boundary, the firewall monitors whether the long connection needs to be released, and if the firewall does not receive heartbeat data packets aiming at the long connection within the period time, the firewall indicates that no data of the long connection needs to be transmitted and released; and if the heartbeat data packet aiming at the long connection is received, continuously maintaining the long connection.
The routing distance involved in the embodiments of the present invention refers to: the number of routing hops for the packet.
The survival time of the heartbeat data packet in each embodiment of the invention is as follows: and the routing hop count of the heartbeat data packet in the transmission process.
The embodiments of the present invention will be described in detail below with reference to the accompanying drawings.
The first embodiment is as follows:
as shown in fig. 2, a schematic step diagram of a method for performing uplink (MO) data transmission in an embodiment of the present invention includes the following steps:
step 101: and the mobile terminal sends the uplink data message to the gateway through the first long connection established between the mobile terminal and the gateway.
The uplink data message carries an identifier of the application server, and indicates that a destination receiver of the uplink data message is the application server corresponding to the identifier of the application server. For example, after a mail application installed in the mobile terminal generates an uplink data message to be sent to the mail server, the mobile terminal carries an identifier of the mail server in the uplink data message, and sends the uplink data message to the gateway through the first long connection with the gateway. It should be noted that, no matter what kind of application installed in the mobile terminal generates the uplink data message, the mobile terminal sends the uplink data message to the gateway through the first long connection.
A group of keys can be commonly maintained between the mobile terminal and the gateway, when the mobile terminal sends the uplink data message to the gateway, the key can be used for encrypting the uplink data message, and meanwhile, the mobile terminal can also use a transport layer protocol (TLS) to encrypt the transmission process of the uplink data message.
Step 102: and the gateway determines the corresponding application server according to the received identification of the application server.
The gateway may decrypt the received uplink data message based on a key maintained in conjunction with the mobile terminal.
Step 103: and when determining that a second long connection is established between the gateway and the application server, sending the uplink data message to the application server through the second long connection.
The gateway may establish second long connections with multiple application servers, so that when sending an uplink data message to an application server, the gateway first checks whether an available second long connection exists between the gateway and the application server, and when an available second long connection exists, the gateway sends the uplink data message to the application server through the second long connection.
When the gateway sends the uplink data message to the application server, the gateway can also encrypt the uplink data message, and the application server decrypts the received uplink data message.
In addition, since the transmission resources occupied by the uplink data message can be reduced by compressing the data content in the uplink data message, the data amount transmitted on the wireless network is reduced, the network bandwidth is saved, and the network delay is reduced, therefore, when the uplink data message is transmitted through the first long connection and the second long connection, the uplink data message can be transmitted after being compressed by adopting a reasonable compression algorithm according to the different resources (audio data, video data, text data, and the like) of the data content, and the device (such as a gateway and an application server) receiving the compressed uplink data message can perform decompression operation.
In addition, because the number of mobile terminals facing the gateway is large, when a plurality of mobile terminals simultaneously send uplink data messages to the gateway or the same mobile terminal sends a plurality of uplink data messages for different applications, if the capability of the gateway is not enough to simultaneously process all the uplink data messages, the uplink data messages need to be processed sequentially after being sorted. In the solution of this embodiment, the gateway performs the sorting in the following two ways:
the first sorting mode: and the gateways are sequenced according to the priority levels of the services. Because each uplink data message carries the identifier of the application server, the service corresponding to the uplink data message can be determined, and therefore, the gateway can sort the uplink data messages according to the service priority and preferentially process the uplink data messages with high service priority. For example: the priority corresponding to the service with high real-time requirement is higher, and the priority corresponding to the service with low real-time requirement is lower.
The second sorting mode: and the gateways are sequenced according to the priority levels of the mobile terminals. The gateway can set the priority level of the mobile terminal according to the wireless network environment in which the mobile terminal is currently located. The mobile terminal with the better wireless network environment has higher corresponding priority, and for the mobile terminal with the poorer wireless network environment, the corresponding priority can be lower in order to avoid the condition that the wireless network environment is worse due to the fact that the uplink data message is sent.
Through the technical solutions described in the above steps 101 to 103, the gateway becomes an intermediary in the real-time transmission process between the mobile terminal and the application server, so that the mobile terminal does not need to face a large number of application servers on the network side, but only needs to face one gateway for uplink transmission, and meanwhile, the application server does not need to face a large number of mobile terminals, but only needs to face one gateway for receiving uplink data messages, which can effectively reduce the resource overhead allocated by the mobile terminal and the application server for long connection.
Specific implementation of the above steps 101 to 103 will be described in detail below.
Before the uplink transmission process in this embodiment is executed, the mobile terminal needs to manage each locally installed application program, so before step 101, an internal management process of the mobile terminal is further provided, which specifically includes:
firstly, the mobile terminal records the identification of the locally installed application program, and collects the state information of each application program in real time, including the information that the application program is in a running state, a dormant state or an exiting state.
Then, the mobile terminal also records the identifier of the application server corresponding to each application program, and is used for determining the destination receiver of the uplink data message in the uplink transmission process.
And finally, after the mobile terminal finishes recording various information of the locally installed application programs, monitoring whether the application programs need to perform uplink data interaction in real time, and after any application program generates an uplink data message, carrying the identifier of the application server corresponding to the application program in the generated uplink data message by the mobile terminal, and then executing the step 101.
Through the management of the locally installed application program by the mobile terminal, the operation of each local application program can be effectively managed, and the problems of disordered operation of the application program and even process conflict are avoided.
Specifically, locally at the mobile terminal, an AOI middleware is provided in the mobile terminal, and is used for performing functions such as ordered management of each application program and long connection management between the application program and the gateway, and the application program locally installed at the mobile terminal can be directly connected to the AOI middleware in a Socket long connection mode in an operating state, and provides an uplink data message to be transmitted to the AOI middleware, and requires the AOI middleware to perform real-time transmission through a first long connection.
When the mobile terminal has finished managing the local application, the first long connection may be registered and connected in the gateway before step 101. The specific process of registering the mobile terminal in the gateway and establishing the first long connection is shown in fig. 3, and includes the following steps:
step 201: the mobile terminal initiates a gateway query request to a Domain Name System (DNS), wherein the gateway query request carries a first identifier and a second identifier of the mobile terminal.
The first identifier and the second identifier of the mobile terminal are both identifiers capable of uniquely representing the mobile terminal, except that the first identifier of the mobile terminal is an identifier used when the mobile terminal is registered in the application server, and the second identifier is an identifier registered in the gateway by the mobile terminal.
For example, if the mobile terminal is a mobile phone, the first identifier is a mobile phone number, and the second identifier is an International Mobile Subscriber Identity (IMSI). At this time, when the mobile terminal initiates a gateway query request to the DNS in a short message manner, the DNS may obtain the second identifier (IMSI) of the mobile terminal from the information carried in the short message, and determine the first identifier (mobile phone number) of the mobile terminal through the source information of the short message.
Step 202: the DNS stores a first identifier and a second identifier of the mobile terminal.
Step 203: the DNS returns the routing information of the home gateway of the mobile terminal to the mobile terminal.
In the solution of this embodiment, a plurality of gateways may be deployed in one network system, and each gateway provides services for mobile terminals in a certain area. For example, one gateway is deployed in each province in the country to provide field connection service for mobile terminals in the province. The routing information of each gateway and the coverage of each gateway service can be stored in a DNS manually, when the DNS receives a gateway query request initiated by a mobile terminal, the home location of the mobile terminal is determined according to the identification (the first identification and the second identification) of the mobile terminal, the coverage of each gateway service is further queried, and the home gateway is selected for the mobile terminal.
The routing information of the home gateway returned by the DNS to the mobile terminal includes, but is not limited to, the IP address of the gateway.
Step 204: and the mobile terminal initiates a registration request to the home gateway according to the received routing information of the home gateway, and the registration request carries a second identifier.
The registration request may also simultaneously carry an identifier of an application installed in the mobile terminal.
Step 205: the gateway registers for the mobile terminal.
The gateway locally stores the registration information of the mobile terminal (including the registration time, the second identifier and the like of the mobile terminal) and the identifier of the application program managed by the mobile terminal, completes the registration of the mobile terminal and returns a registration success message to the mobile terminal.
In this step, after the mobile terminal registers in the gateway, the gateway needs to manage the registered mobile terminal, which includes the following two aspects of management:
in a first aspect: and managing the mobile terminal information, such as managing hardware information of a second identifier, a version number, an operating system, a manufacturer, a model, a screen size and the like of the mobile terminal.
In a second aspect: and managing the services of the mobile terminal, such as managing the information of the service types, service names and the like supported by the mobile terminal.
Step 206: the mobile terminal establishes a first long connection with the gateway.
Thereafter, when any application program in the mobile terminal initiates the uplink data message, the mobile terminal sends the uplink data message to the attributive gateway through the first long connection.
After receiving the uplink data message from the mobile terminal, the gateway performs step 103 to send the uplink data message to the application server. However, since the application server provides services for a large number of mobile terminals in parallel, the mobile terminal carries the second identifier in the uplink data message, and it is desirable that the application server be able to know the mobile terminal that sent the uplink data message. However, the first identifier is used when the mobile terminal is registered in the application server, and the second identifier is used when the mobile terminal is registered in the gateway, so that if the gateway directly carries the second identifier in an uplink data message to send to the application server, the application server may not be able to identify.
Considering that a plurality of gateways are deployed in a network system, an uplink data message sent by a mobile terminal to a gateway to which the mobile terminal belongs can be transmitted according to a first long connection between the mobile terminal and the home gateway, but an application server at a destination of the uplink data message transmission does not necessarily establish a second long connection with the gateway to which the mobile terminal belongs, so when the second long connection is required to be established between the gateway and each application server, a first corresponding relationship between the gateway and the application server respectively establishing the second long connection with the gateway is stored in a DNS so as to query the gateway to which the application server belongs.
In step 103 of this embodiment, the following two situations exist in the process of sending the uplink transmission message to the application server by the gateway:
in the first case: the gateway determines, by querying the long connection port, that the application server corresponding to the identifier of the application server in the uplink data message establishes a second long connection, that is, both the source end (mobile terminal) and the destination end (application server) of the uplink data message establish a long connection with the same gateway, and the uplink data message can be directly transmitted.
In the second case: the gateway determines that no second long connection is established with the application server corresponding to the identifier of the application server in the uplink data message, that is, the gateway is not the gateway to which the application server belongs, queries the DNS, finds out other gateways to which the application server belongs (for distinguishing from the gateway that receives the uplink data message sent by the mobile terminal, the gateway to which the application server belongs is referred to as other gateways), and sends the uplink data message to the other gateways, and then the other gateways send the uplink data message to the application server through the second long connection because the other gateways are the gateway to which the destination application server belongs and have the second long connection with the application server.
In addition, after step 103, the gateway may also record the log information of the current uplink data transmission process and generate a ticket. The ticket generated here is not the same as a regular ticket because: in the uplink transmission process of the mobile terminal, the scheme of the first embodiment of the invention can be used, and other existing schemes can also be used, so as to reduce the change of the conventional call ticket generation mode at present.
In the solution of the first embodiment, in order to keep alive the first long connection between the mobile terminal and the gateway in real time (that is, a heartbeat packet for the first long connection continuously passes through the firewall of the core network within a period duration), and at the same time, not increase the resource overhead of the wireless communication network, the lifetime of the heartbeat packet is set to be longer than the distance passing through the firewall of the core network but shorter than the distance reaching the wireless communication network where the mobile terminal is located, on one hand, the heartbeat packet can pass through the firewall of the core network to achieve the purpose of keeping alive the first long connection between the mobile terminal and the gateway, and on the other hand, the heartbeat packet does not enter the wireless communication network, and does not increase the burden of the wireless communication network and does not occupy a wireless channel.
In this embodiment, a schematic step diagram of a method for transmitting a heartbeat data packet for a first long connection is shown in fig. 4, where the method includes the following steps:
step 301: and aiming at the first long connection, detecting the related information of the mobile terminal at one end of the first long connection.
In this step, it is first determined for which long connection the heartbeat data packet is transmitted, and then the mobile terminal that receives the heartbeat data packet is determined. Specifically, a Transmission Control Protocol (TCP) data connection may be established between a service server and a terminal in the mobile internet, so as to obtain relevant information of the mobile terminal, such as five-tuple information including a source IP address, a source port, a destination IP address, a destination port, and a transport layer protocol number when the mobile terminal performs a network connection. The source port is a port number of the mobile terminal, and related information of the mobile terminal can also be acquired by a User Datagram Protocol (UDP).
Step 302: and determining the routing distance of the heartbeat data packet in one-hop routing after passing through the firewall of the core network and before reaching the wireless communication network where the mobile terminal is located.
Step 303: and according to the period requirement of the firewall of the core network, grouping the determined routing distance into a heartbeat data packet for the survival time.
In the solutions of steps 301 to 303, a reasonable routing distance, that is, a routing hop count of the heartbeat data packet, is calculated, and the routing hop count is used as a survival time stored in a TTL field of an IP data packet in the heartbeat data packet, so that the heartbeat data packet can pass through a firewall of a core network to enter the core network provided by an operator during routing transmission to achieve the purpose of keeping alive for the first long connection, and is terminated at a one-hop router before entering a wireless communication network where the mobile terminal is located, thereby avoiding a burden of the heartbeat data packet on the wireless communication network.
The specific implementation process of the above steps 301 to 303 is shown in fig. 5, and includes the following steps:
step 401: and determining a first routing distance generated when the test data packet is routed to the mobile terminal according to the test data packet sent to the mobile terminal.
The purpose of the invention is to ensure that the heartbeat data packet can not enter a wireless communication network but can not pass through a core network firewall, therefore, a first routing distance when the heartbeat data packet enters the wireless communication network and reaches a mobile terminal needs to be determined, and then a proper second routing distance can be determined according to the first routing distance, so as to achieve the purpose of the invention.
Step 402: and determining a second routing distance generated when the test data packet passes through a core network firewall and reaches a one-hop route before the wireless communication network where the mobile terminal is located according to the first routing distance.
Because the first routing distance is a routing distance which can reach the mobile terminal, and the second routing distance does not reach the mobile terminal, the second routing distance is smaller than the first routing distance, but the second routing distance must be larger than the distance which passes through the firewall, therefore, the maximum upper limit of the second routing distance is the routing hop number of the first routing distance minus 1, and the lower limit of the value is the routing hop number generated when the second routing distance passes through the firewall of the core network. Preferably, the number of route hops of the first route distance is reduced by 1 to be used as the second route distance.
Step 403: and taking the second routing distance as the survival time of the heartbeat data packet, and sending the heartbeat data packet to the mobile terminal.
The second embodiment includes, but is not limited to, gradually increasing the routing distance to determine the first routing distance, gradually decreasing the routing distance to determine the first routing distance, and determining the first routing distance by a dichotomy method, which is described below:
1. determining a first routing distance by gradually increasing the routing distance:
the present embodiment further includes a TCP method and a UDP method, which are specifically described as follows:
(1) and TCP mode:
the first step is as follows: and setting the TCP head sequence number value of the test data packet as a value which is identified as an error by the mobile terminal.
The TCP protocol specifies that a data packet needs to carry a sequence number value allocated to the data packet, and after receiving the data packet, a data packet receiver can determine related information of the data packet (such as a source of the data packet and a destination of sending the data packet) according to the sequence number value carried in the data packet.
In this step, the test packet sent to the mobile terminal carries an erroneous sequence number, but does not carry the sequence number actually assigned to the packet. If the test data packet reaches the mobile terminal, the mobile terminal will recognize the sequence number carried in the test data packet as an incorrect sequence number, and further think that the test data packet is an illegal data packet, the mobile terminal will return a TCP message of Reset (RST) to inform the sender of the test data packet that the test data packet is incorrect. If the time to live is reached when the test data packet does not reach the mobile terminal, the mobile terminal will return a control message protocol (ICMP) message because the mobile terminal does not receive the test data packet within the specified time length, wherein the type of the carried error is overtime. The sender of the test packet determines whether the test packet reaches the mobile terminal based on whether an RST message or an ICMP message whose error type is time-out is returned.
The second step is that: the third routing distance is preset.
The third routing distance in this step may be initially set to 1 hop.
The third step: gradually increasing a preset third routing distance, and executing the following operations for the routing distance obtained after each increase:
taking the obtained routing distance as the survival time of the test data packet, and sending the test data packet to the mobile terminal;
if the TCP message of the RST is returned, taking the obtained routing distance as a first routing distance;
and if the error type carried by the returned control message protocol ICMP message is overtime, continuing to increase the routing distance.
In the third step, if the route hop count of the third route distance used this time is too small to make the test data packet reach the mobile terminal, the mobile terminal does not receive the test data packet within the specified time length and the error type carried in the returned ICMP message is overtime, which indicates that the third route distance is smaller than the route distance required when routing to the mobile terminal at this time, and therefore, the third route distance needs to be increased, and the increased third route distance is continuously used as the survival time of the test data packet to send the test data packet. When the error type carried by the ICMP is overtime under the condition of the last used third routing distance, but the RST message is received under the condition of the currently used third routing distance, it indicates that the currently used third routing distance just enables the test data packet to be routed to the mobile terminal, but the RST message is returned because the mobile terminal identifies that the serial number of the test data packet is wrong, at this time, the currently used third routing distance is equal to the routing distance required when the test data packet is routed to the mobile terminal, and then the current third routing distance is used as the first routing distance.
(2) And UDP mode:
the first step is as follows: and setting the destination port number carried in the test data packet as a user data packet UDP port number which can not be correctly received by the mobile terminal.
In this embodiment, the port number of the 4-byte destination in the UDP header of the test packet may be designed to be, for example, a random high-end port number, for example, any high-end port greater than 32768 is used, so that the mobile terminal cannot correctly receive the test packet, but as long as the lifetime of the test packet can enable the test packet to reach the destination port, the experienced routing distance is the same as the routing distance reaching the mobile terminal, and therefore, the first routing distance generated when the test packet is routed to the mobile terminal may also be calculated by using the port that cannot receive the test packet instead of the port of the mobile terminal.
The second step is that: the fourth routing distance is preset.
The third routing distance in this step may be initially set to 1 hop.
The third step: gradually increasing the fourth routing distance, and circularly executing the following operations for the routing distance obtained after each increase:
taking the obtained routing distance as the survival time of a test data packet, sending the test data packet to the mobile terminal, and detecting the returned ICMP message;
if the error type carried in the returned ICMP message is that the port is not reachable, taking the obtained route distance as a first route distance;
and if the error type carried in the returned ICMP message is overtime, continuing increasing the routing distance until the error type carried in the returned ICMP message is received and the port is unreachable.
In the third step, if the route hop count of the third route distance used this time is too small to enable the test data packet to reach the port corresponding to the destination port number, the error type carried in the ICMP message returned by the router where the test data packet finally reaches is overtime, which indicates that the fourth route distance is smaller than the route distance required when the test data packet is routed to the mobile terminal, and therefore, the fourth route distance needs to be increased, and the increased fourth route distance is continuously used as the survival time of the test data packet to send the test data packet. When the error type carried by the ICMP is overtime in the case of the fourth routing distance used last time, but the error type carried by the ICMP is port unreachable in the case of the fourth routing distance used this time, it indicates that the fourth routing distance used currently is just enough to route the test packet to the destination port, but the error type is returned to the port unreachable because the destination port cannot correctly receive the test packet.
2. Determining a first routing distance by gradually decreasing the routing distance:
the present embodiment further includes a TCP method and a UDP method, which are specifically described as follows:
(1) and TCP mode:
the first step is as follows: the long connection to be kept alive for sending heartbeat data packets is connected through the TCP with the determined five-tuple information.
The second step is that: a fifth routing distance is preset.
The fifth routing distance in this step may be set to be larger initially, so as to ensure that the test data packet sent for the first time can be correctly received by the mobile terminal, for example, the fifth routing distance is set to be 64 hops initially.
The third step: taking the obtained routing distance as the survival time of the test data packet, sending the test data packet to the mobile terminal through the TCP connection with the determined quintuple information, and judging whether a returned test response message is received or not;
if yes, continuing to reduce the routing distance;
otherwise, adding 1 to the obtained route distance as the first route distance.
In the third step, the survival time in the test data packet is continuously reduced, and if the fifth routing distance used this time is relatively large, the mobile terminal can correctly receive the test data packet, and the mobile terminal returns a test response message to indicate that the fifth routing distance needs to be continuously reduced. When the last used fifth routing distance enables the test data packet to reach the mobile terminal (that is, the test response message is received after the test data packet is sent last time), but the current used fifth routing distance does not enable the test data packet to reach the mobile terminal (the test response message is not received after the test data packet is sent this time), it indicates that the current used fifth routing distance can only reach the last hop outside the wireless communication network, and the last used fifth routing distance is a routing distance generated when the test data packet is routed to the mobile terminal, so the last used fifth routing distance is taken as the first routing distance. If the decrease of the routing distance is 1 hop each time, the fifth routing distance used this time may be added by 1 hop to be the first routing distance.
(2) And UDP mode:
the first step is as follows: and determining the mobile terminal for receiving the test data packet according to the IP address and the UDP port of the mobile terminal.
In this method, a mobile terminal is uniquely determined by the IP address and UDP port number of the mobile terminal, where the determined mobile terminal is the mobile terminal that needs to receive the test packet.
If the test data packet reaches the mobile terminal, the mobile terminal can correctly receive the test data packet and return a test response message; if the test data packet does not reach the mobile terminal, namely the test data packet is changed into 1 or 0 before the TTL of the test data packet before reaching the mobile terminal, and the mobile terminal does not receive the test data packet within the specified time length, the test response message which is not returned, namely the test data packet sent to the mobile terminal is overtime.
The second step is that: the sixth routing distance is preset.
The sixth routing distance in this step may be set to be larger initially, so as to ensure that the test data packet sent for the first time can be correctly received by the mobile terminal, for example, the sixth routing distance is set to be 64 hops initially.
The third step: gradually reducing a preset sixth routing distance, and executing the following operations for the routing distance obtained after each reduction:
taking the obtained routing distance as the survival time of the test data packet, sending the test data packet to the mobile terminal determined in the first step, and judging whether a test response message returned by the mobile terminal is received;
if yes, continuing to reduce the routing distance;
otherwise, adding 1 to the obtained route distance as the first route distance.
3. The dichotomy mode is as follows:
the dichotomy mode also includes a TCP mode and a UDP mode, and is specifically described as follows:
(1) and TCP mode:
the first step is as follows: the long connection to be kept alive for sending heartbeat data packets is connected through the TCP with the determined five-tuple information.
The second step is that: an upper limit routing distance and a lower limit routing distance are preset, and the upper limit routing distance is larger than the lower limit routing distance initially.
The third step: when the upper limit routing distance or the lower limit routing distance is updated every time, whether the upper limit routing distance is not smaller than the lower limit routing distance is judged, if yes, the following operations are executed until the upper limit routing distance is smaller than the lower limit routing distance:
the average value of the obtained upper limit routing distance and the obtained lower limit routing distance is rounded to obtain a seventh routing distance, the obtained seventh routing distance is used as the survival time of a test data packet, the test data packet is sent to the mobile terminal through the TCP connection determined in the first step, and whether a returned test response message is received or not is judged;
if so, subtracting 1 from the route hop count of the seventh route distance obtained this time to serve as the updated upper limit route distance;
otherwise, subtracting 1 from the route hop count of the seventh route distance obtained this time, and then taking the route hop count as the updated lower limit route distance.
For example, when the test packet is transmitted the nth time, TTL _ max is 64, TTL _ min is 0, TTL _ max is greater than TTL _ min, the number of route hops of the seventh routing distance is [ (TTL _ max + TTL _ min)/2] ═ 32, and the test packet N is transmitted with 32 hops as the lifetime.
If a test response message is returned for the test packet N, indicating that the mobile terminal can correctly receive the test packet at 32 hops, the current seventh routing distance 32-1 is 31, which is the updated TTL _ max, that is, TTL _ max is 31, and TTL _ min is 0. At this time, TTL _ max is still greater than TTL _ min, and the number of routing hops for which the seventh routing distance can be recalculated is [ (TTL _ max + TTL _ min)/2] ═ 15, and the test packet N +1 is sent with 15 hops as the lifetime, and so on.
If no test response message is returned for the test packet N, indicating that the mobile terminal cannot correctly receive the test packet at the time of 32 hops, the current seventh routing distance 32-1 is 31, which is the updated TTL _ min, i.e., TTL _ max is 64 and TTL _ min is 31. At this time, TTL _ max is still greater than TTL _ min, and the number of routing hops for which the seventh routing distance can be recalculated is [ (TTL _ max + TTL _ min)/2] ═ 47, and the test packet N +1 is sent with 47 hops as the lifetime, and so on.
The fourth step: and determining a seventh routing distance obtained when the upper limit routing distance is smaller than the lower limit routing distance.
The fifth step: when the seventh routing distance obtained in the fourth step is used as the survival time of the test data packet, if a test timeout message is received, adding 1 to the routing hop count of the seventh routing distance to obtain a first routing distance; and if the message with correct test is received, taking the route hop count of the seventh route distance as the first route distance.
(2) And UDP mode:
the first step is as follows: and determining the mobile terminal for receiving the test data packet according to the IP address and the UDP port of the mobile terminal.
The second step is that: an upper limit routing distance and a lower limit routing distance are preset, and the upper limit routing distance is larger than the lower limit routing distance initially.
The third step: when the upper limit routing distance or the lower limit routing distance is updated every time, whether the upper limit routing distance is not smaller than the lower limit routing distance is judged, if yes, the following operations are executed until the upper limit routing distance is smaller than the lower limit routing distance:
rounding the average value of the obtained upper limit routing distance and the obtained lower limit routing distance to obtain an eighth routing distance, taking the obtained eighth routing distance as the survival time of the test data packet, sending the test data packet to the mobile terminal determined in the first step, and judging whether a returned test response message is received or not;
if so, subtracting 1 from the route hop count of the eighth route distance obtained this time to serve as the updated upper limit route distance;
otherwise, subtracting 1 from the route hop count of the eighth route distance obtained this time, and then taking the route hop count as the updated lower limit route distance.
For example, when the test packet is transmitted the nth time, TTL _ max is 64, TTL _ min is 0, TTL _ max is greater than TTL _ min, the number of route hops of the eighth routing distance is [ (TTL _ max + TTL _ min)/2] ═ 32, and the test packet N is transmitted with 32 hops as the lifetime.
If a test response message is returned for the test packet N, indicating that the mobile terminal can correctly receive the test packet at 32 hops, the current eighth routing distance 32-1 is 31, which is the updated TTL _ max, that is, TTL _ max is 31, and TTL _ min is 0. At this time, TTL _ max is still greater than TTL _ min, and the number of routing hops for the eighth routing distance, which is [ (TTL _ max + TTL _ min)/2] ═ 15, can be recalculated, and the test packet N +1 is sent with 15 hops as the lifetime, and so on.
If no test response message is returned for the test packet N, indicating that the mobile terminal cannot correctly receive the test packet at 32 hops, the current eighth routing distance 32-1 is 31, which is the updated TTL _ min, i.e., TTL _ max is 64 and TTL _ min is 31. At this time, TTL _ max is still greater than TTL _ min, and the number of routing hops for the eighth routing distance, which is [ (TTL _ max + TTL _ min)/2] ═ 47, can be recalculated, and the test packet N +1 is sent with 47 hops as the lifetime, and so on.
The fourth step: and determining the eighth routing distance obtained when the upper limit routing distance is smaller than the lower limit routing distance.
The fifth step: when the eighth routing distance obtained in the fourth step is taken as the survival time of the test data packet, if the test timeout message is received, adding 1 to the routing hop count of the eighth routing distance to obtain the first routing distance; and if the message with correct test is received, taking the route hop count of the eighth route distance as the first route distance.
It should be noted that, in the foregoing various manners, packet loss of the test data packet may be caused by reasons such as network transmission quality of the test data packet during transmission, so that the mobile terminal cannot correctly receive the test data packet, therefore, when it is determined that the mobile terminal does not receive the test data packet after the test data packet is sent this time, the retransmission operation may be performed at the same routing distance this time, and when the retransmission number reaches the threshold value, the mobile terminal does not receive the test data packet yet, and the first routing distance is determined by using the routing distance used this time.
In addition, in order to ensure that the first routing distance is exactly the routing distance generated when routing to the mobile terminal, in any of the above-described manners, the routing distance is 1 hop for each increase or decrease.
Example two:
in the scheme of the first embodiment of the present invention, control signaling and data can be transmitted between the mobile terminal and the application server through the first long connection and the second long connection with the gateway, and particularly, if the data volume of the data to be transmitted is very large (such as a large number of attachments carried in a mail), when a large amount of data, the control signaling and a small amount of data are transmitted through one long connection at the same time, correct transmission of the control signaling may be affected.
The scheme of the second embodiment is as follows:
the first step is as follows: a first long connection is established between the mobile terminal and the home gateway, and a second long connection is established between the application server and the home gateway.
The second step is that: the mobile terminal transmits uplink data information through the first long connection in an uplink mode, and the gateway sends the uplink data information to the application server through the second long connection.
In the solution of the second embodiment, the manner of uplink transmission of the uplink data message from the mobile terminal to the application server is the same as that in the first embodiment.
The third step: the mobile terminal sends an agent request to the gateway, wherein the agent request carries the identification of the application server and the data volume of the data to be transmitted.
In the solution of the present embodiment, the gateway has the capability to support Proxy (Proxy) requests from the mobile terminal.
The fourth step: the gateway judges whether the data volume reaches a threshold value, if so, the fifth step is executed; otherwise, the mobile terminal is required to transmit the data to be transmitted through the first long connection.
The fifth step: the gateway judges whether a second long connection is established with the corresponding application server according to the identification of the application server carried in the proxy request:
if so, the gateway establishes temporary long connection with the mobile terminal and the corresponding application server respectively, receives the data to be transmitted from the mobile terminal through the temporary long connection with the mobile terminal, releases the temporary long connection with the mobile terminal after the transmission is finished, transmits the data to be transmitted to the application server through the temporary long connection with the application server, and releases the temporary long connection with the application server after the transmission is finished.
Otherwise, the gateway inquires other gateways establishing second long connection with the corresponding application server from the DNS, respectively establishes temporary long connection with the mobile terminal and the other gateways, receives the data to be transmitted from the mobile terminal through the temporary long connection with the mobile terminal, releases the temporary long connection with the mobile terminal after the transmission is finished, transparently transmits the data to be transmitted to the other gateways through the temporary long connection with the other gateways, and releases the temporary long connection with the other gateways after the transmission is finished.
Through the scheme of the second embodiment of the invention, the temporary long connection is established among the mobile terminal, the gateway and the application server aiming at the data with large data volume, the gateway transmits the data with large data volume sent by the mobile terminal to the application server or other gateways, and the protocol encapsulation and control of an AOP layer are not carried out on the data, at the moment, the gateway is equivalent to a transparent proxy between the mobile terminal and the application server, so that the influence of the transmission of the large data volume on the transmission of other control signaling is avoided, meanwhile, the temporary connection is released after the transmission is finished, and the resources of the mobile terminal and the application server are saved to the maximum extent. In addition, because the Proxy temporary long connection has no heartbeat detection, the gateway cannot receive the broken link message under some special conditions (such as power failure of the mobile terminal), and at the moment, the gateway maintains the temporary long connection with the mobile terminal all the time, so that the resource waste of the gateway is caused. The gateway may thus periodically do this for a temporary long connection with the mobile terminal, enabling detection of whether there is data transmission, and release the temporary long connection if there is no data transmission for a continuous period of time. The release procedure of the temporary long connection between the gateway and the application server is similar to that of a mobile terminal.
Example three:
the third embodiment of the present invention further provides a method for downlink data transmission, as shown in fig. 6, where the method includes the following steps:
step 601: and the application server sends downlink data messages to the gateway through a second long connection established between the application server and the gateway.
In the solution of this embodiment, a second long connection is established between each application server and the home gateway, and when the application server needs to push a downlink data message to any mobile terminal served by the application server, the downlink data message is sent to the gateway through the second long connection.
According to the descriptions of the first embodiment and the second embodiment, the identifier of the mobile terminal according to the present invention includes a first identifier used when the mobile terminal is registered in the application server and a second identifier used when the mobile terminal is registered in the gateway, so that the mobile terminal identifier stored in the application server is the first identifier (e.g., a mobile phone number) of the mobile terminal, and the application server carries the first identifier of the mobile terminal in a downlink data message for instructing the gateway to send the downlink data message to the corresponding mobile terminal.
Further, since the step is a process in which the application server actively pushes the downlink data message to the mobile terminal, at this time, the mobile terminal may establish a first long connection with the gateway, may receive the downlink data message in real time, or may not establish the first long connection with the gateway, and may not receive the downlink data message in real time; meanwhile, the application program in the mobile terminal that needs to receive the downlink data message may be in three states, i.e., running, sleeping or exiting, so that even if the mobile terminal receives the downlink data message, the application program in the sleeping or exiting state cannot receive and process the downlink data message in time. Therefore, the application server sets a flag bit in the downlink data message sent to the gateway, if the flag bit is 1, the real-time performance of the downlink data message is high, the application server expects the downlink data message to be received by a corresponding application program in time, and if the application program is in a dormant state or an exit state, the mobile terminal is required to wake up the application program; if the flag position is 0, it indicates that the real-time performance of the downlink data message is low, and if the application program is in a dormant or quit state, the mobile terminal may wait for the corresponding application program to run and then send the corresponding application program to the application program.
Step 602: and the gateway determines the corresponding mobile terminal according to the first identifier of the mobile terminal carried in the downlink data message.
Similarly to the first embodiment, the mobile terminal in this embodiment is also registered in the gateway, and the DNS stores the first identifier and the second identifier of the mobile terminal, and also stores a first corresponding relationship between the gateway and the application servers that respectively establish the second long connection with the gateway, and a second corresponding relationship between the second identifier and the home gateway identifier of the mobile terminal. The DNS can provide a friendly graphical interface for users and gateways to support adding, deleting, modifying and querying operations on stored information, and the stored information can be used in a timely effective manner.
And the gateway queries a corresponding second identifier from the DNS according to the received first identifier of the mobile terminal, and determines the corresponding mobile terminal according to the second identifier.
Step 603: and the gateway sends the downlink data message to the mobile terminal through the first long connection between the gateway and the mobile terminal.
Similar to the embodiment, the application server at the source end of the downlink data message and the mobile terminal at the destination end may belong to the same gateway or may belong to different gateways.
1. If the application server and the mobile terminal belong to the same gateway, the specific implementation manner of the step is as follows:
the gateway detects whether a first long connection is established with the mobile terminal;
and if so, sending the downlink data message to the mobile terminal through the established first long connection.
Otherwise, the mobile terminal is informed to establish the first long connection with the gateway, and after the first long connection is established, the downlink data message is sent to the mobile terminal.
It should be noted that, when the gateway detects that the first long connection with the mobile terminal is not established, the gateway may use a short message notification manner to request the mobile terminal to establish the first long connection with the gateway, so as to ensure the timely pushing of the downlink data message.
2. If the application server and the mobile terminal belong to different gateways, the specific implementation manner of the step is as follows:
since the gateway receiving the downlink data message is not the gateway to which the mobile terminal belongs, the first long connection is not established between the mobile terminal and the gateway. The gateway determines that a first long connection is not established with the mobile terminal of the destination end, queries a second identifier of the mobile terminal from the DNS, finds that the mobile terminal is not a locally registered mobile terminal, queries other gateways to which the mobile terminal of the destination end belongs (in order to distinguish the gateway receiving the downlink data message sent by the application server from the gateway to which the mobile terminal belongs, the gateway to which the mobile terminal belongs is called other gateways) according to a second corresponding relation stored in the DNS, sends the downlink data message to the other gateways, and then sends the other gateways to the mobile terminal.
In addition, in the execution process of step 603, if the gateway receives downlink data messages sent by multiple application servers or multiple downlink data messages sent by one application server, the gateway may send the downlink data messages in sequence after sorting according to the priority of the service or the priority of the mobile terminal in the real-time instance one.
Step 604: and after receiving the downlink data message, the mobile terminal determines an application program for receiving the downlink data message according to the application server identifier carried in the downlink data message.
In the solution of this embodiment, the mobile terminal manages the locally installed application programs in a real-time manner, and records the identifiers of the locally installed application programs and the identifiers of the application servers corresponding to the application programs.
Step 605: the mobile terminal inquires whether the application program is in the running state, and if so, the application program is informed to acquire the downlink data message; otherwise, the application program is awakened or started, and the awakened or started application program is informed to acquire the downlink data message.
If the application server indicates that the flag position 1 of the pushed downlink data message indicates that the application program of the mobile terminal is required to be awakened, after the gateway determines the mobile terminal as a destination end, the application program in the mobile terminal is awakened in the following two ways:
the first mode is as follows: when the mobile terminal and the gateway establish the first long connection, the gateway sends a wake-up data packet to the mobile terminal through the first long connection, namely an IPpush wake-up mode, and requires the mobile terminal to wake up an application program which needs to receive the downlink data message.
The second mode is as follows: the method comprises the steps that a first long connection is not established between a mobile terminal and a gateway, the gateway adopts a short message notification mode, and after the mobile terminal and the gateway are required to establish the first long connection, a wake-up data packet is sent to the mobile terminal through the first long connection, namely, the short message wake-up mode.
Locally at the mobile terminal, an AOI middleware is arranged in the mobile terminal and used for orderly managing each application program and performing long connection management between the application program and the gateway and other functions, and the application program locally installed at the mobile terminal can be directly connected to the AOI middleware in a Socket long connection mode in a running state to acquire a downlink data message pushed by the gateway through a first long connection; if the installed application program is not in the running state, after the mobile terminal wakes up or starts the application program, the application program is connected to the AOI middleware in a Socket long connection mode, and then the downlink data message pushed by the gateway through the first long connection is obtained.
Similarly to the second embodiment, in the scheme of the third embodiment, when the data volume of the data to be transmitted by the application server is very large, a Proxy transmission mode may also be adopted, and the data with large data volume is transparently transmitted by additionally establishing temporary long connections between the application server and the gateway, and between the gateway and the mobile terminal.
Meanwhile, the scheme of the third embodiment may also encrypt and compress the downlink data message according to the real-time first embodiment, and transmit the downlink data message, and generate a ticket for performing downlink transmission by using the third embodiment through the gateway.
In the third embodiment, similarly, in order to keep alive the first long connection between the mobile terminal and the gateway in real time without increasing the resource overhead of the wireless communication network, the lifetime of the heartbeat packet is set to be longer than the distance passing through the firewall of the core network but shorter than the distance reaching the wireless communication network where the mobile terminal is located, on one hand, the heartbeat packet can pass through the firewall of the core network to achieve the purpose of keeping alive the first long connection between the mobile terminal and the gateway, and on the other hand, the heartbeat packet does not enter the wireless communication network, so that the load of the wireless communication network is not increased, and the wireless channel is not occupied.
The method for transmitting heartbeat data packets for the first long connection in the third embodiment is the same as the method in the first embodiment.
Similar to the embodiment, through the technical solutions described in the above steps 601 to 605, the gateway becomes an intermediary in the real-time transmission process between the application server and the mobile terminal, the application server does not need to establish long connections with a large number of mobile terminals, and can push downlink data messages to any served mobile terminal in real time only by establishing a second long connection with one gateway, and the mobile terminal can receive downlink data messages pushed by the application server in real time only by establishing a first long connection with one gateway.
Example four:
a fourth embodiment of the present invention further provides a data transmission system that belongs to the same inventive concept as the first embodiment and the second embodiment, and is applied to an uplink transmission process, as shown in fig. 7, the system includes a mobile terminal 11, a gateway 12, an application server 13, and a keep-alive device 14, where the mobile terminal 11 is configured to establish a first long connection with the gateway 12, and send an uplink data message to the gateway 12 through the first long connection, and the uplink data message carries an identifier of the application server; the gateway 12 is configured to send the uplink data message to the application server 13 through a second long connection when it is determined that the second long connection is established between the application servers 13 corresponding to the identifiers of the application servers; the application server 13 is configured to receive an uplink data message through the second long connection; the keep-alive device 14 is configured to send the heartbeat data packet to the mobile terminal, using a set routing distance as a survival time of the heartbeat data packet for the first long connection, where the routing distance is greater than a distance that the heartbeat data packet passes through a firewall of a core network, but is smaller than a distance to a wireless communication network where the mobile terminal is located. The keep-alive device 14 can be a keep-alive subsystem in the gateway 12 or a device separate from the gateway 12 but capable of interacting with the gateway.
The application server 13 may be an application server in the internet or an application server inside an enterprise.
The system further comprises a domain name system 15, configured to receive a gateway query request initiated by the mobile terminal 11, where the gateway query request carries a first identifier used when the mobile terminal is registered in the application server and a second identifier of the mobile terminal, and return routing information of a gateway to which the mobile terminal belongs to the mobile terminal 11, and store the first identifier and the second identifier of the mobile terminal; the mobile terminal 11 is further configured to send a registration request including a second identifier to the gateway according to the routing information, and establish a first long connection with the gateway after registration; the gateway 12 is also used to register for mobile terminals.
As can be seen from fig. 8, the gateway is connected to the DNS through an interface, so that the gateway can query the DNS for information in real time.
The domain name system 15 is further configured to store a first correspondence between a gateway and an application server that establishes a second long connection with the gateway, respectively.
The gateway 12 is specifically configured to determine whether to establish a second long connection with a corresponding application server according to an identifier of the application server carried in an uplink data message, and if so, send the uplink data message to the application server through the second long connection, otherwise, query other gateways that establish the second long connection with the corresponding application server from the DNS, send the uplink data message to the other gateways, and then send the uplink data message to the corresponding application server through the other gateways.
In this embodiment, the gateway needs to perform routing management and query other gateways to transmit the data message, so that an interface exists between the gateway and other gateways to transmit the data message.
The mobile terminal 11 is further configured to send an agent request to the gateway, where the agent request carries an identifier of the application server and a data amount of data to be transmitted; the gateway 12 is further configured to, when it is determined that the data amount reaches the threshold value, determine whether a second long connection has been established with the corresponding application server according to an identifier of the application server carried in the proxy request, if so, establish a temporary long connection with the mobile terminal and the corresponding application server, receive the data to be transmitted from the mobile terminal through the temporary long connection with the mobile terminal, release the temporary long connection with the mobile terminal after the transmission is completed, transmit the data to be transmitted to the application server through the temporary long connection with the application server, and release the temporary long connection with the application server after the transmission is completed; otherwise, inquiring other gateways which establish second long connection with the corresponding application server from the DNS, respectively establishing temporary long connection with the mobile terminal and the other gateways, receiving the data to be transmitted from the mobile terminal through the temporary long connection with the mobile terminal, releasing the temporary long connection with the mobile terminal after the transmission is finished, transmitting the data to be transmitted to the other gateways through the temporary long connection with the other gateways, and releasing the temporary long connection with the other gateways after the transmission is finished.
The mobile terminal 11 is further configured to record an identifier of an application program installed locally and an identifier of an application server corresponding to each application program, determine the identifier of the corresponding application server after receiving an uplink data message generated by any application program, and carry the identifier of the application server in the uplink data message.
In addition, according to the descriptions of the first embodiment and the second embodiment of the present invention, the gateway further notifies the mobile terminal to establish the first long connection, generate the ticket, and manage the mobile terminal in a short message manner, so the system of this embodiment may further include a short message gateway (ISMG), a charging system (BOSS), and a network manager.
Example five:
the fifth embodiment of the present invention further provides a data transmission system that belongs to the same inventive concept as the third embodiment, and the structure of the system is the same as that of the fourth embodiment, and the system is applied to a downlink transmission process, and includes: mobile terminal 11, gateway 12, application server 13 and keep-alive device 14, wherein: the application server 13 is configured to establish a second long connection with the gateway 12, and send a downlink data message to the gateway through the second long connection, where the downlink data message carries a first identifier used when the mobile terminal is registered in the application server; the gateway 12 is configured to send the downlink data message to the mobile terminal 11 through a first long connection between the mobile terminals 11 corresponding to the first identifier; the mobile terminal 11 is configured to receive a downlink data message through the first long connection; the keep-alive device 14 is configured to send the heartbeat packet to the mobile terminal, taking a set routing distance as a lifetime of the heartbeat packet for the first long connection, where the routing distance is greater than a distance passing through a firewall of the core network but less than a distance reaching a wireless communication network where the mobile terminal is located.
The gateway 12 is specifically configured to detect whether a first long connection has been established with the mobile terminal, and if so, send the downlink data message to the mobile terminal through the established first long connection; otherwise, the mobile terminal is notified to establish the first long connection with the gateway, and after the first long connection is established, the downlink data message is sent to the mobile terminal 11.
The domain name system 15 is used for storing a first identifier and a second identifier of the mobile terminal, and a second corresponding relation between the second identifier and the home gateway identifier of the mobile terminal; the gateway 12 is specifically configured to query a second identifier of the mobile terminal from the DNS according to the first identifier carried in the downlink data message, and determine whether the mobile terminal is a locally registered mobile terminal according to the queried second identifier, and if so, send the downlink data message to the mobile terminal through a first long connection; otherwise, according to the second corresponding relation, inquiring other gateways to which the mobile terminal belongs from the DNS, and after sending the downlink data message to the other gateways, sending the downlink data message to the mobile terminal by the other gateways.
The application server 13 is further configured to send an agent request to the gateway 12, where the agent request carries the first identifier of the mobile terminal and the data amount of the data to be transmitted; the gateway 12 is further configured to, when it is determined that the data amount reaches a threshold value, determine, according to a first identifier carried in the proxy request, a corresponding second identifier by querying the DNS, and determine, according to the determined second identifier, whether the corresponding mobile terminal is a locally registered mobile terminal, if yes, establish a temporary long connection between the gateway and the corresponding mobile terminal and an application server that sends the proxy request, receive the data to be transmitted from the application server through the temporary long connection with the application server, release the temporary long connection with the application server after transmission is completed, transmit the data to be transmitted to the mobile terminal through the temporary long connection with the mobile terminal, and release the temporary long connection with the mobile terminal after transmission is completed; otherwise, the gateway inquires other gateways to which the corresponding mobile terminal belongs from the DNS, respectively establishes temporary long connections with the application server sending the agent request and the other gateways, receives the data to be transmitted from the application server through the temporary long connections with the application server, releases the temporary long connections with the application server after the transmission is finished, transparently transmits the data to be transmitted to the other gateways through the temporary long connections with the other gateways, and releases the temporary long connections with the other gateways after the transmission is finished.
The mobile terminal 11 is further configured to record an identifier of an application installed locally and an identifier of an application server corresponding to each application, determine, when receiving a downlink data message, the application program that receives the downlink data message according to the identifier of the application server carried in the downlink data message, and query whether the application program is in an operating state, if so, notify the application program to acquire the downlink data message; otherwise, the application program is awakened or started, and the awakened or started application program is informed to acquire the downlink data message.
Example six:
the sixth embodiment of the present invention further provides a gateway that belongs to the same inventive concept as the first to fifth embodiments, as shown in fig. 8, the gateway includes an online subsystem, a Proxy subsystem, an authentication subsystem, and a support subsystem, which are respectively described below.
1. The online subsystem follows AOP (always-on protocol), accepts and maintains long connection between the mobile terminal and the application server, provides a long connection notification function for the mobile terminal, requires the long connection between the mobile terminal to exist in real time, and matches the long connection mode with the IPpush mode to provide timely, stable and efficient data transmission service between the mobile terminal and the application server.
The online subsystem comprises a first connection module and a transmission module, wherein the first connection module is used for establishing a first long connection with the mobile terminal and establishing a second long connection with the application server; the transmission module is used for transmitting the uplink data message to the corresponding application server through the second long connection according to the identification of the application server carried in the uplink data message when receiving the uplink data message transmitted by the mobile terminal through the first long connection in the uplink transmission process, and transmitting the downlink data message to the corresponding mobile terminal through the first long connection according to the first identification of the mobile terminal carried in the downlink data message when receiving the downlink data message transmitted by the application server through the second long connection in the downlink transmission process.
The online subsystem further comprises:
the route management module is used for judging whether a second long connection is established with an application server corresponding to an identification of the application server carried in an uplink data message or not in the uplink transmission process, inquiring other gateways which establish the second long connection with the corresponding application server from a DNS when the second long connection is not established, judging whether the mobile terminal is a locally registered mobile terminal or not in the downlink transmission process, and inquiring other gateways which the mobile terminal belongs to from the DNS when the mobile terminal is not the locally registered mobile terminal; and the transmission module is further configured to send the uplink data message or the downlink data message to the other gateways.
And the registration module is used for finishing the registration operation of the mobile terminal and recording the second identifier of the registered mobile terminal.
And the VPN access module is used for carrying out security management on the uplink data message and the downlink data message in a Virtual Private Network (VPN) mode when the uplink data message and the downlink data message are transmitted through the first long connection and the second long connection, for example, a tunnel technology, an encryption and decryption technology, a key management technology and an identity authentication technology are adopted to improve the security of the transmitted uplink data message and the transmitted downlink data message.
And the SMSPush module is used for awakening the application program in the mobile terminal in a short message mode.
And the IPpush module is used for awakening the application program in the mobile terminal in an IPpush mode.
2. The Proxy subsystem provides a transfer agent for large data volumes between the mobile terminal and the application server.
The Proxy subsystem comprises a Proxy module and a second connection module.
The agent module is used for receiving an agent request from the mobile terminal in the uplink transmission process, wherein the agent request carries an identification of an application server and a data volume of data to be transmitted, and when the data volume is determined to reach a threshold value, whether a second long connection is established with the corresponding application server or not is judged according to the identification of the application server carried in the agent request; in the downlink transmission process, an agent request from an application server is received, the agent request carries a first identifier of a mobile terminal and a data volume of data to be transmitted, and when the data volume reaches a threshold value, whether the corresponding mobile terminal is a locally registered mobile terminal is judged according to the first identifier carried in the agent request.
The second connection module is used for respectively establishing temporary long connections with the mobile terminal and the corresponding application server if the gateway establishes a second long connection with the corresponding application server in the uplink transmission process, receiving the data to be transmitted from the mobile terminal through the temporary long connections with the mobile terminal, releasing the temporary long connections with the mobile terminal after the transmission is finished, transmitting the data to be transmitted to the application server through the temporary long connections with the application server, and releasing the temporary long connections with the application server after the transmission is finished; otherwise, inquiring other gateways which establish second long connection with the corresponding application server from the DNS, respectively establishing temporary long connection with the mobile terminal and the other gateways, receiving the data to be transmitted from the mobile terminal through the temporary long connection with the mobile terminal, releasing the temporary long connection with the mobile terminal after the transmission is finished, transmitting the data to be transmitted to the other gateways through the temporary long connection with the other gateways, and releasing the temporary long connection with the other gateways after the transmission is finished. In the downlink transmission process, if the corresponding mobile terminal is a locally registered mobile terminal, respectively establishing temporary long connections with the corresponding mobile terminal and an application server sending an agent request, receiving the data to be transmitted from the application server through the temporary long connections with the application server, releasing the temporary long connections with the application server after the transmission is finished, transmitting the data to be transmitted to the mobile terminal through the temporary long connections with the mobile terminal, and releasing the temporary long connections with the mobile terminal after the transmission is finished; otherwise, inquiring other gateways to which the corresponding mobile terminal belongs from the DNS, respectively establishing temporary long connections between the application server sending the agent request and the other gateways, receiving data to be transmitted from the application server through the temporary long connections between the application server and the other gateways, releasing the temporary long connections between the application server and the temporary long connections after the transmission is finished, transmitting the data to be transmitted to the other gateways through the temporary long connections between the data to be transmitted and the other gateways, and releasing the temporary long connections between the data to be transmitted and the other gateways after the transmission is finished.
3. The authentication subsystem is responsible for authenticating the registered mobile terminal and the application server, only the mobile terminal passing the authentication allows the registration and the establishment of the first long connection, and the application server passing the authentication allows the establishment of the second long connection.
The authentication subsystem comprises:
and the user management module is used for recording the information of the mobile terminal and the application server which belong to the gateway.
And the service management module is used for recording the services supported by the mobile terminal belonging to the gateway and the services supported by the application server.
And the security management module is used for recording security information, including encrypted information used in a tunnel technology, an encryption and decryption technology, a key management technology and an identity authentication technology.
And the authentication module is used for authenticating the mobile terminal and the application server which establish the first long connection and the second long connection by utilizing the information in the user management module, the service management module and the safety management module.
4. The support subsystem is responsible for carrying out statistical analysis on transmitted data messages, monitoring uplink and downlink transmission processes and upgrading a middleware used for managing an installed application program in the mobile terminal.
The support subsystem includes:
and the statistical analysis module is used for performing statistical analysis on the data messages transmitted through the first long connection and the second long connection and the data transmitted through the temporary long connection.
And the monitoring module is used for monitoring the transmission process through the first long connection and the second long connection and the transmission process through the temporary long connection and giving an alarm when an abnormality occurs.
And the charging module is used for charging the call ticket generated in the transmission process of the first long connection and the second long connection and the transmission process of the temporary long connection.
And the upgrading module is used for detecting whether the middleware in the mobile terminal needs to be upgraded or not in real time and sending upgrading information of the middleware to the mobile terminal when the middleware needs to be upgraded.
And the log module is used for recording log information generated by various operations of the gateway.
And the auxiliary module is used for carrying out auxiliary management on the interfaces of the gateway and each external device.
Example seven:
a seventh embodiment of the present invention further provides a mobile terminal that belongs to the same inventive concept as the first to fifth embodiments, as shown in fig. 9, which includes an interface module, a core module, and a support module, where the interface module, the core module, and the support module may be integrated modules in the mobile terminal, or integrated modules of an AOI middleware installed in the mobile terminal.
The interface module, core module and support module are described below, respectively:
1. the interface module is mainly responsible for establishing a first long connection with an external gateway, long connection between an application program installed in the mobile terminal and the middleware, and temporary long connection with the gateway.
2. The core module provides the core function of the AOI middleware and is a main module for realizing the purpose of the invention.
The core module includes:
and the data receiving and sending module is used for sending an uplink data message to the gateway through the first long connection in the uplink transmission process, wherein the uplink data message carries the identifier of the application server, and receiving a downlink data message pushed by the gateway through the first long connection in the downlink transmission process.
The Proxy request module is used for sending a Proxy request to the gateway when the Proxy function is used for transmission, wherein the Proxy request carries the identifier of the application server and the data volume of the data to be transmitted;
and the IP Proxy module is used for sending the data to be transmitted to the gateway through the temporary long connection and receiving the data to be transmitted pushed by the gateway through the temporary long connection when the Proxy function is used for transmission.
And the registration module is used for acquiring the routing information of the home gateway from the DNS and registering to the gateway according to the routing information.
And the management module is used for recording the identification of the locally installed application program and the identification of the application server corresponding to each application program, determining the identification of the corresponding application server after receiving the uplink data message generated by any application program, and carrying the identification of the application server in the uplink data message.
The wake-up module is used for determining an application program for receiving the downlink data message according to an application server identifier carried in the downlink data message when the downlink data message is received, inquiring whether the application program is in a running state, and if so, informing the application program to acquire the downlink data message; otherwise, the application program is awakened or started, and the awakened or started application program is informed to acquire the downlink data message.
And the compression/decompression module is used for compressing the transmitted uplink data message and decompressing the received downlink data message.
3. The support module includes:
and the log module is used for recording log information generated by various operations of the mobile terminal.
And the configuration module is used for configuring parameters required by various operations of the mobile terminal, such as the route configuration from the mobile terminal to the DNS.
And the upgrading module is used for upgrading the middleware when the upgrading information aiming at the middleware sent by the gateway is received.
Example eight:
an eighth embodiment of the present invention further provides an application server pertaining to the same inventive concept as the first to fifth embodiments, as shown in fig. 10, including an interface module and a data transceiver module, where the interface module is used to establish a second long connection with a gateway; the data receiving and sending module is used for receiving an uplink data message sent by the gateway through the second long connection and sending a downlink data message to the gateway through the second long connection, wherein the downlink data message carries a first identifier used when the mobile terminal is registered in the application server.
The interface module is also used for establishing temporary long connection with the gateway, and the data receiving and transmitting module is also used for receiving and transmitting data to be transmitted through the temporary long connection.
Example nine:
the ninth embodiment of the present invention further provides a keep-alive device belonging to the same inventive concept as the first to fifth embodiments, as shown in fig. 11, including a data acquisition module, a distance detection module, and a data packet transmission module, wherein:
the data acquisition module is used for capturing communication data packets between the mobile terminals at two ends of the long connection and the application server in real time when the data channel is in a TCP-based mode, establishing and maintaining quintuple of the mobile terminals, and extracting sequence information (seq) and response information (ack) of the TCP connection of the current mobile terminal; and when the data channel is in a UDP-based mode, the method is used for acquiring the IP and UDP port information of the terminal equipment in real time.
The distance detection module is used for detecting the routing distance required by the heartbeat data packet.
And the data packet sending module is used for sending the heartbeat data packet to the mobile terminal by taking the routing distance as the survival time of the heartbeat data packet.
Specifically, as shown in fig. 12, the distance detection module includes a first route determination module and a second route determination module, wherein: the first routing determination module is used for determining a first routing distance generated when a test data packet is routed to the mobile terminal according to the test data packet sent to the mobile terminal; the second routing determining module is used for determining a second routing distance generated by the test data packet after passing through the firewall of the core network and before reaching the wireless communication network where the mobile terminal is located according to the first routing distance; therefore, the data packet sending module is configured to send the heartbeat data packet to the mobile terminal by using the second routing distance as a survival time of the heartbeat data packet.
Similar to the solution of the second embodiment, the first route determining module may also determine the first route distance by gradually increasing the route distance to determine the first route distance, gradually decreasing the route distance to determine the first route distance, and by a bisection method, which is respectively described below:
1. determining a first routing distance by gradually increasing the routing distance:
(1) and TCP mode:
the first route determining module is specifically configured to set a sequence number value of the test data packet as an incorrect sequence number identified by the mobile terminal, gradually increase a preset third route distance, and execute the following operations for a route distance obtained after each increase:
taking the obtained routing distance as the survival time of the test data packet, and sending the test data packet to the mobile terminal;
if returning to reset RST message, taking the obtained route distance as the first route distance;
and if the error type carried by the returned control message protocol ICMP message is overtime, continuing to increase the routing distance.
(2) And UDP mode:
the first route determining module is specifically configured to set a destination port number carried in the test data packet as a UDP port number of a user data packet of which the mobile terminal cannot correctly receive the test data packet, gradually increase a preset fourth routing distance, and perform the following operations for a routing distance obtained after each increase:
taking the obtained routing distance as the survival time of a test data packet, sending the test data packet to the mobile terminal, and detecting the received control message protocol ICMP message;
if the error type carried by the ICMP message is that the port is not reachable, taking the obtained routing distance as a first routing distance;
and if the error type carried by the ICMP message is overtime, continuing to increase the routing distance.
2. Determining a first routing distance by gradually decreasing the routing distance:
(1) and TCP mode:
the first route determining module is specifically configured to gradually decrease a preset fifth routing distance, and execute the following operations for a routing distance obtained after each decrease:
taking the obtained routing distance as the survival time of the test data packet, sending the test data packet to the mobile terminal through the TCP connection with the determined quintuple information, and judging whether a returned test response message is received or not;
if yes, continuing to reduce the routing distance;
otherwise, adding 1 to the obtained route distance as the first route distance.
(2) And UDP mode:
the first route determining module is specifically configured to gradually decrease a preset sixth routing distance, and execute the following operations for a routing distance obtained after each decrease:
taking the obtained routing distance as the survival time of a test data packet, sending the test data packet to the mobile terminal according to the IP address and the UDP port of the mobile terminal, and judging whether a returned test response message is received or not;
if yes, continuing to reduce the routing distance;
otherwise, adding 1 to the obtained route distance as the first route distance.
3. The dichotomy mode is as follows:
(1) and TCP mode:
the first routing determination module is specifically configured to preset an upper limit routing distance and a lower limit routing distance, determine whether the upper limit routing distance is not less than the lower limit routing distance when the upper limit routing distance or the lower limit routing distance is updated each time, and if yes, execute the following operations until the upper limit routing distance is less than the lower limit routing distance:
rounding the average value of the obtained upper limit routing distance and the obtained lower limit routing distance to obtain a seventh routing distance, taking the obtained seventh routing distance as the survival time of a test data packet, sending the test data packet to the mobile terminal through the TCP connection with the determined quintuple information, and judging whether a returned test response message is received or not;
if so, subtracting 1 from the route hop count of the seventh route distance obtained this time to serve as the updated upper limit route distance;
otherwise, subtracting 1 from the route hop count of the seventh route distance obtained this time, and then taking the route hop count as the updated lower limit route distance;
determining a seventh routing distance obtained when the upper limit routing distance is smaller than the lower limit routing distance, and adding 1 to the routing hop count of the seventh routing distance to serve as the first routing distance if a test timeout message is received when the seventh routing distance is taken as the survival time of the test data packet; and if the message with correct test is received, taking the route hop count of the seventh route distance as the first route distance.
(2) And UDP mode:
the first routing determination module is specifically configured to preset an upper limit routing distance and a lower limit routing distance, determine whether the upper limit routing distance is not less than the lower limit routing distance when the upper limit routing distance or the lower limit routing distance is updated each time, and if yes, execute the following operations until the upper limit routing distance is less than the lower limit routing distance:
rounding the average value of the obtained upper limit routing distance and the obtained lower limit routing distance to obtain an eighth routing distance, taking the obtained eighth routing distance as the survival time of a test data packet, sending the test data packet to the mobile terminal according to the IP address and the UDP port of the mobile terminal, and judging whether a returned test response message is received or not;
if so, subtracting 1 from the route hop count of the eighth route distance obtained this time to serve as the updated upper limit route distance;
otherwise, subtracting 1 from the route hop count of the eighth route distance obtained this time, and then taking the route hop count as the updated lower limit route distance;
determining an eighth routing distance obtained when the upper limit routing distance is smaller than the lower limit routing distance, and adding 1 to the routing hop count of the eighth routing distance as the first routing distance if a test timeout message is received when the eighth routing distance is taken as the survival time of the test data packet; and if the message with correct test is received, taking the route hop count of the eighth route distance as the first route distance.
The second routing determining module is specifically configured to subtract 1 from the routing hop count of the first routing distance to obtain a maximum value of the second routing distance, obtain a routing hop count generated when the core network firewall is passed through as a minimum value of the second routing distance, and obtain a routing hop count that is not greater than the maximum value and not less than the minimum value as the second routing distance.
The keep-alive device in this embodiment nine may be a keep-alive subsystem in the gateway at one end of the first long connection, as shown in fig. 13, the first long connection is established between the gateway and the mobile terminal, when the gateway wakes up the application program in the terminal in the communication short message manner, the gateway is further connected to the ISMG and the SMS in the mobile communication network, and when the application program in the terminal is woken up in the IPPush manner, the gateway is further connected to the GGSN in the mobile communication network. And the keep-alive subsystem in the gateway keeps alive the first long connection between the terminal and the gateway.
The keep-alive device may also be a device independent of the gateway that keeps-alive for the first long connection between the gateway and the mobile terminal.
Compared with the IPpush scheme in the prior art, the method, the system and the equipment provided by the embodiment of the invention effectively reduce the number of long connections on the basis of ensuring high real-time performance of data transmission between the mobile terminal and the application server, and have less resource occupation on the mobile terminal and the application server. Meanwhile, the mobile terminal AOI framework of the embodiment of the invention provides a good data channel for application service providers, network operators and users, and provides a platform for unified management and unified control of mobile services. Meanwhile, the heartbeat data packet of the first long connection can penetrate through a core network firewall to enter a core network provided by an operator in the routing transmission process to achieve the purpose of keeping the long connection alive, and is terminated at a one-hop router before entering a wireless communication network where the mobile terminal is located, so that the burden of the heartbeat data packet on the wireless communication network is avoided.
As will be appreciated by one skilled in the art, embodiments of the present application may be provided as a method, system, or computer program product. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The present application is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the application. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
While the preferred embodiments of the present application have been described, additional variations and modifications in those embodiments may occur to those skilled in the art once they learn of the basic inventive concepts. Therefore, it is intended that the appended claims be interpreted as including preferred embodiments and all alterations and modifications as fall within the scope of the application.
It will be apparent to those skilled in the art that various changes and modifications may be made in the present invention without departing from the spirit and scope of the invention. Thus, if such modifications and variations of the present invention fall within the scope of the claims of the present invention and their equivalents, the present invention is also intended to include such modifications and variations.

Claims (31)

1. A method of data transmission, the method comprising:
the gateway receives an uplink data message from the mobile terminal through a first long connection established between the gateway and the mobile terminal, wherein the uplink data message carries an identifier of an application server, and the first long connection transmits the uplink data message generated by any application program in the mobile terminal;
when determining that a second long connection is established between the application servers corresponding to the identifiers of the application servers, the gateway sends the uplink data message to the application servers through the second long connection;
sending the heartbeat data packet to the mobile terminal by taking a set routing distance as the survival time of the heartbeat data packet aiming at the first long connection, wherein the routing distance is greater than the distance of the heartbeat data packet passing through a core network firewall but less than the distance of the heartbeat data packet reaching a wireless communication network where the mobile terminal is located;
the method further comprises the following steps:
and the gateway establishes temporary long connection for the data to be transmitted with the data volume reaching a threshold value to perform data transparent transmission.
2. The method of claim 1, wherein prior to the gateway receiving the upstream data message from the mobile terminal over the first long connection, the method further comprises:
a Domain Name System (DNS) receives a gateway query request initiated by a mobile terminal, wherein the gateway query request carries a first identifier used when the mobile terminal is registered in an application server and a second identifier of the mobile terminal;
the DNS returns the routing information of the home gateway of the mobile terminal to the mobile terminal and stores a first identifier and a second identifier of the mobile terminal;
and the gateway receives a registration request which is initiated by the mobile terminal according to the routing information and contains the second identifier, and establishes a first long connection with the mobile terminal after registering for the mobile terminal.
3. The method of claim 2, wherein the uplink data message further carries a second identifier of the mobile terminal;
the gateway sends the uplink data message to the application server, and specifically includes:
the gateway queries a first identifier of the mobile terminal from the DNS according to a second identifier of the mobile terminal;
and the gateway carries the first identifier of the mobile terminal in the uplink data message and sends the first identifier to the application server, so as to inform the application server of the mobile terminal sending the uplink data message.
4. The method of claim 1, wherein prior to the gateway receiving the upstream data message from the mobile terminal over the first long connection, the method further comprises:
the DNS stores a first correspondence between a gateway and application servers that respectively establish a second long connection with the gateway.
5. The method of claim 4, wherein the gateway sending the upstream data message to the application server specifically comprises:
the gateway judges whether to establish a second long connection with a corresponding application server according to the identification of the application server carried in the uplink data message;
if so, sending the uplink data message to an application server through the second long connection;
and if not, inquiring other gateways establishing second long connection with the corresponding application server from the DNS, and sending the uplink data message to the other gateways which then send the uplink data message to the corresponding application server.
6. The method of claim 4, wherein the gateway establishing a temporary long connection for data of a large data volume for data transparent transmission comprises:
the gateway receives an agent request from the mobile terminal, wherein the agent request carries an identification of an application server and a data volume of data to be transmitted;
when the gateway determines that the data volume reaches the threshold value, judging whether a second long connection is established with the corresponding application server according to the identification of the application server carried in the proxy request;
if so, respectively establishing temporary long connection between the gateway and the mobile terminal and the corresponding application server, receiving the data to be transmitted from the mobile terminal through the temporary long connection between the gateway and the mobile terminal, releasing the temporary long connection between the gateway and the mobile terminal after the transmission is finished, transmitting the data to be transmitted to the application server through the temporary long connection between the gateway and the application server, and releasing the temporary long connection between the gateway and the application server after the transmission is finished;
otherwise, the gateway inquires other gateways establishing second long connection with the corresponding application server from the DNS, respectively establishes temporary long connection with the mobile terminal and the other gateways, receives the data to be transmitted from the mobile terminal through the temporary long connection with the mobile terminal, releases the temporary long connection with the mobile terminal after the transmission is finished, transparently transmits the data to be transmitted to the other gateways through the temporary long connection with the other gateways, and releases the temporary long connection with the other gateways after the transmission is finished.
7. The method of claim 1, wherein prior to the gateway receiving the upstream data message from the mobile terminal over the first long connection, the method further comprises:
the mobile terminal records the identification of the locally installed application program and the identification of the application server corresponding to each application program;
after receiving an uplink data message generated by any application program, the mobile terminal determines the identifier of the corresponding application server and carries the identifier of the application server in the uplink data message.
8. The method of claim 1, wherein the set routing distance is determined by:
determining a first routing distance generated when a test data packet is routed to the mobile terminal according to the test data packet sent to the mobile terminal;
and according to the first routing distance, determining a second routing distance generated when the test data packet passes through a core network firewall and reaches a one-hop route before the wireless communication network where the mobile terminal is located as a set routing distance.
9. The method of claim 8, wherein the first routing distance and the second routing distance refer to routing hops of packets.
10. The method of claim 8, wherein the first routing distance is determined by:
setting a TCP header sequence number value of the test data packet as a value which is identified as an error by the mobile terminal;
gradually increasing a preset third routing distance, and executing the following operations for the routing distance obtained after each increase:
taking the obtained routing distance as the survival time of the test data packet, and sending the test data packet to the mobile terminal;
if the TCP message of the reset RST is returned, taking the obtained routing distance as a first routing distance;
if the error type carried by the returned control message protocol ICMP message is overtime, continuing to increase the routing distance;
or
Setting the destination port number carried in the test data packet as a user data packet UDP port number which cannot be correctly received by the mobile terminal, gradually increasing a preset fourth routing distance, and executing the following operations aiming at the routing distance obtained after each increase:
taking the obtained routing distance as the survival time of a test data packet, sending the test data packet to the mobile terminal, and detecting the received control message protocol ICMP message;
if the error type carried by the ICMP message is that the port is not reachable, taking the obtained routing distance as a first routing distance;
if the error type carried by the ICMP message is overtime, continuing to increase the routing distance;
or,
gradually reducing a preset fifth routing distance, and executing the following operations for the routing distance obtained after each reduction:
taking the obtained routing distance as the survival time of the test data packet, sending the test data packet to the mobile terminal through the TCP connection with the determined quintuple information, and judging whether a returned test response message is received or not;
if yes, continuing to reduce the routing distance;
otherwise, adding 1 to the obtained routing distance to serve as a first routing distance;
or,
gradually reducing a preset sixth routing distance, and executing the following operations for the routing distance obtained after each reduction:
taking the obtained routing distance as the survival time of the test data packet, determining the mobile terminal for receiving the test data packet according to the IP address and the UDP port of the mobile terminal, sending the test data packet to the mobile terminal, and judging whether a returned test response message is received or not;
if yes, continuing to reduce the routing distance;
otherwise, adding 1 to the obtained routing distance to serve as a first routing distance;
or,
presetting an upper limit routing distance and a lower limit routing distance, judging whether the upper limit routing distance is not less than the lower limit routing distance when the upper limit routing distance or the lower limit routing distance is updated each time, if so, executing the following operations until the upper limit routing distance is less than the lower limit routing distance:
rounding the average value of the obtained upper limit routing distance and the obtained lower limit routing distance to obtain a seventh routing distance, taking the obtained seventh routing distance as the survival time of a test data packet, sending the test data packet to the mobile terminal through the TCP connection with the determined quintuple information, and judging whether a returned test response message is received or not;
if so, subtracting 1 from the route hop count of the seventh route distance obtained this time to serve as the updated upper limit route distance;
otherwise, subtracting 1 from the route hop count of the seventh route distance obtained this time, and then taking the route hop count as the updated lower limit route distance;
determining a seventh routing distance obtained when the upper limit routing distance is smaller than the lower limit routing distance, and adding 1 to the routing hop count of the seventh routing distance to serve as the first routing distance if a test timeout message is received when the seventh routing distance is taken as the survival time of the test data packet; if the message of correct test is received, taking the route hop number of the seventh route distance as the first route distance;
or,
presetting an upper limit routing distance and a lower limit routing distance, judging whether the upper limit routing distance is not less than the lower limit routing distance when the upper limit routing distance or the lower limit routing distance is updated each time, if so, executing the following operations until the upper limit routing distance is less than the lower limit routing distance:
rounding the average value of the obtained upper limit routing distance and the obtained lower limit routing distance to obtain an eighth routing distance, taking the obtained eighth routing distance as the survival time of a test data packet, determining a mobile terminal for receiving the test data packet according to the IP address and the UDP port of the mobile terminal, sending the test data packet to the mobile terminal, and judging whether a returned test response message is received or not;
if so, subtracting 1 from the route hop count of the eighth route distance obtained this time to serve as the updated upper limit route distance;
otherwise, subtracting 1 from the route hop count of the eighth route distance obtained this time, and then taking the route hop count as the updated lower limit route distance;
determining an eighth routing distance obtained when the upper limit routing distance is smaller than the lower limit routing distance, and adding 1 to the routing hop count of the eighth routing distance as the first routing distance if a test timeout message is received when the eighth routing distance is taken as the survival time of the test data packet; and if the message with correct test is received, taking the route hop count of the eighth route distance as the first route distance.
11. The method according to any one of claims 8 to 10, wherein determining the generated second routing distance according to the first routing distance specifically comprises:
subtracting 1 from the route hop count of the first route distance to be used as the maximum value of the second route distance, and using the route hop count generated when the core network firewall is passed through as the minimum value of the second route distance;
and taking the route hop number which is not greater than the maximum value and not less than the minimum value as a second route distance.
12. A method of data transmission, the method comprising:
the gateway receives a downlink data message from an application server through a second long connection established between the gateway and the application server, wherein the downlink data message carries a first identifier used when the mobile terminal is registered in the application server, and the second long connection transmits the downlink data message sent to any terminal by the application server;
the gateway sends the downlink data message to the mobile terminal through a first long connection between the mobile terminals corresponding to the first identification;
sending the heartbeat data packet to the mobile terminal by taking a set routing distance as the survival time of the heartbeat data packet aiming at the first long connection, wherein the routing distance is greater than the distance of the heartbeat data packet passing through a core network firewall but less than the distance of the heartbeat data packet reaching a wireless communication network where the mobile terminal is located;
the method further comprises the following steps:
and the gateway establishes temporary long connection for the data to be transmitted with the data volume reaching a threshold value to perform data transparent transmission.
13. The method according to claim 12, wherein the gateway sends the downlink data message to the mobile terminal via a first long connection with the mobile terminal, specifically comprising:
the gateway detects whether a first long connection is established with the mobile terminal;
if so, sending the downlink data message to the mobile terminal through the established first long connection;
otherwise, the mobile terminal is informed to establish the first long connection with the gateway, and after the first long connection is established, the downlink data message is sent to the mobile terminal.
14. The method of claim 12, wherein prior to the gateway receiving the downstream data message from the application server over the second long connection, the method further comprises:
the method comprises the steps that a DNS receives a gateway query request initiated by a mobile terminal, wherein the gateway query request carries a first identifier of the mobile terminal and a second identifier of the mobile terminal;
the DNS returns the routing information of the mobile terminal home gateway to the mobile terminal, and stores a first identifier and a second identifier of the mobile terminal, and a second corresponding relation between the second identifier and the mobile terminal home gateway identifier;
and the mobile terminal initiates a registration request containing a second identifier to the home gateway according to the routing information and establishes a first long connection with the home gateway.
15. The method according to claim 14, wherein the gateway sends the downlink data message to the mobile terminal via a first long connection, specifically comprising:
the gateway inquires a second identifier of the mobile terminal from the DNS according to the first identifier carried in the downlink data message, and judges whether the mobile terminal is a registered mobile terminal in the gateway or not according to the inquired second identifier;
if so, sending the downlink data message to the mobile terminal through a first long connection;
otherwise, according to the second corresponding relation, inquiring other gateways to which the mobile terminal belongs from the DNS, and after sending the downlink data message to the other gateways, sending the downlink data message to the mobile terminal by the other gateways.
16. The method of claim 14, wherein the gateway establishing a temporary long connection for the data to be transmitted with the data amount reaching a threshold for data transparent transmission comprises:
the gateway receives an agent request from an application server, wherein the agent request carries a first identifier of the mobile terminal and the data volume of data to be transmitted;
when the gateway determines that the data volume reaches the threshold value, according to a first identifier carried in the proxy request, determining a corresponding second identifier by inquiring the DNS, and judging whether the corresponding mobile terminal is the mobile terminal registered in the gateway according to the determined second identifier;
if so, respectively establishing temporary long connection between the gateway and the corresponding mobile terminal and an application server sending the agent request, receiving the data to be transmitted from the application server through the temporary long connection between the gateway and the application server, releasing the temporary long connection between the gateway and the application server after the transmission is finished, transmitting the data to be transmitted to the mobile terminal through the temporary long connection between the gateway and the mobile terminal, and releasing the temporary long connection between the gateway and the mobile terminal after the transmission is finished;
otherwise, the gateway inquires other gateways to which the corresponding mobile terminal belongs from the DNS, respectively establishes temporary long connections with the application server sending the agent request and the other gateways, receives the data to be transmitted from the application server through the temporary long connections with the application server, releases the temporary long connections with the application server after the transmission is finished, transparently transmits the data to be transmitted to the other gateways through the temporary long connections with the other gateways, and releases the temporary long connections with the other gateways after the transmission is finished.
17. The method of claim 12, wherein the method further comprises:
the mobile terminal records the identification of the locally installed application program and the identification of the application server corresponding to each application program;
after the gateway sends the downlink data message to the mobile terminal through the first long connection, the method further includes:
the mobile terminal determines an application program for receiving the downlink data message according to the application server identifier carried in the downlink data message, and inquires whether the application program is in an operating state;
if yes, informing the application program to acquire the downlink data message;
otherwise, the application program is awakened or started, and the awakened or started application program is informed to acquire the downlink data message.
18. The method of claim 12, wherein the set routing distance is determined by:
determining a first routing distance generated when a test data packet is routed to the mobile terminal according to the test data packet sent to the mobile terminal;
and according to the first routing distance, determining a second routing distance generated when the test data packet passes through a core network firewall and reaches a one-hop route before the wireless communication network where the mobile terminal is located as a set routing distance.
19. The method of claim 18, wherein the first routing distance and the second routing distance refer to routing hops of packets.
20. The method of claim 19, wherein the first routing distance is determined by:
setting a TCP header sequence number value of the test data packet as a value which is identified as an error by the mobile terminal;
gradually increasing a preset third routing distance, and executing the following operations for the routing distance obtained after each increase:
taking the obtained routing distance as the survival time of the test data packet, and sending the test data packet to the mobile terminal;
if the TCP message of the reset RST is returned, taking the obtained routing distance as a first routing distance;
if the error type carried by the returned control message protocol ICMP message is overtime, continuing to increase the routing distance;
or,
setting the destination port number carried in the test data packet as a user data packet UDP port number which cannot be correctly received by the mobile terminal, gradually increasing a preset fourth routing distance, and executing the following operations aiming at the routing distance obtained after each increase:
taking the obtained routing distance as the survival time of a test data packet, sending the test data packet to the mobile terminal, and detecting the received control message protocol ICMP message;
if the error type carried by the ICMP message is that the port is not reachable, taking the obtained routing distance as a first routing distance;
if the error type carried by the ICMP message is overtime, continuing to increase the routing distance;
or,
gradually reducing a preset fifth routing distance, and executing the following operations for the routing distance obtained after each reduction:
taking the obtained routing distance as the survival time of the test data packet, sending the test data packet to the mobile terminal through the TCP connection with the determined quintuple information, and judging whether a returned test response message is received or not;
if yes, continuing to reduce the routing distance;
otherwise, adding 1 to the obtained routing distance to serve as a first routing distance;
or,
gradually reducing a preset sixth routing distance, and executing the following operations for the routing distance obtained after each reduction:
taking the obtained routing distance as the survival time of the test data packet, determining the mobile terminal for receiving the test data packet according to the IP address and the UDP port of the mobile terminal, sending the test data packet to the mobile terminal, and judging whether a returned test response message is received or not;
if yes, continuing to reduce the routing distance;
otherwise, adding 1 to the obtained routing distance to serve as a first routing distance;
or,
presetting an upper limit routing distance and a lower limit routing distance, judging whether the upper limit routing distance is not less than the lower limit routing distance when the upper limit routing distance or the lower limit routing distance is updated each time, if so, executing the following operations until the upper limit routing distance is less than the lower limit routing distance:
rounding the average value of the obtained upper limit routing distance and the obtained lower limit routing distance to obtain a seventh routing distance, taking the obtained seventh routing distance as the survival time of a test data packet, sending the test data packet to the mobile terminal through the TCP connection with the determined quintuple information, and judging whether a returned test response message is received or not;
if so, subtracting 1 from the route hop count of the seventh route distance obtained this time to serve as the updated upper limit route distance;
otherwise, subtracting 1 from the route hop count of the seventh route distance obtained this time, and then taking the route hop count as the updated lower limit route distance;
determining a seventh routing distance obtained when the upper limit routing distance is smaller than the lower limit routing distance, and adding 1 to the routing hop count of the seventh routing distance to serve as the first routing distance if a test timeout message is received when the seventh routing distance is taken as the survival time of the test data packet; if the message of correct test is received, taking the route hop number of the seventh route distance as the first route distance;
or,
presetting an upper limit routing distance and a lower limit routing distance, judging whether the upper limit routing distance is not less than the lower limit routing distance when the upper limit routing distance or the lower limit routing distance is updated each time, if so, executing the following operations until the upper limit routing distance is less than the lower limit routing distance:
rounding the average value of the obtained upper limit routing distance and the obtained lower limit routing distance to obtain an eighth routing distance, taking the obtained eighth routing distance as the survival time of a test data packet, determining a mobile terminal for receiving the test data packet according to the IP address and the UDP port of the mobile terminal, sending the test data packet to the mobile terminal, and judging whether a returned test response message is received or not;
if so, subtracting 1 from the route hop count of the eighth route distance obtained this time to serve as the updated upper limit route distance;
otherwise, subtracting 1 from the route hop count of the eighth route distance obtained this time, and then taking the route hop count as the updated lower limit route distance;
determining an eighth routing distance obtained when the upper limit routing distance is smaller than the lower limit routing distance, and adding 1 to the routing hop count of the eighth routing distance as the first routing distance if a test timeout message is received when the eighth routing distance is taken as the survival time of the test data packet; and if the message with correct test is received, taking the route hop count of the eighth route distance as the first route distance.
21. The method according to any one of claims 18 to 20, wherein determining the generated second routing distance based on the first routing distance comprises:
subtracting 1 from the route hop count of the first route distance to be used as the maximum value of the second route distance, and using the route hop count generated when the core network firewall is passed through as the minimum value of the second route distance;
and taking the route hop number which is not greater than the maximum value and not less than the minimum value as a second route distance.
22. A system for data transmission, comprising a mobile terminal, a gateway, an application server and a keep-alive device, wherein:
the mobile terminal is used for establishing a first long connection with the gateway and sending an uplink data message to the gateway through the first long connection, wherein the uplink data message carries an identifier of an application server, and the first long connection transmits the uplink data message generated by any application program in the mobile terminal;
the gateway is used for sending the uplink data message to the application server through a second long connection when the second long connection is established between the application servers corresponding to the identifiers of the application servers;
the application server is used for receiving the uplink data message through the second long connection;
the keep-alive device is used for sending the heartbeat data packet to the mobile terminal by taking a set routing distance as the survival time of the heartbeat data packet aiming at the first long connection, wherein the routing distance is greater than the distance of the heartbeat data packet passing through a core network firewall but less than the distance of the heartbeat data packet reaching a wireless communication network where the mobile terminal is located;
the gateway is also used for establishing temporary long connection for the data to be transmitted with the data volume reaching the threshold value to perform data transparent transmission.
23. A system for data transmission, the system comprising a mobile terminal, a gateway, an application server and a keep-alive device, wherein:
the application server is used for establishing a second long connection with the gateway and sending a downlink data message to the gateway through the second long connection, wherein the downlink data message carries a first identifier used when the mobile terminal is registered in the application server, and the second long connection transmits the downlink data message sent to any terminal by the application server;
the gateway is used for sending the downlink data message to the mobile terminal through first long connection between the mobile terminals corresponding to the first identification;
the mobile terminal is used for receiving the downlink data message through the first long connection;
the keep-alive device is used for sending the heartbeat data packet to the mobile terminal by taking a set routing distance as the survival time of the heartbeat data packet aiming at the first long connection, wherein the routing distance is greater than the distance of the heartbeat data packet passing through a core network firewall but less than the distance of the heartbeat data packet reaching a wireless communication network where the mobile terminal is located;
the gateway is also used for establishing temporary long connection for the data to be transmitted with the data volume reaching the threshold value to perform data transparent transmission.
24. A gateway, characterized in that the gateway comprises:
the first connection module is used for establishing a first long connection with the mobile terminal and establishing a second long connection with the application server, wherein the first long connection transmits an uplink data message generated by any application program in the mobile terminal, and the second long connection transmits a downlink data message sent to any terminal by the application server;
the transmission module is used for transmitting the uplink data message to a corresponding application server through a second long connection according to an identification of the application server carried in the uplink data message when receiving the uplink data message transmitted by the mobile terminal through the first long connection in the uplink transmission process, and transmitting the downlink data message to the corresponding mobile terminal through the first long connection according to the first identification of the mobile terminal carried in the downlink data message when receiving the downlink data message transmitted by the application server through the second long connection in the downlink transmission process;
the gateway further comprises:
the second connection module is used for establishing temporary long connection for the data to be transmitted, the data volume of which reaches a threshold value, and carrying out data transparent transmission;
and aiming at the first long connection, sending the heartbeat data packet to the mobile terminal by taking a set routing distance as the survival time of the heartbeat data packet, wherein the routing distance is greater than the distance of the heartbeat data packet passing through the firewall of the core network but less than the distance of the heartbeat data packet reaching the wireless communication network where the mobile terminal is located.
25. The gateway of claim 24, further comprising:
the route management module is used for judging whether a second long connection is established with an application server corresponding to an identification of the application server carried in an uplink data message or not in the uplink transmission process, inquiring other gateways which establish the second long connection with the corresponding application server from a DNS when the second long connection is not established, judging whether the mobile terminal is a locally registered mobile terminal or not in the downlink transmission process, and inquiring other gateways which the mobile terminal belongs to from the DNS when the mobile terminal is not the locally registered mobile terminal;
the transmission module is further configured to send the uplink data message or the downlink data message to the other gateways.
26. The gateway of claim 24, further comprising:
the proxy module is used for receiving a proxy request from the mobile terminal in the uplink transmission process, wherein the proxy request carries an identifier of an application server and a data volume of data to be transmitted, and when the data volume is determined to reach a threshold value, whether a second long connection is established with the corresponding application server or not is judged according to the identifier of the application server carried in the proxy request; in the downlink transmission process, receiving an agent request from an application server, wherein the agent request carries a first identifier of a mobile terminal and a data volume of data to be transmitted, and when the data volume reaches a threshold value, judging whether the corresponding mobile terminal is a locally registered mobile terminal according to the first identifier carried in the agent request;
the second connection module is specifically configured to, in an uplink transmission process, if a gateway has established a second long connection with a corresponding application server, establish a temporary long connection with the mobile terminal and the corresponding application server, receive the data to be transmitted from the mobile terminal through the temporary long connection with the mobile terminal, release the temporary long connection with the mobile terminal after transmission is completed, transmit the data to be transmitted to the application server through the temporary long connection with the application server, and release the temporary long connection with the application server after transmission is completed; otherwise, inquiring other gateways establishing second long connection with the corresponding application server from the DNS, respectively establishing temporary long connection with the mobile terminal and the other gateways, receiving the data to be transmitted from the mobile terminal through the temporary long connection with the mobile terminal, releasing the temporary long connection with the mobile terminal after the transmission is finished, transmitting the data to be transmitted to the other gateways through the temporary long connection with the other gateways, releasing the temporary long connection with the other gateways after the transmission is finished, respectively establishing temporary long connection with the corresponding mobile terminal and the application server sending the agent request if the corresponding mobile terminal is a locally registered mobile terminal in the downlink transmission process, and receiving the data to be transmitted from the application server through the temporary long connection with the application server, after the transmission is finished, releasing the temporary long connection with the application server, transmitting the data to be transmitted to the mobile terminal through the temporary long connection with the mobile terminal, and releasing the temporary long connection with the mobile terminal after the transmission is finished; otherwise, inquiring other gateways to which the corresponding mobile terminal belongs from the DNS, respectively establishing temporary long connections between the application server sending the agent request and the other gateways, receiving data to be transmitted from the application server through the temporary long connections between the application server and the other gateways, releasing the temporary long connections between the application server and the temporary long connections after the transmission is finished, transmitting the data to be transmitted to the other gateways through the temporary long connections between the data to be transmitted and the other gateways, and releasing the temporary long connections between the data to be transmitted and the other gateways after the transmission is finished.
27. A mobile terminal, characterized in that the mobile terminal comprises:
the interface module is used for establishing a first long connection with the gateway, and the first long connection transmits uplink data messages generated by any application program in the mobile terminal;
the data receiving and sending module is used for sending an uplink data message to the gateway through the first long connection, wherein the uplink data message carries the identifier of the application server, and receiving a downlink data message pushed by the gateway through the first long connection;
the gateway establishes temporary long connection for the data to be transmitted with the data volume reaching a threshold value to perform data transparent transmission;
and aiming at the first long connection, sending the heartbeat data packet to the mobile terminal by taking a set routing distance as the survival time of the heartbeat data packet, wherein the routing distance is greater than the distance of the heartbeat data packet passing through the firewall of the core network but less than the distance of the heartbeat data packet reaching the wireless communication network where the mobile terminal is located.
28. The mobile terminal of claim 27, further comprising:
the proxy request module is used for sending a proxy request to the gateway, wherein the proxy request carries the identifier of the application server and the data volume of the data to be transmitted;
and the IP proxy module is used for sending the data to be transmitted to the gateway through the temporary long connection and receiving the data to be transmitted pushed by the gateway through the temporary long connection.
29. The mobile terminal of claim 27, further comprising:
the management module is used for recording the identification of the locally installed application program and the identification of the application server corresponding to each application program, determining the identification of the corresponding application server after receiving the uplink data message generated by any application program, and carrying the identification of the application server in the uplink data message;
the wake-up module is used for determining an application program for receiving the downlink data message according to an application server identifier carried in the downlink data message when the downlink data message is received, inquiring whether the application program is in a running state, and if so, informing the application program to acquire the downlink data message; otherwise, the application program is awakened or started, and the awakened or started application program is informed to acquire the downlink data message.
30. An application server, comprising:
the interface module is used for establishing a second long connection with the gateway, and the second long connection transmits a downlink data message sent to any terminal by the application server; the gateway establishes temporary long connection for the data to be transmitted with the data volume reaching a threshold value to perform data transparent transmission;
the data receiving and sending module is used for receiving an uplink data message sent by the gateway through the second long connection and sending a downlink data message to the gateway through the second long connection, wherein the downlink data message carries a first identifier used when the mobile terminal is registered in the application server;
and aiming at the first long connection established between the gateway and the mobile terminal, sending the heartbeat data packet to the mobile terminal by taking the set routing distance as the survival time of the heartbeat data packet, wherein the routing distance is greater than the distance of the heartbeat data packet passing through the firewall of the core network but less than the distance of the heartbeat data packet reaching the wireless communication network where the mobile terminal is located.
31. An application server according to claim 30,
the interface module is also used for establishing temporary long connection with the gateway;
the data receiving and transmitting module is also used for receiving and transmitting data to be transmitted through temporary long connection.
CN201110113191.9A 2011-05-03 2011-05-03 The method of a kind of data transmission, system and equipment Active CN102769603B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110113191.9A CN102769603B (en) 2011-05-03 2011-05-03 The method of a kind of data transmission, system and equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110113191.9A CN102769603B (en) 2011-05-03 2011-05-03 The method of a kind of data transmission, system and equipment

Publications (2)

Publication Number Publication Date
CN102769603A CN102769603A (en) 2012-11-07
CN102769603B true CN102769603B (en) 2016-06-22

Family

ID=47096853

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110113191.9A Active CN102769603B (en) 2011-05-03 2011-05-03 The method of a kind of data transmission, system and equipment

Country Status (1)

Country Link
CN (1) CN102769603B (en)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103916936B (en) * 2013-01-04 2017-06-23 中国移动通信集团公司 Realize method, system and mobile terminal, the server of data connection long
CN103916832B (en) * 2013-01-05 2018-05-01 成都新橙北斗智联有限公司 The method and apparatus of Big Dipper bluetooth users terminal access mobile communications network
CN103297934B (en) * 2013-03-04 2017-05-31 东莞宇龙通信科技有限公司 Information-pushing method, system and mobile terminal
CN104303488A (en) * 2013-05-10 2015-01-21 华为技术有限公司 User plane event processing method, PCRF entity, and AF entity
CN108400946B (en) * 2013-06-11 2019-09-17 杭州硕文软件有限公司 It is a kind of for reducing the method, apparatus, system and medium of Internet traffic
CN104253739B (en) * 2013-06-28 2018-08-10 中国移动通信集团公司 A kind of implementation method, system and the equipment of always online business
CN104703146B (en) 2013-12-09 2019-03-08 腾讯科技(深圳)有限公司 Information-pushing method, client and system
CN103731933A (en) * 2014-01-10 2014-04-16 北京百度网讯科技有限公司 Wireless connection construction method and system and mobile terminal
CN104009938B (en) * 2014-06-17 2016-08-17 合一网络技术(北京)有限公司 The long method and system connected based on route aspect
CN105491173B (en) * 2014-09-18 2019-12-06 中国电信股份有限公司 DNS analysis method, server and network system
CN104468547B (en) * 2014-11-28 2019-03-15 北京奇安信科技有限公司 Establish the method, apparatus and system of long connection
CN107249181B (en) * 2017-05-19 2019-11-26 珠海市魅族科技有限公司 Contact number acquisition methods, device, terminal and non-volatile memory medium
CN107911390A (en) * 2017-12-14 2018-04-13 浪潮软件股份有限公司 Handle method, proxy server, application server and the system of service request
CN108769202A (en) * 2018-05-30 2018-11-06 维沃移动通信有限公司 A kind of information push method and its server and terminal device
CN110661673B (en) * 2018-06-28 2021-02-26 网宿科技股份有限公司 Heartbeat detection method and device
CN108965413B (en) * 2018-07-03 2021-08-03 北京小米移动软件有限公司 Information interaction method and device and storage medium
CN111327392B (en) * 2018-12-13 2021-06-01 电信科学技术研究院有限公司 Data transmission method and device
CN109639841A (en) * 2019-02-25 2019-04-16 北京云中融信网络科技有限公司 Network connection system and method
CN109831528A (en) * 2019-03-13 2019-05-31 南京钛佳汽车科技有限公司 A kind of data transmission method realizing automobile gateway and interconnecting
CN110011910B (en) * 2019-04-08 2022-01-18 陈鹏 Gateway communication system and gateway communication method supporting multi-protocol device access
CN110225106B (en) * 2019-06-04 2022-06-10 惠州Tcl移动通信有限公司 Data transmission method, device and storage medium
CN110493095B (en) * 2019-07-26 2021-12-03 广州至真信息科技有限公司 VPN service processing method, device, server and storage medium
CN110943886B (en) * 2019-11-29 2021-11-02 新华三技术有限公司 Performance data transmission method and device
CN111092911B (en) * 2019-12-31 2021-11-02 成都科来网络技术有限公司 Network agent realizing method for enhancing safety
CN111355916B (en) * 2020-02-17 2022-07-22 视联动力信息技术股份有限公司 Method, device, equipment and storage medium for establishing video networking communication connection
CN111866060A (en) * 2020-05-26 2020-10-30 普联国际有限公司 TLS (transport layer service) connection method of communication equipment, communication equipment and communication system
WO2022036650A1 (en) * 2020-08-20 2022-02-24 深圳市沃特沃德股份有限公司 Method for establishing ip data persistent connection, and 5g gateway device and computer device
CN112187899B (en) * 2020-09-18 2022-05-06 北京金山云网络技术有限公司 Cloud hosting communication method, device and system, computer equipment and storage medium
CN113280680A (en) * 2021-06-24 2021-08-20 北京盈想东方科技股份有限公司 Novel networking mode of precision target drone system
CN113676487B (en) * 2021-08-31 2022-09-02 中国电信股份有限公司 Port connection control method, management method, device and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101374116A (en) * 2007-08-23 2009-02-25 华为技术有限公司 Method and apparatus for implementing on-line business
WO2009082296A1 (en) * 2007-12-20 2009-07-02 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement to maintain a tcp connection
CN101959220A (en) * 2009-07-15 2011-01-26 中兴通讯股份有限公司 Management method and management system of centralized mobile agent server
CN102761864A (en) * 2011-04-29 2012-10-31 中国移动通信集团公司 Data transmission method, system and device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101374116A (en) * 2007-08-23 2009-02-25 华为技术有限公司 Method and apparatus for implementing on-line business
WO2009082296A1 (en) * 2007-12-20 2009-07-02 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement to maintain a tcp connection
CN101959220A (en) * 2009-07-15 2011-01-26 中兴通讯股份有限公司 Management method and management system of centralized mobile agent server
CN102761864A (en) * 2011-04-29 2012-10-31 中国移动通信集团公司 Data transmission method, system and device

Also Published As

Publication number Publication date
CN102769603A (en) 2012-11-07

Similar Documents

Publication Publication Date Title
CN102769603B (en) The method of a kind of data transmission, system and equipment
CN102761864B (en) Data transmission method, system and device
US7984492B2 (en) Methods and apparatus for policy enforcement in a wireless communication system
CN107135279B (en) Method and device for processing long connection establishment request
US8050218B2 (en) Mobile communications system PDIF and method for peer detection of mobile terminal
US9565635B2 (en) Activating a mobile terminal from mobile network side
JP2019525553A (en) Efficient delivery method and apparatus for low frequency small data
WO2011116718A2 (en) Method for controlling internet services, and relevant device and system
CN113692753B (en) Network device and method for searching edge service implemented in network device
CN103237039A (en) Message forwarding method and message forwarding device
US20200259783A1 (en) Method and apparatus for determining ethernet mac address
CN112165447A (en) WAF equipment-based network security monitoring method, system and electronic device
CN107623752B (en) Network management method and device based on link layer
CN105578440B (en) The transmission method and device of instant messaging business heartbeat packet in LTE system
CN101800677B (en) Processing device and method of bidirectional forwarding detection (BFD) messages
US9338611B2 (en) Wireless communication apparatus, data distribution apparatus, and data updating method
CN108781215B (en) Network service implementation method, service controller and communication system
EP3697070B1 (en) Apparatus, method and program for transmitting and receiving data to and from iot device
CN102769884A (en) Method and equipment for transmitting heartbeat packet based on always online of UPD (user datagram protocol )
WO2010091506A1 (en) Method and system for aggregating communications
EP2742738A1 (en) Transmitting data over multiple networks
CN105610619B (en) A kind of network element managing method and apparatus
CN115665042B (en) Data processing method, device, user plane functional entity and storage medium
CN112463204B (en) Pile service program gray level release method without perception of direct-connection charging pile
CN112738817B (en) Method and network device for keeping alive service connection of mobile device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant