Suppose a process in Host C has a UDP socket with port number 6789. Suppose both Host A and Host B each send a UDP segment to Host C with destination port number 6789. Will both of these segments be directed to the same socket at Host C?

If so, how will the process at Host C know that these two segments originated from two different hosts?

Yes, both segments will be directed to the same socket. For each received segment, at the socket interface, the operating system will provide the process with the IP addresses to determine the origins of the individual segments.

Suppose that a Web server runs in Host C on port 80. Suppose this Web server uses persistent connections, and is currently receiving requests from two different Hosts, A and B. Are all of the requests being sent through the same socket at Host C?

If they are being passed through different sockets. Do both of the sockets have port 80? Discuss and explain.

For each persistent connection, Web server creates a separate connection socket. Each connection socket is identified with a four-tuple: (source IP address, source port number, destination IP address, destination port number). When host C receives an IP datagram, it examines these four fields in the datagram/segment to determine to which socket it should pass the payload of the TCP segment. Thus, the requests from A and B pass through different sockets. The identifier for both of these sockets has 80 for the destination port; however, the identifiers for these sockets have different values for source IP addresses. Unlike UDP, when the transport layer passes a TCP segment’s payload to the application process, it does not specify the source IP address, as this is implicitly specified by the socket identifier.

Suppose Host A sends two TCP segments back to back to Host B over a TCP connection. The first segment has sequence number 90: the second has sequence number 110.

a. How much data is in the first segment?

b. Suppose that the first segment is lost but the second segment arrives at B. In the acknowledgment that Host B sends to Host A. what will be the acknowledgment number?

a) 20 bytes

b) ack number = 90

Consider the Telnet example discussed in Section 3.5. A few seconds after the user types the letter 'C,' the user types the letter 'R‘. After typing the letter 'R' how many segments are sent and what is put in the sequence number and acknowledgment fields of the segments?

3 segments.

First segment: seq = 43, ack =80;

Second segment: seq = 80, ack = 44;

Third segment; seq = 44, ack = 81

What is the difference between routing and forwarding?

Forwarding is about moving a packet from a router’s input port to the appropriate output port. Routing is about determining the end-to-routes between sources and destinations.

Suppose Host A sends Host B a TCP segment encapsulated in an IP datagram. When Host B receives the datagram, how does the network layer in Host B know it should pass the segment (that is, the payload of the datagram) to TCP rather than to UDP or to something else?

The 8-bit protocol field in the IP datagram contains information about which transport layer protocol the destination host should pass the segment to.

Do routers have IP addresses? If so, how many?

Yes. They have one address for each interface.

Suppose there are three routers between a source host and a destination host. Ignoring fragmentation, an lP datagram sent from the source host to the destination host will travel over how many interfaces?

How many forwarding tables will be indexed to move the datagram from the source to the destination?