la5nta / wl2k-go

A Winlink framework for Go.
https://getpat.io
MIT License
50 stars 20 forks source link

ardrop: Data lost in transmission #16

Closed martinhpedersen closed 7 years ago

martinhpedersen commented 8 years ago

I am experiencing data loss while transferring data between two wl2k-go nodes over ardop.

Running ARDOP_WIN_0.4.1 under Wine.

The ARDOP TNCs are not reporting any CRCFault and I have verified that the data is actually written to the TNC as valid ARQ type data-frames. It seems likely this is an ARDOP bug.

I have tested multiple times with the same traffic (message) and the error occurs at arbitrary/random positions in the data stream.

Using 1000MAX ARQ bandwidth for the session over VHF (single sideband).

Below is a data dump (in decimals) showing content of data-frames sent/received. 2 125 is the message chunk headers in b2f.

Data sent (data not showing up at the remote is strikethrough)

2 125 18 238 174 29 238 155 79 216 147 219 161 126 238 91 207 42 144 63 215 153 170 162 35 238 220 8 152 118 239 102 90 71 90 120 71 224 106 239 231 241 62 71 79 205 211 169 249 47 123 253 145 61 67 223 186 181 11 146 63 7 7 223 46 216 69 120 124 10 156 159 165 127 125 250 18 63 201 38 239 5 55 63 219 70 205 203 203 46 102 154 179 123 83 193 137 62 182 180 4 128 238 115 150 165 65 210 6 0 21 50 165 145 176 189 101 165 175 248 1 170 80 26 96 158 211 2 125 170 183 215 179 223 112 61 31 54 103 142 21 229 66 129 6 194 84 166 125 1 196 249 181 52 167 253 147 154 155 173 230 227 211 116 201 77 232 231 147 246 114 247 255 111 5 107 26 33 162 235 34 191 69 130 25 3 178 176 94 89 108 59 86 94 173 198 218 251 20 153 187 241 18 220 139 72 10 33 84 161 213 147 31 236 251 110 24 130 151 102 65 38 186 120 77 169 199 176 70 70 240 204 38 130 67 94 9 127 227 135 250 95 103 252 142 102 45 59 114 231 139 245 6 92 2 125 56 27 185 177 235 102 169 5 231 206 219 99 255 83 175 71 223 78 253 131 164 49 53 63 50 210 211 202 150 39 137 58 253 39 218 68 184 134 85 250 64 51 13 160 52 163 210 120 230 120 96 214 75 82 122 78 211 220 144 116 117 210 22 133 180 58 186 221 69 2 148 3 37 108 241 77 2 94 17 208 91 45 175 36 219 140 143 217 246 149 136 49 221 26 242 37 203 164 11 28 99 11 27 39 2 148 101 29 158 191 19 120 88 29 147 66 204 13 43 47 207 83 112 59 155 2 125 82 27 36 206 2 171 120 196 253 93 100 171 126 203 153 211 100 245 127 78 141 34 183 173 3 53 46 222 107 225 184 157 220 221 39 198 56 212 222 107 61 205 10 121 0 126 140 136 48 200 111 236 20 31 64 38 35 111 130 2 62 102 69 137 230 47 255 56 205 186 71 239 50 71 223 203 35 209 76 121 165 180 26 34 15 65 119 164 97 104 166 100 184 240 213 55 170 163 140 131 89 202 228 188 62 169 26 134 204 162 106 76 68 27 15 135 53 178 232 98 24 211 254 185 0 2 125 35 157 212 159 237 102 135 233 225 57 156 104 112 42 89 191 86 90 46 6 3 128 214 115 208 78 159 205 124 83 199 178 28 214 164 15 231 120 102 111 71 134 53 75 115 246 224 178 49 100 19 194 199 134 69 20 120 222 98 196 231 134 207 123 125 66 202 132 97 175 93 39 172 86 78 61 201 20 17 73 13 61 6 91 199 87 95 40 252 121 20 191 151 108 1 50 75 21 0 195 252 227 228 48 96 115 138 208 17 116 192 10 223 149 47 221 17 137 215 99 251 254 253 107 67

Data received (missing data location is strikethrough)

2 125 18 238 174 29 238 155 79 216 147 219 161 126 238 91 207 42 144 63 215 153 170 162 35 238 220 8 152 118 239 102 90 71 90 120 71 224 106 LOST DATA 134 53 75 115 246 224 178 49 100 19 194 199 134 69 20 120 222 98 196 231 134 207 123 125 66 202 132 97 175 93 39 172 86 78 61 201 20 17 73 13 61 6 91 199 87 95 40 252 121 20 191 151 108 1 50 75 21 0 195 252 227 228 48 96 115 138 208 17 116 192 10 223 149 47 221 17 137 215 99 251 254 253 107 67

