Mo te tauira whatunga i nga keemu mo te hunga timata

Mo te tauira whatunga i nga keemu mo te hunga timata
Mo nga wiki e rua kua pahure ake nei e mahi ana ahau i te miihini ipurangi mo taku keemu. I mua i tenei, kaore au i tino mohio mo te whatunga i roto i nga keemu, na reira i panui au i te maha o nga tuhinga me te maha o nga whakamatautau kia mohio ahau ki nga ariā katoa me te tuhi i taku ake miihini whatunga.

I roto i tenei aratohu, e hiahia ana ahau ki te whakapuaki ki a koe nga momo ariā me ako koe i mua i te tuhi i to ake miihini keemu, tae atu ki nga rauemi pai me nga tuhinga hei ako i a raatau.

I te nuinga o te waa, e rua nga momo hangahanga whatunga: hoa-ki-hoa me te kiritaki-tūmau. I roto i te hoahoanga hoa-ki-hoa (p2p), ka whakawhitihia nga raraunga i waenga i nga takirua o nga kaitakaro hono, i roto i te hoahoanga kiritaki-tūmau, ka whakawhitihia nga raraunga i waenga i nga kaitakaro me te tūmau.

Ahakoa kei te whakamahia tonu te hoahoanga hoa-ki-hoa i roto i etahi keemu, ko te kiritaki-tūmau te paerewa: he maamaa ake te whakatinana, me iti ake te whanui o te hongere, he maamaa ake te tiaki i te tinihanga. Na reira, i roto i tenei akoranga ka aro atu tatou ki te hoahoanga a te kiritaki-tūmau.

Ina koa, e tino aro nui ana matou ki nga kaitoro mana: i roto i enei punaha, he tika tonu te tūmau. Hei tauira, ki te whakaaro tetahi kaitakaro kei te taunga (10, 5), a ka kii te kaitoro ki a ia kei te (5, 3), me whakakapi e te kaihoko tona tuunga ki te korero a te kaimau, kaua ko te kino. huri noa. Mā te whakamahi i ngā tūmau whai mana he māmā ake te tautuhi i te hunga tinihanga.

E toru nga waahanga matua o nga punaha petipeti whatunga:

  • Kawa kawe: pehea te whakawhiti raraunga i waenga i nga kaihoko me te tūmau.
  • Kawa tono: he aha te tuku mai i nga kaihoko ki te tūmau, mai i te tūmau ki nga kiritaki me te aha te whakatakotoranga.
  • Te arorau tono: me pehea te whakamahi i nga raraunga whakawhiti ki te whakahou i te ahua o nga kiritaki me te tūmau.

He mea nui kia mohio ki te mahi o ia wahanga me nga wero e pa ana ki a raatau.

Kawa kawe

Ko te mahi tuatahi ko te kowhiri i tetahi kawa mo te kawe raraunga i waenga i te tūmau me nga kiritaki. E rua nga kawa Ipurangi mo tenei: TCP и UDP. Engari ka taea e koe te hanga i taau ake kawa kawe i runga i tetahi o enei, ka whakamahi ranei i tetahi whare pukapuka e whakamahi ana.

Whakatauritenga o TCP me te UDP

Ko te TCP me te UDP kei runga IP. Ka taea e te IP te tuku i tetahi putea mai i tetahi puna ki tetahi kaiwhiwhi, engari kaore e kii ka tae wawe te paakete i tukuna ki te kaiwhiwhi, ka tae atu ki a ia i te iti rawa kia kotahi, a ka tae tika mai te raupapa o nga kete. ota. I tua atu, he iti noa te nui o nga raraunga ka taea e te putea, ka hoatu e te uara TANGATA.

He papa angiangi noa te UDP ki runga ake o te IP. No reira, he rite tonu nga here. Engari, he maha nga ahuatanga o te TCP. E whakarato ana i te hononga pono, raupapa i waenga i nga pona e rua me te tirotiro hapa. No reira, he tino watea a TCP ka whakamahia i roto i te maha atu o nga tikanga, hei tauira. HTTP, FTP и SMTP. Engari ko enei ahuatanga katoa he utu: whakaroa.

