As noted earlier, we have introduced many new homework problems in the first six chapters of the book. However, each of the last three chapters depends on the material in the first six chapters.
SIP 703
Chapter 1 Computer Networks and the Internet
What Is the Internet?
- A Nuts-and-Bolts Description
 - A Services Description
 - What Is a Protocol?
 
Transmission Control Protocol (TCP) and Internet Protocol (IP) are two of the most important protocols on the Internet. When you develop an Internet application, you also need to choose one of the Internet services for your application.
The Network Edge
- Access Networks
 - Physical Media
 
Two other access network technologies are also used to provide Internet access to the home. In fact, more than 99 percent of the wire connections from the telephone handset to the local telephone switch use copper pair.
The Network Core
- Packet Switching
 - Circuit Switching
 - A Network of Networks
 
Only after the router has received all bits of the packet can it begin sending (ie "forwarding") the packet to the outgoing link. Specifically, the connection assigns a frequency band to each connection for the duration of the connection.
Delay, Loss, and Throughput in Packet-Switched Networks
- Overview of Delay in Packet-Switched Networks
 - Queuing Delay and Packet Loss
 - End-to-End Delay
 - Throughput in Computer Networks
 
This is the amount of time it takes to push (that is, transmit) all the bits of the packet into the link. The time it takes to propagate from the start of the connection to Router B is the propagation delay. The propagation speed depends on the physical medium of the connection (i.e. fiber optic, twisted pair copper wire, etc.) and is in the range of .
Remember that R is the transmission rate; that is, it is the rate (in bits/sec) at which bits are pushed from the queue. So, for this simple two-link network, the throughput is min{R, R}, that is, it is the transmission rate of the bottleneck link.
Protocol Layers and Their Service Models
- Layered Architecture
 - Encapsulation
 
We are again interested in the services that a layer provides to the layer above—the so-called service model of a layer. The network layer then provides the service to deliver the segment to the transport layer in the destination host. To move a packet from one node (host or router) to the next node in the route, the network layer relies on the services of the link layer.
At this next node, the link layer passes the datagram to the network layer. So let's look at the two additional layers present in the OSI reference model - the presentation layer and the session layer.
Networks Under Attack
Typically, such email viruses are self-replicating: once executed, the virus can send an identical message with an identical malicious attachment to, for example, every recipient in the user's address book. The worm in the newly infected device then scans the Internet looking for other hosts using the same vulnerable network application. While ubiquitous Internet access is extremely convenient and enables great new applications for mobile users, it also creates a major security vulnerability—by placing a passive receiver in close proximity to the wireless transmitter, it.
Imagine the unsuspecting recipient (e.g. an Internet router) receiving such a packet, treating the (fake) source address as truthful, and then executing a command embedded in the packet's contents (e.g. changing the forwarding table). To conclude this section, it is worth considering how the Internet became such an unsafe place in the first place.
History of Computer Networking and the Internet
- The Development of Packet Switching: 1961–1972
 - Proprietary Networks and Internetworking: 1972–1980
 - A Proliferation of Networks: 1980–1990
 - The Internet Explosion: The 1990s
 - The New Millennium
 
By the late 1980s, the number of hosts connected to the public Internet, a conglomeration of networks similar to today's Internet, would reach one hundred thousand. In the ARPAnet community, many of the final pieces of today's Internet architecture were falling into place. Berners-Lee and his colleagues developed initial versions of HTML, HTTP, a Web server, and a browser—the four key components of the Web.
By the turn of the millennium, the Internet supported hundreds of popular applications, including fire killer. Online social networks – such as Facebook, Instagram, Twitter and WeChat (hugely popular in China) – have created massive networks of people on top of the internet.
Summary
You should note that these chapters are organized around the top four layers of the five-layer Internet Protocol. Note further that our journey will begin at the top of the Internet Protocol stack, namely the application layer, and will work its way up. The second half of the book—chapters 7 through 9—zooms in on three hugely important (and somewhat unrelated) topics in modern computer networking.
The final chapter, dealing with multimedia networks, examines audio and video applications such as Internet telephony, video conferencing, and streaming stored media. We also look at how a packet-switched network can be designed to provide consistent quality of service for audio and video applications.
Review Questions
Find another combination for which the first bit of the packet reaches the receiver before the sender finishes transmitting. In general, what is the queuing delay when all packets are of length L, the transmission rate is R, x bits of the currently transmitted packet have been transmitted, and n packets are already in the queue. Is it possible for the second packet to be queued in the input queue of the second connection.
Derive a general expression for the width of a bit in terms of the propagation speed s, the transmission speed R and the link length m. For what value of R is the width of a bit as long as the length of the link.
Chapter 2 Application Layer
Principles of Network Applications
- Network Application Architectures
 - Processes Communicating
 - Transport Services Available to Applications
 - Transport Services Provided by the Internet
 - Application-Layer Protocols
 - Network Applications Covered in This Book
 
