я вот читаю переписку, никак в толк не возьму, какое отношение имеет SYN,ACK,FIN к конкретному протоколу FTP. Это касается любых пакетов передаваемых по Ethernet в плк, возможно это чем то поможет
Вид для печати
я вот читаю переписку, никак в толк не возьму, какое отношение имеет SYN,ACK,FIN к конкретному протоколу FTP. Это касается любых пакетов передаваемых по Ethernet в плк, возможно это чем то поможет
Как же без ACK? пакет №6321 - ACK от ПЛК, затем фтп шлет FIN,PSH,ACK.
SysSockShutdown делаю, после нескольких секунд без изменения буфера (как в бибке oscat.de по умолчанию)
SysSockRecv постоянно повторяется и смотрю буфер - приходят только первые 536 байт на прошивке 2.17. На остальных прошивках приходят все байты, кроме последнего пакета. На всех прошивках программа в ПЛК не меняется, фтп сервер тот же. А от прошивки зависит приходящее число байт.
То есть на прошивке 2.17 появился ответ ACK, которого не было на прошлых прошивках, но такое ощущение, что теперь PSH перестал работать, то есть не пробрасывает данные в клиентское приложение.
Все серверы фтп, которые я пробовал, последнюю порцию данных пересылают одновременно с флагом FIN в пакете, как пишут в интернетах для ускорения обмена. И этот пакет не приходил. Эмуляция фтп сервера с помощью программы Hercules показала, что без передачи данных вместе с пакетом FIN - всё приходит полностью. Это было до прошивки 2.17. На прошивке 2.17 наоборот приходит только первый пакет.
вот лабораторная, расписывается нечто подобное. На Вашем последнем скрине концовка вроде верная, за исключением что 46.50 посылает разрыв соединения, так может дело в пользовательском коде
потому что они оба перед этим подтвердили бит FIN, но не их задача знать закрыл пользователь сокет или нет
Во первых хотелось бы увидеть проект и ПО для эмуляции, к-е Вы используете. Чтобы повторить у нас.
Разница между 2.14 и 2.17 - MTU увеличили.
Малые пакеты проходят?
ftp сервер: https://filezilla-project.org/download.php?type=server или ftp server в windows 8.1.
ftp клиент во вложении.
Также эмулировал работу ftp server через hercules: http://www.hw-group.com/products/hercules/index_en.html
C ним проходили любые пакеты и маленькие и большие на прошивке 2.14, лог в первом посте. У Hercules не было пакетов с 3мя флагами: FIN, PSH, ACK.
ни чего в этом такого нет, что разработчик пытается совершенствовать код, добавляем различную подстраховку. Про разные версии прошивки имело бы смысл упоминать, еслиб на какой то из них всё работало, а так то ведь ни на одной не принимается файл до конца, насколько я понял. Изначально моя мысль была, что фтп и тсп стоят на разных уровнях сетевой модели и прошивка ни чего не знает, по какому протоколу программист передает данные по сети, если такая проблема присутствует при передаче файла (как набора байт) с фтп-сервера, значит она бы проявила себя и при загрузке другого контента, хтмл например, иначе проблема в коде