Networking 为什么套接字连接的基本抽象不常见?

Networking 为什么套接字连接的基本抽象不常见?,networking,ipc,zeromq,network-protocols,Networking,Ipc,Zeromq,Network Protocols,例如,ZeroMQ提供了抽象的通信模式,如pub-sub、req-rep和其他模式,并处理连接(可以在绑定之前连接)。 为什么使用原始套接字(如tcp和udp)仍然很常见 虽然像ZeroMQ这样的库提供了这些抽象,但我不明白为什么它本身没有成为操作系统的一部分。 如果您从未使用过ZeroMQ,您可能会喜欢在深入了解更多细节之前先看看 Q:“为什么使用原始套接字(如tcp和udp)仍然很普遍?” 因为时间。原始的tcp和udp通信协议已“使其成为”一个通用标准(自那时起承担所有强制性的兼容性承诺

例如,ZeroMQ提供了抽象的通信模式,如pub-sub、req-rep和其他模式,并处理连接(可以在绑定之前连接)。 为什么使用原始套接字(如tcp和udp)仍然很常见

虽然像ZeroMQ这样的库提供了这些抽象,但我不明白为什么它本身没有成为操作系统的一部分。


如果您从未使用过ZeroMQ,
您可能会喜欢在深入了解更多细节之前先看看


Q:“为什么使用原始套接字(如tcp和udp)仍然很普遍?”

因为时间。原始的
tcp
udp
通信协议已“使其成为”一个通用标准(自那时起承担所有强制性的兼容性承诺)

O/S-es、硬件设备,甚至MITM嗅探器都依赖它们来记录所有RFC标准的属性

尽管ZeroMQ和其他框架在这些底层标准之上提供了更高层的抽象,但它们也需要基本的标准来保持承诺的兼容性


Q:“……为什么这还没有成为操作系统本身的一部分?”


O/S-es,出于累积最低管理费用、占用最少空间的明显原因以及自那以来一直以来首选的类似动机,目前和在可预见的未来,更倾向于重复使用成熟的公共领域标准工具,即没有专有或许可证限制的工具,且时间未知或不确定(un)支持交叉编译兼容性,因此在不久的将来很可能不会出现自下而上的行业范围内的全面重新设计(成本和交付周期未知,直到足够成熟,如果最终行业碰巧决定,尽管到目前为止已经说过,确实要开始并在这样做中生存下来)。

感谢您的投入。我以前使用过ZMQ,我最喜欢它处理连接。因此,我不必监视丢失的TCP连接或等待服务可用。我也没有讨论底层的原始协议,当然这仍然是需要的基础。我很想知道为什么O/S-es中没有为这样一个普通的东西构建标准化的高层抽象。至少在我的编程经验中,我不想弄乱原始套接字,我希望有一个干净的通信机制来消除这个或那个原始套接字带来的丑陋。