Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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.48 MB
Время: 0.035 c
14-80217
TUser
2004-02-05 13:11
2004.02.25
Потрепаца


3-79632
MaxBgmz
2004-01-29 23:47
2004.02.25
альтернатива Парадоксу


14-80098
Maxim Vetera
2004-02-03 12:11
2004.02.25
Дианетика!!!


9-79539
Camedia
2003-08-12 20:06
2004.02.25
Тайлы для игры


14-80212
Бзззер
2004-01-30 14:36
2004.02.25
Порты?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский