关于套接字内存使用的困惑

问题描述

我们有一个应用程序,它接收由2个不同系统发送的消息。 现在,我们已经观察到一些数据包丢失和延迟,为此,我们正在尝试找出根本原因。

为此,我正在分析套接字缓冲区及其内存使用情况。我正在使用'ss -um'linux命令执行此操作。

我得到的输出如下:

接收器应用程序结束:

     skmem:(r0,rb65536,t0,tb65536,f4096,w0,o0,bl0,d0)
0      0      300.66.444.174:53757                300.66.444.174:43551                
     skmem:(r0,f0,d0)
0      0      300.66.444.174:37400      

发件人应征结束:

     skmem:(r0,rb212992,tb212992,d0)                              
0         0               300.66.44.56:40870            300.66.44.56:35531     
     skmem:(r768,f3328,d0)                         
0         0               300.66.44.41:49063            300.66.44.41:42435     
   

我已经看过ss命令的手册页,但仍然听不懂。我是网络新手。那么,有没有网络专家可以简化或共享任何简单的文档,可以帮助我理解以下内容:

  1. 为什么此fwd_alloc内存对于接收方应用程序为f4096,但对于发送方大多数时候为f0。
  2. 非零值表示什么,它是被使用还是刚刚被分配。如果正在使用它,那是否意味着rcv_buf已被应用程序完全使用。
  3. d0将覆盖所有数据包丢弃。如果始终为零,是否得出结论就是没有与套接字缓冲区相关的数据包丢失。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...