Объясни мне: как устроен интернет
vk f t

Объясни мне: как устроен интернет

Часть 1: Ком­пью­те­ры и сеть

Недав­но при­ня­ли закон о так назы­ва­е­мом суве­рен­ном интер­не­те. Есть мно­го слу­хов о том, что интер­нет смо­гут бло­ки­ро­вать, подав­лять, отклю­чать и мно­гое дру­гое. Мы не ком­мен­ти­ру­ем слу­хи, но вос­поль­зу­ем­ся слу­ча­ем и рас­ска­жем немно­го об устрой­стве само­го интер­не­та.

В этой ста­тье — основ­ные зна­ния о том, как устро­ен интер­нет, на при­ме­ре одно­го запро­са на сайт. Даль­ше — боль­ше. Что­бы было понят­но, мы наме­рен­но упус­ка­ем неко­то­рые тех­ни­че­ские дета­ли.

Интернет — это много компьютеров

Интер­нет — это мно­го вычис­ли­тель­ных машин, кото­рые объ­еди­не­ны в сеть. Объ­еди­не­ние в сеть озна­ча­ет, что одна вычис­ли­тель­ная маши­на может отпра­вить дру­гой сооб­ще­ние, а та может отве­тить. Пока непо­нят­но, но подо­жди­те.

Напри­мер, есть ваш смарт­фон. И есть ком­пью­тер «Яндек­са», кото­рый отве­ча­ет за отоб­ра­же­ние стра­ни­цы по адре­су yandex.ru. Смарт­фон дела­ет запрос «Пока­жи мне глав­ную yandex.ru», ком­пью­тер «Яндек­са» этот запрос полу­ча­ет, обра­ба­ты­ва­ет, про­ве­ря­ет, кто вы, и отда­ёт вам эту стра­ни­цу в виде кода. Ваш гад­жет полу­ча­ет код стра­ни­цы и выво­дит на экран в виде глав­ной стра­ни­цы «Яндек­са».

Может сло­жить­ся впе­чат­ле­ние, что мы ходим по интер­не­ту, захо­дим на сай­ты, вхо­дим в лич­ные каби­не­ты. На самом деле никто нику­да не ходит. Про­сто наш ком­пью­тер дела­ет запрос дру­го­му, тот даёт ответ, и наш ком­пью­тер выво­дит этот ответ на экран. Мож­но ска­зать, мы не ходим по интер­не­ту, а выбо­роч­но его ска­чи­ва­ем.

Как устроен интернет: Ваш смартфон делает запрос, компьютер «Яндекса» отдаёт вам страницу в виде кода

Клиенты и серверы

Обыч­но ком­пью­те­ры в интер­не­те гру­бо делят на кли­ен­ты и сер­ве­ры. Кли­ен­ты — это все ком­пью­те­ры, на кото­рых инфор­ма­цию потреб­ля­ют. Обыч­но у них есть кла­ви­а­ту­ры, экра­ны, они мобиль­ные и удоб­ные для людей. Ваш теле­фон, план­шет и ноут­бук — кли­ен­ты.

Сер­ве­ры — это тоже ком­пью­те­ры, но пред­на­зна­чен­ные для раз­да­чи инфор­ма­ции кли­ен­там. Внешне они обыч­но выгля­дят как метал­ли­че­ские ящи­ки, вкру­чен­ные в метал­ли­че­ские шка­фы: у них нет мони­то­ров и кла­ви­а­тур, зато внут­ри там огром­ные жёст­кие дис­ки, сот­ни гига­байт опе­ра­тив­ной памя­ти и мощ­ней­шие про­цес­со­ры.

Внут­ри меж­ду кли­ен­та­ми и сер­ве­ра­ми нет прин­ци­пи­аль­ных раз­ли­чий. И то, и дру­гое — ком­пью­те­ры. Вы може­те уста­но­вить программу-сервер на свой рабо­чий ком­пью­тер и после неко­то­рой настрой­ки раз­да­вать с него сай­ты. Или може­те под покро­вом ночи про­ник­нуть в сер­вер­ную, под­клю­чить к сер­ве­ру мони­тор и кла­ви­а­ту­ру и поиг­рать в пасьянс на 32-ядерном про­цес­со­ре.

Как устроен интернет: Компьютеры в интернете грубо делят на клиенты и серверы

Ради инте­ре­са: что может быть сер­ве­ром

Сер­ве­ром может рабо­тать почти любой ком­пью­тер. Вот несколь­ко идей:

Ваш ста­рый систем­ный блок, кото­рый пылит­ся в гара­же, мож­но пере­обо­ру­до­вать под фай­ло­вый сер­вер. На послед­ний мож­но будет ски­ды­вать семей­ные фото и делать резерв­ные копии важ­ных доку­мен­тов. Поста­ви­ли ком­пью­тер в кла­дов­ке, под­ве­ли к нему сете­вой про­вод, вклю­чи­ли и забы­ли.

