可以访问每个套接字的 TCP 统计数据/信息吗? (C/C++)
我需要一些信息,例如我创建的特定 TCP 套接字发生的重新发送包/数据包丢失的数量。有人知道如何直接从我的 C/C++ 程序访问或请求此类信息吗?也许是 Linux 特有的东西?
或者我是否需要(作为解决方法)捕获和分析我自己的流量?
提前致谢!
I require some informations like the amount of resend packages/packet-loss occurred for a specific TCP-Socket I created. Does somebody know a way how to access or request such informations directly from my C/C++ program? Maybe something Linux specific?
Or do I need (as a workaround) to capture and analyze my own traffic?
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
通过使用
getsockopt()
获取或setsockopt()
设置 TCP 套接字选项,您可以在 Linux 机器上使用TCP_INFO
选项来获取有关套接字的信息。如果您希望代码可移植,则应避免使用此选项。您将返回的是来自内核的 struct tcp_info包含重传、丢失数据包、状态等信息。
By using
getsockopt()
to get orsetsockopt()
to set TCP socket options, you can useTCP_INFO
option on linux machines in order to get information about a socket. This option should be avoided if you want the code to be portable.What you will get back is a struct tcp_info from the kernel that contains information such as retransmissions, lost packets, states etc.