exponenta event banner

pcapngWriter

Устройство записи файлов PCAPNG пакетов протокола

    Описание

    pcapngWriter запись сгенерированных и восстановленных пакетов протокола в файл захвата пакетов следующего поколения (PCAPNG) (.pcapng).

    В файл PCAPNG можно записать следующие типы пакетов:

    • Произведенный и восстановленный 5G НОМЕР пакетов протокола

    • Сгенерированные и восстановленные пакеты протокола WLAN (требуется Toolbox™ WLAN)

    • Сгенерированные и восстановленные пакеты на канальном уровне (LL) Bluetooth ® с низким энергопотреблением (требуется библиотека Communications Toolbox™ Library для протокола Bluetooth)

    Создание

    Описание

    pcapngObj = pcapngWriter создает объект записи файла PCAPNG по умолчанию.

    пример

    pcapngObj = pcapngWriter(Name,Value) задает свойства, используя один или несколько аргументов пары имя-значение. Заключите каждое имя свойства в кавычки. Например, 'ByteOrder','big-endian' указывает порядок байтов как big-endian.

    Свойства

    развернуть все

    Примечание

    pcapngWriter объект не перезаписывает существующий файл PCAPNG. При каждом вызове этого объекта укажите уникальное имя файла PCAPNG.

    Имя файла PCAPNG, указанное как вектор символьной строки или скаляр строки.

    Типы данных: char | string

    Порядок байтов, указанный как 'little-endian' или 'big-endian'.

    Типы данных: char | string

    Комментарий для файла PCAPNG, указанный как символьный вектор или строковый скаляр.

    Типы данных: char | string

    Функции объекта

    развернуть все

    writeЗапись пакетных данных протокола в файл PCAP или PCAPNG
    writeCustomBlockЗапись пользовательского блока в файл PCAPNG
    writeInterfaceDescriptionBlockЗапись блока описания интерфейса в файл PCAPNG

    Примеры

    свернуть все

    Создайте объект модуля записи файлов PCAPNG, указав имя файла PCAPNG.

    pcapngObj = pcapngWriter('FileName','sample');

    Запишите блок интерфейса для 5G New Radio (NR). 5G Пакеты NR не имеют допустимого типа канала. В соответствии с Tcpdump, если действительный тип канала отсутствует, укажите тип канала для пакета SLL.

    interface = '5GNR';                                       % Interface name
    linkType = 113;                                           % Link type of SLL packet
    timestamp = 300;                                          % Timestamp
    interfaceID = writeInterfaceDescriptionBlock(pcapngObj,linkType,interface);

    5G Пакеты NR не поддерживаются непосредственно программой Wireshark. Чтобы позволить Wireshark разобрать 5G НОМЕР пакетов, добавьте герметизацию и метаданные к 5G НОМЕР пакета.

    payload = [59; 205];                                      % MAC subPDU (contains truncated buffer status report (BSR) control element)
    radioType = 1;                                            % Frequency division duplexing
    linkDir   = 0;                                            % Uplink packet
    rntiType = 3;                                             % Cell-RNTI
    startString = [109; 97; 99; 45; 110; 114];                % Tag to indicate start of NR MAC signature
    payloadTag = 1;                                           % Payload tag for NR MAC packets
    signature = [startString; radioType; linkDir; rntiType];
    macNRInfoPacket = [signature; payloadTag; payload];

    Создайте заголовок протокола пользовательских дейтаграмм (UDP).

    udpPacketLength = 8 + length(macNRInfoPacket);            % Length of header (8 bytes) and payload
    udpHeader = [163; 76;                                     % Source port number
        39; 15;                                               % Destination port number
        fix(udpPacketLength/256); mod(udpPacketLength,256);   % Total length of UDP packet
        0; 0];                                                % Checksum

    Создайте заголовок IPv4.

    ipPacketLength = 20 + udpPacketLength;                    % Length of header (20 bytes) and payload
    ipHeader = [69;                                           % Version of IP protocol and priority or traffic class
        0;                                                    % Type of service
        fix(ipPacketLength/256);mod(ipPacketLength,256);      % Total length of the IPv4 packet
        0; 1;                                                 % Identification
        0; 0;                                                 % Flags and fragmentation offset
        64;                                                   % Time to live in seconds
        17;                                                   % Protocol number
        0; 0;                                                 % Header checksum
        127; 0; 0; 1;                                         % Source IP address
        127; 0; 0; 1];                                        % Destination IP address

    Создайте заголовок SLL.

    sllHeader = [0; 0;                                        % Packet type
        3; 4;                                                 % Address resolution protocol hardware (ARPHRD) type
        0; 0;                                                 % Link layer address length
        0; 0; 0; 0; 0; 0; 0; 0;                               % Link layer address
        8; 0];                                                % Protocol type

    Создайте пакет 5G NR путем добавления инкапсуляции и метаданных.

    packet = [sllHeader; ipHeader; udpHeader; macNRInfoPacket];

    Запишите пакет 5G NR в файл PCAPNG.

    packetComment = 'This is NR MAC packet';                  % Packet comment
    write(pcapngObj,packet,timestamp,interfaceID,'PacketComment',packetComment);

    Ссылки

    [1] Tuexen, М. «Формат файла захвата PCAP следующего поколения (Pcapng)». 2020. https://www.ietf.org/.

    [2] Группа, Tcpdump. «Общий репозиторий Tcpdump/Libpcap». Доступно 20 мая 2020 года. https://www.tcpdump.org.

    [3] «Разработка/LibpcapFileFormat - Wiki Wiki Wireshark». Доступно 20 мая 2020 года. https://www.wireshark.org/.

    Расширенные возможности

    Создание кода C/C + +
    Создайте код C и C++ с помощью MATLAB ® Coder™

    .

    См. также

    Объекты

    Представлен в R2020b