URL: <http://savannah.gnu.org/bugs/?40293>
Summary: tftp implementation doesn't re-transmit ACKs Project: GNU GRUB Submitted by: twhitehead Submitted on: Thu 17 Oct 2013 06:41:26 PM GMT Category: Network Severity: Major Priority: 5 - Normal Item Group: None Status: None Privacy: Public Assigned to: None Originator Name: Originator Email: Open/Closed: Open Discussion Lock: Any Release: Release: Bazaar - trunk Reproducibility: None Planned Release: None _______________________________________________________ Details: Description of problem: Grub2's TFTP implementation does not send another ACK upon receiving the last data packet a second time. This results in the TFTP transfer breaking down in the face of packet loss and ending in a timeout error. This looks like so server -> data 1 -> grub grub -> ack 1 -> server server -> data 2 -> grub grub -> ack 2 -> server . . . server -> data k -> grub grub -> ack k -> (lost in the network) server -> data k -> grub server -> data k -> grub server -> data k -> grub server -> data k -> grub . . . until Grub reports a timeout error waiting for data k+1. The relevant part of RFC 1350 is (Section 2 -- Overview) "If a packet gets lost in the network, the intended recipient will timeout and may retransmit his last packet (which may be data or an acknowledgment), thus causing the sender of the lost packet to retransmit that lost packet. ... Notice that both machines involved in a transfer are considered senders and receivers. One sends data and receives acknowledgments, the other sends acknowledgments and receives data." http://www.ietf.org/rfc/rfc1350.txt I'm attaching a patch to get grub to re-transmit the last ack upon receiving the last data packet again. It works for me. _______________________________________________________ File Attachments: ------------------------------------------------------- Date: Thu 17 Oct 2013 06:41:26 PM GMT Name: tftp-ack.patch Size: 3kB By: twhitehead <http://savannah.gnu.org/bugs/download.php?file_id=29394> _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?40293> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/ _______________________________________________ Bug-grub mailing list Bug-grub@gnu.org https://lists.gnu.org/mailman/listinfo/bug-grub