|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Igor Sysoev 2:5020/400 04 Feb 2004 19:05:57 To : Slawa Olhovchenkov Subject : Re: sendfile -------------------------------------------------------------------------------- Slawa Olhovchenkov <Slawa.Olhovchenkov@f500.n5030.z2.fidonet.org> wrote: > 04 Feb 04, Igor Sysoev writes to Slawa Olhovchenkov: > > >> Э нет, не согласен. > >> С чего бы на отдаче ответа тормозить? Мы уже в TCP буфера соединений > >> данных понапихали -- знай наливай да пей. > > IS> 1) у какого-то соединения в этот момент буфер может быть уже пустым. > > Hе должен. Как только в SENDBUF будет свободно 2К -- в сокет можно > будет писать sendfile()у вообще-то нужно 4К, но это неважно. Если на момент освобождения процесс заблокирован, то он об этом не узнает. Узнает позже, после разблокирования. > IS> 2) допустим, есть клиент со скростью 1Mbit/s или 100Kbyte/s. Он может > IS> забирать данные со скростью 100*1024/1500 = 68p/s, то есть, одни пакет > IS> каждые 14ms. > > Hу и дальше-то что? Hу как что ? Если чтение с диска 20ms, то он не получит один пакет вовремя. Короче, если операции с диском быстрее, чем клиент вытягивает данные, то клиент не заметит задержки. Если диск медленее, то клиент, будет ждать. > >> С чтением запроса -- TCP ханшейк уже прошел (акцепт филтр, да?) -- знай > >> в буфера наливай. > > IS> Я подчеркнул - _тело_ запроса. Заголовок-то мелкий, он после хэндшэйка, > IS> насколько я понимаю, в буфер и без фильтра попадёт. Хотя это надо > IS> проверить. > > Так с какой стати телу-то не попадать?! Хандшейк прошел -- TCP сессия > установилась -- та сторона свободна в своем желании наливать нам данных до > RECVBUF. Стек ведь на сегменты ACK самостоятельно шлет. А то, что до > приложения данные еще не добрались -- то ну никому с той стороны не ведомо. Hу так тело-то может быть и побольше RECVBUF. > >> С акцептом -- если под этим TCP хандшейк понимать -- то с чего бы ему > >> тормозится? Ему с диска ничего не надо. > >> Если сам вызов -- то да. Это то, про что я говорил -- реакция на коннект > >> может последовать чуть позже. > > IS> Hу да, вызов accept() будет позже. > > Это ИМХО единственное что и будет происходить. Hе только. -- Игорь Сысоев http://sysoev.ru --- ifmail v.2.15dev5.3 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/657752ed8f99.html, оценка из 5, голосов 10
|