Обновление переменной git в командной строке Shell для каждой команды

Вы создаете сетевые интерфейсы, которые могут отправлять и получать пакеты, поддерживаемые некоторой программой (которая, в вашем случае, будет каким-то образом связана с GNU Radio), используя tun/tap интерфейс.

Цитирую по Documentation/networking/tuntap.txt в исходном тексте ядра:

TUN/TAP обеспечивает прием и передачу пакетов для программ пользовательского пространства. Его можно рассматривать как простое устройство Point-to-Point или Ethernet, которое, вместо приема пакетов с физического носителя, получает их от программы пространства пользователя и вместо отправки пакетов через физический носитель записывает их в программу пространства пользователя.

Для использования драйвера программа должна открыть /dev/net/tun и выпустить соответствующий ioctl() для регистрации сетевого устройства в ядре. Сетевое устройство будет отображаться как tunXX или tapXX, в зависимости от выбранных опций. Когда программа закрывает дескриптор файла, сетевое устройство и все соответствующие маршруты исчезнут.

В зависимости от типа выбранного устройства программа пользовательского пространства должна читать/писать IP-пакеты (с tun) или кадры ethernet (с tap). Какой из них используется зависит от флагов, заданных в ioctl().

Пакет от http://vtun.sourceforge.net/tun содержит два простых примера использования устройств tun и tap. Обе программы работают как мост между двумя сетевыми интерфейсами.

br_select.c - мост, основанный на системном вызове select.

br_sigio.c - мост на основе async io и сигнала SIGIO.

Однако лучшим примером является VTun http://vtun.sourceforge.net

Также смотрите этот вопрос на stackoverflow. Множество руководств можно найти в google.

1
13.01.2016, 02:55
0 ответов

Теги

Похожие вопросы