SOCKS4-yhteyspyyntö onnistuu, mutta sovellus ei koskaan näe palvelimen avaustervehdystä. Yksi paikka, jota kannattaa katsoa, on liittimen ensimmäinen luku. Kuudentoista tavun luku on liian suuri kahdeksan tavun SOCKS4-vastaukselle.

Vastauksen kenttäTavua
Vastauksen versiokenttä1
Tulokoodi1
Porttikenttä2
Osoitekenttä4

Tulokoodi 0x5a osoittaa, että pyyntö hyväksyttiin. SOCKS4a muuttaa sitä, miten pyyntö kuljettaa isäntänimeä; se ei tee vastauksesta kuuttatoista tavua.

Vastauksen jälkeen sama TCP-virta kuljettaa kohteen protokollaa. Sähköpostipalvelin voi lähettää tervehdyksensä heti. Siksi kuusitoista saatavilla olevaa tavua kuluttava luku voi viedä koko välityspalvelimen vastauksen ja kyseisen tervehdyksen ensimmäiset kahdeksan tavua. Jos mitään ei vielä seuraa, liian suuri estävä luku voi sen sijaan lisätä tarpeettoman odotuksen.

Tarkka pituus on jäsentimen vastuulla

Kahdeksan tavun pyytäminen kerran ei ole riittävä todiste siitä, että kahdeksan tavua saapui. Virran luvut voivat palauttaa vähemmän. Kerää vastauksen pituus tarkalleen määräajassa, pysähdy suljettuun tai epäonnistuneeseen virtaan, tarkasta vastaus ja jätä seuraavat tavut sovellukselle.

Jos liitin käyttää suurempaa puskuroitua lukua, säilytä kaikki rajan jälkeen ja välitä seuraavalle kuluttajalle. Ylijäämän hylkääminen on sama tietohäviö eri lukukoolla.

SOCKS5 tarvitsee oman jäsentimensä. Sen vastausosoitteen pituus voi vaihdella osoitetyypin mukaan. Jokaisen välityspalvelimen luvun korvaaminen kiinteällä kahdeksan tavun luvulla korjaisi yhden protokollan mutta rikkoisi toisen.

Aiheeseen liittyvät artikkelit