Léim go dtí an príomhábhar
OpenAI

4 Bealtaine 2026

Innealtóireacht

Conas a sholáthraíonn OpenAI IS gutha le moill íseal ar scála

Le Yi Zhang agus William McDonald, Baill den Fhoireann Theicniúil

Ní mhothaíonn IS gutha nádúrtha ach amháin má ghluaiseann an comhrá ar luas na cainte. Nuair a chuireann an líonra bac air, cloiseann daoine é láithreach i bhfoirm sosanna míchompordacha, cur isteach gearrtha, nó barge-in moillithe. Tá tábhacht leis sin do ghuth ChatGPT, d’fhorbróirí atá ag tógáil leis an Realtime API, do ghníomhairí atá ag obair i sreafaí oibre idirghníomhacha, agus do shamhlacha ar gá dóibh fuaim a phróiseáil fad is atá úsáideoir fós ag caint.

Ag scála OpenAI, aistríonn sé sin go dtí trí riachtanas nithiúla:

  • Raon domhanda do bhreis agus 900 milliún úsáideoir gníomhach seachtainiúil
  • Socrú tapa ceangail ionas gur féidir le húsáideoir tosú ag labhairt chomh luath agus a thosaíonn seisiún.
  • Am turais fillte na meán íseal agus cobhsaí, le luaineacht íseal agus caillteanas paicéad íseal, ionas go mothaíonn malartú sealanna géar beacht

Rinne an fhoireann ag OpenAI atá freagrach as idirghníomhaíochtaí IS fíor-ama athailtireacht le déanaí ar ár gcruach WebRTC chun aghaidh a thabhairt ar thrí shrian a thosaigh ag teacht salach ar a chéile ar scála: ní oireann foirceannadh meán port amháin in aghaidh an tseisiúin go maith do bhonneagar OpenAI, tá úinéireacht chobhsaí de dhíth ar sheisiúin ICE (Interactive Connectivity Establishment) agus DTLS (Datagram Transport Layer Security), agus ní mór don ródú domhanda moille an chéad léime a choinneáil íseal. San alt seo, déanaimid cur síos céim ar chéim ar an ailtireacht scoilte athsheachadáin móide trasghlacadóra a thógamar chun iompar caighdeánach WebRTC a chaomhnú do chliaint, agus ag an am céanna an chaoi a ródáiltear paicéid laistigh de bhonneagar OpenAI a athrú.

Cuireann WebRTC ar ár gcumas táirgí AI fíor-ama a chruthú

Is caighdeán oscailte é WebRTC chun fuaim, físeán agus sonraí a sheoladh le moill íseal idir brabhsálaithe, aipeanna móibíleacha agus freastalaithe. Is minic a bhaineann sé le glaonna piara-le-piara, ach is bonn praiticiúil é freisin do chórais fíor-ama ó chliant go freastalaí, toisc go ndéanann sé na codanna deacra de na meáin idirghníomhacha a chaighdeánú: ICE chun nascacht a bhunú agus chun NAT (Aistriú Seoltaí Líonra) a thrasnú, DTLS agus SRTP (Prótacal Iompair Fíor-ama Slán) le haghaidh iompar criptithe, idirbheartaíocht códac chun fuaim a chomhbhrú agus a dhíchódú, RTCP (Prótacal Rialaithe Iompair Fíor-ama) le haghaidh rialú cáilíochta, agus gnéithe ar thaobh an chliaint amhail cealú macalla agus maolánú giodaim.

Tá tábhacht leis an gcaighdeánú sin do tháirgí IS. Gan WebRTC, bheadh réiteach difriúil de dhíth ar gach cliant maidir le nascacht a bhunú thar NATanna, meáin a chriptiú, codecs a chaibidliú (na códóirí-díchódóirí a roghnaítear le haghaidh tarchuir agus dí-chomhbhrúite), agus oiriúnú do dhálaí líonra atá ag athrú. Le WebRTC, is féidir linn tógáil ar chruach prótacal atá curtha i bhfeidhm cheana féin ar fud brabhsálaithe agus ardáin mhóibíleacha, agus ár gcuid oibre féin a dhíriú ar an mbonneagar a nascann meáin fhíor-ama le samhlacha.

