БУФЕРИЗАЦИЯ ВОСПРОИЗВЕДЕНИЯ В СИСТЕМЕ РАСПРЕДЕЛЕНИЯ КОНТЕНТА, ТРАНСЛИРУЕМОГО В ПРЯМОМ ЭФИРЕ
BUFFERING PLAYBACK IN THE DISTRIBUTION SYSTEM OF CONTENT BROADCAST LIVE

Область техники, к которой относится изобретение
Настоящее изобретение относится к области систем коммуникационных сетей для межузловой передачи данных, в частности, к способу буферизации воспроизведения и повторной передачи в системе распределения контента, транслируемого в прямом эфире через Интернет.
Уровень техники
Как правило, согласно технологии ОТТ (от англ. Over-The-Top, «поверх приставки») и в системах передачи видео по запросу (VoD, от англ. Video-on-Demand), один сервер направляет видеопоток большому количеству клиентов. Это значит, что серверу необходимо хранить некоторую часть данных отдельно для каждого клиента, с тем, чтобы провести повторную передачу в случае потери данных при обмене между сервером и клиентом. Это справедливо, независимо от того, происходит ли распределение и повторная передача с использованием протокола TCP, или с использованием протокола UDP посредством технологии повторной передачи прикладного уровня. В этой связи, возникает проблема, состоящая в том, что буферизация отдельной для каждого клиента части данных для обеспечения повторной передачи зависит от количества обслуживаемых клиентов.
Производительность сервера в значительной мере определяется тем, насколько высокую пропускную способность системы памяти может обеспечить центральное процессорное устройство (ЦПУ) сервера в отношении системы памяти. Система памяти в сервере состоит из первичной памяти и диска, причем первичная память меньше и быстрее. Для достижения более высокой производительности может быть использована память меньших размеров, при этом такая память может быть быстрее, чем первичная память, и расположена ближе к ЦПУ. Такая память называется кэш-памятью. При этом, кэш-память может быть разделена на уровни, а именно, кэш-память первого уровня (небольшая, с очень быстрым доступом), кэшпамять второго уровня (больше и медленнее по сравнению с кэш-памятью первого уровня), и т.д. Каждая кэш-память, как правило, делится на кэш команд (для хранения «программы») и кэш данных (для хранения обработанных данных). Таким образом, если программа и ее соответствующие данные находятся в кэш-памяти, показатели ее исполнения будут быстрее, чем в случае ее реализации, например, на диске.
Для распределения мультимедийного контента согласно технологиям ОТТ и VoD, распределяемые данные соотносятся с каждым клиентским устройством, в которое они отправляются; следовательно, при таком типе распределения расходуется большой объем данных, который, наиболее вероятно, будет сохранен/обработан на более низком уровне в иерархии памяти, то есть, в кэшпамяти второго уровня или в первичной памяти.
Кроме того, при сохранении данных для каждого клиента, необходимо копировать входящие данные, которые подлежат отправке множеству клиентов, для каждого клиента. Многократное копирование данных также замедляет работу сервера.
Направление данных с одной входной интерфейсной платы на выход не означает, что эти данные требуют копирования. Для данных, которые не обрабатываются, предоставляется «прямой доступ к памяти» (DMA, от англ. Direct Memory Access), а информация заголовка, которая проходит обработку, поступает в кэш данных. Таким образом, для реализации данного процесса важно исключить обработку как можно большего количества данных, избежать процедуры копирования, а также ситуации «заполнения» кэш-памяти.
Раскрытие сущности изобретения
Задача настоящего изобретения предпочтительно состоит в том, чтобы предложить по меньшей мере усовершенствованный и надежный способ буферизации воспроизведения и повторной передачи, который позволит обеспечить распределение контента согласно технологии ОТТ и VoD большому количеству клиентских устройств, причем при таком способе будет расходоваться меньше ресурсов по сравнению с известными из уровня техники решениями. Указанная задача решена способом согласно настоящему изобретению, изложенному в пункте 1 формулы изобретения.
Таким образом, согласно первому аспекту настоящего изобретения предложен способ передачи потока данных из сервера по меньшей мере в два клиентских устройства, предусматривающий по меньшей мере для одного исходящего потока данных: передачу потока данных по меньшей мере в два клиентских устройства и буферизацию предварительно заданной части потока данных в совместно используемом буфере. При приеме запросов от клиентов на повторную передачу данных по меньшей мере из двух клиентских устройств, осуществляют повторную передачу запрошенных данных из совместно используемого буфера. Настоящее изобретение применимо для распределения, например, мультимедийных данных, как, например, в обычных технологиях ОТТ и VoD, которые передаются посредством одноадресной передачи. Опционально, мультимедийные данные могут распределяться посредством многоадресной передачи, но по запросам клиентов на повторную передачу. Для сервера, предоставляющего в несколько клиентских устройств один и тот же телеканал, в отличие от известного технического решения с использованием протокола TCP, которое обеспечивает буферизацию для повторной передачи для каждого клиента, в настоящем изобретении исходящий поток данных буферизуется один раз в совместно используемом буфере для потоков данных от множества клиентских устройств, после чего одни и те же буферизованные данные используются для обеспечения повторной передачи для всех клиентских устройств.
Согласно настоящему изобретению, способ дополнительно содержит этап, на котором удаляют буферизованные данные из совместно используемого буфера на основании того, что требуемое время для буферизованных данных уже истекло. На то, истекло ли требуемое время буферизованных данных, может указывать таймер или используемые временные метки, распределенные в потоке данных. Буферизованные данные хранятся в течение предварительно заданного времени (которое служит индикатором того, что данные уже устарели и больше не являются достоверными), в частности, в случае видеоданных истекает время воспроизведения потока данных; или до тех пор, пока, предположительно, все устройства не примут данные, то есть, когда в течение требуемого времени запросов на повторную передачу утерянных пакетов зарегистрировано не будет. В этом случае клиентам не нужно отправлять подтверждение о том, что они уже приняли данные. Вместо этого используется таймер, указывающий на то, что требуемое время для данных истекло. Решение, основанное на применении таймера, существенно снижает исходящий трафик от устройств в сервер, поскольку сообщения отправляются в восходящем направлении только в случае потери данных в нисходящем направлении.
Согласно одному из вариантов осуществления способ, до этапа буферизации, дополнительно предусматривает идентификацию общих данных клиентских устройств в потоке данных. За счет идентификации общих данных клиентов в пакетах данных исходящего потока данных можно идентифицировать по меньшей мере возможные данные, подлежащие буферизации в совместно используемом буфере. Общие данные клиентских устройств будут содержать полезные данные, например мультимедийный контент телеканала, но также они могут включать в себя общие для клиентов данные заголовка, временные метки, субтитры, прикладные данные, такие как «твиты» или интерактивные данные социальных сетей, и т.д.
Согласно одному из вариантов осуществления способа, этап буферизации осуществляют в отношении полезных данных в потоке данных (и/или данных заголовка, которые являются общими для клиентов). В случаях применения технологии прямой коррекции ошибок (FEC, от англ. Forward Error Correction) или любого другого приложения, работающего с полезными данными, будет обработан весь пакет данных и, соответственно, он поступит в кэш-память процессоров. Однако если полезные данные не обрабатываются, полезные данные могут остаться в первичной памяти или в кэш-памяти более низкого уровня, а информация о заголовке, которая требует обработки, будет, следовательно, введена в кэш-память.
Согласно одному из вариантов осуществления способа, информацию о заголовке для клиента обрабатывают только один раз для каждого клиента, причем обработанные для каждого клиента данные помещают в указанный совместно используемый буфер. При отправке пакета, создается заголовок и можно обратиться в совместно используемый буфер полезных данных. Заголовок будет уникальным для каждого адресата, а полезные данные будут одинаковыми. Совместно используемый буфер полезных данных может находиться в кэш-памяти или в первичной памяти. В каждом случае он автоматически перемещается на интерфейсную карту, при выдаче инструкции об отправке. Согласно настоящему изобретению, полезные данные сохраняют один раз и используют для всех клиентов, тем самым, обеспечивая экономию первичной памяти, исключая копирование и возможные неудачные обращения в кэш. Это позволяет серверу обрабатывать значительно большее число сетевых интерфейсов клиентов.
Согласно одному из вариантов осуществления способа, исходящий поток данных транспортируют посредством одноадресной передачи или посредством многоадресной передачи по отдельным клиентским запросам на повторную передачу, что является целесообразным. В совместно используемом буфере данные сохраняются под общим порядковым номером для всех клиентов. Так что когда клиент запрашивает повторную передачу, сервер находит полезные данные, используя указанный порядковый номер. Таким образом, способ с одним совместно используемым буфером для нескольких клиентских устройств может быть использован как для одноадресных приложений, так и для многоадресных приложений.
Согласно одному из вариантов осуществления способа, в случае когда способ относится к многоадресному распределению видеоданных, то есть, распределению видеоданных с использованием многоадресной передачи, этап повторной передачи осуществляется в виде одноадресной или многоадресной передачи. Для многоадресного распределения видеоданных, может быть предусмотрена возможность отправки повторных передач в виде одноадресной или многоадресной передачи. Данный выбор может зависеть от многих аспектов.
Согласно одному из вариантов осуществления способа, одноадресную или многоадресную передачу выбирают в зависимости от того, имеется ли сетевая установка или подсеть (например, установка стадиона) с собственной многоадресной передачей уровня 1 или уровня 2 (L1/L2). Повторная передача пакета имеет одинаковую стоимость и если она является одноадресной, и если она является многоадресной; а это значит, что в случае, если данные запрашиваются более одного раза, многоадресная передача является предпочтительной.
Согласно одному из вариантов осуществления способа, если при многоадресной передаче используется многоадресная передача L1/L2 в по меньшей мере одной подсети, но не между подсетями, то выбирают многоадресную передачу. Использование многоадресной передачи может оказаться полезным в случае, если запросы на повторную передачу от клиентов имеются в одной и той же подсети; но если подсети разные, то нет.
Согласно одному из вариантов осуществления способа, если от нескольких клиентских устройств поступает предварительно заданное пороговое количество запросов, то выбирают многоадресную передачу. При выдаче большого количества запросов, для повторной передачи целесообразно выбирать многоадресную передачу.
Согласно одному из вариантов осуществления способа полезные данные буферизуют в некоторой выделенной памяти, а не в кэш-памяти или в первичной памяти сервера. Это дает преимущество в случае применения приложения, работающего с полезными данными, например, FEC, которое по аналогии с осуществлением вычислений контрольных сумм в пакетах, выполняет операции в отношении всех полезных данных и сетевой интерфейсной карты.
Согласно одному из вариантов осуществления, способ дополнительно содержит этап, на котором создают пакеты, содержащие запрошенные данные из совместно используемого буфера и информацию для каждого (отдельного) клиента, выбранную из списка уникальных заголовочных данных адресата.
Согласно одному из вариантов осуществления способа, удаление буферизованных данных осуществляют на основании подтверждений, принятых от всех клиентских устройств.
Согласно второму аспекту в настоящем изобретении предложен узел в сети связи, содержащий средства для осуществления предлагаемого в настоящем изобретении способа. Он может дополнительно содержать средства для передачи исходящего потока данных, например, передатчик.
В коммуникационной системе, предназначенной для обеспечения межузловой связи, узел содержит память для хранения машиночитаемых инструкций, и процессор, выполненный с возможностью исполнения указанных машиночитаемых инструкций для осуществления предлагаемого в настоящем изобретении способа. Кроме того, согласно третьему аспекту в настоящем изобретении предложен энергонезависимый машиночитаемый носитель данных, в котором хранятся машиночитаемые инструкции, исполняемые процессором и обеспечивающие осуществление предлагаемого способа посредством процессора.
Различные варианты предлагаемого способа предпочтительно реализуются в системе распределения, провайдере мультимедийного контента или коммуникационной системе с помощью модулей программного обеспечения для подачи сигналов и обеспечения передачи данных в форме программного обеспечения, программируемых пользователем вентильных матриц (FPGA, от англ. Field-Programmable Gate Array), специализированных интегральных схем (ASIC, от англ. Application Specific Integrated Circuit) или другого подходящего устройства или программируемого блока, выполненного с возможностью осуществления способа согласно настоящему изобретению и реализации в службе облачных вычислений или виртуализированной машине (не показана на чертежах). Модуль программного обеспечения и/или модуль передачи данных может быть интегрирован в узел, содержащий подходящие средства обработки и средства памяти, или может быть реализован во внешнем устройстве, содержащем подходящие средства обработки и средства памяти, и предназначен для взаимного соединения с существующим узлом. Узел предпочтительно расположен у граничного узла, например, с возможностью обмена данными с потоковым пограничным сервером, или интегрирован в или образует потоковый пограничный сервер.
Другие задачи, признаки и преимущества настоящего изобретения станут очевидными при изучении нижеследующего подробного описания, чертежей и прилагаемой формулы изобретения. Специалисту в данной области техники должно быть понятно, что различные признаки настоящего изобретения могут быть объединены для создания вариантов осуществления, отличных от тех, что раскрыты в приведенном ниже описании.
Краткое описание чертежей
Изложенное выше описание станет более понятным при прочтении нижеследующего иллюстративного и неограничивающего подробного описания предпочтительных вариантов осуществления настоящего изобретения, со ссылкой на прилагаемые чертежи, на которых одинаковые номера позиций используются для обозначения схожих элементов, причем на чертежах изображено следующее.
На фиг. 1 представлена структурная схема, иллюстрирующая систему клиент-серверного взаимодействия, в которой использованы различные варианты осуществления способа и узла согласно настоящему изобретению.
На фиг. 2а - 2с представлены блок-схемы, иллюстрирующие различные варианты осуществления способа согласно настоящему изобретению.
На фиг. 3-6 показаны структурные схемы, иллюстрирующие систему клиент-серверного взаимодействия, в которой использованы различные варианты осуществления способа согласно настоящему изобретению.
Все чертежи являются схематичными, и не обязательно приведены в масштабе, и, в общем, изображают только те части, которые необходимы для объяснения принципов настоящего изобретения, при этом другие части могут быть исключены или их наличие просто предполагается.
Осуществление изобретения
На фиг. 1 представлена структурная схема, схематично иллюстрирующая систему 100 сети связи, например, IP типа для распределения мультимедийного контента, транслируемого в прямом эфире, в отношении которой будут раскрыты различные аспекты настоящего изобретения. Сервер 101 (который может представлять собой потоковый пограничный сервер, или сервер воспроизведения, принимающий данные из входного сервера (не показан) системы распределения (не показана)) предназначен для обеспечения мультимедийного контента в один или несколько приемников или клиентских устройств 151, 152, 153. Мультимедийный контент отправляется в виде потока данных (DS, от англ. Data Stream) с использованием одноадресной или многоадресной передачи через соответствующие каналы связи по сети 200; как правило, он предоставляется в виде потока смежных пакетов, которые могут иметь различный размер и могут представлять собой различные типы пакетов с заданной частью заголовка или конца, идентифицирующей такой тип.
1
2
3
x
В распределительной системе сети передача данных в потоке данных (DS) из входного устройства в клиентские устройства 151, 152, 153 может предусматривать передачу, например, видео-контента или другого мультимедийного контента в форме пакетов видеоданных (многоадресных пакетов видеоданных), и, например, пакетов аудиоданных. Указанный поток данных (DS) принимается потоковым пограничным сервером (сервером воспроизведения), в данном варианте осуществления представляющим собой сервер 101, из которого несколько клиентских устройств 151, 152, 153, находящихся в различных положениях просмотра, запрашивают мультимедийный контент для отображения. Мультимедийный контент распределяется в клиентские устройства 151, 152, 153 отдельными потоками данных DS, DS и DS (показанными на фиг. 1 в виде DS) через соответствующий канал связи, который может быть предоставлен через некоторую вычислительную сеть (например, LAN, WAN, Интернет), беспроводную сеть (например, сотовую сеть передачи данных), или комбинацию сетей этих типов (которые проиллюстрированы на фиг. 1 в виде вторичной сети 200). Каждое клиентское устройство 151, 152, 153 содержит средства для обработки принятого мультимедийного контента и для выбора мультимедийного контента, подлежащего воспроизведению. Первичная распределительная сеть и вторичная сеть 200 не обязательно должны представлять собой выделенные сети; они могут совместно использоваться другими службами.
x
x
Клиентские устройства 151, 152, 153, соединенные с сервером для запрашивания мультимедийного контента, транслируемого в прямом эфире, могут, например, представлять собой разные версии смартфонов, IP соединяемых телевизоров или компьютеров различных производителей и, следовательно, могут иметь различную производительность с учетом скорости/частоты следования тактовых импульсов, допусков и т.д. Таким образом, необходимо синхронизировать клиентские устройства для обеспечения одновременного воспроизведения, то есть, для обеспечения синхронизированного по времени воспроизведения, пакетов их соответствующих экземпляров потоков данных DS. Поток данных для передачи DS представлен в виде последовательности пакетов данных, составляющей непрерывный поток информации, причем каждый пакет данных содержит набор полезных данных, характерный для некоторого сегмента потока информации, соответствующего ей.
Для обработки потерянных пакетов и ошибок других типов, системы связи и распределения используют различные технологии, позволяющие обрабатывать ошибочно принятую информацию. Клиентские устройства могут исправлять ошибочно принятую информацию, среди прочего, посредством технологий повторной передачи, которые обеспечивают возможность повторной передачи ошибочно принятой информации в приемник, то есть клиентское устройство, например, с использованием автоматического запроса повторной передачи (ARQ) или технологий прямой коррекции ошибок (FEC). Технологии FEC включает в себя, например, сверточное или блочное кодирование данных до модуляции. Кодирование FEC предусматривает представление конкретного количества битов данных или блоков данных с использованием конкретного (большего) количества битов кода или блоков кода, что позволяет увеличить избыточность, которая обеспечивает возможность коррекции конкретных ошибок.
Если во время передачи данных имеются потерянные пакеты, любой клиент (или клиенты), который имеет дело с отсутствующими пакетами, может запросить повторную передачу (RT) потерянных пакетов из сервера 101. В дополнение к повторной передаче, при наличии информации FEC, клиенты могут либо попытаться восстановить потерянные пакеты за счет коррекции FEC и последующей повторной передачи, или сначала за счет повторной передачи и далее посредством коррекции FEC в заново переданных данных.
Согласно одному из вариантов осуществления настоящего изобретения, система распределения содержит устройство управления для осуществления повторной передачи мультимедийного контента в клиентские устройства, которое может быть реализовано в данном варианте в виде отдельного управляющего сервера 102, либо расположенного отдельно и с возможностью обмена данными с (потоковым) сервером 101, либо интегрированного в сервер 101, как показано на фиг. 1. В случае интеграции в сервер 101, устройство 102 управления предпочтительно представляет собой модуль программного обеспечения и/или модуль передачи данных. Сервер 101 (или устройство управления) дополнительно содержит совместно используемый буфер 102, который может являться частью ресурсов памяти сервера, или может представлять собой выделенное запоминающее устройство.
x
x
Далее со ссылкой на фиг. 2а - 2с будут раскрыты различные варианты осуществления способа передачи потока данных от сервера по меньшей мере в два клиентских устройства, который предусматривает обеспечение восстановления потерянных пакетов для передачи потока данных DS в пакетной сети согласно настоящему изобретению, а также будет описан пример системы распределения, раскрытой выше со ссылкой на фиг. 1. Для наглядности поток данных для передачи DS представлен в виде последовательности пакетов данных непрерывного потока данных, причем каждый пакет данных содержит некоторый набор полезной информации, соответствующий одному или нескольким конкретным типам данных.
На фиг. 2а, на этапе S205, осуществляют буферизацию в совместно используемом буфере 102 предварительно заданной части общих для клиентов данных (CSD, от англ. Client Shared Data) потока данных DS, подлежащего передаче из сервера 101 во множество клиентских устройств 151, 152, 153, соединенных с сервером. В одном из примеров, в совместно используемый буфер помещают конкретное количество полезных данных в потоке данных. Поток данных DS передается в клиентские устройства (этап S210). Клиентские устройства, которые сталкиваются при распределении с потерей данных, могут отправить запросы на повторную передачу потерянных пакетов (RRQ), которые принимаются сервером (на этапе S220). И наконец, запрошенные пакеты извлекаются из совместно используемого буфера 102 и повторно передаются (RT) в клиентские устройства (на этапе S230).
Согласно одному из вариантов осуществления, см. фиг. 2b, способ дополнительно предусматривает исключение буферизованных данных из совместно используемого буфера на основании принятия от всех клиентских устройств подтверждений о том, что конкретные буферизованные данные были приняты клиентским устройством, или на основании таймера, указывающего на то, что требуемое время буферизованных данных истекло (этап S240), благодаря чему исключается необходимость отправки подтверждений, которая расходует пропускную способность линии связи в восходящем направлении.
Согласно вариантам осуществления способа, проиллюстрированным на фиг. 2с, перед передачей потока данных DS в клиентские устройства, может быть создан (на этапе S202) список уникальных данных заголовка (UHD, от англ. Unique Header Data) для каждого клиентского устройства, который помещается в совместно используемый буфер или в другую память сервера 101. Предпочтительно, UHD для каждого клиентского устройства создаются при подключении нового устройства к серверу. Как упомянуто ранее, сервер 101 может представлять собой потоковый пограничный сервер, или сервер воспроизведения, принимающий данные из входного сервера (не показан) системы распределения. После приема (на этапе S203) сервером 101 входящего потока данных DS, содержащего общие для клиентов данные (CSD), осуществляют анализ принятого потока данных и идентифицируют (предварительно заданные) общие для клиентов данные (CSD) (на этапе S204). Общие для клиентов данные (CSD), например, полезные данные, содержащие мультимедийный контент для отображения в клиентских устройствах, далее помещают в совместно используемый буфер (на этапе S205). Опционально, на этапе S204 осуществляют идентификацию и создают список общих данных заголовка (SHD, от англ. Shared Header Data) для всех клиентов, причем SHD могут быть помещены в совместно используемый буфер (этап S205). Подлежащие передаче пакеты в потоке данных DS создаются на основании соответствующих уникальных данных заголовка (UHD) и общих для клиентов данных (CSD), извлеченных из совместно используемого буфера (этапы S207 и S209) и переданных в клиентские устройства (этап S210). После принятия, на этапе S220, сервером запросов на повторную передачу (RRQ), из совместно используемого буфера и списка UHD извлекают запрошенные общие для клиентов данные и UHD, соответствующие клиентскому устройству, направившему запрос RRQ (этап S207), на основании которых далее создают пакеты данных для повторной передачи потерянных данных (этап S209, с их последующей повторной передачей в клиентские устройства на этапе S230).
Этапы способа согласно настоящему изобретению, раскрытые на фиг. 2а - 2с, могут быть объединены, или условно исключены и не обязательно представлены в требуемом порядке, как схематично показано посредством прямоугольников в блок-схемах, нарисованных штриховыми линиями, и стрелок на чертежах.
Исходящий поток данных (этап S220) может быть передан с использованием одноадресной и многоадресной передачи по запросам клиентов на повторную передачу. При использовании многоадресного распределения исходящего потока данных DS (этап S220), например, видеоданных, этап повторной передачи (этап S230) может быть осуществлен в виде одноадресной или многоадресной передачи.
Как показано посредством изображенного штриховой линией прямоугольника S229 в блок-схеме с фиг. 2с, согласно одному из вариантов осуществления способа, для выполнения этапа повторной передачи можно выбрать или одноадресную передачу, или многоадресную передачу на этапе S229. Для принятия решения о том, какой вид передачи выбрать: одноадресную передачу или многоадресную передачу, могут быть использованы различные параметры. В первом сценарии, одноадресную или многоадресную передачу выбирают на основании того, имеется ли установка стадиона с собственной многоадресной передачей уровня 1 или уровня 2, «L1/L2». Повторная передача пакета имеет одинаковую стоимость, и если она является одноадресной, и если она является многоадресной; а это значит, что в случае, если данные запрашиваются более одного раза, многоадресная передача является предпочтительной. Если при многоадресной передаче используется многоадресная передача L1/L2 по меньшей мере в одной области, но не между областями, то выбирают многоадресную передачу. Использование многоадресной передачи может оказаться полезным в случае, если запросы имеются в одной и той же области; но если области разные, то нет. Во втором сценарии, решение об одноадресной или многоадресной передаче зависит от того, было ли получено предварительно заданное количество запросов от множества клиентских устройств; и если это так, то в качестве предпочтительного варианта выбирают многоадресную передачу.
Как показано на фиг. 3, сервер 101 (или опционально выделенный управляющий сервер 102), как раскрыто ранее в настоящем описании, дополнительно содержит сетевую интерфейсную карту (NIC, от англ. Network Interface card) 105, предназначенную для обмена данными с некоторым количеством клиентских устройств, 151-153. Согласно предлагаемому в настоящем изобретении способу, общие для клиентов данные (CSD), например, полезные данные Р1 - Р5, содержащие мультимедийный контент, отображаемый в клиентских устройствах 151-153, помещают в совместно используемый буфер 501 в сервере 101 (устройстве 102 управления). Полезные данные Р1 - Р5 в совместно используемом буфере сохраняют под общим порядковым номером для всех клиентских устройств. После того как клиент делает запрос на повторную передачу (RRQ), сервер определяет местоположение полезных данных, используя указанный порядковый номер. Таким образом, способ с одним совместно используемым буфером для нескольких клиентских устройств может быть использован как для одноадресной, так и многоадресной передачи. Кроме того, список уникальных данных заголовка (UHD) 500 (на чертежах показанных в виде Н151, Н152 и Н153) буферизуют/сохраняют на сервере 101 (или альтернативно на управляющем сервере 102). Когда поток данных (DS) распределяется между клиентскими устройствами 151-153, данные CSD и UHD извлекаются из совместно используемого буфера и из списка UHD в NIC 105, как показано с помощью штриховых стрелок на фиг. 3. В NIC, создаются пакеты 10а и 10b, которые затем передаются в соответствующие клиентские устройства 151 и 152. Каждый из пакетов 10а и 10b имеет одинаковые полезные данные (Р1 в проиллюстрированном примере), но свои собственные уникальные данные заголовка Н151 и Н152, соответственно.
Когда клиент запрашивает повторную передачу, то есть, когда, как показано на фиг. 4, клиентское устройство 151 отправляет RRQ для потерянных данных Р3, RRQ:P3, в NIC 105 сервера 101/102, данные UHD Н151 извлекаются из списка уникальных данных заголовка 500, а Р3-из совместно используемого буфера 501, и происходит формирование пакета 10 с, содержащего данные UHD Н151 и CSD Р3, после чего пакет повторно передается в клиентское устройство либо посредством одноадресной, либо посредством многоадресной передачи.
Если буферизованные данные CDS в совместно используемом буфере 501 перестают быть полезными, то согласно одному из вариантов осуществления способа, проиллюстрированному на фиг. 5 и 6, данные CDS сбрасываются. Как показано на фиг. 5, после успешного приема полезных данных Р1, из каждого клиентского устройства отправляются сигналы АСК1, АСК2, АСК3 подтверждения, изображенные в виде штриховых стрелок. После того как все клиентские устройства успешно получат конкретные данные CDS, их можно удалить из совместно используемого буфера 501, что проиллюстрировано на чертеже зачеркиванием полезных данных Р1. Данную процедуру предпочтительно объединяют с таймером или другими временными характеристиками, например, как раскрыто ниже со ссылкой на фиг. 6, для принятия решения о том, являются ли данные по-прежнему полезными или они устарели и, соответственно, должны быть удалены из совместно используемого буфера 501.
s
cl
cl
s
В еще одном варианте осуществления, проиллюстрированном на фиг. 6, неполезные данные CSD удаляются на основании текущего времени/временной метки t на локальных часах t сервера 101 или таймера, указывающего на то, что требуемое время для буферизованных данных истекло. Буферизованные данные хранятся в течение предварительно заданного времени до тех пор, пока данные не станут устаревшими и больше не будут считаться достоверными, в частности, в случае видеоданных, до тех пор, пока не истечет время отображения контента потока данных. В проиллюстрированном примере, время на локальных часах t=14:01:10, и любые полезные данные с временной меткой t для отображения мультимедийного контента являются старыми, и могут быть удалены из совместно используемого буфера 501.
Хотя в настоящем описании со ссылкой на прилагаемые чертежи раскрыты иллюстративные варианты осуществления настоящего изобретения, следует понимать, что настоящее изобретение не ограничивается этими конкретными вариантами осуществления, причем специалист в данной области техники может внести в него различные изменения и модификации, не выходящие за объем и сущность настоящего изобретения.