Network Troubleshooting Theory