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

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

Info

Publication number
RU2477930C2
RU2477930C2 RU2011107517/08A RU2011107517A RU2477930C2 RU 2477930 C2 RU2477930 C2 RU 2477930C2 RU 2011107517/08 A RU2011107517/08 A RU 2011107517/08A RU 2011107517 A RU2011107517 A RU 2011107517A RU 2477930 C2 RU2477930 C2 RU 2477930C2
Authority
RU
Russia
Prior art keywords
multimedia data
streaming
data
buffer
packets
Prior art date
Application number
RU2011107517/08A
Other languages
English (en)
Other versions
RU2011107517A (ru
Inventor
Вэйцянг ВАНГ
Хонцзюнь ЧЖУ
Цзянь ЧЕНГ
Original Assignee
ЗетТиИ Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from CN 200810142292 external-priority patent/CN101340574B/zh
Priority claimed from CN 200810241596 external-priority patent/CN101465854B/zh
Application filed by ЗетТиИ Корпорейшн filed Critical ЗетТиИ Корпорейшн
Publication of RU2011107517A publication Critical patent/RU2011107517A/ru
Application granted granted Critical
Publication of RU2477930C2 publication Critical patent/RU2477930C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/232Content retrieval operation locally within server, e.g. reading video streams from disk arrays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2381Adapting the multiplex stream to a specific network, e.g. an Internet Protocol [IP] network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

Изобретение относится к способу и системе для сети связи в области компьютерных приложений, основанным на стеке сетевых протоколов Linux, для осуществления передачи потоковых мультимедийных данных с нулевым копированием. Технический результат заключается в снижении загрузки процессора, возникающей из-за копирования данных и системных вызовов. Такой результат достигается тем, что способ включает выполнение системного вызова передачи данных, считывание потоковых мультимедийных данных с дискового пространства и запись их в буфер данных пользователя при получении сервером потоковых мультимедийных данных запроса данных от оборудования пользователя; упаковку потоковых мультимедийных данных, сохраненных в буфере данных пользователя, в передаваемые пакеты протокола реального времени с использованием пакетов потоковых мультимедийных данных, в которых заголовок и нагрузка разделены. 2 н. и 4 з.п. ф-лы, 2 ил.

Description

Область техники
Изобретение относится к способу и системе для сети связи в области компьютерных приложений, в частности к способу и системе для осуществления передачи потоковых мультимедийных данных с нулевым копированием на базе стека сетевых протоколов Linux.
Предпосылки создания изобретения
На существующем уровне техники в приложениях сервера потоковых мультимедийных данных на базе операционной системы Linux необходимо передавать большой объем потоковых мультимедийных данных с диска в сеть. Когда потоковые мультимедийные данные передаются с диска в сеть, они должны передаваться несколько раз в различных системных пространствах.
Процесс передачи в основном включает три части: (1) считывание потоковых мультимедийных данных с дискового пространства и их запись в буфер данных пользователя; (2) упаковку потоковых мультимедийных данных, сохраненных в буфере данных пользователя, в пакеты RTP (Real-time Transport Protocol, транспортный протокол реального времени) и сохранение их в буфере передачи пользователя; (3) передачу пакетов RTP, сохраненных в буфере передачи пользователя, через сетевой сокет UDP (User Datagram Protocol, протокол передачи дейтаграмм пользователя).
В операционной системе Linux пользовательский процесс может считывать данные с диска через прямой системный вызов интерфейса ввода/вывода I/O, и системный вызов может записывать данные с диска прямо в буфер пользователя посредством механизма DMA (Direct Memory Access, прямой доступ к памяти); при использовании интерфейса системного вызова, связанного с сетевым сокетом UDP, можно рассылать пакеты RTP, причем системный вызов копирует пакеты RTP из пространства пользователя в пространство ядра и соответственно производит инкапсуляцию этих пакетов, затем передает эти пакеты в буфер передачи сетевого адаптера (сетевой карты) посредством механизма DMA, и, наконец, сетевой адаптер рассылает пакеты RTP.
В способе существующего уровня техники пользовательский процесс может считывать потоковые данные с диска без копирования (zero copy, "с нулевым копированием"), но копия данных требуется, когда потоковые мультимедийные данные упаковывают в пакеты RTP, кроме того, данные должны быть скопированы из пространства пользователя в пространство ядра при рассылке пакетов RTP.
Помимо этого, каждый раз, когда пользовательский процесс посылает пакет, требуется один раз использовать системный вызов, и каждый раз системный вызов должен осуществлять переключение от состояния пользователя на состояние ядра, а также после возвращения системного вызова он осуществляет переключение от состояния ядра на состояние пользователя. В условиях, когда сервер потоковых мультимедийных данных сильно загружен, происходит копирование больших объемов данных и переключение контекста, что потребляет значительные ресурсы процессора системы и снижает обрабатывающие способности системы.
Непроизводительные издержки при передаче пакетов потоковых мультимедийных данных главным образом возникают при формировании данных, копировании данных и передаче данных на различных уровнях, таких как пользовательский процесс, операционная система и управление сетевым адаптером. Поэтому очень важно эффективно снизить количество операций копирования данных и системных вызовов, снизить загрузку на процессор и увеличить обрабатывающую способность системы для улучшения производительности сервера потоковых мультимедийных данных.
Следовательно, требуется развить и усовершенствовать существующий уровень техники.
Сущность изобретения
Целью настоящего изобретения является создание способа и системы для осуществления передачи потоковых мультимедийных данных с нулевым копированием, причем настоящие способ и система основаны на стеке сетевых протоколов Linux, и притом что оригинальный стек сетевых протоколов системы Linux не затронут, настоящие способ и система максимально возможно снижают загрузку процессора, возникающую из-за копирования данных и системных вызовов, что улучшает обрабатывающую способность системы.
Для достижения указанной выше цели техническое решение настоящего изобретения включает:
способ осуществления передачи потоковых мультимедийных данных с нулевым копированием, причем данный способ основан на стеке сетевых протоколов Linux, при этом данный способ включает следующие шаги:
A) при приеме сервером потоковых мультимедийных данных запроса данных от оборудования пользователя, выполнение сервером потоковых мультимедийных данных системного вызова передачи данных, считывание потоковых мультимедийных данных с дискового пространства и их запись в буфер данных пользователя;
B) упаковку потоковых мультимедийных данных, сохраненных в буфере данных пользователя, в пакеты транспортного протокола реального времени;
и передачу этих пакетов данных транспортного протокола реального времени в форме пакетов потоковых мультимедийных данных, в которых заголовок и нагрузка разделены.
Помимо этого, шаг В настоящего способа также включает:
В1) выделение структуры буфера ядра в пространстве ядра для каждого подлежащего передаче пакета транспортного протокола реального времени, при этом данная структура включает две части: одной частью является временно выделенный буфер ядра, включающий заголовок упомянутого пакета транспортного протокола реального времени; а другой частью является временно отображенный буфер пользователя, включающий нагрузку упомянутого пакета транспортного протокола реального времени;
В2) использование функции сборки/распределения и функции прямого доступа к памяти сетевого адаптера, отображение буферов двух частей структуры буфера ядра на буфер передачи сетевого адаптера и вызов функции передачи драйвера сетевого адаптера для осуществления передачи потоковых мультимедийных данных с нулевым копированием.
Помимо этого, когда службе потоковых мультимедийных данных требуется обработать запросы от множества пользователей, передача одного пакета потоковых мультимедийных данных каждому пользователю требует одного системного вызова.
Помимо этого, в настоящем способе стек сетевых протоколов обеспечивает следующие интерфейсы программирования сокетов: "socket", который используется для создания сокета, "close", который используется для закрытия сокета, и "sendmsg", который используется для осуществления передачи потоковых мультимедийных данных с нулевым копированием.
Система для осуществления передачи потоковых мультимедийных данных с нулевым копированием включает сервер потоковых мультимедийных данных, при этом сервер потоковых мультимедийных данных конфигурируют для осуществления передачи потоковых мультимедийных данных с нулевым копированием на базе стека сетевых протоколов Linux. Указанный сервер потоковых мультимедийных данных конфигурирует пространство ядра между аппаратным устройством и пользовательским процессом, а также конфигурирует стек сетевых протоколов над программой драйвера сетевого адаптера в пространстве ядра; при этом пространство ядра выделяет для пакетов транспортного протокола реального времени, сформированных посредством упаковки потоковых мультимедийных данных, подлежащих передаче, следующие буферы:
временно выделенный буфер ядра для помещения заголовка пакетов транспортного протокола реального времени,
временно отображенный буфер пользователя для помещения нагрузки пакетов транспортного протокола реального времени.
Стек сетевых протоколов обеспечивает интерфейсы программирования сокетов для пользовательского процесса, при этом интерфейсы программирования сокетов включают: "socket", который используется для создания сокета, "close", который используется для закрытия сокета, и "sendmsg", который используется для осуществления передачи потоковых мультимедийных данных с нулевым копированием; при этом указанный стек сетевых протоколов используется для передачи пакетов транспортного протокола реального времени в форме пакетов потоковых мультимедийных данных, в которых заголовок и нагрузка разделены.
Помимо этого, в данной системе сервер потоковых мультимедийных данных применяет технологию групповой (butch) передачи для отправки множества пакетов в одном системном вызове "sendmsg".
По сравнению со стеком сетевых протоколов ядра Linux на существующем уровне техники, способ и система для осуществления передачи потоковых мультимедийных данных с нулевым копированием, раскрываемые в настоящем изобретении, обеспечивают передачу потоковых мультимедийных данных с нулевым копированием посредством использования функций DMA и SG (Scatter/Gather, распределение/сборка) сетевого адаптера и обеспечивают передачу пакетов потоковых мультимедийных данных, в которых заголовок и нагрузка разделены, что сокращает одну операцию копирования данных в процессе упаковки потоковых мультимедийных данных в пакеты RTP.
Краткое описание чертежей
На фиг.1 представлен процесс использования стека сетевых протоколов, реализованный в настоящем изобретении, для осуществления передачи потоковых мультимедийных данных с нулевым копированием.
На фиг.2 представлена структура системы в соответствии с настоящим изобретением.
Предпочтительные варианты осуществления настоящего изобретения
Далее предпочтительные варианты осуществления настоящего изобретения описываются более подробно со ссылками на чертежи.
В способе осуществления передачи потоковых мультимедийных данных с нулевым копированием на базе стека сетевых протоколов Linux в соответствии с настоящим изобретением используется оригинальный стек сетевых протоколов Linux, который реализуется посредством механизма модуля ядра, при этом загрузка и выгрузка модуля ядра не влияют на оригинальный стек сетевых протоколов ядра Linux. Система для осуществления передачи потоковых мультимедийных данных с нулевым копированием в настоящем изобретении включает сервер потоковых мультимедийных данных, как показано на фиг.2, при этом сервер потоковых мультимедийных данных конфигурируется сетевым адаптером для осуществления связи с оборудованием пользователя. Указанный сетевой адаптер (сетевая карта) поддерживает функции DMA (прямой доступ к памяти) и SG (распределение/сборка).
В способе и системе в соответствии с настоящим изобретением, аппаратные устройства указанного сервера потоковых мультимедийных данных включают сетевой адаптер и диск, как показано на фиг.1, при этом пространство ядра Linux располагается между аппаратным устройством и пользовательским процессом, стек сетевых протоколов конфигурируется над программой драйвера сетевого адаптера в пространстве ядра и указанный стек сетевых протоколов обеспечивает интерфейсы программирования сокетов для пользовательского процесса, причем указанные интерфейсы программирования сокетов включают в основном системные вызовы, такие как "socket", "close" и "sendmsg", где "socket" используется для создания сокета, "close" используется для закрытия сокета и "sendmsg" используется для осуществления передачи потоковых мультимедийных данных с нулевым копированием.
Аппаратная среда способа и системы в соответствии с настоящим изобретением требует наличия в сетевом адаптере функций DMA и SG, а программная среда представляет собой ядро Linux, имеющее соответствующие сетевые функции. Для реализации функции передачи потоковых мультимедийных данных с нулевым копированием, способ и система настоящего изобретения создают стек сетевых протоколов DATALINK, основанный на сокете типа AF_DATALINK на базе оригинального ядра Linux. Указанный стек протоколов обеспечивает для пользовательского процесса интерфейсы программирования сокетов типа AF_DATALINK, которые включают системные вызовы, такие как "socket", "close" и "sendmsg". При этом системный вызов "socket" используется для создания сокета, системный вызов "close" используется для закрытия сокета и системный вызов "sendmsg" используется для передачи потоковых мультимедийных данных в форме инкапсуляции в пакеты RTP с нулевым копированием.
Стандартная семантика вызова "sendmsg" на существующем уровне техники не способна реализовать функцию настоящего изобретения, поэтому "sendmsg" требуется определить заново. Далее описывается и поясняется "sendmsg" в соответствии со способом и системой настоящего изобретения:
ssize_t sendmsg(int socket, const struct msghdr *msg, int flags).
Функция:
передача потоковых мультимедийных данных с нулевым копированием реализуется с помощью сокета.
Входные и выходные параметры:
socket, сокет типа AF_DATALINK, создаваемый посредством системного вызова "socket";
msg→msg_name: временно не используется;
msg→msg_namelen: временно не используется;
msg→msg_iov: входной параметр, указатель, который указывает массив из struct iovec. Каждая структура struct iovec включает размер и адрес буфера данных, подлежащих передаче;
msg→msg_iovlen: входной параметр для хранения размера массива из struct iovec, на который указывает msg_iov;
msg→msg_control: параметр ввода-вывода для хранения управляющей информации, включающей IP адрес, UDP порт и тип нагрузки RTP каждого пакета потоковых мультимедийных данных во время ввода; а также для возвращения индекса и кода ошибки для пакетов, переданных с ошибками;
msg→msg_controllen: входной параметр, используемый для хранения общей длины сообщения msg_control;
msg→msg_flags: временно не используется;
flags: временно не используется.
Возвращаемое значение:
если пакеты были переданы с ошибками, возвращается -1 и код ошибки errno.
Если все или некоторые пакеты переданы успешно, возвращается число успешно переданных пакетов, индекс пакетов, которые переданы с ошибками и соответствующий код ошибки через выходной параметр.
Информация, из которой состоят пакеты RTP, хранится в параметре msg, а параметр msg_iov хранит информацию о нагрузке пакетов RTP, подлежащих передаче, включающую адрес и размер буфера данных пользователя, в качестве данных RTP пакетов; msg_control хранит информацию о заголовке пакетов RTP, подлежащих передаче, включающую IP адрес, номер порта и тип нагрузки RTP, используемые для формирования заголовка пакетов RTP.
Как показано на фиг.1, в соответствии со способом настоящего изобретения структура буфера ядра sk_buffer выделяется для каждого пакета RTP, подлежащего передаче, в пространстве ядра во время системного вызова "sendmsg", причем данные этой структуры состоят их двух частей: одной частью является временно выделенный буфер ядра, включающий заголовок RTP пакета потоковых мультимедийных данных, который генерируется в соответствии с информацией о заголовке, включаемой в msg_control; второй частью является временно отображенный буфер пользователя, включающий нагрузку пакета RTP, которая получается в соответствии с информацией о нагрузке, включенной в msg_iov. Посредством функций сетевого адаптера SG и DMA эти два буфера отображаются на буфер передачи сетевого адаптера, и вызывается функция передачи драйвера сетевого адаптера для осуществления передачи потоковых мультимедийных данных с нулевым копированием. Упомянутый выше процесс отображения (mapping) известен в данной области техники и не рассматривается в данном описании.
Когда сервер потоковых мультимедийных данных в соответствии со способом и системой настоящего изобретения обрабатывает запрос одного пользователя, передача потоковых мультимедийных данных с нулевым копированием может быть реализована через сокет AF_DATALINK и один системный вызов "sendmsg".
Когда серверу потоковых мультимедийных данных требуется обработать множество пользовательских запросов, помимо использования передачи потоковых мультимедийных данных с нулевым копированием, аналогично случаю с запросом одного пользователя, производительность системы может быть еще больше оптимизирована путем уменьшения числа системных вызовов: это в основном означает переопределение параметра msg, используемого для системного вызова "sendmsg", его элемент msg→msg_iov указывает группу буферов пакетов, а элемент msg→iovlen показывает число буферов пакетов. Один системный вызов может передать группу пакетов потоковых мультимедийных данных, и в практических применениях один пакет потоковых мультимедийных данных посылается каждому пользователю в одном вызове "sendmsg" с целью снижения числа системных вызовов "sendmsg", что приводит к оптимизации производительности системы.
В способе и системе настоящего изобретения используются функции DMA и SG сетевого адаптера для осуществления передачи потоковых мультимедийных данных с нулевым копированием. По сравнению со стандартным стеком сетевых протоколов ядра Linux, способ и система в соответствии с настоящим изобретением используют функцию SG сетевого адаптера для осуществления передачи пакетов потоковых мультимедийных данных, в которых заголовок и нагрузка разделены, что устраняет одну операцию копирования данных, необходимую в процессе упаковки потоковых мультимедийных данных в пакеты RTP.
При этом, посредством функции DMA сетевого адаптера, драйвер сетевого адаптера непосредственно использует буфер пользователя для передачи пакетов, что устраняет одну операцию копирования данных, необходимую в процессе копирования потоковых мультимедийных данных из пространства пользователя в пространство ядра.
В способе и системе настоящего изобретения применяется технология групповой передачи для осуществления функции передачи группы пакетов посредством одного системного вызова, и в результате устраняется ситуация, когда требуется один системный вызов для передачи одного пакета, и уменьшаются непроизводительные издержки на системные вызовы при передаче потоковых мультимедийных данных множеству пользователей. Реализация указанной технологии групповой передачи известна специалистам в данной области техники и не рассматривается в данном описании.
Необходимо отметить, что указанный стек сетевых протоколов реализуется посредством программного обеспечения, а для осуществления системных вызовов существует программное обеспечение, конкретная процедура которого известна специалистам в данной области техники и подробно не рассматривается в данном описании.
При этом необходимо отметить, что хотя предпочтительные варианты осуществления настоящего изобретения были описаны в подробностях, они не должны рассматриваться как ограничивающие объем правовой охраны настоящего изобретения, который определяется прилагаемой формулой изобретения.
Промышленная применимость
В способе и системе согласно настоящему изобретению полностью используются функции DMA и SG сетевого адаптера для осуществления передачи потоковых мультимедийных данных с нулевым копированием. По сравнению со стандартным стеком сетевых протоколов ядра Linux, в способе и системе настоящего изобретения используется функция SG сетевого адаптера для осуществления передачи пакетов потоковых мультимедийных данных, в которых заголовок и нагрузка разделены, что устраняет операцию копирования данных, необходимую во время процесса упаковки потоковых мультимедийных данных в пакеты RTP.

