Как работает интернет для программиста
Перейти к содержимому

Как работает интернет для программиста

  • автор:

Программист с 20-летним стажем опубликовал бесплатный гайд о том, как работает интернет

В сети появился бесплатный учебник о том, как работает интернет. Книга называется «Компьютерные сети с нуля» , опубликована она на английском языке.

Изначально учебник, пишет его автор Сет Браун, программист с 20-летним стажем, задумывался как путеводитель для разработчиков, но подойдет и более широкой аудитории. В нем простым языком объясняется, что происходит с технической точки зрения, когда пользователь загружает фотографию в облако, гуглит что-то или, к примеру, кликает по ссылке. По словам Брауна, разработчики, которых он собеседует, часто не могут объяснить техническую составляющую этих процессов, потому что они выходят за рамки их узкой специализации. Это и мотивировало его написать книгу. «Ответы, которые дают программисты, говорят о том, что у большинства из них нет базовых знаний, как в принципе работает интернет. Неразвитое мышление — одна из главных причин напрасной траты времени и усилий при разработке веб-приложений», — пишет он. Сейчас доступны только первые три главы книги, остальные автор обещает публиковать по мере готовности. Браун также выпустит pdf и бумажную версии учебника. Чтобы не пропустить релизы, автор предлагает подписаться на его ежемесячную рассылку.

Что еще почитать/подучить по теме
  • Компьютерныесети. Рейтинг на Amazon — 4,8 из 5. Книгу написали профессоры компьютерных наук Эндрю Таненбаум (Амстердамский свободный университет) и Дэвид Уэзеролл (Вашингтонский университет). Авторы рассказывают о том, как работает ПО, как организованы и как будут развиваться в будущем компьютерные сети.
  • Interconnections — Bridges, routers, switches. Рейтинг на Amazon — 4,3. Автор — американская программистка, создательница Spanning Tree Protocol (STP) Радья Перлман. Книга рассказывает о главных концепциях работы компьютерных сетей, алгоритмах маршрутизации, протоколах, свойствах различных роутеров и коммутаторов и не только. На Amazon книга доступна только в бумажной версии.
  • Основы компьютерных сетей. Курс на Coursera для новичков, рейтинг — 4,8. Вам расскажут о принципах работы современных сетевых технологий, протоколов и облачных сервисов и даже научат устранять неполадки в сетях.
  • Сети с нуля. Курс Udemy, рейтинг — 4,5. Рассчитан на всех, кто хочет разобраться в элементарных понятиях: IP-адрес, маршрут, протокол, DNS и других терминах. Подойдет не только айтишникам, которые работают с сетями, но и любому пользователю, кто хочет понять, как они устроены.

article widget img

«‎‎Главная ошибка собеса — подгонять ответы»‎. Рекрутеры рассказали о найме в IT

Откуда берутся IT-рекрутеры, с какими трудностями они сталкиваются в попытках закрыть позиции и какие ошибки сами совершают на интервью — полезно знать перед тем, как искать работу.

Изображения: Артем Марков

Нашли ошибку в тексте — выделите её и нажмите Ctrl+Enter. Нашли ошибку в тексте — выделите её и нажмите кнопку «Сообщить об ошибке».

Как работает Интернет

Эта статья о том, что такое Интернет, и как он работает.

Необходимые знания: Отсутствуют, но мы будем признательны, если вы сначала прочтёте Материал о там как начать разрабатывать свой сайт (en-US)
Цель: Вы изучите основы технической инфраструктуры Веба и поймёте разницу между Вебом и интернетом.

Резюме

Интернет является основой сети (the Web), технической инфраструктурой, благодаря которой и существует Всемирная Паутина. По своей сути, интернет — очень большая сеть компьютеров, которые могут взаимодействовать друг с другом.

История интернета не до конца ясна. Проект по созданию интернета был начат в 60-х годах как исследовательский проект при поддержке министерства обороны США. Затем, в 80-х эволюционировал в сеть, которую поддерживали и развивали множество университетов и частных компаний. Технологии, лежащие в основе интернета, продолжали развиваться со временем, но основной принцип работы не сильно изменился: Интернет — это способ подключить компьютеры в единую сеть и убедиться, что даже при серьёзных сбоях, они всё равно найдут способ связаться друг с другом.

