Что входит в незаконные операции TFTP?

Я пишу небольшой TFTP-клиент и сервер для занятий, и мне приходится отправлять пакеты TFTP ERROR, когда что-то идет не так. Вот TFTP RFC для справки.

Итак, код ошибки 4 — «Недопустимая операция TFTP». В каких случаях вы бы отправили этот пакет ОШИБКИ?

Например, если Сервер прослушивает порт 69 для пакетов RRQ/WRQ, но вместо этого получает случайный пакет DATA, должен ли он отправить в ответ пакет ERROR (код ошибки 4)?


person pepers    schedule 22.05.2015    source источник


Ответы (1)


Все, что не соответствует потоку и семантике спецификации, является «незаконным». Пакет с неизвестным opcode, пакет с неправильно сформированной полезной нагрузкой или пакет, который не соответствует нормальному потоку команд/ответов, будут считаться «незаконными». Таким образом, неожиданный пакет DATA для несуществующей передачи может считаться "незаконным" и использовать код ошибки 4, хотя код ошибки 5 (неизвестный идентификатор передачи) был бы более подходящим.

person Remy Lebeau    schedule 22.05.2015
comment
Отлично, спасибо! Хотя в моем примере с блуждающим пакетом DATA вы говорите использовать код ошибки 5, потому что это, скорее всего, было бы полезно для того, кто отправил пакет (скорее всего, они отправили правильный тип пакета в неправильное место, а не неправильный тип). пакет в нужное место)? - person pepers; 23.05.2015
comment
Это соответствует разделу 4: На следующем шаге и на всех последующих шагах хосты должны убедиться, что исходный TID соответствует значению, согласованному на шагах 1 и 2. Если TID источника не совпадает, пакет следует отбросить как ошибочно отправленный откуда-то еще. Пакет с ошибкой следует отправить источнику неправильного пакета, не нарушая при этом передачу. - person Remy Lebeau; 23.05.2015