【发布时间】:2014-05-30 17:58:42
【问题描述】:
上下文: 我正在编写一个嗅探器来测量 SYN-ACK -> ACK 之间的 TCP RTT(round Time Trip)。 这个想法是让从 SYN-ACK 数据包返回 ACK 数据包所需的时间。
问题:
问题在于,由于我计算 RRT 的方式,有时我会得到负 RTT 或非常糟糕的测量结果。
所以,RTT = SYN-ACK pcap_timeval - ACK pcap_interval
问题:
1) 如何在 pcap 标头上设置时间戳? 2)有没有更好的方法来获得 RTT 测量? 3) 内核在设置 pcap 标头时是否可能存在时序错误? 4)我想知道这个 pcap_timeval 是如何设置的。知道在哪里看吗?或任何其他想法?
struct pcap_timeval {
bpf_int32 tv_sec; /* seconds */
bpf_int32 tv_usec; /* microseconds */
};
struct pcap_sf_pkthdr {
struct pcap_timeval ts; /* time stamp */
bpf_u_int32 caplen; /* length of portion present */
bpf_u_int32 len; /* length this packet (off wire) */
};
【问题讨论】:
标签: pcap