Datacenters (DCs) provide the backbone for online services such as web search and social networks. To deliver high bandwidth to such services, modern datacenters are often structured as multi-rooted tree topologies, resulting in multiple paths between every pair of servers. To optimally utilize the available bandwidth, an efficient network load balancing scheme is a critical component. Studies show that datacenters are prone to link failures and switch malfunctions, and this results in congestion asymmetry across network paths. ECMP is a widely deployed load balancing scheme in switches today, which hashes each flow onto one specific path. This leads to hash collisions for elephant flows. On the other side of the spectrum, some schemes spray packets across multiple paths, and while theirperformanceisnear-optimalundersymmetricconditions, theirperformancedegrades significantly under asymmetry, due to packet reordering. In this thesis, we explore how per-packet load balancing can be made efficient in the presence of asymmetry. Thekeycontributionofthisthesisisthedevelopmentofper-packet datacenternetwork load balancing schemes that perform well under asymmetry. Our work is based on the observation that if each flow is provided with a topology that exhibits symmetry in congestion across all its paths, then the flow is able to fully benefit from the bisection bandwidth without facing packet reordering. To this end, we propose SAPS, i.e., Symmetric and Adaptive Packet Spraying. SAPS leverages flow and group tables within OpenFlowenabled switches to create symmetric virtual topologies (SVTs), with each SVT consisting ofpathswithsimilarcapacity. SAPSmapseachflowtoaspecificSVT,withelephantflows mapped to larger bandwidth SVTs, and mice flows mapped probabilistically to any SVT. Experiments conducted involving large-scale packet-level simulations and real testbed settingsindicatethatSAPSimprovesupontheperformanceofseveralexistingloadbalancing schemessuchasECMPandweightedpacketspraying,undervariousfailurescenarios. Under certain scenarios, it also improves upon state-of-the-art schemes such as FlowBender and CONGA. OpenFlow-enabled switches provide the ability to rate limit groups of flows at the switch. By leveraging the rate limiting feature within OpenFlow-enabled switches, we canconstructanSVTbyextractingaspecificsymmetricchunk (orslice)ofresidualcapacity from various paths, rather than the all or nothing path inclusion mechanism in SAPS. 3 Whereas SAPS works well when asymmetry affects a few paths, its performance is adversely affected under higher levels of asymmetry. North-south traffic can lead to a greater number of paths being affected by asymmetry. Rate limiting enables the construction of a set of SVTs that contains the largest possible single SVT. We observe that under greater asymmetry, having an SVT set with the maximum possible SVT significantly enhances performance. This forms the basis of our proposed scheme, Slices, which outperforms other network load balancing schemes (including SAPS) when most paths face asymmetry. Both schemes (SAPS and Slices) are deployable on commonly available OpenFlowenabled switches