Top Banner
HyperCast Jorg Liebeherr University of Virginia
39

HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Dec 19, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

HyperCastJorg Liebeherr

University of Virginia

Page 2: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Acknowledgements

• Developed in my research group since 1999

• Contributors: – Past: Bhupinder Sethi, Tyler Beam,

Burton Filstrup, Mike Nahas, Dongwen Wang, Konrad Lorincz, Jean Ablutz, Haiyong Wang, Weisheng Si, Huafeng Lu, Josh Zaritsky, Guimin Zhang, Jianping Wang, Guangyu Dong, Greg Mattes, Wittawat Tantisiriroj

• Supported in part by the National Science Foundation:

D E N A L I

Page 3: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

HyperCast

• Enables information exchange groups (application layer overlays) at the application layer over substrate networks software with:

– Dynamically changing group membership– Arbitrarily many groups of arbitrary size– Support of security needs– Monitor and Control functions

Page 4: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Overlays

• Overlay is viewed as a network of application programs• Data is exchanged data over a substrate network (Internet, ad-hoc, sensor

network)

Page 5: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Topics

• Joining and creating an overlay• Data exchange• Security features• Monitoring and control of overlays

Page 6: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

A simple HyperCast program

//Generate the configuration object OverlaySocketConfig ConfObj = OverlaySocketConfig.createOLConfig("hypercast.xml");

//Create a socket I_OverlaySocket socket=ConfObj.createOverlaySocket(null);

//Join the group socket.joinOverlay();

//Create a message OL_Message msg = socket.createMessage(byte[] data);

//Send the message to all members in the group socket.sendToAll(msg);

//Receive a message from the group OL_Message msg = socket.receive();

//Extract the payload byte[] data = msg.getPayload();

//Generate the configuration object OverlaySocketConfig ConfObj = OverlaySocketConfig.createOLConfig("hypercast.xml");

//Create a socket I_OverlaySocket socket=ConfObj.createOverlaySocket(null);

//Join the group socket.joinOverlay();

//Create a message OL_Message msg = socket.createMessage(byte[] data);

//Send the message to all members in the group socket.sendToAll(msg);

//Receive a message from the group OL_Message msg = socket.receive();

//Extract the payload byte[] data = msg.getPayload();

Configuration file specifies parameters for an overlay

Creates an inter-face to the overlay (“socket”)

Joins the overlay

Sends to overlay

Page 7: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Overlay Socket and Overlay Network

Substrate Network

Overlay socket

Application

Overlay socket

Application

ApplicationOverlay socket

Application

ApplicationOverlay socket

Application

(a) Overlay socket(b) Overlay Network

(Collection of overlay sockets)

Overlay Socket

Forwarding Engine

Overlay Socket API

Messages of overlay protocol

MessageBuffer

Overlay Protocol

Node Adapter

Applicationmessages

Application Program

Substrate Network (e.g., Internet)

Socket Adapter

Page 8: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Joining and Creating overlay networks

Page 9: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Joining an overlay: Configuration File

• All members of an overlay have a configuration file• Configuration file specifies which overlay to join and how to join it• Configuration file is distributed in advance ….

Configuration file:- Overlay ID- group properties- substrate network- security properties etc.

Configuration file:- Overlay ID- group properties- substrate network- security properties etc.

load

Page 10: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Joining an overlay: Configuration File

• … or configuration is downloaded from a server

Configuration file:- Overlay ID- group properties- substrate network- security properties etc.

Configuration file:- Overlay ID- group properties- substrate network- security properties etc.

Page 11: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Joining an overlay: Contacting group members

• There are three methods by which a new member can contact overlay members:1. Announcement via broadcast 2. Dedicated Rendezvous Point 3. Contact well-known members (“buddies”)

Configuration file:- MyOverlayID- ….

Configuration file:- MyOverlayID- ….

Page 12: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Configuration file:- MyOverlayID- Broadcast address

Configuration file:- MyOverlayID- Broadcast address

Joining an overlay: Announcement via broadcast

• If an application can send broadcast messages, it can announce its presence• Existing members that receive the broadcast contact the new member• Broadcast address is stored in configuration file

Page 13: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Joining an overlay: Rendezvous Point

• There is a dedicated application that acts as rendezvous point• Rendezvous point maintains a list of some current members• New application gets a current member from the rendezvous point• Address of rendezvous point is in configuration file

