Как работает интернет. Основы веб-программирования

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

Как работают интернет-адреса

Интернет — это множество устройств, соединенных между собой несчетным количеством проводов, поэтому его часто называют глобальной сетью. Чтобы устройства можно было отличать друг от друга, каждому из них присваивается уникальный адрес. Этот адрес также называют Internet Protocol или IP. Стандартный IP состоит из четырех чисел от 0 до 255, разделенных точкой, то есть принимает вид xxx.xxx.xxx.xxx, где xxx – число.

Предположим существуют два компьютера с адресами 1.3.5.7 и 2.4.6.8, которые связаны через интернет. Схема их связи выглядит так:

Компьютер1.3.5.7″ —> интернет —> компьютер2.4.6.8″

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

cmd

Обладатель компьютера 1.3.5.7 может проверить качество соединения с компьютером 2.4.6.8. Для этого он должен послать команду ping, которая показывает время между отправкой запроса и получением ответа на него.

Вы можете проверить, как быстро ваш компьютер получит ответ при запросе, например, на сервер google. Для этого откройте командную строку (в операционной системе Windows) и введите команду: ping brainup.space

Как работают стеки протоколов и пакеты

Компьютер подключен к интернету и имеет уникальный адрес, что дальше? Как компьютеры, соединенные с интернетом, “разговаривают” между собой? Предположим, компьютер 1.3.5.7 хочет послать сообщение компьютеру 2.4.6.8, в котором содержится текст “Привет, кто ты?“.

Очевидно, что сообщение должно пройти через большое количество проводов, чтобы попасть на другой компьютер.

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

Эта система реализуется с помощью стека протоколов, который есть на каждом устройстве. Он встроен непосредственно в операционную систему. Используемый в интернете стек протоколов называется TCP / IP, по сути его название состоит из двух главных протоколов связи TCP и IP. Он имеет следующую архитектуру:

Протокол приложений
Специфичные для приложениям протоколы, такие как WWW, FTP, e-mail, DNS и другие

Протокол управления передачей
Направляет пакеты к определенным приложением на компьютере, используя номер порта

IP (Internet Protocol)
Направляет пакеты на определенный компьютер, используя его IP адрес

Аппаратный
Преобразует двоичные пакеты данных в сетевые сигналы и наоборот (сетевые карты, модемы)

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

Application —> TCP —> IP —> Hardware

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

Если рассматривать этот процесс более подробно, то при отправке сообщения случается что-то вроде этого:

  1. Сообщение должно пройти по всем уровням стека протоколов, начиная с Application.
  2. Если сообщение слишком длинное, то оно может быть разбито на несколько более мелких частей на каждом уровне стека протоколов. Дело в том, что передаваемые через интернет данные отправляются небольшими порциями, которые называются пакетами.
  3. После пакеты проходят через слой управления передачей данных, где им назначается номер порта. Подробнее о портах будет рассказано позже, а сейчас важно понять, что они позволяют пакетам определить, в какое приложение они должны попасть.
  4. На следующем уровне пакету присваивается IP адрес целевого компьютера, в нашем случае это 2.4.6.8.
  5. Теперь, когда пакеты точно знают, на какой компьютер и в какое приложение они должны попасть, они готовы к отправке через интернет. На аппаратном уровне пакеты превращаются в электрические сигналы и передаются по какой-либо интернет-линии.
  6. Теперь ваш пакет путешествует по интернету, периодически он натыкается на маршрутизаторы (подробнее о них позднее), которые с помощью IP определяют, куда дальше отправлять его. В какой-то момент пакет приходит к маршрутизатору, который отправляет его на целевой компьютер.
  7. Наконец, когда пакет достигает компьютера 2.4.6.8, он начинает проходить по стеку протоколов снизу-вверх.
  8. Во время прохождения по стеку протоколов удаляются данные, назначенные отправляющим компьютером (IP, номер порта).
  9. Когда пакет достигает вершины стека, он собирается в исходную форму: “Привет, кто ты?“.

Как работает инфраструктура интернета

Теперь вы знайте, как пакеты перемещаются с одного компьютера на другой, однако, что на самом деле происходит, когда они оказываются в интернете?

На самом деле пакет проходит примерно такой путь:

Компьютер → Модем → Телефонная сеть → Модемные пул → ISP Port Server → Маршрутизатор → ISP магистраль → Маршрутизатор → CSU/DSU → Выделенная линия → CSU/DSU → Маршрутизатор → LAN → Компьютер

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

Провода, маршрутизаторы и другое оборудование нужно поддерживать, иначе оно быстро придет в негодность. Этим и занимают провайдеры, именно за это они берут деньги. Вся инфраструктура интернета принадлежит всего нескольким крупным провайдерам, которые “продают” интернет более мелким провайдерам, а те еще более мелким и так далее.

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

Вы можете проверить, какой путь пройдет ваш пакет, пока не попадет на другой компьютер или сервер, для этого введите в командную строку команду: tracert brainup.space. Система покажет вам, через какие промежуточные центры прошел пакет, и сколько времени у него это заняло, чтобы дойти до сервера BrainUP и получить ответ.

Иерархия интернет-маршрутизации

Как пакеты находят путь к другому компьютеру через интернет? Каждый компьютер знает, где находятся другие компьютеры?

