Skip to:Content
|
Bottom
Cover image for Hands-on networking with internet technologies
Title:
Hands-on networking with internet technologies
Personal Author:
Edition:
2nd ed.
Publication Information:
Upper Saddle River, N.J. : Pearson/Prentice-Hall, 2005
ISBN:
9780131486966
Added Author:

Available:*

Library
Item Barcode
Call Number
Material Type
Item Category 1
Status
Searching...
30000010114874 TK5105.5 C654 2005 Open Access Book Book
Searching...
Searching...
30000010069456 TK5105.5 C654 2004 Open Access Book Book
Searching...

On Order

Summary

Summary

Acclaimed author Douglas E. Comer's book, Hands-On Networking with Internet Technologies, upholds the assertion that the best way to learn is by doing. Through laboratory experimentation, students and professionals gain a better understanding of how computer networks and Internet technologies operate in practice. Organised into sections that focus on the hardware and software platforms of different lab facilities, this book systematically constructs and augments a practical knowledge of networking. From single computer applications to advanced network systems engineering, a broad spectrum of hands-on experiments addresses a variety of difficulty levels, and guides the user to a deeper comprehension of the functionality and subtleties of networking in action.


Author Notes

Douglas E. Comer is a professor at Purdue University, where he develops and teaches courses in computer networking and internetworking


Excerpts

Excerpts

Network engineers, managers, programmers, professors and students have all asked how they can gain a deeper understanding of computer networks and internets. This book answers the question. It asserts that the best way to learn is by doing--there is no good substitute for hands-on experience with a real network. Interconnecting hardware, configuring network systems, measuring performance, observing protocols in action, and creating client-server programs that communicate over a network all help sharpen one's understanding and appreciation. What hardware and software facilities are required for hands-on experimentation? Instead of specifying an exact platform, this book is organized into six sections that each consider a hardware platform and outline experiments that can be carried out using the hardware. The first section begins by considering the smallest possible facility, a single stand-alone computer. Successive sections describe increasingly more powerful (and more expensive) facilities and the experiments they support. The last sections document advanced hardware and software facilities used for protocol development and network systems engineering. The point is that experimentation is always possible--although the facilities at hand determine the types of experiments that can be performed, even low-cost, general-purpose facilities offer opportunities. The broadest distinction among facilities concerns isolation. Early sections of the book describe experiments that can be carried out on conventional, general-purpose computers connected to a production network. Later sections describe experiments such as packet capture, intranet configuration, and protocol development that require a special, dedicated facility. Industry often uses the terms testbed or testnet to describe a separate dedicated facility; academia usually uses the term laboratory. An industrial testbed can serve two purposes. Like an academic laboratory, a testbed provides an environment that supports training. In addition the testbed provides a safe environment in which new or upgraded network systems can be configured, measured, and tested before being installed in the company's production network. Although we use the academic term laboratory throughout the book, many of the experiments are designed with industrial testbeds in mind. In the section on configuration, for example, experiments specify using an isolated facility to configure hosts, routers, and a firewall to form an intranet. In addition to a wide variety of topics, the experiments in this book cover a wide range of difficulty. Some experiments, especially those near the beginning of each chapter, are straightforward and may require less than a half hour to perform. Other experiments are both difficult and lengthy. For example, the IP router experiment described in Chapter 20 is taken from a second-year graduate class that I teach at Purdue. Students work in teams and require most of a semester to build a working IP router. Most experiments list optional extensions that suggest ways to go beyond the basics. The best students in my classes work through all the options, and sometimes invent options of their own. Networking professionals who are working alone can pick and choose among experiments in various chapters. Programmers will focus on the client-server experiments in Parts I and II; system administrators will focus on the configuration experiments in Part IV. Engineers who implement and optimize network systems and protocol stacks will focus on the performance measurements in Part III or protocol development experiments in Parts V and VI. Professors teaching networking courses can choose experiments appropriate to the class. Most colleges and universities cram all of networking and internetworking into a single one-semester overview course. In such a course, students should see a wide range of experiments to acquaint them with all aspects of the subject, especially network programming, network measurement, and protocol analysis. For example, students in my undergraduate class begin the first week using Internet applications and writing programs as described in Part II. When the lectures cover Local Area Networks, the students are assigned measurement experiments from Part III. The weeks that the lectures cover IP and TCP, students perform packet capture and protocol analysis experiments from Part III. Finally, students are ready to tackle a more advanced (socket) programming experiment from Part III. Colleges and universities fortunate enough to have multiple courses in networking can divide the experiments in this book among the courses and go into more depth in each. In a one-semester network programming course students concentrate on the programming experiments in Part III. Students in such a course also enjoy building the internet emulation gateway from Chapter 8 and constructing a library for the simplified API. If students do not have any previous experience, they can begin by using the simplified API in Part II, which allows them to start programming before they learn the details of sockets. I usually encourage students in a network programming course to incorporate the optional extensions and to think about ways the software can be parameterized. In a one-semester network administration course, students can focus on the configuration experiments in Part IV. Students enjoy creating their own version of an intranet, and are especially pleased when they can configure unconventional domain names. As an interesting challenge, I ask students to establish two apparently unrelated domain hierarchies for the same set of computers. Finally, in any course that discusses protocol design, students should begin by building the Internet emulation gateway described in Chapter 8. The gateway project requires students to extend their knowledge of socket programming to include UDP, allows them to see an application gateway, and causes them to consider the possible errors with which protocols must contend (i.e., packet loss, duplication, corruption, and delay). Excerpted from Hands-On Networking with Internet Technologies by Douglas E. Comer All rights reserved by the original copyright owners. Excerpts are provided for display purposes only and may not be reproduced, reprinted or distributed without the written permission of the publisher.