Rendezvous Point

A

Address of “A”

Configuration file:- MyOverlayID- Address of Rvous Pt.

Configuration file:- MyOverlayID- Address of Rvous Pt.

Page 14: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Joining an overlay: Contact well-known members

• Address of some current members is in configuration file (“buddy list”)• New application contacts the members in the list

A

Configuration file:- MyOverlayID- Address of buddy “A”.

Configuration file:- MyOverlayID- Address of buddy “A”.

Page 15: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Creating a new overlay

• Create a new or modify an existing configuration file– Select an overlay identifier– Change properties of the overlay socket

Configuration file:- Group ID- group properties- substrate network- security properties

Configuration file:- Group ID- group properties- substrate network- security properties

Configuration file:- MyOverlayID- group properties- substrate network- security properties

Configuration file:- MyOverlayID- group properties- substrate network- security properties

OverlaySocketConfig ConfObj = OverlaySocketConfig.createConfig(“MyConfiguration.xml");

OverlaySocketConfig ConfObj = OverlaySocketConfig.createConfig(“MyConfiguration.xml");

• Have the application program read the new file

• Distribute the configuration file:– Out-of-band, or – Overlay server Configuration file:

- MyGroupID- group properties- substrate network- security properties

Configuration file:- MyGroupID- group properties- substrate network- security properties

Configuration file:- MyGroupID- group properties- substrate network- security properties

Configuration file:- MyGroupID- group properties- substrate network- security properties

Configuration file:- MyGroupID- group properties- substrate network- security properties

Configuration file:- MyGroupID- group properties- substrate network- security properties

Page 16: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Overlay Network Topologies

Overlay can be organized in a variety of topologies Hypercube,

DHT

Triangulation

Spanning tree(for mobile ad hoc)

Page 17: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

• Measurements of a cluster of 100 Linux PCs

• Experiment: Add M members to an overlay network of N members:

How fast can we built an overlay?

M+N members

Tim

e to

Co

mp

lete

(se

c)

Page 18: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Data exchange

Page 19: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Data exchange

• Several data exchanges are supported:

1. One-to-One (Unicast)

2. One-to-All (Multicast)

3. All-to-One (Incast)

• Delivery Semantics:

1. Best-effort

2. In-order

3. Reliable

Page 20: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

How much data can we send?

Number of Members N

Bandwidth bounds

Measuredvalues

Ave

rag

e th

rou

gh

pu

t

(Mb

ps)

Bulk data transfer from 1 sender to 2-1000 receivers: 100 MB bulk transfer for N=2-100 members (1 node per PC) 10 MB bulk transfer for N=20-1000 members (10 nodes per PC)

Page 21: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Performance: HyperCast on PDAs

•Multihop performance–Setting: six iPAQ PDA in a line–Substrate network: TCP adapter–Send unicast message in greedy fashion–Topology is fixed–Distance between node is varied

Sender Receiver Receiver Receiver Receiver Receiver

Page 22: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Security features

Page 23: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Security Goals

• Backward secrecy – A new member should not be able to access data

transmitted before the member joined• Forward secrecy

– A member cannot access data that is transmitted after the member left

• Approach: Neighborhood Key– Each member maintains a secret key (“neighborhood key”)

that it shares with its neighbors

Page 24: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Key Management

• A new members must present a signed certificate to each member that is contacted for the first time

• Once authenticated, it obtains a neighborhood key from each neighbor• A member generates a new key each time its neighborhood changes

Request Certificate

Send Certificate

Send Neighborhood key

Page 25: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Encrypting a Message

Each member has a neighborhood key.

MessageMWhen member sends a message, it creates a message key for this message.

Message encrypted with M

Then, it encrypts the message with message key.

Message encrypted with M

Finally, ite encrypts the message key with its neighborhood key and adds it to the message.

encrypted withM

Page 26: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Forwarding an Encrypted Message

Message encrypted with M

N decrypts the message keyM

Message encrypted with M

N receives the message encrypted withM

Message encrypted with M

encrypted withM

N re-encrypts the message

key with its personal key

Message

Page 27: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Encrypted PayloadPayload

Processing of Encrypted Message

Security Header

Header

• Keys for header and payload are kept in a security header

• Permits separation of security for payload and header

Page 28: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Processing of Encrypted Message

• Neighborhood key scheme amounts to exchanging security header at intermediate nodes

• Note: Node sends same message to all neighbors !

Message

HeaderSecurity Header

Encrypted Payload

Security Header

Page 29: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Experiment

• Overlay consists of sender, receiver and 4 intermediate peers

• Each peer is running on a separate PC• Overlay uses TCP between peers• Sender transmits 10,000 messages of a

given size to receiver and receiver sends small acknowledgements

• Message size is 2048 bytes• Sender records time when message

returns

sender 1 2 receiver43

0

200

400

600

800

1000

1200

1400

Ro

un

trip

tim

e (

ms

)

1 2 3 4 5

Hops

Delay Performance

Confidentiality

Integrity

0

1000

2000

3000

4000

5000

6000

Th

rou

gh

pu

t (

kb

ps

)

1 2 3 4 5

Hops

Througput Performance

Confidentiality

Integrity

Page 30: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Monitoring and control of groups

Page 31: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Monitor and Control System

• Loosely modeled after SNMP:– Each application component collects statistics– Statistics can be accessed by a remote monitor

• XML oriented:– Statistics are internally stored as XML documents– Transmitted messages have XML format

• Dynamically created content:– Structure of XML documents with statistics is created

dynamically upon receiving a query– Application can add statistics to an application program

Page 32: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Monitors and Portals

Application

Monitor

Monitor protocolmessages

Informationexchange group

Monitor Application

Modify

RetrieveStatistics

Portal

Page 33: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Monitor Overlay Network

Application

Application

Application

Portal

Portal

Portal

MonitorApplication Monitor

Informationexchange group for

monitorand control

Socket Socket

Socket Socket Socket

Socket Socket

Informationexchange

group

Page 34: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Hierarchy of statistics

...Node

Overlay Socket

Config Buffer Adapter

Adapter...

USentPackets

... ... ...

<Socket><Node>

….<NodeAdapter>

…. <UBytesSent> 1004 </UBytesSent >

</NodeAdapter></Node>

<Config> …. </Config >

<RecvBuf> …. </RecvBuf>

<SocketAdapter> …. </SocketAdapter>

</Socket>

Page 35: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Accessing Statistics

• Statistics are accessed using XPath expressions

• Adressing the number of bytes sent: /Socket/Node/NodeAdapter/

UBytesSent

• Addressing all statistics of the overlay node:

/Socket/Node

/Socket/Node

/Socket

/Socket/Node/Adapter

/Socket/Node/Adapter/UBytesSent

Page 36: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Query for statistics

<GetQuery Src= “100011” Dest=”101010” MsgID=”13” TimeStamp="100516"><Stats index=”0” xpath=”/Socket/Node/NodeAdapter/UPacketsSent” />< Stats index=”1” xpath=”/Socket/Node/NodeAdapter/UBytesSent” />

</GetQuery>

GetQuery

GetQuery Src= “100011” Dest=”101010” MsgID=”13” TimeStamp="100516"

Stats index= “1” xpath=”Socket/ Node/ Adapter/ UBytesSent”

Stats index= “0” xpath=”Socket/ Node/ Adapter/ UPacketsSent”

Page 37: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

Response to query

<GetReply Src= “101010” Dest=”100011” MsgID=”13” TimeStamp="106340"><Stats index=”0” xpath=”/Socket/Node/NodeAdapter/UPacketsSent” >

<UPacketsSent>120</UPacketsSent></Stats>< Stats index=”1” xpath=”Socket/Node/NodeAdapter/UBytesSent”> <UBytesSent>120</UBytesSent></Stats>

</GetReply> GetQuery

GetReply Src= “100011” Dest=”101010” MsgID=”13” TimeStamp="106340"

Stats index= “1” xpath=”Socket/ Node/ Adapter/ UBytesSent”

Stats index= “0” xpath=”Socket/ Node/ Adapter/ UPacketsSent”

UPacketsSent UBytesSent

120 12384

Page 38: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

GUI for monitoring an Overlay Network

Page 39: HyperCast Jorg Liebeherr University of Virginia. Acknowledgements Developed in my research group since 1999 Contributors : –Past: Bhupinder Sethi, Tyler.

More Information

HyperCast web site:

http://hypercast.org Design documents, download software, user manual

• Send questions to [email protected]• Downloadable software is from 2002 (Version 2.0)• Version 3.0 with security, message semantics, ad-hoc

support, management and control is in development