A data communication network for DiffServ communications has a software library added to clients connected to a data communication
a network has a DiffServ-enabled edge router. When an application running on a client system wishes to make a remote procedure call to a remote server system on another network, it usually calls for RPC invocation using the software library. This RPC call is intercepted by a protocol layer interposed between the application layer and the underlying RPC transport code. The protocol layer detects when an RPC call is being made and can determine the identity of the calling procedure as well. The library makes a side channel communication to the edge router to provide this information to the edge router or alternative service decider, which then uses this data when performing DiffServ classification for packets transmitted during the call.
FIELD OF THE INVENTION
This invention generally relates to exchanging information over a data communications network. The invention relates to the preferential exchange of information, including remote procedure calls over a network implementing a differentiated service mechanism.
BACKGROUND OF THE INVENTION
Remote procedure calls (RPCs) are widely used in data communications, particularly in layer 5 of OSI architecture-type communication systems.
An RPC is a request conforming to a protocol that a program can request a service from a program on another computer on the network. The client program making the request includes an API that receives calls to remote procedures from other parts of the program and passes them to a runtime program in the client. The runtime program in the client knows the format for addressing the remote server and relays the procedure requests accordingly.
Differentiated service (DiffServ) networks have become more prevalent in recent years. DiffServ is a network service mechanism that classifies network traffic into several classes and controls the network traffic so that specific courses get precedence or service quality. The preference relationships are defined by service level agreements (SLAs) among or among and between network applications and service providers. For example, one SLA can provide that certain classes of traffic between two networks, such as essential business applications, should be prioritized over other traffic classes, such as web surfing, between the networks. As another example, an SLA can specify that a particular class of traffic from a first network to a second network should be prioritized over a specific class of traffic from the first network to a third network. DiffServ-enabled devices in a network use six-bit Differentiated Services Code Point (DSCP) labels included in IP packet headers to know how to forward the packet.
Related to the concept of DiffServ is that of edge routers. An edge router is a device for forwarding data between two networks to which it is connected. Edge routers are used to classify data flows of a DiffServ network by comparing packets in such flows with relevant SLA information stored in the router. The edge router receives packets bound for a DiffServ network and a quality of service (QoS) classifier within the edge router and applies DSCP labels according to the SLA specification. If a packet belongs to a flow with a high priority, it receives a DSCP corresponding to that high priority; if the packet belongs to a flow with a low emphasis, it gets a DSCP corresponding to that low priority.
The packet is then delivered to an external network for eventual transmission to its ultimate destination according to the DSCP requirements. If the DiffServ network becomes congested, the packets labeled with high priority DSCPs are more likely to reach their destinations successfully; packets labeled with low priority DSCPs might only receive best-effort service. This helps to guarantee a better quality of service for higher priority flows.
RPC calls may be hard to detect by QoS classifiers in edge routers; thus, an RPC that should be given a high priority DSCP might not be appropriately classified, failing QoS requirements. This is because QoS classifiers usually screen packets following a five-tuple that includes a socket port number, and RPC flows do not always use well-known port numbers. This creates a problem because priority levels that should be accorded to RPCs may then be usurped by other applications that can more easily be screened for DiffServ classification and transmission.
SUMMARY OF THE INVENTION
A data communication network for DiffServ communications in which a software library is added to clients connected to a data communication network having a DiffServ-enabled edge router.
When an application running on a client system wishes to make a remote procedure call to a remote server system on another network, it makes its usual call to the RPC stub. This RPC call is intercepted by a protocol layer interposed between the application layer and the underlying RPC transport code. The protocol layer provided by the software library detects when a high-priority RPC call is being made and can determine the identity of the calling procedure as well. The protocol layer also uses the library in making a side channel communication to the edge router to provide this information to the edge router, which then makes use of this data when performing DiffServ classification for packets transmitted during the course of the call.