QuicOptions.Builder

public class QuicOptions.Builder


QuicOptions のビルダー。

概要

パブリック メソッド

QuicOptions.Builder

QUIC 許可リストにホストを追加します。

QuicOptions.Builder

クライアントにのみ影響する QUIC ハンドシェイクの接続オプションで送信する QUIC タグを追加します。

QuicOptions.Builder

QUIC ハンドシェイクの接続オプションで送信する QUIC タグを追加します。

QuicOptions.Builder

有効にする QUIC バージョンのリストに QUIC バージョンを追加します。

QuicOptions.Builder

任意の QUICHE フラグを設定します。

QuicOptions

このビルダーの値に基づいて、最終的な QuicOptions インスタンスを作成して返します。

QuicOptions.Builder
@QuicOptions.Experimental
closeSessionsOnIpChange(boolean closeSessionsOnIpChange)

IP アドレスの変更時に QUIC セッションを閉じるかどうかを設定します。

QuicOptions.Builder
@QuicOptions.Experimental
delayJobsWithAvailableSpdySession(
    boolean delayJobsWithAvailableSpdySession
)

すぐに使用できるサーバーへのセカンダリ パス(SPDY / HTTP2)がある場合でも、Cronet がプライマリ パス(通常は QUIC)の準備が整うまで待機するかどうかを設定します。

QuicOptions.Builder
@QuicOptions.Experimental
enableTlsZeroRtt(boolean enableTlsZeroRtt)

0-RTT で TLS を有効にするかどうかを設定します。

QuicOptions.Builder
@QuicOptions.Experimental
goawaySessionsOnIpChange(boolean goawaySessionsOnIpChange)

IP アドレスの変更時に QUIC セッションを goaway するかどうかを設定します。

QuicOptions.Builder
@QuicOptions.Experimental
increaseBrokenServicePeriodExponentially(
    boolean increaseBrokenServicePeriodExponentially
)

壊れたサーバーの期間を指数関数的にスケーリングするかどうかを設定します。

QuicOptions.Builder
@QuicOptions.Experimental
retryWithoutAltSvcOnQuicErrors(boolean retryWithoutAltSvcOnQuicErrors)

QUIC プロトコル エラーで失敗したリクエストを alt-svc サーバーを使用せずに再試行するかどうかを設定します。

QuicOptions.Builder
@QuicOptions.Experimental
setCryptoHandshakeTimeoutSeconds(long cryptoHandshakeTimeoutSeconds)

接続 SSL ハンドシェイクのタイムアウトを設定します。

QuicOptions.Builder
setHandshakeUserAgent(String handshakeUserAgent)

HTTP リクエスト以外で使用するユーザー エージェントを設定します(QUIC ハンドシェイクなど)。

QuicOptions.Builder

setIdleConnectionTimeoutSeconds と同じですが、java.time.Duration を使用します。

QuicOptions.Builder
setIdleConnectionTimeoutSeconds(long idleConnectionTimeoutSeconds)

接続の最大アイドル時間を設定します。

QuicOptions.Builder
setInMemoryServerConfigsCacheSize(int inMemoryServerConfigsCacheSize)

メモリに保持するサーバー構成(alt svc のリスト、QUIC がサポートされているかどうかなどのメタデータ)の数を設定します。

QuicOptions.Builder
@QuicOptions.Experimental
setInitialBrokenServicePeriodSeconds(
    long initialBrokenServicePeriodSeconds
)

サーバーの QUIC サポートが壊れていることが判明した後、Cronet が特定のサーバーで QUIC を使用しようとしない初期値を設定します。

QuicOptions.Builder
@QuicOptions.Experimental
setPreCryptoHandshakeIdleTimeoutSeconds(
    long preCryptoHandshakeIdleTimeoutSeconds
)

SSL ハンドシェイクがまだ完了していない接続の最大アイドル時間を設定します。

QuicOptions.Builder
@QuicOptions.Experimental
setRetransmittableOnWireTimeoutMillis(
    long retransmittableOnWireTimeoutMillis
)

ワイヤ上のパケット間の最大所要時間を設定します。

パブリック メソッド

addAllowedQuicHost

public QuicOptions.Builder addAllowedQuicHost(String quicHost)

QUIC 許可リストにホストを追加します。

ホストが指定されていない場合、ホストごとの許可リスト機能は無効になります。それ以外の場合、Cronet は許可リスト上のホストとの通信にのみ QUIC を使用します。

戻り値
QuicOptions.Builder

チェーン用のビルダー

addClientConnectionOption

@QuicOptions.QuichePassthroughOption
public QuicOptions.Builder addClientConnectionOption(String clientConnectionOption)

