首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于在有损串行链路上重传的用户模式TCP堆栈

用于在有损串行链路上重传的用户模式TCP堆栈
EN

Stack Overflow用户
提问于 2013-01-23 01:48:03
回答 1查看 430关注 0票数 2

我相信我的问题是:

PC操作系统上是否有一个简单的用户模式TCP堆栈,可用于通过有损耗的串行链路与基于Linux的设备交换数据?

以下是更多上下文:

我有一个基于Linux的设备,通过串行链路连接到一台PC。串行链路是有损耗的,因此在两台设备之间发送的数据有时需要重新传输。目前,该系统使用自定义协议,包括成帧、寻址(用于路由到Linux设备内的不同进程)和不那么健壮的重传算法。

在Linux设备端,可以方便地替换自定义协议,实现串行链路上的SLIP,并使用TCP进行所有通信。问题是,在PC端,我们不确定如何使用主机的TCP堆栈,而不拉入我们不需要的通用IP路由。如果有可用的用户模式TCP堆栈,我似乎可以将其集成到PC应用程序中。到目前为止,我唯一找到的TCP协议栈是用于微控制器的。它们可以移植,但如果有更好的东西就更好了。或者,是否有一些特殊的方法可以使用操作系统的内置TCP堆栈,而不需要管理权限或冒着与真正的以太网接口发生IP地址冲突的风险。

最后,为了让解决方案集中在TCP上,是的,还有其他解决方案可以解决这个问题,比如使用HDLC或只是修复我们的自定义协议。但是,我们希望进一步探索TCP路由,以防它是一种选择。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-23 08:08:58

评论似乎已经回答了你的问题,但也许是为了澄清一下;不,你不能不使用IP就使用TCP。TCP是建立在IP之上的,它不会以任何其他方式工作。

PPP是通过串行链路建立IP连接的好方法,但如果您在计算机两端都没有管理访问权限,这可能会很困难。172.16.x、10.x和192.168.x被定义为对本地网络开放,因此您应该能够找到一组不会干扰本地计算机网络操作的IP地址。

从无配置、无依赖的角度来看,使用您自己的成帧/重传协议应该不会太难,如果您不需要互操作性,那么它可能是您的最佳选择。也就是说,kermit,{z,y,z}调制解调器将提供更好的性能和编码标准。

最后,您可以使用socat之类的工具来执行协议转换。即将串行流连接到TCP端口。这不会解决数据可靠性/重传问题,但它可能是您要针对其进行编程的接口。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14464861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档