Запись пакетных данных протокола в PCAP или файл PCAPNG
write(
записывает пакетные данные протокола в файл PCAPNG, указанный в объекте средства записи файлов PCAPNG, pcapngObj
,packet
,timestamp
,interfaceID
)pcapngObj
. Входные packet
, timestamp
, и interfaceID
определяет пакет протокола, время поступления пакета и идентификатор интерфейса, соответственно.
write(___,
задает опции, использующие один или несколько аргументы пары "имя-значение" в дополнение к комбинациям входных аргументов из любого из предыдущих синтаксисов. Для примера, Name,Value
)'PacketFormat','bits'
устанавливает формат пакетов протокола в битах.
Создайте объект средства записи файлов PCAP, задав имя файла PCAP.
pcapObj = pcapWriter('FileName','write5GNRpacket'); timestamp = 300; % Timestamp
5G NR-пакеты не имеют допустимого типа ссылки. Согласно Tcpdump, если допустимый тип ссылки отсутствует, укажите тип ссылки для пакета SLL.
linkType = 113;
Запись глобального заголовка в файл PCAP.
writeGlobalHeader(pcapObj,linkType);
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 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);
Создайте объект средства записи файлов PCAPNG, задав имя файла PCAPNG.
pcapngObj = pcapngWriter('FileName','write5GNRpacket');
Запишите блок интерфейса для 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 short 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 в файл PCAPNG.
packetComment = 'This is 5G NR MAC packet'; % Packet comment write(pcapngObj,packet,timestamp,interfaceID,'PacketComment',packetComment);
Примечание
The pcapWriter
и pcapngWriter
объекты не перезаписывают существующие файлы PCAP или PCAPNG, соответственно. Во время каждого вызова этих объектов задайте уникальное имя файла PCAP или PCAPNG.
pcapObj
- Объект средства записи файлов PCAPpcapWriter
объектОбъект средства записи файлов PCAP, заданный как pcapWriter
объект.
packet
- Пакет протоколаПакет протокола, заданный в качестве одного из следующих значений.
Двоичный вектор - Это значение представляет биты.
Вектор символов - это значение представляет октеты в шестнадцатеричном формате.
Строковый скаляр - это значение представляет октеты в шестнадцатеричном формате.
Числовой вектор с каждым элементом в области значений [0, 255] - Это значение представляет октеты в десятичном формате.
n массива символов -by-2 - В этом значении каждая строка представляет октет в шестнадцатеричном формате.
Типы данных: char
| string
| double
timestamp
- Время прибытия пакетаВремя поступления пакета с 1/1/1970, заданное как неотрицательное целое число. Это значение должно быть выражено в микросекундах.
Типы данных: double
pcapngObj
- Объект средства записи файлов PCAPNGpcapngWriter
объектОбъект средства записи файлов PCAPNG, заданный как pcapngWriter
объект.
interfaceID
- Уникальный идентификатор для интерфейсаУникальный идентификатор для интерфейса, заданный как неотрицательный скаляр.
Типы данных: double
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
'PacketFormat','bits'
задает формат пакета протокола в виде бит.'PacketFormat'
- Формат пакета протокола'octets'
(по умолчанию) | 'bits'
Формат пакета протокола, заданный как разделенная разделенными запятой парами, состоящая из PacketFormat
и 'octets'
или 'bits'
. Если это значение задано как 'octets'
, packet
задается как одно из следующих значений.
Двоичный вектор - Это значение представляет биты.
Вектор символов - это значение представляет октеты в шестнадцатеричном формате.
Строковый скаляр - это значение представляет октеты в шестнадцатеричном формате.
Числовой вектор с каждым элементом в области значений [0, 255] - Это значение представляет октеты в десятичном формате.
n массива символов -by-2 - В этом значении каждая строка представляет октет в шестнадцатеричном формате.
Типы данных: char
| string
| double
'PacketComment'
- Комментарий для пакета протокола''
(по умолчанию) | символьный вектор | строковый скалярКомментарий для пакета протокола, заданный как разделенная разделенными запятой парами, состоящая из PacketComment
и вектор символов или строковый скаляр.
Чтобы включить этот аргумент пары "имя-значение", задайте pcapngObj
входной параметр.
Типы данных: char
| string
[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/.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.