クライアントにのみ影響する QUIC ハンドシェイクの接続オプションで送信する QUIC タグを追加します。

詳しくは、addConnectionOption をご覧ください。

addConnectionOption

@QuicOptions.QuichePassthroughOption
public QuicOptions.Builder addConnectionOption(String connectionOption)

QUIC ハンドシェイクの接続オプションで送信する QUIC タグを追加します。

QUIC タグは、4 文字以内の文字列(NBHD など)として表示する必要があります。

QUIC タグは開発中であり、一部はサーバーにのみ関連するため、Cronet は API の一部としてサポートされているすべての QUIC フラグの完全なリストを維持しようとしません。フラグ。Cronet と Google サーバーで使用される QUIC 実装である QUICHE でサポートされているフラグについては、こちらをご覧ください。

戻り値
QuicOptions.Builder

チェーン用のビルダー

addEnabledQuicVersion

@QuicOptions.QuichePassthroughOption
public QuicOptions.Builder addEnabledQuicVersion(String enabledQuicVersion)

有効にする QUIC バージョンのリストに QUIC バージョンを追加します。

バージョンが指定されていない場合、Cronet はデフォルトの QUIC バージョンのリストを使用します。

バージョン形式は QUICHE で指定されます。Cronet は、廃止されたことがわかっている値をフィルタリングする以外に、バージョンを処理せず、QUICHE に渡すだけです。

戻り値
QuicOptions.Builder

チェーン用のビルダー

addExtraQuicheFlag

@QuicOptions.QuichePassthroughOption
public QuicOptions.Builder addExtraQuicheFlag(String extraQuicheFlag)

任意の QUICHE フラグを設定します。フラグは FLAG_NAME=FLAG_VALUE 形式で渡す必要があります。フラグの全一覧については、QUICHE コードベースをご覧ください。

戻り値
QuicOptions.Builder

チェーン用のビルダー

build

public QuicOptions build()

このビルダーの値に基づいて、最終的な QuicOptions インスタンスを作成して返します。

closeSessionsOnIpChange

@QuicOptions.Experimental
public QuicOptions.Builder closeSessionsOnIpChange(boolean closeSessionsOnIpChange)

IP アドレスの変更時に QUIC セッションを閉じるかどうかを設定します。

接続の移行(ConnectionMigrationOptions を使用して構成)と組み合わせて使用しないでください。

戻り値
QuicOptions.Builder

チェーン用のビルダー

delayJobsWithAvailableSpdySession

@QuicOptions.Experimental
public QuicOptions.Builder delayJobsWithAvailableSpdySession(
    boolean delayJobsWithAvailableSpdySession
)

すぐに使用できるサーバーへのセカンダリ パス(SPDY / HTTP2)がある場合でも、Cronet がプライマリ パス(通常は QUIC)の準備が整うまで待機するかどうかを設定します。

戻り値
QuicOptions.Builder

チェーン用のビルダー

enableTlsZeroRtt

@QuicOptions.Experimental
public QuicOptions.Builder enableTlsZeroRtt(boolean enableTlsZeroRtt)

0-RTT で TLS を有効にするかどうかを設定します。

0-RTT は、既知のサーバーへの接続を再開する際の追加の往復を回避するパフォーマンス最適化です。

戻り値
QuicOptions.Builder

チェーン用のビルダー

goawaySessionsOnIpChange

@QuicOptions.Experimental
public QuicOptions.Builder goawaySessionsOnIpChange(boolean goawaySessionsOnIpChange)

IP アドレスの変更時に QUIC セッションを goaway するかどうかを設定します。

接続の移行(ConnectionMigrationOptions を使用して構成)と組み合わせて使用しないでください。

戻り値
QuicOptions.Builder

チェーン用のビルダー

increaseBrokenServicePeriodExponentially

@QuicOptions.Experimental
public QuicOptions.Builder increaseBrokenServicePeriodExponentially(
    boolean increaseBrokenServicePeriodExponentially
)

サーバーの停止期間を指数関数的にスケーリングするかどうかを設定します。

true に設定すると、後続の再試行(SCALING_FACTOR^NUM_TRIES * delay)では初期遅延(setInitialBrokenServicePeriodSeconds で構成可能)が指数関数的にスケーリングされます。false に設定すると、遅延は線形にスケーリングされます(SCALING_FACTOR * NUM_TRIES * 遅延)。

戻り値
QuicOptions.Builder

チェーン用のビルダー

retryWithoutAltSvcOnQuicErrors

@QuicOptions.Experimental
public QuicOptions.Builder retryWithoutAltSvcOnQuicErrors(boolean retryWithoutAltSvcOnQuicErrors)

