Многоадресная производительность UDP при загрузке

Существуют проблемы с предыдущими ответами, когда файл находится на ftp-сервере ( ftp://url.com/file ), следующий код работает, когда файл находится в ftp, http или https:

import urllib2

def file_exists(url):
    request = urllib2.Request(url)
    request.get_method = lambda : 'HEAD'
    try:
        response = urllib2.urlopen(request)
        return True
    except:
        return False

6
задан Anton 13 November 2009 в 20:39
поделиться

2 ответа

Попытайтесь сделать буфер отправки или получения (сервер или клиент) вашего сокета достаточно большим, чтобы вместить ожидаемый объем трафика. Вот пример кода C # с моего собственного многоадресного сервера / клиента UDP на стороне сервера, где dataSock - это мой Socket , привязанный к группе многоадресной рассылки UDP:

dataSock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveBuffer, (NumberOfPackets * PacketSize) + SmallEpsilonForExtraHeadroom);

Также обязательно установите SocketOptionName.SendBuffer на стороне клиента, чтобы он соответствовал размеру буфера, создаваемому вашим сервером.

Я также рекомендовал бы, если вы еще не знали, сделать размер ваших пакетов меньше, чем MTU. По умолчанию установлено значение MTU 1500 байтов. (MTU - это максимальный размер блока передачи)

Вы все равно можете получать отброшенные пакеты, если вы также не уменьшите скорость отправки, чтобы ваши клиенты могли не отставать. Скорее всего, ваше сетевое оборудование не является узким местом . См. Мой вопрос Требуется микросекундная задержка в приложении .NET для регулирования скорости многоадресной передачи UDP для ответа на эту проблему (использование Секундомер в цикле while для задержек порядка микросекунд) .

9
ответ дан 10 December 2019 в 00:40
поделиться

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

1
ответ дан 10 December 2019 в 00:40
поделиться
Другие вопросы по тегам:

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