gpt4 book ai didi

python - Pyshark packet.tcp.analysis_ack_rtt 不一致可用

转载 作者:太空宇宙 更新时间:2023-11-03 20:43:22 27 4
gpt4 key购买 nike

我正在尝试使用 Pyshark 捕获有关 tcp 连接的流量,以确定 RTT、吞吐量和数据包丢失等指标。然而,这些属性似乎并不总是可用。

我成功捕获了 TCP 层的数据包。但是,当访问 packet.tcp.analysis_ack_rtt 值时,有时会返回一个值,有时会抛出 AttributeError 。

capture = pyshark.LiveCapture(interface="eno1", bpf_filter="tcp and port 5201")

for packet in capture.sniff_continuously():
print("RTT", packet.tcp.analysis_ack_rtt)

我有点期望所有数据包都有这个字段,但不明白为什么有些数据包有而其他数据包没有。

另外,有人知道如何访问 tcp.analysis.lost_segment 吗?看来它也不是数据包的属性。

最佳答案

嗯,我看到你正在以太网接口(interface)上监听。我想说这不起作用的原因是并非所有数据包都不会是 TCP。因此出现了错误。我会考虑你做一个尝试和捕获(对于属性错误),你应该没问题。

见下文:

import pyshark

capture = pyshark.FileCapture(<path to pcap file>)

for packet in capture:
try:
print("Protocol: "+ packet.highest_layer +"source:"+ packet.ip.src +" Destination:"+ packet.ip.dst +" RTT:"+ packet.tcp.analysis_ack_rtt)

except AttributeError as e:
pass

关于python - Pyshark packet.tcp.analysis_ack_rtt 不一致可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56743757/

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