Измерение времени выполнения для рукопожатия TLS - PullRequest
0 голосов
/ 28 января 2019

У меня есть этот пример кода для измерения времени выполнения TLS-рукопожатия.Результат, который я получаю: 3.43 ms.Повторяя это в течение 1000 раз, я получаю минимальное время ниже 1 ms.Я использую устройство с публичным IP-адресом.Я также не хочу заботиться о проверке сертификата / хоста.Просто рукопожатие (клиент привет, сервер привет и т. Д. До конца рукопожатия).Я использую доменное имя для подключения к серверу (например, google.com).

Мой вопрос: результат времени выполнения, который я получаю, кажется очень маленьким.Я что-то упускаю или это нормально для рукопожатия TLS с использованием моих параметров?

Код Python:

import socket, ssl
import time
import datetime

context = ssl.SSLContext()
context.options |= ssl.OP_NO_TICKET #diable session ticket
context.verify_mode = ssl.CERT_NONE # disable cert. validation
context.check_hostname = False  # disable host name checking
dn = "google.com" # example of domain to connect to
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # create socket
s.settimeout(5) # set timeout
sslSocket = context.wrap_socket(s, server_hostname = dn) # wrap socket into TLS context

try:
    begin = time.process_time() # start timer
    sslSocket.connect((dn, 443)) # TLS socket connection
    perf = time.process_time() - begin # end timer

    print ("Success! Performance time for TLS connection is: ", perf*1000) #convert from sec. to ms by multiplying with 1000


except (ssl.SSLError, ssl.SSLEOFError, ssl.CertificateError,ssl.SSLSyscallError, ssl.SSLWantWriteError, ssl.SSLWantReadError,ssl.SSLZeroReturnError) as e1:
    sslSocket.close() # close the socket
except Exception as e2:
    sslSocket.close() # close the socket 
...