Request → Allocate Error Response a. TURNサーバーとピアの間の通信に UDPを使うことを要求 (REQUESTED-TRANSPORT) b. このタイミングでは認証情報は送らない c. 認証情報がないのでエラーレスポンスが返される d. エラーレスポンスには NONCE等の追加の情報が含まれる
2. で得られたNONCEなどを用いて、MESSAGE-INTEGRITYを計算する b. MESSAGE-INTEGRITY属性を追加して再度リクエスト c. 認証が成功し、XOR-RELAYED-ADDRESSが得られる 4. CreatePermission Request → CreatePermission Success Response a. 実際にデータをやり取りするための許可を得るための処理 b. 「ピアである〇〇からのデータを転送して欲しい」と尋ねる c. 許可が得られればSuccessのレスポンスが返される
Send、Data methodを使う方法とChannelを使う方法の2 つがある b. WebRTCの通信では、オーバーヘッドが少ない後者が使われる c. どのピアと通信するかを、 Channel Number(0x4000〜0x4FFF)で識別する 2. ChannelData a. STUNヘッダーは持たず、Channel NumberとMessage Length、Dataのみを持つ b. Dataの中身をそのままピアに送信する c. ピアから来たデータは、そのまま Dataに入れてクライアントに送る