CPSC 471 Chapter 3 Study Set
3.6-1 Congestion control versus flow control. Consider the five images below. Indicate which of these images suggest the need for flow control (the others would suggest the need for congestion control).
- A glass overflowing - A talking head
3.3-02 UDP header fields. Which of the fields below are in a UDP segment header? [Hint: note the use of the word "header" in this question statement.]
- Internet checksum - Source port number - Destination port number - Length (of UDP header plus payload)
3.4-04 The rdt 2.1 protocol (b). Consider the rdt2.1 sender and receiver FSMs shown below, with labeled transitions S1 through S6 at the sender, and transitions R1 through R6 at the receiver. The sender and receiver start in the "Wait for call 0 from above" and "Wait for 0 from below" states, respectively.
- transition x1 = R1 - transition x2 = S2 - transition x3 = R3 - transition x4 = S3 - transition x5 = R4
3.4-05 The rdt 2.1 protocol (c). Consider the rdt2.1 sender and receiver FSMs shown below, with labeled transitions S1 through S6 at the sender, and transitions R1 through R6 at the receiver. The sender and receiver start in the "Wait for call 0 from above" and "Wait for 0 from below" states, respectively.
- transition x1 = R1 - transition x2 = S2 - transition x3 = R3 - transition x4 = S3 - transition x5 = R4
3.4-03 The rdt 2.1 protocol (a). Consider the rdt2.1 sender and receiver FSMs shown below, with labeled transitions S1 through S6 at the sender, and transitions R1 through R6 at the receiver. The sender and receiver start in the "Wait for call 0 from above" and "Wait for 0 from below" states, respectively.
- transition x1 = R1 - transition x2 = S3 - transition x3 = R4 - transition x4 = S6
3.2-2 Transport-layer multiplexing. What is meant by transport-layer multiplexing?
Taking data from one socket (one of possibly many sockets), encapsulating a data chuck with header information - thereby creating a transport layer segment - and eventually passing this segment to the network layer.
3.3-03 UDP segment length field. Why is the UDP header length field needed?
Because the payload section can be of variable length, and this lets UDP know where the segment ends.
3.1-2 Transport-layer functionality. True or False: The transport layer provides for host-to-host delivery service?
False
3.6-5 Network-assisted or end-end congestion control (2)? Which of the following actions are associated with end-end congestion control (say versus network-assisted congestion control). Check all that apply.
- A router drops a packet at a congested router, which causes the transport-layer sender to infer that there is congestion due to the missing ACK for the lost packet. - The transport-layer sender decreases its sending rate in response to a measured increase in the RTT. - A datagram experiences delay at a congested network router, which is then measured by the sender and used to decrease the sending rate. - A sender decreases its sending rate in response to packet loss detected via its transport-layer ACKing.
3.1-3 Transport layer services using TCP. Check all of the services below that are provided by the TCP protocol.
- Reliable data delivery. - A congestion control service to ensure that multiple senders do not overload network links. - A flow-control service that ensures that a sender will not send at such a high rate so as to overflow receiving host buffers. - A byte stream abstraction, that does not preserve boundaries between message data sent in different socket send calls at the sender. -
3.3-06 Computing the Internet Checksum (2). Compute the Internet checksum value for these two 16-bit words: 01000001 11000100 and 00100000 00101011
01000001 11000100 00100000 00101011 -------- -------- 0 01100001 11101111 = 10011110 00010000
3.4-09 Channel utilization with pipelining (more). Suppose a packet is 10K bits long, the channel transmission rate connecting a sender and receiver is 10 Mbps, and the round-trip propagation delay is 10 ms. How many packets can the sender transmit before it starts receiving acknowledgments back?
10
3.5-6 TCP timer management. Consider the TCP Telnet scenario below (from Fig. 3.36 in text). What timer-related action does the sender take on the receipt of ACK 120?
Cancels any running timers.
3.1-5 Network-layer functionality. The transport layer sits on top of the network layer, and provides its services using the services provided to it by the network layer. Thus it's important that we know what is meant by the network layer's "best effort" delivery service. True or False: The network layer's best-effort delivery service means that IP makes its "best effort" to deliver segments between communicating hosts, but it makes no guarantees. In particular, it does not guarantee segment delivery, it does not guarantee orderly delivery of segments, and it does not guarantee the integrity of the data in the segments. Correct Answer
Correct! The network layer's best effort service doesn't really provide much service at all, does it?
3.5-1 TCP reliability semantics. True or False: On the sending side, the TCP sender will take each application-layer chunk of data written into a TCP socket and send it in a distinct TCP segment. And then on the receiving side, TCP will deliver a segment's payload into the appropriate socket, preserving the application-defined message boundary.
False.
3.1-1 Location of transport-layer functionality. Where is transport-layer functionality primarily implemented?
Transport layer functions are implemented primarily at the hosts at the "edge" of the network.
3.2-3 Multiplexing/Demultiplexing: UDP port numbers. True or False: When multiple UDP clients send UDP segments to the same destination port number at a receiving host, those segments (from different senders) will always be directed to the same socket at the receiving host.
True
3.5-9 TCP Fast Retransmit. Consider TCP's Fast Retransmit optimization (see Figure 3.37 from the text, below). Of course, the sender doesn't know for sure that the segment with sequence # 100 is actually lost (it can't see into the channel). Can a sender get three duplicate ACKs for a segment that in fact has not been lost? Which of the following statements are true? Suppose a channel can lose, but will not corrupt, messages.
- If the channel cannot reorder messages, a triple duplicate ACK indicates to the sender that a segment loss has happened for sure. Actually (again assuming the channel cannot corrupt or reorder messages), even a single duplicate ACK would indicate that a segment loss has happed for sure. - If the channel can reorder messages, a triple duplicate ACK can occur even though a message is not lost; since it's possible that a message has just been reordered and has not yet arrived when the three duplicate ACKs were generated.
3.4-02 The rdt 2.0 protocol. Consider the rdt 2.0 sender and receiver shown below, with FSM transitions at the sender labeled S1, S2, and S3; and receiver transitions labeled R1 and R2.Which of the following sequences of transitions could possibly occur as a result of an initial rdt_send() call at the sender, and possible later message corruption and subsequent error recovery.
- S1, R2, S3 - S1, R1, S2 - S1, R1, S2, R2,S3
3.6-3 Different approaches towards congestion control. Use the pulldown menu to match a congestion control approach to how the sender detects congestion.
- The sender infers segment loss from the absence of an ACK from the receiver. = end-end - Bits are set at a congested router in a sender-to-receiver datagram, and bits are in the returned to the sender in a receiver-to sender ACK, to indicate congestion to the sender. = network-assisted - The sender measures RTTs and uses the current RTT measurement to infer the level of congestion. = delay-based
3.4-11 Packet buffering in Go-Back-N. What are some reasons for discarding received-but- out-of-sequence packets at the receiver in GBN? Indicate one or more of the following statements that are correct.
- The sender will resend that packet in any case. - The implementation at the receiver is simpler.
3.3-09 IP addresses and port numbers in a UDP segment sent in reply. Suppose a UDP segment (A in the figure below) arrives at a host with an IP address of 128.119.40.186. The source port in the UDP segment is 4829 and the destination port is 3546. The IP address of the sending host is 60.54.75.24.
- The source port number of the UDP segment (B) sent in reply is: = 3546 - The source IP address of the IP datagram containing the UDP segment (B) sent in reply is: = 128.119.40.186 - The destination port number of the UDP segment (B) sent in reply is: = 4829 - The destination IP address of the IP datagram containing the UDP segment (B) sent in reply is: = 60.54.75.24
3.5-2 TCP segment format. For the given function of a field in the TCP segment, select the name of that field from the pull-down list.
- This field contains the port number associated with the sending socket for this TCP segment. = Source port number - This field contains application data that was written into a socket by the sender of this TCP segment. = Data (or payload). - This field contains the index in the sender-to-receiver byte stream of the first byte of that data in the payload carried in this segment. = Sequence number - This field contains the index in the byte stream of the next in-order byte expected at the receiver = ACK number field - If set, this segment cumulatively ACKs all data bytes up to, but not including, the byte index in the ACK value field of this segment. = ACK bit - This field contains the number of available bytes in the TCP receiver's buffer. = Receiver advertised window - This field contains the Internet checksum of the TCP segment and selected fields in the IP datagram header. = Checksum - This field contains the number of bytes in the TCP header. = Header length field
3.4-01 Reliable data transfer protocol mechanisms. Consider the purposes/goals/use of different reliable data transfer protocol mechanisms. For the given purpose/goal/use match it to the RDT mechanism that is used to implement the given purpose/goal/use.
- Used by the receiver to let the sender know that a packet was NOT received correctly at the receiver. = NAK - Used by sender or receiver to detect bits flipped during a packet's transmission. = Checksum - Allows for duplicate detection at receiver. = Sequence numbers - Used by the receiver to let the sender know that a packet was received correctly at the receiver. = ACK - Allows the receiver to eventually receive a packet that was corrupted or lost in an earlier transmission. = Retransmission
3.4-07 Stop-and-wait: channel utilization. Suppose a packet is 10K bits long, the channel transmission rate connecting a sender and receiver is 10 Mbps, and the round-trip propagation delay is 10 ms. What is the maximum channel utilization of a stop-and-wait protocol for this channel?
.1
3.6-2 Two congested senders. Consider the figure below, which shows the application-to-application throughput achieved when two senders are competing at a shared bottleneck link. Suppose that when the overall arrival rate, lambdain' (for each sender) is close to R/2, the throughput to the application layer (at each receiver), lambdaout, is equal to 0.8 * lambdain'.
.20
3.4-08 Channel utilization with pipelining. Suppose a packet is 10K bits long, the channel transmission rate connecting a sender and receiver is 10 Mbps, and the round-trip propagation delay is 10 ms. What is the channel utilization of a pipelined protocol with an arbitrarily high level of pipelining for this channel?
1.0
3.4-06 Cumulative ACK. What is meant by a cumulative acknowledgment, ACK(n)?
A cumulative ACK(n) acks all packets with a sequence number up to and including n as being received.
3.5-3 TCP sequence numbers and ACKs (1). Consider the TCP Telnet scenario below (from Fig. 3.31 in text). Why is it that the receiver sends an ACK that is one larger than the sequence number in the received datagram?
Because the send-to receiver segment carries only one byte of data, and after that segment is received, the next expected byte of data is just the next byte (i.e., has an index that is one larger) in the data stream.
3.4-14 Receiver operation in Selective Repeat (more). In SR, why does the receiver have to acknowledge packets with sequence numbers that are less than (and to the left of) those in its window, which starts at rcv_base.
Because the sender may not have received an ACK for that packet yet.
3.4-12 Packet buffering in Go-Back-N (more). What are some reasons for not discarding received-but- out-of-sequence packets at the receiver in GBN? Indicate one or more of the following statements that are correct.
Even though that packet will be retransmitted, its next retransmission could be corrupted, so don't discard a perfectly well-received packet, silly!
3.2-4 Multiplexing/Demultiplexing: TCP port numbers. True or False: When multiple TCP clients send TCP segments to the same destination port number at a receiving host, those segments (from different senders) will always be directed to the same socket at the receiving host.
False
3.3-08 UDP Checksum: how good is it? True or False: When computing the Internet checksum for two numbers, a single flipped bit in each of the two numbers will always result in a changed checksum.
False
3.5-5 TCP RTT Estimation: EWMA. Consider TCP use of an exponentially weighted moving average (EWMA) to compute the nth value of the estimated RTT:EstimatedRTTn = (1- a)*EstimatedRTTn-1 + a*SampleRTTnTrue or False: with this EWMA algorithm the value of EstimatedRTTn has no dependence on the earlier sample, SampleRTTn-1 True
False
3.2-1 Transport-layer demultiplexing. What is meant by transport-layer demultiplexing?
Receiving a transport-layer segment from the network layer, extracting the payload (data) and delivering the data to the correct socket.
3.3-04 Internet checksum and UDP. Over what set of bytes is the checksum field in the UDP header computed over?
The entire UDP segment, except the checksum field itself, and the IP sender and receive address fields
3.3-10 How "good" are checksums? Suppose a sender computes a checksum (Internet checksum or some other checksum, which is essentially a sum of the bytes in a segment), puts the checksum in the segment header, and sends the segment to the receiver. The receiver receives the segment (with the checksum in the header). The receiver computes the checksum itself (i.e., performs the same calculation as the sender, but over the received data) and compares the checksum it has computed to the checksum it received in the header. It finds that its computed checksum and received checksum in the header are identical. Which of the following statements is true?
The receiver can't tell for certain whether errors (bit flips) have occurred in the received data in the segment, but can be relatively confident that no errors have occurred.
3.4-13 Receiver operation in Selective Repeat. In the SR receiver window (see diagram below, taken from PPT slides and video), why haven't the red packets been delivered yet? Check the one or more reasons below that apply.
There is a packet with a lower sequence number than any of the red packets that has yet to be received, so in-order delivery of data in the red packets up to the application layer is not possible.
3.2-5 Multiplexing UDP with identical port numbers. True or False: It is possible for two UDP segments to be sent from the same socket with source port 5723 at a server to two different clients.
True
3.2-6 Multiplexing TCP with identical port numbers. True or False: It is possible for two TCP segments with source port 80 to be sent by the sending host to different clients.
True
3.3-01 Does UDP preserve application-layer message boundaries? True or False: On the sending side, the UDP sender will take each application-layer chunk of data written into a UDP socket and send it in a distinct UDP datagram. And then on the receiving side, UDP will deliver a segment's payload into the appropriate socket, preserving the application-defined message boundary.
True
3.3-07 UDP Checksum: how good is it? True or False: When computing the Internet checksum for two numbers, a single flipped bit (i.e., in just one of the two numbers) will always result in a changed checksum.
True
3.5-7 TCP Flow Control. True or False: with TCP's flow control mechanism, where the receiver tells the sender how much free buffer space it has (and the sender always limits the amount of outstanding, unACKed, in-flight data to less than this amount), it is not possible for the sender to send more data than the receiver has room to buffer.
True
3.3-05 Computing the Internet Checksum (1). Compute the Internet checksum value for these two 16-bit words: 11110101 11010011 and 10110011 01000100
When we add these first two numbers together, we get: 11110101 11010011 10110011 01000100 -------- -------- 1 10101001 00010111 note the carry into the 17th bit = 01010110 11100111
3.1-4 Transport-layer services using UDP. Check all of the services below that are provided by the UDP protocol.
A message abstraction, that preserves boundaries between message data sent in different socket send calls at the sender.
3.3-11. What is a checksum? Which of the following statements are true about a checksum? Hint: more than one statement is true.
- A checksum is computed at a sender by considering each byte within a packet as a number, and then adding these numbers (each number representing a bytes) together to compute a sum (which is known as a checksum). - The sender-computed checksum value is often included in a checksum field within a packet header. - The receiver of a packet with a checksum field will add up the received bytes, just as the sender did, and compare this locally-computed checksum with the checksum value in the packet header. If these two values are different then the receiver knows that one of the bits in the received packet has been changed during transmission from sender to receiver.
3.5-8 TCP connection management. Match the description of a TCP connection management message with the name of the message used to accomplish that function.
- A message from client to server initiating a connection request. = SYN message - A message from server to client ACKing receipt of a SYN message and indicating the willingness of the server to establish a TCP connection with the client. = SYNACK message - A message indicating that the sending side is initiating the protocol to terminate a connection. = FIN message - A message sent in response to a request to terminate a connection, ACKing that the side receiving this message is also willing to terminate the connection = FINACK message - A general purpose error message used during connection set up or tear down to let the other side know that an error has occurred, and that the referenced connection should be shut down. = RESET message
3.4-10 Pipelining. Which of the following statements about pipelining are true? One or more statements may be true.
- A pipelined sender can have transmitted multiple packets for which the sender has yet to receive an ACK from the receiver. - With a pipelined sender, there may be transmitted packets "in flight" - propagating through the channel - packets that the sender has sent but that the receiver has not yet received.
3.6-4 Network-assisted or end-end congestion control? Which of the following actions are used in network-assisted congestion control (say versus end-end congestion control) to signal congestion. Check all that apply.
- A router marks a field in the datagram header at a congested router. - A router sends an ICMP message to a host telling it to slow down its sending rate.
3.5-4 TCP sequence numbers and ACKs (2). Suppose that as shown in the figure below, a TCP sender is sending segments with 100 bytes of payload. The TCP sender sends five segments with sequence numbers 100, 200, 300, 400, and 500. Suppose that the segment with sequence number 300 is lost. The TCP receiver will buffer correctly-received but not-yet-in-order segments for later delivery to the application layer (once missing segments are later received).
- After receiving segment 100, the receiver responds with an ACK with value: = 200 - After receiving segment 200, the receiver responds with an ACK with value: = 300 - After receiving segment 500, the receiver responds with an ACK with value: = 300, a duplicate ACK - After receiving the retransmitted segment 300, the receiver responds with an ACK with value: = 600 - The TCP receiver does not respond in the example, with an ACK with value: = 400