Кто-нибудь замечал что сырой сокет в винде (у меня XP), нарушает порядок пакетов при выдаче. Т.е. на адаптер они приходят в одном порядке, сокет отдаёт их в другом. Особенно заметно при конекте: в последовательности 1:SYN, 2:SYN+ACK, 3:ACK - из сокета пакеты выходят в таком порядке : 1 3 2.... Может кто-нибудь знает как с подобной лажей нужно бороться?
Что-то не понял, а первая последовательность правильная что ли? По-моему сокеты пришли правильно. Не знаю.
Ну я тоже ночью не спал. Мне с просонок подумалось, может делаю что-то не так и так и должно соединяться. Но во первых у меня под рукой есть TCP/TP Стивенса и я даже на всякий случай сравнивал результат с тремя хорошими сниферами. Мне лично всегда казалось что сырой сокет винды может часто терять пакеты (типа буфер маленький). Вот только недавно заметил что пакеты не теряются - теряется порядок. Тот же исходник, если его запитать от pcap работает очень даже правильно. Там насколько я понимаю, если в буфер попало два пакета и я не успел их снять сразу. То потом мне отдадут не в том порядке в каком они были изначально. И как с этим бороться пока в голову не приходит.
Хотя вот щас под 2000 нормально. Толи это действительно бывает если вовремя пакеты не доставать, толи последний билд XP косячит.