使用自定义规范解析 TCP 有效负载
Parsing TCP payloads using a custom spec
我的目标是为使用 Options Price Reporting Authority found here 中的自定义规范的 TCP 数据包创建一个解析器,但我不知道从哪里开始。我从来没有接触过低级的东西,如果我能得到一些指导,我将不胜感激。
最大的问题是我无法访问实际的网络,因为它每个月要花费一大笔钱,而我所能解决的只是规范。我什至没有可能。您是否一步步解析每个字节并希望得到最好的结果?您是否首先使用规范中的字节重新创建一些示例数据,然后对其进行解析?这不是也很困难,因为(我认为)TCP 将数据传播到多个块吗?
这是一个非常详尽的数据馈送。对该规范的快速回顾表明它包含足够的信息,可以在 nodejs 或 golang 中编写程序来摄取它。
让它发挥作用将是一项艰巨的任务。您的问题没有提到您的编程技能水平或网络工程技能。因此,很难猜测要完成这项工作,您需要学习多少知识。
几件事。
这是一个足够复杂的协议,您需要使用格式正确的示例数据对其进行测试。您需要相当大的样本数据包集合才能模拟您的数据馈送(即,构建一个用于测试目的的假数据馈送)。虽然没有什么是不可能的,但如果不进行大量测试就很难构建一个无错误的程序来处理这些数据。
如果您与数据 Feed 的发布者有开发者关系,您应该询问他们是否提供样本数据进行测试。
它不是 TCP/IP 数据馈送。这是一个 IP multicast datagram feed. In IP multicast feeds you set up a server to listen for the incoming data packets. They use multicast to achieve the very low latencies necessary for predatory algorithmic trading.
- 您不会使用 TCP 套接字来接收它,您将使用一个名为 UDP datagrams
的不同编程接口
- 如果您习惯了 TCP 从错误中自动恢复,数据报将是一个挑战。对于数据报,除非查看序列号,否则无法判断是否接收数据失败。大多数使用 IP 和多播的数据馈送都有一些重新传输数据的规定。您的规范也不例外。您必须正确处理重新传输的数据,否则看起来您有很多重复数据。
- 多播数据不在 public 网络上传输。您需要与发布者建立虚拟专用网络连接,或者将您的服务器置于数据中心内,以便在内部网络上提供提要。
- 为了获取这些数据,您还需要处理另一个可操作的规范。它被称为 Common IP Multicast Distribution Network Recipient Interface Specification。这个规范有一个关于多播 dealio 的入门。
你可以做到。完成后,您将获得一些网络编程和网络工程方面的重要技能。
但如果您只需要这些数据,您可以尝试寻找数据的经销商,将其重新打包为更易于使用的格式。该经销商可能还延迟了数据馈送。
我的目标是为使用 Options Price Reporting Authority found here 中的自定义规范的 TCP 数据包创建一个解析器,但我不知道从哪里开始。我从来没有接触过低级的东西,如果我能得到一些指导,我将不胜感激。
最大的问题是我无法访问实际的网络,因为它每个月要花费一大笔钱,而我所能解决的只是规范。我什至没有可能。您是否一步步解析每个字节并希望得到最好的结果?您是否首先使用规范中的字节重新创建一些示例数据,然后对其进行解析?这不是也很困难,因为(我认为)TCP 将数据传播到多个块吗?
这是一个非常详尽的数据馈送。对该规范的快速回顾表明它包含足够的信息,可以在 nodejs 或 golang 中编写程序来摄取它。
让它发挥作用将是一项艰巨的任务。您的问题没有提到您的编程技能水平或网络工程技能。因此,很难猜测要完成这项工作,您需要学习多少知识。
几件事。
这是一个足够复杂的协议,您需要使用格式正确的示例数据对其进行测试。您需要相当大的样本数据包集合才能模拟您的数据馈送(即,构建一个用于测试目的的假数据馈送)。虽然没有什么是不可能的,但如果不进行大量测试就很难构建一个无错误的程序来处理这些数据。
如果您与数据 Feed 的发布者有开发者关系,您应该询问他们是否提供样本数据进行测试。
它不是 TCP/IP 数据馈送。这是一个 IP multicast datagram feed. In IP multicast feeds you set up a server to listen for the incoming data packets. They use multicast to achieve the very low latencies necessary for predatory algorithmic trading.
- 您不会使用 TCP 套接字来接收它,您将使用一个名为 UDP datagrams 的不同编程接口
- 如果您习惯了 TCP 从错误中自动恢复,数据报将是一个挑战。对于数据报,除非查看序列号,否则无法判断是否接收数据失败。大多数使用 IP 和多播的数据馈送都有一些重新传输数据的规定。您的规范也不例外。您必须正确处理重新传输的数据,否则看起来您有很多重复数据。
- 多播数据不在 public 网络上传输。您需要与发布者建立虚拟专用网络连接,或者将您的服务器置于数据中心内,以便在内部网络上提供提要。
- 为了获取这些数据,您还需要处理另一个可操作的规范。它被称为 Common IP Multicast Distribution Network Recipient Interface Specification。这个规范有一个关于多播 dealio 的入门。
你可以做到。完成后,您将获得一些网络编程和网络工程方面的重要技能。
但如果您只需要这些数据,您可以尝试寻找数据的经销商,将其重新打包为更易于使用的格式。该经销商可能还延迟了数据馈送。