IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ▲騰▼▲訊▼科技(深▲セン▼)有限公司の特許一覧

特表2024-509728データ再送処理方法、装置、コンピュータ機器及びコンピュータプログラム
<>
  • 特表-データ再送処理方法、装置、コンピュータ機器及びコンピュータプログラム 図1
  • 特表-データ再送処理方法、装置、コンピュータ機器及びコンピュータプログラム 図2
  • 特表-データ再送処理方法、装置、コンピュータ機器及びコンピュータプログラム 図3
  • 特表-データ再送処理方法、装置、コンピュータ機器及びコンピュータプログラム 図4
  • 特表-データ再送処理方法、装置、コンピュータ機器及びコンピュータプログラム 図5
  • 特表-データ再送処理方法、装置、コンピュータ機器及びコンピュータプログラム 図6
  • 特表-データ再送処理方法、装置、コンピュータ機器及びコンピュータプログラム 図7
  • 特表-データ再送処理方法、装置、コンピュータ機器及びコンピュータプログラム 図8
  • 特表-データ再送処理方法、装置、コンピュータ機器及びコンピュータプログラム 図9
  • 特表-データ再送処理方法、装置、コンピュータ機器及びコンピュータプログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-05
(54)【発明の名称】データ再送処理方法、装置、コンピュータ機器及びコンピュータプログラム
(51)【国際特許分類】
   H04L 1/00 20060101AFI20240227BHJP
   H04L 1/1809 20230101ALI20240227BHJP