Активное изучение

  • Как работает интернет за 5 минут (en.): 5-минутный видеоролик поможет вам понять базовые принципы работы интернета (автор Aaron Titus).
  • Как работает интернет? (en.) Подробное, хорошо визуализированное 9-минутное видео.

Погружаемся глубже

Простая сеть

Когда нужно связать между собой два компьютера, вы должны связать их в сеть либо проводным (обычно с помощью Ethernet кабеля), либо беспроводным способом (например, с помощью WiFi или Bluetooth). Современные компьютеры поддерживают любой из этих способов связи.

Примечание: До конца этой статьи мы будем говорить только о физическом (проводном) способе подключения, но беспроводные сети работают аналогичным образом.

Два компьютера соединены вместе

Таким способом вы можете подключить более двух компьютеров, но с каждым новым это становится все сложнее. Если хочется подключить, скажем, 10 компьютеров, вам понадобится 45 кабелей и 9 сетевых плат в каждом компьютере!

Десять компьютеров вместе

Чтобы решить эту проблему, каждый компьютер в сети подключается к специальному маленькому компьютеру. Этот компьютер называют маршрутизатором. Маршрутизатор исполняет только одну роль: как сигнальщик на железной дороге он следит за тем, чтобы пакет, отправленный одним компьютером — источником — достиг пункта назначения. Чтобы отправить сообщение компьютеру B, компьютер A сначала должен отправить его маршрутизатору, который перенаправит его компьютеру B и проконтролирует, чтобы данные не попали компьютеру C.

С добавлением маршрутизатора наша сеть здорово упрощается: чтобы соединить 10 компьютеров нам требуется только 10 кабелей (каждый кабель соединяет маршрутизатор с одним из компьютеров).

Десять компьютеров с маршрутизатором

Сеть сетей

Пока все нормально. Но что нам делать, если нужно объединить в сеть сотни, тысячи или миллиарды компьютеров? Конечно, один маршрутизатор не справится с этой задачей, но если вы внимательно читали, то помните, что маршрутизатор — это обычный компьютер, и ничто не мешает нам соединить друг с другом 2 маршрутизатора. Давайте сделаем это.

Два маршрутизатора соединены вместе

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

Маршрутизаторы, связанные с маршрутизаторами

Такая сеть уже очень похожа на то, что мы называем интернетом, но мы что-то упустили. Наша сеть построена для решения только наших задач. Но кроме неё есть и другие сети: наши друзья, соседи — кто угодно может создать свою сеть. Как же нам их объединить? Мы не можем протянуть кабели между нашим домом и всеми остальными сетями в мире. Чтобы решить эту проблему, мы можем воспользоваться уже существующими кабельными сетями. Ведь у нас дома уже есть кабели, например, электрические или телефонные. Телефонный провод уже соединяет ваш дом со всем остальным миром, так что он идеально подходит для решения нашей задачи. Чтобы подключить нашу сеть к глобальной сети с помощью телефонного провода, нам понадобится специальное оборудование, которое называется модем. Модем перекодирует информацию, поступающую из нашей сети в формат, который можно передавать через телефонную сеть, и наоборот, декодируют информацию из телефонной сети в формат, который распознают наши компьютеры.

Маршрутизатор, подключенный к модему

Итак, мы подключились к телефонной сети. Следующий шаг — передать сообщение из нашей сети в сеть, с которой мы хотим связаться. Чтобы сделать это, мы должны подключить нашу сеть к провайдеру услуг интернета (Internet Service Provider (ISP)). Провайдер — компания, которая обслуживает специальные маршрутизаторы, которые не только подключены друг к другу (объединяют в единую сеть всех клиентов провайдера), но также связаны с маршрутизаторами других провайдеров. Таким образом, наше сообщение, пройдя транзитом через сеть нескольких провайдеров, достигнет сеть назначения. Интернет — это сеть сетей, которая объединяет в себе всю вышеперечисленную инфраструктуру.

