Week 6 - Transport Layer & Application Layer Flashcards

1
Q

What are the two types of transport over IP?

A

TCP:
- reliable
- controlled rate
- complex

UDP:
- unreliable
- uncontrolled
- simple

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

What are some of the functions of TCP?

A

TCP handles the communication after the IP packet has got it to the destination.

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

What are some of the functions of TCP?

A

TCP handles the communication after the IP packet has got it to the destination.

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

What is the 3 way handshake for TCP?

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

What is full-duplex?

A

Full-duplex data transmission means that data can be transmitted in both directions on a signal carrier at the same time. For example, on a local area network with a technology that has full-duplex transmission, one workstation can be sending data on the line while another workstation is receiving data. Full-duplex transmission implies a bidirectional line that can move data in both directions simultaneously.

TCP is full-duplex

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

How does TCP multiplexing work?

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

What is the Nagle algorithm?

A

A computer only sends data in a packet when the user writes more than the maximum segment size (MSS), this avoids packets being sent with few bytes.

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

What is the TCP sliding window?

A

It is used for flow control. The TCP sliding window determines the number of unacknowledged bytes, x, that one system can send to another. Two factors determine the value of x:
The size of the send buffer on the sending system
The size and available space in the receive buffer on the receiving system
The sending system cannot send more bytes than space that is available in the receive buffer on the receiving system. TCP on the sending system must wait to send more data until all bytes in the current send buffer are acknowledged by TCP on the receiving system.

On the receiving system, TCP stores received data in a receive buffer. TCP acknowledges receipt of the data, and advertises (communicates) a new receive window to the sending system. The receive window represents the number of bytes that are available in the receive buffer. If the receive buffer is full, the receiving system advertises a receive window size of zero, and the sending system must wait to send more data. After the receiving application retrieves data from the receive buffer, the receiving system can then advertise a receive window size that is equal to the amount of data that was read. Then, TCP on the sending system can resume sending data.

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

What is the slow start algorithm?

A

When transmission of data from sender to receiver begins in a network, there may be unknown conditions as to what the network can handle. Slow start helps to mitigate the pitfalls of this unknown by implementing the following functionality.

A sender begins transmissions to a receiver by slowly probing the network with a packet that contains its initial congestion window (cwnd).
The client receives the packet and replies with its maximum buffer size, also known as the receiver’s advertised window (rwnd).
If the sender receives an acknowledgement from the client, it then doubles the amount of packets to send to the client.
Step 3 is repeated until the sender no longer receives acknowledgment from the receiver which means either congestion is detected, or the client’s window limit has been reached.

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

How do we detect packet loss?

A

The ACK times out (a specific amount of time passes, configurable)
We receive 3 dupacks - 3 ack packets received after the original message (superseded). See picture for timeout calculation.

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

What is ensemble and temporal sharing in advanced TCP?

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

What are TCP connections closed?

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

What does a TCP packet look like?

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

What other TCP overrides can be applied?

A

TCP Selective Ack - Sender asks receiver to transmit additional data in response about what dataframes are queued/not yet processed
Delayed Acks.- receiver can delay sending acks to saves bandwidth and instead bundle them up
TCP keepalive - a tcp connection can be kept alive for months with no data flow - controversial.
TCP Cubic - Optimises TCP for high bandwith, high delay networks. It has two operating regions, the first where the window quickly ramps up to the window size before hte last congestion event, and the second when the convex growth prober for more bandwith, slowly at first then very rapidly.
Explicit congestion notifications - routers can tell end systems that the network is getting congested and therefore they should reduce their congestion windows.

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

What is TCP BBR?

A

Bottleneck Bandwidth and Round-trip propagation time (BBR) is a new congestion control algorithm developed at google.

For a given network connection, it uses recent measurements of the network’s delivery rate and round-trip time to build an explicit model that includes both the maximum recent bandwidth available to that connection, and its minimum recent round-trip delay. BBR then uses this model to control both how fast it sends data and the maximum amount of data it’s willing to allow in the network at any time.

Google used to use CUBIC.

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

What is UDP?

A

Applications with small data transfers where connection establishment is a big overhead.
Real-time applications with similar overhead issues - voice over ip, video-conferencing, telemetry
Multicast - has to use UDP

16
Q

What does a UDP packet look like?

A
17
Q
A
18
Q

