Маршрутизаторы не пересылают широковещательные пакеты
Широковещательная передача в сети относится к методу, с помощью которого хост отправляет данные всем хостам в той же подсети (той же локальной сети), что и хост.
2. Характеристики вещания
Вещание неотделимо от широковещательного адреса: все сетевые карты хоста в одной подсети (локальной сети) будут получать пакеты данных от широковещательного адреса в сегменте сети.Широковещательный адрес применяется ко всем хостам в локальной сети。 Широковещательный адрес (Broadcast Address) - это адрес, специально используемый для одновременной отправки на все станции в сети (обычно ссылающиеся на одну и ту же подсеть).
На самом деле, как следует из названия, вещание - это разговор со всеми в локальной сети.Но широковещательная рассылка по-прежнему должна указывать номер порта получателя., Потому что для приемника невозможно слушать трансляцию на всех портах.
[Возможности UDP-трансляции заключаются в следующем]:
Может отправлять данные всем хостам в широковещательном домене;
Он не может пересекать разные сети и изолирован маршрутизаторами.
Установить параметры сокета
4, реализация UDP-трансляции
Во-вторых, многоадресная рассылка UDP
1. Понятие многоадресной рассылки
Одноадресная передача используется для сквозной связи между двумя хостами, а широковещательная передача используется для передачи данных от одного хоста ко всем хостам во всей локальной сети. Одноадресная и широковещательная рассылка - это две крайности: либо связь с одним хостом, либо связь с хостами по всей локальной сети. На самом деле, Часто необходимо обмениваться данными с определенным набором хостов, а не со всеми хостами во всей локальной сети, что является целью многоадресной рассылки.
Технология IP multicast (также известная как multicast или multicast) - это сеть TCP / IP, которая позволяет одному или нескольким хостам (многоадресному источнику) отправлять один пакет данных нескольким хостам (один раз, одновременно). технология. Многоадресная передача - это многоточечная связь, данные отправляются и принимаются только в одном пакете, что является одним из эффективных способов экономии пропускной способности сети. В сетевых приложениях, когда сигнал узла должен быть передан нескольким узлам, будь то повторный двухточечный метод связи или широковещательный метод, пропускная способность сети серьезно теряется. Лучше всего использовать только многоадресную рассылку. Многоадресная рассылка позволяет одному или нескольким источникам многоадресной рассылки отправлять пакеты данных только определенной группе многоадресной рассылки, и только узлы, которые присоединяются к группе многоадресной рассылки, могут принимать пакеты данных.
Адрес многоадресной рассылки
Многоадресная IP-связь должна опираться на многоадресные IP-адреса. В IPv4 это IP-адрес класса D, варьирующийся отС 224.0.0.0 по 239.255.255.255 И разделен на три категории: многоадресный адрес локальной линии, зарезервированный многоадресный адрес и многоадресный адрес разрешения управления:
1) Диапазон адресов многоадресной рассылки локальной линии: 224.0.0.0
224.0.0.255, который является адресом, зарезервированным для протоколов маршрутизации и других целей. Маршрутизатор не пересылает IP-пакеты, принадлежащие этому диапазону;
2) Зарезервированный адрес многоадресной рассылки - 224.0.1.0
238.255.255.255, который может использоваться во всем мире (например, в Интернете) или сетевых протоколах;
3) Права на управление Адрес многоадресной рассылки: 239.0.0.0
239.255.255.255, который может использоваться организацией внутри организации. Подобно частному IP-адресу, он не может использоваться в Интернете и может ограничивать диапазон многоадресной рассылки.
3. Особенности многоадресной рассылки
Многоадресный сервер отправляет данные только один раз для определенного многоадресного адреса, но все клиенты в группе могут получать данные;
Как и в случае одноадресной передачи, многоадресная передача может передаваться в глобальной сети, то есть Интернет, а широковещательная передача может выполняться только в одной локальной сети;
Общая пропускная способность сервера не ограничена пропускной способностью клиента;
Присоединитесь к определенной многоадресной группе, чтобы получить данные, предназначенные для этой многоадресной группы.
По сравнению с одноадресной рассылкой, в многоадресной рассылке отсутствует механизм исправления ошибок, его трудно компенсировать при возникновении ошибки, но эта функция может быть реализована на прикладном уровне;
Поддержка многоадресной сети имеет недостатки и требует поддержки маршрутизаторов и стеков сетевых протоколов.
Здравствуйте, был не кое время назад не большой казус. сейчас он давно устранён переходом на собственный канал от провайдера.
Итак какое то время назад, была организация, назовём её Альфа, имеющая около n рабочих станций у себя в окружении, + сетевая орг техника.
Новое учреждение, назовём его Омега, при открытии нуждалось в интернете, а до момента когда заключит договор с провайдером на выделенный канал себе, времени требовалось много, денежные проблемы знаете ли.
Зная что рядом с офисами Омеги, есть пару офисов Альфы я задумался, а почему не воспользоваться пока что каналами Альфы, для них это не должно стать проблемой, Альфа была почти не против.
И так я протянул от одного из офисов Альфы кабель в офис Омеги, поставил коммутатор, и развёл по местам для пользователей. Все радовались, и боготворили меня. Шутка.
Но через несколько дней, мне позвонили друзья из Альфы, и сообщили что у них не хватает ip адресов на dhcp сервере. Мои пользователи захватили себе по адресу и в результате часть пользователей Альфы остались без доступа к LAN и WAN. На пример главный бухгалтер.
Я было дело подумал, а почему бы ребятам просто не выделить ещё одну под сеть для нас, у них была "типичная сеть", 192.168.1.0/24, на сколько я знаю они не пользовались VLAN'ами, и в качестве DHCP и DNS серверов выступал ms server 2008 (скорее всего).
Толи они не хотели мутить воду, то ли не знали как (такое возможно?), но выделять под сеть для нас отказались.
Было решено взять 1 адрес из их LAN и NAT'ить его.
У меня под рукой было 2 офисных wifi роутера, Asus RT N16 и TP-LINK WR941N.
При использовании любого из них, через некоторое время интернет регулярно пропадал у пользователей, а сам роутер сходим с ума от широковещательных рассылок, его лампочки на портах не прерывно мигали с большой скорость.
Сейчас проблема уже решена, всё в порядке, у нас собственный канал интернета, и все меня боготворят. Опять шутка.
Суть вопроса: почему роутер сходил с ума? ведь он NAT'ил всего около 20 машин.
То есть LAN Альфы из около 200 машин и орг техники, 1 кабель шёл к моему роутеру который NAT'ил ещё 20 пользователей.
Я понимаю если бы он NAT'ил 200 машин, да он не рассчитан на такую нагрузку.
в качестве адреса вообще 255.255.255.255 как он это делает не понятно но работает.
Это совсем круто. По всему Инету на всю планету.
А броадкаст запросы в сети разрешены? Может в этом и есть вся загвоздка т.к. разрешать такое опасно.
А броадкаст запросы в сети разрешены? Может в этом и есть вся загвоздка т.к. разрешать такое опасно.
Ну я так понимаю, что если чужой чат работает - значит броадкаст запросы разрешены.
Штука в том, что широковещательная передача использует протокол не TCP (как я понимаю у тебя так), а UDP. Соответстенно никакого соединения не производится.
Это совсем круто. По всему Инету на всю планету.
бродкасты не ходят через маршрутизаторы.
Штука в том, что широковещательная передача использует протокол не TCP (как я понимаю у тебя так), а UDP. Соответстенно никакого соединения не производится.
Originally posted by pacific_7
А броадкаст запросы в сети разрешены? Может в этом и есть вся загвоздка т.к. разрешать такое опасно.
а почему? и как их запретить?
совершенно верно. только вот скажите, как в сети можно запретить броадкасты. (это к предыдущему вашему посту)
Ошибочка. я такого не постил. Это не мое. А броадкасты через маршрутизаторы действительно не ходят.
Ошибочка. я такого не постил. Это не мое. А броадкасты через маршрутизаторы действительно не ходят.
да я заметил. уже исправился.
а если действительно не ходят пугать человека зачем? дезинформация и саботаж.
да я заметил. уже исправился.
а если действительно не ходят пугать человека зачем? дезинформация и саботаж.
Согласен ну уж дюже крутой IP. Не люблю я такие адреса.
Не люблю я такие адреса.
хм. вы меня пугаете. это прекрасный подход. вы мне напоминаете одного знакомого, который говорил, что нельзя ставить IP адрес машины 10.255.255.1 - мол "это против общепринятых правил"
хм. вы меня пугаете. это прекрасный подход. вы мне напоминаете одного знакомого, который говорил, что нельзя ставить IP адрес машины 10.255.255.1 - мол "это против общепринятых правил"
Да нет. Против адреса такого я вобщем ничего не имею, но был прецендент,стыдно но спутал с маской 255.255.255.255 (правда я тогда только начинал сетями заниматься).
Да нет. Против адреса такого я вобщем ничего не имею, но был прецендент,стыдно но спутал с маской 255.255.255.255 (правда я тогда только начинал сетями заниматься).
а маска вам такая чем не нравиться? ;)
а маска вам такая чем не нравиться? ;)
Всем нравиться. Просто смотрел исходный код и в течении многих часов не мог понять почему вместо адреса маска стоит, думал ошибка, а ошибка была совсем в другом месте. Много времени потратил ни на что. Потом правда ошибку нашел. Вот и не люблю я такие адреса.
Благодарю за ссылку! Изучаю !-)
А какие компоненты в Билдере могут работать через UDP? (идиотский вопрос но чат бы хотелось доделать до нового года, а у меня и без него завал) Может у кого примерчик есть?
Благодарю за ссылку! Изучаю !-)
А какие компоненты в Билдере могут работать через UDP? (идиотский вопрос но чат бы хотелось доделать до нового года, а у меня и без него завал) Может у кого примерчик есть?
Это правда из Билдер6, но в пятерке наверное тоже есть:
TUdpSocket is the UDP component.
Use TUdpSocket to create UDP-based applications. Add a TUdpSocket object to a form or data module to turn an application into a UDP/IP client and server. TUdpSocket specifies a desired connection to a UDP/IP server, manages the connection when it is open, and terminates the connection when the application is through. It also listens for requests for UDP/IP connections from other machines and establishes connections when requests are received.
Originally posted by squirLа почему? и как их запретить?
Пардон! Видимо я где-то крепко торможу вследствии недостатка (вернее отсутствия в этой области) практики, но:
почему бы вам не использовать NetBIOS имена компов?
Простите за наивный вопрос, а как получить те самые заветные NetBIOS имена?
Простите за наивный вопрос, а как получить те самые заветные NetBIOS имена?
API-шная функция BOOL GetComputerName(LPTSTR lpszName, LPDWORD lpdwBuffer). Возвращает имя netbios локального компьютера. Если используется ДНС нужна функция GetComputerNameEx
Первый параметр - указатель на буфер, в который поступает имя системы. Размер буфера должен быть минимум MAX_COMPUTERNAME_LENGTH + 1. Второй параметр - указатель на адрес, по которому находится определенное число символов в буфере до выполнения функции, а так-же число скопированных символов после выполнения.
При удаче возвращается TRUE.
Вышеприведенное наглая ложь?
отнюдь. просто вы невнимательно читали написанное:
как я уже писал маршрутизаторы действительно не пропускают бродкасты. опять же внимательно перечитав этот отрывок, вы поймете, что "запрещение" бродкастов происходит на сетевом уровне. в пределах же локальной сети, не разбитой маршрутизаторами, широковещательный траффик ограничить можно только установкой управляемых свичей 3-го уровня и созданием VLAN. в этом случае свичами будет выполняться уже не коммутация (канальный уровень), а маршрутизация между VLAN. но в пределах одной VLAN - широковещательные запросы ходить будут по прежнему.
я ответил на ваш вопрос?
API-шная функция BOOL GetComputerName(LPTSTR lpszName, LPDWORD lpdwBuffer). Возвращает имя netbios локального компьютера. Если используется ДНС нужна функция GetComputerNameEx
Первый параметр - указатель на буфер, в который поступает имя системы. Размер буфера должен быть минимум MAX_COMPUTERNAME_LENGTH + 1. Второй параметр - указатель на адрес, по которому находится определенное число символов в буфере до выполнения функции, а так-же число скопированных символов после выполнения.
При удаче возвращается TRUE.
Ну ладно получил я свой netbios name, чем мне это поможет, имен остальных компьютеров я не знаю
код в BCB5 выглядит вот так:
//зачем мне пришлось сделать вот так?
_COMPUTER_NAME_FORMAT aa;
wchar_t cname[300];
if(GetComputerNameExW(aa,cname,&qwe))
RzEdit1->Text = cname;
>
else
RzEdit1->Text = "error";
>; Originally posted by squirL
я ответил на ваш вопрос?
Да - big спасиб! Не сказать, что не внимательно читал. Просто не понял сразу, чем отличается приведенный случай от обсуждаемого здесь. Теперь дошло. Трудновато бывает все осмысливать только по книжкам :(.
Еще раз спасибо.
Ну ладно получил я свой netbios name, чем мне это поможет, имен остальных компьютеров я не знаю
Спасибо, понял. Теперь остаётся вопрос как послать широковещательный запрос, пробовал на компоненте TNMUDP, файрвол показывает соединение UDP ip 255.255.255.255 (192.168.1.255 . ) пробовал всякие адреса, запрос всё равно не возвращается. (
Упс извиняюсь сейчас попробовал с адресом ip 192.168.1.255 запрос вернулся как и надо было.
Спасибо Nick_M. Но всётаки интересно почему не проходит ip 255.255.255.255?
P/S Всех с новым годом.
Спасибо, понял. Теперь остаётся вопрос как послать широковещательный запрос, пробовал на компоненте TNMUDP, файрвол показывает соединение UDP ip 255.255.255.255 (192.168.1.255 . ) пробовал всякие адреса, запрос всё равно не возвращается. (
Упс извиняюсь сейчас попробовал с адресом ip 192.168.1.255 запрос вернулся как и надо было.
Спасибо Nick_M. Но всётаки интересно почему не проходит ip 255.255.255.255?
P/S Всех с новым годом.
Кстати UDP-пакеты могут по ходу теряться.
Вообще если есть возможность организовать сервер, то лучше это сделать. Отпадает необходимость в широковещательных пакетах.
Кстати UDP-пакеты могут по ходу теряться.
потому что теряться могут и TCP пакеты. а в локальной сети, о которой мы говорим. какова должна быть загрузка сети, чтобы UDP не смог доставить пакет.
Настоятельно рекомендую приобрести книгу
"Эффективное программирование TCP/IP"
из серии "библиотека программиста"
там шаг за шагом в лабораторных работах подводят к пониманию работы протоколов.
В часности есть наглядый пример того, что потери пакетов не всегда зависят от пропускной пособности сети: возможы потери пакетов даже когда клиент и сервер работают на одной машине.
На прочтение книги потеряешь неделю, но
без этого написать устойчиво работающюю сетевую программу нельзя.
Обычное TCP соединение легко проходит через прокси -сервера: на Server/Client Socket писать надо.
Решение проблемы динамических адресов:
-1-
Выделить в сети сервер не так уж это сложно и страшно :)
-2-
DHCP настроить на выдачу адресов не в cлучайном порядке, а по MAC - адресам - каждому MAC - всегда только свой IP. Получится у каждого компа Всегда одинаковый IP, назанчаемый динамически.
-3-
Сколько компов в сети ? 10-25 ?
что мешает выполнить автоматический поиск чат-сервера в выбраном диапазоне адресов?
Времени займет менее 1 сек.
динамически создать
25 асинхронных сокетов , настроеных на попытку соединения с разными IP, когда один из них соединится, все остальные прибить.
Одноадресная, широковещательная и многоадресная рассылка IPv4
Широковещательная передача
Трафик широковещательной рассылки используется для отправки пакетов по всем узлам в сети с помощью группового адреса сети. В пакете широковещательной рассылки содержится IP-адрес назначения, в узловой части которого присутствуют только единицы (1). Это означает, что пакеты получат и обработают все узлы в локальной сети (домене широковещательной рассылки). Широковещательные рассылки предусмотрены во многих сетевых протоколах, например в протоколе DHCP. Когда узел получает пакет, отправленный на сетевой широковещательный адрес, узел обрабатывает этот пакет так же, как обрабатывает пакет, отправленный по одноадресной рассылке.
Использование широковещательной рассылки включает в себя:
- Проведение маршрута от адресов верхнего уровня до адресов нижнего уровня
- В отличие от одноадресной рассылки, в случае которой пакеты могут быть отправлены по объединённой сети, широковещательным пакетам запрещено проходить по локальной сети. Это ограничение зависит от конфигурации маршрутизатора шлюза и типа широковещательной рассылки. Есть два типа широковещательной рассылки: прямая и ограниченная.
Прямая широковещательная рассылка
Прямая широковещательная рассылка отправляется всем узлам в конкретной сети. Этот тип широковещательной рассылки полезен для отправки широковещательных пакетов на все узлы нелокальной сети. Например, для связи какого-либо узла за пределами сети 172.16.4.0/24 со всеми узлами внутри этой сети адресом назначения пакета будет являться 172.16.4.255. Несмотря на то, что маршрутизаторы не пересылают широковещательные пакеты по умолчанию, их можно для этого настроить.
Ограниченная широковещательная рассылка
Например, узел в пределах сети 172.16.4.0/24 отправляет широковещательную рассылку всем узлам внутри своей сети, используя пакет с адресом назначения 255.255.255.255.
Чтобы увидеть пример ограниченной широковещательной передачи, включите анимационное представление.
Широковещательный пакет использует ресурсы в сети и заставляет каждый принимающий узел в сети обрабатывать этот пакет. Таким образом, трафик широковещательной рассылки должен быть ограниченным, чтобы не влиять на производительность сети и других устройств. Поскольку маршрутизаторы отделяют домены широковещательной рассылки, разделение сети с чрезмерным трафиком широковещательной рассылки может повысить производительность сети.
Читайте также: