Welcome to Exchange Team Blog Sign in | Join | Help

Syndication

This Blog

Why does Exchange use dynamic ports for the Information Store, et cetera?

Not so long ago, we had this question as a blog subject suggestion, so here it is:

Exchange implements many of its services through the remote procedure call (RPC) facilities provided by Windows.  RPC is not limited to any particular transport (e.g. TCP/IP).  Instead, a service providing RPC access registers itself on startup and for each supported transport RPC assigns a port or other appropriate resource (in RPC language, this is called an endpoint).  When the client wishes to invoke a remote procedure, a request is sent to the endpoint mapper service (which is at a fixed location, e.g. port 135 for TCP or UDP) and it tells the client where to find the service, which might change every time the service is started.
 
For communicating over TCP/IP, this design has advantages given the limited numbers of ports available (65536).  If every new application that supported remote calls needed its own port, port collisions would be inevitable.  With RPC, a much longer identifier (primarily a 16-byte GUID) is used instead to identify the service making the chance of two services colliding miniscule.   RPC does allow the endpoint (i.e. port) to be specified, but this is usually needed only when firewalls are involved.  Even in those cases, any port can be chosen without changing the clients (which will always query for the location), so there is significant flexibility over a design in which both the client and the server expect to communicate over a fixed port.
 
Trivia: RPC as implemented on Windows belongs to DCE (Distributed Computing Environment)/RPC family, which has its origins in work done at Apollo Computer back in the in 1980s on their Network Computing System (NCS).  A contemporaneous RPC protocol originated at Sun and is now called ONC (Open Network Connection)/RPC which derives from work on their Network File System (NFS).  The Open Software Foundation adopted DCE as the standard for RPC in the early 1990s in part to encourage more standardization in the industry around a particular RPC mechanism.  Nonetheless, new RPC protocols continue to be proposed and adopted, a recent one being SOAP.  The old adage that the great thing about standards is that there are so many to choose from rings true about RPC.

- Kevin Chase

Published Friday, August 26, 2005 11:40 AM by Exchange
Filed Under: , ,

Comments

 

Mohammed Athif Khaleel said:

Nice explanation:-) Thanks.
August 30, 2005 9:04 AM
 

Windows Server Clustering said:

September 13, 2005 8:55 PM
 

joe wannabe said:

We use fixed ports for Exchange RPC and if it can be used and specified, why doesn't Exchange just specify a port or ports to be used?
October 12, 2005 7:18 PM
New Comments to this post are disabled

News


This blog and its contents are provided "AS IS" with no warranties, and they confer no rights. Use of any included script samples are subject to the terms specified in the Terms of Use.
New! Would you like to suggest a topic for the Exchange team to blog about? Send suggestions to us.

Exchange Server 2010 - Get the Release Candidate



Poll:

Other Exchange Blogs from MSFT