45
11/13/00 1 Design of a Home Network Rajesh Rajamani ([email protected])

11/13/00 1 Design of a Home Network Rajesh Rajamani ([email protected])

Embed Size (px)

Citation preview

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

11/13/00 1

Design of a Home Network

Rajesh Rajamani([email protected])

Page 2: 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

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

11/13/00 3

Home networking technologies – Physical layer

Phoneline Powerline Ethernet Wireless

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

11/13/00 4

We wanted …

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

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

11/13/00 5

Design issues

System Software

Hardware

Integrating hardware with software

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

11/13/00 6

Connection Technology

Jini

UPnP

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

11/13/00 7

Choices – Operating system

Linux

Unix variants

Windows

Guiding principle - Source availability, Synopsys’ network

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

11/13/00 8

Choices - Hardware

Verilog - Popular in North America

VHDL - Popular in Europe

Guiding principle - Time to Market

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

11/13/00 9

Verification

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

11/13/00 10

Co-verification using Eaglei

Link models

Instruction set simulator (ISS)

Live Target

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

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

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

11/13/00 12

ISS model

BFMISS

Actual Instructions

Full visibility into the processor and can execute assembly instrs

Good for debugging device drivers

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

11/13/00 13

Finally, each device

Application using Jini

JVM

Java Native Interface

Eaglei

Verilog Model

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

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

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

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

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

11/13/00 16

Components

Infrastructure Programming model

Services

JVM, RMI, Discovery/Join, Lookup service,

Java security

Java API,

Leasing, Transactions,

events

Printer, Refrigerator,

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

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

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

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.

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

11/13/00 19

Service Provider

Lookup Service

Lookup’s proxy

Service Provider

Lookup Service

Lookup’s proxy

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

11/13/00 20

Service Provider

Lookup Service

Lookup’s proxy

Lookup’s proxy

1. Get Lookup’s proxy from the lookup

DISCOVERY

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

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

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

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

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

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

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

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)

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

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

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

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)

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

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.

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

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)

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

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

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

11/13/00 30

Join Protocol

Client

Service Object

Service Attributes

Service Provider

Service Object

Service Attributes

Client

Lookup Service

Service Object

Service Attributes

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

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.

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

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

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

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

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

11/13/00 34

Full Jini Capable Device

Network

Proxy

Client

Service client

JVM

Hardware Implementation

Service Provider

Communication via RMI protocol

Private Protocol

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

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

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

11/13/00 36

Conclusions

Encouraging Easy to put together

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

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

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

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

11/13/00 38

Finally, each device

Application using Jini

JVM

Java Native Interface

Eaglei

Verilog Model

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

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

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

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";};

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

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";

};

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

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

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

11/13/00 43

Co-verification

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

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

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

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