Я заинтересован в том, чтобы иметь возможность определять определенные параметры, используя время загрузки, которое потребовалось для запроса, с момента его отправки до момента, когда он попал на сервер. Запрос, о котором я говорю, представляет собой пакет SYN в трехстороннем рукопожатии. Как я могу это сделать? С нетерпением жду вашего ответа! Конечно, какой язык мне следует использовать... Сейчас я тестирую Python + Scapy.
Проверка времени задержки в запросе
Ответы (1)
Если вы хотите использовать Scapy (что кажется разумным выбором для того, что вы хотите сделать), вам нужно использовать атрибут Packet.time
. Вот простой пример:
>>> def measure_delay(packet):
... ans, _ = sr(packet, verbose=False)
... if ans:
... return reduce(lambda x, y: y.time - x.time, ans[0])
...
>>> measure_delay(IP(dst='192.168.1.254')/TCP(dport=80))
0.07259798049926758
Из командной строки Unix вы также можете использовать hping3 и искать значение rtt=
:
# sudo hping3 --syn 192.168.1.254 -p 80 -c 1
HPING 192.168.1.254 (wlan0 192.168.1.254): S set, 40 headers + 0 data bytes
len=44 ip=192.168.1.254 ttl=64 DF id=0 sport=80 flags=SA seq=0 win=14600 rtt=3.1 ms
--- 192.168.1.254 hping statistic ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 3.1/3.1/3.1 ms
person
Pierre
schedule
06.07.2014
Спасибо!! Но что вы думаете об использовании опции pkt.time?
- person user2634624; 07.07.2014
Я не понимаю вашего вопроса. Использование атрибута
Packet.time
— это хороший способ делать то, что вы хотите в Scapy, я упоминаю только решение hping3 для записи.
- person Pierre; 07.07.2014