OF_packet_data的长度超过OF_IN_packet的总长度

时间:2016-07-22 11:02:18

标签: mininet openflow openvswitch

我通过打开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 vesion:2.2.1rc1

Openvswitch版本:2.0.2

以下是wireshark捕获的屏幕截图。

enter image description here

您可以观察到总长度(342)超过长度(170)。

因此我的java代码正在解析额外的数据包字节(因为数据长度不合适:342),即来自下一个数据包的字节,因此解析的后续数据包被破坏。

读取170个字节后应该停止解析。然后应该开始解析下一个数据包。

  

你能解释一下为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

170字节的TCP段长度就是 - 当前段中的字节数。由于openflow总长度为342个字节,因此其数据跨越多个TCP段,因此您的Java代码需要能够处理此问题。