По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
С недавнего времени, на рынке телекоммуникаций начали активно «форсить» термин IP - телефония. Компании пережили бум на офисные «мини - АТС», когда коробка весом 5 килограмм казалось пиком компактности, технологичности и статуса. Но с развитием интернета, корпоративных сетей передачи данных и прочего ИТ – стафа появилась она, технология, которая перевернула игру – IP – телефония. Видео: IP – телефония | Что это и с чего начать? Учим матчасть Скорее всего, ты нашел эту статью в следующем сценарии: Открыл поисковую систему; Набрал запрос вида «что такое IP - телефония»; Попал сюда, на сайт wiki.merionet.ru; А думал ли ты о том, что перейдя из поисковой системы на наш ресурс, твой браузер обратился по имени wiki.merionet.ru, преобразовал его в IP – адрес, упаковал все данные в пакет и отправил нам на сервер по протоколу https? Так оно и было, ага. Так вот, друг, IP – телефония - это тоже самое. Только вместо протокол https, используется протокол SIP (Session Initiation Protocol), например, а пакеты с данными наполнены информацией о том, кто и куда звонит. При звонке через IP – телефонию твой голос также передается через пакеты информации, но только уже по другому протоколу – он называется RTP (Real-time Transport Protocol) Можно смело сказать, что сам по себе термин IP - телефония - это маркетинговый буллшит. Звонки через сети передачи данных работают в рамках тоже самой модели (она называется модель OSI, почитай по ссылке, полезно), что и обычный трафик, но просто используют другие протоколы, коих в рамках этой модели овердофига. IP – телефония - это просто отдельный набор протоколов и стандартов в рамках модели описания функционирования сети (модели OSI). Для большего понимания, хорошо подходит термин VoIP (Voice over IP)., который дословно переводится как «передачи голоса поверх протокола IP». И да, VoIP и IP – телефония это одно и тоже. Дальше мы поразмышляем, какой профит дает IP – телефония для рядовых пользователей, в сравнении с аналоговой связью, цифровым методом передачи сигналов, связыванием двух банок через нитку и голубиной почтой. Профит Мы не хотим раздувать эту тему и писать информацию, которая есть везде в сотый раз. Короткое резюме важных преимуществ, как для частного лица, кто решил воспользоваться IP – телефонией, так и для корпоратов, которые хотят срезать операционку: Сэкономить деньжат - звонки через IP – телефонию в город, межгород и международные направления дешевле. Априори. Ибо провайдер провайдерский трафик идет по интернету почти до самой конечной точки, не занимая дорогостоящие каналы; Куча новых фич - как то раз мы слушали как обрабатывает телефонный вызов аналоговая телефонная станция – она слегка скрипит в этот момент. Такое. Станции, которые работают с голосом по IP имеют кучу фич, такие как запись разговоров, видео – звонки, конференции, интеграция с CRM и прочее. А еще их можно легко интегрировать с чем угодно, хоть с инстаграмом; Обслуживание - современные станции, которые работают с IP – телефонией программные (софтовые). При небольшой нагрузке, их можно установить хоть на неттоп. Так же они оснащены WEB – интерфейсом, через который можно настроить нужные функции. Чтобы настроить аналоговую телефонную станцию, нужно бить в бубен, зажечь ритуальный костер в серверной и надеть специальный шаманский наряд; В ногу со временем - прогресс идет и за ним нужно успевать. Обновляйте IT, и ваш бизнес отплатит вам за это высоким ROI :); С чего начать Посмотрите этот милый ролик – тут есть полная информация о том, как развернуть IP – АТС дома или в офисе бесплатно: Если будут вопросы, мы ответим на них в комментариях :) Итоги Переход на VoIP прекрасен, с какой стороны на него не взгляни. Для физического лица профит безусловен – выкидывайте свой старый дисковый аппарат, подключайте IP - телефонию и экономьте на звонках бабушке в Искитим. Для юридических лиц – считайте ROI и не бойтесь вложиться в переход с аналога/цифры в сторону VoIP. Ваши сотрудники и партнеры оценят.
img
Что такое парадигмы программирования? Это не более, чем просто замысловатое название для популярных способов и стилей организации процесса написания программного кода. Я постараюсь разбить эту тему на части и дать простое пояснение по каждой парадигме. Таким образом, вы сможете легко понять, о чем говорят люди, когда произносят такие слова, как «объектно-ориентированный», «функциональный» или «декларативный». Давайте начнем! Что такое парадигма программирования? Парадигмы программирования – это различные способы и стили, которые используются для организации программы или языка программирования. Каждая парадигма состоит из определенных структур, функций и взглядов на то, как следует решать известные задачи программирования. Вопрос о том, почему существует так много различных парадигм программирования, схож с вопросом о том, почему существует так много языков программирования. Определенные парадигмы лучше подходят для определенных типов задач. Именно поэтому имеет смысл использовать разные парадигмы для разных типов проектов. Кроме того, методики, которые составляют каждую парадигму, развивались с течением времени. Благодаря достижениям как в области программного, так и аппаратного обеспечения появились различные подходы к решению задач, которых раньше просто не было. И последняя причина – я думаю, это просто творческое начало в человеке. По своей натуре, нам просто нравится создавать новые вещи, улучшать то, что другие когда-то создали, и адаптировать инструменты под себя и свои предпочтения или просто делать их более эффективными (в нашем понимании). Все это привело к тому, что на сегодняшний день мы имеем огромное количество вариантов, которые могут помочь нам написать и структурировать ту или иную программу. Чем парадигма программирования не является? Парадигмы программирования – это не языки и не инструменты. Вы не сможете ничего «создать» с помощью парадигмы. Они больше похожи на некий набор образцов и руководящих принципов, о которых условились большое количество людей, которым они следовали и которые они подробно изложили. Язык программирования не всегда привязан к определенной парадигме. Есть языки, которые были созданы с учетом определенной парадигмы и имеют функции, которые облегчают программирование в этом контексте больше, чем другие (хороший пример – Haskel и функциональное программирование). Однако существуют и «многопарадигмальные» языки. Это означает, что вы можете адаптировать свой код, чтобы он подходил под какую-то из парадигм (хороший пример – JavaScript и Python). При этом парадигмы программирования не являются взаимоисключающими в том смысле, что вы можете без каких-либо проблем использовать приемы из различных парадигм одновременно. Популярные парадигмы программирования Теперь, когда вы знаете, что такое парадигмы программирования, а что к ним не относится, давайте рассмотрим самые популярные из них, их характеристики и сравним их. Имейте в виду, что этот список не полный. Существуют и другие парадигмы программирования, которые мы здесь рассматривать не будем. Здесь я расскажу вам только о самых популярных и широко используемых. Императивное программирование Императивное программирование – это набор подробных инструкций, которые даются компьютеру, чтобы тот выполнил их в заданном порядке. Этот тип программирования называется «императивным», потому что мы некоторым образом указываем компьютеру (как программисты), что он должен делать. Императивное программирование концентрируется на описании того, как программа работает, шаг за шагом. Допустим, вы хотите испечь торт. Ваша императивная программа для такого рода задачи может выглядеть следующим образом: 1- Pour flour in a bowl 2- Pour a couple eggs in the same bowl 3- Pour some milk in the same bowl 4- Mix the ingredients 5- Pour the mix in a mold 6- Cook for 35 minutes 7- Let chill Воспользуемся конкретным примером и предположим, что мы хотим отфильтровать массив чисел так, чтобы остались только числа, которые больше 5. Наш императивный код тогда будет выглядеть следующим образом: const nums = [1,4,3,6,7,8,9,2] const result = [] for (let i = 0; i < nums.length; i++) { if (nums[i] > 5) result.push(nums[i]) } console.log(result) // Output: [ 6, 7, 8, 9 ] Обратите внимание, что мы указываем программе, что нужно перебрать каждый элемент массива, сравнить каждый из них с 5 и, если элемент больше 5, то поместить его в конечный массив. Наши инструкции предельно детализированы и конкретны, и именно это и является императивным программированием. Процедурное программирование Процедурное программирование – это производное от императивного программирования только с функциями (также известных как «процедуры» или «подпрограммы»). Процедурное программирования предлагает пользователю разделить выполнение программы на функции, чтобы оптимизировать модульный принцип организации. Вернемся к нашему примеру с тортом. Процедурная программа для этого примера будет выглядеть следующим образом: function pourIngredients() { - Pour flour in a bowl - Pour a couple eggs in the same bowl - Pour some milk in the same bowl } function mixAndTransferToMold() { - Mix the ingredients - Pour the mix in a mold } function cookAndLetChill() { - Cook for 35 minutes - Let chill } pourIngredients() mixAndTransferToMold() cookAndLetChill() Как вы можете видеть, благодаря реализации функций, мы можем просто прочитать три вызова функций в конце файла и понять, что делает наша программа. Такое упрощение и абстрактное представление является одним из преимуществ процедурного программирования. Однако внутри функций находится все тот же императивный код. Функциональное программирование Функциональное программирование продвигает концепцию создания функций немного дальше. В функциональном программировании функции рассматриваются как «полноправные граждане». Это означает, что их можно присваивать переменным, передавать в качестве аргумента и возвращать в качестве результата других функций. Еще одна ключевая концепция – это идея чистых функций. Чистая функций – это функция, которая, чтобы получить результат, полагается только на свои входные данные. И при одних и тех же входных данных всегда будет один и тот же результат. Кроме того, эти функции не имеют никаких побочных эффектов (то есть не вносят никаких изменений вне контекста функции). С учетом всех этих концепций, функциональное программирование призывает писать программы с помощью функций. Оно также поддерживает идею о том, что модульность кода и отсутствие побочных эффектов облегчают определение и разделение обязанностей внутри кодовой базы. Таким образом, это облегчает сопровождение кода. Вернемся к примеру с фильтрацией массива. В императивной парадигме мы можем использовать внешнюю переменную для хранения результата функции, что по сути может считаться побочным эффектом. const nums = [1,4,3,6,7,8,9,2] const result = [] // External variable for (let i = 0; i < nums.length; i++) { if (nums[i] > 5) result.push(nums[i]) } console.log(result) // Output: [ 6, 7, 8, 9 ] Для того, чтобы преобразовать это в функциональное программирование, мы можем сделать следующее: const nums = [1,4,3,6,7,8,9,2] function filterNums() { const result = [] // Internal variable for (let i = 0; i < nums.length; i++) { if (nums[i] > 5) result.push(nums[i]) } return result } console.log(filterNums()) // Output: [ 6, 7, 8, 9 ] Это практически тот же самый код, но мы проворачиваем все итерации внутри функции, в которой мы также сохраняем и массив результатов. Таким образом, мы можем гарантировать, что функция не будет ничего менять за своими пределами. Она создает переменную только для обработки своей собственной информации, и после завершения своей работы удаляет ее. Декларативное программирование Декларативное программирование скрывает всю сложность и приближает языки программирования к человеческому языку и мышлению. Это абсолютная противоположность императивному программированию, хотя бы потому что программист дает инструкции не о том, как компьютеру следует решать задачу, а о том, какой требуется результат. Будет намного понятнее, если мы приведем пример. Воспользуемся примером с фильтрацией массива. Декларативный подход здесь будет выглядеть следующим образом: const nums = [1,4,3,6,7,8,9,2] console.log(nums.filter(num => num > 5)) // Output: [ 6, 7, 8, 9 ] Обратите внимание, что, используя функцию фильтрации filter, мы явно не указываем компьютеру перебирать массив или сохранять значения в отдельном массиве. Мы просто говорим о том, что мы хотим («filter») и условие, которое необходимо выполнить («num > 5»). Что хорошего в таком подходе? Его легче читать и понимать, и зачастую он более емкий в записи. Хорошими примерами декларативного кода являются функции filter, map, reduce и sort в JavaScript. Еще один хороший пример – современные фреймворки/библиотеки JS, такие как React. Посмотрите, например, на этот код: <button onClick={() => console.log('You clicked me!')}>Click me</button> Здесь у нас есть кнопка (button) с приемником событий, который запускает функцию console.log при нажатии кнопки. Синтаксис JSX (то, что использует React) совмещает HTML и JS. Это упрощает и ускоряет написание приложений. Но это не то, что браузеры читают и выполняют. Код React позже преобразуются в обычный HTML и JS, а вот это уже то, с чем работают браузеры. JSX является декларативным, поскольку его цель заключается в том, чтобы предоставить разработчикам более удобный и эффективный интерфейс для работы. Здесь также важно отметить, что в декларативном программировании компьютер все равно обрабатывает информацию как императивный код. Если снова вернуться к примеру с массивом, то компьютер по-прежнему выполняет итерацию по массиву, как в цикле for, но нам, как программистам, не нужно писать это напрямую. Декларативное программирование скрывает всю сложность от программиста. Объектно-ориентированное программирование Одной из самых популярных парадигм программирование является объектно-ориентированное программирование (ООП). Основная концепция ООП заключается в разделении понятий на сущности, которые описываются как некие объекты. Каждая сущность группирует заданный набор информации (свойств) и действий (методов), которые может выполнять эта сущность. ООП широко использует классы. Классы - это способ создания новых объектов с помощью макета или шаблона, который задает программист. Объекты, которые были созданы с помощью класса, называются экземплярами. Вернемся к примеру с приготовлением пищи на псевдокоде. Предположим, что в нашей пекарне у нас есть главный повар (по имени Фрэнк) и помощник повара (по имени Энтони). У каждого их них есть определенные обязанности. Если бы мы использовали ООП, то наша программа бы выглядеть следующим образом: // Create the two classes corresponding to each entity class Cook { constructor constructor (name) { this.name = name } mixAndBake() { - Mix the ingredients - Pour the mix in a mold - Cook for 35 minutes } } class AssistantCook { constructor (name) { this.name = name } pourIngredients() { - Pour flour in a bowl - Pour a couple eggs in the same bowl - Pour some milk in the same bowl } chillTheCake() { - Let chill } } // Instantiate an object from each class const Frank = new Cook('Frank') const Anthony = new AssistantCook('Anthony') // Call the corresponding methods from each instance Anthony.pourIngredients() Frank.mixAndBake() Anthony.chillTheCake() Преимущество ООП заключается в том, что оно облегчает понимание программы за счет четкого разделения задач и обязанностей. Итоги Как мы увидели, парадигмы программирования – это различные способы решения задач программирования и организации нашего кода. Одними из самых популярных и широко используемых на сегодняшний день парадигм являются императивная, процедурная, функциональная, декларативная и объектно-ориентированная. Знание о том, что они из себя представляют, полезно для общего развития, а также для лучшего понимания других тем, связанных с программированием.
img
В этой статье мы рассмотрим IPv6 (Internet Protocol version 6), причины, по которым он нам нужен, а также следующий аспект: различия с IPv4. Пока существует Интернет, используется протокол IPv4 для адресации и маршрутизации. Однако проблема с IPv4 заключается в том, что у нас закончились адреса. Так что же случилось с IPv4? Что же пошло не так? У нас есть 32 бита, которые дают нам 4 294 467 295 IP-адресов. Когда появился Интернет, мы получили сети класса А, В или С. Класс С дает нам блок из 256 IP-адресов, класс B - это 65.535 IP-адресов, а класс A даже 16 777 216 IP-адресов. Крупные компании, такие как Apple, Microsoft, IBM и др. имеют одну или несколько сетей класса А. Но действительно ли им нужно 16 миллионов IP-адресов? Большинство из этих IP-адресов не были использованы. Поэтому мы начали использовать VLSM, чтобы использовать любую маску подсети, которая нам нравится, и создавать более мелкие подсети, а не только сети класса A, B или C. У нас также имеется NAT и PAT, следовательно, мы имеем много частных IP-адресов за одним публичным IP-адресом. Тем не менее интернет вырос так, как никто не ожидал 20 лет назад. Несмотря на все наши крутые трюки, такие как VLSM и NAT/PAT, нам нужно было больше IP-адресов, и поэтому родился IPv6. А что случилось с IPv5? Хороший вопрос ... IP-версия 5 была использована для экспериментального проекта под названием "Протокол интернет-потока". Он определен в RFC, если вас интересуют исторические причины: http://www.faqs.org/rfcs/rfc1819.html IPv6 имеет 128-битные адреса по сравнению с нашими 32-битными IPv4-адресами. Имейте в виду, что каждый дополнительный бит удваивает количество IP-адресов. Таким образом мы переходим от 4 миллиардов к 8 миллиардам, 16,32,64 и т. д. Продолжайте удвоение, пока не достигнете 128-битного уровня. Просто вы увидите, сколько IPv6-адресов это даст нам: 340,282,366,920,938,463,463,374,607,431,768,211,456; Можем ли мы вообще произнести это? Давайте попробуем вот это: 340 - ундециллионов; 282 - дециллионов; 366 - нониллионов; 920 - октиллионов; 938 - септиллионов; 463 - секстиллионов; 463 - квинтильонов; 374 - квадрильонов; 607 - триллионов; 431 - биллионов; 768 - миллионов; 211 - тысяч; 456. Это умопомрачительно... это дает нам достаточное количество IP-адресов для сетей на Земле, Луне, Марсе и остальной Вселенной. IPv6-адреса записываются в шестнадцатеричном формате. IPv4 и IPv6 несовместимы друг с другом, поэтому многие протоколы были обновлены или заменены для работы с IPv6, вот некоторые примеры: OSPF был обновлен с версии 2 (IPv4) до версии 3 (IPv6); ICMP был обновлен до версии ICMP 6; ARP был заменен на NDP (Neighborhood Discovery Protocol). Заголовок пакета IPv6 содержит адреса источника и назначения, но по сравнению с IPv4 он стал намного проще: Вместо того чтобы уже добавлять все поля в заголовок, заголовок IPv6 использует "следующий заголовок", который ссылается на необязательные заголовки. Поскольку заголовок намного проще, маршрутизаторам придется выполнять меньше работы. А как насчет маршрутизации? Есть ли разница между IPv4 и IPv6? Давайте рассмотрим варианты маршрутизации: Static Routing; RIPng; OSPFv3; MP-BGP4; EIGRP. Вы все еще можете использовать статическую маршрутизацию, как и в IPv4, ничего нового здесь нет. RIP был обновлен и теперь называется RIPng или RIP Next Generation. OSPF для IPv4 на самом деле является версией 2, а для IPv6 у нас есть версия 3. Это отдельный протокол, он работает только на IPv6. Есть только незначительные изменения, внесенные в OSPFv3. BGP (Border Gateway Protocol) - это протокол маршрутизации, который объединяет Интернет вместе.MP-BGP расшифровывается как Multi-Protocol BGP, и он может маршрутизировать IPv6. EIGRP также поддерживает IPv6. Просто имейте в виду, что OSPF и EIGRP поддерживают IPv6, но это отдельные протоколы. Если у вас есть сеть с IPv4 и IPv6, вы будете запускать протокол маршрутизации для IPv4 и еще один для IPv6. Запуск IPv4 и IPv6 одновременно называется двойным стеком. Поскольку эти два протокола несовместимы, в будущем будет происходить переход с IPv4 на IPv6. Это означает, что вы будете запускать оба протокола в своей сети и, возможно, однажды вы сможете отключить IPv4, так как весь интернет будет настроен на IPv6. Давайте взглянем на формат IPv6-адреса: 2041:0000:140F:0000:0000:0000:875B:131B Во-первых, он шестнадцатеричный и гораздо длиннее, чем IPv4-адрес. Существует восемь частей, состоящих из 4 шестнадцатеричных цифр каждая, поэтому 128-битный адрес может быть представлен 32-битными шестнадцатеричными символами. Если вы забыли, как работает шестнадцатеричный код, взгляните на таблицу ниже: В шестнадцатеричной системе счисления мы считаем от 0 до F точно так же, как мы считали бы от 0 до 15 в десятичной системе счисления: A = 10; B = 11; C = 12; D = 13; E = 14; F = 15. Использование шестнадцатеричного кода помогает сделать наши адреса короче, но ввод адреса IPv6 - это все еще большая работа. Представьте себе, что вы звоните другу и спрашиваете его, может ли он пинговать IPv6-адрес 2041:0000:140F:0000:0000:0000:875B:131B, чтобы узнать, может ли он достучаться до своего шлюза по умолчанию. Чтобы облегчить нам работу с такими адресами, можно сделать IPv6-адреса короче. Вот пример: Оригинальный: 2041: 0000:140F:0000:0000:0000:875B:131B Сокращенный: 2041: 0000:140F:: 875B:131B Если есть строка нулей, вы можете удалить их, заменив их двойным двоеточием (::). В приведенном выше IPv6-адресе удалены нули, сделав адрес немного короче. Вы можете сделать это только один раз. Мы можем сделать этот IPv6 адрес еще короче используя другой трюк: Сокращенный: 2041: 0000:140F:: 875B:131B; Еще короче: 2041:0:140F:: 875B:131B Если у вас есть блок с 4 нулями, вы можете удалить их и оставить там только один ноль. Мы также можем удалить все впередистоящие нули: Оригинальный: 2001:0001:0002:0003:0004:0005:0006:0007; Сокращенный: 2001:1:2:3:4:5:6:7 Подытожим небольшие правила: Строку нулей можно удалить, оставив только двоеточие (::). Вы можете сделать только это однажды.; 4 нуля можно удалить, оставив только один ноль. Впередиидущие нули могут быть удалены в пределах одного блока.; Вы не можете удалить все нули, иначе ваше устройство, работающее с IPv6 не поймет, где заполнить нули, чтобы снова сделать его 128-битным.; Вычисление префикса IPV6 мы пропустим, так как ресурсов, рассказывающих об этом в сети Интернет, специальных книгах полно. Нет смысла повторяться. Потребуется некоторое время, чтобы привыкнуть к IPv6-адресации и поиску префиксов, но чем больше вы этим занимаетесь, тем дальше становиться проще. В оставшейся части этой статьи мы еще немного поговорим о различных типах адресации IPv6. IPv4-адреса организованы с помощью "системы классов", где класс A, B и C предназначены для одноадресных IP-адресов, а класс D-для многоадресной передачи. Большинство IP-адресов в этих классах являются публичными IP-адресами, а некоторые-частными IP-адресами, предназначенными для наших внутренних сетей. Нет такой вещи, как классы для IPv6, но IANA действительно зарезервировал определенные диапазоны IPv6 для конкретных целей. У нас также есть частные и публичные IPv6-адреса. Первоначально идея IPv4 заключалась в том, что каждый хост, подключенный к Интернету, будет иметь общедоступный IP-адрес. Каждая компания получит сеть класса А, В или С, и сетевые инженеры в компании будут дополнительно подсоединять ее так, чтобы каждый хост и сетевое устройство имели общедоступный IP-адрес. Проблема, однако, заключается в том, что адресное пространство IPv4 было слишком маленьким, и выдавать полные сети A, B или C было не очень разумно. Даже если вам требуется только небольшое количество IP-адресов, вы все равно получите сеть класса C, которая дает вам 254 пригодных для использования IP-адреса. Компания, которой требуется 2.000 IP-адресов, получит класс B, который дает вам более 65.000 IP-адресов. Поскольку у нас заканчивались IP-адреса, мы начали использовать такие вещи, как VLSM (избавляясь от идеи класса A, B, C) и настраивали частные IP-адреса в наших локальных сетях, а вместо этого использовали NAT/PAT. Протокол IPv6 предлагает два варианта для одноадресной рассылки: Global Unicast; Unique Local. Раньше существовал третий диапазон адресов, называемый "site local", который начинался с FEC0:: / 10. Этот диапазон изначально предназначался для использования во внутренних сетях, но был удален из стандарта IPv6. Global Unicast передачи IPv6 похожи на публичные IPv4-адреса. Каждая компания, которая хочет подключиться к интернету с помощью IPv6, получит блок IPv6-адресов, которые они могут дополнительно разделить на более мелкие префиксы, чтобы все их устройства имели уникальный IPv6-адрес. Зарезервированный блок называется префиксом глобальной маршрутизации. Поскольку адресное пространство IPv6 настолько велико, каждый может получить префикс глобальной маршрутизации. Давайте посмотрим, как назначаются префиксы IPv6-адресов. Допустим, компания получает префикс 2001:828:105:45::/64. Как они его получили? Мы пройдемся по этой картине сверху вниз: IANA отвечает за распределение всех префиксов IPv6. Они будут назначать реестрам различные блоки. ARIN - для Северной Америки, RIPE -для Европы, Ближнего Востока и Центральной Азии. Всего таких реестров насчитывается 5. IANA присваивает 2001: 800:: /23 RIPE и 2001: 0400::/23 ARIN (и многие другие префиксы).; ISP, который попадает под реестр RIPE, запрашивает блок пространства IPv6. Они получают от них 2001: 0828:: / 32, которые в дальнейшем могут использовать для клиентов.; ISP дополнительно подсоединит свое адресное пространство 2001:0828::/32 для своих пользователей. В этом примере клиент получает префикс 2001:828:105::/48.; IANA зарезервировала определенные диапазоны адресов IPv6 для различных целей, точно так же, как это было сделано для IPv4. Первоначально они зарезервировали IPv6-адреса, которые с шестнадцатеричными 2 или 3 являются global unicast адресами. Это можно записать как 2000:: / 3. В настоящее время они используют все для global unicast рассылки, которая не зарезервирована для других целей. Некоторые из зарезервированных префиксов являются: FD: Unique Local; FF: Multicast; FE80: Link-Local. Обсудим префиксы local и link-local В моем примере клиент получил 2001: 828:105:: / 48 от провайдера, но прежде чем я смогу что-либо сделать с этим префиксом, мне придется разбить на подсети его для различных VLAN и point-to-point соединений, которые у меня могут быть. Подсети для IPv6 - это примерно то же самое, что и для IPv4, но математика в большинстве случаев проще. Поскольку адресное пространство настолько велико, почти все используют префикс /64 для подсетей. Нет смысла использовать меньшие подсети. При использовании IPv4 у нас была часть "сеть" и "хост", а класс A, B или C определяет, сколько битов мы используем для сетевой части: Когда мы используем подсети в IPv4 мы берем дополнительные биты от части хоста для создания большего количества подсетей: И, конечно, в результате у нас будет меньше хостов на подсеть. Подсети для IPv6 используют аналогичную структуру, которая выглядит следующим образом: Префикс global routing был назначен вам провайдером и в моем примере клиент получил его 2001:828:105::/48. Последние 64 бита называются идентификатором интерфейса, и это эквивалентно части хоста в IPv4. Это оставляет нас с 16 битами в середине, которые я могу использовать для создания подсетей. Если я хочу, я могу взять еще несколько битов из идентификатора интерфейса, чтобы создать еще больше подсетей, но в этом нет необходимости. Используя 16 бит, мы можем создать 65.536 подсетей ...более чем достаточно для большинства из нас. И с 64 битами для идентификатора интерфейса на подсеть, мы можем иметь восемнадцать квинтиллионов, четыреста сорок шесть квадриллионов, семьсот сорок четыре триллиона, семьдесят четыре миллиарда, семьсот девять миллионов, пятьсот пятьдесят одну тысячу, шестьсот с чем-то хостов на подсеть. Этого должно быть более чем достаточно! Использование 64-битного идентификатора интерфейса также очень удобно, потому что он сокращает ваш IPv6-адрес ровно наполовину! Допустим, наш клиент с префиксом 2001: 828: 105:: / 48 хочет создать несколько подсетей для своей внутренней сети. Какие адреса мы можем использовать? 16 бит дает нам 4 шестнадцатеричных символа. Таким образом, все возможные комбинации, которые мы можем сделать с этими 4 символами, являются нашими возможными подсетями. Все, что находится между 0000 и FFFF, является допустимыми подсетями: 2001:828:105:0000::/64; 2001:828:105:0001::/64; 2001:828:105:0002::/64; 2001:828:105:0003::/64; 2001:828:105:0004::/64; 2001:828:105:0005::/64; 2001:828:105:0006::/64; 2001:828:105:0007::/64; 2001:828:105:0008::/64; 2001:828:105:0009::/64; 2001:828:105:000A::/64; 2001:828:105:000B::/64; 2001:828:105:000C::/64; 2001:828:105:000D::/64; 2001:828:105:000E::/64; 2001:828:105:000F::/64; 2001:828:105:0010::/64; 2001:828:105:0011::/64; 2001:828:105:0012::/64; 2001:828:105:0013::/64; 2001:828:105:0014::/64; И так далее. Всего существует 65 535 возможных подсетей, поэтому, к сожалению, я не могу добавить их все в статью...теперь мы можем назначить эти префиксы различным соединениям типа point-to-point, VLAN и т. д.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59