In Chapter 13, the discussion of the TCP/IP suite focused mainly on the network-layer protocols (such as IP) and transport-layer protocols (such as TCP and UDP) and how they work. The only application-layer protocols considered were the rather specialized ones called DHCP and DNS, which provide addressing and name resolution functions on TCP/IP internetworks like the Internet.
In addition, TCP/IP includes a whole series of application-layer protocols whose function is to allow users to interface with client/server applications and distributed applications on an internetwork. Examples of these protocols include Telnet, HTTP, FTP, Gopher, SMTP, NNTP, and so on. Other protocols, such as Simple Network Management Protocol (SNMP) and remote network monitoring, provide network management functions to simplify management of hosts on an internetwork. Because TCP/IP is constantly evolving, protocols are being enhanced and newer ones are emerging as older ones become obsolete.
As outlined in the next four sections, Microsoft has chosen to implement four of these application-layer protocols within the framework of IIS 5 on Windows 2000.
As you probably already know, HTTP is the application-layer protocol of TCP/IP that makes the World Wide Web (the Web) possible. This protocol handles the publishing of static and dynamic Web content on Windows 2000 Server. This publishing occurs when you create Web sites, as you'll learn later in this chapter.
The name of the underlying Windows 2000 service that supports HTTP is World Wide Web Publishing Service (WWW Publishing Service), which uses the associated executable System32\Inetsrv\Inetinfo.exe. In Event Viewer, the service goes by the short name W3SVC.
You can display and configure Windows 2000 services using the Computer Management snap-in, one of the default shortcuts in the Administrative Tools program group. When you open the Computer Management console, expand the Services And Applications node and select the desired service underneath it to display the various entries. Then double-click an item in the right pane to open its configuration dialog box and display or configure its various settings.
HTTP defines a client/server protocol that describes how communications occur between HTTP servers (called Web servers) and HTTP clients (called Web browsers). The following is a typical HTTP session between a Windows 2000 Server running IIS 5 (a Web server) and a client machine running Microsoft Internet Explorer 5 (a Web browser). An HTTP session is essentially made up of a connection, a request, and a response:
GET /samples/sampsite/sampsite.htm HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (Compatible; MSIE 5.0; Windows NT 5.0)
The various lines of this request are called headers, and these headers allow the client to communicate information to the server such as this:
HTTP/1.1 200 OK
Date: Mon, 26 Jul 1999 20:09:59 GMT
Last-Modified: Mon, 14 Oct 1996 01:38:00 GMT
<TITLE>Sample Web Site</TITLE>
<BODY BACKGROUND="/samples/images/backgrnd.gif" BGCOLOR="FFFFFF">
The first few lines here are headers, and what the server is basically saying to the client is this:
After the headers comes the beginning of the actual Web page requested by the client, showing the HTML that formats the information for the client so that it can be displayed as a Web page.
That's basically all there is to HTTP. It's a simple client/server application-layer protocol based on the underlying TCP transport-layer protocol. HTTP is by far the most important of the four Internet protocols supported by IIS, and it is the basis of the Web.
More InfoVersion 1.1 of Hypertext Transfer Protocol is defined in RFC 2068.
Troubleshooting HTTP Sessions
Unless Internet communications are specifically encrypted using the Secure Sockets Layer (SSL) protocol, HTTP sessions are transmitted in clear (unencrypted) text, which allows you to view the header information in HTTP packets using a tool such as Network Monitor. You can optionally install Network Monitor on Windows 2000 Server by using Add/Remove Programs in Control Panel and selecting Add/Remove Windows Components; select the Management And Monitoring Tools component, and click Details to access the Network Monitor option. This tool is often useful when trying to troubleshoot HTTP session problems.
Another useful tool for troubleshooting HTTP session problems is the telnet client program that is started from the command line. By starting telnet and opening a connection to the server using the HTTP port 80 instead of the usual telnet port 20, you can manually enter HTTP Get Request headers and view the results. Note that after typing headers, you enter a single blank line (CR/LF) to transmit the request to the server. Make sure you have Local Echo enabled on the telnet client and that you have set a large buffer size as well, to receive the response from the server.
FTP is an older TCP/IP application-layer protocol that enables users to transfer files over an internetwork like the Internet. The name of the underlying Windows 2000 service that supports FTP is called the FTP Publishing Service, and it has the same associated executable as the WWW Publishing Service: System32\Inetsrv \Inetinfo.exe. In Event Viewer, the service goes by the short name MSFTPSVC.
More InfoThe File Transfer Protocol is defined in RFC 959.
FTP defines a client/server protocol that describes how communications take place between FTP servers and FTP clients. Specifically, FTP enables clients to upload files to or download files from an FTP server over an internetwork. A typical FTP session is essentially made up of a connection, a request, and a response, as the following example shows:
You can use the Netstat utility from the command line to view information about TCP connections that FTP uses. Just open a command-prompt window on the client or server and type Netstat -p tcp to see the TCP connections.
SMTP is a popular TCP/IP application-layer protocol that forms the basis of the Internet's e-mail system. The console name of the underlying Windows 2000 service that supports SMTP is Simple Mail Transfer Protocol, and it has the same associated executable as the WWW Publishing Service: System32\Inetsrv \Inetinfo.exe. In Event Viewer, the service is referred to as SMTPSVC.
SMTP is both a client/server and server/server protocol, and it is used essentially for transferring e-mail from one SMTP host to another over an internetwork. A typical SMTP session begins with a connection followed by a series of commands. For example, consider the following scenario, in which the local (initiating) SMTP host wants to transfer e-mail to the remote (responding) SMTP host:
More InfoThe Simple Mail Transfer Protocol was originally defined in RFC 821, but various extensions to this protocol are further defined in RFCs 974, 1869, and 1870.
The SMTP protocol is designed mainly for moving e-mail from one SMTP host to another and has no facility to store messages in folders for users so that the messages can be retrieved and read later. SMTP clients must therefore be continually connected to an SMTP host to retrieve and read their e-mail; otherwise, the e-mail bounces. As a result, other Internet e-mail protocols have been developed to enable e-mail to be temporarily stored until users can connect to retrieve their messages.
The most popular of these protocols are Post Office Protocol version 3 (POP3) and Internet Message Access Protocol version 4 (IMAP4). However, IIS 5 in Windows 2000 supports neither of these protocols because the SMTP Service is primarily intended to provide e-mail-sending capability to Active Server Pages (ASP) applications running on IIS—it's not designed to function as a corporate e-mail server. If you want the full Internet capabilities of a corporate SMTP/POP3/IMAP4 e-mail server, you can use Microsoft Exchange Server for this purpose.
NNTP is a TCP/IP application-layer protocol that forms the basis of the USENET system of newsgroups used on the Internet. The console label of the underlying Windows 2000 service that supports NNTP is Network News Transfer Protocol, and it has the same associated executable as the WWW Publishing Service: System32\Inetsrv\Inetinfo.exe. In Event Viewer, the service is called NNTPSVC.
NNTP is both a client/server protocol and a server/server protocol that provides the following functionalities:
Some of the commands that a newsreader can use during a session with a host include the following:
More InfoThe Network News Transfer Protocol is defined in RFC 977.
The commands used for communications between hosts (called NNTP control messages) include these:
More InfoA full discussion of an NNTP session is beyond the scope of this book, but you can learn more about NNTP control messages in RFC 1036.
Although IIS 5 supports only the four application-layer Internet protocols just described, it does support other complementary Internet protocols that provide enhanced functionality to HTTP, FTP, SMTP, and NNTP. These additional protocols include the following:
More InfoA full discussion of these four Internet protocols is beyond the scope of this book, but you can find information about them in the following RFCs:
SSL/TLS: RFCs 2246, 2487, and 2595
LDAP version 3: RFC 2251
MIME: RFCs 2045, 2046, 2047, 2048, and 2049