Способ и система для передачи потоковых мультимедийных данных с нулевым копированием

Номер патента: 17147

Опубликовано: 30.06.2013

Авторы: ЧЕН, Цзян, ЧЖУ, Хонцзюн, ВАН, Вейкьян

Скачать PDF файл.

Текст

Смотреть все

(51) МПК НАЦИОНАЛЬНЫЙ ЦЕНТР ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ СПОСОБ И СИСТЕМА ДЛЯ ПЕРЕДАЧИ ПОТОКОВЫХ МУЛЬТИМЕДИЙНЫХ ДАННЫХ С НУЛЕВЫМ КОПИРОВАНИЕМ(57) 1. Способ передачи потоковых мультимедийных данных с нулевым копированием,основанный на стеке сетевых протоколов , в котором) принимают сервером потоковых мультимедийных данных запрос данных от оборудования пользователя, с указанного сервера выполняют системный вызов передачи потоковых мультимедийных данных, считывают потоковые мультимедийные данные с дискового пространства и записывают указанные данные в буфер данных пользователя) упаковывают потоковые мультимедийные данные, записанные в буфер данных пользователя, в пакеты транспортного протокола реального времени, которые затем в форме пакетов потоковых мультимедийных данных, заголовок и нагрузка каждого из которых отделены друг от друга, передают на буфер передачи сетевого адаптера с использованием функций сборки/распределения указанного адаптера и прямого доступа к его памяти с последующей передачей указанных пакетов потоковых мультимедийных данных в сеть. 17147 1 2013.06.30 2. Способ по п. 1, отличающийся тем, что для каждого подлежащего передаче пакета транспортного протокола реального времени выделяют структуру буфера ядра в пространстве ядра, содержащую временно выделенный буфер ядра, содержащий заголовок указанного пакета транспортного протокола реального времени, и временно отображенный буфер пользователя, содержащий нагрузку указанного пакета транспортного протокола реального времени, указанные функции сетевого адаптера используют для отображения временно выделенного буфера ядра и временно отображенного буфера пользователя из указанной структуры буфера ядра на буфер передачи сетевого адаптера, а для передачи пакетов потоковых мультимедийных данных в сеть вызывают функцию передачи драйвера сетевого адаптера. 3. Способ по п. 2, отличающийся тем, что сервером потоковых мультимедийных данных принимают запросы данных от оборудования более чем одного пользователя и выполняют с указанного сервера системный вызов передачи потоковых мультимедийных данных, которые затем передают в форме группы пакетов потоковых мультимедийных данных, содержащей для каждого пользователя, пославшего запрос, отдельный пакет потоковых мультимедийных данных. 4. Способ по п. 2, отличающийся тем, что указанный стек сетевых протоколов обеспечивают интерфейсами программирования сокетов, содержащими, в частности, такие системные вызовы, как , используемый для создания сокета, и , используемый для закрытия сокета, а также вызов , используемый для осуществления передачи потоковых мультимедийных данных с нулевым копированием. 5. Система для передачи потоковых мультимедийных данных с нулевым копированием, содержащая сервер потоковых мультимедийных данных, сконфигурированный на базе стека сетевых протоколови выполненный с возможностью упаковки потоковых мультимедийных данных, подлежащих передаче, в пакеты транспортного протокола реального времени выделения для каждого из указанных пакетов в пространстве ядра между аппаратным устройством указанного сервера и пользовательским процессом временно выделенного буфера ядра для размещения заголовка пакета и временно отображенного буфера пользователя для размещения нагрузки пакета последующей передачи данных в форме пакетов потоковых мультимедийных данных,заголовок и нагрузка каждого из которых отделены друг от друга, в сеть посредством сетевого адаптера с поддержкой функций сборки/распределения и прямого доступа к его памяти,при этом указанный стек сетевых протоколов сформирован указанным сервером над программой драйвера сетевого адаптера в пространстве ядра и обеспечен интерфейсами программирования сокетов, содержащими, в частности, такие системные вызовы, как, используемый для создания сокета, и , используемый для закрытия сокета,а также вызов , используемый для осуществления передачи потоковых мультимедийных данных с нулевым копированием. 6. Система по п. 5, отличающаяся тем, что указанный сервер потоковых мультимедийных данных выполнен с возможностью применения технологии групповой передачи данных для отправки множества пакетов при одном вызове . Настоящее изобретение относится к способу и системе для сети связи в области компьютерных приложений, в частности к способу и системе для осуществления передачи потоковых мультимедийных данных с нулевым копированием на базе стека сетевых протоколов . На существующем уровне техники в приложениях сервера потоковых мультимедийных данных на базе операционной системынеобходимо передавать большой объем 2 17147 1 2013.06.30 потоковых мультимедийных данных с диска в сеть. Когда потоковые мультимедийные данные передаются с диска в сеть, они должны передаваться несколько раз в различных системных пространствах. Процесс передачи в основном включает три части (1) считывание потоковых мультимедийных данных с дискового пространства и их запись в буфер данных пользователя (2) упаковку потоковых мультимедийных данных, сохраненных в буфере данных пользователя в пакеты(-, транспортный протокол реального времени) и сохранение их в буфере передачи пользователя (3) передачу пакетов , сохраненных в буфере передачи пользователя, через сетевой сокет(, протокол передачи дейтаграмм пользователя). В операционной системепользовательский процесс может считывать данные с диска через прямой системный вызов интерфейса ввода/вывода /, и системный вызов может записывать данные с диска прямо в буфер пользователя посредством механизма(, прямой доступ к памяти) при использовании интерфейса системного вызова, связанного с сетевым сокетом , можно рассылать пакеты ,причем системный вызов копирует пакетыиз пространства пользователя в пространство ядра и соответственно производит инкапсуляцию этих пакетов, затем передает эти пакеты в буфер передачи сетевого адаптера (сетевой карты) посредством механизма ,и, наконец, сетевой адаптер рассылает пакеты . В способе существующего уровня техники пользовательский процесс может считывать потоковые данные с диска без копирования ( , с нулевым копированием),но копия данных требуется, когда потоковые мультимедийные данные упаковывают в пакеты , кроме того, данные должны быть скопированы из пространства пользователя в пространство ядра при рассылке пакетов . Помимо этого, каждый раз, когда пользовательский процесс посылает пакет, требуется один раз использовать системный вызов, и каждый раз системный вызов должен осуществлять переключение от состояния пользователя на состояние ядра, а также после возвращения системного вызова он осуществляет переключение от состояния ядра на состояние пользователя. В условиях, когда сервер потоковых мультимедийных данных сильно загружен, происходит копирование больших объемов данных и переключение контекста, что потребляет значительные ресурсы процессора системы и снижает обрабатывающие способности системы. Непроизводительные издержки при передаче пакетов потоковых мультимедийных данных главным образом возникают при формировании данных, копировании данных и передаче данных на различных уровнях, таких как пользовательский процесс, операционная система и управление сетевым адаптером. Поэтому очень важно эффективно снизить количество операций копирования данных и системных вызовов, снизить загрузку на процессор и увеличить обрабатывающую способность системы для улучшения производительности сервера потоковых мультимедийных данных. Следовательно, требуется развить и усовершенствовать существующий уровень техники. Целью настоящего изобретения является создание способа и системы для осуществления передачи потоковых мультимедийных данных с нулевым копированием, причем настоящие способ и система основаны на стеке сетевых протоколов , притом, что оригинальный стек сетевых протоколов системыне затронут, настоящие способ и система максимально возможно снижают загрузку процессора, возникающую из-за копирования данных и системных вызовов, что улучшает обрабатывающую способность системы. Для достижения указанной выше цели техническое решение настоящего изобретения включает 17147 1 2013.06.30 способ осуществления передачи потоковых мультимедийных данных с нулевым копированием, причем данный способ основан на стеке сетевых протоколов , при этом данный способ включает следующие шаги) при приеме сервером потоковых мультимедийных данных запроса данных от оборудования пользователя, выполнение сервером потоковых мультимедийных данных системного вызова передачи данных, считывание потоковых мультимедийных данных с дискового пространства и их запись в буфер данных пользователя) упаковку потоковых мультимедийных данных, сохраненных в буфере данных пользователя, в пакеты транспортного протокола реального времени и передачу этих пакетов данных транспортного протокола реального времени в форме пакетов потоковых мультимедийных данных, в которых заголовок и нагрузка разделены. Помимо этого, шагнастоящего способа также включает 1) выделение структуры буфера ядра в пространстве ядра для каждого подлежащего передаче пакета транспортного протокола реального времени, при этом данная структура включает две части одной частью является временно выделенный буфер ядра, включающий заголовок упомянутого пакета транспортного протокола реального времени а другой частью является временно отображенный буфер пользователя, включающий нагрузку упомянутого пакета транспортного протокола реального времени 2) использование функции сборки/распределения и функции прямого доступа к памяти сетевого адаптера, отображение буферов двух частей структуры буфера ядра на буфер передачи сетевого адаптера и вызов функции передачи драйвера сетевого адаптера для осуществления передачи потоковых мультимедийных данных с нулевым копированием. Помимо этого, когда службе потоковых мультимедийных данных требуется обработать запросы от множества пользователей, передача одного пакета потоковых мультимедийных данных каждому пользователю требует одного системного вызова. Помимо этого, в настоящем способе стек сетевых протоколов обеспечивает следующие интерфейсы программирования сокетов , который используется для создания сокета, , который используется для закрытия сокета, и , который используется для осуществления передачи потоковых мультимедийных данных с нулевым копированием. Система для осуществления передачи потоковых мультимедийных данных с нулевым копированием включает сервер потовых мультимедийных данных, при этом сервер потовых мультимедийных данных конфигурируют для осуществления передачи потоковых мультимедийных данных с нулевым копированием на базе стека сетевых протоколов. Указанный сервер потовых мультимедийных данных конфигурирует пространство ядра между аппаратным устройством и пользовательским процессом, а также конфигурирует стек сетевых протоколов над программой драйвера сетевого адаптера в пространстве ядра при этом пространство ядра выделяет для пакетов транспортного протокола реального времени, сформированных посредством упаковки потоковых мультимедийных данных, подлежащих передаче, следующие буферы временно выделенный буфер ядра для помещения заголовка пакетов транспортного протокола реального времени,временно отображенный буфер пользователя для помещения нагрузки пакетов транспортного протокола реального времени. Стек сетевых протоколов обеспечивает интерфейсы программирования сокетов для пользовательского процесса, при этом интерфейсы программирования сокетов включают, который используется для создания сокета, , который используется для закрытия сокета, и , который используется для осуществления передачи потоковых мультимедийных данных с нулевым копированием при этом указанный стек сетевых протоколов используется для передачи пакетов транспортного протокола реального вре 4 17147 1 2013.06.30 мени в форме пакетов потоковых мультимедийных данных, в которых заголовок и нагрузка разделены. Помимо этого, в данной системе сервер потоковых мультимедийных данных применяет технологию групповойпередачи для отправки множества пакетов в одном системном вызове . По сравнению со стеком сетевых протоколов ядрана существующем уровне техники, способ и система для осуществления передачи потоковых мультимедийных данных с нулевым копированием, раскрываемые в настоящем изобретении, обеспечивают передачу потоковых мультимедийных данных с нулевым копированием посредством использования функцийи(/, распределение/сборка) сетевого адаптера и обеспечивают передачу пакетов потоковых мультимедийных данных, в которых заголовок и нагрузка разделены, что сокращает одну операцию копирования данных в процессе упаковки потоковых мультимедийных данных в пакеты . На фиг. 1 представлен процесс использования стека сетевых протоколов, реализованный в настоящем изобретении, для осуществления передачи потоковых мультимедийных данных с нулевым копированием. На фиг. 2 представлена структура системы в соответствии с настоящим изобретением. Далее предпочтительные варианты осуществления настоящего изобретения описываются более подробно со ссылками на чертежи. В способе осуществления передачи потоковых мультимедийных данных с нулевым копированием на базе стека сетевых протоколовв соответствии с настоящим изобретением используется оригинальный стек сетевых протоколов , который реализуется посредством механизма модуля ядра, при этом загрузка и выгрузка модуля ядра не влияет на оригинальный стек сетевых протоколов ядра . Система для осуществления передачи потоковых мультимедийных данных с нулевым копированием в настоящем изобретении включает сервер потоковых мультимедийных данных, как показано на фиг. 2, при этом сервер потоковых мультимедийных данных конфигурируется сетевым адаптером для осуществления связи с оборудованием пользователя. Указанный сетевой адаптер (сетевая карта) поддерживает функции(прямой доступ к памяти) и(распределение/сборка). В способе и системе, в соответствии с настоящим изобретением, аппаратные устройства указанного сервера потоковых мультимедийных данных включают сетевой адаптер и диск, как показано на фиг. 1, при этом пространство ядрарасполагается между аппаратным устройством и пользовательским процессом, стек сетевых протоколов конфигурируется над программой драйвера сетевого адаптера в пространстве ядра и указанный стек сетевых протоколов обеспечивает интерфейсы программирования сокетов для пользовательского процесса, причем указанные интерфейсы программирования сокетов включают в основном системные вызовы, такие как ,и , гдеиспользуется для создания сокета,используется для закрытия сокета ииспользуется для осуществления передачи потоковых мультимедийных данных с нулевым копированием. Аппаратная среда способа и системы в соответствии с настоящим изобретением требует наличия в сетевом адаптере функцийи , а программная среда представляет собой ядро , имеющее соответствующие сетевые функции. Для реализации функции передачи потоковых мультимедийных данных с нулевым копированием способ и система настоящего изобретения создают стек сетевых протоколов , основанный на сокете типана базе оригинального ядра . Указанный стек протоколов обеспечивает для пользовательского процесса интерфейсы программирования сокетов типа , которые включают системные вызовы, такие как ,и. При этом системный вызовиспользуется для создания сокета, системный вызовиспользуется для закрытия сокета и системный вызовис 5 17147 1 2013.06.30 пользуется для передачи потоковых мультимедийных данных в форме инкапсуляции в пакетыс нулевым копированием. Стандартная семантика вызована существующем уровне техники не способна реализовать функцию настоящего изобретения, поэтомутребуется определить заново. Далее описывается и поясняетсяв соответствии со способом и системой настоящего изобретения( ,,). Функция передача потоковых мультимедийных данных с нулевым копированием реализуется с помощью сокета. Входные и выходные параметры, сокет типа , создаваемый посредством системного вызова временно не используетсявременно не используетсявходной параметр, указатель, который указывает массив из. Каждая структуравключает размер и адрес буфера данных, подлежащих передачевходной параметр для хранения размера массива из, на который указываетпараметр ввода-вывода для хранения управляющей информации,включающей -адрес, -порт и тип нагрузкикаждого пакета потоковых мультимедийных данных во время ввода а также для возвращения индекса и кода ошибки для пакетов, переданных с ошибкамивходной параметр, используемый для хранения общей длины сообщениявременно не используетсявременно не используется. Возвращаемое значение если пакеты были переданы с ошибками, возвращается -1 и код ошибки . Если все или некоторые пакеты переданы успешно, возвращается число успешно переданных пакетов, индекс пакетов, которые переданы с ошибками, и соответствующий код ошибки через выходной параметр. Информация, из которой состоят пакеты , хранится в параметре , а параметрхранит информацию о нагрузке пакетов , подлежащих передаче, включающую адрес и размер буфера данных пользователя, в качестве данныхпакетовхранит информацию о заголовке пакетов , подлежащих передаче, включающую -адрес, номер порта и тип нагрузки , используемые для формирования заголовка пакетов . Как показано на фиг. 1, в соответствии со способом настоящего изобретения структура буфера ядравыделяется для каждого пакета , подлежащего передаче, в пространстве ядра во время системного вызова , причем данные этой структуры состоят их двух частей одной частью является временно выделенный буфер ядра, включающий заголовокпакета потоковых мультимедийных данных, который генерируется в соответствии с информацией о заголовке, включаемой ввторой частью является временно отображенный буфер пользователя, включающий нагрузку пакета ,которая получается в соответствии с информацией о нагрузке, включенной в . Посредством функций сетевого адаптераиэти два буфера отображаются на буфер передачи сетевого адаптера, и вызывается функция передачи драйвера сетевого адаптера для осуществления передачи потоковых мультимедийных данных с нулевым копировани 6 17147 1 2013.06.30 ем. Упомянутый выше процесс отображенияизвестен в данной области техники и не рассматривается в данном описании. Когда сервер потоковых мультимедийных данных в соответствии со способом и системой настоящего изобретения обрабатывает запрос одного пользователя, передача потоковых мультимедийных данных с нулевым копированием может быть реализована через сокети один системный вызов . Когда серверу потоковых мультимедийных данных требуется обработать множество пользовательских запросов, помимо использования передачи потоковых мультимедийных данных с нулевым копированием, аналогично случаю с запросом одного пользователя,производительность системы может быть еще больше оптимизирована путем уменьшения числа системных вызовов это в основном означает переопределение параметра , используемого для системного вызова , его элементуказывает группу буферов пакетов, а элементпоказывает число буферов пакетов. Один системный вызов может передать группу пакетов потоковых мультимедийных данных, и в практических применениях один пакет потоковых мультимедийных данных посылается каждому пользователю в одном вызовес целью снижения числа системных вызовов , что приводит к оптимизации производительности системы. В способе и системе настоящего изобретения используются функцииисетевого адаптера для осуществления передачи потоковых мультимедийных данных с нулевым копированием. По сравнению со стандартным стеком сетевых протоколов ядра ,способ и система в соответствии с настоящим изобретением используют функциюсетевого адаптера для осуществления передачи пакетов потоковых мультимедийных данных, в которых заголовок и нагрузка разделены, что устраняет одну операцию копирования данных, необходимую в процессе упаковки потоковых мультимедийных данных в пакеты . При этом посредством функциисетевого адаптера драйвер сетевого адаптера непосредственно использует буфер пользователя для передачи пакетов, что устраняет одну операцию копирования данных, необходимую в процессе копирования потоковых мультимедийных данных из пространства пользователя в пространство ядра. В способе и системе настоящего изобретения применяется технология групповой передачи для осуществления функции передачи группы пакетов посредством одного системноговызова, и в результате устраняется ситуация, когда требуется один системный вызов для передачи одного пакета, и уменьшаются непроизводительные издержки на системные вызовы при передаче потоковых мультимедийных данных множеству пользователей. Реализация указанной технологии групповой передачи известна специалистам в данной области техники и не рассматривается в данном описании. Необходимо отметить, что указанный стек сетевых протоколов реализуется посредством программного обеспечения, а для осуществления системных вызовов существует программное обеспечение, конкретная процедура которого известна специалистам в данной области техники и подробно не рассматривается в данном описании. При этом необходимо отметить, что хотя предпочтительные варианты осуществления настоящего изобретения были описаны в подробностях, они не должны рассматриваться как ограничивающие объем правовой охраны настоящего изобретения, который определяется прилагаемой формулой изобретения. В способе и системе согласно настоящему изобретению полностью используются функцииисетевого адаптера для осуществления передачи потоковых мультимедийных данных с нулевым копированием. По сравнению со стандартным стеком сетевых протоколов ядра , в способе и системе настоящего изобретения используется функциясетевого адаптера для осуществления передачи пакетов потоковых мультимедийных данных, в которых заголовок и нагрузка разделены, что устраняет операцию 17147 1 2013.06.30 копирования данных, необходимую во время процесса упаковки потоковых мультимедийных данных в пакеты . Национальный центр интеллектуальной собственности. 220034, г. Минск, ул. Козлова, 20. 8

МПК / Метки

МПК: H04N 7/173, H04L 29/08

Метки: система, данных, нулевым, мультимедийных, передачи, потоковых, способ, копированием

Код ссылки

<a href="https://by.patents.su/8-17147-sposob-i-sistema-dlya-peredachi-potokovyh-multimedijjnyh-dannyh-s-nulevym-kopirovaniem.html" rel="bookmark" title="База патентов Беларуси">Способ и система для передачи потоковых мультимедийных данных с нулевым копированием</a>

Похожие патенты