我正在端口#6633上运行SDN控制器,然后使用tshark捕获发送给它的数据包,这会给我以下输出:
*18 0.029550379 127.0.0.1 ?~F~R 127.0.0.1 OpenFlow 138 Type: OFPT_FLOW_MOD* 19 0.031562043 127.0.0.1 ?~F~R 127.0.0.1 TCP 88 8984?~F~R56292 [PSH, ACK] Seq=1 Ack=86 Win=86 Len=22 TSval=7474079 TSecr=7474075 20 0.031591119 127.0.0.1 ?~F~R 127.0.0.1 TCP 66 56292?~F~R8984 [ACK] Seq=86 Ack=23 Win=86 Len=0 TSval=7474079 TSecr=7474079 21 0.031786109 127.0.0.1 ?~F~R 127.0.0.1 TCP 163 56292?~F~R8984 [PSH, ACK] Seq=86 Ack=23 Win=86 Len=97 TSval=7474079 TSecr=7474079 *22 0.031958834 127.0.0.1 ?~F~R 127.0.0.1 OpenFlow 146 Type: OFPT_FLOW_MOD* 23 0.032035439 127.0.0.1 ?~F~R 127.0.0.1 TCP 66 47418?~F~R6633 [ACK] Seq=341 Ack=169 Win=44032 Len=0 TSval=7474079 TSecr=7474079 24 0.032732179 127.0.0.1 ?~F~R 127.0.0.1 TCP 88 8984?~F~R56292 [PSH, ACK] Seq=23 Ack=183 Win=86 Len=22 TSval=7474080 TSecr=7474079 25 0.038687398 36:68:ff:8e:d1:9c ?~F~R Broadcast OpenFlow 126 Type: OFPT_PACKET_IN
根据我的应用程序,交换机中应该只安装一个流规则 . 当我在mininet中使用 dpctl dump-flows 时,它也只返回了一个流规则 . 现在我有疑问因为有两个flow mod数据包 .
在数据包#18和22中,两者都是OFPT_FLOW_MOD数据包,但如果您看到这两个数据包在 OpenFlow 关键字后具有不同的数字,请参阅第三列 . 有人能解释一下吗?
1 回答
在 every 协议之后有一个数字,而不仅仅是OpenFlow数据包 . 看一下其他的,比如包#19 "TCP 88" .
很有可能,
Protocol
列后面有一个WiresharkLength
列,该值只是数据包中的字节数 . 检查Wireshark列; tshark默认使用相同的 .