По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В интернете всегда можно легко найти информацию о веб-службах, которые базируются на SOAP и XML-RPC, а вот REST, почему-то, обделен вниманием. В рамках этой статьи будет рассмотрен базис этой архитектуры и ее практическое применение. REST: что это? REST является стилем архитектуры ПО для систем распределения (пример - всем известная www). Обычно с его помощью строят веб-службы. Рой Филдинг, который имеет прямое отношение к созданию протокола HTTP, ввел термин REST в начале века. После этого любую систему, которая поддерживала его, стали называть RESTFul. Доступный интерфейс контроля без ненужных слоев - вот что из себя представляет эта архитектура. Глобальный ID, а именно URL, определяет каждую очередную информационную единицу. Сам же URL характеризуется форматом, который находится в жестких рамках. Что такое API REST на практике Если нет пустых прослоек, данные будут переданы в виде, аналогичном им самим. "Заворачивание" информации в XML не происходит, как в случае с SOAP и XML-RPC, также не используется и AMF, как это бывает с Flash. По сути, происходит чистая передача. URL, на деле, является базовым ключом для единицы данных. Пример: вторая книга из стопки, лежащей на столе, будет интерпретирована как /book/2, а 145 страница в этой книге - /book/2/page/145. Это достаточно жесткий формат. Самое интересное, что он может присутствовать в любом внешнем источнике, будь то HTML или doc-файл. Контроль информации сервиса Протокол передачи данных - основа контроля и управления. Самый часто используемый протокол - это, само собой, HTTP, и для него команды действий выглядят так: GET (получение); PUT (добавление); POST (изменение); DELETE (удаление). Поэтому Create/Read/Update/Delete-действия будут выполнены и с 4 указанными алгоритмами, и посредством GET и POST. Это позволит в некоторых случаях обойти негативные эффекты с использованием непринятых PUT и DELETE. REST в построении веб-сервисов Веб-сервис - приложение, которое работает в www с доступом, предоставленным через HTTP-протокол. Информационный обмен в рамках веб-сервиса осуществляется посредством формата XML. А это значит, что все данные из тела запросов будут всегда в аналогичном формате. Для любой информационной единицы можно задать 5 вариантов действия: GET /info/ (Index) используется для получения списка объектов. Конечно, полученный список будет ограничен заданным идентификатором. GET /info/{id} (View) позволяет получить всю информацию об объекте. PUT /info/ или POST /info/ (Create) осуществляет создание нового объекта. POST /info/{id} или PUT /info/{id} (Edit) производит замену данных, соответствующих введенному идентификатору. DELETE /info/{id} (Delete) удаляет данные, выделенные идентификатором. Итоги Очевидно, что REST, как архитектура, обладает интуитивными алгоритмами и отличается простотой в использовании. Если запрос получен, то определить, что именно он делает, можно немедленно, без форматных разбирательств. При передаче не используются дополнительные слои, что обеспечивает REST особую ресурсоемкость. Для чего можно использовать? Основное достоинство сервисов REST - дружественность. Рабочая связка с сайтом, flash, программой? Не важно, ведь алгоритмы парсинга XML и обработка запросов HTTP есть буквально везде. REST значительно упрощает все связанные с этим задачи. Конечно, на практике описанных здесь алгоритмов недостаточно, так как отсутствует защита данных. Но ввести в систему авторизацию и аутентификацию всегда можно при помощи HTTP Authentication.
img
Когда узел в кластере vSAN, запущенный в vSphere 6.0 Update 1b, отключен для обслуживания, узлы ESXi в кластере сообщают об ошибке: Host cannot communicate with all other nodes in virtual SAN enabled cluster (Узел не может взаимодействовать со всеми другими узлами кластера с поддержкой виртуальной SAN) После перезагрузки узла (узлов) и повторного присоединения к кластеру сообщение автоматически не очищается. Это сообщение появляется на вкладке Summary веб-клиента vSphere, и хост ESXi отображает треугольник уведомления, хотя аварийные сигналы не инициируются. Это сообщение появляется на всех узлах в кластере vSAN, когда один или несколько узлов отключены для обслуживания и, следовательно, не взаимодействуют с остальной частью кластера, или когда существует допустимая проблема с связью кластера vSAN. В обычных условиях это сообщение автоматически сбрасывается после возобновления связи с хостами. Если это сообщение появляется на вкладке Сводка, в то время как все другие индикаторы сообщают, что сеть vSAN исправна, эта проблема может быть косметической. Решение Эта косметическая проблема устранена в VMware ESXi 6,0 Update 2, доступном на странице загрузки VMware Чтобы устранить эту проблему, если обновление не требуется, используйте один из следующих вариантов: Перезапустите агент управления VPXA на узлах vSAN. Это приводит к обновлению информации в vCenter Server и удалению сообщения. Примечание. Перезапуск агента управления vCenter на хосте ESXi может привести к короткому прерыванию управления хостом. В крайних случаях хост может сразу же перейти в состояние "не отвечает" на сервере vCenter Server, или к ожидающим операциям, которые завершаются неуспешно, и их необходимо повторить. Чтобы перезапустить агент управления VPXA (vCenter Server) на узлах узла ESXi кластера vSAN: Включите SSH или ESXi Shell на каждом узле кластера vSAN. Войдите на узел кластера vSAN с помощью SSH или ESXi Shell. Перезапустите агент управления VPXA, выполнив эту команду # /etc/init.d/vpxa restart Примечание. Подождите приблизительно одну минуту, прежде чем перейти к следующему хосту. Это позволяет одновременно обновлять информацию от каждого узла в vCenter Server. Удалите узел из кластера vSAN и добавьте его повторно. Это вынуждает все узлы обновлять информацию о членстве в кластере и очищать сообщение. Примечание. При попытке удаления и повторного добавления узла синхронизация данных не выполняется, когда узел находится в режиме обслуживания и находится вне кластера vSAN. При выборе опции «Гарантировать режим обслуживания специальных возможностей» некоторые объекты могут быть не защищены при выполнении обходного решения. Для удаления узла из кластера vSAN и повторного добавления: Выберите хост ESXi в кластере vSAN, который можно временно перевести в режим обслуживания Примечание. VMware рекомендует выбрать наименее занятый/используемый хост. В веб-клиенте vSphere щелкните правой кнопкой мыши узел ESXi и выберите "Перейти в режим обслуживания". Примечания: Выберите параметры "Обеспечить доступность" или "Полное перемещение данных" для режима обслуживания vSAN. Если применимо, разрешите перенос отключенных виртуальных машин на остальные хосты ESXi. 3Удаление узла из кластера vSAN Выберите хост. Перетащите узел из кластера. Поместите хост в объект центра обработки данных в хранилище сервера vCenter. Примечание. После перемещения хоста в центр обработки данных подождите около двух минут. Перетащите узел обратно в кластер vSAN. После добавления узла обратно в кластер vSAN щелкните на него правой кнопкой мыши и выберите «Выход из режима обслуживания». Примечание. Сообщение на остальных хостах должно быть понятным. Примечание. Эти обходные пути успешно очищают сообщение. Однако при повторном появлении сообщения может потребоваться повторное применение обходного решения. Это сообщение может вновь появиться в таких случаях, как проблема с сетью, отказ/перезагрузка хоста или обслуживание хоста.
img
Основная цель TCP состоит в том, чтобы обеспечить транспортировать данные поверх IP. Как протокол более высокого уровня, он полагается на возможности адресации и мультиплексирования IPv6 для передачи информации на правильный хост назначения. По этой причине TCP не требует схемы адресации. Управление потоком TCP использует метод скользящего окна для управления потоком информации по каждому соединению между двумя хостами. Рисунок 1 демонстрирует это. На рисунке 1 предположим, что начальный размер окна установлен равным 20. Затем последовательность событий: В момент времени t1 отправитель передает 10 пакетов или октетов данных (в случае TCP это 10 октетов данных). В момент времени t2 получатель подтверждает эти 10 октетов, и для окна установлено значение 30. Это означает, что отправителю теперь разрешено отправлять еще до 30 октетов данных перед ожиданием следующего подтверждения; другими словами, отправитель может отправить до 40 октетов, прежде чем он должен будет дождаться подтверждения для отправки дополнительных данных. В момент времени t3 отправитель отправляет еще 5 октетов данных, номера 11–15. В момент времени t4 приемник подтверждает получение октетов через 15, и окно устанавливается на 40 октетов. В момент времени t5 отправитель отправляет около 20 октетов данных, пронумерованных 16–35. В момент времени t6 получатель подтверждает 35, и окно устанавливается на 50. Следует отметить несколько важных моментов, касающихся этой техники: Когда получатель подтверждает получение определенного фрагмента данных, он неявно также подтверждает получение всего, что было до этого фрагмента данных. Если приемник не отправляет подтверждение—к примеру , передатчик отправляет 16-35 в момент времени t5, а приемник не отправляет подтверждение—отправитель будет ждать некоторое время и считать, что данные никогда не поступали, поэтому он будет повторно отправлять данные. Если получатель подтверждает некоторые данные, переданные отправителем, но не все, отправитель предполагает, что некоторые данные отсутствуют, и ретранслирует с точки, которую подтвердил получатель. Например, если отправитель передал 16-35 в момент времени t6, а получатель подтвердил 30, отправитель должен повторно передать 30 и переслать. Окно устанавливается как для отправителя, так и для получателя Вместо использования номеров октетов TCP присваивает каждой передаче порядковый номер; когда приемник подтверждает определенный порядковый номер, передатчик предполагает, что приемник фактически получил все октеты информации вплоть порядкового номера передачи. Для TCP, таким образом, порядковый номер действует как своего рода “стенография” для набора октетов. Рисунок 2 демонстрирует это. На рисунке 2: В момент времени t1 отправитель объединяет октеты 1–10 и передает их, помечая их как порядковый номер 1. В момент времени t2 получатель подтверждает порядковый номер 1, неявно подтверждая получение октетов 1–10. В момент времени t3 отправитель связывает октеты 11–15 вместе и передает их, помечая их как порядковый номер 2. В момент времени t4 получатель подтверждает порядковый номер 2, неявно подтверждая октеты, отправленные через 15. В момент времени t5 предположим, что 10 октетов поместятся в один пакет; в этом случае отправитель отправит два пакета, один из которых содержит 16–25 с порядковым номером 3, а другой - октеты 26–35 с порядковым номером 4. В момент времени t6 приемник подтверждает порядковый номер 4, неявно подтверждая все ранее переданные данные. Что произойдет, если один пакет информации будет пропущен? Что делать, если первый пакет из потока в 100 пакетов не получен? Используя систему, описанную на рисунке 2, получатель просто не подтвердит этот первый пакет информации, вынуждая отправителя повторно передать данные через некоторое время. Однако это неэффективно; каждый потерянный пакет информации требует полной повторной отправки из этого пакета. Реализации TCP используют два разных способа, чтобы получатель мог запросить один пакет. Первый способ - тройное признание. Если получатель трижды подтверждает пакет, который предшествует последнему подтвержденному серийному номеру, отправитель предполагает, что получатель запрашивает повторную передачу пакета. Три повторных подтверждения используются для предотвращения неправильной доставки пакетов или отброшенных пакетов, вызывающих ложный запрос на повторную передачу. Второй способ заключается в реализации выборочных подтверждений (SACK).15 SACK добавляет новое поле к подтверждению TCP, которое позволяет получателю подтвердить получение определенного набора серийных номеров, а не предполагать, что подтверждение одного серийного номера также подтверждает каждый более низкий серийный номер. Как долго передатчик ждет перед повторной передачи? Первый способ, которым отправитель может обнаружить потерянный пакет - это время ожидания повторной передачи (RTO), которое рассчитывается как функция времени приема-передачи (RTT или rtt). Rtt — это временной интервал между передачей пакета отправителем и получением подтверждения от получателя. RTT измеряет задержку в сети от передатчика до приемника, время обработки в приемнике и задержку в сети от приемника до передатчика. Обратите внимание, что rtt может варьироваться в зависимости от пути, по которому каждый пакет проходит через сеть, локальных условий в момент коммутации пакета и т. д. RTO обычно рассчитывается как средневзвешенное значение, при котором более старые временные интервалы оказывают меньшее влияние, чем более поздние измеренные значения. Альтернативным механизмом, используемым в большинстве реализаций TCP, является быстрая ретрансляция. При быстрой повторной передаче получатель добавляет единицу к ожидаемому порядковому номеру в любом подтверждении. Например, если отправитель передает последовательность 10, получатель подтверждает последовательность 11, даже если он еще не получил последовательность 11. В этом случае порядковый номер в подтверждении подтверждает получение данных и указывает, какой порядковый номер он ожидает от отправителя для передачи в следующий раз. Если передатчик получает подтверждение с порядковым номером, который на единицу больше последнего подтвержденного порядкового номера три раза подряд, он будет считать, что следующие пакеты были отброшены. Таким образом, существует два типа потери пакетов в TCP, когда реализован быстрый запуск. Первый-это стандартный тайм-аут, который возникает, когда отправитель передает пакет и не получает подтверждения до истечения срока действия RTO. Это называется отказом RTO. Второй называется быстрым сбоем ретрансляции. Эти два условия часто обрабатываются по-разному. Как выбирается размер окна? При выборе размера окна необходимо учитывать ряд различных факторов, но доминирующим фактором часто является получение максимально возможной производительности при одновременном предотвращении перегрузки канала. Фактически, контроль перегрузки TCP, вероятно, является основной формой контроля перегрузки, фактически применяемой в глобальном Интернете. Чтобы понять контроль перегрузки TCP, лучше всего начать с некоторых определений: Окно приема (RWND): объем данных, которые приемник готов принять; это окно обычно устанавливается на основе размера буфера приемника или какого-либо другого ресурса, доступного в приемнике. Это размер окна, объявленный в заголовке TCP. Окно перегрузки (CWND): объем данных, которые передатчик готов отправить до получения подтверждения. Это окно не объявляется в заголовке TCP; получатель не знает размер CWND. Порог медленного запуска (SST): CWND, при котором отправитель считает соединение с максимальной скоростью передачи пакетов без возникновения перегрузки в сети. SST изначально устанавливается реализацией и изменяется в случае потери пакета в зависимости от используемого механизма предотвращения перегрузки. Большинство реализаций TCP начинают сеансы с алгоритма медленного старта. 16 На этом этапе CWND начинается с 1, 2 или 10. Для каждого сегмента, для которого получено подтверждение, размер CWND увеличивается на 1. Учитывая, что такие подтверждения должны занимать ненамного больше времени, чем один rtt, медленный запуск должен привести к удвоению окна каждого rtt. Окно будет продолжать увеличиваться с этой скоростью до тех пор, пока либо пакет не будет потерян (приемник не сможет подтвердить пакет), CWND не достигнет RWND, либо CWND не достигнет SST. Как только любое из этих трех условий происходит, отправитель переходит в режим предотвращения перегрузки. Примечание. Каким образом увеличение CWND на 1 для каждого полученного ACL удваивает окно для каждого rtt? Идея состоит в следующем: когда размер окна равен 1, вы должны получать один сегмент на каждый RTT. Когда вы увеличиваете размер окна до 2, вы должны получать 2 сегмента в каждом rtt; на 4, вы должны получить 4 и т. д. Поскольку получатель подтверждает каждый сегмент отдельно и увеличивает окно на 1 каждый раз, когда он подтверждает сегмент, он должен подтвердить 1 сегмент в первом rtt и установить окно на 2; 2 сегмента во втором rtt, добавляя 2 к окну, чтобы установить окно на 4; 4 сегмента в третьем RTT, добавив 4 к окну, чтобы установить размер окна равным 8 и т. д. В режиме предотвращения перегрузки CWND увеличивается один раз за каждый rtt, что означает, что размер окна перестает расти экспоненциально, а вместо этого увеличивается линейно. CWND будет продолжать расти либо до тех пор, пока получатель не подтвердит получение пакета (TCP предполагает, что это означает, что пакет был потерян или отброшен), либо пока CWND не достигнет RWND. Существует два широко распространенных способа, которыми реализация TCP может реагировать на потерю пакета, называемых Tahoe и Reno. Примечание. На самом деле существует множество различных вариаций Tahoe и Reno; здесь рассматриваются только самые базовые реализации. Также существует множество различных методов реагирования на потерю пакета, когда соединение находится в режиме предотвращения перегрузки. Если реализация использует Tahoe, и потеря пакета обнаружена посредством быстрой повторной передачи, она установит SST на половину текущего CWND, установит CWND на исходное значение и снова начнет медленный запуск. Это означает, что отправитель снова будет передавать 1, 2 или 10 порядковых номеров, увеличивая CWND для каждого подтвержденного порядкового номера. Как и в начале процесса медленного запуска, это приводит к удвоению CWND каждого rtt. Как только CWND достигнет SST, TCP вернется в режим предотвращения перегрузки. Если реализация использует Reno, и потеря пакета обнаружена посредством быстрой повторной передачи, она установит SST и CWND на половину текущего CWND и продолжит работу в режиме предотвращения перегрузки. В любой реализации, если обнаруживается потеря пакета из-за того, что получатель не отправляет подтверждение в пределах RTO, CWND устанавливается на 1, и медленный запуск используется для увеличения скорости соединения. Контроль ошибок TCP предоставляет две формы обнаружения ошибок и управления ими: Сам протокол, наряду с механизмом управления окнами, обеспечивает доставку данных в приложение по порядку и без какой-либо недостающей информации. Контрольная сумма дополнения единицы, включенная в заголовок TCP, считается более слабой, чем Cyclic Redundancy Check (CRC) и многие другие формы обнаружения ошибок. Эта проверка ошибок служит дополнением, а не заменой, коррекции ошибок, обеспечиваемой протоколами ниже и выше в стеке. Если получатель обнаруживает ошибку контрольной суммы, он может использовать любой из описанных здесь механизмов, чтобы запросить отправителя повторно передать данные—просто не подтверждая получение данных, запрашивая повторную передачу через SACK, активно не подтверждая получение данных через быструю повторную передачу или отправляя тройное подтверждение для конкретного сегмента, содержащего поврежденные данные. Номера портов TCP TCP не управляет каким-либо типом мультиплексирования напрямую; однако он предоставляет номера портов, которые приложения и протоколы выше TCP в стеке протоколов могут использовать для мультиплексирования. Хотя эти номера портов передаются в TCP, они обычно непрозрачны для TCP; TCP не придает никакого значения этим номерам портов, кроме использования их для отправки информации правильному приложению на принимающем узле. Номера TCP-портов делятся на два широких класса: хорошо известные и эфемерные. Хорошо известные порты определяются как часть спецификации протокола верхнего уровня; эти порты являются портами «по умолчанию» для этих приложений. Например, службу, поддерживающую Simple Mail Transfer Protocol (SMTP), обычно можно найти, подключившись к узлу с использованием TCP на порт номер 25. Службу, поддерживающую Hypertext Transport Protocol (HTTP), обычно можно найти, подключившись к узлу с использованием TCP на порт 80. Эти службы не обязательно должны использовать эти номера портов; большинство серверов можно настроить на использование какого-либо номера порта, отличного от указанного в спецификации протокола. Например, веб-серверы, не предназначенные для общего (или общедоступного) использования, могут использовать какой-либо другой TCP-порт, например 8080. Эфемерные порты значимы только для локального хоста и обычно назначаются из пула доступных номеров портов на локальном хосте. Эфемерные порты чаще всего используются в качестве исходных портов для TCP-соединений; например, хост, подключающийся к службе через порт 80 на сервере, будет использовать эфемерный порт в качестве исходного TCP-порта. До тех пор, пока любой конкретный хост использует данный эфемерный номер порта только один раз для любого TCP-соединения, каждый сеанс TCP в любой сети может быть однозначно идентифицирован через исходный адрес, исходный порт, адрес назначения, порт назначения и номер протокола, работающего поверх TCP. Настройка сеанса TCP TCP использует трехстороннее рукопожатие для установки сеанса: Клиент отправляет синхронизацию (SYN) на сервер. Этот пакет является обычным TCP-пакетом, но с битом SYN, установленным в заголовке TCP, и указывает, что отправитель запрашивает сеанс для настройки с получателем. Этот пакет обычно отправляется на хорошо известный номер порта или на какой-то заранее установленный номер порта, который, как известно клиенту, будет прослушиваться сервером по определенному IP-адресу. Этот пакет включает в себя начальный порядковый номер клиента. Сервер отправляет подтверждение для SYN, SYN-ACK. Этот пакет подтверждает порядковый номер, предоставленный клиентом, плюс один, и включает начальный порядковый номер сервера в качестве порядкового номера для этого пакета. Клиент отправляет подтверждение (ACK), включающее начальный порядковый номер сервера плюс один. Этот процесс используется для обеспечения двусторонней связи между клиентом и сервером перед началом передачи данных. Первоначальный порядковый номер, выбранный отправителем и получателем, в большинстве реализаций рандомизирован, чтобы не дать стороннему злоумышленнику угадать, какой порядковый номер будет использоваться, и захватить сеанс TCP на начальных этапах его формирования.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59