Claims (6)

1. Способ осуществления передачи потоковых мультимедийных данных с нулевым копированием, причем осуществление данного способа основано на стеке сетевых протоколов Linux, и данный способ включает следующие шаги:
A) при приеме сервером потоковых мультимедийных данных запроса данных от оборудования пользователя, выполнение сервером потоковых мультимедийных данных системного вызова передачи данных, считывание потоковых мультимедийных данных с дискового пространства и запись потоковых мультимедийных данных в буфер данных пользователя;
B) упаковку потоковых мультимедийных данных, сохраненных в буфере данных пользователя, в пакеты транспортного протокола реального времени; и передачу этих пакетов транспортного протокола реального времени в форме пакетов потоковых мультимедийных данных, в которых заголовок и нагрузка разделены.
2. Способ по п.1, в котором упомянутый шаг В также включает:
В1) выделение структуры буфера ядра в пространстве ядра для каждого подлежащего передаче пакета транспортного протокола реального времени, при этом структура буфера ядра включает:
временно выделенный буфер ядра, включающий заголовок упомянутого пакета транспортного протокола реального времени, подлежащего передаче; и
временно отображенный буфер пользователя, включающий нагрузку упомянутого пакета транспортного протокола реального времени, подлежащего передаче;
В2) использование функции сборки/распределения и функции прямого доступа к памяти сетевого адаптера, отображение временно выделенного буфера ядра и временно отображенного буфера пользователя из указанной структуры буфера ядра на буфер передачи сетевого адаптера и вызов функции передачи драйвера сетевого адаптера для завершения передачи потоковых мультимедийных данных с нулевым копированием.
3. Способ по п.2, в котором, когда службе потоковой передачи мультимедийных данных требуется обработать запросы от множества пользователей, служба потоковой передачи мультимедийных данных осуществляет передачу одного пакета потоковых мультимедийных данных каждому пользователю, посылающему запрос, посредством одного системного вызова.
4. Способ по п.3, в котором указанный стек сетевых протоколов обеспечивает следующие интерфейсы программирования сокетов: "socket", который используется для создания сокета, "close", который используется для закрытия сокета, "sendmsg", который используется для осуществления передачи потоковых мультимедийных данных с нулевым копированием.
5. Система для осуществления передачи потоковых мультимедийных данных с нулевым копированием, причем указанная система включает сервер потоковых мультимедийных данных, который конфигурируют для осуществления передачи потоковых мультимедийных данных с нулевым копированием на базе стека сетевых протоколов Linux, при этом указанный сервер потоковых мультимедийных данных конфигурирует пространство ядра между аппаратным устройством этого сервера и пользовательским процессом, а также конфигурирует стек сетевых протоколов над программой драйвера сетевого адаптера в пространстве ядра;
указанное пространство ядра выделяет для пакетов транспортного протокола реального времени, сформированных посредством упаковки потоковых мультимедийных данных, подлежащих передаче, следующие буферы:
временно выделенный буфер ядра для помещения заголовка указанных пакетов транспортного протокола реального времени, и временно отображенный буфер пользователя для помещения нагрузки указанных пакетов транспортного протокола реального времени;
указанный стек сетевых протоколов обеспечивает интерфейсы программирования сокетов для пользовательского процесса, причем указанные интерфейсы программирования сокетов включают: "socket", который используется для создания сокета, "close", который используется для закрытия сокета, и "sendmsg", который используется для осуществления передачи потоковых мультимедийных данных с нулевым копированием; при этом указанный стек сетевых протоколов используется для передачи пакетов транспортного протокола реального времени в форме пакетов потоковых мультимедийных данных, в которых заголовок и нагрузка разделены.
6. Система по п.5, в которой указанный сервер потоковых мультимедийных данных применяет технологию групповой передачи для отправки множества пакетов в одном системном вызове "sendmsg".
RU2011107517/08A 2008-08-04 2009-07-30 Способ и система для передачи потоковых мультимедийных данных с нулевым копированием RU2477930C2 (ru)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN200810142292.7 2008-08-04
CN 200810142292 CN101340574B (zh) 2008-08-04 2008-08-04 一种实现零拷贝发送流媒体数据的方法及系统
CN200810241596.9 2008-12-26
CN 200810241596 CN101465854B (zh) 2008-12-26 2008-12-26 一种媒体服务器及实现准实时发送媒体数据的方法
PCT/CN2009/000852 WO2010015142A1 (zh) 2008-08-04 2009-07-30 一种实现零拷贝发送流媒体数据的方法及系统

Publications (2)

Publication Number Publication Date
RU2011107517A RU2011107517A (ru) 2012-09-10
RU2477930C2 true RU2477930C2 (ru) 2013-03-20

Family

ID=41663289

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2011107517/08A RU2477930C2 (ru) 2008-08-04 2009-07-30 Способ и система для передачи потоковых мультимедийных данных с нулевым копированием

Country Status (5)

Country Link
US (1) US20110258337A1 (ru)
EP (1) EP2312807B1 (ru)
PL (1) PL2312807T3 (ru)
RU (1) RU2477930C2 (ru)
WO (1) WO2010015142A1 (ru)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130262693A1 (en) * 2012-04-02 2013-10-03 Chris Phillips Methods and apparatus for segmenting, distributing, and resegmenting adaptive rate content streams
CN103617125A (zh) * 2013-11-27 2014-03-05 曙光信息产业(北京)有限公司 内存空间的管理方法和装置
CN103942097B (zh) * 2014-04-10 2017-11-24 华为技术有限公司 一种数据处理方法、装置及具备相应装置的计算机
CN105791884A (zh) * 2016-03-07 2016-07-20 读者出版传媒股份有限公司 一种流媒体直播方法及系统
US11855898B1 (en) * 2018-03-14 2023-12-26 F5, Inc. Methods for traffic dependent direct memory access optimization and devices thereof
CN108712308B (zh) * 2018-06-06 2021-11-26 郑州云海信息技术有限公司 虚拟网络中检测网络设备的方法和装置
CN110012343A (zh) * 2019-02-21 2019-07-12 生迪智慧科技有限公司 网络报文的生成方法及装置
CN111698274B (zh) * 2019-03-15 2021-11-19 华为技术有限公司 数据处理方法及装置
CN110086571A (zh) * 2019-04-10 2019-08-02 广州华多网络科技有限公司 一种数据发送及接收的方法、装置及数据处理系统
CN110048963B (zh) * 2019-04-19 2023-06-06 杭州朗和科技有限公司 虚拟网络中的报文传输方法、介质、装置和计算设备
US11403247B2 (en) * 2019-09-10 2022-08-02 GigaIO Networks, Inc. Methods and apparatus for network interface fabric send/receive operations
CN111083072A (zh) * 2019-11-29 2020-04-28 天津市滨海新区信息技术创新中心 交换机报文传输装置及方法
CN112995753B (zh) * 2019-12-16 2024-03-22 中兴通讯股份有限公司 一种媒体流分发方法、cdn节点服务器、cdn系统和可读存储介质
CN113127139B (zh) * 2019-12-31 2023-12-26 阿里巴巴集团控股有限公司 一种基于数据面开发套件dpdk的内存分配方法和装置
CN111181736B (zh) * 2019-12-31 2022-04-05 奇安信科技集团股份有限公司 数据传输方法、装置、系统及介质
CN113163443A (zh) * 2020-01-22 2021-07-23 普天信息技术有限公司 核心网数据传输方法及系统
CN113973091A (zh) * 2020-07-23 2022-01-25 华为技术有限公司 一种报文处理方法、网络设备以及相关设备
CN112114748B (zh) * 2020-09-02 2022-10-25 厦门安胜网络科技有限公司 一种用于冷热数据的分离方法和系统
CN112511848B (zh) * 2020-11-09 2023-06-20 网宿科技股份有限公司 直播方法、服务端及计算机可读存储介质
CN116455612B (zh) * 2023-03-23 2023-11-28 京信数据科技有限公司 一种隐私计算中间数据流零拷贝装置及方法
CN116915860B (zh) * 2023-09-07 2023-11-28 深圳市升立德科技有限公司 基于udp的指令传输方法、装置、设备以及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040199650A1 (en) * 2002-11-14 2004-10-07 Howe John E. System and methods for accelerating data delivery
RU2003112727A (ru) * 2002-04-30 2004-11-27 Майкрософт Корпорейшн Способ синхронизации и передачи выгруженного соединения сетевого стека в сетевой стек
CN101135980A (zh) * 2006-08-29 2008-03-05 飞塔信息科技(北京)有限公司 一种基于Linux操作系统实现零拷贝的装置和方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7159030B1 (en) * 1999-07-30 2007-01-02 Intel Corporation Associating a packet with a flow
US7403974B1 (en) * 2001-06-25 2008-07-22 Emc Corporation True zero-copy system and method
US7181531B2 (en) * 2002-04-30 2007-02-20 Microsoft Corporation Method to synchronize and upload an offloaded network stack connection with a network stack
US7512128B2 (en) * 2002-06-12 2009-03-31 Sun Microsystems, Inc. System and method for a multi-packet data link layer data transmission
US7142540B2 (en) * 2002-07-18 2006-11-28 Sun Microsystems, Inc. Method and apparatus for zero-copy receive buffer management
JP4942375B2 (ja) * 2006-03-27 2012-05-30 株式会社ソニー・コンピュータエンタテインメント ネットワーク処理装置
KR100758272B1 (ko) * 2006-04-26 2007-09-12 한국전자통신연구원 데이터 무 복사 파일 이동 방법
US8929372B2 (en) * 2007-10-30 2015-01-06 Contextream Ltd. Grid router
CN101340574B (zh) * 2008-08-04 2010-09-08 中兴通讯股份有限公司 一种实现零拷贝发送流媒体数据的方法及系统
CN101465854B (zh) * 2008-12-26 2013-05-08 中兴通讯股份有限公司 一种媒体服务器及实现准实时发送媒体数据的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2003112727A (ru) * 2002-04-30 2004-11-27 Майкрософт Корпорейшн Способ синхронизации и передачи выгруженного соединения сетевого стека в сетевой стек
US20040199650A1 (en) * 2002-11-14 2004-10-07 Howe John E. System and methods for accelerating data delivery
CN101135980A (zh) * 2006-08-29 2008-03-05 飞塔信息科技(北京)有限公司 一种基于Linux操作系统实现零拷贝的装置和方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Cristian Kurmann, et.al. «Speculative Defragmentation - A Technique to Improve the Communication Software Efficiency for Gigabit Ethernet». 9th IEEE International Symposium on Hight Performance Distributed Computing, 04.08.2000. Найдено 01.05.2012 в Интернет . *
Cristian Kurmann, et.al. «Speculative Defragmentation - A Technique to Improve the Communication Software Efficiency for Gigabit Ethernet». 9th IEEE International Symposium on Hight Performance Distributed Computing, 04.08.2000. Найдено 01.05.2012 в Интернет <URL: http://www.computer.org/ portal/web/csdl/doi/10.1109/HPDC.2000.868643>. *

