Различие между winsock и сокетами Linux

6
задан arolson101 26 November 2008 в 02:53
поделиться

2 ответа

Вы хотите TCP_CORK. Это будет препятствовать тому, чтобы частичные кадры были отправлены увеличивающуюся пропускную способность (за счет задержки) - точно так же, как winsock.

int v,vlen;
v=1; vlen=sizeof(v);
setsockopt(fd, IPPROTO_TCP, TCP_CORK, &v, &vlen);

Набор v=0 для сбрасывания кадров перед, получите:

int v,vlen;
v=0; vlen=sizeof(v);
setsockopt(fd, IPPROTO_TCP, TCP_CORK, &v, &vlen);

На большей части unixes можно улучшить пропускную способность далее при помощи writev() или sendfile()...

2
ответ дан 17 December 2019 в 18:20
поделиться

Wireshark является Вашим другом, осуществите сниффинг провода - смотрят на пакеты, видят, как каждый упорядочивается, и посмотрите, не можете ли Вы определить различие/проблему.

На высокой задержке связывает Вас, действительно хотят удостовериться, что Вы буферизуете как можно больше сохраняющее каждый истраченный пакет TCP.

Отправьте объединяют, ususally хорошая идея. Это только инициировало, когда существует больше чем один неподтвержденный кадр, поставленный в очередь на отправить стороне. Обычно необходимо ТОЛЬКО отключить эту опцию, если Вы знаете то, что обеспечивают Ваше выполнение и Ваша система, всесторонняя буферизация, иначе запрещающая его, является бесспорной negativly производительности системы эффекта в высоких сетях задержки.

Поскольку самый высокий буферный demarc пропускной способности должен быть точными факторами пути MTU.

1
ответ дан 17 December 2019 в 18:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: