无法理解Node.js的网络套接字中setKeepAlive方法的原理。 initialDelay完成后会发生什么?node.js中的setKeepAlive如何工作以及如何实现它?
2
A
回答
7
该方法控制底层TCP套接字上的TCP保持活动功能。有关TCP Keepalive的信息,请查看this article。这里有一个片段解释了什么initialDelay
(“保持活动计时器”):
2.1。什么是TCP Keepalive?
Keepalive概念非常简单:当您建立TCP连接时,您将一组计时器关联起来。其中一些定时器处理保持活动过程。当keepalive计时器达到零时,向对等方发送一个keepalive探测包,其中没有数据并且ACK标志打开。由于TCP/IP规范,您可以这样做,作为一种重复的ACK,并且远程端点将没有参数,因为TCP是面向流的协议。另一方面,您将收到来自远程主机的回复(根本不需要支持keepalive,只是TCP/IP),没有数据和ACK。
如果您收到对Keepalive探测的答复,则可以断言连接仍在运行并且无需担心用户级别的实施。事实上,TCP允许你处理一个数据流,而不是数据包,所以零长度的数据包对用户程序来说并不危险。
此过程非常有用,因为如果其他对等方失去连接(例如,通过重新引导),即使您没有流量,您也会注意到连接中断。如果Keepalive探测未被对方回复,则可以断言该连接不能被视为有效,然后采取正确的操作。
相关问题
- 1. matlab的bwarea函数如何工作,以及如何在C中实现它?
- 2. JMeter中的实现选项是什么以及它是如何工作的?
- 3. 如何在boost中实现boost :: property_map以及如何更改它
- 4. ARC以及它如何工作。
- 5. behaviourSubject在angular2,它是如何工作以及如何使用它
- 6. 如何在Fragment中调用OnActivityResult以及它如何工作?
- 7. 如何调用这个组件,以及如何实现它
- 8. Maya的dnoise函数:它做什么以及如何实现它?
- 9. 散列中的折叠技术以及如何实现它?
- 10. 如何创建Class <>以及它是如何工作的?
- 11. 脚本异步它是如何实际工作,以及何时使用它
- 12. 控制器以及它们应该如何在Angular中实现?
- 13. 对象库如何工作以及它如何更快?
- 14. Selenium绑定如何工作,以及如何使用它们?
- 15. 如何创建子域以及它们如何工作?
- 16. $(window).one('load')如何工作,以及它如何失败?
- 17. jquery fancybox - 它是如何工作的以及它需要什么?
- 18. popen()如何工作以及如何在Linux上将其实现为C++代码?
- 19. web.config中的拒绝以及它如何工作?
- 20. C++ 11:它的gc接口是什么,以及如何实现?
- 21. API实现的帮助以及如何从开始执行它?
- 22. 如何实现的node.js
- 23. 如何实现的node.js
- 24. Android Studio:转储Java堆:“它是如何工作的以及如何阅读它?”
- 25. String.Format - 它是如何工作的以及如何实现自定义格式字符串
- 26. 列表中自动实现的属性的作用是什么以及它们如何工作?
- 27. 如何在node.js中实现ajax以实现部分回发
- 28. java中的随机测试 - 它是什么以及如何实现它?
- 29. 如何实现aurelia-i18n以及webpack
- 30. node.js async.series是它应该如何工作?