Patent ID: 8194657

Claim:
A method of routing a message, the method comprising: at a router, receiving a plurality of network layer or transport layer packets, each packet comprising a header and a payload and using an application protocol, a subset of the packets corresponding to the message; at the router, creating a connection track by: (i) defining the connection track to be a path of the subset of packets that correspond to the message, (ii) identifying the subset of the packets that correspond to the message based on the packet headers and assigning the identified packets to the connection track, and (iii) identifying a data type of the subset of packets based on the payload or application protocol of less than all of the packets of the subset; at the router, associating one or more quality of service (QoS) parameters with the connection track based on the data type, and setting a first QoS parameter in the one or more QoS parameters to a first value in a first value range; at the router, routing the connection track in direct accordance with the one or more QoS parameters, wherein the first QoS parameter is a router path requirement; at the router, routing a plurality of connection tracks; at the router, evaluating a router path status of a first router path specified by the first QoS parameter; and at the router: (i) dropping one or more of the connection tracks from the router when the first router path in the router specified by the first QoS parameter has insufficient bandwidth for the connection track; and (ii) changing a value of a second QoS parameter for one or more of the connection tracks thereby reducing traffic through the first router path specified by the first QoS parameter when the first router path has insufficient bandwidth; and (iii) temporarily setting a new maximum upload and/or a new maximum download rate between an Internet Service Provider and the router.