Routing loops are caused by inconsistencies in routing state among a set of routers. They occur in perfectly engineered networks and have a detrimental effect on performance. They impact end-to-end performance through increased packet loss and delay for packets caught in the loop and through increased link utilization and corresponding delay and jitter for packets that traverse the link but are not caught in the loop. Using packet traces from a tier-1 ISP backbone, we first explain how routing loops manifest in packet traces. We characterize routing loops in terms of the packet types caught in the loop, the loop sizes, and the loop durations. Finally, we analyze the impact of routing loops on network performance in terms of loss and delay.