190 likes | 310 Views
A Comparative Study of Extensible Routers. Yitzchak Gottlieb. Extensibility: Why?. New Services Packet taggers Firewalls Filters Network Overlays Old Routers Can’t support new protocols and services. Extensibility: How?. Software routers Easy to change Hard to change correctly
E N D
A Comparative Study of Extensible Routers Yitzchak Gottlieb
Extensibility: Why? • New Services • Packet taggers • Firewalls • Filters • Network Overlays • Old Routers • Can’t support new protocols and services
Extensibility: How? • Software routers • Easy to change • Hard to change correctly • Hard to write from scratch • Hard to extend • Extensible software routers • Easy to extend correctly
Extensibility: Who? • Scout • Princeton University • Stand-alone, SILK • Click • MIT • Linux Kernel Module • Router Plugins (Crossbow) • Washington U St. L, ETH Zürich, Ascom • BSD Hack
ICMP IP ARP ARP ETH ETH eth0 eth1 Scout • Path orientation • Modularity • Modules • Stages • Classifier Hierarchy • Extensiblity • Write a new module • Create a path through it
Click • Modular • Typed interface • Push • Pull • Small elements • Small tasks • Millions and millions...
Router Plugins (Crossbow) • BSD Core • Plugins = LKMs • Gates • Between Stages • Fixed Number • Keys • Fixed fields • Wildcards • Fast algorithm
How To Choose? • Choose Scout • Might be slightly biased • Compare strength and weaknesses • Does your application fit its model? • Does it offer what you need? • Is it hard to program?
Modeling Extensible Routers • Basis for comparison • Abstracts away implementation • Simple • Few components • Comprehensible • Powerful • Models behavior in all three systems
C S F Model: The Players • Queues • FIFO • Classifiers • One to many • Schedulers • Many to one • Forwarders • One to one
C S F F Putting It Together: Scout • Classify first ask questions later • Each path is a forwarder • Multiple stages • Scheduler packets after processing
F C S Putting It Together: Click • Each element does a little of everything • Pull elements must specify schedulers • Push elements must specify classifiers • All elements forward
F F C F C S F Putting It Together: Plugins Plugins Gate IP Code • Each gate classifies • FIFO scheduler between sections • IP forwarders connect gates • Or maybe...
Comparing Extensible Routers • Extensibility • Classifiers • Schedulers • Forwarders • Process Scheduling • Flow Isolation
Extensibility: Two approaches • Outside the architecture • Extend the fixed pieces • Why use extensible routers • Within the architecture • Insert • Replace • Program • Parameterize • Add Code
Writing New Forwarders • Click • Small (Null element: 8 lines) • May need several • Router Plugins • Bigger (Null plugin: 98 lines) • Restricted use • Scout • Very big (Null module: 200 lines) • Powerful
Other Points of Comparison • Process scheduling • Scout—by path after classification • Click—push until queue, pull from queue • Crossbow—as packets arrive • Flow isolation • Scout—paths separate • Click/Crossbow—all packets are the same
Conclusion • Each system is different • Fundamental strengths and weaknesses • Each application is different • New protocol vs. minor improvement • The model is a tool • Match application with system’s model