pcapngWriter

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

    Описание

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

    Можно записать эти типы пакетов в файл PCAPNG:

    • Сгенерированные и восстановленные 5G пакеты протокола NR

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

    • Сгенерированный и восстановленный Bluetooth® low energy (BLE) ссылки слоя (LL) пакеты (требует Communications Toolbox™ Library для протокола Bluetooth)

    Создание

    Описание

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

    пример

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

    Свойства

    расширить все

    Примечание

    The 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 пакетов NR, добавьте инкапсуляцию и метаданные к 5G пакету NR.

    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, M. «PCAP Next Generation (Pcapng) Capture File Format». 2020. https://www.ietf.org/.

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

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

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

    Генерация кода C/C + +
    Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

    .

    См. также

    Объекты

    Введенный в R2020b