Кіріспе

Pastry - Chord-қа ұқсас бөлінген хэш-кесте (DHT) іске асыру үшін жапсырмалы желі және маршруттау желісі. Кілт-маңыз жұптары қосылған Интернет хосттарының артық пир-пир желісінде сақталады. Протокол желідегі IP-адресті беру арқылы басталады, содан кейін динамикалық түрде құрылған және жөнделген маршруттау кестесі арқылы. Оның артық және орталықтандырылмаған табиғаты бойынша, сәтсіздіктің бірден-бір нүктесі жоқ және кез-келген түйін кез-келген уақытта ескертусіз және деректерді жоғалту мүмкіндігі аз немесе мүлдем жоқ желіден шыға алады. Протокол сонымен қатар сыртқы бағдарламамен қамтамасыз етілген маршрут метрикасын, мысалы, ping немесе traceroute, маршрут кестесіне сақтауға болатын ең жақсы маршруттарды анықтау үшін пайдалана алады.

Шолу

Пастердің таратылған хэш-кестесі басқа DHT-мен бірдей болғанымен, оны ерекшелендіретін нәрсе - DHT тұжырымдамасының үстінде салынған маршруттау жапсырмасы. Бұл Пастерге басқа желілердің масштабталуы мен қатеге төзімділігін іске асыруға мүмкіндік береді, сонымен қатар пакеттерді су басу қажеттілігін болдырмау арқылы пакеттерді бір тораптан екінші торапқа бағыттаудың жалпы құнын азайтады. Маршруттау метрикасы мақсатты тораптың IP-мекенжайына негізделген сыртқы бағдарламамен қамтамасыз етілетіндіктен, метриканы ең қысқа секіру санына, ең төменгі кідіру мерзіміне, ең жоғары жолақты еніне немесе тіпті метрикалардың жалпы комбинациясына оңай ауыстыруға болады. Хаш-таблицаның кілт кеңістігі, Chord жүйесіндегі кілт кеңістігі сияқты, дөңгелек болып саналады, ал түйін ID-лері 128 биттік белгісіз бүтін сандар болып табылады, олар дөңгелек кілт кеңістігіндегі орнын білдіреді. Торап ID-лері кездейсоқ және біркелкі таңдалады, сондықтан торап ID-де көршілес тұрған әріптестер географиялық жағынан әртүрлі. Маршруттау үстінен желісі әр түлегі барлау және алмасу арқылы қалыптасады хаш-кестесі тізіміне сәйкес келетін жай-күй ақпараты, жапырақ торабы, көршілік тізімі және маршруттау кестесі. Жапырақ тораптарының тізімі шеңбердің айналасындағы әрбір бағыттағы торап ID бойынша L/2 ең жақын теңесулерден тұрады. Жапырақ түйіндеріне қоса көршілік тізімі де бар. Бұл маршруттандыру метрикасы бойынша M ең жақын теңдестерді білдіреді. Ол маршрут алгоритміне тікелей қолданылмаса да, көршілік тізімі маршрут кестесінде жергілікті принциптерді сақтау үшін қолданылады. Соңында маршрут кестесі бар. Ол өзіне берілген әрбір адрестік блок үшін бір жазбаны қамтиды. Адрес блоктарын қалыптастыру үшін 128 биттік кілт әр цифрдың ұзындығы b бит болып саналатын цифрларға бөлінеді, бұл 2b негізіндегі нөмірлеу жүйесін береді. Бұл клиенттің көзқарасынан мекенжайларды әртүрлі деңгейлерге бөледі, 0 деңгейі екі мекенжай арасындағы нөлдік цифрлық ортақ префиксті, 1 деңгейі бір цифрлық ортақ префиксті және т.б. білдіреді. Маршруттау кестесі әрбір адрестік деңгейдегі әрбір ықтимал цифр үшін ең жақын белгілі теңдестірушінің мекенжайын қамтиды, тек сол нақты деңгейдегі теңдестірушінің өзіне тиесілі цифрды қоспағанда. Бұл деңгей бойынша байланыстарды сақтауды қамтамасыз етеді, деңгейлер саны типтік желідегі жұмыс мәндерін көрсетеді.