Полный интернет-стек

Поиск компьютера

Чтобы послать сообщение какому-то компьютеру, необходимо как-то обратиться к нему, выделить среди других. Поэтому каждый компьютер, подключённый к сети, имеет свой уникальный адрес для связи: этот адрес называют IP-адресом (IP — сокращение для Internet Protocol, протокол интернета). В зависимости от версии протокола IP этот адрес может записываться по-разному. Самая широко используемая версия интернет-протокола — версия 4. Адреса IPv4 обычно записываются в виде четырёх чисел, разделённых точками, например: 192.168.2.10.

Такие адреса отлично подходят для компьютеров, но людям очень сложно их запоминать. Чтобы упростить себе жизнь, мы можем присвоить каждому IP-адресу псевдоним с понятным для человека именем. Такой псевдоним называют доменным именем. Например, google.com — доменное имя, которое является псевдонимом IP-адреса 173.194.121.32. Использование доменного имени — самый простой способ обратиться к компьютеру в интернете.

Демонстрация, как доменное имя может быть псевдонимом IP-адреса

Интернет и веб

Как вы уже заметили, когда мы просматриваем Веб с помощью браузера, обычно мы используем доменное имя, чтобы обратиться к веб-сайту. Означает ли это, что Интернет и Веб — это одно и то же? Ответ не так прост. Мы уже знаем, что Интернет — это техническая основа, которая позволяет миллиардам компьютеров связываться друг с другом. Среди этих компьютеров есть небольшая группа (называемая веб-серверами), которые могут отправлять сообщения, распознаваемые браузерами. Интернет — это инфраструктура, а Веб — это сервис, построенный на основе этой инфраструктуры. Стоит отметить, что кроме Веба есть и другие сервисы, построенные на базе Интернета. Например, электронная почта или IRC (en-US).

Интранет и Экстранет

Интранет — это частная сеть, доступ к которой разрешён только членам определённой организации. Такая сеть обычно используется для предоставления участникам портала для безопасного доступа к общим ресурсам, совместной работы и общения. Например, во внутренней сети организации могут размещаться веб-страницы для обмена информацией об отделе или команде, общие диски для управления ключевыми документами и файлами, порталы для выполнения задач делового администрирования и инструменты для совместной работы, такие как базы знаний, доски обсуждений и системы обмена сообщениями.

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

И интрасети, и экстрасети работают в той же инфраструктуре, что и Интернет, и используют одни и те же протоколы. Таким образом, авторизованные участники могут получить к ним доступ из разных физических местоположений.

Графическое представление того, как работают Интранет и Экстранет

Дальнейшие шаги

  • Как работает Веб
  • Понимание разницы между веб-страницей, веб-сайтом, веб-сервером и поисковиком
  • Что такое доменные имена

Found a content problem with this page?

  • Edit the page on GitHub.
  • Report the content issue.
  • View the source on GitHub.

Интернет для программиста Текст научной статьи по специальности «Компьютерные и информационные науки»

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Степуленок Денис Олегович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Степуленок Денис Олегович

Подготовка школьников к олимпиадам по информатике с использованием веб-сайта

Школа программиста (http://acmp. Ru) образовательный интернет-ресурс олимпиадного программирования для школьников

Актуальность изучения современных языков программирования в системе непрерывного образования Республики Узбекистан

Выбор языков программирования и средств проектирования для обучения специалистов по направлению «Прикладная информатика»

Двухуровневая тестовая система для электронных учебных пособий
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Интернет для программиста»

Степуленок Денис Олегович

ИНТЕРНЕТ ДЛЯ ПРОГРАММИСТА

Интернет предоставляет массу полезной информации программисту. В Интернете сегодня можно найти:

— описание и примеры реализации алгоритмов, как классических, так и «ноу-хау» различных компаний;

— задачи, развивающие алгоритмическое мышление; информацию об олимпиадах (можно поучаствовать в олимпиадах по программированию прямо через Интернет и оценить свои возможности);

— руководства по языкам программирования, описание стандартных методов и подходов в программировании;

— документацию по периферийным устройствам и методам взаимодействия с ними;

— форумы (конференции) и чаты (странички для беседы) программистов;

— библиотеки исходных текстов программ, модули;

— пакеты разработки программного обеспечения (SDK);

— теорию качества и теорию проектирования программ, описание различных стандартов;

— системы тестирования и сертификации программистов;

— и многое, многое другое.

Для поиска интересующей информации по программированию можно пойти двумя путями:

1) Воспользоваться одной из российских или международных общих поисковых систем.

