exponenta event banner

pcapWriter

Запись пакетов протокола в файл PCAP

    Описание

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

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

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

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

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

    Создание

    Описание

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

    пример

    pcapObj = pcapWriter(Name,Value) задает свойства, используя один или несколько аргументов пары имя-значение. Заключите каждое имя свойства в кавычки. Например, 'ByteOrder','big-endian' указывает порядок байтов как 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);

    Пакеты 5G New Radio (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 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 НОМЕР пакета, добавляя герметизацию и метаданные.

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

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

    write(pcapObj,packet,timestamp);

    Ссылки

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

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

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

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

    .

    См. также

    Объекты

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