Жолдау

Пакет сол тораптың ID-мен теңесуші бар-жоғына қарамастан, кілттер кеңістігіндегі кез келген адреске бағытталуы мүмкін. Пакет шеңберлі сақинадағы тиісті орнына бағытталады және түйін ID-і қажетті орынға ең жақын болатын теңдес пакет алады. Қашанда бір әріптес маршруттандыру үшін пакет алады немесе пакет жібергісі келсе, ол алдымен оның жапырақ жиынтығын тексереді және егер ол табылса, тікелей дұрыс торапқа бағытталады. Егер бұл сәтсіз болса, онда peer өзінің маршрут кестесін peer-дің өзінен ұзақ префиксті мақсат адресімен бөлісетін түйіннің мекенжайын табу мақсатымен қарайды. Егер теңдеспен байланыста ұзақ префикс бар байланыс болмаса немесе байланыс өлген болса, ол сол ұзындығы префиксті байланыс тізімінен таңдап алады, оның торабының ID-і нөмірлік жағынан мақсатқа жақын және сол теңдеске пакет жібереді. Адрестегі дұрыс цифрлардың саны әрқашанда көбейеді немесе бірдей болады және егер ол бірдей болса, пакет пен оның баратын жері арасындағы қашықтық кішірейеді маршруттау протоколы конвергенция.

Pastry-ге негізделген қолданбалар

Пастердің өзі кілттердің түйіндер арасында қалай бөлінгенін және кілтті ұстауға жауапты түйінді қалай табуға болатындығын анықтайды. Мұны жоғары протоколдың субстраты ретінде пайдалану Pastry-ге бөлінген файл жүйесі, жазылу және жариялау жүйесі немесе құндылықтарды сақтау және оларды кейіннен қайтару үшін төмендетуге болатын кез келген басқа жүйе сияқты функционалдылықты іске асыруға мүмкіндік береді.

Өткен

PAST - бұл Pastry-дің үстінде орналастырылған файл жүйесі. Файл файл атауының хэшін есептеу арқылы жүйеге сақталады. Содан кейін Pastry файлдың мазмұнын файл атауынан алынған хэшке ең жақын шеңберлі кілттер кеңістігіндегі түйінге бағыттайды. Бұл түйін файлдың көшірмелерін нақты кілтке жақын k түйіндерге жібереді, олардың көпшілігі осы түйіннің жапырақ түйіндері болуы мүмкін және осылайша тікелей қол жетімді болады. Деректерді алу файл атауын қайталап, Pastry арқылы деректерді сұрауды кілттер кеңістігіндегі тиісті орынға бағыттау арқылы жүзеге асырылады. Сұрауды деректердің көшірмесі бар k түйіндердің кез келгені орындай алады. Бұл деректерді артық пайдалануды және жүктемені бөлуді қамтамасыз етеді. Кілттер кеңістігіндегі көрші түйіндер географиялық жағынан әртүрлі болғандықтан, олардың барлығы k бір уақытта желіден тыс қалуының ықтималдығы өте аз. Ең бастысы, Pastry маршруттау протоколы жолдағы қашықтықты азайтуға тырысады, сондықтан сұранысты жасаған машинаға ең жақын торабы (метрияға сәйкес) деректерге жауап беретін болуы мүмкін.

ЖАЗЫЛЫП алыңыз

SCRIBE - бұл орталықсыздандырылған жариялау / жазылу жүйесі, ол Pastry-ді негізгі бағытты басқару және хост іздеу үшін пайдаланады. Пайдаланушылар басқа пайдаланушылар тіркеле алатын тақырыптар жасайды. Тақырып құрылғаннан кейін, тақырып иесі тақырыпқа жазылып алған барлық SCRIBE түйіндеріне көп тарату ағашында таратылатын тақырып бойынша жаңа жазбаларды жариялай алады. Жүйе тақырыптың аты мен оны иеленетін пайдаланушының атымен байланыстырып, тақырыптың хэшін есептеу арқылы жұмыс істейді. Бұл хэш содан кейін Pastry кілті ретінде қолданылады, содан кейін баспагер Пакеттерді Pastry маршруттау протоколын қолдана отырып, кілтке ең жақын торапқа бағыттап, сол торапта тақырыптың түбір торапын жасайды. Содан кейін адамдар тақырыптың кілтін және жариялаушының атын есептеу арқылы тақырыпқа жазылады, содан кейін Пастерді қолдану арқылы тақырыпқа жазылу хабарламасын тамыр түйініне бағыттайды. Тамыр түйіні басқа түйіннен жазылу хабарламасын алған кезде ол түйіннің идентификаторын өзінің балаларының тізіміне қосады және тақырыптың тасымалдаушысы ретінде әрекет ете бастайды. Децентрализация желідегі барлық түйіндердің тақырыптың түбір түйініне бара жатқан жазылу хабарламаларына көз тастауы арқылы жүзеге асырылады. Егер тақырып қазіргі торап жазылатын болса, ол пакетті тамыр торапқа жіберуді тоқтатады және жазылуға тырысатын торапты өзінің балаларының бірі ретінде қосады. Осылайша ағаштық құрылым қалыптасады, оның үстіндегі тамыр түйіні алғашқы бірнеше абоненттік түйіндерге жібереді, содан кейін осы түйіндердің әрқайсысы хабарламаларды өз балаларына жібереді және т.б. Pastry желісінің кездейсоқ түйіндерінен бір түйінге арналған пакеттер жиі бір жолмен өте тез жүретіндіктен, олар Pastry желісінде ағаштан неғұрлым жақын болса, соған жалғасады. Пастерлік бағыт бойынша әрбір секіру жергілікті жердегі ең жақсы бағытты білдіретіндіктен, абоненттік хабарлама ағаштың ең жақын бөлігін іздеп, сол жерге қосылады. Ақырында, тарату ағашының мүшелері арасындағы қатеге төзімділік уақыт үзілістері мен сақтаушыларды пайдалану арқылы жүзеге асырылады, бұл ретте нақты деректер тасымалы трафикті азайту үшін сақтаушы ретінде екі есеге көбейеді. Егер балалық түйін ата-анасынан біраз уақыт естімесе, ол жаңа жазылу хабарламасын ағаштың тамыр түйініне бағыттап, сол тақырыпқа ағашты кез келген жерде қайта жалғастырады. Егер ата-ана баласынан белгілі бір уақыт бойы хабар алмаса, баласын тізімнен алып тастайды. (Егер бұл әрекет оның бала тізімі бос болса, ата-анасы тасымалдаушы ретінде әрекет етуді мүлдем тоқтатады.) Жалғыз қалған сәтсіздік нүктесі тамыр түйінінің нүктесі болып табылады, және Пастердің өзі автоматты түрде оны жеңеді. Pastry кілттерді кілттің нақты мәніне жақын бірнеше түйін арасында қайталайды, сондықтан тамыр түйінінде айналар орнатылған, ұйықтап жатыр. Егер тамыр түйіні желіден тыс болса, тағы да уақыт үзілісі арқылы анықталса, келесі ең жақын Пастерлік түйіні тамыр түйіні ретінде әрекет ете бастайды. Тақырыпты құрушы жаңа материалды жариялауға тырысқан кезде ескі тамыр торапқа қол жеткізу мүмкін болмайды. Одан кейін жариялаушы "Pastry" желісіне кіріп, оны өзінің жариялау хабарламасын жаңа түбір торапқа бағыттауға пайдаланады. Бұл орындалғаннан кейін, жариялаушы жаңа тамыр түйіннің IP-адресі көшірмесін кешке сақтап, болашақ берілістер үшін Pastry желісін пайдалануды азайтады.