На вашем рабо­чем ком­пью­те­ре может в фоно­вом режи­ме рабо­тать сер­вер для игры Counter-Strike. Дру­гие люди смо­гут спа­сать вир­ту­аль­ных залож­ни­ков и обез­вре­жи­вать вир­ту­аль­ные бом­бы, поль­зу­ясь мощ­но­стя­ми ваше­го ком­пью­те­ра.

Мож­но купить одно­плат­ный ком­пью­тер Raspberry Pi, под­клю­чить к нему Wi-Fi-антенну и бата­рею, и у вас будет кар­ман­ный сер­вер, кото­рый по ваше­му жела­нию может раз­да­вать фай­лы, пока­зы­вать сай­ты или управ­лять ботом в Telegram.

Мож­но на базе того же Raspberry Pi сде­лать сер­вер для умно­го дома. Он соби­ра­ет инфор­ма­цию со всех дат­чи­ков в квар­ти­ре, а вы под­клю­ча­е­тесь к нему через интер­нет и смот­ри­те, какая где тем­пе­ра­ту­ра, нет ли про­те­чек, что про­ис­хо­дит на каме­рах.

Как они связаны

Все пони­ма­ют, что в интер­не­те ком­пью­те­ры как-то свя­за­ны. Но как? Пред­ставь­те раз­ветв­лён­ную кор­не­вую систе­му дере­ва или кро­ве­нос­ную систе­му чело­ве­ка: есть боль­шие тол­стые арте­рии, от них отхо­дят сосу­ды, от них — более тон­кие сосу­ды, потом ещё и ещё, до тон­чай­ших капил­ля­ров. Похо­жим обра­зом устро­ен интер­нет.

Осно­ва интер­не­та — огром­ные маги­страль­ные кабе­ли, кото­рые лежат под зем­лёй и на дне оке­а­на: они соеди­ня­ют горо­да, стра­ны и кон­ти­нен­ты. Это тол­стые пуч­ки опто­во­лок­на, по кото­рым пере­да­ют­ся колос­саль­ные объ­ё­мы дан­ных.

Одна из глав­ных угроз меж­ду­на­род­но­му интер­не­ту — аку­лы: они любят грызть маги­страль­ные под­вод­ные кабе­ли. Это не шут­ка. При­чи­ну учё­ные пока не зна­ют — то ли из-за излу­че­ния, то ли про­сто инте­рес­но.

Огром­ные маги­страль­ные кабе­ли соеди­ня­ют боль­шие точ­ки обме­на дан­ны­ми: так назы­ва­е­мые экс­чейн­джи. Это орга­ни­за­ции, кото­рые отве­ча­ют за обмен тра­фи­ком меж­ду горо­да­ми, стра­на­ми и кон­ти­нен­та­ми. В Рос­сии око­ло 50 таких точек, в мире — поряд­ка 1 500.

В самом упро­щён­ном виде ваш интернет-провайдер полу­ча­ет доступ к бли­жай­ше­му экс­чейн­джу, что­бы иметь воз­мож­ность про­да­вать вам интер­нет. Пред­ставь­те, что от экс­чейн­джа про­кла­ды­ва­ет­ся тол­стый кабель к про­вай­де­ру. Кон­крет­но тол­стый кабель быва­ет не все­гда, но для наших целей такая мета­фо­ра подой­дёт. 

Даль­ше обыч­но так: про­вай­дер про­кла­ды­ва­ет менее тол­стый кабель в ваш рай­он, ста­вит в каком-нибудь доме рас­пре­де­ли­тель­ный марш­ру­ти­за­тор. Из него про­во­да тянут­ся в сосед­ние дома. Обра­ти­те вни­ма­ние на про­во­да меж­ду угол­ка­ми двух сосед­них мно­го­эта­жек — чаще все­го это интер­нет.

Как устроен интернет: Провода между двумя соседними многоэтажками — чаще всего интернет

Про­вод попа­да­ет в ваш дом. На кры­ше или в под­ва­ле ста­вит­ся марш­ру­ти­за­тор — это устрой­ство, кото­рое опре­де­ля­ет, куда какой сиг­нал отпра­вить. В марш­ру­ти­за­тор встав­ля­ет­ся про­вод, кото­рый тянет­ся непо­сред­ствен­но в вашу квар­ти­ру. Мастер под­клю­ча­ет про­вод к марш­ру­ти­за­то­ру в вашей квар­ти­ре — та серая или чёр­ная коро­боч­ка с огонь­ка­ми. Коро­боч­ка начи­на­ет раз­да­вать Wi-Fi, и ваш ком­пью­тер под­клю­ча­ет­ся к сети.

Есть и дру­гие спо­со­бы под­клю­чить­ся, но в общем виде это так: маги­страль → город­ская точ­ка → про­вай­дер → рай­он → дом → подъ­езд → вы. И вез­де кабе­ли. Интер­нет — это не вол­шеб­ное обла­ко с кон­тен­том, это огром­ная куча сер­ве­ров, марш­ру­ти­за­то­ров и кабе­лей, кото­рые опле­та­ют пла­не­ту. И в самом кон­це, как вишен­ка на тор­те, ваш бес­про­вод­ной роу­тер с Wi-Fi.

На при­ме­ре одно­го запро­са

