Вопросы про multicast

pitrik2

стыд и позор, но я токо вчера узнал что такое multicast
в связи с чем возникла куча вопросов
сорри, если некторые совсем нубские и идиотские (мануалы я в гугле койкакие почитал)
1) я правильно понял что эта штука никак не связана с транспортным протоколом?
т.е. multicast может быть как через UDP так и через TCP?
и настраивается она параллельно, т.е. настроив мультикастные группы я могу потом и tcp и udp пользоваться одинакого?
2) Unicast - это обычный TCP? или обычный TCP как-то еще называется а unicast это отдельная тема?
3) когда используешь обычный TCP то у тебя всегда есть 127.0.0.1
ты можешь по этому адресу отправлять что хошь и в сеть ничего не уйдет, всё останется внутри твоей ОС
есть ли какойнить подобный мультикастовый адрес?
где-то прочитал что операционка может быть настроена чтобы 127.0.0.1 был валидным мультикастовым адресом, но этот вариант мне не подходит
4) я вот щас взял мультикастовый адрес "от балды"
шлю тудыть и обана на той же машине по этому адресу клиентским приложением получаю что послал серверным приложением
"обана" в данном случае случайность или закономерность?
случайность - иммется ввиду что данная машина настроена на пересылку этого моего случайного мультикастного адреса (правильно наверна сказать входи в эту мультикастовую группу)
закономерность имеется ввиду что в пределах одной ОС все мультикастовые адреса всегда транслируются
5) вопрос по инглишу
что такое "local site", "local subnet"?
или это просто обоначения, никак разумно не переводящиеся?
http://www.cisco.com/en/US/tech/tk828/technologies_white_pap...
6) ну и совсем тупой вопрос, как мне трафик мультикастный послушать?
telnet я же не могу юзать? айпишника у меня же нету...
а tcpdump могу?
а для udp что юзать?
P.S.
во всех вопросах подразумевается ipv4

otvertka07

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

pitrik2

мультики не могут быть тцп - это ж бред, ты видно совсем мало прочел, даже не прочел, для чего этот мультикаст нужен, читай дальше
почему бред?
я так понял что мультикаст это типа параллельный способ связать компы
т.е. я связываю некторые компы в одну мультикаст группу, отсылаю сообщение и токо мои компы его получают
т.е. в случае tcp это будет не tcp через ip а tcp через мультикаст

yroslavasako

мультикаст работает на более низкой основе, на той же, на который работают tcp и udp. Если реализовывать мультикаст через tcp, то это приведёт к огромному overheady. Но в принципе не возбраняется, можно ip over tcp поднять

pitrik2

ок
вопросы про tcp отпали
остались вопросы
1) как послушать трафик?
2) как пропинговать всех входящих в данную мультикаст группу? типа послать некий пинг и в ответ получить реальные айпишники всех машин которые либо умеют ретранслировать дальше мой пакет либо заинтересованы в нем
3) тот мой четвертый вопрос, про от балды...
вот эта дока понравилась: http://tldp.org/HOWTO/Multicast-HOWTO.html
там написано что мультикаст он всегда на интерфейс, т.е. получается что если я интерфейсом возьму локалку то это и будет ограничение на не выход в сеть
ща попробую

tokuchu

мультикаст работает на более низкой основе, на той же, на который работают tcp и udp.
Нет. Мультикаст — это свойство IP-уровня. А TCP и UDP выше.
TCP плох тем, что он сильно bidirectional, а мультикаст в этом плане использовать неудобно. Поэтому обычно UDP используют.

tokuchu

2) Unicast - это обычный TCP? или обычный TCP как-то еще называется а unicast это отдельная тема?
Да, "обычный". Multicast — это когда посылаешь нескольким (0-... а Unicast — когда строго одному.
3) когда используешь обычный TCP то у тебя всегда есть 127.0.0.1
ты можешь по этому адресу отправлять что хошь и в сеть ничего не уйдет, всё останется внутри твоей ОС
В целом обычно так, но это не обязательно. Основная "хитрость" здесь — это loopback-интерфейс, а не 127.0.0.1.
есть ли какойнить подобный мультикастовый адрес?
Есть адреса, которые считаются мультикастовыми. Выбираешь любой и роутишь его через loopback-интерфейс и он не будет уходить наружу.
, но этот вариант мне не подходит
4) я вот щас взял мультикастовый адрес "от балды"
шлю тудыть и обана на той же машине по этому адресу клиентским приложением получаю что послал серверным приложением
"обана" в данном случае случайность или закономерность?
А почему оно не должно получать? Всё правильно? Приложение биндится на адрес, пакеты ему приходят.
5) вопрос по инглишу
что такое "local site", "local subnet"?
"local site' — это ничего особенного не значит, наверное имеется в виду, что локальная сеть организации, если выделить её из общего интернета
"local subnet" — скорее всего сегмент сети
6) ну и совсем тупой вопрос, как мне трафик мультикастный послушать?
telnet я же не могу юзать? айпишника у меня же нету...
а tcpdump могу?
а для udp что юзать?
telnet не можешь, т.к. он tcp. tcpdump показывает все пакеты (по крайней мере ip-уровень точно поэтому им можно посмотреть чего там ходит.
Скорее всего тебе нужно что-то, что ловит UDP пакеты. Если видеопоток, то vlc, а если просто пакеты половить, то можно netcat-ом воспользоваться. Он вроде умеет на UDP биндится.

tokuchu

2) как пропинговать всех входящих в данную мультикаст группу? типа послать некий пинг и в ответ получить реальные айпишники всех машин которые либо умеют ретранслировать дальше мой пакет либо заинтересованы в нем
Так же, как и обычно: "ping <ip>". Другой вопрос — ответят ли он тебе.
Ещё не понятно, что ты имеешь в виду под "умеют ретранслировать дальше мой пакет". Если маршрутизатор, то он не обязан входить в эту группу, чтобы её ретранслировать.
там написано что мультикаст он всегда на интерфейс, т.е. получается что если я интерфейсом возьму локалку то это и будет ограничение на не выход в сеть
ща попробую
Какую локалку ты возьмёшь, чтобы в сеть не выходило?
Просто обычные адреса до нелокальных сегментов обычно маршрутизируются через указание ip-адреса маршрутизатора.
А если ты хочешь задать куда маршрутизировать мультикаст-пакеты которые ты посылаешь и запросы на подключение к группе, то нужно маршрутизировать не в конкретный маршрутизатор, а просто в интерфейс.

pitrik2

Какую локалку ты возьмёшь, чтобы в сеть не выходило?
Просто обычные адреса до нелокальных сегментов обычно маршрутизируются через указание ip-адреса маршрутизатора.
А если ты хочешь задать куда маршрутизировать мультикаст-пакеты которые ты посылаешь и запросы на подключение к группе, то нужно маршрутизировать не в конкретный маршрутизатор, а просто в интерфейс.
сорри, я криво написал слово локалка
вощем прописал интерфейсом 127.0.0.0/8
подконнектился с него - получаю
подконенктился с другого интерфейса - не получаю
т.е. всё суперски работает
кажись во всём разобрался
2 большое спасибки

tokuchu

вощем прописал интерфейсом 127.0.0.0/8
Только это не интерфейс, а сеть, поднятая на интерфейсе. :)
Оставить комментарий
Имя или ник:
Комментарий: