主要内容

pcapReader

PCAP文件阅读器协议数据包

自从R2021b

    描述

    pcapReader对象读取和解码以太网和增强公共公共广播电台接口(eCPRI)协议数据包根据特定标准。你也可以插入自定义协议解码器。

    创建

    描述

    例子

    pcap= pcapReader (文件名)创建一个PCAP文件读者对象阅读协议数据包从输入PCAP文件。

    例子

    pcap= pcapReader (文件名,OutputTimestampFormat =“秒”)OutputTimestampFormat财产

    输入参数

    全部展开

    PCAP文件包括扩展名,指定为一个特征向量或字符串标量。

    例子:“ethernetSamplePackets.pcap”

    数据类型:字符|字符串

    属性

    全部展开

    输出格式的数据包的时间戳,指定为微秒的,“秒”,或“datetime”。这个值指定解码协议包的时间戳。

    数据类型:字符|字符串

    这个属性是只读的。

    主要版本的PCAP文件格式,作为一个非负标量返回。

    数据类型:

    这个属性是只读的。

    小版本的PCAP文件格式,作为一个非负标量返回。

    数据类型:

    这个属性是只读的。

    最大长度的数据包PCAP文件,作为一个非负标量返回。

    数据类型:

    这个属性是只读的。

    链接类型PCAP全球头,作为一个非负标量返回。这个属性的更多信息,请参阅Tcpdump / Libpcap公共存储库[1]

    数据类型:

    这个属性是只读的。

    名称的链接类型PCAP文件读者对象,作为一个特征向量返回。

    数据类型:字符

    这个属性是只读的。

    国旗表明是否的纳秒精度PCAP文件包的时间戳,返回1(真正的)或0()。

    数据类型:逻辑

    对象的功能

    全部展开

    addLinkTypeDecoder 添加自定义链路层协议解码器PCAP文件阅读器
    addUpperLayerDecoder 添加自定义上层协议解码器PCAP文件阅读器
    读下一个协议从PCAP文件包
    readAll 阅读所有协议数据包从当前位置到年底PCAP文件
    重置 复位位置PCAP文件读者PCAP第一协议包文件

    例子

    全部折叠

    创建一个PCAP文件读者对象,指定PCAP文件的名称。

    pcapReaderObj = pcapReader (“ethernetSamplePackets.pcap”);

    阅读所有的数据包PCAP MATLAB®文件到工作区。

    decodedPackets = readAll (pcapReaderObj)
    decodedPackets =1×35结构体数组字段:PacketLength包RawBytes SNo时间戳LinkType协议

    创建一个PCAP文件读者对象,指定PCAP文件的名称和包的时间戳的输出格式。

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

    创建一个过滤器的以太网源地址和以太网类型。

    filterString = [”乙。SourceAddress = = 44 fb5a9710ac & &””乙。类型= = 2048];

    在流模式下,读了以太网数据包匹配指定的过滤器MATLAB工作区。

    packetCount = 1:3 ethPacket =阅读(pcapReaderObj filterString)结束
    ethPacket =结构体字段:SNo: 1时间戳:08 - 2月- 2021 03:27:18.043900 LinkType: 1协议:“乙”PacketLength: 171包:[1 x1 struct] RawBytes: [1 x0双]TimestampSec: 1.6128 e + 09年
    ethPacket =结构体字段:SNo: 4时间戳:08 - 2月- 2021 03:27:19.098190 LinkType: 1协议:“乙”PacketLength: 120包:[1 x1 struct] RawBytes: [1 x0双]TimestampSec: 1.6128 e + 09年
    ethPacket =结构体字段:SNo: 5时间戳:08 - 2月- 2021 03:27:20.145857 LinkType: 1协议:“乙”PacketLength: 171包:[1 x1 struct] RawBytes: [1 x0双]TimestampSec: 1.6128 e + 09年

    创建一个PCAP文件读者对象,指定PCAP文件的名称。

    pcapReaderObj = pcapReader (“ethernetSamplePackets.pcap”);

    创建一个过滤器eCPRI数据包,指定eCPRI消息类型。

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

    阅读eCPRI数据包匹配指定的过滤器MATLAB工作区。

    ecpriFilteredFirstPacket =阅读(pcapReaderObj filterString)
    ecpriFilteredFirstPacket =结构体字段:SNo: 21时间戳:1.6128 e + 15 LinkType: 1协议:“乙”PacketLength: 64包:[1 x1 struct] RawBytes: (x0 1双)
    ecpriFilteredSecondPacket =阅读(pcapReaderObj filterString)
    ecpriFilteredSecondPacket =结构体字段:SNo: 22时间戳:1.6128 e + 15 LinkType: 1协议:“乙”PacketLength: 64包:[1 x1 struct] RawBytes: (x0 1双)
    ecpriFilteredRemainingPackets = readAll (pcapReaderObj filterString)
    ecpriFilteredRemainingPackets =1×5结构体数组字段:PacketLength包RawBytes SNo时间戳LinkType协议

    重置的位置PCAP文件读者第一PCAP文件的包。

    重置(pcapReaderObj);

    创建一个新的过滤器在同一PCAP文件,指定消息类型和同相正交(智商)数据。

    filterString =“ecpri。MessageType = = IQData ';

    阅读eCPRI数据包匹配指定的过滤器MATLAB工作区。

    ecpriFilteredPackets = readAll (pcapReaderObj filterString)
    ecpriFilteredPackets =结构体字段:SNo: 21时间戳:1.6128 e + 15 LinkType: 1协议:“乙”PacketLength: 64包:[1 x1 struct] RawBytes: (x0 1双)

    引用

    [1]集团Tcpdump。“Tcpdump / Libpcap公共存储库。“2020年5月20日通过。https://www.tcpdump.org

    [2]“发展/ LibpcapFileFormat - Wireshark Wiki。“2020年5月20日通过。https://www.wireshark.org

    [3]“共同的公共广播电台接口:eCPRI接口规范V1.2”6月22日访问,2021年。

    版本历史

    介绍了R2021b

    另请参阅

    对象