pcapReader
协议包的PCAP文件读取器
描述
的pcapReader
object object object object object object object object object object object object object object object object object object object object您还可以插入自定义协议解码器。
创建
描述
集OutputTimestampFormat财产pcap
= pcapReader (文件名
,OutputTimestampFormat =“秒”
)秒
.
输入参数
文件名
- - - - - -PCAP文件名称
特征向量|字符串标量
包含扩展名的PCAP文件的名称,指定为字符向量或字符串标量。
例子:“ethernetSamplePackets.pcap”
数据类型:字符
|字符串
属性
OutputTimestampFormat
- - - - - -数据包时间戳的输出格式
微秒的
(默认)|“秒”
|“datetime”
数据包时间戳的输出格式,指定为微秒的
,“秒”
,或“datetime”
.该值指定解码后的协议报文的时间戳。
数据类型:字符
|字符串
MajorVersion
- - - - - -主要版本的PCAP文件格式
负的标量
此属性是只读的。
PCAP文件格式的主要版本,作为非负标量返回。
数据类型:双
MinorVersion
- - - - - -次要版本的PCAP文件格式
负的标量
此属性是只读的。
PCAP文件格式的次要版本,作为非负标量返回。
数据类型:双
SnapLength
- - - - - -PCAP文件中包的最大长度
负的标量
此属性是只读的。
PCAP文件中包的最大长度,作为非负标量返回。
数据类型:双
LinkType
- - - - - -PCAP全局标头中的链接类型
负的标量
链接名
- - - - - -由PCAP文件读取器对象给出的链接类型的名称
特征向量
此属性是只读的。
由PCAP文件读取器对象给出的链接类型的名称,作为字符向量返回。
数据类型:字符
NanoSecResolution
- - - - - -标志,指示PCAP文件是否具有纳秒分辨率的数据包时间戳
1
或真正的
|0
或假
此属性是只读的。
标志,以指示PCAP文件对数据包时间戳是否具有纳秒分辨率,返回为1
(真正的
)或0
(假
).
数据类型:逻辑
对象的功能
特定于此对象
addLinkTypeDecoder |
添加自定义链路层协议解码器到PCAP文件阅读器 |
addUpperLayerDecoder |
添加自定义上层协议解码器到PCAP文件阅读器 |
读 |
从PCAP文件读取下一个协议包 |
readAll |
读取PCAP文件从当前位置到末尾的所有协议报文 |
重置 |
将PCAP文件读取器的位置重置到PCAP文件的第一个协议包 |
例子
从PCAP文件中读取以太网数据包
创建一个PCAP文件读取器对象,指定PCAP文件的名称。
pcapReader obj = pcapReader(“ethernetSamplePackets.pcap”);
将PCAP文件中的所有数据包读取到MATLAB®工作空间。
decodedPackets = readAll(pcapReaderObj)
decodedPackets =1×35包含字段的struct数组:SNo Timestamp LinkType Protocol PacketLength报文RawBytes
从PCAP文件中以流方式读取以太网报文
创建一个PCAP文件读取器对象,指定PCAP文件的名称和数据包时间戳的输出格式。
pcapReader obj = pcapReader(“ethernetSamplePackets.pcap”,...OutputTimestampFormat =“datetime”);
为以太网源地址和以太网类型创建一个过滤器。
filterString = [”乙。SourceAddress == 44FB5A9710AC && '...”乙。Type == 2048'];
在流模式下,将与指定过滤器匹配的以太网数据包读取到MATLAB工作空间。
为ethPacket = read(pcapReaderObj,filterString)结束
ethPacket =带字段的结构: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 =带字段的结构: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 =带字段的结构: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文件中读取eCPRI报文
创建一个PCAP文件读取器对象,指定PCAP文件的名称。
pcapReader obj = pcapReader(“ethernetSamplePackets.pcap”);
为eCPRI包创建一个过滤器,指定eCPRI消息类型。
filterString = [“ecpri。MessageType == IQData || ecpri.消息类型MessageType == BitSequence '...“| | ecpri。MessageType == RemoteReset'];
将与指定过滤器匹配的eCPRI包读取到MATLAB工作空间。
ecpriFilteredFirstPacket = read(pcapReaderObj,filterString)
ecpriFilteredFirstPacket =带字段的结构:SNo: 21 Timestamp: 1.6128e+15 LinkType: 1 Protocol: 'eth' PacketLength: 64 Packet: [1x1 struct] RawBytes: [1x0 double]
ecpriFilteredSecondPacket = read(pcapReaderObj,filterString)
ecpriFilteredSecondPacket =带字段的结构: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数组:SNo Timestamp LinkType Protocol PacketLength报文RawBytes
将PCAP文件读取器的位置重置为PCAP文件的第一个包。
重置(pcapReaderObj);
在同一个PCAP文件上创建一个新的筛选器,指定消息类型为同相和正交(IQ)数据。
filterString =“ecpri。MessageType == IQData';
将与指定过滤器匹配的eCPRI包读取到MATLAB工作空间。
ecpriFilteredPackets = readAll(pcapReaderObj,filterString)
ecpriFilteredPackets =带字段的结构:SNo: 21 Timestamp: 1.6128e+15 LinkType: 1 Protocol: 'eth' PacketLength: 64 Packet: [1x1 struct] RawBytes: [1x0 double]
参考文献
[1]组,Tcpdump。“Tcpdump/Libpcap公共存储库。”2020年5月20日访问。https://www.tcpdump.org.
[2]开发/LibpcapFileFormat - Wireshark Wiki2020年5月20日访问。https://www.wireshark.org.
[3]“通用公共无线电接口:eCPRI接口规范V1.2”于2021年6月22日访问。
版本历史
R2021b中引入
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。