加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

查询linux上套接字的TCP缓冲区大小

发布时间:2020-12-13 17:13:34 所属栏目:Linux 来源:网络整理
导读:有没有办法查找TCP套接字的发送/接收缓冲区大小? 我使用了netstat和ss,以及raw / proc / net / tcp.那里有很多好东西,包括飞行中的字节数,计时器,进程名称等. 但是我希望能够诊断一些程序是否设置了SO_ {SND,RCV} BUF ……更有趣的是内核实际上为每个SKB使
有没有办法查找TCP套接字的发送/接收缓冲区大小?

我使用了netstat和ss,以及raw / proc / net / tcp.那里有很多好东西,包括飞行中的字节数,计时器,进程名称等.

但是我希望能够诊断一些程序是否设置了SO_ {SND,RCV} BUF ……更有趣的是内核实际上为每个SKB使用了什么值.

解决方法

从 lsof FAQ(搜索“为什么没有lsof报告套接字选项”),我相信Linux不会提供您可用的信息. (至少不通过/ proc)

如果是这样,你可以使用lsof -i< pid> -a -i tcp -T f,但-T只需要“qs”,而不是Linux上的f.您可以从netstat(netstat –tcp -p -o -e -e -v | grep< pid>)获取一些其他信息,其中包括发送队列和接收队列以及一些计时器信息.

你能做的就是使用strace.您必须通过strace(strace -ff -e network,ioctl PROGRAM)或在设置TCP套接字(strace -fff -e network,ioctl -p PID)之前运行程序. ioctl是如何设置这些选项的,网络应该足够了解它们是什么连接. (但只是ioctl然后使用lsof来确定连接应该在哪里工作)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读