Java 网络流量记录可以';t获取八位字节(jnca)

Java 网络流量记录可以';t获取八位字节(jnca),java,cisco,netflow,Java,Cisco,Netflow,我正在使用库收集路由器发送的NetFlow记录。路由器发送的NetFlow记录的版本为版本9 当从Wireshark观察到NetFlow分组时,具有模板id 263的流集包含关于发起方八位组和响应方八位组的数据,其可用于确定与流相关联的字节数。 但问题是jcna无法获得这些值。八位字节总是显示为零 currOffset = t.getTypeOffset(FieldDefinition.InBYTES_32); currLen = t.getTypeLen(FieldDefinition.In

我正在使用库收集路由器发送的NetFlow记录。路由器发送的NetFlow记录的版本为版本9

当从Wireshark观察到NetFlow分组时,具有模板id 263的流集包含关于发起方八位组和响应方八位组的数据,其可用于确定与流相关联的字节数。

但问题是jcna无法获得这些值。八位字节总是显示为零

currOffset = t.getTypeOffset(FieldDefinition.InBYTES_32);
currLen = t.getTypeLen(FieldDefinition.InBYTES_32);
if (currOffset >= 0 && currLen > 0) {
    dOctets = Util.to_number(buf, off + currOffset, currLen) * t.getSamplingRate();
}
这是用于获取docets的代码段。这即使对于模板ID 263也返回零

但是,当根据NetFlow模板ID263计算时,它给出了正确的数据。(给出发起方八位字节,为了获得响应方八位字节,46应替换为50,因为特定记录的长度为4字节)

46是启动器八位字节记录位于特定NetFlow数据包中的位置。(使用Wireshark记录获取。)


这是jnca的问题吗?希望熟悉jcna的人能在这方面给我一些帮助。

从NetFlow版本9记录中检索网络使用信息

Netflow是Cisco路由器上引入的一项功能,它能够在进入或退出接口时收集IP网络流量。通过分析Netflow提供的数据,网络管理员可以确定诸如流量的来源和目的地、服务类别以及拥塞原因等内容。Netflow由三个组件组成:流缓存、流收集器和数据分析器。在Netflow中,路由器将网络使用的详细信息作为UDP数据包转发到目标的指定端口


此链接可能会有所帮助:您是否检查了从方法
getTypeOffset
getTypeLen
返回的值?从JNCA的
模板返回的偏移量。getTypeOffset()
似乎与流集有关。这和你正在做的工作配合吗?(您没有显示足够的代码来说明;什么是
buf
?)实际的NetFlow V9规范可能也会有所帮助::DAlso,在代码解析的低级格式中,严格键入
java.util.Properties
?从轨道发射核弹。在编写这个库的时候,Java没有泛型吗?我只是好奇你为什么提供赏金?@Enzokie可能需要一个利他主义徽章;)
dOctets = Util.to_number(buf, off + 46, 4)