|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Valentin Nechayev 2:5020/400 04 Mar 2006 20:47:57 To : Alex Semenyaka Subject : Re: Форкающийся tcp-демон -------------------------------------------------------------------------------- >>> Alex Semenyaka wrote: VD>>> То есть от клиента tcp-пакет с установленным SYN, обратно SYN,ACK, VD>>> а по приходу следующего ACK от клиента вываливаемся из accept(), VD>>> больше ничего ему не посылая, так? VG>> Да. AS> Hе так. По приходу ACK вываливаемся из listen. Более того, так как сторона, AS> где выполнялся listen, уже послала ACK, завершающий handshake, то клиент мог AS> (получив этот ACK) начать передачу данных. Которые могут поступить ещё даже AS> до начала accept, если сетка быстрая, и/или сервер прогружен. Так что AS> правильный ответ - как минимум 3 пакета установления соединения, но, AS> возможно, и ещё сколько-то данных. Вообще-то ситуация ещё веселее: никто не запрещает в первом же SYN-пакете послать порцию данных. И в финальном ACK хэндшейка - тоже. В BSD sockets такое невозможно, но например в TLI интерфейсе (доступном на SysV системах) - штатное свойство интерфейса. -netch- --- ifmail v.2.15dev5.3 * Origin: Dark side of coredump (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/22383a9e6ba93.html, оценка из 5, голосов 10
|