СПОСОБ И СИСТЕМА ДЛЯ ПЕРЕДАЧИ ПОТОКОВЫХ МУЛЬТИМЕДИЙНЫХ ДАННЫХ С НУЛЕВЫМ КОПИРОВАНИЕМ

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