Ad-hoc routing protocols allow nodes in a mobile ad hoc network to discover the network topology and route packets between nodes that may not be directly connected. The key goals of ad-hoc routing protocols are to minimize control overhead and processing overhead, enable multihop routing between nodes not in direct transmission range, dynamically maintain routes as nodes move, and prevent routing loops. There are three main categories of ad-hoc routing protocols: table-driven protocols that maintain up-to-date routing tables via periodic updates, on-demand protocols that find routes only when needed via flooding, and hybrid protocols that use aspects of both table-driven and on-demand routing.