SlideShare a Scribd company logo
1 of 10
Download to read offline
US007047536B1 
(12) United States Patent (10) Patent N0.2 US 7,047,536 B1 
Duncan et al. (45) Date of Patent: May 16, 2006 
(54) METHOD AND APPARATUS FOR OTHER PUBLICATIONS 
CLASSIFYING REMOTE PROCEDURE CALL . . . . 
TRANSPORT TRAFFIC Afek et al. “Remote object oriented programmmg w1th 
quality of service or Java’s RMI over ATM” 1996, pp. 1-6.* 
(75) Inventors Robert J Duncan San Francisco CA Dave et al. “Proxies, application interfaces, and distributed 
Us . T l L L - S 1 CA systems” 1992 IEEE, pp. 212-220.* 
gUsg’ a avlan’ unnyva e’ Stoller“Computer communications software” India Univer 
sity 1998, pp. 1-24.* 
(73) Assignee: Nortel Networks LTD, (CA) >i< Cited by examiner 
* Notice: Sub'Je ct to an y disclaimer, the term of this Primary ExamineriWilliam Thomson 
patent is extended or adjusted under 35 Assistant ExamineriVan H. Nguyen 
U.S.C. 154(b) by 509 days. (74) Attorney, Agent, or FirmiMcGuinness & Manaras 
LLP 
(21) Appl. No.: 09/752,112 
(57) ABSTRACT 
(22) Filed: Dec. 29, 2000 
(51) Int. C]. A data communication network for Di?Serv communica 
G06F 9/44 (2006.01) tions has a software library added to clients connected to a 
(52) US. Cl. ..................... .. 719/330; 719/328; 709/217 data Communication network having a Di?Serv-enabled 
(58) Field of Classi?cation Search .............. .. 709/328, edge router When an application running On a Client System 
709/330’ 226, 2272229’ 2172219’ 234, 235; wishes to make a remote procedure call to a remote server 
370/231’ 235; 719/3302331, 310, 328 system on another network, it makes its usual call for RPC 
See application ?le for Complete Search history invocation using the software library. This RPC call is 
intercepted by a protocol layer interposed between the 
(56) References Cited application layer and the underlying RPC transport code. 
The protocol layer detects when an RPC call is being made 
US‘ PATENT DOCUMENTS and can determine the identity of the calling procedure as 
5,596,579 A * 1/1997 Yasrebi .................... .. 709/328 We11- The library makesaside Channel communication to the 
5,682,534 A * 10/1997 Kapoor et a1. .. 709/328 edge router to provide this information to the edge router or 
6,223,217 B1 * 4/2001 Pettus . . . . . . . . . . . . - - - -- 709/219 alternative service decider, which then makes use of this data 
6,408,342 131* 6/2002 Moore et a1~ 719/330 when performing Di?Serv classi?cation for packets trans 
6,412,000 B1 * 6/2002 Riddle et a1. 709/224 mined during the Course of the can' 
6,483,805 B1* 11/2002 Davies et a1. 370/235 
6,487,170 B1* 11/2002 Chen et a1. .. 370/231 
6,640,248 B1* 10/2003 Jorgensen ................. .. 709/226 16 Claims, 4 Drawing Sheets 
detected’? 
504 Edge 
Router 1 06 
Exlrac’i ?ow 
information 
508 
i, 
Transmit flow 
information 
508 
_._| i——i—‘i, 
Update 
dynamic RPC 
list 510 
RPC 
packets 
System 102 
Mark 
packets 
514 
‘—l 
Forward 
packets 
516
U.S. Patent May 16, 2006 Sheet 1 0f4 US 7,047,536 B1 
Egg: vow 
v6zo5im0z wow 
======= 6w5m0nmm mo? M13.2" 
2E62.066 N2 
{6oEEm:z o:
U.S. Patent May 16, 2006 Sheet 2 6f 4 US 7,047,536 B1 
---- - 6 
Client Application 
202 
. CPU 
' 222 
Application Library 
204 w 228 
RPC QoS Shim ‘ 
Layer 206 i 
User interface 
5 224 
RPC Transport 
Layer 
208 
Socket/TCP Layer 
210 
I Network Interface 
- i 226 
Device Code/OS 
212 
FIGURE 2
U.S. Patent May 16, 2006 Sheet 3 6f 4 US 7,047,536 B1 
A Flow 
Detector 
304 
RPC QoS 
——> Detector Signaler ——> 
302 308 
Socket 
Detector 
306 
?G_U_R_E_3_ 
SRPnCI RPC 0s 
'9 a Handler Classifier —% 
Interface 408 
402 
k 
1 6 ,, 
Store 
410 
FIGURE 4
U.S. Patent May 16, 2006 Sheet 4 6f 4 US 7,047,536 B1 
i 
Screen 
RPC 
traf?c 502 
Edge 
Router 106 
Extract flow 
information 
506 
Transmit flow 
information 
508 a 
___i | ? 
Update 
dynamic RPC 
list 510 
V 
RPC 
5 packets 
- E 7 
Cllent i . detected . 
' 512 System 102 
 
Mark 
packets 
= 514 
+—_| 
5 i 
Fonivard 
I packets 
516 
4_|
US 7,047,536 B1 
1 
METHOD AND APPARATUS FOR 
CLASSIFYING REMOTE PROCEDURE CALL 
TRANSPORT TRAFFIC 
FIELD OF THE INVENTION 
This invention generally relates to exchanging informa 
tion over a data communications network. More particularly, 
the invention relates to the preferential exchange of infor 
mation 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 conform 
ing to a protocol that a program can use to request a service 
from a program on another computer on the network. The 
client program making the request includes an API which 
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 (Di?Serv) networks have become 
more popular in recent years. Di?Serv is a network service 
mechanism that classi?es network tra?ic into a number of 
different classes and controls the network tra?ic so that 
certain classes get precedence or service quality. The pref 
erence relationships are de?ned 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 traf?c between two networks, such as 
important business applications, should be prioritized over 
other classes of traf?c, such as web sur?ng, between the 
networks. As another example, an SLA can specify that a 
certain class of traf?c from a ?rst network to a second 
network should be prioritized over a certain class of traf?c 
from the ?rst network to a third network. Di?Serv-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 Di?Serv 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 ?ows of a Di?Serv network by comparing 
packets in such ?ows with relevant SLA information stored 
in the router. The edge router receives packets bound for a 
Di?Serv network and a quality of service (QoS) classi?er 
within the edge router and applies DSCP labels according to 
the SLA speci?cation. If a packet belongs to a ?ow with a 
high priority, it receives a DSCP corresponding to that high 
priority; if the packet belongs to a ?ow with a low priority, 
it receives 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 Di?Serv network becomes 
congested, the packets labeled with high priority DSCPs are 
more likely to successfully reach their destinations; packets 
labeled with low priority DSCPs might only receive best 
effort service. This helps to guarantee a better quality of 
service for higher priority ?ows. 
RPC calls may be hard to detect by QoS classi?ers in edge 
routers; thus, an RPC which should be given a high priority 
DSCP might not be properly classi?ed, resulting in a failure 
in QoS requirements. This is because QoS classi?ers usually 
20 
25 
30 
35 
40 
45 
50 
55 
60 
65 
2 
screen packets in accordance with a ?ve-tuple that includes 
a socket port number. RPC ?ows do not always use well 
known port numbers. This creates a problem because pri 
ority levels which should be accorded to RPCs may then be 
usurped by other applications that can more easily be 
screened for Di?Serv classi?cation and transmission. 
SUMMARY OF THE INVENTION 
A data communication network for Di?Serv communica 
tions in which a software library is added to clients con 
nected to a data communication network having a Di?Serv 
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 Di?Serv classi? 
cation for packets transmitted during the course of the call. 
BRIEF DESCRIPTION OF THE DRAWINGS 
These and other aspects and features of the present 
invention will become apparent to those ordinarily skilled in 
the art upon review of the following description of speci?c 
embodiments of the invention in conjunction with the 
accompanying ?gures, wherein: 
FIG. 1 shows structure of a network according to an 
embodiment of the present invention; 
FIG. 2 shows structure of a client system according to an 
embodiment of the present invention; 
FIG. 3 shows structure in an RPC QoS shim layer 
according to an embodiment of the present invention; 
FIG. 4 shows structure in an edge router according to an 
embodiment of the present invention; and 
FIG. 5 shows operation of an embodiment of the present 
invention. 
DETAILED DESCRIPTION OF EMBODIMENTS 
OF THE INVENTION 
The present invention will now be described in detail with 
reference to the drawings, which are provided as illustrative 
examples of the invention so as to enable those skilled in the 
art to practice the invention. Notably, the implementation of 
certain elements of the present invention may be accom 
plished using software, hardware or any combination 
thereof, as would be apparent to those of ordinary skill in the 
art, and the ?gures and examples below are not meant to 
limit the scope of the present invention. Moreover, where 
certain elements of the present invention can be partially or 
fully implemented using known components, only those 
portions of such known components that are necessary for 
an understanding of the present invention will be described, 
and detailed descriptions of other portions of such known 
components will be omitted so as not to obscure the inven 
tion. Further, the present invention encompasses present and 
future known equivalents to the known components referred 
to herein by way of illustration. 
FIG. 1 illustrates the architecture of one embodiment of 
the present invention. As shown in FIG. 1, the architecture
US 7,047,536 B1 
3 
includes a client system 102 that has been adapted to 
communicate With a remote server 104 via an edge router 
106 and inside and outside netWorks 110 and 108. Such 
communications betWeen the client system 102 and the 
remote server 104 can include, for example, RPCs as 
described above. 
The client system 102 can be, for example, a Workstation 
such as a PC, Macintosh, Unix, Linux or Sparc Workstation. 
The server 104 can be, for example, a PC, Macintosh, Unix, 
Linux or Sparc Workstation, mainframe, minicomputer like 
the IBM AS-400, or any other appropriate server hardWare. 
The softWare on the server can be any appropriate server 
application, or any application running on an application 
server like lBM’s San Francisco, Sun’s Net Dynamics, 
Bluestone, BEA or any appropriate application server. Data 
base servers that can run on these hardWare servers can be 
Oracle, lBM’s DB2, an object repository (server) or other 
appropriate system. The inside netWork 110 can be, for 
example, a LAN or other netWork connecting the client 
system 102 and router 106. The edge router 106 can be, for 
example, a Nortel Networks Passport 8600 router, Cisco 
System Catalyst 6500 or other router Which includes Diff 
Serv or other netWork control functionality like RSVP, 
COPS, COPS-PR, MPLS, lntServ or similar functionality. 
The outside netWork 108 can be a LAN, MAN, WAN or the 
Internet, for example. It further preferably includes one or 
more Di?Serv-enabled devices. Speci?cally, at least part of 
the path betWeen the client 102 and the remote server 104 is 
managed using differentiated services. 
Preferably, the router 106 is at the edge of the inside 
netWork 110, but this is not necessary. What is desirable is 
that this is the ?rst or closest Di?‘Serv-classifying router in 
the Di?Serv-controlled portion of the path betWeen the 
client 102 and the server 104. Typically, this Will be at the 
edge of the inside netWork 110. The invention may be 
practiced in a router Within the outside netWork 108; hoW 
ever, its bene?t (as Well as the bene?t of any Di?Serv 
capable QoS service) Will be less there because part of the 
transit path of RPC tra?ic Will be non-Di?Serv prioritized. 
The present invention is preferably practiced instead of 
the aforementioned conventional DiffServ capabilities 
knoWn in the art. Alternatively, the edge router 106 prefer 
ably has existing Di?Serv-classifying capability in accor 
dance With SLAs or it has been upgraded With dynamic 
Di?Serv-classifying capability, and the present invention is 
practiced in addition to these conventional Di?Serv classi 
fying capabilities in accordance With SLAs. 
Generally, When operating in accordance With the inven 
tion, a client application in the client system 102 initiates an 
RPC connection With the remote server 104. The present 
invention, preferably implemented as softWare Within the 
client system 102, detects the attempt to initiate an RPC 
connection using a special softWare library described beloW 
and collects RPC ?oW information relating to the connection 
(e.g., a ?ve-tuple including the sender and receiver MAC 
and IP addresses, the sender and receiver MAC and IP port 
numbers, and the TCP protocol type for the connection) for 
transmission via a side channel to the edge router 106 (it 
should be noted that the invention does not require all of the 
above information for implementation, and may be practiced 
With a subset thereof, or other equivalent parameters). Other 
arrangements using different information sets may be 
usable; hoWever, this arrangement alloWs the system to 
distinguish speci?c traf?c. This is part of the interaction 
betWeen the application and the routers 106. The routers 106 
thus have a speci?c Way to identify speci?c traf?c and give 
the right service to it. 
20 
25 
30 
35 
40 
45 
50 
55 
60 
65 
4 
A Di?Serv classi?er 408 (see FIG. 4) in the edge router 
106 becomes aWare of the received ?oW information and 
assigns the RPC How a QoS level in accordance With the 
SLAs. Thereafter, When communications betWeen the client 
system 102 and the remote server 104 associated With the 
RPC How are received by the edge router 106, they are 
marked With the appropriate Di?Serv labels for the desired 
QoS by the edge router 106, e.g., by various ?lters in the 
edge router 106, and are forWarded through the outside 
netWork 108. For example, the old ToS byte nay be used as 
a DSField byte marking the packet. 
Although only one client system 102 and edge router 106 
are shoWn, it should be noted that the remote server 104 
preferably includes functionality for communicating With 
many client systems 102 via the same or many different edge 
routers 106. These may be a mix of devices practicing the 
invention, Di?Serv-capable devices not practicing the 
invention, and non-DiffServ capable devices. LikeWise, the 
client system 102 can include functionality for communi 
cating With many different edge routers 106 and servers 104. 
Such additional functionality is apparent to those skilled in 
the art and more detailed descriptions thereof are not nec 
essary for an understanding of the present invention. 
It should be further noted that the remote server 104 and 
its associated edge router or similar device (not shoWn) may 
include similar functionality as described herein With refer 
ence to the client system 102 and the edge router 106 for 
dynamically assigning QoS to RPC return ?oWs from the 
server 104 to the client system 102. Alternatively, the client 
system 102 may include functionality for also informing the 
remote server’s associated edge router of the RPC ?oW 
information for dynamic QoS assignment. 
It should be even further noted that, although the present 
invention is described herein With reference to an exemplary 
implementation in a Di?Serv-capable netWork, the present 
invention is not limited to this example. Rather, the present 
invention is applicable to other existing or emerging stan 
dards for providing differentiated services or QoS for dif 
ferent types of ?oWs or classes of netWork traf?c, such as 
lntServ/ RSVP, COPS, COPS-PR, MPLS, IEEE 801 .2(p) and 
IEEE 801.2(q). Moreover, Where an outside netWork 108 
supports more than one type of differentiated services, the 
client system 102 may include functionality for dynamically 
adjusting the level of service for RPC ?oWs in accordance 
With these multiple types. 
FIG. 2 illustrates an example client system 102 in accor 
dance With one embodiment of the present invention. As 
shoWn in this example implementation, the client system 
102 includes softWare modules 202 to 212 that can be 
provided as one or more executable ?les loaded in a dynamic 
memory 220 and executed by a central processing unit 222 
in the client system 102. The client system 102 further 
includes a user interface 224 that alloWs an associated user 
such as a netWork manager to initiate an RPC connection 
and a netWork interface 226 through Which the client system 
102 can communicate via the inside netWork 110 With the 
edge router 106 and the outside netWork 108, as Well as a bus 
228 that alloWs communications betWeen the memory 220, 
the CPU 222, the user interface 224 and the netWork 
interface 226. 
As shoWn in FIG. 2, the softWare loaded in the memory 
220 during operation of the client system 102 includes a 
client application 202 that establishes connections With 
remote objects on the remote server 104 for the purposes of 
making RPCs, for example. As indicated in the Figure, the
US 7,047,536 B1 
5 
client application 202 may communicate with an application 
library 204 either directly or through one or more additional 
software layers (not shown). 
The application library 204 is typically one or more APIs 
that are designed to communicate with an RPC transport 
layer 208 so the client application need not be aware of the 
implementation details of the RPC transport layer. The 
library 204 can include, for example, SAP methods, Oracle 
database methods and the like, that implement or initiate 
RPCs on the remote server 104. As is known in the art, the 
library 204 may be provided by the same entity that main 
tains the remote server 104 to enable the client system 102 
to establish and maintain connections with that server. 
The RPC transport layer 208 further communicates with 
a socket/TCP layer 210 which may even further communi 
cate with other networking protocol layers and device-level 
layers such as a device operating system and device-level 
APIs. These layers are device-speci?c and are generally 
speci?cally written for the device and operating system 212 
(e.g., Solaris, Windows) of the client system 102. Further 
detailed descriptions thereof are not necessary for an under 
standing of the present invention. 
In accordance with the invention, as shown in FIG. 2, the 
software load further includes an RPC QoS shim layer 206. 
Generally speaking, the shim layer 206 detects when calls to 
the RPC transport layer 208 have been made (the shim layer 
206 preferably presents a duplicate or equivalent API to 
calling layers as described below), determines who made the 
call and the socket used by the RPC by examining headers 
of packets used in the call, and signals the classi?er in the 
edge router of the ?ve-tuple of the RPC ?ow. It then may 
pass the traf?c on to the RPC transport layer 208 for 
conventional processing. 
It should be noted that the client system 102 can include 
additional software to that shown in FIG. 2, and that certain 
of the software layers can include functionality for commu 
nicating with other software layers not shown in FIG. 2, as 
well as additional functionality and other software not 
necessary for practicing the present invention. 
It should be further noted that the RPC QoS shim layer 
206 can be integrated together with, or (for exclusive 
Di?Serv operation) entirely replace, the RPC transport layer 
208. Many other combinations or divisions between the 
functionalities of the RPC QoS shim layer 206 and other 
software layers are possible, as will become apparent to 
those skilled in the art after being taught by the present 
speci?cation. 
FIG. 3 is a functional block diagram illustrating an 
example of functionality within the RPC QoS shim layer 
206 in accordance with one embodiment of the present 
invention. As shown, it includes an RPC detector 302, a ?ow 
detector 304, a socket detector 306, and a QoS signaler 308. 
Although shown separately for clarity, it should be appre 
ciated that the functionalities of each element can be com 
bined together and divided apart in various ways. 
The RPC detector 302 detects RPC calls by client appli 
cations 202. In one example of the invention, the RPC QoS 
shim layer 206 can do this by providing shell modules 
having the same name as the APIs of the RPC transport layer 
208. Accordingly, rather than making an API call in the RPC 
transport layer 208, the application library 204 calls the 
module having the same name in the RPC QoS layer 206, 
which then calls the appropriate API in the RPC transport 
layer 208, in addition to performing detection processing. 
It should be noted that as seen above, the presence and 
operation of this embodiment may be transparent to the 
application library 204iit simply makes the API calls and 
20 
25 
30 
35 
40 
45 
50 
55 
60 
65 
6 
does not know (or care) that they are received by the RPC 
shim 206 rather than the RPC transport layer 208. 
The ?ow detector 304 determines the ?ow information 
(e.g., the MAC and IP addresses of the client system 102 and 
the remote server 104) associated with the RPC connection. 
It does this using a modi?cation of the RPC API implemen 
tation and parameters in the RPC call. 
The socket detector 306 determines the socket informa 
tion (e.g., TCP socket number) for the RPC ?ow. It does this 
by making the appropriate library call to open a TCP socket, 
thus trapping the socket number returned. 
The QoS signaler 308 receives the detected ?ow infor 
mation from the ?ow detector 304 and socket information 
from the socket detector 306 and sets up a side channel 
through which to forward the information to the edge router 
106. A side channel, as used herein, includes, e.g., an 
additional socket communication using a protocol such as 
TCP/HTTP such as in the following CGI example. For 
example, the QoS signaler 308 may post a CGI script over 
the HTTP protocol having the ?ow information as param 
eters to the edge router 106, and the CGI script will cause the 
corresponding dynamic QoS assignment functionality to be 
executed on the edge router 106. This can be done by a 
user-de?ned QoS con?guration that provides routing infor 
mation including edge routers, as will be apparent to those 
skilled in the art. 
FIG. 4 illustrates an example of the RPC QoS function 
ality in the edge router 106 in accordance with one embodi 
ment of the present invention. As shown, it includes an RPC 
signal interface 402, an RPC handler 404, a dynamic RPC 
list 406, a Di?‘Serv classi?er 408 and a service level agree 
ment (SLA) store 410. Although shown separately for clar 
ity, it should be appreciated that the functionalities of certain 
elements can be combined together and divided apart in 
various ways. 
The RPC signal interface 402 communicates with the QoS 
signaler 308 in the client system 102. For example, the RPC 
signal interface 402 can be the portion of a CGI script 
(written in PERL, C/C++, etc.) that executes when the QoS 
signaler 308 posts information corresponding to the script to 
the edge router 106. The RPC signal interface 402 may 
extract the ?ow information from the CGI script parameters. 
It should be apparent that the edge router 106 may include 
additional functionality for communicating with the QoS 
signaler 308 using known protocols such as HTTP, for 
example, and for launching CGI applications in response to 
information posted to the edge router 106. 
The RPC handler 404 receives the RPC ?ow information 
from the RPC signal interface 402 and adds it to a dynamic 
RPC list 406. The dynamic RPC list 406 contains entries 
listing RPC ?ows that have been requested through the edge 
router 106. In one example of the invention, the RPC handler 
404 includes functionality for aging out entries in the list 406 
using a least-recently-used (LRU) algorithm or the like. 
Alternatively, the RPC handler 404 simply overwrites the 
oldest entry when the list becomes full and new ?ow 
information is received. 
The SLA store 410 contains QoS settings among and 
between networks in accordance with service level agree 
ments (SLAs). These are the static and pre-de?ned ?ows for 
conventional Di?‘Serv treatment. In one example of the 
invention, the dynamic RPC list 406 and the SLA store 410 
are provided as separate memories, and are shown as such 
for clarity. However, this is not necessary. They can be 
provided together in one memory area, with a static portion 
(locations not addressed during operation by the RPC han 
dler 404, corresponding to the SLAs in SLA store 410) and
US 7,047,536 B1 
7 
a dynamic portion (locations addressable during operation 
by the RPC handler 404 to update with RPC ?ow informa 
tion, corresponding to the dynamic RPC list 406). 
The Di?Serv classi?er 408 accesses the ?ow information 
in the dynamic RPC list 406 and the SLA store 410 and 
compares the information therein with ?ow information 
detected from packet headers of traf?c ?owing to the outside 
network 108 through the edge router 106. If the ?ow 
information in the traf?c headers matches the stored ?ow 
information (e.g., the ?ve-tuple of source and destination IP 
addresses, source and destination MAC addresses, and 
socket or port number), the packets are marked with a QoS 
label in accordance with the QoS agreed to for that ?ow. The 
classi?er 408 can be implemented by adapting a conven 
tional Di?Serv classi?er with the additional functionality of 
comparing packet headers with dynamic RPC ?ow infor 
mation stored in the dynamic RPC list 406. It should be 
apparent, however, that such adaptation can be minimal or 
unnecessary if the ?ow information in the dynamic RPC list 
406 and the SLA store 410 are provided together in a single 
contiguous memory location. 
It should be noted that the edge router 106 preferably 
further includes functionality for authenticating requests for 
dynamic classi?cation of RPC ?ows. This functionality can 
include encryption and signature techniques. Such addi 
tional functionality that presently exists is well understood 
by those skilled in the art and the details thereof are not 
necessary for an understanding of the present invention. 
Moreover, the edge router 106 can also include a con 
ventional packet processing and forwarding architecture, a 
further description of which is not necessary for an under 
standing of the present invention. 
FIG. 5 is a ?owchart illustrating an example method for 
classifying an RPC ?ow in accordance with one embodi 
ment of the present invention. 
As shown in FIG. 5, processing begins in the client system 
102 in S502 where requests for access to an RPC transport 
layer are made, for example, by application library software. 
If an RPC connection has been initiated (determined in 
S504), processing advances to S506, where the ?ow infor 
mation associated with the RPC connection is detected. In 
S508, the detected ?ow information is transmitted upstream 
to the edge router 106 for dynamic QoS classi?cation, and 
the client system 102 processing returns to detecting a new 
RPC connection in S502. 
Processing continues in the edge router 106 in S510, 
where the received RPC ?ow information is used to update 
a dynamic RPC ?ow list. Processing continues to S512 
where all incoming packets bound for the outside network 
108 are screened at the edge router 106. If a packet belongs 
to an RPC ?ow (determined in S512), it is marked with a 
Di?Serv label in accordance with the desired QoS for RPC 
?ows in S514. All packets, whether marked with Di?Serv 
labels or not, are then forwarded along to the outside 
network 108 in S516 and the process of screening packets at 
the edge router 106 continues at S510. 
The methods and implementing apparatus of the present 
invention have been described in connection with the pre 
ferred embodiments as disclosed herein. Although exem 
plary embodiments of the present invention have been 
shown and described in detail herein, along with certain 
variants thereof, other varied embodiments which incorpo 
rate the teachings of the invention may easily be constructed 
by those skilled in the art. 
For example, the above-described embodiment may be 
implemented in a number of ways, including the use of 
dedicated hardware, a combination of dedicated hardware 
20 
25 
30 
35 
40 
45 
50 
55 
60 
65 
8 
and programmed special purpose processors, programmed 
general purpose processors or software, and the like. 
Accordingly, the present invention is not intended to be 
limited to the speci?c form set forth herein, but on the 
contrary, it is intended to cover such alternatives, modi?ca 
tions, and equivalents, as can be reasonably included within 
the spirit and scope of the invention. In other instances, well 
known structures are not shown in detail but can readily 
constructed by those skilled in the art. 
What is claimed is: 
1. A method for classifying a remote procedure call from 
a client system in a ?rst network that initiates connections to 
a remote server in a second network via a classifying edge 
router using a client and underlying remote procedure call 
transport code, the method comprising: 
detecting when a connection for the remote procedure call 
is created; 
using a side channel to communicate ?ow information 
associated with the detected connection to the classi 
fying edge router, the ?ow information including a port 
number associated with the communication, the ?ow 
information provided to enable the classifying edge 
router to assign a quality of service classi?er to the 
remote procedure call for appropriately prioritized 
transfer to the second network; and 
incorporating the ?ow information into a differentiated 
services classi?cation subsystem of the classifying 
edge router by associating the equality of service level 
to the detected connection; and 
wherein the detecting comprises: 
providing an Application Programming Interface (API) 
to calling applications; 
detecting when the applications call the API; and 
executing a remote procedure routine based on a call by 
an application, the remote procedure routine includ 
ing forwarding the ?ow information to the classify 
ing edge router via the side channel; and 
wherein: 
the executing comprises accessing a remote procedure 
call API; and 
the API provided to the calling applications includes 
functionality duplicative of remote procedure call 
API functionality. 
2. The method of claim 1, wherein: 
the executing comprises accessing a remote procedure 
call API; and the API provided to the calling applica 
tions presents an interface duplicative of the remote 
procedure call API to the calling applications. 
3. The method of claim 1, further comprising: 
obtaining ?ow information from an application call to the 
API; and 
providing the ?ow information to the classifying edge 
router via the side channel. 
4. The method of claim 3, wherein the ?ow information 
includes a ?ve-tuple including sender and receiver Media 
Access Control (MAC) and Internet Protocol (IP) addresses, 
sender and receiver MAC and IP port numbers, and Trans 
mission Control Protocol (TCP) protocol type for the con 
nection. 
5. The method of claim 1, wherein the side channel is 
implemented as Common Gateway Interface (CGI) script 
from the client to the classifying edge router. 
6. The method of claim 1, wherein the ?ow information 
includes a ?ve-tuple including sender and receiver Media 
Access Control (MAC) and Internet Protocol (IP) addresses,
US 7,047,536 B1 
9 
sender and receiver MAC and IP port numbers, and Trans 
mission Control Protocol (TCP) protocol type for the con 
nection. 
7. The method of claim 1, Wherein incorporating includes: 
using the How information to determine a differentiated 
services classi?cation for the connection; and 
marking tra?ic delivered to the connection by the classi 
fying router based on the classi?cation. 
8. The method claim 1, further comprising: 
detecting the identify of the client making the remote 
procedure call, the How information further containing 
this detected identify. 
9. An apparatus for classifying a remote procedure call 
from a client system in a ?rst netWork that initiates connec 
tions to a remote server in a second netWork via a classifying 
edge router using a client and underlying remote procedure 
call transport code, the apparatus comprising: 
a module con?gured to detect When a connection for the 
remote procedure call is created; 
a module con?gured to use a side channel to communicate 
?oW information associated With the detected connec 
tion to the classifying edge router, Wherein the How 
information includes a port number associated With the 
remote procedure call, the How information provided to 
enable the classifying edge router to assign a quality of 
service classi?er to the remote procedure call for appro 
priately prioritized transfer to the second network; and 
a module con?gured to incorporate the How information 
into a differentiated services classi?cation subsystem of 
the classifying edge router by associating the equality 
of service level to the detected connection; and 
Wherein the detecting module is further con?gured to: 
provide an Application Programming Interface (API) to 
calling applications; 
detect When the applications call the API; and 
execute a remote procedure routine based on a call by 
an application, the remote procedure routine includ 
ing forWarding the How information to the classify 
ing edge router via the side channel; and 
Wherein: 
the detecting module is further con?gured to access a 
remote procedure call API; and 
20 
25 
30 
35 
40 
10 
the API provided to the calling applications includes 
functionality duplicative of remote procedure call 
APl functionality. 
10. The apparatus of claim 9, Wherein the detecting 
module is further con?gured to access a remote procedure 
call API; and the API provided to the calling applications 
presents an interface duplicative of the remote procedure 
call API to the calling applications. 
11. The apparatus of claim 9, Wherein the side channel 
module is further con?gured to: 
obtain ?oW information from an application call to the 
API; and 
provide the How information to the classifying edge router 
via the side channel. 
12. The apparatus of claim 11, Wherein the How informa 
tion includes a ?ve-tuple including sender and receiver 
Media Access Control (MAC) and lntemet Protocol (IP) 
addresses, sender and receiver MAC and IP port numbers, 
and Transmission Control Protocol (TCP) protocol type for 
the connection. 
13. The apparatus of claim 9, Wherein the side channel is 
implemented as a Common GateWay Interface (CGI) script 
from the client to the classifying edge router. 
14. The apparatus of claim 9, Wherein the How informa 
tion includes a ?ve-tuple including sender and receiver 
Media Access Control (MAC) and lntemet Protocol (IP) 
addresses, sender and receiver MAC and IP port numbers, 
and Transmission Control Protocol (TCP) protocol type for 
the connection. 
15. The apparatus of claim 9, Wherein the incorporating 
module is further con?gured to: 
use the How information to determine a differentiated 
services classi?cation for the connection; and 
mark traf?c delivered to the connection by the classifying 
edge router based on the classi?cation. 
16. The apparatus of claim 9, Wherein the side channel 
module is further con?gured to detect the identity of the 
client making the remote procedure call, the How informa 
tion further containing this detected identity. 
* * * * *

More Related Content

What's hot

Gprs
GprsGprs
Gprs
akash
 
Elementary procedures for Circuit-Switched (CS) Call Control (CC) in 3GPP
Elementary procedures for Circuit-Switched (CS) Call Control (CC) in 3GPPElementary procedures for Circuit-Switched (CS) Call Control (CC) in 3GPP
Elementary procedures for Circuit-Switched (CS) Call Control (CC) in 3GPP
Louis K. H. Kuo
 
Sample patent invalidity report analyst oserve
Sample patent invalidity report analyst oserveSample patent invalidity report analyst oserve
Sample patent invalidity report analyst oserve
AnalystO Serve
 
Chap02 gprs pro_03t_kh
Chap02 gprs pro_03t_khChap02 gprs pro_03t_kh
Chap02 gprs pro_03t_kh
Farzad Ramin
 
Copy Of Copy Of Gprs
Copy Of Copy Of GprsCopy Of Copy Of Gprs
Copy Of Copy Of Gprs
akash
 
Cellular network planning_and_optimization_part11
Cellular network planning_and_optimization_part11Cellular network planning_and_optimization_part11
Cellular network planning_and_optimization_part11
Farzad Ramin
 
Chap01 gprs intro_03_kh
Chap01 gprs intro_03_khChap01 gprs intro_03_kh
Chap01 gprs intro_03_kh
Farzad Ramin
 
3 g 4g adv_chal 041406 ver1
3 g 4g adv_chal 041406 ver13 g 4g adv_chal 041406 ver1
3 g 4g adv_chal 041406 ver1
Ramineni Hemu
 
Chap03 gmm prot_03_kh
Chap03 gmm prot_03_khChap03 gmm prot_03_kh
Chap03 gmm prot_03_kh
Farzad Ramin
 
Performance-Evaluation-of-RPL-Routes-and-DODAG-Construction-for-IoTs .pdf
Performance-Evaluation-of-RPL-Routes-and-DODAG-Construction-for-IoTs .pdfPerformance-Evaluation-of-RPL-Routes-and-DODAG-Construction-for-IoTs .pdf
Performance-Evaluation-of-RPL-Routes-and-DODAG-Construction-for-IoTs .pdf
IUA
 
Chap07 sndcp 03t_kh
Chap07 sndcp 03t_khChap07 sndcp 03t_kh
Chap07 sndcp 03t_kh
Farzad Ramin
 

What's hot (20)

Gprs
GprsGprs
Gprs
 
Chap10 edge 03_kh
Chap10 edge 03_khChap10 edge 03_kh
Chap10 edge 03_kh
 
Elementary procedures for Circuit-Switched (CS) Call Control (CC) in 3GPP
Elementary procedures for Circuit-Switched (CS) Call Control (CC) in 3GPPElementary procedures for Circuit-Switched (CS) Call Control (CC) in 3GPP
Elementary procedures for Circuit-Switched (CS) Call Control (CC) in 3GPP
 
GSM - The Network Layer
GSM - The Network LayerGSM - The Network Layer
GSM - The Network Layer
 
Sample patent invalidity report analyst oserve
Sample patent invalidity report analyst oserveSample patent invalidity report analyst oserve
Sample patent invalidity report analyst oserve
 
Chap02 gprs pro_03t_kh
Chap02 gprs pro_03t_khChap02 gprs pro_03t_kh
Chap02 gprs pro_03t_kh
 
Copy Of Copy Of Gprs
Copy Of Copy Of GprsCopy Of Copy Of Gprs
Copy Of Copy Of Gprs
 
Cellular network planning_and_optimization_part11
Cellular network planning_and_optimization_part11Cellular network planning_and_optimization_part11
Cellular network planning_and_optimization_part11
 
Chap01 gprs intro_03_kh
Chap01 gprs intro_03_khChap01 gprs intro_03_kh
Chap01 gprs intro_03_kh
 
3 g 4g adv_chal 041406 ver1
3 g 4g adv_chal 041406 ver13 g 4g adv_chal 041406 ver1
3 g 4g adv_chal 041406 ver1
 
Gsm protl
Gsm protlGsm protl
Gsm protl
 
Chap03 gmm prot_03_kh
Chap03 gmm prot_03_khChap03 gmm prot_03_kh
Chap03 gmm prot_03_kh
 
REALIZATION OF TRANSMITTER AND RECEIVER ARCHITECTURE FOR DOWNLINK CHANNELS IN...
REALIZATION OF TRANSMITTER AND RECEIVER ARCHITECTURE FOR DOWNLINK CHANNELS IN...REALIZATION OF TRANSMITTER AND RECEIVER ARCHITECTURE FOR DOWNLINK CHANNELS IN...
REALIZATION OF TRANSMITTER AND RECEIVER ARCHITECTURE FOR DOWNLINK CHANNELS IN...
 
Performance-Evaluation-of-RPL-Routes-and-DODAG-Construction-for-IoTs .pdf
Performance-Evaluation-of-RPL-Routes-and-DODAG-Construction-for-IoTs .pdfPerformance-Evaluation-of-RPL-Routes-and-DODAG-Construction-for-IoTs .pdf
Performance-Evaluation-of-RPL-Routes-and-DODAG-Construction-for-IoTs .pdf
 
Architecture of the lte air interface
Architecture of the lte air interfaceArchitecture of the lte air interface
Architecture of the lte air interface
 
Implementation_and_Analysis_of_the_6LoWPAN.pdf
Implementation_and_Analysis_of_the_6LoWPAN.pdfImplementation_and_Analysis_of_the_6LoWPAN.pdf
Implementation_and_Analysis_of_the_6LoWPAN.pdf
 
Chap07 sndcp 03t_kh
Chap07 sndcp 03t_khChap07 sndcp 03t_kh
Chap07 sndcp 03t_kh
 
Evolution of hsdpa
Evolution of hsdpaEvolution of hsdpa
Evolution of hsdpa
 
Project-Report
Project-ReportProject-Report
Project-Report
 
Chap08 gb 03_kh
Chap08 gb 03_khChap08 gb 03_kh
Chap08 gb 03_kh
 

Similar to Method and apparatus for classifying remote procedure call transport traffic

Cisco discovery drs ent module 7 - v.4 in english.
Cisco discovery   drs ent module 7 - v.4 in english.Cisco discovery   drs ent module 7 - v.4 in english.
Cisco discovery drs ent module 7 - v.4 in english.
igede tirtanata
 
Remote access service
Remote access serviceRemote access service
Remote access service
Apoorw Pandey
 
Chapter 11 Selecting Technologies and Devices for Enterprise Netwo.docx
Chapter 11 Selecting Technologies and Devices for Enterprise Netwo.docxChapter 11 Selecting Technologies and Devices for Enterprise Netwo.docx
Chapter 11 Selecting Technologies and Devices for Enterprise Netwo.docx
bartholomeocoombs
 
Ccna 4 final exam answer v5
Ccna 4 final exam answer v5Ccna 4 final exam answer v5
Ccna 4 final exam answer v5
friv4schoolgames
 
Chapter4 network layer
Chapter4 network layerChapter4 network layer
Chapter4 network layer
Khánh Ghẻ
 

Similar to Method and apparatus for classifying remote procedure call transport traffic (20)

Communication in Distributed System.ppt
Communication in Distributed System.pptCommunication in Distributed System.ppt
Communication in Distributed System.ppt
 
SDN and NFV Value in Business Services
SDN and NFV Value in Business ServicesSDN and NFV Value in Business Services
SDN and NFV Value in Business Services
 
WBN.pptx
WBN.pptxWBN.pptx
WBN.pptx
 
Cisco discovery drs ent module 7 - v.4 in english.
Cisco discovery   drs ent module 7 - v.4 in english.Cisco discovery   drs ent module 7 - v.4 in english.
Cisco discovery drs ent module 7 - v.4 in english.
 
Integrated services and RSVP - Protocol
Integrated services and RSVP - ProtocolIntegrated services and RSVP - Protocol
Integrated services and RSVP - Protocol
 
Remote access service
Remote access serviceRemote access service
Remote access service
 
Fundamental of Quality of Service(QoS)
Fundamental of Quality of Service(QoS) Fundamental of Quality of Service(QoS)
Fundamental of Quality of Service(QoS)
 
Chapter4 Network
Chapter4 NetworkChapter4 Network
Chapter4 Network
 
Lab 10 manual
Lab 10 manualLab 10 manual
Lab 10 manual
 
Lab 10 manual(1)
Lab 10 manual(1)Lab 10 manual(1)
Lab 10 manual(1)
 
Chapter04
Chapter04Chapter04
Chapter04
 
Chapter 11 Selecting Technologies and Devices for Enterprise Netwo.docx
Chapter 11 Selecting Technologies and Devices for Enterprise Netwo.docxChapter 11 Selecting Technologies and Devices for Enterprise Netwo.docx
Chapter 11 Selecting Technologies and Devices for Enterprise Netwo.docx
 
Transport layer
Transport layer Transport layer
Transport layer
 
SDN and NFV Value in Business Services - A Presentation By Cox Communications
SDN and NFV Value in Business Services - A Presentation By Cox CommunicationsSDN and NFV Value in Business Services - A Presentation By Cox Communications
SDN and NFV Value in Business Services - A Presentation By Cox Communications
 
Wan networks
Wan networksWan networks
Wan networks
 
Ccna 4 final exam answer v5
Ccna 4 final exam answer v5Ccna 4 final exam answer v5
Ccna 4 final exam answer v5
 
Lecture9
Lecture9Lecture9
Lecture9
 
Network Layer,Computer Networks
Network Layer,Computer NetworksNetwork Layer,Computer Networks
Network Layer,Computer Networks
 
Chapter4 network layer
Chapter4 network layerChapter4 network layer
Chapter4 network layer
 
Distributed Routing Protocol for Different Packet Size Data Transfer over Wir...
Distributed Routing Protocol for Different Packet Size Data Transfer over Wir...Distributed Routing Protocol for Different Packet Size Data Transfer over Wir...
Distributed Routing Protocol for Different Packet Size Data Transfer over Wir...
 

More from Tal Lavian Ph.D.

More from Tal Lavian Ph.D. (20)

Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizer
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizer
 
Photonic line sharing for high-speed routers
Photonic line sharing for high-speed routersPhotonic line sharing for high-speed routers
Photonic line sharing for high-speed routers
 
Systems and methods to support sharing and exchanging in a network
Systems and methods to support sharing and exchanging in a networkSystems and methods to support sharing and exchanging in a network
Systems and methods to support sharing and exchanging in a network
 
Systems and methods for visual presentation and selection of IVR menu
Systems and methods for visual presentation and selection of IVR menuSystems and methods for visual presentation and selection of IVR menu
Systems and methods for visual presentation and selection of IVR menu
 
Grid proxy architecture for network resources
Grid proxy architecture for network resourcesGrid proxy architecture for network resources
Grid proxy architecture for network resources
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizer
 
Systems and methods for electronic communications
Systems and methods for electronic communicationsSystems and methods for electronic communications
Systems and methods for electronic communications
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizer
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizer
 
Radar target detection system for autonomous vehicles with ultra-low phase no...
Radar target detection system for autonomous vehicles with ultra-low phase no...Radar target detection system for autonomous vehicles with ultra-low phase no...
Radar target detection system for autonomous vehicles with ultra-low phase no...
 
Grid proxy architecture for network resources
Grid proxy architecture for network resourcesGrid proxy architecture for network resources
Grid proxy architecture for network resources
 
Method and apparatus for scheduling resources on a switched underlay network
Method and apparatus for scheduling resources on a switched underlay networkMethod and apparatus for scheduling resources on a switched underlay network
Method and apparatus for scheduling resources on a switched underlay network
 
Dynamic assignment of traffic classes to a priority queue in a packet forward...
Dynamic assignment of traffic classes to a priority queue in a packet forward...Dynamic assignment of traffic classes to a priority queue in a packet forward...
Dynamic assignment of traffic classes to a priority queue in a packet forward...
 
Method and apparatus for using a command design pattern to access and configu...
Method and apparatus for using a command design pattern to access and configu...Method and apparatus for using a command design pattern to access and configu...
Method and apparatus for using a command design pattern to access and configu...
 
Reliable rating system and method thereof
Reliable rating system and method thereofReliable rating system and method thereof
Reliable rating system and method thereof
 
Time variant rating system and method thereof
Time variant rating system and method thereofTime variant rating system and method thereof
Time variant rating system and method thereof
 
Systems and methods for visual presentation and selection of ivr menu
Systems and methods for visual presentation and selection of ivr menuSystems and methods for visual presentation and selection of ivr menu
Systems and methods for visual presentation and selection of ivr menu
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizer
 
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizerUltra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizer
 

Recently uploaded

Call Girls Banashankari Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
Call Girls Banashankari Just Call 👗 7737669865 👗 Top Class Call Girl Service ...Call Girls Banashankari Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
Call Girls Banashankari Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
amitlee9823
 
Kothanur Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...
Kothanur Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...Kothanur Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...
Kothanur Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...
amitlee9823
 
CHEAP Call Girls in Vinay Nagar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Vinay Nagar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Vinay Nagar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Vinay Nagar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
CHEAP Call Girls in Mayapuri (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Mayapuri  (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Mayapuri  (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Mayapuri (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Vip Mumbai Call Girls Andheri East Call On 9920725232 With Body to body massa...
Vip Mumbai Call Girls Andheri East Call On 9920725232 With Body to body massa...Vip Mumbai Call Girls Andheri East Call On 9920725232 With Body to body massa...
Vip Mumbai Call Girls Andheri East Call On 9920725232 With Body to body massa...
amitlee9823
 
Call Girls In RT Nagar ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In RT Nagar ☎ 7737669865 🥵 Book Your One night StandCall Girls In RT Nagar ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In RT Nagar ☎ 7737669865 🥵 Book Your One night Stand
amitlee9823
 
Abort pregnancy in research centre+966_505195917 abortion pills in Kuwait cyt...
Abort pregnancy in research centre+966_505195917 abortion pills in Kuwait cyt...Abort pregnancy in research centre+966_505195917 abortion pills in Kuwait cyt...
Abort pregnancy in research centre+966_505195917 abortion pills in Kuwait cyt...
drmarathore
 
CHEAP Call Girls in Hauz Quazi (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Hauz Quazi  (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Hauz Quazi  (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Hauz Quazi (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Escorts Service Arekere ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Arekere ☎ 7737669865☎ Book Your One night Stand (Bangalore)Escorts Service Arekere ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Arekere ☎ 7737669865☎ Book Your One night Stand (Bangalore)
amitlee9823
 

Recently uploaded (20)

Call Girls Banashankari Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
Call Girls Banashankari Just Call 👗 7737669865 👗 Top Class Call Girl Service ...Call Girls Banashankari Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
Call Girls Banashankari Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
 
Kothanur Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...
Kothanur Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...Kothanur Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...
Kothanur Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...
 
(ISHITA) Call Girls Service Aurangabad Call Now 8617697112 Aurangabad Escorts...
(ISHITA) Call Girls Service Aurangabad Call Now 8617697112 Aurangabad Escorts...(ISHITA) Call Girls Service Aurangabad Call Now 8617697112 Aurangabad Escorts...
(ISHITA) Call Girls Service Aurangabad Call Now 8617697112 Aurangabad Escorts...
 
(INDIRA) Call Girl Napur Call Now 8617697112 Napur Escorts 24x7
(INDIRA) Call Girl Napur Call Now 8617697112 Napur Escorts 24x7(INDIRA) Call Girl Napur Call Now 8617697112 Napur Escorts 24x7
(INDIRA) Call Girl Napur Call Now 8617697112 Napur Escorts 24x7
 
HLH PPT.ppt very important topic to discuss
HLH PPT.ppt very important topic to discussHLH PPT.ppt very important topic to discuss
HLH PPT.ppt very important topic to discuss
 
NO1 Verified Amil Baba In Karachi Kala Jadu In Karachi Amil baba In Karachi A...
NO1 Verified Amil Baba In Karachi Kala Jadu In Karachi Amil baba In Karachi A...NO1 Verified Amil Baba In Karachi Kala Jadu In Karachi Amil baba In Karachi A...
NO1 Verified Amil Baba In Karachi Kala Jadu In Karachi Amil baba In Karachi A...
 
CHEAP Call Girls in Vinay Nagar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Vinay Nagar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Vinay Nagar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Vinay Nagar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Shikrapur Call Girls Most Awaited Fun 6297143586 High Profiles young Beautie...
Shikrapur Call Girls Most Awaited Fun  6297143586 High Profiles young Beautie...Shikrapur Call Girls Most Awaited Fun  6297143586 High Profiles young Beautie...
Shikrapur Call Girls Most Awaited Fun 6297143586 High Profiles young Beautie...
 
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Th...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Th...Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Th...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Th...
 
Get Premium Pimple Saudagar Call Girls (8005736733) 24x7 Rate 15999 with A/c ...
Get Premium Pimple Saudagar Call Girls (8005736733) 24x7 Rate 15999 with A/c ...Get Premium Pimple Saudagar Call Girls (8005736733) 24x7 Rate 15999 with A/c ...
Get Premium Pimple Saudagar Call Girls (8005736733) 24x7 Rate 15999 with A/c ...
 
CHEAP Call Girls in Mayapuri (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Mayapuri  (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Mayapuri  (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Mayapuri (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
9004554577, Get Adorable Call Girls service. Book call girls & escort service...
9004554577, Get Adorable Call Girls service. Book call girls & escort service...9004554577, Get Adorable Call Girls service. Book call girls & escort service...
9004554577, Get Adorable Call Girls service. Book call girls & escort service...
 
Call Girls Pimple Saudagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Pimple Saudagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Pimple Saudagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Pimple Saudagar Call Me 7737669865 Budget Friendly No Advance Booking
 
Vip Mumbai Call Girls Andheri East Call On 9920725232 With Body to body massa...
Vip Mumbai Call Girls Andheri East Call On 9920725232 With Body to body massa...Vip Mumbai Call Girls Andheri East Call On 9920725232 With Body to body massa...
Vip Mumbai Call Girls Andheri East Call On 9920725232 With Body to body massa...
 
Call Girls In RT Nagar ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In RT Nagar ☎ 7737669865 🥵 Book Your One night StandCall Girls In RT Nagar ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In RT Nagar ☎ 7737669865 🥵 Book Your One night Stand
 
(=Towel) Dubai Call Girls O525547819 Call Girls In Dubai (Fav0r)
(=Towel) Dubai Call Girls O525547819 Call Girls In Dubai (Fav0r)(=Towel) Dubai Call Girls O525547819 Call Girls In Dubai (Fav0r)
(=Towel) Dubai Call Girls O525547819 Call Girls In Dubai (Fav0r)
 
Abort pregnancy in research centre+966_505195917 abortion pills in Kuwait cyt...
Abort pregnancy in research centre+966_505195917 abortion pills in Kuwait cyt...Abort pregnancy in research centre+966_505195917 abortion pills in Kuwait cyt...
Abort pregnancy in research centre+966_505195917 abortion pills in Kuwait cyt...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
CHEAP Call Girls in Hauz Quazi (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Hauz Quazi  (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Hauz Quazi  (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Hauz Quazi (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Escorts Service Arekere ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Arekere ☎ 7737669865☎ Book Your One night Stand (Bangalore)Escorts Service Arekere ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Arekere ☎ 7737669865☎ Book Your One night Stand (Bangalore)
 

Method and apparatus for classifying remote procedure call transport traffic

  • 1. US007047536B1 (12) United States Patent (10) Patent N0.2 US 7,047,536 B1 Duncan et al. (45) Date of Patent: May 16, 2006 (54) METHOD AND APPARATUS FOR OTHER PUBLICATIONS CLASSIFYING REMOTE PROCEDURE CALL . . . . TRANSPORT TRAFFIC Afek et al. “Remote object oriented programmmg w1th quality of service or Java’s RMI over ATM” 1996, pp. 1-6.* (75) Inventors Robert J Duncan San Francisco CA Dave et al. “Proxies, application interfaces, and distributed Us . T l L L - S 1 CA systems” 1992 IEEE, pp. 212-220.* gUsg’ a avlan’ unnyva e’ Stoller“Computer communications software” India Univer sity 1998, pp. 1-24.* (73) Assignee: Nortel Networks LTD, (CA) >i< Cited by examiner * Notice: Sub'Je ct to an y disclaimer, the term of this Primary ExamineriWilliam Thomson patent is extended or adjusted under 35 Assistant ExamineriVan H. Nguyen U.S.C. 154(b) by 509 days. (74) Attorney, Agent, or FirmiMcGuinness & Manaras LLP (21) Appl. No.: 09/752,112 (57) ABSTRACT (22) Filed: Dec. 29, 2000 (51) Int. C]. A data communication network for Di?Serv communica G06F 9/44 (2006.01) tions has a software library added to clients connected to a (52) US. Cl. ..................... .. 719/330; 719/328; 709/217 data Communication network having a Di?Serv-enabled (58) Field of Classi?cation Search .............. .. 709/328, edge router When an application running On a Client System 709/330’ 226, 2272229’ 2172219’ 234, 235; wishes to make a remote procedure call to a remote server 370/231’ 235; 719/3302331, 310, 328 system on another network, it makes its usual call for RPC See application ?le for Complete Search history invocation using the software library. This RPC call is intercepted by a protocol layer interposed between the (56) References Cited application layer and the underlying RPC transport code. The protocol layer detects when an RPC call is being made US‘ PATENT DOCUMENTS and can determine the identity of the calling procedure as 5,596,579 A * 1/1997 Yasrebi .................... .. 709/328 We11- The library makesaside Channel communication to the 5,682,534 A * 10/1997 Kapoor et a1. .. 709/328 edge router to provide this information to the edge router or 6,223,217 B1 * 4/2001 Pettus . . . . . . . . . . . . - - - -- 709/219 alternative service decider, which then makes use of this data 6,408,342 131* 6/2002 Moore et a1~ 719/330 when performing Di?Serv classi?cation for packets trans 6,412,000 B1 * 6/2002 Riddle et a1. 709/224 mined during the Course of the can' 6,483,805 B1* 11/2002 Davies et a1. 370/235 6,487,170 B1* 11/2002 Chen et a1. .. 370/231 6,640,248 B1* 10/2003 Jorgensen ................. .. 709/226 16 Claims, 4 Drawing Sheets detected’? 504 Edge Router 1 06 Exlrac’i ?ow information 508 i, Transmit flow information 508 _._| i——i—‘i, Update dynamic RPC list 510 RPC packets System 102 Mark packets 514 ‘—l Forward packets 516
  • 2. U.S. Patent May 16, 2006 Sheet 1 0f4 US 7,047,536 B1 Egg: vow v6zo5im0z wow ======= 6w5m0nmm mo? M13.2" 2E62.066 N2 {6oEEm:z o:
  • 3. U.S. Patent May 16, 2006 Sheet 2 6f 4 US 7,047,536 B1 ---- - 6 Client Application 202 . CPU ' 222 Application Library 204 w 228 RPC QoS Shim ‘ Layer 206 i User interface 5 224 RPC Transport Layer 208 Socket/TCP Layer 210 I Network Interface - i 226 Device Code/OS 212 FIGURE 2
  • 4. U.S. Patent May 16, 2006 Sheet 3 6f 4 US 7,047,536 B1 A Flow Detector 304 RPC QoS ——> Detector Signaler ——> 302 308 Socket Detector 306 ?G_U_R_E_3_ SRPnCI RPC 0s '9 a Handler Classifier —% Interface 408 402 k 1 6 ,, Store 410 FIGURE 4
  • 5. U.S. Patent May 16, 2006 Sheet 4 6f 4 US 7,047,536 B1 i Screen RPC traf?c 502 Edge Router 106 Extract flow information 506 Transmit flow information 508 a ___i | ? Update dynamic RPC list 510 V RPC 5 packets - E 7 Cllent i . detected . ' 512 System 102 Mark packets = 514 +—_| 5 i Fonivard I packets 516 4_|
  • 6. US 7,047,536 B1 1 METHOD AND APPARATUS FOR CLASSIFYING REMOTE PROCEDURE CALL TRANSPORT TRAFFIC FIELD OF THE INVENTION This invention generally relates to exchanging informa tion over a data communications network. More particularly, the invention relates to the preferential exchange of infor mation 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 conform ing to a protocol that a program can use to request a service from a program on another computer on the network. The client program making the request includes an API which 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 (Di?Serv) networks have become more popular in recent years. Di?Serv is a network service mechanism that classi?es network tra?ic into a number of different classes and controls the network tra?ic so that certain classes get precedence or service quality. The pref erence relationships are de?ned 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 traf?c between two networks, such as important business applications, should be prioritized over other classes of traf?c, such as web sur?ng, between the networks. As another example, an SLA can specify that a certain class of traf?c from a ?rst network to a second network should be prioritized over a certain class of traf?c from the ?rst network to a third network. Di?Serv-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 Di?Serv 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 ?ows of a Di?Serv network by comparing packets in such ?ows with relevant SLA information stored in the router. The edge router receives packets bound for a Di?Serv network and a quality of service (QoS) classi?er within the edge router and applies DSCP labels according to the SLA speci?cation. If a packet belongs to a ?ow with a high priority, it receives a DSCP corresponding to that high priority; if the packet belongs to a ?ow with a low priority, it receives 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 Di?Serv network becomes congested, the packets labeled with high priority DSCPs are more likely to successfully reach their destinations; packets labeled with low priority DSCPs might only receive best effort service. This helps to guarantee a better quality of service for higher priority ?ows. RPC calls may be hard to detect by QoS classi?ers in edge routers; thus, an RPC which should be given a high priority DSCP might not be properly classi?ed, resulting in a failure in QoS requirements. This is because QoS classi?ers usually 20 25 30 35 40 45 50 55 60 65 2 screen packets in accordance with a ?ve-tuple that includes a socket port number. RPC ?ows do not always use well known port numbers. This creates a problem because pri ority levels which should be accorded to RPCs may then be usurped by other applications that can more easily be screened for Di?Serv classi?cation and transmission. SUMMARY OF THE INVENTION A data communication network for Di?Serv communica tions in which a software library is added to clients con nected to a data communication network having a Di?Serv 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 Di?Serv classi? cation for packets transmitted during the course of the call. BRIEF DESCRIPTION OF THE DRAWINGS These and other aspects and features of the present invention will become apparent to those ordinarily skilled in the art upon review of the following description of speci?c embodiments of the invention in conjunction with the accompanying ?gures, wherein: FIG. 1 shows structure of a network according to an embodiment of the present invention; FIG. 2 shows structure of a client system according to an embodiment of the present invention; FIG. 3 shows structure in an RPC QoS shim layer according to an embodiment of the present invention; FIG. 4 shows structure in an edge router according to an embodiment of the present invention; and FIG. 5 shows operation of an embodiment of the present invention. DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION The present invention will now be described in detail with reference to the drawings, which are provided as illustrative examples of the invention so as to enable those skilled in the art to practice the invention. Notably, the implementation of certain elements of the present invention may be accom plished using software, hardware or any combination thereof, as would be apparent to those of ordinary skill in the art, and the ?gures and examples below are not meant to limit the scope of the present invention. Moreover, where certain elements of the present invention can be partially or fully implemented using known components, only those portions of such known components that are necessary for an understanding of the present invention will be described, and detailed descriptions of other portions of such known components will be omitted so as not to obscure the inven tion. Further, the present invention encompasses present and future known equivalents to the known components referred to herein by way of illustration. FIG. 1 illustrates the architecture of one embodiment of the present invention. As shown in FIG. 1, the architecture
  • 7. US 7,047,536 B1 3 includes a client system 102 that has been adapted to communicate With a remote server 104 via an edge router 106 and inside and outside netWorks 110 and 108. Such communications betWeen the client system 102 and the remote server 104 can include, for example, RPCs as described above. The client system 102 can be, for example, a Workstation such as a PC, Macintosh, Unix, Linux or Sparc Workstation. The server 104 can be, for example, a PC, Macintosh, Unix, Linux or Sparc Workstation, mainframe, minicomputer like the IBM AS-400, or any other appropriate server hardWare. The softWare on the server can be any appropriate server application, or any application running on an application server like lBM’s San Francisco, Sun’s Net Dynamics, Bluestone, BEA or any appropriate application server. Data base servers that can run on these hardWare servers can be Oracle, lBM’s DB2, an object repository (server) or other appropriate system. The inside netWork 110 can be, for example, a LAN or other netWork connecting the client system 102 and router 106. The edge router 106 can be, for example, a Nortel Networks Passport 8600 router, Cisco System Catalyst 6500 or other router Which includes Diff Serv or other netWork control functionality like RSVP, COPS, COPS-PR, MPLS, lntServ or similar functionality. The outside netWork 108 can be a LAN, MAN, WAN or the Internet, for example. It further preferably includes one or more Di?Serv-enabled devices. Speci?cally, at least part of the path betWeen the client 102 and the remote server 104 is managed using differentiated services. Preferably, the router 106 is at the edge of the inside netWork 110, but this is not necessary. What is desirable is that this is the ?rst or closest Di?‘Serv-classifying router in the Di?Serv-controlled portion of the path betWeen the client 102 and the server 104. Typically, this Will be at the edge of the inside netWork 110. The invention may be practiced in a router Within the outside netWork 108; hoW ever, its bene?t (as Well as the bene?t of any Di?Serv capable QoS service) Will be less there because part of the transit path of RPC tra?ic Will be non-Di?Serv prioritized. The present invention is preferably practiced instead of the aforementioned conventional DiffServ capabilities knoWn in the art. Alternatively, the edge router 106 prefer ably has existing Di?Serv-classifying capability in accor dance With SLAs or it has been upgraded With dynamic Di?Serv-classifying capability, and the present invention is practiced in addition to these conventional Di?Serv classi fying capabilities in accordance With SLAs. Generally, When operating in accordance With the inven tion, a client application in the client system 102 initiates an RPC connection With the remote server 104. The present invention, preferably implemented as softWare Within the client system 102, detects the attempt to initiate an RPC connection using a special softWare library described beloW and collects RPC ?oW information relating to the connection (e.g., a ?ve-tuple including the sender and receiver MAC and IP addresses, the sender and receiver MAC and IP port numbers, and the TCP protocol type for the connection) for transmission via a side channel to the edge router 106 (it should be noted that the invention does not require all of the above information for implementation, and may be practiced With a subset thereof, or other equivalent parameters). Other arrangements using different information sets may be usable; hoWever, this arrangement alloWs the system to distinguish speci?c traf?c. This is part of the interaction betWeen the application and the routers 106. The routers 106 thus have a speci?c Way to identify speci?c traf?c and give the right service to it. 20 25 30 35 40 45 50 55 60 65 4 A Di?Serv classi?er 408 (see FIG. 4) in the edge router 106 becomes aWare of the received ?oW information and assigns the RPC How a QoS level in accordance With the SLAs. Thereafter, When communications betWeen the client system 102 and the remote server 104 associated With the RPC How are received by the edge router 106, they are marked With the appropriate Di?Serv labels for the desired QoS by the edge router 106, e.g., by various ?lters in the edge router 106, and are forWarded through the outside netWork 108. For example, the old ToS byte nay be used as a DSField byte marking the packet. Although only one client system 102 and edge router 106 are shoWn, it should be noted that the remote server 104 preferably includes functionality for communicating With many client systems 102 via the same or many different edge routers 106. These may be a mix of devices practicing the invention, Di?Serv-capable devices not practicing the invention, and non-DiffServ capable devices. LikeWise, the client system 102 can include functionality for communi cating With many different edge routers 106 and servers 104. Such additional functionality is apparent to those skilled in the art and more detailed descriptions thereof are not nec essary for an understanding of the present invention. It should be further noted that the remote server 104 and its associated edge router or similar device (not shoWn) may include similar functionality as described herein With refer ence to the client system 102 and the edge router 106 for dynamically assigning QoS to RPC return ?oWs from the server 104 to the client system 102. Alternatively, the client system 102 may include functionality for also informing the remote server’s associated edge router of the RPC ?oW information for dynamic QoS assignment. It should be even further noted that, although the present invention is described herein With reference to an exemplary implementation in a Di?Serv-capable netWork, the present invention is not limited to this example. Rather, the present invention is applicable to other existing or emerging stan dards for providing differentiated services or QoS for dif ferent types of ?oWs or classes of netWork traf?c, such as lntServ/ RSVP, COPS, COPS-PR, MPLS, IEEE 801 .2(p) and IEEE 801.2(q). Moreover, Where an outside netWork 108 supports more than one type of differentiated services, the client system 102 may include functionality for dynamically adjusting the level of service for RPC ?oWs in accordance With these multiple types. FIG. 2 illustrates an example client system 102 in accor dance With one embodiment of the present invention. As shoWn in this example implementation, the client system 102 includes softWare modules 202 to 212 that can be provided as one or more executable ?les loaded in a dynamic memory 220 and executed by a central processing unit 222 in the client system 102. The client system 102 further includes a user interface 224 that alloWs an associated user such as a netWork manager to initiate an RPC connection and a netWork interface 226 through Which the client system 102 can communicate via the inside netWork 110 With the edge router 106 and the outside netWork 108, as Well as a bus 228 that alloWs communications betWeen the memory 220, the CPU 222, the user interface 224 and the netWork interface 226. As shoWn in FIG. 2, the softWare loaded in the memory 220 during operation of the client system 102 includes a client application 202 that establishes connections With remote objects on the remote server 104 for the purposes of making RPCs, for example. As indicated in the Figure, the
  • 8. US 7,047,536 B1 5 client application 202 may communicate with an application library 204 either directly or through one or more additional software layers (not shown). The application library 204 is typically one or more APIs that are designed to communicate with an RPC transport layer 208 so the client application need not be aware of the implementation details of the RPC transport layer. The library 204 can include, for example, SAP methods, Oracle database methods and the like, that implement or initiate RPCs on the remote server 104. As is known in the art, the library 204 may be provided by the same entity that main tains the remote server 104 to enable the client system 102 to establish and maintain connections with that server. The RPC transport layer 208 further communicates with a socket/TCP layer 210 which may even further communi cate with other networking protocol layers and device-level layers such as a device operating system and device-level APIs. These layers are device-speci?c and are generally speci?cally written for the device and operating system 212 (e.g., Solaris, Windows) of the client system 102. Further detailed descriptions thereof are not necessary for an under standing of the present invention. In accordance with the invention, as shown in FIG. 2, the software load further includes an RPC QoS shim layer 206. Generally speaking, the shim layer 206 detects when calls to the RPC transport layer 208 have been made (the shim layer 206 preferably presents a duplicate or equivalent API to calling layers as described below), determines who made the call and the socket used by the RPC by examining headers of packets used in the call, and signals the classi?er in the edge router of the ?ve-tuple of the RPC ?ow. It then may pass the traf?c on to the RPC transport layer 208 for conventional processing. It should be noted that the client system 102 can include additional software to that shown in FIG. 2, and that certain of the software layers can include functionality for commu nicating with other software layers not shown in FIG. 2, as well as additional functionality and other software not necessary for practicing the present invention. It should be further noted that the RPC QoS shim layer 206 can be integrated together with, or (for exclusive Di?Serv operation) entirely replace, the RPC transport layer 208. Many other combinations or divisions between the functionalities of the RPC QoS shim layer 206 and other software layers are possible, as will become apparent to those skilled in the art after being taught by the present speci?cation. FIG. 3 is a functional block diagram illustrating an example of functionality within the RPC QoS shim layer 206 in accordance with one embodiment of the present invention. As shown, it includes an RPC detector 302, a ?ow detector 304, a socket detector 306, and a QoS signaler 308. Although shown separately for clarity, it should be appre ciated that the functionalities of each element can be com bined together and divided apart in various ways. The RPC detector 302 detects RPC calls by client appli cations 202. In one example of the invention, the RPC QoS shim layer 206 can do this by providing shell modules having the same name as the APIs of the RPC transport layer 208. Accordingly, rather than making an API call in the RPC transport layer 208, the application library 204 calls the module having the same name in the RPC QoS layer 206, which then calls the appropriate API in the RPC transport layer 208, in addition to performing detection processing. It should be noted that as seen above, the presence and operation of this embodiment may be transparent to the application library 204iit simply makes the API calls and 20 25 30 35 40 45 50 55 60 65 6 does not know (or care) that they are received by the RPC shim 206 rather than the RPC transport layer 208. The ?ow detector 304 determines the ?ow information (e.g., the MAC and IP addresses of the client system 102 and the remote server 104) associated with the RPC connection. It does this using a modi?cation of the RPC API implemen tation and parameters in the RPC call. The socket detector 306 determines the socket informa tion (e.g., TCP socket number) for the RPC ?ow. It does this by making the appropriate library call to open a TCP socket, thus trapping the socket number returned. The QoS signaler 308 receives the detected ?ow infor mation from the ?ow detector 304 and socket information from the socket detector 306 and sets up a side channel through which to forward the information to the edge router 106. A side channel, as used herein, includes, e.g., an additional socket communication using a protocol such as TCP/HTTP such as in the following CGI example. For example, the QoS signaler 308 may post a CGI script over the HTTP protocol having the ?ow information as param eters to the edge router 106, and the CGI script will cause the corresponding dynamic QoS assignment functionality to be executed on the edge router 106. This can be done by a user-de?ned QoS con?guration that provides routing infor mation including edge routers, as will be apparent to those skilled in the art. FIG. 4 illustrates an example of the RPC QoS function ality in the edge router 106 in accordance with one embodi ment of the present invention. As shown, it includes an RPC signal interface 402, an RPC handler 404, a dynamic RPC list 406, a Di?‘Serv classi?er 408 and a service level agree ment (SLA) store 410. Although shown separately for clar ity, it should be appreciated that the functionalities of certain elements can be combined together and divided apart in various ways. The RPC signal interface 402 communicates with the QoS signaler 308 in the client system 102. For example, the RPC signal interface 402 can be the portion of a CGI script (written in PERL, C/C++, etc.) that executes when the QoS signaler 308 posts information corresponding to the script to the edge router 106. The RPC signal interface 402 may extract the ?ow information from the CGI script parameters. It should be apparent that the edge router 106 may include additional functionality for communicating with the QoS signaler 308 using known protocols such as HTTP, for example, and for launching CGI applications in response to information posted to the edge router 106. The RPC handler 404 receives the RPC ?ow information from the RPC signal interface 402 and adds it to a dynamic RPC list 406. The dynamic RPC list 406 contains entries listing RPC ?ows that have been requested through the edge router 106. In one example of the invention, the RPC handler 404 includes functionality for aging out entries in the list 406 using a least-recently-used (LRU) algorithm or the like. Alternatively, the RPC handler 404 simply overwrites the oldest entry when the list becomes full and new ?ow information is received. The SLA store 410 contains QoS settings among and between networks in accordance with service level agree ments (SLAs). These are the static and pre-de?ned ?ows for conventional Di?‘Serv treatment. In one example of the invention, the dynamic RPC list 406 and the SLA store 410 are provided as separate memories, and are shown as such for clarity. However, this is not necessary. They can be provided together in one memory area, with a static portion (locations not addressed during operation by the RPC han dler 404, corresponding to the SLAs in SLA store 410) and
  • 9. US 7,047,536 B1 7 a dynamic portion (locations addressable during operation by the RPC handler 404 to update with RPC ?ow informa tion, corresponding to the dynamic RPC list 406). The Di?Serv classi?er 408 accesses the ?ow information in the dynamic RPC list 406 and the SLA store 410 and compares the information therein with ?ow information detected from packet headers of traf?c ?owing to the outside network 108 through the edge router 106. If the ?ow information in the traf?c headers matches the stored ?ow information (e.g., the ?ve-tuple of source and destination IP addresses, source and destination MAC addresses, and socket or port number), the packets are marked with a QoS label in accordance with the QoS agreed to for that ?ow. The classi?er 408 can be implemented by adapting a conven tional Di?Serv classi?er with the additional functionality of comparing packet headers with dynamic RPC ?ow infor mation stored in the dynamic RPC list 406. It should be apparent, however, that such adaptation can be minimal or unnecessary if the ?ow information in the dynamic RPC list 406 and the SLA store 410 are provided together in a single contiguous memory location. It should be noted that the edge router 106 preferably further includes functionality for authenticating requests for dynamic classi?cation of RPC ?ows. This functionality can include encryption and signature techniques. Such addi tional functionality that presently exists is well understood by those skilled in the art and the details thereof are not necessary for an understanding of the present invention. Moreover, the edge router 106 can also include a con ventional packet processing and forwarding architecture, a further description of which is not necessary for an under standing of the present invention. FIG. 5 is a ?owchart illustrating an example method for classifying an RPC ?ow in accordance with one embodi ment of the present invention. As shown in FIG. 5, processing begins in the client system 102 in S502 where requests for access to an RPC transport layer are made, for example, by application library software. If an RPC connection has been initiated (determined in S504), processing advances to S506, where the ?ow infor mation associated with the RPC connection is detected. In S508, the detected ?ow information is transmitted upstream to the edge router 106 for dynamic QoS classi?cation, and the client system 102 processing returns to detecting a new RPC connection in S502. Processing continues in the edge router 106 in S510, where the received RPC ?ow information is used to update a dynamic RPC ?ow list. Processing continues to S512 where all incoming packets bound for the outside network 108 are screened at the edge router 106. If a packet belongs to an RPC ?ow (determined in S512), it is marked with a Di?Serv label in accordance with the desired QoS for RPC ?ows in S514. All packets, whether marked with Di?Serv labels or not, are then forwarded along to the outside network 108 in S516 and the process of screening packets at the edge router 106 continues at S510. The methods and implementing apparatus of the present invention have been described in connection with the pre ferred embodiments as disclosed herein. Although exem plary embodiments of the present invention have been shown and described in detail herein, along with certain variants thereof, other varied embodiments which incorpo rate the teachings of the invention may easily be constructed by those skilled in the art. For example, the above-described embodiment may be implemented in a number of ways, including the use of dedicated hardware, a combination of dedicated hardware 20 25 30 35 40 45 50 55 60 65 8 and programmed special purpose processors, programmed general purpose processors or software, and the like. Accordingly, the present invention is not intended to be limited to the speci?c form set forth herein, but on the contrary, it is intended to cover such alternatives, modi?ca tions, and equivalents, as can be reasonably included within the spirit and scope of the invention. In other instances, well known structures are not shown in detail but can readily constructed by those skilled in the art. What is claimed is: 1. A method for classifying a remote procedure call from a client system in a ?rst network that initiates connections to a remote server in a second network via a classifying edge router using a client and underlying remote procedure call transport code, the method comprising: detecting when a connection for the remote procedure call is created; using a side channel to communicate ?ow information associated with the detected connection to the classi fying edge router, the ?ow information including a port number associated with the communication, the ?ow information provided to enable the classifying edge router to assign a quality of service classi?er to the remote procedure call for appropriately prioritized transfer to the second network; and incorporating the ?ow information into a differentiated services classi?cation subsystem of the classifying edge router by associating the equality of service level to the detected connection; and wherein the detecting comprises: providing an Application Programming Interface (API) to calling applications; detecting when the applications call the API; and executing a remote procedure routine based on a call by an application, the remote procedure routine includ ing forwarding the ?ow information to the classify ing edge router via the side channel; and wherein: the executing comprises accessing a remote procedure call API; and the API provided to the calling applications includes functionality duplicative of remote procedure call API functionality. 2. The method of claim 1, wherein: the executing comprises accessing a remote procedure call API; and the API provided to the calling applica tions presents an interface duplicative of the remote procedure call API to the calling applications. 3. The method of claim 1, further comprising: obtaining ?ow information from an application call to the API; and providing the ?ow information to the classifying edge router via the side channel. 4. The method of claim 3, wherein the ?ow information includes a ?ve-tuple including sender and receiver Media Access Control (MAC) and Internet Protocol (IP) addresses, sender and receiver MAC and IP port numbers, and Trans mission Control Protocol (TCP) protocol type for the con nection. 5. The method of claim 1, wherein the side channel is implemented as Common Gateway Interface (CGI) script from the client to the classifying edge router. 6. The method of claim 1, wherein the ?ow information includes a ?ve-tuple including sender and receiver Media Access Control (MAC) and Internet Protocol (IP) addresses,
  • 10. US 7,047,536 B1 9 sender and receiver MAC and IP port numbers, and Trans mission Control Protocol (TCP) protocol type for the con nection. 7. The method of claim 1, Wherein incorporating includes: using the How information to determine a differentiated services classi?cation for the connection; and marking tra?ic delivered to the connection by the classi fying router based on the classi?cation. 8. The method claim 1, further comprising: detecting the identify of the client making the remote procedure call, the How information further containing this detected identify. 9. An apparatus for classifying a remote procedure call from a client system in a ?rst netWork that initiates connec tions to a remote server in a second netWork via a classifying edge router using a client and underlying remote procedure call transport code, the apparatus comprising: a module con?gured to detect When a connection for the remote procedure call is created; a module con?gured to use a side channel to communicate ?oW information associated With the detected connec tion to the classifying edge router, Wherein the How information includes a port number associated With the remote procedure call, the How information provided to enable the classifying edge router to assign a quality of service classi?er to the remote procedure call for appro priately prioritized transfer to the second network; and a module con?gured to incorporate the How information into a differentiated services classi?cation subsystem of the classifying edge router by associating the equality of service level to the detected connection; and Wherein the detecting module is further con?gured to: provide an Application Programming Interface (API) to calling applications; detect When the applications call the API; and execute a remote procedure routine based on a call by an application, the remote procedure routine includ ing forWarding the How information to the classify ing edge router via the side channel; and Wherein: the detecting module is further con?gured to access a remote procedure call API; and 20 25 30 35 40 10 the API provided to the calling applications includes functionality duplicative of remote procedure call APl functionality. 10. The apparatus of claim 9, Wherein the detecting module is further con?gured to access a remote procedure call API; and the API provided to the calling applications presents an interface duplicative of the remote procedure call API to the calling applications. 11. The apparatus of claim 9, Wherein the side channel module is further con?gured to: obtain ?oW information from an application call to the API; and provide the How information to the classifying edge router via the side channel. 12. The apparatus of claim 11, Wherein the How informa tion includes a ?ve-tuple including sender and receiver Media Access Control (MAC) and lntemet Protocol (IP) addresses, sender and receiver MAC and IP port numbers, and Transmission Control Protocol (TCP) protocol type for the connection. 13. The apparatus of claim 9, Wherein the side channel is implemented as a Common GateWay Interface (CGI) script from the client to the classifying edge router. 14. The apparatus of claim 9, Wherein the How informa tion includes a ?ve-tuple including sender and receiver Media Access Control (MAC) and lntemet Protocol (IP) addresses, sender and receiver MAC and IP port numbers, and Transmission Control Protocol (TCP) protocol type for the connection. 15. The apparatus of claim 9, Wherein the incorporating module is further con?gured to: use the How information to determine a differentiated services classi?cation for the connection; and mark traf?c delivered to the connection by the classifying edge router based on the classi?cation. 16. The apparatus of claim 9, Wherein the side channel module is further con?gured to detect the identity of the client making the remote procedure call, the How informa tion further containing this detected identity. * * * * *