Pipelining, Flow Control and TCP Flashcards
What are ACKs?
Acknowledgements. This tells the sender that the received packet is okay
What are NAKs?
Negative acknowledgments. This tells the sender that the packet had errors
What happens if the sender recieves a NAK?
The sender retransmits the packet that had the error.
What is ARQ?
Automatic repeat reQuest protocol. Used to resent packets that had errors in them.
What are the issues with acknowledgements?
> What is the ACK/NAK messages are corrupted?
> What if a packet is lost?
> Chance of duplication and out of order delivery.
What is the protocol used during reliable data transfer protocol?
Sender: Sends packet
Receiver: Sends ACK
Sender: Waits ‘reasonable’ amount of time to get ACK. When ACK received it sends the next packet. [IMAGE]
What is the protocol used during reliable data transfer protocol when a packet is lost?
Sender: Sends packet *Packet lost*
Receiver: Does NOT send ACK
Sender: Waits ‘reasonable’ amount of time to get ACK. When no ACK is received and the timer times out then it resents the packet. [IMAGE]
What is the protocol used during reliable data transfer protocol when an acknowledgment is lost?
Sender: Sends packet
Receiver: Send ACK *ACK Lost*
Sender: Waits ‘reasonable’ amount of time to get ACK. When no ACK is received and the timer times out then it resends the packet.
Receiver: Receives packet and detects duplicate packets. The detection would be because sequence numbers may be used. [IMAGE]
What happens when there is a premature timeout of the timer for the protocol used during reliable data transfer protocol because an ACK takes too long to arrive?
Sender: Sends packet
Receiver: Send ACK *ACK Takes a while*
Sender: Waits ‘reasonable’ amount of time to get ACK. When no ACK is received and the timer times out then it resends the packet.
Sender: Recieves ACK The timings get messed up: [IMAGE 1]
What is the equation to calculate the utilization of a link from a single sender sending a single packet and receiving ACK? How can this be turned into a percentage? [IMAGE]
U[sender] = (L/R) / ( RTT + (L/R) )
% = 100 × (L/R) / ( RTT + (L/R) )
U[sender] = Usage
L = Packet size
R = Rate of transmission
RTT = 2×Propagation delay
For a large file transfer how can the implementation of ACK be improved for better link utilisation and for faster file transfer speeds?
Pipelining is used. Without it, waiting the acknowledgments of a single packet before sending the next takes too long.
What is pipelining?
This is where you send multiple packets in a row and then wait for multiple ACKs.
This increases the amount of utilisation of the link.
Once each packet is released them an individual ACK is sent for each packet. When the sender receives an ACK it can send another packet. [IMAGE 2]
What is the equation to calculate utilisation when pipelining is used?
U[sender] = N × (L/R) / ( RTT + (L/R) )
% = 100 × N × (L/R) / ( RTT + (L/R) )
U[sender] = Usage
N = Number of packets
L = Packet size
R = Rate of transmission
RTT = 2×Propagation delay
What is the rule for utilisation with multiple packets?
N packet pipelining multiplies the usage by N when compared to single packet pipelining.
What is a window?
This is the number of packets that are not ACKed at any given time and are being moved between sender and receiver. [IMAGE 3]