Bowman: A Node OS for Active Networks

advertisement
Bowman: A Node OS for
Active Networks
S. Merugu S. Bhattacharjee E. Zegura K. Calvert
College of Computing; Georgia Tech
Department of Computer Science; U. of Maryland
Department of Computer Science, U. of Kentucky
Infocom 2000, Tel Aviv, Israel
Outline
•
•
•
•
•
Background - Active Networking
Bowman System Design
Performance Measurements
Configuration for Active Networking
Concluding Remarks
2
Active Networking: What
• Programmable user-network interface(s)
• Control via:
– mobile code in packets (capsules)
– mobile code fetched from code repositories,
based on packet header values
– programmable signaling protocols
– selection from set of fixed behaviors
→ Multiple execution environments
3
Active Networking: Why
• Faster deployment of new protocols and services
• Platform for research
• Services that exploit app and network knowledge
–
–
–
–
reliable multicast
application-specific congestion control, e.g., MPEG
network caching
network monitoring
→ High performance, access to low-level resources
4
DARPA Node Architecture
AN UNIs
Execution
Environments
Node OS
ANTS
IO ifs
CANEs
PLAN
CPU
memory
5
Bowman (and CANEs)
AN UNI
Execution
Environments
Node OS
CANEs
Bowman
HostOS (POSIX compliant)
6
Bowman Design Goals
•
•
•
•
•
•
Support per-flow processing
Provide a fast path
Enable a network-wide architecture
Maintain reasonable performance
Provide modularity and extensibility
Leverage existing Host OS
n
7
Primary Bowman Abstractions
• Channels
a-flows
– communication endpoints
– include protocol processing
• A-flows
– computation
state store
• State store
– indexed by a unique key
– includes named registries for
data sharing between a-flows
channels
8
Additional Components
• Dynamic extension mechanism
• Efficient packet classifier
– match arbitrary number of header fields
– returns first, all, or best match (with costs
associated with each field)
– dynamically extensible to different protocols
• Timers
• Network architecture via abstract topologies
9
Packet Processing Path
a-flow processing
EE code
Bowman
code
input queues
cut-through
packet
classifiers
output queues
input channels
output channels
10
Bowman Network Architecture
physical topo
abstract links
Ethernet
virtual topo
UDP
• Configure abstract links: endpoints plus protocol
processing over physical topology (ALP)
• Select set of abstract links for virtual topology
(ATP)
11
Performance Testing
Sun Ultra-5, 300 MHz
SunOS 5.7
100 Mbps
Sun Ultra-5, 300 MHz
SunOS 5.7
100 Mbps
Bowman Node
Sun Ultra-2, 168 MHz
2 processors
Compare to:
• Solaris kernel forwarding
• C gateway -- socket read/write of UDP segments
12
Forwarding Performance
100
Throughput at receiver (Mbps)
90
80
70
60
50
40
Solaris Kernel
C Gateway
Bowman Aflow
30
20
10
0
200
400
600
800
1000
1200
1400
1600
Packet Size (Bytes)
Saturates 100 Mbps Ethernet for packets over 1400 bytes
13
Packet Processing Overheads
Cumulative Time (microseconds)
250
200
System write
A-flow processing
A-flow dequeue
A-flow enqueue
Channel processing
System read
150
100
50
0
200
400
600
800
1000
1200
1400
Packet Size (bytes)
Bowman overhead relatively constant (~25 usec)
System read and write calls dominate processing time
14
Effect of Real-time Scheduling
Queue Size (packets)
1000
Input Queue (TS)
Output Queue (TS)
Input Queue (RT)
Output Queue (RT)
100
10
2000
2200
2400
2600
2800
3000
Packet Index
Comparison of time-sharing (TS) to real-time (RT) mode
Three kernel threads: input, a-flow, output
15
Configuration for AN
• Monolithic approach
– EE creates exactly one a-flow that subscribes to
all packets addressed to EE
– EE manages own resources
• Multi-a-flow approach (CANEs)
– EE creates one control a-flow used for EE
signaling and management
– New a-flow for each user’s packets
– Bowman schedules user computation
16
Selected Related Work
• Router plug-ins (WashU)
– integrated EE (customizable IP) and NodeOS
– NetBSD kernel modifications
• Janos (Utah)
– Java-based NodeOS
• Extensible routers (Princeton)
– Scout-based NodeOS
17
Future Work
•
•
•
•
Security mechanism
Resource management
More complex output queueing disciplines
Scalable topology instantiation
• EE-developers toolkit to run over DARPA
NodeOS implementations?
18
a-flow processing
EE code
Bowman
code
input queues
cut-through
packet
classifiers
output queues
input channels
output channels
Download