Not applicable.
The present disclosure relates generally to network devices.
Service providers deliver many different types of services to consumers over broadband networks, including video (e.g., television, movies, sporting events), music, telephone, and Internet data service. These services are received and/or consumed using various electronics devices such as set-top boxes, digital home communications terminals, residential gateways, digital music receivers, personal computers, personal digital assistants, digital telephones, etc. Since the provider typically charges a subscriber for these services, theft of service is generally a concern for providers. Theft may be outright, as when the electronic device is cloned, and both the clone and the original receive the service, or the theft may be a result of “subletting” or renting a device. For example, depending on the pricing structure of the service, the service provider may lose revenue when a subscriber registers more than one device with the service provider, then “sublets” or rents one of the devices to a neighbor. Thus, a need arises for these and other concerns to be addressed.
Many aspects of the disclosure can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure.
Overview
The embodiments disclosed herein provide systems and methods for detecting non-colocated subscriber devices. One such embodiment is a method comprising receiving address configuration information for each of a plurality of subscriber devices associated with the same customer account. The method also comprises identifying, using the address configuration information, any of the subscriber devices that are not colocated with the other subscriber devices associated with the same customer account.
Example Embodiments
Each subscriber device 110 resides at a particular physical location or customer premise 170, and each customer premise is connected to access network 145 via a subscriber line 180. Multiple subscriber devices 110 can reside at the same customer premise 170 and thus receive services over the same subscriber line 180. In the example environment of
DNCS 130 controls access to system services by requiring each subscriber device 110 to register with DNCS 130 after start up. During log-on, DNCS 130 identifies the subscriber device 110, and before providing services to that subscriber device 110, DNCS 130 verifies that the subscriber device 110 is associated with a customer account. Using techniques described herein, detection logic 190 within DNCS 130 determines whether all subscriber devices 110 registered for a particular account are also located at the customer premise associated with that account. (The log-on and detection processes will be explained in further detail in connection with
Identification of non-colocated subscriber devices 110 through detection logic 190 allows the service provider to avoid potential revenue loss. For example, consider the following price structure whereby a service provider charges $40 per month for service to one subscriber device at a single customer premise, plus $7 per month for each additional subscriber device at that customer premise. Thus, when both customer premises 170-1 and 170-2 sign up for service for all their devices, the service provider would expect revenue of $40+$7 ($47) from customer premise 170-1 and $40+2×$7 ($54) from customer premise 170-2, for a total of $101 per month. However, this price structure also creates an incentive for the two customers to reach an alternative arrangement where one customer pays for all five devices, then “sublets” one or more of the devices to the other customer premise. Without detection logic 190, customer premise 170-1 could sign up to receive service for five devices (110-A . . . E)—even though only two of these devices (110A and 110B) are actually located at customer premise 170-1, while the remaining devices (110-C, D, and E) are located at the other customer premise 170-2. In this scenario, the total monthly revenue is only $54. Monthly revenue from customer premise 170-1 is increased to $40+2×$7 ($54), but the provider receives no revenue at all from customer premise 170-2. The techniques described herein allow service providers to detect the presence of a subscriber device located at a premise that is different than the registered premise (e.g., non-colocated), thus avoiding this revenue loss of $47 per month. The techniques are also applicable to detect the delivery of enhanced or premium services to subscriber devices located at a premise that has registered for a basic, but not an enhanced or premium service. Such techniques are also applicable to detect the delivery of services to a greater number of subscriber devices than a customer has registered for.
As should be known to a person of ordinary skill in the art, various network arrangements or topologies can be used between the network edge and the customer premise 170. Several such configurations are illustrated in
Though the topologies of
Similarly, subscriber gateway 210R-2 acts as a router for subnetwork 260, which contains subscriber devices 110-B and 110-C as well as the router itself. In this example, subnetwork 260 has IP address range 188.0.1.X, subscriber gateway 210R-2 has IP address 188.0.1.1, subscriber device 110-B has IP address 188.0.1.4, and subscriber device 110-C has IP address 188.0.1.2.
Processing continues at block 320, which begins a process of comparing address information for the various subscriber devices 110, and detecting differences among them. At block 320, the NAT flag is checked (if present). If NAT is enabled, processing continues at block 330, where the IP addresses of all subscriber devices 110 that are associated with the same customer account are compared. In a NAT configuration, the subscriber gateway maps each subscriber device's private IP address to the same public IP address (typically, one associated with the gateway or with the NAT functionality residing in the gateway). Thus, if any device 110 has a different address than the others, this is a relatively strong indication that the offending device is not colocated with the others, so a caution level is set at block 350, and processing continues at block 340. In this embodiment, the caution level is set to High at block 350, since this is a relatively strong indication that non-colocation has been detected among devices using NAT. However, other caution levels may be used. Returning to the IP address check at block 330, if all devices 110 in the group have the same (translated) IP address, the caution level is not modified, but an additional level of detection is performed at block 340.
Returning now to the NAT check at block 320, if NAT is not in use, then processing continues at block 360, where the IP addresses of all subscriber devices 110 that are associated with the same customer account are compared. If the IP addresses indicate that all devices 110 in the group belong to the same IP subnet, then an addition level of detection is performed at block 340. However, if any device 110 has a different IP subnet than the others, this is an indication that the offending device may not be colocated with the others. Thus, a caution flag is set at block 370 and processing continues at block 340. In this embodiment, the caution flag is set to Low at block 370, since this is only the first indication that non-colocation has been detected among devices not using NAT. However, other caution levels may be used.
Colocated subscriber devices 110 typically share the same last hop router, so a subscriber device 110 that has a different last hop forwarding address (of the same address type) is not colocated. Thus, as an additional level of detection, block 340 examines the last hop forwarding addresses (if such information was obtained during process 300) for all devices 110 on the same account. If more than one address is detected, a caution level is set at block 380 and process 300 is complete. In this embodiment, the caution level is set to Medium at block 380, since this is a stronger indication that non-colocation has been detected. However, other caution levels may be used.
Subscriber devices 110 that are colocated are also in the same multicast group. Therefore, when a particular subscriber device 110 performs a multicast discovery, that subscriber device 110 should be able to find all other subscriber devices on the same account; if a subscriber device 110 is missing, this is an indication that the missing subscriber device 110 is not colocated. Thus, as an additional level of detection, block 390 examines multicast discovery results that may be present in the address configuration information retrieved at block 310. If present for a particular subscriber device 110, these results contain a list of other subscriber devices found when that subscriber device 110 performed a multicast discovery. Block 390 compares the list of discovered subscriber devices with a list of subscriber devices that are associated with the same customer account. A subscriber device 110 that is associated with the customer account but is not present on the list of discovered subscriber devices is an indication the missing device is not colocated. In this case, a caution flag is set at block 395. In this embodiment, the caution flag is set to High at block 395, since this is a strong indication that non-colocation has been detected. After the multicast groups are examined, process 300 completes.
Although not specifically illustrated here, other types of address configuration information can also be obtained at block 310 and examined in process 300. As one example, all devices 110 at a particular customer premise 170 are on the same LAN (or set of bridged LANs). Therefore, the ARP tables of all devices 110 on the same account can be expected have similar entries; finding otherwise is an indication of non-colocation. For another example, colocated subscriber devices 110 can be expected to have the same DHCP server, so the address of the DHCP server can be obtained and examined to determine non-colocation. As yet another example, colocated subscriber devices 110 can be expected to have not only the same last-hop forwarding device, but also to have the same hop-by-hop trail from the subscriber device to the forwarding device. Therefore, information generated by the known IP datagram “record route” option can be obtained and analyzed to determine co-location.
Registration manager 410 handles registration of subscriber devices 110. Before receiving services, each subscriber device 110 identifies itself to DNCS 130 by sending a log-on or sign-in message. DNCS 130 responds by authenticating the identity of the subscriber device 110 and sending back a confirmation message.
In the scenario illustrated in
Conventional methods typically use a log-on message which includes a device identifier (e.g., serial number), and optionally includes an account identifier for the customer premise 170. According to some of the methods disclosed herein, log-on messages 410, 430, and 450 also include address configuration information, as described above in connection with
After all subscriber devices 110 have successfully registered, detector 480 uses the address configuration information to determine whether any of the subscriber devices 110 that registered for the same account are suspected of being located at a different customer premise than the one associated with that account. In some embodiments, notifier 490 takes action to an administrator that at least one suspicious subscriber device 110 was detected. Various mechanisms may be used for this notification, for example, e-mail, pager, instant message, text message, etc. In some embodiments, the suspicious activity is logged in a file or database, and this logging acts as the notification.
Processing continues at block 520, which begins a process of comparing address information for the various subscriber devices 110, and detecting differences among them. Subscriber devices 110 that are colocated are in the same multicast group. Therefore, a subscriber device 110 should be able to find all other subscriber devices on the same account through a multicast discovery process. Block 520 requests a subscriber device 110 that is suspected of non-co-location to discover the other subscriber devices on the same account, and receives the discovery results. In one embodiment, Universal Plug and Play (UPnP) discovery is used to find other subscriber devices, but other multicast discovery schemes are also contemplated. Block 530 compares the list of discovered subscriber devices with a list of subscriber devices that are associated with the same customer account. A subscriber device 110 that is associated with the customer account but is not present on the list of discovered subscriber devices is an indication the missing device is not colocated. In this case, a caution flag is set is set at block 540, and process 500 is complete. Colocated subscriber devices 110 also all share the same last hop router, so a subscriber device 110 that has a different last hop forwarding address (of the same address type) is not colocated. Thus, as an additional check, block 550 examines last hop forwarding addresses (if such information was obtained at block 510) for all devices 110 on the same account. If more than one address is detected, the confirmed non-colocation flag for the account is set at block 540, and process 500 is complete. Finally, colocated subscriber devices 110 can be expected to have not only the same last-hop forwarding device, but also to have the same hop-by-hop trail from the subscriber device to the forwarding device. Therefore, information generated by an IP datagram “record route” option (if such information was obtained at block 510) is analyzed at block 560 to determine co-location. If different routes are detected, the confirmed non-colocation flag for the account is set at block 540, and process 500 is complete.
In the scenario illustrated in
It will be understood that the requests and responses can occur in any order, and that several requests can be outstanding at the same time. In some embodiments, the CallHome messages are authenticated and encrypted. In some embodiments, the request/responses 610-660 may take the form of an a DSM-CC User-to-Network pass-through message. In some embodiments, the address configuration information in the CallHomeResponse message (640, 650, 660) includes the types of information described above in connection with
Having received all outstanding CallHome responses (640, 650, 660), suspected non-location confirmer 670 confirms whether any subscriber devices 110 that were registered for the same account are located at a different customer premise than the one associated with that account, as described above in connection with
In some embodiments, the messaging interaction of
In addition to the methods of detection and confirmation of non-colocation described above in connection with
Another mechanism involves DNCS 130 sending a series of ping packets (ICMP or application-layer) with small but increasing time-to-live values (TTLs) to each subscriber device 110 in the customer account. Intervening routers between DNCS 130 and subscriber devices 110 would report timeouts, and these timeouts allow DNCS 130 to determine the path between DNCS 130 and each subscriber device 110. Another alternative involves one of the subscriber devices 110 sending a series of ping packets (ICMP or application-layer) with small but increasing time-to-live values (TTLs) to each subscriber device 110 in its customer account. DNCS 130 then collects and analyzes the traces to determine the path between DNCS 130 and each subscriber device 110.
The systems and methods for detecting non-colocated subscriber devices disclosed herein can be implemented in software, hardware, or a combination thereof. In some embodiments, such as that shown in
The systems and methods disclosed herein can be embodied in any computer-readable medium for use by or in connection with an instruction execution system, apparatus, or device. Such instruction execution systems include any computer-based system, processor-containing system, or other system that can fetch and execute the instructions from the instruction execution system. In the context of this disclosure, a “computer-readable medium” can be any means that can contain, store, communicate, propagate, or transport the program for use by, or in connection with, the instruction execution system. The computer readable medium can be, for example but not limited to, a system or propagation medium that is based on electronic, magnetic, optical, electromagnetic, infrared, or semiconductor technology.
Specific examples of a computer-readable medium using electronic technology would include (but are not limited to) the following: a random access memory (RAM); a read-only memory (ROM); an erasable programmable read-only memory (EPROM or Flash memory). A specific example using magnetic technology includes (but is not limited to) a floppy diskette or a hard disk. Specific examples using optical technology include (but are not limited to) a compact disc read-only memory (CD-ROM).
The software components illustrated herein are abstractions chosen to illustrate how functionality is partitioned among components in some embodiments of the systems and methods for detecting non-colocated subscriber devices disclosed herein. Other divisions of functionality are also possible, and these other possibilities are intended to be within the scope of this disclosure. Furthermore, to the extent that software components are described in terms of specific data structures (e.g., arrays, lists, flags, pointers, collections, etc.), other data structures providing similar functionality can be used instead.
Software components are described herein in terms of code and data, rather than with reference to a particular hardware device executing that code. Furthermore, to the extent that system and methods are described in object-oriented terms, there is no requirement that the systems and methods be implemented in an object-oriented language. Rather, the systems and methods can be implemented in any programming language, and executed on any hardware platform.
Software components referred to herein include executable code that is packaged, for example, as a standalone executable file, a library, a shared library, a loadable module, a driver, or an assembly, as well as interpreted code that is packaged, for example, as a class. In general, the components used by the systems and methods for detecting non-colocated subscriber devices are described herein in terms of code and data, rather than with reference to a particular hardware device executing that code. Furthermore, the systems and methods can be implemented in any programming language, and executed on any hardware platform.
The flow charts, messaging diagrams, state diagrams, and/or data flow diagrams herein provide examples of the operation of logic for detecting non-colocated subscriber devices, according to embodiments disclosed herein. Alternatively, these diagrams may be viewed as depicting actions of an example of a method implemented by logic for detecting non-colocated subscriber devices. Blocks in these diagrams represent procedures, functions, modules, or portions of code which include one or more executable instructions for implementing logical functions or steps in the process. Alternate implementations are also included within the scope of the disclosure. In these alternate implementations, functions may be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved. The foregoing description has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the disclosure to the precise forms disclosed. Obvious modifications or variations are possible in light of the above teachings. The implementations discussed, however, were chosen and described to illustrate the principles of the disclosure and its practical application to thereby enable one of ordinary skill in the art to utilize the disclosure in various implementations and with various modifications as are suited to the particular use contemplated. All such modifications and variation are within the scope of the disclosure as determined by the appended claims when interpreted in accordance with the breadth to which they are fairly and legally entitled.
Number | Name | Date | Kind |
---|---|---|---|
5467382 | Schorman | Nov 1995 | A |
5650994 | Daley | Jul 1997 | A |
5724510 | Arndt et al. | Mar 1998 | A |
6393484 | Massarani | May 2002 | B1 |
6452925 | Sistanizadeh et al. | Sep 2002 | B1 |
6493340 | Kawanaka | Dec 2002 | B1 |
6603758 | Schmuelling et al. | Aug 2003 | B1 |
6745333 | Thomsen | Jun 2004 | B1 |
7058022 | Carolan et al. | Jun 2006 | B1 |
7085267 | Carey et al. | Aug 2006 | B2 |
7272846 | Williams et al. | Sep 2007 | B2 |
7337219 | Meenan et al. | Feb 2008 | B1 |
7388869 | Butehorn et al. | Jun 2008 | B2 |
7477613 | Zein Al-Abedeen et al. | Jan 2009 | B2 |
7593341 | Buriol et al. | Sep 2009 | B1 |
7701873 | Prigent et al. | Apr 2010 | B2 |
8145733 | Cheng et al. | Mar 2012 | B1 |
20010049729 | Carolan et al. | Dec 2001 | A1 |
20020165972 | Chien et al. | Nov 2002 | A1 |
20020186694 | Mahajan et al. | Dec 2002 | A1 |
20030046291 | Fascenda | Mar 2003 | A1 |
20040132451 | Butehorn et al. | Jul 2004 | A1 |
20040158626 | Douglas | Aug 2004 | A1 |
20050038880 | Danforth | Feb 2005 | A1 |
20050105524 | Stevens et al. | May 2005 | A1 |
20050220007 | Prigent et al. | Oct 2005 | A1 |
20060018253 | Windisch et al. | Jan 2006 | A1 |
20060085357 | Pizarro | Apr 2006 | A1 |
20070030842 | Borden et al. | Feb 2007 | A1 |
20080076386 | Khetawat et al. | Mar 2008 | A1 |
20080084888 | Yadav et al. | Apr 2008 | A1 |
20080098458 | Smith et al. | Apr 2008 | A2 |
20080109864 | Danforth et al. | May 2008 | A1 |
20080126553 | Boucher et al. | May 2008 | A1 |
20080182589 | Buccieri | Jul 2008 | A1 |
20080195457 | Sherman et al. | Aug 2008 | A1 |
20080200143 | Qiu et al. | Aug 2008 | A1 |
20080281966 | Jennings et al. | Nov 2008 | A1 |
20080304487 | Kotecha | Dec 2008 | A1 |
20090003312 | Velazquez et al. | Jan 2009 | A1 |
20090207757 | Andreasen et al. | Aug 2009 | A1 |
20090296566 | Yasrebl et al. | Dec 2009 | A1 |
Number | Date | Country |
---|---|---|
WO 2007106902 | Sep 2007 | WO |
Entry |
---|
International Search Report dated Apr. 12, 2010 cited in Application No. PCT/US2009/049576. |
Number | Date | Country | |
---|---|---|---|
20100011094 A1 | Jan 2010 | US |