Форум: "Сети";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];
Внизbroadcast и две сетевухи Найти похожие ветки
← →
thevalery (2003-11-27 15:07) [0]У меня на машине 2 сетевухи. Я шлю UDP-броадкастовый пакет. Вопрос - с какой из сетевух он будет отправлен и в какую сеть он попадет? Если можно - объясните физику этого процесса.
← →
Anatoly Podgoretsky (2003-11-27 15:08) [1]В ту, которая будет устраивать по маршруту
← →
thevalery (2003-11-27 15:21) [2]"В ту, которая будет устраивать по маршруту" - Дык это ж броадкаст (айпишник = FF.FF.FF.FF) - какой тут может быть маршрут? Мнэ... Или может пакет пойдет в обе сети?...
← →
Rouse_ (2003-11-27 19:59) [3]Не возлагай таких уж прямо больших надежд на Броадкаст...
Анатолий тебя верно осек...
Если грубо то непонятен даже вопрос...
> Вопрос - с какой из сетевух он будет отправлен
А в какую сеть попадет? А какие сети у тебя есть?
← →
Anatoly Podgoretsky (2003-11-27 20:09) [4]Если этот маршрут не прописан в таблице маршрутизации, то пакеты пойдут на шлюз по умолчанию.
У меня такой маршрут прописан.
← →
Verg (2003-11-28 16:09) [5]Строго говоря, отсылать IP датаграмму на FFFFFFFF нельзя.
Но, в целях совместимости многие системы поддерживают такую передачу. При этом многие системы отсылают в каждый интерфейс по одной копии этой датаграммы, самостоятельно преобразовав такой адрес в бродакастовый адрес подсети данного интерфейса.
Но, по-моему, винды просто отсылают этот пакет в первый попавшийся интерфейс.
Если нужно отправить броадкаст со всех интерфейсов, то нужно получить конфигурацию интерфейсов и выполнить для каждого из них sendto на броадкаст адрес подсети танного интерфейса.
← →
thevalery (2003-12-01 12:24) [6]> Rouse_
>> Вопрос - с какой из сетевух он будет отправлен
> А в какую сеть попадет? А какие сети у тебя есть?
В данный момент у меня есть две сети. Первая - локальная,
вторая - к провайдеру (в интернет, тоже сетевуха - не модем).
В общем, проверить на практике не получается :(
А вот что будет у заказчика - понятия не имею. Суть в том,
что программы должны уметь находить друг друга в локалке,
включаясь и выключаясь "на лету". Исходя из особенностей
задачи выбран UDP. Так что вопрос лишь в том, куда уйдет
широковещательный пакет, если машина включена в две сети.
Меня бы удовлетворили ответы типа "всегда - во все" или
"исходя из таких-то настроек". Да, чуть не забыл, -
все машины под виндой.
> Verg
> Строго говоря, отсылать IP датаграмму на FFFFFFFF нельзя...
А эт еще почему? Броадкаст, пока что, еще никто не отменял,
а при отсылке пакета ставится INADDR_BROADCAST, что и есть FFFFFFFF.
Во всяком случае у меня работает и ни разу не сбоило...
> Если нужно отправить броадкаст со всех интерфейсов, то нужно
> получить конфигурацию интерфейсов и выполнить для каждого из
> них sendto на броадкаст адрес подсети танного интерфейса.
А как делается отсылка отдельно по интерфейсам?
В данный момент у меня работает так (незначащие
куски и обработка ошибок пропущены):
sock: integer;
saUdpServ,saUdpCli: TSockAddr;
usEndPoint: u_short;
...
sock := socket(AF_INET,SOCK_DGRAM,0);
setsockopt(sock,SOL_SOCKET,SO_BROADCAST,@i,4);
saUdpCli.sin_family := AF_INET;
saUdpCli.sin_addr.s_addr := htonl(INADDR_ANY);
saUdpCli.sin_port := htons(0);
bind(sock, saUdpCli, sizeof(TSockAddr));
usEndPoint := PORT;
saUdpServ.sin_family := AF_INET;
saUdpServ.sin_addr.s_addr := htonl(INADDR_BROADCAST);
saUdpServ.sin_port := htons(usEndPoint);
sendto(sock, data, data_length, 0, saUdpServ, sizeof(TSockAddr));
← →
Verg (2003-12-01 13:29) [7]
> > Verg
> > Строго говоря, отсылать IP датаграмму на FFFFFFFF нельзя...
> А эт еще почему? Броадкаст, пока что, еще никто не отменял,
Не путай броадкаст Ethernet и броадкаст IP.
В IP броадкаст - это броадкастовый IP адрес подсети.
> А как делается отсылка отдельно по интерфейсам?
В Виндах сначала вызываешь GetIpAddrTable (IpHlpAPI) там тебе вернут список адресов логических интерфейсов с их максами подсетей и броадкастовыми адресами, на которые ф-цией sendto и отпарвляй броадкасты (на все или только на те, которые надо).
← →
Fay (2003-12-01 15:06) [8]Т.е. если я захочу отправить что-то на диапазон инетовских адресо из своей сетки через роутер, то не лапучится чичего?
← →
имя (2003-12-02 18:17) [9]Удалено модератором
← →
имя (2003-12-18 14:13) [10]Удалено модератором
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.033 c