измерение времени выполнения TLS-рукопожатия в python - PullRequest
0 голосов
/ 08 октября 2018

У меня есть простой скрипт, который выполняет рукопожатие TLS в python аналогично следующему пути в их документации :

import socket, ssl

context = ssl.SSLContext()
context.verify_mode = ssl.CERT_REQUIRED
context.check_hostname = True
context.load_default_certs()

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ssl_sock = context.wrap_socket(s, server_hostname='www.verisign.com')
ssl_sock.connect(('www.verisign.com', 443))

Я хочу измерить время, в течение которогоTLS рукопожатие занимает.Поэтому я предполагаю, что запуск таймера до функции connect и вычитание прошедшего времени будет следующим:

start = time.process_time()
sslSocket.connect((domainName, 443))
perfTime = time.process_time() - start

Я посмотрел документацию connect, и вот что она говорит:

Подключение к удаленной розетке по адресу.(Формат адреса зависит от семейства адресов - см. Выше.) Если соединение прервано сигналом, метод ожидает завершения соединения или увеличивает значение socket.timeout по таймауту, если обработчик сигнала не вызываетисключение и сокет блокируется или имеет тайм-аут.Для неблокирующих сокетов метод вызывает исключение InterruptedError, если соединение прерывается сигналом (или исключением, вызванным обработчиком сигнала).

Мой вопрос: выполняет ли функция connectв моем коде выполняет рукопожатие TLS?Вот для чего я хочу измерить производительность: Рукопожатие TLS.connect - это уровень TCP, но я поместил сокет в контекст TLS.Пожалуйста, объясните мне, как измерить производительность рукопожатия TLS в моем простом коде?

...