|Publication number||US7177911 B2|
|Application number||US 10/142,668|
|Publication date||Feb 13, 2007|
|Filing date||May 9, 2002|
|Priority date||May 9, 2002|
|Also published as||US20030212820, WO2003096618A2, WO2003096618A3, WO2003096618A9|
|Publication number||10142668, 142668, US 7177911 B2, US 7177911B2, US-B2-7177911, US7177911 B2, US7177911B2|
|Original Assignee||Pace Micro Technology Plc|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (19), Non-Patent Citations (3), Referenced by (26), Classifications (16), Legal Events (5)|
|External Links: USPTO, USPTO Assignment, Espacenet|
The invention relates to a communications system and method, and more particularly to a system and method for enabling computers associated with a communications network to remotely locate each other and establish a master-slave relationship.
A prior art community access television (CATV) system typically requires that a set top terminal be connected to a user's television set to receive channels or special select services offered by the CATV provider. In a digital CATV network environment, CATV providers assign Internet Protocol (IP) addresses to each set top terminal connected to the network. The IP addresses are used to distinguish one set top terminal from another so that direct channels, channel information and/or select services in the form of data can be delivered from a headend to a specific set top terminal. Because set top terminals are not permanently located within the CATV system, addresses are often reassigned to set top terminals. For example, a user could move to a different location and install the set top terminal at the new location, purchases a new set top terminal, add a second set top terminal to the location, or remove a set top terminal from the location.
Additionally, more than one set top terminal can be found in a user's home. When there is more than one set top terminal in a user's home, the set top terminals can function in a master-slave relationship. In prior art CATV systems, the master-slave arrangement requires a technically knowledgeable installer to go to the user's home and connect a serial cable between the master and slave set top terminals. The serial cable is used to transfer commands from the master set top terminal to the slave terminal. Commands are initiated when a user presses a key on a keypad of a remote control device. The remote control device transmits a signal (often an infrared (IR) signal) to the set top terminal. Because both set top terminals are in the same proximity, the slave terminal can mistakenly receive commands from the remote control that were intended for the master set top terminal. In prior art CATV systems, because the master and the slave set top terminals are connected together by a serial cable the problem of mistakenly receiving commands cannot be easily solved by placing the slave set top terminal in a separate room. The present invention solves these problems by enabling set top terminals or other computer type devices or computers associated with a communications network to remotely locate each other and establish a master-slave relationship without initially knowing the other's IP address.
The present invention is directed towards a system and method for enabling computers associated with a communications network to remotely locate each other and establish a master-slave relationship. A master computer having a MAC address and a slave computer having a MAC address are part of a communications network. A remote computer having knowledge of the MAC addresses of the master and slave computers sends a message to each computer notifying them of each other's MAC address. Knowing the MAC address of the slave computer, the master computer broadcasts a message including the MAC address of the slave computer to all of the computers associated with the communications network. The slave computer recognizes its MAC address in the message and establishes a connected socket with the master computer. The slave computer sends a message to the master computer and the master computer establishes a connected socket with the slave computer, so that commands can be directly communicated from the master computer to the slave computer.
The present invention is directed towards a technique for enabling computers associated with a communications network to remotely locate each other and establish a master-slave relationship. In accordance with the invention a computer selects at least one computer to act as a master computer and selects at least another computer to act as a slave computer. Without knowing the IP address of the designated slave computer, the master computer locates the slave computer and the two computers engage in a master-slave relationship over a communications network shared with other computers.
Communications network 170 and communications sub-network 150 can be any type of communications network that utilizes the Internet Protocol, such as a radio frequency (RF) or hybrid fiber coax (HFC) network utilizing the Internet Protocol. It should be realized that any transport protocol and any network topology that can function in a sub-network environment can be utilized. One advantage of using a sub-network is that communications between master computer 110, slave computer 120, and computer 160-1 through 160-N are not broadcast over the entire network, thus minimizing network traffic and noise on the network. Because the entire communications network is not subjected to broadcasts from the computers in communications sub-network 150 looking for their designated slave computer, there is no performance penalty for communicating with a computer for no reason.
Before any of the computers can operate in a master-slave relationship an operator at remote server 130 can either authorize which computers are to receive authority to operate in a master-slave relationship, or the operator can designate which computers are to operate as the master and the slave computers. In the situation where the operator authorizes which computers are to receive authority to operate in a master-slave relationship, a user at the location of the computer(s) selects via a user interface which computer is to operate as the master. Where the operator selects which computers are to receive such master and slave designation, remote server 130 retrieves the MAC addresses of the selected computers from a list of MAC addresses stored in remote server 130 and broadcasts messages including the MAC addresses over communication network 170 and communication sub-network 150.
As mentioned above, the operator of remote server 130 selects which computers are designated as a master and a slave. Knowing the MAC addresses of the computers associated with communications network 170 and communications sub-network 150, remote server 130 can broadcast messages over the network and sub-network that are intended for a master computer having a particular MAC address and a slave computer having a particular MAC addresses.
When remote server 130 broadcasts a message to two computers to authorize master-slave operations, a message protocol is used.
Referring back to
When slave computer 120 receives slave message data packet 300 b, slave computer 120 begins to perform the process shown in
Because master computer 110 does not know the IP address of slave computer 120, at block 510, master computer 110 broadcasts message data packet 300 c to all of the computers associated with communications sub-network 150. The message data packet 300 c is specifically formatted, by methods known in the art, to stay within communications sub-network 150, for example, by using a sub-network mask. Included in MAC address field 320 c is the MAC address of master computer 110. Not included in message data packet 300 c is the expected MAC address of slave computer 120.
One computer that will receive message data packet 300 c from master computer 120 is slave computer 120. Message data packet 300 c includes MAC address field 320 c, which contains data that represents the MAC address of the sending computer, and unique identifier field 310 c, which contains a unique identifier known only to the computers in the master-slave relationship. In
At block 450, slave computer 120 creates a connected socket with master computer 110. Because in this illustration, a user data (UDP) protocol is being utilized, which is a connectionless protocol, it is necessary to create both ends of the communication path between computers. Given that the messages are being sent over IP protocol, the IP address of master computer 110 is now know to slave computer 120 and slave computer 120 can communicate to master computer 110, using the IP address. The MAC addresses can continue to be utilized to prevent spoofing.
When master computer 110 receives message data packet 300 c from slave computer 120 it reads the information in MAC address field 320 c and in the unique identifier field 310 c. After master computer 110 reads the information in the MAC address field 320 c, which is the MAC address of slave computer 120 (sender), it compares the MAC address to the MAC address received from remote server 130 in MAC address field 320 a. If the MAC addresses are identical, then master computer 110 determines whether the information in the unique identifier field 310 c is identical to the unique identifier from unique identifier field 310 a in master message data packet 300 a received from remote server 130. If both of the unique identifiers are identical and both of the MAC addresses are identical then, at block 530, master computer 110 creates a connected socket to slave computer 120. Prior to block 530, master computer 110 was broadcasting messages over communications sub-network 150 and had not established a connected socket with any computers, including slave computer 120. Because the messages are being sent over IP protocol, the IP address of slave computer 120 is now know to master computer 110 and master computer 110 can communicate to slave computer 120, using the IP address. At block 530, master computer 110 disables the broadcast socket and opens a connected socket with slave computer 120.
Once a connected socket is established between master computer 110 and slave computer 120, master computer 110, at block 540, begins to periodically send heartbeat messages to slave computer 120. The heartbeat messages are used to validate whether the connected socket is still established. The messages include the MAC address of the computer sending the message and unique identifier. Master computer 110 sends a heartbeat message requesting slave computer 120 to verify that it is still operating and maintaining the connected socket. If slave computer 120 responds, then master computer 110 continues to engage in the master-slave relationship with slave computer 120 and waits a predetermined time frame before sending another heartbeat message.
While master computer 110 and slave computer 120 exchange periodic heartbeat messages, master computer 110 performs various functions. For example, the user of master computer 110 can enter, using a user interface, a command to change the state or function of slave computer 120. When this occurs, master computer 110 prepares to send a message, which includes the command, to slave computer 120 using message data packet 300 c. Referring back to
In another illustrative example, if slave computer 120 is assigned a new IP address or is having its IP address taken away, slave computer 120 sends message data packet 300 c to master computer 110 indicating such change or removal. Referring to
The user may, at their discretion, break the master/slave relationship from either the master or slave. A specific command is emitted from the breaker to the breakee. When this message is received and acknowledged, all communications between the parties cease until the user re-enables the master/slave relationship as previously described.
Table 1 shows exemplary pseudo code for implementing the various communications and processes disclosed above.
inform sender of success
Is command valid?
Yes. Execute and send ACK.
if (isPacketLegit( ))
does status bit indicate set-top has moved IP address?
Yes. Remember MAC address in packet header.
Reset flags used by write thread to indicate new address
for attached machine.
Send message to queue indicating incoming packet is available
if packet doesn't come from our IP address AND packet
Are we connected?
No. Remember MAC address in packet header
Yes. If MAC address matches the MAC address we expect
If(!connected to remote terminal)
Send packet to IP address of our remote machine
Broadcast packet to all machines in subnet.
If we receive a legit incoming packet
Remember sender's address for subsequent packet transmissions
Send message to queue indicating write was successful
The above presents various principles and features of the invention through descriptions of various embodiments. It is understood that skilled artisans can make various changes and modifications to the embodiments without departing from the spirit and scope of this invention, which is defined by the following claims.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US5150464||Jun 6, 1990||Sep 22, 1992||Apple Computer, Inc.||Local area network device startup process|
|US5526489||Mar 19, 1993||Jun 11, 1996||3Com Corporation||System for reverse address resolution for remote network device independent of its physical address|
|US5565908 *||May 7, 1993||Oct 15, 1996||Kayon Systems, Inc.||Bi-directional system for providing information, management, and entertainment services|
|US5745699||Oct 18, 1996||Apr 28, 1998||Apple Computer, Inc.||Dynamic address assignment in an arbitrarily connected network|
|US5835725||Oct 21, 1996||Nov 10, 1998||Cisco Technology, Inc.||Dynamic address assignment and resolution technique|
|US5854901||Jul 23, 1996||Dec 29, 1998||Cisco Systems, Inc.||Method and apparatus for serverless internet protocol address discovery using source address of broadcast or unicast packet|
|US5894479||Dec 10, 1996||Apr 13, 1999||Intel Corporation||Providing address resolution information for self registration of clients on power-up or dial-in|
|US5999974||Aug 29, 1997||Dec 7, 1999||International Business Machines Corporation||Internet protocol assists for high performance LAN connections|
|US6061739||Nov 26, 1997||May 9, 2000||International Business Machines Corp.||Network address assignment using physical address resolution protocols|
|US6070187||Mar 26, 1998||May 30, 2000||Hewlett-Packard Company||Method and apparatus for configuring a network node to be its own gateway|
|US6105100||Jul 17, 1998||Aug 15, 2000||International Business Machines Corporation||Method and apparatus for detecting and initializing the addition of a new client machine in a network|
|US6115545||Jul 9, 1997||Sep 5, 2000||Hewlett-Packard Company||Automatic internet protocol (IP) address allocation and assignment|
|US6192397 *||May 19, 1997||Feb 20, 2001||Nortel Networks Limited||Method for establishing a master-slave relationship in a peer-to-peer network|
|US6195687 *||Mar 18, 1998||Feb 27, 2001||Netschools Corporation||Method and apparatus for master-slave control in a educational classroom communication network|
|US6195688 *||May 7, 1998||Feb 27, 2001||International Business Machines Corporation||Computer system, program product and method of communicating internetworking data over a master-slave communication link|
|US6195706||Jul 7, 1998||Feb 27, 2001||Emc Corporation||Methods and apparatus for determining, verifying, and rediscovering network IP addresses|
|US6449289 *||Oct 9, 1998||Sep 10, 2002||Adaptec, Inc.||Multi-processor bus protocol system|
|US6499053 *||Jun 30, 1999||Dec 24, 2002||International Business Machines Corporation||Master/slave architecture for a distributed chat application in a bandwidth constrained network|
|US20020147856 *||Apr 9, 2001||Oct 10, 2002||Soumitra Sarkar||Method and apparatus for managing multiple instances of server code on a machine|
|1||Kozik, J. et al. "On Opening PSTN to Enhanced Voice/Data Services-The PINT Protocol Solution" Bell Labs Technology, Bell Laboratories, vol. 5, No. 3, Jul. 2000, pp. 153-165.|
|2||Marmor, M.S. "Make The P2P Leap With Toadnode," Web Techniques, Miller Freeman, US, vol. 5, No. 12, Dec. 2000, pp. 44-49.|
|3||Stevens, W. Richard: "TCP/IP Illustrated, vol. 1: The Protocols," Professional Computing Series, Reading, MA: Addison-Wesley, 1994, pp. 19-23 and 34-37.|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US7548624 *||Jan 16, 2004||Jun 16, 2009||The Directv Group, Inc.||Distribution of broadcast content for remote decryption and viewing|
|US7804958||Aug 1, 2008||Sep 28, 2010||The Directv Group, Inc.||Super encrypted storage and retrieval of media programs with smartcard generated keys|
|US8073923 *||Feb 28, 2005||Dec 6, 2011||Nintendo Co., Ltd.||Wireless network system and wireless communication program|
|US8140859||Jul 21, 2000||Mar 20, 2012||The Directv Group, Inc.||Secure storage and replay of media programs using a hard-paired receiver and storage device|
|US8628419||Mar 14, 2013||Jan 14, 2014||Nintendo Co., Ltd.||Game system, game apparatus, storage medium storing game program and game data exchange method|
|US8632404||Mar 14, 2013||Jan 21, 2014||Nintendo Co., Ltd.||Game system, game apparatus, storage medium storing game program and game data exchange method|
|US8636595||Mar 14, 2013||Jan 28, 2014||Nintendo Co., Ltd.||Game system, game apparatus, storage medium storing game program and game data exchange method|
|US8641527||Mar 14, 2013||Feb 4, 2014||Nintendo Co., Ltd.||System, apparatus, storage medium storing program, and data broadcasting method|
|US8647205||Mar 15, 2013||Feb 11, 2014||Nintendo Co., Ltd.||System, apparatus, storage medium storing program and data exchange method|
|US8677152||Jul 14, 2008||Mar 18, 2014||The Directv Group, Inc.||Method and apparatus for encrypting media programs for later purchase and viewing|
|US8734253||Mar 14, 2013||May 27, 2014||Nintendo Co., Ltd.||Game system, game apparatus, storage medium storing game program and game data exchange method|
|US8738783||Jun 22, 2010||May 27, 2014||Microsoft Corporation||System for interaction of paired devices|
|US8768255||Mar 14, 2013||Jul 1, 2014||Nintendo Co., Ltd.||Wireless communication game system|
|US8851997||Nov 7, 2013||Oct 7, 2014||Nintendo Co., Ltd.||System, apparatus, storage medium storing program and data broadcasting method|
|US8858337||Nov 14, 2013||Oct 14, 2014||Nintendo Co., Ltd.||System, apparatus, storage medium storing program and data exchange method|
|US8951122||Jan 13, 2014||Feb 10, 2015||Nintendo Co., Ltd.||Game system, game apparatus, storage medium storing game program and game data exchange method|
|US8956233||Mar 14, 2013||Feb 17, 2015||Nintendo Co., Ltd.||Wireless communication game system|
|US8968101||Mar 14, 2013||Mar 3, 2015||Nintendo Co., Ltd.||Wireless communication game system|
|US8968102||Mar 14, 2013||Mar 3, 2015||Nintendo Co., Ltd.||Wireless communication game system|
|US20040226045 *||May 9, 2003||Nov 11, 2004||Sbc Knowledge Ventures, L.P.||Application services coordinated DSL-satellite multicast content delivery|
|US20050089093 *||Oct 21, 2004||Apr 28, 2005||Chuan-Ching Su||Network-based system and related method for processing multi-format video signals|
|US20050246595 *||Apr 7, 2005||Nov 3, 2005||Naoki Ode||Network system, information processing apparatus, master apparatus, and apparatus information display method|
|US20050282639 *||Aug 12, 2005||Dec 22, 2005||Nintendo Co., Ltd.||Wireless communication game system|
|US20060106963 *||Feb 28, 2005||May 18, 2006||Nintendo Co., Ltd.||Wireless network system and wireless communication program|
|US20060129769 *||Dec 9, 2004||Jun 15, 2006||Shaofei Chen||System and method for migration to manufactured information handling systems|
|US20070036516 *||Aug 10, 2006||Feb 15, 2007||The Directtv Group, Inc.||Secure delivery of program content via a removable storage medium|
|U.S. Classification||709/209, 709/208, 725/100|
|International Classification||H04L12/403, H04L29/12, H04L12/28, G06F15/173, G06F15/16, H04N7/173, H04L12/00|
|Cooperative Classification||H04N21/42684, H04N21/43615, H04L12/403|
|European Classification||H04N21/436H, H04N21/426N, H04L12/403|
|Nov 25, 2002||AS||Assignment|
Owner name: PACE MICRO TECHNOLOGY PLC, ENGLAND
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:DECARMO, LINDEN;REEL/FRAME:013528/0354
Effective date: 20020627
|Nov 13, 2008||AS||Assignment|
Owner name: PACE PLC, UNITED KINGDOM
Free format text: CHANGE OF NAME;ASSIGNOR:PACE MICRO TECHNOLOGY, PLC;REEL/FRAME:021824/0706
Effective date: 20080516
|Aug 18, 2010||FPAY||Fee payment|
Year of fee payment: 4
|Aug 18, 2010||SULP||Surcharge for late payment|
|May 9, 2014||FPAY||Fee payment|
Year of fee payment: 8