Show simple item record

dc.contributor.advisorHari Balakrishnan and Mohammad Alizadeh.en_US
dc.contributor.authorSivaraman Kaushalram, Anirudhen_US
dc.contributor.otherMassachusetts Institute of Technology. Department of Electrical Engineering and Computer Science.en_US
dc.date.accessioned2018-03-02T21:39:58Z
dc.date.available2018-03-02T21:39:58Z
dc.date.copyright2017en_US
dc.date.issued2017en_US
dc.identifier.urihttp://hdl.handle.net/1721.1/113936
dc.descriptionThesis: Ph. D., Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, 2017.en_US
dc.descriptionThis electronic version was submitted by the student author. The certified thesis is available in the Institute Archives and Special Collections.en_US
dc.descriptionCataloged from student-submitted PDF version of thesis.en_US
dc.descriptionIncludes bibliographical references (pages 141-155).en_US
dc.description.abstractHistorically, the evolution of network routers was driven primarily by performance. Recently, owing to the need for better control over network operations and the constant demand for new features, programmability of routers has become as important as performance. However, today's fastest routers, which have 10-100 ports each running at a line rate of 10-100 Gbit/s, use fixed-function hardware, which cannot be modified after deployment. This dissertation describes three router hardware primitives and their corresponding software programming models that allow network operators to program specific classes of router functionality on such fast routers. First, we develop a system for programming stateful packet-processing algorithms such as algorithms for in-network congestion control, buffer management, and data-plane traffic engineering. The challenge here is the fact that these algorithms maintain and update state on the router. We develop a small but expressive instruction set for state manipulation on fast routers. We then expose this to the programmer through a high-level programming model and compiler. Second, we develop a system to program packet scheduling: the task of picking which packet to transmit next on a link. Our main contribution here is the finding that many packet scheduling algorithms can be programmed using one simple idea: a priority queue of packets in hardware coupled with a software program to assign each packet's priority in this queue. Third, we develop a system for programmable and scalable measurement of network statistics. Our goal is to allow programmers to flexibly define what they want to measure for each flow and scale to a large number of flows. We formalize a class of statistics that permit a scalable implementation and show that it includes many useful statistics (e.g., moving averages and counters). These systems show that it is possible to program several packet-processing functions at speeds approaching today's fastest routers. Based on these systems, we distill two lessons for designing fast and programmable routers in the future. First, specialized designs that program only specific classes of router functionality improve packet processing throughput by 10-100x relative to a general-purpose solution. Second, joint design of hardware and software provides us with more leverage relative to designing only one of them while keeping the other fixed.en_US
dc.description.statementofresponsibilityby Anirudh Sivaraman Kaushalram.en_US
dc.format.extent155 pagesen_US
dc.language.isoengen_US
dc.publisherMassachusetts Institute of Technologyen_US
dc.rightsMIT theses are protected by copyright. They may be viewed, downloaded, or printed from this source but further reproduction or distribution in any format is prohibited without written permission.en_US
dc.rights.urihttp://dspace.mit.edu/handle/1721.1/7582en_US
dc.subjectElectrical Engineering and Computer Science.en_US
dc.titleDesigning fast and programmable routersen_US
dc.typeThesisen_US
dc.description.degreePh. D.en_US
dc.contributor.departmentMassachusetts Institute of Technology. Department of Electrical Engineering and Computer Science.en_US
dc.contributor.departmentMassachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
dc.identifier.oclc1023862089en_US


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record