CIT 361 RSS feeds and podcasts by Ed Nickel are licensed
under a Creative Commons Attribution 3.0 United States License
based on a work at http://cot.gbcnv.edu/~ed/class/syllabi.html.

CIT 361: Week 5
Basic TCP/IP Services

To automatically receive new feeds and podcasts you can copy this link: http://cot.gbcnv.edu/~ed/class/cit361/cit361.xml to your RSS reader and/or your iTunes/mp3 software. If you prefer getting the new feeds and podcasts manually you can read these files directly as you are reading this one or download the audio mp3 file which constitutes the podcast and listen to it using your favorite media software, such as Windows Media Player. Please note, iTunes is available free from Apple and can be used on your PC or Mac even if you do not have an iPod.

Referring back to the TCP/IP model shown in figure 1-2 on page 17, we have finally climbed to the application layer at the top. And as the text points out, this is where functions the end users need to do are performed, like transferring files, viewing web pages, sending messages, having a VoIP audio conversation, and much more. Just remember, none of these applications we want to use to accomplish specific tasks will work without the lower layer protocols already discussed. We are going to spend both this week and next on application layer protocols and will discuss some of the original, more basic applications this week, then cover newer more advanced applications next week. However, there are so many applications for the Internet and more are being developed all the time, so even spending two weeks on the topic, we will only be able to introduce a representative sample of what exists much less speculate about what might be available in the future.

To avoid possible confusion, I should note the author's usage of the terms "protocol" and "service" which are usually used interchangeably when discussing the TCP/IP suite especially at the application layer. The author has chosen to use "protocol" when discussing rules or specifications that deal with those rules and uses "service" when discussing applications or processes that follow the rules established by protocols. Thus, DNS and DHCP, which we will discuss later are considered services even though they are not used directly by end users as are most applications. For all practical purposes we can use these two terms as if they mean the same thing, but I will try to follow the book's practice in this regard.

As we proceed through this chapter, please remember that the data payload embedded in all the previous diagrams showing the construction of various protocol packets are the bits (1s and 0s) users care about. In general, application layer data traffic comes in two forms, a request by the user for some service and a reply by a server to the request. However, which computer is the client and which is the server is not always clear with some peer-to-peer services, like bitTorrent, the original Napster, and Gnutella (mentioned in the book). Furthermore, there are two ways the request/reply sequence can be initiated using the traditional pull technology and the somewhat newer push technology. Originally, all Internet services required a pull to be started, namely the client, at the users' instigation asked the server to do something. However, some data exchanges can be started by a server when it detects new data which various clients need then informing the clients that new data is available, the push, which the clients can then request.

Using push technology can be more efficient because the only time a new request/reply sequence is started is when there is data needed by the client. In a pull situation, the client must check from time to time to see if there is anything new available, but if these checks are too frequently then there are requests for data occurring when nothing new is available. On the other hand, if they occur at infrequent intervals then new data needed by the client could be available and the client does not get it in a timely manner. With push technology the server informs the client that new data is ready as soon as possible to which the client responds with a request as soon as it is ready to receive the data, thus requests occur only when new data is ready on the server and the client can accept it. Obviously, this does not work unless the client and all requisite network infrastructure are powered on and functioning when the server initiates a push; under most circumstances servers are always on. An example of push technology is with various data replication events then the main server tells the backup servers that new data is available so a request for replication only occurs when new or revised data is on the main server.

Some of the more basic applications mentioned in this chapter which I will briefly discuss this week include FTP, Telnet, SMTP, HTTP, QOD, Whois, TFTP, and Finger. Some of the other newer and more advanced services included in this chapter will be discussed next week along with some not mentioned in the text.

HTTP (hypertext transfer protocol) is used by web server software like Apache to transmit web pages and by web browsers on clients to receive web pages for viewing. Strictly speaking HTTP was designed for text including hypertext links but has been augmented many times to allow a richer web browsing experience. Many functions and protocols can be embedded in HTTP making it hard for end users to distinguish which protocols are being used. HTTP along with HTML (hypertext markup language) and some embedded scripting languages like Javascript and PHP are even used to write web based applications to accomplish a wide variety of tasks. For example, WebCampus uses HTML, Javascript, and Java to create the "classroom" environment for this course.

HTTPS (secure HTTP) is used to send encrypted web pages and data. An example of this would be online banking services allowing users to pay bills, reconcile their checkbooks, and more via a web application in a secured environment. We will come back to this when we cover chapter 9 on security.

FTP (file transfer protocol) is used to efficiently transfer large files from a server to a client. Other protocols can be used for this purpose and HTTP is often used to transfer files but can have significantly longer download times for the same size file. Most modern web browsers support FTP so if given a choice one should select FTP when downloading large files.

SMTP (simple mail transfer protocol) is used in conjunction with POP3 or IMAP to send and receive email. SMTP is used to send email from the client to the server as well as from server to server. POP3 (post office protocol version 3) which is used by clients to receive email and delete the messages from the server where managing the email system is done by a single email client for each account. IMAP (Internet Message Access Protocol currently in version 4) is used by clients to receive email but the messages are left on the server so people can access all their messages from work, home or elsewhere until they are explicitly deleted from the server.

NTP (network time protocol) is not covered in this chapter and only mentioned twice elsewhere in the book. If accurate time stamping of database changes, email messages, scientific investigations or anything else is required then NTP can be used to very accurately set computer time keeping by communicating with the various standard atomic clocks around the world despite the notoriously inaccurate clocks built into most computers.

TFTP (trivial file transfer protocol) serves a similar purpose to FTP but FTP uses TCP connection oriented processes while TFTP uses UDP's connectionless processes. TFTP is usually used within another application that provides for data delivery verification. The text has some good examples of when and how TFTP is used effectively.

QOD (quote of the day) was often implemented when the Internet first started and can still be found on some servers, however, it is no longer as common as it once was. It was originally used in network debugging but later became a method of sending an introductory message along with a reply to a service request.

Telnet was used to access programs on a remote host and can still be found on a few servers especially on internal networks. However, software licensing issues and security concerns have lead to the gradual demise of this once heavily used service. The text covers telnet in great detail. It also covers Stelnet and the use of SSL (secure sockets layer) to provide telnet with security.

Whois is currently of little use on the Internet and can be thought of as the precursor to more sophisticated directory services like the LDAP (lightweight directory access protocol) standard on which Novell's NDS (Novell Directory Services) and Microsoft's Active Directory are based. None of these three more modern directory protocols are even mentioned in this book, I suspect because of the very complex nature of these services.

Finger is not a rude gesture on the Internet. It was used to find out basic information about network users and hosts. However, it has been the source of several major security problems which in addition to privacy concerns has lead to most network admins turning this service off externally and often internally as well. In fact, Microsoft discontinued the Finger service with Windows 2000.

This week we have started our review of some of the many TCP/IP applications which we will continue next week. Without applications any network would be of little use and we would not have a world encompassing computer network like the Internet. There is again much material here for you to use in your discussion posts.