What are elastic applications?

A

Elastic applications are those applications that can tolerate relatively
large delay variance - essentially the traditional data applications. They
work best with low delays but they do not become unusable when
delays increase or vary somewhat. Throughput may or may not be an
issue. The basic requirement for these applications generally is that that
they receive a reliable, ordered end-to-end data delivery service.
Interactive applications require near real-time, human interaction and
ideally would like to have delays of 200ms or less, but could possibly
tolerate slightly more. (telnet, x-windows)
Interactive bulk applications will also have similar requirements for
delay, but they may also have high throughput requirements. Generally,
the user is willing to tolerate a delay that is roughly proportional to the
volume of data being transferred. (FTP, HTTP)
Asynchronous applications may or may not involve bulk data (e.g. email), but they are prepared to tolerate much greater delay as they are
generally store-and-forward type applications and the user does not
expect anything close to real-time interaction. (Email, Voice-Mail)

19
Q

What are inelastic applications?

A

Inelastic applications are comparatively intolerant to delay, delay
variance, throughput variance and errors. If QoS is not sufficiently well
controlled, the applications become unusable.
Tolerant applications can be adaptive or non-adaptive. Tolerant adaptive applications may be able to:
* adapt to delay variation: a voice application might adapt to a decrease
in the average delay by dropping a few packets to allow the transmitter
to catch up with the receiver.
* adapt to data rate variation: a video application may be able to adjust
the encoding and trade quality against throughput.
Tolerant non-adaptive applications cannot adapt - but can still tolerate -
some QoS variation. A voice application may still be usable with a
measure of packet loss.
Intolerant applications cannot tolerate QoS variation - for example realtime control of a robot arm. Some may be rate-adaptive being able to adjust to detected changes in throughput, but others are totally nonadaptive.

20
Q

What’s the difference between SMTP and POP/IMAP?

A

SMTP is the sending protocol - basic proocol for elastic, asynchronous message sending where features like “message not deleted until receipient stores data in non-volatile storage” are supported.

POP is used by the client systems to pull received mail from the mail server. Generally use POP or IMAP.

21
Q

What is Persistent HTTP with pipelining?

A

Persistent HTTP means we keep TCP connection open using keep alive. THe default in HTTP/1.1 is persistent http with pipelining. With pipelining multiplt http requests can be sent over a single TCP connection without waiting for the corresponding responses.

22
Q

How does multiplexing apply in HTTP?

A

HTTP2 replaces persistent pipelining with multiplexing. HTTP2 allows for more advanced multiplexing (multiple messages single connection) with additional features, such as “order of request and reply can be different” and “prioritization”.

23
Q

What are other features of HTTP2?

A

Server Push - if a server thinks clients will need objects it will send them straight away (e.g. google logo in google search page) - reduces latency.
Header compression - not like request/response body gzip compression but rather its a technique of not sending the same headers again.

24
Q

What are middleboxes?

A

A middlebox is a computer networking device that transforms, inspects, filters, and manipulates traffic for purposes other than packet forwarding. Examples of middleboxes include firewalls, network address translators (NATs), load balancers, and deep packet inspection (DPI) boxes.

25
Q

What is RTP?

A

Real-Time Protocol (RTP) specific a packet structure for packets carrying audio and video. RTP packets are encapsulated in UDP segments.
RTP runs in the end systems. Interoperability: if two internet applications run RTP then they may be able to work together.

RTP extends UDP with payload type identification (MPEG2, Motion JPEG etc.), packet sequence numbering (incremental based on packet to detect packet loss), time-stamping.

26
Q

What is RTCP?

A

Real-Time Control Protocol. Works in conjunction with RTP. Each RTP session periodically transmits RTCP control packets to all otehr participants containing sender/receiver reports (statistics useful to application). Stats include number of packets sent, number lost, jitter etc. Feedback can be used to control performance.

27
Q

What is RTSP?

A

Real-TIme Stream Protocol
Several applications consist of serveral streams which need to be coordinated. Services like playback, fast-forwarding, pausing etc.

28
Q

What is DASH?

A

Dynamic Adaptive STreaming over HTTP
Better for NATs, Firewalls, CDNs.
1. Server sends to client a manifest
- containing all available encoding and speeds in xml
- url for each
- video, audio, subtitles etc.
2. Client chooses depending on local conditions.