我正在端口#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 关键字后具有不同的数字,请参阅第三列。有人能解释一下吗?
答案 0 :(得分:0)
每个 协议后面都有一个数字,而不仅仅是OpenFlow数据包。看看其他人,例如#19" TCP 88"。
很有可能,Length
列后面有一个Wireshark Protocol
列,该值只是数据包中的字节数。检查Wireshark列; tshark默认使用相同的。