TCP тоташу
Вебны карагыз, электрон почта җибәрегез, яки онлайн уен уйнагыз, аның артында катлаулы челтәр белән бәйләнеш турында уйламыйбыз. Ләкин, алар безнең белән Сервер арасында тотрыклы аралашуны тәэмин итүче кечкенә адымнар. Иң мөһим адымнарның берсе TCP тоташу урнаштыру, һәм аның үзәге - өч яклы чокыр.
Бу мәкаләдә җентекләп, процесс һәм мөһимлеге җентекләп тикшерәчәк. Адым саен, ни өчен өч яклы кул чабу кирәклеген аңлатырбыз, ничек тоташу тотрыклылыгын һәм ышанычлылыкны, һәм моның мөһимлеге никадәр мөһим. Өч яклы кул чабу тирәнрәк аңлап, без челтәр элемтәсенең төп механизмнарын һәм TCP элемтәләренең ышанычлылыгын аңлаешлы караш белән файдаланырбыз.
TCP өч яклы ялвару процессы һәм дәүләт күчүе
TCP - тоташу юнәлешле транспорт протоколы, бу мәгълүмат тапшыру алдыннан тоташуны таләп итә. Бу бәйләнешне булдыру процессы өч яклы усаллык белән башкарыла.
Әйдәгез, һәр бәйләнешкә җибәрелгән TCP пакетларын җентекләп карагыз.
Башта клиент та, сервер да ябык. Беренчедән, портта сервер актив тыңлый һәм тыңлаучыларның халәтендә, димәк, сервер башланырга тиешлеген аңлата. Алга таба, клиент веб-битгә керә башларга әзер. Сервер белән бәйләнеш булдырырга кирәк. Беренче тоташу пакетының форматы түбәндәгечә:
Клиент бәйләнешне башлагач, ул очраклы башлангыч эзлеклелек номерын (Client_ISN) һәм TCP башындагы "эзлеклелек номерын" куя. Шул ук вакытта, клиент синьяк флаг позициясен 1гә якын пакетның синья пакеты булуын күрсәтү өчен. Клиент күрсәтә, бу сервер белән беренче син серверга җибәреп сервер белән бәйләнеш урнаштырырга тели. Бу петкадә заявка катлам мәгълүматлары юк (ягъни мәгълүмат җибәрелгән). Бу вакытта, клиент статусы Синай җибәрелгәнчә билгеләнә.
Сервер клиент пакетын кабул иткәндә, ул очраклы рәвештә үз серия номерын очраклы рәвештә башлап җибәргәндә, аннары бу номерны TCP башында "Серия номеры" кырында куя. Аннары, сервер клиент_исн + 1не "тану номеры" кырында һәм 1-нче елларга керә. Ниһаять, сервер пакетны клиентка җибәрә, анда кушымта катламы мәгълүматлары юк (һәм сервер җибәрү өчен мәгълүмат юк). Бу вакытта сервер син-RCVD штатында.
Клиент сервердан пакетны алганнан соң, соңгы җавап пакетына җавап бирү өчен түбәндәге оптимизацияләрне башкарырга кирәк: Беренчедән, клиент пакет пакетының 1-нче җавап пакетының бер битен 1гә куя; Икенчедән, клиент кыйммәт серверына керә_ мисалга + 1 "җавап номерын раслау" кырында; Ниһаять, клиент пакетны серверга җибәрә. Бу пакет клиенттан серверга мәгълүмат алып бара ала. Бу операцияләр тәмамлангач, клиент билгеләнгән хәлгә керәчәк.
Сервер клиенттан җавап пакетын кабул иткәч, ул шулай ук билгеләнгән хәлгә күчә.
Aboveгарыда әйтелгән процесслардан күргәнегезчә, өч яклы утак тә эшләгәндә, өченче кулакка мәгълүмат йөртергә рөхсәт ителә, ләкин беренче ике кул чабу түгел. Бу сорау еш бирелә торган сорау. Өч яклы кул чабып беткәч, ике як та төзелгән дәүләтне кертә, бу вакытта клиент белән сервер бер-берсенә мәгълүмат җибәрә ала.
Ни өчен өч кул чабу? Ике тапкыр түгел, дүрт тапкыр?
Гомуми җавап: "Чөнки өч яклы чәктәч кылу сәләтен ала һәм җибәрә." Бу җавап дөрес, ләкин ул өслекнең гына төп сәбәбен җибәрми. Киләсе вакытта мин бу проблеманы аңлавыбызны тирәнәйтү өчен өч ягыннан өч тапкыр кул чабу сәбәпләрен анализлыйм.
Өч яклы кул чабып, тарихи кабатланган бәйләнешләрне башлаудан нәтиҗәле була ала (төп сәбәп)
Өч яклы кул чабу ике якның да ышанычлы беренче эзлеклелек номерын алганнарына гарантия бирә.
Өч яклы чабу ресурсларны әрәм итүдән саклый.
Сәбәп 1: Тарихи Дубликатланудан сакланыгыз
Кыскасы, өч яклы кул чабуның төп сәбәбе - иске кабатланган тоташу турындагы буталчыклыктан саклану. Катлаулы челтәр шартларында мәгълүмат пакетлары тапшыру һәрвакыт билгеләнгән вакыт нигезендә хуҗа җибәрелмәгән, һәм иске мәгълүмат пакетлары челтәр тыгасы һәм башка сәбәпләр аркасында билгеләнгән хуҗага килеп җитә ала. Бу, TCP тоташуны булдыру өчен өч яклы умыртка куллана.
Клиентның бер-бер артлы тоташу пакетларыннан пакетлар җибәргәндә, челтәр тыгасы кебек очракларда, түбәндәгеләр булырга мөмкин:
1- Я NEWА СИН ПАКТЛАР алдыннан серверга килеп җитә.
2- Серверның иске син пакетын алганнан соң сез Syn + Ack пакетына җавап бирәчәк.
3.
Ике куллы тоташып, хәзерге тоташу тарихи бәйләнешне билгеләргә мөмкинлек юк. Өч яклы кул чабу клиентка хәзерге тоташу өченче пакетны җибәрергә әзер булганда тарихи бәйләнешне ачыкларга мөмкинлек бирә:
1- Әгәр бу тарихи бәйләнеш булса (эзлеклелек саны беткән яки вакыт эчендә), өченче кул чабу - тарихи бәйләнешне чыгару өчен.
2- Әгәр бу тарихи бәйләнеш булмаса, өченче тапкыр җибәрелгән пакет - AK PATHE-ны, һәм ике яклы яклар аралашуны уңышлы уңышлы урнаштыралар.
Шуңа күрә, TCP өч яклы чабуның төп сәбәбе - ул тарихи тоташуларны кисәтү өчен бәйләнешне башлап җибәрә.
Сәбәп 2: Ике якның башлангыч эзлеклелеген синхронизацияләү
TCP протоколының ике ягы да ышанычлы тапшыруны тәэмин итү өчен төп фактор булган эзлеклелек номерын сакларга тиеш. Эзлеклелек номерлары TCP тоташуларында мөһим роль уйный. Алар түбәндәгеләрне эшлиләр:
Алучы икеләтә мәгълүматларны бетерә ала һәм мәгълүматның төгәллеген тәэмин итә ала.
Алучы мәгълүматларның бөтенлеген тәэмин итү өчен пакетлар ала ала.
● Эзләү номеры бүтән як тарафыннан кабул ителгән мәгълүмат пакетын ачыклый ала, аңа җаваплы мәгълүмат тапшыру.
Шуңа күрә, TCP тоташуы булдырганнан соң, клиентны башлангыч эзлеклелек номеры белән үз пакетлар җибәрә һәм клиент пакетын уңышлы кабул итүне күрсәтүче Ack Paykle белән җавап бирүне таләп итә. Аннары, сервер синхратны клиентка беренче эзлеклелек номеры белән җибәрә һәм клиентның беренче эзлеклелеген ышанычлы синхронизацияләүләрен тәэмин итү өчен.
Дүрт яклы кул чабу шулай ук ике якның башлангыч эзлеклелеге саннарын да бик ышанычлы дип саный алса да, икенче һәм өченче адымнар бер адымга берләштерелергә мөмкин, нәтиҗәдә өч яклы ялкын. Ләкин, ике кул чабу гына бер партиянең башлангыч эзлеклелеге икенче якның уңышлы кабул ителүен гарантияли, ләкин ике якның башлангыч санын ике якның беренче эзлеклелеге раслый ала. Шуңа күрә, өч яклы чабып, TCP тоташуларын тотрыклылыгын һәм ышанычлылыгын тәэмин итү өчен иң яхшы сайлау.
Сәбәп 3: ресурсларны әрәм итүдән сакланыгыз
Әгәр дә "ике кул чамасы" булса, клиентның челтәрендә блоклангач, клиент сервер җибәргән Ack пакетын ала алмый, шуңа күрә синхрия үпкәләячәк. Ләкин, өченче кул чабу булмаганлыктан, сервер клиентны тоташтыру өчен рәхмәт тануның танылуын билгели алмый. Шуңа күрә, сервер һәр SIN соравы алганнан соң тоташуны активлаштыра ала. Бу түбәндәгеләргә китерә:
Ресурсларны әрәм итү: Әгәр клиентның SIN соравы блокланган булса, берничә синер пакетын кабат-кабат тапшыру нәтиҗәсендә сервер сорау алганнан соң берничә артык яраклы тоташуны билгели. Бу сервер ресурсларын кирәксез калдыкларга китерә.
Хәбәрне тоту: Өченче кулак булмаганлыктан, серверның клиентның актуальлекне тану турындагы хәбәрне дөрес кабул итүен белү ысулы юк. Нәтиҗәдә, челтәрдә хәбәрләр челтәрдә ябылса, клиент синхр реквизиннарын яңадан җибәрәчәк, серверның яңа тоташуларны гел урнаштырырга этәрәчәк. Бу челтәр тыгынлыгын арттырачак, тоткарлануны арттырачак һәм гомуми челтәр эшенә тискәре йогынты ясар.
Шуңа күрә, челтәр бәйләнешенең тотрыклылыгын һәм ышанычлылыгын тәэмин итү өчен, TCP бу проблемалар килеп чыкмасын өчен бәйләнешне булдыру өчен өч яклы усаллыкны куллана.
Аннотация
БуЧелтәр пакеты брокерыTCP тоташу учреждениесе өч яклы ялтыравык белән эшләнә. Өч яклы кул чабу вакытында клиент башта синер флагы белән бер пакет җибәрә, аның бәйләнешен урнаштырырга теләгәнен күрсәтүче. Клиенттан сорау алганнан соң, сервер бер-берсенә тоташу соравының кабул ителүен күрсәтә, һәм аның башлангыч эзлеклелеге санын җибәрә. Ниһаять, клиентның серверга флаг белән җаваплар уңышлы булуын күрсәтү өчен, серверга җавап бирә. Шулай итеп, ике партия билгеләнгән хәлдә һәм бер-берсенә мәгълүмат җибәрә башлый.
Гомумән алганда, TCP тоташу оешмасы өчен өч яклы ялкынлы процесс, тарихи тоташуларны буталудан һәм тауларны буталудан һәм ике якның да мәгълүмат ала һәм җибәрә алуын тәэмин итү өчен эшләнгән.
Пост вакыты: Ян-08-2025