Full duplex flæði og bakþrýstingur í SOCKS endurvarpa
Hannaðu flæði endurvarpans út frá sjálfstæðum bætastreymum, hluta I/O, takmörkuðum biðminnum og bakþrýstingi í stað ágiskana um svarstærðir.
SOCKS handabandið tókst. Nú les endurvarpinn frá biðlarans, skrifar til áfangastaðarins, bíður eftir fullu svari og les því aðeins eftir það aftur frá biðlaranum. Sú röð getur stíflað algjörlega gilt forrit.
Þegar TCP göngin eru komin á legg skilgreinir SOCKS ekki skilaboðin inni í þeim. Áfangastaðurinn getur sent fyrstur. Báðar hliðar geta sent óháð. Önnur hliðin getur sent stutta færslu og beðið síðan eftir svari hinnar.
Berðu bætin áfram, ekki ágiskandi færslur
Móttökukall skilar tiltækum bætum samkvæmt flöggum sínum og stöðu sokkans. Það segir almennum endurvarpa ekki að svar forritsins sé fullbúið. Að bíða eftir að handahófskenndur stór biðminni fyllist getur komið í veg fyrir að smáskilaboðin, sem félaginn þarf til að halda áfram, séu send.
Notaðu núverandi samhliða líkan forritsins til að þjóna báðum stefnum: atburðalykkju, ósamstillt I/O eða aðra viljandi valda hönnun. Mikilvæg hegðun er að framfarir í annarri stefnunni krefjast ekki uppfundins skilaboðamarka í hinni.
Haltu tveimur takmörkuðum biðmínum
Gögn sem lesin eru frá biðlaranum bíða kannski enn eftir að ná áfangastaðnum, á meðan gögn frá áfangastaðnum bíða eftir að ná biðlaranum. Fylgstu með þessum biðbætum aðskilið.
Sending getur skrifað færri bæti en beðið var um. Haltu óskrifuðu hlutunum; ekki henda þeim og ekki spila öllum biðminninu aftur. Samband sem tímabundið er ekki skrifanlegt er ástæða til að bíða eftir rétta tilbúnaðaratburðinum, ekki til að snúast stöðugt.
Takmarkaðu biðminnin. Ef áfangastaðurinn er hægur færir áframhaldandi lestur á ótakmörkuðum biðlaragögnum bara biðröðina inn í minni endurvarpans. Bakþrýstingur þýðir að stöðva lestur þegar samsvarandi biðminni er fullur og hefja hann aftur þegar skriftir losa pláss.
Endir í annarri stefnunni krefst stefnu
TCP getur lokað sendingarstefnu á meðan hin stefnan hefur enn gagnleg gögn. Ákveddu hvernig miðla skuli þeirri stöðu eftir að biðminnisbætin eru tæmd, og greindu skipulega lokun frá villu eða tímafresti.
Ekkert af þessu krefst þess að endurvarpinn afkóði eða þátti burðargjald forritsins. Hann þarf rétta meðferð streymis. Að auka eingöngu stærð biðminnisins getur ekki lagað endurvarpa sem bíður eftir röngu hliðinni eða gerir ráð fyrir að hver lestur svari einni heildarbeiðni.