番茄不能和什么一起吃| 小肚子一直疼是什么原因| 蒲公英长什么样| 血管狭窄吃什么药| 什么是慢性萎缩性胃炎| jeans是什么意思| 高尿酸血症吃什么药| 招财进宝是什么意思| 输尿管不扩张什么意思| 一什么| 早筛是检查什么项目| 初伏吃什么| 甲状腺适合吃什么食物| 一饿就胃疼是什么原因| ambush是什么牌子| 放屁是什么意思| 用凝胶排出豆腐渣一样的东西是什么原因| 鲁蛇是什么意思| 什么水果可以泡酒| 福生无量天尊什么意思| 罗汉果泡水喝有什么作用| 鼠加句念什么| 6月29号是什么星座| 上热下寒吃什么中成药| 7月15号是什么星座| 月经没来吃什么药可以催月经来| 25岁属什么生肖| 长期拉肚子是怎么回事什么原因造成| 辰字属于五行属什么| 染发膏用什么能洗掉| 缄默症是什么病| 7月28号是什么星座| 多吃黑豆有什么好处| 籼米是什么米| 胃火大吃什么药| 炮烙之刑是什么意思| 肾阴虚吃什么药| 奔跑的马是什么牌子的车| 奥利司他是什么药| 星期天为什么不叫星期七| 白头翁是什么生肖| 胃强脾弱吃什么中成药| 中二病是什么| 七月有什么节日| 大禹姓什么| 拉肚子为什么会发烧| 戒指什么品牌好| ras医学上是什么意思| 下眼睑跳动是什么原因| 柠檬加蜂蜜泡水喝有什么功效| 抨击是什么意思| la帽子是什么牌子| 梦见冬瓜是什么意思| 女人为什么会叫| 四月十号是什么星座| 阳起石是什么东西| sd是什么意思| 天蝎座后面是什么星座| 耐受性是什么意思| 半夜两点是什么时辰| 心脏挂什么科| 石斛念什么| 猪蹄炖什么| 香蕉不能和什么一起吃| 什么心什么意| 什么样的梦才算是胎梦| 嘴巴里长血泡是什么原因| rpa是什么| 九锡是什么意思| s和m是什么| 醪糟是什么| 碧绿的什么| 嗓子痒痒吃什么药| 白猫进家有什么预兆| 梦见放鞭炮是什么意思| 韫字五行属什么| 佟丽娅为什么离婚| 丁克什么意思| 佛龛是什么意思| 脸发红发烫是什么原因| 黄体回声是什么意思| 怀孕了不能吃什么| 梦到吃饭是什么意思| 苏打水有什么好处| 百合有什么作用与功效| prp是什么意思| 表哥的儿子叫什么| 蚊子长什么样| 市值是什么意思| 厚黑学什么意思| pending是什么状态| 梦见下雪了是什么意思| 梦到孩子丢了是什么征兆| 爱的本质是什么| 马中赤兔人中吕布什么意思| 算什么男人歌词| 梦见种树是什么兆头| pending是什么意思| 吃饭容易出汗是什么原因| 天秤座属于什么星象| 如来佛祖叫什么名字| 子宫肌腺症是什么病| 经常做梦是什么原因| 沉鱼落雁闭月羞花什么意思| 赵雅芝是什么脸型| 小便有血尿是什么原因| 8月9号是什么星座| 龙眼是什么季节的水果| 脚痒脱皮是什么原因| 腋下检查挂什么科| 马太效应什么意思| 武则天是什么星座的| 血糖高适合喝什么茶| 发改局是做什么的| 男性乳头疼是什么原因| 胎位lsa是什么意思| 玫瑰糠疹吃什么药| 势如破竹什么意思| 血栓吃什么药可以疏通血管| 舌头白吃什么药| 胸膜增厚吃什么药| 权志龙为什么叫gd| 再生纤维素纤维是什么面料| 用红笔写名字代表什么| 草莓印是什么意思| 经常吃豆腐有什么好处和坏处| 湿疹用什么| 走路腿软没劲是什么原因引起的| 12年义务教育什么时候实行| 手指关节疼是什么原因| 顾影自怜什么意思| 尖锐湿疣是什么| 提前来大姨妈是什么原因| 试婚是什么意思啊| 头痛呕吐什么原因| 香港的别称是什么| 腰痛是什么原因引起的| 道理是什么意思| 鱼代表什么数字| 吃什么食物对眼睛好| 怀孕血糖高有什么症状| 襁褓是什么意思| 长期便秘是什么原因引起的| 颈椎痛吃什么药| peppa是什么意思| 小孩吃火龙果有什么好处| broom是什么意思| 深棕色是什么颜色| 澳门有什么好玩的地方| 女性尿急憋不住尿是什么原因| 头汗特别多是什么原因| 丝瓜炒什么好吃| 歧路亡羊告诉我们什么道理| 抑制剂是什么| 吃什么才能长胖| 一阵什么| 祸起萧墙是什么意思| 有利有弊是什么意思| 红霉素软膏和眼膏有什么区别| 嘴干是什么原因| 为什么会抽搐| 甲状腺低回声结节是什么意思| 鳞状上皮是什么意思| 神经内科看什么病的| 阑尾炎能吃什么| 什么是维生素| 陈醋泡花生米有什么功效| 什么时间段买机票最便宜| 卵巢筛查要做什么检查| 粉的像什么| 参芪颗粒适合什么人吃| 梦见自己来月经了什么预兆| 月经褐色量少是什么原因| 边缘性行为包括什么| 两个人背靠背是什么牌子| 为什么医生说直肠炎不用吃药| 又吐又拉是什么原因| 傻瓜是什么意思| 为什么有些人怎么吃都不胖| 政府是干什么的| 朋友圈发女朋友照片配什么文字| 脂肪瘤挂什么科| 二型血糖高吃什么药好| 九月二十二是什么星座| 黑白颠倒是什么意思| 孩子手抖是什么原因| 内分泌失调吃什么药效果最好| 狗舔人是什么意思| 畸胎瘤是什么病严重吗| 酚妥拉明是什么药| 孕妇甲减是什么原因引起的| 军士长是什么级别| maggie什么意思| cba什么时候开始比赛| 16588a是什么尺码女装| 哥文花园女装什么档次| 为什么男人吃石榴壮阳| 有什么有什么| 什么是性| 青岛是什么省| 微波炉不热是什么原因| 打喷嚏流鼻涕吃什么药| yg是什么意思| 吃钙片有什么好处| 91年什么命| 阴道松弛吃什么药| 扑热息痛又叫什么名| 胆是起什么作用的| 鼻塞有脓鼻涕吃什么药| 采字五行属什么| 送哥们什么礼物好| 海螺吃什么| 买手店是什么意思| 天女散花是什么意思| 阴虱卵长什么样图片| 房性早搏吃什么药最好| 去威海玩需要准备什么| 家有喜事是什么生肖| 牛肉可以炒什么菜| nm是什么意思| 阳痿早泄用什么药| 蛋白粉吃了有什么好处| 淘米水洗脸有什么作用与功效| 老婆饼为什么叫老婆饼| 胃胀胃不消化吃什么药| 人参果是什么季节的| 去胎毒吃什么最好| 闰月是什么意思| 黄痰吃什么药最好| 仙女下凡是什么生肖| 孕妇抽筋是什么原因引起的| kb是什么| 勤代表什么生肖| 患得患失什么意思| 中国铁塔是干什么的| 为什么眼睛老是流泪| 大海是什么颜色| 做梦捡钱是什么预兆| 暗网是什么| 天公作美什么意思| 英国为什么叫日不落帝国| 什么的跳舞| 孕妇梦见龙是什么征兆| 科伦是什么药| 心理医生挂什么科| 无力感是什么意思| 腮腺炎的症状是什么| red什么颜色| 土豆是什么科| 什么球会自己长大| 7.13是什么日子| 皮肤暗黄是什么原因造成的| 维吾尔族是什么人种| 睡眠障碍吃什么药最好| 什么叫慢性萎缩性胃炎| 患得患失是什么意思| 鸽子吃什么粮食| 血糖高是什么原因| 肾功能不好吃什么药| 狗狗吐是什么原因| 喝牛奶不能和什么一起吃| 丹毒是什么病| 做梦梦见屎是什么意思| 3月30号是什么星座| 百度
Skip to content

weigon/openssl-tls13-ping-pong

Folders and files

NameName
Last commit message
Last commit date

Latest commit

?

History

49 Commits
?
?
?
?
?
?
?
?

Repository files navigation

TLS 1.3 + TCP Fast Open

  1. TCP Fast Open added support to send data in the first packet of the TCP handshake.
  2. TLS 1.3 added support for 0-RTT, allowing to send application data in the first packet of the TLS handshake.

which makes it possible to establish a encrypted connection and send the application over TCP in one packet.

TL;DR

  1. using TLS 1.3 instead of TLS 1.2 saves a round-trip in the full handshake
  2. session resumption saves about 5-8ms
  3. TLS 1.3 0-RTT saves another round-trip
  4. TCP Fast Open saves another round-trip

Scenario

A simple use case

  1. establish connection
  2. send PING
  3. receive PONG
  4. close connection

over a network with a round-trip-time (RTT) of

  • 200ms (between DCs, different region)
  • 20ms (between DCs, same region)
  • 2ms (in a DC)
  • 0.2ms (LAN)
  • 0.02ms (loopback)

RTT 200ms

TLS Version Full Handshake Full Handshake + TFO Resumption Resumption + TFO
TLS 1.0, 1.1, 1.2 809.50ms 609.20ms 704.90ms 504.80ms
TLS 1.3 609.30ms 409.40ms 602.60ms 402.50ms

RTT 20ms

