Node.js 使用自定义规范解析TCP有效负载

Node.js 使用自定义规范解析TCP有效负载,node.js,networking,udp,multicast,algorithmic-trading,Node.js,Networking,Udp,Multicast,Algorithmic Trading,我的目标是为TCP数据包创建一个解析器,这些数据包使用的是来自发现的自定义规范,但我不知道从哪里开始。我从未接触过低级的东西,如果能得到一些指导,我将不胜感激 最大的问题是,我无法访问实际的网络,因为它每月要花费巨额资金,而我所能做的就是规范。即使可能,我也不知道。你是否一步一步地解析每个字节并希望得到最好的结果?您是否首先使用规范中的字节重新创建一些示例数据,然后对其进行解析?因为(我认为)TCP将数据传播到多个块,所以这不是很困难吗?这是一个非常复杂的数据馈送。对规范的快速回顾表明,它包含了

我的目标是为TCP数据包创建一个解析器,这些数据包使用的是来自发现的自定义规范,但我不知道从哪里开始。我从未接触过低级的东西,如果能得到一些指导,我将不胜感激


最大的问题是,我无法访问实际的网络,因为它每月要花费巨额资金,而我所能做的就是规范。即使可能,我也不知道。你是否一步一步地解析每个字节并希望得到最好的结果?您是否首先使用规范中的字节重新创建一些示例数据,然后对其进行解析?因为(我认为)TCP将数据传播到多个块,所以这不是很困难吗?

这是一个非常复杂的数据馈送。对规范的快速回顾表明,它包含了足够的信息,可以用nodejs或golang编写程序来接收它

让它发挥作用将是一项艰巨的任务。你的问题没有提到你的编程技能水平,也没有提到你的网络工程技能。因此,很难猜测要完成这项任务,你还需要学习多少

有几件事

  • 这是一个非常复杂的协议,您需要使用格式正确的样本数据对其进行测试。您需要相当大的样本数据包集合来模拟您的数据馈送(即,为了测试目的构建一个伪数据馈送)。虽然没有什么是不可能的,但是如果不进行广泛的测试,就很难构建一个无bug的程序来处理这些数据

    如果您与数据源的发布者有开发人员关系,您应该询问他们是否提供用于测试的示例数据

  • 它不是TCP/IP数据源。这是一个饲料。在IP多播提要中,您设置了一个服务器来侦听传入的数据包。他们使用多播来实现这一目标

    • 您不会使用TCP套接字来接收它,而是使用一个名为
    • 如果您习惯于TCP从错误中自动恢复,那么数据报将是一个挑战。对于数据报,除非查看序列号,否则无法判断是否接收数据失败。大多数使用IP和多播的数据源都有一些重新传输数据的规定。你的规格也不例外。您必须正确处理重新传输的数据,否则看起来会有大量重复数据
    • 多播数据不会在公共网络上移动。您将需要一个到发布服务器的虚拟专用网络连接,或者在数据中心中共同定位您的服务器,该数据中心的提要在内部网络上可用
    • 还有另外一个操作规范,您需要处理才能获得这些数据。它叫“世界杯”。这个规范有一个关于多播协议的入门
  • 你可以这样做。当你成功的时候,你将获得一些网络编程和网络工程方面的技能


    但是,如果您只是想要这些数据,您可以尝试找到一家数据经销商,以更易于使用的格式对其进行重新打包。该经销商可能还会对数据馈送造成延迟。

    您不必担心tcp实际上如何发送数据(如果包丢失,则重新发送)。你所需要做的就是打开一个tcp连接(例如,
    net.Dial(“tcp”,addr)
    )并对其进行读写。当然,棘手的部分是正确理解规范。我认为从规范中创建一些示例数据是一个很好的第一步。也许您还可以在实现示例数据之前找人查看它。。。了解昂贵网络的人或可能接触到与数据相关的其他代码的人(例如,你将与之交谈的另一方)。如果这不是一个选项,也许你可以创建一个模拟应用程序,发送你的样本数据并记录接收到的数据,然后在真实网络上运行它(为此支付几分钟的费用),为了得到一些验证。@TehSphinX它每月花费2000美元。我已经和他们联系过了,看看能否以更低的价格买到一些东西。因此,第一步是使用规范或以其他方式获取一些示例数据。然后使用这些数据并在规范的帮助下解析。非常感谢你,琼斯!我的主要目标是学习,这就是为什么我决定不使用他们的任何供应商(转售商)。如果你学习的目的是让你有一个演示项目,让你受雇于一家从事商品交易业务的公司,那么每月2000美元的数据馈送成本是一项值得投资的投资。那些家伙花了很多钱。如果您是为了学习处理网络数据包的一般目的而学习,那么您可以使用大量更易访问的网络数据源。我想到了网络时间协议。RTP和RTSP也是如此。我是一名学生(全堆栈开发),所以这仍然是一个很大的数量,但我完全理解你的观点。我对股票市场非常感兴趣,我未来的计划是在这项服务的基础上创造一种产品。但我也想学习网络,所以这是一个很有吸引力的选择。再次感谢你,琼斯!如果你还没有这样做,研究一下网络的细节。TCP、IP、DNS、IPv4寻址、IPv6寻址、路由、TLS等。要使此选项价格报告机构演示正常工作,您需要了解这些内容。典型的“满栈”课程告诉你,网络就像雨一样从天而降。事实并非如此。而且,一定要读到:你会明白其中的许多原因。当然。我知道这是一个自以为是的问题,但你有没有推荐任何书籍或视频课程?最好是视频,因为我患有多动症,不能坐着不动。