Lecture 4 Flashcards
Transport Layer
What does a reliable channel do?
It appears to the sending and receiving processes as a logical connection at the transport layer, to transfer messages.
What is channels are data sent through?
Data needs to be sent through a reliable channel, but also needs to traverse an unreliable channel which the processes don’t know about.
What is the job of the RDT protocol?
To mask the unreliability of the underlying channel and deal with any issues that arise from said channel.
Name the 4 main commands that are called when data is sent through a channel?
rdt_send()
udt_send()
rdr_rcv()
deliver_data()
What does rdt_send() do?
It is called by the process from the sending side to send the data.
What does udt_send() do?
It is called by the RDTP (Reliable data transfer protocol) to send the packet.
What does rdt_rcv() do?
It is called when the packet arrives in the receiving side.
What does deliver_data() do?
It is called by the RDTP on the receiving side to send the data to the application for use.
How do we deal with corrupt packets?
We use positive or negative acknowledgement (ACK or NAK) to let the sending side know if the data was corrupt or not.
What happens if a ACK or NAK message gets corrupted during transmission?
It is treated as a NAK, and it calls for a retransmission of the packet. This can lead to packet duplication if the receiver actually did receive the first packet.
What to consider when building our RDT protocol, rdt v1.0?
It will use only unidirectional data transfer. We also assume that the underlying channel is reliable.
It uses the base method calls of rdt_send(), udt_send(), rdt_rcv(), and deliver_data() to send data.
What is wrong with rdt v1.0?
Data in packets can be corrupted or lost in transfer, rdt v1.0 does not deal with this.
What extra protocol capabilities does rdt v2.0 add to rdt v1.0?
Error detection - By sending extra checksum data
Receiver feedback - In the form of the receiver sending acknowledgements or non-acknowledgements of a received packet.
Retransmission - If a packet is corrupted or lost, the sender must retransmit it.
What is falwed about rdt v2.0?
Since ACK and NAK responses are packets, they can also get corrupted. This means the sender might not know if the ACK OR NAK sent by the receiver was correct.
What solution does rdt v2.1 implement to fix rdt v2.0 ACK/NAK problem?
It adds a sequence number to each packet sent. If the receiver receives a duplicate packet due to a corrupted ACK message, it knows its a duplicate because the sequence numbers match.
What does rdt v2.2 do differently from rdt v2.1?
It gets rid of NAK packets. Instead of sending a NAK it sends an ACK message for the last successfully received packet, which since the ACK for the successful packet has been sent before, it is treated as a duplicate and the sender then treats it as a NAK instead.
How does rdt v3.0 fix the problem of packets being lost?
The sbeder waits a specific amount of time for an ACK from the receiver. If it doesn’t receive one once the countdown has ended, the sender retransmits the packet.
If an ACK is received after the retransmission, the sender will treat the ACK as a duplicate.