2014-11-12 3 views
0

Использование простого конкретного клиентского сервера TCP, написанного в сокетах Win32. Размеры блоков и ответов небольшие. Меня беспокоят возможные проблемы с производительностью, вызванные TCP ping (время прихода пакета). Отправка 500 пакетов из 8 байтов будет медленнее, чем отправка 1 пакета из 4000 байтов из-за задержки на серверах на маршруте. Минусы в send() и recv() не влияют на размер пакета, как я понимаю. Возможно ли управлять процесс каким-либо образом?TCP-клиент-сервер, пинг и размер пакета

+0

, если вы хотите больше контроля, канава TCP –

+0

Можете ли вы уточнить, какой тип управления вы ищете? –

+0

Идентификация . Отправить CRC/MD5 - получить статус этого. Может быть 100 пунктов в 0,01 сек и желательный ответ ASAP.Отправить один запрос и ждать ответа для него наиболее удобно, но может быть неудовлетворительным по скорости. – user3874158

ответ

1

Microsoft имеет статью в КБ, в которой можно настроить производительность отправки небольших сегментов по TCP/IP. Проверьте статью для тонкой настройки TCP/IP для вашей потребности: http://support.microsoft.com/kb/214397

0

Я обеспокоен возможными проблемами производительности, вызванных TCP пинга (время прибытия пакетов).

Нет такой вещи, как «TCP ping», и если бы это было, это не имело бы никакого отношения к «времени прихода пакета».

Отправка 500 пакетов из 8 байтов будет медленнее, чем отправка 1 пакета из 4000 байтов из-за задержки на серверах на маршруте.

Возможно, нет. Скорее всего, данные будут частично или полностью объединены алгоритмом Нэгле.

Суммы в send() и recv() не влияют на размер пакета, как я понимаю.

Правильно, см. Выше.

Можно ли каким-либо образом контролировать процесс?

Вы можете отключить алгоритм Nagle, но вы еще не создали ни одного случая для этого.

Смежные вопросы