Практические советы по выбору и настройке Cisco VPNSkillFactory
Сергей Кучеренко – инструктор онлайн-школы SkillFactory, CCIE Security и международный эксперт по информационной безопасности – о Cisco VPN: очень многообразной и сложной технологии, разобраться в которой бывает непросто даже опытным специалистам.
Networking technology in modern Virtual Private Clouds (RUS, RootConf++ 2018)Vadim Ponomarev
The network is the lifeblood of any modern private cloud, and it is also one of the hardest parts to understand, configure, and administer in the cloud. The rapid development of cloud technologies has spurred the emergence of special network equipment, new protocols, new technologies, and cloud IT professionals need to understand how it all works, interacts, and is managed. The main purpose of the report is to tell in detail how the network works in modern private clouds, what technologies are used, how they develop, identify problems, and give recommendations for solving them.
Abstract: https://rootconf.ru/moscow-rit/2018/abstracts/3402
Video: https://www.youtube.com/watch?v=jrPdkdS5Vcc
Практические советы по выбору и настройке Cisco VPNSkillFactory
Сергей Кучеренко – инструктор онлайн-школы SkillFactory, CCIE Security и международный эксперт по информационной безопасности – о Cisco VPN: очень многообразной и сложной технологии, разобраться в которой бывает непросто даже опытным специалистам.
Networking technology in modern Virtual Private Clouds (RUS, RootConf++ 2018)Vadim Ponomarev
The network is the lifeblood of any modern private cloud, and it is also one of the hardest parts to understand, configure, and administer in the cloud. The rapid development of cloud technologies has spurred the emergence of special network equipment, new protocols, new technologies, and cloud IT professionals need to understand how it all works, interacts, and is managed. The main purpose of the report is to tell in detail how the network works in modern private clouds, what technologies are used, how they develop, identify problems, and give recommendations for solving them.
Abstract: https://rootconf.ru/moscow-rit/2018/abstracts/3402
Video: https://www.youtube.com/watch?v=jrPdkdS5Vcc
Варианты организации на FlexVPN таких конфигураций как L2L VPN (site to site VPN), RA VPN (remote access VPN), DMVPN (dynamic multipoint VPN).
Запись вебинара: https://www.youtube.com/watch?v=GJfFrVRLquU
Обратная разработка бинарных форматов с помощью Kaitai StructPositive Hack Days
Ведущий: Михаил Якшин
В докладе будут рассмотрены современные подходы к обратной разработке бинарных файлов: с чего начинают, что хотят получить на выходе, какими инструментами традиционно пользуются. Будет продемонстрирован новый проект— Kaitai Struct, представляющий собой инструментарий для декларативного описания бинарных структур данных с выводом результата в виде готовых библиотек на языках C++, Java, JavaScript, Python и Ruby. Несколько практических примеров использования обратной разработки помогут участникам лучше ознакомиться с проблематикой.
Performance optimization of virtual network infrastructure (RUS, OpenStack Me...Vadim Ponomarev
Event: OpenStack Meetup St.Petersburg 26.07.2016 (https://www.meetup.com/OpenStack-Russia-St-Petersburg/events/241112848/)
In this talk, I explained how TCP/IP stack works on all levels. How Linux kernel reads data from network card memory, how bits of data become a frame and they become a packet of traffic. the most interesting part of this talk - is how to tune TCP/IP stack for the real load on production systems.
IBM FlexSystem Chassis (October 2013) (RUS)Yury Alexeev
Презентация подготовлена по материалам справочников IBM Redbook. В кратком виде изложены основные моменты, которые помогают понять устройство шасси. Удобно пользоваться для конфигурации оборудования.
Based on IBM Redbooks this presentation is helpful to understand quickly the key points of IBM Flex System Chassis and can be used as a reference.
Опенсорс-инструменты на страже безопасности бэкенда — Петр ВолковYandex
Антивирусная система Яндекса ежедневно обнаруживает тысячи взломанных сайтов. Периодически среди них встречаются крупные и известные интернет-ресурсы.
Администраторы сайтов часто оказываются не готовы к тому, что злоумышленник может пробраться через внешний периметр и исполнить произвольный код на стороне сервера. В результате перед ними встаёт нелегкая задача: обнаружить последствия и предотвратить дальнейшие проблемы.
Доклад посвящён практикам и инструментам, которые могут существенно повысить эффективность противодействия вредоносной активности, и профилактике её возникновения.
Оптимизации поисковой выдачи Яндекса / Иван Хватов, Сергей Ляджин (Яндекс)Ontico
HighLoad++ 2017
Зал «Москва», 8 ноября, 17:00
Тезисы:
http://www.highload.ru/2017/abstracts/2880.html
Поисковая выдача Яндекса (СЕРП) - сложное многофункциональное веб-приложение с высокими требованиями к скорости загрузки. По ряду причин мобильный веб медленнее десктопа: ограничения по CPU/памяти в телефонах, нестабильность мобильных сетей.
В докладе расскажем, как с учётом этих особенностей, мы ускоряем мобильный СЕРП.
Михаил Белопухов: OpenBSD: Куда катится крипто?Yandex
В своем докладе я расскажу о прошлом, настоящем и будущем использования криптографии и криптографического стека в OpenBSD. Мы коснемся поддержки AES-NI и AES-GCM, использования ChaCha20 в качестве замены ARC4 в PRNG. Кроме того, рассмотрим альтернативы алгоритмам, стандартизованным NIST: ChaCha20, Poly1305, Curve25519, и их использование в OpenSSH и OpenBSD.
Кадры решают все, или стриминг видео в «Одноклассниках». Александр Тобольodnoklassniki.ru
Я расскажу, как нам удалось более чем в 10 раз ускорить старт просмотра кино и сериалов с использованием технологий адаптивного стриминга MPEG-DASH и HLS. Вы узнаете, какие технологии попали в поле зрения команды, как ин-фраструктурные особенности, размер аудитории и специфика потребления на разных пользовательских устройствах повлияли на принятие решения о выборе технологии. Естественно, будет дан и подробный отчет о результатах внедрения решения и полученном эффекте.
То есть около 50 млн. роликов, которые есть на «Одноклассниках», нужно раздать пользователям по стриминг-протоколу на скорости 40 Гбит/с с одного сервера и не хранить копии видео в разных форматах
Сравнение TCP/IP стека Windows Vista / Server 2008 и Windows XP / Server 2003Andrey Beshkov
В данном докладе мы посмотрим какие новые возможности появились в стеке TCP/IP нового поколения ОС Windows Server 2008 и Windows Vista. Так же мы сравним новый стек TCP/IP со старым стеком ОС Windows XP/ Windows Server 2003.
Segment routing- возможность задать на источнике (Ingress PE) путь прохождения пакетов по сети, с помощью последовательности сегментов в заголовке самих пакетов
Варианты организации на FlexVPN таких конфигураций как L2L VPN (site to site VPN), RA VPN (remote access VPN), DMVPN (dynamic multipoint VPN).
Запись вебинара: https://www.youtube.com/watch?v=GJfFrVRLquU
Обратная разработка бинарных форматов с помощью Kaitai StructPositive Hack Days
Ведущий: Михаил Якшин
В докладе будут рассмотрены современные подходы к обратной разработке бинарных файлов: с чего начинают, что хотят получить на выходе, какими инструментами традиционно пользуются. Будет продемонстрирован новый проект— Kaitai Struct, представляющий собой инструментарий для декларативного описания бинарных структур данных с выводом результата в виде готовых библиотек на языках C++, Java, JavaScript, Python и Ruby. Несколько практических примеров использования обратной разработки помогут участникам лучше ознакомиться с проблематикой.
Performance optimization of virtual network infrastructure (RUS, OpenStack Me...Vadim Ponomarev
Event: OpenStack Meetup St.Petersburg 26.07.2016 (https://www.meetup.com/OpenStack-Russia-St-Petersburg/events/241112848/)
In this talk, I explained how TCP/IP stack works on all levels. How Linux kernel reads data from network card memory, how bits of data become a frame and they become a packet of traffic. the most interesting part of this talk - is how to tune TCP/IP stack for the real load on production systems.
IBM FlexSystem Chassis (October 2013) (RUS)Yury Alexeev
Презентация подготовлена по материалам справочников IBM Redbook. В кратком виде изложены основные моменты, которые помогают понять устройство шасси. Удобно пользоваться для конфигурации оборудования.
Based on IBM Redbooks this presentation is helpful to understand quickly the key points of IBM Flex System Chassis and can be used as a reference.
Опенсорс-инструменты на страже безопасности бэкенда — Петр ВолковYandex
Антивирусная система Яндекса ежедневно обнаруживает тысячи взломанных сайтов. Периодически среди них встречаются крупные и известные интернет-ресурсы.
Администраторы сайтов часто оказываются не готовы к тому, что злоумышленник может пробраться через внешний периметр и исполнить произвольный код на стороне сервера. В результате перед ними встаёт нелегкая задача: обнаружить последствия и предотвратить дальнейшие проблемы.
Доклад посвящён практикам и инструментам, которые могут существенно повысить эффективность противодействия вредоносной активности, и профилактике её возникновения.
Оптимизации поисковой выдачи Яндекса / Иван Хватов, Сергей Ляджин (Яндекс)Ontico
HighLoad++ 2017
Зал «Москва», 8 ноября, 17:00
Тезисы:
http://www.highload.ru/2017/abstracts/2880.html
Поисковая выдача Яндекса (СЕРП) - сложное многофункциональное веб-приложение с высокими требованиями к скорости загрузки. По ряду причин мобильный веб медленнее десктопа: ограничения по CPU/памяти в телефонах, нестабильность мобильных сетей.
В докладе расскажем, как с учётом этих особенностей, мы ускоряем мобильный СЕРП.
Михаил Белопухов: OpenBSD: Куда катится крипто?Yandex
В своем докладе я расскажу о прошлом, настоящем и будущем использования криптографии и криптографического стека в OpenBSD. Мы коснемся поддержки AES-NI и AES-GCM, использования ChaCha20 в качестве замены ARC4 в PRNG. Кроме того, рассмотрим альтернативы алгоритмам, стандартизованным NIST: ChaCha20, Poly1305, Curve25519, и их использование в OpenSSH и OpenBSD.
Кадры решают все, или стриминг видео в «Одноклассниках». Александр Тобольodnoklassniki.ru
Я расскажу, как нам удалось более чем в 10 раз ускорить старт просмотра кино и сериалов с использованием технологий адаптивного стриминга MPEG-DASH и HLS. Вы узнаете, какие технологии попали в поле зрения команды, как ин-фраструктурные особенности, размер аудитории и специфика потребления на разных пользовательских устройствах повлияли на принятие решения о выборе технологии. Естественно, будет дан и подробный отчет о результатах внедрения решения и полученном эффекте.
То есть около 50 млн. роликов, которые есть на «Одноклассниках», нужно раздать пользователям по стриминг-протоколу на скорости 40 Гбит/с с одного сервера и не хранить копии видео в разных форматах
Сравнение TCP/IP стека Windows Vista / Server 2008 и Windows XP / Server 2003Andrey Beshkov
В данном докладе мы посмотрим какие новые возможности появились в стеке TCP/IP нового поколения ОС Windows Server 2008 и Windows Vista. Так же мы сравним новый стек TCP/IP со старым стеком ОС Windows XP/ Windows Server 2003.
Segment routing- возможность задать на источнике (Ingress PE) путь прохождения пакетов по сети, с помощью последовательности сегментов в заголовке самих пакетов
Александр Устюжанин, представитель компании ETegro, представил стойку Therascale и решение, совместно разработанное Etegro и Mirantis. Тестовая стойка ETegro Therascale высотой 44U, вмещает до 40 вычислительных узлов, до трех коммутаторов и модуль управления стойкой для централизованного контроля состояния оборудования в стойке. Вычислительный узел ETegro Therascale – это двухпроцессорный сервер на процессорах Intel Xeon E5- 2600 v2 полной ширины c поддержкой до 16 модулей памяти DDR3 ECC Reg. и до 6 дисков размером 3,5”. Порты сетевые (2 x 1GbE), USB и управления выведены на переднюю панель, на которой также находится световая индикация состояния узла и сетевых портов. В случае отказа, вычислительный модуль легко заменяется, работы проводятся из «холодного коридора».
Сетевые аномалии – рано или поздно с ними сталкиваются все, кто так или иначе связан с созданием и эксплуатацией сетевых сервисов.
Природа сетевых аномалий и их проявления могут значительно варьироваться: потери пакетов, увеличение задержек, разрывы TCP-соединений. Но вне зависимости от своей природы сетевые аномалии требуют корректной и зачастую крайне оперативной диагностики.
В рамках доклада будут рассмотрены стандартные утилиты, такие как ping, traceroute, mtr, hping, а также области их применения. Самым значительным ограничением при использовании данных утилит является невозможность определения обратного пути пакета, что может значительно усложнить диагностику.
Также в докладе будут рассмотрены активные методы диагностики сетевых аномалий (Looking glass, RIPE Atlas, NLNOG RING, PlanetLab) и разработанный командой Qrator механизм определения обратного маршрута от любой заданной сети с использованием математического моделирования.
Сетевая диагностика: новый взгляд сквозь старые щели / Евгений Усков (Qrator ...Ontico
Сетевые аномалии – рано или поздно с ними сталкиваются все, кто так или иначе связан с созданием и эксплуатацией сетевых сервисов.
Природа сетевых аномалий и их проявления могут значительно варьироваться: потери пакетов, увеличение задержек, разрывы TCP-соединений. Но вне зависимости от своей природы сетевые аномалии требуют корректной и зачастую крайне оперативной диагностики.
В рамках доклада будут рассмотрены стандартные утилиты, такие как ping, traceroute, mtr, hping, а также области их применения. Самым значительным ограничением при использовании данных утилит является невозможность определения обратного пути пакета, что может значительно усложнить диагностику.
Также в докладе будут рассмотрены активные методы диагностики сетевых аномалий (Looking glass, RIPE Atlas, NLNOG RING, PlanetLab) и разработанный командой Qrator механизм определения обратного маршрута от любой заданной сети с использованием математического моделирования.
Разработка OpenFlow-коммутатора на базе сетевого процессора EZchipARCCN
Доклад Васина Вячеслава (ЦПИКС) на семинаре Консорциума университетов по изучению и развитию передовых технологий в сфере компьютерных сетей. 20 октября 2016 года
5. Модель OSI 5
DATA
DATA
DATA
DATA
DATA
DATA
DATA7 GET / HTTP/1.1 / HTTP/1.1 200 OK
6 Content-Type
5 IP:PORT
4 SRC/DST Port
3 SRC/DST IP
2 SRC/DST MAC
1
TCP
IP TCP
IP TCP
IP TCP
Ethernet frame
Ethernet packet
HTTP соединение через SOCKS туннель
SOC
KS
MIME
Ethernet frame
SOC
KS
SOC
KS
SOC
KS
SOC
KS
MIME
MIME
MIME
MIME
MIME
10. OSI model vs Internel protocol suite 10
“… Thus, in the OSI model, SSL/TLS must be in layer 6 or 7, and, at the
same time, in layer 4 or below. The conclusion is unescapable: the OSI
model does not work with SSL/TLS. TLS is not in any layer…”
https://security.stackexchange.com/questions/93333/what-layer-is-tls
13. UDP vs TCP 13
UDP TCP
Данные могут теряться Гарантия доставки
Порядок пакетов может перемешиваться Гарантия сохранения последовательности
Мало проверок Много проверок
Максимальный объём данных - 1 пакет Максимальный объём данных - любой
45. https://ok.ru
Запрос от клиента (1.1.1.2):
1. Dns » IP
Ok.ru » 5.61.23.11
2. IP » route
5.61.23.11 » 1.1.1.1 (default gw)
45
46. https://ok.ru
Запрос от клиента (1.1.1.2):
1. Dns » IP
Ok.ru » 5.61.23.11
2. IP » route
5.61.23.11 » 1.1.1.1 (default gw)
3. Route IP » MAC
1.1.1.1 » ff:de:fb:1a:94:41
46
47. https://ok.ru
Запрос от клиента (1.1.1.2):
1. Dns » IP
Ok.ru » 5.61.23.11
2. IP » route
5.61.23.11 » 1.1.1.1 (default gw)
3. Route IP » MAC
1.1.1.1 » ff:de:fb:1a:94:41
47
На каждом маршрутизаторе
48. https://ok.ru
Запрос от клиента (1.1.1.2):
1. Dns » IP
Ok.ru » 5.61.23.11
2. IP » route
5.61.23.11 » 1.1.1.1 (default gw)
3. Route IP » MAC
1.1.1.1 » ff:de:fb:1a:94:41
Ответ от сервера (5.61.23.11):
1. IP » route
1.1.1.2 » 5.61.23.1 (default gw)
2. Route IP » MAC
5.61.23.1 » ff:00:0c:9f:f0:25
48
54. Сетевая карта (NIC)
Что умеют сетевые карты?
ethtool -a eth0 - ethernet flow control
Свитч/NIC могут отправить друг-другу pause frame, если ring buffer
заполнен и новые данные не могут быть приняты. В этом случае
вторая сторона может попытаться временно сохранить пакет у себя
в буффере.
54
57. Сетевая карта (NIC)
Что умеют сетевые карты?
ethtool -n eth0 - RSS hash settings and NIC “firewall”
Позволяет фильтровать трафик на уровне NIC, не задействуя CPU.
57
58. Сетевая карта (NIC)
Что умеют сетевые карты?
ethtool -l eth0 - multiqueue
Количество очередей.
58
59. Сетевая карта (NIC)
Что умеют сетевые карты?
ethtool -x eth0 - receive flow hash indirection table.
Можно отправлять полученные пакеты не во все очереди (и
соответственно ядра процессора) или отправлять разное количество
пакетов в разные очереди.
59
60. Сетевая карта (NIC)
Что умеют сетевые карты?
ethtool --show-priv-flags eth0 - manufacturer specific settings
Всё что выходит за рамки стандартного функционала сетевых карт.
60
61. Сетевая карта (NIC)
Что умеют сетевые карты?
ethtool -m eth0 - port module specific settings.
Настройки и статистика модульного порта сетевой карты (SFP+,
QSFP).
61
62. Содержание
● Модель OSI
● Сетевая карта (NIC)
● Сетевой стек Linux
○ Пакеты
○ Соединения
○ User-space network stack
● TCP
○ Cumulative acknowledgment
○ Selective acknowledgment
○ Flow control
○ Congestion control
● DNS
● HTTP
● HTTPS
62
73. Сетевой стек Linux: соединения 73
Что умеют соединения?
● SO_KEEPALIVE - поддерживать соединение открытым, отсылая
keepalive пакеты (в Linux по умолчанию 2 часа!)
● SO_REUSEADDR (net.ipv4.tcp_tw_reuse) - переиспользовать TIME_WAIT
соединения (меньше шансов, что закончаться доступные сокеты)
● SO_REUSEPORT - разрешить слушать порт нескольким
процессам/тридам (быстрое открытие входящих соединений)
● TCP_CORK - отсылать данные пачками (увеличивает throughput, для
малоактивных соединений, выключать или использовать вместе с
TCP_QUICKACK)
● TCP_NODELAY - отсылать данные как можно быстрее (уменьшает
latency)
● TCP_DEFER_ACCEPT - не будить приложение, пока не придут
реальные данные
74. Сетевой стек Linux: соединения 74
Моё приложение слушает порт и обслуживает соединения!
Я всё контролирую!
75. Сетевой стек Linux: соединения 75
Моё приложение слушает порт и обслуживает соединения!
Я всё контролирую!
Всё делает ядро:
● слушает порт
● устанавливает соединения
● поддерживает tcp keepalive
● закрывает соединения
Приложение только отдаёт распоряжения (и то не всегда).
76. Сетевой стек Linux: соединения 76
Лимиты соединений
● net.ipv4.tcp_max_syn_backlog - SYN received, SYNACK sent
● net.core.somaxconn or listen(sockfd,SOMAXCONN) - ACK received,
ожидает обработки приложением
91. Терминология: RTT 91
0 - 100ms Respond to a user action within this time window and users feel like the result is immediate. Any
longer, and the connection between action and reaction is broken.
100 - 300ms Users experience a slight perceptible delay.
300 - 1000 ms Within this window, things feel part of a natural and continuous progression of tasks. For most
users on the web, loading pages or changing views represents a task.
1000+ms Beyond 1 second, the user loses focus on the task they are performing.
10,000+ms The user is frustrated and is likely to abandon the task; they may or may not come back later.
https://developers.google.com/web/fundamentals/performance/rail
92. Терминология: RTT 92
3G 4G
DNS lookup 200 ms 100 ms
TCP handshake 200 ms 100 ms
TLS handshake 200–400 ms 100–200 ms
HTTP request 200 ms 100 ms
Total latency overhead 200–1000 ms 100–500 ms
97. TCP: пропускная способность 97
С какой максимальной скоростью можно передавать данные через 1
TCP соединение при MTU=1500byte и RTT=20ms?
98. TCP: пропускная способность 98
С какой максимальной скоростью можно передавать данные через 1
TCP соединение при MTU=1500byte и RTT=20ms?
throughput=MTU/RTT
throughput=1500/20=75byte/ms=75*8*1000/1024/1024=0.57Mbit/s
Маловато будет!
99. Содержание
● Модель OSI
● Сетевая карта (NIC)
● Сетевой стек Linux
○ Пакеты
○ Соединения
○ User-space network stack
● TCP
○ Cumulative acknowledgment
○ Selective acknowledgment
○ Flow control
○ Congestion control
● DNS
● HTTP
● HTTPS
99
104. TCP: Bandwidth-delay product 104
Bandwidth-delay product - количество битов информации, получение
которых ещё не подтверждено.
Нужно ли ограничивать?
105. TCP: Bandwidth-delay product 105
С какой максимальной скоростью можно передавать данные через 1
TCP соединение при Bandwidth=1Gbit/s?
106. TCP: Bandwidth-delay product 106
С какой максимальной скоростью можно получать данные через 1 TCP
соединение при Bandwidth=1Gbit/s?
107. TCP: Bufferbloat 107
Больше BDP » больше queue » больше latency » больше packet drop »
больше retransmit » меньше throughput
Packet queue (Bufferbloat)
Gateway
Server Client
108. TCP: Bandwidth-delay product 108
С какой максимальной скоростью можно принимать/отправлять
данные через 1 TCP соединение при Bandwidth=1Gbit/s?
Со скоростью самого медленного участка пути.
109. Сетевой стек Linux: пакеты 109
TX
Application
Socket TX buffer
Kernel TX queue (qdisc)
NIC Driver TX ring buffer
NIC internal buffer
RX
Application
Socket RX buffer
[Kernel RX queue (backlog)]
NIC Driver RX ring buffer
NIC internal buffer
110. TCP: Flow control 110
Сколько данных можно отправить, чтобы принимающее приложение
не захлебнулось и не переполнились буферы?
Хватает ли ресурсов приложению на принимающей стороне?
Не занято ли приложение чем-то другим?
111. Содержание
● Модель OSI
● Сетевая карта (NIC)
● Сетевой стек Linux
○ Пакеты
○ Соединения
○ User-space network stack
● TCP
○ Cumulative acknowledgment
○ Selective acknowledgment
○ Flow control
○ Congestion control
● DNS
● HTTP
● HTTPS
111
112. Сетевой стек Linux: пакеты 112
TX
Application
Socket TX buffer
Kernel TX queue (qdisc)
NIC Driver TX ring buffer
NIC internal buffer
RX
Application
Socket RX buffer
[Kernel RX queue (backlog)]
NIC Driver RX ring buffer
NIC internal buffer
113. TCP: Flow control: TCP Window 113
min( free space in client socket buffer - in flight traffic,
free space in server socket buffer)
115. TCP: Flow control: TCP Window 115
С какой максимальной скоростью можно передавать данные через 1
TCP соединение при BDP=65KB, RTT=20ms, Bandwidth=1Gbit/s?
throughput=BDP/RTT
throughput=65/0.02=3250KB/s=3250*8/1024=25Mbit/s
Маловато будет!
117. TCP: Congestion control 117
Application
Socket buffer
Kernel queue
NIC Driver ring buffer
NIC internal buffer
Почему пропадают пакеты?
Почему растёт latency?
Где bufferbloat?
На сколько нам снизить скорость
отсылки данных?
Как узнать, что скорость можно
увеличить опять?
Packet queue (Bufferbloat)
Gateway1 Gateway3
Server Gateway2 Client
118. TCP: Congestion control 118
Почему у меня тормозит habrahabr.ru, когда я качаю легальный контент
через торренты?
Почему у меня тормозит torrent по WiFi из спальни?
119. Содержание
● Модель OSI
● Сетевая карта (NIC)
● Сетевой стек Linux
○ Пакеты
○ Соединения
○ User-space network stack
● TCP
○ Cumulative acknowledgment
○ Selective acknowledgment
○ Flow control
○ Congestion control
● DNS
● HTTP
● HTTPS
119
120. TCP: Congestion avoidance algorithms 120
Входные данные:
● Latency
● Loss
Если пакеты теряются и latency растёт, то возможно надо снизить
скорость передачи.
121. TCP: Congestion avoidance algorithms 121
Входные данные:
● Latency
● Loss
Если пакеты теряются и latency растёт, то возможно надо снизить
скорость передачи.
А может и нет.
122. TCP: Congestion avoidance algorithms 122
TCP Tahoe and Reno
TCP Vegas
TCP New Reno
TCP Hybla
TCP BIC
TCP CUBIC
Agile-SD TCP
TCP Westwood+
Compound TCP
TCP Proportional Rate Reduction
TCP BBR
FAST TCP
Generalized FAST TCP
H-TCP
Data Center TCP
High Speed TCP
HSTCP-LP
TCP-Illinois
TCP-LP
TCP SACK
Scalable TCP
TCP Veno
Westwood
XCP
YeAH-TCP
TCP-FIT
124. TCP: To Buffer or not to Buffer 124
Зачем?
● Для пакетной обработки
● Для сглаживания нагрузки
Сколько?
● Не обрабатывать столько времени, сколько вы можете ждать.
Throughput vs Latency
Когда?
● Слишком дорого обрабатывать по одному
● Чтобы избежать блокировок
131. DNS: RTT 131
# host games.ok.ru
games.ok.ru is an alias for www.ok.ru.
www.ok.ru has address 5.61.23.11
www.ok.ru has address 217.20.147.1
www.ok.ru has address 217.20.155.13
133. DNS: Global Server Load Balancing 133
А если клиент использует Google DNS 8.8.8.8?
134. DNS: EDNS 134
Псевдо-запись типа OPT, которой нет в зоне и которая существует
только в DNS пакетах участников обмена данными.
Примеры использования:
● DNSSEC: EDNS header flag “DO”
● GSLB DNS: EDNS Option “edns-client-subnet”
139. HTTP 139
Как ускорить?
● Keepalive - сокращает количество roundtrip для получения каждого
файла.
● HTTP 2 - параллельное получение файлов [и push].
143. HTTP: WebSocket 143
TCP соединение, которое устанавливается с вебсервером, при этом
после установки внутри соединения могут ходить данные любого вида
в обоих направлениях - никакого оверхеда связанного с HTTP
протоколом нет.
144. Содержание
● Модель OSI
● Сетевая карта (NIC)
● Сетевой стек Linux
○ Пакеты
○ Соединения
○ User-space network stack
● TCP
○ Cumulative acknowledgment
○ Selective acknowledgment
○ Flow control
○ Congestion control
● DNS
● HTTP
● HTTPS
144
155. UDP 155
Туннелирование (VPN)
Сколько RTT надо для установки TCP соединения внутри TCP
туннеля?
Сколько RTT надо для пересылки пакета, если первый раз он пропал?
156. Quic 156
TLS handshake
TLS ticket
“TFO”
Congestion control
Multiplexed connections
Speculative retransmission
Compression
Fallback to TCP
162. Quic 162
Было Стало
Что Кто Сколько Что Кто Сколько
SPDY
(deprecated)
Google 7% в 2016 HTTP/2 IETF,
Google
49% из
ТОП 10М
в Августе
2020
QUIC Google 4.2% в
Апреле
2020
HTTP/3
(HTTP
over
QUIC)
(draft)
IETF,
Google
8% из
ТОП 10М
в Августе
2020
163. Содержание
● Модель OSI
● Сетевая карта (NIC)
● Сетевой стек Linux
○ Пакеты
○ Соединения
○ User-space network stack
● TCP
○ Cumulative acknowledgment
○ Selective acknowledgment
○ Flow control
○ Congestion control
● DNS
● HTTP
● HTTPS
● QUIC
163