Lecture: networking
preparation
overview
- example: Linux
- receive: NIC queue -> interrupts -> queue to upper layers (e.g., TCP) -> sockets -> apps
- performance downsides?
- see more on scalability
- example: high-performance network servers
- short & a large number of requests
- througput vs. latency
- isolation vs. efficiency
- compatibility & admin
- approaches & trade-offs
- application/user-level networking stacks
- new hardware
- new protocols (e.g., RDMA)
- new syscall APIs
- new OS designs (e.g., exokernels)
- IX
- new API & OS design
- within Linux through Dune
- IX kernel: guest kernel mode
- IX apps & libix: guest user mode
- main ideas: batching, run to completion, polling, zero copy, multiple NIC queues
- trade-offs: dedicated resources vs. sharing