Lawrence S. Brakmo

<first name> at

(415) 297-2577



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


Professional Experience

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,

UI, etc.

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


Technical Skills

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

Professional Activities

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.



U.S. citizen


                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                Mapping power system components (with Keith Istvan Farkas, Parthasarathy

Ranganathan); filed Aug 27, 2004; US Patent 7,269,753 issued Sept 11, 2007.

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.



Technical Contributions

  1. TCP-NV, congestion avoidance in Data Centers

        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.

  1. High performance software isolation.

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.

  1. Energy reduction technique for handheld computers.

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.

  1. Power Management Evaluation Infrastructure.

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).

  1. Linux port to 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.

  1. Itsy infrastructure and applications

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.

  1. Network Simulation

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.

  1. Congestion Avoidance in Wide Area Networks (TCP Vegas)

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).