Tógaimid freisin ar éiceachóras WebRTC féin, lena n-áirítear cur chun feidhme aibí foinse oscailte agus an obair ar chaighdeáin a choinníonn brabhsálaithe, aipeanna móibíleacha agus freastalaithe comh-inoibritheach. Ba í an obair bhunúsach a rinne Justin Uberti (duine de bhunailtirí WebRTC) agus Sean DuBois (cruthaitheoir agus cothaitheoir Pion) a chuir ar chumas foirne cosúil linne tógáil ar bhonneagar meán atá cruthaithe i ndálaí crua, seachas sásraí iompair ar leibhéal íseal, criptiú agus iompraíocht rialaithe plódaithe a athcheapadh. Tá an t-ádh orainn go bhfuil Justin agus Sean araon ina gcomhghleacaithe linn anois anseo ag OpenAI, agus iad ag cabhrú le treoir a thabhairt ar an gcaoi a dtugaimid WebRTC agus IS fíor-ama níos gaire dá chéile.

Maidir le IS, is é an t-airí is tábhachtaí ná go dtagann fuaim isteach mar shruth leanúnach. Is féidir le gníomhaire labhartha tosú ar thras-scríobh, réasúnaíocht, glaoch ar uirlisí, nó cainte a ghiniúint agus an t-úsáideoir fós ag caint, in ionad fanacht le huaslódáil iomlán. Sin í an difríocht idir córas a mhothaíonn comhráiteach agus ceann a mhothaíonn cosúil le brú chun labhairt.

Ailtireacht meán a roghnú

Nuair a roghnaíomar WebRTC, ba í an chéad cheist eile ná cá háit a ndéanfaí é a fhoirceannadh (cá nglacfaimis leis an nasc WebRTC agus a mbeadh sé faoi úinéireacht againne—mar shampla, ag an imeall) agus conas na seisiúin sin a nascadh leis an gcóras tátail. Tá tábhacht le foirceannadh mar a shocraíonn sé conas a láimhseálaimid stát seisiúin fíor-ama, iompar meán, ródú, aga folaigh, agus aonrú teipeanna.

Rogha 1: Cuimsíonn cur chuige SFU Intleacht Shaorga (IS) mar rannpháirtí WebRTC

Is éard is SFU ann, nó aonad cur ar aghaidh roghnaitheach, freastalaí meán a fhaigheann sruth WebRTC amháin ó gach rannpháirtí agus a chuireann sruthanna ar aghaidh go roghnaitheach chuig na rannpháirtithe eile. Sa tsamhail seo, foirceannann an SFU nasc WebRTC ar leith do gach rannpháirtí, agus tagann an IS isteach mar rannpháirtí eile sa seisiún. D’fhéadfadh sé sin a bheith oiriúnach do tháirgí atá ilpháirtíoch go bunúsach, amhail glaonna grúpa, seomraí ranga, nó cruinnithe comhoibríocha. Coinníonn sé códaigh fuaime, teachtaireachtaí RTCP, cainéil sonraí, taifeadadh agus beartas de réir srutha in aon áit amháin.1

Fiú i dtáirgí cliant-go-IS, is minic gurb é SFU an pointe tosaigh réamhshocraithe, toisc go ligeann sé d’fhoirne córas cruthaithe amháin a athúsáid le haghaidh comharthaíochta, ródú meán, taifeadta, inbhreathnaitheachta, agus síntí amach anseo amhail aistriú chuig duine nó níos mó rannpháirtithe a chur leis.

Rogha 2: Foirceannann cur chuige an trasghlacadóra WebRTC ag an imeall agus tiontaíonn sé é go prótacal cúlra

Tá ár n-ualach oibre difriúil. Tá formhór na seisiún 1:1—úsáideoir amháin ag caint le samhail amháin, nó feidhmchlár amháin ag caint le gníomhaire fíor-ama amháin—agus íogaireacht don aga folaigh i gceist ag gach seal. Maidir leis an gcineál tráchta sin, roghnaíomar samhail trasghlacadóra: foirceannann seirbhís imeallach WebRTC an nasc cliaint agus ansin tiontaíonn sí meáin agus imeachtaí ina bprótacail inmheánacha níos simplí le haghaidh tátal samhla, tras-scríobh, giniúint cainte, úsáid uirlisí agus orchestrú.

