WO2003096618A9 - A system and method for discovery and remote control of computers - Google Patents

A system and method for discovery and remote control of computers

Info

Publication number
WO2003096618A9
WO2003096618A9 PCT/US2003/013774 US0313774W WO03096618A9 WO 2003096618 A9 WO2003096618 A9 WO 2003096618A9 US 0313774 W US0313774 W US 0313774W WO 03096618 A9 WO03096618 A9 WO 03096618A9
Authority
WO
WIPO (PCT)
Prior art keywords
computer
mac address
message
master
slave
Prior art date
Application number
PCT/US2003/013774
Other languages
French (fr)
Other versions
WO2003096618A3 (en
WO2003096618A2 (en
Inventor
Carmo Linden De
Original Assignee
Pace Micro Technology Americas
Carmo Linden De
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Pace Micro Technology Americas, Carmo Linden De filed Critical Pace Micro Technology Americas
Priority to AU2003253600A priority Critical patent/AU2003253600A1/en
Publication of WO2003096618A2 publication Critical patent/WO2003096618A2/en
Publication of WO2003096618A3 publication Critical patent/WO2003096618A3/en
Publication of WO2003096618A9 publication Critical patent/WO2003096618A9/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • H04N21/42684Client identification by a unique number or address, e.g. serial number, MAC address, socket ID
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/403Bus networks with centralised control, e.g. polling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/43615Interfacing a Home Network, e.g. for connecting the client to a plurality of peripherals

Definitions

  • 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.
  • CATV providers assign Internet Protocol (IP) addresses to each set top terminal connected to the network.
  • IP Internet Protocol
  • 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.
  • IP Internet Protocol
  • 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.
  • more than one set top terminal can be found in a user's home.
  • the set top terminals can function in a master- slave relationship.
  • 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.
  • IR infrared
  • the slave terminal can mistakenly receive commands from the remote control that were intended for the master set top terminal.
  • 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.
  • FIG. 1 depicts a high level block diagram of an illustrative arrangement of the hardware components of the present invention
  • FIG. 2 is an illustration of data flow throughout the system
  • FIG. 3 a is an illustration of a message data packet processed by a remote server for communicating with a master computer
  • FIG. 3b is an illustration of a message data packet processed by a remote server for communicating with a slave computer
  • FIG. 3 c is an illustration of a message data packet processed by a master computer and/or a slave computer for communicating with each other;
  • FIG. 4 is a flow chart depicting a process that is implemented by a slave computer.
  • FIG. 5 is a flow chart depicting a process that is implemented by a master computer. DETAILED DESCRIPTION
  • 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.
  • 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.
  • FIG. 1 illustrates a system, which embodies the principles of the invention.
  • system 100 includes, master computer 110, slave computer 120, remote server 130, communications sub-network 150, communications network 170, and computers 160-1 through 160-N, where N is a number greater than one.
  • Master computer 110, slave computer 120, and computers 160-1 through 160-N can be any computing device, such as a multimedia terminal or a televisions set-top terminal.
  • Remote server 130 is a computer that provides various services and has the capability to communicate with the various computers connected to communications network 150 and communications sub-network 170.
  • Remote server 130 can be a community access television (CATV) head-end.
  • CATV community access television
  • 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.
  • RF radio frequency
  • HFC hybrid fiber coax
  • 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.
  • 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.
  • a user at the location of the computer(s) selects via a user interface which computer is to operate as the master.
  • 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.
  • FIG.2 is a data flow diagram that illustrates exemplary exchange of information throughout system 100, which is necessary to authorize and enable computers to engage in a master-slave relationship, such as master computer 110 having remote control capabilities of slave computer 120. More particularly, FIG. 2 illustrates exemplary data flow among remote server 130, master computer 110, and slave computer 120. 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.
  • FIG. 3a illustrates an exemplary message protocol for remote server 130 to follow when sending a message to authorize and enable master-slave operations.
  • the message protocols disclosed in FIGS. 3a through 3c illustrate the layout for IP communications, thus different layouts can be used for different protocols.
  • Not shown in FIGS. 3a through 3c are fields related to basic header information and are known within the art, such as sequence numbers, packet length and other house keeping information.
  • a master message data packet 300a represents the message directed to master computer 110.
  • Master message data packet 300a includes a unique identifier field 310a and MAC address field 320a.
  • the unique identifier field 310a includes information related to a unique identifier, such as a billing number associated with a particular billing address.
  • the MAC address field 320a includes the MAC address of the computer assigned as the slave computer, which in this case is slave computer 120.
  • FIG. 3b illustrates an exemplary message protocol for remote server 130 to follow when sending a message directed to a slave computer to authorize and enable slave operations.
  • a slave message data packet 300b represents the message directed to slave computer 110.
  • remote server 130 broadcasts a slave message data packet 300b, which includes a unique identifier field 310b and a MAC address field 320b.
  • the unique identifier field 310b includes an identical identifier to the one in unique identifier field 310a.
  • the MAC address field 320b includes the MAC address of the other computer, which in this case is the master computer 110.
  • remote server 130 broadcasts a master message data packet 300a over communications network 150 and communications sub-network 170 to all computers.
  • remote server 130 broadcasts a slave message data packet 300b over communications network 150 and communications sub-network 170 to all computers.
  • FIG.4 is a flow chart illustrating the process of enabling and authorizing a computer to act as a slave computer.
  • slave computer 120 receives slave message data packet 300b, which authorizes slave computer 120 to process remote control requests from a master computer having the MAC address stored in MAC address field 320b, in this illustrative example the master computer is master computer 110.
  • slave computer 120 spawns its receiver thread, thus dedicating a path of execution to process all message from master computer 110.
  • master computer 110 receives master message data packet 300a and begins to perform the process shown in FIG. 5.
  • FIG.5 is a flow chart illustrating the process of enabling and authorizing a computer to operate as a master computer.
  • master computer 110 receives master message data packet 300a, which authorizes master computer 110 to control a slave computer having a MAC address identical to the MAC address in MAC address field 320a, in this illustrative example the slave computer is slave computer 120.
  • FIG. 3c illustrates an exemplary message protocol for master computer 110 and slave computer 120 to follow when sending messages to each other.
  • message data packet 300c includes a unique identifier field 310c, which contains a copy of the unique identifier that was broadcast by remote server 130 to master computer 110 and slave computer
  • the unique identifier in unique identifier field 310c is identical to the unique identifiers in unique identifier fields 310a and 310b.
  • a MAC address field 320c which includes information pertaining to the sender's MAC address. It should be realized that slave computer 120 does not know the IP address of master computer 110, but is aware of the MAC address of master computer 110. Thus, the MAC address of master computer 110 is included in message data packet 300c so that slave computer 120 can compare the MAC addresses and determine whether message data packet 300c is from a computer assigned to it as a master computer. This reduces the chances of spoofing by other computers.
  • master computer 110 does not know the IP address of slave computer 120, at block 510, master computer 110 broadcasts message data packet 300c to all of the computers associated with communications sub-network 150.
  • the message data packet 300c 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 320c is the MAC address of master computer 110. Not included in message data packet 300c is the expected MAC address of slave computer 120.
  • FIG.2, at data flow 230, shows the data packet flow from master computer 110 to the various computers connected to communications sub-network 150, including slave computer 120.
  • Message data packet 300c includes MAC address field 320c, which contains data that represents the MAC address of the sending computer, and unique identifier field 310c, which contains a unique identifier known only to the computers in the master-slave relationship.
  • slave computer 120 determines whether the MAC address from MAC address field 320c and unique identifier from unique identifier field 310c match the information in MAC address field 320b and unique identifier field 31 Ob sent by remote server 130.
  • slave computer 120 determines that message data packet 300c is intended for another computer and ignores it. If slave computer 120 determines that message data packet 300c is intended for itself, then at block 440, slave computer 120 sends a similar message data packet to master computer 120 acknowledging that message data packet 300c was received by its intended recipient. Included in the message data packet sent to master computer 110 is the MAC address of slave computer 120. The data flow of this message from slave computer 120 to master computer 110 is illustrated in FIG. 2 at data flow 240.
  • 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.
  • UDP user data
  • master computer 110 When master computer 110 receives message data packet 300c from slave computer 120 it reads the information in MAC address field 320c and in the unique identifier field 310c. After master computer 110 reads the information in the MAC address field 320c, 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 320a. If the MAC addresses are identical, then master computer 110 determines whether the information in the unique identifier field 310c is identical to the unique identifier from unique identifier field 310a in master message data packet 300a received from remote server 130.
  • master computer 110 creates a connected socket to slave computer 120.
  • 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.
  • master computer 110 disables the broadcast socket and opens a connected socket with slave computer 120.
  • master computer 110 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. Referring to FIG. 4, at block 460, the heartbeat message is received by slave computer
  • slave computer 120 sends a heartbeat acknowledgement message to master computer 120.
  • This heartbeat message acknowledges that slave computer 120 received the heartbeat message from master computer 120 and that the connected socket is still established.
  • the data flow of the heartbeat message and the heartbeat message acknowledgment, sent by master computer 110 and slave computer 120, are illustrated in FIG. 2 at data flow 260 and data flow 270 respectively.
  • master computer 110 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 300c. Referring back to FIG. 3c, a dual turner command field 350c is provided to communicate commands from master computer 110 to slave computer 120 using message data packet 300c.
  • commands are: record, stop, play, forward, establish connection, tune channel, or any other command required to perform a function in a remote computer. Referring to FIG.
  • master computer 120 receives a command to control slave computer 120, it prepares message data packet 300c and includes the command in command field 350c.
  • master computer 110 sends message data packet 300c to slave computer 120.
  • the slave computer 120 receives message data packet 300c and repeats the process discussed above for determining whether message data packet 300c is from its assigned master computer. Additionally, slave computer 120 reads the command in command field 350c and processes the command.
  • slave computer 120 sends to master computer 110 message data packet 300c, which acknowledges the receipt and initiation of the command by the slave computer 120.
  • the data flow of message data packets 300c, sent by master computer 110 and slave computer 120 are illustrated in FIG. 2 at data flow 280 and data flow 290 respectively.
  • slave computer 120 sends message data packet 300c to master computer 110 indicating such change or removal.
  • message data packet 300c includes a status field 330c. This field contains information indicating whether the IP address has been changed, taken away, or is no longer associated with slave computer 120.
  • master computer 110 receives message data packet 300c, it reads the information in status field 330c and if the indicator indicates that the IP address of the sender is not changing or not being removed, then master computer 110 continues to process the information in message data packet 300c, as disclosed above.
  • master computer 110 stops communicating with slave computer 120.
  • Master computer 110 will enter promiscuous mode (i.e. it resumes sending out subnet broadcasts searching for its associated slave) until it receives from remote server 130 a master message data packet 300a indicating which computer in communications sub-network 150 to locate and engage in a master-slave relationship.
  • 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.

Abstract

A system and method for enabling computers associated with a communications network to remotely locate each other and establish a master-slave relationship.

Description

A SYSTEM AND METHOD FOR DISCOVERY AND REMOTE CONTROL OF COMPUTERS
FIELD OF THE INVENTION
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.
BACKGROUND OF THE INVENTION
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.
SUMMARY OF THE INVENTION
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. BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 depicts a high level block diagram of an illustrative arrangement of the hardware components of the present invention; FIG. 2 is an illustration of data flow throughout the system;
FIG. 3 a is an illustration of a message data packet processed by a remote server for communicating with a master computer;
FIG. 3b is an illustration of a message data packet processed by a remote server for communicating with a slave computer;
FIG. 3 c is an illustration of a message data packet processed by a master computer and/or a slave computer for communicating with each other;
FIG. 4 is a flow chart depicting a process that is implemented by a slave computer; and
FIG. 5 is a flow chart depicting a process that is implemented by a master computer. DETAILED DESCRIPTION
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.
FIG. 1 illustrates a system, which embodies the principles of the invention. As shown in FIG.l, system 100 includes, master computer 110, slave computer 120, remote server 130, communications sub-network 150, communications network 170, and computers 160-1 through 160-N, where N is a number greater than one. Master computer 110, slave computer 120, and computers 160-1 through 160-N can be any computing device, such as a multimedia terminal or a televisions set-top terminal. Remote server 130 is a computer that provides various services and has the capability to communicate with the various computers connected to communications network 150 and communications sub-network 170. Remote server 130 can be a community access television (CATV) head-end. 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.
FIG.2 is a data flow diagram that illustrates exemplary exchange of information throughout system 100, which is necessary to authorize and enable computers to engage in a master-slave relationship, such as master computer 110 having remote control capabilities of slave computer 120. More particularly, FIG. 2 illustrates exemplary data flow among remote server 130, master computer 110, and slave computer 120. 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. FIG. 3a illustrates an exemplary message protocol for remote server 130 to follow when sending a message to authorize and enable master-slave operations. It should be realized that the message protocols disclosed in FIGS. 3a through 3c illustrate the layout for IP communications, thus different layouts can be used for different protocols. Not shown in FIGS. 3a through 3c are fields related to basic header information and are known within the art, such as sequence numbers, packet length and other house keeping information. By way of example, a master message data packet 300a represents the message directed to master computer 110. Master message data packet 300a includes a unique identifier field 310a and MAC address field 320a. The unique identifier field 310a includes information related to a unique identifier, such as a billing number associated with a particular billing address. The MAC address field 320a includes the MAC address of the computer assigned as the slave computer, which in this case is slave computer 120.
FIG. 3b illustrates an exemplary message protocol for remote server 130 to follow when sending a message directed to a slave computer to authorize and enable slave operations. By way of example, a slave message data packet 300b represents the message directed to slave computer 110. In this example, remote server 130 broadcasts a slave message data packet 300b, which includes a unique identifier field 310b and a MAC address field 320b. The unique identifier field 310b includes an identical identifier to the one in unique identifier field 310a. The MAC address field 320b includes the MAC address of the other computer, which in this case is the master computer 110. Thus, once these messages are broadcast and received by the intended recipients, each recipient is aware of the other's MAC address. It should be realized that at this time the IP address of master computer 110 is unknown to slave computer 120, and the IP address of slave computer 120 is unknown to master computer 110.
Referring back to FIG. 2, at data flow 210, remote server 130 broadcasts a master message data packet 300a over communications network 150 and communications sub-network 170 to all computers. At data flow 220, remote server 130 broadcasts a slave message data packet 300b over communications network 150 and communications sub-network 170 to all computers.
When slave computer 120 receives slave message data packet 300b, slave computer 120 begins to perform the process shown in FIG. 4. FIG.4 is a flow chart illustrating the process of enabling and authorizing a computer to act as a slave computer. At block 400, slave computer 120 receives slave message data packet 300b, which authorizes slave computer 120 to process remote control requests from a master computer having the MAC address stored in MAC address field 320b, in this illustrative example the master computer is master computer 110. At block 410, slave computer 120 spawns its receiver thread, thus dedicating a path of execution to process all message from master computer 110.
Referring to FIG. 2, data flow 220, master computer 110 receives master message data packet 300a and begins to perform the process shown in FIG. 5. FIG.5 is a flow chart illustrating the process of enabling and authorizing a computer to operate as a master computer. At block 500, master computer 110 receives master message data packet 300a, which authorizes master computer 110 to control a slave computer having a MAC address identical to the MAC address in MAC address field 320a, in this illustrative example the slave computer is slave computer 120.
FIG. 3c illustrates an exemplary message protocol for master computer 110 and slave computer 120 to follow when sending messages to each other. By way of example, message data packet 300c includes a unique identifier field 310c, which contains a copy of the unique identifier that was broadcast by remote server 130 to master computer 110 and slave computer
120. The unique identifier in unique identifier field 310c is identical to the unique identifiers in unique identifier fields 310a and 310b. Also included in message data packet 300c is a MAC address field 320c, which includes information pertaining to the sender's MAC address. It should be realized that slave computer 120 does not know the IP address of master computer 110, but is aware of the MAC address of master computer 110. Thus, the MAC address of master computer 110 is included in message data packet 300c so that slave computer 120 can compare the MAC addresses and determine whether message data packet 300c is from a computer assigned to it as a master computer. This reduces the chances of spoofing by other computers. Because master computer 110 does not know the IP address of slave computer 120, at block 510, master computer 110 broadcasts message data packet 300c to all of the computers associated with communications sub-network 150. The message data packet 300c 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 320c is the MAC address of master computer 110. Not included in message data packet 300c is the expected MAC address of slave computer 120. FIG.2, at data flow 230, shows the data packet flow from master computer 110 to the various computers connected to communications sub-network 150, including slave computer 120.
One computer that will receive message data packet 300c from master computer 120 is slave computer 120. Message data packet 300c includes MAC address field 320c, which contains data that represents the MAC address of the sending computer, and unique identifier field 310c, which contains a unique identifier known only to the computers in the master-slave relationship. In FIG. 4, at decision block 420, slave computer 120 determines whether the MAC address from MAC address field 320c and unique identifier from unique identifier field 310c match the information in MAC address field 320b and unique identifier field 31 Ob sent by remote server 130. If the MAC address and unique identifier are not identical to the address and identifier broadcast by remote server 130 in slave message data packet 300b then, at block 430, slave computer 120 determines that message data packet 300c is intended for another computer and ignores it. If slave computer 120 determines that message data packet 300c is intended for itself, then at block 440, slave computer 120 sends a similar message data packet to master computer 120 acknowledging that message data packet 300c was received by its intended recipient. Included in the message data packet sent to master computer 110 is the MAC address of slave computer 120. The data flow of this message from slave computer 120 to master computer 110 is illustrated in FIG. 2 at data flow 240.
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 300c from slave computer 120 it reads the information in MAC address field 320c and in the unique identifier field 310c. After master computer 110 reads the information in the MAC address field 320c, 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 320a. If the MAC addresses are identical, then master computer 110 determines whether the information in the unique identifier field 310c is identical to the unique identifier from unique identifier field 310a in master message data packet 300a 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. Referring to FIG. 4, at block 460, the heartbeat message is received by slave computer
120. If the heartbeat message is intended for slave computer 120, at block 470, slave computer 120 sends a heartbeat acknowledgement message to master computer 120. This heartbeat message acknowledges that slave computer 120 received the heartbeat message from master computer 120 and that the connected socket is still established. The data flow of the heartbeat message and the heartbeat message acknowledgment, sent by master computer 110 and slave computer 120, are illustrated in FIG. 2 at data flow 260 and data flow 270 respectively.
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 300c. Referring back to FIG. 3c, a dual turner command field 350c is provided to communicate commands from master computer 110 to slave computer 120 using message data packet 300c. A nonlimiting example of commands are: record, stop, play, forward, establish connection, tune channel, or any other command required to perform a function in a remote computer. Referring to FIG. 5, if at block 560, master computer 120 receives a command to control slave computer 120, it prepares message data packet 300c and includes the command in command field 350c. At block 570, master computer 110 sends message data packet 300c to slave computer 120. Referring to FIG. 4, at block 480, the slave computer 120 receives message data packet 300c and repeats the process discussed above for determining whether message data packet 300c is from its assigned master computer. Additionally, slave computer 120 reads the command in command field 350c and processes the command. At block 490, slave computer 120 sends to master computer 110 message data packet 300c, which acknowledges the receipt and initiation of the command by the slave computer 120. The data flow of message data packets 300c, sent by master computer 110 and slave computer 120, are illustrated in FIG. 2 at data flow 280 and data flow 290 respectively.
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 300c to master computer 110 indicating such change or removal. Referring to FIG. 3c, message data packet 300c includes a status field 330c. This field contains information indicating whether the IP address has been changed, taken away, or is no longer associated with slave computer 120. When master computer 110 receives message data packet 300c, it reads the information in status field 330c and if the indicator indicates that the IP address of the sender is not changing or not being removed, then master computer 110 continues to process the information in message data packet 300c, as disclosed above. If the information in status field 330c indicates that the IP address has been changed, taken away, or is no longer associated with slave computer 120, then master computer 110 stops communicating with slave computer 120. Master computer 110 will enter promiscuous mode (i.e. it resumes sending out subnet broadcasts searching for its associated slave) until it receives from remote server 130 a master message data packet 300a indicating which computer in communications sub-network 150 to locate and engage in a master-slave relationship. 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. TABLE l
ObtainAuthorizationO SpawnThreads() queueProcessing: case incomingPacket:
ExecuteCommandO; case writePacket: inform sender of success
ExecuteCommandO; Is command valid?
Yes. Execute and send ACK. No. Ignore.
Receiver thread: while (TRUE) getAPacketO if (isPacketLegitO) establish connection 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 isPacketLegitO if packet doesn't come from our IP address AND packet contains uniqueid
Are we connected? No. Remember MAC address in packet header return TRUE Yes. IfMAC address matches the MAC address we expect else return FALSE
Sender thread: while (TRUE)
If (! connected to remote terminal)
Send packet to IP address of our remote machine Else
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.

Claims

Claims:
1. A system for enabling computers associated with a communications network to remotely locate each other and establish a master-slave relationship comprising: a first computer having a first MAC address associated therewith; a second computer having a second MAC address associated therewith and the first computer and second computer part of the communications network; and a third computer having knowledge of the first MAC address and the second MAC address and sending a first message having the first MAC address to the second computer and a second message having the second MAC address to the first computer over the communications network; wherein the first computer broadcasts a third message having the second MAC address over the communications network and in response to the third message the second computer establishes a connected socket between the second computer and the first computer.
2. The system of claim 1 wherein the second computer responds with a fourth message having the first MAC address.
3. The system of claim 1 wherein the first computer sends a heartbeat message to the second computer.
4. The system of claim 3 wherein the second computer responds to the heartbeat message.
5. The system of claim 1 wherein the first computer sends a fifth message including a command to control the second computer.
6. The system of claim 1 wherein the second computer sends a sixth message including an indication of a change in IP address of the second computer.
7. The system of claim 7 wherein the first computer stops communicating with the second computer and disables the connected socket.
8. The system of claim 1 wherein the second MAC address is used to locate the second computer among the computers in the communications network and determine an IP address of the second computer.
9. The system of claim 1 wherein a user can break the master/slave relationship.
10. A method for enabling computers associated with a communications network to remotely locate each other and establish a master-slave relationship comprising: broadcasting over the communications network a first message having a first MAC address associated with a first computer; broadcasting over the communications network a second message having a second MAC address associated with a second computer; broadcasting over the communications network a third message having the first MAC address and the second MAC address by the second computer; establishing a connected socket by the first computer; broadcasting over the communications network a fourth message having the first MAC address and the second MAC address by the first computer; and establishing a second connected socket by the second computer.
11. The method of claim 10 further comprising sending a fifth message to the first computer through the connected socket.
12. A method for establishing a master-slave relationship among computer in a communications network comprising: receiving a first MAC address associated with a first computer; broadcasting a first message having the first MAC address and a second MAC address associated with a second computer; receiving from the first computer a second message having the first MAC address and the second MAC address; and establishing a connected socket over the communications network with the first computer.
13. The method of claim 12 further comprising sending a third message having a command for the first computer via the connected socked over the communications network.
14. The method of claim 12 wherein a user can break the master/slave relationship.
PCT/US2003/013774 2002-05-09 2003-05-06 A system and method for discovery and remote control of computers WO2003096618A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2003253600A AU2003253600A1 (en) 2002-05-09 2003-05-06 A system and method for discovery and remote control of computers

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/142,668 2002-05-09
US10/142,668 US7177911B2 (en) 2002-05-09 2002-05-09 System and method for discovery and remote control of computers

Publications (3)

Publication Number Publication Date
WO2003096618A2 WO2003096618A2 (en) 2003-11-20
WO2003096618A3 WO2003096618A3 (en) 2004-03-18
WO2003096618A9 true WO2003096618A9 (en) 2004-12-23

Family

ID=29399963

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2003/013774 WO2003096618A2 (en) 2002-05-09 2003-05-06 A system and method for discovery and remote control of computers

Country Status (3)

Country Link
US (1) US7177911B2 (en)
AU (1) AU2003253600A1 (en)
WO (1) WO2003096618A2 (en)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7203311B1 (en) * 2000-07-21 2007-04-10 The Directv Group, Inc. Super encrypted storage and retrieval of media programs in a hard-paired receiver and storage device
US8140859B1 (en) * 2000-07-21 2012-03-20 The Directv Group, Inc. Secure storage and replay of media programs using a hard-paired receiver and storage device
US7457414B1 (en) * 2000-07-21 2008-11-25 The Directv Group, Inc. Super encrypted storage and retrieval of media programs with smartcard generated keys
US7409562B2 (en) * 2001-09-21 2008-08-05 The Directv Group, Inc. Method and apparatus for encrypting media programs for later purchase and viewing
JP2004136009A (en) 2002-10-21 2004-05-13 Nintendo Co Ltd Radio communication game system
US7509378B2 (en) * 2003-03-11 2009-03-24 Bea Systems, Inc. System and method for message ordering in a message oriented network
US20040226045A1 (en) * 2003-05-09 2004-11-11 Sbc Knowledge Ventures, L.P. Application services coordinated DSL-satellite multicast content delivery
JP4073885B2 (en) 2003-06-17 2008-04-09 任天堂株式会社 GAME SYSTEM, GAME DEVICE, AND GAME PROGRAM
AU2003903139A0 (en) 2003-06-20 2003-07-03 Resmed Limited Breathable gas apparatus with humidifier
TWI282922B (en) * 2003-10-23 2007-06-21 Benq Corp Network-based system and related method for processing multi-format video signals
US7580523B2 (en) * 2004-01-16 2009-08-25 The Directv Group, Inc. Distribution of video content using client to host pairing of integrated receivers/decoders
US7548624B2 (en) * 2004-01-16 2009-06-16 The Directv Group, Inc. Distribution of broadcast content for remote decryption and viewing
US7599494B2 (en) * 2004-01-16 2009-10-06 The Directv Group, Inc. Distribution of video content using a trusted network key for sharing content
JP2005301504A (en) * 2004-04-08 2005-10-27 Sony Corp Network system, information processing device, master device, and device information display method
JP3888558B2 (en) * 2004-11-18 2007-03-07 任天堂株式会社 Wireless network system and wireless communication program
US20060129769A1 (en) * 2004-12-09 2006-06-15 Shaofei Chen System and method for migration to manufactured information handling systems
JP4900891B2 (en) * 2005-04-27 2012-03-21 キヤノン株式会社 Communication apparatus and communication method
US9325944B2 (en) * 2005-08-11 2016-04-26 The Directv Group, Inc. Secure delivery of program content via a removable storage medium
ATE460068T1 (en) * 2005-11-10 2010-03-15 Ericsson Telefon Ab L M ARRANGEMENTS IN A MOBILE TELECOMMUNICATIONS NETWORK
US8775319B2 (en) 2006-05-15 2014-07-08 The Directv Group, Inc. Secure content transfer systems and methods to operate the same
US20100042674A1 (en) * 2008-08-15 2010-02-18 Sony Ericsson Mobile Communications Ab Method and system for discovery of dynamic ip addresses
US8738783B2 (en) 2010-06-22 2014-05-27 Microsoft Corporation System for interaction of paired devices
US10104183B2 (en) 2010-06-22 2018-10-16 Microsoft Technology Licensing, Llc Networked device authentication, pairing and resource sharing
US8661156B2 (en) * 2010-11-22 2014-02-25 International Business Machines Corporation Transport layer connection
US10856052B1 (en) * 2012-04-26 2020-12-01 Cox Communications, Inc. Localized peer-to-peer network of set top boxes
KR101544460B1 (en) * 2015-04-24 2015-08-13 국방과학연구소 Method for hiding receivers address for link layer in group communication

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5150464A (en) 1990-06-06 1992-09-22 Apple Computer, Inc. Local area network device startup process
US5526489A (en) 1993-03-19 1996-06-11 3Com Corporation System for reverse address resolution for remote network device independent of its physical address
US5565908A (en) * 1993-05-07 1996-10-15 Kayon Systems, Inc. Bi-directional system for providing information, management, and entertainment services
US5745699A (en) 1993-09-24 1998-04-28 Apple Computer, Inc. Dynamic address assignment in an arbitrarily connected network
US6192397B1 (en) * 1996-06-20 2001-02-20 Nortel Networks Limited Method for establishing a master-slave relationship in a peer-to-peer network
US5854901A (en) 1996-07-23 1998-12-29 Cisco Systems, Inc. Method and apparatus for serverless internet protocol address discovery using source address of broadcast or unicast packet
US5835725A (en) 1996-10-21 1998-11-10 Cisco Technology, Inc. Dynamic address assignment and resolution technique
US5894479A (en) 1996-12-10 1999-04-13 Intel Corporation Providing address resolution information for self registration of clients on power-up or dial-in
US6115545A (en) 1997-07-09 2000-09-05 Hewlett-Packard Company Automatic internet protocol (IP) address allocation and assignment
US5999974A (en) 1997-08-29 1999-12-07 International Business Machines Corporation Internet protocol assists for high performance LAN connections
US6061739A (en) 1997-11-26 2000-05-09 International Business Machines Corp. Network address assignment using physical address resolution protocols
US6195687B1 (en) * 1998-03-18 2001-02-27 Netschools Corporation Method and apparatus for master-slave control in a educational classroom communication network
US6070187A (en) 1998-03-26 2000-05-30 Hewlett-Packard Company Method and apparatus for configuring a network node to be its own gateway
US6195688B1 (en) * 1998-05-07 2001-02-27 International Business Machines Corporation Computer system, program product and method of communicating internetworking data over a master-slave communication link
US6195706B1 (en) 1998-07-07 2001-02-27 Emc Corporation Methods and apparatus for determining, verifying, and rediscovering network IP addresses
US6105100A (en) 1998-07-17 2000-08-15 International Business Machines Corporation Method and apparatus for detecting and initializing the addition of a new client machine in a network
US6449289B1 (en) * 1998-10-09 2002-09-10 Adaptec, Inc. Multi-processor bus protocol system
US6499053B1 (en) * 1999-06-30 2002-12-24 International Business Machines Corporation Master/slave architecture for a distributed chat application in a bandwidth constrained network
US6934952B2 (en) * 2001-04-09 2005-08-23 International Business Machines Corporation Method and apparatus for managing multiple instances of server code on a machine

Also Published As

Publication number Publication date
WO2003096618A3 (en) 2004-03-18
US20030212820A1 (en) 2003-11-13
AU2003253600A1 (en) 2003-11-11
WO2003096618A2 (en) 2003-11-20
US7177911B2 (en) 2007-02-13
AU2003253600A8 (en) 2003-11-11

Similar Documents

Publication Publication Date Title
US7177911B2 (en) System and method for discovery and remote control of computers
EP2278832B1 (en) MAC based mapping in IP based communications
US7418511B2 (en) Secured TCP/IP communication system for devices and private networks connected to the internet
US7979553B2 (en) Electronic device and control method therefor
US7093015B2 (en) Method and apparatus for accessing a wireless computer network communication channel by accessing quiet intervals in network frames
KR101127216B1 (en) Method of communication between domestic appliances and appliances implementing the method
US8027325B2 (en) Home network using wireless module
US20030231621A1 (en) Dynamic communication channel switching for computer networks
CN110708688A (en) Intelligent equipment network distribution method and device, controller and medium
US8437348B2 (en) Method and system for controlling transmission of multicast packets over a local area network, related network and computer program product therefor
US8799485B2 (en) Methods and apparatus for establishing network connections using an inter-mediating device
EP0827339A2 (en) CATV communication system and method for the internet connection
CN105446305A (en) Intelligent household gateway network configuration method and intelligent household system
EP1474875B1 (en) Method and device for filter monitoring for ip multicast services
CN105101465A (en) Wireless network configuration method and wireless network configuration system
CN105392185A (en) Intelligent equipment networking method and device, and system
EP2369791B1 (en) Apparatus and method for establishing connections with a plurality of virtual networks
US20100027444A1 (en) Method and system for establishing connections for wireless network devices
EP2611256B1 (en) Communication managers and methods for automatically performing a channel selection procedure in a wireless network
JP2003273874A (en) Discrimination method of device supporting mcap on the same network, and multicast communication method using it
US7650417B2 (en) Method for setting up a communication between a device and a host application over an IP network
US7886078B2 (en) Connection support server and communication apparatus
JP3305268B2 (en) Wireless multicast receiving station group configuration method and wireless station using the method
US7324544B1 (en) Network slot synchronization scheme for a computer network communication channel
WO2001006709A1 (en) Network slot synchronization scheme for a computer network communication channel

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SC SD SE SG SK SL TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
COP Corrected version of pamphlet

Free format text: PAGES 1/5-5/5, DRAWINGS, REPLACED BY NEW PAGES 1/3-3/3

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP

DPE2 Request for preliminary examination filed before expiration of 19th month from priority date (pct application filed from 20040101)