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

Когда я впервые осознал важность этой концепции, я был потрясен. Как мы можем создать такие сложные взаимодействия из серии нулей и единиц?

Я просмотрел тексты по информатике и рыскал по Интернету. Я изо всех сил пытался понять, как все это связано. Это руководство, которое я хотел бы найти несколько месяцев назад, когда впервые отправился в это путешествие.

Люди общаются в десятичной системе счисления

Когда люди хотят общаться с помощью чисел, они используют десятичную систему. Десятичная система состоит из десяти цифр (0–9), и люди интерпретируют ее на основе столбца, в котором появляются эти цифры. Рассмотрим десятичное число 148. Когда вы читаете этот пример, вы подсознательно выполняете следующие шаги:

  1. Умножьте крайнее правое число на 10 ^ 0.
  2. Умножьте среднее число на 10 ^ 1.
  3. Умножьте крайнее левое число на 10 ^ 2.
  4. Добавьте выходы из шагов 1–3.

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

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

Компьютеры общаются с помощью двоичной системы

Когда компьютеры хотят общаться, они используют похожую систему. Двоичная система состоит из двух цифр (0,1), и мы можем разбить ее так же, как и десятичную систему. На этот раз, вместо того, чтобы работать с базой 10, мы работаем с базой 2.

Рассмотрим двоичное число 110. Когда компьютер интерпретирует этот двоичный код, он выполняет следующие шаги:

  1. Умножьте крайнее правое число на 2 ^ 0.
  2. Умножьте среднее число на 2 ^ 1.
  3. Умножьте крайнее левое число на 2 ^ 2.
  4. Добавьте выходы из шагов 1–3.

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

Интернет - это физическая система, предназначенная для передачи информации

Мы узнали, как использовать двоичный код для хранения информации, но как это работает на практике?

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

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

Передача двоичной информации может происходить одним из трех способов:

  1. Электрическая трансмиссия.
  2. Волоконно-оптическая передача.
  3. Беспроводная передача.

Поставщики интернет-услуг (ISP) предоставляют физическую инфраструктуру, поддерживающую эти системы.

Каждое устройство, подключенное к Интернету, имеет уникальный адрес.

Когда вы заказываете посылку на Amazon, курьер будет использовать ваш адрес для доставки в нужное место. Интернет работает точно так же.

Когда мы что-то ищем в Google, мы отправляем запрос на уникальную строку чисел, известную как IP-адрес. Эти запросы будут включать множество битов и IP-адрес исходного устройства. Это похоже на «обратный адрес», и получатель теперь может понять, откуда пришел запрос.

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

Интернет работает через серию протоколов и контрольных точек.

Система доменных имен (DNS) преобразует удобочитаемые веб-адреса в числовые IP-адреса. Если DNS не знает адрес, он задействует сеть подключенных серверов, чтобы найти ответ.

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

Пакеты перемещаются по сети устройств с использованием системы управления трафиком. Маршрутизаторы отслеживают пути, по которым могут проходить пакеты, и определяют «самый дешевый» маршрут. Самый дешевый маршрут часто определяется как путь с наименьшей загруженностью. При управлении пакетами маршрутизаторы также могут учитывать нетехнические факторы, такие как международная политика.

Пакеты могут проходить по разным маршрутам в сети и часто приходить к месту назначения не по порядку. Как сеть справляется с этим?

Протокол управления передачей (TCP) действует как инвентаризационная проверка. Если все пакеты присутствуют, TCP отправляет подтверждение получения на отправляющее устройство. В противном случае TCP откажется подписывать доставку и запросит все отсутствующие пакеты.

Таким образом, сервер доменных имен (DNS) переводит удобочитаемые веб-адреса в IP. Информация разбивается, транспортируется и принимается в виде пакетов. Пакеты содержат двоичную информацию в виде битов, а электрические кабели, оптоволоконные и беспроводные сети отправляют эти биты между IP-адресами.

Что дальше?

Если этот пост помог вам понять основы, пожалуйста, выразите свою признательность аплодисментами или подписавшись на меня в Twitter. Удачного кодирования!