Запишите пакетные данные о протоколе в 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');
Запишите интерфейсный блок для Нового радио (NR) 5G. 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);
Примечание
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 (Pcapng) Формат файла Получения”. 2020. https://www.ietf.org/.
[2] Группа, Tcpdump. “Репозиторий Общественности Tcpdump/Libpcap”. Полученный доступ 20 мая 2020. https://www.tcpdump.org.
[3] “Development/LibpcapFileFormat - Wiki Wireshark”. Полученный доступ 20 мая 2020. https://www.wireshark.org/.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.