我使用java解析openflow数据包,打开6633端口并监听数据包。
对于一些openflow PACKET_IN数据包,我的代码正在中断。请看下面的图片。
我在用微型管模拟拓扑。
mn --mac --switch ovsk,protocols=OpenFlow13 --controller remote,ip=172.23.107.166,port=6633 --ipbase=2.2.2.0/24 --topo linear,10最小内电压: 2.2.1rc1
Openvswitch版本: 2.0.2
下面是wireshark捕获的截图。

您可以看到,总长度(342)超过长度(170)。
正因为如此,我的java代码正在解析额外的数据包字节(因为数据长度不合适:342),即来自下一个数据包的字节,因此下面解析的数据包被破坏了。
它应该在读取170个字节后停止解析。然后应该开始对数据包的下一个进行解析。
你能解释一下为什么会发生这种事吗?
发布于 2016-08-02 17:43:01
TCP段长度为170字节,也就是当前段中的字节数。由于openflow总长度为342字节,其数据跨越多个TCP段,因此您的java代码需要能够处理这个问题。
https://stackoverflow.com/questions/38524828
复制相似问题