Fluxu bidialekoa eta kontrapresioa SOCKS errele batean
Diseinatu errelearen fluxua byte-fluxu independenteen, E/S partzialaren, muga dituen bufferren eta kontrapresioaren inguruan, erantzun-tamaina kalkulatuen ordez.
SOCKS esku-ematea ondo amaitu da. Orain erreleak bezeroarengandik irakurtzen du, helmugara idazten du, erantzun osoaren zain egoten da eta horren ondoren bakarrik irakurtzen du berriro bezeroarengandik. Segida horrek erabat baliozkoa den aplikazio bat blokea dezake.
TCP tunela ezarri ondoren, SOCKSek ez ditu barruko mezuak definitzen. Helmugak lehenengo bidal dezake. Bi aldeek modu independentean bidal dezakete. Alde batek erregistro labur bat bidali eta gero bestearen erantzunaren zain egon daiteke.
Bidali byteak, ez suposatutako transakzioak
Jasotzeko dei batek erabilgarri dauden byteak itzultzen ditu bere banderei eta socketaren egoerari jarraiki. Ez dio errele orokor bati esaten aplikazioaren erantzuna osorik dagoenik. Nahi adinako buffer handi bat bete arte itxaroteak bikoteak jarraitzeko behar duen mezu txikia bidaltzea eragotz dezake.
Erabili aplikazioaren lehendik dagoen konkurrentzia-eredua bi noranzkoetarako: gertaeren begizta, I/O asinkronoa edo beste diseinu bat nahita aukeratuta. Portaera garrantzitsua da noranzko bateko aurrerapenak ez duela bestean asmatutako mezu-muga behar.
Mantendu bi buffer zain mugatuak
Bezeroarengandik irakurritako datuak helmugara iristeko zain egon daitezke oraindik, eta helmugako datuak bezeroarengana iristeko zain daude. Jarrai itzazu byte horiek bereizita.
Bidalketa batek eskatutakoa baino byte gutxiago idatz ditzake. Gorde idatzi gabeko zatia; ez ezazu bota eta ez ezazu buffer osoa berriz erreproduzitu. Aldi baterako idazteko modurik ez duen socket bat prestutasun-gertaera egokiaren zain egoteko arrazoia da, etengabe biratzen ibiltzeko arrazoia ez.
Mugatu bufferrak. Helmuga motela bada, bezero-datu mugagabeak irakurtzen jarraitzeak ilara errelearen memorian jartzen du soilik. Kontrapresioak esan nahi du irakurketak etetea dagokion buffer zain beteta dagoenean eta berriz hastea idazketek tokia egiten dutenean.
Noranzko bateko amaierak politika bat behar du
TCPk bidaltze-noranzkoa itxi dezake beste noranzkoak oraindik datu erabilgarriak dituenean. Erabaki nola hedatu baldintza hori bufferreko byteak hustu ondoren, eta bereizi ixte ordenatua errore edo epe batetik.
Horietako ezerk ez du eskatzen erreleak aplikazioaren karga erabilgarria deszifratu edo analizatzea. Fluxuaren kudeaketa egokia behar du. Bufferraren tamaina soilik handitzeak ezin du konpondu alde okerraren zain dagoen edo irakurketa bakoitza eskaera oso bati dagokiola suposatzen duen errele bat.