Design of a Home Network

Download Report

Transcript Design of a Home Network

Design of a Home Network
Rajesh Rajamani
([email protected])
11/13/00
1
Home networking Applications
 Computer Interconnection
 Control
11/13/00
2
Home networking technologies
– Physical layer
 Phoneline
 Powerline
 Ethernet
 Wireless
11/13/00
3
We wanted …
 A Dynamic network




11/13/00
Configuration
Sharing resources
Maintanence
Control - from anywhere, anytime
4
Design issues
 System Software
 Hardware
 Integrating hardware with software
11/13/00
5
Connection Technology
 Jini
 UPnP
11/13/00
6
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
8
Verification
11/13/00
9
Co-verification using Eaglei
 Link models
 Instruction set simulator (ISS)
 Live Target
11/13/00
10
Link model
GenericVSPRead32()
1. Function call
 Full visibility into the
s/w execution process
Eaglei
2. Reaches VSP core thru eaglei
Memory
/registers
VSP
3. I/O bound instructions are
 Can test functionality
of the design
executed
11/13/00
11
ISS model
Actual Instructions
BFM
ISS
11/13/00
 Full visibility into the
processor and can
execute assembly instrs
 Good for debugging
device drivers
12
Finally, each device
Application using Jini
JVM
Java Native Interface
Eaglei
Verilog Model
11/13/00
13
The Network
CLIENT
SERVLET
WWW
The Client clicks on the link leading to
his URL requesting a service
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
JVM, RMI,
Discovery/Join,
Lookup service,
Java security
11/13/00
Programming
model
Services
Java API,
Leasing,
Transactions,
events
Printer,
Refrigerator,
…
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
Lookup’s proxy
Service Provider
11/13/00
19
Lookup Service
Lookup’s proxy
DISCOVERY
Service Provider
Lookup’s proxy
1. Get Lookup’s proxy from the lookup
11/13/00
20
Lookup Service
Lookup’s proxy
Service Object
Service Attributes
JOIN
Service Provider
Lookup’s proxy
2. Register service object with lookup
1. Get Lookup’s proxy from the lookup
11/13/00
Service Object
Service Attributes
21
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
Service Provider
Hardware
Implementation
Private
Protocol
Client
Proxy
Network
11/13/00
JVM
Communication via RMI protocol
34
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
11/13/00
Dev 2
Dev 3
35
Conclusions
 Encouraging

Easy to put together
 Discouraging


11/13/00
Bad response time
Jini + JVM (+ OS) is very heavy
36
The Network
CLIENT
SERVLET
WWW
The Client clicks on the link leading to
his URL requesting a service
The services register their proxies with the lookup
service, which is queried by the servlet for servicing the
request from the client.
Refrigerator
11/13/00
Jini
Lookup
SmartPhone
DEVICES
1. Ask for
the service
2. Get the
service proxy
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
Service Provider
Dev 1
Dev 2
Private
Protocol
Client
Proxy
Network
11/13/00
Dev 3
JVM
Communication via RMI protocol
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