Menterjemah Permintaan SOCKS5 kepada Terowong HTTP
Selesaikan pertukaran CONNECT dengan induk, kembalikan balasan SOCKS kepada klien dan hanya selepas itu teruskan bait aplikasi.
Bahagian hadapan SOCKS5 boleh menggunakan proksi HTTP sebagai pengangkutan seterusnya. Ia bertindak sebagai pelayan SOCKS terhadap klien dan sebagai klien HTTP CONNECT terhadap induk. Kedua-dua pertukaran kawalan selesai sebelum aliran aplikasi bermula.
Permintaan SOCKS CONNECT sudah membekalkan hos atau alamat destinasi dan port. Untuk pertukaran HTTP/1.1 contoh dengan induk:
client → adapter: SOCKS5 CONNECT service.example.net:443
adapter → parent:
CONNECT service.example.net:443 HTTP/1.1
Host: service.example.net:443
parent → adapter: HTTP/1.1 200 Connection Established
[end of headers]
adapter → client: SOCKS5 success reply
client ↔ adapter ↔ parent ↔ service: application bytes
Terjemahkan hasilnya di sempadan
Penyesuai menyelesaikan sebarang pengesahan yang diperlukan oleh induk dan menunggu hasil CONNECT. Balasan 2xx yang berjaya menubuhkan terowong induk. Hanya selepas itu ia patut mengembalikan balasan kejayaan SOCKS yang sepadan kepada klien hilir.
Jika induk menolak operasi itu, hantar balasan kegagalan SOCKS yang ditakrifkan, kemudian tamatkan sambungan klien dengan segera. SOCKS5 menghendaki penutupan itu dalam tempoh sepuluh saat selepas kegagalan dikesan. Simpan status HTTP induk sebagai maklumat diagnostik untuk penyesuai. Menghantar baris status itu sebagai data aplikasi akan meletakkan mesej kawalan HTTP ke dalam aliran yang kliennya menjangka bingkai SOCKS.
Sebelum hasil CONNECT yang berjaya, induk masih bercakap HTTP, termasuk pembingkaian sebarang balasan cabaran atau ralat. Selepas pemisah pengepala hasil yang berjaya, sambungan menjadi terowong; tiada badan balasan HTTP untuk digunakan dahulu.
Pelihara bait selepas pengepala
Satu bacaan boleh mengandungi penghujung pengepala induk dan bait daripada destinasi sekali gus. Simpan bait tambahan itu untuk aplikasi hilir. Protokol yang pelayannya bercakap dahulu boleh memberi salam serta-merta selepas sambungannya dibuka.
Selepas balasan kejayaan SOCKS dihantar, teruskan aliran aplikasi dalam kedua-dua arah. Penyesuai tidak perlu berselang-seli satu mesej klien dengan satu mesej pelayan, dan ia tidak perlu memahami rekod TLS untuk meneruskannya. Kerja protokolnya ialah menubuhkan dan menterjemah kedua-dua rundingan terowong.