- 小さいほうがいいが、フォイエルバッハは...
ビクターペレビン「ジェネレーションパイ」
Linux 4.9カーネルの最近のリリースは 、今後のWiFiオーバークロックについて語る大きな理由です。 すぐに予約します。投稿は、カバレッジエリアを拡大し たり、規制 区域を 変更したりすることではありません。 このようなことは必要ありません。DaveTähtバッファーファイターパッチが安定版ブランチに追加された後にカーネルを更新するだけです。
遅延を削減することで速度が大幅に向上 [1]および過剰なバッファリング [2]ネット上。 このため、開発者はmac80211
をシャベルでmac80211
、上部から何かを削除し、下部から何かを追加し、その後ネットワークの遅延を大幅に削減する必要がありました。 質問価格? 200行のパッチ。 カットの下の詳細。
同じBufferbloat
Bufferbloatは、プロバイダーのネットワーク機器での過度のバッファリングであり、不必要なデータ伝送遅延につながります。 十分にロードされたチャネルでは、各接続はミリ秒を使い果たし、それが数秒に、そして時には数分待ちます。 ネットワーク遅延が1秒の場合、 slashdot.orgは最大4分ロードします!
# flent -l 300 -H server –streams=12 tcp_ndown & # wget -E -H -k -K -p https://www.slashdot.org ... FINISHED --2016-10-22 13:43:35-- Total wall clock time: 232.8s Downloaded: 62 files, 1.8M in 0.9s (77KB/s)
最初のチームは、 netperf
にPythonラッパーを使用します。これは、制御測定を行うための強力なツールです [3]ネットワーク接続。
-l 300 # 5 -H server # server -streams=12 tcp_ndown #12 tcp download
Flent
は、2番目の遅延で接続が確立されるようにチャネルをロードします。 接続のセットアップは実行時間の99.6%を要しました。その結果、実際の速度は悲惨な77 KB /秒に低下しました。 遅延がゼロの場合、同じページが8秒でロードされます。 往復時間 [4]および遅延は帯域幅よりも重要です 。
ISP側では 、これは流行ですが、ユーザー機器では十分です。 開発者がパケットスケジューラを最高速度に最適化したため、かなり長い間、各ネットワークドライバは非現実的に高いデータバッファリング要件を想定して設計されていました。 ただし、WiFi接続中にIRLが使用されることはほとんどありません。 それが猫の読み込みが遅く、ビデオ通話が拷問に変わる理由です。 SMSと登録なしでIBを確認してください 。
問題は、プロバイダー側のメインバッファが膨張し、そこで状況を修正すると、接続速度が無料で向上することです。 Speedtest ISP XfinityおよびGoogle Fiber 。
問題が口うるさいだけに限られていたと言うことではない。 Linux 3.3から、情報セキュリティの排除を目的とした一連の修正と最適化がすべてリリースされました。
- Linux 3.3:バイトキューの制限
- Linux 3.4 REDのバグ修正とIW10の追加とSFQRED
- Linux 3.5 Fair / Flow Queuingパケットスケジューリング(fq_codel、codel)
- Linux 3.7 TCPスモールキュー(TSQ)
- Linux 3.12 TSO / GSOの改善
- Linux 3.13ホストFQ +ペーシング(sch_fq)
- Linux 3.15ネットワーキングカーネル全体でのミリ秒からマイクロ秒への変更
- Linux 3.17ネットワークバッチ処理API
- Linux 4.9 BBR(ボトルネック帯域幅とRTT)
この一連の修正の最新版はBBRアルゴリズムです。 opennet.ruからのニュース 。
カーネルには、Googleによって提案された輻輳制御(TCP)輻輳制御(BBR)(ボトルネック帯域幅とRTT)の実装が含まれています。これは、スループットを向上させ、google.comおよびYouTubeからのトラフィックのデータ伝送遅延を削減するために使用されています。 BBRは送信側でのみ変更を必要とし、ネットワークインフラストラクチャとホストソフトウェアは変更されません。 輻輳の指標としてパケット損失を使用する代わりに、BBRは、シーケンシャルチェックと送受信(RTT)時間の推定によって利用可能な帯域幅を予測する通信チャネルモデリング技術を採用していますが、パケット損失や伝送遅延は発生しません。 接続の初期段階で、BBRはチャネル帯域幅の上限を推定し、キューのアンロードの送信強度を下げて修正モードに切り替え、送信強度を増減させて、最大帯域幅と空のパケットキューのバランスをとります。
これらの変更は、ほぼすべてのネットワークプロトコルに影響しましたが、WiFiとLTEをバイパスしました。 長くは続かず、真剣にWiFiを使いました。 Make WiFi Fastプロジェクトには、原子力ネットワークチームが率いる何百人もの参加者が集まりました。
用語
-
QDisc
またはキューイングディシプリンは、IPスタックとドライバーの間にある通常のFIFOスケジューラーです。
fq_codel
は、AQMを使用した最も効率的かつ最新のアルゴリズムの1つです 。
- TXOP-機会を送信し、送信を試みます。
パッチでWiFiをオーバークロックする方法
DaveTähtは、過去6年間すでにインターネットを保護しており、新しくより良いベンチマークの助けを借りて問題を攻撃しました。 Iperf3
は 、デフォルトでは非現実的な100ミリ秒の情報セキュリティを意味するため、科学コミュニティなどで非常に人気があり、一般的にはIperf3
であることが判明しました 。
while( testing) sleep 100ms while( total_bytes_sent / total_elapsed_time < target_rate) transmit buffer of data
それはパッチの前でした。 WiFiスタックの上位および下位レベルで10を超える大きな遅延に注意してください。
- QDiscは完全に削除されました。 キューはステーションで形成され、ラウンドサイクル、別名ラウンドロビンフェアキューイングで循環します。
- バッファリングは、fq_codelによって制御される
fq_codel
スケジューラーの中間層に移動しました。 最小サイズは2 TXOP以下です。 - ドライバーの最小バッファリング、最大2つのTXOPプール(1.2〜10ミリ秒):再試行用の既製の集約フレーム1つと、ピックアップ時にさらに1つ。
MAC80211は、ドライバーの下位レベルにパケットを保存しなくなりましたが、それらを中間スケジューラーに送信し、これをドライバーに報告し、ドライバーは到着したパケットをピックアップします。 これにより、MAC80211には、データ転送がいつ発生するかについての詳細情報があります。 これによるバッファ遅延はわずか2〜12ミリ秒でした。
達成されたこと
情報セキュリティは、遅延が1〜2秒のピーク値から40ミリ秒に減少するように管理されました。 最も明らかな図は、パッチの前後に100台のワークステーションでWiFiセッションが表示される写真です。
パッチの前に、5つのステーションのみが正常に開始しました。 怪物> 15秒のブレーキ。 クリック可能。
パッチの後、すべてのステーションが正常に起動しました。 許容可能な遅延は150〜300ミリ秒です。 クリック可能。
今、軟膏のハエ。 これらのすべての革新を完全にサポートするのはath9kドライバーのみですが 、 ath10k
はほぼ準備ができています。 残りは待つ必要がありますが、パッチが安定版ブランチに入った後、残りのドライバーも積極的に開発されると確信しています。