METHOD AND APPARATUS FOR PROVIDING PEER-TO-PEER NETWORKING OF COMPUTERS OVER AN AC POWER LINE
FIELD OF THE INVENTION
The invention relates to computer networking in general. More particularly, the invention relates to a method and apparatus for providing peer-to-peer networking of computers over an AC power line.
BACKGROUND OF THE INVENTION
A computer network is a group of computers, such as Personal Computers (PCs), interconnected by communication paths. A computer network provides several advantages that are not possible with a group of unconnected, or "standalone," computers. By interconnecting computers, a peripheral on one computer can be used by other computers in the network, thus eliminating the need to buy additional peripherals for the second PC. As an example, assume that a home has a first PC connected to a printer and modem, and a second PC without a printer or modem. Without a network, a person could only use the printer or access the Internet when working at the first PC. With a network, however, the person could use the printer and access the Internet when working at either PC. Thus, a family with two PCs might want to create a network instead of buying a second printer. Moreover, the family might want to create a network instead of purchasing a second modem and incurring the cost of installing and maintaining a second telephone line. Finally, a family with only one PC might decide to buy a second PC, if the PCs could be easily networked together, because both PCs could now share common resources, thereby reducing the cost of obtaining the second PC.
Another benefit of networking computers is that information stored on any computer in that network can be made available to all of the other computers in the network. For example, a person who typed and stored a word processing file on
one PC could easily access that file from another PC in the network. In contrast, without a computer network the person would have to copy the file, such as onto a 3.5" disk, and physically carry the file to another PC. A computer network also lets two people at different computers use certain computer programs, such as computer games, simultaneously and interactively.
There are several problems, however, that make the networking of computers difficult, especially for an average consumer in a residential home. First, special wires must typically be installed between the computers in the network to form the communication paths. This is obviously a problem if the computers are in different rooms of a residential home. Also, most typical networks require additional equipment, such as hubs, to be installed. Although some wireless systems have been proposed, such as Radio Frequency (RF) based systems, these are subject to interference and are generally too expensive for the average consumer. Installing special equipment in a computer and/or wiring a house can be both difficult and expensive. It is often cheaper for a person to just buy a second printer or other peripheral, although the other benefits of networking are lost with this solution.
Another problem that consumers face when creating a network is that most networks use a "client/server" model. This means that one computer in the network is designated as a "server" and the other computers are designated as "clients."
Some network functions can only be handled by the server computer, and not by the client computers, making it difficult for the average consumer to configure, understand and use the network. In a "peer-to-peer" network, however, all of the computers are equivalent - making it easier to understand and configure the system. Moreover, peer-to-peer networking software is already included with some popular operating systems, such as the Windows 95 operating system available from Microsoft Corporation in Redmond, Washington.
With respect to the cost and difficulty of installing wiring between PCs, it should be noted that residential homes that have a PC are likely to have an alternating current (AC) power line infrastructure throughout the house. Moreover, it is known that some types of information can be sent over an AC power line as
described, for example, in U.S. Patent No. 4,815,106, issued March 21, 1989. A typical use of AC power line communication is the XI 0 communications protocol for the remote control of electrical devices, which provides a limited set of commands, such as "turn on" and "turn off," over standard household wiring. In view of the foregoing, it can be appreciated that a substantial need exists for a method and apparatus for providing peer-to-peer networking of computers over an AC power line that ensures an inexpensive and simple way of creating a network, and solving the above-discussed problems.
SUMMARY OF THE INVENTION
The present invention includes a method and apparatus for providing peer- to-peer networking of computers over an AC power line. Information is sent from a first computer in the peer-to-peer network to a second computer in the peer-to- peer network over an AC power line. Information is also received at the first computer from the second computer over the AC power line.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram including elements of an AC power line peer-to- peer computer network suitable for practicing an embodiment of the present invention.
FIG. 2 is a diagram of an architecture for a PC, adapter and AC power line interface suitable for practicing an embodiment of the invention.
FIG. 3 is a block diagram of a hardware architecture for an adapter suitable for practicing an embodiment of the invention. FIG. 4 is a block diagram of a software architecture for an adapter suitable for practicing an embodiment of the invention.
FIG. 5 is a block flow diagram of a low level security process suitable for practicing an embodiment of the invention.
DETAILED DESCRIPTION
The present invention includes a method and apparatus for providing peer- to-peer networking of computers over an AC power line. Referring now in detail to the drawings wherein like parts are designated by like reference numerals throughout, there is illustrated in FIG. 1 a block diagram including elements of an AC power line peer-to-peer computer network suitable for practicing an embodiment of the present invention. FIG. 1 shows a first PC 201 connected to a first adapter 301. The first adapter 301 connects to an AC power line 100 through a first AC power outlet 11. A modem 80 connected to the first PC 201 lets the PC communicate through a telephone line. A printer 90 is locally attached to the first adapter 301.
Also shown in FIG. 1 is a second PC 202 connected to a second adapter 302. Because the second adapter 302 also connects to the AC power line 100 through a second AC power outlet 12, the first and second PCs 201, 202 can exchange peer-to-peer network information. As will be explained in detail with respect to FIGS. 2 through 5, this lets a user at the second PC 202 access the modem 80 and printer 90 associated with the first PC 201. Although only two PCs 201, 202 are shown in FIG. 1, additional PCs could be included in the AC power line peer-to-peer network.
The relevant functionality of the second PC station's communications system can best be understood as a series of layers that communicate with each other. As shown in FIG. 1, these functional layers include an application layer 62, which lets a user and the second PC 202 interface with the AC power line peer-to- peer network. A networking layer 52 handles the routing of the data in the peer-to- peer network by, for example, making sure that a packet of information input at the application layer 62 is sent to the proper PC in the network. A Media Access
Control (MAC) layer 42 and a Logical Link Control (LLC) layer 32 provide error control and synchronization for the physical layer 22, which conveys information in the peer-to-peer network at the electrical and mechanical level. The MAC layer 42 and LLC layer 32 assure that an initial connection in the AC power line peer-to- peer network has been set up, divide output data into data frames, and handle acknowledgments from other PCs that information has arrived successfully. They
can also ensure that incoming data has been received successfully. Layers similar to those described above are also present in the first PC station, but are not shown in FIG. 1.
FIG. 2 is a diagram of a PC 200 connected to an AC power line peer-to- peer network through an adapter 300 attached to the PC's printer port 290.
Although the printer port 290 can be used to interface the adapter 300 to the PC 200, any communications port designed to allow the PC to communicate with an attached device, such as, for example, a Peripheral Component Interconnect/Industry Standard Architecture (PCI/ISA) port, could be used instead. The printer port 290 can used by both network and printer traffic. The adapter 300 is connected to an AC outlet 10 letting the PC 200 communicate through the AC power line 100 as described in detail with respect to FIGS. 3 and 4. The PC 200 could be, for example, a PC with one of the Pentium®, Pentium® Pro, and Pentium® II family of processors commercial available from INTEL, or their equivalents, running, for example, Windows 95, commercially available from Microsoft Corporation. The components inside the PC 200 in FIG. 2 represent software modules that can be executed by such a microprocessor. Although the present invention is described herein with respect to an IBM compatible PC, it will be understood by those skilled in the art the invention can also be applied to other types of PCs.
The embodiment shown in FIG. 2 includes a locally attached printer (not shown) connected to the adapter 300, and the PC 200 can access the printer using a printer driver 240, a Spooler Sub System Dynamic Link Library (Spoolss.dll) 230 and a Virtual Printer Port Virtual Device Driver (VPP.VXD) 210. The VPP.VXD driver 210 processes all adapter jobs, including network, printer and configuration jobs, and negotiates throughput rate at initialization.
The PC 200 uses its printer port 290 to communicate with other PCs in the AC power line peer-to-peer network through the adapter 300. An adapter Network Device Interface Specification (NDIS) driver 220 communicates with the VPP.VXD driver 210 attached to the printer port 290. The adapter NDIS driver 220 allows different protocol to "share" the same hardware and can be compatible
with NDIS version 3.0. An Inter-network Packet Exchange (IPX) 250 communicates through the adapter's NDIS driver 220 to handle the networking packet protocol for file and printer data. A Transmission Control Protocol/Internet Protocol (TCP/IP) 260 communicates through the adapter NDIS driver 220 to manage the packaging and addressing of packets over the Internet. As is known in the art, a Virtual Redirector (Vredir) 272, a Virtual Server (Vserver) 274 and Internet Sharing Software (ISS) application 280 using WinSock version 2.0 276 can communicate through either the IPX 250 or the TCP/IP 260 as required. The IPX 250, TCP/IP 260 and WinSock version 2.0 can all be standard Microsoft components.
FIG. 3 is a hardware block diagram of an embodiment of the adapter 300 shown in FIG. 2. The illustrated adapter 300 has a host parallel port 310 which connects to the printer port on an AC power line peer-to-peer network PC 200 in either a compatibility, a bi-directional or an Enhanced Parallel Port (EPP), including 0 wait state EPP, mode. In another embodiment, a modem 80 can be also connected to the PC 200. The host parallel port 310 communicates with an adaptor control Application Specific Integrated Circuit (ASIC) 320. A power line physical interface ASIC 360, such as the one developed by Adaptive Networks, Inc. in Cambridge, MA, is a specially designed circuit for use in an AC power line adapter. The adaptor control ASIC 320 communicates with a printer port 390, letting the PC 200 locally use a printer 90 attached to the printer port 390.
In this embodiment, the adaptor control ASIC 320 also communicates with an Electrically Erasable Programmable Read Only Memory (EEPROM) 324 to retrieve pre-stored information, and a set of Light Emitting diodes (LEDs) 322 which can display the status of the adapter 300. A system bus 350 connects the adaptor control ASIC 320 with a Reduced Instruction Set Computer (RISC) microcontroller 330, such as an Advanced RISC Machine 7 (ARM7) Thumb processor produced by Advanced RISC Machines, Inc., a Static Random Access Memory (SRAM) 340 and the power line physical interface ASIC 360, such as a 10M bits/second data rate power line interface developed by Adaptive Networks, Inc. The power line physical interface ASIC 360 connects to an AC outlet 10 through a
power line connection 380, letting the PC 200 communicate over the AC power line 100. It should be noted that the this design is only one embodiment of the present invention. Those skilled in the art will realize that other components and designs meeting the performance requirements can also be used. Referring now to FIG. 4, which shows the software architecture for the adapter 300 described above, the AC power line peer-to-peer network PC 200 connects to the adapter 300 through a host parallel port interface task 410. The host parallel port interface task 410 can communicate with a printer port interface 490 through a packet router 420, letting the PC 200 locally use an attached printer 90. A software handshake to the printer 90 can be used by the printer port interface 490 to transfer data, but the handshake task should be a lower priority than AC power line peer-to-peer network tasks and the host parallel port interface task 410. It should be noted that the packet router 420 prefixes all data with a header indicating data type and length. The header information comes across a control channel (not shown in FIG. 4) and the data is placed in an appropriate queue for distribution. The packet router 420 also communicates with the MAC/Link control 440 through a Segmentation and Reassembly (SAR)/Cyclic Redundancy Check (CRC)/encryption process 430 to ensure data integrity.
The link control process forwards error correction and handles error detection and retransmission, while the MAC process provides reliable access to a network with a large number of nodes, low error rate transmission, easily detected failed node and management of cross interference from neighboring networks. The MAC uses a token passing system in the AC power line peer-to-peer network. The token passing system passes information frames between nodes in the AC power line peer-to-peer network. Any peer can insert information into a frame and specify which other peer in the network should read the information.
The physical interface 480 lets the PC 200 communicate over the AC power line 100 through an AC outlet 10. The MAC/link control 440 and physical interface 480 can be those such as ones developed by Adaptive Networks, Inc. in Cambridge, MA.
Finally, a Real Time Operating System (RTOS) kernel 450 controls all of the software tasks described with respect to FIG. 4.
Security in such an AC power line peer-to-peer network is required because the typical residential power line structure may have multiple homes connected to a common transformer. Thus the homes can be electrically connected and if security, such as encryption, is not used there is a possibility that someone will access data stored in their neighbor's computer. Thus, the flow diagram shown in FIG. 5 provides secure data transfers that cannot be read or altered by adjacent homes. The low level security process includes firmware authentication that protects the adapter from unauthorized firmware and assures packet authentication. In order to provide packet authentication, the process begins at step 510 and checks the network ID at step 520. If the check of the network ID fails, the packet is discarded at step 530.
If the check of the network ID passes, decryption is performed at step 540. If the decrypted information is not valid at step 550, the packet is discarded at step 560. If the decrypted information is valid, the packet is passed to the PC at step 570 and the process continues at step 580.
It is worthy to note that some of the functionality for the invention described herein involves the use of a computer. The overall functioning of the computer is controlled by a CPU, which operates under the control of executed computer program instructions that are stored in a main memory. The main memory may be any type of machine readable storage device, and the computer can have a number of Input/Output (I/O) controllers used to control the flow of information between the computer and a number of external devices or networks. Although various embodiments are specifically illustrated and described herein, it will be appreciated that modifications and variations of the present invention are covered by the above teachings and within the purview of the appended claims without departing from the spirit and intended scope of the invention. For example, although two computers are shown in the AC power line peer-to-peer network, it can be appreciated that any number of computers can be included in a peer-to-peer network and still fall within the scope of the invention.