C ++ windows32 winsock UDP маршрутизация? - PullRequest
0 голосов
/ 24 июня 2010

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

Пояснение:

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

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

Ответы [ 2 ]

1 голос
/ 24 июня 2010

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

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

Приложение:

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

0 голосов
/ 24 июня 2010

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

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

...