martinhpedersen commented 8 years ago

Data dump of TNC <-> host communication, full frames.

Missing data marked with strikethrough, context data in bold.

raw data sent to TNC (sender side):

2015/10/22 21:44:49 data sent: [68 58 0 127 2 125 18 238 174 29 238 155 79 216 147 219 161 126 238 91 207 42 144 63 215 153 170 162 35 238 220 8 152 118 239 102 90 71 90 120 71 224 106 239 231 241 62 71 79 205 211 169 249 47 123 253 145 61 67 223 186 181 11 146 63 7 7 223 46 216 69 120 124 10 156 159 165 127 125 250 18 63 201 38 239 5 55 63 219 70 205 203 203 46 102 154 179 123 83 193 137 62 182 180 4 128 238 115 150 165 65 210 6 0 21 50 165 145 176 189 101 165 175 248 1 170 80 26 96 158 211 128 211] 2015/10/22 21:44:48 data sent: [68 58 0 127 2 125 162 247 239 19 205 114 202 5 148 239 18 149 104 78 12 215 101 7 86 233 94 190 142 73 245 28 39 183 161 77 205 179 126 253 191 75 163 217 220 146 48 214 236 13 254 31 53 15 249 230 189 15 165 247 196 251 113 176 143 131 55 21 215 148 77 17 67 185 239 106 153 51 72 51 240 228 155 237 202 46 88 210 253 223 6 187 153 219 231 230 124 15 51 249 252 229 50 110 102 9 132 46 169 166 39 44 40 166 231 120 163 112 95 241 185 24 41 247 170 189 1 166 48 44 189 35 157] 2015/10/22 21:44:49 data sent: [68 58 0 127 2 125 162 105 89 36 1 75 110 27 134 126 188 229 253 51 231 238 127 103 37 85 238 83 40 175 13 133 19 21 67 119 56 30 110 64 167 236 61 162 12 127 101 116 44 121 57 130 31 61 189 107 111 61 67 54 97 244 32 223 155 226 251 93 59 69 200 73 188 8 71 113 61 200 189 88 96 92 156 55 5 92 201 184 237 119 244 144 16 164 67 238 119 227 123 210 223 2 45 27 212 241 248 240 189 10 182 98 239 49 73 156 251 238 96 178 131 130 118 106 73 11 28 96 239 214 236 57 172] 2015/10/22 21:44:49 data sent: [68 58 0 127 2 125 200 240 104 255 49 139 64 125 189 78 248 174 41 11 231 38 97 196 80 148 197 112 245 144 142 238 169 187 0 125 12 98 4 81 230 198 104 140 21 127 207 196 168 182 152 207 83 76 44 174 205 151 187 102 118 41 7 210 38 107 210 23 194 76 164 172 47 160 101 228 110 90 166 179 215 147 13 162 104 25 12 79 215 156 208 223 119 129 160 219 236 25 213 83 190 150 235 72 220 151 138 235 120 158 157 121 204 25 89 160 34 65 2 180 171 57 155 179 32 137 212 204 177 133 228 63 148] 2015/10/22 21:44:49 data sent: [68 58 0 127 2 125 97 224 39 127 106 83 171 17 195 98 59 144 10 59 206 21 95 219 130 193 210 181 98 169 164 51 57 199 77 114 180 175 109 130 169 63 233 42 207 163 195 16 239 104 241 252 90 218 57 223 109 188 254 176 155 184 244 230 123 233 223 44 75 6 181 126 218 145 121 139 81 136 228 91 165 156 3 107 83 106 73 240 159 46 171 224 34 171 235 63 150 139 7 71 239 10 4 83 228 78 210 245 36 102 104 121 224 194 130 157 221 148 13 58 142 129 37 169 186 4 251 243 223 183 46 211 222] 2015/10/22 21:44:49 data sent: [68 58 0 127 2 125 18 238 174 29 238 155 79 216 147 219 161 126 238 91 207 42 144 63 215 153 170 162 35 238 220 8 152 118 239 102 90 71 90 120 71 224 106 239 231 241 62 71 79 205 211 169 249 47 123 253 145 61 67 223 186 181 11 146 63 7 7 223 46 216 69 120 124 10 156 159 165 127 125 250 18 63 201 38 239 5 55 63 219 70 205 203 203 46 102 154 179 123 83 193 137 62 182 180 4 128 238 115 150 165 65 210 6 0 21 50 165 145 176 189 101 165 175 248 1 170 80 26 96 158 211 128 211] 2015/10/22 21:44:49 data sent: [68 58 0 127 2 125 170 183 215 179 223 112 61 31 54 103 142 21 229 66 129 6 194 84 166 125 1 196 249 181 52 167 253 147 154 155 173 230 227 211 116 201 77 232 231 147 246 114 247 255 111 5 107 26 33 162 235 34 191 69 130 25 3 178 176 94 89 108 59 86 94 173 198 218 251 20 153 187 241 18 220 139 72 10 33 84 161 213 147 31 236 251 110 24 130 151 102 65 38 186 120 77 169 199 176 70 70 240 204 38 130 67 94 9 127 227 135 250 95 103 252 142 102 45 59 114 231 139 245 6 92 161 124] 2015/10/22 21:44:49 data sent: [68 58 0 127 2 125 56 27 185 177 235 102 169 5 231 206 219 99 255 83 175 71 223 78 253 131 164 49 53 63 50 210 211 202 150 39 137 58 253 39 218 68 184 134 85 250 64 51 13 160 52 163 210 120 230 120 96 214 75 82 122 78 211 220 144 116 117 210 22 133 180 58 186 221 69 2 148 3 37 108 241 77 2 94 17 208 91 45 175 36 219 140 143 217 246 149 136 49 221 26 242 37 203 164 11 28 99 11 27 39 2 148 101 29 158 191 19 120 88 29 147 66 204 13 43 47 207 83 112 59 155 100 123] 2015/10/22 21:44:49 data sent: [68 58 0 127 2 125 82 27 36 206 2 171 120 196 253 93 100 171 126 203 153 211 100 245 127 78 141 34 183 173 3 53 46 222 107 225 184 157 220 221 39 198 56 212 222 107 61 205 10 121 0 126 140 136 48 200 111 236 20 31 64 38 35 111 130 2 62 102 69 137 230 47 255 56 205 186 71 239 50 71 223 203 35 209 76 121 165 180 26 34 15 65 119 164 97 104 166 100 184 240 213 55 170 163 140 131 89 202 228 188 62 169 26 134 204 162 106 76 68 27 15 135 53 178 232 98 24 211 254 185 0 135 48] 2015/10/22 21:44:49 data sent: [68 58 0 127 2 125 35 157 212 159 237 102 135 233 225 57 156 104 112 42 89 191 86 90 46 6 3 128 214 115 208 78 159 205 124 83 199 178 28 214 164 15 231 120 102 111 71 134 53 75 115 246 224 178 49 100 19 194 199 134 69 20 120 222 98 196 231 134 207 123 125 66 202 132 97 175 93 39 172 86 78 61 201 20 17 73 13 61 6 91 199 87 95 40 252 121 20 191 151 108 1 50 75 21 0 195 252 227 228 48 96 115 138 208 17 116 192 10 223 149 47 221 17 137 215 99 251 254 253 107 67 190 67]

