bug-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #40293] tftp implementation doesn't re-transmit ACKs


From: Tyson Whitehead
Subject: [bug #40293] tftp implementation doesn't re-transmit ACKs
Date: Thu, 17 Oct 2013 18:41:27 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.160 Safari/537.22

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/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]