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

[FEATURE建议] net增加 unix domain socket等IPC方式的数据包跟踪与观测 #960

Open
ziyangfu opened this issue Jan 14, 2025 · 0 comments
Labels
enhancement New feature or request

Comments

@ziyangfu
Copy link
Contributor

ziyangfu commented Jan 14, 2025

简介
unix domian socket(uds)作为一种IPC方式,与TCP/IP采用相同的socket接口,在本机通信中广泛应用。本机环境下由于不用经过网络协议栈,所以在性能上比TCP更有优势。比如Linux的X11,就是通过uds通信的。
同时由于uds具有传递文件描述符的能力,且共享内存作为最快的IPC方式,没有自己的同步机制。因此,一种常规做法是采用uds作为共享内存的同步机制,并通过uds在进程间传递memfd。这种方式在通信中间件的设计实现上很常见,例如字节跳动的采用go语言实现的shmipc。
目前的观测手段
目前查看下来,观测手段较少。

  • 在系统调用跟踪方面,可以用strace跟踪到。
  • 在信息展示方面,可以用ss观测。
  • 而在数据包跟踪方面,没看到原生的跟踪工具,除了使用bpftrace可以跟踪一下之外,一种常规做法是,借助socat将uds的数据包转发到一个TCP连接上,然后使用wireshark监控TCP数据,间接观测uds的数据。

不知道是否还有其他的观测工具,大家知道可以说下。
结论
在经过必要性论证通过后,我们的net工具,增加uds(以及其他IPC)方面的观测。

@ziyangfu ziyangfu added the enhancement New feature or request label Jan 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant