Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ISP 切换 IP 导致服务中断 #485

Closed
DeltaXrayDelta opened this issue Mar 30, 2020 · 3 comments
Closed

ISP 切换 IP 导致服务中断 #485

DeltaXrayDelta opened this issue Mar 30, 2020 · 3 comments

Comments

@DeltaXrayDelta
Copy link
Contributor

DeltaXrayDelta commented Mar 30, 2020

经过一段时间的观察,当客户端的IP地址由于ISP重新分配而变动时,会发生数分钟的服务中断。

猜测原因:服务端无法通过原先的IP地址连接到客户端。客户端也由于不知道“服务端现在无法连接到客户端”这一事件,而没有及时与服务端重新握手,导致服务中断。

尽管这个问题能在一段时间后自动修复,但难免影响业务。可否优化一下断线重连机制,比如

  • 缩短断线检测时间间隔,或允许用户在web管理页面手动选择断线检测策略 (比如~30s)
  • 在客户端部署IP地址变动检测机制,检测到本地机器对应的公网IP地址变化后立刻与服务端重新握手
@ffdfgdfg
Copy link
Collaborator

设定为5分钟未收到任何数据会主动断开连接,直接缩短这个时间会导致一定丢包时候断线很频繁,为什么这么长参考的是tcp超时重传机制,当然也可以自己调系统参数让系统尽快断开连接
客户端bind为本机ip,检测只有通过访问外部服务器告知ip,也就是周期性的检测,不可能做到立即

@DeltaXrayDelta
Copy link
Contributor Author

设定为5分钟未收到任何数据会主动断开连接,直接缩短这个时间会导致一定丢包时候断线很频繁,为什么这么长参考的是tcp超时重传机制,当然也可以自己调系统参数让系统尽快断开连接

客户端bind为本机ip,检测只有通过访问外部服务器告知ip,也就是周期性的检测,不可能做到立即

理解您设置5分钟这一时间间隔的用意,但能否考虑在下一版本中允许用户自定义这一时间间隔,以方便在不同网络环境中、对链路稳定性有不同需求的用户?(比如,默认为5分钟,并可按秒或分钟为单位自定义数值)谢谢!

@juebanlin
Copy link

2边都需要心跳机制来实现断线重连

kiririx pushed a commit to kiririx/nps that referenced this issue Jul 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants