Abstract:
A method and system for testing a Local Area Network (LAN) coupled to a satellite network through a Customer Premises Equipment (CPE) is disclosed. The method includes: providing a LAN diagnostics tool disposed on the CPE for executing a plurality of tests; receiving, at the LAN diagnostics tool, a test request comprising an execution environment indicator; selecting a test agent based on the execution environment indicator; sending in response to the test request, from the LAN diagnostics tool, the selected test agent; and testing the LAN with communications between the LAN diagnostics tool and the selected test agent being executed on a device connected to the LAN.

Description:
FIELD 
       [0001]    The present disclosure relates to a method and a system for network diagnostic tests to determine a cause of poor service performance for an Internet connection. In particular, the present disclosure provides a system and method for remotely measuring network metrics, such as, throughput performance, packet loss rate, latency and the like, between various network devices on the in-home network to determine a root cause of the performance issue. 
       BACKGROUND 
       [0002]    An Internet Service Provider (ISP) may receive customer service calls complaining of poor service performance. Perceived poor performance may be a result of problems over the ISP transport, problems with the terrestrial internet hosts or networks being accessed, problems within the customer home network or equipment, or problems due to unrealistic customer expectations. Prior performance diagnostics tools deal primarily with WAN network connections, without specifically measuring performance of the LAN network. 
         [0003]    Prior LAN diagnostics tools test only the throughput, and not the quality of the in-home connection. Moreover, prior LAN diagnostics tools do not store the prior test data for further analysis. In addition, prior LAN diagnostics tools do not have the ability for the user to annotate the test. 
       SUMMARY 
       [0004]    This Summary is provided to introduce a selection of concepts in a simplified form that is further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. 
         [0005]    A method for testing a Local Area Network (LAN) coupled to a satellite network through a Customer Premises Equipment (CPE) is disclosed. The method includes: providing a LAN diagnostics tool disposed on the CPE for executing a plurality of tests; receiving, at the LAN diagnostics tool, a test request comprising an execution environment indicator; selecting a test agent based on the execution environment indicator; sending in response to the test request, from the LAN diagnostics tool, the selected test agent; and testing the LAN with communications between the LAN diagnostics tool and the selected test agent being executed on a device connected to the LAN. 
         [0006]    A system to test a Local Area Network (LAN) coupled to a satellite network through a Customer Premises Equipment (CPE) is disclosed. The system includes: a LAN diagnostics tool disposed on the CPE for executing a plurality of tests; and a test request, received at the LAN diagnostics tool, comprising an execution environment indicator. In the system, the LAN diagnostics tool is configured to select a test agent based on the execution environment indicator, is configured to send the selected test agent, and is configured to test the LAN with communications between the LAN diagnostics tool and the selected test agent being executed on a device connected to the LAN. 
         [0007]    Additional features will be set forth in the description that follows, and in part will be apparent from the description, or may be learned by practice of what is described. 
     
    
     
       DRAWINGS 
         [0008]    In order to describe the manner in which the above-recited and other advantages and features may be obtained, a more particular description is provided below and will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments and are not therefore to be considered to be limiting of its scope, implementations will be described and explained with additional specificity and detail through the use of the accompanying drawings. 
           [0009]      FIG. 1  illustrates a method for testing a network according to various embodiments. 
           [0010]      FIG. 2  illustrates a logical view of a network testing system including a Local Area Network (LAN) diagnostics tool, and an illustrative method to test a network according to various embodiments. 
           [0011]      FIG. 3  illustrates a logical view of a network testing system including a Local Area Network (LAN) diagnostics tool, and an illustrative method to test a network according to various embodiments. 
       
    
    
     DETAILED DESCRIPTION 
       [0012]    Embodiments are discussed in detail below. While specific implementations are discussed, it should be understood that this is done for illustration purposes only. A person skilled in the relevant art will recognize that other components and configurations may be used without parting from the spirit and scope of the subject matter of this disclosure. 
         [0013]    The terminology used herein is for describing particular embodiments only and is not intended to be limiting of the present disclosure. As used herein, the singular forms “a,” “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. Furthermore, the use of the terms a, an, etc. does not denote a limitation of quantity, but rather denotes the presence of at least one of the referenced item. The use of the terms “first,” “second,” and the like does not imply any particular order, but they are included to either identify individual elements or to distinguish one element from another. It will be further understood that the terms “comprises” and/or “comprising”, or “includes” and/or “including” when used in this specification, specify the presence of stated features, regions, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, regions, integers, steps, operations, elements, components, and/or groups thereof Although some features may be described with respect to individual exemplary embodiments, aspects need not be limited thereto such that features from one or more exemplary embodiments may be combinable with other features from one or more exemplary embodiments. 
         [0014]    An Internet service provider (ISP) may need to perform in-home network diagnostic tests to determine a cause of network performance issues. The present teachings disclose running various diagnostics including: 
         [0015]    Test the performance of an in-home network by measuring throughput from an ISP Customer Premises Equipment (CPE) to an end user device. 
         [0016]    Test the performance of an in-home network by measuring throughput from the end user device to the ISP CPE. 
         [0017]    Test the quality of the in-home wireless/wired network by measuring a packet loss rate from ISP CPE to the end user device. 
         [0018]    Test the quality of the in-home wireless/wired network by measuring the packet loss rate from end user device to the ISP CPE. 
         [0019]    Test the quality of the in-home wireless/wired network by measuring the round trip delay 
         [0020]    In exemplary embodiments, the ISP CPE may be a satellite modem. 
         [0021]    In some embodiments, the present method may be run from any device on the network. In some embodiments, the present method may capture results and provide them to a remote customer service agent. In some embodiments, the present method may rate an in-home network quality based on historical and recent test results. In some embodiments, the present method may record and display current and past results. In some embodiments, the present method may allow an end user to annotate results with metadata on the test. 
         [0022]    The present teachings provide a unique and integrated method to determine if performance problems are due to the customer home network or equipment, allowing the customer to make this diagnosis. In some embodiments, the diagnosis may be performed without calling the ISP customer service. In some embodiments, the method may enable a Customer Service Representative (CSR) to assist the customer to localize in-home problems. These abilities can improve customer satisfaction and reduce customer service costs. 
         [0023]    The present teachings provide for establishing a network connection, for example, a TCP connection, between a diagnostics application running on an Internet Service Provider&#39;s (ISP&#39;s) Consumer Premises Equipment (CPE) and a client application running on a user&#39;s equipment. In exemplary embodiments, the ISP provides Internet service via a satellite or a High Altitude Platform (HAP). The connection is used to measure the in-home network quality and performance in order to diagnose network connectivity and throughput issues. 
         [0024]    In exemplary embodiments, the diagnostics application automatically detects and determines if the user&#39;s equipment is capable of running the client application, for example, as a Java applet. In exemplary embodiments, the diagnostics application may offer a more ubiquitous client application execution environment, when a first client application execution environment is unavailable, for example, by using a JAVASCRIPT-based method when a JAVA-based execution environment is unavailable. The results of the diagnostics may be are recorded in a non-volatile storage of the ISP CPE. In exemplary embodiments, the results may be used for later analysis by an ISP representative, for example, a customer service representative. 
         [0025]    The performance test maybe implemented using various technologies, for example, via JavaScript, via a JAVA applet or the like. 
         [0026]      FIG. 1  illustrates a method for testing a network according to various embodiments. 
         [0027]    In exemplary embodiments, a method  100  is provided. The method  100  includes a step  102  for providing a web server on a Customer Premises Equipment (CPE). 
         [0028]    The method  100  further includes a step  110  for connecting to a LAN diagnostic tool hosted by the CPE web server from a User Equipment (UE). In exemplary embodiments, the method  100  further includes a step  112  for connecting the LAN diagnostic tool request to a Common Gateway Interface (CGI) script on the web server. In some embodiments, the web server can communicate with diagnostics services with interfaces other than CGI. In exemplary embodiments, the method  100  further includes a step  114  for determining if JAVA is supported on the UE. The step  114  may be performed via a script executed on the UE and the script&#39;s results are provided to the CPE web server. The method  100  further includes a step  116  for selecting a test agent to be sent to the UE based on the script&#39;s results. 
         [0029]    In exemplary embodiments, the method  100  further includes a step  120  for running a JAVA version of the LAN diagnostic tool when possible. In these embodiments, the CGI or web server can select and provide a LAN diagnostics applet to the UE. In exemplary embodiments, the LAN diagnostics applet maybe a JAVA applet. The method  100  may further include a step  122  for executing a LAN diagnostic app on the CPE. Step  122  may be initiated in response to a user initiating a diagnostics request from a UE via the CPE web server. The method  100  also includes a step  124  for executing a LAN diagnostics applet on the UE. 
         [0030]    In exemplary embodiments, the method  100  may include a step  130  for running a JavaScript LAN Diagnostic Tool on the UE, for example, when the UE does not support a correct version of JAVA. In these embodiments, the CGI or web server can select and provide a JavaScript LAN Diagnostic Tool as the test agent to the UE. The method  100  may further include a step  132  for executing the LAN diagnostic tests on the CPE web server. Step  132  may be initiated in response to a user initiating a diagnostics request from a UE via the CPE web server. The method  100  also includes a step  134  for executing LAN Diagnostics in a UE web browser. 
         [0031]    The method  100  includes a step  140  for testing. The testing  140  may include a step  142  for measuring thru-put from CPE to UE. The testing  140  may include a step  144  for measuring thru-put from UE to CPE. The testing  140  may include a step  146  for measuring a packet loss rate from CPE to UE. The testing  140  may include a step  148  for measuring a packet loss rate from UE to CPE. The testing  140  may include a step  149  for measuring a round trip delay between the UE and CPE. 
         [0032]    The method  100  includes a step  150  for storing test results. In exemplary embodiments, after storing test results at step  150 , the method  100  can include a step  152  for analyzing the test results for possible solutions. The method  100  can include a step  154  for displaying the test results to customer service. The method  100  can include a step  156  for displaying the test results to a user. By displaying the test results to a user, a user can make an informed decision to remedy thru-put and latency issues in the local network prior to contacting an ISP&#39;s customer service center. By displaying the test results to a user, a customer service representative can provide verifiable information on whether the thru-put and/or latency issues are with the customer&#39;s network or with the ISP&#39;s network. 
       Embodiment 1—JAVA Armlet 
       [0033]    When, for example, a JAVA applet is used to implement the present teachings, the JAVA may perform precise speed measurement by cutting down the connection establishment and teardown times for the various tests. Typically, a Customer Premises Equipment (CPE), such as a satellite modem, has a small memory and processor footprint, and as such small data files are used to test a connection speed. With the small data file sizes, the establishment and teardown times remain low in these devices. 
         [0034]      FIG. 2  illustrates a logical view of a network testing system including a Local Area Network (LAN) diagnostics tool, and an illustrative method to test a network according to various embodiments. 
         [0035]    In  FIG. 2 , an arrow indicates a direction from an event initiator to an event actioner. The arrow may encapsulate multiple communications between the event initiator and the event actioner to perform the step or function associated with the event. 
         [0036]    A network testing system  200  may be implemented using a Customer Premises Equipment (CPE)  202 , where the CPE provides a gateway between a satellite-based communications network and a local area network. In exemplary embodiments, the CPE  202  may be a satellite modem. A Local Area Network (LAN) diagnostics tool  210  may be included with the CPE  202  and the CPE  202  may be networked with user equipment  220  over a LAN. 
         [0037]    The LAN diagnostics tool  210  may automatically detect technical capabilities of the user equipment  220 . For example, the LAN diagnostics tool  210  may detect and determine whether the user equipment  220  supports a correct technology and a version level, for example, a JAVA version. The LAN diagnostics test tool  210  may automatically detect whether the user equipment  220  has the necessary permissions and/or privileges to run a client application on a user device, for example, a JAVA applet. If so, the LAN diagnostics tool  210  performs testing of the network testing system  200  using the steps illustrated in  FIG. 2 , for example, with a JAVA applet. 
         [0038]    The network testing system  200  may implement a method. The method may include a user equipment  220  initiating an event  21  via a request from a web browser  222  disposed in the user equipment  222 . In exemplary embodiments, the user equipment  220  may include a personal computer, a mobile device, or the like. The CPE  202  receives event  21 , processes event  21 , and initiates the LAN Diagnostics test  210 . Handling of the event  21  may be implemented via a web server  212 , such as, a HTTP server. In response to the event  21 , the web server  212  at the CPE spawns a LAN diagnostics Common Gateway Interface (CGI)  214  process at event  22 . Per event  22 , the LAN Diagnostics CGI  214  process sends out LAN Diagnostics applet to the requesting web browser  222  via the web server  212  at event  23 . The Web browser  222  receives the applet code at event  24 . The web browser  222  spawns the LAN diagnostics applet  224  as a separate process. 
         [0039]    The LAN Diagnostics Java applet  224  establishes a network connection, for example, a TCP connection with the LAN diagnostics application  216  to perform the test. The LAN Diagnostics Java applet  224  sends the results of the tests to the LAN Diagnostics application  216  for storing a test result. 
       Embodiment 2—JavaScript 
       [0040]    If the appropriate JAVA version is not installed or the required permission to run the JAVA applet is not given, then the LAN diagnostics tool  210  may automatically performs testing of the communication system  200  using the steps illustrated in  FIG. 2 , for example, with a JavaScript method embedded in the LAN Diagnostics web page to perform the LAN diagnostics. 
         [0041]      FIG. 3  illustrates a logical view of a network testing system including a Local Area Network (LAN) diagnostics tool, and an illustrative method to test a network according to various embodiments. 
         [0042]    A network testing system  300  may be implemented using a Customer Premises Equipment (CPE)  302 , where the CPE provides a gateway between a satellite-based communications network and a local area network. In exemplary embodiments, the CPE  302  may be a satellite modem. A Local Area Network (LAN) diagnostics tool  310  may be included with the CPE  302  and the CPE  302  may be networked with user equipment  320  over a LAN. 
         [0043]    The LAN diagnostics tool  310  may automatically detect technical capabilities of the user equipment  320 . The network testing system  300  may implement a method. The method may include a user equipment  320  initiating an event  31  via a request from a web browser  322  disposed in the user equipment  320 . In exemplary embodiments, the user equipment  320  may include a personal computer, a mobile device, or the like. The CPE  302  receives event  31 , processes event  31 , and initiates the LAN Diagnostics test  310 . Handling of the event  31  may be implemented via a web server  312 , such as, a HTTP server. 
         [0044]    In response to the event  31 , the web server  312  at the CPE spawns a LAN diagnostics Common Gateway Interface (CGI)  314  process at event  32 . In response to event  32 , the LAN Diagnostics CGI  314  process sends out an HTML script including LAN Diagnostics JavaScript  324  to the requesting web browser  322  via the web server  312  at event  33 . The web browser  322  receives the HTML script including the LAN Diagnostics JavaScript  324  at event  34 . The web browser  322  executes the LAN Diagnostics JavaScript  324  within its process context. The LAN Diagnostics JavaScript  324  establishes a network connection, for example, a TCP connection with the LAN diagnostics CGI  314  to perform the testing. The LAN Diagnostics JavaScript  324  sends the results of the tests to the LAN Diagnostics CGI  314  for storing a test result. 
         [0045]    Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms for implementing the claims. 
         [0046]    Although the above descriptions may contain specific details, they should not be construed as limiting the claims in any way. Other configurations of the described embodiments are part of the scope of this disclosure. Further, implementations consistent with the subject matter of this disclosure may have more or fewer acts than as described, or may implement acts in a different order than as shown. Accordingly, the appended claims and their legal equivalents should only define the invention, rather than any specific examples given.