我通过打开 6633 端口并侦听 OF 数据包来使用 java 解析 openflow 数据包。
我的代码因某些 openflow PACKET_IN 数据包而中断。请参见下图。
我正在使用 mininet 模拟拓扑。
mn --mac --switch ovsk,protocols=OpenFlow13 --controller remote,ip=172.23.107.166,port=6633 --ipbase=2.2.2.0/24 --topo linear,10
Mininet 版本:2.2.1rc1
Openvswitch 版本:2.0.2
以下是wireshark捕获的截图。
您可以观察到总长度 (342) 超过了长度 (170)。
因此,我的 java 代码正在解析额外的数据包字节(因为不适当的数据长度:342),即来自下一个数据包的字节,因此解析的以下数据包被破坏。
它应该在读取 170 个字节后停止解析。然后应该开始解析下一个数据包。
你能解释为什么会这样吗?