NAL

We are the Network Architecture Lab, and we work on fundamental questions regarding network system design: 

  • Can we infer network behavior from external observations? We proved the feasibility of network neutrality inference [ project page,  paper ]. Earlier, we relaxed the assumption of link independence in network performance inference [ paper ].  
  • Can we improve Internet transparency? We showed how Internet service providers can produce verifiable traffic receiptsreport their own performance in a way that prevents them from lying [ project page, paper ]. 
  • How should we write packet-processing software, such that we can reason about its semantics? We presented the first formally verified NAT written in C [ project page, paper ]. Earlier, we demonstrated that dataplane verification can be used to verify useful properties of stateless software dataplanes [ paper ].
  • How should we write packet-processing software, such that we can reason about its performance? We proposed the idea of performance contracts and showed how to compute such contracts for packet-processing functions [ project page ]. 
  • How to design network devices that combine performance with programmability? We developed RouteBricks–a parallel software router made up entirely of commodity PCs–which was the first software router to achieve multi-Gbps line rates [ paper ].