По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Второй метод, который мы можем использовать для настройки адреса, называется EUI-64 (расширенный уникальный идентификатор). Он может быть использован для того, чтобы заставить роутер генерировать свой собственный идентификатор интерфейса вместо того, чтобы вводить его самостоятельно. Роутер будет принимать MAC-адрес своего интерфейса и использовать его в качестве идентификатора интерфейса. Однако MAC-адрес - это 48 бит, а идентификатор интерфейса-64 бит. Что мы будем делать с недостающими частями? В первой части статьи мы рассказывали о стандартной настройке IPv6 на оборудовании Cisco Вот что мы сделаем, чтобы заполнить недостающие биты: Мы берем MAC-адрес и делим его на две части; Мы вставляем "FFFE" между двумя частями, так что бы у нас получилось 64-битное значение; Мы инвертируем 7-й бит идентификатора интерфейса. Например, если мой MAC-адрес 1234.5678.ABCD тогда, после преобразования идентификатор интерфейса получиться: Выше вы видите, как мы разделяем MAC-адрес и помещаем FFFE в середину. "Инвертирование 7-го бита" не является заключительным шагом. Для этого вам нужно преобразовать первые два шестнадцатеричных символа первого байта в двоичный, найти 7-й бит и инвертировать его. Это означает, что если это 0, то вам нужно сделать его 1, а если это 1, то он должен стать 0. 7-й бит представляет собой "универсальный уникальны" бит. По умолчанию в MAC-адресе этот бит всегда будет установлен в 0. При изменении MAC-адреса этот бит должен быть установлен на 1. Обычно люди не меняют MAC-адрес этого роутера, что означает, что EUI-64 будет самостоятельно менять 7-й бит с 0 на 1. Вот как это выглядит: Мы берем первые два шестнадцатеричных символа первого байта, которые являются "12", и преобразуем их обратно в двоичный код. Затем мы инвертируем 7-й бит от 1 до 0 и снова делаем его шестнадцатеричным. Так что на самом деле мой идентификатор интерфейса EUI-64 будет выглядеть следующим образом: Теперь давайте взглянем на конфигурацию EUI-64 на роутере! Я буду использовать 2001:1234:5678:abcd::/64 в качестве префикса: OFF1(config)#interface fastEthernet 0/0 OFF1(config-if)#ipv6 address 2001:1234:5678:abcd::/64 eui-64 В этом случае настроен роутер с префиксом IPv6 и с использованием EUI-64 в конце. Именно так мы можем автоматически генерировать идентификатор интерфейса, используя mac-адрес. Теперь взгляните на IPv6-адрес, который он создал: OFF1#show interfaces fastEthernet 0/0 | include Hardware Hardware is Gt96k FE, address is c200.185c.0000 (bia c200.185c.0000) OFF1#show ipv6 interface fa0/0 FastEthernet0/0 is up, line protocol is up IPv6 is enabled, link-local address is FE80::C000:18FF:FE5C:0 No Virtual link-local address(es): Global unicast address(es): 2001:1234:5678:ABCD:C000:18FF:FE5C:0, subnet is 2001:1234:5678:ABCD::/64 [EUI] Видите эту часть C000:18FF:FE5C:0? Это MAC-адрес, который разделен на 2, FFFE в середине и "2" в "C200" MAC-адреса были инвертированы, поэтому теперь он отображается как "C000". Когда вы используете EUI-64 на интерфейсе, который не имеет MAC-адреса, то он выберет MAC-адрес самого низкого нумерованного интерфейса на роутере. При использовании EUI-64 вы должны ввести 64-битный префикс, а не полный 128-битный IPv6 адрес. Если вы сделаете это, вы не получите ошибку, но Cisco IOS будет только сохранять 64-битный префикс, и в любом случае сгенерирует идентификатор интерфейса. Скорее всего вы, вероятно, не будете использовать EUI-64 на роутере для настройки интерфейса, но это очень полезный метод для обычных хостов, таких как компьютеры windows, linux или mac. Вы, возможно, настроите IPv6-адрес вручную на интерфейсе вашего роутера или используете метод автоконфигурации, такой как DHCP или SLAAC. Когда вы внимательно посмотрите на выходные данные show ipv6 interface, вы можете заметить, что там есть еще один IPv6-адрес: OFF1#show ipv6 interface fa0/0 FastEthernet0/0 is up, line protocol is up IPv6 is enabled, link-local address is FE80::C000:18FF:FE5C:0 Кстати, про теоретические основы IPv6 можно изучить тут Этот адрес называется локальным адресом связи (link-local address), и он имеет некоторые специальные цели для IPv6. Каждое устройство с включенным IPv6 автоматически генерирует локальный адрес связи. Эти адреса являются одноадресными, не могут быть маршрутизированы и используются только в пределах подсети, поэтому они называются "link-local". Некоторые протоколы используют локальные адреса связи вместо глобальных одноадресных адресов, хорошим примером является NDP (Neighbour Discovery Protocol), который используется для обнаружения MAC-адресов других устройств IPv6 в подсети (NDP заменяет ARP для IPv4). Протоколы маршрутизации также используют эти локальные адреса связи для установления соседних областей, а также в качестве следующего перехода для маршрутов. Мы увидим это, когда будем говорить о маршрутизации IPv6. Адресное пространство FE80:: / 10 было зарезервировано для link-local, которые охватывают FE8, FE9, FEA и FEB. Однако RFC, описывающий link-local, утверждает, что следующие 54 бита должны быть нулями, поэтому link-local всегда будут выглядеть так: link-local всегда будет начинаться с FE80:0000:0000:0000, а ID можно настроить с помощью различных методов. Роутеры Cisco будут использовать EUI-64 для создания идентификатора интерфейса, в то время как другие операционные системы, такие как Microsoft, используют случайный метод для создания идентификатора интерфейса. В приведенном ниже примере вы можете видеть, что EUI-64 был использован для создания link-local: OFF1#show interfaces fastEthernet 0/0 | include Hardware Hardware is Gt96k FE, address is c200.185c.0000 (bia c200.185c.0000) OFF1#show ipv6 interface fa0/0 FastEthernet0/0 is up, line protocol is up IPv6 is enabled, link-local address is FE80::C000:18FF:FE5C:0 Первая часть-это FE80:: и вторая часть - это созданный идентификатор интерфейса EUI-64: C000:18FF:FE5C:0 Когда вы настраиваете IPv6-адрес на интерфейсе (глобальный одноадресный или уникальный локальный) или когда вы включаете IPv6 на интерфейсе, вы можете сделать это следующим образом: OFF1(config)#interface fa0/0 OFF1(config-if)#ipv6 enable Использование команды ipv6 enable роутеру создать link-local адрес. OFF1#show ipv6 int fa0/0 FastEthernet0/0 is up, line protocol is up IPv6 is enabled, link-local address is FE80::C000:15FF:FE94:0 По умолчанию Cisco IOS будет использовать EUI-64 для создания link-local адреса, но вы также можете настроить его самостоятельно. Просто убедитесь, что адрес начинается с FE80:: / 10 (FE8, FE9, FEA или FEB). Вот как вы можете настроить link-local адрес: OFF1(config-if)#ipv6 address FE90:1234:5678:ABCD::1 link-local Просто используйте ключевое слово link-local, чтобы сообщить роутеру, что это должен быть адрес link-local. Давайте проверим это: OFF1#show ipv6 int fa0/0 FastEthernet0/0 is up, line protocol is up IPv6 is enabled, link-local address is FE90:1234:5678:ABCD::1 Помимо link-local адресов существует еще один тип адресации, который мы должны обсудить, и это multicast. Я надеюсь, вы обладаете званиями об одноадресных и широковещательных доменах. Когда хост отправляет широковещательную передачу, все остальные устройства в подсети получат ее независимо от того, хотят они этого или нет. Отправка широковещательных сообщений очень неэффективна, и они были удалены из IPv6. Многоадресная рассылка также используется для отправки чего-то с одного хоста на несколько приемников, но разница заключается в том, что многоадресный трафик заканчивается только на хостах, которые хотят его получить. Каждый, кто прослушивает определенный адрес многоадресной рассылки, получит эти пакеты. Это просто как радиостанция, если вы хотите слушать...вы должны настроиться на нужную частоту. IPv6 использует многоадресную рассылку по многим причинам. Узлы IPv6, которые хотят отправить что-то всем узлам, работающим под управлением IPv6, могут использовать адрес многоадресной рассылки FF02::1. Все, у кого включен IPv6, слушают этот адрес. Когда роутер IPv6 хочет отправить что-то всем другим роутерам IPv6 (но не хостам!) он может отправить его в FF02:: 2. Протоколы маршрутизации также используют многоадресные адреса. Например, EIGRP уже использует виде FF02::A и OSPF использует виде FF02::5 и виде FF02::6. Многоадресный трафик маршрутизируется, но часть трафика должна оставаться в пределах подсети. Если это так, то эти адреса будут иметь link-local область, и они не будут перенаправляться роутерами из одной подсети в другую. Диапазон FF00:: / 8 был зарезервирован для многоадресной рассылки IPv6, в то время как диапазон FF02::/16 зарезервирован для многоадресных адресов link-local области. На роутере Cisco вы можете видеть по интерфейсу, к которому многоадресные адреса роутер прослушивает: OFF1#show ipv6 int fa0/0 FastEthernet0/0 is up, line protocol is up IPv6 is enabled, link-local address is FE90:1234:5678:ABCD::1 No Virtual link-local address(es): No global unicast address is configured Joined group address(es): FF02::1 FF02::2 FF02::1:FF00:1 Этот конкретный роутер прослушивает адреса многоадресной рассылки "все хосты IPv6" и "все роутеры IPv6". Как только вы настроите OSPF или EIGRP для IPv6, вы заметите, что интерфейс присоединится к соответствующим адресам многоадресной рассылки. Третий адрес, который у нас есть (FF02::1:FF00:1), называется адресом многоадресной рассылки запрошенного узла. Он используется для обнаружения соседей. Многоадресный адрес запрашиваемого узла основан на одноадресном IPv6-адресе хоста, а если быть более точным...последние шесть шестнадцатеричных символов одноадресного адреса. Все хосты, имеющие одинаковые 6 шестнадцатеричных символов в своем одноадресном IPv6-адресе, в конечном итоге получат один и тот же адрес запрашиваемого узла. Когда вы отправляете что-то на этот адрес запрашиваемого узла, все хосты с одним и тем же адресом получат пакеты. Это что-то вроде многоадресного адреса "все хосты IPv6", но на этот раз у нас есть отдельная комната, где единственными членами являются VIP-персоны, которые разделяют одни и те же последние 6 шестнадцатеричных символов. Все адреса запрашиваемых узлов начинаются с FF02::1:FF, поэтому они выглядят следующим образом: Мой маршрутизатор имеет запрошенный адрес узла FF02:: 1:FF00:1, а link-local адрес -FE90:1234:5678: ABCD:: 1. Когда мы записываем link-local адрес полностью, это выглядит так: FE90:1234:5678:ABCD:0000:0000:0000:0001 Возьмите последние 6 шестнадцатеричных символов из этого адреса: 00:0001 И поместите их за префиксом адреса запрашиваемого узла, чтобы получить полный адрес запрашиваемого узла: FF02:0000:0000:0000:0000:0001:FF00:0001 Мы можем удалить некоторые нули, чтобы сделать его короче, и это будет выглядеть так: FF02::1:FF00:1
img
Построение модели API требует стратегического подхода, и он связан с CRUD. Направляя разработчиков целиком и полностью, CRUD прокладывает путь для разработчиков API, ведя их по пути разработки доработанных и высококлассных API. Что такое CRUD? CRUD – это сокращение от Create (создание), Read (чтение), Update (модификация) и Delete (удаление). Эти четыре функции являются ключевыми принципами, которым следуют разработчики и программисты API при создании надежных API. В соответствии с отраслевым стандартом каждая модель API должна следовать всем этим четырем (или как минимум трем) принципам в процессе выполнения. Некоторые языки программирования следуют CRUD в том виде, в котором он есть, в то время как лишь некоторые используют адаптированную версию CRUD. К языкам, использующим инфраструктуру CRUD, относятся: Python, PHP, Java и .Net. CRUD работает как напоминание для разработчиков о том, что необходимо для того, чтобы приложение чувствовало себя полноценным. Она возникла в начале 80-х годов. В то время его использовали для иллюстрирования жизнеспособности базы данных SQL. Со временем он расширил список областей применения и стал ключевым принципом проектирования для DDS и HTTP. Определение функций CRUD Однозначное понимание функций CRUD позволяет разработчикам максимально эффективно использовать их. Итак, ознакомьтесь с каждой из 4 функций и рассмотрите примеры для того, чтобы лучше понимать их принцип действия. Create Эта функция используется для оповещения о введении любых новых изменений в базу данных и обеспечения их реализации. В реляционной базе данных SQL, Create называется INSERT. Этот оператор разрешает конечному пользователю создавать новые строки данных и позволяет ранее сохраненным данным легко взаимодействовать с новой базой данных. Пример: Допустим, мы добавляем Фрукты в список http://www.example.com/fruits/. Для того, чтобы создать объект «Манго», мы должны оправить запрос POST на этот URL: { “fruit": { "name": “Mango”, "color": “Yellow” } } Этот код создаст еще один объект в списке фруктов с именем «манго», у которого есть свойство (цвет) со значением «желтый». При успешном создании вы получите HTTP-ответ 201. Read Что функция поиска делает в обычных случаях, вы можете узнать, почитав о реляционных базах данных. Конечным пользователям разрешено искать различимые значения или данные в таблице данных и находить значения. Можно использовать определённые ключевые слова или фильтровать данные, чтобы получить точную информацию. Пример: Теперь для того, чтобы прочитать список, в который вы добавили объект в предыдущем примере, воспользуемся GET-запросом. Используйте этот код: GET http://www.example.com/fruits/ Если для вашего запроса существует запись, то вы увидите HTTP-ответ 200. Также вы увидите список фруктов. { "fruits": [ { "id": 1, "name": “Apple”, "color": “Red” }, { "id": 2, "name": “Grapes”, "color": “Green” }, ... { "id": 3, "name": “Mango”, "color": “Yellow” } ] } Для того, чтобы увидеть детали, связанные с конкретным объектом Манго, который мы создали, используйте этот код: GET http://www.example.com/fruits/3/ Update Функция модификации полезна для изменения уже существующих записей без внесения каких-либо нарушений в существующую базу данных. Для полной модификации требуется некоторая модификация в нескольких областях. Эта функция известна как Update как в SQL, так и в Oracle HCM Cloud. Пример: Для того, чтобы изменить значение объекта, выполним PUT-запрос для URL-адреса конкретного объекта. Вот так: PUT http://www.example.com/fruits/3/ { "fruits": { "name": “Ripe Watermelon”, "color": “Blood Red” } } Если возвращается идентификатор состояния 200, то обновление прошло успешно. Для подтверждения вы можете прочитать этот объект повторно и просмотреть значения для него. Delete При помощи этой функции пользователи могут удалять определенные записи или данные из определенной базы данных. Вы можете удалять данные, которые больше не нужны или устарели. Удаление бывает двух типов: обратимое или необратимое удаление. Необратимое удаление удаляет данные один раз, а обратимое используется для обновления состояния строки данных без ее окончательного удаления. Пример: Это очень просто. Давайте удалим созданный нами объект. DELETE http://www.example.com/fruits/3/ Теперь при GET-запросе (чтение) вы получите код 404, который говорит о том, что данных по вашему запросу нет. Преимущества CRUD Есть что-то, что заставляет разработчиков и дизайнеров приложений предпочитать CRUD любому другому подходу. Это «что-то» - это непревзойденная производительность, интегрированная с некоторыми уникальными функциями. Основные преимущества, которыми можно воспользоваться после запуска CRUD, представлены ниже. Меньшая вероятность атак путем внедрения SQL-кода Использование SQL-языка имеет больше шансов столкнуться с SQL-атаками, поскольку все операторы SQL выполняются непосредственно на SQL-серверах. Сервер также хранит инструкции и процедуры SQL, доступ неавторизованных ресурсов к которым может оказаться фатальным. Использование CRUD позволяет контролировать возможные атаки путем внедрения SQL-кода, поскольку использует уже сохраненные действия и не требует создания динамических запросов с использованием данных конечного пользователя. Кроме того, такой подход использует однозначное цитирование параметров SQL-операторов. Лучшая защита от случайного просмотра Пользователи специальных SQL-операторов должны получить разрешение на доступ к таблицам базы данных. После успешного предоставления разрешения конечным пользователям разрешается читать и управлять данными, имеющимися в Excel, Word и любой другой программе. Также возможен обход бизнес-правил приложения. Однако делать это не всегда выгодно. Риски утечки данных есть всегда. CRUD в такой ситуации полезен, так как делает возможным использование ролей приложений. Используя роли приложений, можно обеспечить высоко интегрированную безопасность базы данных и контролировать права доступа. Полномочия могут защищаться паролем, а поскольку пароли также интегрированы в приложение, то изменить их сложно. Таким образом, можно покончить со случайным просмотром. CRUD vs REST – сравнение CRUD и REST очень часто используют для обозначения одного и того же подхода. Такая путаница очевидна, так как приложения REST следуют принципу, подобному CRUD, для взаимодействия с другими приложениями или компонентами. Тем не менее, эти два термина не идентичны и имеют ряд явных сходств и различий. Что общего? Приложения REST разрабатываются с сохранением определенного набора ресурсов в смысловом центре. Эти ресурсы, как и ресурсы CRUD, можно легко создавать, читать, модифицировать и удалять. Просто вместо Create, Read, Update и Delete в REST используются ресурсы PUT/POST, GET, PATCH/POST и DELETE. В чем разница? Абсолютно точно, то у этих двоих больше различий, чем сходств. Взгляните на ключевые различия между ними. В части определения REST упоминается как архитектурная система, а CRUD – как функция. REST «крутится» вокруг ресурсов, основанных на компонентах HTTP. CRUD «крутится» вокруг информации, хранящейся в настройках базы данных. CRUD может быть частью REST, но REST не может быть частью CRUD. REST – это независимый подход, который может правильно функционировать и без CRUD. Что такое CRUD-тестирование? CRUD-тестирование – это оригинальная методология тестирования методом «черного ящика», которая широко используется для подтверждения полезности данного программного обеспечения в режиме реального времени. Это понятие используется для SQL и других ресурсов СУБД, для которых гарантируется точное отображение данных, сквозное обслуживание ACID-свойств и несравнимая целостность данных. Обеспечение безопасности в REST и CRUD-операциях Аутентификация, авторизация и учет использования ресурсов (или ААА – Authentication, Authorization, Accounting) – это крайне эффективная практика безопасности, которая одинаково хорошо подходят для REST и CRUD. Она включает в себя аутентификацию конечных пользователей, выполнение авторизации перед каждым доступом и привлечение конечных пользователей к ответственности за свои действия или использование данных.
img
Когда мы, разговаривая по IP телефону, слышим голос собеседника в трубке, или, используя систему видеоконференцсвязи, общаемся со своими коллегами и родственниками, то обмениваемся непрерывным потоком данных. При передаче потоковых данных, таких как голос и видео через пакетную сеть, очень важно использовать такие механизмы, которые решали бы следующие задачи: Устранение эффекта потери пакетов Восстановление порядка и контроль поступления пакетов Сглаживание эффекта задержки (джиттера) Именно для этих целей был разработан RTP (Real-time Transport Protocol) - протокол передачи в реальном времени, о котором пойдет речь в сегодняшней статье. Протокол разрабатывался в IETF группой Audio-Video Transport Working Group и описывается в рекомендации RFC 3550. Как правило, RTP работает поверх протокола UDP (User Datagram Protocol), так как при передаче мультимедийных данных очень важно обеспечить их своевременную доставку. RTP включает возможность определения типа полезной нагрузки и назначения последовательного номера пакета в потоке, а также применение временных меток. На передающей стороне каждый пакет помечается временной меткой, принимающая сторона получает ее и определяет суммарную задержку, после чего вычисляется разница в суммарных задержках и определяется джиттер. Таким образом, появляется возможность установить постоянную задержку выдачи пакетов и тем самым снизить влияние джиттера. Ещё одна функция RTP связана с возможными потерями пакетов при прохождении по IP сети, что выражается в появлении кратковременных пауз в разговоре. Внезапная тишина в телефонной трубке, как правило, очень негативно действует на слушателя, поэтому возможностями протокола RTP такие периоды тишины заполняются, так называемым,“комфортным шумом” RTP работает в связке с еще одним протоколом IETF, а именно RTCP (Real - time Transport Control Protocol), который описывается в RFC 3550. RTCP предназначен для сбора статистической информации, определения качества обслуживания QoS (Quality of Service), а также для синхронизации между медиа потоками RTP-сессии. Основная функция RTCP – установление обратной связи с приложением для отчета о качестве получаемой информации. Участники RTCP сессии обмениваются сведениями о числе полученных и утраченных пакетов, значении джиттера, задержке и т.д. На основе анализа этой информации принимается решение об изменении параметров передачи, например, для уменьшения коэффициента сжатия информации с целью улучшения качества ее передачи. Для выполнения этих функций RTCP передает специальные сообщения определенных типов: SR - Sender Report - отчёт источника со статистической информацией о RTP сессии RR - Receiver Report - отчёт получателя со статистической информацией о RTP сессии SDES - содержит описание параметров источника, включая cname (имя пользователя) BYE – Инициирует завершение участия в группе APP - Описание функций приложения RTP является протоколом однонаправленного действия, поэтому для организации двусторонней связи необходимо две RTP сессии, по одной с каждой стороны. RTP-сессия определяется IP адресами участников, а также парой незарезервированных UDP портов из диапазона 16384 - 32767. Кроме того, для организации обратной связи с приложением необходимо также установить двустороннюю RTCP сессию. Для RTCP сессии занимаются порты с номером на единицу большим чем RTP. Так например, если для RTP выбран 19554 порт, то RTCP сессия займет 19555 порт. Наглядно формирование RTP/RTCP сессии представлено на рисунке ниже. Стоит также отметить, что сам протокол RTP не имеет механизмов для самостоятельного установления сессии, эта задачу выполняют протоколы сигнализации, такие как SIP,H.323,SCCP , которые мы подробно рассматривали в предыдущих статьях.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59