Пишу приложение-сервер для трансляции AVI(DivX) фильмов по сетке, почти готово. Использую пакет WinPCap, который работает напрямую с сетевухой без всяких там WinSock'етов.

Нужна небольшая инф. поддержка в вопросах связанных с судьбой посланного в сеть пакета. До кого в сегменте он доходит, по какому принципу шлюз фильтрует пакеты. В общем в этих вопросах я не сильно силен (пока).

Основная идея (без тонкостей и подробностей) такова:

приложение-сервер начинает посылку пакетов в сеть - это разрезанный AVI-файл, причем сначала посылается заголовок файла ~10Kb, потом индекс ~7Mb (он находится в конце AVI-шки) и только после этого сам оставшийся поток фреймов со скоростью необходимой для синхронного приема и воспроизведения файла. При таком решении и сеть сильно не засоряется и формат файла остается неизменным.

приложение-клиент завидев в сетке пакеты от приложения-сервера создает на диске пустой файло размером ~650Mb и заполнив заголовок и индекс AVI-файла пекетами из сети, запускает просмотр АVI-шки и оновременно продолжает заполнять файло с некоторым опережением, чтобы кодеки не напоролись на пустоту.

Дело в том, что используя пакет WinPCap в сетку можно посылать пакеты содержимое которых полностью задается через буфер, включая MAC-адреса. Вот я и спрашиваю как грамотно заполнить поля заголовка пакетов, чтобы по сегменту они транслировались, а дальше никуда не шли.
0
Шлюз работает на сетевом уровне, и если в заголовке пакета указан адрес сети, совпадающий с адресом сети порта шлюза, то дальше этого сегмента такой пакет не пойдет. Если нет, то он маршрутизируется в соответствии со своей таблицей маршрутизации.
0
Accel
только не "адресом сети порта шлюза", а IP сетевого интерфейса, "смотрящего" в этот сегмент

ЗЫ смотря что за шлюз, если там еще и прокся, то так и так не пойдет
0
Accel
ЗЗЫ "Если нет, то он маршрутизируется в соответствии со своей таблицей маршрутизации."

Пакет роутится _всегда_ в соответствие со своей таблицей маршрутизации, можно так настроить роутинг, что любой пакет будет роутиться.
0
[GRIZZLY]
Да в том то и дело, что не IP, а адреса сети этого IP. А порт и сетевой интерфейс - тоже самое.
Я согласен, возможность настраивать, а толку? пакет уйдет и что дальше? получатель-то в одной сети с отправителем...
0
Accel
"Да в том то и дело, что не IP, а адреса сети этого IP."
а "адрес" сети из чего берется? Из IP путем логического "И" с маской.

"А порт и сетевой интерфейс - тоже самое."
Гм, как вы себе это представляете? Порт есть понятие сугубо протокольной природы :-) (в данном контексте по крайней мере)

"Я согласен, возможность настраивать, а толку? пакет уйдет и что дальше? получатель-то в одной сети с отправителем..."
Можно и одну подсеть разбить шлюзом :-) и с обоих сторон будет один адрес сети.
0
[GRIZZLY]
"а "адрес" сети из чего берется? Из IP путем логического "И" с маской."
Ну, то есть насчет адреса сети ты согласился... :-)

"Гм, как вы себе это представляете? Порт есть понятие сугубо протокольной природы (в данном контексте по крайней мере)"
И порт, и интерфейс - тоже самое. Все зависит от уровня модели OSI, на котором мы их рассматриваем. На физическом - контакты, на сетевом - протоколы...

"Можно и одну подсеть разбить шлюзом и с обоих сторон будет один адрес сети."
И нафиг тогда шлюз городить? В этом случае простого моста, работающего на канальном уровне будет заглаза хватать... Шлюз он для того и нужен, чтобы разные пакеты из разных сетей маршрутизировать.
0
Accel
"Порт есть понятие ... блаблабла"
Или я недогоняю малось или вы :-)
Скажем, www.microsoft.com:80
Здесь 80 - это по вашему интерфейс?

"Все зависит от уровня модели OSI, на котором мы их рассматриваем."
Порт существует на сетевом уровне. Его невозможно рассматривать, скажем на канальном, т.к. там его попросту нет.

"на сетевом - протоколы..."
протоколы есть на всех уровнях
скажем, Eth,IP,TCP,SMTP - всё это протоколы, а живут на четырех разных этажах :-)
0
[GRIZZLY]
Ну вот сами посудите или назвать COM-порт или последовательный интерфейс? Какая разница?
И вообще, вы где-нибудь слышали выражение "хаб с 16 сетевыми интерфейсами"? Правильней говорить "16-и портовый". Суть от этого все-равно не изменится...
0
TVadim
Использовать протокол отличный от IP.
Можно создать свой.
Насколько помню первое слово в езернет пакете
определяет тип протокола, например: 0800 - IP, 0806 - ARP
и т.д.
Передавать широковещательные пакеты в сегменте,
все будут видеть, а за шлюз не уйдут.
0
Alex Boosh
Бродкосты тоже резать можно...

автору програмы - при получении положительного рещультата каковы условия распространения программки?:-) интересно жутко...
0
2GRIZZLY [гость]
Шлюз работает на транспортном уровне, ибо шлюз и дефаулт гетвей разные вещи.
0
2GRIZZLY [гость]
NIC это есть сетевой интерфейс порт же это есть совокупность стека протокола TCP/IP и номера предоставляемой службы .
0
Glass
Мейн, опять ты типа под моим ником? ай-ай-ай...у тебя же своих хватает...или это друой кто...короче, я, оригинальный Glass - зарегистрированный юзер, а все прочие - жалкие (а иногда очень качественные подделки)
0
[GRIZZLY]
Glass [гость], или кто там? :-)
Маршрутизатор работает на уровне межсетевого взаимодействия (если говорить в терминах стека TCP/IP), или сетевого - в терминах модели OSI. Учите мат.часть :-)
Под шлюзом имелся в виду маршрутизатор, а вы что подумали?
0
TVadim
Тему вспомните. LAN а не WAN TV.
А в LAN, кроме любимого IP, могут ходить множество других протоколов, которые, обычно на выходе в WAN фильтруют.
Городить свой протокол - это круто, но может использовать любой LAN-ский протокол с возможностью широковещательности.
0
Авторизуйтесь, чтобы принять участие в дискуссии.