2) Воспользоваться обзорными и специализированными сайтами по программированию.

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

ОБЩИЕ ПОИСКОВЫЕ СИСТЕМЫ

http://yandex.ru (или, лучше, вариант без рекламы http://ya.ru), http://rambler.ru,

http://mail.list.ru (особенно раздел «Программирование»

Международные (интерфейс на английском языке):

Хорошая подборка систематизированных ссылок (см. раздел «Техника, технологии / Программирование»): http://www.mytop.ru/.

ОБЗОРНЫЕ САЙТЫ ПО ПРОГРАММИРОВАНИЮ

ЭЛЕКТРОННЫЕ УЧЕБНИКИ И СПРАВОЧНИКИ

Когда Вы приступаете к изучению любого предмета, Вы, в первую очередь, идете в библиотеку, находите все книги

по данной теме и приступаете к их чтению. Исключением не является и программирование. Программист работает за компьютером. Ему довольно удобно и привычно читать «электронную» книгу, то есть текст с экрана компьютера, тем более, что, благодаря системе индексации и поиска, в электронной книге легче найти интересующее Вас место. Электронный текст может иметь встроенную поисковую систему, систему гиперссылок с каждой страницы на смежные темы.

Существуют специальные сайты — каталоги электронных руководств. Руководства обычно представляют собой либо набор связанных интернет-страничек (их можно читать «online», то есть прямо в окне интернет-броузера), либо заархивированные текстовые документы (их можно прочитать в соответствующем формату текстовом редакторе, например, в Word). Каталог представляет собой дерево тем, часто содержащих подтемы, в которых находятся ссылки на архивы руководств.

Сервер Информационных Технологий

На сервере представлены online-ста-тьи, справочники, спецификации, учебники и другие материалы по интернет-технологиям, программированию, базам данных, операционным системам, аппаратным средствам, сетям, сертификации Microsoft, управлению корпоративными ресурсами. Довольно удобная система навигации. Имеется интересная статья «Как быстро найти нужную информацию на избранном Web-узле» (см. раздел «Пользователям и преподавателям»).

Russian Software Developer Network

Главная цель создателей сайта заключается в том, чтобы хоть как-то компенсировать нехватку материалов по программированию для Windows на русском языке. Главные недостатки сайта — медлительность и ограниченность только языком программирования C++.

Виртуалъныш город компьютерной документации Очень грамотно организованный сервер компьютерной документации, содержит много архивов электронных книг, доступных для скачивания, а также рекламу печатных изданий (см. «Книжный магазин»).

Сайт технической документации Огромная подборка электронной документации по программированию.

Сайт имеет рубрикатор. В каждом разделе имеются подразделы, где можно найти подборку электронных руководств по данной теме.

Например, если мы хотим программировать на Паскале и нас интересует, какой Паскаль лучше, то нажимаем на ссылку «Pascal» и просматриваем список имеющихся документов. Нашли статью «Какие бывают Паскали? Какой Паскаль лучше?». Нажимаем на ссылку подробнее. Теперь можно прочитать краткую аннотацию, а также скачать файл, содержащий архив руководства. Имеется поисковая система по сайту. Можно задать ключевые слова для поиска и получить подборку текстов.

Библиотека программиста Структурированное по темам и степени сложности материалов собрание руководств по программированию (ASP, Fortran, DHTML, Pascal, CSS, ActiveX, C/C++, Perl, MASM, CGI, VBS, Java, XML, VRML).

Неудобство, по моему мнению, следующее: книги приходится скачивать по одной главе, что хлопотно.