Допу­стим, вы захо­те­ли открыть глав­ную стра­ни­цу «Яндек­са». Вот как всё будет про­ис­хо­дить.

Вы набра­ли в бра­у­зе­ре адрес yandex.ru. Опус­кая тех­ни­че­ские подроб­но­сти, ска­жем, что ваш бра­у­зер узнал, что сайт yandex.ru живёт на ком­пью­те­ре с адре­сом 77.88.55.80.

77.88.55.80 — это IP-адрес. Такой адрес есть у всех ком­пью­те­ров в интер­не­те, в том чис­ле у ваше­го. Ваш бра­у­зер гово­рит ком­пью­те­ру: «Сде­лай запрос на 77.88.55.80».

Ком­пью­тер упа­ко­вы­ва­ет этот запрос: ста­вит отмет­ку «от кого», «кому», фор­му­ли­ру­ет сам вопрос. Полу­ча­ет­ся такой пакет дан­ных. Он отправ­ля­ет этот пакет той коро­боч­ке, кото­рая сто­ит у вашей две­ри и мига­ет огонь­ка­ми.

Как устроен интернет: Компьютер отправляет пакет данных маршрутизатору

Роу­тер смот­рит, что за адрес. Он видит, что ника­ких ком­пью­те­ров с таким адре­сом к это­му роу­те­ру не под­клю­че­но, поэто­му пере­да­ёт запрос более стар­ше­му роу­те­ру — на кры­ше подъ­ез­да.

Роу­тер на кры­ше видит, что ника­ких ком­пью­те­ров с нуж­ным адре­сом к нему тоже не под­клю­че­но. Он отда­ёт запрос выше, на рай­он­ный роу­тер. Тот ещё выше, про­вай­де­ру.

У про­вай­де­ра на роу­те­ре напи­са­на чёт­кая инструк­ция, что если при­дёт запрос на адрес 77.88.55.80, нуж­но пере­дать его вон тому роу­те­ру. Он это дела­ет. Мы ока­зы­ва­ем­ся на маги­страль­ном кана­ле, кото­рый при­ве­дёт запрос в «Яндекс».

Как устроен интернет: От роутера к роутеру на магистральный канал

У «Яндек­са» тыся­чи сер­ве­ров, и один из них отве­ча­ет за глав­ную стра­ни­цу. Он полу­чил запрос через цепоч­ку роу­те­ров и теперь обра­ба­ты­ва­ет.

Про­грам­ма на сер­ве­ре «Яндек­са» гото­вит ответ на запрос. Она смот­рит, из како­го горо­да к нему обра­ща­ют­ся, и ком­по­ну­ет ново­сти для это­го горо­да. Опре­де­ля­ет, зна­ет ли она это­го поль­зо­ва­те­ля, и если зна­ет — пока­зы­ва­ет ему чис­ло непро­чи­тан­ных в поч­то­вом ящи­ке. Ещё она совер­ша­ет мно­же­ство неви­ди­мых дей­ствий, что­бы опти­ми­зи­ро­вать стра­ни­цу.

Код ито­го­вой стра­ни­цы про­грам­ма паку­ет по малень­ким паке­там и отда­ёт на бли­жай­ший роу­тер. На каж­дом паке­те напи­сан обрат­ный адрес, с кото­ро­го изна­чаль­но при­шёл запрос. Роу­тер начи­на­ет искать, как бы доста­вить эти паке­ты обрат­но. Он отправ­ля­ет их на маги­страль, там роу­те­ры пере­да­ют эти паке­ты про­вай­де­ру, он их направ­ля­ет в нуж­ный рай­он, в рай­оне их отправ­ля­ют в дом, подъ­езд и, нако­нец, квар­ти­ру.

Паке­ты при­хо­дят в вашу коро­боч­ку у две­ри. Она нахо­дит, какой ком­пью­тер запра­ши­вал дан­ные из «Яндек­са», и отправ­ля­ет ему по бес­про­вод­ной свя­зи толь­ко что при­шед­шие паке­ты.

Ваш ком­пью­тер полу­ча­ет паке­ты, рас­па­ко­вы­ва­ет их, соби­ра­ет цель­ный текст и рису­ет из это­го тек­ста стра­ни­цу.

На весь путь из вашей квар­ти­ры до сер­ве­ра «Яндек­са» и обрат­но ушло мень­ше секун­ды, но в про­цес­се было задей­ство­ва­но не менее пяти­де­ся­ти машин — роу­те­ров и сер­ве­ров. Ваш запрос физи­че­ски про­пу­те­ше­ство­вал до сер­ве­ра «Яндек­са» и вер­нул­ся. У вас ощу­ще­ние, буд­то вы зашли в «Яндекс», но на самом деле «Яндекс» при­шёл в ваш дом.

Это толь­ко самые осно­вы. Даль­ше раз­бе­рём, что мож­но с эти­ми зна­ни­я­ми делать, как рабо­та­ют бло­ки­ров­ки интер­не­та и поче­му они на самом деле не рабо­та­ют, а глав­ное — как сде­лать соб­ствен­ный сайт, кото­рый будет рабо­тать не хуже «Яндек­са».

Ещё по теме