|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Alex Semenyaka 2:461/640.640 05 Mar 2006 19:07:50 To : Vadim Goncharov Subject : Форкающийся tcp-демон --------------------------------------------------------------------------------
05 Mar 06 15:39, you wrote to Valentin Nechayev:
VD>>>>> То есть от клиента tcp-пакет с установленным SYN, обратно
VD>>>>> SYN,ACK, а по приходу следующего ACK от клиента вываливаемся из
VD>>>>> accept(), больше ничего ему не посылая, так?
VG>>>> Да.
AS>>> Hе так. По приходу ACK вываливаемся из listen. Более того, так как
AS>>> сторона, где выполнялся listen, уже послала ACK, завершающий
AS>>> handshake, то клиент мог (получив этот ACK) начать передачу
AS>>> данных. Которые могут поступить ещё даже до начала accept, если
AS>>> сетка быстрая, и/или сервер прогружен. Так что правильный ответ -
AS>>> как минимум 3 пакета установления соединения, но, возможно, и ещё
AS>>> сколько-то данных.
VN>> Вообще-то ситуация ещё веселее: никто не запрещает в первом же
VN>> SYN-пакете послать порцию данных. И в финальном ACK хэндшейка -
VN>> тоже. В BSD sockets такое невозможно, но например в TLI интерфейсе
VN>> (доступном на SysV системах) - штатное свойство интерфейса.
VG> Есть же T/TCP
Уже нету.
Alex
--- IMHO в последней инстанции
* Origin: ...можжевеловых... (2:461/640.640)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/3929440afeda.html, оценка из 5, голосов 10
|