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 [ 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 receipts—report their own performance in a way that prevents them from lying [ 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, paper ].
- 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 ].