Skip to content

tazhate/ITSoEasy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 

Repository files navigation

ITSoEasy

Всё, что происходит после ввода ya.ru в браузере и нажатии кнопки enter

Уровень железа

При нажатии клавиши меняется заряд на конденсаторе. Контроллер клавиатуры считывает это, посылает сигнал по протоколу USB HID / PS/2 на соответствующий интерфейс. Контроллер шины кидает прерывание, проц переключается в режим ядра, вызвает обработчик прерывания клавы, который в драйвере, драйвер сообщает ядру оси, что нажата клавиша со сканкодом 'Y', ось преобразует это в букву в зависимости от раскладки, ось передает мессадж в wndproc (я на примере винды, в лине там иксы вроде бы рулят, но архитектурно похоже примерно ), wndproc хрома (к примеру), в дебрях инкапсуляции вызвает его обработчик OnTextChange, в зависимости от настроек может асинхронно слать DNS-запрос по известному из DHCP DNS-серверу, Если ответ успевает прийти, то хром рисует рюшечку.

Уровень ядра ОС

Сетевой уровень

http get

arp & mac

routing & routing tables

DNS-запрос

Браузер формирует DNS-запрос через вызов gethostbyname() библиотеки winsock / <sys/sockets> (или использует либы Boost.Asio/libcurl/ прочую хуиту (все равно в итоге на sockets перейдет)), gethostbyname() это пошлет текущему минидрайверу сетевухи, произойдет переход в режим ядра, и инфа с днс-запросом запишется в отображенную память той сетевухи, потом контроллер шины перешлет эту инфу на сетевуху, она формирует Ethernet-фрейм (преамбулу, MAC'и), инкапсулирует туда IP-пакет с src /dst, потом DNS, шлет по маку на рутер.

Корневые днс серверы?

/etc/resolv.conf

TCP/IP

ARP

ROUTER

межпортовое взаимодействие, nat?

PROVIDERS & BGP

YANDEX SERVERS

DNS & WEB

NGINX?

Веб-сервер забинден на 80, ждет инфы, принимает, далее алгоритм, ответ.

DYMAMIC BACKEND + CACHES?

Уровень железа у яндекса (а надо ли?)

Taz Hate, [07.04.16 23:58] А если арп таблице нету? А еще таблица маршрутизации

Alex Fails⏳, [07.04.16 23:58] да, арп, точняк

Alex Fails⏳, [07.04.16 23:58] из него же мы определяем мак-адрес, куда по среде слать

Alex Fails⏳, [07.04.16 23:59] то мы кидаем броадкаст

Taz Hate, [07.04.16 23:59] А еще потом свитч/роутер

Alex Fails⏳, [07.04.16 23:59] ага, как дойдет до него, он в таблицу коммутации/маршрутизации лезет

... и так до ввода полного адреса. И мы начинаем опять на DNS слать запрос - он нам IP серва. Мы кидаем его на "основной шлюз", тот, в соответствие с таблицами маршрутизации, шлет дальше

IT - это просто.

About

IT is sooooo easy

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published