QUIC プロトコル エラーで失敗したリクエストを alt-svc サーバーを使用せずに再試行するかどうかを設定します。

戻り値
QuicOptions.Builder

チェーン用のビルダー

setCryptoHandshakeTimeoutSeconds

@QuicOptions.Experimental
public QuicOptions.Builder setCryptoHandshakeTimeoutSeconds(long cryptoHandshakeTimeoutSeconds)

接続 SSL ハンドシェイクのタイムアウトを設定します。

戻り値
QuicOptions.Builder

チェーン用のビルダー

setHandshakeUserAgent

public QuicOptions.Builder setHandshakeUserAgent(String handshakeUserAgent)

HTTP リクエストの外部で使用されるユーザー エージェントを設定します(QUIC ハンドシェイクなど)。

HTTP リクエストのデフォルトのユーザー エージェントを設定するには、代わりに setUserAgent を使用します。

戻り値
QuicOptions.Builder

チェーン用のビルダー

setIdleConnectionTimeout

@RequiresApi(value = VERSION_CODES.O)
public QuicOptions.Builder setIdleConnectionTimeout(@NonNull Duration idleConnectionTimeout)

setIdleConnectionTimeoutSeconds と同じですが、java.time.Duration を使用します。

戻り値
QuicOptions.Builder

チェーン用のビルダー

setIdleConnectionTimeoutSeconds

public QuicOptions.Builder setIdleConnectionTimeoutSeconds(long idleConnectionTimeoutSeconds)

接続の最大アイドル時間を設定します。アイドル タイムアウトの実際の値は、この値とサーバーの最小値であり、ハンドシェイク中にネゴシエートされます。したがって、ハンドシェイクが完了した後にのみ適用されます。設定された期間に接続でアクティビティが検出されない場合、接続は閉じられます。

詳しくは、RFC 9114 のセクション 5.1 をご覧ください。

戻り値
QuicOptions.Builder

チェーン用のビルダー

setInMemoryServerConfigsCacheSize

public QuicOptions.Builder setInMemoryServerConfigsCacheSize(int inMemoryServerConfigsCacheSize)

メモリに保持するサーバー構成(alt svc のリスト、QUIC がサポートされているかどうかなどのメタデータ)の数を設定します。

ストレージ パスが設定されている場合(setStoragePath)、Cronet はサーバー構成もディスクに保存します。

戻り値
QuicOptions.Builder

チェーン用のビルダー

setInitialBrokenServicePeriodSeconds

@QuicOptions.Experimental
public QuicOptions.Builder setInitialBrokenServicePeriodSeconds(
    long initialBrokenServicePeriodSeconds
)

サーバーの QUIC サポートが壊れていることが判明した後、Cronet が特定のサーバーで QUIC の使用を試行しないようにする初期値を設定します。

Cronet は、サーバーが QUIC をアドバタイズしているにもかかわらず、実際には QUIC を使用していないことを検出すると、そのサーバーを壊れているとマークし、一定期間、そのサーバーとの通信で QUIC を使用しようとしなくなります。Cronet がこの時点を過ぎると、QUIC の使用を再度試みます。これは、短期的な利益(サーバーが壊れている場合に QUIC を試すためにリソースを無駄にするのは無意味)と長期的な利益(破損が一時的なもので、QUIC を使用することは一般的に有益)のバランスを取るためです。

遅延は、連続して再試行が失敗するたびに増加します。詳しくは、increaseBrokenServicePeriodExponentially をご覧ください。

戻り値
QuicOptions.Builder

チェーン用のビルダー

setPreCryptoHandshakeIdleTimeoutSeconds

@QuicOptions.Experimental
public QuicOptions.Builder setPreCryptoHandshakeIdleTimeoutSeconds(
    long preCryptoHandshakeIdleTimeoutSeconds
)

SSL ハンドシェイクがまだ完了していない接続の最大アイドル時間を設定します。

戻り値
QuicOptions.Builder

チェーン用のビルダー

setRetransmittableOnWireTimeoutMillis

@QuicOptions.Experimental
public QuicOptions.Builder setRetransmittableOnWireTimeoutMillis(
    long retransmittableOnWireTimeoutMillis
)

ワイヤ上のパケット間の最大希望時間を設定します。

再送信可能な時間が超過すると、Cronet は人工トラフィックを使用してネットワークの品質をプローブします。タイムアウトを短くすると、通常は破損または劣化しているパスをより早く検出できますが、リソース(バッテリー、データ)の使用量も増えます。

戻り値
QuicOptions.Builder

チェーン用のビルダー