Parsed ARQ and control frames from TNC at receiving end:

2015/10/22 21:46:20 frame {ARQ [253 191 75 163 217 220 146 48 214 236 13 254 31 53 15 249 230 189 15 165 247 196 251 113 176 143 131 55 21 215 148 77 17 67 185 239 106 153 51 72 51 240 228 155 237 202 46 88 210 253 223 6 187 153 219 231 230 124 15 51 249 252 229 50 110 102 9 132 46 169 166 39 44 40 166 231 120 163 112 95 241 185 24 41 247 170 189 1 166 48 44 189 2 125 162 105 89 36 1 75 110 27 134 126 188 229 253 51 231 238 127 103 37 85 238 83 40 175 13 133 19 21 67 119 56 30 110 64 167 236 61 162 12 127 101 116 44 121 57 130 31 61 189 107 111 61 67 54 97 244 32 223 155 226 251 93 59 69 200 73 188 8 71 113 61 200 189 88 96 92 156 55 5 92 201 184 237 119 244 144 16 164 67 238 119 227 123 210 223 2 45 27 212 241 248 240 189 10 182 98 239 49 73 156 251 238 96 178 131 130 118 106 73 11 28 96 239 214 236 2 125 200 240 104 255 49 139 64 125 189 78 248 174 41 11 231 38 97 196 80 148 197 112 245 144 142 238 169 187 0 125 12 98 4 81 230 198 104 140 21 127 207 196 168 182 152 207 83 76 44 174 205 151 187 102 118 41 7 210 38 107 210 23 194 76 164 172 47 160 101 228 110 90 166 179 215 147 13 162 104 25 12 79 215 156 208 223 119 129 160 219 236 25 213 83 190 150 235 72 220 151 138 235 120 158 157 121 204 25 89 160 34 65 2 180 171 57 155 179 32 137 212 204 177 133 228 2 125 97 224 39 127 106 83 171 17 195 98 59 144 10 59 206 21 95 219 130 193 210 181 98 169 164 51 57 199 77 114 180 175 109 130 169 63 233 42 207 163 195 16 239 104 241 252 90 218 57 223 109 188 254 176 155 184 244 230 123 233 223 44 75 6 181 126 218 145 121 139 81 136 228 91 165 156 3 107 83 106 73 240 159 46 171 224 34 171 235 63 150 139 7 71 239 10 4 83 228 78 210 245 36 102 104 121 224 194 130 157 221 148 13 58 142 129 37 169 186 4 251 243 223 183 46 2 125 18 238 174 29 238 155 79 216 147 219 161 126 238 91 207 42 144 63 215 153 170 162 35 238 220 8 152 118 239 102 90 71 90 120 71 224 106]} 2015/10/22 21:46:20 --> RDY 2015/10/22 21:46:21 frame PTT TRUE 2015/10/22 21:46:21 --> RDY 2015/10/22 21:46:21 frame PTT FALSE 2015/10/22 21:46:21 --> RDY 2015/10/22 21:46:27 frame PTT TRUE 2015/10/22 21:46:27 --> RDY 2015/10/22 21:46:27 frame PTT FALSE 2015/10/22 21:46:27 --> RDY 2015/10/22 21:46:28 frame BUFFER 0 2015/10/22 21:46:28 --> RDY 2015/10/22 21:46:33 frame PTT TRUE 2015/10/22 21:46:33 --> RDY 2015/10/22 21:46:33 frame PTT FALSE 2015/10/22 21:46:33 --> RDY 2015/10/22 21:46:38 frame BUFFER 0 2015/10/22 21:46:38 --> RDY 2015/10/22 21:46:39 frame {ARQ [134 53 75 115 246 224 178 49 100 19 194 199 134 69 20 120 222 98 196 231 134 207 123 125 66 202 132 97 175 93 39 172 86 78 61 201 20 17 73 13 61 6 91 199 87 95 40 252 121 20 191 151 108 1 50 75 21 0 195 252 227 228 48 96 115 138 208 17 116 192 10 223 149 47 221 17 137 215 99 251 254 253 107 67 2 125 120 180 126 27 12 52 11 16 29 163 71 62 112 158 245 149 42 150 207 65 82 127 245 154 63 174 255 132 147 48 245 198 155 179 56 59 245 229 46 148 243 167 215 136 27 237 254 121 178 176 32 48 41 255 30 214 254 197 150 194 221 207 207 38 165 214 199 108 114 110 49 203 23 35 150 76 83 47 100 195 117 15 217 92 98 239 155 34 132 64 60 217 248 57 77 38 170 180 185 48 185 8 22 193 81 229 150 166 249 199 39 124 70 207 1 122 43 204 38 145 31 6 181 8 134 2 125 251 245 185 208 61 126 247 167 106 128 114 161 86 160 61 233 223 200 207 49 78 199 235 242 79 206 164 164 9 16 114 26 110 189 160 202 242 232 88 87 211 199 36 37 157 174 35 148 125 234 250 128 194 234 31 71 210 252 83 140 98 74 132 186 161 190 77 234 135 41 112 71 205 237 138 94 39 164 135 129 142 236 129 61 108 210 252 37 225 4 103 129 34 237 185 236 188 44 62 14 135 165 28 225 180 51 144 152 77 138 162 179 23 31 120 16 207 251 149 119 230 100 178 94 203 2 125 131 92 49 43 50 175 250 36 4 169 108 70 220 233 82 93 109 26 190 74 202 9 107 31 200 248 212 199 93 72 128 230 190 202 230 110 183 78 76 80 188 50 125 149 181 179 207 34 88 10 254 134 176 195 72 91 48 201 68 206 54 21 135 135 21 224 108 10 123 217 128 140 64 238 103 44 61 111 93 91 227 187 27 119 139 225 170 86 239 87 228 214 210 55 159 124 195 224 126 244 48 65 217 232 231 222 237 214 34 221 102 60 30 195 146 177 177 45 238 199 39 179 49 10 234 2 125 228 150 206 243 166 132 108 102 115 98 101 252 167 143 9 231 244 102 68 95 50 123 128 223 155 232 161 199 82 146 136 24 146 178 151 28 145 114 33 204 42 211 60 126 11]} 2015/10/22 21:46:39 --> RDY

martinhpedersen commented 8 years ago

I'm using TCP for host <-> TNC communication.

martinhpedersen commented 8 years ago

Some observations:

My best guess is that the receiving TNC drops some ARQ data-frames that should have been sent to the host (wl2k-go).

martinhpedersen commented 8 years ago

Next step: Try running the TNCs on Windows and see if the issue can be reproduced on a non-wine setup.

(Thanks LA3QMA).

martinhpedersen commented 7 years ago

I believe this issue was fixed in ARDOP. I have not seen this bug in recent ARDOP releases.