|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Alex Semenyaka 2:461/640.640 26 Aug 2005 19:52:58 To : Alexey G Misyuremko Subject : Passive FTP -------------------------------------------------------------------------------- 26 Aug 05 15:39, you wrote to me: >> 1) А по какой спецификации при получении ACK вместо SYN+ACK система >> должна отослать новый SYN? По-моему, она должна такой ACK полностью AM> Отсылкой ACK мы добьемся получения RST , от инициатора соединения Выкачал tcp_input.c фришкин, проверил. Там написано: /* * If the state is SYN_SENT: * if seg contains an ACK, but not for our SYN, drop the input. * if seg contains a RST, then drop the connection. * if seg does not contain SYN, then drop it. . . . if ((thflags & TH_ACK) && (SEQ_LEQ(th->th_ack, tp->iss) || SEQ_GT(th->th_ack, tp->snd_max))) { rstreason = BANDLIM_UNLIMITED; goto dropwithreset; } . . . if ((thflags & TH_SYN) == 0) goto drop; Ты получишь RST, если будешь подтверждать что попало. Если будешь подтверждать что надо - будешь проигнорирован. Состояние дальней стороны ни в том, ни в другом случае не меняется, а SYN перепосылается по таймауту. Вопрос - зачем? Проще напрочь игнорировать первый SYN, и реагировать только на второй. По совести, хранить надо тогда два сокета и ISN, итого 16 байтов на соединение. Защита относительная, но почему бы не сделать? Кстати, я наблюдал, что Windows в каких-то случаях (я так и не понял, в каких) отсылает не один SYN, а несколько. Разбираться некогда было, это обнаружено было на лабе от CSPFA: hitcnt росли как-то кривовато. Ethereal показал указанную выше картинку, удивились, пошли дальше. А вот сейчас проверил на ноуте - один SYN, как так положено. От чего зависит, не знаю (я небольшой знаток технологий MS), но когда наблюбается описанная картинка - твоя защита будет проходить незаметно, что хорошо. Alex --- IMHO в последней инстанции * Origin: ...можжевеловых... (2:461/640.640) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/3929430f4be7.html, оценка из 5, голосов 10
|