Tagann dhá chomhartha chun solais sa lúb VpnService chéanna agus cuirtear an milleán ar an rud céanna: léitheoir nach bhfillfidh choíche, agus scríobh a chailleann le ENOBUFS. Ní athruithe iad ar aon fhabht amháin. Is easaontú faoi rialú sreafa leis an peer é léamh stoptha; is pacáiste é scríobh teipthe nach nglacfaidh an chomhéadan leis. Má chaithfidh tú leo mar aon fhadhb amháin, caithfidh tú lá ag tiúnú maolánach nár bhain le hábhar riamh. Is é an scoilteadh thíos an chaoi a gcinntím cé acu leath den lúb a dhéanfaidh mé ionstraimíocht air ar dtús.

Aon lúb amháin, dhá phointe teipe neamhspleácha

Léann do sheirbhís pacáiste IP ó thuairisceoir comhaid TUN, scrúdaíonn sé é agus scríobhann sé freagra ar ais chuig an tuairisceoir céanna. Tagann gach rud a bhriseann ar an gcosán sin chun solais ag ceann den dá ghlao sin, agus sin an fáth a dtuairiscítear an dá cheann mar an tollán briste. Tá conarthaí éagsúla ag na glaonna. Fanann léamh go dtugann an eithne pacáiste duit, agus tugann scríobh don eithne pacáiste a bhfuil cead aige é a dhiúltú.

Is iad léamha an leath is fusa le réasúnaíocht. Léamh nach dtugann aon rud ar ais bíonn sé ag fanacht le trácht nach dtagann choíche nó ag fanacht mar gur stop an peer ag seoladh.

Is easaontú rialaithe sreafa é léamh stoptha

Cuireann léamh gléis TUN bac air féin go dtí go mbeidh pacáiste ar fáil. Is iompraíocht dheartha é sin, agus sin an fáth a bhfuil snáithe atá páirceáilte istigh i read le feiceáil mar rud normálta ar nasc díomhaoin. Éiríonn sé ina chrochadh nuair a leanann do stac TCP féin ag glacadh sonraí ón aip áitiúil ach nach bhfógraíonn sé riamh fuinneog leordhóthanach don phiarchéimseata chun níos mó a sheoladh. Líonann an peer an fhuinneog a d'fhógair tú, fanann sé le ACK agus le nuashonrú fuinneoige, agus stopann sé. Ansin níl aon rud ag do léitheoir le tabhairt ar ais, agus feiceann an aip nasc atá oscailte agus ciúin.

Is iad na cúiseanna coitianta stac a scríobhann sa socrú gan an fhuinneog fhógartha a rianú, agus ceann a dhéanann dearmad nuashonrú fuinneoige a sheoladh tar éis a mhaolán a dhraenáil. Ón taobh amuigh tá cuma chomhionann orthu: téann bearta amach, ní thagann aon rud ar ais, ní ardaítear aon earráid. Cruthaíonn bac a chur ar an snáithe léitheora le linn parsála, réitithe DNS nó I/O diosca an chruth céanna comhartha ar chúis neamhghaolmhar, mar sin deimhnigh go bhfuil an snáithe istigh i read i ndáiríre sula gcuireann tú an milleán ar rialú sreafa.

Seiceáil scuaine seolta an peer agus an fhuinneog a chonaic sé ar deireadh. Má tá an peer ag coinneáil sonraí toisc go bhfuil do fhuinneog nialasach, tá an ceartú i do chonair ACK, ní sa léamh TUN.

Is fadhb méide é ENOBUFS, ní ganntanas maoláin

Diúltaíonn scríobh a thugann ENOBUFS ar chomhéadan TUN d'fhad an phacáiste de ghnáth. Tá MTU ag an gcomhéadan, ní féidir pacáiste níos mó ná sin a chur sa scuaine, agus teipeann ar athiarracht an phacáiste chéanna ar an mbealach céanna gach uair. Is é an cinntitheacht sin an leid. Glanann fíor-ganntanas maoláin de réir mar a thagann laghdú ar an mbrú, ach is cuma leis an diúltú méide cé chomh fada a fhanann tú.

