190 likes | 311 Vues
This study provides an in-depth comparison of extensibility in routers, highlighting the significance of new services, packet taggers, firewalls, and network overlays. Key systems such as Scout, Click, and Router Plugins (Crossbow) are analyzed regarding their architecture, modularity, and ease of extension. By examining their classifiers, schedulers, and forwarders, the study outlines how each router handles process scheduling and flow isolation, ultimately aiding in selecting the right extensible router for specific applications.
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