Title: Improving the Performance of Distributed Applications Using Active Networks
1Improving the Performance of Distributed
Applications Using Active Networks
- Mohamed M. Hefeeda
- 4/28/1999
2Agenda
- Active Networks
- Limitations of the current Networking System
- Definitions and motivations
- Approaches
- programmable switches
- capsules
- Programming Models (capsules)
- Distributed Applications
- Online auctions, stock quotes, distributed
caching, ... - Performance comparisons
- Summary and Conclusions
3Current Networking System
- Computation within the network
- Very limited
- Only packets header processing, no payload
change - Independent of the user and the application
- Limitations
- Difficulty of integrating new technologies and
standards into the existing structure (e.g. IP6,
...) - Difficulty to accommodate new services
(multicast, ) - Poor performance due to redundant operations at
several protocol layers
4Active Networks Definitions
- Emerged to solve those problems (DARPA, 94)
- The Network is Active in two ways
- Nodes perform computations on the packets flowing
through them. The packets can, for example - invoke some compression/decompression routines
- compute next hop to the destination
- send zero or more copies of the packet on
selected links - authenticate themselves
- modify themselves, .
- Users can inject programs into the network,
thereby tailoring the node processing to be
user_and application_specific
5Active Networks
6Active Networks Motivations
- Recent applications such as
- Firewalls, Web proxies, Multicast routers,
Nomadic routers, . - Go beyond the traditional network structure by
doing some computations but in ad hoc approaches. - Active Networks objective is to
- Provide a generic approach that allows users to
program their networks
7Active Networks Rate of innovations
- IP networks (Internet)
- Standard packet format
- Standard processing on almost all packets
- Thus, changing the protocol means changing
everything - Very low rate of innovations
- Active Networks
- Nodes will provide sets of virtual instructions
- Therefore, nodes can execute many different
protocols - This allows a very wide range of new
user-invented services that are not limited by
the network structure or the vendors products - Very high rate of innovations
8Active Networks Approaches
- Programmable Switches Discrete approach
- Programs and data are carried discretely i.e.,
within separate messages - Users inject their programs into the required
nodes - Then, they send the data packets
- When a packet arrives, its header is examined and
the suitable routine is executed - This separation is useful when
- programs are relatively large
- program loading must be carefully controlled
9Active Networks Approaches (contd.)
- Capsules Integrated approach
- Every message is a program that contains at least
one instruction and embedded data - When a capsule arrives at a node, the program
will be executed and affect the data. - In the same way as a PS printer interprets the
contents of a PS file.
10Active Networks Programming Models
- Standardized models for programming the nodes and
allocate their resources - The Models should provide
- Mobility
- executing codes on various platforms
- Safety
- restrict the access to the resources
- Efficiency
- achieve mobility and safety without sacrificing
the network performance
11 Programming Models Services (Instruction Set)
- Common primitives
- Packet manipulation
- changing header, payload, length,
- Access to the nodes environment
- node address, time of the day, link status,
- Controlling packet flow
- forwarding, copying, discarding, .
- Resource allocation (How to allocate resources?)
- Physical resources
- transmission BW, storage, processing capacity,
... - Logical resources
- routing tables, management information base, ...
12Program Encoding Approaches
- Source Code
- Uses scripting languages (e.g. Safe-Tcl)
- Programs can be composed quickly
- Safe, mobile, and human readable
- But Not efficient because
- source code interpretation
- relatively large size
- Intermediate Code
- Uses intermediate instruction set (e.g. Java
byte-code) - Safe, mobile, and compact size
- More efficient
13Program Encoding Approaches (contd.)
- Binary code
- Platform-dependent
- Safe and very efficient
- But Not mobile
14Distributed Applications
15Distributed Applications (contd.)
- Online Auctions
- The server collects and processes client bids for
each item - It responds to requests for the current prices
- The information may be out of date by the time it
reached to the user (auctioneer) because of the
network delay - In an Active Network, the server may activate
some routines on the routers and update them
frequently - These routers can filter out the low bids and
respond with current prices - So, they reduce the load on server and the
network delay
16Distributed Applications (contd.)
- Active Reliable Multicast
- Provides point-to-group communication facility
- NACK may overload the server and consume the BW
- Active Nodes solve this problem
- a limited amount of multicast data is cached and
retransmitted downstream when a NACK is received,
reduces latency and BW - Duplicate NACKs are suppressed by checking the
sequence number reduces the server load and BW
usage - Missing data packets are detected by checking for
gaps in the sequence numbers. If a gap found the
node generates a NACK and sends it towards the
server for retransmission reduces latency
17Distributed Applications (contd.)
- Stock quotes
- The server should supply changing up-to-date
info. (quotes) to users as fast as possible - Traditional whole web page caching is not
suitable - Active nodes used to reduce server load and
latency - they cache quotes (with their time stamp)
- then they receive the subsequent requests and
check the cache. If they are available, they are
assembled into a web page and sent to the client. - This greatly reduces the load on the server and
latency
18Performance comparisons
19Performance comparisons (contd.)
20Summary and Conclusions
- Active Networks allow users to program the
network - Wide range of new services and applications can
easily and rapidly be realized - Performance of the distributed application can be
enhanced by using active networks