【FI】
H04L1/00 E
H04L1/00 A
H04L1/1809
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023548347
(86)(22)【出願日】2022-04-24
(85)【翻訳文提出日】2023-08-09
(86)【国際出願番号】 CN2022088788
(87)【国際公開番号】W WO2022247550
(87)【国際公開日】2022-12-01
(31)【優先権主張番号】202110569177.3
(32)【優先日】2021-05-25
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ANDROID
2.Linux
3.WINDOWS
4.GOOGLE
5.MOZILLA
6.OPERA
(71)【出願人】
【識別番号】517392436
【氏名又は名称】▲騰▼▲訊▼科技(深▲セン▼)有限公司
【氏名又は名称原語表記】TENCENT TECHNOLOGY (SHENZHEN) COMPANY LIMITED
【住所又は居所原語表記】35/F,Tencent Building,Kejizhongyi Road,Midwest District of Hi-tech Park,Nanshan District, Shenzhen,Guangdong 518057,CHINA
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【弁理士】
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】李 志成
【テーマコード(参考)】
5K014
【Fターム(参考)】
5K014AA01
5K014EA04
5K014FA03
(57)【要約】
本願は、データ再送処理方法、装置、コンピュータ機器及び記憶媒体を提供する。前記方法は、再送周期内のデータパケットロス率に基づいて、再送周期内のデータパケット再送数量閾値を決定し、再送周期内の再送対象データパケットのそれぞれのシーケンス番号からなるシーケンス番号セットを取得するステップ(202)と、シーケンス番号セットとマッチする各キーデータパケットのそれぞれのキーシーケンス番号を決定するステップ(204)と、シーケンス番号セットに残存されたシーケンス番号の数を最大化し、且つ残存されたシーケンス番号の数がデータパケット再送数量閾値より小さいか又は等しくなるように、キーシーケンス番号からターゲットシーケンス番号を選別し、シーケンス番号セットからターゲットシーケンス番号より小さいか又は等しいシーケンス番号を削除するステップ(206)と、シーケンス番号セットに残存されたシーケンス番号で指示される再送対象データパケットの再送を要求するステップ(208)と、を含む。
【特許請求の範囲】
【請求項1】
コンピュータ機器が実行する、データ再送処理方法であって、
再送周期内のデータパケットロス率に基づいて、前記再送周期内のデータパケット再送数量閾値を決定し、前記再送周期内の再送対象データパケットのそれぞれのシーケンス番号からなるシーケンス番号セットを取得するステップと、
前記シーケンス番号セットとマッチする各キーデータパケットのそれぞれのキーシーケンス番号を決定するステップと、
前記シーケンス番号セットに残存されたシーケンス番号の数を最大化し、且つ残存されたシーケンス番号の数が前記データパケット再送数量閾値より小さいか又は等しくなるように、前記キーシーケンス番号からターゲットシーケンス番号を選別し、前記シーケンス番号セットから、前記ターゲットシーケンス番号より小さいか又は等しいシーケンス番号を削除するステップと、
前記シーケンス番号セットに残存されたシーケンス番号で指示される再送対象データパケットの再送を要求するステップと、を含む、データ再送処理方法。
【請求項2】
前記再送周期内のデータパケットロス率に基づいて、前記再送周期内のデータパケット再送数量閾値を決定するステップは、
伝送帯域幅における再送帯域幅の受信可能データ量に基づいて、前記再送周期内に前記データパケットロス率に達したときの受信データ量閾値を決定するステップと、
各データパケットのデータ量に基づいて、前記受信データ量閾値に対応するデータパケット再送数量閾値を決定するステップと、を含む、
請求項1に記載のデータ再送処理方法。
【請求項3】
前記シーケンス番号セットとマッチする各キーデータパケットのそれぞれのキーシーケンス番号を決定するステップは、
前記シーケンス番号セットから、最大シーケンス番号及び最小シーケンス番号を選別し、キーデータパケットのそれぞれのシーケンス番号に基づいて形成され、且つ前記シーケンス番号セットとマッチするキーシーケンス番号セットを取得するステップと、
前記キーシーケンス番号セットから、前記最小シーケンス番号より大きく、且つ前記最大シーケンス番号より小さいキーシーケンス番号を選別するステップと、を含む、
請求項1に記載のデータ再送処理方法。
【請求項4】
前記データ再送処理方法は、
受信したデータパケットに対応するヘッダで搬送されるデータパケットカテゴリ識別子を抽出するステップと、
前記データパケットカテゴリ識別子が、前記データパケットがキーデータパケットであることを示す場合、前記ヘッダで搬送されるシーケンス番号を前記キーシーケンス番号セットに追加するステップと、をさらに含む、
請求項3に記載のデータ再送処理方法。
【請求項5】
前記シーケンス番号セットに残存されたシーケンス番号の数を最大化し、且つ残存されたシーケンス番号の数が前記データパケット再送数量閾値より小さいか又は等しくなるように、前記キーシーケンス番号からターゲットシーケンス番号を選別し、前記シーケンス番号セットから、前記ターゲットシーケンス番号より小さいか又は等しいシーケンス番号を削除するステップは、
昇順に従って、前記キーシーケンス番号を現在のシーケンス番号として順次使用し、前記再送対象データパケットのそれぞれのシーケンス番号に基づいて形成されたシーケンス番号セットから、前記シーケンス番号セットに残存されたシーケンス番号の数が前記データパケット再送数量閾値より小さいか又は等しくなるまで、前記現在のシーケンス番号以下のシーケンス番号を削除するステップを含む、
請求項1に記載のデータ再送処理方法。
【請求項6】
前記データ再送処理方法は、
現在受信したデータパケットの現在のシーケンス番号が前回受信したデータパケットの履歴シーケンス番号より大きく、且つ前記現在のシーケンス番号と前記履歴シーケンス番号との間に中間シーケンス番号が存在する場合、前記中間シーケンス番号をシーケンス番号セットに追加するステップをさらに含む、
請求項1に記載のデータ再送処理方法。
【請求項7】
前記データ再送処理方法は、
現在受信したデータパケットの現在のシーケンス番号が前回受信したデータパケットの履歴シーケンス番号より小さい場合、前記シーケンス番号セットから前記現在のシーケンス番号を削除するステップをさらに含む、
請求項1に記載のデータ再送処理方法。
【請求項8】
前記データ再送処理方法は、
現在受信したデータパケットの現在のシーケンス番号が前回受信したデータパケットの履歴シーケンス番号より大きく、且つ前記現在のシーケンス番号と前記履歴シーケンス番号との間に中間シーケンス番号が存在する場合、前記現在のシーケンス番号と前記履歴シーケンス番号とのシーケンス番号差を計算するステップと、
前記シーケンス番号差が差閾値より大きい場合、前記シーケンス番号セット内のシーケンス番号をクリアし、前記現在のシーケンス番号に基づいて、前記現在のシーケンス番号とマッチするキーデータパケットの伝送を要求するステップと、
前記シーケンス番号差が差閾値より小さいか又は等しい場合、前記中間シーケンス番号をシーケンス番号セットに追加するステップと、をさらに含む、
請求項1に記載のデータ再送処理方法。
【請求項9】
前記キーデータパケットは、生放送シーンで伝送される音声ビデオデータにおけるキーフレームデータパケットであり、前記データ再送処理方法は、
現在受信したデータパケットの現在のシーケンス番号が前回受信したデータパケットの履歴シーケンス番号より大きく、且つ前記現在のシーケンス番号と前記履歴シーケンス番号が連続シーケンス番号である場合、前記現在のシーケンス番号が指し示すデータパケットのデータパケットカテゴリ識別子を取得するステップと、
前記データパケットカテゴリ識別子がキーフレームデータパケットを示す場合、前記現在のシーケンス番号が指し示すキーフレームデータパケットに基づいて画面レンダリングを行うステップと、をさらに含む、
請求項1に記載のデータ再送処理方法。
【請求項10】
前記データ再送処理方法は、
現在受信したデータパケットの現在のシーケンス番号が前回受信したデータパケットの履歴シーケンス番号より大きく、且つ前記現在のシーケンス番号と前記履歴シーケンス番号が連続シーケンス番号である場合、前記現在のシーケンス番号が指し示すデータパケットのデータパケットカテゴリ識別子を取得するステップと、
前記データパケットカテゴリ識別子が差異フレーム又は双方向差異フレームを示す場合、前記差異フレーム又は前記双方向差異フレームと、キーフレームデータパケットとのデータ重畳を行い、重畳データに基づいて画面レンダリングを行うステップと、をさらに含む、
請求項1に記載のデータ再送処理方法。
【請求項11】
前記データ再送処理方法は、
履歴伝送データに対応する履歴遅延データに対して平滑化処理を行い、基準遅延データを得るステップと、
前記基準遅延データに基づいて、再送周期を決定するステップであって、前記再送周期の持続時間は、前記基準遅延データに対応する持続時間より大きいか又は等しい、ステップと、をさらに含む、
請求項1に記載のデータ再送処理方法。
【請求項12】
前記データ再送処理方法は、
各再送対象データパケットに対する再送要求回数を記録するステップと、
前記再送対象データパケットに対する再送要求回数が要求回数閾値より大きい場合、前記シーケンス番号セットから前記再送対象データパケットのシーケンス番号を削除するステップと、をさらに含む、
請求項1に記載のデータ再送処理方法。
【請求項13】
前記再送周期内のデータパケットロス率に基づいて、前記再送周期内のデータパケット再送数量閾値を決定するステップは、
再送周期内のデータパケットロス率がロス率閾値より大きい場合、前記再送周期内のデータパケットロス率に基づいて、前記再送周期内のデータパケット再送数量閾値を決定するステップを含む、
請求項1~12のいずれか一項に記載のデータ再送処理方法。
【請求項14】
前記データ再送処理方法は、
再送周期内のデータパケットロス率がロス率閾値より小さいか又は等しい場合、前記再送周期内の再送対象データパケットの再送を要求するステップをさらに含む、
請求項13に記載のデータ再送処理方法。
【請求項15】
前記シーケンス番号セットとマッチする各キーデータパケットのそれぞれのキーシーケンス番号を決定するステップは、
前記再送周期内の再送対象データパケットの数が前記再送周期内のデータパケット再送数量閾値より大きい場合、前記シーケンス番号セットとマッチする各キーデータパケットのそれぞれのキーシーケンス番号を決定するステップを含む、
請求項1~13のいずれか一項に記載のデータ再送処理方法。
【請求項16】
前記データ再送処理方法は、
前記再送周期内の再送対象データパケットの数が前記再送周期内のデータパケット再送数量閾値より小さいか又は等しい場合、前記再送周期内の再送対象データパケットの再送を要求するステップをさらに含む、
請求項15に記載のデータ再送処理方法。
【請求項17】
データ再送処理装置であって、
再送周期内のデータパケットロス率に基づいて、前記再送周期内のデータパケット再送数量閾値を決定し、前記再送周期内の再送対象データパケットのそれぞれのシーケンス番号からなるシーケンス番号セットを取得するように構成される閾値決定モジュールと、
前記シーケンス番号セットとマッチする各キーデータパケットのそれぞれのキーシーケンス番号を決定するように構成されるキーシーケンス番号決定モジュールと、
前記シーケンス番号セットに残存されたシーケンス番号の数を最大化し、且つ残存されたシーケンス番号の数が前記データパケット再送数量閾値より小さいか又は等しくなるように、前記キーシーケンス番号からターゲットシーケンス番号を選別し、前記シーケンス番号セットから、前記ターゲットシーケンス番号より小さいか又は等しいシーケンス番号を削除するように構成されるシーケンス番号削除モジュールと、
前記シーケンス番号セットに残存されたシーケンス番号で指示される再送対象データパケットの再送を要求するように構成される再送要求モジュールと、を備える、データ再送処理装置。
【請求項18】
コンピュータ可読命令が記憶されたメモリと、前記コンピュータ可読命令を実行するときに、請求項1~16のいずれか一項に記載の方法のステップを実現する1つ又は複数のプロセッサと、を備える、コンピュータ機器。
【請求項19】
プロセッサに、請求項1~16のいずれか一項に記載の方法のステップを実行させるためのコンピュータ可読命令が記憶された、1つ又は複数の不揮発性コンピュータ可読記憶媒体。
【請求項20】
1つ又は複数のプロセッサに、請求項1~16のいずれか一項に記載の方法のステップを実行させるためのコンピュータ可読命令が記憶された、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願への相互参照)
本願は、2021年05月25日に中国特許局に提出された、出願番号が2021105691773であり、発明の名称が「データ再送処理方法、装置、コンピュータ機器及び記憶媒体」である中国特許出願の優先権を主張し、その内容の全てが引用により本願に組み込まれる。
本願は、ネットワーク通信技術分野に関し、特に、データ再送処理方法、装置、コンピュータ機器、コンピュータ可読記憶媒体及びコンピュータプログラム製品に関するものである。
【背景技術】
【0002】
通信技術の発達に伴い、生活におけるネットワーク通信の応用はますます広がり、通信品質に対する要求もますます高まっている。データ伝送における適時性やリソースの利用を考慮して、通信中に、ユーザデータグラムプロトコル(UDP:User Datagram Protocol)メッセージを使用してデータ伝送を行う。
ネットワーク上でデータが伝送されると、パケットロスが発生する可能性があるため、受信側はパケットロスに応じて送信側に再送要求を開始する必要があり、送信側が同時刻に受信した再送要求が多すぎると、ネットワークのジッタや遅延が発生しやすく、データ伝送の効果に影響を及ぼす可能性がある。
【発明の概要】
【0003】
本願の各実施例は、データ伝送効果を向上させることができるデータ再送処理方法、装置、コンピュータ機器、コンピュータ可読記憶媒体及びコンピュータプログラム製品を提供する。
【0004】
コンピュータ機器が実行するデータ再送処理方法であって、前記データ再送処理方法は、
再送周期内のデータパケットロス率に基づいて、前記再送周期内のデータパケット再送数量閾値を決定し、前記再送周期内の再送対象データパケットのそれぞれのシーケンス番号からなるシーケンス番号セットを取得するステップと、
前記シーケンス番号セットとマッチする各キーデータパケットのそれぞれのキーシーケンス番号を決定するステップと、
前記シーケンス番号セットに残存されたシーケンス番号の数を最大化し、且つ残存されたシーケンス番号の数が前記データパケット再送数量閾値より小さいか又は等しくなるように、前記キーシーケンス番号からターゲットシーケンス番号を選別し、前記シーケンス番号セットから、前記ターゲットシーケンス番号より小さいか又は等しいシーケンス番号を削除するステップと、
前記シーケンス番号セットに残存されたシーケンス番号に対応する再送対象データパケットの再送を要求するステップと、を含む。
【0005】
データ再送処理装置であって、前記データ再送処理装置は、
再送周期内のデータパケットロス率に基づいて、前記再送周期内のデータパケット再送数量閾値を決定し、前記再送周期内の再送対象データパケットのそれぞれのシーケンス番号からなるシーケンス番号セットを取得するように構成される閾値決定モジュールと、
前記シーケンス番号セットとマッチする各キーデータパケットのそれぞれのキーシーケンス番号を決定するように構成されるキーシーケンス番号決定モジュールと、
前記シーケンス番号セットに残存されたシーケンス番号の数を最大化し、且つ残存されたシーケンス番号の数が前記データパケット再送数量閾値より小さいか又は等しくなるように、前記キーシーケンス番号からターゲットシーケンス番号を選別し、前記シーケンス番号セットから、前記ターゲットシーケンス番号より小さいか又は等しいシーケンス番号を削除するように構成されるシーケンス番号削除モジュールと、
前記シーケンス番号セットに残存されたシーケンス番号に対応する再送対象データパケットの再送を要求するように構成される再送要求モジュールと、を備える。
【0006】
コンピュータ機器であって、メモリと、1つ又は複数のプロセッサと、を備え、前記メモリには、コンピュータ可読命令が記憶され、前記コンピュータ可読命令が1つ又は複数のプロセッサによって実行されるときに、前記1つ又は複数のプロセッサに、
再送周期内のデータパケットロス率に基づいて、前記再送周期内のデータパケット再送数量閾値を決定し、前記再送周期内の再送対象データパケットのそれぞれのシーケンス番号からなるシーケンス番号セットを取得するステップと、
前記シーケンス番号セットとマッチする各キーデータパケットのそれぞれのキーシーケンス番号を決定するステップと、
前記シーケンス番号セットに残存されたシーケンス番号の数を最大化し、且つ残存されたシーケンス番号の数が前記データパケット再送数量閾値より小さいか又は等しくなるように、前記キーシーケンス番号からターゲットシーケンス番号を選別し、前記シーケンス番号セットから、前記ターゲットシーケンス番号より小さいか又は等しいシーケンス番号を削除するステップと、
シーケンス番号セットに残存されたシーケンス番号に対応する再送対象データパケットの再送を要求するステップと、を実行させる。
【0007】
コンピュータ可読命令が記憶された1つ又は複数の不揮発性コンピュータ可読記憶媒体であって、前記コンピュータ可読命令が1つ又は複数のプロセッサによって実行されるときに、前記1つ又は複数のプロセッサに、
再送周期内のデータパケットロス率に基づいて、前記再送周期内のデータパケット再送数量閾値を決定し、前記再送周期内の再送対象データパケットのそれぞれのシーケンス番号からなるシーケンス番号セットを取得するステップと、
前記シーケンス番号セットとマッチする各キーデータパケットのそれぞれのキーシーケンス番号を決定するステップと、
前記シーケンス番号セットに残存されたシーケンス番号の数を最大化し、且つ残存されたシーケンス番号の数が前記データパケット再送数量閾値より小さいか又は等しくなるように、前記キーシーケンス番号からターゲットシーケンス番号を選別し、前記シーケンス番号セットから、前記ターゲットシーケンス番号より小さいか又は等しいシーケンス番号を削除するステップと、
シーケンス番号セットに残存されたシーケンス番号に対応する再送対象データパケットの再送を要求するステップと、を実行させる。
【0008】
コンピュータプログラム製品又はコンピュータプログラムであって、前記コンピュータプログラム製品又はコンピュータプログラムは、コンピュータ命令を含み、前記コンピュータ命令は、コンピュータ可読記憶媒体に記憶され、コンピュータ機器のプロセッサは、前記コンピュータ可読記憶媒体から前記コンピュータ命令を読み取り、前記プロセッサは、前記コンピュータ命令を実行することにより、前記コンピュータ機器に、
再送周期内のデータパケットロス率に基づいて、前記再送周期内のデータパケット再送数量閾値を決定し、前記再送周期内の再送対象データパケットのそれぞれのシーケンス番号からなるシーケンス番号セットを取得するステップと、
前記シーケンス番号セットとマッチする各キーデータパケットのそれぞれのキーシーケンス番号を決定するステップと、
前記シーケンス番号セットに残存されたシーケンス番号の数を最大化し、且つ残存されたシーケンス番号の数が前記データパケット再送数量閾値より小さいか又は等しくなるように、前記キーシーケンス番号からターゲットシーケンス番号を選別し、前記シーケンス番号セットから、前記ターゲットシーケンス番号より小さいか又は等しいシーケンス番号を削除するステップと、
シーケンス番号セットに残存されたシーケンス番号に対応する再送対象データパケットの再送を要求するステップと、を実行させる。
【0009】
本願の1つ又は複数の実施例の詳細は、以下の図面及び説明に記載されている。本願の他の特徴、目的及び利点は、明細書、図面及び特許請求の範囲からより明らかになる。
【図面の簡単な説明】
【0010】
図1】一実施例によるデータ再送処理方法の適用環境図である。
図2】一実施例によるデータ再送処理方法のフロチャートである。
図3】一実施例によるデータ伝送プロセスにおけるパケットロス現象を示す模式図である。
図4】一実施例によるデータ再送処理の受信側と送信側との間の相互作用を示す模式図である。
図5】一実施例によるデータ再送処理における再送キューとキーシーケンス番号キューを示す模式図である。
図6】別の実施例によるデータ再送処理方法のフロチャートである。
図7】一実施例によるデータ再送処理方法の処理フロチャートである。
図8】一実施例によるデータ再送処理方法の最適化前後の最初のフレーム遅延の比較を示す模式図である。
図9】一実施例によるデータ再送処理装置の構造の概略図である。
図10】一実施例によるコンピュータ機器の内部構造の概略図である。
【発明を実施するための形態】
【0011】
本願の実施例の技術的解決策をより明確に説明するために、上記で、実施例の説明で使用される図面について簡単に紹介している。明らかに、上記の図面は、本願のいくつかの実施例に過ぎず、当業者にとっては、創造的な労力を払わなくても、これらの図面に基づいて他の関連図面を得ることができる。
【0012】
本願の目的、技術的解決策及び利点をより明確に説明するために、以下では、図面を参照しながら、本願を詳細に説明する。本明細書に記載の具体的な実施例は、本願を説明するためにのみ使用され、本願を限定するものではないことを理解されたい。
【0013】
本願によって提供されるデータ再送処理方法は、クラウド技術(Cloud technology)に基づいて実現することができる。
【0014】
本願によって提供されるデータ再送処理方法は、図1に示すような適用環境に適用することができる。ここで、送信側102は、ネットワークを介して受信側104と通信を行う。送信側102は、データを受信側104に送信し、受信側104は、再送周期内のデータパケットロス率に基づいて、再送周期内のデータパケット再送数量閾値を決定し、再送周期内の再送対象データパケットのそれぞれのシーケンス番号からなるシーケンス番号セットを取得し、シーケンス番号セットとマッチする各キーデータパケットのそれぞれのキーシーケンス番号を決定し、受信側104は、シーケンス番号セットに残存されたシーケンス番号の数を最大化し、且つ残存されたシーケンス番号の数がデータパケット再送数量閾値より小さいか又は等しくなるように、キーシーケンス番号からターゲットシーケンス番号を選別し、シーケンス番号セットからターゲットシーケンス番号より小さいか又は等しいシーケンス番号を削除し、受信側104は、シーケンス番号セットに残存されたシーケンス番号に対応する再送対象データパケットの再送を送信側102に要求する。
【0015】
ここで、受信側104は、様々なデスクトップコンピュータ、ノートブックコンピュータ、スマートフォン、タブレットコンピュータ、携帯用ウェアラブル機器であるが、これらに限定されない。送信側102は、独立した物理サーバであり得、複数の物理サーバで構成されたサーバクラスタ又は分散システムでもあり得、さらに、クラウドサービス、クラウドデータベース、クラウドコンピューティング、クラウド関数、クラウドストレージ、ネットワークサービス、クラウド通信、ミドルウェアサービス、ドメインネームサービス、セキュリティサービス、CDN、ビッグデータ及び人工知能プラットフォームなどの基本的なクラウドコンピューティングサービスを提供するクラウドサーバでもあり得る。端末は、スマートフォン、タブレットコンピュータ、ノートブックコンピュータ、デスクトップコンピュータ、スマートスピーカ、スマートウォッチなどであり得るが、これらに限定されない。端末及びサーバは、有線又は無線通信を介して直接又は間接的に接続することができ、本願はこれらに限定されない。
【0016】
一実施例では、図2に示すように、データ再送処理方法を提供し、当該方法が図1の受信側に適用される場合を例として説明すると、以下のステップを含む。
【0017】
ステップ202において、再送周期内のデータパケットロス率に基づいて、再送周期内のデータパケット再送数量閾値を決定し、再送周期内の再送対象データパケットのそれぞれのシーケンス番号からなるシーケンス番号セットを取得する。
【0018】
ここで、再送周期とは、時間によって分割された複数の時間帯で示される持続時間であり、受信側は、各時間帯に受信したデータにパケットロス状況があるか否かを検出し、パケットロス状況が再送条件を満たす場合、再送要求を送信側に送信する。送信側及び受信側は、データの伝送対象であり、理解可能なこととして、送信側及び受信側は、相対的な概念のセットであり、異なる適用シーンでは、送信側は、データを受信するための受信側ともされ得、受信側は、データを送信するための送信側ともされ得、コンピュータ機器が具体的に送信側か受信側かは、データの伝送方向に応じて決定することができる。
【0019】
パケットロスとは、1つ又は複数の(2つ又は2つ以上)データパケットのデータがネットワーク伝送によって送信側から受信側に到達できない現象であり、図3に示すように、送信側は、シーケンス番号が1~nのn個のデータパケットを送信したが、受信側が受信したデータパケットからはシーケンス番号が2のデータパケットは検出されていない。シーケンス番号が2のデータパケットには、パケットロス現象が存在する。しかしながら、ストリーミング技術、IPベースの音声伝送(VoIP:Voice over Internet Protocol)、オンラインゲーム、及びビデオ会議などのシーンでは、パケットロスは、ネットワークのジッタが発生する可能性がある。特に注意すべきこととして、パケットロスは、必ずしもデータ相互作用に問題があるわけではなく、パケットロスがある程度発生することは、伝送の両側に受け入れられる可能性があり、再送条件は、パケットロス状況が伝送の両側に受け入れられる場合に満たされる条件である。具体的には、再送条件は、再送されたデータパケットの数が数量閾値に達すること、一定周期内のロス率がロス率閾値に達することなどの条件のうちの1つ又は複数の条件の組み合わせであってもよい。
【0020】
ロス率(Loss Tolerance又はPacket Loss Rate)とは、送信されたデータグループに対する損失されたデータパケットの数の割合である。データパケット、具体的には、データパケットロス率は、ある持続時間内に実際に受信されたデータパケットの数と、受信すべきデータパケットの数との比率であり得る。ロス率は、データパケット長さ及びパケット送信頻度に関連する。通常、ギガビットネットワークカードのトラフィックが200Mbpsを超える場合、ロス率は1万分の5未満であり、100Mネットワークカードのトラフィックが60Mbps以上の場合、ロス率は、1万分の1未満である。一具体的な適用では、ロス率は、入力メッセージ数に占める送信側の出力メッセージ数と受信側の入力メッセージ数との差値の割合、即ち、[(入力メッセージ-出力メッセージ)/入力メッセージ]*100%を計算することによって得ることができる。
【0021】
データパケット再送数量閾値とは、再送周期内に再送を要求されるデータパケットの数量閾値である。具体的には、受信側は、再送周期内のデータパケットロス率及び受信側の伝送帯域幅に基づいて、再送周期内のデータパケット再送数量閾値を計算する。伝送帯域幅は、単位時間当たりのリンクを通過するデータ量を識別するために使用される。再送周期内のデータパケットロス率はリアルタイムで変化するため、再送周期内のデータパケットロス率に基づいてデータパケット再送数量閾値を決定することにより、再送周期内のデータパケット再送数量閾値を動的に調整し、固定的なデータパケット再送数量閾値を設定する方式と比較して、動的に調整することにより、ネットワークジッタやパケットロスが激しい場合に、受信側が同時刻に過剰な再送要求を処理する必要があることによって発生する断続的なネットワークストームを効果的に回避することができる。
【0022】
再送対象データパケットは、パケットロス現象が検出された場合、送信側に再送信を要求する必要があるデータパケットである。ここで、受信側が受信したデータメッセージではデータパケットが搬送され、メッセージのヘッダではデータパケットとのシーケンス番号が搬送される。シーケンス番号は、送信側に対応する複数のデータパケットの送信順序を識別するために使用される。受信側は、受信済みデータパケットのシーケンス番号に基づいて、パケットロスをデータパケットのシーケンス番号を推定して、当該シーケンス番号に基づいて送信側にデータパケットの再送信を要求するようにする。
【0023】
シーケンス番号セットは、再送対象データパケットのそれぞれのシーケンス番号で構成されるセットである。説明すべきこととして、シーケンス番号セットはリアルタイムで更新されるものであり、新たな再送対象データパケットがある場合、再送対象データパケットのシーケンス番号をシーケンス番号セットに追加し、再送対象データパケットを受信した場合、再送対象データパケットのシーケンス番号をシーケンス番号セットから削除することができる。一具体的な適用では、シーケンス番号セットは、シーケンス番号の大小に従って並び替えることによって構成される再送キューであり得る。
【0024】
ステップ204において、シーケンス番号セットとマッチする各キーデータパケットのキーシーケンス番号を決定する。
【0025】
ここで、キーデータパケットは、受信側が受信したデータパケットのうち、特定の意味を有するデータパケットであり、具体的には、キーデータパケットは、データレンダリング中に、他のデータパケットと結合してデータを表示するためのデータパケットである。例えば、ビデオデータパケット内のキーフレームに対応するデータパケットである。受信側は、1つの伝送タスクに対応するデータパケットを受信した場合、データパケットのデータパケットカテゴリ識別子に基づいて、当該データパケットがキーデータパケットであるか否かを判定することができる。キーシーケンス番号とは、キーデータパケットのシーケンス番号である。
【0026】
シーケンス番号セットは、特定の伝送タスク内の受信済みデータのパケットロスデータのシーケンス番号を含み、したがって、シーケンス番号セットと受信済みデータが属する伝送タスクに対応し、異なる伝送タスクは、異なるシーケンス番号セットに対応する。シーケンス番号セットとマッチする各キーデータパケットは、再送対象データパケットが属する伝送タスクと同じキーデータパケットである。さらに、シーケンス番号セットに基づいて、伝送タスク内の受信済みのキーデータパケットに対して選別処理を行い、シーケンス番号セットが表すシーケンス番号区間範囲内にあるシーケンス番号のキーデータパケットを得、選別されたキーデータパケットのキーシーケンス番号を決定することもできる。
【0027】
一具体的な適用では、受信側は、まず、再送対象データパケットとマッチする受信済みデータパケットを決定し、次に、再送対象データパケットのそれぞれのシーケンス番号で構成されたシーケンス番号セットのシーケンス番号範囲に基づいて、データパケットカテゴリ識別によって、マッチする受信済みデータパケットから、シーケンス番号が当該シーケンス番号範囲にあるキーデータパケットを決定し、キーデータパケットのシーケンス番号をキーシーケンス番号とすることができる。
【0028】
ステップ206において、シーケンス番号セットに残存されたシーケンス番号の数を最大化し、且つ残存されたシーケンス番号の数がデータパケット再送数量閾値より小さいか又は等しくなるように、キーシーケンス番号からターゲットシーケンス番号を選別し、シーケンス番号セットからターゲットシーケンス番号より小さいか又は等しいシーケンス番号を削除する。
【0029】
ここで、ターゲットシーケンス番号は、キーシーケンス番号を選別して得られる、選別条件を満たすキーシーケンス番号である。ターゲットシーケンス番号の数は1つであり、選別条件は、シーケンス番号セットからターゲットシーケンス番号より小さいか又は等しいシーケンス番号を削除した後、シーケンス番号セットに残存されたシーケンス番号の数が最大となり、且つ残存されたシーケンス番号の数がデータパケット再送数量閾値より小さいか又は等しくなることであり得る。ターゲットシーケンス番号より小さいか又は等しいシーケンス番号は、ターゲットシーケンス番号より小さいシーケンス番号及びターゲットシーケンス番号に等しいシーケンス番号を含む。数を最大限にすることは、制約で許容される範囲内で、シーケンス番号セットに残存されたシーケンス番号の数が最大になるように選択することである。
【0030】
具体的には、受信側は、各キーシーケンス番号をそれぞれ候補シーケンス番号とし、シーケンス番号セットから候補シーケンス番号より小さいか又は等しいシーケンス番号をそれぞれ削除することにより、シーケンス番号セットに残存されたシーケンス番号の数をそれぞれ記録し、候補シーケンス番号から、残存されたシーケンス番号の数がデータパケット再送数量閾値以下である基準到達シーケンス番号を選別し、次に、各基準到達シーケンス番号から、残存されたシーケンス番号の数が最も多いターゲットシーケンス番号を選別することができる。
【0031】
具体的には、シーケンス番号の大きさに従ってキーシーケンス番号を並び替え、シーケンス番号が最も小さいキーシーケンス番号から、順次に各キーシーケンス番号をターゲットシーケンス番号として、シーケンス番号セットに残存されたシーケンス番号の数がデータパケット再送数量閾値の基準到達シーケンス番号より小さいか又は等しくなるまで、シーケンス番号セットからターゲットシーケンス番号より小さいか又は等しいシーケンス番号を削除することもできる。
【0032】
再送対象データパケットのそれぞれのシーケンス番号に基づいて形成されたシーケンス番号セットから、ターゲットシーケンス番号以下であるシーケンス番号を削除することにより、各キーシーケンス番号がターゲットシーケンス番号である場合について、シーケンス番号の削除処理を正確に行い、データ処理の精度を向上させることができる。
【0033】
ステップ208において、シーケンス番号セットに残存されたシーケンス番号で指示される再送対象データパケットの再送を要求する。
【0034】
ここで、再送を要求することとは、受信側が再送要求を送信側に送信して、送信側に要求されたパケットを再送信させることである。受信側で失われたデータパケットでは、失われたデータパケットを受信していないため、データパケットの具体的なコンテンツを取得できないが、送信側が送信したデータパケットのシーケンス番号が連続しているため、受信側は、受信に成功したシーケンス番号に基づいて、失われたデータパケットのシーケンス番号を決定でき、したがって、受信側は、シーケンス番号に基づいて失われたデータパケットの再送を送信側に要求することができる。図4に示すように、一具体的な適用では、受信側のNACK(Negative Acknowledgement:負のフィードバックであり、受信側はデータを受信していない場合にのみ送信側に通知する)は、受信側がデータパケットロスを検出した後、NACKメッセージを送信側に送信し、送信側は、NACKメッセージ内のシーケンス番号に基づいて、送信バッファ内で再送信が必要なデータパケットを見つけて、受信側に再送信する。
【0035】
具体的には、受信側は、シーケンス番号セットに残存されたシーケンス番号に基づいて、残存されたシーケンス番号に1対1に対応する再送要求を生成して送信側に送信し、シーケンス番号セットに残存されたシーケンス番号で指示される再送対象データパケットの再送を要求する。
【0036】
上記データ再送処理方法によれば、データパケットロス率に基づいてデータパケット再送数量閾値を決定することにより、データパケット再送数量閾値を再送周期のデータパケットロス率に基づいて動的に調整することができる。また、再送周期内の再送対象データパケット及び再送対象データパケットとマッチする各キーデータパケットに基づいて、キーシーケンス番号からターゲットシーケンス番号を選別し、シーケンス番号セットに残存されたシーケンス番号の数を最大化し、且つ残存されたシーケンス番号の数がデータパケット再送数量閾値より小さいか又は等しくなるように、再送対象データパケットのそれぞれのシーケンス番号に基づいて形成されたシーケンス番号セットから、ターゲットシーケンス番号より小さいか又は等しいシーケンス番号を削除することにより、再送対象データパケットを削減することを前提に、再送を要求する再送対象データパケットを最大化する。また、再送周期に基づいて再送要求処理を行うことにより、削除されたシーケンス番号に対応する再送対象データパケットの再送を前回の再送周期で要求することができ、再送対象データパケットの再送要求の漏れを回避するとともに、各再送周期における再送を要求する再送対象データパケットの数を効率的に制御することができ、ネットワークジッタや遅延を回避し、データ伝送の効果を向上させることができる。
【0037】
さらに、伝送帯域幅の全部又は一部を再送データパケットの伝送に使用することができ、他のデータパケットの正常な伝送に影響を与えないように、伝送帯域幅から一部の帯域幅を再送帯域幅として選択する。一具体的な適用では、受信側は、再送周期内のデータパケットロス率及び受信側の伝送帯域幅における再送帯域幅に基づいて、再送周期内のデータパケット再送数量閾値を計算する。
【0038】
一実施例では、再送周期内のデータパケットロス率に基づいて、再送周期内のデータパケット再送数量閾値を決定するステップは、伝送帯域幅における再送帯域幅の受信可能データ量に基づいて、再送周期内にデータパケットロス率に達したときの受信データ量閾値を決定するステップと、各データパケットのデータ量に基づいて、受信データ量閾値に対応するデータパケット再送数量閾値を決定するステップと、を含む。
【0039】
ここで、受信可能データ量は、単位時間当たりに回線で伝送できる最大データ量であり、常用単位はbpsである。受信側の伝送帯域幅は固定値であり、伝送帯域幅における再送帯域幅は、設定された重み付けパラメータによって決定することができ、例えば、伝送帯域幅に占める再送帯域幅の重み付けパラメータは20%である。ここで、重み付けパラメータは、全ての伝送データ(正常な伝送データと再送データを含む)に占める履歴再送データの割合に基づいてフィッティングすることにより得られる。データパケットロス率に達したときの受信データ量閾値とは、データパケットロスの存在を考慮して、正常に受信できるデータ量であり、例えば、受信側の伝送帯域幅の受信可能データ量が2Mbpsで、重みパラメータが0.2である場合、伝送帯域幅における再送帯域幅の受信可能データ量は0.4Mbpsであり、再送周期内のデータパケットロス率が20%である場合、単位時間当たりにデータパケットロス率に達するときの受信データ量閾値は、0.4Mbps*(1-20%)=0.32Mbps、即ち、40000byte/sであり、次に、各データパケットのデータ量に基づいて、例えば、単一データパケットを1500byteで計算すると、単位時間当たりに受信データ量閾値に対応するデータパケット再送数量閾値は、26個/sであり、再送周期が示す持続時間を参照して、再送周期内受信データ量閾値に対応するデータパケット再送数量閾値を得る。
【0040】
さらに、再送データは、伝送データの一部しか占めていないため、再送データの再送成功率は、履歴データに基づいて得られたロス率重み付けパラメータによって調整して更新することもでき、例えば、再送周期内のデータパケットロス率が40%で、履歴データに基づいて得られたロス率重み付けパラメータが0.9である場合、再送データのデータ伝送成功率は、1-0.9*(1-40%)=72%である。ロス率重み付けパラメータを設定することにより、より正確な再送データのデータ伝送成功率計算結果を得、それにより、正確なデータパケット再送数量閾値を得ることができる。
【0041】
具体的には、受信側は、伝送帯域幅に対応する伝送ビットレート、及び伝送帯域幅に占める再送帯域幅の割合に基づいて、再送帯域幅に対応する再送ビットレートを得、再送周期内のデータパケットロス率に対応する再送データの再送成功率に基づいて、再送周期内の最適化された再送ビットレートを決定し、各データパケットのデータ量に基づいて、最適化された再送ビットレートに対応するデータパケット再送数量閾値を決定する。
【0042】
本実施例では、再送帯域幅及びデータパケットロス率に基づいて、正確で信頼性の高いデータパケット再送数量閾値を得ることができ、固定的なデータパケット再送数量閾値を設定する方式と比較して、動的に調整することにより、ネットワークジッタやパケットロスが激しい場合に、受信側が同時刻に過剰な再送要求を処理する必要があることによって発生する断続的なネットワークストームを効果的に回避することができる。
【0043】
一実施例では、シーケンス番号セットとマッチする各キーデータパケットのそれぞれのキーシーケンス番号を決定するステップは、
前記シーケンス番号セットから、最大シーケンス番号及び最小シーケンス番号を選別し、キーデータパケットのそれぞれのシーケンス番号に基づいて形成され、且つ前記シーケンス番号セットとマッチするキーシーケンス番号セットを取得するステップと、キーシーケンス番号セットから、最小シーケンス番号より大きく、且つ最大シーケンス番号より小さいキーシーケンス番号を選別するステップと、を含む。
【0044】
ここで、最大シーケンス番号及び最小シーケンス番号は、再送対象データパケットのそれぞれのシーケンス番号を並び替えることによって得ることができる。一具体的な適用では、シーケンス番号セットは、シーケンス番号の大小に従って並び替えられた再送キューであり得、再送キューの先頭は、最大シーケンス番号及び最小シーケンス番号であり、例えば、シーケンス番号の昇順に従って並び替える場合、再送キューの最初のシーケンス番号は最大シーケンス番号であり、最後のシーケンス番号は最小シーケンス番号であり、シーケンス番号の降順に従って並び替える場合、再送キューの最初のシーケンス番号は最小シーケンス番号であり、最後のシーケンス番号は最大シーケンス番号である。キーシーケンス番号セットには、キーデータパケットのそれぞれのシーケンス番号が含まれ、キーデータパケットと再送信待機データパケットのシーケンス番号とを区別しやすくするために、キーデータパケットのシーケンス番号をキーシーケンス番号として定義する。説明すべきこととして、キーデータパケットは、受信側が既に受信したデータパケットの一部であり、再送信待機データパケットは、受信側がまだ受信していないデータパケットである。再送信待機データパケットは、受信済みデータパケットに基づいて決定され、受信済みデータパケットは伝送タスクに対応し、同様に、受信済みデータパケット内のキーデータパケットで構成されるキーシーケンス番号セットも伝送タスクに対応し、当該伝送タスクに基づいて、シーケンス番号セットとマッチするキーシーケンス番号セットを決定することができる。
【0045】
一具体的な適用では、キーシーケンス番号セットをトラバースすることにより、キーシーケンス番号セット内の各キーシーケンス番号を、最大シーケンス番号及び最小シーケンス番号とそれぞれ比較し、キーシーケンス番号が最小シーケンス番号より大きく、且つ最大シーケンス番号より小さい場合、当該キーシーケンス番号は、シーケンス番号セットとマッチするキーシーケンス番号であると決定し、キーシーケンス番号が最小シーケンス番号より小さいか、又は最大シーケンス番号より大きい場合、キーシーケンス番号セットのトラバースが終了するまで、当該キーシーケンス番号をスキップして次のキーシーケンス番号と比較し、マッチするキーシーケンス番号を選別する。キーシーケンス番号セットをトラバースすることにより、選別されたマッチするキーシーケンス番号の精度を確保することができる。
【0046】
別の具体的な適用では、シーケンス番号セットは、再送対象データパケットのシーケンス番号の大小に従って並び替えられた再送キューであり得、キーシーケンス番号セットは、キーシーケンス番号の大小に従って並び替えられたキーシーケンス番号キューであり得る。図5に示すように、受信済みデータパケットのシーケンス番号は、1、3、5、7、10、15、……、nを含み、再送キュー内のシーケンス番号は、2、4、6、8、9、11、……、mを含み、キーシーケンス番号キュー内のシーケンス番号は、5、10、15、19、……、kを含む。再送キュー及びキーシーケンス番号キューは、伝送データに対応するタスク識別子を搬送し、タスク識別子に基づいて、マッチする再送キュー及びキーシーケンス番号キューを決定することができる。再送キュー内の最小シーケンス番号に基づいて、キーシーケンス番号キューのうち、当該最小シーケンス番号より大きく、且つ当該最小シーケンス番号との差が最小であるフラグキーシーケンス番号を決定し、キーシーケンス番号キューから、当該フラグキーシーケンス番号より大きいか又は等しいキーシーケンス番号を選別する。キーシーケンス番号の大小に従って並び替える方式により、選別したマッチするキーシーケンス番号の精度を確保しつつ、マッチするキーシーケンス番号の迅速な選別を実現することができる。
【0047】
本実施例では、シーケンス番号セット内の最大シーケンス番号及び最小シーケンス番号に基づいて、キーデータパケットをさらに選別することにより、キーデータパケットの数を最小限に抑え、後続のキーデータパケットのキーシーケンス番号からターゲットシーケンス番号を選別するデータ処理量の削減を容易にし、データ処理効率を向上させることができる。
【0048】
一実施例では、データ再送処理方法は、受信したデータパケットに対応するヘッダで搬送されるデータパケットカテゴリ識別子を抽出するステップと、データパケットカテゴリ識別子が、データパケットがキーデータパケットであることを示す場合、ヘッダで搬送されるシーケンス番号をキーシーケンス番号セットに追加するステップと、をさらに含む。
【0049】
ここで、ヘッダとは、データ伝送情報を記録するためのメッセージ内のデータであり、メッセージは、ネットワークで交換・伝送されるデータユニット、即ち、ステーションが一度に送信するデータブロックである。メッセージは、送信しようとする完全なデータ情報を含み、具体的には、伝送が必要なデータパケット及び対応するデータ伝送情報を含み、ここで、データ伝送情報は、データパケットのデータパケットカテゴリ識別子及びデータパケットに対応するシーケンス番号を含む。
【0050】
具体的には、受信側は、メッセージを受信すると、ヘッダからデータパケットカテゴリ識別子を抽出し、データパケットカテゴリ識別子がキーデータパケットを示す場合、ヘッダからシーケンス番号を抽出し、シーケンス番号を、当該メッセージが属する伝送タスクに対応するキーシーケンス番号セットに追加する。
【0051】
一具体的な適用では、受信したデータパケットがビデオフレームパケットである場合を例にとると、データパケットカテゴリ識別子は、Iフレーム、Pフレーム、及びBフレームを含む。Iフレームはキーフレームを示し、完全な画面を含み、このフレームの画面の完全な保持と理解でき、本フレームデータのみで復号を完了することができ、Pフレームは本フレームと前のキーフレーム(又はPフレーム)との差異を示し、復号時には前にキャッシュされた画面に本フレーム定義の差異を重畳して、最終画面を生成する必要がある。Pフレームは、差異フレームとして理解でき、完全な画面データがなく、直前のフレームの画面差異データのみある。Bフレームは、双方向差異フレームであり、本フレームと前後のフレームとの差異を記録し、Bフレームを復号するには、前のキャッシュ画面を取得するだけでなく、復号後の画面も必要であり、前後の画面と本フレームデータとを重畳することにより最終的な画面を取得する。受信側がメッセージを受信し、メッセージ内のヘッダを解析して、当該メッセージに含まれるビデオフレームパケットがキーフレームであると決定すると、当該メッセージ内のシーケンス番号を、当該メッセージが属する伝送タスクのキーフレームシーケンスに追加する。
【0052】
本実施例では、メッセージからデータパケットカテゴリ識別子を抽出することにより、受信したデータパケット内のキーデータパケットを正確に識別することができ、データパケットレンダリング時に解析結果を使用して当該データパケットがキーデータパケットであるか否かを決定する方式と比較して、データ処理効率を効果的に向上させることができる。
【0053】
一実施例では、シーケンス番号セットに残存されたシーケンス番号の数を最大化し、且つ残存されたシーケンス番号の数がデータパケット再送数量閾値より小さいか又は等しくなるように、キーシーケンス番号からターゲットシーケンス番号を選別し、シーケンス番号セットからターゲットシーケンス番号より小さいか又は等しいシーケンス番号を削除するステップは、
昇順に従って、順次にキーシーケンス番号をターゲットシーケンス番号とし、再送対象データパケットのそれぞれのシーケンス番号に基づいて形成されたシーケンス番号セットから、シーケンス番号セットに残存されたシーケンス番号の数がデータパケット再送数量閾値より小さいか又は等しくなるまで、ターゲットシーケンス番号以下であるシーケンス番号を削除するステップを含む。
【0054】
受信側が受信したデータパケットが全て順に到着した場合、シーケンス番号セットにはターゲットシーケンス番号に等しいシーケンス番号が含まれておらず、受信側が受信したキーデータパケットが無秩序に到着した場合、当該キーデータパケットが到着する前に、当該キーデータパケットを再送対象データパケットとして、当該キーデータパケットのキーシーケンス番号をシーケンス番号セットに追加した可能性があるため、シーケンス番号セットにはキーシーケンス番号が存在する可能性があるが、受信側が、実際に当該キーシーケンス番号が指し示すキーデータパケットを受信したため、直接シーケンス番号セットから、当該キーシーケンス番号に等しいシーケンス番号を削除して、データパケットの重複伝送を回避することができる。再送対象データパケットのそれぞれのシーケンス番号に基づいて形成されたシーケンス番号セットから、ターゲットシーケンス番号以下であるシーケンス番号を削除することにより、各キーシーケンス番号がターゲットシーケンス番号である場合について、シーケンス番号の削除処理を正確に行い、データ処理の精度を向上させることができる。
【0055】
具体的には、受信側は、昇順に従って並んだキーシーケンス番号で構成されたキーシーケンス番号キューに基づいて、キーシーケンス番号キューのうち、シーケンス番号セット内の最小シーケンス番号より大きいキーシーケンス番号から、キーシーケンス番号をターゲットシーケンス番号として順次選択し、シーケンス番号セットのうち、ターゲットシーケンス番号以下であるシーケンス番号を削除して、シーケンス番号セットに残存されたシーケンス番号の数がデータパケット再送数量閾値より大きいか否かを決定し、大きい場合、次のキーシーケンス番号をターゲットシーケンス番号として、同じ処理を実行し、そうでない場合、ターゲットシーケンス番号の選別プロセスを終了する。
【0056】
本実施例では、シーケンス番号の大小に従って並び替える方式により、選別したターゲットシーケンス番号の精度を確保しつつ、データ処理速度を向上させ、ターゲットシーケンス番号の迅速な選別を実現することができる。
【0057】
一実施例では、データ再送処理方法は、現在受信したデータパケットの現在のシーケンス番号が前回受信したデータパケットの履歴シーケンス番号より大きく、且つ現在のシーケンス番号と履歴シーケンス番号との間に中間シーケンス番号が存在する場合、中間シーケンス番号をシーケンス番号セットに追加するステップと、現在受信したデータパケットの現在のシーケンス番号が前回受信したデータパケットの履歴シーケンス番号より小さい場合、シーケンス番号セットから現在のシーケンス番号を削除するステップと、をさらに含む。
【0058】
ここで、現在受信したデータパケットとは、最後に受信し、且つまだそれに対して対応する処理が開始されていないデータパケットである。前回受信したデータパケットとは、現在受信したデータパケットの前に受信し、且つ既に対応する処理が完了されているデータパケットである。
【0059】
データ伝送が正常である場合、現在受信したデータパケットの現在のシーケンス番号は、前回受信したデータパケットの履歴シーケンス番号より大きく、且つ現在のシーケンス番号と履歴シーケンス番号は、隣接する2つのシーケンス番号であり、即ち、現在のシーケンス番号と履歴シーケンス番号との間に中間シーケンス番号が存在しない。現在受信したデータパケットの現在のシーケンス番号が前回受信したデータパケットの履歴シーケンス番号より大きく、且つ現在のシーケンス番号と履歴シーケンス番号との間に中間シーケンス番号が存在しない場合、各データパケットが順次到着し、パケットロス現象が存在しないことを示す。
【0060】
現在のシーケンス番号が履歴シーケンス番号より大きく、且つ両者の間に中間シーケンス番号が存在する場合、現在のシーケンス番号と履歴シーケンス番号との間にパケットロス現象が存在することを示し、中間シーケンス番号は、パケットロス現象が発生したデータパケットであり、当該失われたデータパケットの再送を送信側に要求する必要がある。中間シーケンス番号をシーケンス番号セットに追加することにより、シーケンス番号セットに基づいて再送要求が必要な再送対象データパケットであるか否かをさらに容易に判断することができる。
【0061】
現在受信したデータパケットの現在のシーケンス番号が前回受信したデータパケットの履歴シーケンス番号より小さい場合、現在受信したデータパケットが無秩序に受信側に到着し、受信側は、その後に送信したデータパケットを既に受信したことを示し、したがって、現在受信したデータパケットのデータ番号は既にシーケンス番号セットに追加されているため、シーケンス番号セットから現在のシーケンス番号を削除する必要があり、当該データパケットの再送を送信側に要求する必要がない。
【0062】
本実施例では、現在のシーケンス番号が履歴シーケンス番号、且つ両者の間に中間シーケンス番号が存在する場合、シーケンス番号セットに再送対象データパケットのシーケンス番号を追加し、現在のシーケンス番号が履歴シーケンス番号より小さい場合、シーケンス番号セットから無秩序に受信したデータパケットのシーケンス番号を削除することにより、シーケンス番号セット内のシーケンス番号が全て、受信側が受信していないデータパケットのシーケンス番号であることを保証し、データパケットの重複伝送を回避し、それにより、データ再送の精度を向上させる。
【0063】
一実施例では、現在受信したデータパケットの現在のシーケンス番号が前回受信したデータパケットに対応する履歴シーケンス番号より大きく、且つ現在のシーケンス番号と履歴シーケンス番号との間に中間シーケンス番号が存在する場合、中間シーケンス番号をシーケンス番号セットに追加するステップは、現在受信したデータパケットの現在のシーケンス番号が前回受信したデータパケットの履歴シーケンス番号より大きく、且つ現在のシーケンス番号と履歴シーケンス番号との間に中間シーケンス番号が存在する場合、現在のシーケンス番号と履歴シーケンス番号とのシーケンス番号差を計算するステップと、シーケンス番号差が差閾値より小さいか又は等しい場合、中間シーケンス番号をシーケンス番号セットに追加するステップと、を含む。
【0064】
ここで、シーケンス番号差とは、シーケンス番号の差を計算して得られる結果である。シーケンス番号差は、現在のシーケンス番号と履歴シーケンス番号との間の中間シーケンス番号の数を示すために使用される。例えば、シーケンス番号差が20である場合、現在のシーケンス番号と履歴シーケンス番号との間の中間シーケンス番号は、20-1=19となる。
【0065】
本実施例では、現在のシーケンス番号と履歴シーケンス番号とのシーケンス番号の差を限定して、シーケンス番号差が差閾値以下である場合のみ、中間シーケンス番号をシーケンス番号セットに追加することにより、シーケンス番号セット内のシーケンス番号の数をさらに制御することができ、それにより、シーケンス番号セットに対するシーケンス番号削除プロセスにおける対応するデータ処理量の削減を容易にし、データ処理効率を向上させることができる。
【0066】
一実施例では、データ再送処理方法は、現在受信したデータパケットの現在のシーケンス番号が前回受信したデータパケットの履歴シーケンス番号より大きく、且つ現在のシーケンス番号と履歴シーケンス番号が連続シーケンス番号である場合、現在のシーケンス番号のデータパケットに基づいてレンダリングを行うステップをさらに含む。
【0067】
ここで、連続シーケンス番号とは、シーケンス番号が隣接する2つのシーケンス番号であり、例えば、現在のシーケンス番号が10で、前回受信したデータパケットの履歴シーケンス番号が9である。データパケットに基づいてレンダリングを行うことは、具体的には、データパケットがキーデータパケットであるか否かを判断することであり、キーデータパケットである場合、直接データパケット解析によりレンダリングを行い、そうでない場合、当該データパケットとキーデータパケットとを解析してマージしてからレンダリングを行うことであり得る。ビデオフレームデータパケットを例にとると、パケットフレームマージによりリアルタイム間隔でビデオフレームレンダリングを行うことができる。
【0068】
具体的には、キーデータパケットが生放送シーンで伝送される音声ビデオデータにおけるキーフレームデータパケットである場合において、現在受信したデータパケットの現在のシーケンス番号が前回受信したデータパケットの履歴シーケンス番号より大きく、且つ現在のシーケンス番号と履歴シーケンス番号が連続シーケンス番号である場合、現在のシーケンス番号が指し示すデータパケットのデータパケットカテゴリ識別子を取得し、前記データパケットカテゴリ識別子がキーフレームデータパケットを示す場合、現在のシーケンス番号のキーフレームデータパケットに基づいて画面レンダリングを行い、データパケットカテゴリ識別子が差異フレーム又は双方向差異フレームを示す場合、差異フレーム又は双方向差異フレームと、キーフレームデータパケットとのデータ重畳を行い、重畳データに対して画面レンダリングを行う。
【0069】
ここで、生放送シーンは具体的に低遅延インタラクティブ生放送、生放送視聴、リアルタイム録画、スクリーン共有、美顔特殊効果、ステレオなどの機能に使用でき、インタラクティブビデオ通話、クロスルームPK、音声ラジオ、カラオケ、小クラスの授業、大クラスの授業、音声チャット、ビデオチャット、オンライン会議などのビジネスシーンに適用できる。音声ビデオデータは、ビデオデータ、又はビデオデータと与オーディオデータの組み合わせを含む。データパケットカテゴリ識別子は、Iフレーム、Pフレーム、及びBフレームを含む。Iフレームはキーフレームを示し、完全な画面を含み、このフレームの画面の完全な保持と理解でき、本フレームデータのみで復号を完了することができ、Pフレームは本フレームと前のキーフレーム(又はPフレーム)との差異を示し、復号時には前にキャッシュされた画面に本フレーム定義の差異を重畳して、最終画面を生成する必要がある。Pフレームは、差異フレームとして理解でき、完全な画面データがなく、直前のフレームの画面差異データのみある。Bフレームは、双方向差異フレームであり、本フレームと前後のフレームとの差異を記録し、Bフレームを復号するには、前のキャッシュ画面を取得するだけでなく、復号後の画面も必要であり、前後の画面と本フレームデータとを重畳することにより最終的な画面を得てレンダリングを行う。
【0070】
本実施例では、連続シーケンス番号に従ってデータパケットレンダリングを行うことにより、データの低遅延表示を確保し、受信側の応答速度を向上させることができる。
【0071】
さらに、データ再送処理方法は、シーケンス番号差が差閾値より大きい場合、シーケンス番号セット内のシーケンス番号をクリアし、現在のシーケンス番号に基づいて、現在のシーケンス番号とマッチするキーデータパケットの伝送を要求するステップをさらに含む。
【0072】
ここで、現在のシーケンス番号とマッチするキーデータパケットは、送信側が現在のシーケンス番号に基づいてシーケンス番号順に検索できる最初のキーデータパケットである。
【0073】
具体的には、受信側が毎回受信するデータパケットはメッセージ解析により、当該データパケットのシーケンス番号を得ることができ、シーケンス番号差計算により、現在受信したデータパケットの現在のシーケンス番号と、前回受信したデータパケットの履歴シーケンス番号とのシーケンス番号差を取得し、シーケンス番号差と差閾値とを比較することにより、シーケンス番号差が差閾値より大きい場合、受信側は、シーケンス番号セット内のシーケンス番号をクリアする。
【0074】
同時に、受信側は、現在のシーケンス番号に基づいてキーデータパケット要求を送信側に送信し、送信側は、キーデータパケット要求における現在のシーケンス番号を抽出し、現在のシーケンス番号から始まるシーケンス番号の大小に従ってキャッシュされたキャッシュデータから、シーケンス番号が現在のシーケンス番号の後の最初のキーシーケンス番号を検索し、当該キーシーケンス番号が指し示すキーデータパケットを受信側に送信することができる。送信側は、現在のシーケンス番号に基づいて、新たなキーデータパケットをリアルタイムで生成して受信側に送信することもできる。
【0075】
一具体的な適用では、ビデオパケットが送信側から受信側に送信される場合を例にとると、受信側は、今回受信したデータパケットについて、そのシーケンス番号をseq1としてマークし、前回到着したデータパケットのシーケンス番号をseq2としてマークし、seq1>seq2で、seq1-seq2は、ボイドサイズであり、seqは連続的に増加する。正常なネットワークパケットロスseq(シーケンス番号)のボイドサイズは、一定範囲内であり、いくつかの異常なネットワークシーン、例えば、ユーザが正常なネットワークからエレベータに移動し、またエレベータから出てネットワークが回復するまで、エレベータにいる間は、ネットワークは基本的にネットワークが異常であり、送信側から送信されたパケットは基本的に破棄され、エレベータから出て回復時を最新のseq1としてマークし、前回のseq2に相対的に大きなジャンプがあり、(seq1-seq2)>max_voidについては、seq2~seq1の間にネットワークが既に異常であると考えられ、このとき、シーケンス番号セットNACK Listをクリアし、seq2からseq1の間のボイドもNACK Listに挿入する必要なく、受信側は、PYI(Picture Loss Indication:ビデオフレーム損失キーフレーム再送)要求を直接送信し、前のデータは全て破棄し、直接送信側に最新のキーフレーム(送信側は、要求に応じてリアルタイムでキーフレームを生成する)から送信させる。具体的には、差閾値max_voidの値は、需要に応じて、例えば600、800、1000などに設定することができ、差閾値は、ネットワーク異常持続時間に換算することができる。差閾値が800である場合を例にとると、ビデオ平均ビットレートは、2Mbpsであり、1)NACK List内の単一のseqは、1500byte(WMANルータの最大MTUは1500である)で計算され、1秒間に約250KB/1500=170個のデータパケットに相当し、したがって、差閾値800は、ネットワーク異常持続時間5秒に換算される。
【0076】
本実施例では、現在受信したデータパケットの現在のシーケンス番号と前回受信したデータパケットの履歴シーケンス番号とのシーケンス番号差閾値を設定することにより、現在のシーケンス番号と履歴シーケンス番号とのシーケンス番号差が差閾値より大きい場合、シーケンス番号セット内のシーケンス番号をクリアし、ネットワーク異常時に、シーケンス番号セットに大量のシーケンス番号を追加することにより送信側が大量のデータパケット再送要求を送信することを回避し、ネットワークジッタやパケットロスが激しい場合に、同時刻に大量の再送要求を処理することによって発生する断続的なネットワークストームを効果的に回避し、データ伝送プロセスにおける安定性を確保することができる。
【0077】
一実施例では、データ再送処理方法は、履歴伝送データに対応する履歴遅延データに対して平滑化処理を行い、基準遅延データを得るステップと、基準遅延データに基づいて、再送周期を決定するステップをさらに含み、再送周期の持続時間は、基準遅延データに対応する持続時間より大きいか又は等しい。
【0078】
ここで、履歴伝送データとは、伝送に成功したデータであり、履歴遅延データは、過去に伝送されたデータパケットそれぞれに対応する往復遅延(RTT:Round-Trip Time)であり得る。往復遅延とは、データがネットワークの一端から他端に転送されるのにかかる時間である。通常、遅延は、送信遅延、伝播遅延、キューイング遅延、処理遅延の4つの部分から構成される。RTTを平滑化処理すると、SRTT(「平滑化」されたRTT)が得られ、SRTTは、計算を簡単にしつつ、過去のRTTをできるだけ考慮する。具体的には、SRTT=α*SRTT+(1-α)*RTTであり、ここで、αは重み係数であり、0.6~0.7の間の値を取ることができる。計算に使用するSRTTとは、前回の計算で得られた結果である。
【0079】
基準遅延データに対応する持続時間に基づいて、持続時間が基準遅延データに対応する持続時間より大きいか又は等しい再送周期を得る。基準遅延データは動的に変化するため、基準遅延データに基づいて、再送周期を動的に更新する。具体的には、SRTT転送プロトコルスタックは、リアルタイムでSRTTを計算し、SRTTのリアルタイムの計算結果に基づいて再送周期を動的に調整し、例えば30秒に1回サイズを調整する。
【0080】
本実施例では、リアルタイムのデータ伝送遅延データに基づいて再送周期を動的に更新することにより、再送周期をリアルタイムのネットワーク状態とマッチさせ、それにより、各再送周期のデータ処理量を調整して、均衡したデータ処理を実現する。
【0081】
一実施例では、データ再送処理方法は、各再送対象データパケットに対応する再送要求回数を記録するステップと、再送対象データパケットに対応する再送要求回数が要求回数閾値より大きい場合、シーケンス番号セットから再送対象データパケットのシーケンス番号を削除するステップと、をさらに含む。
【0082】
ここで、要求回数閾値は、同一再送対象データパケットに対して予め設定された最大要求回数である。各再送周期において、送信側は、シーケンス番号セット内の各残存されたシーケンス番号で指示される再送対象データパケットに基づいて、送信側に再送要求を1回開始する。具体的には、各再送周期において、シーケンス番号セットに残存されたseqパケットに対して再送要求を開始し、当該seq再送要求回数retries+1を記録し、retries>MaxRetriesの場合、当該seqをシーケンス番号セットから削除し、ここで、要求回数閾値MaxRetriesの値は、伝送シーンに応じて設定することができ、例えば、適用シーンで最大リアルタイム通信(RTC:Real-time communication)遅延をMaxRTCDelayとしようとする場合、MaxRetries=MaxRTCDelay/SRTT+1は、シーンに応じて自己設定することができ、MaxRetriesが大きいほどシーケンス番号セット内のシーケンス番号の数が多くなり、シーケンス番号セットについては、削除する必要のあるシーケンス番号の数が多くなるため、データ処理量が多くなり、シーケンス番号セットに対してシーケンス番号数の制御を行わない場合、エンドツーエンド遅延が増加する。
【0083】
本実施例では、各再送対象データパケットの再送要求回数を制御することにより、同一再送対象データパケットに過剰な再送要求を送信することを効果的に回避することができ、シーケンス番号セットにおけるシーケンス番号の数を効率的制御し、データ処理効率を向上させることができる。
【0084】
一実施例では、再送周期内のデータパケットロス率に基づいて、再送周期内のデータパケット再送数量閾値を決定するステップは、
再送周期内のデータパケットロス率がロス率閾値より大きい場合、再送周期内のデータパケットロス率に基づいて、再送周期内のデータパケット再送数量閾値を決定するステップを含む。
【0085】
ここで、ロス率閾値とは、許容される最大ロス率である。ロス率閾値は、予め設定された固定値であってもよく、リアルタイム調整や周期的調整など、実際の適用シーンに応じて調整してもよい。一具体的な適用では、ロス率閾値は、10%に設定することができる。受信側は、再送周期内のデータパケットロス率が10%以上に達したことを検出すると、再送周期内のデータパケットロス率に基づいて、再送周期内のデータパケット再送数量閾値を決定し、再送周期内の再送対象データパケットのそれぞれのシーケンス番号からなるシーケンス番号セットを取得し、シーケンス番号セットとマッチする各キーデータパケットのそれぞれのキーシーケンス番号を決定し、シーケンス番号セットに残存されたシーケンス番号の数を最大化し、且つ残存されたシーケンス番号の数がデータパケット再送数量閾値より小さいか又は等しくなるように、キーシーケンス番号からターゲットシーケンス番号を選別し、シーケンス番号セットからターゲットシーケンス番号より小さいか又は等しいシーケンス番号を削除し、シーケンス番号セットに残存されたシーケンス番号で指示される再送対象データパケットの再送を要求する。
【0086】
本実施例では、再送周期内のデータパケットロス率がロス率閾値より大きい場合にのみ、データパケットの再送を要求し、再送を要求されたデータパケットは、シーケンス番号セットに残存されたシーケンス番号で指示される再送対象データパケットであり、ロス率閾値を限定して再送要求をトリガするか否かを判断する方式を採用して、具体的なトリガシーンを限定することにより、再送対象データパケットが出現するたびにデータパケットの再送処理を行うことを回避し、正確なシーン限定を実現し、データ処理リソースの無駄を回避する。
【0087】
さらに、データ再送処理方法は、再送周期内のデータパケットロス率がロス率閾値より小さいか又は等しい場合、再送周期内の再送対象データパケットの再送を要求するステップをさらに含む。
【0088】
本実施例では、再送周期内のデータパケットロス率がロス率閾値より小さいか又は等しい場合にのみ、再送周期内の再送対象データパケットの再送を直接要求することにより、複雑な処理プロセスを回避し、データパケットロス率が小さい場合、データ処理効率を向上させるのに有利である。
【0089】
一実施例では、シーケンス番号セットとマッチする各キーデータパケットのそれぞれのキーシーケンス番号を決定するステップは、再送周期内の再送対象データパケットの数が再送周期内のデータパケット再送数量閾値より大きい場合、シーケンス番号セットとマッチする各キーデータパケットのそれぞれのキーシーケンス番号を決定するステップを含む。
【0090】
具体的には、再送周期内のデータパケットロス率に基づいて、再送周期内のデータパケット再送数量閾値を決定し、再送周期内の再送対象データパケットのそれぞれのシーケンス番号からなるシーケンス番号セットを取得し、再送周期内の再送対象データパケットの数が再送周期内のデータパケット再送数量閾値より大きい場合、シーケンス番号セットとマッチする各キーデータパケットのそれぞれのキーシーケンス番号を決定し、シーケンス番号セットに残存されたシーケンス番号の数を最大化し、且つ残存されたシーケンス番号の数がデータパケット再送数量閾値より小さいか又は等しくなるように、キーシーケンス番号からターゲットシーケンス番号を選別し、シーケンス番号セットからターゲットシーケンス番号より小さいか又は等しいシーケンス番号を削除し、シーケンス番号セットに残存されたシーケンス番号で指示される再送対象データパケットの再送を要求する。
【0091】
本実施例では、再送周期内の再送対象データパケットの数が再送周期内のデータパケット再送数量閾値より大きい場合にのみ、データパケットの再送を要求し、再送を要求されたデータパケットは、シーケンス番号セットに残存されたシーケンス番号で指示される再送対象データパケットであり、再送対象データパケットの数に応じて再送要求をトリガするか否かを判断する方式を採用して、再送要求をトリガする具体的なトリガ条件シーンを限定することにより、再送対象データパケットが出現するたびにデータパケットの再送処理を行うことを回避し、正確なシーン限定を実現し、データ処理リソースの無駄を回避する。
【0092】
一実施例では、データ再送処理方法は、再送周期内の再送対象データパケットの数が再送周期内のデータパケット再送数量閾値より小さいか又は等しい場合、再送周期内の再送対象データパケットの再送を要求するステップをさらに含む。
【0093】
本実施例では、再送周期内の再送対象データパケットの数が再送周期内のデータパケット再送数量閾値より小さいか又は等しい場合にのみ、再送周期内の再送対象データパケットの再送を直接要求することにより、複雑な処理プロセスを回避し、再送周期内の再送対象データパケットの数が少ない場合、データ処理効率を向上させるのに有利である。
【0094】
一実施例では、再送周期内のデータパケットロス率がロス率閾値より小さいか又は等しい場合、再送周期内の再送対象データパケットの再送を要求する。再送周期内のデータパケットロス率がロス率閾値より大きい場合、再送周期内のデータパケットロス率に基づいて、再送周期内のデータパケット再送数量閾値を決定し、再送周期内の再送対象データパケットのそれぞれのシーケンス番号からなるシーケンス番号セットを取得し、再送周期内の再送対象データパケットの数が再送周期内のデータパケット再送数量閾値より小さいか又は等しい場合、再送周期内の再送対象データパケットの再送を要求する。再送周期内の再送対象データパケットの数が再送周期内のデータパケット再送数量閾値より大きい場合、シーケンス番号セットとマッチする各キーデータパケットのそれぞれのキーシーケンス番号を決定し、シーケンス番号セットに残存されたシーケンス番号の数を最大化し、且つ残存されたシーケンス番号の数がデータパケット再送数量閾値より小さいか又は等しくなるように、キーシーケンス番号からターゲットシーケンス番号を選別し、シーケンス番号セットからターゲットシーケンス番号より小さいか又は等しいシーケンス番号を削除し、シーケンス番号セットに残存されたシーケンス番号で指示される再送対象データパケットの再送を要求する。
【0095】
本実施例では、再送周期内のデータパケットロス率がロス率閾値より大きく、且つ再送周期内の再送対象データパケットの数が再送周期内のデータパケット再送数量閾値より大きい場合にのみ、データパケットの再送を要求することにより、再送を要求されたデータパケットは、シーケンス番号セットに残存されたシーケンス番号で指示される再送対象データパケットであり、再送要求の具体的なトリガ条件を2つの閾値条件が同時に満たされるように限定することにより、上述した再送対象データパケットの再送要求トリガ閾値をさらに高め、再送要求が頻繁にトリガされることによる不要なデータ処理リソースの無駄を回避する。
【0096】
一実施例では、図6に示すように、データ再送処理方法を提供し、前記方法は、以下のステップを含む。
【0097】
ステップ602において、履歴伝送データに対応する履歴遅延データに対して平滑化処理を行い、基準遅延データを得、基準遅延データに基づいて、再送周期を決定し、再送周期の持続時間は、基準遅延データに対応する持続時間より大きいか又は等しい。
【0098】
ステップ604において、現在受信したデータパケットの現在のシーケンス番号が前回受信したデータパケットの履歴シーケンス番号より大きく、且つ現在のシーケンス番号と履歴シーケンス番号が連続シーケンス番号である場合、現在のシーケンス番号が指し示すデータパケットに基づいてレンダリングを行う。
【0099】
ステップ606において、現在受信したデータパケットの現在のシーケンス番号が前回受信したデータパケットの履歴シーケンス番号より大きく、且つ現在のシーケンス番号と履歴シーケンス番号との間に中間シーケンス番号が存在する場合、現在のシーケンス番号と履歴シーケンス番号とのシーケンス番号差を計算する。
【0100】
ステップ608において、シーケンス番号差が差閾値より大きい場合、シーケンス番号セット内のシーケンス番号をクリアし、現在のシーケンス番号に基づいて、現在のシーケンス番号とマッチするキーデータパケットの伝送を要求する。
【0101】
ステップ610において、シーケンス番号差が差閾値より小さいか又は等しい場合、中間シーケンス番号をシーケンス番号セットに追加する。
【0102】
ステップ612において、現在受信したデータパケットの現在のシーケンス番号が前回受信したデータパケットの履歴シーケンス番号より小さい場合、シーケンス番号セットから現在のシーケンス番号を削除する。
【0103】
ステップ614において、受信したデータパケットに対応するヘッダで搬送されるデータパケットカテゴリ識別子を抽出し、データパケットカテゴリ識別子が、データパケットがキーデータパケットであることを示す場合、ヘッダで搬送されるシーケンス番号をキーシーケンス番号セットに追加する。
【0104】
ステップ616において、再送周期内のデータパケットロス率がロス率閾値より小さいか又は等しい場合、再送周期内の再送対象データパケットの再送を要求する。
【0105】
ステップ618において、再送周期内のデータパケットロス率がロス率閾値より大きい場合、伝送帯域幅における再送帯域幅の受信可能データ量に基づいて、再送周期内にデータパケットロス率に達したときの受信データ量閾値を決定する。
【0106】
ステップ620において、各データパケットのデータ量に基づいて、受信データ量閾値に対応するデータパケット再送数量閾値を決定し、再送周期内の再送対象データパケットのそれぞれのシーケンス番号からなるシーケンス番号セットを取得する。
【0107】
ステップ622において、再送周期内の再送対象データパケットの数が再送周期内のデータパケット再送数量閾値より小さいか又は等しい場合、再送周期内の再送対象データパケットの再送を要求する。
【0108】
ステップ624において、再送周期内の再送対象データパケットの数が再送周期内のデータパケット再送数量閾値より大きい場合、シーケンス番号セットから、最大シーケンス番号及び最小シーケンス番号を選別する。
【0109】
ステップ626において、キーデータパケットのそれぞれのシーケンス番号に基づいて形成され、且つシーケンス番号セットとマッチするキーシーケンス番号セットを決定する。
【0110】
ステップ628において、キーシーケンス番号セットから、最小シーケンス番号より大きく、且つ最大シーケンス番号より小さいキーシーケンス番号を選別する。
【0111】
ステップ630において、昇順に従って、キーシーケンス番号を現在のシーケンス番号として順次使用し、再送対象データパケットのそれぞれのシーケンス番号に基づいて形成されたシーケンス番号セットから、シーケンス番号セットに残存されたシーケンス番号の数がデータパケット再送数量閾値より小さいか又は等しくなるまで、現在のシーケンス番号以下のシーケンス番号を削除する。
【0112】
ステップ632において、シーケンス番号セットに残存されたシーケンス番号で指示される再送対象データパケットの再送を要求し、各再送対象データパケットに対する再送要求回数を記録する。
【0113】
ステップ634において、再送対象データパケットに対する再送要求回数が要求回数閾値より大きい場合、シーケンス番号セットから再送対象データパケットのシーケンス番号を削除する。
【0114】
本願は、上述したデータ再送処理方法を適用する適用シーンをさらに提供する。具体的には、当該データ再送処理方法は、当該適用シーンで以下のように適用される。
【0115】
既存のNACK方式の最大の問題は、ネットワークジッタやパケットロスが激しい場合に、同時刻に多くのNACKの再送要求を受信する可能性があり、送信側は、これらの再送要求を瞬時にpacerに入れて再送信を行い、pacer queueは、瞬時に大きくなるため、断続的なネットワークストームが発生しやすく、深刻なネットワーク混雑が発生し、ネットワークジッタが激しくなり、対応する混雑制御ポリシーが不足することである。ユーザ側ネットワークが良好でネットワークストームが発生しなくても、送信側は、瞬時にこれらの再送要求をpacerに入れて再送信を行うため、pacerの遅延が大きくなり、受信側jitterbufferが静的制御アルゴリズムであれば、バッファサイズは固定して可能な限り大きく設定することしかできなく、ネットワークジッタが大きい場合はロス率が高く、ジッタが小さい場合は遅延が大きい。
【0116】
本方案で提案したデータ再送処理方法は、NACK再送ビットレートに基づくロス率コントローラによって実現でき、具体的な適用シーンは、低遅延生放送適用シーンの解決策であってもよく、本方案は、RTP/RTCP/WebRTC伝送プロトコルフォーマットに基づく伝送を簡単に説明したものであり、実際の方案の適用は、RTP/RTCP/WebRTC伝送プロトコルフォーマットに基づくか、カスタム伝送プロトコルフォーマットに基づくかに限定されない。
【0117】
ここで、リアルタイム伝送プロトコル(RTP:Real-time Transport Protocol)に対応するRTPプロトコルは、インターネット上で音声やビデオを配信する標準データパケットフォーマットを詳細に説明している。最初はマルチキャストプロトコルとして設計されたが、その後、多くのユニキャストアプリケーションで使用されている。RTPプロトコルは、ストリーミングシステム(RTSPプロトコルと連結)、ビデオ会議、及びプッシュ(Push to Talk)システム(H.323又はSIPと連結)でよく使用され、IP電話産業の技術的基盤となっている。RTPプロトコルは、RTP制御プロトコルRTCPと共に使用され、UDPプロトコルに基づいて構築されている。
【0118】
RTCP(Real-time Transport Control Protocol又はRTP Control Protocol又は略してRTCP)は、リアルタイム伝送プロトコルRTPの姉妹プロトコルである。RTCPは、RFC3550によって定義される(廃止されたRFC1889に代わる)。RTPは偶数のUDP portを使用し、RTCPはRTPの次のport、つまり奇数のportを使用する。RTCPはRTPと連携して動作し、RTPは実際のデータの伝送を行い、RTCPは制御パケットを電話の全員に送信する。その主な機能は、RTPが提供するサービスの品質に関するフィードバックを提供することである。
【0119】
WebRTC(Web Real-Time Communication、名前はWebインスタントメッセージから由来)とは、Webブラウザでリアルタイムの音声会話やビデオ会話をサポートするアプリケーションインタフェース(API:Application Programming Interface)である。Google、Mozilla、Operaのサポートにより、World Wide Web ConsortiumW3C推薦基準に含まれている。WebRTCは、音声ビデオの収集、コーデック、ネットワーク伝送、表示などの機能を含むビデオ会議のコア技術を提供し、windows、linux、mac、androidといったクロスプラットフォームもサポートしている。
【0120】
RTC及び低遅延の生放送製品では、フォワードエラー訂正(FEC)及びパケットロス再送(NACK)は、ネットワークエラーに耐える重要な手段である。FECは、送信側でデータパケットに冗長なエラー訂正コードを追加し、エラー訂正コードは、データパケットとともに受信側に送信され、受信側はエラー訂正コードに基づいてデータをチェックして訂正する。NACKは、受信側がデータパケットロスを検出した後、NACKメッセージを送信側に送信し、送信側は、NACKメッセージ内のシーケンス番号に従って、送信バッファで再送信されるべきデータパケットを見つけ、受信側に再送信する。NACKは、送信側の送信バッファのサポートを必要とし、RFC5104は、NACKデータパケットのフォーマットを定義する。本方案は、RTC及び低遅延生放送シーンにおけるネットワーク異常シーンでのRTPデータパケットのシーケンス番号特性(seq特性)を詳細に分析し、受信側の最大受信評価帯域幅(REMB:Receiver Estimated Maximum Bitrate)、Loss Rate(ロス率)、SRTT(平滑化処理の往復遅延)及びNACKパケットロス再送Listと組み合わせてネットワーク異常を最適化する場合にNACK再送ビットレートロス率コントローラを設計し、低遅延の生放送ネットワーク異常時に高速回復最適化方案を提供する。本方案は、Tencent Cloudビデオクラウドライブイベント放送、クラウドゲームなどのビジネス商品によく適用され、Kwai、TikTok、YY、DouYu、bilibili、Caiji、及びunreal engineアプリケーションなどのアプリにもよく適用される。
【0121】
ここで、ライブイベント放送(LEB:Live Event Broadcasting、超低遅延生放送)は、超低遅延再生シーンにおける標準生放送の延長であり、従来の生放送プロトコルより低遅延で、視聴者に究極のミリ秒レベルのライブ放送視聴体験を提供する。LEBは、オンライン教育、スポーツイベントの生放送、オンライン質問応答など、より優れた遅延性能を必要とする特定のシナリオのニーズに対応することができる。
【0122】
低遅延生放送伝送主流の方案がRTP/RTCP/WebRTC伝送プロトコルフォーマットに基づいているか、カスタム伝送プロトコルフォーマットに基づいているかにかかわらず、伝送層は基本的にUDPを使用する。ネットワーク異常(ネットワークBDP、即ち、帯域幅と遅延との積)ジッタ、ネットワーク接続の回復、ネットワーク切り替え(4G/5GからWIFIへの切り替え、WIFIから4G/5Gへの切り替えなど)を解決すると、データパケットの遅延や早期到着、データパケットの無秩序、パケットロスなどが発生し、フォワードエラー訂正(FEC)及びパケットロス再送(NACK)は、ネットワークエラーに耐える重要な手段であり、ジッタ問題を解決するには、jitterbuffer(音声ビデオジッタバッファ)を使用し、jitterbufferは、RTPデータパケットを並び替えることができる、RTPデータパケットを格納するためのバッファであり、jitterbufferにRTPパケットが不連続である場合、NACKを使用して送信側に再送を要求する。
【0123】
図7に示すように、まず、メッセージコンテナフォーマット管理モジュールは、RTP/RTCPパケットを受信した後、伝送フォーマット解析、音声ビデオコンテナフォーマット解析、妥当性検出を行う。
【0124】
フォーマット解析が正しくて適法である場合、メッセージパケット論理ポリシーを実行する。失われたRTPデータパケットのシーケンス番号は、セットされたNACK Listに格納される。今回RTPモジュールからのデータパケットについては、メッセージ内のヘッダからデータパケットのシーケンス番号を取得し、そのシーケンス番号をseq1としてマークし、前回到着したデータパケットのシーケンス番号をseq2としてマークする。説明すべきこととして、RTP headerのseq番号は、2バイトだけで、最大値は65535で、ラップアラウンドが発生するが、本方案では、seqラップアラウンドが適切に処理されていることを前提とし、全てのseq番号が連続的に増加していると見なされる。
【0125】
seq1>seq2の場合、seq1が順次到着したことを示し、(seq2,seq1)の間隔内のデータパケットは、損失状態であるとマークされ、NACK Listセットに格納される。RTP FUヘッダ及びビデオnalu typeseq1に対応するビデオフレームパケットによってキーフレーム判断を行い、受信したseq1に対応するビデオフレームパケットがキーフレームである場合、現在のseq1番号をNACK KeyFrame Listに格納する。
【0126】
ここでの損失状態は一時的なものであり、次のデータパケットが到着したときにseq3<seq1の場合、データパケットが無秩序に到着したことを示し、NACK List内のseq3のシーケンス番号を削除する。NACK Listセットを更新する場合、1つのNACKポリシー再送周期内のREMB及びロス率(lr:Loss rate)が組み合されて考慮される。
【0127】
lr≦10%の場合、NACK List要求は正常に送信される。
【0128】
lr>10%の場合、NACKポリシー再送周期NACK List長、即ちNLを取得する。決定NACKポリシー再送周期の再送データパケット数量閾値は、max_send_retries_nack=(0.2*REMB(byte))*(1-0.8*lr)/1500として決定され、ここで、NACK List内の単一のseqは、1500byte(WMANルータの最大MTUは1500である)で計算される。
【0129】
NL<max_send_retries_nackの場合、全てのNACK List要求は正常に送信される。
【0130】
そうでない場合、NACK Listからseq値に従って各キーフレーム位置を探し出し、これらのキーフレーム位置及びそれ以前の各seqを循環的に削除し、次に、NL<max_send_retries_nackになるまで、削除処理後のNLを再計算する。
【0131】
JitterBufferは、受信したRTPパケットが連続している場合、パケットフレームマージを行い、リアルタイム間隔でレンダリングを行い、RTPパケットseqの間に不連続なseqがある場合、一定時間待機し、送信側による再送及びボイド損失のseqパケットの回復を待ち、通常のネットワークパケットロスseqボイドサイズは、seq1-seq2で、一定の範囲内である。いくつかの異常なネットワークシーン、例えば、ユーザが正常なネットワークからエレベータに移動し、またエレベータから出てネットワークが回復するまで、エレベータにいる間は、ネットワークは基本的にネットワークが異常であり、送信側から送信されたパケットは基本的に破棄され、エレベータから出て回復時を最新のseq1としてマークし、前回のseq2に相対的に大きなジャンプがあり、(seq1-seq2)>max_voidについては、seq2からseq1までの間にネットワーク既に異常であると考えられ、このとき、NACK Listをクリアでき、seq2~seq1の間のボイドもNACK Listに挿入する必要なく、クライアントは、PYI要求を直接送信し、以前の古いデータは全て廃棄し、直接送信側に、最新のキーフレームから送信させる。
【0132】
再送周期に基づいてNACK Listを定期的に検出し、再送周期は、最新のSRTTに動的に設定することができ、1つのSRTTを超えた後にNACK Listをチェックし、NACK List内のパケットロスのseqパケットに対する再送信要求が開始され、当該seq再送要求回数をretries+1とマークして記録し、retries>MaxRetriesの場合、当該seqをNACK Listから削除する。
【0133】
上述したデータ再送処理方法を採用したNACK再送ビットレートロス率コントローラは、最適化前に比べて平均的な総合最初のフレーム遅延に比べて80%以上低下しており、図8に示すように、横軸はテスト回数番号であり、縦軸は弱ネットワークにおける低遅延生放送の最初のフレーム遅延であり、ネットワークジッタやパケットロスが激しい場合、同時刻に多くのNACKの再送要求を受信する可能性があるため、断続的なネットワークストームが発生する問題が解決される。
【0134】
理解すべきこととして、図2図6のフローチャートの各ステップは、矢印に従って順次表示されているが、これらのステップ必ずしも矢印の指示に従って順次実行されるわけではない。本明細書で明記されていない限り、これらのステップの実行は厳密な順序に限定されず、これらのステップは他の順序で実行できる。さらに、図2図6におけるステップの少なくとも一部は、複数のステップ又は複数の段階を含み得、これらのステップ又は段階は、必ずしも同時に実行されるとは限らず、異なる時間に実行でき、また、これらのステップ又は段階の実行順序も、必ずしも逐次的である必要はなく、他のステップと交互に、又は他のステップ内のステップ又は段階の少なくとも一部と交互に実行することができる。
【0135】
一実施例では、図9に示すように、データ再送処理装置900を提供し、当該装置は、当該装置は、ソフトウェアモジュール又はハードウェアモジュール、又はこれら2つの組み合わせを採用してコンピュータ機器の一部となることができ、当該装置は具体的には、閾値決定モジュール902と、キーシーケンス番号決定モジュール904と、シーケンス番号削除モジュール906と、再送要求モジュール908と、を備える。
【0136】
閾値決定モジュール902は、再送周期内のデータパケットロス率に基づいて、再送周期内のデータパケット再送数量閾値を決定し、再送周期内の再送対象データパケットのそれぞれのシーケンス番号からなるシーケンス番号セットを取得するように構成される。
【0137】
キーシーケンス番号決定モジュール904は、シーケンス番号セットとマッチする各キーデータパケットのそれぞれのキーシーケンス番号を決定するように構成される。
【0138】
シーケンス番号削除モジュール906は、シーケンス番号セットに残存されたシーケンス番号の数を最大化し、且つ残存されたシーケンス番号の数がデータパケット再送数量閾値より小さいか又は等しくなるように、キーシーケンス番号からターゲットシーケンス番号を選別し、シーケンス番号セットからターゲットシーケンス番号より小さいか又は等しいシーケンス番号を削除するように構成される。
【0139】
再送要求モジュール908は、シーケンス番号セットに残存されたシーケンス番号で指示される再送対象データパケットの再送を要求するように構成される。
【0140】
一実施例では、閾値決定モジュールは、受信データ量閾値決定モジュールと、データパケット再送数量閾値モジュールと、を備え、
受信データ量閾値決定モジュールは、伝送帯域幅における再送帯域幅の受信可能データ量に基づいて、再送周期内にデータパケットロス率に達したときの受信データ量閾値を決定するように構成され、
データパケット再送数量閾値モジュールは、各データパケットのデータ量に基づいて、受信データ量閾値に対応するデータパケット再送数量閾値を決定するように構成される。
【0141】
一実施例では、キーシーケンス番号決定モジュールは、シーケンス番号選別モジュールと、キーシーケンス番号セット決定モジュールと、キーシーケンス番号選別モジュールと、を備え、
シーケンス番号選別モジュールは、シーケンス番号セットから、最大シーケンス番号及び最小シーケンス番号を選別し、キーデータパケットのそれぞれのシーケンス番号に基づいて形成され、且つ前記シーケンス番号セットとマッチするキーシーケンス番号セットを取得するように構成され、
キーシーケンス番号選別モジュールは、キーシーケンス番号セットから、最小シーケンス番号より大きく、且つ最大シーケンス番号より小さいキーシーケンス番号を選別するように構成される。
【0142】
一実施例では、データ再送処理装置は、キーシーケンス番号セット管理モジュールをさらに備え、前記キーシーケンス番号セット管理モジュールは、受信したデータパケットに対応するヘッダで搬送されるデータパケットカテゴリ識別子を抽出するステップと、データパケットカテゴリ識別子が、データパケットがキーデータパケットであることを示す場合、ヘッダで搬送されるシーケンス番号をキーシーケンス番号セットに追加するステップと、を実行するように構成される。
【0143】
一実施例では、シーケンス番号削除モジュールはさらに、昇順に従って、キーシーケンス番号を現在のシーケンス番号として順次使用し、再送対象データパケットのそれぞれのシーケンス番号に基づいて形成されたシーケンス番号セットから、シーケンス番号セットに残存されたシーケンス番号の数がデータパケット再送数量閾値より小さいか又は等しくなるまで、現在のシーケンス番号以下のシーケンス番号を削除するように構成される。
【0144】
一実施例では、データ再送処理装置は、中間シーケンス番号追加モジュールと、現在のシーケンス番号削除モジュールと、をさらに備え、
中間シーケンス番号追加モジュールは、現在受信したデータパケットの現在のシーケンス番号が前回受信したデータパケットの履歴シーケンス番号より大きく、且つ現在のシーケンス番号と履歴シーケンス番号との間に中間シーケンス番号が存在する場合、中間シーケンス番号をシーケンス番号セットに追加するように構成され、
現在のシーケンス番号削除モジュールは、現在受信したデータパケットの現在のシーケンス番号が前回受信したデータパケットの履歴シーケンス番号より小さい場合、シーケンス番号セットから現在のシーケンス番号を削除するように構成される。
【0145】
一実施例では、データ再送処理装置は、シーケンス番号差計算モジュールと、第1シーケンス番号差比較モジュールと、第2シーケンス番号差比較モジュールと、をさらに備え、
シーケンス番号差計算モジュールは、現在受信したデータパケットの現在のシーケンス番号が前回受信したデータパケットの履歴シーケンス番号より大きく、且つ現在のシーケンス番号と履歴シーケンス番号との間に中間シーケンス番号が存在する場合、現在のシーケンス番号と履歴シーケンス番号とのシーケンス番号差を計算するように構成され、
第1シーケンス番号差比較モジュールは、シーケンス番号差が差閾値より大きい場合、シーケンス番号セット内のシーケンス番号をクリアし、現在のシーケンス番号に基づいて、現在のシーケンス番号とマッチするキーデータパケットの伝送を要求するように構成され、
第2シーケンス番号差比較モジュールは、シーケンス番号差が差閾値より小さいか又は等しい場合、中間シーケンス番号をシーケンス番号セットに追加するように構成される。
【0146】
一実施例では、キーデータパケットが生放送シーンで伝送される音声ビデオデータにおけるキーフレームデータパケットである場合、データ再送処理装置は、レンダリングモジュールをさらに備え、前記レンダリングモジュールは、現在受信したデータパケットの現在のシーケンス番号が前回受信したデータパケットの履歴シーケンス番号より大きく、且つ現在のシーケンス番号と履歴シーケンス番号が連続シーケンス番号である場合、現在のシーケンス番号が指し示すデータパケットのデータパケットカテゴリ識別子を取得するステップと、データパケットカテゴリ識別子がキーフレームデータパケットを示す場合、現在のシーケンス番号が指し示すキーフレームデータパケットに基づいて画面レンダリングを行うステップと、データパケットカテゴリ識別子が差異フレーム又は双方向差異フレームを示す場合、差異フレーム又は双方向差異フレームと、キーフレームデータパケットとのデータ重畳を行い、重畳データに対して画面レンダリングを行うステップと、を実行するように構成される。
【0147】
一実施例では、データ再送処理装置は、再送周期決定モジュールをさらに備え、前記再送周期決定モジュールは、履歴伝送データに対応する履歴遅延データに対して平滑化処理を行い、基準遅延データを得るステップと、基準遅延データに基づいて、再送周期を決定するステップと、を実行するように構成され、再送周期の持続時間は、基準遅延データに対応する持続時間より大きいか又は等しい。
【0148】
一実施例では、シーケンス番号削除モジュールはさらに、各再送対象データパケットに対する再送要求回数を記録するステップと、再送対象データパケットに対する再送要求回数が要求回数閾値より大きい場合、シーケンス番号セットから再送対象データパケットのシーケンス番号を削除するステップと、を実行するように構成される。
【0149】
一実施例では、閾値決定モジュールはさらに、再送周期内のデータパケットロス率がロス率閾値より大きい場合、再送周期内のデータパケットロス率に基づいて、再送周期内のデータパケット再送数量閾値を決定するように構成され、再送要求モジュールはさらに、再送周期内のデータパケットロス率がロス率閾値より小さいか又は等しい場合、再送周期内の再送対象データパケットの再送を要求するように構成される。
【0150】
一実施例では、キーシーケンス番号決定モジュールはさらに、再送周期内の再送対象データパケットの数が再送周期内のデータパケット再送数量閾値より大きい場合、シーケンス番号セットとマッチする各キーデータパケットのそれぞれのキーシーケンス番号を決定するように構成され、再送要求モジュールはさらに、再送周期内の再送対象データパケットの数が再送周期内のデータパケット再送数量閾値より小さいか又は等しい場合、再送周期内の再送対象データパケットの再送を要求するように構成される。
【0151】
データ再送処理装置の具体的な実施例については、上述したデータ再送処理方法の実施例を参照することができ、ここでは繰り返して説明しない。上記のデータ再送処理装置における各モジュールは、全体的又は部分的に、ソフトウェア、ハードウェア、及びそれらの組み合わせによって実現できる。上記の各モジュールは、ハードウェアの形で、コンピュータ機器のプロセッサに集積されるか、又はコンピュータ機器内のプロセッサから独立していてもよく、プロセッサが上記の各モジュールに対応する操作を呼び出して実行できるようにするために、ソフトウェアの形でコンピュータ機器のメモリに記憶されてもよい。
【0152】
一実施例では、コンピュータ機器を提供し、当該コンピュータ機器は、端末であり得、その内部構造図は、図10に示される通りであり得る。当該コンピュータ機器は、システムバスを介して接続されたプロセッサ、メモリ、通信インターフェース、表示画面及び入力装置を含み得る。ここで、当該コンピュータ機器のプロセッサは、計算機能と制御機能を提供するために使用される。当該コンピュータ機器のメモリは、不揮発性記憶媒体及び内部メモリを含む。当該コンピュータ機器の不揮発性記憶媒体は、オペレーティングシステム及びコンピュータ可読命令を記憶する。当該内部メモリは、不揮発性記憶媒体に記憶されたオペレーティングシステム及びコンピュータ可読命令を実行するための環境を提供する。当該コンピュータ機器の通信インターフェースは、外部端末との有線又は無線通信に使用され、無線通信はWIFI、オペレータネットワーク、NFC(Near Field Communication)又はその他の技術によって実現できる。当該コンピュータ可読命令はプロセッサによって実行されるときに、データ再送処理方法を実現する。当該コンピュータ機器の表示画面は、液晶表示画面又は電子インク表示画面であり得、当該コンピュータ機器の入力装置は、表示画面に覆われたタッチ層であってもよく、コンピュータ機器のハウジングに設けられたボタン、トラックボール又はタッチパッドであってもよく、外部接続されたキーボード、タッチパッド又はマウスなどであってもよい。
【0153】
当業者なら、図10示される構造は、本願の解決策に関連する構造の一部のブロック図に過ぎず、本願の解決策が適用されるコンピュータ機器に対する限定ではなく、具体的なコンピュータ機器は、図に示されるよりも多い又は少ないコンポーネントを含んでもよいか、又は特定のコンポーネントを組み合わせてもよいか、又は異なるコンポーネント配置を有してもよいことが理解できる。
【0154】
一実施例では、メモリと、プロセッサと、を備えるコンピュータ機器をさらに提供し、メモリには、コンピュータ可読命令が記憶され、当該プロセッサは、コンピュータ可読命令を実行するときに、上述した実施例におけるステップを実現する。
【0155】
一実施例では、コンピュータ可読命令が記憶されたコンピュータ可読記憶媒体を提供し、当該コンピュータ可読命令は、プロセッサによって実行されるときに、上述した実施例におけるステップを実現する。
【0156】
一実施例では、コンピュータ可読命令を含むコンピュータプログラム製品又はコンピュータプログラムを提供し、当該コンピュータ命令は、コンピュータ可読記憶媒体に記憶される。コンピュータ機器のプロセッサは、コンピュータ可読記憶媒体から当該コンピュータ可読命令を読み取り、プロセッサは当該コンピュータ可読命令を実行することにより、当該コンピュータ機器に上述した各方法の実施例におけるステップを実行させる。
【0157】
当業者なら、上記の実施例の各方法における全部又は一部のプロセスは、プログラム可読命令に関連するハードウェアによって完了することができ、前記コンピュータ可読命令は、不揮発性コンピュータ可読記憶媒体に記憶され、当該コンピュータ可読命令が実行されるときに、上記の各方法の実施例におけるプロセスを含み得ることを理解できる。ここで、本願の各実施例で任意引用するメモリ、ストレージ、データベース又は他の媒体は、全て不揮発性及び揮発性メモリの少なくとも1つを含み得る。不揮発性メモリは、読み取り専用メモリ(ROM:Read-Only Memory)、磁気テープ、フロッピーディスク、フラッシュメモリ、又は光メモリなどを含み得る。揮発性メモリは、ランダムアクセスメモリ(RAM:Random Access Memory)又は外部キャッシュメモリを含み得る。例示的であるが限定的ではない例示によれば、多くの形のRAM、例えば、静的ランダムアクセスメモリ(SRAM:Static Random Access Memory)、又はダイナミックランダムアクセスメモリ(DRAM:Dynamic Random Access Memory)などであり得る。
【0158】
上記の実施例の各技術的特徴は、任意に組み合わせることができ、説明を簡潔にするために、上記の実施例における各技術的特徴の全ての可能な組み合わせについては説明されていないが、これらの技術的特徴の組み合わせに矛盾がない限り、全て本明細書の範囲に含まれると見なすべきである。
【0159】
上述した実施例は、本願のいくつかの実施形態のみを示し、それらの説明は、より具体的かつ詳細であるが、本発明の保護範囲を限定するものとして解釈されるべきではない。当業者にとって、本願の原理から逸脱することなく、いくつかの改善又は修正を加えることもでき、これらの改善及び修正も本願の保護範囲と見なされるべきであることに留意されたい。したがって、本願の保護範囲は、特許請求の範囲の保護範囲に従うものとする。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
【手続補正書】
【提出日】2023-08-09
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータ機器が実行する、データ再送処理方法であって、
再送周期内のデータパケットロス率に基づいて、前記再送周期内のデータパケット再送数量閾値を決定し、前記再送周期内の再送対象データパケットのそれぞれのシーケンス番号からなるシーケンス番号セットを取得するステップと、
前記シーケンス番号セットとマッチする各キーデータパケットのそれぞれのキーシーケンス番号を決定するステップと、
前記シーケンス番号セットに残存されたシーケンス番号の数を最大化し、且つ残存されたシーケンス番号の数が前記データパケット再送数量閾値より小さいか又は等しくなるように、前記キーシーケンス番号からターゲットシーケンス番号を選別し、前記シーケンス番号セットから、前記ターゲットシーケンス番号より小さいか又は等しいシーケンス番号を削除するステップと、
前記シーケンス番号セットに残存されたシーケンス番号で指示される再送対象データパケットの再送を要求するステップと、を含む、データ再送処理方法。
【請求項2】
前記再送周期内のデータパケットロス率に基づいて、前記再送周期内のデータパケット再送数量閾値を決定するステップは、
伝送帯域幅における再送帯域幅の受信可能データ量に基づいて、前記再送周期内に前記データパケットロス率に達したときの受信データ量閾値を決定するステップと、
各データパケットのデータ量に基づいて、前記受信データ量閾値に対応するデータパケット再送数量閾値を決定するステップと、を含む、
請求項1に記載のデータ再送処理方法。
【請求項3】
前記シーケンス番号セットとマッチする各キーデータパケットのそれぞれのキーシーケンス番号を決定するステップは、
前記シーケンス番号セットから、最大シーケンス番号及び最小シーケンス番号を選別し、キーデータパケットのそれぞれのシーケンス番号に基づいて形成され、且つ前記シーケンス番号セットとマッチするキーシーケンス番号セットを取得するステップと、
前記キーシーケンス番号セットから、前記最小シーケンス番号より大きく、且つ前記最大シーケンス番号より小さいキーシーケンス番号を選別するステップと、を含む、
請求項1に記載のデータ再送処理方法。
【請求項4】
前記データ再送処理方法は、
受信したデータパケットに対応するヘッダで搬送されるデータパケットカテゴリ識別子を抽出するステップと、
前記データパケットカテゴリ識別子が、前記データパケットがキーデータパケットであることを示す場合、前記ヘッダで搬送されるシーケンス番号を前記キーシーケンス番号セットに追加するステップと、をさらに含む、
請求項3に記載のデータ再送処理方法。
【請求項5】
前記シーケンス番号セットに残存されたシーケンス番号の数を最大化し、且つ残存されたシーケンス番号の数が前記データパケット再送数量閾値より小さいか又は等しくなるように、前記キーシーケンス番号からターゲットシーケンス番号を選別し、前記シーケンス番号セットから、前記ターゲットシーケンス番号より小さいか又は等しいシーケンス番号を削除するステップは、
昇順に従って、前記キーシーケンス番号を現在のシーケンス番号として順次使用し、前記再送対象データパケットのそれぞれのシーケンス番号に基づいて形成されたシーケンス番号セットから、前記シーケンス番号セットに残存されたシーケンス番号の数が前記データパケット再送数量閾値より小さいか又は等しくなるまで、前記現在のシーケンス番号以下のシーケンス番号を削除するステップを含む、
請求項1に記載のデータ再送処理方法。
【請求項6】
前記データ再送処理方法は、
現在受信したデータパケットの現在のシーケンス番号が前回受信したデータパケットの履歴シーケンス番号より大きく、且つ前記現在のシーケンス番号と前記履歴シーケンス番号との間に中間シーケンス番号が存在する場合、前記中間シーケンス番号をシーケンス番号セットに追加するステップ、又は、
現在受信したデータパケットの現在のシーケンス番号が前回受信したデータパケットの履歴シーケンス番号より小さい場合、前記シーケンス番号セットから前記現在のシーケンス番号を削除するステップをさらに含む、
請求項1に記載のデータ再送処理方法。
【請求項7】
前記データ再送処理方法は、
現在受信したデータパケットの現在のシーケンス番号が前回受信したデータパケットの履歴シーケンス番号より大きく、且つ前記現在のシーケンス番号と前記履歴シーケンス番号との間に中間シーケンス番号が存在する場合、前記現在のシーケンス番号と前記履歴シーケンス番号とのシーケンス番号差を計算するステップと、
前記シーケンス番号差が差閾値より大きい場合、前記シーケンス番号セット内のシーケンス番号をクリアし、前記現在のシーケンス番号に基づいて、前記現在のシーケンス番号とマッチするキーデータパケットの伝送を要求するステップと、
前記シーケンス番号差が差閾値より小さいか又は等しい場合、前記中間シーケンス番号をシーケンス番号セットに追加するステップと、をさらに含む、
請求項1に記載のデータ再送処理方法。
【請求項8】
前記キーデータパケットは、生放送シーンで伝送される音声ビデオデータにおけるキーフレームデータパケットであり、
前記データ再送処理方法は、
現在受信したデータパケットの現在のシーケンス番号が前回受信したデータパケットの履歴シーケンス番号より大きく、且つ前記現在のシーケンス番号と前記履歴シーケンス番号が連続シーケンス番号である場合、前記現在のシーケンス番号が指し示すデータパケットのデータパケットカテゴリ識別子を取得するステップと、
前記データパケットカテゴリ識別子がキーフレームデータパケットを示す場合、前記現在のシーケンス番号が指し示すキーフレームデータパケットに基づいて画面レンダリングを行うステップと、をさらに含み、
又は、
前記データ再送処理方法は、
現在受信したデータパケットの現在のシーケンス番号が前回受信したデータパケットの履歴シーケンス番号より大きく、且つ前記現在のシーケンス番号と前記履歴シーケンス番号が連続シーケンス番号である場合、前記現在のシーケンス番号が指し示すデータパケットのデータパケットカテゴリ識別子を取得するステップと、
前記データパケットカテゴリ識別子が差異フレーム又は双方向差異フレームを示す場合、前記差異フレーム又は前記双方向差異フレームと、キーフレームデータパケットとのデータ重畳を行い、重畳データに基づいて画面レンダリングを行うステップと、をさらに含む、
請求項1に記載のデータ再送処理方法。
【請求項9】
前記データ再送処理方法は、
履歴伝送データに対応する履歴遅延データに対して平滑化処理を行い、基準遅延データを得るステップと、
前記基準遅延データに基づいて、再送周期を決定するステップであって、前記再送周期の持続時間は、前記基準遅延データに対応する持続時間より大きいか又は等しい、ステップと、をさらに含む、
請求項1に記載のデータ再送処理方法。
【請求項10】
前記データ再送処理方法は、
各再送対象データパケットに対する再送要求回数を記録するステップと、
前記再送対象データパケットに対する再送要求回数が要求回数閾値より大きい場合、前記シーケンス番号セットから前記再送対象データパケットのシーケンス番号を削除するステップと、をさらに含む、
請求項1に記載のデータ再送処理方法。
【請求項11】
前記再送周期内のデータパケットロス率に基づいて、前記再送周期内のデータパケット再送数量閾値を決定するステップは、
再送周期内のデータパケットロス率がロス率閾値より大きい場合、前記再送周期内のデータパケットロス率に基づいて、前記再送周期内のデータパケット再送数量閾値を決定するステップを含む、
請求項1~10のいずれか一項に記載のデータ再送処理方法。
【請求項12】
前記データ再送処理方法は、
再送周期内のデータパケットロス率がロス率閾値より小さいか又は等しい場合、前記再送周期内の再送対象データパケットの再送を要求するステップをさらに含む、
請求項11に記載のデータ再送処理方法。
【請求項13】
前記シーケンス番号セットとマッチする各キーデータパケットのそれぞれのキーシーケンス番号を決定するステップは、
前記再送周期内の再送対象データパケットの数が前記再送周期内のデータパケット再送数量閾値より大きい場合、前記シーケンス番号セットとマッチする各キーデータパケットのそれぞれのキーシーケンス番号を決定するステップを含み、
前記データ再送処理方法は、
前記再送周期内の再送対象データパケットの数が前記再送周期内のデータパケット再送数量閾値より小さいか又は等しい場合、前記再送周期内の再送対象データパケットの再送を要求するステップをさらに含む、
請求項1~10のいずれか一項に記載のデータ再送処理方法。
【請求項14】
データ再送処理装置であって、
再送周期内のデータパケットロス率に基づいて、前記再送周期内のデータパケット再送数量閾値を決定し、前記再送周期内の再送対象データパケットのそれぞれのシーケンス番号からなるシーケンス番号セットを取得するように構成される閾値決定モジュールと、
前記シーケンス番号セットとマッチする各キーデータパケットのそれぞれのキーシーケンス番号を決定するように構成されるキーシーケンス番号決定モジュールと、
前記シーケンス番号セットに残存されたシーケンス番号の数を最大化し、且つ残存されたシーケンス番号の数が前記データパケット再送数量閾値より小さいか又は等しくなるように、前記キーシーケンス番号からターゲットシーケンス番号を選別し、前記シーケンス番号セットから、前記ターゲットシーケンス番号より小さいか又は等しいシーケンス番号を削除するように構成されるシーケンス番号削除モジュールと、
前記シーケンス番号セットに残存されたシーケンス番号で指示される再送対象データパケットの再送を要求するように構成される再送要求モジュールと、を備える、データ再送処理装置。
【請求項15】
コンピュータ可読命令が記憶されたメモリと、前記コンピュータ可読命令を実行するときに、請求項1~10のいずれか一項に記載の方法実現する1つ又は複数のプロセッサと、を備える、コンピュータ機器。
【請求項16】
コンピュータに、請求項1~10のいずれか一項に記載の方法実行させるコンピュータプログラム
【国際調査報告】