Системный дизайн, 1 из 10. Сети

Шесть аббревиатур, которые встретятся в ответах агента:

DNS. Превращает example.com в IP-адрес. TCP-соединение. Три пакета (SYN, SYN-ACK, ACK), после них есть канал. TLS. Шифрование поверх TCP. Сертификат, ключи, рукопожатие. ALPN. TLS-клиент и сервер выбирают HTTP/1.1 или HTTP/2. RTT. Сколько пакет идет туда и обратно. IPv4. Адреса, которые в мире кончаются, вида 111.222.123.213.

Шаг 1. 25 минут. Обзор протокола HTTP.

Шаг 2. 1 минута. Тайминги. Запусти в терминале несколько раз: curl -sS -o /dev/null -w ‘dns=%{time_namelookup} tcp=%{time_connect} tls=%{time_appconnect} first=%{time_starttransfer} total=%{time_total}\n’ https://example.com

Шаг 3. 5 минут. DNS. Запусти в терминале: dig example.com A +short dig example.com AAAA +short Пойми разницу между A и AAAA записями. Ответь на вопрос почему AAAA может содержать IPv4.

Шаг 4. 5 минут. handshake Попроси агента запустить tcpdump для снятия хендшейка. Попроси агента объяснить как посмотреть сетевые логи в Google Chrome.

Шаг 5. 5 минут. TLS и версия HTTP. Запусти в терминале: curl -v https://example.com -o /dev/null 2>&1 | grep -Ei ‘SSL|TLS|ALPN|HTTP/2|Connected’ Попроси агента объяснить каждую строчку.

Шаг 6. 10 минут. Таблица. Выбери другой сайт. Собери информацию: time_namelookup, time_connect, time_appconnect, time_starttransfer, time_total, A / AAAA.

Шаг 7. 10 минут. Закрой всё, напиши 10 строк “что происходит между curl и ответом”, неуверенные ответы пометь знаком вопроса (?), потом отдай агенту чтобы составил список чтения.

Шаг8. Со звездочкой - сбор MTR. Попроси агента собрать MTR до сайта. Это покажет состояние сети и скорость/потерю пакетов на всём протяжении.