pcapReader

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

    Описание

    pcapReader возразите читает и декодирует Ethernet и пакеты протокола расширенного общего общедоступного радио-интерфейса (eCPRI) на основе определенных критериев. Можно также включить пользовательские декодеры протокола.

    Создание

    Описание

    пример

    pcap = pcapReader(filename) создает объект средства чтения файлов PCAP считать пакеты протокола из файла входа PCAP.

    пример

    pcap = pcapReader(filename,OutputTimestampFormat='seconds') свойство OutputTimestampFormat наборов к seconds.

    Входные параметры

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

    Имя файла PCAP включая расширение в виде вектора символов или строкового скаляра.

    Пример: "ethernetSamplePackets.pcap"

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

    Свойства

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

    Выходной формат для пакета устанавливает метку времени в виде 'microseconds'секунды, или 'datetime'. Это значение задает метку времени декодируемого пакета протокола.

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

    Это свойство доступно только для чтения.

    Основная версия формата файла PCAP, возвращенного как неотрицательный скаляр.

    Типы данных: double

    Это свойство доступно только для чтения.

    Вспомогательная версия формата файла PCAP, возвращенного как неотрицательный скаляр.

    Типы данных: double

    Это свойство доступно только для чтения.

    Максимальная длина пакета в файле PCAP, возвращенном как неотрицательный скаляр.

    Типы данных: double

    Это свойство доступно только для чтения.

    Соедините тип в глобальном заголовке PCAP, возвращенном как неотрицательный скаляр. Для получения дополнительной информации об этом свойстве, см. Общедоступный Репозиторий Tcpdump/Libpcap [1].

    Типы данных: double

    Это свойство доступно только для чтения.

    Имя типа ссылки дано объектом средства чтения файлов PCAP, возвращенным как вектор символов или строковый скаляр.

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

    Это свойство доступно только для чтения.

    Отметьте, чтобы указать, имеет ли файл PCAP разрешение наносекунды для пакетной метки времени, возвращенной как 1 TRUE) или 0 ложь).

    Типы данных: логический

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

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

    addLinkTypeDecoderДобавьте декодер протокола слоя настраиваемой ссылки в средство чтения файлов PCAP
    addUpperLayerDecoderДобавьте пользовательский декодер протокола верхнего уровня в средство чтения файлов PCAP
    readСчитайте следующий пакет протокола из файла PCAP
    readAllСчитайте все пакеты протокола от текущего положения до конца файла PCAP
    resetСбросьте положение средства чтения файлов PCAP к первому пакету протокола файла PCAP

    Примеры

    свернуть все

    Создайте объект средства чтения файлов PCAP, задав имя файла PCAP.

    pcapReaderObj = pcapReader('ethernetSamplePackets.pcap');

    Считайте все пакеты от файла PCAP до рабочей области MATLAB®.

    decodedPackets = readAll(pcapReaderObj)
    decodedPackets=1×35 struct array with fields:
        SNo
        Timestamp
        LinkType
        Protocol
        PacketLength
        Packet
        RawBytes
    
    

    Создайте объект средства чтения файлов PCAP, задав имя файла PCAP и выходного формата для пакетной метки времени.

    pcapReaderObj = pcapReader('ethernetSamplePackets.pcap', ...
        OutputTimestampFormat='datetime');

    Создайте фильтр для исходного адреса Ethernet и типа Ethernet.

    filterString = ['eth.SourceAddress == 44FB5A9710AC && ' ...
        'eth.Type == 2048'];

    В потоковом режиме считайте пакеты Ethernet, которые совпадают с заданным фильтром к рабочему пространству MATLAB.

    for packetCount = 1:3
        ethPacket = read(pcapReaderObj,filterString)
    end
    ethPacket = struct with fields:
                 SNo: 1
           Timestamp: 08-Feb-2021 03:27:18.043900
            LinkType: 1
            Protocol: 'eth'
        PacketLength: 171
              Packet: [1x1 struct]
            RawBytes: [1x0 double]
        TimestampSec: 1.6128e+09
    
    
    ethPacket = struct with fields:
                 SNo: 4
           Timestamp: 08-Feb-2021 03:27:19.098190
            LinkType: 1
            Protocol: 'eth'
        PacketLength: 120
              Packet: [1x1 struct]
            RawBytes: [1x0 double]
        TimestampSec: 1.6128e+09
    
    
    ethPacket = struct with fields:
                 SNo: 5
           Timestamp: 08-Feb-2021 03:27:20.145857
            LinkType: 1
            Protocol: 'eth'
        PacketLength: 171
              Packet: [1x1 struct]
            RawBytes: [1x0 double]
        TimestampSec: 1.6128e+09
    
    

    Создайте объект средства чтения файлов PCAP, задав имя файла PCAP.

    pcapReaderObj = pcapReader('ethernetSamplePackets.pcap');

    Создайте фильтр для eCPRI пакетов, задав eCPRI типы сообщений.

    filterString = ['ecpri.MessageType == IQData || ecpri.MessageType == BitSequence ' ...
        '|| ecpri.MessageType == RemoteReset'];

    Считайте eCPRI пакеты, которые совпадают с заданными фильтрами к рабочему пространству MATLAB.

    ecpriFilteredFirstPacket = read(pcapReaderObj,filterString)
    ecpriFilteredFirstPacket = struct with fields:
                 SNo: 21
           Timestamp: 1.6128e+15
            LinkType: 1
            Protocol: 'eth'
        PacketLength: 64
              Packet: [1x1 struct]
            RawBytes: [1x0 double]
    
    
    ecpriFilteredSecondPacket = read(pcapReaderObj,filterString)
    ecpriFilteredSecondPacket = struct with fields:
                 SNo: 22
           Timestamp: 1.6128e+15
            LinkType: 1
            Protocol: 'eth'
        PacketLength: 64
              Packet: [1x1 struct]
            RawBytes: [1x0 double]
    
    
    ecpriFilteredRemainingPackets = readAll(pcapReaderObj,filterString)
    ecpriFilteredRemainingPackets=1×5 struct array with fields:
        SNo
        Timestamp
        LinkType
        Protocol
        PacketLength
        Packet
        RawBytes
    
    

    Сбросьте положение средства чтения файлов PCAP к первому пакету файла PCAP.

    reset(pcapReaderObj);

    Создайте новый фильтр на том же файле PCAP, задав тип сообщения как синфазный и квадратура (IQ) данные.

    filterString = 'ecpri.MessageType == IQData';

    Считайте eCPRI пакеты, которые совпадают с заданным фильтром к рабочему пространству MATLAB.

    ecpriFilteredPackets = readAll(pcapReaderObj,filterString)
    ecpriFilteredPackets = struct with fields:
                 SNo: 21
           Timestamp: 1.6128e+15
            LinkType: 1
            Protocol: 'eth'
        PacketLength: 64
              Packet: [1x1 struct]
            RawBytes: [1x0 double]
    
    

    Ссылки

    [1] Группа, Tcpdump. “Репозиторий Общественности Tcpdump/Libpcap”. Полученный доступ 20 мая 2020. https://www.tcpdump.org.

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

    [3] “Общий Общедоступный Радио-Интерфейс: Спецификация V1.2 Интерфейса eCPRI” Получила доступ 22 июня 2021.

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

    Объекты

    Введенный в R2021b