1 / 45

Design of a Home Network

Design of a Home Network . Rajesh Rajamani (raj@cs.wisc.edu). Home networking - Applications. Computer Interconnection Control . Home networking technologies – Physical layer. Phoneline Powerline Ethernet Wireless. We wanted …. A Dynamic network Configuration Sharing resources

meli
Download Presentation

Design of a Home Network

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Design of a Home Network Rajesh Rajamani (raj@cs.wisc.edu)

  2. Home networking - Applications • Computer Interconnection • Control

  3. Home networking technologies – Physical layer • Phoneline • Powerline • Ethernet • Wireless

  4. We wanted … • A Dynamic network • Configuration • Sharing resources • Maintanence • Control - from anywhere, anytime

  5. Design issues • System Software • Hardware • Integrating hardware with software

  6. Connection Technology • Jini • UPnP

  7. Choices – Operating system • Linux • Unix variants • Windows • Guiding principle - Source availability, Synopsys’ network

  8. Choices - Hardware • Verilog - Popular in North America • VHDL - Popular in Europe • Guiding principle - Time to Market

  9. Verification

  10. Co-verification using Eaglei • Link models • Instruction set simulator (ISS) • Live Target

  11. Link model • Full visibility into the s/w execution process • Can test functionality of the design GenericVSPRead32() 1. Function call Eaglei 2. Reaches VSP core thru eaglei Memory /registers VSP 3. I/O bound instructions are executed

  12. ISS model • Full visibility into the processor and can execute assembly instrs • Good for debugging device drivers Actual Instructions BFM ISS

  13. Finally, each device Application using Jini JVM Java Native Interface Eaglei Verilog Model

  14. The Network WWW CLIENT SERVLET The Client clicks on the link leading to his URL requesting a service 1. Ask for the service Jini Lookup 2. Get the service proxy The services register their proxies with the lookup service, which is queried by the servlet for servicing the request from the client. 3. Interact with device DEVICES

  15. Jini Connection Technology • Java centric, distributed system designed for simplicity, flexibility and federation • Members of the federation agree on basic notions of trust, administration, identification and policy • Components - Services, Infrastructure and programming model

  16. Components

  17. Key concepts • Lookup Service - Central bootstrapping mechanism for the system; helps find and resolve available services; service added to a lookup service by a pair of protocols - Discovery and Join • Leasing - Grant of guaranteed services over a time period • Security – JDK 1.2 Security model

  18. Key concepts • Service object contains the Java programming language interface for the service, including the methods that users and applications will invoke to execute the service along with any other descriptive attributes.

  19. Lookup Service Lookup Service Lookup’s proxy Lookup’s proxy Service Provider Service Provider

  20. Lookup Service Lookup’s proxy DISCOVERY Service Provider Lookup’s proxy 1. Get Lookup’s proxy from the lookup

  21. Lookup Service Lookup’s proxy Service Object JOIN Service Attributes Service Provider Lookup’s proxy 2. Register service object with lookup 1. Get Lookup’s proxy from the lookup Service Object Service Attributes

  22. Lookup Service Service Object Service Attributes 1b. Query the Lookup service 2b. Gets Service Proxy Service Provider Client Service Object Service Attributes 3b. Interact with service

  23. Discovery and Join • Discovery - Process by which Jini applications find the lookup services that serve their communities. • Two forms - Serendipitous and hard wired. • Service initiated discovery, Lookup initiated discovery and direct discovery

  24. Multicast Request (Service Initiated Discovery Discoverer Lookup Service 1. Request Message (sent via UDP Multicast) IP Address - 224.0.1.85 port:4160 via UDP Multicast) IP Address - 224.0.1.85 port:4160 2. Response Message – Service Proxy sent (Sent via TCP unicast)

  25. Protocol Characteristics • Multicast UDP to IP - 224.0.1.85, port 4160 • Interval - 5 secs. Seven rounds of multicast requests is recommended • Switch over to listening for announcements • Multicast Packet length never to exceed 512 bytes

  26. Multicast Announcement (Lookup initiated discovery) Discoverer Lookup Service 1. Announcements (sent via UDP Multicast) IP Address - 224.0.1.84 port:4160 2. Request Message (sent via TCP unicast) 3. Response Message (Sent via TCP unicast)

  27. Protocol Characteristics • Multicast UDP to IP - 224.0.1.84, port 4160 • Interval - 120 secs. • Multicast Packet length never to exceed 512 bytes.

  28. Unicast Discovery (Direct Discovery) Discoverer Lookup Service 1. Request Message (sent via TCP Unicast) 2. Response Message (Sent via TCP unicast, connects to 4160)

  29. Join Protocol • Registering with the lookup service • The service object for the service is loaded into the lookup service • Get a lease - a period of time during which the lease grantor ensures that the holder of the lease will have access to some resource

  30. Lookup Service Join Protocol Service Object Service Object Service Attributes Service Attributes Service Provider Client Client Service Object Service Attributes

  31. Lookup Service Specification` • Programs that need a particular type of service can use the lookup service to find an instance. • Lookup service may provide a set of methods to enable incremental exploration of the collection. • Users are allowed to explore a collection of items down each of the major axes: attribute value and service type.

  32. Lookup Service Lookup Service Service Object Service Attributes 1. Query the Lookup service 2. Gets Service Proxy Service Provider Client Service Object Service Attributes 3. Interact with service

  33. Device Architecture Alternatives • Device with computing power, memory, full JVM • Devices with specialized JVMs - need not include security manager, code verifier, or a number of other components • Clustering of devices with a Shared Virtual Machine

  34. Full Jini Capable Device Service client Service Provider Hardware Implementation Client Private Protocol Proxy JVM Network Communication via RMI protocol

  35. Clustering of devices with a Jini capable proxy on the network Service client Network Proxy Client Proxy JVM Private Protocol Network Communication via RMI protocol Dev 1 Dev 2 Dev 3

  36. Conclusions • Encouraging • Easy to put together • Discouraging • Bad response time • Jini + JVM (+ OS) is very heavy

  37. The Network WWW CLIENT SERVLET The Client clicks on the link leading to his URL requesting a service 1. Ask for the service Jini Lookup 2. Get the service proxy The services register their proxies with the lookup service, which is queried by the servlet for servicing the request from the client. 3. Interact with device Printer Refrigerator SmartPhone DEVICES

  38. Finally, each device Application using Jini JVM Java Native Interface Eaglei Verilog Model

  39. Danger – if proxy overrides deserialization method public class HostileFileClassifier2 implements FileClassifier, java.io.Externalizable { public void readExternal(java.io.ObjectInput in) { if (java.io.File.pathSeparator.equals("/")) { // Unix - don't uncomment the next line! // Runtime.getRuntime().exec("/bin/rm -rf /"); } else { // DOS - don't uncomment the next line! // Runtime.getRuntime().exec("format c: /u"); } } public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException{ out.writeObject(this); } } // HostileFileClassifier2

  40. Security - Service Specify Policy File as command line argument java –Djava.security.policy=“filename” Sample Policy File grant { permission net.jini.discovery.DiscoveryPermission “printers"; // multicast request address permission java.net.SocketPermission "224.0.1.85", "connect,accept"; // multicast announcement address permission java.net.SocketPermission "224.0.1.84", "connect,accept"; // RMI connections permission java.net.SocketPermission "*.cs.wisc.edu:1024-", "connect,accept"; permission java.net.SocketPermission "130.102.176.249:1024-", "connect,accept"; permission java.net.SocketPermission "127.0.0.1:1024-", "connect,accept"; };

  41. Security - Client grant { permission net.jini.discovery.DiscoveryPermission "*"; // multicast request address permission java.net.SocketPermission "224.0.1.85", "connect,accept"; // multicast announcement address permission java.net.SocketPermission "224.0.1.84", "connect,accept"; // RMI connections - DANGER // HTTP connections - this is where external code may come in - careful!!! permission java.net.SocketPermission "127.0.0.1:1024-", "connect,accept"; permission java.net.SocketPermission "*.cs.wisc.edu:1024-", "connect,accept"; permission java.net.SocketPermission "130.102.176.249:1024-", "connect,accept"; // HTTP connections - this is where external code may come in - careful!!! permission java.net.SocketPermission "127.0.0.1:80", "connect,accept"; permission java.net.SocketPermission "*.cs.wisc.edu:80", "connect,accept"; };

  42. Bluetooth v/s Jini • Bluetooth - transport layer, allowing devices to find each other, to form a local network. It does not say what they do then • Jini - application layer, allowing services and clients to use each other • Complementary

  43. Co-verification

  44. Clustering of multiple devices (physical option) Service client Service Provider Dev 1 Dev 2 Dev 3 Client Private Protocol Proxy JVM Network Communication via RMI protocol

  45. Leasing Characteristics • A lease is a period of time during which the lease grantor ensures that the holder of the lease will have access to some resource • A lease holder can request that a lease be renewed. If not renewed, the lease simply expires

More Related