TTL 和 Keep Alive 的区别

发布于 2024-11-26 16:37:24 字数 62 浏览 2 评论 0原文

任何人都可以告诉我 TTL 和在套接字中保持活动状态(C# 网络)以及 Linger 之间的区别吗?提前致谢。

Can any one tell me the difference between TTL and Keep alive in sockets (C# Networking) and also Linger.. Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

提赋 2024-12-03 16:37:24

TTL 告诉数据包在放弃之前可以通过多少个路由器,而保持活动则告诉连接必须在没有活动的情况下保持打开状态多长时间。

从我读到的关于 Linger 的内容来看,我没有看到 keep-alive 的区别,我可能在这里遗漏了一些东西。

编辑: linger 选项允许您关闭套接字,同时告诉它等待一段时间以查看数据是否仍在网络上;来自此页面,我们读到

传出网络缓冲区中可能仍有可用数据
你关闭套接字。如果您想指定时间
Socket 关闭后将尝试传输未发送的数据,创建
启用参数设置为 true 的 LingerOption,以及秒
参数设置为所需的时间量。秒参数是
用于指示您希望 Socket 保留多长时间
在超时之前连接。如果您不想保留 Socket
关闭后连接任意时间长度,创建一个 LingerOption
将启用的参数设置为 false。在这种情况下,Socket 将
立即关闭,任何未发送的数据都将丢失。创建完成后,通过
LingerOption 到 Socket.SetSocketOption 方法。如果你是
使用TcpClient发送和接收数据,然后传递
TcpClient.LingerState 方法的 LingerOption。

TTL tells the packet how many routers he can go through before giving up, while Keep Alive tells the connexion how long it must be kept open without activity.

From what i read about Linger, i don't see the difference with keep-alive, i may be missing something here.

EDIT: The linger option allows you to close the socket while telling it to wait some time to see if data is still on the wire; from this page, we read that

There may still be data available in the outgoing network buffer after
you close the Socket. If you want to specify the amount of time that
the Socket will attempt to transmit unsent data after closing, create
a LingerOption with the enabled parameter set to true, and the seconds
parameter set to the desired amount of time. The seconds parameter is
used to indicate how long you would like the Socket to remain
connected before timing out. If you do not want the Socket to stay
connected for any length of time after closing, create a LingerOption
with the enabled parameter set to false. In this case, the Socket will
close immediately and any unsent data will be lost. Once created, pass
the LingerOption to the Socket.SetSocketOption method. If you are
sending and receiving data with a TcpClient, then pass the
LingerOption to the TcpClient.LingerState method.

年少掌心 2024-12-03 16:37:24

生存时间是指网络数据包可能穿过的设备(跳数)数量(例如路由器、交换机等) 保持活动时间是指没有发送或接收数据时套接字保持打开状态的时间

Time to live is the number of devices (hops) a network packet may cross (like routers, switches etc) Keep alive time is the time the socket stays open when no data is being send or received

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文