In SOCKS5-fersyk omsette nei in HTTP-tunnel
Meitsje de CONNECT-útwikseling mei de âlder ôf, stjoer in SOCKS-antwurd nei de klant en ferstjoer pas dêrnei applikaasjebytes.
In SOCKS5-frontend kin in HTTP-proxy as syn fierdere transport brûke. It wurket as SOCKS-tsjinner foar de klant en as HTTP CONNECT-klant foar de âlder. Beide kontrôle-útwikselingen einigje foardat de applikaasjestream begjint.
It SOCKS CONNECT-fersyk leveret al de bestimminghost of it adres en de poarte. Foar in yllustrative HTTP/1.1-útwikseling mei de âlder:
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
Oerset it resultaat by de grins
De adapter foltôget alle needsaaklike autentikaasje by de âlder en wachtet op it CONNECT-resultaat. In slagge 2xx-antwurd stelt de tunnel nei de âlder yn. Pas dêrnei moat it it oerienkommende SOCKS-súksesantwurd weromstjoere nei de klant streamôf.
As de âlder de operaasje wegeret, stjoer dan in definiearre SOCKS-mislearingsantwurd en beëinigje dêrnei de klantferbining fuort. SOCKS5 easket dy sluting binnen tsien sekonden nei it ûntdekken fan de mislearring. Hâld de HTTP-status fan de âlder as diagnostyske ynformaasje foar de adapter. It troerstjoeren fan dy statusline as applikaasjedata soe in HTTP-kontrôleberjocht yn in stream pleatse wêrfan't de klant SOCKS-ramming ferwachtet.
Foardat in CONNECT-resultaat slagget, praat de âlder noch HTTP, ynklusyf de ramming fan elk útdagings- of flaterantwurd. Nei it koptekstskiedingsteken fan in slagge resultaat wurdt de ferbining de tunnel; der is earst gjin HTTP-antwurdlichem te ferbrûken.
Bewarje de bytes nei de kopteksten
Ien lêzing kin tagelyk it ein fan de kopteksten fan de âlder en bytes fan de bestimming befetsje. Bewarje dy ekstra bytes foar de applikaasje streamôf. Protokollen wêrby't de tsjinner earst praat kinne fuort by it iepenjen fan har ferbining groetsje.
Nei't it SOCKS-súksesantwurd ferstjoerd is, stjoer de applikaasjestream yn beide rjochtingen troch. De adapter hoecht net ien klantberjocht mei ien tsjinnerberjocht ôf te wikseljen, en hy hoecht TLS-records net te begripen om se troch te stjoeren. Syn protokolwurk wie it opsetten en oersetten fan de beide tunnelûnderhannelings.