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

Preview:

Citation preview

11/13/00 1

Design of a Home Network

Rajesh Rajamani(raj@cs.wisc.edu)

11/13/00 2

Home networking - Applications

Computer Interconnection

Control

11/13/00 3

Home networking technologies – Physical layer

Phoneline Powerline Ethernet Wireless

11/13/00 4

We wanted …

A Dynamic network Configuration Sharing resources Maintanence Control - from anywhere, anytime

11/13/00 5

Design issues

System Software

Hardware

Integrating hardware with software

11/13/00 6

Connection Technology

Jini

UPnP

11/13/00 7

Choices – Operating system

Linux

Unix variants

Windows

Guiding principle - Source availability, Synopsys’ network

11/13/00 8

Choices - Hardware

Verilog - Popular in North America

VHDL - Popular in Europe

Guiding principle - Time to Market

11/13/00 9

Verification

11/13/00 10

Co-verification using Eaglei

Link models

Instruction set simulator (ISS)

Live Target

11/13/00 11

GenericVSPRead32()

Eaglei

VSPMemory

/registers

1. Function call

2. Reaches VSP core thru eaglei

3. I/O bound instructions are

executed

Link model

Full visibility into the s/w execution process

Can test functionality of the design

11/13/00 12

ISS model

BFMISS

Actual Instructions

Full visibility into the processor and can execute assembly instrs

Good for debugging device drivers

11/13/00 13

Finally, each device

Application using Jini

JVM

Java Native Interface

Eaglei

Verilog Model

11/13/00 14

The Network

The services register their proxies with the lookup service, which is queried by the servlet for servicing the request from the client.

DEVICES

WWWCLIENT SERVLET

The Client clicks on the link leading to his URL requesting a service

Jini Lookup

1. Ask for the service

2. Get the service proxy

3. Interact with device

11/13/00 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

11/13/00 16

Components

Infrastructure Programming model

Services

JVM, RMI, Discovery/Join, Lookup service,

Java security

Java API,

Leasing, Transactions,

events

Printer, Refrigerator,

11/13/00 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

11/13/00 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.

11/13/00 19

Service Provider

Lookup Service

Lookup’s proxy

Service Provider

Lookup Service

Lookup’s proxy

11/13/00 20

Service Provider

Lookup Service

Lookup’s proxy

Lookup’s proxy

1. Get Lookup’s proxy from the lookup

DISCOVERY

11/13/00 21

Service Provider

Service Attributes

Lookup Service

Service Object

Service Attributes

Service Object

Lookup’s proxy

1. Get Lookup’s proxy from the lookup

2. Register service object with lookup

Lookup’s proxy

JOIN

11/13/00 22

Service Provider

Service Object

Service Attributes

Client

Lookup Service

Service Object

Service Attributes

3b. Interact with service

2b. Gets Service Proxy

1b. Query the Lookup service

11/13/00 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

11/13/00 24

Multicast Request (Service Initiated Discovery

Discoverer Lookup Service

1. Request Message (sent via UDP Multicast) IP Address - 224.0.1.85 port:4160via UDP Multicast) IP Address - 224.0.1.85 port:4160

2. Response Message – Service Proxy sent (Sent via TCP unicast)

11/13/00 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

11/13/00 26

Multicast Announcement (Lookup initiated discovery)

Discoverer Lookup Service

1. Announcements (sent via UDP

Multicast) IP Address - 224.0.1.84port:4160

3. Response Message(Sent via TCP unicast)

2. Request Message (sent via TCP unicast)

11/13/00 27

Protocol Characteristics

Multicast UDP to IP - 224.0.1.84, port 4160

Interval - 120 secs.

Multicast Packet length never to exceed 512 bytes.

11/13/00 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)

11/13/00 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

11/13/00 30

Join Protocol

Client

Service Object

Service Attributes

Service Provider

Service Object

Service Attributes

Client

Lookup Service

Service Object

Service Attributes

11/13/00 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.

11/13/00 32

Lookup Service

Service Provider

Service Object

Service Attributes

Client

Lookup Service

Service Object

Service Attributes

3. Interact with service

2. Gets Service Proxy

1. Query the Lookup service

11/13/00 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

11/13/00 34

Full Jini Capable Device

Network

Proxy

Client

Service client

JVM

Hardware Implementation

Service Provider

Communication via RMI protocol

Private Protocol

11/13/00 35

Clustering of devices with a Jini capable proxy on the network

Network

Client

Service client Network Proxy

Communication via RMI protocol

ProxyJVM

Private Protocol

Dev 1

Dev 2

Dev 3

11/13/00 36

Conclusions

Encouraging Easy to put together

Discouraging Bad response time Jini + JVM (+ OS) is very heavy

11/13/00 37

The Network

The services register their proxies with the lookup service, which is queried by the servlet for servicing the request from the client.

DEVICES

WWWCLIENT SERVLET

The Client clicks on the link leading to his URL requesting a service

Jini Lookup

1. Ask for the service

2. Get the service proxy

3. Interact with deviceRefrigerator SmartPhone Printer

11/13/00 38

Finally, each device

Application using Jini

JVM

Java Native Interface

Eaglei

Verilog Model

11/13/00 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

11/13/00 40

Security - Service

Specify Policy File as command line argument java –Djava.security.policy=“filename”

Sample Policy Filegrant { 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";};

11/13/00 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";

};

11/13/00 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

11/13/00 43

Co-verification

11/13/00 44

Clustering of multiple devices (physical option)

Network

Service client

Communication via RMI protocol

Proxy

Client

Service Provider

JVM

Private Protocol

Dev 1

Dev 2

Dev 3

11/13/00 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

Recommended