gpt4 book ai didi

c - 如何找出为连接的 tcp 套接字发送的字节数?

转载 作者:太空宇宙 更新时间:2023-11-04 11:56:40 24 4
gpt4 key购买 nike

我想知道在一个 tcp 套接字上传输了多少字节(顺便说一下,我使用的是 Ubuntu 18.04)。我尝试了ss 命令,但似乎ss 只能显示bytes_received,而不是bytes_sent。那么有什么方法可以显示套接字的 bytes_sent 吗?为什么这个数字没有显示在 ss 中?我认为 bytes_received 和 bytes_sent 密切相关。

> ss -ti

ESTAB 0 0 host1:ssh host2:7703
cubic wscale:2,8 rto:384 rtt:181.622/16.823 ato:40 mss:1452 cwnd:10
ssthresh:118 bytes_acked:120873541 bytes_received:1151501 segs_out:87562
segs_in:39194 send 639.6Kbps lastsnd:11732 lastrcv:11564 lastack:11564
pacing_rate 1.3Mbps retrans:0/203 reordering:56 rcv_rtt:11516 rcv_space:71360

最佳答案

我一直在研究同一个问题,并得出结论,这取决于您使用的内核。

根据我的测试,我已经能够在 Linux 内核 4.xx 和 5.xx 上获取 bytes_sentbytes_ackedbytes_recieved ,但不是在 3.xx 上。请参阅下面关于 Debian GNU/Linux 和内核 4.19.0-6-amd64 的示例:

$ ss -itpn

State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 0 0 172.16.177.135:22 172.16.177.1:60928
users:(("sshd",pid=700,fd=4))
bytes_sent:50872 bytes_acked:50872 bytes_received:11165

*我删除了与此问题无关的其他信息

在挖掘 sock_diag 之后和 ss's source code ,看起来 ss 使用 struct tcp_info 类型的 INET_DIAG_INFO 来获取此信息。

我希望这对您有所帮助,如果我发现任何其他问题,我会通知您。

关于c - 如何找出为连接的 tcp 套接字发送的字节数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54077791/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com