Пишу приложение-сервер для трансляции AVI(DivX) фильмов по сетке, почти готово. Использую пакет WinPCap, который работает напрямую с сетевухой без всяких там WinSock'етов.
Нужна небольшая инф. поддержка в вопросах связанных с судьбой посланного в сеть пакета. До кого в сегменте он
доходит, по какому принципу шлюз фильтрует пакеты. В общем в этих вопросах я не сильно силен (пока).
Основная идея (без тонкостей и подробностей) такова:
приложение-сервер начинает посылку пакетов в сеть - это разрезанный AVI-файл, причем сначала посылается заголовок файла
~10Kb, потом индекс ~7Mb (он находится в конце AVI-шки) и только после этого сам оставшийся поток фреймов со скоростью необходимой для синхронного приема и воспроизведения файла. При таком решении и сеть сильно не засоряется и формат файла остается неизменным.
приложение-клиент завидев
в сетке пакеты от приложения-сервера создает на диске пустой файло размером ~650Mb и заполнив заголовок и индекс AVI-файла пекетами из сети, запускает просмотр АVI-шки и оновременно продолжает заполнять файло с некоторым опережением, чтобы кодеки не напоролись на пустоту.
Дело в том,
что используя пакет WinPCap в сетку можно посылать пакеты содержимое которых полностью задается через буфер, включая MAC-адреса. Вот я и спрашиваю как грамотно заполнить поля заголовка пакетов, чтобы по сегменту они транслировались, а дальше никуда не шли.
Шлюз работает на сетевом уровне, и если в заголовке пакета указан адрес сети, совпадающий с адресом сети порта шлюза, то дальше этого сегмента такой пакет не пойдет. Если нет, то он маршрутизируется в соответствии со своей таблицей маршрутизации.
Да в том то и дело, что не IP, а адреса сети этого IP. А порт и сетевой интерфейс - тоже самое.
Я согласен, возможность настраивать, а толку? пакет уйдет и что дальше? получатель-то в одной сети с отправителем...
"Да в том то и дело, что не IP, а адреса сети этого IP."
а "адрес" сети из чего берется? Из IP путем логического "И" с маской.
"А порт и сетевой интерфейс - тоже самое."
Гм, как вы себе это представляете? Порт есть понятие сугубо протокольной природы :-) (в данном контексте
по крайней мере)
"Я согласен, возможность настраивать, а толку? пакет уйдет и что дальше? получатель-то в одной сети с отправителем..."
Можно и одну подсеть разбить шлюзом :-) и с обоих сторон будет один адрес сети.
"а "адрес" сети из чего берется? Из IP путем логического "И" с маской."
Ну, то есть насчет адреса сети ты согласился... :-)
"Гм, как вы себе это представляете? Порт есть понятие сугубо протокольной природы (в данном контексте по крайней мере)"
И порт, и интерфейс - тоже
самое. Все зависит от уровня модели OSI, на котором мы их рассматриваем. На физическом - контакты, на сетевом - протоколы...
"Можно и одну подсеть разбить шлюзом и с обоих сторон будет один адрес сети."
И нафиг тогда шлюз городить? В этом случае простого моста, работающего на
канальном уровне будет заглаза хватать... Шлюз он для того и нужен, чтобы разные пакеты из разных сетей маршрутизировать.
"Порт есть понятие ... блаблабла"
Или я недогоняю малось или вы :-)
Скажем, www.microsoft.com:80
Здесь 80 - это по вашему интерфейс?
"Все зависит от уровня модели OSI, на котором мы их рассматриваем."
Порт существует на сетевом уровне. Его невозможно рассматривать,
скажем на канальном, т.к. там его попросту нет.
"на сетевом - протоколы..."
протоколы есть на всех уровнях
скажем, Eth,IP,TCP,SMTP - всё это протоколы, а живут на четырех разных этажах :-)
Ну вот сами посудите или назвать COM-порт или последовательный интерфейс? Какая разница?
И вообще, вы где-нибудь слышали выражение "хаб с 16 сетевыми интерфейсами"? Правильней говорить "16-и портовый". Суть от этого все-равно не изменится...
Использовать протокол отличный от IP.
Можно создать свой.
Насколько помню первое слово в езернет пакете
определяет тип протокола, например: 0800 - IP, 0806 - ARP
и т.д.
Передавать широковещательные пакеты в сегменте,
все будут видеть, а за шлюз не уйдут.
Мейн, опять ты типа под моим ником? ай-ай-ай...у тебя же своих хватает...или это друой кто...короче, я, оригинальный Glass - зарегистрированный юзер, а все прочие - жалкие (а иногда очень качественные подделки)
Glass [гость], или кто там? :-)
Маршрутизатор работает на уровне межсетевого взаимодействия (если говорить в терминах стека TCP/IP), или сетевого - в терминах модели OSI. Учите мат.часть :-)
Под шлюзом имелся в виду маршрутизатор, а вы что подумали?
Тему вспомните. LAN а не WAN TV.
А в LAN, кроме любимого IP, могут ходить множество других протоколов, которые, обычно на выходе в WAN фильтруют.
Городить свой протокол - это круто, но может использовать любой LAN-ский протокол с возможностью широковещательности.
Внимание! сейчас Вы не авторизованы и не можете подавать сообщения как зарегистрированный пользователь.
Чтобы авторизоваться, нажмите на эту ссылку (после авторизации вы вернетесь на
эту же страницу)