Chapter 3: Transport layer Flashcards

1
Q

What do transport services and protocols provide?

A

Logical communication between application processes running on different hosts

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Logical communication

A

From an application’s perspective, it’s as if the hosts running the processes are directly connected

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Where do transport protocols action?

A

In end systems

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What does the sender in a transport protocol do?

A
  1. Creates transport layer segments; breaks application layer messages into chunks and adds a transport layer header to each chunk
  2. Passes them to a network layer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What does the receiver in a transport protocol do?

A
  1. Reassembles segments into messages
  2. Passes the messages to the application layer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What two transport protocols are available to Internet applications?

A

TCP & UDP

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is the role of the network layer in the relationship between a transport and network layer?

A

Logical communication between hosts

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is the role of the transport layer in the relationship between a network layer and a transport layer?

A

Logical communication between processes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What does the transport layer rely on and possibly enhance?

A

The network layer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What does the sender in the transport layer do?

A
  1. Receives a application-layer message
  2. Determines segment header field values
  3. Creates a segment
  4. Passes the segment to IP
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What does the receiver in a transport layer do?

A
  1. Receives a segment from IP
  2. Checks the header values
  3. Extracts the application-layer message
  4. Demuxes the message up to the application-layer via socket(s)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are the two primary responsibilities of the TCP and UDP?

A
  • Extend IP’s delivery service between processes
  • Provide error checking
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Describe the Transmission Control Protocol (TCP)

A
  • Reliable, in-order delivert
  • Connection-oriented service
  • Congestion & flow control
  • Connection set-up
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Describe the User Datagram Protocol (UDP)

A
  • Unreliable, unordered delivery
  • Connectionless service
  • No-frills extension of the “best-effort” IP
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What services are not available with both TCP and UDP?

A
  • Delay guarantees
  • Bandwidth guarantees
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What does multiplexing at the sender do?

A
  1. Handles data from socket(s)
  2. Adds a transport header
  3. Passes the segments to the network layer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What does demultiplexing at the receiver do?

A
  1. Uses header info to deliver received segments to correct socket
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

How does demultiplexing work?

A
  1. Host receives IP datagrams with a source IP address and a destination IP address
  2. Transport-layer examines the destination port number and directs the segment to the corresponding socket
  3. The segment’s data passes through the socket into the attached process
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Describe connectionless multiplexing/demultiplexing

A
  1. Sender has to specify destination IP address and port number of datagram
  2. Receiving host receives UDP segment
  3. Receiving host directs UDP segment to socket with corresponding port number
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Where will IP/UDP datagrams with the same destination port number and IP address, but different source IP addresses and/or source port numbers be directed at the receiving host?

A

To the same socket

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Describe connection-oriented multiplexing and demultiplexing

A

Receiver uses all four values that identify the TCP socket to direct the segment to the appropriate socket

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

What are the 4 values that make up the 4-tuple that identifies a TCP socket?

A

Source IP address
Source port number
Destination IP address
Destination port number

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

What is multiplexing and demultiplexing based on?

A

Segments and datagram header field values

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

What is the only value that demultiplexing with UDP depends on?

A

Destination port number

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

What values does demultiplexing with TCP depend on?

A

Source and destination IP addresses and port numbers (4-tuple)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Which layers does multiplexing/demultiplexing happen at?

A

All layers

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Describe User Datagram Protocol (UDP)

A
  • “No frills” internet transport protocol
  • “Best effort” service
  • Connectionless
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

What does it mean that TDP is a best effort service?

A

That it may lose segments and that segments can be delivered out-of-order to the application

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

What does it mean that UDP is connectionless?

A
  • No handshaking between UDP sender & receiver
  • Each UDP segment is handled independently of others
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Why is there a UDP?

A
  • Finer application-level control over what data is sent, and when
  • No connection establishment
  • No connection state at sender and receiver
  • Small packet header overhead/size
  • No congestion control
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

What applications use UDP?

A

DNS, SNMP and HTTP/#

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

How can one implement reliable transfer over UDP?

A
  • Add needed reliability at application layer
  • Add congestion control at application layer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Describe the actions of a UDP sender

A
  • Is passed an application-layer message
  • Determines UDP segment header field values
  • Creates UDP segment
  • Passes segment to IP
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

Describe the actions of a UDP receiver

A
  • Receives segment from IP
  • Checks UDP checksum header value
  • Extracts application-layer message
  • Demultiplexes message up to application via socket
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

What is the UDP checksum used to determine?

A

Whether bits within the UDP segment have been altered as it moved from source to destination

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

Describe the sender in a internet checksum procedure

A
  • Treat contents of UDP segment as sequence of 16-bit integers
  • Checksum
  • Checksum value put into UDP checksum field
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

Describe the receiver in a internet checksum procedure

A
  • Compute checksum of received segment
  • Checks if computed checksum equals checksum field value
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

What assumptions does the rdt1.0 protocol make?

A
  • No bit errors
  • No loss of packets
    The underlying channel is perfectly reliable
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

Do we have one or separate FSMs for the sender and receiver in a rdt1.0 protocol?

A

Separate FSMs

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
40
Q

What is the underlying assumption that rdt2.0 is based on?

A

Underlying channel may contain bit errors - flipped bits in packets

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
41
Q

How does the rdt2.0 recover from errors?

A

Acknowledgements (ACKs)
Negative Acknowledgements (NAKs)
Retransmission based on NAKs

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
42
Q

What do acknowledgements (ACKs) do?

A

Receiver explicitly tells the sender that packet received OK

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
43
Q

What do negative acknowledgements (NAKs) do?

A

Receiver explicitly tells sender that the packet had errors

44
Q

What is a stop and wait protocol?

A

A protocol where the sender sends one packet, then waits for a response from the receiver

45
Q

What is the fatal flaw of the rdt2.0?

A

The ACK/NAK can be corrupted

46
Q

How does rdt2.0 handle that ACK/NAKs can be corrupted?

A
  • Sender retransmits current packet if ACK/NAK corrupted
  • Sender adds a sequence number to each packet
  • Receiver discards duplicate packets
47
Q

Describe the sender in an rdt2.1 protocol

A
  • The sequence number 0/1 added to each packet
  • Checks if received ACK/NAK corrupted
  • Twice as many states
48
Q

Why does the sender in a rdt2.1 protocol have twice as many states?

A

State must “remember” whether expected packet should have the sequence number 1 or 0

49
Q

Describe the receiver of a rdt2.1 protocol

A
  • Checks if the received packet is a duplicate
50
Q

What is the difference between rdt2.1 and rdt2.2?

A

rdt2.2 is a NAK-free protocol - instead of NAK, receiver sends ACK for last packet received OK

51
Q

Why does TCP use the rdt2.2 protocol?

A

To be NAK-free

52
Q

What assumptions does the rdt3.0 protocol rely on?

A

The underlying channel can have bit errors and lose packets

53
Q

How does rdt3.0 handle the fact that the underlying channel can lose packets?

A

Uses a countdown timer to interrupt every transmission of ACK after the assumed amount of time needed for the packet to get to the receiver

54
Q

Why is the rdt3.0 perfomance so bad?

A

The protocol and its use of the stop-and-wait operation limit the performance of the underlying infrastructure

55
Q

Pipelining

A

Sender allows multiple, “in-flight”, yet-to-be-acknowledged packets

56
Q

What do pipelined reliable data transfer protocols rely on to work?

A

Increased range of sequence numbers
Buffering at sender and/or receiver
New approaches for pipelined error recovery

57
Q

N-packet pipelining increases utilization by a factor of…

58
Q

Describe the Go-Back-N (GBN) protocol

A

The sender is allowed to retransmit multiple packets without waiting for an ACK, but is constrained to have no more than some maximum allowable number, N, of unACKed packets in the pipeline

59
Q

Cumulative ACK

A

ACKing of all packets up to, and including sequence number n have been correctly received

60
Q

What does the GBN protocol do when it times out?

A

Retransmits the packet and all higher sequence numbered packets in the window / all packets that have previously been sent but haven’t yet been ACKed

61
Q

Describe the Selective Repeat protocol

A

Receiver individually ACKs all correctly received packets

62
Q

What is the maximum window of Go-Back-N?

A

With a n-bit sequence number field, the size of the sequence number space = 2^n. Maximum window 2^n – 1

63
Q

What is the maximum window of Selective Repeat?

A

With n-bit sequence number field, the size of the sequence number space = 2^n. Maximum window = 2^n-1

64
Q

What does this description describe: one sender and one receiver

A

Point-to-point

65
Q

What does this definition describe: the maximum amount of data that can be grabbed and placed in a segment.

A

Maximum Segment Size (MSS)

66
Q

What sort of ACK only acknowledges bytes up to the first missing byte in the strem?

A

A cumulative ACK

67
Q

Describe the sort of protocol that this is with one word: handshaking initializes sender and receiver before data exchange

A

Connection-oriented

68
Q

What connection does this describe:
- Point-to-point
- Reliable, in-order, byte stream
- Full duplex service
- Cumulative ACKs
- Pipelining
- Connection-oriented
- Flow controlled

A

TCP connection

69
Q

What does this enable: TCP congestion and flow control set window size

A

Pipelining

70
Q

Which segment structure is described below:
- Sequence number field and acknowledgement number field
- Receive window
- Header length field
- Options field
- Flag field

A

TCP segment structure

71
Q

What does the TCP and sender and receiver use to implement a reliable data transfer service in the TCP segment structure?

A

Sequence number and acknowledgement number fields

72
Q

What is the receive window of the TCP segment structure used for?

A

Flow control

73
Q

What specifies the length of the TCP header in 32-bit words within the TCP segment structure?

A

The header length field

74
Q

What is used for when a sender and receiver negotiate the MSS / as a window scaling factor for use in high-speed networks in the TCP segment structure?

A

Options field

75
Q

What bit in the flag field of the TCP segment structure is used to indicate that the value of the ACK field is valid?

76
Q

What bits in the flag field of the TCP segment structure are used for connection setup and teardown?

