У меня есть этот пример кода для измерения времени выполнения 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