На самом деле для управления передвижением пакетов используются специальные устройства — маршрутизаторы. Интернет разделен на много маленьких подсетей, которые связаны с помощью маршрутизаторов. Каждый маршрутизатор знает IP устройств, которые находятся в его подсети.

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

Как работают доменные имена в интернете

Работать с IP адресами не удобно, ведь это просто набор цифр, который сложно запомнить. Для решения этой проблемы были придуманы доменные имена, которые заменяют обычные IP адреса. Действительно, проще запомнить имя google.com, чем IP адрес 172.217.22.110.

У каждого доменного имени есть соответствующий IP адрес, за связь имени и адреса отвечает служба доменных имен (DNS). DNS – это база данных, содержащая доменные имена и соответствующие им адреса.

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

Интернет-протоколы

Для работы интернета используется много различных протоколов, такие как TCP/IP, протоколы маршрутизации, управления доступом и другие. Мы будем рассматривать только самые важные из них. Сначала разберем протоколы более высокого уровня, а затем более низкого.

World Wide Wed (WWW) – это самая распространенная система, используемая для работы интернета. Эта система связывает между собой множество документов, расположенных на разных компьютерах, поэтому её часто называют всемирной паутиной. WWW – это единый объект, каждая часть которого связана с другой при помощи протокола HTTP.

HTTP (протокол передачи гипертекста) – это протокол приложений, который обеспечивает работы сети. Не путайте с языком разметки HTML, который используется для написания веб-страниц.
HTTP используют веб-браузеры и веб-сервера, чтобы связываться друг с другом в интернете. Он считается протоколом приложений, потому что используется различными приложениями для связи друг с другом. В данном случае приложения — это браузеры и веб-серверы.

HTTP – это протокол передачи гипертекста без установления соединения. Клиенты (веб-браузеры) посылают запросы на серверы для получения страниц, изображений и других серверных элементов. После того, как сервер закончит обработку запроса клиента, соединение между клиентом и сервером через интернет разрывается. То есть для каждого нового запроса создается новое соединение. Большинство других протоколов сохраняют соединение, независимо от запросов. До того как клиент сможет сделать новый запрос, сервер должен разрешить установить новое соединение, что делает этот протокол безопасным.

Когда вы вбивайте URL сайта в адресную строку браузера, происходит следующее:

  1. Если URL – это доменное имя, то браузер подключается к DNS и ищет соответствующий IP.
  2. Браузер подключается к веб-серверу и отправляет HTTP запрос для получения желаемой страницы.
  3. Веб-сервер получает запрос и проверяет доступность нужной страницы. Если страница существует, он посылает её клиенту, иначе он посылает сообщение с ошибкой “404”, которое означает, что страница не найдена.
  4. Веб-браузер получает страницу с сервера и соединение прерывается.
  5. Затем веб-браузер анализирует страницу, проверяя её на различные элементы, такие как изображения, аплеты и другие.
  6. Для каждого найденного элемента браузер (клиент) запрашивает соединение с сервером и посылает HTTP запрос.
  7. Только после этого пользователь видит полностью загруженную страницу.

Другой широко используемый сервис интернета — это E-mail (электронная почта). Он используется для пересылки и получения электронных сообщений. E-mail использует протокол приложений, который называется Simple Mail Transfer Protocol (SMTP). Он также является текстовым протоколом, но в отличие от HTTP, поддерживает установленное соединение и обладает более сложной структурой, поэтому поддерживает намного больше команд.

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

  1. Почтовый клиент создает новое соединение с почтовым сервером. IP адрес почтового сервера или его домен обычно настраиваются при установке клиента.
  2. Почтовый сервер передает первое сообщение, чтобы идентифицировать себя.
  3. Клиент отправляет сообщение с командой “HELO“, на которое сервер должен ответить сообщением “250 OK”.
  4. Клиент посылает на сервер такую команду, которая соответствует действиям пользователя (отправка письма, проверка почты и другие). Сервер отвечает соответствующей командой.
  5. Соединение клиента с сервером будет продолжаться до тех пор, пока клиент не пошлет команду “QUIT”, после чего соединение будет закрыто.

TCP находится ниже уровня приложений в стеке протоколов. Когда какое-то приложение соединяется с другим приложением через интернет, отправляемые ими сообщения всегда проходят через TCP.

TCP отвечает за доставку протоколов приложений к нужному приложению на другом компьютере. Для этого используются порты, которые позволяют компьютерам иметь несколько параллельных соединений друг с другом. Например, вы можете одновременно скачивать фильм и просматривать почту. С помощью номера порта TCP определяет, какое приложение получит пакет.

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

Протокол TCP работает не с текстом, а с байтами, поэтому он очень надежен. Перед тем, как два компьютера начнут обмениваться данными, они должны установить соединение. Безопасность протокола обусловлена тем, что на каждый отправленный пакет запрашивается подтверждение о том, что получатель принял доставку.

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

Каждый пакет IP независим, поэтому они могут приходить не в том порядке или вовсе не доходить. Убедится, пришли ли пакеты и правильный ли у них порядок, это задача TCP.

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (20 оценок, среднее: 5.00 из 5)

LEAVE A REPLY

Please enter your comment!
Please enter your name here