Lunar: A User-Level Stack Library for Network Emulation

dc.contributor.authorKnestrick, Christopher C.en
dc.contributor.committeechairVaradarajan, Srinidhien
dc.contributor.committeememberArthur, James D.en
dc.contributor.committeememberMidkiff, Scott F.en
dc.contributor.departmentComputer Scienceen
dc.date.accessioned2014-03-14T20:32:11Zen
dc.date.adate2004-03-02en
dc.date.available2014-03-14T20:32:11Zen
dc.date.issued2004-02-24en
dc.date.rdate2004-03-02en
dc.date.sdate2004-02-25en
dc.description.abstractThe primary issue with developing new networking protocols is testing how the protocol will behave when deployed on a large scale; of particular interest is how it will interact with existing protocols. Testing a protocol using a network simulator has drawbacks. First, the protocol must be written for the simulator and then rewritten for actual deployment. Aside from the additional work, this allows for software bugs to be introduced between testing and implementation. More importantly, there are correctness issues. Since both the new and existing protocols must be specially written for the simulator, and not actual real-world implementations, the question remains if the behavior observed and, specifically, the interactions between the protocols are valid. Direct code execution environments solve the correctness problem, but there is the loss of control that a simulator provides. Our solution is to create an environment that allows direct code execution to occur on top of a network simulator. This thesis presents the primary component of that solution: Lunar (Linux User-level Network Architecture), a user-level library that is created from the network stack portion of the Linux operating system. This allows real-world applications to link against a simulator, with Lunar serving as the bridge. For this work, an implementation of Lunar was constructed using the 2.4.3 version of the Linux kernel. Verification testing was performed to demonstrate correct functioning of the library using both TCP (including TCP with loss) and UDP. Performance testing was done to measure the overhead that Lunar adds to a running application. Overhead was measured as the percent increase in the runtime of an application with Lunar as compared to the application running without it, and ranged from approximately 2% (running over 100 Mbps switched Ethernet) to approximately 39% (1 Gbps Myrinet).en
dc.description.degreeMaster of Scienceen
dc.identifier.otheretd-02252004-211017en
dc.identifier.sourceurlhttp://scholar.lib.vt.edu/theses/available/etd-02252004-211017en
dc.identifier.urihttp://hdl.handle.net/10919/31351en
dc.publisherVirginia Techen
dc.relation.haspartKnestrickThesis.pdfen
dc.rightsIn Copyrighten
dc.rights.urihttp://rightsstatements.org/vocab/InC/1.0/en
dc.subjectProtocol Testingen
dc.subjectDirect Code Executionen
dc.subjectSimulationen
dc.subjectNetworkingen
dc.titleLunar: A User-Level Stack Library for Network Emulationen
dc.typeThesisen
thesis.degree.disciplineComputer Scienceen
thesis.degree.grantorVirginia Polytechnic Institute and State Universityen
thesis.degree.levelmastersen
thesis.degree.nameMaster of Scienceen

Files

Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
KnestrickThesis.pdf
Size:
314.04 KB
Format:
Adobe Portable Document Format

Collections