Русские документы1 Разделы «Операционные системы», «Программирование», «WWW-мастеру».

ИСХОДНЫЕ ТЕКСТЫ ПРОГРАММ

Исходные тексты программ полезны тем, что Вы можете посмотреть решение (то есть исходный текст) некоторой программы, похожей на ту, которую Вам

надо написать. К тому же, чтение исходных текстов (особенно написанных программистами-профессионалами) помогает лучшему пониманию синтаксиса и возможностей языка. Часто легче модифицировать уже имеющийся пример программы, чем писать ее полностью заново.

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

На сайте размещены странички посвященные, отдельным языкам.

Например, http://pascal.sources.ru/ -лучшая, по моему мнению, коллекция материалов по программированию на языке Паскаль — исходники, примеры, документация, FAQ.

Библиотека программиста -документация, исходники Исходники (Паскаль, Basic, С++, Assembler, Delphi, Perl, игры и прочее), описания, документация по программированию.

Для решения любой математической задачи требуется не только умение исполь-

зовать язык, но и знание и умение применять алгоритмы. В Интернете довольно много материалов для изучения по этой теме.

На сайте размещены описания алгоритмов и исходники программ. При нажатии на заголовок одной из тем Вам предложат набор описаний алгоритмов, которые можно читать прямо в Интернет-браузере. Основные темы: математика, сортировка, поиск, игры, графы, графика, сжатие, защита, кодирование.

Раздел «Разное» содержит интересные статьи. Раздел «ФИДО» — выход в различные конференции Фидо:

— RU.ALGORITHMS — поиск и дискуссии об алгоритмах;

— NICE.SOURCES — интересные исходники программ, алгоритмов;

— NICE.SOURCES.D — дискуссии о программах и алгоритмах;

— RU.AI — искусственный интеллект;

— RU.BOOKS.COMPUTING — о компьютерной литературе;

— RU.COMPRESS — сжатие и архивирование данных;

— RU.DSP — обработка сигналов;

— SU.GRAPHICS — компьютерная графика;

— COMPRESS — архиваторы и программы сжатия (на английском);

— RU.HACKER — хакерские разговоры;

— RU.HACKER.DUMMY — для начинающих хакеров.

Библиотека алгоритмов Страничка напоминает предыдущую, содержит описания алгоритмов, а также блок-схемы в формате специальной программы «Редактора блок-схем», получить которую можно прямо на этом сайте.

Сайт по теории графов В разделе «Графы» находятся материалы по основам теории графов, в том

числе алгоритмы решения ряда теоретико-графовых задач. Приведен список книг по теории графов и программированию.

Этот язык используется либо новичками, которым не важно качество программы, либо программистами-профессионалами, точно знающими, что им нужно. Например, макросы на Visual Basic часто применяются при создании интернет-приложений, баз данных, электронных таблиц.

«Visual Basic Streets» — портал

для программирующих на Visual Basic

Подборка материалов, статей и советов по программированию на Visual Basic. Исходные тексты программ. Коллекция программ и компонентов ActiveX.

Имеются компоненты (с исходными текстами) для ActiveX и DirectX.

Delphi — язык программирования, базирующийся на Pascal с развитыми средствами визуального создания и управления Windows — компонент (всевозможных меню, кнопок, полос прокрутки, полей ввода, списков, графиков).

«Мастера Delphi» -информационный сайт Различная информация о Delphi: статьи, ответы на частые вопросы, советы специалистов. Поиск по сайту, подписка на почтовую рассылку.

«Delphi for Russian» — пособие для программистов Описание стандартных функций, процедур и терминов языка программирования Delphi.

Torry’s Delphi Pages Коллекция компонент, утилит, приложений. Примеры кодов. Библиотека функций и процедур. Документация. Ссылки на Дельфи-сайты. Пресс-релизы.

«Королевство Дельфи» -клуб программистов Статьи и обзоры по вопросам программирования на Delphi. Сборник решений, учебные материалы, инструментальные средства. Архив опубликованных материалов. Конференция.

