Windows IT Pro is the leading independent community for IT professionals deploying Microsoft Windows server and client applications and technologies.
  
  
  Advanced Search 


December 1997

Microsoft's New, Improved Proxy Server


RSS
Subscribe to Windows IT Pro | See More Security Articles Here | Reprints | Or get the Monthly Online Pass—only $5.95 a month!

HTTP 1.1 Support
The most recent version of HTTP improves performance significantly over previous versions by supporting persistent connections. In the widely implemented HTTP 1.0, retrieving multiple objects on a Web page (e.g., text, graphics, audio clips) requires a separate TCP connection for each object. HTTP 1.1 improves on this activity through the use of persistent connections, in which you can retrieve multiple objects with one TCP connection. This reduced overhead can improve end-to-end performance dramatically (assuming that HTTP was a bottleneck). A proxy has two connections, one from the Web client to the proxy and another from the proxy to the Web server. Because the proxy is an active participant in mapping between the two connections, Proxy Server must support the new version of the protocol to reap the benefits.

Multiserver Configurations
Caching improves the performance the client sees, primarily by cutting down on the number of requests the client needs to generate to servers on the external network. Proxy Server 1.0 lets you run multiple proxies in an enterprise, but it has no mechanism for coordinating the caching between them. With multiple proxies, you often end up, over time, with multiple versions of the same cached objects on different proxies. Also, Proxy Server offers no way to intelligently share loading between the proxies. One proxy can be scrambling to keep up with client requests while others stand idle.

Microsoft has responded to these problems with the Cache Array Routing Protocol. CARP uses two types of intelligent routing--distributed and hierarchical--between proxy servers. Distributed routing occurs between members of a proxy server array; hierarchical routing occurs between proxy servers configured in a chain.

An array is a group of proxy servers that you administer as one logical entity. All members of the array keep an array membership list. Each proxy server updates the list regularly to account for proxies coming online or going down. Array members are peers and communicate with one another to cooperatively service requests from clients. Proxy Server uses a hash, a common algorithm in searching and sorting, to determine which member of the array services the request. (For a discussion of hash functions, see Mark Minasi, "Windows NT Logons," June 1997.)

Array members feed each combination of proxy server name and URL name into the hash algorithm to generate a score. The highest score determines which proxy server will service requests for that specific URL. Each proxy server runs the algorithm and keeps scores in a hash table. The algorithm is deterministic--the hash table entries are the same in all proxy servers, without their communicating with one another. This scheme addresses a drawback of an earlier cache routing scheme called the Internet Cache Protocol (ICP), which used a query protocol between proxies to find a specific URL. Besides minimizing protocol chatter between proxies, the hash scheme is good for load-balancing because it has positive scalability. The more members in the array list, the more evenly distributed the load.

A chain is a hierarchical grouping of proxies. A proxy server that is a member of a chain forwards client requests that it can't service to the next higher-level proxy in the chain. The downstream proxy in the chain is closest to the client; the furthest upstream proxy is closest to the Internet. Requests flow only upstream or among members of an array.

You can combine chains and arrays. In a chain, the upstream entity can be one proxy server or an array. Downstream proxies can obtain a copy of the upstream array list by polling. With the array list, downstream proxies can create a hash table for an array to determine which member of the array needs to respond to a request for a URL.

Figure 1 shows an example of proxies distributed between a branch office and a corporate site. Clients in the branch access the Internet through Proxy Server Z, over a leased line to the corporate net, then through the Proxy Array, following these steps:

  1. The client requests a URL from Proxy Z.

  2. Proxy Z does not find the URL in its cache so it uses the hash function to forward the request to Proxy A in the array CORP.

  3. Proxy A receives the URL request from Proxy Z. Proxy A checks its cache and does not find the URL.

  4. Proxy A runs the hash function and determines that Proxy C is the proper location for the URL. Proxy A then forwards the request to Proxy C.

  5. Proxy C finds the URL cached and returns a response to Proxy Z.

  6. Proxy Z returns the response to the client and caches the URL locally for future use.

