Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Сети > как передать Ethernet пакет через Internet


Автор: semibug 7.4.2009, 23:46
Уважаемые знатоки.
Подскажите как правильно сформировать Ethernet пакет чтобы он дошел до нужного хоста в интернете. Собираю пакет в виде UDP дейтаграммы, оборачиваю соответствующими заголовками, чем заполнить поле MAC не знаю. Правильно ли будет получать его с помощью протокола ARP по IP адресу пункта назначения?
Пройдет ли передача, если указать в качестве MAC адреса маршруторизатора локальной сети?

Автор: Comm 8.4.2009, 07:40
Цитата

Правильно ли будет получать его с помощью протокола ARP по IP адресу пункта назначения?

Нет
Цитата

Пройдет ли передача, если указать в качестве MAC адреса маршруторизатора локальной сети?

Если своей то да

Автор: semibug 8.4.2009, 18:52
Цитата

Пройдет ли передача, если указать в качестве MAC адреса маршруторизатора локальной сети?

Цитата
Если своей то да 

 


Т.е. примерный план:
1. По известному IP шлюза нахожу его MAC (с помощью ARP).
2. Отсылаю Ethernet пакет по полученному MAC адресу, включающий IP пакет в котором прописан IP адрес назначения.

Правильно понимаю, что маршруторизатор понимает IP протокол и знает как выбирать IP из Ethernet пакета?
Ещё вопрос, после перехода за границы маршруторизатора ( шлюз в WAN ), в пакете Ethernet MAС адрес поменяется на адрес шлюза, прописанного в настройках маршруторизатора?
Интересно, каковы шансы дойти IP-пакету через интернет, если он содержит нестандартное вложение (отличное от строения TCP, UDP и др.), считая, что в пределах локальной сети фильтрации нет, провайдеры также не ограничивают содержимое.


Автор: jonie 8.4.2009, 20:27
быть может вам почитать про технологию NAT вообще? Шлюзы разные бывают )
ну и вообще про передачу данных между компьютерами?
Лично нам мало будет интересен BGP (например), нам скорее ethernet будет интересен, и он описан в книжке "Сети Компьютерные сети Принципы, технологии, протоколы. В.Г. Олифер, Н.А. Олифер"..

рекомендую прочитать и бОльшая часть вопросов отпадет сама собой... или goto sysadmins.su ))

Автор: semibug 8.4.2009, 22:43
ОК, спасибо. Пока ковырял англоязычные RFC, не везде удавалось смысл уловить.

Автор: J0ker 9.4.2009, 23:56
Цитата(Comm @ 8.4.2009,  07:40)
Цитата

Правильно ли будет получать его с помощью протокола ARP по IP адресу пункта назначения?

Нет

Да
ARP для этого и предназначен

Автор: Comm 14.4.2009, 02:47
Цитата

Правильно ли будет получать его с помощью протокола ARP по IP адресу пункта назначения?
Цитата

Да
ARP для этого и предназначен 



Если я не ошибаюсь в поле MAC адреса нужно вводить МАС шлюза а не пункта назначения =))) 

Автор: J0ker 15.4.2009, 01:16
Цитата(Comm @ 14.4.2009,  02:47)
Цитата

Правильно ли будет получать его с помощью протокола ARP по IP адресу пункта назначения?
Цитата

Да
ARP для этого и предназначен 



Если я не ошибаюсь в поле MAC адреса нужно вводить МАС шлюза а не пункта назначения =)))

только в том случае, если ARP не разрешил адрес
при этом MAC шлюза тоже разрешается через ARP

Автор: Comm 15.4.2009, 02:16
Т.е. фактически я могу узнать MAC адрес компьютера который находится не только не в моей сети но и в другом городе,я правильно понял?

Автор: J0ker 15.4.2009, 07:32
Цитата(Comm @ 15.4.2009,  02:16)
Т.е. фактически я могу узнать MAC адрес компьютера который находится не только не в моей сети но и в другом городе,я правильно понял?

неправильно
посредством ARP можно получить MAC находящейся в твоей подсети
если ARP не может разрешить MAC адреса получателя, то через ARP разрешается MAC шлюза, затем в пакет ставится IP назначения, но MAC шлюза, шлюз ловит пакет и делает то-же самое - пытается разрешить IP в MAC, если не получается он ставит в пакет MAC своего шлюза и т.д. пока пакет не достигнет подсети, где удасться разрешить IP назначения в MAC - это и есть целевой интерфейс

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

Автор: Comm 15.4.2009, 15:02
Ну вот,тогда на впорос:
Цитата

Правильно ли будет получать его с помощью протокола ARP по IP адресу пункта назначения?

я овтетил правильно,ведь речь шла :
Цитата

Подскажите как правильно сформировать Ethernet пакет чтобы он дошел до нужного хоста в интернете. 

А то я уже на время усмонился в своем понимании работы протокола ARP/RARP =)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)