我在Windows 7(客户端)上使用.NET 4.5对在嵌入式系统(服务器)上运行的lighttpd进行https调用。
第一个https请求比后续请求慢+ -120ms。第一个请求较慢是正常的,因为建立了连接而其他请求重新使用现有连接。
当我查看Wireshark时,我看到以下TLSv1消息:
client -> server: Client Hello
server -> client: Server Hello, Certificate, Server Hello Done
client -> server: Client Key Exchange, Change Cipher Spec, Finished
server -> client: Change Cipher Spec, Finished
此设置过程大约需要25毫秒。
然后在Windows机器发送http请求之前需要80ms
client -> server: Http Request
问题
为什么Windows机器需要80ms才能发出请求?我可以减少这种延迟吗?
注意 如果我在同一台机器上使用Qt 5.2(使用OpenSSL)发送请求,则设置过程大约需要55ms,并且Http请求会在1ms内发送。
答案 0 :(得分:1)
(回答我自己的问题)
在此期间,.NET验证服务器证书。验证包括验证名称并将证书链接到系统受信任的根CA.
时间不能减少。