Also Published As

Publication number Publication date
RU2011107517A (ru) 2012-09-10
PL2312807T3 (pl) 2019-04-30
WO2010015142A1 (zh) 2010-02-11
US20110258337A1 (en) 2011-10-20
EP2312807A4 (en) 2016-12-14
EP2312807A1 (en) 2011-04-20
EP2312807B1 (en) 2018-11-14

Similar Documents

Publication Publication Date Title
RU2477930C2 (ru) Способ и система для передачи потоковых мультимедийных данных с нулевым копированием
CN101340574B (zh) 一种实现零拷贝发送流媒体数据的方法及系统
US11210148B2 (en) Reception according to a data transfer protocol of data directed to any of a plurality of destination entities
US11159651B2 (en) Methods and apparatus for memory allocation and reallocation in networking stack infrastructures
US7577707B2 (en) Method, system, and program for executing data transfer requests
US20180375782A1 (en) Data buffering
US7603429B2 (en) Network adapter with shared database for message context information
EP1884085B1 (en) Packet validation in a virtual network interface architecture
EP0889623B1 (en) System and method for efficient remote disk I/O
WO2024082944A1 (zh) 一种多处理器数据交互方法、装置、设备及存储介质
RU2298880C2 (ru) Структура драйверов сетевых фильтров и средства оперативного управления ими
CN112291259B (zh) 一种协议转换方法、网关、设备及可读存储介质
US20070288568A1 (en) Message handling by a wrapper connected between a kernel and a core
US20050141434A1 (en) Method, system, and program for managing buffers
US7532644B1 (en) Method and system for associating multiple payload buffers with multidata message
KR20080051022A (ko) Toe의 패킷 수신 하드웨어 장치 및 toe 패킷 수신하드웨어를 이용한 수신 시스템 및 수신 방법
CN116074273A (zh) 一种数据传输方法以及装置
CN116567105A (zh) 一种基于数据平面开发套件的数据包处理方法和系统
Chihaia Message Passing for Gigabit/s Networks with Zero-Copy under Linux
US20040057418A1 (en) Data communication receive processing execution thread
Balman Analyzing Data Movements and Identifying Techniques for Next-generation High-bandwidth Networks