Table of Contents

Prefacep. xv
Chapter 1 Introduction And Overviewp. 1
1.1 The Fundamental Need For A Laboratoryp. 1
1.2 The Spectrum Of Possible Lab Facilitiesp. 1
1.3 A Word About Simulationp. 3
1.4 Organization Of The Bookp. 3
Part I A Single Computer
Chapter 2 Hardware And Software On A Single Computerp. 7
2.1 The Two Types Of Support And Their Usesp. 7
2.2 Support For Network Accessp. 7
2.3 Support For Network Programmingp. 7
2.4 Recommendationsp. 8
2.5 Summaryp. 8
Chapter 3 Using A Single Computer For Probing And Testingp. 9
3.1 Using A Single Computer To Probe The Internetp. 9
3.2 Using A Single Computer To Develop And Test Network Applicationsp. 9
3.3 Stress Testing Applications With An Emulated Internetp. 10
3.4 Transport Protocol Development On A Single Computerp. 11
3.5 Summaryp. 12
Part II Network Programming On A Set Of Shared Workstations
Chapter 4 Hardware And Software For A Shared Workstation Labp. 15
4.1 Consequences Of Sharingp. 15
4.2 Example Shared Lab Technologiesp. 15
4.3 Architecture Of A Shared Labp. 16
4.4 Using A Shared Lab In A Networking Coursep. 16
4.5 Broadcast Domain Assumptionp. 16
4.6 Summaryp. 17
Chapter 5 Network Programming Experiments Using A Simplified APIp. 19
5.1 Introductionp. 19
5.2 Obtaining Software For The APIp. 20
Experiment 5.1 Compile, test, and extend example Echo softwarep. 21
Experiment 5.2 Compile, test, and extend example Chat softwarep. 23
Experiment 5.3 Build a simple file transfer servicep. 25
Chapter 6 Network Programming Experiments Using The Socket APIp. 27
6.1 Introductionp. 27
6.2 Information About Socketsp. 27
6.3 A Note About The Difficulty Of Socket Programmingp. 28
6.4 Summaryp. 28
Experiment 6.1 Compile, link, and run a socket programp. 29
Experiment 6.2 Write an echo client and server using socketsp. 31
Experiment 6.3 Build a web server using socketsp. 33
Experiment 6.4 Build a library for a network APIp. 35
Chapter 7 Concurrent Network Programming Experimentsp. 37
7.1 Introductionp. 37
Experiment 7.1 Build a concurrent server (threads)p. 39
Experiment 7.2 Build a concurrent file transfer server (processes)p. 41
Experiment 7.3 Build a multiservice serverp. 43
Chapter 8 Protocol Design Experimentsp. 45
8.1 Introductionp. 45
8.2 Stress Testing Protocolsp. 45
8.3 Internet Emulation With A Gatewayp. 45
8.4 Emulation Behaviorp. 46
8.5 Gateway Detailsp. 46
8.6 Gateway Registration Messagep. 47
8.7 Packet Exchangep. 48
8.8 Error Processingp. 49
8.9 Gateway Semantics And Defaultsp. 49
8.10 Possible Extensionsp. 50
8.11 Summaryp. 50
Experiment 8.1 Build an internet emulation gatewayp. 51
Experiment 8.2 Design a clock synchronization protocolp. 53
Experiment 8.3 Design a reliable data transfer protocolp. 55
Experiment 8.4 Design a sliding window protocolp. 57
Chapter 9 Experiments With Protocols From The TCP/IP Suitep. 59
9.1 Introductionp. 59
9.2 Difficulties And Rewardsp. 59
9.3 Summaryp. 60
Experiment 9.1 Build a client for the Time protocolp. 61
Experiment 9.2 Build a domain name system client programp. 63
Experiment 9.3 Build a DHCP clientp. 65
Part III Measurement And Packet Analysis On Augmented Workstations
Chapter 10 Hardware And Software For An Augmented Shared Labp. 69
10.1 The Ideal Measurement Labp. 69
10.2 Alternatives To An Isolated Networkp. 69
10.3 Augmentationp. 70
10.4 Protecting The Production Networkp. 70
10.5 Computers On A Private Networkp. 70
10.6 Summaryp. 71
Chapter 11 Network Measurement Experimentsp. 73
11.1 Introductionp. 73
11.2 Measuring Throughputp. 73
11.3 Summaryp. 73
Experiment 11.1 Compile and test ttcpp. 75
Experiment 11.2 Measure 10 and 100 Mbps network throughputp. 77
Experiment 11.3 Compare throughput of a switch and a hubp. 79
Chapter 12 Packet Capture And Analysis Experimentsp. 81
12.1 Introductionp. 81
12.2 Promiscuous Mode And Hubsp. 81
12.3 Manual Packet Inspectionp. 81
12.4 Summaryp. 82
Experiment 12.1 Capture and decode ethernet framesp. 83
Experiment 12.2 Decode an IP headerp. 85
Experiment 12.3 Decode TCP segment headersp. 87
Experiment 12.4 Build a packet analyzerp. 89
Chapter 13 Protocol Observation Experimentsp. 91
13.1 Introductionp. 91
13.2 Protocol Sequences At Each Layerp. 91
13.3 Summaryp. 91
Experiment 13.1 Capture and reassemble IP fragmentsp. 93
Experiment 13.2 Extract data from a TCP streamp. 95
Experiment 13.3 Observe concurrent TCP connectionsp. 97
Part IV Configuration Experiments In A Dedicated Intranet Lab
Chapter 14 Hardware And Software For A Dedicated Intranet Labp. 101
14.1 Dedicated Vs. Production Facilitiesp. 101
14.2 Characteristics Of A Dedicated Intranet Labp. 101
14.3 Example Equipment In A Dedicated Labp. 102
14.4 Summaryp. 102
Chapter 15 Internet Address Configuration Experimentsp. 103
15.1 Introductionp. 103
15.2 Organization Of Chaptersp. 103
15.3 Summaryp. 103
Experiment 15.1 Configure IP addressesp. 105
Experiment 15.2 Assign fixed-length IP subnet addressesp. 107
Experiment 15.3 Assign IP addresses using CIDRp. 109
Chapter 16 Web Technology Configuration Experimentsp. 111
16.1 Introductionp. 111
16.2 Web Technologiesp. 111
16.3 Summaryp. 112
Experiment 16.1 Configure an Apache web serverp. 113
Experiment 16.2 Download and configure a Squid cachep. 115
Experiment 16.3 Configure and test a web load balancerp. 117
Chapter 17 IP Routing And IP Forwarding Experimentsp. 119
17.1 Introductionp. 119
17.2 Indirect Vs. Direct Observationp. 119
17.3 Summaryp. 119
Experiment 17.1 Use netstat to examine a routing tablep. 121
Experiment 17.2 Use SNMP to probe a routing tablep. 123
Experiment 17.3 Configure and run rip softwarep. 125
Experiment 17.4 Configure and run OSPF softwarep. 127
Chapter 18 Virtual And Protected Internet Environment Experimentsp. 129
18.1 Introductionp. 129
18.2 Flexible Abstractionsp. 129
18.3 Summaryp. 129
Experiment 18.1 Configure a DNS serverp. 131
Experiment 18.2 Install and configure a NAT boxp. 133
Experiment 18.3 Install and configure a VPNp. 135
Part V Protocol Stack Implementation In A Special-Purpose Lab
Chapter 19 Hardware And Software For A Special-Purpose Protocol Development Labp. 139
19.1 Introductionp. 139
19.2 The Need For Two Computersp. 139
19.3 Front-End and Back-End Computers In A Labp. 140
19.4 Functional Requirementsp. 140
19.5 An Example Architecturep. 141
19.6 Operation Of the Author's Labp. 142
19.7 Automated Recoveryp. 143
19.8 Organization Of The Lab Softwarep. 144
19.9 Reset Controller Hardwarep. 145
19.10 Scaling The Architecturep. 146
19.11 Virtual Labp. 147
19.12 Summaryp. 148
19.13 Further Detailsp. 148
Chapter 20 Protocol Stack Development Experimentsp. 149
20.1 Introductionp. 149
20.2 The Value Of Building A Stackp. 149
20.3 Summaryp. 150
Experiment 20.1 Interface with a network device driverp. 151
Experiment 20.2 Build an IP forwarding mechanismp. 153
Experiment 20.3 Implement an IP routerp. 155
Part VI System Design In A Network System Engineering Lab
Chapter 21 Hardware And Software For A Network System Engineering Labp. 159
21.1 Network Processorsp. 159
21.2 Facilities Neededp. 160
21.3 Hardware For An Example Labp. 160
21.4 A Network Processor Testbedp. 160
21.5 Software For The Example Labp. 161
21.6 Relationship To Previous Lab Architecturesp. 162
21.7 Summaryp. 162
Chapter 22 Network Systems Engineering Experimentsp. 163
22.1 Introductionp. 163
Experiment 22.1 Compile and dowhload network processor codep. 165
Experiment 22.2 Implement packet classification with a network processorp. 167
Indexp. 169
Go to:Top of Page