Fluss Full-Duplex u Backpressure f'Relay SOCKS
Iddisinja l-fluss tar-relay madwar flussi indipendenti ta' bytes, I/O parzjali, buffers limitati u backpressure, minflok daqsijiet tar-risposta maħsuba.
Il-handshake SOCKS irnexxa. Issa r-relay jaqra mill-klijent, jikteb lid-destinazzjoni, jistenna risposta sħiħa, u biss imbagħad jaqra mill-klijent mill-ġdid. Dak is-sekwenza tista' timblokka applikazzjoni kompletament valida.
Ladarba t-tunnel TCP ikun stabbilit, SOCKS ma jiddefinixxix il-messaġġi ġewwa fih. Id-destinazzjoni tista' tibgħat l-ewwel. Iż-żewġ naħat jistgħu jibgħatu indipendentement. Naħa waħda tista' tibgħat rekord qasir u mbagħad tistenna t-tweġiba tan-naħa l-oħra.
Għaddi l-bytes, mhux transazzjonijiet maħsuba
Sejħa ta' riċeviment tirritorna l-bytes disponibbli skont il-flags u l-istat tas-socket tagħha. Ma tgħid lill-relay ġeneriku li risposta tal-applikazzjoni hija kompluta. Li tistenna buffer kbir arbitrarju biex jimtela jista' jipprevjeni li jintbagħat il-messaġġ żgħir li l-peer jeħtieġ biex ikompli.
Uża l-mudell ta' konkorrenza eżistenti tal-applikazzjoni biex taqdi ż-żewġ direzzjonijiet: event loop, I/O asinkronu, jew disinn ieħor magħżul b'mod deliberat. L-imġiba importanti hija li l-progress f'direzzjoni waħda ma jeħtieġx fruntiera tal-messaġġ ivvintata fid-direzzjoni l-oħra.
Żomm żewġ buffers pendenti limitati
Id-dejta moqrija mill-klijent tista' għadha tistenna biex tasal fid-destinazzjoni, filwaqt li d-dejta mid-destinazzjoni tistenna biex tasal fil-klijent. Ikkontrolla dawk il-bytes pendenti separatament.
Tbagħtir jista' jikteb inqas bytes milli mitlub. Żomm il-parti mhux miktuba; tarmihiex jew terġa' tilgħab il-buffer kollu. Socket li temporanjament ma jistax jinkiteb huwa raġuni biex tistenna l-avveniment ta' tħejjija korrett, mhux biex iddur kontinwament.
Illimita l-buffers. Jekk id-destinazzjoni hija bil-mod, li tkompli taqra dejta tal-klijent bla limitu sempliċement iċċaqlaq il-kju fil-memorja tar-relay. Backpressure tfisser li tpoġġi l-qari fuq waqfa meta l-buffer pendenti korrispondenti jimtela u terġa' tibda meta l-kitbiet jagħmlu spazju.
Tmiem f'direzzjoni waħda jeħtieġ politika
TCP jista' jagħlaq direzzjoni tal-bgħit waqt li d-direzzjoni l-oħra għad għandha dejta utli. Iddeċiedi kif tixxerred dik il-kundizzjoni wara li l-bytes fil-buffer jiġu żvojati, u odda għal għeluq ordnat minn żball jew skadenza.
Xejn minn dan ma jeħtieġ li r-relay jiddeċifra jew janalizza l-payload tal-applikazzjoni. Jeħtieġ immaniġġjar korrett tal-fluss. Iż-żieda fid-daqs tal-buffer waħedha ma tistax tissewwi relay li jistenna n-naħa l-ħżiena jew jassumi li kull qari jikkorrispondi għal talba sħiħa waħda.