A

RST, SYN and FIN bits

77
Q

What bits in the flag field of the TCP segment structure are used in explicit congestion notification?

A

CWR and ECE bits

78
Q

What bit in the flag field of the TCP segment structure indicated that the receiver should pass the data to the upper layer immediately?

79
Q

What bit indicates that there is data in the segment that the sending-side upper-layer entity has marked as urgent in the TCP segment structure?

80
Q

What are the byte stream numbers of the first byte in a segment’s data in TCP called?

A

Sequence numbers

81
Q

What are the sequence numbers of the next byte received from the other side in TCP?

82
Q

Does the TCP specification say how the receiver should handle out-of-order segments?

83
Q

What is this the formula for:
(1- α)EstimatedRTT + αSampleRTT

A

EstimatedRTT

84
Q

What is this the formula for:
EstimatedRTT + 4*DevRTT

A

TimeoutInterval

85
Q

What is this the formula for:
(1-β)DevRTT + β|SampleRTT – EstimatedRTT|

86
Q

What event does does this TCP Receiver Action correspond to:

Delayed ACK. Wait up to 500 ms for arrival of another in-order segment. If next in-order segment doesn’t arrive in this interval, send an ACK

A

Arrival of in-order segment with expected sequence number. All data up to expected sequence number already acknowledged.

87
Q

What event does does this TCP Receiver Action correspond to:

Immediately send single cumulative ACK, ACKing both in-order segments

A

Arrival of in-order segment with expected sequence number. One other in-order segment waiting for ACK transmission.

88
Q

What event does does this TCP Receiver Action correspond to:

Immediately send duplicate ACK, indicating sequence number of next expected byte (which is the lower end of the gap)

A

Arrival of out-of-order segment with higher-than-expected sequence number. Gap detected.

89
Q

What event does does this TCP Receiver Action correspond to:

Immediately send ACK, provided that segment starts at the lower end of gap

A

Arrival of segment that partially or completely fills in gap in received data

90
Q

What sort of transmission does this describe:

If sender receives 3 additional ACKs for same data, resend unACKed segment with smallest sequence number

A

TCP fast retransmit

91
Q

What sort of control does this describe:

Receiver controls sender, so sender won’t overflow receiver’s buffer by transmitting too much, too fast

A

Flow control

92
Q

What sort of connection has this connection management?

  • Handshake between sender and receiver before exchanging data
  • Agreeing to establish connection
  • Agreeing on connection parameters
A

TCP connection

93
Q

What sort of handshake is this:
- The client-side TCP first sends a special TCP segment to the server-side TCP
- Once the IP datagram containing the TCP SYN segment arrives at the server host, the server extracts the TCP SYN segment from the datagram, allocates the TCP buffers and variables to the connection, and sends a connection-granted segment to the client TCP
- Upon receiving SYNACK segment, the client also allocates buffers and variables to the connection. The client host then sends the server yet another segment; this last segment acknowledges the serv’s connection-granted segment

A

TCP 3-way handshake

94
Q

What stage in a TCP connection does this describe:

  • Client and server each close their side of the connection by:
  • Sending a TCP segment with FIN bit = 1
  • Responding to received FIN with ACK
  • On receiving FIN, ACK is combined with FIN
  • Simultaneous FIN exchanges are handled
  • Connection closes at server when ACK sent from client is received
A

TCP connection closing

95
Q

What does this describe:

Too many sources sending too much data too fast for network to handle

A

Congestion

96
Q

What are the two approaches to congestion control?

A

End-end congestion control
Network-assisted congestion control

97
Q

What sort of congestion control is described below?

  • No explicit feedback from network
  • Congestion inferred from observed loss and delay
  • Approach taken by TCP
A

End-end congestion control

98
Q

What sort of congestion control is described below?

  • Routers provide direct feedback to sending/receiving hosts with flows passing through congested router
  • May indicate congestion lever /explicitly set sending rate
  • TCP ECN, ATM, DECbit protocols
A

Network-assisted congestion control

99
Q

What are the three major components of the TCP Congestion-Control algorithm?

A

Slow start
Congestion avoidance
Fast recovery

100
Q

What major component of the TCP Congestion-control algorithm uses the Additive Increase, Multiplicative Decrease (AIMD) technique?

A

Congestion avoidance

101
Q

How does TCP Cubic work?

A

Increases sending rate, W, as a function of the cube of the distance between current time and point in time, K, when TCP window size will reach the sending rate at which congestion loss is detected

102
Q

What is the TCP fairness goal?

A

If K TCP sessions share the same bottleneck link of bandwidth R, each should have an average rate of R/K

103
Q

What does fairness in TCP mean?

A

Each connection gets and equal share of available bandwidth

104
Q

What are the major features of QUIC?

A

Connection-oriented and secure, streams, reliable and TCP friendly congestion-controlled data transfer

105
Q

What is QUIC?

A

Application-layer protocol on top of UDP that increases performance of HTTP

106
Q

How many handshakes does QUIC use to establish a connection?

107
Q

What does QUIC avoid by using streams and parallelism?

A

HOL blocking