Title: Design of a Home Network
1Design of a Home Network
- Rajesh Rajamani
- (raj_at_cs.wisc.edu)
2Home networking - Applications
- Computer Interconnection
- Control
3Home networking technologies Physical layer
- Phoneline
- Powerline
- Ethernet
- Wireless
4We wanted
- A Dynamic network
- Configuration
- Sharing resources
- Maintanence
- Control - from anywhere, anytime
5Design issues
- System Software
- Hardware
- Integrating hardware with software
6Connection Technology
7Choices Operating system
- Linux
- Unix variants
- Windows
- Guiding principle - Source availability,
Synopsys network
8Choices - Hardware
- Verilog - Popular in North America
- VHDL - Popular in Europe
- Guiding principle - Time to Market
9Verification
10Co-verification using Eaglei
- Link models
- Instruction set simulator (ISS)
- Live Target
11Link 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
VSP
Memory /registers
3. I/O bound instructions are executed
12ISS model
- Full visibility into the processor and can
execute assembly instrs - Good for debugging device drivers
Actual Instructions
BFM
ISS
13Finally, each device
Application using Jini
JVM
Java Native Interface
Eaglei
Verilog Model
14The 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
15Jini 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
16Components
Infrastructure Programming model Services
JVM, RMI, Discovery/Join, Lookup service, Java security Java API, Leasing, Transactions, events Printer, Refrigerator,
17Key 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
18Key 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.
19Lookup Service
Lookup Service
Lookups proxy
Lookups proxy
Service Provider
Service Provider
20Lookup Service
Lookups proxy
DISCOVERY
Service Provider
Lookups proxy
1. Get Lookups proxy from the lookup
21Lookup Service
Lookups proxy
Service Object
JOIN
Service Attributes
Service Provider
Lookups proxy
2. Register service object with lookup
1. Get Lookups proxy from the lookup
Service Object
Service Attributes
22Lookup 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
23Discovery 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
24Multicast Request (Service Initiated Discovery
Discoverer
Lookup Service
1. Request Message (sent via UDP Multicast) IP
Address - 224.0.1.85 port4160 via UDP
Multicast) IP Address - 224.0.1.85 port4160
2. Response Message Service Proxy sent (Sent
via TCP unicast)
25Protocol 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
26Multicast Announcement (Lookup initiated
discovery)
Discoverer
Lookup Service
1. Announcements (sent via UDP Multicast) IP
Address - 224.0.1.84 port4160
2. Request Message (sent via TCP unicast)
3. Response Message (Sent via TCP unicast)
27Protocol Characteristics
- Multicast UDP to IP - 224.0.1.84, port 4160
- Interval - 120 secs.
- Multicast Packet length never to exceed 512
bytes.
28Unicast Discovery (Direct Discovery)
Discoverer
Lookup Service
1. Request Message (sent via TCP Unicast)
2. Response Message (Sent via TCP
unicast, connects to 4160)
29Join 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
30Lookup Service
Join Protocol
Service Object
Service Object
Service Attributes
Service Attributes
Service Provider
Client
Client
Service Object
Service Attributes
31Lookup 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
33Device 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
34Full Jini Capable Device
Service client
Service Provider
Hardware Implementation
Client
Private Protocol
Proxy
JVM
Network
Communication via RMI protocol
35Clustering 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
36Conclusions
- Encouraging
- Easy to put together
- Discouraging
- Bad response time
- Jini JVM ( OS) is very heavy
37The 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
38Finally, each device
Application using Jini
JVM
Java Native Interface
Eaglei
Verilog Model
39Danger 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
40Security - Service
- Specify Policy File as command line argument
- java Djava.security.policyfilename
- Sample Policy File
- grant
- permission net.jini.discovery.DiscoveryPermiss
ion 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.edu1024-", "connect,accept" - permission java.net.SocketPermission
"130.102.176.2491024-", "connect,accept" - permission java.net.SocketPermission
"127.0.0.11024-", "connect,accept"
41Security - Client
- grant
- permission net.jini.discovery.DiscoveryPermiss
ion "" - // 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.11024-", "connect,accept" - permission java.net.SocketPermission
".cs.wisc.edu1024-", "connect,accept" - permission java.net.SocketPermission
"130.102.176.2491024-", "connect,accept" - // HTTP connections - this is where external
code may come in - careful!!! - permission java.net.SocketPermission
"127.0.0.180", "connect,accept" - permission java.net.SocketPermission
".cs.wisc.edu80", "connect,accept"
42Bluetooth 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
43Co-verification
44Clustering 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
45Leasing 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