Tá meicníocht ag TCP go díreach chuige seo, agus is é sin an chéim a scipeálann daoine: clamp MSS. Nuair a dhéanann tú deighleoga a shintéisiú i spás úsáideora roghnaíonn tú méid an ualaigh, agus má thógann tú ó MTU an chomhéadain áitiúil in ionad MTU an tolláin astaítear deighleoga nach féidir leis an tollán a iompar. Cuir teorainn leis an gceann is lú den dá cheann. Ní chlúdaíonn an clamp ach TCP, mar sin caithfidh do chód datagram UDP rómhór a chodánú nó a scriosadh.

Lógáil fad gach pacáiste a scríobhann tú agus tú ag dífhabhtú. Is é an fad a theipeann an freagra, agus ní bhogfaidh sé idir iarrachtaí.

Trí thomhas a scarann na cásanna

Ní gá duit dífhabhtóir do cheachtar de na teipeanna. Is leor trí bhreathnóireacht chun tú féin a threorú chuig an roinn cheart, agus tógann siad níos lú ama ná atógáil.

What you seeWhere to look
Reader parked, peer send queue empty, last advertised window zeroWindow updates in your ACK path
Write fails on one length and succeeds on a smaller oneMSS clamp and tunnel MTU
Both directions look fine, app still sees no dataProtected socket and routing loop

Má mheaitseálann an tríú ró, tá an lúb féin go breá agus tá an fhadhb san áit nach féidir leis an tollán í a fheiceáil: socrú iompair neamhchosanta a iompraíonn do thrácht VPN féin ar ais isteach sa tollán, rud a fheictear de ghnáth mar nasc a n-éiríonn leis agus ansin nach seachadann aon rud.

Deisigh an phluiméireacht a bhfuil an dá chosán ag brath uirthi

Ní fiú aon chomhartha a leanúint go dtí go mbeidh an chomhéadan tógtha i gceart. Is iad na glaonna builder a bhfuil tábhacht leo an seoladh, an bealach, an MTU agus an toiliú, san ord sin:

Builder()
  .addAddress(10.8.0.2, 32)
  .addRoute(0.0.0.0, 0)
  .setMtu(1400)
  .establish()

Socraigh an MTU ar fhíorluach an tolláin in ionad é a fhágáil ar an rud a d'úsáid an sampla. Tá gach rud a scríobhfaidh tú níos déanaí teoranta ag an uimhir sin, agus is é an mhí-chomhoiriúnú idir an MTU a shocraíonn tú agus an MSS a chuireann tú teorainn leis an mbealach is coitianta chun an teip scríofa a thabhairt ar ais tar éis ceartúcháin. Ansin cosain an socrú a iompraíonn trácht chuig an bhfreastalaí VPN féin. Gan protect, déantar na pacáistí sin a ródú ar ais isteach i do thollán féin agus ní chríochnaíonn an nasc riamh, rud a bhfuil cuma léimh stoptha air ach is lúb ródaithe é.

Ní féidir toiliú a sheachaint. Ní fhaigheann seirbhís a thosaítear gan prepare a thabhairt ar ais null aon chomhéadan, agus tugann establish null ar ais in ionad a chaitheamh, mar sin seiceáil an tuairisceoir sula dtosaíonn tú do lúb. Is é an tagairt VpnService an áit chun conradh an builder a dhearbhú in ionad sampla a chóipeáil.

Deimhnigh treo amháin ag an am

Seol macalla UDP tríd an tollán agus breathnaigh ar fhaid na bpacáistí sula mbaineann tú le TCP. Ansin oscail croitheadh láimhe agus deimhnigh go bhfanann na deighleoga faoin MSS a ríomh tú. Comhair pacáistí seachas naisc, ionas go dtiocfaidh stad chun solais mar bhearna sa chuntar in ionad socrú crochta. Má stopann léamha tar éis rois scríofa, is í an fhuinneog an t-amhrastach; má theipeann scríofa láithreach, is é an fad.

Ansin atosaigh an gléas agus déan arís uair amháin, mar is fadhb ródaithe é VpnService nach n-oibríonn ach go dtí an chéad athrú líonra, ní fadhb rialaithe sreafa.

Ailt ghaolmhara