Вы находитесь на странице: 1из 45

Design of a Home Network

Rajesh Rajamani
(raj@cs.wisc.edu)

11/13/00

Home networking Applications

Computer Interconnection Control

11/13/00

Home networking technologies Physical layer


Phoneline Powerline Ethernet Wireless

11/13/00

We wanted
A Dynamic network

Configuration Sharing resources Maintanence Control - from anywhere, anytime

11/13/00

Design issues
System Software Hardware Integrating hardware with software

11/13/00

Connection Technology

Jini

UPnP

11/13/00

Choices Operating system


Linux Unix variants

Windows
Guiding principle - Source availability, Synopsys network
11/13/00 7

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

11/13/00

Verification

11/13/00

Co-verification using Eaglei


Link models Instruction set simulator (ISS) Live Target

11/13/00

10

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

11/13/00

11

ISS model
Full visibility into the processor and can execute assembly instrs Good for debugging device drivers

Actual Instructions

BFM ISS

11/13/00

12

Finally, each device


Application using Jini JVM Java Native Interface Eaglei

Verilog Model

11/13/00

13

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

WWW

SERVLET

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

Jini Lookup

1. Ask for the service 2. Get the service proxy

3. Interact with device


DEVICES

11/13/00

14

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 15

Components
Infrastructure Programming model Java API, Leasing, Transactions, events Services

JVM, RMI, Discovery/Join, Lookup service, Java security

Printer, Refrigerator,

11/13/00

16

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 17

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

18

Lookup Service Lookups proxy

Service Provider

11/13/00

19

Lookup Service
Lookups proxy

DISCOVERY

Service Provider

Lookups proxy
1. Get Lookups proxy from the lookup

11/13/00

20

Lookup Service Lookups proxy Service Object Service Attributes

JOIN

Service Provider

Lookups proxy
2. Register service object with lookup 1. Get Lookups proxy from the lookup

Service Object Service Attributes


21

11/13/00

Lookup Service

Service Object Service Attributes


1b. Query the Lookup service 2b. Gets Service Proxy

Service Provider

Client
Service Object

Service Attributes
11/13/00

3b. Interact with service

22

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

23

Multicast Request (Service Initiated Discovery

Discoverer

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

Lookup Service

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


11/13/00 24

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

25

Multicast Announcement (Lookup initiated discovery)


1. Announcements (sent via UDP Multicast) IP Address 224.0.1.84 port:4160

Discoverer

2. Request Message (sent via TCP unicast)

Lookup Service

3. Response Message (Sent via TCP unicast)

11/13/00

26

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

27

Unicast Discovery (Direct Discovery)

Discoverer

1. Request Message (sent via TCP Unicast)

Lookup Service

2. Response Message (Sent via TCP unicast, connects to 4160)


11/13/00 28

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 29

Lookup Service

Join Protocol
Service Object Service Object

Service Attributes

Client

Service Provider

Service Object

Service Attributes
11/13/00 30

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 31

Lookup Service

Lookup Service
Service Object Service Attributes
1. Query the Lookup service 2. Gets Service Proxy

Service Provider

Client
Service Object

Service Attributes
11/13/00

3. Interact with service

32

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

33

Full Jini Capable Device


Service client
Client
Proxy

Service Provider
Hardware Implementation Private Protocol

JVM

Network

Communication via RMI protocol

11/13/00

34

Clustering of devices with a Jini capable proxy on the network


Service client
Client
Proxy

Network Proxy

JVM

Private Protocol

Network

Communication via RMI protocol

Dev 1

Dev 2

Dev 3

11/13/00

35

Conclusions
Encouraging

Easy to put together

Discouraging

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

11/13/00

36

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

WWW

SERVLET

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

Jini Lookup

1. Ask for the service 2. Get the service proxy

Refrigerator 11/13/00

SmartPhone
DEVICES

Printer

3. Interact with device

37

Finally, each device


Application using Jini JVM Java Native Interface Eaglei

Verilog Model

11/13/00

38

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 39

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

11/13/00

40

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 41

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

42

Co-verification

11/13/00

43

Clustering of multiple devices (physical option)


Service client
Client
Proxy

Service Provider
Dev 1 Dev 2 Dev 3

Private Protocol

JVM

Network

Communication via RMI protocol

11/13/00

44

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

11/13/00

45

Вам также может понравиться