1. A method comprising: receiving a stream of packets associated with an end-user device of a subscriber network with an intermediate network device positioned within a service provider network, wherein the service provider network provides the subscriber network access, where to a public network; separating, with the intermediate network device, the stream of packets from the end-user device into a set of packet flows; forming application-layer communications from each packet flow in the set of packet flows; extracting protocol-specific elements from the application-layer communications that describe a communication session on lower levels of a network stack; analyzing the protocol-specific elements to detect the existence of a subscriber characteristic in the packet flow, wherein the subscriber characteristic includes information related to operation of the end-user device located within the subscriber network; diagnosing, with a rule-based system, a suggested cause of a network error occurring within the subscriber network using the subscriber characteristic, wherein the suggested cause specifies a misconfiguration of the end-user device operating within the subscriber network; and outputting the suggested cause of the network error to a service technician associated with the service provider network.