DC
Data center — Telegram-ın data mərkəzi
Proksinin klient trafikini ötürdüyü Telegram serverləri.
Sxemdəki rolu
Telegram serverləri bir neçə data mərkəzinə bölünüb. Proksi klientlə onların arasında durur: klient proksiyə qoşulur, proksi isə lazım olan data mərkəzinə qoşulub trafiki irəli ötürür. Məzmun bu zaman klientin və serverin açarı ilə şifrələnmiş qalır.
Klient data mərkəzini necə seçir
Klient ünvanlar siyahısını help.getConfig sorğusu ilə alır: cavabda hər giriş nöqtəsinin identifikatoru, IP ünvanı və portu olan dc_options sahəsi var. Ünvanlar və portlar dəyişə bilər, hər data mərkəzinin isə adətən ən azı bir IPv4 və bir IPv6 ünvanı olur. Əsas sorğular üçün klient ən yaxın nöqtəni seçir, hesaba daxil olmazdan əvvəl isə təsadüfi ünvana qoşulur.
Hesabın «ev» data mərkəzi var; klient yanlış yerə müraciət edibsə, server PHONE_MIGRATE_X və ya USER_MIGRATE_X kimi xəta ilə cavab verir və klient yenidən qoşulur. Fayllar saxlandıqları data mərkəzindən endirilir, faylların ötürülməsi üçün isə ayrıca media-only nöqtələr var.
Proksi protokolunda data mərkəzi
Obfuskasiyalı bağlantıda data mərkəzinin identifikatoru ilk paketdə ötürülür: bu, 60 ofsetində işarəli 2 baytlıq ədəddir, media data mərkəzləri üçün isə mənfidir. Proksi axını hara yönəltməyi belə öyrənir. İlk paket haqqında ətraflı — obfuscated2 terminində.
Proksi sahibi üçün bunun mənası
Proksiyə data mərkəzlərinin ünvanlarının hamısına çıxış lazımdır, bir hissəsinə yox: hesab ev data mərkəzinə bağlıdır və onun ünvanı serverdən əlçatmazdırsa, istifadəçi daxil ola və ya fayl yükləyə bilməyəcək. Serverin Telegram istiqamətində çıxan bağlantılarını bağlamaq olmaz.
Data mərkəzinin nömrəsi necə yazılır
Obfuskasiyalı bağlantının ilk paketində nömrə 2 baytlıq işarəli ədəd kimi saxlanır. Test serverləri üçün ona 10000 əlavə edilir, media data mərkəzləri üçün isə mənfi edilir: sənədlərdə nümunə kimi media data mərkəzi 4 üçün 0xfcff dəyəri verilib. Proksi bu ədədi oxuyur və hara qoşulacağını seçir.
Neçə dənədir və harada
Telegram sənədlərində yalnız «dünyanın müxtəlif yerlərində bir neçə data mərkəzi» deyilir: nə say, nə şəhər göstərilib, ünvanlar siyahısını isə klient konfiqurasiyadan götürür. Ona görə proksi üçün «Telegram serverləri harada yerləşir» vacib deyil, serverinizdən onların bütün ünvanlarına bağlantının olması vacibdir: hesab ev data mərkəzinə bağlıdır və ona çıxışı olmayan proksi kömək etməyəcək.