Sa dearadh seo, is é an trasghlacadóir an t-aon seirbhís a bhfuil úinéireacht aici ar staid an tseisiúin WebRTC, lena n-áirítear seiceálacha nascachta ICE, croitheadh láimhe DTLS, eochracha criptithe SRTP agus saolré an tseisiúin. Ciallaíonn “Foirceannadh” anseo gurb é an trasghlacadóir an deireadhphointe a chuireann na croitheadh láimhe sin i gcrích agus a chriptíonn nó a dhíchriptíonn na meáin. D’fhág coinneáil na staide sin in aon áit amháin go raibh sé níos éasca réasúnaíocht a dhéanamh faoi úinéireacht seisiúin agus chuir sé ar chumas seirbhísí cúil scálú cosúil le gnáthsheirbhísí seachas feidhmiú mar phiaraí WebRTC iad féin.

An fhadhb lárnach imlonnaithe: WebRTC agus Kubernetes ag teacht le chéile

Tar éis dúinn samhail an trasghlacadóra a roghnú, ba í ár gcéad chur i bhfeidhm seirbhís aonair Go a tógadh ar Pion agus a láimhseáil comharthaíocht agus foirceannadh na meán araon. Cumhachtaíonn sé Guth ChatGPT, deireadhphointe WebRTC an API fíor-ama, agus roinnt tionscadal taighde.

Ó thaobh oibríochta de, comhlíonann an tseirbhís trasghlacadóra dhá fheidhm:

  • Comharthaíocht: caibidlíocht SDP, roghnú cóidec, dintiúir ICE, agus socrú seisiúin.
  • Meáin: Ag foirceannadh naisc WebRTC iartheachtacha agus ag coinneáil naisc WebRTC réamhtheachtacha le seirbhísí cúil le haghaidh tátail agus comhordaithe

Theastaigh uainn go rithfeadh an tseirbhís cosúil leis an gcuid eile dár mbonneagar: ar Kubernetes, áit ar féidir le hualaí oibre scálú suas agus síos, agus bogadh idir óstaigh de réir mar a athraíonn an t-éileamh. Ach ní oireann an tsamhail thraidisiúnta WebRTC ina mbíonn aon phort amháin in aghaidh an tseisiúin don timpeallacht sin ach go dona, toisc go mbraitheann sí ar raonta móra poiblí port UDP atá deacair a nochtadh, a dhaingniú agus a chaomhnú de réir mar a chuirtear podanna leis, a bhaintear iad, nó a athsceidealaítear iad.

Ídiú port

Ba í an chéad fhadhb an tsamhail “port amháin in aghaidh an tseisiúin” féin. Ag comhthráthacht ard, ciallaíonn sé sin raonta an-mhóra de phoirt UDP a nochtadh agus a bhainistiú.

  • Níl cothromóirí ualaigh néil ná seirbhísí Kubernetes deartha do na deicheanna mílte port poiblí UDP in aghaidh na seirbhíse. Cuireann gach raon breise castacht oibríochtúil le cumraíocht an chothromóra ualaigh, seiceálacha sláinte, beartas balla dóiteáin agus sábháilteacht an rolladh amach.3
  • Tá sé deacair raonta móra de phoirt UDP a dhaingniú, mar go méadaíonn siad an dromchla atá inrochtana ón taobh amuigh agus go ndéanann siad polasaí líonra níos deacra le hiniúchadh.
  • Tá siad mí-oiriúnach don uathscálú freisin. Cuirtear podanna leis, baintear iad, agus athsceidealaítear iad i gcónaí in Kubernetes. Nuair a cheanglaítear ar gach pod raon mór cobhsaí calafort a chur in áirithe agus a fhógairt, éiríonn an leaisteachas sin leochaileach.4

Sin é an fáth a bhfuil go leor córas WebRTC ag bogadh i dtreo port UDP amháin in aghaidh an fhreastalaí, le dí-ilphléacsáil ar leibhéal an fheidhmchláir taobh thiar den phort sin.5

Greamaitheacht an Choinníll

Réitíonn dearaí ina bhfuil port amháin in aghaidh an fhreastalaí fadhb líon na bport, ach tugann siad isteach dara fadhb: úinéireacht gach seisiúin a chaomhnú ar fud flít.

Is prótacail staidbhunaithe iad ICE agus DTLS. Ní mór don phróiseas a chruthaigh seisiún leanúint de phaicéid an tseisiúin sin a fháil ionas gur féidir leis seiceálacha nascachta a bhailíochtú, croitheadh láimhe DTLS a chur i gcrích, SRTP a dhíchriptiú, agus athruithe seisiúin níos déanaí amhail atosuithe ICE a phróiseáil. Má chríochnaíonn paicéid don seisiún céanna i bpróiseas eile, d’fhéadfadh an socrú teip nó d’fhéadfadh na meáin cliseadh.

Thug sé sin sprioc shonrach dúinn: dromchla beag seasta UDP a nochtadh don idirlíon poiblí, agus gach paicéad a ródú fós chuig an trasghlacadóir a bhfuil úinéireacht aige ar an seisiún WebRTC comhfhreagrach.

Comparáid idir ailtireachtaí meán WebRTC

Rinneamar measúnú ar roinnt bealaí chun é sin a bhaint amach, lena n-áirítear TURN (Traversal Using Relays around NAT), ina bhfoirceannann athsheachadán imeallach leithdháiltí cliant agus ina gcuireann sé trácht ar aghaidh thar a gceann.2

Cur Chuige

Buntáistí

Míbhuntáistí

IP:port uathúil in aghaidh an tseisiúin (ar a dtugtar UDP díreach dúchasach freisin)

Conair dhíreach meán ó chliant go freastalaí

Níl aon chiseal cur ar aghaidh sa chonair sonraí

Teastaíonn port poiblí UDP amháin in aghaidh gach seisiúin

Tá sé dúshlánach raonta móra port a nochtadh agus a dhaingniú

Ní oireann sé go maith do Kubernetes ná do chothromóirí ualaigh néil

IP:port uathúil in aghaidh an fhreastalaí

Lorg poiblí UDP níos lú ná nochtadh in aghaidh an tseisiúin

Is féidir le soicéad comhroinnte amháin in aghaidh an fhreastalaí go leor seisiún a dhí-ilphléacsáil.

Oibríonn sé go réidh ar óstach aonair, ach ní oibríonn sé ar fud flít comhroinnte atá cothromaithe ó thaobh ualaigh de gan tacaíocht bhreise

Ní chuidíonn dí-ilphléacsáil seisiúin ar óstach aonair ach tar éis do phaicéad an t-óstach sin a bhaint amach; ar fud flít cothromaithe ualaigh, féadfaidh an chéad phaicéad teacht i dtír fós ar an instealladh mícheart, mar sin beidh bealach cinntitheach de dhíth ort fós chun gach seisiún a threorú chuig an bpróiseas a bhaineann leis.


Athsheachadán TURN (a fhoirceannann an prótacal)

Ní gá do chliaint ach seoladh agus port an athsheachadáin TURN a bhaint amach

Is féidir polasaí a lárú ag an imeall.

Cuireann leithdháiltí TURN turais socraithe breise leis.

Tá sé fós deacair leithdháiltí a bhogadh nó a aisghabháil idir freastalaithe TURN

Seoltóir gan staid + críochfoirt staide (athsheachadán agus trasghlacadóir OpenAI)

Lorg poiblí beag UDP

Tá an trasghlacadóir fós i gceannas ar an seisiún iomlán WebRTC.

Cuireann sé céim seolta ar aghaidh amháin leis sula sroicheann na meáin an trasghlacadóir lena mbaineann.

Teastaíonn comhordú saincheaptha idir an t-athsheachadán agus an trasghlacadóir

Forbhreathnú Ailtireachta: athsheachadán agus trasghlacadóir

Scarann an ailtireacht a sheolamar ródáil paicéad ó fhoirceannadh prótacail. Sroicheann an chomharthaíocht an trasghlacadóir fós le haghaidh socrú seisiúin, agus téann na meáin isteach tríd an athsheachadán ar dtús. Is ciseal éadrom cur ar aghaidh UDP é an t-athsheachadán a bhfuil lorg poiblí beag aige, agus is é an trasghlacadóir an deireadhphointe WebRTC staidbhunaithe taobh thiar de.

Seolann an t-athsheachadán paicéid chuig an trasghlacadóir gan staid a chothabháil.

Ní dhíchriptíonn an t-athsheachadán na meáin, ní ritheann sé meaisíní stáit ICE, ná ní ghlacann sé páirt i gcaibidlíocht codec. Léann sé dóthain meiteashonraí an phaicéid chun ceann scríbe a roghnú, agus ansin cuireann sé an paicéad ar aghaidh chuig an trasghlacadóir ar leis an seisiún. Feiceann an trasghlacadóir gnáthshreabhadh WebRTC fós agus is leis fós staid iomlán an phrótacail. Ó thaobh an chliaint de, ní thagann aon athrú ar an seisiún WebRTC.

Ródú bunaithe ar dhintiúir ICE

Is é ródú an chéad phaicéid an phríomhchéim sa chumraíocht seo. Caithfidh athsheachadán an chéad phaicéad ó chliant a ródú sula mbíonn aon seisiún ann ar chonair an phaicéid féin, seachas trí fanacht le seirbhís chuardaigh sheachtrach.

Iompraíonn gach seisiún WebRTC crúca ródúcháin atá dúchasach don phrótacal cheana féin: blúire ainm úsáideora ICE, nó ufrag, aitheantóir gairid a mhalartaítear le linn socrú an tseisiúin agus a mhacallaítear i seiceálacha nascachta STUN. Gineann muid an ufrag ar thaobh an fhreastalaí ionas go mbeidh ann díreach a dhóthain meiteashonraí ródaithe chun go mbeidh an t-athsheachadán in ann tátal a bhaint as an gcnuasach ceann scríbe agus as an trasghlacadóir ar leis é.

Taispeánann an léaráid sheicheamh conas a bhunaítear an nasc

Le linn na comharthaíochta, leithdháileann an trasghlacadóir staid seisiúin agus cuireann sé VIP athsheolta roinnte agus port UDP ar ais sa fhreagra SDP. Is seoladh IP fíorúil é VIP atá mar éadan don fhlít athsheachadáin; i dteannta leis an bport, tugann sé ceann scríbe cobhsaí amháin don chliant, amhail `203.0.113.10:3478`, cé go bhfuil go leor áscanna athsheachadáin taobh thiar de. Is iondúil gurb é an chéad phaicéad ar chonair na meán ón gcliant iarratas ceangail STUN (Session Traversal Utilities for NAT), a úsáideann ICE chun a fhíorú gur féidir le paicéid an seoladh fógartha a bhaint amach.

Parsálann Relay díreach a dhóthain den chéad phaicéad STUN sin chun ufrag an fhreastalaí a léamh, an leid ródaithe a dhíchódú, agus an paicéad a chur ar aghaidh chuig an trasghlacadóir ar leis é. Éisteann gach trasghlacadóir ar shoicéad UDP comhroinnte, rud a chiallaíonn deireadhphointe amháin de chuid an chórais oibriúcháin atá nasctha le IP:port inmheánach, agus ní soicéad amháin in aghaidh an tseisiúin. Tar éis don athsheachadán seisiún a chruthú ó IP:port foinse an chliaint chuig ceann scríbe an trasghlacadóra sin, sreabhann na paicéid DTLS, RTP agus RTCP ina dhiaidh sin laistigh den seisiún gan an ufrag a dhíchódú arís.

Tá seisiún an athsheachadáin íosta d’aon ghnó, agus níl ann ach seisiún sa chuimhne chun cur ar aghaidh paicéad a threorú, mar aon leis na cuntair riachtanacha le haghaidh monatóireachta agus amadóirí le haghaidh dhul in éag agus ghlanadh an tseisiúin. Coinníonn an rogha dearaidh seo ródú paicéad go díreach ar chonair na bpaicéad. Má atosaíonn athsheachadán agus má chailleann sé an seisiún, atógann an chéad phaicéad STUN eile an seisiún ón leid ródaithe ufrag. Chun é a dhéanamh níos iontaofa fós, úsáidtear taisce Redis chun an mhapáil de <IP cliaint + Port, IP trasghlacadóra + Port> a choinneáil a luaithe a bhunaítear an bealach, ionas gur féidir í a aisghabháil i bhfad níos luaithe, sula dtagann an chéad phaicéad STUN eile.

Athsheachadadh domhanda agus comharthaíocht gheo-stiúrtha

