2010-06-24 1 views
0

В C++ с использованием Windows32 с использованием библиотеки сокетов Windows с использованием UDP есть способ, чтобы дать клиенту информацию о маршрутизации другим клиентом, чтобы установить соединение между клиентами без необходимости маршрута через серверC++ windows32 winsock UDP-маршрутизация?

Разъяснение:

сервер - ждет компьютеров и предоставляет информацию о маршрутизации - отдельный сервер клиент - отправляет запрос ack и ожидает информацию о маршрутизации - обычный пользовательский компьютер

, но нормально, поэтому не представляется возможным предоставлять информацию о маршрутизации клиентам для подключения клиентов, не требуя данные, которые будут перенаправлены через сервер?

+0

Просьба пояснить вашу проблему. Вы ищете какое-то решение P2P или хотите играть с IP-заголовком? –

+0

Какова была бы необходимость явной маршрутизации пакета? Это откат десятилетий работы в области сетевого проектирования. – wallyk

+0

Он удалит накладные расходы на серверах и улучшит время в оба конца – erai

ответ

0

Короткий ответ: нет

Длинный ответ: да --- но вы должны использовать IPPROTO_IP, не IPPROTO_UDP. Используйте опцию IP_OPTIONS в setsockopt() для установки source routing.

+0

спасибо, что попробуй, – erai

1

Короткий ответ: нет.

Долгий ответ: Независимо от того, какую информацию вы укажете в своем UDP-пакете, на транспортном уровне это всего лишь еще один IP-пакет, и ваш сетевой адаптер пошлет соответствующие заголовки на нем и отправит их на своем пути. Если хосты напрямую не подключены друг к другу, топология сети будет определять, сколько хопов (маршрутизаторов/коммутаторов) нужно сделать, чтобы добраться туда.

Добавление:

Я не уверен, что вы имеете в виду сервер (я прочитал его как «маршрутизатор» изначально, но вы можете так же легко можно было говорить о сервера доменных имен (DNS)). Если вы пытаетесь избежать поиска в DNS, вы можете легко сделать это, указав IP-адрес напрямую (при условии, что вы это знаете). Однако поиск DNS - это одноразовый процесс. Как только IP-адрес известен, хост DNS не участвует в маршрутизации ваших пакетов UDP.

+0

um ok да, но я не хочу использовать сервер в качестве маршрутизатора, который просят использовать его для подключения клиентов, а не использовать его как маршрутизатор. – erai

+0

@erai: Я все еще очень смущен вашей терминологией. Если клиенты не подключены напрямую друг к другу (например, с помощью одного кабеля Ethernet A-> B или специального WiFi-соединения), им придется пройти хотя бы один маршрутизатор (коммутатор/концентратор/и т. Д.) До соединяться друг с другом. Я не понимаю, как вы планируете избегать этого. –

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

  • Нет связанных вопросов^_^