>>Передаётся небольшая структура. При аналезе (tcpdump..) выяснелось, что пару фрагментов >>остаются на клинтской части. Обидно. Приходиться закрывать соединение, а затем вновь подключаться, >>тогда те куски приходят без проблем. >>Идея понятна. Но как реализовать? > >Если есть необходимость передавать данные без задержек по tcp протоколу, то необходимо >отключить алгоритм Нигла в сокете. Этот алгоритм предотвращает большое количество мелких >пакетов в сети, которые излишне нагружают сеть и уменьшают её пропускную >способность. Этот алгоритм предотвращает посылку мелких пакетов путём ожидания добавление ещё >данных в буфер, т.е. данные отсылаются одним большим куском, или же >по истечении некоторого времени, которое может быть довольно большим. > >Чтобы отклюсить этот алгоритм, необходимо после создания сокета функцией socket(): > >setsockopt(s,IPPROTO_TCP,TCP_NODELAY,(char*)&t,sizeof(t));
|