While a client is downloading a file from the TFTP server, if a data packet from the server get lost, the client will send acks with the last good received data packet number, but the server will ignore the number and keep sending following data packets, despite one packet is missing for the client. Check tshark log below:
6 0.466264295 127.0.0.1 → 127.0.0.1 TFTP 101 Read Request, File: f100k, Transfer type: octet, blksize=1468, tsize=0, windowsize=16, timeout=1
7 0.467073448 127.0.0.1 → 127.0.0.1 TFTP 61 Option Acknowledgement, blksize=1468, =, =
8 0.467141328 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 1
9 0.467353412 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 0
10 0.467452560 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 2
11 0.467867442 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 1
12 0.467955963 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 2
13 0.468169455 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 3
14 0.468261700 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 3
15 0.468287480 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 4
16 0.468304213 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 4
17 0.468318758 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 5
18 0.468348409 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 5
19 0.468361356 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 6
20 0.468397769 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 6
21 0.468401552 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 7
22 0.468445730 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 7
23 0.468475749 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 8
24 0.468524534 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 8
25 0.468529251 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 9
26 0.468545597 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 9
27 0.468558458 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 10
28 0.468571784 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 10
29 0.468574212 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 11
30 0.468612964 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 11
31 0.468615710 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 12
32 0.468650898 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 12
33 0.468671720 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 13
34 0.468693038 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 14
35 0.468704803 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 13
36 0.468739146 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 15
37 0.468740696 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 14
38 0.468756060 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 16
39 0.468757283 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 15
40 0.468769877 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 16
41 0.468773296 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 17
42 0.468786553 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 17
43 0.468788962 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 18
44 0.468798479 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 19
45 0.468807938 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 18
46 0.468836238 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 20
47 0.468843225 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 19
48 0.468869973 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 21
49 0.468877981 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 20
50 0.468917742 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 21
51 0.468920165 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 22
52 0.468948366 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 23
53 0.468955422 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 22
54 0.468982302 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 24
55 0.468989763 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 23
56 0.469016199 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 25
57 0.469029917 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 24
58 0.469057630 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 26
59 0.469064358 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 25
60 0.469098371 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
61 0.469125693 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 28 <==== here missing data 27
62 0.469153508 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
63 0.469181459 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 29
64 0.469231726 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
65 0.469261241 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 30
66 0.469305261 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
67 0.469334473 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 31
68 0.469370281 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
69 0.469397756 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 32
70 0.469432345 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
71 0.469459294 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 33
72 0.469494346 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
73 0.469522906 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 34
74 0.469569092 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
75 0.469596870 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 35
76 0.469633391 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
77 0.469660490 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 36
78 0.469695136 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
79 0.469723269 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 37
80 0.469770362 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
81 0.469797414 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 38
82 0.469832246 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
83 0.469859083 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 39
84 0.469894117 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
85 0.469922786 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 40
86 0.469965339 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
87 0.469992333 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 41
88 0.470027985 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
89 0.470056084 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 42
90 0.470097993 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
91 0.470125318 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 43
92 0.470165742 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
93 0.470199707 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 44
94 0.470240091 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
95 0.470269523 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 45
96 0.470315142 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
97 0.470342465 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 46
98 0.470379120 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
99 0.470408731 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 47
100 0.470449974 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
101 0.470477888 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 48
102 0.470520276 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
103 0.470546901 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 49
104 0.470582457 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
105 0.470609367 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 50
106 0.470644327 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
107 0.470672557 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 51
108 0.470714507 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
109 0.470741287 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 52
110 0.470775905 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
111 0.470802844 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 53
112 0.470838726 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
113 0.470873858 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 54
114 0.470911041 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
115 0.470930941 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 55
116 0.470938099 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
117 0.470951059 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 56
118 0.471002904 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
119 0.471030318 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 57
120 0.471067383 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
121 0.471095626 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 58
122 0.471138637 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
123 0.471166772 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 59
124 0.471222980 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
125 0.471250459 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 60
126 0.471290259 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
127 0.471317262 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 61
128 0.471353492 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
129 0.471381616 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 62
130 0.471422741 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
131 0.471449833 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 63
132 0.471484881 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
133 0.471511611 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 64
134 0.471551595 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
135 0.471579598 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 65
136 0.471618660 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
137 0.471645346 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 66
138 0.471680451 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
139 0.471708578 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 67
140 0.471751174 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
141 0.471777781 127.0.0.1 → 127.0.0.1 TFTP 1514 Data Packet, Block: 68
142 0.471813128 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
143 0.471840993 127.0.0.1 → 127.0.0.1 TFTP 222 Data Packet, Block: 69 (last)
144 0.471884162 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
145 5.790366991 127.0.0.1 → 127.0.0.1 TFTP 46 Acknowledgement, Block: 26
84397> tftp block 5376 reading 1468 bytes ...
84397> SND ^@: header size: 4, data len: 1468 ...
84397> tftp ACK, block # 20
84397> ACK block 20, file still open ...
84397> tftp block 5632 reading 1468 bytes ...
84397> SND ^@: header size: 4, data len: 1468 ...
84397> tftp ACK, block # 21
84397> ACK block 21, file still open ...
84397> tftp block 5888 reading 1468 bytes ...
84397> SND ^@: header size: 4, data len: 1468 ...
84397> tftp ACK, block # 22
84397> ACK block 22, file still open ...
84397> tftp block 6144 reading 1468 bytes ...
84397> SND ^@: header size: 4, data len: 1468 ...
84397> tftp ACK, block # 23
84397> ACK block 23, file still open ...
84397> tftp block 6400 reading 1468 bytes ...
84397> SND ^@: header size: 4, data len: 1468 ...
84397> tftp ACK, block # 24
84397> ACK block 24, file still open ...
84397> tftp block 6656 reading 1468 bytes ...
84397> SND ^@: header size: 4, data len: 1468 ...
84397> tftp ACK, block # 25
84397> ACK block 25, file still open ...
84397> tftp block 6912 reading 1468 bytes ...
84397> SND ^@: header size: 4, data len: 1468 ...
84397> tftp ACK, block # 26
84397> ACK block 26, file still open ...
84397> tftp block 7168 reading 1468 bytes ...
84397> SND ^@: header size: 4, data len: 1468 ...
84397> tftp ACK, block # 26
84397> ACK block 26, file still open ...
84397> tftp block 7424 reading 1468 bytes ...
84397> SND ^@: header size: 4, data len: 1468 ...
84397> tftp ACK, block # 26
84397> ACK block 26, file still open ...
84397> tftp block 7680 reading 1468 bytes ...
84397> SND ^@: header size: 4, data len: 1468 ...
84397> tftp ACK, block # 26
84397> ACK block 26, file still open ...
84397> tftp block 7936 reading 1468 bytes ...
84397> SND ^@: header size: 4, data len: 1468 ...
84397> tftp ACK, block # 26
84397> ACK block 26, file still open ...
84397> tftp block 8192 reading 1468 bytes ...
84397> SND ^@: header size: 4, data len: 1468 ...
84397> tftp ACK, block # 26
84397> ACK block 26, file still open ...
84397> tftp block 8448 reading 1468 bytes ...
84397> SND ^@: header size: 4, data len: 1468 ...
84397> tftp ACK, block # 26
84397> ACK block 26, file still open ...
84397> tftp block 8704 reading 1468 bytes ...
84397> SND ^@: header size: 4, data len: 1468 ...
84397> tftp ACK, block # 26
84397> ACK block 26, file still open ...
Also, it seems that there is missing acks in the log, but it does not prevent the transfer to continue.
While a client is downloading a file from the TFTP server, if a data packet from the server get lost, the client will send acks with the last good received data packet number, but the server will ignore the number and keep sending following data packets, despite one packet is missing for the client. Check tshark log below:
Here is the relevant part of uftpd log:
Also, it seems that there is missing acks in the log, but it does not prevent the transfer to continue.