Methods and apparatus for routing a packet in a network are described. The network has a topology characterized by a hierarchical structure of nodes including n layers. L represents a layer in the structure and is an integer with L=0 representing a lowest layer and L=n−1 representing a highest layer. The method includes receiving at least a packet header of a packet at a first node and based on the packet header, determining whether to transmit the packet to a second node in either layer L, layer L+1, or layer L−1. The packet can be transmitted to the second node as soon as the packet is received at the first node without waiting to receive the entire packet and without copying the packet prior to transmission from the first node.