Chapter 3: Transport Layer 3.1 - 3.4 Flashcards

1
Q

Just for reminder , what are the 5 layers in protocol stack ?

A

From top to bottom : Application, Transport, Network, Link, Physical

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

How is transport layer differs from network layer?

A

Transport layer protocol provides logical communication between processes running on different hosts
Network layer protocol provides logical communication between hosts

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

Recall two distinct transport layer protocol UDP and TCP, what are the characteristics of these protocols?

A

UDP : unreliable, connectionless service

TCP : reliable, connection oriented service

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

What is the E2E(End to End) argument ?

A

“functions placed at lower levels may be
redundant or of little value when compared to the cost of providing them
at that low level.”

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

Examples of E2E:

A

Usually are things that are difficult to implement at low levels:
error detection, duplicate supression, FIFO ordering

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

E2E Pros and Cons:

A

Pros : reduces network complexity, reduces need for redundant checks, simplifies diagnosis of network bugs, keeps authority over complex functions local
Cons: more responsibility lies within the development

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

Briefly explains Multiplexing/Demultiplexing

A

Multiplexing (at sender): handle data from multiple sockets , add transport header
Demultiplexing (at receiver): use header info to deliver received segments to correct socket

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

Demultiplexing works by receiving IP datagrams, then do what with that?

A

host uses IP address & port numbers from each datagrams and direct segment to appropriate socket

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

How connectionless demultiplexing works ?

A

hosts creates datagram to send into UDP socket, must specified port and IP. Then when receiving host receives segment, check the port and IP address and directs appropriately.

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

In, connection-oriented demultiplexing, requires TCP socket, which requires 4-tuple:

A
  • Source IP address
  • Source port number
  • Destination IP address
  • Destination IP number
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is demux in connection oriented demultiplexing?

A

receiver uses all four values to direct segment to appropriate socket

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

What is http server default port number ?

A

80

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

There is no handshaking between server and client in UDP , and each segment is handled independently, which is why UDP is ___

A

connectionless

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

UDP segment header consists of

A

source port, dest port, length, checksum, application data

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

What is UDP checksum used for?

A

It is used for detecting error in transmitted segments

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

Checksum works by (for both sender and receiver)

A

Sender : addition of one’s complement of one segment(wrap around also has to be added if exists)

receiver: check if computed sum equals checksum field value, if not same error detected

17
Q

In Socket API, what function must TCP servers do that clients don’t do?

A

bind() : bind port number to server
listen(): listen for incoming requests
accept() : waiting for incoming request to be accepted, and create new sockets in return

18
Q

what function does a client must do ?

A

socket() (so is server) and connect()

19
Q

Principle of reliable data transfer says that Service _____ provided to upper layer entities is that of a reliable channel through which data can be transferred

A

abstraction

20
Q

Before starting in reliable data transfer protocol, some abbreviations that you need to know:

A
  1. rdt_send : called by sender when sending data to receiver upper layer
  2. udt_send : called by rdt to transfer packet over unreliable channel
  3. deliver_data : deliver data to upper layer
  4. rdt_rcv : called when packet arrives on receiver side of channel
21
Q

Using rdt_send, udt_send, rdt_rcv, and deliver_data , explains how rdt works over unreliable channel

A

steps (starting from sender to receiver):
rdt_send breaks down data to packet , and send it to udt_send, sending packets through unreliable channel. rdt_rcv then will reliably receive packets, finally deliver data will reliably deliver data to receiver

22
Q

Explain rdt 1.0 process

A

rdt 1.0 : reliable data transfer over reliable channel (no bit errors, packet loss ). Dumb because there is no problem to be solved

23
Q

Explains rdt 2.0 along with how errors are detected, resolved, and retransmitted in this protocol

A

over unreliable channel, bits error can occurs but packet loss can’t.
detect errors by checksum
resolve errors by acknowledgment ACK(+) or NACK(-)
retransmission is if ACK, send next packet , if NACK send previous packet

24
Q

While sender is on wait for ACK or NAK, it cannot receive data from upper layer, which is why protocols such as rdt 2.0 is called ______ protocols

A

stop and wait

25
Q

1 fatal flaw in rdt 2.0 is the fact that ACK or NAK can be corrupted, what is the solution for this problem?

A

The solution is to resend if ACK or NAK is garbled, but that creates a problem of duplicate in receiving side. To solve duplicate problem, we add a new field, sequence number (usually 1 bit to indicate if a packet is a retransmission, 0 if ok 1 if retransmission). That is where rdt 2.1 comes in.

26
Q

How rdt 2.2 works in comparison to 2.1

A

same functionality with 2.1 , but we only use ACKs only.. Instead of NAK, receiver sends ACK for last packet and its sequence number.

27
Q

explains rdt 3.0 and how to resolve loss packet problem in this protocol. (remember checksum, sequence num, ACKs will not be enough to solve the problem)

A

Sending data over unreliable channel where bits error and packet loss occurs.
To solve packet loss, sender wait “reasonable” amount of time for ACK, if timeout and no ACK received, sender will send packet again.
If packet is just delayed but not lost, remember that sequence num got this handled

28
Q

rdt 3.0 is ok, but it is slow and can causes although very rare out of order delivery. There are two other protocols GBN(Go Back N) and SR(Selective repeat), explains these protocols.

A

GBN : sender allowed to transfer multiple packets without acknowledgements but constraints to N number of unacknowledged packets in the pipeline. If after agreed upon of time acknowledgements haven’t been received then sender transmit all frames again.

SR : sender retransmit only packets that it suspects received an error at the receiver. similar to GBN, a limit of N is declared in the window, but unlike GBN it doesn’t have to retransmit all packet because some have been individually acknowledged. SO in short sender will send/retransmit packet for which NACK is received