Kia mohio ai tatou he aha enei mahi ka taea te noho mokemoke, me maarama me pehea te mahi a TCP. Ina tukuna e te node tuku he paatete ki tetahi node whiwhi, ka tumanako ia kia whiwhi mihi (ACK). Mena i muri i tetahi wa kaore e tae mai (na te mea kua ngaro te kete, te whakaaetanga ranei, na etahi atu take ranei), ka tukuna ano e ia te kete. I tua atu, ka whakamanahia e TCP ka tae mai nga putea i roto i te raupapa tika, na kia tae mai ra ano te putea ngaro, kaore e taea te tukatuka i era atu putea, ahakoa kua riro mai i te kaihautu.

Engari ka taea e koe te whakaaro, he mea tino nui te torohūtanga i roto i nga keemu maha, ina koa i nga momo mahi-kii penei i te FPS. Koinei te take he maha nga keemu e whakamahi ana i te UDP me o raatau ake kawa.

He pai ake te kawa o te UDP taketake i te TCP mo nga take maha. Hei tauira, ka taea e ia te tohu i etahi o nga paakete he pono, ko etahi atu he kore pono. No reira, karekau he whakaaro mena ka tae atu te paakete kore pono ki te kaiwhiwhi. Ka taea ranei e ia te tukatuka i nga awa raraunga maha kia kore ai te paatete ngaro i roto i te awa kotahi e whakaroa i te toenga o nga awa. Hei tauira, tera pea he miro mo te whakauru kaitoro me tetahi atu miro mo nga karere korerorero. Mena ka ngaro tetahi karere korerorero kaore i te ohorere, kaore e whakaroa te whakaurunga e akiaki ana. Ka taea ranei e tetahi kawa rangatira te whakatinana i te ponotanga rereke atu i te TCP kia pai ake ai i roto i te taiao keemu ataata.

Na, ki te nui te ngotea o TCP, ka hangahia e maatau ake kawa kawe i runga i te UDP?

He uaua ake. Ahakoa he iti rawa te TCP mo nga punaha whatunga petipeti, ka pai te mahi mo to keemu motuhake me te penapena i to waa nui. Hei tauira, karekau pea te torohūtanga he take mo te keemu huri-huri, he keemu ranei ka taea anake te purei i runga i nga whatunga LAN, he iti rawa atu te roa me te ngaro o te paatete i te Ipurangi.

He maha nga keemu angitu, tae atu ki te World of Warcraft, Minecraft me Terraria, ka whakamahi i te TCP. Heoi ano, ko te nuinga o nga FPS e whakamahi ana i o raatau ake kawa e pa ana ki te UDP, no reira ka korerohia e matou i raro nei.

Mena ka whakatau koe ki te whakamahi i te TCP, me mohio kua monokia Ko te algorithm a Nagle, na te mea ka parea e ia nga paatete i mua i te tukunga, ko te tikanga ka piki ake te roanga.

Hei ako atu mo nga rereketanga i waenga i te UDP me te TCP i roto i te horopaki o nga keemu maha, ka taea e koe te panui i te tuhinga a Glenn Fiedler UDP vs. TCP.

Kawa ake

Na kei te pirangi koe ki te hanga i to ake tikanga kawe waka, engari kaore koe e mohio ki hea ka timata? Kei te waimarie koe na te mea kua tuhia e Glenn Fiedler nga tuhinga whakamiharo e rua mo tenei. Ka kitea e koe he maha o nga whakaaro mohio i roto ia ratou.

Ko te tuhinga tuatahi Whakawhanaungatanga mo nga Kaihōtaka Kēmu 2008, ngawari ake i te tuarua, Hangaia he Kawa Whatunga Kēmu 2016. Ka tūtohu ahau kia timata koe me te mea tawhito.

Kia mahara ko Glenn Fiedler te kaikawe nui ki te whakamahi i te kawa ritenga i runga i te UDP. A, i muri i te panui i ana tuhinga, ka mau pea koe i tana whakaaro he nui nga hapa a TCP i roto i nga keemu ataata, a ka hiahia koe ki te whakatinana i to ake tikanga.

Engari ki te mea he hou koe ki te mahi whatunga, me pai koe ki te whakamahi i te TCP, i te whare pukapuka ranei. Kia pai ai te whakatinana i a koe ake kawa kawe, me ako koe i mua.

Whare pukapuka whatunga

Mena ka hiahia koe ki tetahi mea pai ake i te TCP, engari kaore koe e hiahia ki te haere i roto i te raruraru o te whakatinana i to ake tikanga me te haere ki nga korero maha, ka taea e koe te whakamahi i te whare pukapuka whatunga. He maha o ratou:

Kare ano au i whakamatau i a raatau katoa, engari he pai ki ahau te ENet na te mea he ngawari ki te whakamahi me te pono. I tua atu, he maamaa nga tuhinga me tetahi akoranga mo te hunga timata.

Kawa Waka: Whakamutunga

Hei whakarapopototanga: e rua nga tikanga kawe waka: TCP me te UDP. He maha nga waahanga whaihua a TCP: te pono, te tiaki i nga raupapa paatete, te rapu hapa. Karekau enei mea katoa i te UDP, engari ko te TCP na tona ahuatanga kua piki ake te roanga, kaore e whakaaetia mo etahi keemu. Arā, ki te whakarite kia iti te torohūtanga, ka taea e koe te hanga i to ake kawa i runga i te UDP, te whakamahi ranei i te whare pukapuka e whakatinana ana i te kawa kawe i runga i te UDP, ka urutau mo nga keemu ataata maha.

Ko te kowhiringa i waenga i te TCP, te UDP me te whare pukapuka ka whakawhirinaki ki etahi ahuatanga. Tuatahi, mai i nga hiahia o te keemu: me iti te torohūtanga? Tuarua, mai i nga whakaritenga kawa tono: me whai kawa pono? Ka kite tatou i te waahanga e whai ake nei, ka taea te hanga i tetahi kawa tono e tika ana he kawa kore pono. Hei whakamutunga, me whai whakaaro ano koe ki nga wheako o te kaiwhakawhanake miihini whatunga.

E rua aku tohutohu:

  • Wewetehia te kawa kawe mai i te toenga o te tono kia ngawari te whakakapi me te kore e tuhi ano i nga waehere katoa.
  • Kaua e tino arotau. Mēnā ehara koe i te mātanga whatunga, ā, kāore koe i te tino mōhio mēnā kei te hiahia koe ki tētahi kawa kawe waka e hāngai ana ki te UDP, ka taea e koe te tiimata me te TCP, he whare pukapuka ranei e whai pono ana, katahi ka whakamatau me te ine mahi. Mēnā ka pupū ake ngā raru, ā, kei te māia koe ko te tikanga kawe waka te take, kua tae ki te wa ki te hanga i to ake tikanga kawe.

I te mutunga o tenei waahanga, ka tūtohu ahau kia panui koe He Kupu Whakataki ki te Papatonotanga Keemu Multiplayer na Brian Hook, he maha nga kaupapa e korerohia ana i konei.

Kawa tono

Inaianei ka taea e taatau te whakawhiti raraunga i waenga i nga kaihoko me te tūmau, me whakatau he aha nga raraunga hei whakawhiti me te aha te whakatakotoranga.

Ko te kaupapa matarohia ka tukuna e nga kiritaki he whakaurunga, he mahi ranei ki te tūmau, ka tukuna e te tūmau te ahua o te kēmu o nāianei ki nga kiritaki.

Ka tukuna e te kaimau te ahua katoa, engari he whenua kua tātarihia me nga hinonga e tata ana ki te kaitakaro. E toru nga take ka mahia e ia tenei. Tuatahi, he nui rawa te ahua ka taea te tuku i te auau teitei. Tuarua, ko te nuinga o nga kaihoko e aro nui ana ki nga raraunga ataata me nga ororongo, na te mea ko te nuinga o nga arorau o te keemu kei te whaihanga i runga i te kaimau takaro. Tuatoru, i etahi keemu karekau te kaitakaro kia mohio ki etahi raraunga, hei tauira, te tuunga o te hoariri ki tera taha o te mapi, ki te kore ka hongi ia i nga paakete me te mohio ki hea ka neke ki te patu i a ia.

Whakaraupapa

Ko te mahi tuatahi ko te huri i nga raraunga e hiahia ana matou ki te tuku (whakauru, ahua keemu ranei) ki te whakatakotoranga e tika ana mo te tuku. Ka kiia tenei tukanga raupapatanga.

Ko te whakaaro ka puta wawe ki te hinengaro ko te whakamahi i te whakatakotoranga ka taea e te tangata te panui, penei i te JSON, i te XML ranei. Engari ka kore rawa e whai hua ka pau te nuinga o te hongere.

E taunaki ana kia whakamahia te whakatakotoranga rua, he mea tino pai ake. Arā, he ruarua noa ngā paita kei roto i ngā pākete. He raruraru ki te whakaaro i konei raupapa paita, he rereke pea i runga i nga rorohiko rereke.

Hei whakareri raraunga, ka taea e koe te whakamahi i te whare pukapuka, hei tauira:

Me mohio kei te hanga e te whare pukapuka nga purongo kawe me te whakaaro mo te endianness.

Ko tetahi atu otinga ko te whakatinana i a koe ano; ehara i te mea tino uaua, ina koa ka whakamahi koe i te huarahi-raraunga ki to waehere. I tua atu, ka taea e koe te mahi i nga arotautanga kaore e taea i nga wa katoa ka whakamahi i te whare pukapuka.

I tuhia e Glenn Fiedler nga tuhinga e rua mo te raupapatanga: Panui Panui me te Tuhituhi и Rautaki Whakaraupapa.

Kōpeketanga

Ko te nui o nga raraunga e whakawhiti ana i waenga i nga kaihoko me te tūmau ka whakawhäitihia e te bandwidth o te hongere. Ko te taapiri raraunga ka taea e koe te whakawhiti atu i nga raraunga i ia whakaahua, te whakanui ake i te auau whakahou, te whakaiti noa ranei i nga whakaritenga hongere.

Takai moka

Ko te tikanga tuatahi ko te tarapi moka. Kei roto ko te whakamahi i te maha o nga paraka e tika ana hei whakaahua i te uara e hiahiatia ana. Hei tauira, mena kei a koe he enum ka 16 nga uara rereke, na, hei utu mo te paita katoa (8 moka), ka taea e koe te whakamahi 4 moka noa.

Ka whakamarama a Glenn Fiedler me pehea te whakatinana i tenei i te waahanga tuarua o te tuhinga Panui Panui me te Tuhituhi.

He pai rawa te mahi o te tarapi moka me te tauira, ka noho hei kaupapa mo te waahanga e whai ake nei.

Tauiraira

Tauiraira he tikanga whakamomori ngaro e whakamahi ana i te waahanga iti o nga uara ka taea hei whakawaehere i tetahi uara. Ko te huarahi ngawari ki te whakatinana i te wehewehenga ko te whakaawhiwhi i nga tau ira maanu.

Ka whakaatu a Glenn Fiedler (ano!) me pehea te whakamahi tauira ki tana tuhinga Kōpeketanga Whakaahua.

Kopeketanga algorithms

Ko te tikanga e whai ake nei ko nga algorithms compression lossless.

Anei, ki taku whakaaro, ko nga algorithms tino pai e toru me mohio koe:

  • Huffman waehere me te waehere i mua i te rorohiko, he tino tere, he hua pai. I whakamahia hei kokopi i nga paatete i roto i te miihini whatunga Quake3.
  • zlib he hātepe hātepe kōpeketanga kaupapa-whānui e kore rawa e whakanui i te nui o te raraunga. Me pehea koe e kite ai konei, kua whakamahia i roto i nga momo tono. He nui pea mo te whakahou i nga ahuatanga. Engari ka whai hua mena ka hiahia koe ki te tuku rawa, tuhinga roa, whenua whenua ranei ki nga kaihoko mai i te tūmau.
  • Te kape i nga roa oma - Ko tenei pea te algorithm kōpeketanga māmā, engari he tino whai hua mo etahi momo raraunga, a ka taea te whakamahi hei taahiraa i mua i te tukatuka i mua i te zlib. He pai rawa atu mo te kopiri i nga whenua i tito mai i nga taera, i nga voxels ranei e tukuruatia ai nga huānga tata.

Delta kōpeketanga

Ko te tikanga kōpeketanga whakamutunga ko te kōpeketanga delta. Kei roto i te meka ko nga rereketanga anake i waenga i te ahuatanga o te keemu o naianei me te ahua whakamutunga i whakawhiwhia e te kaihoko ka tukuna.

I whakamahia tuatahi ki te miihini whatunga Quake3. Anei nga tuhinga e rua e whakamarama ana me pehea te whakamahi:

I whakamahia ano e Glenn Fiedler i te waahanga tuarua o tana tuhinga Kōpeketanga Whakaahua.

Whakamunatanga

I tua atu, ka hiahia pea koe ki te whakamuna i te whakawhiti korero i waenga i nga kiritaki me te tūmau. He maha nga take mo tenei:

  • tūmataiti/matatapu: ka taea anake e te kaiwhiwhi te panui nga karere, karekau he tangata e hongi ana i te whatunga ka taea te panui.
  • motuhēhēnga: ko te tangata e hiahia ana ki te mahi i te tūranga o te kaitākaro me mōhio ki tana kī.
  • Te aukati tinihanga: He uaua ake mo nga kaitakaro kino ki te hanga i a raatau ake kete tinihanga, me whakaputa ano e ratou te kaupapa whakamunatanga me te kimi i te kii (ka huri ki ia hononga).

Ka tino taunaki ahau kia whakamahia he whare pukapuka mo tenei. Ka whakaaro ahau ki te whakamahi libsodium, na te mea he tino ngawari, he pai hoki nga akoranga. Ko te mea tino pai ko te akoranga whakawhiti matua, ka taea e koe te whakaputa i nga taviri hou me ia hononga hou.

Kawa Tono: Whakamutunga

Ka mutu tenei kawa tono. E whakapono ana ahau he tino kowhiria te taapiri me te whakatau ki te whakamahi ka whakawhirinaki anake ki te keemu me te bandwidth e hiahiatia ana. Ko te whakamunatanga, ki taku whakaaro, he whakahau, engari i roto i te tauira tuatahi ka taea e koe me te kore.

Te arorau tono

Ka taea e matou te whakahou i te ahua i roto i te kiritaki, engari ka pa mai pea ki nga take roa. Ko te kaitakaro, i muri i te whakaoti i te whakaurunga, me tatari mo te ahua o te keemu ki te whakahou mai i te tūmau kia kite he aha te paanga o te ao.

I tua atu, i waenga i nga whakahoutanga a te kawanatanga e rua, he tino tuuturu te ao. Mena he iti te reeti whakahou a te kawanatanga, ka tino kaha nga nekehanga.

He maha nga tikanga hei whakaiti i te paanga o tenei raru, a ka korerohia e au i te waahanga e whai ake nei.

Nga Tikanga Whakamarie Latency

Ko nga tikanga katoa e whakaahuatia ana i tenei waahanga ka korerohia i roto i te raupapa Tere-Wire Multiplayer Kapariera Gambetta. Ka tino tūtohu ahau ki te panui i tenei raupapa tuhinga pai. Kei roto hoki he demo tauwhitiwhiti e taea ai e koe te kite me pehea te mahi o enei tikanga.

Ko te tikanga tuatahi ko te tono tika i te hua whakauru me te kore e tatari mo te whakautu mai i te tūmau. Ka kiia matapae taha kiritaki. Heoi, ka whiwhi te kiritaki i te whakahou mai i te tūmau, me manatoko i te tika tana matapae. Mena kaore tenei, katahi ka tika kia whakarereketia e ia tana ahua kia rite ki nga mea i whakawhiwhia mai e ia mai i te kaimau, no te mea he mana whakahaere te kaimau. I whakamahia tuatahitia tenei tikanga i te Quake. Ka taea e koe te panui atu mo taua mea i roto i te tuhinga Quake Engine arotake waehere Fabien Sanglars [whakamaori i runga i a Habré].

Ko te huinga tuarua o nga tikanga e whakamahia ana ki te maeneene i nga nekehanga o etahi atu hinonga i waenga i nga whakahoutanga e rua o te kawanatanga. E rua nga huarahi hei whakaoti i tenei rapanga: ko te wawaotanga me te taapiri. I roto i te take o te wawaotanga, ka tangohia nga kawanatanga whakamutunga e rua ka whakaatuhia te whakawhiti mai i tetahi ki tetahi. Ko tana kino ko te mea he iti te roa o te whakaroa na te mea ka kite tonu te kiritaki i nga mea i tupu i mua. Ko te Extrapolation e pa ana ki te matapae kei hea nga hinonga inaianei i runga i te ahua whakamutunga i whakawhiwhia e te kiritaki. Ko tana kino ko te mea ka huri te hinonga i te ahunga o te neke, katahi ka puta he hapa nui i waenga i te matapae me te tuunga tuturu.

Ko te tikanga hou, tino matatau e whai hua ana ki te FPS anake utu utu. I te wa e whakamahi ana i nga utu mo te wa roa, ka whai whakaaro te kaimau ki nga whakaroa o te kaihoko ina pupuhi ana ia ki te whaainga. Hei tauira, ki te mahia e tetahi kaitakaro he whakaahua mahunga ki runga i tana mata, engari ko te mea pono ko tana whaainga i te waahi rereke na te whakaroa, kare he tika ki te whakakahore i te mana o te kaitakaro ki te patu i te mea kua roa. Na reira, ka hoki ano te kaitoro ki te wa i puhipuhi te kaitakaro ki te whakataurite i nga mea i kitea e te kaitakaro i runga i tana mata me te tirotiro mo te tukinga i waenga i tana pere me te whaainga.

I tuhia e Glenn Fiedler (i nga wa katoa!) he tuhinga i te tau 2004 Ahupūngao Whatunga (2004), i whakatakotohia e ia te turanga mo te tukutahi i nga whaihanga ahupūngao i waenga i te tūmau me te kiritaki. I te tau 2014 i tuhia e ia he raupapa tuhinga hou Ahupūngao Whatunga, i whakaahua i etahi atu tikanga mo te tukutahi i nga whaihanga ahupūngao.

E rua ano nga tuhinga mo te wiki Valve, Pūtake Whakawhanaunga Multiplayer и Nga Tikanga Kapeneheihana i te Kiritaki/Tumau I roto i te Keemu Hoahoa Kawa me te Arotautanga e whakaaro ana he utu mo nga whakaroa.

Te aukati i te tinihanga

E rua nga tikanga matua mo te aukati i te tinihanga.

Tuatahi: he uaua ake mo te hunga tinihanga ki te tuku putea kino. Ka rite ki te korero i runga ake nei, he huarahi pai ki te whakatinana i tenei ko te whakamunatanga.

Tuarua: me whiwhi noa te tūmau mana i ngā whakahau/whakauru/mahi. Me kore e taea e te kiritaki te huri i te ahua o te tūmau i tua atu i te tuku whakauru. Na, ia wa ka whakawhiwhia e te tūmau te whakaurunga, me tirotirohia mena he tika i mua i te whakamahi.

Te arorau tono: whakatau

E taunaki ana ahau kia whakatinanahia e koe he huarahi ki te whakataurite i nga reiti teitei me nga reiti whakahou iti kia taea ai e koe te whakamatautau i te whanonga o to keemu i roto i nga ahuatanga kino, ahakoa kei te whakahaere te kiritaki me te tūmau i runga i te rorohiko kotahi. Ma tenei ka tino ngawari te whakatinanatanga o nga tikanga whakaene whakaroa.

Ētahi atu Rauemi Awhina

Mena kei te pirangi koe ki te tuhura i etahi atu rauemi mo nga tauira whatunga, ka kitea e koe i konei:

Source: will.com

Tāpiri i te kōrero