I have two observations about this example. In step 4, if Proxy C does not have the URL cached, Proxy C looks for the URL on the Internet. Second, because Proxy Z caches the URL, two copies are cached. You gain a performance advantage because users in the branch now have a local copy cached, and they don't have to chew up any more leased-line bandwidth to retrieve it from the corporate net. If you implement chains properly, they can put the cache close to the users who need it.

Multiserver Administration
You can add or remove array members via the Array property screen. Screen 3 shows two members of the CORP array, MSCPDC and WEBSTER. Although this example uses NetBIOS names, you also can use fully qualified domain names and the DNS. The system will propagate changes made here to other array members to keep them in sync.

To configure chains, use the Routing tab on the Web Proxy Service Properties screen, as shown in Screen 4. In the Upstream Routing section, the last upstream Proxy Server selects Use direct connection. Downstream proxies choose Use Web Proxy or array. Select Modify to get to Advanced routing options (shown in Screen 5), where you can add the name of the next upstream proxy. Note that an upstream proxy can be running Proxy Server 1.0 or a third-party proxy gateway, because the downstream proxy is acting as a client with respect to the upstream proxy. If the upstream proxy is an array, you can automatically poll for the array configuration. From this dialog box, you can also select proxy-to-proxy authentication for the chain; this choice requires an account with Administrator privileges on the upstream machine.

You can configure a backup route from the Enable backup route section of Screen 4. The fault-tolerance process is dynamic. The system uses the backup if the primary route is down; but the system periodically polls the primary and uses it again when it comes back up.

And That's Not All...
Proxy Server 2.0 has many improvements over the previous release. In addition to the features I've discussed, Proxy Server 2.0 includes client configuration scripts, server proxying, and domain filtering. You can also extend the product via third-party applications that use the Internet Server API (ISAPI). Some third-party enhancements already available are Trend Micro InterScan Web Protect for virus scanning, Cyber Patrol Proxy for content filtering, and Market Wave Hit List and TELEMATE.Net for reporting. Depending on your situation, Proxy Server could fulfill a significant part of your needs for secure Internet access.

End of Article

   Previous  1  2  [3]  Next  


Reader Comments

You must be a registered user or online subscriber to comment on this article. Please log on before posting a comment. Are you a new visitor? Register now




Top Viewed ArticlesView all articles
Command Prompt Tricks

One reader shares his tip for setting up the command prompt to reflect a remote path. ...

WinInfo Short Takes: Week of November 23, 2009

An often irreverent look at some of the week's other news, including some post-PDC some soul searching, a Google Chrome OS announcement and a Microsoft response, Windows 7 off to a supposedly strong start, the Jonas Brothers and Xbox 360, and so much more ...

2009 Windows IT Pro Editors' Best and Community Choice Awards

Picking a favorite product from an impressive crowd of competitive offerings is never an easy task, and such was the case with our Editors' Best and Community Choice awards this year. ...


Security Whitepapers Reducing the Costs and Risks of Branch Office Data Protection

Solving Desktop Management Challenges in Healthcare

Solving Desktop Management Challenges in Education

Related Events Deep Dive into Windows Server 2008 R2 presented by John Savill

Introduction to Identity Lifecycle Manager "2"

SQL Server Security: How to Secure, Monitor & Audit Your Databases

Check out our list of Free Email Newsletters!

Security eBooks Spam Fighting and Email Security for the 21st Century

Understanding and Leveraging Code Signing Technologies

A Guide to Windows Certification and Public Keys

Related Security Resources Introducing Left-Brain.com, the online IT bookstore
Looking for books, CDs, toolkits, eBooks? Prime your mind at Left-Brain.com

Discover Windows IT Pro eLearning Series!
Clear & detailed technical information and helpful how-to's, all in our trademark no-nonsense format


Windows IT Pro Home Register FAQ for Windows WinInfo News
Europe Edition About Us Contact Us/Customer Service Media Kit Affiliates / Licensing  
SQL Server Magazine Office & SharePoint Pro DevProConnections IT Job Hound
Left-Brain.com Technology Resource Directory asp.netPRO ITTV Windows SuperSite 
 
 Windows IT Pro is a Division of Penton Media Inc.
 © 2009 Penton Media, Inc. Terms of Use | Privacy Statement