pcapWriter

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

    Описание

    The pcapWriter объект записывает сгенерированные и восстановленные пакеты протокола в файл захвата пакетов (PCAP) (.pcap).

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

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

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

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

    Создание

    Описание

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

    пример

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

    Свойства

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

    Примечание

    The pcapWriter Объект не перезаписывает существующий файл PCAP. Во время каждого вызова этого объекта задайте уникальное имя файла PCAP.

    Имя файла PCAP, заданное как символьный вектор-строка или строковый скаляр.

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

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

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

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

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

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

    Примеры

    свернуть все

    Создайте объект средства записи файлов PCAP, задав имя файла PCAP. 5G NR-пакеты не имеют допустимого типа ссылки. Согласно Tcpdump, если допустимый тип ссылки отсутствует, укажите тип ссылки для пакета SLL.

    pcapObj = pcapWriter('FileName','sample');
    linkType = 113;                                         % Link type of SLL packet
    timestamp = 300;                                        % Timestamp

    Запись глобального заголовка в файл PCAP.

    writeGlobalHeader(pcapObj,linkType);

    Пакеты 5G New Radio (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 the start of NR MAC signature
    payloadTag = 1;                                         % Payload tag for NR 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;                                                 % UDP 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 в файл PCAP.

    write(pcapObj,packet,timestamp);

    Ссылки

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

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

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

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

    .

    См. также

    Объекты

    Введенный в R2020b