TCPIP Professional Reference Guide
TCPIP Professional Reference Guide
AUERBACH PUBLICATIONS
www.auerbach-publications.com TO Order: Call: 1-800-272-7737 Fax: 1-800-374-3401 E-mail: orders@crcpress.com
GILBERT HELD
This book contains information obtained from authentic and highly regarded sources. Reprinted material is quoted with permission, and sources are indicated. A wide variety of references are listed. Reasonable efforts have been made to publish reliable data and information, but the author and the publisher cannot assume responsibility for the validity of all materials or for the consequences of their use. Neither this book nor any part may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, microlming, and recording, or by any information storage or retrieval system, without prior permission in writing from the publisher. The consent of CRC Press LLC does not extend to copying for general distribution, for promotion, for creating new works, or for resale. Specic permission must be obtained in writing from CRC Press LLC for such copying. Direct all inquiries to CRC Press LLC, 2000 N.W. Corporate Blvd., Boca Raton, Florida 33431. Trademark Notice: Product or corporate names may be trademarks or registered trademarks, and are used only for identication and explanation, without intent to infringe.
2001 by CRC Press LLC Auerbach is an imprint of CRC Press LLC No claim to original U.S. Government works International Standard Book Number 0-8493-0824-0 Library of Congress Card Number 00-045511 Printed in the United States of America 1 2 3 4 5 6 7 8 9 0 Printed on acid-free paper
Contents
Chapter 1
Overview ................................................................................................. 1 Applications .............................................................................................................. 1 Current Applications ......................................................................................... 2 Electronic Mail ................................................................................................... 2 File Transfers ..................................................................................................... 5 Remote Terminal Access................................................................................... 5 Web Surng ....................................................................................................... 8 Emerging Applications ...................................................................................... 8 Audio and Video Players.................................................................................. 8 Voice Over IP .................................................................................................. 10 Virtual Private Networking ............................................................................. 10 Book Preview ......................................................................................................... 12 The Protocol Suite........................................................................................... 12 The Standards Process .................................................................................... 12 The Internet Protocol and Related Protocols ............................................... 13 Transport Layer Protocols............................................................................... 13 Applications and Built-in Diagnostic Tools................................................... 13 Routing ............................................................................................................. 13 Security............................................................................................................. 13 Emerging Technologies................................................................................... 14 The Protocol Suite............................................................................. 15 The ISO Reference Model ..................................................................................... 15 OSI Reference Model Layers .......................................................................... 16 Layer 1: The Physical Layer .................................................................... 16 Layer 2: The Data Link Layer.................................................................. 17 Layer 3: The Network Layer.................................................................... 17 Layer 4: The Transport Layer .................................................................. 18 Layer 5: The Session Layer...................................................................... 18 Layer 6: The Presentation Layer.............................................................. 19 Layer 7: The Application Layer ............................................................... 19 Data Flow ........................................................................................................ 19
Chapter 2
vi
The TCP/IP Protocol Suite .................................................................................... 19 The Network Layer ......................................................................................... 20 IP................................................................................................................ 20 ARP ............................................................................................................ 21 ICMP .......................................................................................................... 21 The Transport Layer........................................................................................ 21 TCP ............................................................................................................ 21 UDP ........................................................................................................... 22 Application Layer ............................................................................................ 23 Data Flow ........................................................................................................ 23
Chapter 3
Internet Governing Bodies .................................................................................... 25 Internet Evolution............................................................................................ 25 The IAB and IETF ........................................................................................... 27 The IANA ......................................................................................................... 27 Request for Comments........................................................................................... 28 The Standards Process .................................................................................... 28 Draft RFC................................................................................................... 28 Proposed Standard and Draft Standard .................................................. 28 RFC Standard ............................................................................................ 29 RFC Details ...................................................................................................... 29 RFC Categories.......................................................................................... 29 Accessing RFCs ................................................................................................ 29
Chapter 4
The Internet Protocol............................................................................................. 38 Datagrams and Segments ............................................................................... 38 Datagrams and Datagram Transmission ........................................................ 38 Routing ............................................................................................................. 39 The IP Header ................................................................................................. 39 Bytes Versus Octets .................................................................................. 39 Vers Field .................................................................................................. 40 Hlen Field ................................................................................................. 40 Service Type Field.................................................................................... 41 Total Length Field .................................................................................... 42 Identication and Fragment Offset Fields .............................................. 43 Flag Field................................................................................................... 44 Time to Live Field .................................................................................... 44 Protocol Field............................................................................................ 44 Header Checksum Field........................................................................... 45 Source and Destination Address Fields .................................................. 45 IP Addressing.......................................................................................................... 48 Overview.......................................................................................................... 49 The IP Addressing Scheme ............................................................................ 50 Address Changes ...................................................................................... 50 Rationale.................................................................................................... 51 Overview ................................................................................................... 52
Contents
vii
Class A Addresses ........................................................................................... 53 Loopback................................................................................................... 53 Class B Addresses ........................................................................................... 54 Class C Addresses ........................................................................................... 56 Class D Addresses ........................................................................................... 56 Class E Addresses............................................................................................ 57 Dotted Decimal Notation................................................................................ 58 Basic Workstation Conguration .................................................................... 58 Reserved Addresses......................................................................................... 62 Subnetting ........................................................................................................ 64 Overview ................................................................................................... 64 Subnetting Example.................................................................................. 64 Host Restrictions ....................................................................................... 66 The Zero Subnet....................................................................................... 66 Internal Versus External Subnet Viewing ............................................... 67 Using the Subnet Mask ............................................................................ 68 Multiple Interface Addresses .......................................................................... 71 Address Resolution................................................................................................. 72 Ethernet and Token Ring Frame Formats ..................................................... 72 LAN Delivery ................................................................................................... 73 Address Resolution Operation........................................................................ 73 ARP Packet Fields..................................................................................... 74 Locating the Required Address ............................................................... 74 Gratuitous ARP ......................................................................................... 75 Proxy ARP........................................................................................................ 75 RARP................................................................................................................. 75 ICMP ........................................................................................................................ 76 Overview.......................................................................................................... 76 The ICMP Type Field...................................................................................... 76 The ICMP Code Field ..................................................................................... 78 Evolution .......................................................................................................... 78
Chapter 5
The Transport Layer ........................................................................ 81 TCP .......................................................................................................................... 81 The TCP Header.............................................................................................. 81 Source and Destination Port Fields ............................................................... 82 Multiplexing and Demultiplexing............................................................ 83 Port Numbers............................................................................................ 84 Well-Known Ports..................................................................................... 84 Registered Ports ........................................................................................ 84 Dynamic or Private Ports......................................................................... 84 Sequence and Acknowledgment Number Fields.......................................... 84 Hlen Field ........................................................................................................ 86 Code Bits Field ................................................................................................ 87 URG Bit ..................................................................................................... 87 ACK Bit...................................................................................................... 87 PSH Bit ...................................................................................................... 87 RST Bit....................................................................................................... 87 SYN Bit...................................................................................................... 88 FIN Bit ....................................................................................................... 88
viii
Window Field .................................................................................................. 88 Checksum Field ............................................................................................... 88 Urgent Pointer Field........................................................................................ 88 Options............................................................................................................. 89 Padding Field................................................................................................... 89 Connection Establishment............................................................................... 89 Connection Function Calls.............................................................................. 89 Port Hiding................................................................................................ 90 Passive OPEN ........................................................................................... 90 Active OPEN ............................................................................................. 90 The Three-Way Handshake ............................................................................ 91 Overview ................................................................................................... 91 Operation .................................................................................................. 91 The TCP Window............................................................................................ 93 Avoiding Congestion ................................................................................ 94 TCP Slow Start .......................................................................................... 94 The Slow Start Threshold ........................................................................ 95 TCP Retransmissions ................................................................................ 96 Session Termination ................................................................................. 96 UDP ......................................................................................................................... 96 The UDP Header............................................................................................. 97 Source and Destination Port Fields ........................................................ 98 Length Field .............................................................................................. 98 Checksum Field ........................................................................................ 98 Operation ......................................................................................................... 98 Applications ..................................................................................................... 99
Chapter 6
Applications and Built-in Diagnostic Tools .......................... 101 The DNS................................................................................................................ 101 Purpose .......................................................................................................... 101 The Domain Name Structure ....................................................................... 102 The Domain Name Tree ........................................................................ 102 The Name Resolution Process ..................................................................... 103 Data Flow................................................................................................ 104 Time Consideration ................................................................................ 105 DNS Records.................................................................................................. 105 The SOA Record..................................................................................... 106 Checking Records................................................................................... 107 Diagnostic Tools ................................................................................................... 107 Ping................................................................................................................. 107 Operation ................................................................................................ 107 Implementation....................................................................................... 108 Using Windows NT Ping ....................................................................... 109 Resolution Time Considerations............................................................ 110 Applications ............................................................................................ 110 Traceroute ...................................................................................................... 111 Operation ................................................................................................ 111 Using Microsoft Windows Tracert......................................................... 112 Tracing a Route ...................................................................................... 113 Applications ............................................................................................ 114
Contents
ix
NSLOOKUP .................................................................................................... 114 Operation ................................................................................................ 114 Finding Information about Mail Servers at Yale.................................. 116 Viewing the SOA Record....................................................................... 116 Protecting Server Information................................................................ 117 Finger ............................................................................................................. 118 Format ..................................................................................................... 118 Security Considerations .......................................................................... 118 Applications ............................................................................................ 119
Chapter 7
Routing and Routing Protocols ................................................. 121 Network Routing .................................................................................................. 122 Routing in a Global System ......................................................................... 122 Autonomous Systems ............................................................................. 122 Types of Routing Protocols ................................................................... 124 Need for Routing Tables........................................................................ 125 Routing Table Update Methods ................................................................... 127 The Routing Information Protocol ...................................................................... 128 Illustrative Network ....................................................................................... 128 Dynamic Table Updates................................................................................ 128 Basic Limitations............................................................................................ 131 RIP Versions ................................................................................................... 131 The Basic RIPv1 Packet ................................................................................ 132 Command Field ...................................................................................... 132 Version Field ........................................................................................... 132 Family of Net X Field ............................................................................ 133 Net X Address Field ............................................................................... 133 Distance to Network X Field................................................................. 133 RIPv1 Limitations .................................................................................... 133 RIPv2 .............................................................................................................. 133 Route Tag Field ...................................................................................... 134 Next Hop Field....................................................................................... 134 Authentication Support .......................................................................... 135 OSPF...................................................................................................................... 135 Overview........................................................................................................ 136 Path Metrics ................................................................................................... 136 Initialization Activity...................................................................................... 136 Router Types.................................................................................................. 137 Message Types............................................................................................... 137 Type 1 Message...................................................................................... 138 Type 2 Message...................................................................................... 138 Type 3 Message...................................................................................... 138 Type 4 Message...................................................................................... 138 Type 5 Message...................................................................................... 139 Type 6 Message...................................................................................... 139 Operation ....................................................................................................... 139 Security ................................................................................................ 141 Router Access Considerations.............................................................................. 142 Router Control ............................................................................................... 142
Chapter 8
Direct Cabling................................................................................................ 142 Benets and Limitations......................................................................... 142 Telnet and Web Access................................................................................. 143 Protection Limitation .............................................................................. 143 Router Access Lists ............................................................................................... 146 Rationale for Use........................................................................................... 146 Ports Govern Data Flow ........................................................................ 147 Data Flow Direction............................................................................... 148 Types of Access Lists .................................................................................... 148 Standard Access Lists ............................................................................. 148 Extended Access Lists ............................................................................ 150 New Capabilities in Access Lists.................................................................. 152 Named Access Lists ................................................................................ 152 Reexive Access Lists............................................................................. 153 Time-based Access Lists......................................................................... 155 TCP Intercept .......................................................................................... 156 Applying a Named Access List..................................................................... 157 Conguration Principles................................................................................ 158 Limitations ...................................................................................................... 158 Firewalls ................................................................................................................ 158 Installation Location ...................................................................................... 158 Basic Functions.............................................................................................. 159 Proxy Services......................................................................................... 159 Authentication ......................................................................................... 161 Encryption ............................................................................................... 162 Network Address Translation ................................................................ 162
Chapter 9
Emerging Technologies ................................................................ 163 Virtual Private Networking .................................................................................. 163 Benets .......................................................................................................... 163 Reducing Hardware Requirements........................................................ 163 Reliability................................................................................................. 165 Economics ............................................................................................... 165 Limitations ...................................................................................................... 166 Authentication ......................................................................................... 166 Encryption ............................................................................................... 167 Other Issues to Consider .............................................................................. 167 Setting up Remote Access Service ............................................................... 168 Mobile IP............................................................................................................... 171 Overview........................................................................................................ 171 Operation ....................................................................................................... 172 Voice over IP ........................................................................................................ 173 Constraints...................................................................................................... 174 Latency .................................................................................................... 174 Packet Network Operation .................................................................... 175 Voice Digitization Method ..................................................................... 176 Packet Subdivision ................................................................................. 177 Networking Congurations........................................................................... 177 Router Voice Module Utilization ........................................................... 177 Voice Gateway ........................................................................................ 178
Contents
xi
IPv6........................................................................................................................ 179 Overview........................................................................................................ 180 Address Architecture ..................................................................................... 180 Address Types ........................................................................................ 180 Address Notation .................................................................................... 180 Address Allocation.................................................................................. 181 Provider-Based Addresses...................................................................... 181 Special Addresses ................................................................................... 182
Appendixes:
TCP/IP Protocol Reference Numbers ................................. 185 Appendix A: ICMP Type and Code Values ....................................................... 189 Appendix B: Internet Protocol (IP) Protocol Type Field Values ..................... 193 Appendix C: Port Numbers ................................................................................. 197
Preface
The TCP/IP protocol suite has evolved from an academic networking tool to the driving force behind the Internet, intranets, and extranets. Advances in networking and communications hardware based upon the TCP/IP protocol suite are opening a new range of technologies that provides the potential to considerably affect our lives. Such technologies as the new version of the Internet Protocol (IP), referred to as IPv6, the use of virtual private networks (VPNs), the convergence of voice and data through a technology referred to as Voice over IP (VoIP), and the expansion of data transmission over wireless communications (mobile IP) can be expected to govern the manner by which we perform many daily activities. Thus, the TCP/IP protocol suite is dynamically changing to reect advances in technology, and, to paraphrase an often-used term, can be considered to represent the protocol for the new millennium. This book was written as a comprehensive reference to the TCP/IP protocol suite for professionals that need to know a range of protocol-related information. Commencing with an overview of the protocol suite, this book examines the key components of the TCP/IP protocol suite. This examination includes the manner by which the various protocols operate, how applications operate, addressing issues, security methods, routing, and an overview of emerging technologies. The goal of this book is to explain both the how and the why of the TCP/IP protocol suite. The how refers to how various network protocols and applications operate, as this information can be important for selecting one application over another, as well as for attempting to resolve problems and network capacity issues. The why refers to this authors best guess as to the rationale for the structure of the TCP/IP protocol suite and the manner by which various components interact. Although no reader was probably present when various meetings occurred that dened the structure of the TCP/IP protocol suite, a review of the manner by which different components of the suite operate allows one to note why it might have been designed.
xiii
xiv
This in turn provides a considerable amount of information concerning both how and when to use certain members of the protocol suite. As a professional author, I highly value reader feedback. Please feel free to contact me through the publisher of this book or e-mail me at gil_held@yahoo.com. Let me know if there are certain topics that you would like to see additional information coverage on, if I omitted a topic of interest, or if I should expand coverage of an existing topic. Gilbert Held Macon, Georgia
Acknowledgments
The creation of a book is a team effort that requires the contribution of many people. Thus, I would be remiss if I did not acknowledge the efforts of the many people who were instrumental in converting the writings of this author into the book you are now reading. It is always important to have the support of the acquisitions editor and publisher; however, it is even better to have a most enthusiastic backing for a writing project. Thus, I would like to thank Theron Shreve and Rich OHanley for their enthusiastic endorsement of this book. As a frequent traveler to the four corners of the world, I often encounter electrical outlets that never quite mate with the various adapter kits that Ive purchased. Due to this, my writing productivity is considerably enhanced by using pen and paper, especially at locations where it was only possible to shave with a razor, and a laptop battery had long ago reached an undesirable level of power. While I try to write legibly, this is not always the case. Thus, I am once more indebted to Mrs. Linda Hayes for turning my handwritten notes and sketches into a professional manuscript. Last, but not least, the preparation of a book is a time-consuming task, requiring many hours of effort on weekends and evenings. Once again I am indebted to my wife, Beverly, for her patience and understanding.
xv
Chapter 1
Overview
The TCP/IP protocol suite has evolved from primarily an academic and research communications protocol into a protocol that affects the lives of most individuals. Although most, if not all, readers are familiar with the Internet, that mother of all networks which represents only one use of the TCP/IP protocol suite. Today, many organizations are creating private networks based on the use of the TCP/IP protocol suite that are referred to as intranets. In addition, the Internet is being used to interconnect geographically separated networks through a technology referred to as Virtual Private Networks (VPNs). Recognizing the versatility of the TCP/IP protocol suite, IP is now being used to transport voice, and the transmission of data over wireless communications is evolving to provide mobile users with the ability to access e-mail and surf the Web from their mobile phones. Thus, the TCP/IP protocol suite can be considered to represent the protocol for the new millennium. This introductory chapter focuses on the role of the TCP/IP protocol suite. In doing so, the chapter concentrates on common and emerging applications supported by this technology, and takes the reader on a brief tour of the focus of succeeding chapters by previewing those chapters. This information, either by itself or in conjunction with the index, can be used to rapidly locate particular information of interest.
Applications
When the TCP/IP protocol suite was initially developed, it was used to support a relatively small handful of applications. Those applications included electronic mail, le transfer, and remote terminal operations. Since the initial development of the TCP/IP protocol suite, its modular architecture has enabled literally hundreds of applications to be developed that use the protocol suite as a transport for communications. This section briey reviews a core set of
1
current and emerging applications to obtain an appreciation for the role of the TCP/IP protocol suite. TCP/IP applications can be subdivided into three general categories: obsolete or little used, current, and emerging. Although obsolete or little-used applications are interesting from a historical perspective, their value for the networking professional is minimal; thus, for the most part, this book focuses on current and evolving applications.
Current Applications
There is a core set of TCP/IP applications that are used by most persons. Those applications include electronic mail, le transfer, remote terminal operations, and Web surng. Although not directly used by most people, the domain name service (DNS) is crucial for the operation of TCP/IP-based networks as it provides the translation process between host names and IP addresses. Because the vast majority of people who use TCP/IP-based networks enter host addresses while routing is based on the use of IP addresses, DNS provides the crucial link between the two. The remainder of this section briey reviews the operation and utilization of the core set of current applications commonly used by people on TCP/IP-based networks. This information is presented to ensure that readers with different networking backgrounds obtain a common level of appreciation for the majority of current applications used on TCP/IP-based networks.
Electronic Mail
The TCP/IP protocol suite dates to the 1960s when government laboratories and research universities required a method to share ideas in an expedient manner. Among the rst applications developed for the protocol suite was a text-based electronic mail system. Over the past 30+ years, the use of electronic mail has evolved from a text-based messaging system into the development of sophisticated, integrated calendar, messaging, and documenting systems that perform electronic mail. One example of a popular integrated e-mail system is Microsofts Outlook, whose main screen is illustrated in Exhibit 1.1. Through the use of Outlook, one can send and receive conventional text-based messages, attach graphic images and word processing documents within that message, develop the equivalent of an electronic Rolodex via the use of a contact folder, and use its calendar facility as a reminder to perform different tasks. Exhibit 1.2 illustrates a portion of the additional capability obtained through the use of Outlook. This example uses the programs calendar feature, which enables one to both schedule events as well as dene tasks and indicate the status of different tasks. Exhibit 1.2 reveals that a meeting and a videoconference have been scheduled and indicates a task for completion on the indicated day. Unlike the early versions of electronic mail that depended on the TCP/IP protocol suite for communications, Microsofts Outlook, as well as such
Overview
Overview
competitive products as Lotus Notes and Novells GroupWise, support many communications protocols. In fact, just a few years ago, IBMs System Network Architecture (SNA) and Novells NetWare IPX and SPX protocols accounted for approximately 70 percent of the communications market. The growth in the use of the Internet and the development of corporate intranets has reversed protocol utilization, with the TCP/IP protocol stack now accounting for approximately 70 percent of the communications market.
File Transfers
A second application that traces its roots to the initial development of the TCP/IP protocol suite is le transfer. During the 1960s, many research laboratories and universities required a mechanism to share large quantities of data, resulting in the development of the File Transfer Protocol (FTP), which more accurately represents an application that facilitates le transfers. Early versions of FTP applications were text based. Although several software developers introduced graphic user interface versions of FTP during the mid-1990s, the popular Windows operating system added a text-based FTP that represents one of the more popular methods for transferring les. An example of the use of a Windows FTP application is illustrated in Exhibit 1.3. Note that, with the exception of Windows Version 3.1, all later versions of the ubiquitous Microsoft operating system include FTP as an MSDOS application. Because it is free, the addition of a TCP/IP protocol stack with the introduction of Windows 95 to include several basic applications caused many third-party software developers that concentrated on TCP/IP applications to undergo a severe contraction in sales. In fact, although there are several graphic user interface versions of FTP available for use, most such products are now shareware instead of commercial products. Thus, the inclusion of the TCP/IP protocol suite in different versions of Windows had a signicant impact on the market for stand-alone applications.
6
TCP/IP Professional Reference Guide
Overview
Exhibit 1.4 Using Telnet to Access a Remote Router and Determine the State of Its Interfaces
Web Surng
While it is true that most people correctly associate the use of the Internet with a Web browser, this is only one part of a complex story. The rst commercial browser had a limited capability and was primarily used for navigation to different Web sites and the display of Web pages. As Web sites proliferated, they began to add new applications that required browser developers and third-party software developers to add plug-ins to extend the capabilities of browser software. Examples of some common plug-ins include video- and audioconferencing, music playing, and authentication and encryption. Exhibit 1.5 illustrates the display of the Netscape Communicator menu bar. On examining the entries in the drop-down menu, one notes that this browser more accurately represents an integrated application. Included in the software is a Web browser (Navigator), Web page creation (Composer), and calendar (Calendar) capability, as well as functions for performing conferencing. Looking at the background of the illustration shown in Exhibit 1.5, one notes the display of the home page for Amazon.com, a very popular electronic commerce site that expanded its initial focus from providing consumers with discounts for books to the online retailing of CDs, videos, toys, electronics, and other products. Within just a few years, electronic commerce on the Web grew from under $100 million to over $12 billion, with the TCP/IP protocol suite facilitating the growth in online sales due to the exibility of the protocol suite to accommodate the new protocols and applications necessary to support electronic commerce. With an appreciation for the role of a core set of TCP/IP applications, one can now focus on several emerging applications.
Emerging Applications
There are several emerging applications that have the potential to alter the manner by which people perform daily activities. While such applications are interesting from the perspective of a book on the evolution of the TCP/IP protocol suite, one also needs to be aware of emerging applications as they create new demands on network resources. Three emerging TCP/IP applications that deserve mention are audio and video players, the transmission of Voice over IP networks, and the use of virtual private networks.
Overview
Exhibit 1.5 Examining the Major Components of the Netscape Communicator while Viewing a Popular Electronic Commerce Site
10
The RealPlayer provides users with the ability to listen to music and conversations or to view events in near-real-time. The term near-real-time is used because the player buffers data to obtain the ability to eliminate random delays associated with the arrival of packets as they ow over the Internet and encounter different degrees of delay. Exhibit 1.6 illustrates the use of the RealNetworks RealPlayer on the authors desktop. In this example, the author is both listening and viewing a video clip from the Fox News Network. While audio and video players can turn the desktop into miniature televisions, they can also saturate the use of bandwidth on a network. In the example shown in Exhibit 1.6, the author was watching news about the crash of an airplane when network congestion occurred, forcing the player to freeze its audio and video presentation and buffer data at a lower rate until a sufcient amount of data is buffered to allow playback. Because it is very easy for 50 to 100 employees to click on different music and news items, the cumulative effects of such actions can result in the necessity to either upgrade a network or restrict the use of audio and video players.
Voice Over IP
A second emerging application that can result in the restructuring of an existing network is the transmission of digitized voice over TCP/IP networks. Referred to as Voice over IP (VoIP), this technology is extremely delay sensitive and does not tolerate lengthy packets transporting data interspersed between packets transporting digitized voice. Thus, the ability to transmit Voice over IP can require equipment or software that prioritizes packets transporting voice over those transporting data as well as fragmenting lengthy packets transporting data, so their transmission between voice-carrying packets has a minimal effect on the reconstruction of voice at the receiver.
Overview
Exhibit 1.6 Using RealNetworks RealPlayer to Obtain the Latest News from the Fox Network
11
12
interconnect one location with many other locations. Because router ports are relatively expensive, typically costing $1000 or more each, the internetworking of a large number of organizational locations via the use of an intranet can result in the expenditure of a considerable amount of money for additional router ports. Thus, VPNs can reduce the cost of both communications hardware and transmission facilities. While VPNs provide a mechanism to reduce networking costs, they open up networks connected to the Internet to potential attack from a virtually unlimited population of hackers. Thus, the use of VPNs introduces the need to consider various security measures to include rewalls, router access lists, and servers that perform authentication and encryption. Given an appreciation for some of the emerging application being developed for use under the TCP/IP protocol suite, this chapter concludes with a brief preview of the focus of succeeding chapters in this book.
Book Preview
As indicated in the table of contents, this book is divided into nine chapters. Thus, this section reviews the focus of each chapter, commencing with Chapter 2, in the order by which they are incorporated into this book.
Overview
13
Routing
Chapter 7 focuses on the manner by which packets are transmitted through a TCP/IP network. Although there are over two dozen routing protocols, attention is focused on just a few that represent protocols that route a majority of network trafc. The protocols examined include a routing protocol commonly used by small- and medium-sized networks, and a routing protocol used to interconnect autonomous networks.
Security
Because most TCP/IP networks include a connection to the Internet security, it is a most important topic and is covered as a separate chapter in this book. Chapter 8 examines the use of router access lists and rewalls as well as proxy services and network address translation.
14
Emerging Technologies
In concluding this book, the author examines the potential effect of four emerging technologies. First, we will describe and discuss how the new version of the Internet Protocol, IPv6, can be expected to literally open a window that will allow an extraordinary number of new devices to be connected to the Internet. Other topics to be covered in this chapter include the role of Virtual Private Networks, the growing use of Voice over IP, and Mobile IP. Now that we have an appreciation for the orientation of this book, let us relax, grab a Coke or a cup of coffee, and proceed to follow this author on a tour into the world of communications provided by the use of the TCP/IP protocol suite.
Chapter 2
16
Exhibit 2.1
Model, as well as protocol suites that employ a layered architecture, provide the potential to directly interconnect networks based on the use of different vendor products. This architecture, which is referred to as an open architecture when its specications are licensed or placed in the public domain, can be of substantial benet to both users and vendors. For users, an open architecture removes them from dependence on a particular vendor, and can also prove economically advantageous as it fosters competition. For vendors, the ability to easily interconnect their products with the products produced by other vendors opens up a wider market. Consider now the functions of the seven layers of the OSI Reference Model.
17
18
frames at the data link layer. Thus, the network layer packet will contain addressing information as well as a eld that facilitates error detection and correction. In a complex network, the source and destination may not be directly connected by a single path. Instead, a path may be required to be established through the network that consists of several sub-paths. Thus, the routing of packets through the network, as well as the mechanism in the form of routing protocols that provide information about available paths, are important features of this layer. Several protocols are standardized for Layer 3 to include the International Telecommunications Union Telecommunications body (ITU-T) X.25 packet switching protocol and the ITU-TX.25 gateway protocol. X.25 governs the ow of information through a packet network, whereas X.75 governs the ow of information between packet networks. In examining the TCP/IP protocol suite in the next section of this chapter, one sees that the Internet Protocol (IP) represents the network layer protocol used in the TCP/IP protocol suite. One also notes that addressing at the network layer and the data link layer differ from one another, and a discovery process is used for packets to be correctly delivered via frames to their intended destination.
19
Data Flow
The design of an ISO Reference Model compatible network is such that a series of headers are opened to each data unit as packets are transmitted and delivered by frames. At the receiver, the headers are removed as a data unit ows up the protocol suite, until the headerless data unit is identical to the transmitted data unit. The next chapter section examines the ow of data in a TCP/IP network that follows the previously described ISO Reference Model data ow. The ISO Reference Model never lived up to its intended goal, with ISO protocols achieving a less-than-anticipated level of utilization. The concept of the model made people aware of the benets that could be obtained by a layered open architecture as well as the functions that would be performed by different layers of the model. Thus, the ISO succeeded in making networking personnel aware of the benets that could be derived from a layered open architecture and more than likely contributed to the success of the acceptance of the TCP/IP protocol suite.
20
Exhibit 2.2
Exhibit 2.2 provides a general comparison of the structure of the TCP/IP protocol suite to the OSI Reference Model. The term general comparison is used because the protocol suite consists of hundreds of applications, of which only a handful are shown. Another reason that Exhibit 2.2 is a general comparison results from the fact that the TCP/IP protocol suite actually begins above the data link layer. Although the physical and data link layers are not part of the TCP/IP protocol suite, they are shown in Exhibit 2.2 to provide a frame of reference to the ISO Reference Model as well as to facilitate an explanation of the role of two special protocols within the TCP/IP protocol suite.
IP
The Internet Protocol (IP) provides the addressing capability that allows datagrams to be routed between networks. The current version of IP is IPv4,
21
under which IP addresses consist of 32 bits. There are currently ve classes of IP addresses, referred to as Class A through Class E, with Classes A, B, and C having their 32 bits subdivided into a network portion and a host portion. The network portion of the address denes the network where a particular host resides, while the host portion of the address identies a unique host on the network. Chapter 4 examines the Internet Protocol in detail to include its current method of 32-bit addressing. Chapter 6 focuses emerging technologies and on the next-generation Internet Protocol referred to as IPv6.
ARP
One of the more signicant differences between the data link layer and the network layer is the method of addressing used at each layer. At the data link layer, such LANs as Ethernet and Token Ring networks use 48-bit MAC addresses. In comparison, TCP/IP currently uses 32-bit addresses under the current version of the IP protocol and the next generation of the IP protocol, IPv6, uses a 128-bit address. Thus, the delivery of a packet or datagram owing at the network layer to a station on a LAN requires an address conversion. That address conversion is performed by the Address Resolution Protocol whose operation is covered in detail in Chapter 4.
ICMP
The Internet Control Message Protocol (ICMP), as its name implies, represents a protocol used to convey control messages. Such messages range in scope from routers responding to a request that cannot be honored with a destination unreachable message to the requestor, to messages that convey diagnostic tests and responses. An example of the latter is the echo-request/echo-response pair of ICMP datagrams that is more popularly referred to collectively as Ping. ICMP messages are conveyed with the prex of an IP header to the message. Thus, one can consider ICMP to represent a Layer 3 protocol in the TCP/IP protocol suite. The structure of ICMP messages as well as the use of certain messages are examined in Chapter 4 where the network layer of the TCP/IP protocol suite is examined in detail.
TCP
TCP is an error-free, connection-oriented protocol. This means that prior to data being transmitted by TCP, the protocol requires the establishment of a
22
path between source and destination as well as an acknowledgment that the receiver is ready to receive information. Once the ow of data commences, each unit, which is referred to as a TCP segment, is checked for errors at the receiver. If an error is detected through a checksum process, the receiver will request the originator to retransmit the segment. Thus, TCP represents an error-free, connection-oriented protocol. The advantages associated with the use of TCP as a transport protocol relate to its error-free, connection-oriented functionality. For the transmission of relatively large quantities of data or important information, it makes sense to use this transport layer protocol. The connection-oriented feature of the protocol means that it will require a period of time for the source and destination to exchange handshake information. In addition, the error-free capability of the protocol may be redundant if the higher layer in the protocol suite also performs error-checking. Recognizing the previously mentioned problems, the developers of the TCP/IP protocol suite added a second transport layer protocol referred to as UDP.
UDP
The User Datagram Protocol (UDP) is a connectionless, best effort, non-errorchecking transport protocol. UDP was developed in recognition of the fact that some applications may require small pieces of information to be transferred, and the use of a connection-oriented protocol would result in a signicant overhead to the transfer of data. Because a higher layer in the protocol suite could perform error-checking, error detection and correction could also be eliminated from UDP. Because UDP transmits a piece of information referred to as a UDP datagram without rst establishing a connection to the receiver, the protocol is also referred to as a best-effort protocol. To ensure that a series of UDP datagrams is not transmitted into a black hole if a receiver is not available, the higher layer in the protocol suite using UDP as a transport protocol will wait for an acknowledgment. If one is not received within a predened period of time, the application can decide whether to retransmit or cancel the session. In examining Exhibit 2.2, note that certain applications use TCP as their transport protocol while other applications use UDP. In general, applications that require data integrity, such as remote terminal transmission (Telnet), le transfer (FTP), and electronic mail, use TCP as their transport protocol. In comparison, applications that transmit relatively short packets, such as the Domain Name Service (DNS) and the Simple Network Management Protocol (SNMP) that is used to perform network management operations use UDP. One relatively new TCP/IP application takes advantage of both the TCP and UDP transport protocols. That application is Voice over IP (VoIP). VoIP commonly uses TCP to set up a call and convey signaling information to the distant party. Because real-time voice cannot be delayed by retransmission if an error in a packet is detected, there is no need to perform error detection.
23
Thus, digitized voice samples are commonly transmitted using UDP once a session is established using TCP.
Application Layer
As previously noted, the development of the TCP/IP protocol suite predated the development of the ISOs OSI Reference Model. At the time the TCP/IP protocol suite was developed, functions above the transport layer were combined into one entity that represented an application. Thus, the TCP/IP protocol suite does not include separate session and presentation layers. Now having an appreciation for the manner by which the TCP/IP protocol stack can be compared and contrasted to the OSI Reference Model, this chapter concludes by examining the ow of data within a TCP/IP network.
Data Flow
Data ow within a TCP/IP network commences at the application layer where data is provided to an applicable transport layer protocol TCP or UDP. At Layer 4, the transport layer opens either a TCP or a UDP header to the application data, depending on the transport protocol used by the application layer. The transport layer protocol uses a port number to distinguish the type of application data being transported. Through the use of port numbers, it becomes possible to distinguish one application from another that ow between a common source and destination. For lay personnel not familiar with TCP or IP, this explains how a common hardware platform, such as a Windows NT server, can support both Web and FTP services. That is, although the server has a common IP address contained in an IP header, the port number in the TCP or UDP header indicates the application. Application data owing onto a network is rst formed into a TCP segment or UDP datagram. The resulting UDP datagram or TCP segment is then passed to the network layer where an IP header is opened. The IP header contains network addressing information that is used by routers to route datagrams through a network. When an IP datagram reaches a LAN, the difference between the network layer and LAN address is rst resolved through ARP. Once this is accomplished, the IP datagram is placed into a LAN frame using an appropriate MAC address in the LAN header. Exhibit 2.3 illustrates the data ow within a TCP/IP network for delivery to a station on a LAN. The TCP/IP protocol suite represents a methodically considered and developed collection of protocols and applications. As noted in subsequent chapters of this book, it is a very exible open architecture that allows new applications and protocols to be developed. Concerning that development, it is the standards process that ensures the orderly development of additions to the protocol suite. Thus, Chapter 3 focuses on this important topic.
24
Exhibit 2.3
Chapter 3
Internet Evolution
The evolution of the TCP/IP protocol suite can be traced to the efforts of the U.S. Department of Defense Advanced Research Projects Agency (DARPA). During the latter portion of the 1960s, DARPA funded a project to facilitate
25
26
communications between computers that resulted in the development of a protocol referred to as the Network Control Program (NCP). For a period of approximately seven years, NCP was used to support process-to-process communications between host computers via a packet switching network operated by the Advanced Research Project Agency (ARPA) referred to as ARPAnet. Although NCP allowed peer-to-peer communications, it lacked a degree of exibility that resulted in DARPA providing research grants to the University of California at Los Angeles (UCLA), Stanford Research Institute (SRI), and several additional universities. This resulted in a recommendation to replace NCP with a protocol referred to as the Transmission Control Program (TCP). Between 1975 and 1979, DARPA funding resulted in the development of TCP and the protocol responsible for the routing of packets that was given the name Internet Protocol (IP). Within a short period of time, the protocol suite was referred to as TCP/IP. In 1983, ARPA required all organizations that wished to connect their computers to ARPAnet to use the TCP/IP protocol suite. In 1983, ARPAnet was subdivided into two networks. One network, known as Military Network (MILNET), was developed for use by the Department of Defense. The second network that now represents nonmilitary sites was called the DARPA Internet. During the mid-1980s, a large number of networks were created using the TCP/IP protocol suite. Some networks represented associations of universities within a geographical area, while other networks were developed by commercial organizations. Each of these networks was interconnected using the ARPAnet as a backbone and resulted in the beginning of what is now known as the Internet. At the same time the ARPAnet was being used as a backbone by geographically separated regional networks, a new network was formed. The initial goal of this new network was to link ve supercomputer sites. This network, operated by the National Science Foundation (NSF) and was referred to as NSFnet, was established in 1986. As a relatively new network, the NSF built a backbone with 56-Kbps circuits that were upgraded to 1.544-Mbps T1 circuits by July 1988. Within a short period of time, several regional networks began to link their facilities to the NSFnet. Although the NSFnet was a noncommercial enterprise, several commercial networks were developed during the late 1980s that were interconnected to the NSFnet via points or locations referred to as Commercial Internet Exchanges (CIXs). Later, the CIXs evolved to become peering points that represent locations where modern-day Internet service providers interconnect their networks. By 1989, the original ARPAnet had become expensive to operate, while NSFnet provided a faster backbone infrastructure while providing a mirror image of the ARPAnet. This resulted in DARPA deciding to take ARPAnet out of service. In turn, the use of the NSFnet further increased. As LANs became
27
prevalent and were connected to the NSFnet, the term Internet was commonly used to reference the network of interconnected networks. As the use of the Internet expanded, the NSF did not have the staff required for various administrative duties associated with running the network, and issued contracts to facilitate the orderly growth in connectivity. Some companies were given the responsibility to operate Network Access Points (NAPs) through which companies could connect commercial networks to the Internet, while other companies received contracts to register domain names, such as xyz.com and myuniversity.edu. Eventually, the NSF contracted out all of the functions associated with operation of the Internet. By 1995, the NSF shut down its backbone as the number of NAPs, which later became known as peering points, proved sufcient for network interconnection purposes and made the NSFnet obsolete. Today, there are literally thousands of Internet service providers (ISPs) whose networks are interconnected to one another through peering points. To ensure interoperability, several organizations have been formed over the past 30 years to govern various aspects of the TCP/IP protocol suite. Some of the more prominent organizations include the Internet Activities Board (IAB), which was renamed the Internet Engineering Task Force (IETF); the Internet Assigned Numbers Authority (IANA); and the Internet Society (ISOC).
The IANA
The Internet Assigned Numbers Authority (IANA) until recently was supported by the U.S. government, but is now a not-for-prot organization with an
28
international board of directors. The IANA is responsible for Internet protocol addresses, domain names, and protocol parameters and serves as the central coordinating location for the Internet. The IANA dates to the creation of the Internet and was originally funded by the NSF. Due to international growth, it was felt that it would be more appropriate for IANAs activities to be supported by organizations that rely upon it. Thus, the IANA converted into a new, not-for-prot organization. Its role remains the same; although the IAB is responsible for RFCs, the IANA retains responsibility for any new numbering required to identify protocols, ports, or other components of the TCP/IP protocol suite. Thus, careful coordination between the IAB and IANA is required to ensure that RFCs do not adversely impact the TCP/IP protocol suite. Given an appreciation for the governing bodies of the Internet related to the development of RFCs, one can now focus on to the manner by which the TCP/IP protocol suite is standardized by examining a Request for Comments.
Draft RFC
A draft RFC is considered a public document, and a peer review process occurs during which comments are received and reviewed concerning whether or not the RFC removes its draft status and is distributed as an RFC standard.
29
Exhibit 3.1
consideration. Assuming that favorable or a lack of nonfavorable comments occur concerning the proposed standard, it can be promoted to a draft standard after a minimum period of six months.
RFC Standard
After a review period of at least four months, the Internet Engineering Steering Group (IESG) can recommend a draft standard for adoption as a standard. Although the IESG must recommend the adoption of an RFC as a standard, the IAB is responsible for the nal decision concerning its adoption. Exhibit 3.1 illustrates the previously mentioned time track for the development of an RFC that represents both an Internet and TCP/IP protocol suite standard. As indicated in Exhibit 3.1, a minimum of ten months is required for an RFC to be standardized, and many times the process can require several years.
RFC Details
Once issued, an RFC is never revised; instead, an RFC is updated by new RFCs. When this situation occurs, the new RFC will indicate that it obsoletes or updates a previously published one.
RFC Categories
There are currently three categories of RFCs: Track, Informational, and Experimental. A Standards Track RFC species an Internet Standards Track protocol for the Internet community and requests discussion and suggestions for improvement. An Informational RFC provides information for the Internet community and does not specify an Internet Standard of any kind. The third category for RFCs is Experimental, which denes an experimental protocol for the Internet community that may or may not be adapted by the community.
Accessing RFCs
There are several locations on the Internet that maintain a repository of RFCs. Two such organizations are the RFC-Editor, a public organization, and Ohio
30
State University. In addition, one can also join several mailing groups to obtain RFC announcements. If one enters the keyword RFC index in a Web search engine, one can usually retrieve several locations where one can point the browser to access a list of RFCs. The RFC-Editor and Ohio State University operate very useful Web sites for accessing and retrieving RFCs, and probably should be considered prior to using other sites. Exhibit 3.2 illustrates the home page of the RFC-Editor. Its Web address is http://www.rfc-editor.org/rfc.html. In examining Exhibit 3.2, note that one can search for a RFC by number, author, title, date, or keyword. In addition, one can retrieve RFCs by number and category or use the screen shown in Exhibit 3.2 to access the ability to search for and retrieve RFC. The Computer and Information Science Department of Ohio State University operates a second Web site that warrants consideration in a search for RFCs. The Uniform Resource Locator (URL) of this site is http://www.cis.hiostate.edu/hypertext/information/rfc.html. Exhibit 3.3 illustrates RFC-Editor and Ohio State Universitys support and retrieval of RFCs in a number of ways that include a keyword search. In addition, the Ohio State University Web site provides access to an Internet Users Glossary and other documents that can be a valuable addition to anyones Web library. In concluding this examination of RFC sites, it will probably be of interest to many readers to view portions of an RFC. If one selects the Index retrieval method shown in Exhibit 3.3 and scrolls down the resulting display, one notes recently published RFCs. An example of this action is shown in Exhibit 3.4, where the Ohio State University site contained 2719 online RFCs when it was accessed by this author. In examining the entries in Exhibit 3.4, note the common format used for displaying a summary of RFCs. After the RFC number is displayed in the left margin, the title of the RFC is followed by the authors publication date, RFC format, and status. Although all RFCs must be written in 7-bit ASCII text, an approved secondary publication is in postscript. Note that by indicating the number of bytes required for storing the RFC, the index allows one to consider if one should download it via an existing connection that might not provide the bandwidth required for an expedient delivery, or if one should request its delivery via e-mail if time is not of the essence. As another option, if accessing the Index from home, one might consider waiting a return to work to access via a higher speed connection a lengthy document needed. To illustrate the general format of an RFC, examine the relatively recent document, RFC 2710 Multicast Listener Discovery (MLD) for IPv6. From the Index listing shown in Exhibit 3.4, one sees that it is a proposed standard. By clicking on the RFC number 2710 shown in the left column in Exhibit 3.4, a display of the RFC of interest is obtained. Exhibit 3.5 illustrates the view through a Web browser of the top portion of the beginning of the RFC. In examining Exhibit 3.5, note that the persons responsible for the RFC and their afliations are listed at the beginning of the
Exhibit 3.2 The Public Rfc-Editor Provides Several Methods for Finding and Retrieving RFCs
31
32
Exhibit 3.3 Viewing Access to RFCs via the Computer and Information Science Department of Ohio State University
Exhibit 3.4 Viewing a Portion of the Ohio State University RFC Index List
33
34
35
document as is the date of publication of the document. If this RFC obsoleted or updated a prior RFC, one would then note a line before the category line on the left side that would indicate the RFC number that was obsoleted or updated. Because the RFC viewed in Exhibit 3.5 did not obsolete or update a previously published RFC, that line was omitted from the document. Continuing the examination of the structure of an RFC, note that the title appears on a line below the submission date. Under the title is a status section that contains a paragraph that describes the RFC. Each RFC must include on its rst page a Status of this Memo section, which functions as a brief introduction to the RFC. Here, the term Memo is used, in actuality, as a memo following a format and structure evolves into an RFC. In continuing to view the contents of an RFC, one will encounter a copyright notice, followed by an abstract of the document. Some documents will also include a table of contents, followed by the body of the document. Most modern RFCs now terminate with three sections. The second from the last section contains a section titled Authors Addresses, which lists the authors, their organization, mailing address, telephone number, and e-mail address. The next to last section in the RFC contains a complete copyright notice. The last section in an RFC contains an acknowledgment section. Thus, the basic RFC provides information on how to contact the authors as well as a detailed description of the technology it is dening.
Chapter 4
38
and operation of the Address Resolution Protocol (ARP) and includes examining the rationale for a little-known ARP technique that can considerably facilitate the operation of delay-sensitive transmissions, such as Voice over IP. A discussion of Internet Control Message Protocol (ICMP) concludes this chapter. Because some ICMP types of messages are commonly used by hackers as a mechanism to begin an attack upon a network, information about ICMP presented in this chapter will be used when examining security as a separate entity later in this book.
39
Routing
The actual routing of an IP datagram occurs on a best-effort or connectionless delivery mechanism. This is because IP by itself does not establish a session between the source and destination before it transports datagrams. When IP transports a TCP segment, the TCP header results in a connection-oriented session between two Layer 4 nodes transported by IP as a Layer 3 network protocol. The importance of IP can be noted by the fact that routing between networks is based on IP addresses. As noted later in this chapter, the device that routes data between different IP addressed networks is known as a router. Because it would be extremely difcult, if not impossible, to statically congure every router in a large network to know the route to other routers and networks connected to different routers, routing protocols are indispensable to the operation of a dynamic series of interconnected IP networks. Thus, information presented in this chapter will also form a foundation for understanding the use of routing protocols, which covered as a separate entity in a later chapter of this book. The best way to obtain an appreciation for the operation of the Internet Protocol is through an examination of the elds in its header.
The IP Header
The current version of the Internet Protocol is version 4, resulting in IP commonly referred to as IPv4. The next generation of the Internet Protocol is IPv6. This section focuses attention on IPv4; IPv6 is discussed in the chapter that examines evolving technologies (Chapter 9). Exhibit 4.1 illustrates the elds contained in the IPv4 header. In examining the IPv4 header in Exhibit 4.1, note that the header consists of a minimum of 20 bytes of data, with the width of each eld shown with respect to a 32bit (four-byte) word.
Exhibit 4.1
40
suite and continuing today, most standards documents use the term octet to reference a collection of eight bits. The use of the term octet is due to differences in the composition of a byte during the 1960s. During the early development of computer systems, differences in computer architecture resulted in the use of groupings of ve to ten bits to represent a computer byte. Thus, the term byte at that time was ambiguous, and standards-making bodies decided to use the term octet to reference a grouping of eight bits. Because all modern computers use eight-bit bytes, the term byte is no longer ambiguous. Thus, the term byte is used throughout this book. To obtain an appreciation for the operation of IP, examine the functions of the elds in the header. When appropriate, there is discussion of the relation of certain elds to routing and security, topics that will be discussed in detail in later chapters.
Vers Field
The Vers eld is four bits in length and is used to identify the version of the IP protocol used to create an IP datagram. The current version of IP is v4, with the next generation of IP assigned version number 6. The four bits in the Vers eld support 16 version numbers. Under RFC 1700, a listing of Internet version numbers can be obtained and a summary of that listing is included in Exhibit 4.2. In examining Exhibit 4.2, note that the reason the next-generation Internet Protocol is IPv6 instead of IPv5 relates to the fact that version 5 was previously assigned to an experimental protocol referred to as the Streams 2 Protocol.
Hlen Field
The length of the IP header can vary due to its ability to support options. To allow a receiving device to correctly interpret the contents of the header from
Exhibit 4.2 Assigned Internet Version Numbers
Numbers Assignment
0 13 4 5 6 7 8 9 1014 15
Reserved Unassigned IP Streams IPv6 TP/IX P Internet Protocol (PIP) TUBA Unassigned Reserved
41
the rest of an IP datagram requires the receiving device to know where the header ends. This function is performed by the Hlen eld, the value of which indicates the length of the header. The Hlen eld is four bits in length. In Exhibit 4.1, note that the IP header consists of 20 bytes of xed information followed by options. Because it is not possible to use a four-bit eld to directly indicate the length of a header equal to or exceeding 320 bytes, the value in this eld represents the number of 32-bit words in the header. For example, the shortest IP header is 20 bytes, which represents 160 bits. When divided by 32 bits, this results in a value of 160/32 or 5, which is the value set into the Hlen eld when the IP header contains 20 bytes and no options.
Exhibit 4.3
42
A value of 000 indicates a normal precedence, while a value of 111 indicates the highest level of precedence and is normally used for network control. The value in the Precedence sub-eld is combined with a setting in the Type of Service sub-eld to indicate how a datagram should be processed. As indicated in the lower portion of Exhibit 4.3, there are six settings dened for the Type of Service sub-eld. To understand how this sub-eld is used, assume an application is transmitting digitized voice that requires minimal routing delays due to the effect of latency on the reconstruction of digitized voice. By setting the Type of Service sub-eld to a value of 1000, this would indicate to each router in the path between source and destination network that the datagram is delay sensitive and its processing by the router should minimize delay. In comparison, because routers are designed to discard packets under periods of congestion, an application in which the ability of packets to reach their destination is of primary importance would set the ToS sub-eld to a value of 0010. This setting would denote to routers in the transmission path that the datagram requires maximum reliability. Thus, routers would select other packets for discard prior to discarding a packet with its ToS sub-eld set to a value of 0010. Although the concept behind including a Service Type eld was a good idea, from a practical standpoint it is rarely used. The reason for its lack of use is the need for routers supporting this eld to construct and maintain multiple routing tables. While this is not a problem for small networks, the creation and support of multiple routing tables can signicantly affect the level of performance of routers in a complex network such as the Internet. Although routers in most networks ignore the contents of the Service Type eld, this eld is now being used to map IP datagrams being transmitted over an ATM backbone. Because ATM includes a built-in Quality of Service (QoS) that, at the present time, cannot be obtained on an IP network, many organizations are transmitting a variety of data to include Voice over IP over an ATM backbone, using the Service Type eld as a mechanism to map different IP service requirements into applicable types of ATM service. A second emerging application for the Service Type eld is to differentiate the requirements of different applications as they ow into an IP network. In this situation, the Service Type byte is renamed as the DiffServe (Differentiated Service) byte. The Internet Engineering Task Force is currently examining the potential use of the DiffServe byte as a mechanism to dene an end-to-end QoS capability through an IP network.
43
44
message. The actual value in the Fragment Offset eld is an integer that corresponds to a unit of eight bytes that indicates the offset from the previous datagram. For example, if the rst fragment were 512 bytes in length, the second fragment would have an offset value that indicates that this IP datagram commences at byte 513. By using the Total Length and Fragment Offset elds, a receiver can easily reconstruct a fragmented datagram.
Flag Field
The third eld in the IP header directly associated with fragmentation is the Flag eld. This eld is four bytes in length, with two bits used to denote fragmentation information. The setting of one of those bits is used as a direct fragment control mechanism, because a value of 0 indicates the datagram can be fragmented, while a value of 1 indicates do not fragment the datagram. The second fragment bit is used to indicate fragmentation progress. When the second bit is set to a value of 0, it indicates that the current fragment in a datagram is the last fragment. In comparison, a value of 1 in this bit position indicates that more fragments follow.
Protocol Field
It was noted in Chapter 2 that an IP header prexes the transport layer header to form an IP datagram. While TCP and UDP represent a large majority of Layer 4 protocols carried in an IP datagram, they are not the only protocols
45
transported. In addition, even if they were, one would need a mechanism to distinguish one upper layer protocol from another that is carried in a datagram. The method used to distinguish the upper layer protocol carried in an IP datagram is obtained through the use of a value in the Protocol eld. For example, a value of decimal 6 is used to indicate that a TCP header follows the IP header, while a value of decimal 17 indicates that a UDP header follows the IP header in a datagram. The Protocol eld is eight bits in length, permitting up to 256 protocols to be dened under IPv4. Exhibit 4.4 lists the current assignments of Internet protocol numbers. Note that although TCP and UDP by far represent the vast majority of TCP/IP trafc on the Internet and corporate intranets, other protocols can be transported and a large block of protocol numbers are currently unassigned. Also note that under IPv6, the protocol eld is named the Next Header eld. Chapter 9 examines IPv6 in detail.
46
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
HOPOPT ICMP IGMP GGP IP ST TCP CBT EGP IGP BBN-RCC-MON NVP-II PUP ARGUS EMCON XNET CHAOS UDP MUX DCN-MEAS HMP PRM XNS-IDP TRUNK-1 TRUNK-2 LEAF-1 LEAF-2 RDP IRTP ISO-TP4 NETBLT MFE-NSP MERIT-INP SEP 3PC IDPR XTP DDP IDPR-CMTP TP++ IL IPv6
IPv6 Hop-by-Hop Option Internet Control Message Protocol Internet Group Management Protocol Gateway-to-Gateway Protocol IP in IP (encapsulation) Stream Transmission Control Protocol CBT Exterior Gateway Protocol Any private interior gateway (used by Cisco for their IGRP) BBN RCC Monitoring Network Voice Protocol, Version 2 PUP ARGUS EMCON Cross Net Debugger Chaos User Datagram Protocol Multiplexing DCN Measurement Subsystems Host Monitoring Protocol Packet Radio Measurement XEROX NS IDP Trunk-1 Trunk-2 Leaf-1 Leaf-2 Reliable Data Protocol Internet Reliable Transaction Protocol ISO Transport Protocol Class 4 Bulk Data Transfer Protocol MFE Network Services Protocol MERIT Internodal Protocol Sequential Exchange Protocol Third Party Connect Protocol Inter-Domain Policy Routing Protocol XTP Datagram Delivery Protocol IDPR Control Message Transport Protocol TP++ Transport Protocol IL Transport Protocol IPv6
47
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
SDRP IPv6-Route IPv6-Frag IDRP RSVP GRE MHRP BNA ESP AH I-NLSP SWIPE NARP MOBILE TLSP SKIP IPv6-ICMP IPv6-NoNxt IPv6-Opts CFTP SAT-EXPAK KRYPTOLAN RVD IPPC SAT-MON VISA IPCV CPNX CPHB WSN PVP BR-SAT-MON SUN-ND WB-MON WB-EXPAK ISO-IP VMTP SECURE-VMTP VINES
Source Demand Routing Protocol Routing Header for IPv6 Fragment Header for IPv6 Inter-Domain Routing Protocol Reservation Protocol General Routing Encapsulation Mobile Host Routing Protocol BNA Encap Security Payload for IPv6 Authentication Header for IPv6 Integrated Net Layer Security IP with Encryption NBMA Address Resolution Protocol IP Mobility Transport Layer Security Protocol (using Kryptonet key management) SKIP ICMP for IPv6 No Next Header for IPv6 Destination Options for IPv6 Any host internal protocol CFTP Any local network SATNET and Backroom EXPAK Kryptolan MIT Remote Virtual Disk Protocol Internet Pluribus Packet Core Any distributed le system SATNET Monitoring VISA Protocol Internet Packet Core Utility Computer Protocol Network Executive Computer Protocol Heart Beat Wang Span Network Packet Video Protocol Backroom SATNET Monitoring SUN ND PROTOCOL-Temporary WIDEBAND Monitoring WIDEBAND EXPAK ISO Internet Protocol VMTP SECURE-VMPT VINES
(continues)
48
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117254 255
TTP NSFNET-IGP DGP TCF EIGRP OSPFIGP Sprite-RPC LARP MTP AX.25 IPIP MICP SCC-SP ETHERIP ENCAP GMTP IFMP PNNI PIM ARIS SCPS QNX A/N IPPCP SNP Compaq-Peer IPX-in-IP VRRP PGM L2TP DDX Reserved
TTP NSFNET-IGP Dissimilar Gateway Protocol TCF EIGRP OSPFIGP Sprite RPC Protocol Locus Address Resolution Protocol Multicast Transport Protocol AX.25 Frames IP-within-IP Encapsulation Protocol Mobile Internetworking Control Protocol Semaphore Communications Sec. Protocol Ethernet-within-IP Encapsulation Encapsulation Header Any private encryption scheme GMTP Ipsilon Flow Management Protocol PNNI over IP Protocol Independent Multicast ARIS SCPS QNX Active Networks IP Payload Compression Protocol Sitara Networks Protocol Compaq Peer Protocol IPX in IP Virtual Router Redundancy Protocol PGM Reliable Transport Protocol Any 0-hop protocol Layer-Two Tunneling Protocol D-II Data Exchange (DDX) Unassigned
IP Addressing
This section focuses on the mechanism that enables IP datagrams to be delivered to unique or predened groups of hosts. That mechanism is the addressing method used by the Internet Protocol, commonly referred to as IP addressing.
49
Under the current version of the Internet Protocol, IPv4, 32-bit binary numbers are used to identify the source and destination address in each datagram. It was not until RFC 760 that the Internet Protocol as we know it was dened and the next IP-related RFC, RFC 791 that obsoleted RFC 760, included the concept of IP address classes. Another key IP-related addressing RFC is RFC 950, which introduced the concept of subnetting. Subnetting represents a method of conserving IP network addresses and is described and discussed in detail later in this section.
Overview
Although a host is normally associated with a distinct IP address, in actuality IP addresses are used by the Internet Protocol to identify distinct device interfaces. That is, each interface on a device has a unique IP address. This explains how a router with multiple interfaces can receive communications addressed to the device on different router ports connected to LANs and WANs. Devices such as hosts, routers, and gateways can have either single or multiple interfaces. When the latter situation occurs, the device will be assigned multiple IP addresses one for each interface. Because most hosts are connected to a LAN via a single interface, most readers familiar with IP addressing associate a single IP address with a host. Although not as common as host workstations that use a single network connection, some servers and all rewalls and routers have multiple network connections. Exhibit 4.5 illustrates a network structure used to connect a corporate private network to the Internet. In this example, a demilitarized (DMZ)
Exhibit 4.5 Several Types of Communications Devices with Multiple Interfaces, with an IP Address Assigned to Each Interface
50
LAN is used to interconnect the router and rewall. A DMZ LAN is a LAN without servers or workstations, in effect forcing all communications to and from the Internet to pass through a rewall. Note that both the router and rewall have multiple ports. Thus, in an IP networking environment, each communications device would be assigned two IP addresses: one for each device interface.
Address Changes
During the development of the Internet Protocol, it was recognized that hosts would be connected to different networks and that those networks could be interconnected to one another to form a network of interconnected networks, now commonly referred to as the Internet. Thus, in developing an IP addressing scheme, it was also recognized that a mechanism would be required to identify a network as well as a host connected to a network. This recognition resulted in the development of an addressing scheme in which certain classes of IP addresses are subdivided into a two-level addressing hierarchy.
51
Exhibit 4.6 illustrates the two-level addressing hierarchy used by Class A, B, and C addresses whose composition and utilization are reviewed below. In examining the two-level IP addressing scheme shown in Exhibit 4.6, it should be noted that all hosts on the same network are usually assigned the same network prex, but must have a unique host address to differentiate one host from another. As noted later in this chapter, it is possible (although little noted) that multiple network addresses could reside on a common network. This is the exception rather than the rule. Similarly, two hosts on different networks should be assigned different network prexes; however, the hosts can have the same host address. In thinking about this addressing technique, one can consider it in many ways to be similar to the structure of a telephone number. That is, no two people in the same area code can have the same phone number. It is both possible and likely that somewhere the same phone number exists in a different area code. One can also view Class A, B, and C addresses as having the following general format: < Network Number, Host Number > where the combined network number and host number have the form xxxx.xxxx.xxxx.xxxx, with each x representing a decimal value. Probing deeper into IP addressing, one sees that the above format uses dotted decimal notation to reference IP addresses. By the end of this section, the reader will be conversant in the use of this method of IP address notation.
Rationale
During the IP standardization process, it was recognized that a single method of subdivision of the 32-bit address space into network and host portions would be wasteful with respect to the assignment of addresses. For example, assume all addresses are evenly split. This would result in the use of 16 bits for a network number and a similar number of bits for a host number. Without
52
considering host and network addressing restrictions (discussed later in the section), the use of 16 bits results in a maximum of 65,536 (2 16 ) networks with up to 65,536 hosts per network. Not only would the assignment of a network address to an organization that has only 100 computers result in a waste of 65,436 host addresses that could not be assigned to other organizations, but in addition, there could only be 65,536 networks. This limited number of networks would be clearly insufcient in an era where over 50,000 colleges, universities, high schools, and grade schools are now connected to the Internet via LANs, with each LAN having a distinct network address. Recognizing that the use of IP addresses could literally mushroom beyond their expectations, the designers of IP came up with a methodology whereby the 32-bit IP address space was subdivided into different address classes. The result of the efforts of IP designers was the denition of ve address classes, referred to as Class A through Class E.
Overview
Class A addresses were developed for use by organizations with extremely large networks or for assignments to countries. Class B addresses were developed for use by organizations with large networks, while Class C addresses are used by organizations with small networks. Two additional address classes are Class D and Class E. Class D addresses are used for IP multicasting, a technique where a single message is distributed to a group of hosts dispersed across a network. Class E addresses are reserved for experimental use. Unlike Classes A through C that incorporate a two-level IP addressing structure, Classes D and E use a single addressing structure. Exhibit 4.7 illustrates the structure or format of the ve dened IP address classes. In examining the entries in Exhibit 4.7, note that an address identier of variable length is the prex to each address class. The address identier prex is a single 0 bit for a Class A address, the bits 10 for a Class B address, etc. Because each address identier is unique, it becomes possible to examine one or more bits in the address identier portion of the address to determine the address class. Once an address class is identied, the subdivision of the remainder of the address into the network and host address portions can easily be obtained from a table lookup or from predened data within a program. For example, if a 32-bit address is a Class A address due to the rst bit being binary 0, then the next seven bits represent the actual network address, while the remaining 24 bits represent the host address. Similarly, if the rst two bits of the 32-bit address have the value 10, then the next 14 bits represent the actual network address, while the trailing 16 bits represent the host address. To obtain an appreciation of the use of each IP address class, a detailed examination of each address class follows, with particular attention to the composition of the network and host portion of each address for Classes A through C, as well as the manner by which all ve classes are used.
53
Exhibit 4.7
IP Address Formats
Class A Addresses
As indicated in Exhibit 4.7, a Class A address has the four-byte form of <network-number.host.host.host>, with seven bits used for the actual network address because the rst bit position must be set to a value of binary 0 to indicate the address is a Class A address. Because seven bits are available for the network address, one would logically assume 27 or 128 Class A networks can be dened. In actuality, networks 0 and 127 are reserved and cannot be used, resulting in Class A addressing supporting 126 networks. Because there are 24 bits used for a host identier, this means that each network is capable of supporting up to 224 2 or 16,277,214 hosts. The reason 2 is subtracted from the possible number of hosts results from the fact that no host can be assigned a value of all 0s nor a value of all 1s. As noted later in this chapter, a host value of all 1s indicates a broadcast address. Because only a small number of Class A networks can be dened, they were used up many years ago. Due to the large number of hosts that can be assigned to a Class A network, Class A addresses were primarily assigned to large organizations and countries that have national networks.
Loopback
One Class A network address that warrants attention results from the setting of all seven bits in the network address to 1, representing 127 in decimal. A
54
network address of 127.x.x.x is reserved as an internal loopback address and cannot be assigned as a unique IP address to a host. Thus, a question one may have is, why reserve a network address of 127 if it is not usable? The answer to this question is the fact that one can use a network address of 127.x.x.x as a mechanism to determine if ones computer that loaded TCP/IP protocol stack has an operational stack. An example of the use of a 127network address is illustrated in the top of Exhibit 4.8, which shows the use of the Ping command to query the device at address 127.1.1.1. Because this is a loopback address, this action tests the protocol stack on the authors computer. Note that in this example, Microsofts version of Ping uses the IP address 127.1.1.1 as a loopback. If one enters the address 127.0.0.0 as shown in the lower portion of Exhibit 4.8, Microsofts implementation of the TCP/IP protocol stack treats the IP address as an invalid address. All TCP/IP protocol stacks should, as a minimum, recognize the IP address 127.0.0.1 as an internal loopback address. Most protocol stacks will also consider a prex of 127 for a network address with any non-zero host address as a loopback. Thus, one can normally use 127.1.2.3, 127.4.5.6, and any other combination other than 127.0.0.0 as a loopback.
Class B Addresses
Continuing this exploration of IPv4 address classes, a Class B address has the form <network-number.network-number.host.host> for the four bytes in the address. A Class B network address is dened by setting the two high-ordered bits of an IP address to the binary value 10. Because two bits are used to identify the address, this means that the actual Class B network address is 14 bits in width, while the host portion of the address is two bytes or 16 bits in width. Thus, a Class B address is capable of supporting 214 (or 16,384) networks, with each network capable of supporting up to 216 2, (or 65,534) hosts. Due to the manner by which Class B addresses are subdivided into network and host portions, such addresses are normally assigned to relatively large organizations. In addition, through the process of subnetting, which is described later in this section, one Class B address can be provided to multiple organizations, with each organization informed as to the correct subnet mask to use to identify the portion of a Class B address provided for their use. If familiar with binary, one can easily convert permissible binary values in the rst byte of a Class B address into a range of decimal values. For example, because a Class B address commences with binary values 10, the rst byte must range between 1000000 and 10111111. One can convert to decimal by noting that the value of each position in a byte is as follows: 128 64 32 16 8 4 2 1 Thus, binary 10000000 is equivalent to decimal 128, while binary 10111111 is equivalent to decimal 191. Thus, the rst byte of a Class B address is restricted
55
Exhibit 4.8 Using an IP Loopback Address with a Ping Application to Verify the Status of the TCP/IP Protocol Stack
56
to the range 128 to 191, with 0 to 255 permitted in the second byte of the network address.
Class C Addresses
A Class C address is identied by the rst three bits in the IP address being set to the binary value of 110. This value denotes the fact that the rst three bytes in the 32-bit address identify the network, while the last byte identies the host on the network. Because the rst three bits in a Class C address are set to a value of 110, this means there are 21 bits available for the network address. Thus, a Class C address permits 221 (or 2,097,152) distinct network addresses. Since the host portion of a Class C address is 1 byte in length, the number of hosts per network is limited to 28 2 (or 254). Due to the subdivision of network and host portions of Class C addresses, they are primarily assigned for use by organizations with relatively small networks, such as a single LAN that requires a connection to the Internet. Because it is common for organizations to have multiple LANs, it is also quite common for multiple Class C addresses to be assigned to organizations that require more than 254 host addresses, but are not large enough to justify a Class B address. It is also common for an organization with multiple LANs located within close proximity to one another to share one Class C address through subnetting, a topic covered later in this chapter. Similar to the manner in the decimal range of Class B addresses was computed, one can compute the range of permitted Class C addresses. That is, because the rst three bits in the rst byte are set to a value of 110, the binary range of values are 11000000 to 11011111, representing decimal 192 through 223. The second and third bytes in a Class C address range in value from 0 to 255, while the last byte, which represents the host address, ranges in value from 1 to 254, because host values of 0 and 255 are not permitted.
Class D Addresses
Class D IP addresses represent a special type of address referred to as a multicast address. A muticast address is assigned to a group of network devices and allows a single copy of a datagram to be transmitted to a specic group. The members of the group are then able to receive a common sequence of datagrams instead of having individual series of datagrams transmitted to each member on an individual basis, in effect conserving network bandwidth. A Class D address is identied by the assignment of the binary value 1110 to the rst four bits of the address. The remaining 28 bits are then used to dene a unique multicast address. Because a Class D address always has the prex 1110, its rst byte varies from 11100000 to 11101111, resulting in the address range 224 through 239. Thus, the multicast address range becomes 224.0.0.0 through 239.255.255.255, with the use of a Class D address enabling approximately 268 million multicast sessions to simultaneously occur throughout the world.
57
To obtain an appreciation for the manner by which Class D addressing conserves bandwidth, consider a digitized audio or video presentation routed from the Internet onto a private network for which users working at 15 hosts on the private network wish to receive the presentation. Without a multicast transmission capability, 15 separate data streams, each containing a repetition of the audio or video presentation, would be transmitted through the Internet onto the private network, with only the destination address in each datagram in one stream differing from the datagram in a different stream. Here, 14 data streams are unnecessary and only function to clog the Internet as well as the private network. In comparison, through the use of multicasting, the 15 users requiring the presentation would join the multicast group, permitting one data stream to be routed through the Internet onto the private network. Common examples of the use of multicast include access to many news organization video feeds that result in a 2 2-inch television on a computer monitor. With frame refresh rates of 15 or more frames per second, a server of Unicast transmissions would consume a relatively large amount of bandwidth. Thus, the ability to eliminate multiple data streams via multicast transmission can prevent networks from being saturated. In addition, this capability reduces the number of datagrams that routers must route. This minimizes the necessity of routers that discard packets when they become saturated.
Class E Addresses
The fth address class dened for IPv4 is Class E. A Class E address is dened by the setting of the rst four bits in the 32-bit IP address to the binary value of 1111. Thus, a Class E address has a rst byte value between 11110000 and 11111111, or between 240 and 255 decimal. Class E addresses are currently reserved for experimental usage. Because there are 28 bits in a Class E address that can be used to dene unique addresses, this means there are approximately 268.4 million available Class E addresses. One common method used to denote Class A through E addresses is by examining the decimal value of the st byte of the 32-bit IPv4 address. To facilitate this examination, Exhibit 4.9 summarizes the range of decimal values for the rst byte of each address class.
Exhibit 4.9 IPv4 Address Class First Byte Values
Address Class First Byte Address Range
A B C D E
to to to to to
58
Exhibit 4.10
The rst eight bits that correspond to the rst byte in an IP address have the binary value 01010100. Then, the value of that byte expressed as a decimal number becomes 64 + 16 + 4, or 84. Next, the second bit in the binary string has the binary value of 11001110. From Exhibit 4.10, the decimal value of the second byte is 128 + 64 + 8 + 4 + 2, or 206. Similarly, the third byte, whose binary value is 11110001, has the decimal value 128 + 64 + 32 + 16 + 1, or 241. The last byte whose bit value is 00111101 would have the decimal value 32 + 16 + 8 + 4 + 1, or 61. Based on the preceding, one would enter the 32bit address in dotted decimal notation as 84.206.241.61, which is certainly easier to work with than a 32-bit string.
59
one would go to Start> Control Panel> Network and double-click on the TCP/IP entry in the conguration tab to assign an applicable series of dotted decimal values to congure a host on an IP network. To correctly congure a host on a TCP/IP network requires the entry of three dotted decimal addresses and a subnet mask, the latter also specied as a dotted decimal number. The three addresses one must specify include the IP address of the host being congured, the IP address of a gateway, and the IP address of a domain name server. The term gateway dates from the early days of ARPAnet when a device that routed datagrams between networks was referred to by that name. Today, this device is referred to as a router; however, in the wonderful world of TCP/IP conguration, the term gateway is still used. The second new device is the DNS that resolves (a fancy name for translates) host names into IP addresses, and its operation will be described in more detail later in this book (Chapter 6). At the present time, simply note that the DNS allows one to enter addresses into Web browsers, such as www.whitehouse.gov, and allows the TCP/IP protocol stack to perform the translation into an applicable IP address. All routing in an IP network occurs via an examination of IP addresses. Exhibit 4.11 illustrates the setting of the IP address tab in the TCP/IP Properties dialog box on the authors personal computer. Note that the button labeled Specify an IP address is shown selected, which indicates to the Windows operating system that a xed IP address will be assigned to the computer. In Exhibit 4.11, that address is 198.78.46.8, which, if one converts 198 into binary rather than glancing at Exhibit 4.9, one will note a value of 11000000. Because the rst three bits are set to binary 110, this denotes a Class C address. If one does not like working with binary, one could then use Exhibit 4.9 to determine that the setting of the rst byte to 198 is indeed a Class C address. Although the subnet mask will be discussed shortly, at the present time one can note here that its setting extends the network portion of an address internally within an organization. That is, the set bits in a subnet mask indicate the new length of the network portion of the address. Examining the subnet mask shown in Exhibit 4.11 and remembering that a value of 255 represents the setting of all bits in a byte to 1, this indicates that the network portion of the address is 24 bits long. Because a Class C address uses three bytes for the network address and one byte for the host address, this also means that a subnet mask of 255.255.255.0 for a Class C address indicates that the network is NOT subnetted. By clicingk on the tab labeled gateway, one can view the manner by which one can add and remove the IP addresses of routers. Exhibit 4.12 illustrates the TCP/IP Properties dialog box with its gateway tab selected. In this example, the IP address 198.78.46.1 was entered to denote the address of the router that will route datagrams with an IP network address other than 198.78.46.0 off the network. The third IP address used for the conguration of a TCP/IP protocol stack is the address of a DNS server that supports an organizations network. One can view the DNS conguration screen by clicking on the tab with that label.
60
Exhibit 4.11
Exhibit 4.13 illustrates the TCP/IP Properties dialog box with its DNS conguration tab selected. Note that the radio button associated with Enable DNS is shown selected, and a host name of gil was entered for this computer which is part of the domain fed.gov. Thus, the complete host name of this computer is gil.fed.gov. Note that one does not have to specify either host or domain. Doing so results in the IP address previously assigned to this computer, along with the host name entered in a record in the DNS server. This would then allow someone to access this computer by entering gil.fed.gov instead of the IP address of 198.78.46.8. If no one accesses the computer, one could safely omit the host and domain entries. If the computer is a popularly
61
Exhibit 4.12
used server, one would want to include the host name because it would be easier to remember than a sequence of dotted decimal numbers. The combination of host and domain is commonly referred to as a fully qualied domain name (FQDN). An FQDN means that the name is unique. In comparison, the host portion of the name (gil) could exist on many domains. Similarly, many computers could have a common domain name (fed.gov). Returning to Exhibit 4.13, note that one can specify up to four DNS server addresses. In addition, one can specify one or more domain sufx search orders where common domain sufxes include gov (government), com (commercial), edu (educational), mil (military), and org (nonprot organization).
62
Exhibit 4.13 Specifying the Address of the DNS Server and the Fully Qualied Name of the Host at the DNS Tab
Reserved Addresses
It was previously noted that the address block 127.0.0.0 through 127.255.255.255 is used for loopback purposes and can thus be considered to represent a block of reserved addresses. When considering IPv4 addressing, there are three additional blocks of reserved addresses that warrant attention. Those address blocks are dened in RFC 1918, entitled Address Allocation for Private Internet, and are summarized in Exhibit 4.14.
63
Exhibit 4.14 Reserved IP Addresses for Private Internet Use (RFC 1918)
Address Blocks
The original intention of RFC 1918 addresses was to dene blocks of IP addresses organizations could use on private networks that would be recognized as such. As the use of the Internet grew, the ability to obtain IP addresses became more difcult because existing network addresses were assigned to different organizations. This resulted in a second role for RFC 1918 addresses under a process referred to as Network Address Translation (NAT). Under NAT, internal RFC 1918 addresses can be dynamically translated to public IP addresses while reducing the number of public addresses that need to be used. For example, consider an organization with 500 stations that only has one Class C address. One possibility is to use RFC 1918 addresses behind a router connected to the Internet, with the router translating RFC 1918 addresses dynamically into available Class C addresses. Although no more that 254 RFC 1918 addresses could be translated into valid distinct Class C addresses at any point in time, it is also possible to use TCP and UDP port numbers to extend the translation process so each RFC 1918 address can be simultaneously used and translated. To do so, a router would translate each RFC 1918 address into a Class C address using a different port number, permitting thousands of translations for each Class C address. Another device that can provide address translation is a proxy rewall. In addition to translating addresses, a proxy rewall also hides internal addresses from the Internet community. This address hiding provides a degree of security because any hacker that attempts to attack a host on a network where a proxy rewall operates must rst attack the rewall. Two additional items to note about RFC 1918 addresses are that they cannot be used directly on the Internet, and they are a favorite source address used by hackers. The reason RFC 1918 addresses cannot be directly used on the Internet results from the fact that if one company does so, a second could also do so, resulting in addressing conicts and the unreliable delivery of information. Thus, as discussed, RFC 1918 addresses are translated into Class A, B, or C addresses when a private network using such addresses is connected to the Internet. Concerning hacker use, because source IP addresses are not checked by routers, it is quite common for an RFC 1918 address to be used as the source address by a hacker, making it difcult if not impossible to locate the hacker. Because it is quite common for hackers to use an RFC 1918 address as their address in conguring a TCP/IP protocol stack, it is also quite common
64
to create a router access list that lters datagrams that have an RFC 1918 address. When network security is discussed in Chapter 9, also included will be applicable access list statements to send datagrams with RFC 1918 source addresses to the great bit bucket in the sky.
Subnetting
One of the problems associated with the use of IP addresses is the fact that even with the use of classes, their use can be inefcient. For example, consider the use of a Class A network address. Although one can have up to 16,277,214 hosts per Class A network, one can only have 127 such networks. Thus, the assignment of a Class A network address to a large organization with 100,000 workstations would waste over 16 million IP addresses. Similarly, because a single LAN is incapable of supporting 100,000 workstations, one might consider asking for multiple network addresses, which would further waste a precious resource referred to as IPv4 addresses. Another problem associated with using more network addresses than required is the fact that routers must note those addresses. This means that the routers in a network, which could be the Internet or a private TCP/IP network, would have more entries in its routing tables. This, in turn, results in routers requiring a longer time to check the destination address in a datagram against entries in each routers routing table. The solution to the problems of wasted IP address space and unnecessary routing table entries is provided through the process of subnetting.
Overview
Subnetting was standardized in RFC 950 in 1985. This RFC denes a procedure to subnet or divide a single Class A, B, or C network into two or more subnets. Through the process of subnetting, the two-level hierarchy of Class A, B, and C networks previously illustrated in Exhibit 4.6 is converted into a three-level hierarchy. Exhibit 4.15 provides a comparison between the two-level hierarchies initially dened for Class A, B, and C networks and the three-level subnet hierarchy. In examining the lower portion of Exhibit 4.15, note that to convert the two-level hierarchy into a three-level hierarchy, the extension of the network address occurs by taking away a portion of the host address portion of an IPv4 address.
Subnetting Example
As previously noted, any of the IPv4 A through C address classes can be subnetted. To illustrate the subnet process, as well as obtain an appreciation for how subnetting facilitates the use of IPv4 address space, one can examine the process by understanding the concept of masking and the use of the subnet mask, both of which are essential to the extension of the network portion of an IP address beyond its predened location.
65
Exhibit 4.15 Comparing the Three-Level Subnet Hierarchy to the Two-Level Network Class Hierarchy
To illustrate the concept of subnetting, assume on organization has the need to install ve LANs within a building, with each network supporting between 10 and 15 workstations and servers. Further assume that the organization was previously assigned the IP Class C network address 198.78.46.0. Although the organization could apply for four additional Class C addresses, doing so would waste precious IPv4 address space, because each Class C address supports a maximum of 254 interfaces. In addition, if one anticipates connecting the organizations private networks to the Internet, the use of four additional Class C network addresses would be required in a number of routers in the Internet as well as the organizations internal routers. Instead of asking for four additional Class C addresses, one can use subnetting by dividing the host portion of the 198.78.46.0 IPv4 address into a subnet number and a host number. Because one needs to support ve networks, one must use a minimum of three bits from the host portion of the IP address as the subnet number. The reason a minimum of three bits from the host portion of the address must be used is due to the fact that the number of subnets one can obtain is 2n, where n is the number of bits. When n = 2, this yields four subnets, which is too few. When n = 3, one obtains eight subnets, which provides enough subnets for this example. Because a Class C address uses 24 for the network portion and eight bits for the host portion, the use of a three-bit subnet extends the network address such that it becomes 27 bits in length. This also means that a maximum of ve bits (8 3) can be used for the host portion of the address. Exhibit 4.16 illustrates the creation of the three-level addressing scheme just described. Note that the three-bit subnet permits eight subnets (000 through 111).
Exhibit 4.16
66
To the outside world, the network portion of the address remains the same. This means that the route from the Internet to any subnet of a given IP network address remains the same. This also means that routers within an organization must be able to differentiate between different subnets; however, routers outside the organization do not consider subnets. To illustrate the creation of ve subnets, assume one wants to commence subnet numbering at 0 and continue in sequence through subnet 4. Exhibit 4.17 illustrates the creation of ve subnets from the 198.78.46.0 network address. Note that the top entry in Exhibit 4.17, which is labeled Base Network, represents the Class C network address with a host address byte eld set to all zeroes. Because it was previously determined that three bits from the host address portion of the network would be required to function as a subnet identier, the network address is shown extended into the host byte by three portions.
Exhibit 4.17 Creating Extended Network Prexes via Subnetting
Base Network:1100110.01010000.00101110.00000000 Subnet #0:1100110.01010000.00101110.00000000 Subnet #1:1100110.01010000.00101110.00100000 Subnet #2:1100110.01010000.00101110.01000000 Subnet #3:1100110.01010000.00101110.01100000 Subnet #4:1100110.01010000.00101110.10000000 = = = = = = 198.78.46.0 198.78.46.0 198.78.46.32 198.78.46.64 198.78.46.96 198.78.46.128
Host Restrictions
In examining the subnets formed in Exhibit 4.17, it would appear that the hosts on the rst subnet can range from 0 through 31, while the hosts on the second subnet can range in value from 33 through 63, etc. In actuality, this is not correct because there are several restrictions concerning host addresses on subnets. First, one cannot use a base subnet address of all zeroes nor all ones. Thus, for subnet 0 in Exhibit 4.17, valid addresses would range from 1 to 30. Similarly for subnet 1, valid addresses would range from 33 to 62. Thus, subnetted host address restrictions are the same as for a regular IP nonsubnetted network. Another host address restriction that requires consideration is the fact that for all classes, one must have the ability to place some hosts on each subnet. Thus, as a minimum, the last two bit positions into the fourth byte of Class A, B, and C addresses cannot be used in a subnet. Exhibit 4.18 illustrates the number of bits that are available for subnetting for Class A, B, and C network addresses.
67
Exhibit 4.18
and its use was and to a degree still is discouraged. While this viewpoint has somewhat fallen from favor, it is important to note that some devices will not support the use of subnet zero and will not allow one to congure their interface address as being on a zero subnet. The reason for this restriction results because confusion can arise between a network and a subnet that have the same address. For example, assume network address 129.110.0.0 is subnetted as 255.255.255.9. This would result in subnet zero being written as 129. 110.0.0, which is the same as the network address. When conguring TCP/IP devices, it is important to note that some devices that support a zero subnet must be explicitly congured to do so. For example, the most popular manufacturer of routers is Cisco Systems. Although all Cisco routers support the use of subnet zero, one must use the router command ip subnet-zero to congure a Cisco router to do so. If one attempts to congure a subnet zero, one will receive an inconsistant network mask error message.
68
Exhibit 4.19
composition and use are discussed below. Prior to doing so, a few points concerning the use of the base network address of 198.78.46.0 are in order. First, to each router the destination address in each datagram appears as a 32-bit sequence. Thus, there is no knowledge of dotted decimal numbers except for the conguration of devices because routing occurs by the examination of the network portion of the address in each datagram. Second, each router begins its address examination by rst focusing attention on the rst bit in the destination address to determine if it is a Class A address. If the rst bit position is set to a binary 0, the router knows it is a Class A address, as well as knows that the rst byte in the 32-bit destination address represents the network address. Similarly, if the rst bit in the destination address is not a binary 0, the router examines the second bit to determine if the address is a Class B address, etc. Thus, a router can easily determine the address class of the destination address in a datagram that then indicates the length of the network portion of the address. The router can then use this information to search its routing table entries to determine the appropriate port to output the datagram, all without having to consider whether or not the address represents a subnetted address. Thus far, this chapter has discussed how to create a subnet and extend the network portion of an IPv4 address, but has not addressed the manner by which a router at the edge of the Internet knows how to route datagrams to their appropriate subnet. In addition, there is the question of how a station on an internal network can recognize subnet addressing. For example, if an IP datagram arrives at an organizational router with the destination address 198.78.46.38, how does the router know to place the datagram on subnet 1? The answer to these questions is the use of a subnet mask.
69
subnet, and host addresses. To accomplish this task, the subnet mask consists of a sequence of set to 1 bits that denotes the length of the network and subnet portions of the IPv4 network address associated with a network. That is, the subnet mask indicates the internal extended network address. To illustrate the use of the subnet mask, again assume the network address to be 198.78.46.0. Further assume that one wants to create a subnet mask that can be used by a router or workstation to note that the range of permissible subnets is 0 to 7. Because this requires the use of three bits, the subnet mask becomes: 11111111.11111111.11111111.11100000 Similar to the manner by which IP addresses can be expressed more efciently through the use of dotted decimal notation, one can also express subnet masks using that notation. Because each byte of all set bits has a decimal value of 255, the dotted decimal notation for the rst three bytes of the subnet mask is 255.255.255. Because the rst three bits of the fourth byte are set, its decimal value is 128 + 64 + 32, or 224. Thus, the dotted decimal specication for the subnet mask becomes: 255.255.255.244 Because a device can easily determine the address class of the destination address in a datagram, the subnet mask then informs the device of which bits in the address represent the subnet and indirectly which bits represent the host address on the subnet. To illustrate how this is accomplished, assume a datagram has arrived at a router with the destination IP address 198.78.46.97, and that the subnet mask was previously set to 255.255.255.224. The relationship between the IP address and the subnet mask would then appear as indicated in Exhibit 4.20.
Exhibit 4.20
Because the rst two bits in the destination address are set to 11, this indicates the address is a Class C address. The TCP/IP protocol stack knows that a Class C address consists of three bytes used for the network address, and one byte used for the host address. Thus, this means that the subnet must be 27 24, or three bits in length. This fact tells the router or workstation that bits 25 through 27, which are set to a value of 011 in the IP address,
70
identify the subnet as subnet 3. Because the last ve bits in the subnet mask are set to zero, this indicates that those bit positions in the IP address identify the host on subnet 3. Because the setting of those ve bits have the value 00001, this means that the IP address of 198.78.46.97 references host 1 on subnet 3 on the IPv4 network 198.78.46.0. To assist readers who need to work with subnets, Exhibit 4.21 provides a reference to the number of subnets that can be created for Class B and Class C networks, their subnet mask, the number of hosts per network, and the total number of hosts supported by a particular subnet mask. In examining the entries in Exhibit 4.21, one notes that the total number of hosts can vary considerably, based on the use of different length subnet extensions. Thus, one should carefully consider the effect of a potential subnetting process prior to actually performing the process.
Exhibit 4.21 Class B and Class C Subnet Mask Reference
Number of Subnet bits Subnet Mask Number of Subnetworks Hosts/ Subnet Total Number of Hosts
Class B 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Class C 1 2 3 4 5 6 7 8
255.255.192.0 255.255.224.0 255.255.240.0 255.255.248.0 255.255.252.0 255.255.254.0 255.255.255.0 255.255.255.128 255.255.255.192 255.255.255.224 255.255.255.240 255.255.255.248 255.255.255.252 255.255.255.192 255.255.255.224 255.255.255.240 255.255.255.248 255.255.255.252
32764 49140 57316 61380 63364 64260 64516 64260 63364 61380 57316 49140 32764 124 180 196 170 124
71
Exhibit 4.22
72
205.131.175.0 network and the 205.131.176.0 network would require datagrams to be forwarded to the router. Thus, each station of each network would be congured with the gateway IP address that represents an applicable assigned router IP interface address.
Address Resolution
The TCP/IP protocol suite begins at the network layer, with an addressing scheme that identies a network address and a host address for Class A, B, and C addresses. This addressing scheme actually evolved from an ARPAnet scheme that only required hosts to be identied, because that network began as a mechanism to interconnect hosts via serial communications lines. At the same time ARPAnet was being developed, work progressed separately at the Xerox Palo Alto Research Center (PARC) on Ethernet, a technology in which multiple stations were originally connected to a coaxial cable. Ethernet used a 48-bit address to identify each station on the network. As ARPAnet evolved as a mechanism to interconnect multiple hosts on geographically separated networks, IPv4 addressing evolved into a mechanism to distinguish the network and the host. Unfortunately, the addressing used by the TCP/IP protocol suite bore no relationship to the MAC address used rst by Ethernet and later by Token Ring.
Exhibit 4.23
73
characters in length to vendors. Those six hex characters represent the rst 24 bits of the 48-bit eld used to uniquely identify a network adapter card. The vendor then encodes the remaining 24 bits or six hex character positions to identify the adapter card manufactured by the vendor. Thus, each Ethernet and Token Ring adapter has a unique hardware burnt-in identier that denotes both the manufacturer and the adapter number produced by the manufacturer.
LAN Delivery
When an IP datagram arrives at a LAN, it contains a 32-bit destination address. To deliver the datagram to its destination, the router must create a LAN frame with an appropriate MAC destination address. Thus, the router needs a mechanism to resolve or convert the IP address into the MAC address of the workstation congured with the destination IP address. In the opposite direction, a workstation may need to transmit an IP datagram to another workstation. In this situation, the workstation must be able to convert a MAC address into an IP address. Both of these address translation requirements are handled by protocols specically developed to provide an address resolution capability. One protocol, referred to as the Address Resolution Protocol (ARP), translates an IP address into a hardware address. A second protocol, referred to as the Reverse Address Resolution Protocol (RARP), performs a reverse translation process, converting a hardware layer address into an IP address.
Exhibit 4.24
74
ARP packet indicate the byte numbers in a eld when a eld spans a fourbyte boundary.
75
The ARP standard includes provisions for devices on a network to update their ARP table with the MAC and IP address pair of the sender of the ARP Request. Thus, as ARP Requests ow on a LAN, they contribute to the building of tables that reduce the necessity of additional broadcasts.
Gratuitous ARP
There is a special type of ARP referred to as a gratuitous ARP that deserves mention. When a TCP/IP stack is initialized, it issues a gratuitous ARP, which represents an ARP request for its own IP address. If the station receives a reply containing a MAC address that differs from its address, this indicates that another device on the network is using its assigned IP address. If this situation occurs, an error message warning of an address conict will be displayed.
Proxy ARP
A proxy is a device that works on behalf of another device. Thus, a proxy ARP represents a mechanism that enables a device to answer an ARP request on behalf of another device. The rationale for the development of proxy ARP, which is also referred to as ARP Hack, dates to the early use of subnetting when a LAN could be subdivided into two or more segments. If a station on one segment required the MAC address of a station on another subnet, the router would block the ARP request because it is a Layer 2 broadcast, and routers operate at Layer 3. Because the router is aware of both subnets, it could answer an ARP request on one subnet on behalf of other devices on the second subnet by supplying its own MAC address. The originating device will then enter the routers MAC address in its ARP cache and will correctly transmit packets destined for the end host to the router.
RARP
The Reverse Address Resolution Protocol (RARP) was at one time quite popular when diskless workstations were commonly used in corporations. In such situations, the workstation would know its MAC address, but be forced to learn its IP address from a server on the network. Thus, the RARP would be used by the client to access a server on the local network and would provide the clients IP address. Similar to ARP, RARP is a Layer 2 protocol that cannot normally cross router boundaries. Some router manufacturers implemented RARP, which allows requests and responses to ow between networks. The RARP frame format is the same as for ARP. The key difference between the two is the setting of eld values. The RARP protocol lls in the senders hardware address and sets the IP address eld to zeroes. Upon receipt of the
76
RARP frame, the RARP server lls in the IP address eld and transmits the frame back to the client, reversing the ARP process.
ICMP
This chapter concludes by focusing on the Internet Control Message Protocol (ICMP). If one thinks about IP for a while, one realizes that there is no provision to inform a source of the fact that a datagram encountered some type of problem. This is because one of the functions of ICMP is to provide a messaging capability that reports different types of errors that can occur during the processing of datagrams. In addition to providing an error reporting mechanism, ICMP includes certain types of messages that provide a testing capability.
Overview
ICMP messages are transmitted within an IP datagram as illustrated in Exhibit 4.25. Note that although each ICMP message has its own format, they all begin with the same three elds. Those elds are an eight-bit Type Field, an eight-bit Code Field, and a 16-bit Checksum Field. One can obtain familiarity with the capability of ICMP by examining the use of some of the elds within an ICMP message. The Type and Code Fields within an ICMP message are discussed rst.
Exhibit 4.25 ICMP Messages are Transported via Encapsulation within an IP Datagram
77
type values of 0 and 8. A Type Field value of 8 represents an echo request, while a Type Field value of 0 denotes an ICMP echo reply. Although their ofcial names are Echo Request and Echo Reply, most people are more familiar with the term Ping, which is used to reference both the request and the reply. Exhibit 4.26 lists ICMP Type Field values that currently identify specic types of ICMP messages.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2029 30 31 32 33 34 35 36 37 38 39 40 41255
Echo Reply Unassigned Unassigned Destination Unreachable Source Quench Redirect Alternate Host Address Unassigned Echo Request Router Advertisement Router Selection Time Exceeded Parameter Problem Timestamp Timestamp Reply Information Request Information Reply Address Mask Request Address Mask Reply Reserved (for Security) Reserved (for Robustness Experiment) Traceroute Datagram Conversion Error Mobile Host Redirect IPv6 Where-Are-You IPv6 I-Am-Here Mobile Registration Request Mobile Registration Reply Domain Name Request Domain Name Reply SKIP Photuris Reserved
78
Evolution
Over the years from its rst appearance in RFC 792, ICMP has evolved through the addition of many functions. For example, a Type 4 (source quench) represents the manner by which an endstation indicates to the originator of a message that the host cannot accept the rate at which the originator is transmitting packets. The recipient will send a ow of ICMP Type 4 messages to the originator as a message for the origination to slow down its transmission. When an acceptable ow level is reached, the recipient will terminate its generation of source quench messages. Although popularly used many years ago for controlling trafc, the TCP slow-start algorithm has superseded a majority of the use of ICMP Type 4 messages. ICMP message types that warrant discussion are Type 5 and Type 7. A router generates a Type 5 (redirect) message when it receives a datagram and determines that there is a better route to the destination network. This ICMP message informs the sender of the better route. A Type 7 message (time exceeded) indicates that the Time to Live Field value in an IP datagram header was decremented to 0, and the datagram was discarded. As will be discussed later in this book, ICMP provides a foundation for several diagnostic testing applications. Unfortunately, this testing capability can be abused by unscrupulous persons and results in many organizations ltering ICMP messages so that they do not ow from the Internet onto a private network.
79
Destination Unreachable Codes 0 Net Unreachable 1 Host Unreachable 2 Protocol Unreachable 3 Port Unreachable 4 Fragmentation Needed and Dont Fragment was Set 5 Source Route Failed 6 Destination Network Unknown 7 Destination Host Unknown 8 Source Host Isolated 9 Communication with Destination Network is Administratively Prohibited 10 Communication with Destination Host is Administratively Prohibited 11 Destination Network Unreachable for Type of Service 12 Destination Host Unreachable for Type of Service 13 Destination Host Unreachable for Type of Service 14 Communication Administratively Prohibited 15 Precedence cutoff in effect Redirect Codes 0 Redirect 1 Redirect 2 Redirect 3 Redirect
Network (or subnet) Host Type of Service and Network Type of Service and Host
Alternate Host Address Codes 0 Alternate Address for Host Time Exceeded Codes 0 Time to Live Exceeded in Transit 1 Fragment Reassembly Time Exceeded Parameter Problem Codes 0 Point Indicates the Error 1 Missing a Required Option 2 Bad Length
(continues)
11
12
80
Exhibit 4.27 ICMP Code Field Values Based on Message Type (continued)
Message Type Code Field Values
40
Photuris Codes 0 Reserved 1 Unknown security parameters index 2 Valid security parameters, but authentication failed 3 Valid security parameters, but decryption failed
Chapter 5
TCP
The Transmission Control Protocol (TCP) is a connection-oriented protocol. This means that the protocol will not forward data until a session is established in which the destination acknowledges it is ready to receive data. This also means that the TCP setup process requires more time than when UDP is used as the transport layer protocol. However, because one would not want to commence certain operations, such as remote log on or a le transfer, unless one knows the destination is ready to support the appropriate application, the use of TCP is more suitable than UDP for certain applications. Conversely, in examining UDP, one will realize that this transport layer protocol similarly supports certain applications better than other applications. The best way to become familiar with TCP is by rst examining the elds in its header.
82
Exhibit 5.1
reason for this additional complexity results from the fact that TCP is not only a connection-oriented protocol, but, in addition, supports error detection and correction as well as packet sequencing, with the latter used to note the ordering of packets and includes determining if one or more packets are lost.
83
may encounter the term socket, sometimes incorrectly used as a synonym for port. In actuality, the destination port in the TCP or UDP header plus the destination IP address cumulatively identify a unique process or application on a host. The combination of port number and IP address is correctly referenced as a socket. At the server, the destination port value of 23 identies the application as Telnet. When the server forms a response, it rst reverses source and destination IP addresses. Similarly, the server places the source port number in the destination port eld, which enables the Telnet originators application to correctly identify the response to its initial datagram.
Exhibit 5.2 Port Numbers with Multiple Applications Multiplexed via Serial Communications to a Common IP Address
84
Port Numbers
The universe of both TCP and UDP port numbers can vary from a value of 0 to 65535, resulting in a total of 65,535 ports capable of being used by each transport protocol. This so-called port universe is divided into three ranges referred to as Well-Known Ports, Registered Ports, and Dynamic or Private Ports.
Well-Known Ports
Well-Known Ports are the most commonly used port values as they represent assigned numerics that identify specic processes or applications. Ports 0 through 1023 represent the range of Well-Known Ports. These port numbers are assigned by the Internet Assigned Numbers Authority (IANA) and are used to indicate the transportation of standardized processes. Where possible, the same Well-Known Port number assignments are used with TCP and UDP. Ports used with TCP are normally used to provide connections that transport longterm conversations. In some literature, one may encounter Well-Known Port numbers being specied as in the range of value from 0 to 255. While this range was correct many years ago, the modern range for assigned ports managed by the IANA was expanded to cover the rst 1024 port values from 0 to 1023. Exhibit 5.3 provides a summary of the port value assignments from 0 through 255 for Well-Known Ports to include the service supported by a particular port and the type of port TCP or UDP for which the port number is primarily used. A good source for the full list of assigned port numbers is RFC 1700.
Registered Ports
Registered ports are ones whose values range from 1024 through 49151. Although all ports above 1023 can be used freely, the IANA requests vendors to register their application port numbers with them.
85
Exhibit 5.3 Well-Known TCP and UDP Services and Port Use
Keyword Service Port Type Port Number
TCPMUX RJE ECHO DAYTIME QOTD CHARGEN FTD-DATA FTP TELNET SMTP MSG-AUTH TIME NAMESERVER NICNAME DOMAIN BOOTPS BOOTPC TFTP FINGER HTTP KERBEROS RTELNET POP2 POP3 NNTP NTP NETBIOS-NS NETBIOS-DGM NETBIOS-SSN NEWS SNMP SNMPTRAP BGP HTTPS RLOGIN TALK
TCP Port Service Multiplexer Remote Job Entry Echo Daytime Quote of the Day Character Generator File Transfer (Default Data) File Transfer (Control) Telnet Simple Mail Transfer Protocol Message Authentication Time Host Name Server Who Is Domain Name Server Bootstrap Protocol Server Bootstrap Protocol Client Trivial File Transfer Protocol Finger World Wide Web Kerberos Remote Telenet Service Post Ofce Protocol Version 2 Post Ofce Protocol Version 3 Network News Transfer Protocol Network Time Protocol NetBIOS Name Server NetBIOS Datagram Service NetBIOS Session Service News Simple Network Management Protocol Simple Network Management Protocol Traps Border Gateway Protocol Secure HTTP Remote Login Talk
TCP TCP TCP and UDP TCP and UDP TCP TCP TCP TCP TCP TCP TCP TCP TCP and UDP TCP TCP and UDP TCP TCP UDP TCP TCP TCP TCP TCP TCP TCP TCP and UDP UDP UDP UDP TCP UDP UDP TCP TDP TCP TCP and UDP
1 5 7 13 17 19 20 21 23 25 31 37 42 43 53 67 68 69 79 80 88 107 109 110 119 123 137 138 139 144 161 162 179 413 513 517
86
The actual entry in the Sequence Number eld is based on the number of bytes in the TCP Data eld. That is, because TCP was developed as a byteoriented protocol, each byte in each packet is assigned a sequence number. Because it would be most inefcient for TCP to transmit one byte at a time, groups of bytes, typically 512 or 536, are placed in a segment and one sequence number is assigned to the segment and placed in the Sequence eld. That number is based on the number of bytes in the current segment as well as previous segments, as the Sequence eld value increments its count until all 16-bit positions are used and then continues via a rollover through zero. For example, assume the rst TCP segment contains 512 bytes and a second segment will have the sequence number 1024. The Acknowledgment Number eld, which is also 32 bits in length, is used to verify the receipt of data. The number in this eld also reects bytes. For example, returning to the example sequence of two 512-byte segments, when the rst segment is received, the receiver expects the next sequence number to be 513. Therefore, if the receiver were acknowledging each segment, it would rst return an acknowledgment with a value of 513 in the Acknowledgment Number eld. When it acknowledges the next segment, the receiver would set the value in the Acknowledgment Number eld to 1025, etc. Because it would be inefcient to have to acknowledge each datagram, a variable or sliding window is supported by TCP. That is, returning an Acknowledgment Number eld value of n + 1 would indicate the receipt of all bytes through byte n. If the receiver has the ability to process a series of multiple segments and each is received without error, it would be less efcient to acknowledge each datagram. Thus, a TCP receiver can process a variable number of segments prior to returning an acknowledgment that informs the transmitter that n bytes were received correctly. To ensure lost datagrams or lost acknowledgments do not place TCP in an innite waiting period, the originator sets a timer and will retransmit data if it does not receive a response within a predened period of time. The previously described use of the Acknowledgment Number eld is referred to as Positive Acknowledgment Retransmission (PAR). Under PAR, each unit of data must be either implicit (sending a value of n + 1 to acknowledge receipt of n bytes) or explicit. If a unit of data is not acknowledged by the time the originators timeout period is reached, the previous transmission is retransmitted. When the Acknowledgment Number eld is in use, a ag bit, referred to as the ACK ag in the Code eld, will be set. The six bit positions in the Code Bits eld are discussed below.
Hlen Field
The Header Length (Hlen) eld is four bits in length. This eld, which is also referred to as the Offset eld, contains a value that indicates where the TCP header ends and the Data eld begins. This value is specied as a number of 32-bit words. It is required due to the fact that the inclusion of options can result in a variable-length header. Because the minimum length of the
87
TCP header is 20 bytes, the minimum value of the Hlen eld would be 5, denoting ve 32-bit words, which equals 20 bytes.
URG Bit
The Urgent (URG) bit or ag is used to denote an urgent or priority activity. When such a situation occurs, an application will set the URG bit position, which acts as a ag and results in TCP immediately transmitting everything it has for the connection instead of waiting for additional characters. An example of an action that could result in an application setting the Urgent ag would be a user pressing the CTRL-BREAK key combination. A second meaning resulting from the setting of the Urgent bit or ag is that it also indicates that the Urgent Pointer eld is in use. Here, the Urgent Pointer eld indicates the offset in bytes from the current sequence number where the Urgent data is located.
ACK Bit
The setting of the ACK bit indicates that the segment contains an acknowledgment to a previously transmitted datagram or series of datagrams. Then the value in the Acknowledgment Number eld indicates the correct receipt of all bytes through byte n by having the byte number n + 1 in the eld.
PSH Bit
The third bit position in the Code Bit eld is the Push (PSH) bit. This onebit eld is set to request the receiver to immediately deliver data to the application and ags any buffering. Normally, the delivery of urgent information would result in the setting of both the URG and PSH bits in the Code Bits eld.
RST Bit
The fourth bit position in the Code Bits eld is the Reset (RST) bit. This bit position is set to reset a connection. By responding to a connection request with the RST bit set, this bit position can also be used as a mechanism to decline a connection request.
88
SYN Bit
The fth bit in the Code Bits eld is the Synchronization (SYN) bit. This bit position is set at start-up during what is referred to as a three-way handshake.
FIN Bit
The sixth and last bit position in the Code Bits eld is the Finish (FIN) bit. This bit position is set by the sender to indicate that it has no additional data, and the connection should be released.
Window Field
The Window eld is 16 bits in length and provides TCP with the ability to regulate the ow of data between source and destination. Thus, this eld indirectly performs ow control. The Window eld indicates the maximum number of bytes that the receiving device can accept. Thus, it indirectly indicates the available buffer memory of the receiver. Here, a large value can signicantly improve TCP performance as it permits the originator to transmit a number of segments without having to wait for an acknowledgment while permitting the receiver to acknowledge the receipt of multiple segments with one acknowledgment. Because TCP is a full-duplex transmission protocol, both the originator and recipient can insert values in the Window eld to control the ow of data in each direction. By reducing the value in the Window eld, one end of a session in effect informs the other end to transmit less data. Thus, the use of the Window eld provides a bi-directional ow control capability.
Checksum Field
The Checksum eld is 16 bits (or two bytes) in length. The function of this eld is to provide an error detection capability for TCP. To do so, this eld is primarily concerned with ensuring that key elds are validated instead of protecting the entire header. Thus, the checksum calculation occurs over what is referred to as a 12-byte pseudo-header. This pseudo-header includes the 32-bit Source and Destination Address elds in the IP header, the eight-bit Protocol eld, and a Length eld that indicates the length of the TCP header and data transported within the TCP segment. Thus, the primary purpose of the Checksum eld is to ensure that data has arrived at its correct destination, and the receiver has no doubt about the address of the originator nor the length of the header and the type of application data transported.
89
previously noted, the URG bit position in the Code eld must be set for the data in the Urgent Pointer eld to be interpreted.
Options
The Options eld, if present, can be variable in length. The purpose of this eld is to enable TCP to support various options, with Maximum Segment Size (MSS) representing a popular TCP option. Because the header must end on a 32-bit boundary, any option that does not do so is extended via pad characters that in some literature is referred to as a Padding eld.
Padding Field
The Padding eld is optional and is included only when the Options eld does not end on a 32-bit boundary. Thus, the purpose of the Padding eld is to ensure that the TCP header, when extended, falls on a 32-bit boundary. Given an appreciation for the composition of the TCP header, one can now focus on the manner by which this protocol operates. In doing so, the reader will examine how TCP establishes a connection with a distant device and its initial handshaking process, its use of sequence and acknowledgment numbers, how ow control is supported by the protocol, and how the protocol terminates a session.
Connection Establishment
As mentioned earlier in this section, TCP is a connection-oriented protocol that requires a connection between two stations to be established prior to the actual transfer of data occurring. The actual manner by which an application communicates with TCP is through a series of function calls. To obtain an appreciation for the manner by which TCP establishes a session, one must rst examine connection function calls used by applications, for example, Telnet and FTP.
90
Exhibit 5.4
Port Hiding
One of the little-known aspects of TCP is the fact that some organizations attempt to hide their applications by conguring applications for ports other than well-known ports. For example, assigning Telnet to port 2023 instead of port 23 is an example of port hiding. Although a person with port scanning software would be able to easily discover that port 2023 is being used, the theory behind port hiding is that it reduces the ability of lay personnel to easily discover applications at different network addresses and then attempt to use those applications.
Passive OPEN
Returning to the use of a passive OPEN function call, its use governs the number of connections allowed. That is, while a client would usually issue one passive OPEN, a server would issue multiple OPENs because it is designed to service multiple sessions. Another term used for the passive end of the TCP action is responder or TCP responder. Thus, a TCP responder can be thought of as an opening up of connection slots to accept any inbound connection request without waiting for any particular station request.
Active OPEN
A station that needs to initiate a connection to a remote station issues the second type of OPEN call. This type of function call is referred to as an active OPEN. In the example illustrated in Exhibit 5.4, station X would issue an active OPEN call to station Y. For the connection to be serviced by station Y, that station must have previously issued a passive OPEN request which, as previously
91
explained, allows incoming connections to be established. To successfully connect, station Xs active OPEN must use the same port number that the passive OPEN used on station Y. In addition to active and passive OPEN calls, other calls include CLOSE (to close a connection), SEND and RECEIVE (to transfer information), and STATUS (to receive information for a previously established connection). Given an appreciation for the use of active and passive OPEN calls to establish a TCP connection, one can now explore the manner by which TCP segments are exchanged. The exchange of segments enables a session to occur. The initial exchange of datagrams that transport TCP segments is referred to as a three-way handshake. It is important to note how and why this process occurs. It has been used in modied form as a mechanism to create a denialof-service (DoS) attack, which is discussed in Chapter 9.
Overview
A three-way handshake begins with the originator sending a segment with its SYN bit in the Code Bit eld set. The receiving station will respond with a similar segment with its ACK bit in the Code Bit eld set. Thus, an alternate name for the three-way handshake is an initial SYN-SYN-ACK sequence.
Operation
To illustrate the three-way handshake, one can continue from the prior example shown in Exhibit 5.4, in which station X placed an active OPEN call to TCP to request a connection to a remote station and an application on that station. Once the TCP/IP protocol stack receives an active OPEN call, it will construct a TCP header with the SYN bit in the Code Bit eld set. The stack will also assign an initial sequence number and place that number in the Sequence Number eld in the TCP header. Other elds in the header, such as the destination port number, are also set and the segment is then transferred to IP for the formation of a datagram for transmission onto the network. To illustrate the operation of the three-way handshake, consider Exhibit 5.5 which illustrates the process between stations X and Y. Because the initial sequence number does not have to start at zero, assume it commenced at
92
Exhibit 5.5
1000 and then further assume that the value was placed in the Sequence Number eld. Thus, the TCP header owing from station X to station Y is shown with SYN = 1 and SEQ = 1000. Because the IP header results in the routing of a datagram to station Y, that station strips the IP header and notes that the setting of the SYN bit in the TCP header represents a connection request. Assuming station Y can accept a new connection, it will acknowledge the connection request by building a TCP segment. That segment will have its SYN and ACK bits in its Code Bit eld set. In addition, station Y will place its own initial sequence number in the Sequence Number eld of the TCP header it is forming. Because the connection request had a sequence number of 1000, station Y will acknowledge receipt by setting its Acknowledgment eld value to 1001 (station X sequence number plus 1), which indicates the next expected sequence number. Once station Y forms its TCP segment, the segment has an IP header added to form a datagram. The datagram ows to station X. Station X receives the datagram, removes the IP header, and notes via the setting of the XYN and ACK bits and Sequence Number eld value that it is a response to its previously issued connection request. To complete the connection request, station X must, in effect, acknowledge the acknowledgment. To do so, station X will
93
construct a new TCP segment in which the ACK bit will be set and the sequence number will be incremented by 1 to 1001. Station X will also set the acknowledgment number to 2001 and form a datagram that is transmitted to station Y. Once station Y examines the TCP header and conrms the correct values for the Acknowledgment and Sequence Number elds, the connection becomes active. At this point in time, both data and commands can ow between the two endpoints. As this occurs, each side of the connection maintains its own set of tables for transmitted and received sequence numbers. Those numbers are always in ascending order. When the applicable 16-bit eld reaches its maximum value, the settings wrap to 0. In examining the three-way handshake illustrated in Exhibit 5.5, note that after the originating station establishes a connection with the receiver, it transmits a second TCP initialization segment to the receivers and follows that segment with one or more IP datagrams that transport the actual data. In Exhibit 5.5, a sequence of three datagrams is shown being transmitted prior to station Y, generating an acknowledgment to the three segments transported in the three datagrams. The actual number of outstanding segments depends on the TCP window, discussed next.
94
Exhibit 5.6
Note that this window will slide up the segments as each datagram is transmitted. The third type of data covered by the sliding window is segments. In Exhibit 5.6, segments 21 through 24 are in the source station awaiting transmission, while segments 25 through 28 are awaiting coverage by the sliding window. Returning to Exhibit 5.1, which illustrated the TCP header, note the eld labeled Window. That eld value indirectly governs the length of the sliding window. In addition, the setting of that eld provides a ow control mechanism. For example, the Window eld transmitted by a receiver to a sender indicates the range of sequence numbers, which equates to bytes, that the receiver is willing to accept. If a remote station cannot accept additional data, it would then set the Window eld value to 0. The receiving station continues to transmit TCP segments with the Window eld set to 0 until its buffer is emptied a bit, no pun intended, in effect allowing the resumption of transmission conveying data by the originator. That is, when the transmitting station receives a response with a Window eld value of zero, it replies to the response with an ACK (Code eld ACK bit set to 1) and its Window eld set to a value of 0. This inhibits the ow of data. When sufcient buffer space becomes available at the receiver, it will form a segment with its Window eld set to a non-zero value, an indication that it can again receive data. At this point, the transmitting of data goes to the receiver.
Avoiding Congestion
One of the initial problems associated with TCP is the fact that a connection could commence with the originator transmitting multiple segments, up to the Window eld value returned by the receiver during the previously described three-way handshake. If there are slow-speed WAN connections between originator and recipient, it is possible that routers could become saturated when a series of transmissions originated at the same time. In such a situation, the router would discard datagrams, causing retransmissions that continued the abnormal situation. The solution developed to avoid this situation is referred to as a TCP slow start process.
95
contained as a eld in the TCP header. Instead, it becomes active through the algorithm that dened the slow start process. That is, when a new connection is established, the congestion window is initialized to a size of one segment, typically 512 or 536 bytes. Each time an ACK is received, the congestion windows length is increased by one segment. The originator can transmit any number of segments up to the minimum value of the congestion window or the Window eld value (Advertised Window). Note that ow control is imposed by the transmitter in one direction through the congestion window, while it is imposed in the other direction by the receivers advertised Window eld value. Although slow start commences with a congestion window of one segment, it builds up exponentially until it reaches the Advertised Window size. That is, it is incremented by subsequent ACKs from 1 to 2, then it is increased to 4, 8, 16, etc. until it reaches the Advertised Window size. Once this occurs, segments are transferred using the Advertised Window size for congestion control and the slow start process is terminated.
96
TCP Retransmissions
While it is obvious that the negative acknowledgment of a segment by the receiver returning the same segment number expected indicates a retransmission request, what happens if a datagram is delayed? Because delays across a TCP/IP network depend on the activity of other routers in the network, the number of hops in the path between source and destination, and other factors, it is relatively impossible to have an exact expected delay prior to a station assuming data is lost and retransmitting. Recognizing this situation, the developers of TCP included an adaptive retransmission algorithm in the protocol. Under this algorithm, when TCP submits a segment for transmission, the protocol records the segment sequence number and time. When an acknowledgment is received to that segment, TCP also records the time, obtaining a round-trip delay. TCP uses such timing information to construct an average round-trip delay that is used by a timer to denote, when the timer expires, that a retransmission should occur. When a new transmit-response sequence occurs, another round-trip delay is computed, which slightly changes the average. Thus, this technique slowly changes the timer value that governs the acceptable delay for waiting for an ACK. With an understanding of how TCP determines when to retransmit a segment, coverage of this protocol concludes with how TCP gracefully terminates a session.
Session Termination
If one remembers the components of the Code Bit eld, one remembers that this eld has a FIN bit. The purpose of this bit is to enable TCP to gracefully terminate a session. Before TCP supports full-duplex communication, each party to the session must close the session. This means that both the originator and recipient must exchange segments with the FIN bit set in each segment. Exhibit 5.7 illustrates the exchange of segments to gracefully terminate a TCP connection. In this example, assume station X has completed its transmission and indicates this fact by sending a segment to station Y with the FIN bit set. Station Y will acknowledge the segment with an ACK. At this point in time, station Y will no longer accept data from station X. Station Y can continue to accept data from its application to transmit to station X. If station Y does not have any more data to transmit, it will then completely close the connection by transmitting a segment to station X with the FIN bit set in the segment. Station X will then ACK that segment and terminate the connection. If an ACK should be lost in transit, segments with FIN are transmitted and a timer is set. Then either an ACK is received or a timeout occurs, which serves to close the connection.
UDP
The User Datagram Protocol (UDP) is the second transport layer protocol supported by the TCP/IP protocol suite. UDP is a connectionless protocol.
97
Exhibit 5.7
This means that an application using UDP can have its data transported in the form of IP datagrams without rst having to establish a connection to the destination. This also means that when transmission occurs via UDP, there is no need to release a connection, simplifying the communications process. Other features of UDP include the fact that this protocol has no ordering capability, nor does it provide an error detection and correction capability. This in turn results in a header that is greatly simplied and is much smaller than that of TCPs.
Exhibit 5.8
98
comparison to TCP. The best way to understand the operation of UDP is via an examination of its header. Note that similar to TCP, an IP header will prex the UDP header, with the resulting message consisting of the IP header, UDP header, and user data referred to as a UDP datagram.
Length Field
The Length eld indicates the length of the UDP datagram, to include header and user data that follows the header. This two-byte eld has a minimum value of 8, which represents a UDP header without data.
Checksum Field
The Checksum eld is two bytes in length. The use of this eld is optional and its value is set to 0 if the application does not require a checksum. If a checksum is required, it is calculated on what is referred to as a pseudoheader. The pseudo-header is a logically formed header that consists of the Source and Destination addresses and the Protocol eld from the IP header. By verifying the contents of the two address elds through its checksum computation, the pseudo-header ensures that the UDP datagram is delivered to the correct destination network and host on the network. This does not verify the contents of the datagram.
Operation
Because the UDP header does not include within the protocol an acknowledgment capability or a sequence numbering capability, it is up to the application layer to provide this capability. This enables some applications to add this capability, whereas other applications that run on top of UDP may elect not to include one or both. As previously described, a UDP header and its data are prexed with an IP header to form a data frame. Upon receipt of the datagram, the IP layer strips off that header and submits the remainder to UDP software at the transport layer. The UDP layer reads the destination port number as a mechanism to demultiplex the data and send it to its appropriate application.
99
Applications
UDP is primarily used by applications that transmit relatively short segments and for which the use of TCP would result in a high level of overhead in comparison to UDP. Common examples of applications that use UDP as a transport protocol include the Simple Network Management Protocol (SNMP), Domain Name Service (DNS), and the newly emerging series of applications from numerous vendors that transport digitized voice over the Internet and are collectively referred to as Internet telephony. Concerning Internet telephony, most implementations applications use both TCP and UDP. TCP is used for call setup, whereas UDP is used to transport digitized voice once the setup operation is completed. Because real-time voice cannot tolerate more than a fraction of a second of delay, Internet applications do not implement error detection and correction, as retransmissions would add delays that would make reconstructed voice sound awkward. Instead, because voice does not rapidly change, applications may either smooth an error or drop the datagram and generate a small period of noise that cannot affect the human ear. This is because most Internet telephony applications transmit 10-ms or 20-ms slices of digitized voice, making the error or even the loss of one of a few datagrams transmitting such slices of a conversation most difcult to notice.
Chapter 6
The DNS
This section examines the Domain Name System (DNS), and the database contained on a series of servers that make up the DNS. In doing so, it examines the purpose of the DNS, its structure, and the type of records stored on a DNS server.
Purpose
The purpose of the DNS is to provide the TCP/IP community with a mechanism to translate host addresses into IP addresses because all routing is based on
101
102
an examination of IP addresses. To accomplish this translation process, a series of Domain Name Servers are used to create a distributed database that contains the names and addresses of all reachable hosts on a TCP/IP network. That network can be a corporate intranet, the portion of the Internet operated by an Internet service provider (ISP), or the entire Internet.
103
Exhibit 6.1
the IP address of the ftp and the Web server operated by widgets.com, they can enter the fully qualied domain name for each server, and DNS will automatically perform the translation, assuming applicable DNS entries exist in a server. Thus, one can now look at how host names are converted into IP addresses, a process referred to as name resolution.
104
Data Flow
To illustrate the potential ow of data during the address resolution process, consider Exhibit 6.2. In Exhibit 6.2, the user at host gil.smart.edu just entered the host name www.cash.gov into his or her browser and pressed the Enter key, which in effect commences the resolution process. When the address resolution process commences, a UDP datagram ows to the local DNS on the domain smart.edu as indicated by 1 . Assuming that the DNS does not have an entry for the network address of the requested host (www.cash.gov), the resolution request ows upward to the next DNS via the use of a pointer record in the local DNS. This is indicated by numbers 2 , 3 , and 4 in Exhibit 6.2. Assuming the next DNS, which is shown as serving the domain isp.com, does not have an entry for www.cash.gov, the resolution request continues its ow up the DNS hierarchy until it will either reach a server that can resolve the request or arrives at the top-level DNS for the domain for which the host name is to be resolved. This is indicated by 5 , 6 , and 7 in Exhibit 6.2.
Exhibit 6.2
105
Once the address is resolved, the resolution does not ow directly back to the original DNS. Instead, the resolution ows back to each DNS in the hierarchy, providing each server with the ability to update its resolution table. This is indicated by 9 , 10 , 11 , 12 , 13 , and 14 , in Exhibit 6.2. Finally, the local DNS returns the resolved IP address, as indicated in 15 . At this point in time, the station can now form an IP datagram using a destination IP address obtained from the address resolution process.
Time Consideration
If a fully qualied domain name cannot have its IP address resolved by the local DNS, one or more additional servers must be queried. This means that datagrams conveying address resolution information will ow over relatively low-speed WAN connections for which the time delay then depends on the operating rate of those connections and other activity owing on each connection, as well as the processing being performed by routers that form the WAN. Because the DNS resolution process on a host results in the setting of a timer, if too much time occurs during the resolution process, the timer will timeout or expire. When this situation occurs, an error will be generated by the protocol stack that will be used by the application to generate an error message. One popular error message generated by a browser informs the user to check the destination name spelling and try again! The reason this message does not mention anything about the address resolution process is probably due to the fact that most people using browsers have no knowledge of the process and a more descriptive error message might be counterproductive.
DNS Records
Each DNS can contain a series of different types of records as well as multiple records for one or more record types. Exhibit 6.3 lists some of the more popular types of DNS records.
Exhibit 6.3 Examples of DNS Record Types
Record Type Description
Contains an IP address to be associated with a host name Contains the address of a mail exchange system(s) for the domain Contains the address of the name server(s) for the domain Canonical Name records contains an alias host name to associate with the host names contained in the record Contains a host name to be associated with an IP address in the record The Start of Authority records indicate the administrative name server for a domain as well as administrative information about the server
;Start of Authority (SOA) record smart.edu. IN SOA dns.smart.edu.owner.smart.edu( 19960105 ;serial#(date format) 10800 ;refresh(3 hours) 3600 ;retry(1 hour) 605800 ;expire(1 week) 86400) ;TTL(1 day) ;Name Server (NS) record smart.edu. IN NS dns.smart.edu. ;Mail Exchange (MX) record smart.edu. IN MX 20 mail.smart.edu ;Address (A) records. router.smart.edu. IN A 198.78.46.1 dns.smart.edu. IN A 198.78.46.2 mail.smart.edu. IN A 198.78.46.3 gil.smart.edu. IN A 198.78.46.30 ;Aliases in canonical Name (CNAME) record www.smart.edu IN CNAME gil.smart.edu.
In examining the record types listed in Exhibit 6.3, note that a domain can have multiple name servers or multiple mail exchange servers. Also note that while the A record provides information necessary for an address resolution process, the PTR record type supports reverse lookups. Exhibit 6.4 illustrates an example of a UNIX Zone le named smart.edu.zone for the domain smart.edu. Assume that the Class C address 198.78.46.0 was assigned to the domain smart.edu. Further assume that the server name, dns.smart.edu, is the name server, and that mail.smart.edu is the name of the mail server. In examining the entries in Exhibit 6.4, note that the string IN is used to indicate an Internet address and dates from a period where different types of addresses could be placed in a DNS database. Also note that names and host addresses end with a trailing dot (.) or period to indicate that they are an absolute name or address rather than a relative address.
107
The serial number in the SOA record identies the version of the DNS database. This value can be used by secondary servers as a metric concerning updating as the number increments whenever the database changes. The refresh value informs the server how often to check for updated information. If the secondary server cannot connect to the primary, it will use the retry value as the time period to wait before retrying. The expire time tells the secondary server when to stop answering queries about the primary when it cannot contact the primary. This value assumes that no answer is better than a bad answer and is shown set to a week (604,800 seconds) in Exhibit 6.4.
Checking Records
Upon further examination of the entries in Exhibit 6.4, one notes that the router in the 198.78.46.0 network has the host address .1, while the DNS has the host address .2, and the mail server has the address .3. Also note that the host gil.smart.edu has the alias www.smart.edu, and that the entry of either host name will return the IP address 198.78.46.30. Thus, by checking the records in a name server, it becomes possible to not only obtain the IP address for a particularly qualied domain name, but, in addition, to discover the alias or aliases assigned to one or more hosts in a domain. Given an appreciation for the role and operation of the domain name system and the servers used in the DNS, one can now focus on use of a series of built-in diagnostic tools provided as application programs in most versions of TCP/IP.
Diagnostic tools
Most operating systems with a TCP/IP protocol stack include several application programs that can be used to obtain information about the state of the network or a particular host. Examples of such applications include Ping, traceroute, nslookup, and nger. Each of these applications will be covered in this section.
Ping
Based on contradictory tales, the name ping was given to an application because it either resembled the use of radar or functioned as an anacronym for the full name, Packet Internetwork Groper. Regardless of whether the function of electronic equipment or the development of an anacronym accounted for its name, Ping is one of the most widely used tools if not the most widely used tool bundled as an application in TCP/IP software.
Operation
Through the use of the Ping application program, a series of Internet Control Message Protocol (ICMP) Echo type messages are transmitted to a distant host.
108
If the host is both reachable and active, it will respond to each ICMP Echo message with an ICMP Echo Response message. Not only does the use of Ping then tell you that the distant host is both reachable and active, the application also notes the time the echo left the computer and the reply was received to compute the round-trip delay time. Because timing can be very critical for such applications as Voice over IP and interactive query/response, the use of Ping may inform one ahead of time whether or not an application is suitable for use on the Internet or a corporate intranet.
Implementation
There is no standard that governs the manner by which Ping is implemented and different vendor versions, such as UNIX and Windows NT, may differ slightly from one another. One common form of the Ping command to invoke this application is shown below:
ping [-q l-v] [-r] [-c Count] [-I Wait] [-s size] host
where: -q selects quiet mode that only results in the display of summary information at start-up and completion -v selects verbose output mode that results in display of ICMP packets received in addition to Echo Requests -r selects a route option that displays the route of returned datagrams -c species the number of Echo Requests to be sent prior to concluding the test -i species the number of seconds to wait between transmitted datagrams containing an Echo Request -s species the number of data bytes to be transmitted host species the IP address or host name of the destination to be queried In examining the above options, note that some older implementations of Ping would run until interrupted with a CTRL-C unless a count value was specied through the use of the -c option. Also note that many versions of Ping differ with respect to the default wait time between transmitted Echo Requests. Some implementations may transmit echo requests 250 ms apart as a default, while other implementations may use a default of 500 ms, one second, or some other time value. A third item concerning the options listed above concerns the packet size specication variable, -s. This variable is used to specify the number of data bytes transmitted and results in a total packet size becoming the specied packet size plus 8, because there are eight bytes in the ICMP header. This means that the default on some implementations is 56 bytes, which results in a 64-byte packet. Given an appreciation for the options supported by Ping, one can now focus on its use within a TCP/IP environment by examining the use of the Microsoft Windows version of Ping, which one can access from the command prompt in Windows.
109
Exhibit 6.5
110
Exhibit 6.6
Using Ping
The lower portion of Exhibit 6.6 illustrates a second ping, a commercial site Web server whose address is similar, but not the same as the White House. This commercial site Web address is www.whitehouse.com. Note that Ping automatically resolves the entered host name into an IP address. Also note from the four replies that the round-trip delay varied from a low of 16 ms to a high of 32 ms. This variance is due to the fact that the path between source and destination is subject to random dataows from other users. This can delay the datagrams ones host is transmitting that contain ICMP Echo Requests.
Applications
Although Ping is quite often used to determine round-trip delay, that is not its primary use. Whenever a station is congured and connected to a network,
111
one of the rst things one should do is ping the station. If one obtains a response, this will indicate that the TCP/IP protocol stack is active. This will also mean that the station is properly cabled to the network and that its network adapter is operational. Otherwise, the protocol stack, cable, or network adapter may represent a problem. One can check out the protocol stack by pinging the address 127.0.0.1 or any address on the 127.0.0.0 network because this invokes a loopback. If one obtains a valid result, one would then run diagnostics on the network adapter card provided by the vendor and check or swap cables with a device known to work to isolate the problem. If one attempts to ping a host on a different network, it may not be a simple process to walk over to the destination if all one receives is a time-out message. The cause of a lack of response can range in scope from an inoperative router to an inactive destination. Fortunately, one can obtain insight into the route to the destination through the use of another program called traceroute.
Traceroute
Traceroute, as its name implies, traces the route to a specied destination that will be placed in the application command line. Similar to Ping, there are several variations concerning the implementation of traceroute. A common form of the traceroute command on a UNIX host is:
traceroute [-t count] [-q count] [-w count] [-p portnumber] host
where: -t species the maximum time-to-live (TTL) value, with a default of 30 used -q species the number of UDP packets transmitted with each TTL setting; the default is usually 3 -w species the time in seconds to wait for an answer from a router -q represents an invalid port address at the destination; port 33434 is commonly used
Operation
A better understand traceroute options requires an explanation of the manner by which this application operates. Thus, prior to observing the operation of the program and discussing its options, one can focus on how the program operates. Traceroute works by transmitting a sequence of UDP datagrams to an invalid port address on the destination host. Using common default settings, traceroute begins by transmitting three datagrams, each with its TTL eld value set to 1. As soon as the rst router in the path to the destination receives the datagram, it subtracts 1 from the value of its TTL eld and compares the result to 0. Because the value equals 0, the datagram will be considered to have
112
expired, and the router will return an ICMP Time Exceeded Message (TEM) to the originator, indicating the datagram expired. Because the originator noted the time the datagram was transmitted and the time a response was received, it is able to compute the round-trip delay to the rst router. It will also note that the IP address of that router is contained in the datagram transmitting the ICMP TEM message. To locate the second router in the path to the destination, traceroute will increment the TTL eld value by 1. Thus, the next sequence of datagrams will ow through the rst router, but will be discarded by the second router, resulting in another sequence of TEM messages being returned to the originator. This process will continue until the datagrams either reach the destination or the default TTL value is reached, and the application operating on the source terminates. If the datagrams reach the destination, because they are attempting to access an invalid port on the destination host, the destination will return a sequence of ICMP destination unreachable messages, indicating to the traceroute program that its job is nished. With an understanding of how the program operates, one can examine its use with a version included in Microsofts Windows operating system.
Exhibit 6.7 Microsofts Implementation of Traceroute (Called tracert) Provides Users with Four Options
113
the Microsoft implementation of traceroute supports four options. Probably the most commonly used option is the -h option, the use of which allows one to change the TTL default of a maximum of 30 hops normally used by the program.
Tracing a Route
To illustrate how tracert can supplement the use of Ping, one can utilize the former to trace the route from the authors network to the real Whitehouse, the one operated by the federal government. In the previous attempt at pinging the Whitehouse, efforts were not successful because each ping returned a timeout message. Exhibit 6.8 illustrates the use of Microsofts version of traceroute to trace the route to the Whitehouse Web server. Note that when the program is rst executed, it performs an address resolution and displays the IP address of the destination. Also note that the program displays the fact that it is tracing the route to the destination using a maximum of 30 hops, which represents the default value of the application. Note from Exhibit 6.8 that there were eight routers in the path to the Whitehouse, after which one could not access the Whitehouse network. The eighth router was located in Herndon, Virginia, and according to information returned by the router is operated by PSI.net, an Internet service provider. It was not possible to trace the full route into the Whitehouse network because the router at the Whitehouse Web site was programmed to block both pings and traceroutes. Thus, this resulted in the generation of a destination net unreachable message.
Exhibit 6.8 Using Microsofts Tracert to Trace the Route to the Whitehouse Web Server
114
In examining the entries in Exhibit 6.8, one also sees that the Microsoft implementation tries three times or more to accurately transmit a sequence of three datagrams with the same TTL eld values. Focus now on the roundtrip delay and router for each route. The rst path, which is from the authors workstation to the router located at IP address 205.131.175.2, required under 10 ms for each of three datagrams to reach, and for the computer issuing the tracert to receive a response. The second path was to the router operated by bbn.planet in Atlanta and resulted in a round-trip delay of 31 ms from the authors computer to that router. Looking at the router information returned, one sees that some routers provide a description of their location and operator and other identiers, while other routers simply provide their IP address. While all routers in this example returned some information, upon occasion some routers may not respond to a TTL eld value of zero condition and will simply throw the datagram away. When this situation occurs, the traceroute programs attempt will timeout and information for that router hop will be denoted through the use of an asterisk (*) as being unavailable.
Applications
As indicated by this particular use of traceroute, this utility program traces the route to a destination. In doing so, it displays the round-trip delay to each router hop, enabling one to determine if one or more routers are causing an excessive amount of delay on the path to a destination. Many times, traceroute can be a valuable tool in determining where network bottlenecks reside. In addition, one can use this tool as a mechanism to identify, to a degree, where along a path a failure of a communications circuit or hardware occurred if a destination should become unreachable. The reason for to a degree is due to the fact that if either a circuit becomes inoperative or a router fails, traceroute would not be able to distinguish between the two situations. Before traceroute can be used to isolate the general location of a problem, it is a valuable tool one should consider using either by itself or as a supplement to Ping.
NSLOOKUP
A third built-in application program that can be used to provide valuable information is NSLOOKUP. Unlike Ping and traceroute, which are implemented in essentially all versions of TCP/IP software, NSLOOKUP is available in most, but not all, operating systems that support TCP/IP.
Operation
NSLOOKUP is a name server lookup program. This program can be employed to examine entries in the DNS database of a particular host or domain. There are several ways NSLOOKUP can be implemented, with the most common being an interactive query mode. In the interactive query mode, one would
115
Exhibit 6.9
simply type the command nslookup. The other method NSLOOKUP supports is a single query mode. The general format of the latter is: nslookup [IP-address\host-name] If one enters the program name by itself, one will be placed in its interactive mode. In the interactive mode, the program uses the greater than sign (>) as a prompt for input. Exhibit 6.9 illustrates an example of the use of NSLOOKUP. In this example, after entering the command nslookup, the program responds with the name and address of the default name server. This is the name server whose address is congured in the TCP/IP protocol stack operating on the workstation one is using to run the program. That name, server, which is serv1.opm.gov., in this example will be used to resolve each request. In the example shown in Exhibit 6.9, the next step is to enter the Web server host address for Yale University. Note that NSLOOKUP not only resolved the IP address of www.yale.edu, but, in addition, provided the true name of the Web server because the response indicated that www.yale.edu is an alias. In the lower portion of Exhibit 6.9, note the prompt in the form of a greater than sign (>). Because the interactive query mode of NSLOOKUP was used, this prompt indicates that it is waiting for an NSLOOKUP command. Because NSLOOKUP queries a name server, one can use the program to retrieve information about different types of name server records. To do so, one must use the set type= command, followed by the record type, and then inform ones local DNS server of the distant DNS to be queried. Exhibit 6.10 provides a list of NSLOOKUP set of query record types one can enter to display a particular type of domain name server record. For example, entering set q=VID would be used to specify a query based on user ID.
Nslookup: set q[uerytype] Changes the type of information query. More information about types can be found in Request For Comment (RFC) 1035. (The set type command is a synonym for set querytype.) set q[uerytype]=value Default = A. Parameters Value A. ANY CNAME GID HINFO MB MG MINFO MR MX NS PTR SOA TXT UID UINFO WKS Computers IP address All types of data Canonical name for an alias Group identier of a group name Computers CPU and operating system type Mailbox domain name Mail group member Mailbox or mail list information Mail rename domain name Mail exchanger DNS name server for the named zone Computer name if the query is an IP address, otherwise the pointer to other information DNS domains start-of-authority record Text information User ID User information Well-known service description
117
Exhibit 6.11 Using NSLOOKUP to Retrieve MX Records from the Yale University Name Server
operations. In examining the entries in Exhibit 6.12, note that Yale University operates four name servers. Also note that the IP address for each server has also been obtained.
Exhibit 6.12 Reading the Start of Authority (SOA) Records at Yale University through the Use of NSLOOKUP
118
the ability of those records to be retrieved. Thus, if one sets the record type to A and again enters the domain yale.com, one would not obtain a listing of A records because Yale blocks their retrieval by foreign name servers.
Finger
Finger, a fourth built-in utility, is a program that enables a user to obtain information about who is logged onto a distant computer or to determine information abut a specic user. The use of this command results in a new verb referred to as ngering, which is not a rude gesture, but a query on the Internet.
Format
The general format of the nger command on a UNIX system is: finger [username] @ {host.name\IP.address} Exhibit 6.13 illustrates the nger command options under Microsoft Windows operation system. Note that the -l option results in a long display that can provide detailed information about a user or host computer.
Security Considerations
Similar to other network utility programs under the Microsoft operating system, nger runs in the command prompt dialog box as a DOS application. Because
Exhibit 6.13
119
Exhibit 6.14
the use of nger can provide detailed information about a user or host, it is normally blocked by programming a router to bar datagrams that contain the destination port that identies a nger application. An example of nger blocking is shown in Exhibit 6.14. In this illustration, the author attempted to nger several domains. First, this author ngered ford.com without success. Next, a U.S. government agency; followed by an attempt to nger Yale University; and, nally, the Federal Bureau of Investigation. Each of these nger attempts was unsuccessful as those organizations block ngering as a security measure.
Applications
As indicated in Exhibit 6.14, many organizations block ngering as a security measure. Thus, a logical question is, Why discuss its use? The reason is that many organizations will operate ngering internally, but block its ow into the network. Then, people within an organization obtain the ability to query a host or user to determine who is working on the host, their telephone number, the application they are using, and other information that may be of assistance when attempting to solve a problem. As indicated in this chapter, the TCP/IP protocol suite contains several built-in application programs that can be used to determine information about hosts, the paths between networks, and users on a host. By carefully considering the use of different application programs, one can obtain valuable tools that will assist in ensuring that if problems occur, one can focus attention on the potential location and perhaps even the cause of the problem.
Chapter 7
122
routers, this topic is also examined. For those of us from Missouri, the show me state, this chapter concludes with an examination of how two popular routing protocols operate in order to obtain an appreciation of the manner by which both routers in the Internet and on private TCP/IP networks understand where to route datagrams.
Network Routing
For a large network such as the Internet or a private network operated by a multinational corporation, it would more than likely be impractical for each router to have entries for each network address. Even if memory was free, whenever a table update was broadcast to adjacent routers, the time required to transmit routing table entries could become so long that it would preclude the ability to transport production data for signicant periods of time. Recognizing this potential problem, the various committees responsible for the development of the TCP/IP protocol suite also developed a series of routing protocols. Some protocols are used to convey information within a network consisting of two or more subnetworks managed by a common entity, with the collection of networks referred to as an autonomous system. Other protocols are designed to convey information between autonomous systems. Thus, rather than one routing protocol, the TCP/IP protocol suite supports a family of routing protocols. Because routing methods within an autonomous system differ from routing protocols used to interconnect autonomous systems, one can view the Internet or a corporate enterprise network as a global network and examine the manner by which routing occurs within a global system.
Autonomous Systems
In examining Exhibit 7.1, one can rst more narrowly dene an autonomous system. As previously mentioned, it represents a collection of networks managed by a common entity. In actuality, it is the routing protocol that is managed, with the result that only a single routing protocol is used within an autonomous system. Thus, one can also view an autonomous system as a group of networks that use routers to exchange routing information between subnetworks in the system via the use of a common routing protocol. Each network shown in Exhibit 7.1 can represent a corporate network, educational network, or governmental network. When connected to the Internet through the services of an Internet service provider (ISP), the ISP represents
123
Exhibit 7.1 A Global System Using Different Types of Protocols to Advertise Reachable Information
an autonomous system. If Exhibit 7.1 represents a private enterprise network, perhaps autonomous system 1 represents North America, system 2 represents South America, etc. Thus, each subnetwork in an autonomous network could represent a series of LANs and routers that connect ofces in California and the Pacic Northwest, Texas, the southwestern United States, etc. Because organizations acquire IP addresses at different points in time, there is no structure associated with an address relationship between networks in an autonomous system. This explains why the individual networks in autonomous system 1 are numbered 1.1, 3.2, and 4.7 in the example, while the networks located in autonomous system 2 are numbered 3.7, 5.7, and 6.3. For example, in real life, an ISP in Chicago might be responsible for providing routing and connectivity information for a mixture of Class A, B, and C networks whose IP addresses span the gamut of the valid range of addresses available for each class. The only restriction concerning addressing is the fact that each address must be within the allowable range; no single network address can be repeated anywhere else in the global system.
124
125
Exhibit 7.2
Recognizing the differences between an IGP and an EGP, one can now focus on the general type of information included in routing tables and the rationale for routers having to advertise the contents of their routing tables to neighbors.
1 1 2 3
In the preceding example, the term static is used to signify that the entries are permanent and do not vary. While there may be the need for dynamic
126
routing tables, in many situations, static routing remains a practical solution for conguring routers. For example, if an organization uses one router to connect a LAN to the Internet via an ISP, it makes sense and enhances router performance to use static routing. This is because the organizations router only needs to know the address of the ISPs router. By using static routing in this situation, the organizations router avoids transmitting router table updates, enabling less bandwidth required for overhead and more bandwidth becoming available for actual data transfer. Returning to the previous example, a problem with the above conguration is the fact that it does not indicate alternate paths between networks, For example, if the circuit between router R1 and router R2 failed, the above conguration does not indicate that datagrams could ow to network 1.2 via router R3. If one wanted to recongure router R1 with knowledge of all possible paths to the three networks, one possible port-network table would be as follows:
Port Network
1 1 2 2 3
In examining the preceding port/network table, note that there is no mechanism to distinguish the fact that routing a datagram via a particular port number to a network results in either direct or indirect routing. For example, from router R1 the transfer of a datagram via port 1 provides a direct route to network 1.3. If the datagram is transmitted via port 2, the datagram will have to be relayed via router R2 to reach network 1.3. Thus, another metric is required to distinguish direct paths from indirect paths. That metric is a hop count, which indicates the number of routers a datagram must ow through to reach a particular network. Thus, the routing table for router R1 might be revised as follows:
Port Network Hop Count
1 1 2 2 3
1 2 1 2 0
In examining the preceding port/network/hop count table, note that a direct connection to a network results in a router hop count of zero. Also
127
note that the preceding table provides the ability to distinguish the best route from one that requires more hops. What happens if a path between routers becomes inoperative? For example, consider the path between routers R1 and R2. If the circuit for this path becomes inoperative, how does router R1 obtain information to update its routing table? This update should allow the router to note whether or not a path is available or not available for use. Thus, to dynamically change routing, a router needs to know the state of paths between networks. To obtain this information, a router periodically transmits information to other routers. This information not only tells one router that the network is reachable via another network, but in addition, the lack of an update within a predened period of time could be used to inform the other router that the path between routers is not available for use. Then the other router will search its routing table, and if another route to a destination is available, make that the available route. Because timing is critical, routers also timestamp information stored in their routing tables. Depending on the manner by which a particular routing protocol is implemented, the timestamp may simply be used to purge entries from a routing table, provide a mechanism for selecting one entry over another, or perform another function.
128
Illustrative Network
To illustrate the operation of RIP requires the presence of a network. Because an RIP database maintains information about the link between networks, each link in the network is numbered. In addition, because each router represents a node in a network, for simplicity of illustration, the contents of routing tables are shown in terms of their connected links and number of hops required to reach other nodes in a network. Thus, Exhibit 7.3, which will form the basis for examining how RIP operates, shows a four-node network with ve numbered links.
Exhibit 7.3
From n to
Link
Hop Count
Local
129
Thus, for the router represented by node W in Exhibit 7.3, its routing table would be as follows upon initialization:
From W to
Link
Hop Count
Local
Under RIP, an active router will broadcast the contents of its routing table every 30 seconds. Thus, at t = 30 seconds after initialization, node W will broadcast its distance vector (W = 0) to all of its neighbors. Using Exhibit 7.3 to illustrate the operation of RIP, this means that because nodes X and Z are neighbors of node W, they will each receive the distance vector transmitted by node W. Node C receives the distance vector W = 0 on link 1. Upon receipt of this message, node X updates its routing table by adding 1 to the distant vector supplied by node W. Thus, distance vector table for node X would appear as follows:
From X to
Link
Hop Count
X W
Local 1
0 1
At this point in time, node X had a change in its distance vector table. Thus, when 30 seconds expire since its last table update transmission, it transmits a new distance vector set of information. This information would inform adjacent nodes on links 1, 3, and 5 that X = 0 and W = 1. As node Xs routing table update information ows to node Y, it now becomes possible for that node to be aware of node W although there is no direct path between nodes W and Y. Because the distance vectors from node X inform node Y of the hop count from X to itself and to W, node Y adds 1 to each hop count and stores the information in its routing table. If one logically assumes that node Y was powered on, it already had an initial entry to itself in its routing table. Thus, upon receipt of the two distance vector items of information from node X, node Ys routing table will have three entries. Those entries would be:
From Y to
Link
Hop Count
Y X W
Local 5 5
0 1 2
130
Note that in the preceding routing table, node Y now knows it can reach node W via link 5 and that it requires two hops to reach that node. Thus, although nodes W and Y are not directly connected to one another as table information is transmitted to adjacent nodes under RIP, it becomes possible for nonadjacent nodes to discover how to reach one another. While node Y updates its routing table, it is safe to assume that because at least 30 seconds have transpired, node Ws distance vector information reached node Z. Thus, node Z would have updated its routing table as follows:
From Z to
Link
Hop Count
Z W
Local 2
0 1
Because the discussion of the update of node Y followed the update of node X, at least 60 seconds transpired, which enables each node to transmit two routing table updates. Thus, node Y would also receive node Zs next routing table update that would be transmitted to adjacent nodes on links 2, 3, and 4. The routing table for node X would then be updated to the following state:
From X to
Link
Hop Count
X W Z W
Local 1 3 3
0 1 1 2
Note that at this point in time, node X knows two ways to reach node W: via link 1 with a hop count of 1, which represents a direct connection; or via link 2 with a hop count of 2, which represents an indirect connection. Thus, it is possible for RIP to provide a mechanism for routers to develop a routing table that contains alternate paths. Because node Z transmits its distance vector information on links 2, 3, and 4, that information also ows to both nodes W and Y in addition to X, whose routing table was just updated. Thus, one can also update the previously updated node Y routing table to ascertain the effect of a routing table update received from node Z. Node Ys routing table would now appear as follows:
131
From Y to
Link
Hop Count
Y X Z W W
Local 5 4 4 5
0 1 2 2 2
Because alternate routing entry information would grow exponentially as a mesh network grows in size, RIP does not normally store information about duplicate paths to the same node. Instead, when it computes its routing table update and adds 1 to a received hop count for a node, it compares the new value to the existing value if an entry for the node already exists in memory. If the computed value equals or exceeds the existing hop count, the information about the node received via a router table update is discarded. The exception to this situation is if a router is congured to maintain alternate routing entries to use in the event of a link failure.
Basic Limitations
The preceding example provides a general overview of the manner by which RIP enables nodes to learn the topology of a network. Although RIP does not normally provide alternate path information, the periodic transmission of table entries allows new paths to be learned, because existing information in router tables are time-stamped and an aging process will result in the old path being purged from memory. This process takes time, as table updates occur every 30 seconds. For example, it might take ve minutes for one node that is ten hops away from a non-adjacent node to learn that a path changed. A second limitation of RIP is the fact that it is limited to the maximum hop distance it supports. This distance is 16 hops, which means that an alternative protocol must be used for very large networks.
RIP Versions
The original version of RIP developed for use in TCP/IP dates to 1988 when it was adapted by the Internet Activities Board and published as RFC 1058. RIP gained widespread acceptance due to its inclusion as a routing protocol in the Berkeley 4BSD UNIX operating system. In fact, today, both UNIX and Windows NT workstations support RIP in passive mode, allowing such devices to receive and process table updates although as a passive device, they cannot respond to RIP requests nor broadcast the contents of their tables. Workstations that support RIP do so to avoid having to request information from other routers on a network. Although good in theory, most computers today are congured with a default gateway address for simplicity.
132
Exhibit 7.4
To obtain an appreciation of the difference between the original version of RIP (now referred to as RIPv1) and its successor (RIPv2), turn attention to the elds with the original RIP packet. Once an appreciation for the use of the elds in that packet has been obtained, one will have the foundation to examine the additional features and capabilities provided by RIPv2.
Command Field
The Command eld identies the function of the RIP packet. There are ve commands, as described below:
Command Description
1 2 3/4 5
Request for partial or full routing table information Response containing a routing table Turn on (3) or turn off (4) trace mode. This is now obsolete. Sun Microsystems internal use
Version Field
The Version eld identies the version of RIP. Initially, the value of this eld was 1 to indicate RIP version 1.
133
RIPv1 Limitations
In addition to supporting a maximum hop count of 16 with only a distance of 15 supported because a count of 16 indicates a destination is unreachable RIP has several additional disadvantages. Those disadvantages include an inability to differentiate between the bandwidth differences on different links and the fact that broadcasts can become signicantly large and consume bandwidth that cannot then be used for data transmission. Another limitation of RIPv1 is the fact that this routing protocol requires a subnet mask to be uniform across an entire network. This is because RIPv1 does not support the ability to contain a subnet mask entry in its routing table. Thus, RIPv1 assumes that the subnet mask is the same for all of its congured ports as the subnet whose value it learns for the network identier.
RIPv2
Recognizing some of the limitations associated with RIPv1, this routing protocol was modied in 1994, resulting in the development of RIPv2. RIPv2 is back-
134
Exhibit 7.5
ward-compatible with RIPv1. It adds several important features that enhance its capability. The additional features include a text password authentication capability, the inclusion of subnet masks in its routing tables, and a route tag that provides a mechanism for separating RIP routes from externally learned routes. Exhibit 7.5 illustrates the RIPv2 packet format. In comparing the elds in RIPv1 to RIPv2 packets, one notes the use of several new elds in RIPv2, as discussed below.
135
Exhibit 7.6
the value of a eld within the packet to a special value that tells a receiver to interpret the data differently. One can appreciate technique by examining how RIPv2 supports authentication.
Authentication Support
When the Address Family Identier eld in a RIPv2 packet is set to a value of hex FFFF, the header of the resulting RIP datagram changes into an authentication header. Exhibit 7.6 illustrates the elds in a RIPv2 authentication packet. In examining Exhibit 7.6, one sees that an Authentication Type eld value of 2 is for using a simple password. A eld of 16 bytes that allows one to convey up to a 16-character password follows this. If RIPv2 is communicating with a router supporting RIPv1, RIPv1 will ignore this entry because the value of hex FFFF in the fourth eld of the header is not recognized as an IP address family. A RIPv2-compliant router can be congured with or without authentication. If it is congured with authentication disabled, the router will accept and process both RIPv1 and RIPv2 unauthenticated messages. If the router receives a RIPv2authenticated message, it will discard the message. If the router is congured to support authentication, then unauthenticated messages will be discarded. Although RIPv2 added additional features, it maintained the maximum distance allowable between two stations at 15 hops. RIPv2 does not consider the fact that there could be other metrics besides a hop count that should be considered when determining a path. These shortcomings were considered in the development of a routing protocol referred to as Open Shortest Path First (OSPF), which is discusssed next.
OSPF
The use of Open Shortest Path First (OSPF) as a routing protocol in place of RIP results in both advantages and disadvantages. Although OSPF is more
136
efcient in its overall use of bandwidth, it consumes more bandwidth during its initial discovery process and represents a more complex process that consumes more router memory cycles. This chapter section focuses on obtaining an understanding of the manner by which OSPF operates and its key features.
Overview
The Open Shortest Path First (OSPF) routing protocol is a link state protocol that transmits routing table updates either when a change occurs or every 30 minutes via the use of a multicast address. Thus, before considering additional OSPF features, note that its use is not as great a detriment to bandwidth as the use of RIP.
Path Metrics
A second key feature of OSPF is the fact that paths are based on a true metric and not just a hop count. For example, OSPF routers pass messages to each other in the form of Link State Advertisements (LSAs). One type of LSA includes the IP address of a routers interface and the cost of that interface. Here, the cost is congured by the router administrator. While it is possible for a router administrator to associate any value to a router interface, RFC 1253 denes a series of recommendations concerning the assignment of costs to router interfaces for use of OSPF. Exhibit 7.7 illustrates that such costs are relative to a 100-Mbps operating rate.
Initialization Activity
Although the original OSPF routing protocol dates to the days of ARPAnet, it was not until RFC 2178 that the protocol became available for modern TCP/IP networks. Similar to RIP, OSPF is an IGP and is designed to run within a single autonomous system. Upon initialization, each router within an autonomous system records information about each of its interfaces. Each router in the
Exhibit 7.7 Potential OSPF LSA Costs
Data Rate of Interface Cost
>=
100 Mbps 10 Mbps E1 (2.048 Mbps) T1 (1.544 Mbps) 64 Kbps 56 Kbps 19.2 Kbps 9.6 Kbps
137
autonomous system then constructs a Link State Advertisement (LSA) packet that contains a list of all recently viewed routers and the costs previously associated with their interfaces. Rather than broadcasting the LSAs to all adjacent nodes as supported by RIP, OSPF subdivides a network into geographic entities (known as areas) and forwards LSA packets to routers within its area. A received LSA is then ooded to all other routers in an area, with each router updating its tables with a copy of the most recently received LSA. Thus, each router obtains complete knowledge of the topology of the area to which it was assigned.
Router Types
Under OSPF, a network or a group of networks can represent an area. Through the use of areas, routing table updates can be better controlled, with packet ooding occurring within an area while different areas communicate with one another to obtain information about networks within different areas. This subdivision of labor is based on the use of different types of routers, with the function of routers with respect to OSPF based on their type. If there is only one area, each router maintains a database of the topology of the area and only one router has to deal with external routes beyond the area. When there are multiple areas, a number of other types of routers may be required to perform specialized operations. In fact, under OSPF, there are six types of routers that can be used. Exhibit 7.8 describes the function of each type of OSPF router.
Message Types
As discussed, OSPF routers transmit messages in the form of LSAs. There are currently six types of LSAs used by the protocol. This chapter section briey discusses the function of each type of SLA message.
Exhibit 7.8 Types of OSPF Routers
Router Type Mnemonic Description
Backbone router Area border router Autonomous system boundary router Internal router Designated router Backup designated router
BR ABR ASBR
IR DR BDR
A router that has a connect to a backbone A router that has an interface to multiple areas A router that exchanges routing information with routers connected to other autonomous systems A router that connects networks within a common area A specied router that transfers information on behalf of adjacent routers on a subnet A router that backs up the designated router and takes over should the primary DR fail
Router Links Advertisement Network Links Advertisement Summary Links Advertisement Autonomous System Boundary Router Summary Link Advertisement Autonomous System External Link Advertisement Multicast Group Membership Link State Advertisement
Type 1 Message
A Type 1 LSA message is used to transmit information about a routers interface and the cost associated with the interface. Because an interface is dened with the use of an IP address, the information in a routers Link State Advertisement consists of an IP address-cost metric pair. Exhibit 7.9 lists the six types of SLA messages OSPF routers use.
Type 2 Message
The purpose of a Type 2 LSA message is to inform all routers within an area of the presence of a designated router (DR). Thus, a DR oods a Type 2 LSA upon its election. This message contains information about all routers in the area, as well as the fact that one is now the DR for the area.
Type 3 Message
Because an area border router (BR) connects adjacent areas, a mechanism is needed to describe networks reachable via the adjacent border router (ABR). Thus, an ABR router oods a Type 3 message into an area to inform routers in the area about other networks that are reachable from outside the area.
Type 4 Message
A Type 4 message describes the cost from the router issuing the message to an autonomous system boundary router. Thus, this message allows a boundary router that functions as a gateway to another autonomous system to note the cost associated with accessing different networks via different paths within its system.
139
Type 5 Message
A boundary router that connects autonomous systems generates a Type 5 message. This message describes an external network on another system reachable by the router. Thus, this message ows to routers in one autonomous system to describe a network reachable via a different system.
Type 6 Message
The last type of LSA is a Type 6 message. A Type 6 message enables a multicast-enabled OSPF router to distribute multicast group information instead of having to transmit multiple copies of packets.
Operation
The actual initialization of OSPF in an autonomous area requires a series of packets to be exchanged that enables the Designated Router and Backup to be selected and router adjacencies to be noted prior to routing information being exchanged. The most basic exchange between OSPF routers occurs via the transmission of Hello messages. Such messages ow between routers that enable routers within an area to discover one another, as well as to note the relationship between routers. Once the DR and BDR are selected, additional messages are exchanged that eventually enable one area to become aware of other areas, as well as networks reachable outside of the current autonomous system. Although the initial learning process is complex, once routing table information is constructed, updates only occur when there is a change in the network structure or every 30 minutes. Thus, although OSPF initially requires more bandwidth than RIP, it rapidly reduces its bandwidth requirements.
Chapter 8
Security
One of the key advantages of the TCP/IP protocol suite is also a disadvantage. The advantage is its openness, with RFCs used to identify the manner by which the protocol suite operates. Unfortunately, this openness has a price: it allows just about any person to determine how the various components that make up the protocol suite operate. This capability enables people who wish to do harm to IP networks and computers operating on those networks to develop techniques to do so. In comparison, other protocol suites that were developed by commercial organizations may not be as extensively documented. Thus, people who wish to exploit the weaknesses of a protocol suite developed by a commercial organization may face a far more daunting task. Because the use of the Internet has expanded at an almost exponential rate, another problem associated with the TCP/IP protocol suite involves the connection of private networks to the Internet. With almost 100 million users now connected to the Internet on a global basis, this means that if only a very small fraction of Internet users attempt to break into different hosts, the total number would become considerable. Recognizing the openness of the TCP/IP protocol suite and the ability of people from Bangladesh to Belize to hack computers, security has become a major consideration of network managers and LAN administrators and is the focus of this chapter. This chapter focuses on a series of TCP/IP security-related topics. Because the router represents both the entryway into a network as well as the rst line of defense, this device is considered rst. One can consider using this examining measure to prevent unauthorized entry into a routers conguration sub-system. Also discussed are other methods one can use to create access lists that perform packet ltering. Although the use of router access lists can considerably enhance the security of a network, there are certain functions and features that they do not perform. Thus, many network managers and LAN administrators rightly supplement the security capability of a router with a rewall, the operation of which is also covered in this chapter.
141
142
Router Control
Most routers provide several methods that can be used to control their operation. Although routers produced by different vendors may not support all of the methods to be discussed herein, they will usually support one or more of the methods to be discussed in this section. Those methods include direct cabling via a control port into the router, Telnet access, and Web access.
Direct Cabling
All routers include a control port that enables a terminal device to be directly cabled to a router. The terminal device can be a PC or a dumb asynchronous terminal. Once connected to the router, a user normally must enter a password to access the conguration system of the router. The exception to this is the rst time a person accesses the router via a direct connection, because most routers are shipped without a password being enabled. Thus, if someone has unpacked a router, connected a terminal to its direct connect conguration port, and congured an access password, the next person to use the terminal would have to know the password to be able to congure the router.
Security
143
sends employees on the road to recongure routers, one can consider the use of direct cabling. If the organization needs to be responsive to changing requirements and cannot afford to have trained employees at each router location, one would then prefer a technique that provides a remote router management capability. This capability can be obtained through the use of Telnet or Web access to the router.
Protection Limitation
One of the problems associated with remote access to routers is that the basic method of protection via a password can be overcome if care is not taken during the password creation process. This is because most routers will simply disconnect the Telnet or Web connection after three failed password entry
144
Security
145
attempts, enabling a user to try three more passwords. Because of this limitation, several hackers in the past are known to have written scripts that would try three entries at a time from an electronic dictionary. If the network manager or LAN administrator used a name, object, or expression that could be extracted from an electronic dictionary, it was not long before the hacker gained entry into a routers virtual terminal capability and essentially took control of the device. Thus, it is extremely important to use an alphanumeric password combination that is not in a dictionary for password creation. In addition, through the use of an access list, it becomes possible to restrict access to a routers virtual terminal (vt) port from a known IP address. Therefore, it is possible with some effort to make it extremely difcult for a remote user other than a designated employee or group of employees to remotely access an organizations routers. There is one limitation associated with the use of a routers access list that warrants discussion. Because an access list would be developed to allow packets from a known IP address to access a routers virtual terminal (vt) port, this means the address cannot be dynamically assigned. In addition to requiring a xed IP address, the use of an access list to protect access to a vt port also restricts the ability of traveling employees to gain access to a routers vt port. This is because ISPs commonly assign IP addresses dynamically. For example, an employee communication from San Francisco at 3:00 p.m. would have a different temporary IP address than that assigned when he or she accessed the Internet at 2:00 p.m. Similarly, if the employee took a trip to San Jose at 6:00 p.m. and accessed the Internet, another IP address would be temporarily assigned to the employees notebook computer. One method to overcome the previously described problem is for traveling employees to dial an access server that is directly connected to the organizations network. If one congures the server to accept a static IP address assigned to an employees notebook, then a routers access list could be used to allow remote access for authorized employees that travel around the country or around the globe. This action, of course, results in the necessity for employees to use long distance instead of potentially more economical Internet access. Because many organizations only periodically require traveling employees to recongure organizational routers, the cost of potential long-distance support may not represent a detriment to its use. Although the previous discussion focused on Telnet access to a routers vt port, some routers also support conguration via a Web browser that results in similar, but not identical, issues. That is, while one can use a routers access list capability to allow HTTP access from predened IP addresses, Web browsers also support secure HTTP, referred to by the mnemonic HTTPS. If the router supports HTTPS, then one may be able to support the use of public key encryption and preassigned digital certicates between the Web browser and router, adding an additional level of security to gaining remote access to a routers conguration subsystem. Given an appreciation for the manner by which local and remote users can gain access to a routers conguration subsystem, one can now focus on
146
the use of access lists. In doing so, the author examines the rationale for their use, the basic types of access lists, and new capabilities recently added to access lists that considerably enhance their functionality.
Security
147
Exhibit 8.2
for security do so with respect to data owing to and from the Internet with respect to an organizations private network. Exhibit 8.2 illustrates the use of a router to connect two LANs both to each other as well as to the Internet. In this example, the router provides a gateway from the LANs to the Internet. Because many, if not most, organizations do not want to allow any user that accesses the Internet to gain access to their private network, it is quite common for the network manager or LAN administrator to program the router to restrict the ow of packets. This packet ow restriction is accomplished through the use of a routers access list capability, and the technique used by the router in examining packets specied by an access list is referred to as packet ltering.
148
Security
149
assigns numeric ranges to different types of access lists with respect to the protocols they operate upon, the list # also serves to identify the protocol that will be ltered. This means that a list # from 1 to 99 identies a standard IP access list. In examining the above format, note that one would specify either the keyword permi or deny in an access list statement. The use of permit enables a packet to ow through an interface when conditions specied in the access list are matched. Similarly, the use of deny sends a packet to the great bit bucket in the sky when conditions specied in the access list are matched. The source entry in the standard access list format represents the IP address of a host or network from which the packet was transmitted. One can specify the source either via the use of a 32-bit IP address denoted in dotted decimal notation, or using the keyword any to represent any IP address. The wildcard-mask functions as a reverse-network address subnet mask; that is, one would place 1s in the bit positions to be ignored. For example, assume an organization has the IP class C network address of 198.78.46.0. When conguring the TCP/IP protocol stack, one would use the subnet mask 255.255.255.0 to specify the absence of subnets. Here, the trailing byte of 0s indicates a dont care condition, and results in hosts 1 through 254 being considered as residing on the network. If conguring Cisco access lists, the wildcard mask uses an inverse of the subnet mask, with 1 bits in positions one wants to ignore. Thus, if one wants to allow all hosts on network 198.78.46.0, the wildcard mask would be 0.0.0.255. An example of a standard IP access list statement permitting IP packets from all hosts on the 198.78.46.0 network would be: access-list 1 permit 198.78.46.0 0.0.0.255 Note that list number 1 is in the range 1 to 99. Thus, the list number identies the access list as a standard IP access list. Also note that the keyword accesslist is entered with a dash (-) between access and list. Returning to the format of the standard IP access list, note the optional term log. When used, this option results in an informational logging message about packets that match an access list statement being sent to the console. Logging can be an effective tool for both developing complex access lists as well as for generating information about the number of packets permitted or denied by an access list. Because it can be tedious to enter wildcard masks for specic network addresses when constructing an access list with a large number of statements, one can use the keyword host to reference a specic address. That is, instead of having to enter 198.78.46.8 0.0.0.0 to reference the specic IP address of 198.78.46.8, one could enter host 198.78.46.8 as a shortcut reference. To illustrate the use of a standard access list, assume one simply wants to block the ability of users on LAN A in Exhibit 8.2 from accessing the Internet. Further assume that the IP address of the LAN A network is 198.78.460.
150
Because the access list one creates will be applied to port E0, one must specify that port in an interface command. In addition, one would use the ip access-group command to apply an access list to a particular direction. The format of that command is shown below: ip access group [list number] {in/out} Thus, access list would be as follows: interface S0 ip access-group 1 out access-list 1 deny 198.78.46.0 0.0.0.255 Note that the preceding access list blocks all packets from LAN A from owing into the Internet. The reason one does not use the E0 interface because if one did, it would block LAN A users from accessing LAN B. Also note that when one uses a standard access list, there is no way to specify a particular TCP or UDP application. Thus, one could not use a standard access list to allow FTP, but block HTTP. To obtain an additional packet-ltering capability requires the use of an extended access list.
Security
151
operations, such as GT for greater than, LT for less than, and EQ for equal to. For example, one could specify ltering based on SMTP for source or destination ports or both by substitution, either EQ 25 or EQ SMTP for source port and/or destination port because port number 25 represents SMTP. The keyword established is only applicable for the TCP protocol. When used in an access list statement, a match occurs if a TCP datagram has either its ACK or RST bits sets. This situation occurs when a packet owing in one direction represents a response to a session initiated in the opposite direction. One common use of an extended IP access list with the keyword established is to only permit packets to enter a network from the Internet that represent a response to a session initiated via the trusted private network side of a router. For example, consider the following extended IP access list statement. access-list 101 permit tcp any any established The list number of 101 identies the access list as an extended IP access list. The protocol specied is TCP and one permits packets to ow from any source to any destination address if their ACK or RST bit is set, which indicates the packet is part of an established conversation. Thus, one would normally want to apply the preceding statement to a serial interface connecting a router to the Internet. However, one would also want to apply the access list containing the preceding statement in the inbound direction if one wants to consider restricting TCP trafc from the Internet to sessions established by hosts on ones internal network or networks connected via the router to the Internet. To provide the reader with a bit (no pun intended) more information about extended IP access lists, consider the following access list consisting of three statements. access-list 101 permit tcp any any established access-list 101 permit ip any host 198.78.46.8 access-list 101 permit icmp any any echo-reply The rst statement permits TCP datagrams that are part of an established conversation. The second statement permits IP from any host to the specic host whose IP address is 198.78.46.8. Here, the keyword host followed by an IP address is equivalent to an IP address followed by a wildcard mask of 0.0.0.0. The third statement in the access list permits ICMP from any host to any host if the packet is a response to a ping request (echo-reply). Note that if one applies this access list in the inbound direction on a serial interface connecting a router to the Internet, the result will be to allow responses to pings originating from the trusted side of the router. Because an access list is based on the premise that all is denied unless explicitly allowed, if one applies the preceding access list in the inbound direction, pings originating on the Internet destined to all hosts on the 198.78.46.0 network other than host 198.78.46.8 will be blocked. The reason
152
pings can ow to host 198.78.46.8 is due to the fact that the second statement permits IP trafc to include ICMP to that host. If one wanted to preclude pings to that host, one could insert a deny ICMP statement prior to the permit IP statement. This fact illustrates an important concept concerning access list processing. The contents of packets are matched against statements in an access list in their sequence. If access list statement n permits or denies a packet, then statement n + 1 will not be matched against the packet. Thus, it is important to review the order in which statements are entered into an access list. To illustrate the additional capability afforded by the use of extended access lists, reconsider the previous problem where all users on LAN A were blocked from accessing the Internet. Now assume one wants to allow employees to Telnet to any location on the Internet, but block Web surng from users on both LANs. To accomplish this, one would create the following router commands: interface S0 ip access-group 101 out access-list 101 permit telnet any any Note that it was not necessary to encode a specic access-list deny statement. This is because the end of each access-list has an implicit deny all statement that blocks anything that is not explicitly permitted. As indicated by this small example and the prior example in this section, an extended access list signicantly extends the capability to perform complex packet ltering operations beyond that supported by standard access lists.
Security
153
ip access-list extended inbound permit tcp any any extended permit ip any host 198.78.46.8 permit icmp any any echo-reply An important aspect of named access lists that deserves mention is the fact that they enable one to delete specic entries in the list. This is accomplished by entering a no version of a specic statement contained in a named access list. This action is not possible with a numbered access list. Instead, to revise a numbered access list, one would create a new list, delete the old list, and apply the new list to the appropriate interface.
154
One can use the keyword timeout to assign a timeout period to each specic reexive entry created in the inbound direction. If one elects not to use this option, a default timeout of 300 seconds will be used for the opening. One can also elect to place a global timeout on all reexive statements. To do so, use the following global command: ip reflexive-list timeout value where value is the global timeout value in seconds. The third task is to create an access list for inbound ltering into which dynamic reexive entries are added. Conclude the operation with the following command: evaluate name where name represents the name of the access list and causes packets to be evaluated by reexive entries. The following example illustrates the creation of a reexive access list where the reected openings are limited to 180 seconds of idle time. In examining the following statements, note that the three deny statements in the extended access list named inbound are conventional statements that are not reected. Also note that those statements are commonly referred to as anti-spoong entries. That is, many times, hackers use RFC 1918 private network IP addresses in an attempt to preclude network operators from identifying the source address of an attack. ! ip reflexive-list timeout 180 ! ip access-list extended outbound permit tcp any any reflect my_session permit udp any any reflect my_session permit icmp any any reflect my_session ! ip access-list extended inbound deny ip 10.0.0.0 0.255.255.255 any deny ip 172.16.0.0 0.31.255.255 any deny ip 192.168.0.0 0.0.255.255 any evaluate my_session Before moving on, it should be noted that while reexive access lists considerably extend the capability of packet ltering, they are limited to singlechannel connections. This means applications such as FTP that use multiple port numbers or channels cannot be supported by reexive access lists. However, a special release of IOS, initially referred to as the Firewall Feature
Security
155
Set (FFS), introduced support for dynamic openings in access lists for multichannel applications. Now referred to as Context Based Access Control (CBAC) in IOS Release 12.0, CBAC also adds Java blocking, denial-of-service prevention and detection, real-time alerts, and audit trails. Unfortunately, CBAC is only applicable for certain platforms.
156
TCP Intercept
This examination of enhancements to access lists concludes with TCP intercept. This feature was added in IOS Version 11.3 as a mechanism to alleviate a special type of denial-of-service attack referred to as SYN ooding. Under TCPs three-way handshake, the rst packet in a session has the SYN bit sent. The recipient of this initial packet requesting a service, such as HTTP, responds with a packet in which the SYN and ACK bits are set and waits for an ACK from the originator of the session. If the originator of the request fails to respond, the host times-out the connection. However, while the host is waiting for the conclusion of the three-way handshake, the halfopen connection consumes resources. Suppose an unscrupulous person modies software to transmit tens of thousands of packets with their SYN bit set, using forged IP source addresses. This will result in the attacked host never receiving a response to its request to complete each three-way handshake. Thus, its resources will be consumed as it times-out each session, only to be faced with a new ood of additional bogus packets with their SYN bit set. As host resources are consumed, its ability to be usable decreases to a point where little or no useful work occurs. Because of the popularity of this method of attack, TCP intercept was added as a mechanism to limit half-open connections owing through a router. The TCP intercept feature works by intercepting and validating TCP connection requests. The feature operates in one of two modes: intercept or watch. When in intercept mode, the router intercepts inbound TCP synchronization requests and establishes a connection with the client on behalf of the server and with the server on the behalf of the client, in effect functioning as a proxy agent. If both connections are successful, the router will merge them. To prevent router resources from being fully consumed by a SYN attack, the router has aggressive thresholds and will automatically delete connections until the number of half-open connections falls below a particular threshold. The second mode of operation of TCP intercept is watch mode. Under watch mode, the router passively monitors half-open connections and actively closes connections on the server after a congurable length of time. Enabling TCP intercept is a two-step process. First, congure either a standard or extended IP access list permitting the destination address one wants to protect. Once this is accomplished, enable TCP intercept using the following statement: ip tcp intercept list list# Because the default mode of operation of TCP intercept is intercept mode, a third step may be required to set the mode. To do so, use the following command: ip tcp intercept mode {intercept | watch}
Security
157
As previously mentioned, TCP intercept includes aggressive thresholds to prevent router resources from being adversely consumed by a SYN attack. There are four thresholds maintained by routers that one can adjust. Those thresholds are set using the following TCP intercept commands, with the default value indicated for each setting: ip ip ip ip tcp tcp tcp tcp intercept intercept intercept intercept max-incomplete low number 90 max-incomplete high number 1100 one-minute low number 900 one-minute high number 1100
To illustrate the use of TCP intercept, assume one wants to protect the host 198.78.46.8. To do so while selecting default thresholds would require the following access list statements. ip tcp intercept list 107 access-list 107 permit tcp any host 198.78.46.8
158
Conguration Principles
Although access lists can be used as the rst line of defense to protect a network, there are several conguration principles to note to prevent good intentions from creating protection holes. First, Cisco access lists are evaluated sequentially, top-down. This means that as soon as a match occurs, access list processing against a packet terminates. Thus, it is important to place more specic entries toward the top of an access list. Second, if adding new entries to an access list, they are added to the bottom of the list. This can result in undesirable results and one may wish to consider creating a new list, deleting the old one, and applying the new list instead of attempting to patch an existing list.
Limitations
While router access lists represent an important tool for providing a barrier against unwanted intrusion, they are limited in their capability. For example, if one needs to provide access to a Web server, ltering via a router access list to allow any user on the Internet to only access the server does not block such users from attempting to break into the server. This limitation results from the fact that a router access list does not actually examine the contents of data within a packet. Instead, a router access list examines packet headers for port numbers and IP addresses and enables or disables the ow of information by comparing those metrics against the parameters coded in one or more access list statements. Thus, for many networks, a more powerful security tool in the form of a rewall is both required and added as a network component.
Firewalls
A rewall in some respects is similar to a router in that it is designed to enforce a network access control policy by monitoring all trafc owing to or from a network. There are many rewall products being marketed, with some devices consisting of software that users load onto a usual LAN port PC, while other products represent a combined hardware and software solution in one package. Regardless of the method by which a rewall is constructed, it is important to note the manner by which it should be installed.
Installation Location
Because a rewall is designed to inspect the contents of packets, it is important to locate the device where it will do the most good. That location is commonly between a public and private network boundary. The term used to denote the location is referred to as a DMZ (for demilitarized) LAN.
Security
159
Exhibit 8.3 Locating a Firewall on a DMZ LAN Allows All Packets Flowing from and to the Internet to be Examined
Exhibit 8.3 illustrates the installation of a rewall on a DMZ LAN to protect a private network. Note that the term DMZ references a LAN with no attached workstations or servers. Because the only connections to the DMZ are from a router and a rewall, all trafc that ows from the Internet to the private network, and vice versa, must ow through the rewall. Thus, the use of a DMZ in the manner illustrated in Exhibit 8.3 results in all packets owing from or to the Internet being examined by the rewall.
Basic Functions
Through the ability to look into the contents of packets, rewalls become capable of being programmed to examine the contents of information being transferred. This functionality is referred to as stateful inspection by one vendor and enables a rewall to look for suspicious activity, such as repeated log-on attempts. Upon determining that a repeated sequence is occurring, such as an attempted log-on, the rewall would either alert the network operator or bar further attempts, with the specic action based on the manner in which the rewall was congured. When comparing the capability of a rewall to a router, one notes the several functions performed by rewalls that are not commonly associated with routers. Those functions include proxy services, authentication, encryption, and network address translation, as discussed next.
Proxy Services
A proxy can be considered an intermediary that acts on behalf of another. When discussing rewall proxy services, a rewall answers requests on behalf
160
Exhibit 8.4
of another computer, rst examining the request to ensure it is acceptable. If found to be so, the rewall will then pass the request to the indicated computer. Rather than responding directly to the original requestor, the destination host responds to the proxy service on the rewall. Exhibit 8.4 illustrates the data ow for a proxy service function operated on a rewall. There are several applications for which proxy services were developed, such as FTP and HTTP. To understand how proxy services operate and why they are an important security tool, assume an FTP proxy is operational on the rewall shown in Exhibit 8.4. After describing how the proxy operates, one can focus on the ow of data in the example. FTP includes several commands whose use can be harmful if invoked under certain circumstances. Two of those commands are MGET and MPUT, with the M prex in the GET and PUT commands used to denote that multiple les will be retrieved from or transferred to an FTP server. To illustrate how these commands might represent a problem, assume an organization has a 56-Kbps connection to the Internet. Further assume that the organization operates a combined FTP/Web server, and FTP provides access to a directory with 10 Gbytes of data. If a remote user on the Internet accesses the organizations FTP server and enters the command MGET *.*, this action would cause every le in the directory of the server currently accessed to be downloaded. If there were 10 Gbytes of data in the directory, this one command would result in 396 hours of transmission. This error, in effect, would signicantly impact the ability of users to access the organizations Web server and to receive a timely response. Because an FTP application supports all FTP commands, one cannot block MGET and MPUT via an FTP initialization screen. Instead, one must employ a
Security
161
proxy service on a rewall, as illustrated in Exhibit 8.4. In this example, an FTP request from the Internet (1) ows rst to the router whose access list would be programmed to permit inbound FTP to the FTP server. Next, the FTP request would be intercepted and examined by the proxy service on the rewall (2). If the FTP operation was allowed, the rewall would pass the request to the server (3). If not, the rewall would reject the request (5), and the rejection would ow back to the originator via the router (6). Assuming the FTP request was allowed, the rewall forms a new packet to indicate that the request came from that device and records the originators address plus the source port number in a table in memory prior to forwarding the packet to the server (3). The server will respond to the rewall (4), which will then check its tables and create a new packet, so the original source address is now its destination address. Once this packet reformatting is complete, the rewall transmits the packet to the router (5), which forwards it to the Internet (6) toward its destination. As indicated by the preceding example, a proxy service on a rewall intercepts packets, allowing the rewall to compare actions within the packet against a predened conguration that either allows or prohibits such actions. For an FTP proxy, one would more than likely block the use of MGET and MPUT commands as they could signicantly increase network trafc. Although a person could still request one le after another or write a script to execute a series of PUT or GET commands, this action would be more difcult than simply issuing a single MGET or MPUT command. In addition, some rewall proxy services permit the user to congure a maximum amount of trafc that can ow to or from a specic IP address, further limiting the use of FTP as a denial-of-service weapon.
Authentication
Although a user-ID/password sequence is commonly considered to represent an authentication method, it provides a limited level of security in comparison to other methods. One common rewall authentication method is obtained through token support. A token represents an algorithm that is used to produce a pseudo-random value that changes every minute. A remote user is then provided with a credit-card sized token generator that displays a ve- or sixdigit number that changes every minute based on an algorithm embedded in the circuitry on the card. A remote user who needs to be authenticated is blocked from gaining access to services on the network by the rewall. The rewall prompts the user for his or her PIN number and the ve- or six-digit authentication number. The rewall uses the PIN number with an algorithm in its software to generate an authentication number that is compared to the transmitted number. If the two match, the user is then authenticated. The key safety feature of the token lies in the fact that the loss of the card by a remote user does not allow a nder to access the network. A PIN number is required for authentication and, once authenticated, a user must still have the applicable passwords to gain access to hosts on the network. Because of this, a token-based authentication scheme is probably the most popular method for authentication remote users.
162
Encryption
Another feature added to some rewalls is encryption. Because data ow over the Internet is subject to viewing by numerous organizations that operate routers, encryption is a necessity when using the Internet as a virtual private network (VPN) to interconnect two or more organizational locations. To ensure that organizational information is not read, an encryption rewall will allow the rewall manager to dene network addresses for packet encapsulation. Then, packets destined to a different organizational network via the Internet will ow through the Internet in encrypted form, with a newly formed header using the address of a rewall on the destination network because that rewall will now be responsible for decryption. Although the use of VPNs is in its infancy, as their usage increases, one can expect an increase in demand for encryption performing rewalls.
Chapter 9
Emerging Technologies
The widespread adoption of the TCP/IP protocol suite by business, government, and academia has resulted in a signicant amount of development effort being devoted to this protocol suite. This development effort recognizes that Internet usage has grown exponentially, from a few hundred thousand users at the beginning of the 1990s to over 100 million users at the beginning of the new millennium. With this vast market of Internet users, the acquisition of equipment by Internet service providers (ISPs) also became an extensive market for hardware and software developers. With the vast amount of funds that ISPs are expending in providing support to their customer base, they are also favorably viewing the development of new technologies that they could use for additional billing, enhancing customer retention, and differentiating their service from other ISPs. Thus, there is a receptive market from both end users and ISPs for the use of new technologies that add functionality to the TCP/IP protocol suite. This chapter focuses on four emerging technologies related to the TCP/IP protocol suite: virtual private networking, mobile IP, Voice over IP, and IPv6. Although each of these technologies has been in existence for a number of years, they can be considered emerging technologies as their potential use is now being recognized, and products are rapidly being developed that utilize these technologies.
164
Exhibit 9.1. Comparing a Leased Line-Based Network versus the Use of a VPN over the Internet
expensive leased lines used by many organizations to interconnect geographically separated locations.
Benets
To understand the benets associated with the use of a VPN created via transmitting data over the Internet, one can compare and contrast the use of a private leased line-based network to the Internet. The left portion of Exhibit 9.1 illustrates a three-location, leased line-based network. The right portion of Exhibit 9.1 illustrates the use of a VPN created over the Internet to provide connectivity between the three locations.
Emerging Technologies
165
Reliability
In addition to hardware savings, the use of a VPN via a packet network enables an organization to obtain the ability to use the mesh structure of the packet network. This means that if a router or transmission line within the Internet should fail, alternate routing within the Internet may alleviate the problem, providing additional reliability. Although a private organization can construct a mesh-structured network to obtain a similar degree of additional reliability, this is not common due to the high cost associated with establishing this type of network structure.
Economics
Although the ability to use less hardware and to obtain long-distance reliability are important advantages associated with a VPN, they are not the only advantages. Perhaps the key advantage is the ability of organizations to interconnect geographically separated locations under certain situations for a fraction of the cost of using leased lines. To illustrate the potential economic savings associated with the use of a VPN in comparison to a leased line-based network, reconsider Exhibit 9.1. Assume that the private three-node network illustrated in the left portion of Exhibit 9.1 results in location A being 500 miles from location B and a similar distance from location C. Thus, the network would have a total of 1000 miles of leased lines. If one assumes that those leased lines are T1 circuits that operate at 1.544 Mbps and the monthly cost of each circuit is $4 per mile, then the long-distance cost of the leased line network becomes 1000 miles at $4 per mile per month, or $4000 per month. In looking at the VPN created via the Internet shown in the right portion of Exhibit 9.1, one can see that the use of the Internet is distance insensitive for corporate users. The only charge is an access fee that connects each location via an Internet service provider (ISP) to the Internet. If it is furher assumed that each of the three locations is within a city or surrounding suburban area, then the monthly fee charged by an ISP to support T1 access can be expected to range between $1000 and $1500 per location. This means that to provide three locations with T1 Internet access, the monthly cost would range between $3000 and $4500. Thus, while it might be possible to save some money, it is also possible that the use of the Internet can result in an additional expenditure of funds versus a private leased line-based network. By now the reader might be a bit confused because this author previously mentioned that economics is the driving force for the creation of a VPN via the Internet. And because this author does not want readers to be confused, assume now that the three locations shown in the left portion of Exhibit 9.1 are New York City, Miami, and San Francisco. Based on the previously mentioned revised locations, the distance between the three locations has now expanded to approximately 5000 miles. Thus, the
166
monthly cost of a private leased line-based network using T1 circuits would now become 5000 miles at $4 per mile per month, or $20,000 per month. Because the cost of accessing the Internet in major metropolitan areas is the same, the cost associated with connecting each location to the other via a VPN over the Internet remains the same. Thus, the cost would remain between $3000 and $4500 per month. The preceding revision illustrates that the distance-insensitive cost associated with the use of the Internet can result in considerable savings when locations to be interconnected are relatively far apart. This also means that the further distant one location is from another, the greater the possible monthly cost savings. This also means that the global reach of the Internet could provide considerable economic savings for multinational organizations because they use international circuits that are relatively expensive in comparison to leased lines installed within a country. Given an appreciation for the benets associated with the use of VPNs, one must also be aware of some of the limitations associated with the technology.
Limitations
Although not thought of as such each time a user transmits or receives e-mail via the Internet, that user employs a VPN that was created on a temporary basis. In fact, the use of VPNs by corporations follow a similar structure, with routing occurring on a packet-by-packet basis through the Internet. Unlike the transmission of conventional e-mail that might represent an update about family life or another personal matter, a VPN used by a company requires several features that are not normally needed on a personal messaging basis. Those features include authentication and encryption, as well as the use of a rewall because corporate information will now be owing through the Internet. This opens the corporate network to potential attack from the Internet community of users.
Authentication
Authentication represents the process of verifying that a person is the person he or she claims to be. As discussed in Chapter 8, one of the most popular methods of authentication is based on the use of token generating cards. Regardless of the type of authentication used, one must factor its cost into consideration to determine the true cost of using a VPN versus a leased line network. Normally, authentication is not required on a leased line network as the network connects xed locations. Thus, a leased line network commonly represents a closed network that outsiders cannot access. In comparison, the Internet represents an open network. Once a person notes the host or IP address of a device, that person can attempt to transmit information to that device.
Emerging Technologies
167
Exhibit 9.2. When Encryption is Used on a VPN, the Destination of Packets Must be Examined as a Basis for Determining Whether or Not to Encrypt the Packet
Encryption
Because it is doubtful that an organization would allow vital corporate information to ow clear across the Internet where it could possibly be intercepted, another commonly required VPN is encryption. However, VPN encryption is both more difcult to perform and more expensive than conventional encryption products used to secure transmission via leased lines. The reason VPN encryption is more complex and costly than encryption performed on point-to-point leased lines results from the fact that routing via a VPN is more complex. For example, consider Exhibit 9.2, which illustrates the assignment of Class C IP addresses to each of three networks to be interconnected via the Internet. Note that a fourth network on which a public server resides, such as www.whitehouse.com, is shown with the network address xxx.yyy.zzz.0 to indicate that it can be any address other than the three network addresses of the geographically separated networks to be interconnected via a VPN. Because a user on network 198.78.46.0 may periodically surf the Web while at other times access a server on network 207.121.131.0 or network 205.131.175.0, the device performing encryption must be congured to distinguish a VPN destination address. In addition, because one would not want to use the same encryption key between all sites, the equipment must support multiple keys.
168
and the latency or delay through the Internet. Concerning management control, unlike the use of leased lines that can contact a single communications carrier in an attempt to resolve a problem, if a problem occurs on the Internet, ones ability to communicate with a carrier is restricted when dealing with an ISP. Concerning latency, because other trafc carried on the Internet is not predictable, the delay packets experience will be random. This means that certain delay-sensitive applications, such as real-time command and control for numeric machinery as well as Voice over IP, may or may not be suitable for a VPN. Despite such problems, VPNs represent an emerging technology, with support even included in Microsofts popular Windows NT server. Thus, this section concludes with a discussion of how one can set up an NT server to allow dial-up access that in turn permits a remote user to connect to the organizations internal network. If that network is in turn connected to the Internet, one can then provide employees with the ability to access other organizational locations via a local telephone call even if those locations are thousands of miles away or are on another continent.
Emerging Technologies
169
Exhibit 9.3. Installing Remote Access Services on an NT Server Requiring Selection of Services Tab from the Network Dialog Box
Remote Access Service server provides support for different addressing schemes. When combined with other Microsoft products, Windows NT servers can be used for routing, which allows an organization to spend a few thousand dollars per location to interconnect geographically separated networks via the Internet. Thus, many products are appearing in the marketplace that provide a VPN capability and represent another driving force for adopting VPNs.
170
Exhibit 9.4. Installing RAS from the Select Network Service Dialog Box
Exhibit 9.5. Adding a Generic 28,800-bps Modem to Support Dial-Up Access to a RAS Server
Emerging Technologies
171
Exhibit 9.6. Examining the Remote Access Setup Dialog Box after Dial-In Access Is Congured
Mobile IP
Although a mobile person can access their home location via the dial-up services of an ISP, there is no method for host computers on an internal corporate network to easily note the mobile users identity and imitate communications with the persons computer. Because of this, a TCP/IP network can be considered to represent a client-driven network, with the client having to initiate communications sessions. With the growth in the use of cell phones and the development of a limited e-mail and browsing capability by those devices, it becomes possible to employ server-side session initiation. That is, a server can be congured to interface the telephone network and transmit messages to mobile cell phone subscribers. However, a similar mechanism is not available for the traveling notebook operator who may be required to check several mail systems to determine what messages, if any, are awaiting his or her action. Recognizing this problem was probably a contributing factor to the development of mobile IP, which represents a second emerging technology to be discussed in this chapter.
Overview
Under mobile IP, a user makes a connection to his home network and registers his presence with a mobile IP server. If the remote user is using the services of an ISP and has a temporary IP address, that address is also registered with
172
Exhibit 9.7. Specifying the Protocols the Server Will Support and the Use of Authentication and Encryption through the Network Conguration Dialog Box
the mobile IP server. A second feature or function of that server is to serve as a focal point for applications that need to communicate with the mobile user. Thus, it becomes possible for e-mail and other server-side applications to note the presence of a mobile IP user and communicate with the user through the services of the mobile IP server.
Operation
Exhibit 9.9 provides an example of how a mobile IP server might be used. In this example, assume that the mobile user was previously registered with
Emerging Technologies
173
the server, and applications that need to reach the user to know his or her presence will be established via notication from the server. On a trip to Japan, the traveling executive dials the Internet via the hotel where he or she is staying. While online, the ISP serving Japan assigns a temporary IP address to the user. This address is noted by the mobile IP server (1), which informs predened applications that the distant user is online. This is illustrated by (2). Next, each application, such as e-mail (3) and digitized voice mail (3), uses the temporary IP address to establish communications with the traveling executive. While the concept behind mobile IP has been around for a few years, until recently it was easier for a person to simply communicate with his or her email system than support server-side initiation. Because there are emerging applications beyond e-mail that people may wish to access, it may be easier to allow the applications to contact the user when they access the home network than to require persons to check numerous servers.
Voice over IP
The transmission of voice over an IP network, which is referred to as Voice over IP, represents an evolving technology that offers both individuals and
174
organizations the potential to realize substandard economic savings. In fact, if one can obtain a voice over IP transmission capability by upgrading existing equipment through the installation of voice modules on a router or the use of a getaway on an existing network infrastructure, it becomes possible to transmit a digitized voice call over an intranet or the Internet for as little as 0.1 cent per minute. This cost is low enough to make the Sprint dime lady blush and explains the key interest of organizations in applying this technology.
Constraints
There are several key constraints governing the ability of digitized voice to be transmitted over an IP network and successfully reconstructed at the destination. Those constraints include end-to-end latency, the random nature of packet networks, the voice digitization method used, and the need to subdivide packets containing data into minimum-length entities. Each of these constraints is interrelated.
Latency
Latency or end-to-end delay governs the ability of reconstructed voice to sound normal or awkward. The total one-way delay that a packet experiences as it ows from source to destination via an IP network depends on several factors. Those factors include the speed of the ingress and egress lines from locations
Emerging Technologies
175
connected to the Internet or a private intranet, the voice coding algorithm used to digitize voice, the number of router hops through the Internet or a private intranet from source to destination, and the activity occurring at and between each hop. When all of these factors are considered as an entity, the one-way delay of a packet should not exceed 250 ms and should probably be under 200 ms to obtain a good quality of reconstructed voice. Because delays on the Internet can easily exceed 200 ms without considering the voice coding algorithm delay, this explains why it is not possible to consider the Internet as fully ready to support digitized voice at this time. Because it is relatively easy but costly to add bandwidth to a private intranet, one can do so to reduce delays. However, the additional cost associated with reducing latency can increase the cost of transporting Voice over IP. In the near future, the hundreds of thousands of miles of ber optic cable being installed throughout the United States, western Europe, and other locations around the globe should result in an increase in transmission capacity by several orders of magnitude over existing transmission facilities. As ISPs upgrade their backbones, it may be possible within a few years for the problem of latency to be considerably reduced in comparison to the role it plays today in hampering Internet telephony from achieving widespread acceptance.
176
1 s 1 s 10 ms 30 ms
Two popular hybrid voice coding techniques standardized by the ITU are G.728 and G.723.1, the latter a multi-rate coder. G.728 is a low-delay coder, with the algorithm requiring 10 ms. This delay is still a thousand times greater than the delay associated with PCM and ADCPM. Also note that the G.723.1 standard is 30 ms, which can represent a considerable period of time when overall end-to-end delay to include the coding algorithm is limited. Because end-to-end delay must be less than 250 ms and preferably below 200 ms, many times the use of a very low bit rate voice digitization technique will result in an excessive amount of delay. If ones equipment supports multiple coders, one technique to consider to enhance the quality of reconstructed voice is the use of a different coder.
Emerging Technologies
177
A second problem concerning the use of voice coders is the fact that at the present time there are not any standards that enable equipment produced by different vendors to negotiate the use of a voice coder. Although the Frame Relay Forum developed a standard for Voice over Frame Relay during 1997, a similar standard is still missing for use on TCP/IP networks. Thus, equipment interoperability can be considered in its infancy, and organizations may have to experiment using different coders to select an optimum one based upon a series of factors to include routing delays through the packet network.
Packet Subdivision
As indicated earlier in this book, a datagram can be up to 65,535 bytes in length. Unfortunately, if a long datagram should ow between two datagrams transporting digitized voice, the lengthy datagram can introduce a signicant delay that makes the reconstruction of quality-sounding voice difcult, if not impossible. Due to this, it is necessary to use equipment to limit the length of packets transporting data. Unfortunately, there are two constraints associated with packet subdivision. First, one can only use equipment at the entrance to a packet network to subdivide lengthy packets. This means that one cannot control lengthy packets transmitted by other organizations through the packet network. Second, by taking one lengthy packet transporting data and subdividing it into two or more packets, one increases network trafc and reduces transmission efciency. This results from the fact that one now has more overhead in the form of multiple headers rather than one header. This additional trafc can overtax routers and result in routers doing what they are programmed to do under an overload condition drop packets. Thus, it is entirely possible that the medicine in the form of packet subdivision could kill the patient. Despite the previously mentioned problems, Voice over IP is a viable emerging technology. To understand why organizations are excited concerning the use of this technology, one can explore two networking congurations suitable for consideration on the Internet or an intranet, assuming end-to-end latency can be obtained at an acceptable level.
Networking Congurations
Two of the most popular methods for transporting voice over an IP network are through the use of voice modules installed in a router and the use of a stand-alone voice gateway. This section examines the use of each method.
178
Exhibit 9.11. Using Router Voice Modules to Obtain an Integrated Voice/Data Networking Capability
installation within different router products. While voice modules can vary in capability and functionality between vendors, they perform a set of common features. These features include providing an interface to different signaling methods associated with the direct connection of PBX ports or individual telephone instruments, supporting several voice coding algorithms, and prioritizing the ow of datagrams transporting voice into router queues for faster placement onto a serial communications line. Exhibit 9.11 illustrates the potential use of voice digitization modules installed in a router to provide the ability to transmit both voice and data over a common network infrastructure. In examining Exhibit 9.11, note that an organization would program the PBX to establish a new prex for voice users to access the routers voice modules. For example, dialing a 6 might route calls to the router, while dialing a prex of 9 would be used to connect to an outside line for calling via the PSTN. One would also congure the voice modules via the routers operating system, such as selecting a specic voice coding algorithm and setting a specic priority for voice in comparison to data so that datagrams transporting voice will receive preference for extraction from the queue in the router for transmission onto the serial port connecting the router to a private intranet or the public Internet.
Voice Gateway
A second common method to consider for integrating the transmission of voice and data over an IP network is obtained through the use of a voice gateway. Exhibit 9.12 illustrates the potential use of this communications device. In examining Exhibit 9.12, one would interface a voice gateway to a PBX similar to the manner by which one would connect a PBX to voice modules installed in a router. Unlike the use of a router where packets transporting
Emerging Technologies
179
digitized voice do not ow on a LAN, when a gateway is used, the packets ow on the local network. Thus, take care to ensure that the utilization level of the network is not over 50 percent. Otherwise, an excessive amount of collisions could occur that add to the latency of packets transporting voice. A key advantage to the use of stand-alone voice gateways over the use of voice modules installed in routers is the fact that the former scale better than the latter. For example, current voice gateways are obtainable that typically support 4, 8, 16, 32, 64, and 128 voice ports, with expansion possible on some getaways that allow up to 1024 ports to be supported. In comparison, many routers only support the addition of two to four voice modules, with each module capable of supporting a limited number of ports. Although a few routers now offer voice modules that can be directly interfaced to a digital ISDN port on a router and can directly accept 24 voice calls, such modules are only supported on high-end routers whose basic cost can exceed $50,000. In comparison, low-end routers that support a limited number of voice connections may have pricing that begins at $2500 and represents a more viable solution for integrating voice and data at a branch ofce. Low-end routers have a limited scaling capability, and one may wish to carefully consider the use of a voice gateway that has an expansion capability. If an organization uses LAN switches rather than a shared media network, it then becomes possible to connect the gateway to a switch port and avoid potential latency problems associated with the use of shared media networks.
IPv6
This section on emerging technologies, concludes with a discussion of the new version of the Internet Protocol, IPv6. As noted earlier in this book, the near-exponential growth in the use of the Internet has rapidly depleted the quantity of available IP network addresses and has resulted in such addresses becoming a precious commodity. In examining IPv6, note that its addressing capability ensures that every man, woman, and child on the planet as well as every electronic device can obtain an IPv6 address. This capability
180
provides a mechanism to enable the development of intelligent network-based home appliances and other devices that could be managed by a service organization or the homeowner from their ofce. Thus, IPv6 can be considered to provide a foundation for extending the capabilities of the Internet to new applications that can be expected to arise during the new millennium.
Overview
IPv6 was developed as a mechanism to simplify the operation of the Internet Protocol, provide a mechanism for adding new operations as they are developed through a header daisy-chain capability, add built-in security and authentication, and extend source and destination addresses to an address space that could conceivably meet every possible addressing requirement for generations. The latter is accomplished through an expansion of source and destination addresses to 128 bits and is the focus of this section.
Address Architecture
IPv6 is based on the same architecture used in IPv4, resulting in each network interface requiring a distinct IP address. The key differences between IPv6 and IPv4 with respect to addresses are the manner by which an interface can be identied, and the size and composition of the address. Under IPv6, an interface can be identied by several addresses to facilitate routing and management. In comparison, under IPv4, an interface can only be assigned one address. Concerning address size, IPv6 uses 128 bits, or 96 more bits than an IPv4 address.
Address Types
IPv6 addresses include unicast and multicast, which were included in IPv4. In addition, IPv6 adds a new address category known as anycast. Although an anycast address identies a group of stations similar to a multicast address, a packet with an anycast address is delivered to only one station, the nearest member of the group. The use of anycast addressing can be expected to facilitate network restructuring while minimizing the amount of conguration changes required to support a new network structure. This is because one can use an anycast address to reference a group of routers, and the alteration of a network when stations use anycast addressing would enable them to continue to access the nearest router without a user having to change the address conguration of their workstation.
Address Notation
Because IPv6 addresses consist of 128 bits, a mechanism is required to facilitate their entry as conguration data. The mechanism used is to replace those bits
Emerging Technologies
181
with eight 16-bit integers separated by colons, with each integer represented by four hexadecimal digits. For example: 6ACD:00001:00FC:B10C:0001:0000:0000:001A To facilitate the entry of IPV6 addresses, one can skip leading zeros in each hexadecimal component. That is, one can write 1 instead of 0001 and 0 instead of 0000. Thus, this ability to suppress zeroes in each hexadecimal component would reduce the previous network address to: 6ACD:1:FC:B10C:1:0:0:1A Under IPv6, a second method of address simplication was introduced, the double-colon (::) convention. Inside an address, a set of consecutive null 16-bit numbers can be replaced by two colons (::) Thus, the previously reduced IP address could be further reduced to: 6ACD:1:FC:B10C:1::1A It is important to note that the double-colon convention can only be used once inside an address. This is because the reconstruction of the address requires the number of integer elds in the address to be subtracted from eight to determine the number of consecutive elds of zero value the doublecolon represents. Otherwise, the use of two or more double-colons would create ambiguity that would not allow the address to be correctly reconstructed.
Address Allocation
The use of a 128-bit address space provides a high degree of address assignment exibility beyond that available under IPv4. IPv6 addressing enables Internet service providers to be identied as well as includes the ability to identify local and global multicast addresses, private site addresses for use within an organization, hierarchical geographical global unicast addresses, and other types of addresses. Exhibit 9.13 lists the initial allocation of address space under IPv6. The Internet Assigned Numbers Authority (IANA) was assigned the task of distributing portions of IPv6 address space to regional registries around the world, such as the InterNIC in North America, RIPE in Europe, and APNIC in Asia. To illustrate the planned use of IPv6 addresses, the discussion continues with what will probably be the most common type of IPv6 address the provider-based address.
Provider-Based Addresses
The rst ofcial distribution of IPv6 addresses will be accomplished through the use of provider-based addresses. Based on the initial allocation of IPv6
182
Reserved Unassigned Reserved for NSAP allocation Reserved for IPX allocation Unassigned Unassigned Unassigned Unassigned Provider-based Unicast Address Unassigned Reserved for Geographic-based Unicast Address Unassigned Unassigned Unassigned Unassigned Unassigned Unassigned Unassigned Link-Local Use Addresses Site-Local Use Addresses Multicast Addresses
0000 0000 0000 0000 0000 0000 0001 001 010 011 100 101 110 1110 1111 1111 1111 1111 1111 1111 1111
1/256 1/256 1/128 1/128 1/128 1/32 1/16 1/8 1/8 1/8 1/8 1/8 1/8 1/16 1/32 1/64 1/128 1/512 1/1024 1/1024 1/256
addresses as shown in Exhibit 9.13, each provider-based address will have the three-bit prex 010. That prex will be followed by elds that identify the registry that allocated the address, the service provider, and the subscriber. The latter eld actually consists of three sub-elds: a subscriber ID that can represent an organization, and variable network and interface identication elds used in a similar manner to IPv4 network and host elds. Exhibit 9.14 illustrates the initial structure for a provider-based address.
Special Addresses
Under IPv6, ve special types of unicast addresses were dened, of which one deserves special attention. That address is the Version 4 address, which was developed to provide a migration capability from IPv4 to IPv6. In a mixed IPv4/IPv6 environment, devices that do not support IPv6 will be mapped to version 6 addresses using the following form: 0:0:0:0:0:FFFF:w.x.y.z
Emerging Technologies
183
Here, w.x.y.z represents the original IPv4 address. Thus, IPv4 addresses will be transported as IPv6 addresses through the use of the IPv6 version 4 address format. This means that an organization with a large number of workstations and servers connected to the Internet only has to upgrade its router to support IPv6 addressing when IPv6 is deployed. Then, the network can be gradually upgraded on a device-by-device basis to obtain an orderly migration to IPv6. Although IPv6 is being used on an experimental portion of the Internet, its anticipated movement into a production environment was delayed due to the more efcient use of existing IPv4 addresses. This occurred via network address translation, which was described in Chapter 8. While the use of IPv6 is less pressing than thought just a few years ago, no matter how efcient the allocation of the remaining IPv4 addresses becomes, it is a known fact that within the next few years, all available addresses will be used. Prior to that time, one can expect a migration to IPv6 to occur.
V
APPENDIXES: TCP/IP PROTOCOL REFERENCE NUMBERS
The appendixes provide a comprehensive reference to several key TCP/IP protocol numbers. As indicated earlier in this book, TCP/IP is not a single protocol. Instead, it represents a layered protocol that has several components. One of the major components of TCP/IP includes the Internet Control Message Protocol (ICMP) used to convey different types of control messages within an IP datagram. Because of the exible design of the ICMP format, different types of messages can be conveyed by altering the value of its TYPE eld. In addition, many ICMP TYPE eld values have a CODE eld whose value further claries the type of message being conveyed. Thus, Appendix A is included in this book to provide a reference to ICMP TYPE and CODE values. A second major component of the TCP/IP protocol suite is the Internet Protocol (IP). Because an IP datagram can transport an ICMP message, a TCP segment, or a UDP datagram, as well as other higher layer protocols, a mechanism is required to dene the upper layer protocol being conveyed. That mechanism is provided by the Protocol Type eld, which identies the header following the IP datagram. Appendix B contains a listing of the values of the Protocol Type eld. A third major characteristic of the TCP/IP protocol suite is the use of port numbers to identify applications, enabling the multiplexing of different types of application-based trafc from and to common addresses. The use of port numbers explains how, for example, a Web server could also support FTP and telnet operations. The rst 1024 port numbers, referred to as Well Known Ports, are summarized in Appendix C.
187
Appendix A
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2029 30 31
Echo Reply Unassigned Unassigned Destination Unreachable Source Quench Redirect Alternate Host Address Unassigned Echo Router Advertisement Router Selection Time Exceeded Parameter Problem Timestamp Timestamp Reply Information Request Information Reply Address Mask Request Address Mask Reply Reserved (for Security) Reserved (for Robustness Experiment) Traceroute Datagram Conversion Error
(continues)
189
190
Type
Name (continued)
32 33 34 35 36 37 38 39 40 41255
Mobile Host Redirect IPv6 Where-Are-You IPv6 I-Am-Here Mobile Registration Request Mobile Registration Reply Domain Name Request Domain Name Reply SKIP Photuris Reserved
Many of these ICMP types have a Code eld. One can view the Code eld as providing a specic clarier for the value in the Type eld. For example, a router generating a Type eld value of 3 indicates the IP destination address was unreachable, but does not specically indicate why it was unreachable. Here the Code eld value would clarify the reason why the destination address was unreachable. The following table lists the Type eld values and their applicable Code eld values, if any:
Message Type Code Field Value
Echo Reply Codes 0 No Code Unassigned Unassigned Destination Unreachable Codes 0 Net Unreachable 1 Host Unreachable 2 Protocol Unreachable 3 Port Unreachable 4 Fragmentation Needed and Dont Fragment was Set 5 Source Route Failed 6 Destination Network Unknown 7 Destination Host Unknown 8 Source Host Isolated 9 Communication with Destination Network is Administratively Prohibited 10 Communication with Destination Host is Administratively Prohibited
1 2 3
191
Message Type
11 12 13 14 15 4
Destination Network Unreachable for Type of Service Destination Host Unreachable for Type of Service Communication Administratively Prohibited Host Precedence Violation Precedence cutoff in effect
Source Quench Codes 0 No Code Redirect Codes 0 Redirect 1 Redirect 2 Redirect 3 Redirect
Network (or subnet) Host Type of Service and Network Type of Service and Host
Alternate Host Address Codes 0 Alternate Address for Host Unassigned Echo Codes 0 No Code Router Advertisement Codes 0 No Code Router Selection Codes 0 No Code Time Exceeded Codes 0 Time to Live exceeded in Transit 1 Fragment Reassembly Time Exceeded Parameter Problem Codes 0 Pointer indicates the error 1 Missing a Required Option 2 Bad Length
(continues)
7 8
10
11
12
192
Message Type
13
Timestamp Codes 0 No Code Timestamp Reply Codes 0 No Code Information Request Codes 0 No Code Information Reply Codes 0 No Code Address Mask Request Codes 0 No Code Address Mask Reply Codes 0 No Code Reserved (for Security) Reserved (for Robustness Experiment) Traceroute Datagram Conversion Error Mobile Host Redirect IPv6 Where-Are-You IPv6 I-Am-Here Mobile Registration Request Mobile Registration Reply SKIP Photuris Codes 0 Reserved 1 unknown security parameters index 2 valid security parameters, but authentication failed 3 valid security parameters, but decryption failed
14
15
16
17
18
19 2029 30 31 32 33 34 35 36 39 40
Appendix B
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
HOPOPT ICMP IGMP GGP IP ST TCP CBT EGP IGP BBN-RCC-MON NVP-II PUP ARGUS EMCON XNET CHAOS UDP MUX DCN-MEAS
IPv6 Hop-by-Hop Option Internet Control Message Internet Group Management Gateway-to-Gateway IP in IP (encapsulation) Stream Transmission Control CBT Exterior Gateway Protocol Any private interior gateway (used by Cisco for their IGRP) BBN RCC Monitoring Network Voice Protocol PUP ARGUS EMCON Cross Net Debugger Chaos User Datagram Multiplexing DCN Measurement Subsystems
(continues)
193
194
Decimal Keyword
Protocol (continued)
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
HMP PRM XNS-IDP TRUNK-1 TRUNK-2 LEAF-1 LEAF-2 RDP IRTP ISO-TP4 NETBLT MFE-NSP MERIT-INP SEP 3PC IDPR XTP DDP IDPR-CMTP TP++ IL IPv6 SDRP IPv6-Route IPv6-Frag IDRP RSVP GRE MHRP BNA ESP AH I-NLSP SWIPE NARP MOBILE TLSP SKIP IPv6-ICMP IPv6-NoNxt IPv6-Opts CFTP
Host Monitoring Packet Radio Measurement XEROX NS IDP Trunk-1 Trunk-2 Leaf-1 Leaf-2 Reliable Data Protocol Internet Reliable Transaction ISO Transport Protocol Class 4 Bulk Data Transfer Protocol MFE Network Services Protocol MERIT Internodal Protocol Sequential Exchange Protocol Third Party Connect Protocol Inter-Domain Policy Routing Protocol XTP Datagram Delivery Protocol IDPR Control Message Transport Proto TP++ Transport Protocol IL Transport Protocol Ipv6 Source Demand Routing Protocol Routing Header for IPv6 Fragment Header for IPv6 Inter-Domain Routing Protocol Reservation Protocol General Routing Encapsulation Mobile Host Routing Protocol BNA Encapsulation Security Payload for IPv6 Authentication Header for IPv6 Integrated Net Layer Security TUBA IP with Encryption NBMA Address Resolution Protocol IP Mobility Transport Layer Security Protocol using Kryptonet key management SKIP ICMP for IPv6 No Next Header for IPv6 Destination Options for IPv6 Any host internal protocol CFTP
195
Protocol (continued)
Decimal
Keyword
SAT-EXPAK KRYPTOLAN RVD IPPC SAT-MON VISA IPCV CPNX CPHB WSN PVP BR-SAT-MON SUN-ND WB-MON WB-EXPAK ISO-IP VMTP SECURE-VMTP VINES TTP NSFNET-IGP DGP TCF EIGRP OSPFIGP Sprite-RPC LARP MTP AX.25 IPIP MICP SCC-SP ETHERIP ENCAP GMTP IFMP PNNI PIM ARIS SCPS QNX
Any local network SATNET and Backroom EXPAK Kryptolan MIT Remote Virtual Disk Protocol Internet Pluribus Packet Core Any distributed le system SATNET Monitoring VISA Protocol Internet Packet Core Utility Computer Protocol Network Executive Computer Protocol Heart Beat Wang Span Network Packet Video Protocol Backroom SATNET Monitoring SUN ND PROTOCOL-Temporary WIDEBAND Monitoring WIDEBAND EXPAK ISO Internet Protocol VMTP SECURE-VMTP VINES TTP NSFNET-IGP Dissimilar Gateway Protocol TCF EIGRP OSPFIGP Sprite RPC Protocol Locus Address Resolution Protocol Multicast Transport Protocol AX.25 Frames IP-within-IP Encapsulation Protocol Mobile Internetworking Control Pro. Semaphore Communications Sec. Pro. Ethernet-within-IP Encapsulation Encapsulation Header any private encryption scheme GMTP Ipsilon Flow Management Protocol PNNI over IP Protocol Independent Multicast ARIS SCPS QNX
(continues)
196
Decimal Keyword
Protocol (continued)
107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134254 255
A/N IPComp SNP IPX-in-IP VRRP PGM L2TP DDX IATP STP SRP UTI SMP SM PTP FIRE CRTP CRUDP SSCOPMCE IPLT SPS PIPE SCTP FC
Active Networks IP Payload Compression Protocol Sitara Networks Protocol Compaq-Peer Compaq Peer Protocol IPX in IP Virtual Router Redundancy Protocol PGM Reliable Transport Protocol Any 0-hop protocol Layer Two Tunneling Protocol D-II Data Exchange (DDX) Interactive Agent Transfer Protocol Schedule Transfer Protocol SpectraLink Radio Protocol UTI Simple Message Protocol SM Performance Transparency Protocol ISIS over IPv4 Combat Radio Transport Protocol Combat Radio User Datagram
Secure Packet Shield Private IP Encapsulation within IP Stream Control Transmission Protocol Fibre Channel Unassigned Reserved
Appendix C
Port Numbers
Port numbers are commonly used to identify an application or destination process and are divided into three ranges: Well Known Ports, Registered Ports, and Dynamic or PrivatePorts. Well Known Ports are those from 0 through 1023. Registered Ports are those from 1024 through 49151. The Dynamic or Private Ports are those from 49152 through 65535. This appendix contains the listing of all registered Well Known port numbers (0 through 1023). These port numbers were originally assigned by the Internet Assigned Numbers Authority (IANA) and are now managed by The Internet Corporation for Assigned Names and Numbers (ICANN). The following table provides a summary of Well Known Port numbers. Port Assignments:
Keyword Decimal Description
rje rje
echo echo
0/tcp 0/udp 1/tcp 1/udp 2/tcp 2/udp 3/tcp 3/udp 4/tcp 4/udp 5/tcp 5/udp 6/tcp 6/udp 7/tcp 7/udp
Reserved Reserved TCP Port Service Multiplexer TCP Port Service Multiplexer Management Utility Management Utility Compression Process Compression Process Unassigned Unassigned Remote Job Entry Remote Job Entry Unassigned Unassigned Echo Echo
(continues)
197
198
Keyword Decimal
Description (continued)
discard discard
systat systat
daytime daytime
8/tcp 8/udp 9/tcp 9/udp 10/tcp 10/udp 11/tcp 11/udp 12/tcp 12/udp 13/tcp 13/udp 14/tcp 14/udp 15/tcp 15/udp 16/tcp 16/udp 17/tcp 17/udp 18/tcp 18/udp 19/tcp 19/udp 20/tcp 20/udp 21/tcp 21/udp 22/tcp 22/udp 23/tcp 23/udp 24/udp 25/tcp 25/udp 26/tcp 26/udp 27/tcp 27/udp 28/tcp 28/udp
Unassigned Unassigned Discard Discard Unassigned Unassigned Active Users Active Users Unassigned Unassigned Daytime Daytime Unassigned Unassigned Unassigned [was netstat] Unassigned Unassigned Unassigned Quote of the Day Quote of the Day Message Send Protocol Message Send Protocol Character Generator Character Generator File Transfer [Default Data] File Transfer [Default Data] File Transfer [Control] File Transfer [Control] SSH Remote Login Protocol SSH Remote Login Protocol Telnet Telnet Any private mail system Any private mail system Simple Mail Transfer Simple Mail Transfer Unassigned Unassigned NSW User System FE NSW User System FE Unassigned Unassigned
qotd qotd msp msp chargen chargen ftp-data ftp-data ftp ftp ssh ssh telnet telnet 24/tcp smtp smtp
nsw-fe nsw-fe
Port Numbers
199
Decimal Description (continued)
Keyword
msg-icp msg-icp
msg-auth msg-auth
dsp dsp
graphics graphics name name nameserver nameserver nicname nicname mpm-ags mpm-ags mpm mpm mpm-snd mpm-snd ni-ftp ni-ftp auditd auditd tacacs
29/tcp 29/udp 30/tcp 30/udp 31/tcp 31/udp 32/tcp 32/udp 33/tcp 33/udp 34/tcp 34/udp 35/tcp 35/udp 36/tcp 36/udp 37/tcp 37/udp 38/tcp 38/udp 39/tcp 39/udp 40/tcp 40/udp 41/tcp 41/udp 42/tcp 42/udp 42/tcp 42/udp 43/tcp 43/udp 44/tcp 44/udp 45/tcp 45/udp 46/tcp 46/udp 47/tcp 47/udp 48/tcp 48/udp 49/tcp
MSG ICP MSG ICP Unassigned Unassigned MSG Authentication MSG Authentication Unassigned Unassigned Display Support Protocol Display Support Protocol Unassigned Unassigned Any private printer server Any private printer server Unassigned Unassigned Time Time Route Access Protocol Route Access Protocol Resource Location Protocol Resource Location Protocol Unassigned Unassigned Graphics Graphics Host Name Server Host Name Server Host Name Server Host Name Server Who Is Who Is MPM FLAGS Protocol MPM FLAGS Protocol Message Processing Module [recv] Message Processing Module [recv] MPM [default send] MPM [default send] NI FTP NI FTP Digital Audit Daemon Digital Audit Daemon Login Host Protocol (TACACS)
(continues)
200
Keyword Decimal
Description (continued)
tacacs re-mail-ck re-mail-ck la-maint la-maint xns-time xns-time domain domain xns-ch xns-ch isi-gl isi-gl xns-auth xns-auth
xns-mail xns-mail
ni-mail ni-mail acas acas whois++ whois++ covia covia tacacs-ds tacacs-ds sql*net sql*net bootps bootps bootpc bootpc tftp tftp gopher gopher
49/udp 50/tcp 50/udp 51/tcp 51/udp 52/tcp 52/udp 53/tcp 53/udp 54/tcp 54/udp 55/tcp 55/udp 56/tcp 56/udp 57/tcp 57/udp 58/tcp 58/udp 59/tcp 59/udp 60/tcp 60/udp 61/tcp 61/udp 62/tcp 62/udp 63/tcp 63/udp 64/tcp 64/udp 65/tcp 65/udp 66/tcp 66/udp 67/tcp 67/udp 68/tcp 68/udp 69/tcp 69/udp 70/tcp 70/udp
Login Host Protocol (TACACS) Remote Mail Checking Protocol Remote Mail Checking Protocol IMP Logical Address Maintenance IMP Logical Address Maintenance XNS Time Protocol XNS Time Protocol Domain Name Server Domain Name Server XNS Clearinghouse XNS Clearinghouse ISI Graphics Language ISI Graphics Language XNS Authentication XNS Authentication Any private terminal access Any private terminal access XNS Mail XNS Mail Any private le service Any private le service Unassigned Unassigned NI MAIL NI MAIL ACA Services ACA Services whois++ whois++ Communications Integrator (CI) Communications Integrator (CI) TACACS-Database Service TACACS-Database Service Oracle SQL*NET Oracle SQL*NET Bootstrap Protocol Server Bootstrap Protocol Server Bootstrap Protocol Client Bootstrap Protocol Client Trivial File Transfer Trivial File Transfer Gopher Gopher
Port Numbers
201
Decimal Description (continued)
Keyword
deos deos
vettcp vettcp nger nger http http www-http www-http hosts2-ns hosts2-ns xfer xfer mit-ml-dev mit-ml-dev ctf ctf mit-ml-dev mit-ml-dev mfcobol mfcobol
71/tcp 71/udp 72/tcp 72/udp 73/tcp 73/udp 74/tcp 74/udp 75/tcp 75/udp 76/tcp 76/udp 77/tcp 77/udp 78/tcp 78/udp 79/tcp 79/udp 80/tcp 80/udp 80/tcp 80/udp 81/tcp 81/udp 82/tcp 82/udp 83/tcp 83/udp 84/tcp 84/udp 85/tcp 85/udp 86/tcp 86/udp 87/tcp 87/udp 88/tcp 88/udp 89/tcp 89/udp 90/tcp 90/udp 91/tcp
Remote Job Service Remote Job Service Remote Job Service Remote Job Service Remote Job Service Remote Job Service Remote Job Service Remote Job Service Any private dial out service Any private dial out service Distributed External Object Store Distributed External Object Store Any private RJE service Any private RJE service vettcp vettcp Finger Finger World Wide Web HTTP World Wide Web HTTP World Wide Web HTTP World Wide Web HTTP HOSTS2 Name Server HOSTS2 Name Server XFER Utility XFER Utility MIT ML Device MIT ML Device Common Trace Facility Common Trace Facility MIT ML Device MIT ML Device Micro Focus Cobol Micro Focus Cobol Any private terminal link Any private terminal link Kerberos Kerberos SU/MIT Telnet Gateway SU/MIT Telnet Gateway DNSIX Securit Attribute Token Map DNSIX Securit Attribute Token Map MIT Dover Spooler
(continues)
202
Keyword Decimal
Description (continued)
mit-dov npp npp dcp dcp objcall objcall supdup supdup dixie dixie swift-rvf swift-rvf tacnews tacnews metagram metagram newacct hostname hostname iso-tsap iso-tsap gppitnp gppitnp acr-nema acr-nema cso cso csnet-ns csnet-ns 3com-tsmux 3com-tsmux rtelnet rtelnet snagas snagas pop2 pop2 pop3 pop3 sunrpc sunrpc mcidas
91/udp 92/tcp 92/udp 93/tcp 93/udp 94/tcp 94/udp 95/tcp 95/udp 96/tcp 96/udp 97/tcp 97/udp 98/tcp 98/udp 99/tcp 99/udp 100/tcp 101/tcp 101/udp 102/tcp 102/udp 103/tcp 103/udp 104/tcp 104/udp 105/tcp 105/udp 105/tcp 105/udp 106/tcp 106/udp 107/tcp 107/udp 108/tcp 108/udp 109/tcp 109/udp 110/tcp 110/udp 111/tcp 111/udp 112/tcp
MIT Dover Spooler Network Printing Protocol Network Printing Protocol Device Control Protocol Device Control Protocol Tivoli Object Dispatcher Tivoli Object Dispatcher SUPDUP SUPDUP DIXIE Protocol Specication DIXIE Protocol Specication Swift Remote Virtural File Protocol Swift Remote Virtural File Protocol TAC News TAC News Metagram Relay Metagram Relay [Unauthorized use] NIC Host Name Server NIC Host Name Server ISO-TSAP Class 0 ISO-TSAP Class 0 Genesis Point-to-Point Trans Net Genesis Point-to-Point Trans Net ACR-NEMA Digital Imag. & Comm. 300 ACR-NEMA Digital Imag. & Comm. 300 CCSO name server protocol CCSO name server protocol Mailbox Name Nameserver Mailbox Name Nameserver 3COM-TSMUX 3COM-TSMUX Remote Telnet Service Remote Telnet Service SNA Gateway Access Server SNA Gateway Access Server Post Ofce Protocol - Version 2 Post Ofce Protocol - Version 2 Post Ofce Protocol - Version 3 Post Ofce Protocol - Version 3 SUN Remote Procedure Call SUN Remote Procedure Call McIDAS Data Transmission Protocol
Port Numbers
203
Decimal Description (continued)
Keyword
mcidas ident auth auth audionews audionews sftp sftp ansanotify ansanotify uucp-path uucp-path sqlserv sqlserv nntp nntp cfdptkt cfdptkt erpc erpc smakynet smakynet ntp ntp ansatrader ansatrader locus-map locus-map nxedit nxedit unitary unitary locus-con locus-con gss-xlicen gss-xlicen pwdgen pwdgen cisco-fna cisco-fna cisco-tna cisco-tna cisco-sys
112/udp 113/tcp 113/tcp 113/udp 114/tcp 114/udp 115/tcp 115/udp 116/tcp 116/udp 117/tcp 117/udp 118/tcp 118/udp 119/tcp 119/udp 120/tcp 120/udp 121/tcp 121/udp 122/tcp 122/udp 123/tcp 123/udp 124/tcp 124/udp 125/tcp 125/udp 126/tcp 126/udp 126/tcp 126/udp 127/tcp 127/udp 128/tcp 128/udp 129/tcp 129/udp 130/tcp 130/udp 131/tcp 131/udp 132/tcp
McIDAS Data Transmission Protocol Authentication Service Authentication Service Audio News Multicast Audio News Multicast Simple File Transfer Protocol Simple File Transfer Protocol ANSA REX Notify ANSA REX Notify UUCP Path Service UUCP Path Service SQL Services SQL Services Network News Transfer Protocol Network News Transfer Protocol CFDPTKT CFDPTKT Encore Expedited Remote Pro.Call Encore Expedited Remote Pro.Call SMAKYNET SMAKYNET Network Time Protocol Network Time Protocol ANSA REX Trader ANSA REX Trader Locus PC-Interface Net Map Ser Locus PC-Interface Net Map Ser NXEdit NXEdit Unisys Unitary Login (prior assignment) Unisys Unitary Login (prior assignment) Locus PC-Interface Conn Server Locus PC-Interface Conn Server GSS X License Verication GSS X License Verication Password Generator Protocol Password Generator Protocol cisco FNATIVE cisco FNATIVE cisco TNATIVE cisco TNATIVE cisco SYSMAINT
(continues)
204
Keyword Decimal
Description (continued)
cisco-sys statsrv statsrv ingres-net ingres-net epmap epmap prole prole netbios-ns netbios-ns netbios-dgm netbios-dgm netbios-ssn netbios-ssn ems-data ems-data ems-cntl ems-cntl bl-idm bl-idm imap imap uma uma uaac uaac iso-tp0 iso-tp0 iso-ip iso-ip jargon jargon aed-512 aed-512 sql-net sql-net hems hems bftp bftp sgmp sgmp
132/udp 133/tcp 133/udp 134/tcp 134/udp 135/tcp 135/udp 136/tcp 136/udp 137/tcp 137/udp 138/tcp 138/udp 139/tcp 139/udp 140/tcp 140/udp 141/tcp 141/udp 142/tcp 142/udp 143/tcp 143/udp 144/tcp 144/udp 145/tcp 145/udp 146/tcp 146/udp 147/tcp 147/udp 148/tcp 148/udp 149/tcp 149/udp 150/tcp 150/udp 151/tcp 151/udp 152/tcp 152/udp 153/tcp 153/udp
cisco SYSMAINT Statistics Service Statistics Service INGRES-NET Service INGRES-NET Service DCE endpoint resolution DCE endpoint resolution PROFILE Naming System PROFILE Naming System NETBIOS Name Service NETBIOS Name Service NETBIOS Datagram Service NETBIOS Datagram Service NETBIOS Session Service NETBIOS Session Service EMFIS Data Service EMFIS Data Service EMFIS Control Service EMFIS Control Service Britton-Lee IDM Britton-Lee IDM Internet Message Access Protocol Internet Message Access Protocol Universal Management Architecture Universal Management Architecture UAAC Protocol UAAC Protocol ISO-IP0 ISO-IP0 ISO-IP ISO-IP Jargon Jargon AED 512 Emulation Service AED 512 Emulation Service SQL-NET SQL-NET HEMS HEMS Background File Transfer Program Background File Transfer Program SGMP SGMP
Port Numbers
205
Decimal Description (continued)
Keyword
netsc-prod netsc-prod netsc-dev netsc-dev sqlsrv sqlsrv knet-cmp knet-cmp pcmail-srv pcmail-srv nss-routing nss-routing sgmp-traps sgmp-traps snmp snmp snmptrap snmptrap cmip-man cmip-man cmip-agent smip-agent xns-courier xns-courier s-net s-net namp namp rsvd rsvd send send print-srv print-srv multiplex multiplex cl/1 cl/1 xyplex-mux xyplex-mux mailq mailq vmnet
154/tcp 154/udp 155/tcp 155/udp 156/tcp 156/udp 157/tcp 157/udp 158/tcp 158/udp 159/tcp 159/udp 160/tcp 160/udp 161/tcp 161/udp 162/tcp 162/udp 163/tcp 163/udp 164/tcp 164/udp 165/tcp 165/udp 166/tcp 166/udp 167/tcp 167/udp 168/tcp 168/udp 169/tcp 169/udp 170/tcp 170/udp 171/tcp 171/udp 172/tcp 172/udp 173/tcp 173/udp 174/tcp 174/udp 175/tcp
NETSC NETSC NETSC NETSC SQL Service SQL Service KNET/VM Command/Message Protocol KNET/VM Command/Message Protocol PCMail Server PCMail Server NSS-Routing NSS-Routing SGMP-TRAPS SGMP-TRAPS SNMP SNMP SNMPTRAP SNMPTRAP CMIP/TCP Manager CMIP/TCP Manager CMIP/TCP Agent CMIP/TCP Agent Xerox Xerox Sirius Systems Sirius Systems NAMP NAMP RSVD RSVD SEND SEND Network PostScript Network PostScript Network Innovations Multiplex Network Innovations Multiplex Network Innovations CL/1 Network Innovations CL/1 Xyplex Xyplex MAILQ MAILQ VMNET
(continues)
206
Keyword Decimal
Description (continued)
vmnet genrad-mux genrad-mux xdmcp xdmcp nextstep nextstep bgp bgp ris ris unify unify audit audit ocbinder ocbinder ocserver ocserver remote-kis remote-kis kis kis aci aci mumps mumps qft qft gacp gacp prospero prospero osu-nms osu-nms srmp srmp irc irc dn6-nlm-aud dn6-nlm-aud dn6-smm-red dn6-smm-red
175/udp 176/tcp 176/udp 177/tcp 177/udp 178/tcp 178/udp 179/tcp 179/udp 180/tcp 180/udp 181/tcp 181/udp 182/tcp 182/udp 183/tcp 183/udp 184/tcp 184/udp 185/tcp 185/udp 186/tcp 186/udp 187/tcp 187/udp 188/tcp 188/udp 189/tcp 189/udp 190/tcp 190/udp 191/tcp 191/udp 192/tcp 192/udp 193/tcp 193/udp 194/tcp 194/udp 195/tcp 195/udp 196/tcp 196/udp
VMNET GENRAD-MUX GENRAD-MUX X Display Manager Control Protocol X Display Manager Control Protocol NextStep Window Server NextStep Window Server Border Gateway Protocol Border Gateway Protocol Intergraph Intergraph Unify Unify Unisys Audit SITP Unisys Audit SITP OCBinder OCBinder OCServer OCServer Remote-KIS Remote-KIS KIS Protocol KIS Protocol Application Communication Interface Application Communication Interface Plus Fives MUMPS Plus Fives MUMPS Queued File Transport Queued File Transport Gateway Access Control Protocol Gateway Access Control Protocol Prospero Directory Service Prospero Directory Service OSU Network Monitoring System OSU Network Monitoring System Spider Remote Monitoring Protocol Spider Remote Monitoring Protocol Internet Relay Chat Protocol Internet Relay Chat Protocol DNSIX Network Level Module Audit DNSIX Network Level Module Audit DNSIX Session Mgt Module Audit Redir DNSIX Session Mgt Module Audit Redir
Port Numbers
207
Decimal Description (continued)
Keyword
dls dls dls-mon dls-mon smux smux src src at-rtmp at-rtmp at-nbp at-nbp at-3 at-3 at-echo at-echo at-5 at-5 at-zis at-zis at-7 at-7 at-8 at-8 qmtp qmtp z39.50 z39.50 914c/g 914c/g anet anet ipx ipx vmpwscs vmpwscs softpc softpc CAIlic CAIlic dbase dbase mpp
197/tcp 197/udp 198/tcp 198/udp 199/tcp 199/udp 200/tcp 200/udp 201/tcp 201/udp 202/tcp 202/udp 203/tcp 203/udp 204/tcp 204/udp 205/tcp 205/udp 206/tcp 206/udp 207/tcp 207/udp 208/tcp 208/udp 209/tcp 209/udp 210/tcp 210/udp 211/tcp 211/udp 212/tcp 212/udp 213/tcp 213/udp 214/tcp 214/udp 215/tcp 215/udp 216/tcp 216/udp 217/tcp 217/udp 218/tcp
Directory Location Service Directory Location Service Directory Location Service Monitor Directory Location Service Monitor SMUX SMUX IBM System Resource Controller IBM System Resource Controller AppleTalk Routing Maintenance AppleTalk Routing Maintenance AppleTalk Name Binding AppleTalk Name Binding AppleTalk Unused AppleTalk Unused AppleTalk Echo AppleTalk Echo AppleTalk Unused AppleTalk Unused AppleTalk Zone Information AppleTalk Zone Information AppleTalk Unused AppleTalk Unused AppleTalk Unused AppleTalk Unused The Quick Mail Transfer Protocol The Quick Mail Transfer Protocol ANSI Z39.50 ANSI Z39.50 Texas Instruments 914C/G Terminal Texas Instruments 914C/G Terminal ATEXSSTR ATEXSSTR IPX IPX VM PWSCS VM PWSCS Insignia Solutions Insignia Solutions Computer Associates Intl License Server Computer Associates Intl License Server dBASE Unix dBASE Unix Netix Message Posting Protocol
(continues)
208
Keyword Decimal
Description (continued)
mpp uarps uarps imap3 imap3 n-spx n-spx rsh-spx rsh-spx cdc cdc masqdialer masqdialer direct direct sur-meas sur-meas inbusiness inbusiness link link dsp3270 dsp3270 subntbcst_tftp subntbcst_tftp bhfhs bhfhs rap rap set set yak-chat yak-chat esro-gen esro-gen openport openport nsiiops nsiiops arcisdms arcisdms
218/udp 219/tcp 219/udp 220/tcp 220/udp 221/tcp 221/udp 222/tcp 222/udp 223/tcp 223/udp 224/tcp 224/udp 225241 242/tcp 242/udp 243/tcp 243/udp 244/tcp 244/udp 245/tcp 245/udp 246/tcp 246/udp 247/tcp 247/udp 248/tcp 248/udp 249255 256/tcp 256/udp 257/tcp 257/udp 258/tcp 258/udp 259/tcp 259/udp 260/tcp 260/udp 261/tcp 261/udp 262/tcp 262/udp
Netix Message Posting Protocol Unisys ARPs Unisys ARPs Interactive Mail Access Protocol v3 Interactive Mail Access Protocol v3 Berkeley rlogind with SPX auth Berkeley rlogind with SPX auth Berkeley rshd with SPX auth Berkeley rshd with SPX auth Certicate Distribution Center Certicate Distribution Center masqdialer masqdialer Reserved Direct Direct Survey Measurement Survey Measurement inbusiness inbusiness LINK LINK Display Systems Protocol Display Systems Protocol SUBNTBCST_TFTP SUBNTBCST_TFTP bhfhs bhfhs Reserved RAP RAP Secure Electronic Transaction Secure Electronic Transaction Yak Winsock Personal Chat Yak Winsock Personal Chat Efcient Short Remote Operations Efcient Short Remote Operations Openport Openport IIOP Name Service over TLS/SSL IIOP Name Service over TLS/SSL Arcisdms Arcisdms
Port Numbers
209
Decimal Description (continued)
Keyword
hdap hdap bgmp bgmp x-bone-ctl x-bone-ctl sst sst td-service td-service td-replica td-replica http-mgmt http-mgmt personal-link personal-link cableport-ax cableport-ax rescap rescap corerjd corerjd fxp-1 fxp-1 k-block k-block novastorbakcup novastorbakcup entrusttime entrusttime bhmds bhmds asip-webadmin asip-webadmin vslmp vslmp magenta-logic magenta-logic opalis-robot opalis-robot
263/tcp 263/udp 264/tcp 264/udp 265/tcp 265/udp 266/tcp 266/udp 267/tcp 267/udp 268/tcp 268/udp 269279 280/tcp 280/udp 281/tcp 281/udp 282/tcp 282/udp 283/tcp 283/udp 284/tcp 284/udp 285 286/tcp 286/udp 287/tcp 287/udp 288307 308/tcp 308/udp 309/tcp 309/udp 310/tcp 310/udp 311/tcp 311/udp 312/tcp 312/udp 313/tcp 313/udp 314/tcp 314/udp
HDAP HDAP BGMP BGMP X-Bone CTL X-Bone CTL SCSI on ST SCSI on ST Tobit David Service Layer Tobit David Service Layer Tobit David Replica Tobit David Replica Unassigned http-mgmt http-mgmt Personal Link Personal Link Cable Port A/X Cable Port A/X rescap rescap corerjd corerjd Unassigned FXP-1 FXP-1 K-BLOCK K-BLOCK Unassigned Novastor Backup Novastor Backup EntrustTime EntrustTime bhmds bhmds AppleShare IP WebAdmin AppleShare IP WebAdmin VSLMP VSLMP Magenta Logic Magenta Logic Opalis Robot Opalis Robot
(continues)
210
Keyword Decimal
Description (continued)
dpsi dpsi decauth decauth zannet zannet pkix-timestamp pkix-timestamp ptp-event ptp-event ptp-general ptp-general pip pip rtsps rtsps texar texar pdap pdap pawserv pawserv zserv zserv fatserv fatserv csi-sgwp csi-sgwp mftp mftp matip-type-a matip-type-a matip-type-b matip-type-b bhoetty bhoetty dtag-ste-sb dtag-ste-sb bhoedap4 bhoedap4 ndsauth
315/tcp 315/udp 316/tcp 316/udp 317/tcp 317/udp 318/tcp 318/udp 319/tcp 319/udp 320/tcp 320/udp 321/tcp 321/udp 322/tcp 322/udp 323332 333/tcp 333/udp 334343 344/tcp 344/udp 345/tcp 345/udp 346/tcp 346/udp 347/tcp 347/udp 348/tcp 348/udp 349/tcp 349/udp 350/tcp 350/udp 351/tcp 351/udp 351/tcp 351/udp 352/tcp 352/udp 352/tcp 352/udp 353/tcp
DPSI DPSI decAuth decAuth Zannet Zannet PKIX TimeStamp PKIX TimeStamp PTP Event PTP Event PTP General PTP General PIP PIP RTSPS RTSPS Unassigned Texar Security Port Texar Security Port Unassigned Prospero Data Access Protocol Prospero Data Access Protocol Perf Analysis Workbench Perf Analysis Workbench Zebra server Zebra server Fatmen Server Fatmen Server Cabletron Management Protocol Cabletron Management Protocol mftp mftp MATIP Type A MATIP Type A MATIP Type B MATIP Type B bhoetty bhoetty DTAG DTAG bhoedap4 bhoedap4 NDSAUTH
Port Numbers
211
Decimal Description (continued)
Keyword
ndsauth bh611 bh611 datex-asn datex-asn cloanto-net-1 cloanto-net-1 bhevent bhevent shrinkwrap shrinkwrap tenebris_nts tenebris_nts scoi2odialog scoi2odialog semantix semantix srssend srssend rsvp_tunnel rsvp_tunnel aurora-cmgr aurora-cmgr dtk dtk odmr odmr mortgageware mortgageware qbikgdp qbikgdp rpc2portmap rpc2portmap codaauth2 codaauth2 clearcase clearcase ulistproc ulistproc legent-1 legent-1 legent-2 legent-2
353/udp 354/tcp 354/udp 355/tcp 355/udp 356/tcp 356/udp 357/tcp 357/udp 358/tcp 358/udp 359/tcp 359/udp 360/tcp 360/udp 361/tcp 361/udp 362/tcp 362/udp 363/tcp 363/udp 364/tcp 364/udp 365/tcp 365/udp 366/tcp 366/udp 367/tcp 367/udp 368/tcp 368/udp 369/tcp 369/udp 370/tcp 370/udp 371/tcp 371/udp 372/tcp 372/udp 373/tcp 373/udp 374/tcp 374/udp
NDSAUTH bh611 bh611 DATEX-ASN DATEX-ASN Cloanto Net 1 Cloanto Net 1 bhevent bhevent Shrinkwrap Shrinkwrap Tenebris Network Trace Service Tenebris Network Trace Service scoi2odialog scoi2odialog Semantix Semantix SRS Send SRS Send RSVP Tunnel RSVP Tunnel Aurora CMGR Aurora CMGR DTK DTK ODMR ODMR MortgageWare MortgageWare QbikGDP QbikGDP rpc2portmap rpc2portmap codaauth2 codaauth2 Clearcase Clearcase ListProcessor ListProcessor Legent Corporation Legent Corporation Legent Corporation Legent Corporation
(continues)
212
Keyword Decimal
Description (continued)
hassle hassle nip nip tnETOS tnETOS dsETOS dsETOS is99c is99c is99s is99s hp-collector hp-collector hp-managed-node hp-managed-node hp-alarm-mgr hp-alarm-mgr arns arns ibm-app ibm-app asa asa aurp aurp unidata-ldm unidata-ldm ldap uis uis synotics-relay synotics-relay synotics-broker synotics-broker dis dis embl-ndt embl-ndt netcp netcp netware-ip
375/tcp 375/udp 376/tcp 376/udp 377/tcp 377/udp 378/tcp 378/udp 379/tcp 379/udp 380/tcp 380/udp 381/tcp 381/udp 382/tcp 382/udp 383/tcp 383/udp 384/tcp 384/udp 385/tcp 385/udp 386/tcp 386/udp 387/tcp 387/udp 388/tcp 388/udp 389/tcp 389/udp 390/tcp 390/udp 391/tcp 391/udp 392/tcp 392/udp 393/tcp 393/udp 394/tcp 394/udp 395/tcp 395/udp 396/tcp
Hassle Hassle Amiga Envoy Network Inquiry Proto Amiga Envoy Network Inquiry Proto NEC Corporation NEC Corporation NEC Corporation NEC Corporation TIA/EIA/IS-99 modem client TIA/EIA/IS-99 modem client TIA/EIA/IS-99 modem server TIA/EIA/IS-99 modem server hp performance data collector hp performance data collector hp performance data managed node hp performance data managed node hp performance data alarm manager hp performance data alarm manager A Remote Network Server System A Remote Network Server System IBM Application IBM Application ASA Message Router Object Def. ASA Message Router Object Def. Appletalk Update-Based Routing Protocol. Appletalk Update-Based Routing Protocol Unidata LDM Unidata LDM Lightweight Directory Access Protocol Lightweight Directory Access Protocol UIS UIS SynOptics SNMP Relay Port SynOptics SNMP Relay Port SynOptics Port Broker Port SynOptics Port Broker Port Data Interpretation System Data Interpretation System EMBL Nucleic Data Transfer EMBL Nucleic Data Transfer NETscout Control Protocol NETscout Control Protocol Novell Netware over IP
Port Numbers
213
Decimal Description (continued)
Keyword
netware-ip mptn mptn kryptolan kryptolan iso-tsap-c2 iso-tsap-c2 work-sol work-sol ups ups genie genie decap decap nced nced ncld ncld imsp imsp timbuktu timbuktu prm-sm prm-sm prm-nm prm-nm decladebug decladebug rmt rmt synoptics-trap synoptics-trap smsp smsp infoseek infoseek bnet bnet silverplatter silverplatter onmux onmux
396/udp 397/tcp 397/udp 398/tcp 398/udp 399/tcp 399/udp 400/tcp 400/udp 401/tcp 401/udp 402/tcp 402/udp 403/tcp 403/udp 404/tcp 404/udp 405/tcp 405/udp 406/tcp 406/udp 407/tcp 407/udp 408/tcp 408/udp 409/tcp 409/udp 410/tcp 410/udp 411/tcp 411/udp 412/tcp 412/udp 413/tcp 413/udp 414/tcp 414/udp 415/tcp 415/udp 416/tcp 416/udp 417/tcp 417/udp
Novell Netware over IP Multi Protocol Trans. Net. Multi Protocol Trans. Net. Kryptolan Kryptolan ISO Transport Class 2 Non-Control over TCP ISO Transport Class 2 Non-Control over TCP Workstation Solutions Workstation Solutions Uninterruptible Power Supply Uninterruptible Power Supply Genie Protocol Genie Protocol decap decap nced nced ncld ncld Interactive Mail Support Protocol Interactive Mail Support Protocol Timbuktu Timbuktu Prospero Resource Manager Sys. Man. Prospero Resource Manager Sys. Man. Prospero Resource Manager Node Man. Prospero Resource Manager Node Man. DECLadebug Remote Debug Protocol DECLadebug Remote Debug Protocol Remote MT Protocol Remote MT Protocol Trap Convention Port Trap Convention Port SMSP SMSP InfoSeek InfoSeek BNet BNet Silverplatter Silverplatter Onmux Onmux
(continues)
214
Keyword Decimal
Description (continued)
hyper-g hyper-g ariel1 ariel1 smpte smpte ariel2 ariel2 ariel3 ariel3 opc-job-start opc-job-start opc-job-track opc-job-track icad-el icad-el smartsdp smartsdp svrloc svrloc ocs_cmu ocs_cmu ocs_amu ocs_amu utmpsd utmpsd utmpcd utmpcd iasd iasd nnsp nnsp mobileip-agent mobileip-agent mobilip-mn mobilip-mn dna-cml dna-cml comscm comscm dsfgw dsfgw dasp
418/tcp 418/udp 419/tcp 419/udp 420/tcp 420/udp 421/tcp 421/udp 422/tcp 422/udp 423/tcp 423/udp 424/tcp 424/udp 425/tcp 425/udp 426/tcp 426/udp 427/tcp 427/udp 428/tcp 428/udp 429/tcp 429/udp 430/tcp 430/udp 431/tcp 431/udp 432/tcp 432/udp 433/tcp 433/udp 434/tcp 434/udp 435/tcp 435/udp 436/tcp 436/udp 437/tcp 437/udp 438/tcp 438/udp 439/tcp
Hyper-G Hyper-G Ariel Ariel SMPTE SMPTE Ariel Ariel Ariel Ariel IBM Operations IBM Operations IBM Operations IBM Operations ICAD ICAD smartsdp smartsdp Server Location Server Location OCS_CMU OCS_CMU OCS_AMU OCS_AMU UTMPSD UTMPSD UTMPCD UTMPCD IASD IASD NNSP NNSP MobileIP-Agent MobileIP-Agent MobilIP-MN MobilIP-MN DNA-CML DNA-CML comscm comscm dsfgw dsfgw dasp dasp
Port Numbers
215
Decimal Description (continued)
Keyword
sgcp sgcp decvms-sysmgt decvms-sysmgt cvc_hostd cvc_hostd https https snpp snpp microsoft-ds microsoft-ds ddm-rdb ddm-rdb ddm-dfm ddm-dfm ddm-ssl ddm-ssl as-servermap as-servermap tserver tserver sfs-smp-net sfs-smp-net sfs-cong sfs-cong creativeserver creativeserver contentserver contentserver creativepartnr creativepartnr macon-tcp macon-udp scohelp scohelp appleqtc appleqtc ampr-rcmd ampr-rcmd skronk skronk
439/udp 440/tcp 440/udp 441/tcp 441/udp 442/tcp 442/udp 443/tcp 443/udp 444/tcp 444/udp 445/tcp 445/udp 446/tcp 446/udp 447/tcp 447/udp 448/tcp 448/udp 449/tcp 449/udp 450/tcp 450/udp 451/tcp 451/udp 452/tcp 452/udp 453/tcp 453/udp 454/tcp 454/udp 455/tcp 455/udp 456/tcp 456/udp 457/tcp 457/udp 458/tcp 458/udp 459/tcp 459/udp 460/tcp 460/udp
dasp sgcp sgcp decvms-sysmgt decvms-sysmgt cvc_hostd cvc_hostd http protocol over TLS/SSL http protocol over TLS/SSL Simple Network Paging Protocol Simple Network Paging Protocol Microsoft-DS Microsoft-DS DDM-RDB DDM-RDB DDM-RFM DDM-RFM DDM-SSL DDM-SSL AS Server Mapper AS Server Mapper TServer TServer Cray Network Semaphore server Cray Network Semaphore server Cray SFS cong server Cray SFS cong server CreativeServer CreativeServer ContentServer ContentServer CreativePartnr CreativePartnr macon-tcp macon-udp scohelp scohelp apple quick time apple quick time ampr-rcmd ampr-rcmd skronk skronk
(continues)
216
Keyword Decimal
Description (continued)
datasurfsrv datasurfsrv datasurfsrvsec datasurfsrvsec alpes alpes kpasswd kpasswd digital-vrc digital-vrc mylex-mapd mylex-mapd photuris photuris rcp rcp scx-proxy scx-proxy mondex ljk-login ljk-login hybrid-pop hybrid-pop tn-tl-w1 tn-tl-w2 tcpnethaspsrv tcpnethaspsrv tn-tl-fd1 tn-tl-fd1 ss7ns ss7ns spsc spsc iafserver iafserver iafdbase iafdbase ph ph bgs-nsi bgs-nsi
461/tcp 461/udp 462/tcp 462/udp 463/tcp 463/udp 464/tcp 464/udp 465 466/tcp 466/udp 467/tcp 467/udp 468/tcp 468/udp 469/tcp 469/udp 470/tcp 470/udp 471/tcp 471/udp 472/tcp 472/udp 473/tcp 473/udp 474/tcp 474/udp 475/tcp 475/udp 476/tcp 476/udp 477/tcp 477/udp 478/tcp 478/udp 479/tcp 479/udp 480/tcp 480/udp 481/tcp 481/udp 482/tcp 482/udp
DataRampSrv DataRampSrv DataRampSrvSec DataRampSrvSec alpes alpes kpasswd kpasswd Unassigned digital-vrc digital-vrc mylex-mapd mylex-mapd proturis proturis Radio Control Protocol Radio Control Protocol scx-proxy scx-proxy# mondex Mondex Mondex ljk-login ljk-login hybrid-pop hybrid-pop tn-tl-w1 tn-tl-w2 tcpnethaspsrv tcpnethaspsrv tn-tl-fd1 tn-tl-fd1 ss7ns ss7ns spsc spsc iafserver iafserver iafdbase iafdbase Ph service Ph service bgs-nsi bgs-nsi
Port Numbers
217
Decimal Description (continued)
Keyword
ulpnet ulpnet integra-sme integra-sme powerburst powerburst avian avian saft saft gss-http gss-http nest-protocol nest-protocol micom-pfs micom-pfs go-login go-login ticf-1 ticf-1 ticf-2 ticf-2 pov-ray pov-ray intecourier intecourier pim-rp-disc pim-rp-disc dantz dantz siam siam iso-ill iso-ill isakmp isakmp stmf stmf asa-appl-proto asa-appl-proto intrinsa intrinsa citadel
483/tcp 483/udp 484/tcp 484/udp 485/tcp 485/udp 486/tcp 486/udp 487/tcp 487/udp 488/tcp 488/udp 489/tcp 489/udp 490/tcp 490/udp 491/tcp 491/udp 492/tcp 492/udp 493/tcp 493/udp 494/tcp 494/udp 495/tcp 495/udp 496/tcp 496/udp 497/tcp 497/udp 498/tcp 498/udp 499/tcp 499/udp 500/tcp 500/udp 501/tcp 501/udp 502/tcp 502/udp 503/tcp 503/udp 504/tcp
ulpnet ulpnet Integra Software Management Environment Integra Software Management Environment Air Soft Power Burst Air Soft Power Burst avian avian saft Simple Asynchronous File Transfer saft Simple Asynchronous File Transfer gss-http gss-http nest-protocol nest-protocol micom-pfs micom-pfs go-login go-login Transport Independent Convergence for FNA Transport Independent Convergence for FNA Transport Independent Convergence for FNA Transport Independent Convergence for FNA POV-Ray POV-Ray intecourier intecourier PIM-RP-DISC PIM-RP-DISC dantz dantz siam siam ISO ILL Protocol ISO ILL Protocol isakmp isakmp STMF STMF asa-appl-proto asa-appl-proto Intrinsa Intrinsa citadel
(continues)
218
Keyword Decimal
Description (continued)
citadel mailbox-lm mailbox-lm ohimsrv ohimsrv crs crs xvttp xvttp snare snare fcp fcp passgo passgo exec comsat biff login who syslog printer printer videotex videotex talk talk ntalk ntalk utime utime efs router ripng ripng ulp ulp ibm-db2 ibm-db2 ncp ncp
504/udp 505/tcp 505/udp 506/tcp 506/udp 507/tcp 507/udp 508/tcp 508/udp 509/tcp 509/udp 510/tcp 510/udp 511/tcp 511/udp 512/tcp 512/udp 512/udp 513/tcp 513/udp 514/udp 515/tcp 515/udp 516/tcp 516/udp 517/tcp 517/udp 518/tcp 518/udp 519/tcp 519/udp 520/tcp 520/udp 521/tcp 521/udp 522/tcp 522/udp 523/tcp 523/udp 524/tcp 524/udp
citadel mailbox-lm mailbox-lm ohimsrv ohimsrv crs crs xvttp xvttp snare snare FirstClass Protocol FirstClass Protocol PassGo PassGo remote process execution Used by mail system to notify users of new mail received Remote login via telnet Maintains databases showing whos logged in to computer spooler spooler videotex videotex similar to a tenex link
unixtime unixtime extended le name server local routing process (on site ripng ripng ULP ULP IBM-DB2 IBM-DB2 NCP NCP
Port Numbers
219
Decimal Description (continued)
Keyword
timed timed tempo tempo stx stx custix custix irc-serv irc-serv courier courier conference conference netnews netnews netwall netwall mm-admin mm-admin iiop iiop opalis-rdv opalis-rdv nmsp nmsp gdomap gdomap apertus-ldp apertus-ldp uucp uucp uucp-rlogin uucp-rlogin commerce commerce klogin klogin kshell kshell appleqtcsrvr appleqtcsrvr dhcpv6-client
525/tcp 525/udp 526/tcp 526/udp 527/tcp 527/udp 528/tcp 528/udp 529/tcp 529/udp 530/tcp 530/udp 531/tcp 531/udp 532/tcp 532/udp 533/tcp 533/udp 534/tcp 534/udp 535/tcp 535/udp 536/tcp 536/udp 537/tcp 537/udp 538/tcp 538/udp 539/tcp 539/udp 540/tcp 540/udp 541/tcp 541/udp 542/tcp 542/udp 543/tcp 543/udp 544/tcp 544/udp 545/tcp 545/udp 546/tcp
timeserver timeserver newdate newdate Stock IXChange Stock IXChange Customer IXChange Customer IXChange IRC-SERV IRC-SERV rpc rpc chat chat readnews readnews For emergency broadcasts For emergency broadcasts MegaMedia Admin MegaMedia Admin iiop iiop opalis-rdv opalis-rdv Networked Media Streaming Protocol Networked Media Streaming Protocol gdomap gdomap Apertus Technologies Load Determination Apertus Technologies Load Determination uucpd uucpd uucp-rlogin uucp-rlogin commerce commerce
220
Keyword Decimal
Description (continued)
dhcpv6-client dhcpv6-server dhcpv6-server afpovertcp afpovertcp idfp idfp new-rwho new-rwho cybercash cybercash deviceshare deviceshare pirp pirp rtsp rtsp dsf dsf remotefs remotefs openvms-sysipc openvms-sysipc sdnskmp sdnskmp teedtap teedtap rmonitor rmonitor monitor monitor chshell chshell nntps nntps 9pfs 9pfs whoami whoami streettalk streettalk banyan-rpc banyan-rpc
546/udp 547/tcp 547/udp 548/tcp 548/udp 549/tcp 549/udp 550/tcp 550/udp 551/tcp 551/udp 552/tcp 552/udp 553/tcp 553/udp 554/tcp 554/udp 555/tcp 555/udp 556/tcp 556/udp 557/tcp 557/udp 558/tcp 558/udp 559/tcp 559/udp 560/tcp 560/udp 561/tcp 561/udp 562/tcp 562/udp 563/tcp 563/udp 564/tcp 564/udp 565/tcp 565/udp 566/tcp 566/udp 567/tcp 567/udp
DHCPv6 Client DHCPv6 Server DHCPv6 Server AFP over TCP AFP over TCP IDFP IDFP new-who new-who cybercash cybercash deviceshare deviceshare pirp pirp Real Time Stream Control Protocol Real Time Stream Control Protocol
rfs server rfs server openvms-sysipc openvms-sysipc SDNSKMP SDNSKMP TEEDTAP TEEDTAP rmonitord rmonitord
chcmd chcmd nntp protocol over TLS/SSL (was snntp) nntp protocol over TLS/SSL (was snntp) plan 9 le service plan 9 le service whoami whoami streettalk streettalk banyan-rpc banyan-rpc
Port Numbers
221
Decimal Description (continued)
Keyword
ms-shuttle ms-shuttle ms-rome ms-rome meter meter meter meter sonar sonar banyan-vip banyan-vip ftp-agent ftp-agent vemmi vemmi ipcd ipcd vnas vnas ipdd ipdd decbsrv decbsrv sntp-heartbeat sntp-heartbeat bdp bdp scc-security scc-security philips-vc philips-vc keyserver keyserver imap4-ssl imap4-ssl password-chg password-chg submission submission cal cal eyelink
568/tcp 568/udp 569/tcp 569/udp 570/tcp 570/udp 571/tcp 571/udp 572/tcp 572/udp 573/tcp 573/udp 574/tcp 574/udp 575/tcp 575/udp 576/tcp 576/udp 577/tcp 577/udp 578/tcp 578/udp 579/tcp 579/udp 580/tcp 580/udp 581/tcp 581/udp 582/tcp 582/udp 583/tcp 583/udp 584/tcp 584/udp 585/tcp 585/udp 586/tcp 586/udp 587/tcp 587/udp 588/tcp 588/udp 589/tcp
microsoft shuttle microsoft shuttle microsoft rome microsoft rome demon demon udemon udemon sonar sonar banyan-vip banyan-vip FTP Software Agent System FTP Software Agent System VEMMI VEMMI ipcd ipcd vnas vnas ipdd ipdd decbsrv decbsrv SNTP HEARTBEAT SNTP HEARTBEAT Bundle Discovery Protocol Bundle Discovery Protocol SCC Security SCC Security Philips Video-Conferencing Philips Video-Conferencing Key Server Key Server IMAP4+SSL (use 993 instead) IMAP4+SSL (use 993 instead) Password Change Password Change Submission Submission CAL CAL EyeLink
(continues)
222
Keyword Decimal
Description (continued)
eyelink tns-cml tns-cml http-alt http-alt eudora-set eudora-set http-rpc-epmap http-rpc-epmap tpip tpip cab-protocol cab-protocol smsd smsd ptcnameservice ptcnameservice sco-websrvrmg3 sco-websrvrmg3 acp acp ipcserver ipcserver urm urm nqs nqs sift-uft sift-uft npmp-trap npmp-trap npmp-local npmp-local npmp-gui npmp-gui hmmp-ind hmmp-ind hmmp-op hmmp-op sshell sshell
589/udp 590/tcp 590/udp 591/tcp 591/udp 592/tcp 592/udp 593/tcp 593/udp 594/tcp 594/udp 595/tcp 595/udp 596/tcp 596/udp 597/tcp 597/udp 598/tcp 598/udp 599/tcp 599/udp 600/tcp 600/udp 601605 606/tcp 606/udp 607/tcp 607/udp 608/tcp 608/udp 609/tcp 609/udp 610/tcp 610/udp 611/tcp 611/udp # 612/tcp 612/udp 613/tcp 613/udp 614/tcp 614/udp
EyeLink TNS CML TNS CML FileMaker, Inc. - HTTP Alternate (see Port 80) FileMaker, Inc. - HTTP Alternate (see Port 80) Eudora Set Eudora Set HTTP RPC Ep Map HTTP RPC Ep Map TPIP TPIP CAB Protocol CAB Protocol SMSD SMSD PTC Name Service PTC Name Service SCO Web Server Manager 3 SCO Web Server Manager 3 Aeolon Core Protocol Aeolon Core Protocol Sun IPC server Sun IPC server Unassigned Cray Unied Resource Manager Cray Unied Resource Manager nqs nqs Sender-Initiated/Unsolicited File Transfer Sender-Initiated/Unsolicited File Transfer npmp-trap npmp-trap npmp-local npmp-local npmp-gui npmp-gui John Barnes <jbarnes@crl.com> HMMP Indication HMMP Indication HMMP Operation HMMP Operation SSLshell SSLshell
Port Numbers
223
Decimal Description (continued)
Keyword
sco-inetmgr sco-inetmgr sco-sysmgr sco-sysmgr sco-dtmgr sco-dtmgr dei-icda dei-icda digital-evm digital-evm sco-websrvrmgr sco-websrvrmgr escp-ip escp-ip collaborator collaborator aux_bus_shunt aux_bus_shunt cryptoadmin cryptoadmin dec_dlm dec_dlm asia asia passgo-tivoli passgo-tivoli qmqp qmqp 3com-amp3 3com-amp3 rda rda ipp ipp bmpp bmpp servstat servstat ginad ginad rlzdbase rlzdbase ldaps
615/tcp 615/udp 616/tcp 616/udp 617/tcp 617/udp 618/tcp 618/udp 619/tcp 619/udp 620/tcp 620/udp 621/tcp 621/udp 622/tcp 622/udp 623/tcp 623/udp 624/tcp 624/udp 625/tcp 625/udp 626/tcp 626/udp 627/tcp 627/udp 628/tcp 628/udp 629/tcp 629/udp 630/tcp 630/udp 631/tcp 631/udp 632/tcp 632/udp 633/tcp 633/udp 634/tcp 634/udp 635/tcp 635/udp 636/tcp
Internet Conguration Manager Internet Conguration Manager SCO System Administration Server SCO System Administration Server SCO Desktop Administration Server SCO Desktop Administration Server DEI-ICDA DEI-ICDA Digital EVM Digital EVM SCO WebServer Manager SCO WebServer Manager ESCP ESCP Collaborator Collaborator Aux Bus Shunt Aux Bus Shunt Crypto Admin Crypto Admin DEC DLM DEC DLM ASIA ASIA PassGo Tivoli PassGo Tivoli QMQP QMQP 3Com AMP3 3Com AMP3 RDA RDA IPP (Internet Printing Protocol) IPP (Internet Printing Protocol) bmpp bmpp Service Status update (Sterling Software) Service Status update (Sterling Software) ginad ginad RLZ DBase RLZ DBase ldap protocol over TLS/SSL (was sldap)
(continues)
224
Keyword Decimal
Description (continued)
ldaps lanserver lanserver mcns-sec mcns-sec msdp msdp entrust-sps entrust-sps repcmd repcmd esro-emsdp esro-emsdp sanity sanity dwr dwr pssc pssc ldp ldp dhcp-failover dhcp-failover rrp rrp aminet aminet obex obex ieee-mms ieee-mms udlr-dtcp udlr-dtcp repscmd repscmd aodv aodv tinc tinc spmp spmp rmc rmc
636/udp 637/tcp 637/udp 638/tcp 638/udp 639/tcp 639/udp 640/tcp 640/udp 641/tcp 641/udp 642/tcp 642/udp 643/tcp 643/udp 644/tcp 644/udp 645/tcp 645/udp 646/tcp 646/udp 647/tcp 647/udp 648/tcp 648/udp 649/tcp 649/udp 650/tcp 650/udp 651/tcp 651/udp 652/tcp 652/udp 653/tcp 653/udp 654/tcp 654/udp 655/tcp 655/udp 656/tcp 656/udp 657/tcp 657/udp
ldap protocol over TLS/SSL (was sldap) lanserver lanserver mcns-sec mcns-sec MSDP MSDP entrust-sps entrust-sps repcmd repcmd ESRO-EMSDP V1.3 ESRO-EMSDP V1.3 SANity SANity dwr dwr PSSC PSSC LDP LDP DHCP Failover DHCP Failover Registry Registrar Protocol (RRP) Registry Registrar Protocol (RRP) Aminet Aminet OBEX OBEX IEEE MMS IEEE MMS UDLR_DTCP UDLR_DTCP RepCmd RepCmd AODV AODV TINC TINC SPMP SPMP RMC RMC
Port Numbers
225
Decimal Description (continued)
Keyword
tenfold tenfold url-rendezvous url-rendezvous mac-srvr-admin mac-srvr-admin hap hap pftp pftp purenoise purenoise secure-aux-bus secure-aux-bus sun-dr sun-dr mdqs mdqs doom doom disclose disclose mecomm mecomm meregister meregister vacdsm-sws vacdsm-sws vacdsm-app vacdsm-app vpps-qua vpps-qua cimplex cimplex acap acap dctp dctp vpps-via vpps-via vpp
658/tcp 658/udp 659/tcp 659/udp 660/tcp 660/udp 661/tcp 661/udp 662/tcp 662/udp 663/tcp 663/udp 664/tcp 664/udp 665/tcp 665/udp 666/tcp 666/udp 666/tcp 666/udp 667/tcp 667/udp 668/tcp 668/udp 669/tcp 669/udp 670/tcp 670/udp 671/tcp 671/udp 672/tcp 672/udp 673/tcp 673/udp 674/tcp 674/udp 675/tcp 675/udp 676/tcp 676/udp 677/tcp
TenFold TenFold URL Rendezvous URL Rendezvous MacOS Server Admin MacOS Server Admin HAP HAP PFTP PFTP PureNoise PureNoise Secure Aux Bus Secure Aux Bus Sun DR Sun DR
doom Id Software doom Id Software campaign contribution disclosures - SDR Technologies campaign contribution disclosures - SDR Technologies MeComm MeComm MeRegister MeRegister VACDSM-SWS VACDSM-SWS VACDSM-APP VACDSM-APP VPPS-QUA VPPS-QUA CIMPLEX CIMPLEX ACAP ACAP DCTP DCTP VPPS Via VPPS Via Virtual Presence Protocol
(continues)
226
Keyword Decimal
Description (continued)
vpp ggf-ncp ggf-ncp mrm mrm entrust-aaas entrust-aaas entrust-aams entrust-aams xfr xfr corba-iiop corba-iiop corba-iiop-ssl corba-iiop-ssl mdc-portmapper mdc-portmapper hcp-wismar hcp-wismar asipregistry asipregistry realm-rusd realm-rusd nmap nmap vatp vatp msexch-routing msexch-routing hyperwave-isp hyperwave-isp connendp connendp ha-cluster ha-cluster ieee-mms-ssl ieee-mms-ssl rushd rushd uuidgen uuidgen elcsd
677/udp 678/tcp 678/udp 679/tcp 679/udp 680/tcp 680/udp 681/tcp 681/udp 682/tcp 682/udp 683/tcp 683/udp 684/tcp 684/udp 685/tcp 685/udp 686/tcp 686/udp 687/tcp 687/udp 688/tcp 688/udp 689/tcp 689/udp 690/tcp 690/udp 691/tcp 691/udp 692/tcp 692/udp 693/tcp 693/udp 694/tcp 694/udp 695/tcp 695/udp 696/tcp 696/udp 697/tcp 697/udp 698703 704/tcp
Virtual Presence Protocol GNU Gereration Foundation NCP GNU Generation Foundation NCP MRM MRM entrust-aaas entrust-aaas entrust-aams entrust-aams XFR XFR CORBA IIOP CORBA IIOP CORBA IIOP SSL CORBA IIOP SSL MDC Port Mapper MDC Port Mapper Hardware Control Protocol Wismar Hardware Control Protocol Wismar asipregistry asipregistry REALM-RUSD REALM-RUSD NMAP NMAP VATP VATP MS Exchange Routing MS Exchange Routing Hyperwave-ISP Hyperwave-ISP connendp connendp ha-cluster ha-cluster IEEE-MMS-SSL IEEE-MMS-SSL RUSHD RUSHD UUIDGEN UUIDGEN Unassigned errlog copy/server daemon
Port Numbers
227
Decimal Description (continued)
Keyword
elcsd agentx agentx silc silc borland-dsj borland-dsj entrust-kmsh entrust-kmsh entrust-ash entrust-ash cisco-tdp cisco-tdp netviewdm1 netviewdm1 netviewdm2 netviewdm2 netviewdm3 netviewdm3 netgw netgw netrcs netrcs exlm exlm fujitsu-dev fujitsu-dev ris-cm ris-cm kerberos-adm kerberos-adm rle loadav kerberos-iv pump pump qrh qrh
704/udp 705/tcp 705/udp 706/tcp 706/udp 707/tcp 707/udp 708 709/tcp 709/udp 710/tcp 710/udp 711/tcp 711/udp 712728 729/tcp 729/udp 730/tcp 730/udp 731/tcp 731/udp 732740 741/tcp 741/udp 742/tcp 742/udp 743 744/tcp 744/udp 745746 747/tcp 747/udp 748/tcp 748/udp 749/tcp 749/udp 750/tcp 750/udp 750/udp 751/tcp 751/udp 752/tcp 752/udp
errlog copy/server daemon AgentX AgentX SILC SILC Borland DSJ Borland DSJ Unassigned Entrust Key Management Service Handler Entrust Key Management Service Handler Entrust Administration Service Handler Entrust Administration Service Handler Cisco TDP Cisco TDP Unassigned IBM NetView DM/6000 Server/Client IBM NetView DM/6000 Server/Client IBM NetView DM/6000 send/tcp IBM NetView DM/6000 send/tcp IBM NetView DM/6000 receive/tcp IBM NetView DM/6000 receive/tcp Unassigned netGW netGW Network based Rev. Cont. Sys. Network based Rev. Cont. Sys. Unassigned Flexible License Manager Flexible License Manager Unassigned Fujitsu Device Control Fujitsu Device Control Russell Info Sci Calendar Manager Russell Info Sci Calendar Manager kerberos administration kerberos administration
kerberos version iv
(continues)
228
Keyword Decimal
Description (continued)
rrh rrh tell tell nlogin nlogin con con ns ns rxe rxe quotad quotad cycleserv cycleserv omserv omserv webster webster phonebook phonebook vid vid cadlock cadlock rtip rtip cycleserv2 cycleserv2 submit notify rpasswd acmaint_dbd entomb acmaint_transd wpages wpages multiling-http multiling-http
753/tcp 753/udp 754/tcp 754/udp 755756 758/tcp 758/udp 759/tcp 759/udp 760/tcp 760/udp 761/tcp 761/udp 762/tcp 762/udp 763/tcp 763/udp 764/tcp 764/udp 765/tcp 765/udp 766 767/tcp 767/udp 768 769/tcp 769/udp 770/tcp 770/udp 771/tcp 771/udp 772/tcp 772/udp 773/tcp 773/udp 774/tcp 774/udp 775/tcp 775/udp 776/tcp 776/udp 777/tcp 777/udp
Port Numbers
229
Decimal Description (continued)
Keyword
wpgs wpgs concert concert qsc qsc mdbs_daemon mdbs_daemon device device fcp-udp fcp-udp itm-mcell-s itm-mcell-s pkix-3-ca-ra pkix-3-ca-ra rsync rsync iclcnet-locate iclcnet-locate iclcnet_svinfo iclcnet_svinfo accessbuilder accessbuilder cddbp
778779 780/tcp 780/udp 781785 786/tcp 786/udp 787/tcp 787/udp 788799 800/tcp 800/udp 801/tcp 801/udp 802809 810/tcp 810/udp 811827 828/tcp 828/udp 829/tcp 829/udp 830872 873/tcp 873/udp 874885 886/tcp 886/udp 887/tcp 887/udp 888/tcp 888/udp 888/tcp 889899 900/tcp 900/udp 901/tcp 901/udp 902/tcp 902/udp 903/tcp 903/udp 904910
Unassgined
Unassigned FCP FCP Datagram Unassigned itm-mcell-s itm-mcell-s PKIX-3 CA/RA PKIX-3 CA/RA Unassigned rsync rsync Unassigned ICL coNETion locate server ICL coNETion locate server ICL coNETion server info ICL coNETion server info AccessBuilder AccessBuilder CD Database Protocol (unassigned but widespread use) Unassigned OMG Initial Refs OMG Initial Refs SMPNAMERES SMPNAMERES IDEAFARM-CHAT IDEAFARM-CHAT IDEAFARM-CATCH IDEAFARM-CATCH Unassigned
(continues)
230
Keyword Decimal
Description (continued)
xact-backup xact-backup ftps-data ftps-data ftps ftps nas nas telnets telnets imaps imaps ircs ircs pop3s pop3s vsinet vsinet maitrd maitrd busboy puparp garcon applix puprouter puprouter cadlock2 cadlock2 surf surf 10111022
911/tcp 911/udp 912988 989/tcp 989/udp 990/tcp 990/udp 991/tcp 991/udp 992/tcp 992/udp 993/tcp 993/udp 994/tcp 994/udp 995/tcp 995/udp 996/tcp 996/udp 997/tcp 997/udp 998/tcp 998/udp 999/tcp 999/udp 999/tcp 999/udp 1000/tcp 1000/udp 10011009 1010/tcp 1010/udp Reserved 1023/tcp 1023/udp
xact-backup xact-backup Unassigned ftp protocol, data, over TLS/SSL ftp protocol, data, over TLS/SSL ftp protocol, control, over TLS/SSL ftp protocol, control, over TLS/SSL Netnews Administration System Netnews Administration System telnet protocol over TLS/SSL telnet protocol over TLS/SSL imap4 protocol over TLS/SSL imap4 protocol over TLS/SSL irc protocol over TLS/SSL irc protocol over TLS/SSL pop3 protocol over TLS/SSL (was spop3) pop3 protocol over TLS/SSL (was spop3) vsinet vsinet
Applix ac
Index
A
ABR, see Adjacent border router Access-group command, 157 Access lists extended, 150 named, 152, 157 new capabilities in, 152 reexive, 153 time-based, 155 types of, 148 ACK bit, 87, 94 Acknowledgment Number elds, 84, 86 Active OPEN function call, 90 Adaptive Differential Pulse Code Modulation (ADPCM), 176 Address(es), see also Internet protocol address(es) allocation, 181 anycast, 180 architecture, 180 MAC, 73 notation, 180 provider-based, 181 resolution, 72 operation, 73 process, data ow during, 104 structure, provider-based, 183 translation process, 121 types, 180 unicast, 182 Address Resolution Protocol (ARP), 13, 20, 21, 37, 45, 73 gratuitous, 75 Hack, 75 packet eld, 74 proxy, 75 Adjacent border router (ABR), 138 ADPCM, see Adaptive Differential Pulse Code Modulation Advanced Research Project Agency (ARPA), 26 Anycast address, 180 Applications, 112 audio and video players, 810 built-in diagnostic tools and, 13 current, 2 electronic mail, 25 emerging, 8 le transfers, 5 remote terminal access, 5 virtual private networking, 1012 Voice over IP, 10 Web surng, 8 Applications and built-in diagnostic tools, 101119 diagnostic tools, 107119 nger, 118119 NSLOOKUP, 114118 ping, 107111 traceroute, 111114 DNS, 101107 DNS records, 105107 domain name structure, 102103 name resolution process, 103105 purpose, 101102 ARP, see Address Resolution Protocol ARPA, see Advanced Research Project Agency ASCII text, 30 ATM backbone, 42 Audio players, 8 presentation, transmission of through Internet onto private network, 57 Authentication, 135, 166 Autonomous systems, 122, 125
231
232
B
Base Network, 66 Bit positions, decimal values of in byte, 58 Border router (BR), 138 BR, see Border router Broadcast address, 53, 74 Byte(s) decimal values of bit positions in, 58 octets versus, 39
C
Checksum eld, 88, 98 Cisco access lists, 158 Internetwork Operating System (IOS), 152 router environment, 147 Systems router, 67 CIXs, see Commercial Internet Exchanges Code Bits eld, 87, 92 Command eld, 132 Commercial Internet Exchanges (CIXs), 26 Communications Calendar, 8 protocol, evolution of TCP/IP from, 1 Connection establishment, 89 function calls, 89 Count to innity, 133 CRC, see Cyclic redundancy check Cyclic redundancy check (CRC), 17, 45
Designated router (DR), 138 Destination address, 45, 68 net unreachable message, 113 Diagnostic tools, built in, see Applications and built-in diagnostic tools Dial-up access, to Remote Access Service server Differentiated Service (DiffServe), 42 DiffServe, see Differentiated Service Direct cabling, 142 Distance vector information, 130 DMZ LAN, see Demilitarized LAN DNS, see Domain Name Service Domain name computers having common, 61 structure, 102 tree, 102, 103 sufxes, common, 61 Domain Name Service (DNS), 2, 22, 59, 99, 121 DoS attack, see Denial-of-service attack Dotted decimal notation, 58 DR, see Designated router Dynamic ports, 84 Dynamic table updates, 128
E
Echo-reply, 151 EGP, see Exterior Gateway Protocol Electronic commerce site, 9 Electronic Rolodex, 2 E-mail, 2, 173 Emerging technologies, 14, 163183 IPv6, 179183 address architecture, 180183 overview, 180 mobile IP, 171173 operation, 172173 overview, 171172 virtual private networking, 163170 benets, 164166 limitations, 166167 other issues, 167168 setting up of remote access service, 168170 Voice over IP, 173179 constraints, 174177 networking congurations, 177179 Encryption, 167 End-to-end delay, 174 ERP, see Exterior Router Protocol
D
DARPA, see U.S. Department of Defense Advanced Research Projects Agency Data ow direction, 148 during address resolution process, 104 ports governing, 147 within TCP/IP network, 23, 24 streams, 57 unit, headerless, 19 Datagram, network portion of address in, 68 Decryption, 162 Demilitarized (DMZ) LAN, 4950, 158 Demultiplexing, 83 Denial-of-service (DoS) attack, 91
Index
233
HyperText Transport Protocol (HTTP), 143, 145
Error message, inconsistent network mask, 67 Ethernet, 17, 21 frame format, 72 LANs, 147 network, 43 Exterior Gateway Protocol (EGP), 124 Exterior Router Protocol (ERP), 124
I
IAB, see Internet Activities Board IANA, see Internet Assigned Numbers Authority IBM System Network Architecture (SNA), 5 ICANN, see Internet Corporation for Assigned Names and Numbers ICMP, see Internet Control Message Protocol IEEE, see Institute of Electrical and Electronic Engineers IETF, see Internet Engineering Task Force IGP, see Interior Gateway Protocol Illustrative network, 128 Inconsistent network mask error message, 67 Information advertisement of reachable, 123 distance vector, 130 Institute of Electrical and Electronic Engineers (IEEE), 17 Interior Gateway Protocol (IGP), 124 Interior Router Protocol (IRP), 124 International Standards Organization (ISO), 13, 15, 17 International Telecommunications Union Telecommunications body (ITU-T), 18 Internet connection to via LANs, 52 evolution, 25 expansion of, 141 importance of, 121 service provider (ISP), 27, 102, 103, 122, 163 standards track time, 29 telephony applications, 99 version numbers, 40 Internet Activities Board (IAB), 27, 50 Internet Assigned Numbers Authority (IANA), 27, 102, 181 Internet Control Message Protocol (ICMP), 20, 21, 38, 76, 107, 187 Code Field values based on message type, 7980 message types, 37 type and code values, 189192 Type Field, 76, 77 type numbers, 189192 Internet Corporation for Assigned Names and Numbers (ICANN), 102 Internet Engineering Steering Group, 28 Internet Engineering Task Force (IETF), 27
F
Federal Bureau of Investigation, 119 FFS, see Firewall Feature Set File Transfer Protocol (FTP), 5, 22 FIN bit, see Finish bit, 88 Finger command, 118 help screen, 118 Fingering, blocking of, 119 Finish (FIN) bit, 88 Firewall(s), 37, 49 authentication method, 161 Feature Set (FFS), 154154 functions, 159 installation, 158 proxy, 63 support of proxy services by, 159, 160 Flag eld, 43, 44 Fox Network, using RealNetworks RealPlayer to obtains news from, 11 FQDN, see Fully qualied domain name Fragment Offset elds, 43 Frame Relay, Voice over, 177 FTP, see File Transfer Protocol Fully qualied domain name (FQDN), 61
G
Gateway, 59, 178 Global timeout value, 154 Gratuitous ARP, 75
H
Hackers, 63, 141 HDLC, see High level Data Link Control Header Checksum eld, 45 Length (Hlen) eld, 40, 41, 86 High level Data Link Control (HDLC), 17 Hlen eld, see Header Length eld Host address(es), 52 restriction, 66 translation of into IP addresses, 101 HTTP, see HyperText Transport Protocol
234
Internet governing bodies, standards process and, 2535 Internet governing bodies, 2528 IAB and IETF, 27 IANA, 2728 Internet evolution, 2527 requests for comments, 2835 accessing RFCs, 2935 RFC details, 29 standards process, 2829 Internet protocol (IP), 13, 14, 18, 20, 187, see also Internet protocol and related protocols datagram, ICMP messages transported via encapsulation within, 76 header, 39 loopback address, with Ping application, 55 mobile, 171 numbers, assigned, 4648 protocol type eld values, 193196 standardization process, 51 type eld values, 193196 Internet protocol (IP) address(es), 48 classes of, 52 formats, 53 hierarchy, 50, 51 host, 52 mechanism translating host addresses into, 101 multiple interface, 71 predened, 145 relationship between subnet mask and, 69 reserved, 62 scheme, 50, 65 Internet protocol and related protocols, 3780 address resolution, 7276 address resolution operation, 7375 Ethernet and Token Ring frame formats, 7273 LAN delivery, 73 proxy ARP, 75 RARP, 7576 ICMP, 7680 evolution, 78 ICMP code eld, 78 ICMP type eld, 7677 overview, 76 Internet protocol, 3848 datagrams and datagram transmission, 38 datagrams and segments, 38 IP header, 3948 routing, 39
IP addressing, 4872 basic workstation conguration, 5861 class A addresses, 5354 class B addresses, 5456 class C addresses, 56 class D addresses, 5657 class E addresses, 57 dotted decimal notation, 58 IP addressing scheme, 5052 multiple interface addresses, 7172 overview, 4950 reserved addresses, 6264 subnetting, 6470 Internet Society (ISOC), 27 IOS, see Cisco Internetwork Operating System IP, see Internet Protocol IPv6, 179 IPX, see Novell NetWare Internetwork Packet Exchange IRP, see Interior Router Protocol ISDN port, router, 179 ISO, see International Standards Organization ISOC, see Internet Society ISP, see Internet service provider ITU-T, see International Telecommunications Union Telecommunications body
J
Jitter buffer, 175
L
LAN(s) address, 23 administrators, 141 connection to Internet via, 52 delivery, 73 demilitarized, 4950, 158 Ethernet, 21, 147 organizations having multiple, 56 Token Ring, 21 Latency, 174 Layer isolation, 15 Length eld, 98 Link failure, 131 State Advertisement (LSA), 136, 137 LLC, see Logical Link Control Logical Link Control (LLC), 17 Loopback address, 53r, 62 LSA, see Link State Advertisement
Index
235
security, 64 service provider (NSP), 103 Token Ring, 43 use of VPN via packet, 165 News organization video feeds, 57 Next Hop eld, 134 Novell NetWare Internetwork Packet Exchange (IPX), 133 NSF, see National Science Foundation NSLOOKUP, 114, 115, 116, 117 NSP, see Network service provider
M
MAC, see Media Access Control Mail server, 106, 116 Maximum transmission unit (MTU), 43 Media Access Control (MAC), 17, 21, 73 Message types, 137, 138 Microsoft Outlook, 2, 3, 4 Ping, 54 Windows 95, 5 nger help screen, 118 FTP application, example of use of, 6 NT, 108, 109, 168, 169 operating system, 59 Telnet application built into, 5 Tracert, 112 Military Network (MILNET), 26 MILNET, see Military Network MLD, see Multicast Listener Discovery Mobile IP, 171 concept behind, 173 in operation, 174 server, 172 MTU, see Maximum transmission unit Multicast group, 57 Listener Discovery (MLD), 30 Multiple interface addresses, 71 Multiplexing, 83
O
Octets, bytes versus, 39 Ohio State University Computer and Information Science Department of, 30 RFC index list, 33 viewing access to RFCs via computer, 32 Open Shortest Path First (OSPF), 135 initialization of, 139 message types, 138 router(s) multicast-enabled, 139 protocol, 136 types of, 137 Open Systems Interconnection (OSI) Reference Model, 13, 15, 16 application layer, 19 data link layer, 17 network layer, 17 physical layer, 16 presentation layer, 19 session layer, 18 transport layer, 18 Options eld, 89 OSI Reference Model, see Open Systems Interconnection Reference Model OSPF, see Open Shortest Path First
N
Named access lists, 152, 157 Name resolution process, 103 NAT, see Network address translation National Science Foundation (NSF), 26 Near-real-time, 10 Netscape Communications, 8 Communicator, major components of, 9 Composer, 8 Navigation, 8 Network(s) adapter, 74 address translation (NAT), 63, 162 congurations, 177 Ethernet, 43 illustrative, 128 of interconnected networks, 50 managers, 141 packet, 175 prex, 51 private, 57, 78 routing, 122
P
Packet eld, RIP version 1, 132 Internetwork Groper, 107, see also Ping network operation, 175 use of VPN via, 165 subdivision, 177 Padding eld, 89 PAR, see Positive Acknowledgment Retransmission
236
PARC, see Xerox Palo Alto Research Center Passive OPEN function call, 90 Password, 143 PBX, 178 PCM, see Pulse Code Modulation PDAs, see Personnel Digital Assistants Personnel Digital Assistants (PDAs), 50 Ping, 107 application, IP loopback address with, 55 command, 108 implementation, 108 Microsoft, 54, request, 151 Port(s) dynamic, 84 elds, source and destination, 82 /network table, 126 numbers, 84, 197230 private, 84 registered, 84 use, 85 virtual terminal, 145 well-known, 84 Positive Acknowledgment Retransmission (PAR), 86 Precedence sub-eld, 42 Private ports, 84 Protocol, see also Internet protocol eld, 44 stack, 101 Protocol suite, 1524 ISO Reference Model, 1519 data ow, 19 layers, 1619 TCP/IP protocol suite, 12, 1924 application layer, 23 data ow, 2324 network layer, 2021 transport layer, 2123 Provider-based addresses, 181, 183 Proxy ARP, 75 rewall, 63 services, rewall supported by, 159, 160 PSH bit, see Push bit, 87 PSTN, see Public Switched Telephone Network Public Switched Telephone Network (PSTN), 176 Pulse Code Modulation (PCM), 176 Push (PSH) bit, 87
Q
QoS, see Quality of Service Quality of Service (QoS), 42
R
RARP, see Reverse Address Resolution Protocol RAS server, see Remote Access Service server RealNetworks RealPlayer, 8, 10, 11 Real Time Protocol (RTP), 175 Reexive access lists, 153 Registered ports, 84 Remote access service, setting up of, 168 Remote Access Service (RAS) server, 168, 169 dial-up access to, 170 TCP/IP conguration, 168, 173 Remote terminal access, 5 transmission, 22 Request for Comments (RFCs), 12, 27, 28 accessing, 29 announcements, 30 categories, 29 copyright notice, 35 draft, 28 index list, Ohio State University, 33 methods for nding and retrieving, 31 standard, 29 viewing access to, 32 Reserved addresses, 62 Reset (RST) bit, 87 Reverse Address Resolution Protocol (RARP), 73, 75 Reverse-network address subnet mask, 149 RFCs, see Request for Comments RIP, see Routing Information Protocol Round-trip delay, use of Ping to determine, 110 Router(s), 37, 49 access congurations, 142 lists, 146 Cisco Systems, 67 conguration sub-system, 141 control, 142 failure, 114 interface, assigning multiple network addresses to common, 71
Index
237
rationale for use, 146148 types of access lists, 148152 Sender Hardware Address Field, 74 Sequence eld, 84 Server information, protecting, 117 mail, 106 Microsoft Windows NT, 168, 169 mobile IP, 172 Remote Access Service, 168 Whitehouse Web, 113 Yale University, 115, 116 Session termination, 96 Shortest Path First (SPF) protocol, 127 Simple Network Management Protocol (SNMP), 22, 99 Sliding window, 86, 93 Slow start threshold, 95 SNA, see IBM System Network Architecture SNMP, see Simple Network Management Protocol SOA, see Start of Authority Socket, 83 Software developers, third-party, 5 Source entry, 149 eld, 45 SPF protocol, see Shortest Path First protocol Standards process, see Internet governing bodies, standards process and Start of Authority (SOA), 106, 116, 117 Sub-domain, 102 Subnet mask, 59, 60, 68 reference, 70 relationship between IP address and, 69 reverse-network address, 149 viewing, internal versus external, 67 zero, 66 Subnetting example, 64 illustration of, 65 SYN bit, see Synchronization bit Synchronization (SYN) bit, 88 SYN-SYN-ACK sequence, 91
ISDN port, 179 Link State Advertisement, 138 memory cycles, 136 organizations internal, 65 OSPF, multicast-enabled, 139 routing table contents broadcast by, 129 types, 137 using Telnet to access conguration subsystem on, 144 virtual terminal port, 145 voice modules, 177, 178 Route Tag eld, 134 Routing, 13, 39 Information Protocol (RIP), 127, 128 protocols, 124, 136 tables, 125, 127 Routing and routing protocol, 121139 network routing, 122127 routing in global system, 122127 routing table update methods, 127 OSPF, 135139 initialization activity, 136137 message types, 137139 operation, 139 overview, 136 path metrics, 136 router types, 137 routing information protocol, 128135 basic limitations, 131 basic RIPv1 packet, 132133 dynamic table updates, 128131 illustrative network, 128 RIPv2, 133135 RIP versions, 131132 RST bit, see Reset bit RTP, see Real Time Protocol
S
Security, 13, 141162 rewalls, 158162 basic functions, 159162 installation location, 158159 router access considerations, 142146 direct cabling, 142143 router control, 142 Telnet and Web access, 143146 router access lists, 146158 applying named access list, 157 conguration principles, 158 limitations, 158 new capabilities in access lists, 152157
T
Target IP Address Field, 74 TCP, see Transmission Control Protocol TCP/IP, see Transmission Control Protocol/Internet Protocol
238
Telnet, 22, 90, 143 application, built into Microsoft Windows, 5 connection, 82 Three-way handshake, 91, 92, 156 Time-based access lists, 155 Time to live (TTL), 109 eld, 44 option, 109 value, 111 Timestamp, 127 Token Ring, 17, 21 frame format, 72 networks, 43 ToS eld, see Type of Service eld Total Length eld, 42 Traceroute, 111 Transmission Control Protocol (TCP), 21, 26, 81 connection, termination of, 97 header, 81, 82 intercept, 156, 157 originator, 95 retransmissions, 96 services, well-known, 85 slow start, 94 three-way handshake, 156 window, 93, 94 Transmission Control Protocol/Internet Protocol (TCP/IP), 19 conguration, Remote Access Service server, 168, 173 network(s) data ow within, 23, 24 packet-switched, 38 Properties dialog box, 60 protocol suite, 12 advantage of, 141 network created using during mid-1980s, 26 Network Layer Troika of, 37 role of, 1 stack, network layer of, 20 Transmission method, obsolete, 38 Transport layer, 8199 TCP, 8196 checksum eld, 88 code bits eld, 8788 connection establishment, 89 connection function cells, 8991 Hlen eld, 8687 options, 89 padding eld, 89 sequence and acknowledgment number elds, 8486
source and destination port elds, 8284 TCP header, 8182 TCP window, 9396 three-way handshake, 9193 urgent pointer eld, 8889 UDP, 9699 applications, 99 operation, 98 UDP header, 9798 TTL, see Time to live Type of Service (ToS) eld, 41, 146
U
UDP, see User Datagram Protocol Unicast addresses, 182 Uniform Resource Locator (URL), 30 UNIX, 108 URG bit, see Urgent bit Urgent (URG) bit, 87 Urgent Pointer eld, 88 URL, see Uniform Resource Locator U.S. Department of Defense Advanced Research Projects Agency (DARPA), 25 funding by, 25 User Datagram Protocol (UDP), 13, 18, 21, 22, 81 datagram, 98, 111 header, 97, 98 services, well-known, 85 supported by TCP/IP protocol suite, 96
V
Version eld, 132 Video feeds, news organization, 57 presentation, transmission of through Internet onto private network, 57 Virtual private network (VPN), 1, 10, 163 corporate use of, 166 creation of, 164 driving force for adopting, 169 Virtual terminal (vt) port, 145 Voice coder, 177 coding algorithm, 175 digitized, 99 gateway, 178 modules, router, 178 Voice over Frame Relay, 177 Voice over IP (VoIP), 10, 22, 173 VoIP, see Voice over IP
Index
239
VPN, see Virtual private network vt port, see Virtual terminal port
X
Xerox Network Services (XNS), 133 Palo Alto Research Center (PARC), 72 XNS, see Xerox Network Services
W
WAN connections, slow-speed, 94, 105 Web browser, 8, 145 library, 30 page creation, 8 surng, 8, 146 Whitehouse Web server, 113 Window eld, 88 Workstation conguration, 58
Y
Yale University server, 115
Z
Zero subnet, 66