pcapWriter

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

    Описание

    pcapWriter возразите записям сгенерированные и восстановленные пакеты протокола против пакетного получения (PCAP) файл (.pcap).

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

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

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

    • Низкая энергия сгенерированного и восстановленного Bluetooth® (BLE) пакеты слоя ссылки (LL) (требует Библиотеки Communications Toolbox™ для Протокола Bluetooth),

    Создание

    Описание

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

    пример

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

    Свойства

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

    Примечание

    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);

    Пакеты Нового радио (NR) 5G непосредственно не поддерживаются 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] Группа, Tcpdump. “Репозиторий Общественности Tcpdump/Libpcap”. Полученный доступ 20 мая 2020. https://www.tcpdump.org.

    [2] “Development/LibpcapFileFormat - Wiki Wireshark”. Полученный доступ 20 мая 2020. https://www.wireshark.org/.

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

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

    Смотрите также

    Объекты

    Введенный в R2020b