Technologies related to networks and internetworking may be the fastest growing in our culture today. The appearance of some new social networking applications every year is a testimony to this claim. People use the Internet more and more every day. They use the Internet for research, shopping, airline reservations, checking the latest news, weather, and so on.
In this Internet-oriented society, specialists need be trained to mn and manage the Internet, part of the Internet, or an organization's network that is connected to the Internet.This book is designed to help students understand the basics of networking in general and the protocols used in the Internet in particular.
Features
Although the main goal of the book is to teach the principles of networking, it is designed to teach these principles using the following goals:
Protocol Layering
The book is designed to teach the principles of networking by using the protocol layering of the Internet and the TCP/IP protocol suite. Some of the networking principles may have been duplicated in some of these layers, but with their own special details.
Teaching these principles using protocol layering is beneficial because these principles are repeated and better understood in relation to each layer. For example, although addressing is an issue that is applied to four layers of the TCP/IP suite, each layer uses a different addressing format for tifferent purposes. In addition, addressing has a different domain in each layer. Another example is framing and packetizing, which is repeated in several .layers, but each layer treats the principle differently.
Top-Down Approach
Although one of the authors of this book has written several books about networking and the Internet (Data Communication and Networking, TCP/IP Protocol Suite, Cryptography and Network Security, and Local Area Networks), the approach to networking in this book is different. It is a top-down approach.
Although each layer in the TCP/IP protocol suite is built on the services provided by the layer below, there are two approaches to learn about the principles in each layer.In the bottom-up approach, we learn about how bits and signals are moving at the physical layer before learning how applications use these bits to send messages. In the topdown approach, we first learn about how application-layer protocols exchange messages before learning how these messages are actually broken into bits and signals and physically carried through the Internet. In this book, we use the top-down approach.
Audience
This book is written for both academic and professional audiences. The book can be used as a self-study guide for interested professionals. As a textbook, it can be used for a one-semester or one-quarter course. It is designed for the last year of undergraduate study or the first year of graduate study. Although some problems at the end of the chapters require some knowledge of probability, the study of the text needs only general mathematical knowledge taught in the first year of college.
Organization
The book is made of eleven chapters and five appendices.
Chapter 1. Introduction
Chapter 2. Application Layer
Chapter 3. Transport Layer
Chapter 4. Network Layer
Chapter 5. Data-Link Layer: Wired Networks
Chapter 6. Wireless Networks and Mobile IP
. Chapter 7. Physical Layer and Transmission Media
Chapter 8. Multimedia and Quality of Service
Chapter 9. Network Management
Chapter 10. Network Security
Chapter 11. Socket Programming In Java
Appendices. Appendices A to E
Pedagogy
Several pedagogical features of this text are designed to make it particularly easy for students to understand computer networking in general and the Intemet in particular.
Vtsual Approach
The book presents highly technical subject matter without complex formulas by using a balance of text and figures. More than 670 figures accompanying the text provide a visual and intuitive opportunity for understanding the material. Figures are particularly important in explaining networking concepts. For many students, these concepts are more easily grasped visually than verbally.
Highlighted Points
We have repeated important concepts in boxes for quick reference and immediate
attention.
Examples and Applications
Whenever appropriate, we have included examples that illustrate the concepts introduced in the text. Also, we have added some real-life applications throughout each chapter to motivate students.
End. of-Chapter Materials
Each chapter ends with a set of materials that includes the following:
Key Terms
The new terms used in each chapter are listed at the end of the chapter and their definitions are included in the glossary.
Summary
Each chapter ends with a summary of the material covered by that chapter. The summary glues the important materials together to be seen in one shot.
Further Reading
This section gives a brief list of references relative to the chapter. The references can be used to quickly find the corresponding literature in the reference section at the end of the book.
Practice Set
Each chapter includes a practice set designed to reinforce salient concepts and encourage students to apply them. It consists of three parts: quizzes, questions, and problems.
Quizzes
Quizzes, which are posted on the book website, provide quick concept checking. Students can take these quizzes to check their understanding of the materials. The feedback to the students' responses is given immediately.
Questions
This section contains simple questions about the concepts discussed in the book.Answers to the odd-numbered questions are posted on the book website to be checked by the student.
Problems
This section contains more difficult problems that need a deeper understanding of the materials discussed in the chapter. We strongly recommend that the student try to solve all of these problems. Answers to the odd-numbered problems are also posted on the book website to be checked by the student.
Simulation Experiments
Network concepts and the flow and contents of the packets can be better understood if they can be analyzed in action. Most chapters include a section to help students experiment with these. This section is divided into two parts:
Applets
Java applets are interactive experiments that are created by the authors and posted on the website. Some of these applets are used to better understand the solutions to some problems; others are used to better understand the network concepts in action.
Lab Assignments
Some chapters include lab assignments that use Wireshark simulation software. The instructions for downloading and using Wireshark are given in Chapter 1. In some other chapters, there a few lab assignments that can be used to practice sending and receiving packets and analyzing their contents.
Programming Assignments
Some chapters also include programming assignments. Writing a program about a process or procedure clarifies many subtleties and helps the student better understand the concept behind the process. Although the student can write and test programs in any computer language she or he is comfortable with, the solutions are given in Java language at the book website for the use of professors.
Appendices
The appendices are intended to provide a quick reference or review of materials needed to understand the concepts discussed in the book.
Glossary and Acronyms
The book contains an extensive glossary and a list of acronyms for finding the corresponding term quickly.
Instruction Resources
The book contains complete instruction resources that can be downloaded from the book site http://www, mhhe.com/fforouzan. They include:
Presentations
The site includes a set of colorful and animated PowerPoint presentations for teaching the course.
Solution to Practice Set
Solutions to all questions and problems are provided at the book website for the use of professors who teach the course.
Solution to Programming Assignments
Solutions to programming assignments are also provided at the book website. The programs are in C language for Chapter 2 and in Java language for other chapters.
How to Use the Book
The chapters in the book are organized to provide a great deal of flexibility. We suggest the following:
Most of the material discussed in Chapter 1 is essential to understanding the rest of the book. The first two sections are critical to understanding the network layering upon which the whole book is designed. The last two sections, Intemet History and Intemet Standards and Administration, can be skipped or assigned as self-study materials.
Chapters 2 to 6 are based on the four top layers of the TCP/IP protocol suite. We recommend these be covered in the same order as presented to preserve the top-down approach of the book. However, there are some sections, such as Client-Server Socket Interface in Chapter 2, Next Generation IP in Chapter 4, or Other Wired Networks in Chapter 5, that can be skipped without loss of continuity.
Chapter 7, Physical Layer, is added to the book to make the discussion of the TCP/IP protocol suite complete. It can be skipped if the professor feels that the students are already familiar with the materials or they have taken some other related courses.
Chapters 8, 9, and 10 can be taught in any order after the first six chapters are discussed. These chapters can be taught fully, partially, or totally skipped at the professor's discretion.
Chapter 11 is devoted to Java network programming. It has two purposes: First, it gives the idea of client-server programming to make the students better understand the whole purpose of the Internet. Second, it prepares the student for more advanced courses in network programming. A mini duplicate of this chapter was given in Chapter 2 in C language. The professor can either use that section or use Chapter 11 to teach the basics of network programming.
Web Site
The book website http://www, mhhe.com/forouzan contains the following:
Quizzes
The quizzes are posted on the website, but the results can be sent to the professor who teaches the course.
Students' Solutions
The answer to the odd-numbered questions and problems are posted for the students to check their work and get some feedback.
Applets
Applets designed for each chapter are available to the students to see some protocols and problems in action.
Professor's Solutions
The answers to all questions and problems are posted for the use of professors who teach the course.
Programming Assignments
The codes for programming assignments are posted for the use of the professors who teach the course.
PowerPoint Presentations
Full-colored and animated presentations are posted for the professors who teach the course. They are designed to allow the professors to tailor them for their own courses.
Acknowledgments
It is obvious that the development of a book of this scope needs the support of many people. We would like to acknowledge the contributions from peer reviewers to the development of the book. These reviewers are:
Zongming Fei University of Kentucky
Randy J. Fortier University of Windsor
Seyed H. Hosseini University of Wisconsin, Milwaukee
George Kesidis Pennsylvania State University
Amin Vahdat University of California, San Deigo
Yannis Viniotis North Carolina State University
Bin Wang Wright State University
Vincent Wong University of British Columbia
Zhi-Li Zhang University of Minnesota
Wenbing Zhao Cleveland State University
Special thanks go to the staff of McGraw-Hill. Raghu Srinivasan, the publisher,proved how a proficient publisher can make the impossible, possible. Melinda Bilecki,the developmental editor, gave help whenever we needed it. Jane Mohr, the project manager, guided us through the production process with enormous enthusiasm. We also thank Dheeraj Chahal, full-service project manager, Brenda A. Rolwes, the cover designer, and Kathryn DiBemardo, the copy editor.
Forouzan and Mosharraf
Los Angeles, CA.