On the other side of the socket, the transport layer protocol is responsible for getting the messages to the socket in the receiving process. When a transport layer protocol does not provide reliable data transfer, some of the data sent by For example, in the sending host, a transport protocol may encrypt all data transmitted by the sending process, and in the receiving host, the transport layer protocol may decrypt the data before delivering the data to the receiving process.
The encrypted data goes over the Internet to the TCP socket in the receiving process. DNS nicely illustrates how a piece of core network functionality (network name to network address translation) can be implemented at the application layer of the Internet.
The Web and HTTP
- Overview of HTTP
 - Non-Persistent and Persistent Connections
 - HTTP Message Format
 - User-Server Interaction: Cookies
 - Web Caching
 
The steps above illustrate the use of non-persistent connections, where each TCP connection is closed after the server sends the object—the connection does not persist for other objects. As shown in Figure 2.7, this causes the browser to initiate a TCP connection between the browser and the Web server; it involves a "three-way handshake" - the client sends a small TCP segment to the server, the server acknowledges and responds with a small TCP segment, and finally the client acknowledges back to the server. This line includes the host name of the server and the identification number in the Set cookie: header.
Hit rates—the fraction of requests that are satisfied by a cache—typically range from 0.2 to 0.7 in practice. Although caching can reduce user-perceived response times, it introduces a new problem—the cached copy of an object can be out of date.
Electronic Mail in the Internet
- SMTP
 - Comparison with HTTP
 - Mail Message Formats
 - Mail Access Protocols
 
Once SMTP delivers the message from Alice's mail server to Bob's mail server, the message is placed in Bob's mailbox. This can easily be done by having Alice's user agent send the message directly to Bob's mail server. Typically, however, the sender's user agent does not communicate directly with the recipient's mail server.
A mail access protocol such as POP3 is used to transfer mail from the recipient's mail server to the recipient's user agent. In the dialog box below, C: (client) is the user agent and S: (server) is the mail server.
DNS—The Internet’s Directory Service
- Services Provided by DNS
 - Overview of How DNS Works
 - DNS Records and Messages
 
The local DNS server then resends the query message to one of these TLD servers. Our previous example assumed that the TLD server knows the authoritative DNS server for the hostname. For example, suppose again that the University of Massachusetts has a university DNS server called dns.umass.edu.
The local DNS server dns.nyu.edu then sends a query to the authoritative DNS server, which. If the DNS server is authoritative for a particular hostname, the DNS server will contain an A record for the hostname.
Peer-to-Peer File Distribution
Let us first determine the distribution time for the client-server architecture, which we denote by D. In the client-server architecture, none of the peers help in distributing the file. Let d denote the download rate of the peer with the lowest download rate, that is. The peer with the lowest download rate cannot access all F bits of the file in less than F/d seconds.
As with the client-server architecture, the peer with the slowest download speed cannot obtain all F bits of the file in less than F/d seconds. In this way, the tracker keeps track of the peers participating in the torrent.
Video Streaming and Content Distribution Networks
- Internet Video
 - HTTP Streaming and DASH
 - Content Distribution Networks
 
If DASH is used, the server will first send the client a manifest file with a list of URLs, one for each version of the video, and the client will dynamically select parts from the different versions. The CDN learns the IP address of the client's LDNS server through the client's DNS lookup. A simple strategy is to assign the customer to the group that is geographically closest.
Specifically, as described in Section 2.6.2, the client uses the byte-range header in HTTP GET request messages to request chunks from the different versions of the movie. In most cases, the client requests beginning content from CDN servers and requests content from peers at the same time.
Socket Programming: Creating Network Applications
- Socket Programming with UDP
 - Socket Programming with TCP
 
In summary, the sending process appends a destination address to the packet, which consists of the IP address of the destination host and the port number of the destination socket. The client reads a line of characters (data) from its keyboard and sends the data to the server. Here we specify a string containing either the IP address of the server (e.g. or the hostname of the server (e.g. “cis.poly.edu”). If we use the hostname, a DNS lookup will be automatically performed to get the IP address.) The second line sets an integer serverPort variable to 12000.
When this command is executed, the user on the client is prompted with the words "Enter lowercase letters:" The user then uses their keyboard to type a line, which is put into the variable message. UDPServer, the code (written by the application developer) explicitly assigns a port number to the socket.