1. A method of load balancing in a network, comprising: receiving, by a switch, a packet; looking up, by the switch, a packet header of the packet to check whether the packet belongs to an existing flow; if the packet belongs to an existing flow, forwarding the packet based on information in a flow table of the switch, and otherwise, creating a new entry in the flow table for the packet and calculating the next hop; determining if the next hop is an upstream or downstream layer of the network based on a destination IP address; and comparing load values of links to the next layer and selecting a worst-fit link.