http://www.snc.ru/~torry/ http:// storage.virtualave.net/ http://faqs.org.ru/progr/pascal/

Часто задаваемые вопросы по Delphi

i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Программирование на Visual C+ + Информация о клубе программистов на C++. Подборка документации по семейству языков «С». Примеры программ и исходники к ним, справочные данные, советы.

Учебник HTML по-русски

Сведения о языке HTML. Структурные элементы документа HTML. Тенденции развития и проблема чистоты языка. Практические советы по созданию и раскрутке Web-страниц. Форма-генератор МЕТА-тегов.

ВЕБ-ШКОЛА: Уроки для начинающих Статьи по HTML.

Данный проект был создан в помощь веб-мастерам. Для начинающих описывается по шагам, как создать свой первый сайт. (Подборка статей)

http:// www. j avable.com/

Новости из мира Java-технологий. Обзор инструментов и средств разработки Java-программ. Документация и статьи по программированию на Java. Архив примеров и программ.

Документация по Java Development Kit

Учебник по языку Java

Программы для скачивания.

Сайт группы1 Java-программистов В Петербурге программисты тесно

общаются между собой: каждый общается с коллегами по работе, многие вместе учились в одном ВУЗе, а кто-то и в школе, многие познакомились в FIDO еще до широкого распространения Интернета. Технология Java широко применяется профессиональными программистами в Петербурге, поэтому десятки людей постоянно общаются между собой по вопросам разработки программ на Java. Создание JUG направлено на поддержку общения между программистами.

Язы1к и технология Java

Введение в язык и технологию Java. FAQ. Словарь терминов. Примеры программирования на Java: исходники апп-летов, описания, демонстрация работы. Описания Java-продуктов. Обзор технологии Jini.

«JavaScript без границ»

Справочник по функциям и подборка статей по различным аспектам программирования на языке JavaScript. Коллекция исходных кодов скриптов разного на-

«Java Power» — материалы о программировании на Java Подборка материалов, статей, документации и советов по программированию на языке Java. Основные цели проекта — это прежде всего популяризация современного, динамически развивающегося, языка программирования Java. Помимо этого, создатели проекта ставят перед собой задачу помощи как начинающим, так и уже давно работающим с языком программистом.

Ориентирован на разработчиков, архитекторов и менеджеров информационных систем, разрабатываемых на платформе Java/J2EE с помощью наиболее популярной среды разработки Borland JBuilder и ведущих продуктов класса enterprise middleware — Borland VisiBorker (CORBA) и Borland AppServer (J2EE).

«CGI и Perl» — документация и скрипты

Документация по Perl и написанию CGI-скриптов на русском и английском языках. Библиотека скриптов. Анонсы книг по программированию на Perl. Online справочник

Документация на русском, статьи, книги (PHP 4, MySQL, Apache, etc) Здесь представлены основные текстовые документы по PHP, которые каждый должен иметь у себя под рукой.

Архив задач с проверяющей системой!

Здесь вы можете найти задачи с различных соревнований. Проверяющая система позволяет Вам проверить Ваше решение для каждой задачи.

Сайт Института точной механики и оптики, посвященный командным олимпиадам и подготовке к ним.

Автоматическая тестирующая система PC2

Здесь можно бесплатно получить программу для проведения соревнований ACM, разработанную в Калифорнийском университете

ПРОЦЕСС СОЗДАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

программирование и программистов.

Сайт СПбГЭТУ, посвященныш олимпиадам по правилам ACM На сайте имеется архив задач с условиями, тестами и результатами олимпиад.

Степуленок Денис Олегович, студент III курса, методист ЗШСП.

Programmer’s Stone на русском Необыч-

© Наши авторы, 2001. Our authors, 2001

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

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

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

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

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

Например, есть ваш смартфон. И есть компьютер «Яндекса», который отвечает за отображение страницы по адресу 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, нужно передать его вон тому роутеру. Он это делает. Мы оказываемся на магистральном канале, который приведёт запрос в «Яндекс».

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

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

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

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

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

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

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

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

Получите ИТ-профессию

В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *