Advanced computer networks

This paper presents BCube, a hypercube-based network architecture for modular datacenters (MDCs). The paper argues that existing datacenter network architecture designs, such as fat-tree and DCell, do not work well for MDCs, which might contain thousands of inexpensive commodity servers & switches each having a small number of ports and requires a low diameter to be packaged into shipping containers. A BCube network of dimension is recursively constructed out of BCube s, where servers use gray-coding to form a hypercube . The paper implements a BCube source routing (BSR) algorithm, which fully utilizes its high aggregate bandwidth of multiple disjoint paths and balances load using adaptive probing. Evaluation results show that a BCube prototype achieves high throughput for bandwidth-intensive applications and graceful degradation under server/switch failures. paper paper on three main First, cost-effective scalable networks can be built using three-stage Close topologies out of commodity switches. Second, a top-down management approach viewing the datacenter as a static topology and distributing a centralized configuration to all switches proves to be simpler and more efficient compared to decentralized peer discovery protocols, sharing similarities with SDNs. Third, modular hardware and software design allows efficient and robust deployment at campus scale. The paper presents pFabric, a minimal priority-based datacenter network transport design that decouples flow scheduling and rate control. pFabric annotates each packet with a priority number that reflects the scheduling goal, such as remaining flow size for minimizing flow completion time (FCT) or distance to deadline for maximizing number of deadlines met. pFabric switch implements a very simple scheduling algorithm, which always sends out the highest-priority packet in queue and always drops the lowest-priority packet when queue is full. pFabric switch controls its sending rate using a simple TCP/reno-like algorithm, which does not rely on any information about the flows. Simulation results show that, despite its extreme simplicity and conciseness, pFabric can achieve near-optimal FCT. This paper presents a new programmable packet scheduler design using the push-in-first-out (PIFO) abstraction. PIFO switches allow a packet transaction to be executed upon the enqueuing of each new packet to decide its rank and to put it at the correct position in queue, while always dequeuing the packet at the head of queue. The simplicity of PIFO primitives makes it possible to synthesize hardware implementations that operate at line-rate performance. At the same time, by having a tree of PIFO queues and allowing optional shaping transactions , the PIFO abstraction is powerful enough to compose most scheduling algorithms, covering hierarchical algorithms and non-work-conserving algorithms. can carry an additional overlay header with the packet. As the packet traverses through the spine network, the overlay header is marked to carry the load on the most congested link on its path, measured in discounting rate estimator (DRE). Receiver maintains a Congestion-From-Leaf table and seeks opportunity to piggyback the load information to the next packet back to sender. Sender updates its Congestion-To-Leaf table with the load information and chooses the best uplink for a new flowlet. Evaluation results show that CONGA maintains low FCT even with significant load invariance. VIPs VIP-DIP mappings. The paper explores a problem that was not sufficiently addressed by previous work: fair allocation of multiple resources. The authors propose a new metric, Dominant Resource Fairness (DRF), that defines max-min fairness across users based on their dominant resource type. Analysis shows that DRF is sharing incentive , strategy-proof , envy-free , and Pareto efficient . They implement DRF scheduling in Mesos and show that DRF improves both CPU & memory resource utilization & fairness under a real Facebook Hadoop workload. The paper presents Ethane, a holistic authentication network design that demonstrates the early idea of software-defined networking (SDN). In Ethane, network access policies are managed by a central controller that installs flow table entries in dumb switches, in contrast to previous approaches such as using distributed smart switches or dedicated middleboxes. The Ethane controller maintains a global view of all bindings of switch port to MAC, MAC to IP, IP to host, and host to user registered in the network. All Ethane switches are just simple switches with a flow table data-plane, each establishing a secure channel with the controller for control-plane messages. The controller could be replicated for better fault-tolerance and scalability. A real implementation and deployment of Ethane at Stanford shows that this centralized design is simple, manageable, and effective, while being able to scale to a reasonably large campus network. Open vSwitch , a software virtual switch for hypervisors. Open vSwitch targets cloud-based virtual networking scenario, where end hosts are numerous VMs and their first-hop switches are virtual switches provided by the hypervisor software. paper focuses on three major differences between virtual switches and traditional switches, Open vSwitch these The paper presents PicNIC, an end-host virtual NIC solution that improves performance predictability and isolation across VMs. The paper focuses on the fundamental tradeoff between bandwidth utilization (efficiency) and performance predictability (isolation) in a virtualized network. Prior work mostly focused on rate-limiting techniques in the fabric and did not investigate end-host issues -- a bursty flow from a misbehaving VM could negatively impact the goodput, delay, and loss rate experienced by other VMs due to contention on end-host resources. PicNIC proposes a software virtual NIC design that addresses end-host contention issues. For each VM, PicNIC guarantees a min- and max-bandwidth envelope SLO, a latency distribution SLO, and a minimal loss rate (if the VM is within its bandwidth envelope). The design of PicNIC can be split into three constructs: 1) CPU-fair weighted fair queues (CWFQs) on the receiver side that divide the ingress engine's compute capacity in proportion to VMs bandwidth SLOs, 2) receiver-driven congestion control that computes the rate limit of each sender, and 3) sender-side admission control that shapes traffic and puts backpressure to guest VMs' transport layer. paper presents Snap, a microkernel-oriented userspace network stack developed by Google. Snap runs as a standalone userspace process implementing end-host network stack modules, which were previously supplied by a monolithic kernel. Applications do network I/O through IPC with the Snap process, instead of doing syscalls. Internally, the Snap process maintains groups of engines, where each engine is a single thread function providing certain network functionality required by the applications. Snap intensively uses resource accounting mechanisms e.g. MicroQuanta to ensure fair execution across engines, as well as kernel-bypassing techniques to offload processing & data to NIC hardware. As a result, Snap brings both high development velocity, easier maintenance, as well as good performance, without losing centralized control.