DC
Data center՝ Telegram-ի տվյալների կենտրոն
Telegram-ի սերվերները, որոնց պրոքսին փոխանցում է հաճախորդի տրաֆիկը։
Դերը սխեմայում
Telegram-ի սերվերները բաժանված են մի քանի տվյալների կենտրոնների։ Պրոքսին կանգնած է հաճախորդի և դրանց միջև. հաճախորդը միանում է պրոքսիին, իսկ նա՝ անհրաժեշտ տվյալների կենտրոնին, և տրաֆիկը փոխանցում է առաջ։ Բովանդակությունը մնում է գաղտնագրված հաճախորդի և սերվերի բանալիով։
Ինչպես է հաճախորդը ընտրում տվյալների կենտրոնը
Հասցեների ցանկը հաճախորդը ստանում է help.getConfig հարցումով. պատասխանում կա dc_options դաշտը՝ յուրաքանչյուր մուտքակետի նույնացուցիչով, IP հասցեով և պորտով։ Հասցեներն ու պորտերը կարող են փոխվել, իսկ յուրաքանչյուր տվյալների կենտրոնն սովորաբար ունի առնվազն մեկական IPv4 և IPv6 հասցե։ Հիմնական հարցումների համար հաճախորդը ընտրում է ամենամոտ կետը, իսկ հաշիվ մտնելուց առաջ միանում է պատահական հասցեի։
Հաշիվն ունի «տնային» տվյալների կենտրոն. եթե հաճախորդը սխալ տեղ է դիմել, սերվերը պատասխանում է PHONE_MIGRATE_X կամ USER_MIGRATE_X տիպի սխալով, և հաճախորդը նորից է միանում։ Ֆայլերը ներբեռնվում են այն տվյալների կենտրոնից, որտեղ պահված են, իսկ ֆայլերի փոխանցման համար կան առանձին media-only կետեր։
Տվյալների կենտրոնը պրոքսիի արձանագրությունում
Օբֆուսկացված կապում տվյալների կենտրոնի նույնացուցիչը փոխանցվում է սկզբնական փաթեթում. դա 2 բայթանոց նշանով թիվ է 60 տեղաշարժով, իսկ media տվյալների կենտրոնների համար այն բացասական է։ Այսպես պրոքսին իմանում է, թե ուր ուղղել հոսքը։ Սկզբնական փաթեթի մասին ավելին՝ obfuscated2 տերմինում։
Ինչ է սա նշանակում պրոքսիի տիրոջ համար
Պրոքսիին պետք է հասանելիություն տվյալների կենտրոնների բոլոր հասցեներին, ոչ թե մի մասին. հաշիվը կապված է տնային տվյալների կենտրոնին, և եթե նրա հասցեն սերվերից հասանելի չէ, օգտատերը չի կարողանա մուտք գործել կամ ֆայլ բեռնել։ Սերվերից դեպի Telegram ելքային կապերը չի կարելի փակել։
Ինչպես է գրվում տվյալների կենտրոնի համարը
Օբֆուսկացված կապի սկզբնական փաթեթում համարը պահվում է որպես 2 բայթանոց նշանով թիվ։ Թեստային սերվերների համար դրան ավելացնում են 10000, իսկ media տվյալների կենտրոնների համար այն դարձնում են բացասական. փաստաթղթերում որպես օրինակ բերված է 0xfcff արժեքը media տվյալների կենտրոն 4-ի համար։ Պրոքսին կարդում է այս թիվը և ընտրում, թե ուր միանալ։
Քանիսն են և որտեղ
Telegram-ի փաստաթղթերում ասվում է միայն «մի քանի տվյալների կենտրոն աշխարհի տարբեր մասերում». ո՛չ թիվ կա, ո՛չ քաղաքներ, իսկ հասցեների ցանկը հաճախորդը վերցնում է կոնֆիգուրացիայից։ Ուստի պրոքսիի համար կարևոր է ոչ թե «որտեղ են Telegram-ի սերվերները», այլ որ ձեր սերվերից կապ կա դրանց բոլոր հասցեների հետ. հաշիվը կապված է տնային տվյալների կենտրոնին, և նրան հասանելիություն չունեցող պրոքսին չի օգնի։