для интернета работает принцип неважно что говорят
Как работает Интернет?
Как устроена всемирная паутина? Почему за пару секунд вы можете найти ответ практически на любой вопрос? Мы простыми словами объясним, что происходит после клика на ссылку и как работает Интернет.
Что такое Интернет
Интернет появился в конце 1960-х годов, развившись из сети Arpanet Министерства обороны США. Цель Arpanet состояла в том, чтобы одновременно использовать возможности нескольких больших компьютеров и связать в одну сеть университеты и исследовательские институты.
Если говорить простыми словами, то Интернет представляет собой совокупность большого количества компьютерных сетей, которые обмениваются друг с другом данными. Это позволяет нам использовать службы вроде электронной почты или посещать сайты.
Как работает Интернет
Для обмена данными решающее значение имеют Интернет-узлы, которые можно смело назвать важными компонентами Всемирной сети. Они распределены по всему миру и пересылают данные друг другу. Как правило, десятки, а иногда и сотни поставщиков услуг (провайдеры) подключаются к одному Интернет-узлу. Внутри сетевого узла обмен данными происходит уже среди провайдеров. Провайдеры, в свою очередь, обеспечивают клиентам доступ к Интернету, предоставляя соответствующие соединения, такие как DSL или LTE.
Крупнейший в мире узел, если смотреть по объемам проходящего через него трафика, расположен в Германии, во Франкфурте-на-Майне, где он распределен по 19 центрам обработки данных.
Многие компании используют собственные сети, называемые интрасетями, которые становятся частью Интернета с установлением подключения к провайдеру. В то время как частные лица в основном являются только пользователями и получателями информации или услуг, многие компании сами предлагают Интернет-услуги. Помимо предоставления общей информации, они могут включать в себя интернет-торговлю, облачные хранилища или сервисы онлайн-резервирования товаров или услуг.
Фактическая связь между интернет-узлами и провайдерами осуществляется по всему миру с помощью волоконно-оптических кабелей, благодаря которым возможна высокая скорость передачи данных. Соединение частных домов или компаний с сетью Интернет, также иногда называемое «последней милей» — «last mile», обычно реализуется через медный кабель, радиосвязь или стекловолокно.
Чтобы все работало гладко, обмен данными регулируется так называемыми протоколами. Например, с помощью Интернет-протокола устанавливается, что передаваемые данные разбиваются на небольшие пакеты у отправителя, а затем передаются и повторно собираются у получателя.
Чтобы пакет данных знал, откуда он отправлен и куда он должен прийти, каждый компьютер, участвующий в коммуникации, получает уникальный адрес — IP, — который состоит из четырех блоков чисел, разделенных точками. Поскольку вряд ли кто-либо может запомнить IP-адреса посещаемых веб-сайтов или других сервисов, существует система доменных имен — Domain Name System (DNS). Домены можно использовать в Интернете вместо IP-адресов в качестве более понятных, «говорящих» названий сайтов или Интернет-серверов. Пользователю они знакомы как www-адреса или URL.
Что происходит, когда я захожу на сайт?
Вызов веб-сайта — это только один из бесчисленных процессов в Интернете. Рассмотрим на простом примере, как это работает.
1. Если вы вводите URL-адрес в браузере, например www.ichip.ru, запрос отправляется вашему провайдеру после нажатия клавиши Enter. Провайдер переводит имя в IP-адрес целевого сервера, на котором хранится искомая веб-страница.
2. Для «перекодирования» имен провайдер использует один или несколько специальных серверов. Они называются DNS-серверами, и у них есть только одна задача. DNS-серверы выступают как словарь и хранят каталог всех Интернет-сайтов и связанных с ними IP-адресов.
3. Когда IP-адрес конечного сервера определен, запрос пересылается через Интернет-узлы на веб-сервер, на котором находится искомая страница. Поскольку Интернет охватывает весь мир, существуют и другие способы передачи пакетов данных. Чтобы найти оптимальный способ, все сети связаны маршрутизаторами, которые принимают пакеты данных, а затем решают, куда их пересылать.
4. Когда запрос достигает своего адресата, сервер отвечает и возвращает содержимое веб-сайта. Теперь они должны найти путь к вашему компьютеру, с которого вы отправили запрос.
5. Чтобы эта цепочка работала, пакеты данных содержат не только информацию о получателе, но и IP-адрес отправителя. Процедура такая же: через маршрутизатор пакеты ответов переходят от сети к сети и, наконец, попадают на ваш компьютер. Там они собираются вместе, и поисковый веб-сайт отображается в браузере.
Теперь вы знаете, как работает Интернет. А что насчет его истории? Пройдите наш тест: как хорошо вы знаете историю Интернета.
Как работает интернет кратко
Иллюстративное фото: pexels.com
Миллиарды людей ежедневно используют Всемирную сеть. Но не все знают, как работает интернет. Достаточно открыть браузер, ввести нужный адрес, и на экране появляется информация в виде текста, изображения или видео. Люди, работающие в интернете, не задумываются над вопросом, как это устроено. Хотите узнать? Читайте далее.
Расскажем кратко о том, как построена работа Всемирной паутины:
Сеть, соединяющая сети
Большинство специалистов, отвечая на вопрос, что такое интернет, назовут термин «сеть сетей». Иными словами, Всемирная паутина — это соединение сетей различного уровня. Два компьютера можно связать между собой при помощи проводов либо беспроводным способом. Такое соединение уже называют Сетью.
В мире много компьютеров соединены в пределах учреждений, учебных заведений, целых стран и континентов. Благодаря этому у каждого владельца компьютера есть возможность получить информацию с любого конца света.
Каждый компьютер в Сети имеет свой уникальный номер, который называется IP-адрес. Как электрическая розетка обеспечивает связь между электростанцией и электроприбором и не задается вопросом, где электроэнергия произведена, так и IP соединяет две машины в Сети. IP — это значит Internet Protocol.
Наиболее распространенным на сегодня является 4-я версия протокола — IPv4. Поэтому адреса большинства компьютеров записываются в виде комбинаций цифр, разделенных точками: 192.168.2.10. Они позволяют двум машинам распознавать друг друга в Сети.
Компьютер пользователя — домашний или рабочий — это периферия Сети. Он лишь отправляет запрос и выдает готовый результат на мониторе. А что происходит внутри Сети?
Как устроено ядро интернета
Доступ пользователю к Сети предоставляют специальные компании-провайдеры, обслуживающие ее ядро. Чтобы сети могли между собой взаимодействовать и передавать информацию, существуют специальные компьютеры — маршрутизаторы. Как сигнальщик на железной дороге следит за тем, чтобы на переезде не случилось аварии и стрелка вела поезд на нужный путь, так маршрутизатор направляет информацию по необходимому адресу. Он позволяет задать общие правила и соединить сети между собой.
Провайдер — это компания, которая обслуживает маршрутизаторы, обеспечивая, таким образом, доступ пользователя в интернет. Благодаря провайдерам периферия и ядро Сети связаны.
Ядро работает только для того, чтобы передавать пакеты. Если почтовая служба использует специальную упаковку, чтобы транспортировать посылки, то в интернете информация разбивается на части, размером не более 1,5 тыс. байт, которые и называются пакетами. Каждый пакет нумеруется и отправляется получателю по нужному IP-адресу различными путями и в произвольном порядке.
Чтобы пакеты в пути не терялись, существует специальный транспортный контрольный протокол — TCP (Transport Control Protocol). Он заставляет отправлять запрос до тех пор, пока нужный пакет не будет доставлен получателю.
TCP важен при отправке сообщений, писем и просмотре сайтов. Но если нужно запустить приложение, обеспечивающее связь в реальном времени, то есть посмотреть видео или связаться с человеком по Skype, в действие вступает протокол UDP (User Datagram Protocol).
Он не гарантирует доставку пакетов, не посылает новые запросы, не получив нужный пакет. Это обеспечивает быструю связь. Но потеря одного из пакетов приводит к неполадкам в связи, зависании видео, отставании звука от видео и так далее.
Как информацию видит пользователь
Обычный пользователь не имеет ни малейшего представления о ядре и периферии интернета, о том, как работают протоколы. Он имеет дело с браузером и веб-адресом. Интернет — это не только сложные технические решения, но и простой, понятный обывателю способ представления информации.
Чтобы пользователь не имел проблем с запоминанием IP-адресов, каждому из них присвоен псевдоним, который называют домен. Он состоит из запоминающихся буквенных обозначений. Например, nur.kz.
Названия доменов и их адреса хранятся в специальной записной книжке, которую называют системой доменных имен — DNS. Все доменные имена поделены на специальные зоны, которые, в свою очередь, различаются уровнями. Есть домены верхнего уровня — национальные (например, kz) и отраслевые (например, edu — для учреждений образования, job — для кадровых агентств). И домены нижних уровней (географические или региональные, например spb.ru).
Источник фото: spec-komp.com
После того как пользователь набрал адрес нужного ему сайта, браузер отправляет запрос в DNS. Оттуда запрос переправляется в место, где расположен веб-ресурс. Оно называется сервер — это компьютер, который хранит веб-страницу, сайт или приложение.
От браузера сервер получает запрос отобразить копию сайта на мониторе пользователя. Если обращение прошло успешно, сервер начинает отправку пакетов с информацией компьютеру пользователя. Браузер собирает все пакеты воедино и выводит на монитор.
Чтобы отправитель запроса видел информацию в привычном для него виде, разработан специальный язык отображения информации — протокол передачи гипертекста — HTTP.
Таким образом, интернет состоит из ряда протоколов, которые позволяют пользователю отправлять и получать информацию в удобном для него виде.
Интернет — это соединение компьютерных сетей, позволяющее быстро обмениваться информацией и передавать ее на значительные расстояния за считанные секунды.
Уникальная подборка новостей от нашего шеф-редактора
Как работает интернет: секретный ответ
Всем привет! Сегодня мы поговорим о том, что такое Интернет и как он работает, из чего он состоит и как работает. Для многих понятие «Интернет» имеет собственное представление: у кого-то бесконечное количество сайтов, кто-то сразу представляет, как играет с друзьями в онлайн-игры, а кто-то любит болтать с друзьями или звонить по скайпу.
Если мы возьмем строгую концепцию, мы получим, что Интернет — это глобальная сеть, состоящая из компьютеров с собственным IP-адресом. Связь в такой всемирной сети осуществляется с помощью цифровых информационных пакетов. Конечно, в такой глобальной сети есть не только компьютеры, но и любимые телефоны, планшеты и любимый домашний Wi-Fi роутер, который позволяет нам выходить в Интернет, но в первую очередь.
Например, если мы соединим два компьютера проводом, у нас будет сеть из двух компьютеров. Но если таких машин миллионы, и они будут во всем мире, это Интернет. Конечно, я немного преувеличил, но в целом смысл должен быть понятен. Как и в случае с почтой, все эти устройства обмениваются данными с помощью информационных пакетов. И, конечно же, как и в почте, у каждого получателя (компьютера или другого устройства) должен быть свой адрес. Это то, для чего используется IP.
СОВЕТ! Далее я постараюсь кратко, но подробно описать принцип работы всемирной паутины. Если вы хотите разобраться в этом на 100%, то рекомендую прочитать все дополнительные ссылки. Также вы можете задать свои вопросы в комментариях.
Немного истории
Первоначально пионером Интернета стало министерство обороны США. Они поручили 4 крупнейшим университетам подключить к сети все компьютеры, находящиеся в центральном офисе оборонной организации. Начали, конечно, с подключения кабеля. В процессе выяснилось, что к нему подключены не только компьютеры Минобороны, но и все устройства 4 вузов.
Проект стал активно развиваться, и уже в 1971 году была изобретена первая электронная почта. В 1973 году был проложен кабель в Европу, и тогда сеть можно было считать глобальной. Сеть активно развивалась, и для нормальной работы и передачи информации в такой большой сети требовались определенные стандарты и протоколы, которые помогли бы Интернету работать быстро и бесперебойно.
В 1983 году они начали использовать протокол прогрессивной адресации TCP / IP, который используется до сих пор. Я уже говорил об этом раньше, но потом мы поговорим об этом еще раз. В 1989 году были изобретены HTTP и HTML, которые мы до сих пор используем для доступа к веб-сайтам.
Первоначально сам термин «Интернет» был исправлен ARPA, но позже был заменен другой, более продвинутой организацией: «NSFNet». Они сделали возможным использование привычной нам глобальной сети. Они также подарили миру первый браузер: NCSA Mosaic.
Принцип работы интернета
Теперь мы подходим к вопросу: как работает Интернет? Мы уже поняли, что Интернет — это, по сути, огромная глобальная сеть подключенных устройств, работающих по одним и тем же стандартам и протоколам.
Для работы в Интернете используются три популярных понятия: клиент, сервер и сетевое устройство. Сейчас я покажу вам пример.
Допустим, у вас есть компьютер, телефон, планшет или даже домашний телевизор, подключенный к Интернету — все эти устройства можно назвать клиентами, поскольку вы используете их для доступа в Интернет.
Клиент — это устройство, с которого делается запрос в глобальное веб-пространство.
Чаще всего в домах есть так называемые маршрутизаторы Wi-Fi (они же «маршрутизаторы»): это небольшие и простые коробки, которые раздают Wi-Fi, и вы можете подключить их к тому же компьютеру, телевизору, камере видеонаблюдения или принтеру с помощью кабель. Маршрутизатор подключен к двум сетям одновременно:
Маршрутизатор, по сути, помогает организовать локальную сеть и раздать Интернет на все внутренние устройства. Этот же роутер подключен к провайдеру и уже является «сетевым устройством».
Сетевое устройство — это устройство, которое помогает общаться между клиентом и сервером. К сетевым устройствам относятся: маршрутизаторы, коммутаторы, модемы и каналы связи.
А теперь мы подошли к концепции серверов. По сути, сервер — это тот же компьютер, на котором хранится нужная нам информация. Например, нам нужно зайти на сайт:
Давайте кратко рассмотрим коммутаторы, маршрутизаторы и модемы — я думаю, вы тоже слышали об этих концепциях.
Маршрутизатор или маршрутизатор — это устройство, которое позволяет разумно отправлять пакеты информации. Работает на основе таблиц маршрутизации, куда записываются адреса всех подключенных устройств. Поэтому, когда он делает запросы или отвечает, как грамотный почтовый служащий, он отправляет письма желаемому получателю (серверу или клиенту).
Маршрутизатор
Модем — это, по сути, транслятор глобальной сети. Напомню, что компьютер, как и подобные ему устройства, способен воспринимать только цифровую информацию, состоящую из 0 и 1. Модем преобразует аналоговый (сигнал, который передается чаще всего волнами) в цифровой сигнал, понятный компьютерам.
Коммутатор — просто подключите компьютеры и другие устройства к локальной сети.
Более подробно советую почитать про роутеры, модемы и свитчи.
Выключатель
Даже в Интернете есть такое понятие, как «узел» — по сути, это любое устройство, подключенное к Интернету: будь то клиент, сервер или сетевое устройство.
Коммутация
И чуть не забыл упомянуть о переключении. Чаще всего используются:
Последние три варианта используются совместно с модемами, так как передача информации аналогична.
Про IP и адресацию
В настоящее время в Интернете и сетях широко используется IP версии 4. Вы, наверное, уже видели такие числа:
Это пример IP-адреса, используемого в сетях, чтобы информационные пакеты доходили до нужного места. Фактически, мы получаем очень сложное число от 0 до 255 в каждом блоке после точки. И оказывается, что минимальное значение составляет:
Всего можно использовать 4,22 миллиарда адресов. Немного, поскольку адреса становятся все меньше и меньше с каждым днем. Кроме того, несколько миллионов адресов зарезервированы и используются на постоянной основе. Фактически, с 2009 года достигнут порог в 4,22 миллиарда.
И тогда возникает закономерный вопрос: как же тогда существует Интернет, если лимит адресов исчерпан более десяти лет назад? Действительно, провайдеры, которые предоставляют нам интернет, крутятся как умеют, и есть несколько вариантов решения этой проблемы:
IPv6 — позволяет шифровать и использовать гораздо больше адресов за счет более длинного адреса. См. Пример представления IPv4 и IPv6 — как видите, в кодировке используется гораздо больше символов, а также добавлены буквы. IPv6 более чем достаточно для покрытия всего земного шара, но провайдеры почему-то не торопятся переходить на адресацию шестого поколения, но почему?
На самом деле причин может быть несколько. Во-первых, нужно будет заменить все оборудование, а это стоит денег. Во-вторых, исчезнет приток денег из-за продажи статических белых IP-адресов. Я думаю, что через 10 лет им придется, потому что к тому времени в Интернете будет слишком много устройств.
Домены
Для многих первое знакомство с Интернетом было посещением веб-сайта. Это количество людей, тестирующих свое первое WAN-соединение. Начнем с концепции «Домен»: это выделенная область некоторых серверов в Интернете, которые имеют одинаковый атрибут.
Чаще всего доменное имя пишется в конце через точку, вот как мы это делаем:
Также существуют домены разного уровня, например, если наш сайт начинает развиваться и мы решаем открыть подраздел, который будет заниматься обзором компьютеров отдельно, он будет называться так:
То есть сначала идет домен второго уровня, потом первый и, наконец, региональный.
Примечание ботаника. На самом деле с технической точки зрения ЭТО НЕ ТАК. Есть домен нулевого уровня — «.». В конце каждого сайта после обычного «ru» также должна стоять точка, но браузеры и многие программы скрывают ее. Это область «нулевого уровня». «RU». — домен верхнего уровня. «Вифигид.ру». — домен второго уровня — это домен второго уровня, который считается наиболее важным для данного сайта. «Обзоркомпов.wifigid.ru». — домен третьего уровня или «поддомен» и т д
Многие люди, вероятно, уже закрались в вопрос: почему IP-адреса используются для адресации в Интернете и когда мы запрашиваем в Интернете, часто ли мы используем буквенный адрес (URL)? Фактически, Интернет и сети используют IP-адресацию. Но для того, чтобы людям было удобнее и понятнее, а также не запоминать обезличенные номера, были придуманы DNS-серверы.
DNS помогает преобразовать непонятный URL-адрес (wifigid.ru) в понятный IP (185.63.191.187).
Можно поэкспериментировать и ввести IP вместо обычного адреса.
Мы только что услышали новую концепцию: URL — это в точности полный адрес, который вы используете для работы с сайтами. Обычно он состоит из:
А теперь мы подошли к очень интересной теме — визуализации сайтов. Как вы уже поняли, в Интернете и в сети информация передается бесконечным количеством нулей и единиц. Но в конце сайтов мы видим красивую картинку. Вот пример: если вы перейдете на нашу домашнюю страницу, вы увидите это:
Но эту информацию компьютер получает с сервера:
Этот язык называется HTML — по сути, это более простое представление информации для компьютера. И поэтому браузер переводит этот язык на язык, более приятный человеческому глазу: загружает изображения, шрифты, блоки рисования, квадраты и буквы в удобной форме.
Структура и строение интернета
Интернет — это глобальная сеть всех устройств, компьютеров, телефонов и других сетевых устройств. Из-за своей широты и глобальности Интернет настолько разросся, что разделился на несколько сегментов:
На самом деле в Интернете много темных переулков, поэтому ни у кого нет точной схемы глобальной сети. Если остались вопросы, задавайте их в комментариях.
Повесть о настоящем Интернете
Abstract: Рассказ про устройство Интернета, как «сети сетей» в виде текста для чтения, без двоичной системы счисления и нюансов BGP. Большая часть расказа будет не про процесс общения ноутбука с точкой доступа, а о том, что происходит после того, как данные пройдут «шлюз по умолчанию». Предупреждаю, букв много.
Вступление
Маленький провокативный вброс: ни один из читателей этой статьи к Интернету не подключен. Все подключены к сети своего провайдера, и не более. Подключение к Интернету дорогое, его сложно делать, вам потребуется очень крутое оборудование, несколько договоров с несколькими операторами связи и квалифицированные сотрудники. Простому домашнему пользователю это никак и никогда не светит. Не говоря уже о том, что в Интернете может быть не больше 4 миллиардов подключившихся (а до недавнего времени было даже «не более 65536») [1]. Даже если весь Интернет перейдёт на ipv6, это число не поменяется.
Вот число подключившихся к Интернету [2]:
По оси Y — число в штуках. Штуках, штуках. И вас в этом числе не посчитали.
Дело в том, что Internet — это, если переводить буквально, «межсетье». Сеть Сетей. И участниками Интернета являются не пользователи (их компьютеры, планшеты, микроволновки с wifi и т.д.), а сети. Сети и только сети участвуют в работе Интернета. Интернет — это то, что связывает разные сети между друг другом.
А вот отдельные узлы этих сетей — они уже могут посредством своей сети, подключенной к Интернету, связываться с другими узлами других сетей.
Впрочем, обо всём по порядку.
Что есть сеть?
Я пропущу всю драматичную и покрытую пылью историю первых десятилетий компьютеров. В какой-то момент возникло желание передавать информацию с компьютера на компьютер иначе, чем дырявя тысячи перфокарт. После долгих мучений и миллиардных инвестиций в сдохшие-таки протоколы, которые так и не стали стандартами (а некоторые стали, но всё равно сдохли), возникло понятие «локальной сети» (или «локалки»). Локальная сеть позволяет компьютерам, которые расположены рядом связываться друг с другом по адресу в этой сети. Понятие «рядом» очень растяжимое, и может растягиваться на несколько зданий, а если сильно напрячься, то и на пару городов.
Мы все привыкли к тому, что это самое, компьютерное, называется «сеть». Но мы ещё помним, что сетью называется то, чем ловят рыбу и прочие ячеистые структуры.
Так что если компьютерная, но сеть, то она тоже должна быть из ячеек. В то же самое время наш бытовой опыт говорит о том, что это никак не сеть, а настоящее компьютерное дерево. Листья (компьютеры, смартфоны, планшеты и т.д.) подключаются к веткам (маршрутизаторы, коммутаторы, точки доступа), которые снова подключаются к маршрутизаторам/коммутаторам, и так до тех пор, пока не образуется Главный Маршрутизатор, от которого линк обычно уходит к провайдеру Интернета. Или, в случае совсем локальной сети — никуда не уходит, ибо Маршрутизатор — он Главный.
Ответ: в такой конфигурации нет сети. Это не сеть. То есть это всё ещё компьютерная сеть, но очень частный, «порванный» её вариант. Настоящая компьютерная сеть подразумевает, что у нас в сети более чем один маршрутизатор, и они связаны друг с другом несколькими линками.
Ниже схема средней по размеру локальной сети. Круглые объекты — маршрутизаторы, квадратные — коммутаторы, за вычетом исходной точки и целевой точки все коммутаторы удалены для упрощения. Зелёным показан предпочительный путь, красным — дорогой отрезок.
Уже больше похоже на сеть?
Именно в избыточных связях и состоит главная идея Интернета. Создавали его американские военные (ARPANET) с простой целью — если любой из промежуточных узлов на этой схеме произойдёт повреждение (на войне бывает, знаете ли, копали окоп, порвали кабели), то связь должна сохраниться.
На самом деле я немного лукавлю — множество локальных сетей (было) построено не на протоколе IP, а на других протоколах (ATM, IPX/SPX).
Но мы говорим про победителя — про протокол IP (который так и расшифровывается — Internet Protocol).Сети, построенные на базе IP-протокола, и Интернет в частности работают на принципе hop-by-hop.
Hop by hop
Для того, чтобы исключить существование «центрального маршрутизатора всея Интернет» каждый маршрутизатор, решающий куда дальше послать принятый пакет, принимает это решение самостоятельно. И только в пределах своих соседей (directly connected). Этот принцип называется «шаг за шагом» (hop by hop). Альтернативой подобному подходу мог бы быть либо центральный координирующий узел, говорящий как передавать пакеты, либо указание маршрута в самом пакете.
Идея центрального координирующего узла натыкается на одну простую проблему — как донести информацию о новом маршруте до маршрутизатора, если использующийся для связи с маршрутизатором маршрут повреждён? Упс…
Идея «заранее проложенного маршрута» использовалась в UUCP (предшественник обычной электронной почты), но в условиях войны (одновременно: землетрясение, цунами, и авария на атомной электростанции) надеяться, что отправитель в курсе, какие узлы работают, какие нет, мягко говоря, наивно.
Таким образом, принцип hop-by-hop перекладывает всю ответственность за маршрут на данном участке на маршрутизатор, отвечающий за данный участок (в такой формулировке звучит как банальность).
Маршрутизатор обычно может довольно хорошо сказать, кто из его соседей живой, а кто нет. Плюс, он может общаться с соседями соседей и узнавать информацию о том, какие у них линки живые, а какие нет.
Второе (общение с соседями) называется «протокол маршрутизации». Он описывает то, каким образом маршрутизатор должен общаться с соседями и как именно это общение должно влиять на таблицу маршрутизации. Сами протоколы бывают двух типов — для работы «внутри сети», и для работы между сетями.
Таблица маршрутизации — это святая святых любого маршрутизатора. Её структура простая: весь трафик сети такой-то пересылается на адрес такой-то через сетевой интерфейс такой-то, плюс предпочтительность каждого маршрута. Чем точнее маршрут, тем он предпочтительней, а при прочих равных используется приоритет данного маршрута. Финальный (самый плохой) маршрут называется «на деревню дедушке», то есть «весь трафик». Это так называемый «шлюз по умолчанию». Его используют только если нет более точных маршрутов, и, что самое интересное, у обычных компьютеров (телефонов, планшетов, пылесосов, видеокамер, зубочисток с wifi и т.д.) очень часто бывает только он — маршрут по умолчанию, то есть ничего хорошего в их жизни нет.
Но это была присказка. Сказка будет впереди.
А что там, за аплинком?
Аплинком (uplink) называют того, от кого получают доступ к Интернету.
Как мы уже обсудили, настоящий Интернет объединяет сети. Такие сети называются «автономные системы», и называются они так потому, что ни от кого не зависят — они сами по себе. Автономные системы соединяются друг с другом (и сейчас мы обсудим как), передают свой трафик соседям, и даже передают трафик от одного соседа другому транзитом.
Важно понимать, что это личное право автономной системы принимать трафик от соседа и отправлять его соседу. Хотят — отправляют. Хотят — не отправляют, или отправляют не ближайшему соседу, а совсем другому, который пропускает трафик третьему, третий пятому, пятый в Автралию, а потом обратно. Кто кому какой трафик передаёт определяется межоператорскими соглашениями (или договорами попроще, если у вас маленькая, но горденькая автономненькая системка на два аплинка).
Итак, настоящий Интернет состоит из автономных систем и связей между ними.
Кто-то вообразил, что связь между автономной системой в Китае и, например, в Москве — это тысячи километров. Нет-нет. Размер (физический) линка между автономными системами обычно очень маленький — иногда это десятки сантиметров, иногда метры, в крайнем случае десятки метров.
Почему? Потому что если бы линк между ними был 10 000 километров, да ещё и висел бы на столбах, кто бы за этими столбами ухаживал, поливал их, подпирал и привязывал к проводам? Так что чаще всего все эти тысячи и тысячи километров оптики (медь умерла на таких дистанциях), которые и есть автономная система. Заметим, это целый отдельный мир, называемый «магистральные операторы». Их бизнес как раз в том и состоит, что они берут трафик с одной точки и доносят до другой через тысячи километров сквозь стужу, тракторы и медведей.
А вот соединения между автономными системами (их называют «стыки») обычно находятся в уютных холодных, сухих и тщательно охраняемых помещениях. Это могут быть серверные (например, у Селектела в серверной есть некотрое количество так называемых «операторских стоек» — как раз для того, чтобы операторы, которые там разместились, могли стыковаться друг с другом в комфортных условиях), или, если говорить про действительно крупные специализированные узлы, то используются отдельные помещения (чаще всего образующиеся стихийно из-за большой концетрации готовых трасс) — Internet Exchange (IX). Так что MSK-IX — это не «Москва-9», это «Мoscow Internet Exchange»). Туда приходят операторы (со своими проводами или арендованными) и коммутаторами (целыми, или маленьким кусочком посредством аренды VLAN/порта). А дальше трудолюбивые паучки начинают вязать всемирную паутину инженеры начинают заниматься тысячами кроссировок (соединением проводом одного коммутатора с другим). На этих кроссировках весь интернет и держится.
Главным протоколом Интернета (не по трафику, а по важности) является BGP (border gateway protocol). Этот протокол используется для общения между маршрутизаторами провайдеров/операторов на стыках автономных систем, то есть за пределами их сетей.
Каждая автономая система, участвующая в работе Интернета, анонсирует какие маршруты она принимает и через какого аплинка. А ведь автономных систем много. Тысячи их! Полный список всех анонсов называется Full View, и он описывает существование всего Интернета на планете Земля (насколько я знаю, автономных систем за пределами планеты нет, есть только отдельные узлы, которые маршрутизируют трафик через наземные машрутизаторы). Full View довольно большой (под 400 000 записей для ipv4, от 200Мб до 2Гб в размере в зависимости от железа и софта).
Заметим, что маршрутизатору с Full View не нужно иметь шлюза по умолчанию — перед ним карта всего Интернета.
Так как оператор сам решает какие префиксы (фрагменты сети того или иного размера) анонсировать и через кого, то он может указывать через кого принимать трафик. Например, выбирая между «хорошо и дорого» и «дешево» оператор может предпочесть дешево. А «дорого» оставить как резерв.
При этом очень важно, что «откуда оператор принимает трафик» не равно «куда он его отсылает». Это так называемые нессимметричные маршруты. Их появление — результат экономической политики и жадности.
Вот пример скромного несимметричного маршрута (фрагмент карты взят с сайта [3], маршрут своего собственного изобретения). Допустим, мы, сидя в Киеве решили попросить фотографию котика с сервера в Вильнюсе. Маршрутизатор нашего провайдера знает, что ближайший линк до Вильнюса — через Варшаву (зелёная стрелка). Сервер в Вильнюсе пошуршал, нашёл котика и отправляет его нам. Но оператор сети в Вильнюсе знает, что за трафик в кабеле до Варшавы с него срубят много-много денег. А в Москву он не отправляет трафик по политическим причинам. И вот, он отправляет его через другого оператора. В Риге. Который опять его отправлят в Стокгольм, тот отправляет дальше, трафик снова пересылают… И так пока картинка не доползёт до скучающего котофила в Киеве.
Заметим, анонсируя свои сети, оператор может творить чудеса (или ужасы). Оператор может анонсировать свои сети через нескольких аплинков — и в этом случае трафик к нему пойдёт через всех, причём выбор аплинка в том или ином случае пойдёт через наиболее удобный путь (который или ближе, или дешевле, тут уж как настроят). Это, кстати, лежит в основе большинства CDN (content distribution network) — оператор хранит копию раздаваемого содержимого на куче серверов по всему миру, имеет кучу стыков с местными операторами и всюду анонсирует свои (одни и те же) адреса. Получается, что в каждом регионе пользователю запросы принимают на ближайшем к нему (по маршруту) сервере, и оттуда же ему и отвечают, что получается сильно быстрее, чем через всю планету переспрашивать.
Так же оператор, может, например, не анонсировать часть адресов. В этом случает трафик умирает на первом же маршрутизаторе, который осознал, что дальше пути нет.
Вот пример вывода, который мне удалось получить во время недавних кратковременных работ на сетевом оборудовании. По мере того, как информация о завершении BGP-сессий между маршрутизатором и его аплинками расходилась по Интернету, трафик отправляли всё дальше и дальше, на маршрутизаторы, которые пока что считали, что они знают, куда отправлять трафик. В результате, после 255 хопов (т.е. передач между 255 маршрутизаторами) пакет умирал от старости, так и не достигнув назначения.
Аплинки аплинков: Tier 1
Простыми логическими рассуждениями легко понять, что если у аплинка есть аплинк, то либо аплинков бесконечное количество, либо они замкнуты в кольцо, либо есть такие аплинки, у которых нет аплинков.
И такие есть. Их называют Tier 1. Их отличие от всех остальных не в том, что они не имеют аплинков (всё-таки у нас сеть, верха/низа в формальном смысле нет), а в том, что они не платят никому за Интернет. Представьте себе компанию, которая получает сотни гигабит/с (терабиты?) трафика, столько же отправляет — и всё это на халяву. Чтобы получить на халяву интернет надо подойти к ближайшему макдональдсу/старбаксу поближе, найти их wifi… К сожалению, Tier 1 это вас не сделает. Чтобы быть Tier 1 нужно ещё одно условие — чтобы вам за интернет платили. Таким образом, они никому не платят, а им за связность платят.
Происходит это из-за очень хорошей связности (количества стыков) этих операторов. Очевидно, что местечко это очень уютненькое и соблазнительное, так что многие туда метят. Подробнее про то, как «дружат» между друг другом Tier 1 хорошо написано на nag.ru [4].
Пиры, пиринг и пиррова победа
Как мы выяснили, Tier 1 со всех деньги получают и никому не дают. Если есть два оператора, между которыми большой трафик (допустим, это очередной убийца ютуба с миллионами роликов про котят и новый мегателеком с миллионами жаждущих посмотреть на котят), то идеальная (с точки зрения Tier 1 оператора) картинка выглядит так: оба оператора подключаются к Tier 1 и платят за трафик. Убийца ютуба за исходящий, получатель котят — за входящий. Tier 1 доволен, убийца ютуба не может найти адекватную модель монетизации котят, а мега-телеком просит дотацию из бюджета.
Решение? Дотащить/арендовать кабель до уютной коммутационной и настроить локальный обмен. От ютубоубийцы к мегателекому. Итог: гигабайты котят ходят напрямую, расходы сокращаются. Tier 1 не очень доволен, но его бизнес вообще не котят гонять, а «самую крутую связность» делать, так что без своего куска хлеба он не останется.
Такое соединение называется пирингом (от peer). Его главное условие — участники пиринга друг другу не платят, или платят, но смешную сумму за аренду порта/кусочка физического линка.
Одно время любимым направлением пиринга были «контенто-генераторы» и «провайдеры Интернет». Но тут началось… Напстер, шареаза, едонкей, DC, и, под трубный глас копирайтных фанфар… торренты. Внезапно, объём трафика «между пользователями» стал в разы больше, чем между поставщиками контента и потребителями. И если ютуб и его клоны вполне могут потягаться, то какой-нибудь сайт с «много букв, мало картинок» (например, Хабрахабр) очевидно не может угнаться за пользователями, которые решили скачать всю Футураму и Симпсонов одним паком, да ещё и раздать обратно с рейтом 2.
Так что особую популярность приобрели стыки между провайдерами. В силу того, что многие провайдеры делают nat и серые адреса внутри сети, доходило до пиринга серыми адресами, причём провайдеры резали полосу по тарифу только в Интернет, а «пиринг локалками» шёл на скорости среды.
В результате у операторов в руках оказался гигантский трафик терабайтных масштабов.
Таким образом, пиринг должен быть выгоден обоим операторам. Оба оплачивают только порт для стыка и сколько-то за обслуживание этого стыка. И оба экономят… Когда бизнес экономит — это хорошо. Когда конкурент бизнеса экономит — это плохо. Так что в дело вступает большая корпоративная политика.
Если у нас есть провайдер А с трафиком в 10 Гб/с и провайдер Б с трафиком в 1Гб/с, а примерный объём пиринга между ними 500Мб/с, то…
… Надо ещё сказать, чаще всего магистралы деньги берут за полосу, по 95% персентилю, и по тому, какого было больше — исходящего или входящего.
Так вот, если будет пиринг между А и Б, то А экономит на пиринге 5% трафика, а Б — 50%. Очевидно, если А и Б конкуренты, то отказавшись от пиринга А почти ничего не потеряет, а вот Б будет сильно много платить аплинку, чтобы тот донёс трафик до А.
Ещё хуже, когда операторов три: А, Б, В. А и В большие, между ними стык в 10Гб/с, почти забитый. Б — маленький, и у него всего 500Мб/с. А и В пирятся, а Б не пускают. Б идёт к аплинку и платит кровные. За трафик до А и до В. А так как большинство пользователей у А и В, то у Б большая часть пользователей хочет получить/отправить трафик А или В. Для альянса А и В всё отлично — большая часть трафика локальная, а к конкурентам уходят сущие крохи. А для Б это означает, что большая часть трафика — платная и дорогая.
Таким образом, два больших дружат, а у Б всё плохо (дорого). А бывает так, что объединяются несколько больших операторов и решают устроить «бизнес». Получается ОПГ. Как любая ОПГ, она начинает «доить» тех, кого крышует и давить тех, кто сопротивляется. Ну, вы понимаете, кушать всем хочется.
… Ах да, ОПГ расшифровывается весьма невинно — Объединённая Пиринговая Группа. Чуть подробнее про это есть в блоге Кипчатова [5].
Войны вокруг пиринга существуют и будут существовать, увы. Mesh network хорош пользователям, но не тем, кто на Интернете зарабатывает.
Чёрные дыры в Интернете
В силу своей примитивности, DoS атаки (обычно любят добавлять DDoS, но distributed — это отдельный разговор) очень легко реализуемы. Десяток строчек на Си, одна строчка в шелле — и вот, очередной компьютер изо всех сил тужится, стараясь загадить Весь Интернет бессмысленным трафиком. Если таких компьютеров собрать несколько — можно получить поток хлама в гигабайты, десятки гигабайт, сотни гигабайт.
Если весь этот мусор направляется на один адрес, то получается беда. Входящий канал забивается в «потолок» и добросовестные пользователи просто не могут прислать свои запросы.
Проблема состоит в том, что могут забить не только канал конкретного сервера, но и входящий канал оператора (да, такое бывает). С учётом, как оплачиваются каналы между операторами (95% персентиль), большой поток мусорного трафика длительное время — это очевидные непродуктивные затраты.
Простейшее бытовое решение — прописать источник в drop на ближайшем маршрутизаторе, а то и коммутаторе. Но при этом оказывается, что во-первых, входящий канал всё равно перегружен, во-вторых его надо оплачивать, а в третьих мы сталкиваемся с проблемой «кого банить». Если весь трафик идёт с одного-двух адресов, задача простая. Но сделать флуд с поддельным адресом отправителя — легче лёгкого. Так что в совсем аварийных ситуациях блокируют адрес получателя (да-да, «добровольно умирают» для того, чтобы сохранить соседей), и переносят эту задачу на blackhole в BGP. В нормальной конфигурации в него должны добавляться свои адреса, а не чужие, но если аплинк по договорённости или по невнимательности разрешит анонсировать и чужие адреса, то это тоже можно сделать.
Рассказ про техническую часть blackhole BGP есть на хабре [6].
Как это выглядит? Для black hole выделен специальное комьюнити (условно говоря, ещё один, специальный, маленький full view), куда провайдер может анонсировать свои адреса с префиксом /32 (для ipv4). Выдали ему романтичный номер 666. Граничные маршрутизаторы обмениваются этой информацией по BGP, так что чёрная дыра расползется, медленно поглощая весь трафик, адресованный забаненному адресу на всех маршрутизаторах, которые эти анонсы видят (и поддерживают). В результате трафик на «жертву» начинает роняться на аплинках, аплинках аплинков — и так до ближайшего к источникам атаки «понимающих» маршрутизаторов. Они плохой трафик и дропнут, так что Интернет атаки не заметит. Адрес, впрочем, из интернета доступен не будет, так как «хороший» или «плохой» трафик машрутизатор разобрать не может.
Ссылки
Большое спасибо коллегам, которые помогали с информацией и указывали на неточности в статье, и отдельное спасибо borisblade за рисунки с Тирексом.