如何准确测量Python套接字连接

如何准确测量Python套接字连接,python,sockets,tcp,wireshark,Python,Sockets,Tcp,Wireshark,我试图准确地测量使用套接字模块完成TCP三方握手所需的时间 我正在使用time.perf_counter()提供时间戳: try: t1 = time.perf_counter() sock.connect( (address, int(port)) ) t2 = time.perf_counter() sock.close() conn_time = "%8.5fms" % ( (t2-t1)*1000.0 ) 它提供了所需的粒度,但是Wires

我试图准确地测量使用套接字模块完成TCP三方握手所需的时间

我正在使用time.perf_counter()提供时间戳:

try:
    t1 = time.perf_counter()
    sock.connect( (address, int(port)) )
    t2 = time.perf_counter()
    sock.close()   
    conn_time = "%8.5fms" % ( (t2-t1)*1000.0 )
它提供了所需的粒度,但是Wireshark捕获显示计算的时间比实际连接时间长得多

我不确定问题是否与时间模块有关,也不确定代码从sock.connect移动到t2的时间点,即socket模块确定连接成功的时间点


对于更准确测量连接时间的任何建议,我们深表感谢。

您在Wireshark中准确测量的是什么?在哪一边?(或者在中间的某个地方)我希望这个代码来测量本地系统发送<代码> SYN<代码>所需的时间,并接收“代码> SYN+ACK < /代码>作为响应,并且(可能)将随后的<代码> ACK < /代码>入队。当然,在您第二次呼叫
time.perf_counter
之前,我不会期望远端实际收到握手的第三部分。您在Wireshark中测量的确切值是多少?在哪一边?(或者在中间的某个地方)我希望这个代码来测量本地系统发送<代码> SYN<代码>所需的时间,并接收“代码> SYN+ACK < /代码>作为响应,并且(可能)将随后的<代码> ACK < /代码>入队。当然,在您第二次调用
time.perf\u counter
之前,我不希望远端收到握手的第三部分。