Even though this book was published in 1994, it still serves as a useful reference and learning tool for the TCP/IP protocol. There are of course changes and additions that have been made to TCP/IP over the last 7 years such as IPv6, but one can still refer to this book as a good source of information about the dynamics of TCP/IP. There are exercises at the end of each chapter, so it can, and has been used as an effective textbook.
In chapter 1, the author gives a brief overview of protocol layering, Internet addressing, and the domain name system. The encapsulation mechanisms for TCP and UDP are outlined as well as a discussion of the different implementations of TCP/IP. The Vegas implementation is not discussed since it was invented long after the date of publication of this book. Ethernet and the encapsulation provided by IEEE, SLIP, and PPP is discussed in the next chapter on the link layer, along with the loopback interface and MTU. Estimates are given of serial line throughput, setting the stage for later timing calculations.
The IP protocol is the subject of chapter 3, the author stressing first the connectionless and unreliable nature of IP packet transfer. The IP datagram format is given in discussed, along with a detailed discussion of subnet addressing and subnet masks. The discussion of IP given here is of course very out of date with the advent of IPv6.
Chapter 4 is an overview of ARP, and the author illustrates it effectively using an example of an FTP transfer and Telnet. This is followed by a treatment of RARP in the next chapter, with the limitations of this protocol briefly discussed. Although ARP is incorporated in all current implementations of TCP/IP (with the exception of IPv6), not all of these include RARP.
The ICMP error handling protocol is discussed in the next chapter, with all the message types listed, and brief discussions given of timestamp and address mask requests. This is followed naturally by a discussion of the Ping program in chapter 7, which uses ICMP echo request and reply messages.
The traceroute program, which finds which path IP packets follow from one to the other, is discussed in Chapter 8. An explicit example is given of how to use traceroute. Then in the next chapter, IP routing is discussed, along with an explicit example of a routing table. Again, the discussion is out-of-date, since in IPv6, the router discovery is replaced by a mandatory router solicitation and advertisement mechanism.
Dynamic routing protocols are the subject of the next chapter, wherein the author discusses RIP, OSPF, BGP, and CIDR. The newer ones, such as IGRP, EIGRP, and MPLS, are of course not treated.
UDP is then discussed in the next chapter, with examples given and IP fragmentation discussed, along with a brief overview of how UDP and ARP interact. This is followed in Chapter 12 by a discussion of broadcasting and multicasting, and the author outlines briefly the problems that rise when attempting to broadcast through routers. Then in the next chapter, the ICMP mechanism for multicasting is discussed. Here again the treatment is dated, since in IPv6 IGMP is replaced by multicast listener discovery messages and there are no broadcast addressing in IPv6.
The DNS database is discussed in the next chapter, with emphasis on how resolvers communicate with name servers using TCP/IP. The discussion is limited to A resource records, which is replaced in IPv6 with AAAA or A6 resource records. I did not read the next two chapters on TFTP and BOOTP so I will omit any commentary.
It is in the next chapter that the basics of TCP begin to be discussed, with the details of the TCP header given. The dynamics of the TCP connection is then treated in chapter 18, with a complete TCP state transition diagram given. The discussion is very helpful to those who need a thorough understanding of the connection steps in TCP. This is followed by a treatment of the Nagle algorithm and delayed ACKs in chapter 19. The exercises in this chapter need to be worked to appreciate the discussion.
The following chapter overviews how TCP sliding windows work, and how window sizing is done. Slow start, the bandwidth-delay product, and the urgent mode are all treated in great detail. The mathematical considerations behind TCP timeout and retransmission are given in chapter 21, along with a discussion of the congestion avoidance algorithm and the fast retransmit and fast recovery algorithms. Then in chapter 22, the TCP persist timer, used to prevent transmission deadlock and the silly window syndrome, is discussed in detail. The ability of TCP to implement a keepalive timer is discussed in the next chapter. Since it is out of date, I did not read the next chapter on the future of TCP.
The SNMP network management protocol is outlined in Chapter 25, with definitions of MIB and an overview of SNMP traps. These are very important concepts given the enormous importance of network management currently. There are currently several vendors that supply packages for polling, reporting, and forecasting network behavior that are based partially on SNMP and MIBs.
Telnet and Rlogin, which are still used extensively in modern networks, are discussed in the next chapter. After reading this chapter, the reader will have a thorough understanding of how these protocols work, which is also true of the next chapter that covers the FTP protocol, and the SMTP protocol, which is covered in chapter 28. I did not read the last two chapters of the book so I will omit any commentary.
The author has done a good job here of relating to the reader the structure and dynamics of TCP/IP based on what was known at the time. In view of the fact that IPv4 is still alive and well, and given that TCP implementations have only been slightly modified since 1994, one can still read this book profitably.
Must-have for any serious programmer
Rating: 5/5
This book is the most definitive book on the networking and TCP/IP protocal suite. If you wanna know the internal workings of TCP/IP and the Internet, this book is for you. This teaches the basic TCP/IP fundamentals first such as Ethernet,ARP,RARP and IP, and later more complicated and high layer components: TCP and UDP and application layer protocols. I think that it's a good way to grasp network concepts that you start with practical books like this rather than with theoretical books such as Computer Networks by Tanenbaum,..and other university text books.
Great book, highly recommended
Rating: 5/5
I love this book. Full of information, very clear and easy to understand.Great reference.
In chapter 1, the author gives a brief overview of protocol layering, Internet addressing, and the domain name system. The encapsulation mechanisms for TCP and UDP are outlined as well as a discussion of the different implementations of TCP/IP. The Vegas implementation is not discussed since it was invented long after the date of publication of this book. Ethernet and the encapsulation provided by IEEE, SLIP, and PPP is discussed in the next chapter on the link layer, along with the loopback interface and MTU. Estimates are given of serial line throughput, setting the stage for later timing calculations.
The IP protocol is the subject of chapter 3, the author stressing first the connectionless and unreliable nature of IP packet transfer. The IP datagram format is given in discussed, along with a detailed discussion of subnet addressing and subnet masks. The discussion of IP given here is of course very out of date with the advent of IPv6.
Chapter 4 is an overview of ARP, and the author illustrates it effectively using an example of an FTP transfer and Telnet. This is followed by a treatment of RARP in the next chapter, with the limitations of this protocol briefly discussed. Although ARP is incorporated in all current implementations of TCP/IP (with the exception of IPv6), not all of these include RARP.
The ICMP error handling protocol is discussed in the next chapter, with all the message types listed, and brief discussions given of timestamp and address mask requests. This is followed naturally by a discussion of the Ping program in chapter 7, which uses ICMP echo request and reply messages.
The traceroute program, which finds which path IP packets follow from one to the other, is discussed in Chapter 8. An explicit example is given of how to use traceroute. Then in the next chapter, IP routing is discussed, along with an explicit example of a routing table. Again, the discussion is out-of-date, since in IPv6, the router discovery is replaced by a mandatory router solicitation and advertisement mechanism.
Dynamic routing protocols are the subject of the next chapter, wherein the author discusses RIP, OSPF, BGP, and CIDR. The newer ones, such as IGRP, EIGRP, and MPLS, are of course not treated.
UDP is then discussed in the next chapter, with examples given and IP fragmentation discussed, along with a brief overview of how UDP and ARP interact. This is followed in Chapter 12 by a discussion of broadcasting and multicasting, and the author outlines briefly the problems that rise when attempting to broadcast through routers. Then in the next chapter, the ICMP mechanism for multicasting is discussed. Here again the treatment is dated, since in IPv6 IGMP is replaced by multicast listener discovery messages and there are no broadcast addressing in IPv6.
The DNS database is discussed in the next chapter, with emphasis on how resolvers communicate with name servers using TCP/IP. The discussion is limited to A resource records, which is replaced in IPv6 with AAAA or A6 resource records. I did not read the next two chapters on TFTP and BOOTP so I will omit any commentary.
It is in the next chapter that the basics of TCP begin to be discussed, with the details of the TCP header given. The dynamics of the TCP connection is then treated in chapter 18, with a complete TCP state transition diagram given. The discussion is very helpful to those who need a thorough understanding of the connection steps in TCP. This is followed by a treatment of the Nagle algorithm and delayed ACKs in chapter 19. The exercises in this chapter need to be worked to appreciate the discussion.
The following chapter overviews how TCP sliding windows work, and how window sizing is done. Slow start, the bandwidth-delay product, and the urgent mode are all treated in great detail. The mathematical considerations behind TCP timeout and retransmission are given in chapter 21, along with a discussion of the congestion avoidance algorithm and the fast retransmit and fast recovery algorithms. Then in chapter 22, the TCP persist timer, used to prevent transmission deadlock and the silly window syndrome, is discussed in detail. The ability of TCP to implement a keepalive timer is discussed in the next chapter. Since it is out of date, I did not read the next chapter on the future of TCP.
The SNMP network management protocol is outlined in Chapter 25, with definitions of MIB and an overview of SNMP traps. These are very important concepts given the enormous importance of network management currently. There are currently several vendors that supply packages for polling, reporting, and forecasting network behavior that are based partially on SNMP and MIBs.
Telnet and Rlogin, which are still used extensively in modern networks, are discussed in the next chapter. After reading this chapter, the reader will have a thorough understanding of how these protocols work, which is also true of the next chapter that covers the FTP protocol, and the SMTP protocol, which is covered in chapter 28. I did not read the last two chapters of the book so I will omit any commentary.
The author has done a good job here of relating to the reader the structure and dynamics of TCP/IP based on what was known at the time. In view of the fact that IPv4 is still alive and well, and given that TCP implementations have only been slightly modified since 1994, one can still read this book profitably.