[1] 本項で言う下位層の接続とは、 TCP の接続やそれに類するものを言います。 信頼性のある全二重のバイト列の輸送路です。
[18] 接続の端点は、その種類に依存した接続確立の処理によって作成されます。 接続の確立完了時に、接続の種類に依存した情報をアプリケーションに引渡します。
[6] アプリケーションは、接続の端点に次の指示を行えます。
[7] バイトの送信の指示は、送信するバイト (0-255 のいずれかの値)と、 緊急データか否かのフラグ (既定値は未設定。) を引数とし、次のように処理します。
[24] バイト列を送信するとは、当該バイト列について先頭のバイトから順にバイトの送信の指示を行い、最後のバイトが返した約束を返す (空バイト列なら解決済みの約束を返す) ことをいいます。
[31] 正常終了の送信の指示は、次のように処理します。
[32] 中断の指示は、次のように処理します。
[90] credentials の送信の指示は、 接続の種類に応じた処理を実行します。そのようなものがなければ、 例外を投げます。 なお引数として、接続の種類に応じた credentials を受け取ります。
[58] 接続の確立は、送受信者の IPアドレスとポート番号を決定し handshake を適切に行い、正常に完了することによります。 端点におけるフロー制御その他のオプションも適切に設定します。
[85] 確立の完了時に、相手の IPアドレスとポート番号をアプリケーションに通知します。
[8] TCP のセグメントを受信したら、次のようにします。
[9] タイムアウトその他の理由で接続が利用できないことを検知したら、
次のようにします。
[30] バイトを送信できるかどうかは、フロー制御、輻輳制御その他の状況により決定します。
[12] 正常終了の送信の指示があれば、次のようにします。
[13] 中断の指示があれば、次のようにします。
[59] 接続の確立は、指定された下位の接続において、 TLS handshake を適切に行い、正常に完了することによります。
[89] 確立の完了時に、次の情報をアプリケーションに引渡します。
[73] 下位の接続からバイトを受信したら、バイトと緊急データフラグを TLS に従い処理します。
[67] closure alert を受信したら、次のようにします。
[15] error alert を受信したら、次のようにします。
[62] 下位の接続から正常終了を受信したら、次のようにします。
[72] 下位の接続から中断を受信したら、次のようにします。
[83] バイトを送信できるかどうかは、新たなバイトを入力として TLS で処理できるかどうかとします。
[78] 正常終了の送信の指示があれば、次のようにします。
[81] 中断の指示があれば、下位の接続に中断を指示します。
[77] TLS の処理によりバイト列を送信するべきときは、 下位の接続で指定されたバイト列を送信します。
[84] TLS の最初の handshake
または再折衝によりクライアント証明書を要求された時は、
次のようにします。ClientHello
や (クライアントなら) CertificateRequest
に含まれる情報のうち必要なもの。
[82] credentials の送信は、次のようにします。
CONNECT
の場合[120] 状態として、次のものを持ちます。
[97] 接続の確立は、target について、次のようにします。
[118] バイトは常に送信可能とします。
[119] バイトの送信は、次のようにします。
CONNECT
[145] 接続の確立は、次のようにします。下位層の接続接続、
宛先IPv4アドレスホスト、宛先ポート番号ポートを引数として受け取ります。
[154] 接続確立後は、指示は接続への指示とし、 接続からの通知があればそれを通知します。
[155] 接続の確立は、次のようにします。下位層の接続接続、
宛先ドメイン名 (長さ255以下のバイト列) または
IPv4アドレスまたはIPv6アドレスホスト、
宛先ポート番号ポートを引数として受け取ります。
[175] 接続確立後は、指示は接続への指示とし、 接続からの通知があればそれを通知します。
[133] 接続の確立は、次のようにします。
[138] バイトが送信可能かどうかは、 send
によりバイト列を送信できるかどうかとします。
[140] 正常終了の送信の指示があれば、 shutdown
SHUT_WR
を実行します。
[141] 中断の指示があれば、 shutdown
SHUT_RDWR
を実行します。
[142] recv
によりバイト列を受信したら、
各バイトを順に、バイトの受信を通知します。
[143] recv
で何も受信しなくなれば、
送信閉じ済みフラグを設定し、正常終了の受信を通知します。
[144] send
や recv
でエラーが発生したら、
送信閉じ済みフラグと受信閉じ済みフラグを設定し、
中断を通知します。