【发布时间】:2020-12-12 18:34:15
【问题描述】:
像这个图,enter image description here 我可以在这个数据包中找到许多openflow1.3,它们是多部分请求,但我不知道为什么会在这里发生? 其实这里不是只有一个openflow1.3吗? 跟openflowjava做序列化、wireshark、网卡、tcp nagle的算法有关吗? 谢谢!
【问题讨论】:
标签: tcp wireshark opendaylight openflow
像这个图,enter image description here 我可以在这个数据包中找到许多openflow1.3,它们是多部分请求,但我不知道为什么会在这里发生? 其实这里不是只有一个openflow1.3吗? 跟openflowjava做序列化、wireshark、网卡、tcp nagle的算法有关吗? 谢谢!
【问题讨论】:
标签: tcp wireshark opendaylight openflow
TCP 是字节流,即从应用层(即 OpenFlow)的角度来看,数据包没有语义。在传输级别,单个 TCP 数据包中可以有多个应用层“消息”,消息跨越数据包边界等 - 这对应用程序无关紧要。虽然由于应用程序中的时间安排以及可能禁用 NAGLE 算法,TCP 数据包边界通常也是消息边界,但 TCP 数据包边界始终是消息边界的假设是错误的,任何对此的依赖通常会导致零星且难以重现的问题。
基于此,您看到的也不是“多部分请求”。这些只是多个 OpenFlow 消息(应用程序级)同时或彼此紧随其后发送,它们被放在同一个传输级实体(数据包)中,因为这样传输每条消息的开销较小。
【讨论】: