Dupleks

Dupleks on telekommunikatsiooni võrgus kahe osapoole vahel loodav suhtlussüsteem, milles need kaks osapoolt või seadet saavad omavahel suhelda mõlemas suunas (kui osapooli on rohkem kui kaks, siis kutsutakse suhtlussüsteemi multipleksiks). Duplekssüsteeme kasutatakse paljudes suhtlusvõrkudes selleks, et saavutada kahesuunalist suhtlust osapoolte vahel, või et saavutada tagasiside tee võrgus oleva seadme kaugelt jälgimiseks või seadistamiseks. Süsteemid, mis ei vaja kahepoolset suhtlust, kasutavad selle asemel simplekssidesüsteemi. Sellisteks süsteemideks on näiteks audio/video edastussüsteemid telejaamades, kus ühel seadmel on ainult saatja roll ja teisel seadmel ainult vastuvõtja roll. Samuti kasutatakse simpleksi näiteks rakettide juhtimiseks oma sihtmärgini, kus saatja ainsaks ülesandeks on raketile saata info, kuhu minna, ja raketi peal oleva vastuvõtja ainsaks ülesandeks on saadetud info vastu võtta. Veel kasutatakse seda süsteemi näiteks Maa tehiskaaslastel, mis ei suuda ühtegi signaali vastu võtta, kuid sellegipoolest saadavad Maale infot. Sellisteks Maa tehiskaaslasteks olid näiteks Sputnik 1 ja Pioneer 6. Mõlemad tehiskaaslased suudavad infot ainult välja saata. Üks simpleksi kasutusviisidest sisaldab kahte osapoolt, kes saadavad eri suhtluskanalitel infot simplekspõhimõttel. Nii saavad seadmed siiski mõlemas suunas suhelda ja sellest tulenevalt nimetatakse seda meetodit tihtipeale täisdupleksiks. Teatud tüüpi satelliitinternetiühendused, mille allalaadimine toimub satelliitside kaudu, aga üleslaadimine üle sissehelistamisühenduse kaudu, töötavad kasutaja vaates nii saates kui vastu võttes. Reaalselt töötavad mõlemad ühendusteed simpleksi põhimõttel. Poolduplekssüsteem võimaldab suhtlust kahes suunas, kuid ainult ühes suunas korraga. Kahes suunas samal ajal suhtlust toimuda ei saa. Tavaliselt, kui üks osapool hakkab signaali vastu võtma, peab ta ootama, kuni teine osapool lõpetab signaali saatmise, enne kui ta ise saatma saab hakata. Seda terminit kasutatakse üldjuhul küll kahe seadme omavahelise ühenduses olemise meetodi kirjeldamiseks, kuid võib ka kasutada rohkemate seadmete puhul juhul kui nad kordamööda infot saadavad. Näiteks Etherneti võrgus saab luua süsteemi, kus kõik seadmed saavad korraga vastu võtta, aga ainult üks saab korraga saata. Poolduplekssüsteemid on näiteks raadiosaatjate tüüpi kahepoolsed süsteemid. Kuna nii saatmiseks kui ka vastuvõtmiseks on kasutusel üks ja seesama sagedus. Peab üks osapool ütlema varem kokkulepitud märguande, et teine osapool aru saaks, et esimene osapool on lõpetanud saatmise ja nüüd võib tema saatma hakata. Heaks analoogiks pooldupleksi kohta võib tuua üherealise tänava, mille mõlemas otsas on liiklusreguleerijad. Liiklus saab toimida küll mõlemas suunas, aga vastavalt reguleerijate märguannetele ainult ühes suunas korraga. Ennast automaatselt isejooksutavates suhtlussüsteemides nagu kahepoolsed andmeedastuskanalid saab pooldupleksi korral riistvara poolt saatmise/vastuvõtmise lülitamist ja ajajaotust väga täpselt kontrollida ning sellega ajakadu väikseks muuta. Näiteks üks jaam saab kanali ühes otsas saata infot ühe sekundi, misjärel saab teine jaam saata infot ühe sekundi ja tsükkel jääbki ennast nii kordama. Täisdupleks (nimetatud ka topeltdupleksiks) on süsteem, mis lubab suhtlust mõlemas suunas ja erinevalt pooldupleksile ka samal ajal. Telefonivõrk on ehitatud täisduplekssüsteemina, mõlemad osapooled saavad teineteisega rääkida ja kuulata samal ajal. Heaks analoogiks täisdupleksi kohta võib tuua kaherajalise tee, kus kumbki rada on eraldi suuna jaoks. Täisdupleksiks võib nimetada ka simplekskanalite paari, mis sünkroonis omavahel andmeid saadavad. Täisdupleks võib kasutada ka ainult üht kanalit, mis on spetsiaalselt tehtud kahesuunaliseks üheajaliseks suhtluseks. Täisdupleksmeetodil saab omavahel ühendada ainult kaks seadet. Sellest tulenevalt on läbi mõne keskseadme vaja luua mitu täisdupleksühendusteed, kui on vaja mitut seadet ühendada (näiteks kohtvõrgu kommutaator ja rohkem kui kaks arvutist). Täisdupleksi tugev eelis pooldupleksi ees on see, et selle meetodi puhul kahekordistatakse teoreetiline ribalaius. Kui pooldupleksi puhul on ribalaius näiteks 1 Mbit/s, siis üleslaadimine ja allalaadimine peavad seda jagama, aga täisdupleksi puhul saavad mõlemad pooled kasutada 1 Mbit/s, mis teeb kokku ribalaiuseks 2 Mbit/s. Tänapäeval on palju võrgus töötavaid seadmeid, mis ei suudagi täisdupleksi võimaluse puudumisel korralikult töötada. Ajajaotusega dupleksimine on meetod, kuidas eraldada vastuvõetavaid ja saadetavaid signaale. Selle meetodi tulemuseks on täisdupleksi emuleerimine üle pooldupleksi lingi. Ajajaotusega dupleksimisel on suur eelis kohtades, kus allalaadimine ja üleslaadimine ei ole sümmeetrilised. Põhimõte on selles, et kui suureneb üleslaadimise vajadus, siis antakse üleslaadimisele rohkem aega, ja kui suureneb allalaadimise vajadus, siis antakse allalaadimisele rohkem aega. Mõned näited ajajaotusega dupleksimisest: Wi-Fi-võrgud DECT-tüüpi lauatelefonid kasutavad üldjuhul ajajaotusega dupleksimist aluse ja toru ühenduses hoidmiseks. Bluetooth Kahepoolse sidega raadiosaatja tüüpi seadmed võivad töötada täisdupleksmeetodil. Saatmiseks kasutatakse ühte sagedust ja vastuvõtmiseks teist sagedust. Sellist täisdupleksi variatsiooni nimetatakse sagedusjaotusega dupleksiks. Sagedusjaotusega dupleksiga süsteemide levialasid saab ka laiendada kaugematele vahemaadele kasutades edasikandvaid vahejaamu, sest info, mida kantakse ühel kindlal sagedusel, liigub ka alati samas suunas. Üleslaadimise ja allalaadimise alamsagedused on eraldatud sel juhul niinimetatud sagedusnihkega. Sagedusjaotusega dupleksimine on tõhus sümmeetrilise liikluse korral. Sellel on eelis ajajaotusdupleksimise ees just ribalaiuse kokkuhoiu mõttes. Kui ajajaotusdupleksi puhul kulub mingi osa ribalaiusest ümberlülituse hetkele, siis sagedusjaotusega dupleksimisel seda kadu ei ole. Veel üks eelis, mis sagedusjaotusega dupleksimisel on ajajaotusdupleksimise ees, on see, et see teeb raadio teel suhtluse üles ehitamise lihtsamaks, kuna baasjaamad ei "kuule" üksteist (kuna saatmine ja vastuvõtmine käib eraldi sagedustel) ja seetõttu nad ka ei sega üksteist. Mõned näited kohtadest kus kasutatakse sagedusjaotusega dupleksimist: ADSL ja VDSL UMTS/W-CDMA WiMAX Dupleksimise mittevastavus on olukord Etherneti võrgus, kus kaks seadet on omavahel ühendatud, ühel on aga suhtlusrežiimiks seadistatud täisdupleks ja teisel pooldupleks. Üldjuhul võrk toimib olenemata sellisest seadistusest, aga toimimiskiirus on mitu korda aeglasem, kui ta oleks normaalse seadistuse korral. Dupleksimise mittevastavus võib tekkida olukorrast, kus ühendatud seadmed on mingil põhjusel käsitsi seadistatud, üks täisdupleksirežiimi ja teine pooldupleksirežiimi. Mittevastavus võib aga tekkida ka sellest, kui võrku ühendada seade, mis teeb automaatkätlust. Mõnes Etherneti võrgus on automaatkätlus välja lülitatud kõikides pesades, mis muidu saaks seda teha, ja paika on pandud rangelt, et kasutama peab 100 Mbit/s täisdupleksi kokkulepet. Nii tahetakse saavutada võrgu maksimaalne võimsus. Eriti palju tehti seda võrguadministraatorite poolt just siis, kui automaatkäsitlust avalikkusele tutvustati. Võrguadministraatorid üritasid automaatkätlust vältida, kuna algul oli sellega probleeme. Selline moodus töötas väga hästi, kui mõlemad ühenduses olevad seadmed olid rangelt seadistatud 100 Mbit/s täisdupleksiks. Selliste seadmete osakaal, millel on automaatkätlusfunktsioon, on aga aastast aastasse kasvanud ja sellega seoses on suurenenud ka tõenäosus, et keegi teeb seadistusel vea ja jätab mõne pordi seadistamata rangelt täisdupleksiks (100 Mbit/s). Kui nii juhtub, siis seade tuleb võrku ja näeb, et ükski teine seade temaga automaatkätlust teha ei taha ning sel juhul on seadme ainus võimalus igaks juhuks peale panna endale pooldupleksistandard. Selle kõige tulemusena tekibki dupleksimise mittevastavus. Ühendus töötab tavaliselt hoolimata dupleksimise mittevastavusest. Üksikud paketid saadetakse ja võetakse vastu ilma probleemideta. Sellest tulenevalt ei saa üht seadet teisest pingides tavaliselt dupleksimise mittevastavusele jälile. Sessioon, kus saadetakse andmeid väga väikeste osadena, suudab samuti normaalselt suhelda. Nii, kui tuleb järsku suurem andmevoog ja hakatakse suuremate osadena andmeid saatma, aeglustub ühenduse kiirus silmnähtavalt. Probleemid avalduvad sellepärast, et on hetki kui mõlemad seadmed üritavad infot vastu võtta, aga ei ole kedagi, kes midagi saadaks. Sellistes tingimustes täisduplekspool saadab andmeid samal ajal kui võtab teisi andmeid vastu (nii nagu täisdupleks peabki tegema). Poolduplekspool aga ei suuda vastu võtta sissetulevat infot samal ajal, kui ta midagi saadab – pooldupleksosapoole jaoks tundub see kõik nagu oleks toiminud võrgus andmete kokkupõrge. Kuna pooldupleksosapool on enda arust kokkupõrke tuvastanud, siis ta sulgeb kogu ühenduse mõneks ajaks ja siis proovib uuesti. Kokkuvõttes need paketid, mille on saatnud täisdupleksosapool, lähevad täiesti kaotsi ja need paketid, mille saadab pooldupleksosapool, hilinevad või lähevad samuti kaotsi. Kaduma läinud pakettide tõttu hakkab TCP-protokoll teostama vigade parandust, kuid ka see ebaõnnestub, kuna iga järgneva tsükli paketid kaovad täpselt sama moodi ära nagu eelmise omad. Lõpuks saab TCP saatmiste aken täis ja TCP-protokoll keeldub enne rohkem infot saatmast, kui eelmise info kohale jõudmise kohta teated tulevad. Selline olukord omakorda seiskab kogu ülejäänud liikluse tehes ruumi ainult nendele pakettidele, mis teatavad, et eelmine info on kohale jõudnud. Lõpuks, kui vastavad paketid kohale jõuavad, teeb kogu TCP-liikluse süsteem endale restardi, mis põhjustab ka kaduma läinud infot. Lõpptulemuseks on ühendus, mis töötab väga halvasti dupleksimise mittevastavuse tõttu. Dupleksimise mittevastavuse sümptomiteks on ühendused, mis töötavad normaalselt pingides, aga hanguvad väga kergelt andmete voo mahu tõusmisel. Suure tõenäosusega tekib selline asümmeetrilisus, et liiklus ühes suunas liigub palju paremini kui teises suunas. Dupleksimise mittevastavust saab parandada, kas lubades automaatkätlemise mõlemas seadmes või pannes rangelt paika ühesugused sätted mõlemas seadmes. Kui pole muud võimalust, kui jätta ühes seadmes sisse lülitatuks automaatkätlus ja teises seadmes fikseeritud seadistus, siis oleks mõistlik kasutada fikseeritud seadistusega seadmes pooldupleksit. Tänapäevastel kohtvõrgu seadmetel on kõigil ka automaatkätlemise funktsioon ning vaikimisi on see ka sisse lülitatud. Varem ette tulnud automaatkätlemisprobleemid on tänapäevastes seadmetes juba lahendatud. Nii et parim viis dupleksimise mittevastavust vältida on asendada kõik seadmed sellistega, mis suudavad automaatkätelda. Tanenbaum, Andrew S. (2003). Computer Networks. Prentice Hall. ISBN 0-13-038488-7. The TCP/IP Guide – Simplex, Full-Duplex and Half-Duplex Operation Switch Port Duplex Mismatch Advanced Ethernet Auto negotiation – US Patent 6580697