首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在负载平衡器和防火墙中使用将保持有效。

在负载平衡器和防火墙中使用将保持有效。
EN

Stack Overflow用户
提问于 2013-08-27 13:46:52
回答 1查看 2.1K关注 0票数 2

我有客户端和服务器组件。服务器可能安装在防火墙或负载均衡器后面。许多站点/论坛建议使用TCP保持活动功能,以避免由于不活动而终止连接。问题是,客户端发出的保持生命的消息是否真的会到达服务器?我尝试使用tcptrace实用程序来模拟部署,发现保持活动消息没有到达服务器,而客户端仍在获取ACK以保持活动消息。我不知道LB/FW是否以同样的方式工作。

在防火墙和负载均衡器的情况下,保持存活是避免由于套接字上的不活动而导致连接终止的好选择吗?

EN

回答 1

Stack Overflow用户

发布于 2016-02-20 06:52:59

答案当然是:“视情况而定”。

许多防火墙和负载平衡器维护独立的前端和后端TCP连接。

代码语言:javascript
复制
client <-- TCP --> firewall/balancer <-- TCP --> server

在这种情况下,使用TCP使活将使不像您所期望的那样工作。为什么不行?TCP使活只适用于该TCP会话,而持活探测包更像是承载数据包的“管理开销”数据包。这意味着:( a)在客户端使用TCP保持活动只意味着保持到防火墙/平衡器的TCP连接保持活动;( b)防火墙/平衡器不会将那些保持活动的探测数据包“转发”到后端连接。

那么,使用TCP使活是有用的吗?是。还有其他类型的代理,它们在OSI堆栈中的较低层工作,并转发这些数据包;使用TCP持活活有助于通过这些类型的网络中介体保持空闲连接的活动。

如果您的客户机/服务器应用程序通过防火墙/平衡器使用长时间的、可能空闲的TCP连接,则确保该连接不被拆除的最佳方法(有时是礼貌地,例如防火墙/平衡器发送的RST数据包,有时是静默的)是在应用层使用"ping“或”心跳“消息。(把这看作是“保持应用程序活力”)。这只是从客户端发送到服务器的某种消息。一种简单而有效的技术是让客户机定期向服务器发送一些字节,服务器将这些字节回显回客户机。客户端知道它发送了哪些字节,并且当它从服务器收到这些相同的字节时,它知道网络路径中的所有东西仍然按预期工作。

希望这能有所帮助!

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

https://stackoverflow.com/questions/18467293

复制
相关文章

相似问题

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