Тесік тесу (желілік) - Hole punching (networking)

Тесік тесу (немесе кейде соққы) - бұл әдістеме компьютерлік желі біреуі немесе екеуі де артта қалған екі тарап арасында тікелей байланыс орнату үшін брандмауэрлер немесе артта маршрутизаторлар сол пайдалану желі мекенжайын аудару (NAT). Саңылауды тесу үшін әр клиент сыртқы және ішкі уақытша сақтайтын шектеусіз үшінші тарап серверіне қосылады мекен-жайы және порт әр клиентке арналған ақпарат. Содан кейін сервер әр клиенттің ақпаратын екіншісіне береді және сол ақпаратты пайдаланып, әр клиент тікелей байланыс орнатуға тырысады; жарамды порт нөмірлерін қолданатын қосылыстар нәтижесінде, шектеуші брандмауэрлер немесе маршрутизаторлар кіріс бумаларын әр жағынан қабылдап, бағыттайды.

Тесіктерді тесу үшін желі топологиясының жұмыс істеуі үшін ешқандай білім қажет емес. ICMP саңылауын тесу, UDP саңылауын тесу және TCP саңылауын тесу сәйкесінше пайдалану Интернет басқару хабары, Пайдаланушы деректері және Трансмиссияны басқару хаттамалары. TCP-дің саңылауын тесу арқылы қысылған SYN пакеттерін жалпы ACK жолына жіберуге болады.

Шолу

Жалпыға қол жетімді немесе жалпыға қол жетімді желілік құрылғылар IP мекенжайлары бір-бірімен оңай байланыс жасай алады. Жеке мекен-жайы бар клиенттер маршрутизатордың немесе брандмауэрдің артындағы клиент қосылымды бастаған кезде, жалпы серверлерге оңай қосыла алады. Алайда, тесіктерді тесу (немесе басқа түрі) NAT өтуі ) екеуі де әр түрлі брандмауэрлердің немесе пайдаланатын маршрутизаторлардың артында тұратын екі клиенттің арасында тікелей байланыс орнату үшін қажет желі мекенжайын аудару (NAT).

Екі клиент те шектеусіз сервермен байланыс орнатады, ол соңғы нүкте мен сессия туралы ақпаратты, жалпы IP мен портты, сонымен бірге жеке IP мен портты ескертеді. Брандмауэрлер сервердің жауаптарын кері жіберуге мүмкіндік беру үшін соңғы нүктелерді де ескереді. Содан кейін сервер әр клиенттің соңғы нүктесі мен сессия туралы ақпаратты басқа клиентке немесе теңдестіруге жібереді. Әрбір клиент көрсетілген IP-мекен-жайы мен серверге брандмауэрдің сервер үшін ашық порты арқылы өз құрдасына қосылуға тырысады. Жаңа қосылу әрекеті клиенттің брандмауэрін теседі, өйткені соңғы нүкте құрдастарынан жауап алу үшін ашық болады. Желілік жағдайларға байланысты клиенттердің бірі немесе екеуі де қосылуға сұраныс ала алады. Сәтті алмасу түпнұсқалық растама екі клиенттің арасында тесу процедурасының аяқталғанын көрсетеді.[1]

Мысалдар

VoIP өнімдер, онлайн ойын қосымшалары және P2P желілік бағдарламалық жасақтаманың барлығы тесу тесуді қолданады.

  • Телефонияға арналған бағдарламалық жасақтама Skype пайдаланушыларға бір немесе бірнеше пайдаланушымен дыбыстық байланыс орнатуға мүмкіндік беру үшін тесу тесуді қолданады.[2]
  • Жылдам серпінді онлайн-ойыншы ойындар тесу техникасын қолдануы мүмкін немесе пайдаланушылардан тұрақты жасауды талап етуі мүмкін брандмауэрдің саңылауы желінің кідірісін азайту мақсатында.
  • VPN сияқты қосымшалар Хамачи немесе ZeroTier пайдаланушыларға брандмауэр артындағы жазылған құрылғыларға тікелей қосылуға мүмкіндік беретін тесіктерді қолданыңыз.
  • Орталықтандырылмаған peer-to-peer файлын бөлісу бағдарламалық жасақтама файлдарды тарату үшін тесік тесуге негізделген.

Талаптар

Тесіктерді сенімді түрде тесу үшін соңғы нүктенің тұрақты аудармасы қажет, және бірнеше деңгейлік NAT үшін шаш қыстырғышымен аударма жасау керек.

Жеке соңғы нүктеден шығатын байланыс брандмауэр арқылы өткенде, ол жалпыға ортақ нүкте алады (жалпы IP мекен-жайы және порт нөмірі), ал брандмауэр олардың арасындағы трафикті аударады. Байланыс жабылғанға дейін клиент пен сервер жалпы байланыс нүктесі арқылы байланысады, ал брандмауэр трафикті тиісті түрде басқарады. Түпкі нүктенің дәйекті аудармасы әрбір жаңа қосылым үшін жаңа жалпы соңғы нүкте бөлудің орнына берілген жеке соңғы нүкте үшін бірдей жалпы нүктені қайта пайдаланады.

Шаш қыстырғышының аудармасы тағайындалған соңғы нүктенің өзі екенін білген кезде өзінің жеке екі соңғы нүктесінің арасында кері байланыс жасайды. Бұл функция бірнеше қабатты NAT шеңберінде қолданылған кезде ғана тесуге қажет.[1]

Сондай-ақ қараңыз

Пайдаланылған әдебиеттер

  1. ^ а б Форд, Брайан; Шрисуреш, Пыда; Кегел, Дэн (2005), Peer-to-peer коммуникация желілік адрес аудармашылары арқылы
  2. ^ Шмидт, Юрген (2006), Шұңқыр