| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Сети > как передать Ethernet пакет через Internet |
| Автор: semibug 7.4.2009, 23:46 |
| Уважаемые знатоки. Подскажите как правильно сформировать Ethernet пакет чтобы он дошел до нужного хоста в интернете. Собираю пакет в виде UDP дейтаграммы, оборачиваю соответствующими заголовками, чем заполнить поле MAC не знаю. Правильно ли будет получать его с помощью протокола ARP по IP адресу пункта назначения? Пройдет ли передача, если указать в качестве MAC адреса маршруторизатора локальной сети? |
| Автор: Comm 8.4.2009, 07:40 | ||||
Нет
Если своей то да |
| Автор: semibug 8.4.2009, 18:52 | ||||
Т.е. примерный план: 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 | ||||
Да ARP для этого и предназначен |
| Автор: Comm 14.4.2009, 02:47 | ||||
Если я не ошибаюсь в поле MAC адреса нужно вводить МАС шлюза а не пункта назначения =))) |
| Автор: J0ker 15.4.2009, 01:16 | ||||||
только в том случае, если ARP не разрешил адрес при этом MAC шлюза тоже разрешается через ARP |
| Автор: Comm 15.4.2009, 02:16 |
| Т.е. фактически я могу узнать MAC адрес компьютера который находится не только не в моей сети но и в другом городе,я правильно понял? |
| Автор: J0ker 15.4.2009, 07:32 | ||
неправильно посредством ARP можно получить MAC находящейся в твоей подсети если ARP не может разрешить MAC адреса получателя, то через ARP разрешается MAC шлюза, затем в пакет ставится IP назначения, но MAC шлюза, шлюз ловит пакет и делает то-же самое - пытается разрешить IP в MAC, если не получается он ставит в пакет MAC своего шлюза и т.д. пока пакет не достигнет подсети, где удасться разрешить IP назначения в MAC - это и есть целевой интерфейс здесь надо, конечно, сделать оговорку, что в определении MACа назначения участвует так-же и маска подсети. Обычно, если адрес не попадает в подсеть, то автоматически ставится MAC маршрутизатора, либо, если ARP запрос все-таки послан, то отвечает на него маршрутизатор, который знает маршрут - независимо от того, его это адрес или нет |
| Автор: Comm 15.4.2009, 15:02 | ||||
Ну вот,тогда на впорос:
я овтетил правильно,ведь речь шла :
А то я уже на время усмонился в своем понимании работы протокола ARP/RARP =) |