概要
- Eric Dumazet は現在、Linux における全般的なネットワーキング、TCP、ソケットのメンテナとして活動し、Netdev Foundation の Technical Steering Committee に参加しています。これらの役割は他のメンテナやレビュアーと共有されており、統合に関する大きな責任を示すものであって、カーネルネットワークに対する独占的な権限ではありません。
- 彼の最も明確な名前付き貢献は TCP Small Queues で、2012年に導入され、単一の TCP フローがトランスポート層より下のキューに過剰なデータを置くのを防ぎます。ソケットのローカルクレジットをパケット完了に結び付けることで、TSQ は送信側のレイテンシとメモリ圧力を低減しましたが、経路上のすべてのキューを排除したわけではありません。
- その後の sch_fq と内部 pacing の作業により、送信タイミングが明示的な制御に変わりました。Fair queueing はフローを分離し、pacing はパケットを時間的に分散させます。これらのメカニズムは、BBR を使用する環境を含むさまざまな輻輳制御を支えていますが、BBR 自体には独自の作者と進化があります。
- Dumazet の最近の作業は、構造体のレイアウト、キャッシュラインのトラフィック、ソケットごとの状態を大規模フリートの効率性に関連付けています。教訓は、Linux におけるネットワーキングも CPU、メモリ、キュー深さ、時間の会計処理であるということです。経済的影響は重要になり得ますが、公開データから正確な金銭的価値を帰属させたり、すべてのシステムで同じ利益を約束したりすることはできません。
高速なサーバーでも自身のパケットの背後で時間を浪費しうる
この話は送信キューの中から始まります。アプリケーションがデータを書き込み、TCP がさらに送信できると判断し、カーネルがそれらのバイトを下位層に渡しました。アプリケーションの視点では、それらは送信されたように見えますが、実際には同じマシン内で待機し続ける可能性があります。
高いスループットは遅延を隠します。対話型のリクエストは大量の転送の後ろに並び、バッファはメモリを保持し、「飛行中の」データという概念は、単にローカルに蓄積されているものと一致しなくなります。TCP Small Queues は、ソケットが TCP より下にどれだけ配置できるかを制限し、ハードウェアが実際に作業を完了したときに送信能力を返すことで、この関係を変えました。
公開記録はエンジニアリングに富み、伝記は意図的に限定されている
最も強力な証拠はカーネル自体から得られます:MAINTAINERS、パッチの議論、ドキュメント、講演、長年にわたる公開レビューです。それらは、彼の現在の全般的なネットワーキング、TCP、ソケットに関する責任、Netdev Foundation への参加、メンテナのメールによる Google への目に見える所属を裏付けています。
完全で公認された伝記、現在の検証された企業役職、パッチの全数、正確な時間配分は存在しません。これらの欠落を妥当な詳細で埋めることは精度を低下させます。プロフィールは観察可能なメカニズムと決定に焦点を当てています。Dumazet は技術的責任を持つエンジニアとして浮かび上がり、その仕事は他の人々によるレビュー、変更、テスト、展開を経て初めてインフラストラクチャになります。
メンテナとしての地位は決定の近くに置くが、コミュニティの上に置くものではない
2026年8月4日時点で、Linux の記録は彼を全般的なネットワーキング、TCP、ソケットにリストしていました。メンテナはインターフェースの再設計を要求し、過剰なメンテナンスコストを拒否し、受け入れられた変更を適用し、サブシステムをメインラインに向けて代表することができます。
同じ情報源は権限が共有されていることを示しています。David S. Miller、Jakub Kicinski、Paolo Abeni が全般的なネットワーキングに登場し、Neal Cardwell が TCP を共有し、専門のレビュアーがパッチに応じて活動しています。アーキテクチャ、ドライバ、セキュリティ、テスト、stable、カーネルの最終プロセスは他の制限を課します。Dumazet の影響力が大きいのは、まさにこの分散システム内で活動しているからです。
Linux は接続数が増加したときに経済的インフラとなった
小さなマシンでは、ソケットごとの数バイトの追加や追加のキャッシュミスは気付かれないかもしれません。数十万の接続を持つサーバーでは、コストはアプリケーション自体と CPU、メモリ、エネルギーを争うまでに倍増します。
「サーバー経済性」は公開された節約額ではありません。それは技術的オーバーヘッドを密度、残りの CPU 容量、ネットワーキングに確保されたメモリ、ローカルキューによる遅延に変換したものです。ディストリビューションとオペレータはカーネル、qdisc、輻輳制御アルゴリズム、NIC を選択します。Dumazet はこれらの選択を制御しません。彼は共通の出発点を改善します。
TCP の馴染み深い機能は緻密な会計システムを隠している
TCP は信頼できるバイトストリームとして提示されますが、どれだけ保留できるか、いつ再送するか、メモリをどのように請求するか、パケットを順序付け、数千のソケット間で CPU とキューを分割するかを決定する必要があります。
実装が正しくても性能が悪いことがあります:大きなローカルバックログ、バースト、ロック、キャッシュを浪費する構造などです。Dumazet の仕事の一貫したテーマは会計です。バイトはソケットに帰属され、完了はクレジットを返し、送信時間が計算され、ホットフィールドはコールドフィールドから分離されます。目標は、ホスト内に隠れた第二のネットワークを作らずにリンクを生産的に保つことです。
TCP Small Queues 以前は、送信側は制御できないバックログを作り得た
TSQ 以前は、TCP は qdisc とドライバに過剰なトラフィックを渡すことができました。輻輳ウィンドウが正しくても、ローカルキューがトランスポートより下でパケットを保持し続けることがありました。より緊急のフローが発生したとき、アプリケーションはそれらを回収できませんでした。
これによりフィードバックが弱まりました:TCP は経路上の acknowledgements を観察していましたが、データの一部はまだホストを離れていませんでした。また、多くのフローが同じことをした場合、特にメモリを消費しました。各ソケットが下位層を無制限のストレージとして扱うことを許さずにスループットを維持する必要がありました。
2012年の TSQ シリーズはソケットにローカルキューの予算を返した
2012年のパッチは、ソケットごとに TCP より下にキューイングされるデータ量を制限しました。ローカルクレジットが尽きるとソケットは停止し、パケットが完了すると送信許可を取り戻しました。
アイデアは小さなものでした:ローカルバイトを会計し、完了を進捗のシグナルとして使用します。制御はフローを理解するトランスポートに戻りました。リンクをビジーに保つために一度に大きなバッチを預ける必要はなくなりました。TSQ について聞いたことのないアプリケーションも、より規律ある動作を継承しました。
パケット完了はホスト内で有用なシグナルとなった
完了は単なる後始末に見えるかもしれません。TSQ はそれを情報として使用しました:下位層が前進したため、ソケットは新しいクレジットを受け取ることができます。
このローカルフィードバックはリモートの acknowledgements を補完します。一方は TCP より下での進捗を記述し、もう一方は経路上での進捗を記述します。qdisc、ドライバ、NIC の統計は他の点を示します。どのシグナルもすべてを解決しません。TSQ はその一つを利用して、エンドツーエンドの輻輳制御を置き換えることなくローカルの過剰を制限します。
TSQ はバッファブロートの一因を減らしたが、経路上のすべてのキューではない
TSQ はバッファブロートを排除しませんでした。それは送信側のローカルバックログを制限します。キューは qdisc、ドライバ、NIC、アクセス、ルータ、スイッチ、受信側に残ります。
正確な記述の方が有用です:このメカニズムは、ソケットが過大な隠れたキューを作る能力を低減します。レイテンシとメモリを減らし、TCP の状態をデバイスの進捗に近づけることができます。アクティブキュー管理、適切な設定、輻輳制御を置き換えるものではありません。
制限、オフロード、ワークロードが TSQ の効果を左右する
効果はローカル制限、パケットサイズ、qdisc、デバイスキュー、セグメンテーション、フローの混合に依存します。対話型サービスと大量レプリケーションは同じように応答しません。
実装も2012年以降進化しました。他の貢献者が統合を調整し、ケースを修正しました。Dumazet に起源を帰属させることは正しいですが、現在のメカニズムを凍結された彼だけの作品として提示するのは適切ではありません。
sch_fq はフローを分離し、スケジューラに時間を導入した
2013年、Dumazet はスケジューラ sch_fq を公開しました。それはフローごとの状態と、送信時刻に従ってパケットを解放するための時間順序構造を維持します。新しいフローは早くサービスを受けることができ、paced フローはその時を待ちます。
この設計は、大量転送がローカルキューを独占するのを防ぎ、TCP に pacing を実行する場所を提供します。アプリケーション間の平等を保証するものではありませんが、より規律あるサービスポリシーと送信タイムスタンプのための実用的なインターフェースを提供します。
Fair queueing はポリシーの選択であり、同じ結果の約束ではない
「Fair」はすべてのアプリケーションが同じ性能を得ることを意味しません。パケットサイズ、経路、受信側、輻輳、オフロード、接続数が結果を変え続けます。
フローの定義自体がポリシーです。あるアプリケーションは多くの接続を開き、別のアプリケーションは1つだけかもしれません。sch_fq はローカルな支配を減らしますが、ユーザー間や企業間の公平性を決定しません。オペレータにとって、それは仲裁ツールであり、普遍的な保証ではありません。
Pacing は推定レートを送信時刻のシーケンスに変換する
アルゴリズムが正しいレートを選択しても、それをバーストとして解放することがあります。平均は良く見えますが、キューはピークに苦しみます。
Pacing はパケットを時間的に分散させます。キューを安定させ、共存を改善し、輻輳モデルをより良く表現できます。実装はタイムスタンプ、タイマー、qdisc、セグメンテーション、NIC に依存します。ソフトウェアのレートは、リンク上の物理的な時間にならなければ実在しません。
Pacing と輻輳制御は異なる部分を解決する
輻輳制御は経路をどれだけ使用するかを決定し、pacing は許可されたデータがいつ出るかを決定します。良いモデルはバーストによって台無しにされ、完璧な pacing は間違ったレートを実行することがあります。
Dumazet のインフラストラクチャは、複数のアルゴリズムが時間内にレートを表現することを可能にします。各モデルの作者はその設計者に帰属します。
BBR は pacing を使用するが、独自の作者と歴史を持つ
BBR は pacing に依存し、Google 環境で生まれたため、Dumazet と関連付けられることがよくあります。それによって彼が唯一の発明者になるわけではありません。アルゴリズムには別個の作者、モデル、バージョンがあります。
Dumazet の貢献は基盤的です:キュー、pacing、計装、ソケットが他の制御を実現可能にします。この定式化は彼の重要性を認識しつつ、Neal Cardwell や他の輻輳エンジニアの功績を保ちます。
TSO は CPU を節約し、pacing が回避しようとしたバーストを再現し得る
TCP Segmentation Offload は、大きなセグメントを NIC に渡し、後で分割させることができます。これによりパケットあたりのコストが削減されますが、タイミングの決定と実際の送信の間にハードウェアが挿入されます。
大きなブロックが一度に出ると、NIC がバーストを作ることがあります。TSQ、qdisc、TSO、ドライバ、ハードウェアはシステムとして扱う必要があります。調整がなければ、CPU の節約がレイテンシを悪化させる可能性があります。
Quantum、タイムスタンプ、NIC の動作は同じ現実を記述する必要がある
カーネルは量子、タイマー解像度、タイムスタンプ、オフロード単位、物理キューを扱います。大きな量子はバーストを再現し、小さな量子は CPU を消費し、異なる粒度の NIC は出力を変えます。
そのため、qdisc はキャパシティプランニングの一部です。開発者は完全な経路を測定する必要があり、輻輳制御やリンク速度だけを引用するベンチマークはメカニクスの大部分を省略しています。
TCP の内部 pacing は特定の qdisc への依存を減らした
2017年、Dumazet は TCP の内部 pacing を公開しました。トランスポートは、特定のディシプリンに全面的に依存することなく、レートとタイマーに従ってトラフィックを保持する能力を高めました。
qdisc は順序付けとポリシーに関して引き続き関連性がありました。ロジックは意図を担うサブシステムに近づきましたが、最終的な送信は TCP、スケジューラ、ドライバ、NIC に分散されたままでした。完全な置き換えではなく、層ごとの進化でした。
キューディシプリンは依然としてサービスに影響する運用上の決定である
Linux は異なる目的のために qdisc を提供します。sch_fq は pacing を支援し、FQ-CoDel はフロー分離とアクティブキュー管理を組み合わせます。それらは同一ではありません。
デフォルトはディストリビューションや環境によって異なります。クラウドイメージ、アプライアンス、コンテナホストは異なる選択をする可能性があり、オフロードが実行場所を移動させることもあります。アップストリームはメカニズムを提供しますが、それが実際にサービスを形作るかどうかはオペレータが決定します。
ソケットごとのわずかなバイトがフリートの制約になる
各接続はシーケンス、タイマー、輻輳、キュー、カウンタを保持します。大規模では、各バイトが倍増し、頻繁にアクセスされる各フィールドがキャッシュを占有します。
ソケットあたりのメモリが少ないと密度が向上します。レイアウトが良ければミスとコヒーレンストラフィックが減ります。これはサーバー経済性への最も強力な架け橋ですが、普遍的な金銭的利益を計算したり、仕事を個人的に評価したりすることはできません。
キャッシュラインは各パケットで触れられるとインフラになる
CPU は行全体を移動します。コールドフィールドの隣にあるホットデータは無駄なバイトを循環させます。2つの CPU が同じ行を変更すると、異なる値に触れていてもコヒーレンスが発生します。
Dumazet の最近の作業はこの物理的な読み方を採用しています。ホットフィールドとコールドフィールドを分離することで、パケットやソケットとともに増加するメモリトラフィックを減らします。利益はプロセッサと負荷に依存します。本番プロファイルは普遍的な法則にはなり得ません。
2024年の構造に関する作業は成熟したパフォーマンスエンジニアリングの段階を示す
2024年のプレゼンテーションはプロファイルから始まりました:どのフィールドがホットか、どの行が移動するか、どの構造がメモリを支配するかです。ツールは再配置を提案できますが、アラインメント、ロック、互換性、メンテナンスに関するレビューを置き換えるものではありません。
成熟したインフラでは、大きな利益は新しいアルゴリズムを投入することではなく、キャッシュミスを1つ除去したり、フィールドを移動したりすることから生まれることがあります。それは目立ちませんが、規模では決定的です。
ハイパースケールのプロファイルは強力な証拠だが、不完全な公開科学である
大規模オペレータは再現が難しいボリュームとハードウェアを見ます。マイクロベンチマークに欠けているコストを検出できます。Dumazet の Google への所属は彼をその文脈に置きます。
負荷とデータの一部は非公開のままです。講演はすべての入力を公開せずに方法と方向を示すことができます。それは破棄ではなく、限定を必要とします。最良の結果は、より多くの私的観測を公開テストとワークロードに変換することです。
ロックと受信キューは同じリソースの物語の一部である
軸は送信にありますが、Dumazet の軌跡はソケットと受信パスもカバーしています。着信パケットはポーリング、割り当て、分類、キュー、CPU 間の配信を必要とします。高レートでは、ロックと共有状態がコストになります。
Linux は仕事を移動し、操作をグループ化し、競合を減らすことでこれを軽減します。原則は同じです:アプリケーションを会計で消費させずに、正当性のために十分な調整を使用します。
バッチ処理はスループットを上げ、レイテンシと公平性を変える
パケットや完了をグループ化することで、ロック、呼び出し、キャッシュが償却されます。NAPI、ドライバ、オフロードはこれに依存します。
バッチは形成されるのを待ち、バーストとして到着することがあります。大きなバッチは効率と待ち時間を増やします。TSQ、fair queueing、pacing はバッチ処理と戦うのではなく、フィードバックとレイテンシを保つために制限を課します。
TCP のパフォーマンスは互いに打ち消し合う層から生まれる
アルゴリズムは意図を定義し、TCP はパケットを作成し、TSQ はバックログを制限し、qdisc は順序付け、TSO はグループ化、ドライバはマッピング、NIC は送信、ネットワークはキューと損失を追加します。
正確な pacing は粗いセグメンテーションによって台無しにされ、低レイテンシの qdisc は過剰な enqueue によって、コンパクトなレイアウトは新しいロックによって損なわれます。Dumazet はこれらの継ぎ目で作業し、無視するのではなく既存の経路を改善します。
公開レビューはローカル最適化を共有インフラに変える
改善はレイテンシ、メモリ、CPU の削減の主張として始まります。Linux に入るには、netdev に直面します:方法論、汎用抽象化、珍しいアーキテクチャ、テスト、将来のコストです。
メンテナはシリーズを分割し、ベンダーインターフェースを拒否し、パッチを延期することができます。それは私的な変更よりも遅く、より持続可能です。Dumazet の権限には、今日の結果だけでなく明日のメンテナンスを評価することが含まれます。
net と net-next は緊急修正と将来の開発を分離する
修正は通常 net に送られ、機能は net-next に送られます。これにより、緊急のメンテナンスと次バージョンのリファクタリングが混ざるのを防ぎます。
境界には判断が必要です。修正が動作を変えることがあり、機能が古いバグを明らかにすることがあります。メンテナはリスクを明示し、商用カレンダーが技術的準備に取って代わるのを防ぐためにシリーズを分割します。
レビュー、拒否、再設計はコミット数に現れない
コミットは可視的な作者を測定しますが、再設計を強いる指摘や、何年ものコストを回避する拒否を測定しません。パッチを適用することは統合を引き受けることであり、アイデアを発明することではありません。
プロフィールは帰属可能なメカニズムとステュワードシップを組み合わせます。TSQ、sch_fq、pacing、レイアウトは明確ですが、数十年のレビューを要約するものではなく、統合されたすべてのパッチを個人的な創造物に変えるものでもありません。
テストはリスクを減らすが、Linux が出会うすべてのマシンを代表しない
ビルド、セルフテスト、KUnit、syzbot、ラボ、ダウンストリームは回帰を検出しますが、すべての CPU、NIC、qdisc、負荷をカバーしません。
ハイパースケールの改善が珍しいデバイスに損害を与えることがあります。経験、互換性、ロールバックは依然として必要です。テストはガバナンスを強化しますが、判断を排除しません。
安定版バックポートはメインライン後の第二の決定を必要とする
メインラインのパッチは自動的にすべての stable に入るわけではありません。実際の修正であり、範囲が限定され、安全である必要があります。ディストリビューションが再び決定します。
パフォーマンス変更は古いブランチに存在しないコードに依存することがあります。影響は段階的に到達します:アップストリーム、stable、ディストリビューション、クラウド、設定。誰もチェーン全体を制御しません。
TCP とソケットの現在のメンテナンスは意図的に共有されている
MAINTAINERS は Dumazet、Neal Cardwell、他のレビュアーの間で作業を分割します。これにより一人への依存が減り、輻輳、ソケット、ドライバ、テストの知識が組み合わされます。
複数性には明確な所有権が必要です。全員が他者を待つと、重複する領域はギャップを生みます。健全な後継は権限を分散し、決定の理由を保存します。
Netdev Foundation はマージ権限にならずに資金提供できる
Linux Foundation 傘下のこの財団は、CI、ツール、旅行、研究を支援します。Dumazet は TSC に参加しています。助成金がマージを保証するわけではありません。
この区別は健全です:深いメンテナンスにはお金がかかりますが、アップストリームの正当性は公開証拠から来ます。資金提供は決定能力を高めるべきであり、例外を購入すべきではありません。
Google への所属は Linux の TCP に対する所有権なしに能力をもたらす
Google のメールは所属を証明しますが、完全な役職を証明しません。ハイパースケーラーはプロファイリング、ハードウェア、レビューに資金を提供し、後にエコシステム全体に利益をもたらします。
非対称性は、ワークロードとデータが完全には公開されていないことです。オープンレビューがカウンターウェイトです:パッチは Google 外でも汎用的で受け入れ可能である必要があります。企業は時間と証拠を提供しますが、スタックを所有しません。
ダウンストリームのオペレータが改善がサービスを変えるかを決定する
ディストリビューションはカーネルを選び、クラウドは qdisc と輻輳制御を選び、アプライアンスはバージョンを選び、メーカーは能力を選び、アプリケーションはトラフィックを選びます。TSQ や sch_fq の使用に関する完全な調査はありません。
メカニズムは存在しても非アクティブな場合や、認識されずにデフォルトでアクティブな場合があります。Dumazet の影響は広範かつ間接的です:共通の選択肢セットを変え、各オペレータがそれを経験に変換します。
ユーザー空間スタックは特殊なワークロードを争い、Linux のすべての機能ではない
DPDK、VPP、独自スタックは高レートを得るためにカーネルの一部を回避し、代わりに専用コア、huge pages、分離された運用モデルを採用します。
Linux はソケット、セキュリティ、名前空間、可観測性、ドライバを統合します。Dumazet の仕事は一般経路のコストを削減しますが、それがすべてに理想的であると主張するわけではありません。バイパスは特定のケースに役立ちます。Linux は広範な基盤であり続けます。
Linux が標準であり続けるのは統合が生の速度より価値があるからだ
スタックは高速で、互換性があり、安全で、可観測で、保守されている必要があります。分離された経路は1秒あたりのパケット数が多くても、運用コストが高い可能性があります。
Linux アプリケーションは共通のソケットを通じて TSQ、pacing、会計を継承します。この不可視性は強みです:ユーザーが作者の名前を知らなくても利益は残ります。
より高速なホストはネットワーク経路が改善したことを証明しない
ローカルキューの縮小は、混雑したアクセス、遅い宛先、損失のあるルータを修正しません。TSQ と pacing は送信側を統治し、経路全体を統治しません。
それらは遅延の一因を減らし、フローをより規則的にすることができます。アプリケーションの結果を保証しません。エンドツーエンドのパフォーマンスは依然としてアプリケーション、受信側、経路、設定に依存します。
ベンチマークはすべてのサーバー、NIC、ワークロードを代表しない
パケットサイズ、接続数、CPU、キャッシュ、NIC、オフロード、qdisc、タイマー、カーネル、負荷が結果を変えます。Google のプロファイルは実際のコストを明らかにできますが、別のフリートでの割合を予測しません。
良いコミュニケーションは条件を保持します。Dumazet の講演は帰属された運用証拠です。一般化するには公開テストと独立した測定が必要です。
後継は技術的問題である。設計の一部が記憶の中に生きているからだ
奇妙な制限は、古い NIC、まだ使われている API、何年も前に解決された回帰のために存在することがあります。コードは常にその物語を語るわけではありません。
ベテランのメンテナは文脈を担っています。ドキュメント、テスト、メーリングリストのアーカイブ、新しいレビュアーが私的記憶を組織的知識に変えます。後継は原則を保存し、将来のハードウェアへの適応を可能にする必要があります。
ハードウェア pacing とデバイスメモリが再び境界を動かす可能性がある
現代の NIC はパケットをプログラムし、キューを制御し、テレメトリやローカルメモリを公開します。CPU を減らし、動作をファームウェアに移します。
Linux は意図を表現し、結果を観察し、モデルが乖離したときに回復する必要があります。ドライバ API、タイムスタンプ、エラーはレートと同じくらい重要になります。原則は残ります:フィードバック、隠れたキューへの制限、可観測性です。
キャッシュの経済性は新しいトランスポートの方式よりも多くの利益をもたらし得る
新しいアルゴリズムは登場し続けますが、次の実質的な利益はより良いレイアウト、ロック、バッチから来るかもしれません。それは派手なブランドを持たず、複数のアプリケーションに利益をもたらします。
2024年の作業は、物理コストで評価された成熟したスタックを示しています。問いは「どのプロトコルが勝つか?」から「各接続がどれだけのマシンを消費するか?」に変わります。
Dumazet の永続的な貢献はリソース規律であり、英雄神話ではない
誇張されたバージョンでは彼は現代の TCP と BBR の発明者になります。別のバージョンではコミュニティの中の個人が消えます。証拠は正確さを可能にします。
Dumazet は TSQ を導入し、sch_fq の基盤的な作業に署名し、内部 pacing を開発し、レイアウトの重要性を示しました。また、共有システム内で重要な領域を維持しています。彼の貢献は、パケットとソケットを時間、メモリ、キュー、CPU 局所性に対する請求として扱うことです。
最終的な影響は設計、レビュー、統合、運用に分散します。コミットは帰属可能ですが、より高密度なフリートや回避された障害は帰属できません。この困難は誇張も抹消も許しません:インフラの価値は、識別可能な個人の決定を持つ集合的なチェーンから生まれることを示しています。
会員向け解説
プロフィールの詳細
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
Strategic Circle 限定
Strategic Circle
すべての読者に公開されています。参加してログインすると プロフィール解説 を閲覧できます。
Strategic Circle に参加Leadership Alliance 会員限定
Leadership Alliance
対象となる IP 資産の所有者・管理者向けです。ログインすると Leadership Alliance の解説を閲覧できます。
Leadership Alliance に参加
