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


Автор: box 8.5.2014, 11:54
всем привет !
подскажите пожалуйста как собрать пакет с vlan tag'ом . заполнить поля структуры
желательно с примером 

Автор: tzirechnoy 8.5.2014, 14:26
Это сильно зависит от используемого сетевого стэка.

Автор: box 8.5.2014, 15:43
оська фряха 10-я , компилятор c++

Автор: konshyn 8.5.2014, 18:30
Цитата(tzirechnoy @  8.5.2014,  14:26 Найти цитируемый пост)
Это сильно зависит от используемого сетевого стэка. 


Цитата(box @  8.5.2014,  15:43 Найти цитируемый пост)
оська фряха 10-я , компилятор c++ 


box, почитай про сетевую модель OSI.
Предположу, что тебе нужно собрать пакет для ethernet-сети.

http://ru.wikipedia.org/wiki/IEEE_802.1Q vlan заголовка. 
Преамбула используется для сетевых устройств, и тебе она вообще не нужна. ее заполнять не нужно и оставлять для нее место тоже.
дальше по формату пакет будет выглядеть так(байты идут по порядку, я напишу в разных строках для понимания):

54 04 a6 bf b0 43 (mac получателя. здесь написан частный случай, вообще заполняй все 0xFF)
FF FF FF FF FF FF (вот так)
64 66 b3 01 80 dd (это мак твоего сетевого устройства)
81 00 (id протокола 802.1q (vlan))
00 63 (про эти два байта в ссылек на вики почитай. здесь записан vlan 110)
08 00 (ID протокола ip)
[20 байт]  - заполнение заголовка ip
[8 или 20 байт] - заполнение заголовка udp или tcp (для примера)
[1460] - байт - данные(максимум в сетях ethernet. формально максимум (в Интернет пакет с большим размером не сможешь отправить,а в локальных сетях можно и больше, но нужно увезде увеличивать MTU))


вот и готов твой пакет 

Автор: box 9.5.2014, 00:41
а как будет выглядеть порядок цыфр в програмном коде , приведите пример пожалуйста 

Автор: konshyn 9.5.2014, 13:42
Цитата(box @  9.5.2014,  00:41 Найти цитируемый пост)
а как будет выглядеть порядок цыфр в програмном коде , приведите пример пожалуйста  


Не понимаю вопроса. 
Выше написал, как будет выглядеть пакет. Все байты идут по порядку. Закинуть нужно в обычный массив (unsigned char). И отправить.


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