Nuair a laghdaíomar dromchla poiblí UDP go líon beag seoltaí agus calafoirt chobhsaí, d’fhéadfaimis an patrún athsheachadta céanna a imscaradh go domhanda. Is é Global Relay ár bhflít de phointí iontrála athsheachadáin atá dáilte go geografach agus a chuireann an t-iompar céanna maidir le paicéid a chur ar aghaidh i bhfeidhm.

Giorraíonn iontráil gheografach leathan an chéad léim ón gcliant go OpenAI toisc gur féidir le paicéad dul isteach inár líonra ag athsheachadán atá gar don úsáideoir, ó thaobh geografach agus topolaíochta líonra, seachas an t-idirlíon poiblí a thrasnú chuig réigiún i bhfad i gcéin ar dtús. I dtéarmaí praiticiúla, ciallaíonn sé sin moill níos ísle, níos lú giodaim, agus níos lú pléascthaí caillteanais sheachanta sula sroicheann an trácht ár gcnámh droma.6

Faigheann an tsraith Sealaíochta Domhanda paicéid ó chliant agus cuireann sí ar aghaidh chuig braisle trasghlacadóirí.

Úsáidimid stiúradh geografach agus gaireachta Cloudflare le haghaidh comharthaíochta ionas go sroichfidh an t-iarratas tosaigh HTTP nó WebSocket braisle trasghlacadóirí in aice láimhe. Socraíonn comhthéacs an iarratais suíomh an tseisiúin agus cén pointe iontrála Global Relay a fhógraítear don chliant. Soláthraíonn an freagra SDP seoladh Global Relay, agus tá dóthain faisnéise san ufrag le go bhféadfaidh Global Relay na meáin a ródú chuig an mbraisle ainmnithe agus le go bhféadfaidh an t-athsheachadán ródú chuig an trasghlacadóir cinn scríbe.

Le chéile, cuireann comharthaíocht gheo-stiúrtha agus Global Relay an socrú agus na meáin araon ar chosán iontrála in aice láimhe, agus an seisiún á choinneáil ancaireáilte le trasghlacadóir amháin. Laghdaíonn sé sin am turais anonn is anall don chomharthaíocht agus don chéad seiceáil nascachta ICE, rud a ghiorraíonn go díreach an fad a bhíonn ar úsáideoir fanacht sula féidir leis an gcaint tosú.

Cur i bhfeidhm agus feidhmíocht Relay

Scríobhamar an tseirbhís athsheachadáin in Go agus choinníomar an chur i bhfeidhm teoranta ar a son. Ar Linux, faigheann cruach líonraithe na heithne paicéid UDP ó chomhéadan líonra an mheaisín agus seachadtar iad chuig soicéad, deireadhphointe an chórais oibriúcháin a léann próiseas uaidh tar éis IP:Port a cheangal. Ritheann Relay i spás an úsáideora, mar sin léann próiseas rialta Go ceanntásca paicéad ón soicéad sin, nuashonraíonn sé méid beag de staid an tsreafa, agus cuireann sé paicéid ar aghaidh gan WebRTC a fhoirceannadh. Ní raibh aon chreat seachanta eithne de dhíth orainn, rud a ligfeadh do phróiseas i spás úsáideora scuainí líonra a pholláil go díreach chun rátaí paicéad níos airde a bhaint amach, ach a chuirfeadh castacht oibríochtúil leis freisin.

Príomhroghanna dearaidh:

  • Gan fhoirceannadh prótacail: Ní pharsálann an t-athsheachadán ach ceanntásca STUN/ufrag; úsáideann sé staid i dtaisce le haghaidh DTLS, RTP, agus RTCP ina dhiaidh sin, agus coinníonn sé na paicéid teimhneacha.
  • Staid ghearrshaolach: Coinníonn sé mapa beag, le teorainn ama ghearr, i gcuimhne, ó sheoladh cliaint go ceann scríbe trasghlacadóra, le haghaidh staid sreafa agus inbhreathnaitheachta.
  • Inscálaitheacht chothrománach: Ritheann iliomad áscanna athsheachadáin go comhthreomhar taobh thiar de chothromóir ualaigh. Ní staid chrua WebRTC í an staid, mar sin bíonn caillteanas tráchta íosta mar thoradh ar atosuithe agus aisghabháil sreafa thapa.

