Область техники
Изобретение относится к технологиям сетевой связи, в частности, к способу, системе и устройству передачи видеоданных.
Уровень техники
С развитием технологий сетевой связи видеоданные стали одним из видов важных ресурсов в области современной сетевой связи. Благодаря таким характеристикам, как видимость и реальность, видеоданные широко используются пользователями, в частности, в сетевых играх, при Мгновенном Обмене Сообщениями МОС (IМ) и прочее.
Видеофайлы, как правило, отличаются очень большими размерами, в результате, при их передаче по сети занимается относительно большая полоса пропускания. Таким образом, вопрос обеспечения быстрой передачи по сети, позволяющей пользователям быстро получать видеоданные, становится основной задачей, требующей решения при передаче видеоданных.
В настоящее время в сети используется сервер ретрансляции, и видеоданные между пользователями передаются с помощью такого сервера.
Для передачи видеоданных можно также использовать технологии одноранговых сетей (Р2Р-технологии). В одноранговой сети для просмотра и загрузки файлов пользователь может напрямую подключаться к компьютеру другого пользователя, вместо того, чтобы соединяться с сервером. Благодаря этому видеоданные можно использовать совместно и обмениваться ими напрямую. Различие между Р2Р-технологиями и обычным режимом "клиент-сервер" состоит в том, что в одноранговой сети отсутствует центральный сервер, либо предусмотрен маломощный центральный сервер.
При этом объем памяти, Центральный Процессор ЦП (CPU) и ресурсы полосы пропускания пользователя могут использоваться полностью. Эксплуатационные расходы и затраты на техническое обслуживание снижаются.
Среди недостатков технических решений, известных из уровня техники, можно выделить по меньшей мере следующие.
В случае использования для передачи видеоданных технологий ретрансляции через сервер, поскольку подключено большое количество пользователей и происходит передача большого объема данных, требуется широкая полоса пропускания, что приводит к увеличению затрат на полосу пропускания. При использовании для передачи видеоданных Р2Р-технологий, поскольку клиентские устройства в одноранговой сети обладают низкой обрабатывающей способностью, недостаточными ресурсами полосы пропускания и имеют различных поставщиков услуг Интернета, возникают такие проблемы, как низкая скорость входа в систему, низкая скорость соединения и даже невозможность соединения. В результате, впечатление пользователей может ухудшиться.
Раскрытие изобретения
Таким образом, в настоящем изобретении предложен способ, система и устройство передачи видеоданных.
Предлагаемый способ передачи видеоданных включает в себя следующие этапы:
первый клиент отправляет на сервер ретрансляции и Р2Р-сервер запрос на установление первого соединения;
второй клиент отправляет на сервер ретрансляции и Р2Р-сервер запрос на установление второго соединения;
после успешного установления первого соединения ретрансляции между первым клиентом и сервером ретрансляции и второго соединения ретрансляции между вторым клиентом и сервером ретрансляции, первый и второй клиенты направляют и передают видеоданные через сервер ретрансляции;
после успешного установления первого Р2Р-соединения между первым клиентом и Р2Р-сервером и второго Р2Р-соединения между вторым клиентом и Р2Р-сервером, первый и второй клиенты временно приостанавливают направление и передачу видеоданных через сервер ретрансляции;
первый и второй клиенты передают видеоданные в режиме Р2Р.
Этап, на котором первый и второй клиенты приостанавливают направление и передачу видеоданных через сервер ретрансляции после успешного установления первого Р2Р-соединения между первым клиентом и Р2Р-сервером и второго Р2Р-соединения между вторым клиентом и Р2Р-сервером, выполняют после завершения передачи первого кадра данных между первым и вторым клиентами в режиме Р2Р.
Данный способ также предусматривает выполнение следующих действий:
если во время передачи видеоданных первым и вторым клиентами в режиме Р2Р происходит разрыв соединения между указанными клиентами, или коэффициент потери пакетов видеоданных, передаваемых между указанными клиентами, превышает предварительно заданное значение, или время буферизации видеоданных, передаваемых между указанными клиентами, превышает предварительно заданное значение, то первый клиент определяет, следует ли поддерживать первое соединение ретрансляции с сервером ретрансляции, а второй клиент определяет, следует ли поддерживать второе соединение ретрансляции с сервером ретрансляции;
если первое соединение ретрансляции между первым клиентом и сервером ретрансляции и второе соединение ретрансляции между вторым клиентом и сервером ретрансляции сохраняется, то видеоданные непрерывно передаются через сервер ретрансляции;
если первое соединение ретрансляции между первым клиентом и сервером ретрансляции прервано, а второе соединение ретрансляции между вторым клиентом и сервером ретрансляции успешно установлено, то первый клиент отправляет на сервер ретрансляции запрос на установление первого соединения, причем после успешного установления первого соединения ретрансляции между первым клиентом и сервером ретрансляции первый и второй клиенты направляют и передают видеоданные через сервер ретрансляции;
если второе соединение ретрансляции между вторым клиентом и сервером ретрансляции прервано, а первое соединение ретрансляции между первым клиентом и сервером ретрансляции успешно установлено, то второй клиент отправляет на сервер ретрансляции запрос на установление второго соединения, причем после установления второго соединения ретрансляции между вторым клиентом и сервером ретрансляции первый и второй клиенты направляют и передают видеоданные через сервер ретрансляции;
если первое соединение ретрансляции между первым клиентом и сервером ретрансляции и второе соединение ретрансляции между вторым клиентом и сервером ретрансляции прерваны, то первый клиент отправляет серверу ретрансляции запрос на установление первого соединения, а второй клиент отправляет на сервер ретрансляции запрос на установление второго соединения; причем
после успешного установления первого соединения ретрансляции между первым клиентом и сервером ретрансляции и второго соединения ретрансляции между вторым клиентом и сервером ретрансляции первый и второй клиенты направляют и передают видеоданные через сервер ретрансляции.
Данный способ предусматривает также выполнение следующих действий:
если после отправки на сервер ретрансляции и на Р2Р-сервер первым клиентом запроса на установление первого соединения и вторым клиентом запроса на установление второго соединения
первое соединение ретрансляции между первым клиентом и сервером ретрансляции успешно установлено, а второе соединение ретрансляции между вторым клиентом и сервером ретрансляции не установлено, при этом первое Р2Р-соединение между первым клиентом и Р2Р-сервером и второе Р2Р-соединение между вторым клиентом и Р2Р-сервером успешно установлены, то
первый и второй клиенты передают видеоданные в режиме Р2Р, причем первое соединение ретрансляции между первым клиентом и сервером ретрансляции и второе соединение ретрансляции между вторым клиентом и сервером ретрансляции разрываются.
Если после отправки на сервер ретрансляции и на Р2Р-сервер первым клиентом запроса на установление первого соединения и вторым клиентом запроса на установление второго соединения
первое соединение ретрансляции между первым клиентом и сервером ретрансляции успешно установлено, а второе соединение ретрансляции между вторым клиентом и сервером ретрансляции не установлено, то выполняют следующие действия:
сервер ретрансляции принимает от первого клиента запрос на установление первого соединения, а от второго клиента запрос на установление второго соединения;
сервер ретрансляции проверяет подлинность первого и второго пользователей, соответственно, по идентификационным и аутентификационным данным первого пользователя, содержащимся в запросе на установление первого соединения, и идентификационным и аутентификационным данным второго пользователя, содержащимся в запросе на установление второго соединения, причем
при успешной проверке подлинности первого и второго пользователей сервер ретрансляции устанавливает первое и второе соединения ретрансляции с первым и вторым клиентами соответственно и отправляет им ответы об успешном установлении указанных соединений.
Если после отправки на сервер ретрансляции и на Р2Р-сервер первым клиентом запроса на установление первого соединения и вторым клиентом запроса на установление второго соединения
первое Р2Р-соединение между первым клиентом и Р2Р-сервером успешно установлено, а второе Р2Р-соединение между вторым клиентом и Р2Р-сервером не установлено, то выполняют следующие действия:
Р2Р-сервер принимает запросы на установление первого и второго соединений от первого и второго клиентов соответственно;
Р2Р-сервер проверяет подлинность первого и второго пользователей, соответственно, по идентификационным и аутентификационным данным первого пользователя, содержащимся в запросе на установление первого соединения, и идентификационным и аутентификационным данным второго пользователя, содержащимся в запросе на установление второго соединения, причем
при успешной проверке подлинности первого и второго пользователей Р2Р-сервер устанавливает первое и второе Р2Р-соединения с первым и вторым клиентом соответственно и отправляет им ответы об успешном установлении указанных соединений.
Предлагаемая системы передачи видеоданных содержит первый клиент, второй клиент, сервер ретрансляции и Р2Р-сервер, причем
первый клиент сконфигурирован таким образом, чтобы отправлять на сервер ретрансляции и Р2Р-сервер запросы на установление первого соединения, устанавливать первое соединение ретрансляции с сервером ретрансляции, направлять и передавать видеоданные второму клиенту через сервер ретрансляции, устанавливать первое Р2Р-соединение с Р2Р-сервером, временно приостанавливать направление и передачу видеоданных второму клиенту через сервер ретрансляции и передавать видеоданные второму клиенту в режиме Р2Р;
второй клиент сконфигурирован таким образом, чтобы отправлять на сервер ретрансляции и на Р2Р-сервер запросы на установление второго соединения, устанавливать второе соединение ретрансляции с сервером ретрансляции,
направлять и передавать видеоданные первому клиенту через сервер ретрансляции, устанавливать второе Р2Р-соединение с Р2Р-сервером, временно приостанавливать направление и передачу видеоданных первому клиенту через сервер ретрансляции и передавать видеоданные первому клиенту в режиме Р2Р;
сервер ретрансляции сконфигурирован таким образом, чтобы принимать запросы на установление первого и второго соединений от первого и второго клиента соответственно, устанавливать первое и второе соединения ретрансляции с первым и вторым клиентом соответственно, направлять и передавать видеоданные первому и второму клиентам;
Р2Р-сервер сконфигурирован таким образом, чтобы принимать запросы на установление первого и второго соединений от первого и второго клиента соответственно и устанавливать первое и второе Р2Р-соединения с первым и вторым клиентом соответственно, причем, когда первый и второй клиенты временно приостанавливают направление и передачу видеоданных через сервер ретрансляции, указанный Р2Р-сервер обеспечивает режим Р2Р для передачи видеоданных первым и вторым клиентами.
После успешного установления первого Р2Р-соединения между первым клиентом и Р2Р-сервером и второго Р2Р-соединения между вторым клиентом и Р2Р-сервером и завершения передачи первого кадра данных между первым и вторым клиентами в режиме Р2Р, первый клиент временно приостанавливает направление и передачу видеоданных второму клиенту через сервер ретрансляции, причем
после успешного установления второго Р2Р-соединения между вторым клиентом и Р2Р-сервером и первого Р2Р-соединения между первым клиентом и Р2Р-сервером и завершения передачи первого кадра данных между первым и вторым клиентами в режиме Р2Р, второй клиент временно приостанавливает направление и передачу видеоданных первому клиенту через сервер ретрансляции.
Сервер ретрансляции обеспечивает непрерывное направление и передачу видеоданных для первого и второго клиентов в том случае, если во время передачи видеоданных между первым и вторым клиентами в режиме Р2Р происходит разрыв соединения между указанными клиентами, или коэффициент потери пакетов видеоданных, передаваемых между указанными клиентами, превышает предварительно заданное значение, или время буферизации видеоданных, передаваемых между указанными клиентами, превышает предварительно заданное значение, при этом первый клиент определяет, что необходимо сохранить первое соединение ретрансляции с сервером ретрансляции и второй клиент определяет, что необходимо сохранить второе соединение ретрансляции с сервером ретрансляции;
если первое соединение ретрансляции между первым клиентом и сервером ретрансляции прервано, а второе соединение ретрансляции между вторым клиентом и сервером ретрансляции установлено, то сервер ретрансляции принимает от первого клиента запрос на установление первого соединения, причем после успешного установления первого соединения ретрансляции между первым клиентом и сервером ретрансляции сервер ретрансляции непрерывно направляет и передает видеоданные для первого и второго клиентов;
если второе соединение ретрансляции между вторым клиентом и сервером ретрансляции прервано, а первое соединение ретрансляции между первым клиентом и сервером ретрансляции успешно установлено, то сервер ретрансляции принимает от второго клиента запрос на установление второго соединения, причем после успешного установления второго соединения ретрансляции между сервером ретрансляции и вторым клиентом сервер ретрансляции непрерывно направляет и передает видеоданные для первого и второго клиентов;
если первое соединение ретрансляции между первым клиентом и сервером ретрансляции и второе соединение ретрансляции между вторым клиентом и сервером ретрансляции прерваны, то сервер ретрансляции принимает от первого и второго клиентов запросы на установление первого и второго соединений соответственно, причем после успешного установления первого соединения ретрансляции между первым клиентом и сервером ретрансляции и второго соединения ретрансляции между вторым клиентом и сервером ретрансляции сервер ретрансляции непрерывно направляет и передает видеоданные для первого и второго клиентов.
Р2Р-сервер также обеспечивает режим Р2Р для передачи видеоданных первым и вторым клиентами, временно приостанавливает соединение между первым клиентом и сервером ретрансляции и соединение между вторым клиентом и сервером ретрансляции, когда первое соединение ретрансляции между первым клиентом и сервером ретрансляции успешно установлено, а второе соединение ретрансляции между вторым клиентом и сервером ретрансляции не установлено, при этом первое Р2Р-соединение между первым клиентом и Р2Р-сервером и второе Р2Р-соединение между вторым клиентом и Р2Р-сервером успешно установлены.
Сервер ретрансляции также сконфигурирован для проверки подлинности первого и второго пользователей, соответственно, по идентификационным и аутентификационным данным первого пользователя, содержащимся в запросе на установление первого соединения, и идентификационным и аутентификационным данным второго пользователя, содержащимся в запросе на установление второго соединения, причем при успешной проверке подлинности первого и второго пользователей сервер ретрансляции устанавливает первое и второе соединения ретрансляции с первым и вторым клиентом соответственно.
Р2Р-сервер также сконфигурирован для проверки подлинности первого и второго пользователей, соответственно, по идентификационным и аутентификационным данным первого пользователя, содержащимся в запросе на установление первого соединения, и идентификационным и аутентификационным данным второго пользователя, содержащимся в запросе на установление второго соединения, причем при успешной проверке подлинности первого и второго пользователей Р2Р-сервер устанавливает первое и второе Р2Р-соединения с первым и вторым клиентом соответственно.
Предлагаемое устройство передачи видеоданных установлено на первом клиенте и содержит:
модуль отправки, сконфигурированный для отправки на сервер ретрансляции и на Р2Р-сервер запроса на установление первого соединения; модуль передачи с ретрансляцией, сконфигурированный для установления первого соединения ретрансляции с сервером ретрансляции после отправки первым клиентом запроса на установление первого соединения на сервер ретрансляции через модуль отправки, причем после успешного установления первого соединения ретрансляции первый и другой клиенты направляют и передают видеоданные через сервер ретрансляции;
модуль приостановки передачи с ретрансляцией, сконфигурированный для установления первого Р2Р-соединения с Р2Р-сервером по запросу на установление первого соединения, отправленному модулем отправки на Р2Р-сервер, после направления и передачи видеоданных первым клиентом через модуль передачи с ретрансляцией другому клиенту с использованием сервера ретрансляции, причем после успешного установления первого Р2Р-соединения первый клиент разрывает первое соединение ретрансляции с сервером ретрансляции;
модуль передачи в режиме Р2Р, позволяющий первому и другому клиентам передавать видеоданные в режиме Р2Р после того, как первое Р2Р-соединение между первым клиентом и Р2Р-сервером успешно установлено.
Модуль приостановки передачи с ретрансляцией содержит также блок приостановки передачи с ретрансляцией, сконфигурированный для приостановки направления и передачи видеоданных между первым и другим клиентом через сервер ретрансляции после успешного установления первого Р2Р-соединения между первым клиентом и Р2Р-сервером и завершения передачи первого кадра данных между первым и другим клиентом в режиме Р2Р.
Предлагаемое устройство содержит также модуль сохранения передачи с ретрансляцией, сконфигурированный для определения того, следует ли сохранять первое соединение ретрансляции между первым клиентом и сервером ретрансляции во время передачи видеоданных между первым и другим клиентами в режиме Р2Р в том случае, если происходит разрыв соединения между первым и другим клиентами, или если коэффициент потери пакетов видеоданных, передаваемых между указанными клиентами, превышает предварительно заданное значение, или если время буферизации видеоданных, передаваемых между указанными клиентами, превышает предварительно заданное значение, причем
если первое соединение ретрансляции между первым клиентом и сервером ретрансляции сохраняется, то модуль сохранения передачи с ретрансляцией обеспечивает непрерывное направление и передачу видеоданных для первого и другого клиентов через сервер ретрансляции, причем в противном случае первый клиент отправляет на сервер ретрансляции запрос на установление первого соединения, причем после успешного установления первого соединения ретрансляции между первым клиентом и сервером ретрансляции модуль сохранения передачи с ретрансляцией обеспечивает непрерывное направление и передачу видеоданных для первого и другого клиентов через сервер ретрансляции.
В соответствии с предлагаемым техническим решением при начальной передаче видеоданных проблемы, связанные с низкой скоростью входа пользователей в систему и низкой скоростью соединений пользователей, могут быть решены за счет использования для передачи видеоданных серверных технологий передачи. Затем пользователям предоставляется возможность быстрой передачи видео. Впечатление пользователей улучшается. При установлении Р2Р-соеди нения полоса пропускания сети сохраняется за счет использования для передачи видеоданных режима Р2Р.
Краткое описание чертежей
На фиг.1 представлена блок-схема, иллюстрирующая последовательность этапов предлагаемого способа в соответствии с первым вариантом осуществления изобретения.
На фиг.2 показана блок-схема, иллюстрирующая последовательность этапов предлагаемого способа согласно второму варианту осуществления изобретения.
На фиг.3 схематично представлена структура предлагаемой системы в соответствии с третьим вариантом осуществления изобретения.
На фиг.4 схематично показана структура предлагаемого устройства в соответствии с четвертым вариантом осуществления изобретения.
Осуществление настоящего изобретения
Чтобы задачи, технические решения и преимущества изобретения стали понятнее, ниже приведено подробное описание вариантов изобретения со ссылкой на прилагаемые чертежи.
В соответствии с настоящим изобретением изначально для передачи видеоданных используют сервер ретрансляции. После того, как одноранговое соединение (Р2Р-соединение) успешно установлено, для непосредственной передачи видеоданных используют режим Р2Р. Благодаря этому удается решить такие проблемы пользователей, как низкая скорость входа в систему и низкая скорость соединений. Пользователь получает возможность быстрой передачи видео, в результате чего его впечатление улучшается. Сохраняется полоса пропускания сети. Если при работе в режиме Р2Р возникают какие-либо проблемы, и этот режим использовать невозможно, выполняется своевременное переключение на сервер ретрансляции. При использовании для передачи видеоданных сервера ретрансляции пользователю предоставляется возможность непрерывной передачи видеоданных.
Вариант 1
Для того чтобы решить такие проблемы, как низкая скорость входа в систему, низкая скорость соединения и даже невозможность соединения, возникающие при использовании клиентом режима Р2Р, и, тем самым, улучшить впечатления пользователей и сохранить полосу пропускания сети, в данном варианте изобретения предлагается способ передачи видеоданных. Как показано на фиг.1, указанный способ содержит следующие этапы.
Этап 101, на котором первый клиент отправляет на сервер ретрансляции и Р2Р-сервер запрос на установление первого соединения. Второй клиент отправляет на сервер ретрансляции и Р2Р-сервер запрос на установление второго соединения.
Первый и второй клиенты представляют собой, например, игровые клиенты, клиенты веб-страниц, клиенты мобильных терминалов и прочее. Указанный список не является ограничивающим.
Этап 102, на котором после успешного установления первого соединения ретрансляции между первым клиентом и сервером ретрансляции и второго соединения ретрансляции между вторым клиентом и сервером ретрансляции первый и второй клиенты для направления и передачи видеоданных используют сервер ретрансляции.
Этап 103, на котором после успешного установления первого Р2Р-соединения между первым клиентом и Р2Р-сервером и второго Р2Р-соединения между вторым клиентом и Р2Р-сервером первый и второй клиенты временно приостанавливают направление и передачу видеоданных через сервер ретрансляции.
Этап 104, на котором первый и второй клиенты используют режим Р2Р для непосредственной передачи видеоданных.
После успешного установления первого Р2Р-соединения между первым клиентом и Р2Р-сервером и второго Р2Р-соединения между вторым клиентом и Р2Р-сервером первый и второй клиенты временно приостанавливают направление и передачу видеоданных через сервер ретрансляции, что предусматривает следующее.
После установления первого Р2Р-соединения между первым клиентом и Р2Р-сервером и второго Р2Р-соединения между вторым клиентом и Р2Р-сервером, после завершения передачи первого кадра данных в режиме Р2Р, первый и второй клиенты временно приостанавливают направление и передачу видеоданных через сервер ретрансляции.
После начала непосредственной передачи видеоданных первым и вторым клиентами в режиме Р2Р способ предусматривает выполнение также следующих действий.
Если во время передачи видеоданных первым и вторым клиентами в Р2Р-режиме соединение между указанными клиентами разрывается, или коэффициент потери пакетов видеоданных, передаваемых указанными клиентами, превышает предварительно заданное значение, или же время буферизации видеоданных, передаваемых указанными клиентами, превышает предварительно заданное значение, первый клиент определяет, поддерживать ли первое соединение ретрансляции с сервером ретрансляции, а второй клиент определяет, поддерживать ли второе соединение ретрансляции с сервером ретрансляции.
Предварительно заданное значение коэффициента потери пакетов и предварительно заданное время буферизации можно выбирать в зависимости от фактических условий. Например, предварительно заданное значение коэффициента потери пакетов может составлять 10%, а предварительно заданное время буферизации может составлять 10 секунд (указанные значения не ограничиваются приведенными здесь величинами).
Если первое соединение ретрансляции между первым клиентом и сервером ретрансляции и второе соединение ретрансляции между вторым клиентом и сервером ретрансляции сохраняется, то видеоданные непрерывно передаются через сервер ретрансляции.
Если первое соединение ретрансляции между первым клиентом и сервером ретрансляции прервано, а второе соединение ретрансляции между вторым клиентом и сервером ретрансляции успешно установлено, то первый клиент отправляет на сервер ретрансляции запрос на установление первого соединения. После успешного установления первого соединения между первым клиентом и сервером ретрансляции первый и второй клиенты направляют и передают видеоданные через сервер ретрансляции.
Если второе соединение ретрансляции между вторым клиентом и сервером ретрансляции прервано, а первое соединение ретрансляции между первым клиентом и сервером ретрансляции успешно установлено, то второй клиент отправляет на сервер ретрансляции запрос на установление второго соединения. После успешного установления второго соединения ретрансляции между вторым клиентом и сервером ретрансляции первый и второй клиенты направляют и передают видеоданные через сервер ретрансляции.
Если первое соединение ретрансляции между первым клиентом и сервером ретрансляции и второе соединение ретрансляции между вторым клиентом и сервером ретрансляции прерваны, то первый клиент отправляет на сервер ретрансляции запрос на установление первого соединения, а второй клиент направляет на сервер ретрансляции запрос на установление второго соединения.
После успешного установления первого соединения ретрансляции между первым клиентом и сервером ретрансляции, а также второго соединения ретрансляции между вторым клиентом и сервером ретрансляции первый и второй клиенты направляют и передают видеоданные через сервер ретрансляции.
Способ также предусматривает выполнение следующих действий.
Если до установления первого и второго соединений ретрансляции (а именно, первого - между первым клиентом и сервером ретрансляции, второго - между вторым клиентом и сервером ретрансляции) уже установлены первое Р2Р-соединение между первым клиентом и Р2Р-сервером и второе Р2Р-соединение между вторым клиентом и Р2Р-сервером, первый и второй клиенты могут непосредственно передавать видеоданные в режиме Р2Р. При этом, указанные клиенты могут, соответственно, разорвать соединения с сервером ретрансляции.
До установления первого и второго соединений ретрансляции (а именно, первого - между первым клиентом и сервером ретрансляции, второго - между вторым клиентом и сервером ретрансляции) способ предусматривает выполнение следующих действий.
Сервер ретрансляции принимает от первого и второго клиентов запросы на установление первого и второго соединений соответственно.
Сервер ретрансляции проверяет подлинность первого и второго пользователей, соответственно, по идентификационным и аутентификационным данным первого пользователя, содержащимся в запросе на установление первого соединения, и по идентификационным и аутентификационным данным второго пользователя, содержащимся в запросе на установление второго соединения.
При успешной проверке подлинности первого и второго пользователей сервер ретрансляции устанавливает первое и второе соединения ретрансляции с первым и вторым клиентами соответственно и отправляет им ответы об успешном установлении указанных соединений.
До установления первого и второго Р2Р-соединений (а именно, первого - между первым клиентом и Р2Р-сервером, второго - между вторым клиентом и Р2Р-сервером) способ предусматривает выполнение следующих действий.
Р2Р-сервер принимает от первого и второго клиентов запросы на установление первого и второго соединения соответственно.
Р2Р-сервер проверяет подлинность первого и второго пользователей, соответственно, по идентификационным и аутентификационным данным первого пользователя, содержащимся в запросе на установление первого соединения, и по идентификационным и аутентификационным данным второго пользователя в запросе на установление второго соединения.
При успешной проверке подлинности первого и второго пользователей Р2Р-сервер устанавливает первое и второе Р2Р-соединения с первым и вторым клиентом соответственно и отправляет им ответы об успешном установлении указанных соединений.
В способе согласно данному варианту изобретения изначально для передачи видеоданных используют сервер ретрансляции. После успешного установления Р2Р-соединения видеоданные могут передаваться напрямую в режиме Р2Р. Благодаря этому удается решить такие проблемы, как низкая скорость входа пользователей в систему и низкая скорость их соединений. Затем пользователь получает возможность быстрой передачи видео. Впечатление пользователей улучшается. Полоса пропускания сети сохраняется. Если режим Р2Р нельзя использовать из-за возникновения каких-либо проблем, возможно своевременное переключение на сервер ретрансляции. При использовании для передачи видеоданных сервера ретрансляции пользователю предоставляется возможность непрерывной передачи видеоданных.
Вариант 2
Для того чтобы устранить такие проблемы, как низкая скорость входа в систему, низкая скорость соединения и даже отсутствие соединения, возникающие при использовании клиентом режима Р2Р, и, тем самым, улучшить впечатления пользователей и сохранить полосу пропускания сети, в данном варианте изобретения предлагается способ передачи видеоданных. Данный вариант изобретения поясняется на примере, в котором пользователи А и В передают видеоданные в сетевой видеоигре. Ниже данный вариант изобретения описан со ссылкой на фиг.2.
На этапе 201 пользователи А и В входят в систему сетевой видеоигры, используя игровые клиенты А и В, соответственно.
Пользователь А входит в систему сетевой видеоигры, используя учетную запись и пароль на игровом клиенте. После успешного входа в систему сетевой видеоигры пользователь посредством игрового клиента может взаимодействовать с игровым сервером в отношении данных игры для реализации игровых функций.
Учетная запись и пароль пользователя могут использоваться в качестве его идентификатора, который является уникальным в игровой системе. Пользователь может получить учетную запись и пароль после регистрации в интерфейсе сетевой видеоигры или в других интерфейсах. Перед входом пользователей А и В в игровую систему с помощью соответствующих игровых клиентов указанным пользователям необходимо зарегистрировать соответствующие учетную запись и пароль в интерфейсе игровой системы или в других интерфейсах.
На этапе 202, в случае возникновения необходимости установления соединения для передачи видеоданных в сетевой видеоигре, игровые клиенты А и В отправляют на сервер ретрансляции и на Р2Р-сервер одновременно запрос на вход в систему и на установление соединения.
Когда игровым клиентам А и В требуется установить соединение в сетевой видеоигре для интерактивной передачи видеоданных, игровой клиент А отправляет одновременно на сервер ретрансляции и на Р2Р-сервер запрос на вход в систему и на установление соединения. Игровой клиент В также отправляет одновременно на сервер ретрансляции и Р2Р-сервер запрос на вход в систему и на установление соединения.
Запрос на вход в систему и на установление соединения отправляется игровым клиентом на сервер ретрансляции и на Р2Р-сервер одновременно. На практике скорость входа и соединения с сервером ретрансляции, как правило, выше, чем скорость входа и соединения с Р2Р-сервером. Поэтому запрос на вход в систему и на установление соединения сначала может быть отправлен на сервер ретрансляции, чтобы пользователь смог подключиться и начать передавать видеоданные как можно быстрее. Затем запрос на вход в систему и на установление соединения может быть отправлен на Р2Р-сервер. Сервер ретрансляции предусмотрен в системе сетевой видеоигры для передачи видеоданных. Он предназначен для ретрансляции видеоданных между пользователями. Р2Р-сервер предусмотрен в системе сетевой видеоигры для непосредственной передачи видеоданных между пользователями.
На этапе 203 сервер ретрансляции принимает запросы на вход в систему и установление соединения от игровых клиентов А и В, устанавливает соответственно для каждого из них соединение ретрансляции и отправляет им ответы об успешном установлении соединения ретрансляции.
Идентификационные и аутентификационные данные для идентификации пользователя могут содержаться в запросе на вход в систему и установление соединения, отправляемом игровым клиентом на сервер ретрансляции. Указанные данные могут представлять собой, например, учетную запись и пароль, зарегистрированные пользователем в игровой системе, или зашифрованный идентификатор, полученный после преобразования учетной записи и пароля, зарегистрированных пользователем в игровой системе. Игровой клиент входит на сервер ретрансляции, используя идентификатор. На сервере ретрансляции заранее сохраняется открытый ключ для проверки подлинности пользователя с помощью этого ключа и идентификационных и аутентификационных данных, отправляемых игровым клиентом.
Получив от игровых клиентов А и В запросы на вход в систему и установление соединения, сервер ретрансляции извлекает идентификационные и аутентификационные данные, содержащиеся в запросе на вход в систему и установление соединения, полученном от игрового клиента А, и выполняет проверку подлинности с помощью открытого ключа, сохраненного заранее на сервере ретрансляции. При успешной проверке подлинности сервер ретрансляции устанавливает соединение ретрансляции с игровым клиентом А. После выполнения аналогичных операций сервер ретрансляции устанавливает соединение ретрансляции с игровым клиентом В.
Установив соединения ретрансляции с игровыми клиентами А и В, сервер ретрансляции отправляет им ответы об успешном установлении соединения ретрансляции.
На этапе 204 игровые клиенты А и В получают от сервера ретрансляции ответы об успешном установлении соединения ретрансляции и передают видеоданные через указанный сервер.
Игровой клиент А посылает видеоданные игровому клиенту В через сервер ретрансляции и принимает видеоданные от игрового клиента В через указанный сервер. Игровой клиент В посылает видеоданные игровому клиенту А через сервер ретрансляции и принимает видеоданные от игрового клиента А через указанный сервер.
С одной стороны, игровой клиент пользователя ответственен за сбор и кодирование локального видео для получения локальных видеоданных и за отправку локальных видеоданных на сервер ретрансляции, чтобы сервер ретрансляции мог передать указанные локальные видеоданные конечному пользователю одноранговой сети. С другой стороны, игровой клиент пользователя ответственен также за прием видеоданных от конечного пользователя одноранговой сети и за декодирование принятых видеоданных для отображения пользователю. Оба игровых клиента А и В в данном варианте изобретения поддерживают обе указанные функции.
Время установления игровыми клиентами А и В соединений с сервером ретрансляции может полностью не совпадать. Возможна некоторая разница во времени. После установления соединения между клиентом А и сервером ретрансляции и соединения между клиентом В и сервером ретрансляции видеоданные могут передаваться через сервер ретрансляции.
На этапе 205, получив от игровых клиентов А и В запросы на вход в систему и установление соединения, Р2Р-сервер устанавливает с каждым из них соединение и отправляет им ответы об успешном установлении Р2Р-соединения.
Идентификационные и аутентификационные данные для идентификации пользователя могут содержаться в запросе на вход в систему и установление соединения, отправляемом игровым клиентом на Р2Р-сервер. Указанные данные представляют собой, например, учетную запись и пароль, зарегистрированные пользователем в игровой системе, или зашифрованный идентификатор, полученный после преобразования учетной записи и пароля, зарегистрированных пользователем в игровой системе. Игровой клиент входит на Р2Р-сервер, используя идентификатор. На Р2Р-сервере заранее сохраняется открытый ключ для проверки подлинности пользователя с помощью этого ключа и идентификационных и аутентификационных данных, отправляемых игровым клиентом пользователя.
Получив от игровых клиентов А и В запросы на вход в систему и установление соединения, Р2Р-сервер извлекает идентификационные и аутентификационные данные, содержащиеся в запросе на вход в систему и установление соединения, полученном от игрового клиента А, и выполняет проверку подлинности с помощью открытого ключа, сохраненного заранее на Р2Р-сервере. При успешной проверке подлинности Р2Р-сервер устанавливает соединение с игровым клиентом А. После выполнения аналогичных операций Р2Р-сервер устанавливает соединение с игровым клиентом В.
Установив Р2Р-соединения с игровыми клиентами А и В, Р2Р-сервер отправляет им ответы об успешном установлении Р2Р-соединений.
Р2Р-сервер непосредственно передает видеоданные между игровыми клиентами. Каждый игровой клиент является не только сервером, но и клиентом. Поэтому по сравнению с сервером ретрансляции такие характеристики игрового клиента, как обрабатывающая способность, скорость работы и ресурсы полосы пропускания, хуже. Таким образом, скорость входа в систему и соединения с Р2Р-сервером, как правило, низкая, причем она ниже, чем скорость входа в систему и соединения с сервером ретрансляции. В результате, до того, как Р2Р-сервер установит соединение с игровым клиентом пользователя, указанный игровой клиент может уже установить соединение с сервером ретрансляции и передавать видеоданные.
На этапе 206 игровые клиенты А и В получают от Р2Р-сервера ответы об успешном установлении Р2Р-соединения и временно приостанавливают передачу видеоданных через сервер ретрансляции.
Получив от Р2Р-сервера ответ об успешном установлении Р2Р-соединений, игровые клиенты А и В временно приостанавливают соединение с сервером ретрансляции, а также передачу через него видеоданных. Игровые клиенты А и В могут также непосредственно разорвать соединения с сервером ретрансляции.
На этапе 207, временно приостановив передачу видеоданных через сервер ретрансляции, игровые клиенты А и В передают видеоданные непосредственно в режиме Р2Р.
Игровой клиент А непосредственно посылает видеоданные игровому клиенту В в режиме Р2Р и непосредственно принимает видеоданные, передаваемые игровым клиентом В, в режиме Р2Р. Игровой клиент В непосредственно посылает видеоданные игровому клиенту А в режиме Р2Р и непосредственно принимает видеоданные, передаваемые игровым клиентом А, в режиме Р2Р.
С одной стороны, игровой клиент пользователя ответственен за сбор и кодирование локального видео для получения локальных видеоданных и за отправку локальных видеоданных конечному пользователю одноранговой сети в режиме Р2Р. С другой стороны, игровой клиент пользователя ответственен также за прием видеоданных от конечного пользователя одноранговой сети в режиме Р2Р и за декодирование принятых видеоданных для отображения пользователю.
Время установления игровыми клиентами А и В соединений с Р2Р-сервером может полностью не совпадать. Возможна некоторая разница во времени. Игровые клиенты А и В временно приостанавливают передачу видеоданных серверу ретрансляции только после того, как они установят соединения с Р2Р-сервером и получат от него ответы об успешном установлении указанных соединений. Затем игровые клиенты А и В могут непосредственно передавать видеоданные в режиме Р2Р.
На этапе 208, если во время непосредственной передачи видеоданных между клиентами А и В в режиме Р2Р соединение разрывается, или время буферизации превышает предварительно заданное значение, или же коэффициент потери пакетов передаваемых видеоданных превышает предварительно заданное значение, игровые клиенты А и В переключаются на сервер ретрансляции, что позволяет непрерывно передавать видеоданные через указанный сервер ретрансляции.
Если во время непосредственной передачи видеоданных между игровыми клиентами А и В в режиме Р2Р, игровой клиент А не может подключиться к игровому клиенту В, или время буферизации соединения превышает предварительно заданное значение, что приводит к прерываемой передаче видео, или коэффициент потери пакетов передаваемых видеоданных превышает предварительно заданное значение, непрерывная передача видеоданных в режиме Р2Р невозможна. В этом случае игровые клиенты А и В могут снова переключиться на сервер ретрансляции для непрерывной передачи видеоданных через указанный сервер. В результате, удается сохранить непрерывную передачу видеоданных пользователей и улучшить их впечатление.
Предварительно заданное значение коэффициента потери пакетов и предварительно заданное время буферизации можно выбирать в зависимости от фактических условий. Например, предварительно заданное значение коэффициента потери пакетов может составлять 10%, а предварительно заданное время буферизации может составлять 10 секунд (указанные значения не ограничиваются приведенными здесь величинами).
Если на этапе 206 первое соединение ретрансляции между игровым клиентом и сервером ретрансляции лишь временно приостанавливается, а не разрывается, то для восстановления соединения необходимо только отменить приостановку, то есть, сервер ретрансляции может непрерывно использоваться для передачи видеоданных. Если на этапе 206 соединение ретрансляции между игровым клиентом и сервером ретрансляции разрывается, то игровой клиент должен снова отправить на сервер ретрансляции запрос на вход в систему и установление соединения. После проверки подлинности сервер ретрансляции снова устанавливает с игровым клиентом соединение ретрансляции. После того, как сервер ретрансляции отправляет игровому клиенту ответ об успешном установлении соединения ретрансляции, видеоданные между игровыми клиентами могут непрерывно передаваться через сервер ретрансляции, то есть еще раз выполняются этапы 202-204.
Кроме того, если с Р2Р-сервером возникают какие-либо проблемы, игровой клиент для передачи видеоданных использует сервер ретрансляции. При этом игровой клиент может, тем не менее, отправить на Р2Р-сервер запрос на вход в систему и установление соединения. После восстановления Р2Р-сервера становится возможным выполнение этапов 205-207. Игровой клиент может переключиться в режим Р2Р, чтобы использовать его для передачи видеоданных.
Из описания этапов 201-207 видно, что изначально игровой клиент направляет и передает видеоданные в сетевой видеоигре через сервер ретрансляции. После установления Р2Р-соединения для непосредственной передачи видеоданных используется режим Р2Р. Таким образом, удается решить такие проблемы, как низкая скорость входа в систему, низкая скорость соединения и даже невозможность соединения, возникающие при использовании игровым клиентом режима Р2Р, и, тем самым, удается улучшить впечатление пользователя и сохранить полосу пропускания сети. Если режим Р2Р из-за каких-либо проблем использовать нельзя, то возможно своевременное переключение на сервер ретрансляции для передачи видеоданных через него, чтобы игровой клиент мог непрерывно передавать видеоданные. Таким образом, может быть обеспечена непрерывность передачи видео пользователя.
Кроме того, на этапе 202 после того, как игровые клиенты А и В направляют одновременно на сервер ретрансляции и на Р2Р-сервер запросы на вход в систему и установление соединения, первым соединение с игровыми клиентами устанавливает Р2Р-сервер. То есть игровые клиенты А и В получают от Р2Р-сервера ответ об успешном установлении Р2Р-соединения еще до получения ответа об успешном установлении соединения ретрансляции от сервера ретрансляции. Таким образом, игровые клиенты А и В сразу используют режим Р2Р для передачи видеоданных. Устанавливать соединение с сервером ретрансляции не требуется. Соединение между игровыми клиентами и сервером ретрансляции может быть сразу приостановлено.
Однако если из-за каких-либо проблем использовать режим Р2Р невозможно, то игровому клиенту необходимо снова установить соединение с сервером ретрансляции, чтобы обеспечить передачу видеоданных через него.
Кроме того, если после успешного установления соединения между игровым клиентом и сервером ретрансляции игровой клиент долго не может установить соединение с Р2Р-сервером, или установленное соединение между игровым клиентом и Р2Р-сервером долго не удается разорвать, игровой клиент непрерывно использует для передачи видеоданных сервер ретрансляции.
В данном варианте изобретения приведен пример, в котором игровые клиенты А и В передают видеоданные в сетевой видеоигре. Один игровой клиент может одновременно обмениваться видеоданными с несколькими игровыми клиентами. Соответственно, один игровой клиент может установить соединение с каждым из нескольких игровых клиентов и изначально передавать данные каждому из них через сервер ретрансляции. После установления Р2Р-соединения один игровой клиент может непосредственно передавать видеоданные в режиме Р2Р. Последовательность действий при этом аналогична представленной выше и здесь не повторяется.
В данном варианте изобретения приведен пример, в котором пользователь передает видеоданные в сетевой видеоигре. Предложенный в данном варианте изобретения способ применим также для любых других сред, в которых требуется передача видеоданных, например при Мгновенном Обмене Сообщениями МОС (IМ), при онлайн-чате и прочее. Этапы способа аналогичны и здесь не повторяются.
В способе согласно данному варианту изобретения, изначально видеоданные могут направляться и передаваться игровыми клиентами пользователей в сетевой видеоигре через сервер ретрансляции. После успешного установления Р2Р-соединения видеоданные могут передаваться непосредственно в режиме Р2Р. Благодаря этому удается решить такие проблемы, как низкая скорость входа в систему, низкая скорость соединения и даже невозможность соединения, возникающие при использовании клиентами пользователей режима Р2Р, и, тем самым, удается улучшить впечатление пользователя и сохранить полосу пропускания сети. Если режим Р2Р из-за каких-либо проблем использовать нельзя, то возможно своевременное переключение на сервер ретрансляции для передачи видеоданных через него. Таким образом, пользователю предоставляется возможность непрерывной передачи видеоданных для обеспечения непрерывности его видео.
Вариант 3
В данном варианте изобретения предлагается система передачи видеоданных. Как показано на фиг.3, система содержит первый клиент 301, второй клиент 302, сервер 303 ретрансляции и Р2Р-сервер 304.
Первый клиент 301 настроен таким образом, чтобы отправлять на сервер 303 ретрансляции и Р2Р-сервер 304 запросы на установление первого соединения, устанавливать первое соединение ретрансляции с сервером 303 ретрансляции, направлять и передавать видеоданные второму клиенту 302 через сервер 303 ретрансляции, устанавливать первое Р2Р-соединение с Р2Р-сервером 304, временно приостанавливать направление и передачу видеоданных второму клиенту 302 через сервер 303 ретрансляции и непосредственно передавать видеоданные второму клиенту 302 в режиме Р2Р.
Второй клиент 302 настроен таким образом, чтобы отправлять на сервер 303 ретрансляции и на Р2Р-сервер 304 запросы на установление второго соединения, устанавливать второе соединение ретрансляции с сервером 303 ретрансляции, направлять и передавать видеоданные первому клиенту 301 через сервер 303 ретрансляции, устанавливать второе Р2Р-соединение с Р2Р-сервером 304, временно приостанавливать направление и передачу видеоданных первому клиенту 301 через сервер 303 ретрансляции и непосредственно передавать видеоданные первому клиенту 301 в режиме Р2Р.
Сервер 303 ретрансляции настроен таким образом, чтобы принимать запросы на установление первого и второго соединений от первого клиента 301 и второго клиента 302 соответственно, устанавливать первое соединение ретрансляции с первым клиентом 301, устанавливать второе соединение ретрансляции со вторым клиентом 302, направлять и передавать видеоданные первому клиенту 301 и второму клиенту 302.
Р2Р-сервер 304 настроен таким образом, чтобы принимать запросы на установление первого и второго соединений от первого клиента 301 и второго клиента 302 соответственно и устанавливать первое и второе Р2Р-соединения с первым клиентом 301 и вторым клиентом 302 соответственно. Когда первый клиент 301 и второй клиент 302 временно приостанавливают направление и передачу видеоданных через сервер 303 ретрансляции, Р2Р-сервер 304 обеспечивает режим Р2Р для первого клиента 301 и второго клиента 302, чтобы они могли напрямую передавать видеоданные.
Первый и второй клиенты представляют собой, например, игровые клиенты, клиенты веб-страниц, клиенты мобильных терминалов и прочее. Указанный список не является ограничивающим.
После успешного установления первого Р2Р-соединения между первым клиентом 301 и Р2Р-сервером 304, второго Р2Р-соединения между вторым клиентом 302 и Р2Р-сервером 304 и завершения передачи первого кадра данных между первым клиентом 301 и вторым клиентом 302, указанные клиенты 301 и 302 временно приостанавливают направление и передачу видеоданных через сервер 303 ретрансляции.
Соответственно, после успешного установления второго Р2Р-соединения между вторым клиентом 302 и Р2Р-сервером 304, первого Р2Р-соединения между первым клиентом 301 и Р2Р-сервером 304 и завершения передачи первого кадра данных в режиме Р2Р между вторым клиентом 302 и первым клиентом 301, указанные клиенты 302 и 301 временно приостанавливают направление и передачу видеоданных через сервер 303 ретрансляции.
Если во время передачи видеоданных между первым клиентом 301 и вторым клиентом 302 в режиме Р2Р соединение между первым клиентом 301 и вторым клиентом 302 разрывается, или коэффициент потери пакетов видеоданных, передаваемых между указанными клиентами, превышает предварительно заданное значение, или же время буферизации видеоданных, передаваемых между указанными клиентами, превышает предварительно заданное значение, причем первый клиент 301 определяет, что необходимо сохранить первое соединение ретрансляции с сервером 303 ретрансляции, и второй клиент 302 определяет, что необходимо сохранить второе соединение ретрансляции с сервером 303 ретрансляции, то сервер 303 ретрансляции обеспечивает непрерывное направление и передачу видеоданных для первого клиента 301 и второго клиента 302.
Предварительно заданное значение коэффициента потери пакетов и предварительно заданное время буферизации можно выбирать в зависимости от фактических условий. Например, предварительно заданное значение коэффициента потери пакетов может составлять 10%, а предварительно заданное время буферизации может составлять 10 секунд (указанные значения не ограничиваются приведенными здесь величинами).
При разрыве первого соединения ретрансляции между первым клиентом 301 и сервером 303 ретрансляции сервер 303 ретрансляции принимает от первого клиента 301 запрос на установление первого соединения. После успешного установления первого соединения ретрансляции с первым клиентом 301 сервер 303 ретрансляции непрерывно направляет и передает видеоданные для первого клиента 301 и второго клиента 302.
При разрыве второго соединения ретрансляции между вторым клиентом 302 и сервером 303 ретрансляции сервер 303 ретрансляции принимает от второго клиента 302 запрос на установление второго соединения. После успешного установления второго соединения ретрансляции со вторым клиентом 302 сервер 303 ретрансляции непрерывно направляет и передает видеоданные для первого клиента 301 и второго клиента 302.
Если первый клиент 301 и второй клиент 302 разрывают соединения с сервером 303 ретрансляции, то сервер 303 ретрансляции принимает от первого клиента 301 и второго клиента 302 запросы на установление первого и второго соединений соответственно. После успешного установления первого соединения ретрансляции с первым клиентом 301 и второго соединения ретрансляции со вторым клиентом 302 сервер 303 ретрансляции непрерывно направляет и передает видеоданные для первого клиента 301 и второго клиента 302.
Если первое соединение ретрансляции между первым клиентом 301 и сервером 303 ретрансляции успешно установлено, а второе соединение ретрансляции между вторым клиентом 302 и сервером 303 ретрансляции не установлено и при этом первое Р2Р-соединение между первым клиентом 301 и Р2Р-сервером успешно установлено и второе Р2Р-соединение между вторым клиентом 302 и Р2Р-сервером 304 успешно установлено, то Р2Р-сервер 304 непосредственно передает видеоданные для первого клиента 301 и второго клиента 302 в режиме Р2Р и разрывает соединение между первым клиентом 301 и сервером 303 ретрансляции и соединение между вторым клиентом 302 и сервером 303 ретрансляции.
Сервер 303 ретрансляции настроен также для проверки подлинности первого и второго пользователей, соответственно, по идентификационным и аутентификационным данным первого пользователя, содержащимся в запросе на установление первого соединения, и идентификационным и аутентификационным данным второго пользователя, содержащимся в запросе на установление второго соединения. При успешной проверке подлинности первого и второго пользователей сервер 303 ретрансляции устанавливает первое и второе соединения ретрансляции с первым клиентом 301 и вторым клиентом 302 соответственно.
Р2Р-сервер 304 настроен также для проверки подлинности первого и второго пользователей, соответственно, по идентификационным и аутентификационным данным первого пользователя, содержащимся в запросе на установление первого соединения, и идентификационным и аутентификационным данным второго пользователя, содержащимся в запросе на установление второго соединения. При успешной проверке подлинности первого и второго пользователей Р2Р-сервер 304 устанавливает первое и второе Р2Р-соединения с первым клиентом 301 и вторым клиентом 302 соответственно.
При использовании системы, предлагаемой в данном варианте изобретения, изначально для передачи видеоданных используется сервер ретрансляции. После успешного установления Р2Р-соединения для непосредственной передачи видеоданных используется режим Р2Р. Благодаря этому удается решить такие проблемы, как низкая скорость входа в систему, низкая скорость соединения и даже невозможность соединения, возникающие при использовании клиентом режима Р2Р, что, в свою очередь, позволяет пользователю быстро передавать видеоданные. Благодаря этому удается улучшить впечатление пользователей и сохранить полосу пропускания сети. Если из-за наличия каких-либо проблем использовать режим Р2Р нельзя, то возможно своевременное переключение на сервер ретрансляции. Видеоданные могут передаваться через сервер ретрансляции, что обеспечивает возможность непрерывной передачи видеоданных пользователем.
Вариант 4
В данном варианте изобретения предложено устройство для передачи видеоданных, установленное на первом клиенте. Как показано на фиг.4, устройство содержит следующие компоненты.
Модуль 401 отправки сконфигурирован для отправки на сервер ретрансляции и Р2Р-сервер запроса на установление первого соединения.
Первый и второй клиенты представляют собой, например, игровые клиенты, клиенты веб-страниц, клиенты мобильных терминалов и прочее. Указанный список не является ограничивающим.
Модуль 402 передачи с ретрансляцией сконфигурирован для установления первого соединения ретрансляции с сервером ретрансляции после отправки первым клиентом запроса на установление первого соединения на сервер ретрансляции через модуль 401 отправки. После успешного установления первого соединения ретрансляции первый и другие клиенты получают возможность направлять и передавать видеоданные через сервер ретрансляции.
Модуль 403 приостановки передачи с ретрансляцией сконфигурирован для установления первого Р2Р-соединения с Р2Р-сервером по запросу на установление первого соединения, отправленному модулем 401 отправки на Р2Р-сервер, после направления и передачи видеоданных между модулем 402 передачи с ретрансляцией первого клиента и других клиентов через сервер ретрансляции. После успешного установления первого Р2Р-соединения первый клиент разрывает соединение с сервером ретрансляции.
После того, как первое Р2Р-соединение между первым клиентом и Р2Р-сервером успешно установлено, модуль 404 передачи в режиме Р2Р обеспечивает непосредственную передачу видеоданных между первым клиентом и другими клиентами в режиме Р2Р.
Кроме того, модуль 403 приостановки передачи с ретрансляцией содержит также блок приостановки передачи с ретрансляцией, сконфигурированный для приостановки направления и передачи видеоданных другим клиентам через сервер ретрансляции после успешного установления первого Р2Р-соединения между первым клиентом и Р2Р-сервером и передачи первого кадра данных в режиме Р2Р между первым и другими клиентами.
Устройство содержит также модуль сохранения передачи с ретрансляцией, сконфигурированный для определения того, следует ли сохранить первое соединение ретрансляции между первым клиентом и сервером ретрансляции во время передачи видеоданных между первым и вторым клиентами в режиме Р2Р в том случае, если происходит разрыв соединения между первым клиентом и другими клиентами, или если коэффициент потери пакетов видеоданных, передаваемых между указанными клиентами, превышает предварительно заданное значение, или если время буферизации видеоданных, передаваемых между указанными клиентами, превышает предварительно заданное значение. Если да, то модуль сохранения передачи с ретрансляцией обеспечивает непрерывное направление и передачу видеоданных для первого и второго клиентов через сервер ретрансляции.
Предварительно заданное значение коэффициента потери пакетов и предварительно заданное время буферизации можно выбирать в зависимости от фактических условий. Например, предварительно заданное значение коэффициента потери пакетов может составлять 10%, а предварительно заданное время буферизации может составлять 10 секунд (указанные значения не ограничиваются приведенными здесь величинами).
В противном случае, первый клиент отправляет серверу ретрансляции запрос на установление первого соединения. После успешного установления первого соединения ретрансляции между первым клиентом и сервером ретрансляции видеоданные непрерывно направляются и передаются для первого и второго клиентов через сервер ретрансляции.
При использовании устройства, предложенного в данном варианте изобретения, изначально для передачи видеоданных используется сервер ретрансляции. После успешного установления Р2Р-соединения для непосредственной передачи видеоданных используется режим Р2Р. Благодаря этому удается решить такие проблемы, как низкая скорость входа в систему, низкая скорость соединения и даже невозможность соединения, возникающие при использовании клиентом режима Р2Р, что, в свою очередь, позволяет пользователю быстро передавать видеоданные. Благодаря этому удается улучшить впечатление пользователей и сохранить полосу пропускания сети. Если из-за наличия каких-либо проблем использовать режим Р2Р нельзя, то возможно своевременное переключение на сервер ретрансляции для передачи видеоданных через сервер ретрансляции. Таким образом, видеоданные передаются через сервер ретрансляции, что обеспечивает возможность непрерывной передачи видеоданных пользователем.
Под термином "прием" в данном варианте изобретения следует понимать активное получение информации от другого модуля или прием информации, отправленной другим модулем.
Для специалиста в данной области техники очевидно, что предпочтительные варианты изобретения проиллюстрированы на прилагаемых чертежах схематично. Не все модули или потоки, показанные на прилагаемых чертежах, необходимы для реализации настоящего изобретения.
Кроме того, для специалиста очевидно, что модули, содержащиеся в описанном устройстве, могут быть распределены в устройстве в соответствии с приведенным выше описанием или могут быть соответствующим образом модифицированы, чтобы находиться в одном или нескольких устройствах, отличных от устройства, предложенного в рассмотренном варианте изобретения. Описанные выше модули могут быть объединены в один модуль или разделены на несколько подмодулей.
Использованные выше порядковые номера вариантов изобретения предназначены только для упрощения описания, а не для указания их предпочтительности.
Некоторые этапы способов, предлагаемых в настоящем изобретении, могут быть реализованы с помощью программных средств. Соответствующие программы могут храниться на считываемом носителе информации, например, оптическом (CD) или жестком диске.
Выше представлены предпочтительные варианты осуществления настоящего изобретения. Они не ограничивают настоящее изобретение. Любые модификации, эквивалентные замены и улучшения, не выходящие за рамки сущности и принципов настоящего изобретения, подпадают под объем защиты настоящего изобретения.
Настоящее изобретение относится к технологиям сетевой связи, в частности к способу, системе и устройству передачи видеоданных. Предлагаемый способ включает в себя следующие этапы: первый клиент отправляет на сервер ретрансляции и Р2Р-сервер запрос на установление первого соединения; второй клиент отправляет на сервер ретрансляции и Р2Р-сервер запрос на установление второго соединения; после успешного установления первого соединения ретрансляции между первым клиентом и сервером ретрансляции и второго соединения ретрансляции между вторым клиентом и сервером ретрансляции первый и второй клиенты направляют и передают видеоданные через сервер ретрансляции; после успешного установления первого Р2Р-соединения между первым клиентом и Р2Р-сервером и второго Р2Р-соединения между вторым клиентом и Р2Р-сервером, первый и второй клиенты временно приостанавливают направление и передачу видеоданных через сервер ретрансляции; первый и второй клиенты передают видеоданные в режиме Р2Р. Благодаря предлагаемому техническому решению удается решить такие проблемы, как низкая скорость входа в систему, низкая скорость соединения и даже невозможность соединения, возникающие при использовании клиентом режима Р2Р, и, тем самым, удается улучшить впечатление пользователя. 3 н. и 12 з.п. ф-лы, 4 ил.
1. Способ передачи видеоданных, включающий в себя следующие этапы:
первый клиент отправляет на сервер ретрансляции и Р2Р-сервер запрос на установление первого соединения;
второй клиент отправляет на сервер ретрансляции и Р2Р-сервер запрос на установление второго соединения;
после успешного установления первого соединения ретрансляции между первым клиентом и сервером ретрансляции и второго соединения ретрансляции между вторым клиентом и сервером ретрансляции первый и второй клиенты направляют и передают видеоданные через сервер ретрансляции;
после успешного установления первого Р2Р-соединения между первым клиентом и Р2Р-сервером и второго Р2Р-соединения между вторым клиентом и Р2Р-сервером первый и второй клиенты временно приостанавливают направление и передачу видеоданных через сервер ретрансляции;
первый и второй клиенты передают видеоданные в режиме Р2Р.
2. Способ по п.1, причем этап, на котором первый и второй клиенты приостанавливают направление и передачу видеоданных через сервер ретрансляции после успешного установления первого Р2Р-соединения между первым клиентом и Р2Р-сервером и второго Р2Р-соединения между вторым клиентом и Р2Р-сервером, выполняют после завершения передачи первого кадра данных между первым и вторым клиентами в режиме Р2Р.
3. Способ по п.1, также предусматривающий выполнение следующих действий:
если во время передачи видеоданных первым и вторым клиентами в режиме Р2Р происходит разрыв соединения между указанными клиентами, или коэффициент потери пакетов видеоданных, передаваемых между указанными клиентами, превышает предварительно заданное значение, или время буферизации видеоданных, передаваемых между указанными клиентами, превышает предварительно заданное значение, то первый клиент определяет, следует ли поддерживать первое соединение ретрансляции с сервером ретрансляции, а второй клиент определяет, следует ли поддерживать второе соединение ретрансляции с сервером ретрансляции;
если первое соединение ретрансляции между первым клиентом и сервером ретрансляции и второе соединение ретрансляции между вторым клиентом и сервером ретрансляции сохраняются, то видеоданные непрерывно передаются через сервер ретрансляции;
если первое соединение ретрансляции между первым клиентом и сервером ретрансляции прервано, а второе соединение ретрансляции между вторым клиентом и сервером ретрансляции успешно установлено, то первый клиент отправляет на сервер ретрансляции запрос на установление первого соединения, причем после успешного установления первого соединения ретрансляции между первым клиентом и сервером ретрансляции первый и второй клиенты направляют и передают видеоданные через сервер ретрансляции;
если второе соединение ретрансляции между вторым клиентом и сервером ретрансляции прервано, а первое соединение ретрансляции между первым клиентом и сервером ретрансляции успешно установлено, то второй клиент отправляет на сервер ретрансляции запрос на установление второго соединения, причем после успешного установления второго соединения ретрансляции между вторым клиентом и сервером ретрансляции первый и второй клиенты направляют и передают видеоданные через сервер ретрансляции;
если первое соединение ретрансляции между первым клиентом и сервером ретрансляции и второе соединение ретрансляции между вторым клиентом и сервером ретрансляции прерваны, то первый клиент отправляет на сервер ретрансляции запрос на установление первого соединения, а второй клиент отправляет на сервер ретрансляции запрос на установление второго соединения; причем
после успешного установления первого соединения ретрансляции между первым клиентом и сервером ретрансляции и второго соединения ретрансляции между вторым клиентом и сервером ретрансляции первый и второй клиенты направляют и передают видеоданные через сервер ретрансляции.
4. Способ по п.1, также предусматривающий выполнение следующих действий:
если после отправки на сервер ретрансляции и на Р2Р-сервер первым клиентом запроса на установление первого соединения и вторым клиентом запроса на установление второго соединения первое соединение ретрансляции между первым клиентом и сервером ретрансляции успешно установлено, а второе соединение ретрансляции между вторым клиентом и сервером ретрансляции не установлено, при этом первое Р2Р-соединение между первым клиентом и Р2Р-сервером и второе Р2Р-соединение между вторым клиентом и сервером ОС (Р2Р) успешно установлены, то
первый и второй клиенты передают видеоданные в режиме Р2Р, причем первое соединение ретрансляции между первым клиентом и сервером ретрансляции и второе соединение ретрансляции между вторым клиентом и сервером ретрансляции разрываются.
5. Способ по п.1, причем, если после отправки на сервер ретрансляции и на Р2Р-сервер первым клиентом запроса на установление первого соединения и вторым клиентом запроса на установление второго соединения первое соединение ретрансляции между первым клиентом и сервером ретрансляции успешно установлено, а второе соединение ретрансляции между вторым клиентом и сервером ретрансляции не установлено, то выполняют следующие действия:
сервер ретрансляции принимает от первого клиента запрос на установление первого соединения, а от второго клиента запрос на установление второго соединения;
сервер ретрансляции проверяет подлинность первого и второго пользователей соответственно по идентификационным и аутентификационным данным первого пользователя, содержащимся в запросе на установление первого соединения, и идентификационным и аутентификационным данным второго пользователя, содержащимся в запросе на установление второго соединения, причем
при успешной проверке подлинности первого и второго пользователей сервер ретрансляции устанавливает первое и второе соединение ретрансляции с первым и вторым клиентом соответственно и отправляет им ответы об успешном установлении указанных соединений.
6. Способ по п.1, причем, если после отправки на сервер ретрансляции и на Р2Р-сервер первым клиентом запроса на установление первого соединения и вторым клиентом запроса на установление второго соединения первое Р2Р-соединение между первым клиентом и Р2Р-сервером успешно установлено, а второе Р2Р-соединение между вторым клиентом и Р2Р-сервером не установлено, то выполняют следующие действия:
Р2Р-сервер принимает запросы на установление первого и второго соединения от первого и второго клиента соответственно;
Р2Р-сервер проверяет подлинность первого и второго пользователей соответственно, по идентификационным и аутентификационным данным первого пользователя, содержащимся в запросе на установление первого соединения, и идентификационным и аутентификационным данным второго пользователя, содержащимся в запросе на установление второго соединения, причем
при успешной проверке подлинности первого и второго пользователей Р2Р-сервер устанавливает первое и второе Р2Р-соединение с первым и вторым клиентом соответственно и отправляет им ответы об успешном установлении указанных соединений.
7. Система передачи видеоданных, содержащая первый клиент, второй клиент, сервер ретрансляции и Р2Р-сервер, причем первый клиент сконфигурирован таким образом, чтобы отправлять на сервер ретрансляции и на Р2Р-сервер запросы на установление первого соединения, устанавливать первое соединение ретрансляции с сервером ретрансляции, направлять и передавать видеоданные второму клиенту через сервер ретрансляции, устанавливать первое Р2Р-соединение с Р2Р-сервером, временно приостанавливать направление и передачу видеоданных второму клиенту через сервер ретрансляции и передавать видеоданные второму клиенту в режиме Р2Р;
второй клиент сконфигурирован таким образом, чтобы отправлять на сервер ретрансляции и на Р2Р-сервер запросы на установление второго соединения, устанавливать второе соединение ретрансляции с сервером ретрансляции, направлять и передавать видеоданные первому клиенту через сервер ретрансляции, устанавливать второе Р2Р-соединение с Р2Р-сервером, временно приостанавливать направление и передачу видеоданных первому клиенту через сервер ретрансляции и передавать видеоданные первому клиенту в режиме Р2Р;
сервер ретрансляции сконфигурирован таким образом, чтобы принимать запросы на установление первого и второго соединения от первого и второго клиента соответственно, устанавливать первое и второе соединение ретрансляции с первым и вторым клиентом соответственно, направлять и передавать видеоданные первому и второму клиентам;
Р2Р-сервер сконфигурирован таким образом, чтобы принимать запросы на установление первого и второго соединения от первого и второго клиента соответственно и устанавливать первое и второе Р2Р-соединение с первым и вторым клиентом соответственно; причем, когда первый и второй клиенты временно приостанавливают направление и передачу видеоданных через сервер ретрансляции, указанный Р2Р-сервер обеспечивает режим Р2Р для передачи видеоданных первым и вторым клиентами.
8. Система по п.7, причем после успешного установления первого Р2Р-соединения между первым клиентом и Р2Р-сервером, второго Р2Р-соединения между вторым клиентом и Р2Р-сервером и завершения передачи первого кадра данных между первым и вторым клиентами в режиме Р2Р, первый клиент временно приостанавливает направление и передачу видеоданных второму клиенту через сервер ретрансляции, причем
после успешного установления второго Р2Р-соединения между вторым клиентом и Р2Р-сервером, первого Р2Р-соединения между первым клиентом и Р2Р-сервером и завершения передачи первого кадра данных между первым и вторым клиентами в режиме Р2Р второй клиент временно приостанавливает направление и передачу видеоданных первому клиенту через сервер ретрансляции.
9. Система по п.7, причем сервер ретрансляции обеспечивает непрерывное направление и передачу видеоданных для первого и второго клиентов в том случае, если во время передачи видеоданных между первым и вторым клиентами в режиме Р2Р происходит разрыв соединения между указанными клиентами, или коэффициент потери пакетов видеоданных, передаваемых между указанными клиентами, превышает предварительно заданное значение, или время буферизации видеоданных, передаваемых между указанными клиентами, превышает предварительно заданное значение, при этом первый клиент определяет, что необходимо сохранить первое соединение ретрансляции с сервером ретрансляции, и второй клиент определяет, что необходимо сохранить второе соединение ретрансляции с сервером ретрансляции;
если первое соединение ретрансляции между первым клиентом и сервером ретрансляции прервано, а второе соединение ретрансляции между вторым клиентом и сервером ретрансляции успешно установлено, то сервер ретрансляции принимает от первого клиента запрос на установление первого соединения, причем после успешного установления первого соединения ретрансляции между первым клиентом и сервером ретрансляции сервер ретрансляции непрерывно направляет и передает видеоданные для первого и второго клиентов;
если второе соединение ретрансляции между вторым клиентом и сервером ретрансляции прервано, а первое соединение ретрансляции между первым клиентом и сервером ретрансляции успешно установлено, то сервер ретрансляции принимает от второго клиента запрос на установление второго соединения, причем после успешного установления второго соединения ретрансляции между сервером ретрансляции и вторым клиентом сервер ретрансляции непрерывно направляет и передает видеоданные для первого и второго клиентов;
если первое соединение ретрансляции между первым клиентом и сервером ретрансляции и второе соединение ретрансляции между вторым клиентом и сервером ретрансляции прерваны, то сервер ретрансляции принимает от первого и второго клиента запросы на установление первого и второго соединения соответственно, причем после успешного установления первого соединения ретрансляции между первым клиентом и сервером ретрансляции и второго соединения ретрансляции между вторым клиентом и сервером ретрансляции сервер ретрансляции непрерывно направляет и передает видеоданные для первого и второго клиентов.
10. Система по п.7, причем Р2Р-сервер также обеспечивает Р2Р-режим для передачи видеоданных первым и вторым клиентами, временно приостанавливает соединение между первым клиентом и сервером ретрансляции и соединение между вторым клиентом и сервером ретрансляции, когда первое соединение ретрансляции между первым клиентом и сервером ретрансляции успешно установлено, а второе соединение ретрансляции между вторым клиентом и сервером ретрансляции не установлено, при этом первое Р2Р-соединение между первым клиентом и Р2Р-сервером и второе Р2Р-соединение между вторым клиентом и Р2Р-сервером ОС успешно установлены.
11. Система по п.7, причем сервер ретрансляции также сконфигурирован для проверки подлинности первого и второго пользователей соответственно по идентификационным и аутентификационным данным первого пользователя, содержащимся в запросе на установление первого соединения, и идентификационным и аутентификационным данным второго пользователя, содержащимся в запросе на установление второго соединения, причем при успешной проверке подлинности первого и второго пользователей сервер ретрансляции устанавливает первое и второе соединение ретрансляции с первым и вторым клиентом соответственно.
12. Система по п.7, причем Р2Р-сервер также сконфигурирован для проверки подлинности первого и второго пользователей соответственно по идентификационным и аутентификационным данным первого пользователя, содержащимся в запросе на установление первого соединения, и идентификационным и аутентификационным данным второго пользователя, содержащимся в запросе на установление второго соединения, причем при успешной проверке подлинности первого и второго пользователей Р2Р-сервер устанавливает первое и второе Р2Р-соединение с первым и вторым клиентом соответственно.
13. Устройство передачи видеоданных, установленное на первом клиенте и содержащее:
модуль отправки, сконфигурированный для отправки на сервер ретрансляции и на Р2Р-сервер запроса на установление первого соединения;
модуль передачи с ретрансляцией, сконфигурированный для установления первого соединения ретрансляции с сервером ретрансляции после отправки первым клиентом запроса на установление первого соединения на сервер ретрансляции через модуль отправки, причем после успешного установления первого соединения ретрансляции первый и другой клиенты направляют и передают видеоданные через сервер ретрансляции;
модуль приостановки передачи с ретрансляцией, сконфигурированный для установления первого Р2Р-соединения с Р2Р-сервером по запросу на установление первого соединения, отправленному модулем отправки на Р2Р-сервер, после направления и передачи видеоданных первым клиентом через модуль передачи с ретрансляцией другому клиенту с использованием сервера ретрансляции, причем после успешного установления первого Р2Р-соединения первый клиент разрывает первое соединение ретрансляции с сервером ретрансляции;
модуль передачи в режиме Р2Р, позволяющий первому и другому клиентам передавать видеоданные в режиме Р2Р после того, как первое Р2Р-соединение между первым клиентом и Р2Р-сервером успешно установлено.
14. Устройство по п.13, причем модуль приостановки передачи с ретрансляцией содержит также блок приостановки передачи с ретрансляцией, сконфигурированный для приостановки направления и передачи видеоданных между первым и другим клиентом через сервер ретрансляции после успешного установления первого Р2Р-соединения между первым клиентом и Р2Р-сервером и завершения передачи первого кадра данных между первым и другим клиентами в режиме Р2Р.
15. Устройство по п.13, причем оно также содержит модуль сохранения передачи с ретрансляцией, сконфигурированный для определения того, следует ли сохранить первое соединение ретрансляции между первым клиентом и сервером ретрансляции во время передачи видеоданных между первым и другим клиентами в режиме Р2Р в том случае, если происходит разрыв соединения между первым и другим клиентами, или если коэффициент потери пакетов видеоданных, передаваемых между указанными клиентами, превышает предварительно заданное значение, или если время буферизации видеоданных, передаваемых между указанными клиентами, превышает предварительно заданное значение, причем
если первое соединение ретрансляции между первым клиентом и сервером ретрансляции сохраняется, то модуль сохранения передачи с ретрансляцией обеспечивает непрерывное направление и передачу видеоданных для первого и другого клиентов через сервер ретрансляции, причем
в противном случае первый клиент отправляет на сервер ретрансляции запрос на установление первого соединения, причем после успешного установления первого соединения ретрансляции между первым клиентом и сервером ретрансляции модуль сохранения передачи с ретрансляцией обеспечивает непрерывное направление и передачу видеоданных для первого и другого клиентов через сервер ретрансляции.
CN 1897588 А, 17.01.2007 | |||
Колосоуборка | 1923 |
|
SU2009A1 |
СИСТЕМА И СПОСОБ ДЛЯ ОБМЕНА СИГНАЛАМИ АУДИОВИЗУАЛЬНОЙ ИНФОРМАЦИИ | 2002 |
|
RU2282888C2 |
KR 1020080042524 A, 15.05.2008. |
Авторы
Даты
2013-11-27—Публикация
2010-05-27—Подача