Lawrence S. Brakmo
<first name> at brakmo.org
1996 Ph.D. in Computer Science, The University of Arizona, Tucson, AZ
Advisor: Larry L. Peterson
Dissertation Title: End-to-End Congestion Detection and Avoidance in Wide Area
1989 M.S. in Computer Science, The University of Arizona, Tucson, AZ
1987 M.S. in Mathematics, The University of Arizona, Tucson, AZ
1985 B.S. in Mathematics, The University of Arizona, Tucson, AZ
2014 - Facebook, Menlo Park, CA
Member of the Kernel Team
Improving TCP and networking in the Linux Kernel
2006 - 2014 Google, Mountain View, CA
Member of the Kernel Host Networking Team
Improving TCP and networking in the Linux Kernel
Designed and implemented TCP-NV (congestion avoidance)
Ported our production kernel stack to user space
Implementation and analysis of pacing and other TCP mechanisms
Maintainer of the Linux networking branch in the Kernel Group
2006 - 2006 Project Manager, DoCoMo Labs USA, San Jose, CA
Researcher and manager of the OS group
2003 - 2006 Senior Research Engineer, DoCoMo Labs USA, San Jose, CA
Working in the area of operating systems with a focus on mobile devices.
Designed and implemented a high performance software isolation mechanism.
2002 - 2003 Researcher, Internet Systems and Storage Lab, Hewlett-Packard, Palo Alto, CA
Working in the areas of power management, networking and Linux
2000 - 2002 Researcher, Western Research Lab, Compaq Research, Palo Alto, CA
Working in the areas of handhelds, power management, operating systems, Linux
Designed and implemented uSleep for power management, collaborated with iPAQ
group on power management.
1996 - 2000 Researcher, Western Research Lab, Digital Equipment Corp., Palo Alto, CA
Working in the areas of handhelds, Linux, networking and operating systems
Member of team that ported Linux to Itsy handheld, device driver work, graphics,
1991 - 1996 Research Assistant, Dept. of Computer Science, The University of Arizona, AZ
Working in the area of computer networking under Larry L. Peterson
Designed, implemented and analyzed TCP-Vegas, implemented a network simulator
that runs the actual network stack.
1990 - 1991 Software Engineer, IBM Pennant Division, Tucson, AZ
Lead architect of the communication system for high speed printer controller
1985 - 1988 Teaching Assistant, Dept. of Mathematics, The University of Arizona, AZ
Teaching undergraduate courses in the Dept. of Mathematics
Wrote software to assist in teaching algebra and calculus
Languages C, Python, bash
Networking Network simulation, Network and TCP traffic analysis, TCP implementation,
TCP congestion control
Kernel Linux kernel, Linux device drivers, Linux network stack
Other Git, Google App Engine
2005 PC member, The Third International Conference on Mobile Systems, Applications
and Services (MobiSys 2005), Seattle, Washington, USA, 6-8 June, 2005.
2004 PC member, 6th IEEE Workshop on Mobile Computing Systems and Applications
(WMCSA 2004), English Lake District, UK, 2-3 December, 2004.
Fluent in both English and Spanish
1989 Graduate Academic Scholarship, The University of Arizona
1987 Graduate College Fellowship, The University of Arizona
2013 Neal Cardwell, Yuchung Cheng, Lawrence Brakmo, Matt Mathis, Barath
Raghavan,Nandita Dukkipati, Hsiao-keng Jerry Chu, Andreas Terzis, Tom Herbert.
Packetdrill: Scriptable Network Stack Testing, from Sockets to Packets. In The Proc.
of the USENIX Annual Technical Conference (USENIX ATC 2013), pp. 213-218
2010 Lawrence Brakmo. TCP-NV Congestion Avoidance for Data Centers. In Linux
Plumber’s Conference, November 2010.
2004 L. Brakmo, D. Wallach, M. Viredaz. μSleep: A Technique to Reduce Energy
Consumption on Handheld Devices. In the Proc. Second Int’l Conf. On Mobile
System, Applications and Services (MobiSys’04), pg. 12-22, June 2004.
2004 J. Mogul, L. Brakmo, D. E. Lowell, D. Subhraveti and J. Moore. Unveiling the
Transport. Computer Communication Review 34(1), pg. 99-106, January 2004.
2003 M. Viredaz, L. Brakmo and W. Hamburgen. Energy Management on Handheld
Devices. ACM Queue. Vol 1, No. 7, October 2003, pg. 44-52.
2001 W. Hamburgen, D. Wallach, M. Viredaz, L. Brakmo, C. Waldspurger, J. Bartlett,
T. Mann and K Farkas. Itsy: Stretching the Bounds of Mobile Computing.
IEEE Computer, April 2001, Vol 34, No. 4, pg. 28-36.
2000 J. Bartlett, L. Brakmo, K. Farkas, W. Hamburgen, T. Mann, M. Viredaz,
C. Waldspurger, D. Wallach. The Itsy Pocket Computer. WRL Research Report
2000/6, October 2000.
2000 M. Aron and L. Brakmo. Techniques for Efficient Cell-Level ATM Simulations.
Proceedings of the 19th IEEE Performance, Computing and Communications
Conference (IPCCC), February 2000.
1996 L. Brakmo. End-to-End Congestion Detection and Avoidance in Wide Area
Networks. Ph.D. Dissertation, The University of Arizona, 1996.
1996 L. Brakmo and L. Peterson. Experiences with Network Simulation. Proceedings of
the ACM SIGMETRICS Conference, May 1996. Vol 24, No. 1, pg. 80-90.
1995 L. Brakmo and L. Peterson. TCP Vegas: End to End Congestion Avoidance on a
Global Internet. IEEE Journal on Selected Areas in Communication. Vol 13, No. 8,
October 1995, pg 1465-1480.
1995 L. Brakmo and L. Peterson. Performance Problems in BSD4.4 TCP. Computer
Communications Review. Vol 25, No. 5, October 1995, pg. 69-86.
1994 L. Brakmo, S. O’Malley and L. Peterson. TCP Vegas: New Techniques for
Congestion Detection and Avoidance. Proceedings of the SIGCOMM ‘94
Symposium pg 24-35.
2004 Power Reduction in Computing Devices Using Micro-sleep Intervals (with Deborah
Wallach); filed December 3, 2001; US Patent 6,816,977 issued November 9, 2004.
2001 Method for Dynamically Adjusting Multimedia Content of a Web Page by a Server
in Accordance to Network Path Characteristics Between Client and Server (with Jeff
Mogul); filed March 16, 1998; US Patent 6,243,761 issued June 5, 2001.
Designed and implemented a novel congestion avoidance algorithm for data centers.
TCP-NV is a TCP variant for Data Centers that implements congestion avoidance, where the
congestion window can decrease when queue build-up is detected and before packet loss
occurs. As part of this work I ported our production network stack to a simulator in order to
analyze and evaluate TCP-NV. It was also evaluated on real hardware and within a cluster.
Designed and Implemented a new high performance technique that can be used to provide isolation where there was none, for example within the OS kernel, or to increase performance where there is already isolation, for example user level services or daemons.
Designed and implemented μSleep (pronounced micro-sleep), a new technique for energy reduction in handhelds. μSleep is an energy reduction technique for handheld devices that is most effective when the handheld is mostly idle, such as when the user is reading a document or looking at a web page. When idle, rather than using the processor's idle mode, μSleep tries to put the processor in sleep (suspend) mode for short periods (less than one second) without affecting the user's experience. To enhance the perception that the system is on, an image is maintained on the display and activity is resumed as a result of external events such as touchscreen and button activity, or as a result of a scheduled internal event such as an OS timer. We have implemented μSleep on a prototype pocket computer, where it has reduced energy consumption by up to 60%. We also implemented the basic mechanisms of Sleep in the OAL layer of a Pocket PC handheld in order to demonstrate that μSleep could be implemented on Pocket PC devices.
Designed and co-developed infrastructure to meaningfully compare energy saving algorithms. This infrastructure consists of two parts: A mechanism for recording and replaying user events in a manner that is meaningful even when the processor speed is being dynamically changed, and a mechanism for automating the experimental runs and for recording the power and energy used by the devices (Itsy).
Worked with two other researchers to port Linux to the Itsy handheld, a platform for research in the area of handheld devices. Itsy consisted of a 200 MHz StrongARM-1100 processor, 32 MB of flash memory, up to 64 MB of RAM, 320x200 pixel grayscale LCD screen, touchscreen, accelerometers, microphone and speaker, IR, serial and USB ports. The Itsy project was started in 1997 and Linux was booting within weeks of having early versions of the hardware. Among my contributions to the Linux port were the console and display drivers, touchscreen drivers, and a subset of the power management subsystem.
Designed and implemented the infrastructure that allowed us to use multiple user interfaces simultaneously. For example, Itsy can run Smalltalk, Java and X Windows concurrently at the same level. That is, one is not running on top of the other, rather they are using the same device driver to access the display.
Designed and implemented a GUI (graphical user interface) and the main user interface applications. I also ported Qt and QPE (Qt Palmtop Environment).
Worked with Dragon Systems to port their continuous speech recognition system.
Designed and implemented the xSim kernel simulator, which is based on the x-kernel. Unlike other network simulators, which run simplified versions of network protocols, xSim runs a common implementation of protocols such as IP and TCP (the BSD implementation). These features allowed me to analyze the behavior of a new release (at that time) of the BSD TCP implementation (version 4.4). The ability to run the released code in the simulator allowed him to discover a few problems with the newly released code that actually decreased performance instead of increasing it.
Because it is based on the x-kernel, any protocol that runs on the simulator can also run on real networks without modifying the code. This allows the researcher to analyze the behavior of the protocol both on the simulator as well as on the real world.
Developed a congestion avoidance mechanism that was incorporated into a new version of TCP (called TCP Vegas). Unlike the congestion control mechanism in the current (at the time) versions of TCP that determine the available bandwidth of a network connection by increasing the sending rate until losses occur, the mechanisms in TCP Vegas are able to determine and adapt to the current network conditions. Experiments in the xSim network simulator and on the Internet showed that TCP Vegas achieves between 35 and 70% better throughput with one fifth to one half the losses as compared to the common implementation of TCP (TCP Reno).