TLS Version Full Handshake Full Handshake + TFO Resumption Resumption + TFO
TLS 1.0, 1.1, 1.2 88.92ms 69.13ms 74.88ms 54.82ms
TLS 1.3 69.20ms 49.17ms 62.52ms 42.53ms

Note: TFO is TCP Fast Open.

RTT 2ms

TLS Version Full Handshake Full Handshake + TFO Resumption Resumption + TFO
TLS 1.0, 1.1, 1.2 15.26ms 13.67ms 11.51ms 9.93ms
TLS 1.3 13.07ms 11.30ms 8.28ms 6.27ms

RTT 0.2ms

TLS Version Full Handshake Full Handshake + TFO Resumption Resumption + TFO
TLS 1.0, 1.1, 1.2 5.92ms 6.03ms 3.59ms 3.68ms
TLS 1.3 6.56ms 6.28ms 2.58ms 2.47ms

Examples

Build Requirements

  • cmake 3.4 or later
  • C++14 capable compiler
  • Openssl 1.1.1
  • Operating Systems
    • Linux 4.11 or later
    • FreeBSD 12 or later
    • MacOSX 10.11 or later
    • Windows 10

building

Configure the build:

$ cmake

Run the build with:

$ cmake --build .

Note: cmake --build . runs the build. On Unix it will run "make", on windows it will run "msbuild".

MacOS X/Windows

On MacOS X and Windows you need to pass -DOPENSSL_ROOT_DIR= to cmake:

$ cmake -DOPENSSL_ROOT_DIR=<path-to-openssl-binary-directory>
$ cmake --build .

Note: On MacOS X it is needed as linking against the systems openssl will fail.

running

  1. Start server in one terminal

    $ ./src/tls13_ping_pong_server --port=3308
    
  2. run the client in another terminal

    $ ./src/tls13_ping_pong_client --port=3308
    

Tracing packets

Start server as before, but add tcpdump:

$ sudo tcpdump -w tls13.pcap -i lo 'port 3308'
$ ./src/tls13_ping_pong_client --port=3308
$ wireshark tls13.pcap

Note: On FreeBSD and MacOS X use lo0 as name for the loopback interface.

Let wireshark decrypt the TLS packets automatically

Wireshark 3.x allows to add the session keys that were used for the connection into the pcap file:

$ sudo tcpdump -w tls13.pcap -i lo 'port 3308'
$ SSLKEYLOGFILE=keys.txt ./src/tls13_ping_pong_client --port=3308
$ editcap --inject-secrets tls,keys.txt tls13.pcap tls13-with-keys-dsb.pcapng
$ wireshark tls13-with-keys-dsb.pcapng

Adding latency

On Linux, to simulate real-life network delays all packets from and to port 3308 were delayed by 10ms by using the netem network emulator of tc.

$ sudo tc qdisc add dev lo root handle 1: prio
$ sudo tc qdisc add dev lo parent  1:3 handle 30: netem delay 10ms
$ sudo tc filter add dev lo parent 1:0 protocol ip u32 match ip dport 3308 0xffff flowid 1:3
$ sudo tc filter add dev lo parent 1:0 protocol ip u32 match ip sport 3308 0xffff flowid 1:3

About

How use openssl 1.1.1 to use TLS 1.3 0-RTT with TCP Fast Open

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  
透析到什么程度会死亡 干可以加什么偏旁 眼皮一直跳是什么原因 hiv是什么意思 耳鸣吃什么药最好
红细胞压积是什么意思 金鱼藻属于什么植物 什么牌子的益生菌调理肠胃比较好 毫米后面的单位是什么 亲额头代表什么意思
前列腺增生吃什么药效果最好 印迹杂交技术检查什么 老放屁是什么病的征兆 生活的意义是什么 送人礼物送什么好
媚眼如丝是什么意思 眼疖子用什么药 头痛是什么原因造成的 小孩呕吐是什么原因 5月出生是什么星座
例行检查是什么意思hcv8jop0ns6r.cn 打狗是什么意思imcecn.com 反流性食管炎是什么病hcv8jop7ns1r.cn 内热是什么意思0735v.com 7月1日是什么星座hcv7jop9ns2r.cn
胎盘位于子宫前壁是什么意思wuhaiwuya.com 怀孕初期流产有什么症状hcv8jop3ns0r.cn 肌肉的作用是什么hcv9jop6ns0r.cn 神经性皮炎是什么原因引起的zhongyiyatai.com 黑科技是什么hcv8jop3ns8r.cn
嗜是什么意思hcv8jop0ns8r.cn 什么样的人容易高原反应hcv7jop4ns8r.cn 什么是腐女hcv9jop2ns3r.cn 33数字代表什么意思hcv8jop1ns5r.cn 什么生肖最旺鸡hcv8jop6ns9r.cn
记字五行属什么hcv9jop1ns5r.cn 蓟是什么意思hcv9jop1ns4r.cn 血脂高吃什么药好hcv8jop4ns8r.cn 1951属什么生肖hcv9jop0ns3r.cn 例假什么意思hcv8jop6ns1r.cn
百度