In some circumstances, intermediate devices may lose state in a way that temporarily prevents the successful delivery of packets from a TCP peer. For example, a firewall may drop a NAT forwarding table entry. Since iPXE spends most of its time downloading files (and hence purely receiving data, sending only TCP ACKs), this can easily happen in a situation in which there is no reason for iPXE's TCP stack to generate any retransmissions. The temporary loss of connectivity can therefore effectively become permanent. Work around this problem by sending TCP keepalives after a period of inactivity on an established connection. TCP keepalives usually send a single garbage byte in sequence number space that has already been ACKed by the peer. Since we do not need to elicit a response from the peer, we instead send pure ACKs (with no garbage data) in order to keep the transmit code path simple. Originally-implemented-by: Ladi Prosek <lprosek@redhat.com> Debugged-by: Ladi Prosek <lprosek@redhat.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>tags/v1.20.1
|
|
||
378 |
|
378 |
|
379 |
|
379 |
|
380 |
|
380 |
|
|
381 |
|
|
|
382 |
|
|
|
383 |
|
|
|
384 |
|
|
|
385 |
|
|
|
386 |
|
|
|
387 |
|
|
|
388 |
|
|
381 |
|
389 |
|
382 |
|
390 |
|
383 |
|
391 |
|
|
|
||
113 |
|
113 |
|
114 |
|
114 |
|
115 |
|
115 |
|
|
116 |
|
|
|
117 |
|
|
116 |
|
118 |
|
117 |
|
119 |
|
118 |
|
120 |
|
|
|
||
177 |
|
179 |
|
178 |
|
180 |
|
179 |
|
181 |
|
|
182 |
|
|
180 |
|
183 |
|
181 |
|
184 |
|
182 |
|
185 |
|
|
|
||
284 |
|
287 |
|
285 |
|
288 |
|
286 |
|
289 |
|
|
290 |
|
|
287 |
|
291 |
|
288 |
|
292 |
|
289 |
|
293 |
|
|
|
||
380 |
|
384 |
|
381 |
|
385 |
|
382 |
|
386 |
|
|
387 |
|
|
383 |
|
388 |
|
384 |
|
389 |
|
385 |
|
390 |
|
|
|
||
394 |
|
399 |
|
395 |
|
400 |
|
396 |
|
401 |
|
|
402 |
|
|
|
403 |
|
|
|
404 |
|
|
397 |
|
405 |
|
398 |
|
406 |
|
399 |
|
407 |
|
|
|
||
801 |
|
809 |
|
802 |
|
810 |
|
803 |
|
811 |
|
|
812 |
|
|
|
813 |
|
|
|
814 |
|
|
|
815 |
|
|
|
816 |
|
|
|
817 |
|
|
|
818 |
|
|
|
819 |
|
|
|
820 |
|
|
|
821 |
|
|
|
822 |
|
|
|
823 |
|
|
|
824 |
|
|
|
825 |
|
|
|
826 |
|
|
|
827 |
|
|
|
828 |
|
|
|
829 |
|
|
|
830 |
|
|
|
831 |
|
|
|
832 |
|
|
|
833 |
|
|
|
834 |
|
|
|
835 |
|
|
|
836 |
|
|
|
837 |
|
|
804 |
|
838 |
|
805 |
|
839 |
|
806 |
|
840 |
|
|
|
||
1105 |
|
1139 |
|
1106 |
|
1140 |
|
1107 |
|
1141 |
|
|
1142 |
|
|
|
1143 |
|
|
|
1144 |
|
|
|
1145 |
|
|
1108 |
|
1146 |
|
1109 |
|
1147 |
|
1110 |
|
1148 |
|