Кіріспе
UDP негізіндегі деректерді беру протоколы (UDT) – жоғары жылдамдықты кең аймақтық желілер арқылы үлкен көлемді деректер жиынтықтарын беруге арналған жоғары өнімді деректерді беру протоколы. Мұндай жағдайлар көбінесе кең таралған TCP протоколы үшін тиімсіз болады. Протоколдың бастапқы нұсқалары өте жоғары жылдамдықты желілерде (1 Гбит/с, 10 Гбит/с және т.б.) әзірленді және сынақтан өтті; алайда, протоколдың соңғы нұсқалары қарапайым интернетті де қолдау үшін жаңартылды. Мысалы, протокол енді кездесу арқылы қосылыс орнатуды қолдайды, бұл UDP арқылы NAT есіктерін (firewall) өткенде пайдалы мүмкіндік. UDT-нің ашық кодты (open source) нұсқасы SourceForge-де қолжетімді. Бұл жоғары жылдамдықты деректерді беруді қолдау үшін ең танымал шешімдердің бірі және көптеген ғылыми-зерттеу жобалары мен коммерциялық өнімдердің құрамында пайдаланылады.
Өмірбаян
UDT Юнхонг Гу Чикагодағы Иллинойс университетінің Ұлттық деректерді өндіру орталығында (NCDM) доктор Роберт Гроссманның зертханасында докторлық диссертациясын қорғаған кезінде әзірлеген. Доктор Гу бітіргеннен кейін де протоколды жетілдіріп, күзеп келеді. UDT жобасы 2001 жылы арзан оптикалық желілер кең таралғанда және жоғары жылдамдықты кең аймақтық желілерде TCP тиімділігінің мәселелеріне назар аударғанда басталды. UDT-ның алғашқы нұсқасы, сондай-ақ SABUL (Simple Available Bandwidth Utility Library) деп белгілі, жеке желілер арқылы ғылыми деректерді тасымалдау үшін жаппай деректерді беруді қолдау мақсатында жасалды. SABUL деректерді жіберу үшін UDP-ны, ал басқару хабарламалары үшін жеке TCP қосылымын пайдаланды. 2003 жылдың қазан айында NCDM АҚШ-тың Чикаго қаласынан Нидерландының Амстердам қаласына 6,8 гигабит/секундық жылдамдықпен деректерді жеткізді. 30 минуттық тест барысында шамамен 1,4 терабайт дерек жіберілді. Кейіннен SABUL 2004 жылы шыққан 2.0 нұсқасынан бастап UDT деп қайта аталды. UDT2 SABUL-дегі TCP басқару қосылымын жойды және деректер мен басқару ақпараты үшін UDP-ны қолданды. UDT2 жаңа тығырылуды басқару алгоритмін де енгізді, бұл протоколға UDT және TCP ағындарымен бірдей жұмыс істеуге мүмкіндік берді, яғни «әділ және мейірімді» болуға рұхсат етті. UDT3 (2006) протоколдың қолданылу аясын коммерциялық интернетке дейін кеңейтті. Тығырылуды басқару алгоритмі төмен өткізу қабілетін де қолдау үшін жақсартылды. UDT3 сонымен қатар жүйелік ресурстарды (процессор және жад) пайдалануды едәуір азайтты. Бұдан өзге, UDT3 пайдаланушыларға өз тығырылуды басқару алгоритмдерін оңай анықтап, орнатуға мүмкіндік береді. UDT4 (2007) жоғары параллелизмді және өрт қабырғаларын өткізуді жақсарту үшін бірнеше жаңа мүмкіндіктерді қосты. UDT4 бірнеше UDT қосылымын бір UDP портына байланыстыруға және UDP тесігін ашуды жеңілдету үшін кездесу орнатуын қолдауға мүмкіндік берді. Қазіргі уақытта протоколдың бесінші нұсқасы жоспарлануда. Мүмкін болатын мүмкіндіктердің қатарында бір қосылым арқылы бірнеше тәуелсіз сессияларды қолдау бар. Сонымен қатар, UDT-ның бастапқы коммерциялық іске асырылуында қауіпсіздік мүмкіндігінің болмауы мәселе тудырғандықтан, Бернардо (2011) докторлық диссертациясының аясында UDT үшін қауіпсіздік архитектурасын әзірледі. Алайда, бұл архитектура әртүрлі желілік орталарда (мысалы, оптикалық желілерде) UDT-ны қолдау үшін жақсартылуда.
Протоколдық архитектура
UDT пайдаланушылық деректерді жіберу протоколының (UDP) негізінде салынған, қанағаттандыруды басқару және сенімділікті қамтамасыз ету механизмдарын қосады. UDT – бұл қосымша деңгейдегі, қосылымға бағытталған, екі жақты протокол, ол сенімді дерек ағынын және жартылай сенімді хабар алмасуды қолдайды.
Мойындау
UDT пакеттерді жеткізуді растау үшін мерзімді растауларды (ACK) пайдаланады, ал пакеттердің жоғалғанын хабарлау үшін теріс растауларды (жоғалу туралы есептер) қолданады. Деректерді беру жылдамдығы жоғары болған кезде мерзімді ACK-тер кері бағыттағы басқару трафигін азайтуға көмектеседі, себебі мұндай жағдайларда ACK-тер саны дерек пакеттерінің санына емес, уақытқа пропорционалды болады.
АМДБ төмендеуімен
UDT AIMD (қосымша көбейту, көбейту, азайту) стиліндегі қанағаттандыруды басқару алгоритмін пайдаланады. Көбейту параметрі қол жетімді өткізу қабілетіне кері пропорционал (пакеттік жұптар әдісімен бағаланады), сондықтан UDT жоғары өткізу қабілетін жылдам анықтай алады және ең жоғары өткізу қабілетіне жақындағанда тұрақтылықты арттыру үшін баяулай алады. Азайту коэффициенті 1/8 мен 1/2 аралығындағы кездейсоқ сан болып табылады. Бұл жоғалту синхронизациясының кері әсерін азайтуға көмектеседі. UDT-да пакеттерді жіберу жылдамдықпен және тереземен басқару арқылы шектеледі. Жіберу жылдамдығы жоғарыда сипатталған AIMD алгоритмімен жаңартылады. Қанағаттандыру терезесі, екінші деңгейдегі басқару механизмі ретінде, қабылдаушы тарапындағы деректердің келу жылдамдығына сәйкес орнатылады.
Конфигурацияланатын тығындар бақылауы
UDT іске асыру C++ класындағы қанағаттандыруды басқаруға қатысты айнымалылар жиынтығын ұсынады және пайдаланушыларға осы айнымалыларды өзгерту үшін кері шақыру функцияларын анықтауға мүмкіндік береді. Осылайша, пайдаланушылар осы кері шақыру функцияларының бір бөлігін немесе барлығын қайта жазу арқылы басқару алгоритмін өзгерте алады. Көптеген TCP басқару алгоритмдерін осы мүмкіндікті пайдаланып 100 жолдан кем кодпен іске асыруға болады.
Кездесу қосылымын орнату
Дәстүрлі клиент/сервер қосылымын орнатумен қатар (немесе шалушы/тыңдаушы, мұнда тыңдаушы қосылыс күтеді және бірнеше шалушы қосылысын қабылдауы мүмкін), UDT жаңа кездесу (rendezvous) қосылымын орнату режимін де қолдайды. Бұл режимде екі жақ та өз порттарында тыңдайды және бір мезгілде бір-біріне қосылады, яғни екеуі де өзара қосылыс жасайды. Сондықтан екі тарап та қосылыс үшін бірдей портты пайдалануы керек, және екі тараптың да рөлі тең болады (дәстүрлі орнатудағы тыңдаушы/шалушы рөлдерінен өзгеше). Кездесу (rendezvous) екі теңнің де өрт қабырғасының артында болған жағдайда, өрт қабырғасын аралау үшін кеңінен қолданылады.
Сценарийлерді қолдану
UDT жоғары жылдамдықты деректерді оптикалық желілер арқылы беруді қолдау үшін жоғары өнімді есептеулерде кеңінен қолданылады. Мысалы, желілік есептеуде кең таралған GridFTP деректерді беру құралы UDT-ны деректерді беру протоколы ретінде пайдалана алады. Қалыпты интернет арқылы UDT көптеген коммерциялық өнімдерде кең аумақтық желілерде жылдам файлдарды беру үшін қолданылған. UDT тек UDP негізінде құрылғандықтан, TCP-нің UDP-ге қарағанда кемшіліктері бар жағдайларда да қолданылады. Мұндай жағдайларға өзара байланыс қолданбалары, бейне және аудио байланыс, сондай-ақ тағы да көптеген жағдайлар кіреді.
Туынды шығармалар
UDT жобасы SRT жобасының базасы болды, ол қоғамдық интернет желісі арқылы тікелей бейне ағынын беру үшін берудің сенімділігін пайдаланады.
Марапаттар
UDT командасы жыл сайынғы ACM/IEEE Supercomputing Conference-інде, жоғары өнімді есептеу, желілік қосылымдар, сақтау және талдау саласындағы әлемдегі ең беделді конференцияда үш рет «Жолақтық сынақ» байқауының жеңімпазы атанды. SC06 (Тампа, Флорида штаты) кезінде команда UDT қолданысын пайдаланып, Чикагодан (Иллинойс штаты) Тампаға (Флорида штаты) 8 Гбит/с жылдамдықпен астрономиялық деректер жиынтығын дискіден дискке көшірді. SC08 (Остин, Техас штаты) кезінде команда UDT-ны Балтимор, Чикаго (2) және Сан-Диегодағы төрт дерек орталығындағы 120 түйінді жүйеде әртүрлі таратылған қолданбаларды қолдана отырып, күрделі жоғары жылдамдықты деректерді беруде пайдаланғанын көрсетті. SC09 (Портленд, Орегон штаты) көрмесінде NCDM, Naval Research Lab және iCAIR бірлескен командасы UDT-мен қамтамасыз етілген кең аумақты деректерге негізделген бұлтты есептеу қолданбаларын таныстырды.