Bearta éifeachtúlachta:

  • Is rogha soicéid Linux é SO_REUSEPORT a ligeann do roinnt oibrithe athsheachadta ar an meaisín céanna ceangal leis an UDP port céanna. Ansin déanann an eithne na paicéid atá ag teacht isteach a dháileadh idir na hoibrithe sin, rud a sheachnaíonn scrogall lúibe léimh aonair.
  • Ceanglaíonn runtime.LockOSThread gach goroutine a léann UDP le snáithe OS ar leith. I gcomhcheangal le SO_REUSEPORT, coimeádann sé sin paicéid ón sreabhadh céanna (IP:Port na foinse agus an chinn scríbe móide an prótacal) ar an gcroí LAP céanna, rud a fheabhsaíonn logántacht taisce agus a laghdaíonn athrú comhthéacs.
  • Coinníonn maoláin réamh-leithdháilte agus cóipeáil íosta an forchostas íseal a bhaineann le parsáil agus leithdháileadh chun bailiú truflais sa teanga Go a sheachaint.

Láimhseáil an cur i bhfeidhm seo ár dtrácht meán fíor-ama domhanda le lorg athsheachadáin measartha beag, mar sin choinníomar an dearadh níos simplí in ionad tabhairt faoi ród seachanta eithne.

Torthaí agus ceachtanna foghlamtha

Ligeann an ailtireacht seo dúinn meáin WebRTC a rith i Kubernetes gan na mílte port UDP a nochtadh. Tá sé sin tábhachtach mar gur fusa dromchla UDP níos lú agus seasta a dhaingniú agus cothromú ualaigh a dhéanamh air, agus ligeann sé don bhonneagar scálú gan raonta móra poirt phoiblí a chur in áirithe. Le tacaíocht bhonneagair níos fearr ó Kubernetes agus slándáil fheabhsaithe mar gheall ar dhromchla ionsaithe níos lú, caomhnaíonn an dearadh seo iompar caighdeánach WebRTC do chliaint freisin agus deimhníonn sé gurbh é dearadh gan SFU an réamhshocrú ceart dár n-ualach oibre. Tá an chuid is mó dár seisiúin pointe-go-pointe, íogair ó thaobh aga folaigh de, agus níos éasca le scálú nuair nach gá do sheirbhísí tátail iad féin a iompar mar phiaraí WebRTC.

Is é an ceacht níos leithne ná gurb í sraith ródaithe tanaí an áit is fearr le castacht a chur leis, ní i ngach seirbhís chúlra, agus ní in iompar saincheaptha cliaint. Thug ionchódú meiteashonraí ródaithe i réimse atá dúchasach don phrótacal ródú cinntitheach ar an gcéad phaicéad dúinn, lorg beag poiblí UDP, agus dóthain solúbthachta chun pointí iontrála a shuíomh gar d’úsáideoirí ar fud an domhain.

Bhí cúpla rogha thar a bheith tábhachtach:

  • Caomhnaigh séimeantaic an phrótacail ag an imeall. Úsáideann cliaint WebRTC caighdeánach fós, rud a choinníonn idir-inoibritheacht le brabhsálaithe agus le gléasanna soghluaiste slán.
  • Coinnigh staideanna crua seisiúin in aon áit amháin. Tá an trasghlacadóir freagrach as ICE, DTLS, SRTP, agus saolré an tseisiúin; ní dhéanann an t-athsheachadán ach paicéid a chur ar aghaidh.
  • Ródáil bunaithe ar an bhfaisnéis atá i láthair sa socrú cheana féin. Thug an ICE ufrag crúca ródaithe don chéad phaicéad dúinn gan spleáchas cuardaigh ar an bpríomhchosán a chur leis.
  • Optamaigh don chás coitianta sula dtéann tú i muinín seachbhóthar na heithne. Ba leor cur i bhfeidhm cúng i Go, le SO_REUSEPORT a úsáid go cúramach, snáitheanna a phionnáil, agus parsáil ar bheagán leithdháiltí, dár n-ualach oibre.

Ní oibríonn IS gutha fíor-ama ach nuair a dhéanann an bonneagar an aga moille do-airithe. Maidir linne, chiallaigh sé sin ár n-imscaradh WebRTC a athmhúnlú gan an méid a mbíonn cliaint ag súil leis ó WebRTC féin a athrú.