Abstract:
A method for determining the performance of a communications network said method comprising the steps of transmitting a message from a mobile device to at least one server, each server within the at least one servers being configured to direct the message back to the mobile device; receiving at the mobile device the messages returned by each of the at least one server; calculating a time differential between transmission of the message by said mobile device and receipt of the messages, returned by each server of the at least one server, by said mobile device; and forwarding the calculated time differential to a primary server selected from the at least one server for storage is disclosed.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application is a Continuation Application of U.S. patent application Ser. No. 13/497,391 filed Mar. 21, 2012, which claims the benefit of International Application No. PCT/SG2010/000330 filed Sep. 7, 2010, which claims the benefit of SG Application No. 200906354-6 filed Sep. 24, 2009, the contents of each of which are incorporated herein by reference in their entireties and the benefits of each are fully claimed herein. 
     
    
     FIELD OF THE INVENTION 
       [0002]    The present invention relates to systems and methods for analysing the performance of a network. In particular, although not exclusively, the present invention relates to the provision of a network monitoring tool for mobile telecommunication systems. 
       BACKGROUND 
       [0003]    Mobile networks involve a very large number of components ranging from Radio Network Controllers to Gateway GPRS Support Nodes (GGSNs) with numerous firewalls, routers and other devices. Data services through mobile networks, of whatever underlying technology, remain a relatively recent development. Given this, mobile carriers are still developing procedures and tools to allow them to monitor, tune and upgrade these data networks. 
         [0004]    Typically carriers are able to implement a wide range of monitors and probes into the infrastructure of the packet core to monitor its performance. However there is no current way to provide ongoing monitoring of the “user experience” where the data network is concerned. A user&#39;s experience of data services can vary widely according to location and a various numbers of other factors. For example, a network packet core could be performing extremely well, but if the cell towers are aligned incorrectly then many users in a particular area could experience poor network performance. Providing a consistent user experience in this environment is problematic given the lack of visibility beyond the packet core. 
         [0005]    Clearly it would be advantageous to provide a monitoring tool that is capable of providing data on the performance of a network beyond the packet core. It would also be advantageous to provide a monitoring tool which may be deployed as a hidden payload to a carrier supplied mobile messaging client, so as to permit a large volume of tests to be performed across the entire network. 
       SUMMARY OF THE INVENTION 
       [0006]    In one aspect of the present invention there is provided a method for determining the performance of a communications network said method comprising the steps of: transmitting a message from a mobile device to one or more servers configured to direct the message back to the mobile device; receiving at the mobile device the messages returned by the said one or more servers; calculating a time differential between transmission of the message by said mobile device and receipt of the messages returned by the one or more servers by said mobile device; and forwarding the calculated time difference to a primary server selected from said one or more servers for storage. 
         [0007]    Suitably the message sent by the mobile device to the one or more servers includes the mobile device&#39;s identification number (MIN) which is registered with at least one of the servers. The message is kept sufficiently small to keep the process transparent from the user and to prevent unnecessary overhead that could adversely affect user experience. Suitably the message is more or less in the order of 100 bytes. 
         [0008]    Preferably, each of the servers apply a time stamp to the message when directing the message back to the mobile device to permit the monitoring tool to calculate the time for the outbound and inbound legs of the round trip for the message. 
         [0009]    The step of transmitting the message may be performed at regular intervals. Suitably the interval between each transmission of the message is set to keep the power consumption required in the process minimal so as not to adversely affect battery life of the mobile device. For example the interval between each transmission may be set to a period of 55 to 61 minutes. The primary server may instruct the mobile test client to vary the length of the interval between each transmission of the message based on network team test requirements or dynamically based on current network performance so as to obtain more detailed test data. 
         [0010]    The step of calculating the time differential may further include the steps of calculating the time between the initial send and the subsequent response for each test message. Alternatively the step of calculating the time differential may include the step of calculating a combined/average value for all servers within the one or more servers. Utilizing multiple servers may eliminate issues specific to a single server and allow a network service provider to hone in on a network specific issue rather than a single anomaly within a given sector. 
         [0011]    Suitably the step of forwarding the calculated time difference to the primary server further includes forwarding information on the type of mobile device, the application used to send the message, the mode of connection between the mobile device and the communications network, the User ID of the mobile subscriber, the Identification Number of the mobile device etc, cell identification and sector number in which the mobile is located. 
         [0012]    The method may further include the step of formulating reports based on the time differential and the type of mobile device, the application used to send the message, the mode of connection between the mobile device and the communications network, the User ID of the mobile subscriber, the Identification Number of the mobile device etc. Preferably the reporting is in the form of an Excel extract of the raw data for 24 hours on a daily basis. Suitably the reports are provided in real-time or near real-time via web page via daily, SMS, email or the like. Preferably, the reports include information identifying performance issues in specific cell sites and cell site sectors to allow carriers to target scarce resources where they can provide most benefit to consumers. 
         [0013]    The method may also include the step of forwarding a set time differential to the primary server, the set time interval being indicative of a timeout event wherein the return message from the servers have not been received by the mobile device within a preset period. Preferably the preset period is initially set to 10 minutes, although such preset period may be varied to such period as may be optimal for its purpose. The primary server may vary the preset period in accordance with a variation of the predetermined period. Alternatively a timeout event may be indicated by way of a code in the transaction to the primary server. 
         [0014]    Suitably the method may be implemented with no end user interaction. In such cases the mobile device includes a dedicated application which causes the mobile device to send messages to the servers at regular intervals. The application being in communication with the primary server and responsive to instructions transmitted from the server to alter the intervals at which it transmits messages to the servers. Alternatively a method of monitoring may be manually activated by a user of the mobile device via one or more user screens. 
         [0015]    Where the method is implemented via a dedicated application installed on the mobile device the application may utilise one or more auxiliary applications on the mobile device to send messages to the one or more servers. The primary server may deactivate the dedicated application when further monitoring is not required. In such instances the servers may set the transmission intervals to a large time frame, for example 9999 minutes. Alternatively the primary server may send a specific instruction to the mobile client application to stop monitoring. Where the test client application is hidden within another application such as a mobile messaging application, the mobile network carrier must ensure no inconvenience results to the consumer. Suitably this would include ensuring the consumer is not charged for any data usage resulting from the monitoring tool. Further, test volumes must be kept to a low level to minimise battery consumption or any other impact on the consumer&#39;s mobile experience. 
         [0016]    Throughout the specification the term “comprising” shall be understood to have a broad meaning similar to the term “including” and will be understood to imply the inclusion of a stated integer or step or group of integers or steps but not the exclusion of any other integer or step or group of integers or steps. This definition also applies to variations on the term “comprising” such as “comprise” and “comprises”. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0017]    In order that this invention may be more readily understood and put into practical effect, reference will now be made to the accompanying drawings, which illustrate preferred embodiments of the invention, and wherein: 
           [0018]      FIG. 1  is a schematic diagram depicting the operation of a network monitoring tool according to one embodiment of the present invention; 
           [0019]      FIG. 2  is a schematic diagram depicting the operation of a network monitoring tool according to a further embodiment of the present invention; 
           [0020]      FIG. 3  is a schematic diagram depicting the transaction flow for the network monitoring tool according to one embodiment of the present invention; 
           [0021]      FIG. 4  is a schematic diagram depicting of the operation of a network monitoring tool according to another embodiment of the present invention; and 
           [0022]      FIGS. 5A to 5C  are a series of users screens for use in the network monitoring tool according to one embodiment of the present invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0023]    With reference to  FIG. 1  there is illustrated the operation of a network monitoring tool according to one embodiment of the present invention. In this example the monitoring tool is deployed as an application on a mobile device roaming within a network. As shown the network monitoring tool causes the mobile device  101  to send a message  104  to a server  102  (known as the connect server) associated with the network. The message  104  is at least 100 bytes and contains the mobile device identification number (MIN) which is registered with the connect server  102 . Transmitting a message of a reasonable size, such as 100 bytes, ensures that the monitoring tool can, with some degree of accuracy establish a base line for network performance which can be factored into later analysis. 
         [0024]    On receipt of the message  104  the connect server  102  immediately forwards the message back  105  to the mobile device  101 . The network monitoring tool then calculates the Round Trip Time (RTT) of the message by comparing the time stamps applied by the mobile device to the sent and received messages to determine the total elapsed time. The round trip time information is then forwarded  106  to the connect server  102  for storage in database  107  for logging and reporting purposes. 
         [0025]      FIG. 2  depicts the operation of a network monitoring tool according to a further embodiment of the present invention. In this particular example the network monitoring tool causes the mobile device  101  to simultaneously send a message  104 ,  204  to the connect server  102  and a second server  202  known as the dedicated RTT server. On receipt of the message both the connect server  102  and the RTT server  202  forward the message directly back to the mobile device  105 ,  205 . On receipt of the return messages from both the connect and RTT servers  102 ,  202  the mobile device then proceeds to calculate the Round Trip Time. 
         [0026]    While the calculated RTT in this instance may not be an entirely accurate view of the actual RTT, it will however, provide a measure of the general health of the network and once trends are established can be used to identify periods of good or poor performance relative to the baseline. 
         [0027]      FIG. 3  depicts the transaction flow for the RTT calculation and reporting process according to one embodiment of the present invention. As shown the mobile device firstly opens via a mobile client a HTTP connection  500  to the network  501 , if one is not already open. The network  501  creates the required Packet Data Protocol (PDP) context for the new HTTP connection  502 . Once the HTTP connection is established the mobile client sends  503  RTT test data, in the form of messages  104 ,  204 , to the connect server  102  and RTT server  202  using the TCP protocol. The mobile client then waits  513  for the reply for both the connect and RTT servers  102 ,  202 . 
         [0028]    On receipt of the RTT test data  504  the connect server  102  sends an RTT reply  505  in the form of message  105 . Likewise the RTT server  202  on receipt of the RTT test data  506  the RTT server  202  sends an RTT reply  507  in the form of message  205 . On receipt  508  of the messages  105 ,  205  the mobile client then calculates the RTT times  509 . Once the mobile client has calculated the RTT times it proceeds to send an RTT report  510  to the RTT server  202  via message  106 . The RTT server  202  then saves the report  511  to a database. Once this is complete the RTT server  202  may then proceed to send a reply message  512  to the mobile client via message  108 . The message  108  may contain RTT summary data which the mobile client can then display  514  on the mobile device&#39;s screen. 
         [0029]    One example of the network monitoring tool in use is shown in  FIG. 4 . In this case the network monitoring tool is as an application deployed on a plurality of mobile handsets roaming within a mobile communications network. For clarity of description the following discussion will focus on the calculation of the Round Trip Time (RTT) for a single cell with the network servicing plurality of mobile telephones. As shown the cell  300  is composed of three sectors  301 ,  302 ,  303 . The cell being coupled through the network core to the connect server  102  and the RTT server  202 . 
         [0030]    In this example the first slot  301  of the cell  300  is servicing two handsets  101   a ,  101   b  while the second and third slots  302 ,  303  each service a single handset  101   c ,  101   d . As shown mobile device  101   a ,  101   b ,  101   c  each send a message  104   a ,  104   b ,  104   c  to the connect server  102  the connect server  102  then forwards each message  105   a ,  105   b ,  105   c  directly back to the respective mobile devices  101   a ,  101   b ,  101   c . As with the case of the above examples each of the mobile devices running the mobile application may simultaneously send a message  204   a ,  204   b ,  204   c  to the RTT server  202 , the RTT server  202  immediately forwards each message back to the relevant mobile devices  205   a ,  205   b ,  205   c.    
         [0031]    Alternatively the network monitoring application may wait for a timer to complete before opening a connection to the RTT server  202 . The timer is set to a predetermined time interval, the length of the predetermined time interval is based on a number of factors such as the number of devices being sampled within the network, power consumption of the devices etc. The timer in effect controls the sampling rate for RTT data from the mobile device i.e. dictates send times of the message to facilitate the RTT calculation. In either case the sampling time is kept large given the potential volume of samples that may be taken and to reduce the impact on the mobile device. In the example illustrated in  FIG. 4  the predetermined time interval is initially set to a period of 61 minutes. It is proposed that the RTT server may dynamically increase the sampling rate by reducing the predetermined time interval, particular in areas where it can be seen as potential network trouble spots in order to increase the data available on these areas for further analysis. 
         [0032]    Since the objective of the monitor is to identify anomalous Round Trip Times, as well as to monitor regular network performance, the timeout for the message to be returned from the RTT server should be set as long as possible given network communication constraints but no longer than the time between tests (i.e. no longer than predetermined period). To ensure “Lag” situations are captured a suitable timeout value would be 10 minutes. A 10 minute timeout period is long enough to capture a typical “lag event” where data transmission is interrupted for a period (for example due to cell congestion). A longer timeout is more likely to result in the user logging out of the device so that the sample is lost. The timeout value should be configurable from the RTT server, however, the timeout set by the RTT server may be overridden by the mobile device if it is longer than the current predetermined interval time (sampling interval). Should the timeout be reached then this data sample should be reported as the timeout time. For example, if the timeout is 10 minutes and no response is received in that time interval then the RTT report should show that sample as 10 minutes for the Round Trip Time. 
         [0033]    On receipt of the relevant return messages from the servers  102 ,  202  each of the mobile devices  101   a ,  101   b ,  101   c  proceeds to calculate the RTT. Once each mobile device  101   a ,  101   b ,  101   c  has calculated the relevant Round Trip Time (RTT) they proceed to forward messages  106   a ,  106   b ,  106   c  containing the relevant RTT information to the connect server  102 . In addition to the RTT information, the messages  106   a ,  106   b ,  106   c  also includes the User ID of the mobile subscriber, the Mobile Identification Number (MIN) of the device doing the test, the connection details for the mobile device (GSM/UMTS/etc and Application used), phone model etc. The message may further include information concerning outbound time from the server to the mobile device, inbound time from the mobile device to the server and packet loss i.e. number of packets lost that have to be re-transmitted. A short listing of the desirable information fields for the RTT reporting message is shown in Table 1 below. 
         [0034]    Initial reporting will be an excel extract of the raw data for 24 hours on a daily basis from 12:00 midnight to midnight. Server results should be available as follows: Via real time web page; via daily reports (see layout below); Via excel format extracts (see layout and options below); via real time alert SMS to a defined list of mobile numbers when thresholds are breached. The reports indicate the spread of RTT times by cell site/sector. Thus it is possible to identify sites or sectors that are experiencing higher than acceptable RTT times. These sites should then be targeted for more detailed analysis by the network team. 
         [0000]    
       
         
               
             
               
               
               
             
           
               
                 TABLE 1 
               
             
             
               
                   
               
               
                 RTT Reporting Message Fields 
               
             
          
           
               
                   
                 Report Field 
                 Description/Purpose 
               
               
                   
                   
               
               
                   
                 Time/date 
                 Time/date report was sent from 
               
               
                   
                   
                 client (this will be shortly after the 
               
               
                   
                   
                 ping however is more consistent 
               
               
                   
                   
                 than using the time of the mobile 
               
               
                   
                   
                 device). 
               
               
                   
                 User ID 
                 User logged on to this client 
               
               
                   
                 MIN 
                 Mobile Identification Number 
               
               
                   
                 APN 
                 Application used to send RTT 
               
               
                   
                   
                 message (could be Smart1, Smart 
               
               
                   
                   
                 Internet or any other carriers 
               
               
                   
                   
                 Application) 
               
               
                   
                 Mode (2G/3G/3.5G) 
                 Ensure system can cater for future 
               
               
                   
                   
                 e.g. LTE, WiFi, Other? 
               
               
                   
                 RTT to Connect server 
                 In ms 
               
               
                   
                 RTT to RTT server 
                 In ms 
               
               
                   
                 Phone Model 
                 Only Symbian s60/3 rd  at present 
               
               
                   
                   
               
             
          
         
       
     
         [0035]    The server has the option to turn off the RTT testing from either for all or selected user ID&#39;s. In particular it should be possible to only have the tool turned on for specific users. This can be simply achieved by setting the RTT timer interval to 9999 minutes. 
         [0036]    In one iteration of the tool, the monitoring client software is incorporated into a messaging application which, in a Symbian s60 phone is designed to operate as “always on” and connected to the mobile internet. The messaging application provides a framework that supports sending and receiving messages as well as optionally providing RTT reporting back to the mobile user by way of EM type messages. EM stands for Extended Messaging and is a proprietary form of Internet based instant messaging. 
         [0037]    In the production version of the tool, no RTT information is to be visible to the mobile client user. In test versions, however, a user is to be able to select Round Trip time, from the Settings menu which will result in a transaction being sent to the server requesting current RTT information. This information is provided in an EM type response from the RTT Bot.  FIG. 5A to 5C  depict a series of user screens  400  of a test version of the network monitoring tool according to one embodiment of the present invention. 
         [0038]    As illustrated in  FIG. 5A  the user has activated an options menu  401  within the display screen  400 . To commence testing the user highlights the option ‘Round Trip Time’ from the listing  402  and the presses the select button  403 . Once the Round Trip Time is selected, a message  405  is displayed on the user screen informing the user that the RTT request has been sent as shown in  FIG. 5B . In order to dismiss the message, the user then selects the OK button  406 . 
         [0039]    After the monitoring tool has calculated the round trip time from the information obtained from the return messages, the relevant information is then displayed to the user  407  (see  FIG. 5C ). As illustrated in the example of  FIG. 5C  the RTT reporting message in this instance includes the date and time at which the sample was taken, the phone model, the date and time of the previous test, the RTT for the current test (connect RTT and Reg RTT), the application used, type of network access (in this case GSM) and the average RTT for the day (average connect RTT and average Reg RTT). 
         [0040]    As mentioned above the analysis tool may be utilised to identify lag events within the network. In such instances each message transaction to another mobile is treated somewhat like the RTT test data discussed above. 
         [0041]    Under lag testing conditions the sending client records the time when it sent each message (ts) and then records the time when the acknowledgment is received. The client is then able to calculate the duration (td) since original message was sent to the other client. This RTT time may be impacted by any kind of network issues including lag. The impact could be either the sending device or the receiving device. 
         [0042]    To optimize the amount of data captured by such a testing approach the client compares the duration td with a reporting threshold value (for example 3 minutes). If td exceeds the threshold, then the sending client transmits a notification to the RTT server to be stored and collated. Suitably the lag threshold, as with all similar parameter data, should be easily modifiable and may be set by the RTT server. The report may include such information as, the userid of sender and receiver, td (effectively RTT to the other client), cell site of reporting client (if known), phone model of reporting client and the MIN of sender and receiver. 
         [0043]    It will be appreciated by those of skill in the art that the lag testing may also be performed at the connect server. Initiating testing in this manner would allow the server to calculate response times for every transaction as well as to identify which device of a pair is actually experiencing lag. 
         [0044]    It is to be understood that the above embodiments have been provided only by way of exemplification of this invention, and that further modifications and improvements thereto, as would be apparent to persons skilled in the relevant art, are deemed to fall within the broad scope and ambit of the present invention described herein.