Network Packet Broket TCP ဆက်သွယ်မှု၏အဓိကနက်နဲသောလျှို့ဝှက်ချက်များ - Triple Handshake လိုအပ်ကြောင်း Demystified

TCP ဆက်သွယ်မှုတည်ဆောက်မှု
ဝက်ဘ်ဆိုက်ကိုကျွန်ုပ်တို့ရှာဖွေသည့်အခါအီးမေးလ်ပို့ပါသို့မဟုတ်အွန်လိုင်းဂိမ်းကိုဖွင့်သောအခါ, သို့သော်၎င်းသည်ကျွန်ုပ်တို့နှင့်ဆာဗာများအကြားတည်ငြိမ်သောဆက်သွယ်ရေးကိုသေချာစေရန်ဤသေးငယ်သည့်အဆင့်များဖြစ်သည်။ အရေးအကြီးဆုံးသောအဆင့်များထဲမှတစ်ခုမှာ TCP connection setup နှင့်ဤ၏အဓိကအစိတ်အပိုင်းသုံးလမ်းရှိလက်ဆွဲနှုတ်ဆက်ခြင်းဖြစ်ပါတယ်။

ဤဆောင်းပါးသည်သုံးလမ်းရှိလက်ဆွဲနှုတ်ဆက်ခြင်း၏နိယာမ, လုပ်ငန်းစဉ်နှင့်အရေးပါမှုကိုအသေးစိတ်ဆွေးနွေးပါမည်။ တစ်ဆင့်ပြီးတစ်ဆင့်ပြီးသုံးလမ်းခရီးကိုဘာကြောင့်သုံးတာလဲ, ဘယ်လိုဆက်စပ်မှုတည်ငြိမ်မှုနှင့်ယုံကြည်စိတ်ချရမှုတွေကိုသေချာစေသလဲ, ဒေတာလွှဲပြောင်းမှုအတွက်ဘယ်လောက်အရေးကြီးတယ်ဆိုတာကိုရှင်းပြပါလိမ့်မယ်။ သုံးလမ်းသွားလက်ဆွဲနှုတ်ဆက်ခြင်းကိုပိုမိုနက်ရှိုင်းစွာနားလည်နိုင်သောကြောင့်ကျွန်ုပ်တို့သည် TCP ဆက်သွယ်မှု၏ယုံကြည်စိတ်ချရမှုအပေါ်ပိုမိုရှင်းလင်းစွာရှုမြင်ခြင်းနှင့်ပိုမိုရှင်းလင်းစွာနားလည်မှုရရှိလိမ့်မည်။

TCP သုံးလမ်းရှိလက်ဆွဲလက်ဆွဲဖြစ်စဉ်နှင့်ပြည်နယ်အသွင်ကူးပြောင်းမှု
TCP သည် Connection Oriented သယ်ယူပို့ဆောင်ရေး protocol တစ်ခုဖြစ်ပြီး၎င်းသည်အချက်အလက်ပို့ခြင်းမပြုမီဆက်သွယ်မှုတည်ဆောက်ရန်လိုအပ်သည်။ ဤဆက်သွယ်မှုတည်ဆောက်ခြင်းလုပ်ငန်းစဉ်ကိုသုံးလမ်းတစ်လျှောက်လုံးဖြင့်ပြုလုပ်သည်။

 TCP သုံးလမ်းလက်ဆွဲနှုတ်ဆက်ခြင်း

Connection တစ်ခုချင်းစီတွင်ပို့သော TCP packet များကိုပိုမိုနီးကပ်စွာကြည့်ကြပါစို့။

အစပိုင်းတွင် client နှင့် server နှစ်ခုလုံးကိုပိတ်ထားသည်။ ပထမ ဦး စွာဆာဗာသည် port တစ်ခုပေါ်တွင်တက်ကြွစွာနားထောင်ပြီးနားထောင်သည့်ပြည်နယ်တွင်ရှိသည်, ဆိုလိုသည်မှာဆာဗာကိုစတင်ရမည်ဖြစ်သည်။ ထို့နောက် client သည်ဝက်ဘ်စာမျက်နှာကိုစတင်ဝင်ရောက်ရန်အဆင်သင့်ဖြစ်နေသည်။ ဆာဗာနှင့်ဆက်သွယ်မှုတစ်ခုတည်ဆောက်ရန်လိုအပ်သည်။ ပထမဆက်သွယ်မှု packet ၏ပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -

 Syn Packetet

0 န်ဆောင်မှုခံယူသူသည်ဆက်သွယ်မှုကိုစတင်သောအခါ၎င်းသည်ကျပန်းကန ဦး အစီအစဉ်နံပါတ် (client_isn) ကိုထုတ်ပေးပြီး TCP Header ၏ "sequence နံပါတ်" နယ်ပယ်တွင်ဖော်ပြထားသည်။ တစ်ချိန်တည်းမှာပင် 0 န်ဆောင်မှုခံယူသူသည်အထွက်အထွက် packetet သည် SE SY SENT POXTET ဖြစ်သည်ကိုညွှန်ပြရန် 1 သို့ SEl flag အနေအထားကိုသတ်မှတ်သည်။ 0 န်ဆောင်မှုခံယူသူကဆာဗာသို့ပထမဆုံး Syn packetet ကိုပို့ခြင်းဖြင့်ဆာဗာနှင့်ဆက်သွယ်မှုကိုတည်ဆောက်ရန်ဆန္ဒရှိကြောင်းဖော်ပြသည်။ ဤ packet တွင် application layer data (ဆိုလိုသည်မှာအချက်အလက်ပေးပို့ခြင်း) တွင်ပါ 0 င်ခြင်းမရှိပါ။ ဤအချိန်တွင် client ၏ status ကို syn-send အဖြစ်မှတ်သားထားသည်။

Syn + Ack Packet

ဆာဗာတစ်ခုသည် 0 န်ဆောင်မှုခံယူသူတစ် ဦး မှ Syn packet ကိုလက်ခံသောအခါ၎င်းသည်ကိုယ်ပိုင်အမှတ်စဉ်နံပါတ် (serial_isn) ကိုကျပန်းစတင်ပြီး TCP header ၏နံပါတ် "တွင်ထည့်သွင်းထားသည်။ ထို့နောက်ဆာဗာသည် client_isn + 1 ကို "အသိအမှတ်ပြုသည့်နံပါတ်" နေရာတွင် 0 င်ရောက်ပြီး SECKSET နံပါတ်များကို SEL နှင့် ACK BITS ကိုသတ်မှတ်သည်။ နောက်ဆုံးတွင်ဆာဗာသည် packet ကို client သို့ပို့သည်။ ဤအချိန်တွင်ဆာဗာသည် Syn-RCVD ပြည်နယ်တွင် Syn-RCVD ပြည်နယ်တွင်ရှိသည်။

ack packet ကို

0 န်ဆောင်မှုခံယူသူသည်ဆာဗာမှ packet ကိုလက်ခံပြီးသည်နှင့်နောက်ဆုံးပြန်ကြားချက် packet ကိုတုံ့ပြန်ရန်အောက်ပါ optimizations များကိုလုပ်ဆောင်ရန်လိုအပ်သည်။ ပထမအချက်မှာ client သည် TCP header ၏ tcp header ၏ ack bit ကို 1 အထိသတ်မှတ်ထားသည်။ ဒုတိယအချက်အနေဖြင့် 0 န်ဆောင်မှုခံယူသူသည် "Confirm အဖြေနံပါတ်" အတွက်တန်ဖိုးဆာဗာ + 1 ကို 0 င်ရောက်ခြင်း, နောက်ဆုံးတွင် client သည် packet ကိုဆာဗာသို့ပို့သည်။ ဤ packet သည် client ကို client မှဆာဗာသို့သယ်ဆောင်နိုင်သည်။ ဤလုပ်ငန်းများပြီးဆုံးသွားသောအခါ client သည်တည်ထောင်ထားသောအခြေအနေကို 0 င်ရောက်လိမ့်မည်။

ဆာဗာသည် 0 န်ဆောင်မှုခံယူသူမှ Reply packet ကိုလက်ခံပြီးသည်နှင့်၎င်းသည်တည်ထောင်ထားသောပြည်နယ်သို့လည်းပြောင်းလဲနိုင်သည်။

အထက်ဖော်ပြပါလုပ်ငန်းစဉ်မှသင်တွေ့နိုင်သည်မှာသုံးလမ်းရှိလက်ဆွဲနှုတ်ဆက်ခြင်းကိုပြုလုပ်သောအခါတတိယလက်ဆွဲခြင်းသည်ဒေတာများကိုသယ်ဆောင်ခွင့်ပြုထားသည်။ ဤမေးခွန်းသည်အင်တာဗျူးများအတွက်မကြာခဏမေးလေ့ရှိသောမေးခွန်းဖြစ်သည်။ သုံးလမ်းသွားလက်ဆွဲနှုတ်ဆက်ခြင်းပြီးဆုံးသည်နှင့်တပြိုင်နက်ပါတီနှစ်ခုစလုံးသည်တည်ထောင်ထားသောအခြေအနေကို 0 င်ရောက်ပြီး connection ကိုအောင်မြင်စွာတည်ထောင်နိုင်ကြောင်းညွှန်ပြသည်။

အဘယ်ကြောင့်သုံးလက်ကိုင်အယောင်? နှစ်ကြိမ်, လေးကြိမ်?
ဘုံအဖြေမှာ "သုံးလမ်းတစ်လျှောက်လက်ဆွဲနှုတ်ဆက်ခြင်းသည်လက်ခံခြင်းနှင့်ပေးပို့နိုင်စွမ်းကိုအာမခံသည်။ ဤအဖြေသည်မှန်ကန်သော်လည်း၎င်းသည်အဓိကအကြောင်းရင်းကိုသာအဓိကအကြောင်းပြချက်မထားပါ။ အောက်ပါတို့တွင်ဤပြ issue နာကိုပိုမိုနားလည်ရန်ရှုထောင့်သုံးခုမှသုံးဆလက်ခုပ်ချလောက်သောလက်ဆွဲနှုတ်ဆက်ခြင်း၏အကြောင်းရင်းများကိုကျွန်ုပ်ဆန်းစစ်ပါမည်။

သုံးလမ်းခရီးတည်းသောလက်ဆွဲနှုတ်ဆက်ခြင်းသည်သမိုင်းကြောင်းအရထပ်ခါတလဲလဲထပ်ခါတလဲလဲဆက်သွယ်မှုများကိုထိရောက်စွာရှောင်ရှားနိုင်သည် (အဓိကအကြောင်းရင်း)
နှစ် ဦး စလုံးသည်နှစ်ဖက်စလုံးကနှစ် ဦး စလုံးယုံကြည်စိတ်ချရသောကန ဦး sequence နံပါတ်ကိုလက်ခံရရှိကြောင်းအာမခံချက်ပေးထားသည်။
သုံးလမ်းခရီးလက်ဆွဲနှုတ်ဆက်ခြင်းသည်အရင်းအမြစ်များကိုဖြုန်းတီးစေသည်။

အကြောင်းပြချက် 1: သမိုင်းဆိုင်ရာထပ်တူဆန့်ကျင်ခြင်းကိုရှောင်ကြဉ်ပါ
အတိုချုပ်ပြောရရင်သုံးလမ်းခရီးအတွက် handshake ၏အဓိကအကြောင်းရင်းသည်မိတ္တူပွားများကဆက်နွယ်မှုအသေးအဖွဲကိစ္စများကြောင့်ရှုပ်ထွေးမှုများကိုရှောင်ရှားရန်ဖြစ်သည်။ ရှုပ်ထွေးသောကွန်ယက်ပတ် 0 န်းကျင်တွင်ဒေတာ packets များကိုသတ်မှတ်ထားသောအချိန်နှင့်အညီသတ်မှတ်ထားသောအိမ်ရှင်သို့အမြဲတမ်းပို့ခြင်းမဟုတ်ပါ။ ဤအရာကိုရှောင်ရှားရန် TCP သည်ဆက်သွယ်မှုကိုတည်ဆောက်ရန်သုံးလမ်းတစ်လျှောက်လုံးလက်ဆွဲနှုတ်ဆက်ခြင်းကိုအသုံးပြုသည်။

သုံးလမ်းခရီးသည်သမိုင်းဝင်ထပ်တူဆက်သွယ်မှုများကိုရှောင်ရှားသည်

Client တစ်ခုသည် Seal Connection Packets များကိုဆက်တိုက်ကူးစက်သော packets များကိုဆက်တိုက်သည့်အခါကွန်ယက်ပိတ်ဆို့ခြင်းကဲ့သို့သောအခြေအနေများတွင်အောက်ပါတို့ဖြစ်နိုင်သည်။

1- Syn Packets အဟောင်းများသည် Sylat Packets များမတိုင်မီဆာဗာသို့ရောက်သည်။
2- Seal packet ကိုရရှိပြီးနောက် server ကို client သို့ SEL ack packet ကို client သို့ပြန်လည်ဖြေကြားလိမ့်မည်။
3- client သည် SET ack packet ကိုလက်ခံသောအခါ connection သည်သမိုင်းဆိုင်ရာဆက်သွယ်မှု (အစီအစဉ်နံပါတ်သက်တမ်းကုန်ဆုံးခြင်းသို့မဟုတ်အချိန်ကုန်ဆုံး) သည်၎င်း၏ကိုယ်ပိုင်အခြေအနေအရ case ကို server သို့ပို့ပေးသည်ကိုဆုံးဖြတ်သည်။

လက်ဆွဲနှုတ်ဆက်ခြင်းဆက်သွယ်မှုတစ်ခုဖြင့်လက်ရှိဆက်သွယ်မှုသည်သမိုင်းဝင်ဆက်သွယ်မှုဟုတ်မဟုတ်ဆုံးဖြတ်ရန်နည်းလမ်းမရှိပါ။ သုံးလမ်းသွားလက်ဆွဲနှုတ်ဆက်ခြင်းသည် client ကို connection သည်တတိယမြောက် packet ကိုပို့ရန်အဆင်သင့်ဖြစ်သည့်အခါအခြေအနေအပေါ် အခြေခံ. သမိုင်းဆိုင်ရာဆက်သွယ်မှုသည်သမိုင်းကြောင်းနှင့် ပတ်သက်. သမိုင်းဆိုင်ရာဆက်သွယ်မှုဖြစ်သည်ကိုဆုံးဖြတ်ရန်ခွင့်ပြုသည်။

1- အကယ်. ၎င်းသည်သမိုင်းဝင်ဆက်သွယ်မှုတစ်ခုဖြစ်ပါကတတိယလက်ကိုင်တင်သော packet သည်သမိုင်းဆိုင်ရာဆက်သွယ်မှုကိုဖျက်သိမ်းရန် RST packet တစ်ခုဖြစ်သည်။
2- အကယ်. ၎င်းသည်သမိုင်းဝင်ဆက်သွယ်မှုမဟုတ်လျှင်တတိယအကြိမ် Packet သည် ACK packet တစ်ခုဖြစ်သည်။ ဆက်သွယ်ရေးပါတီနှစ်ခုသည်ဆက်သွယ်မှုကိုအောင်မြင်စွာတည်ဆောက်နိုင်ခဲ့သည်။

ထို့ကြောင့် TCP သည်သုံးလမ်းသွား handshake ကိုအသုံးပြုသောအဓိကအကြောင်းရင်းမှာသမိုင်းဝင်ဆက်သွယ်မှုများကိုကာကွယ်ရန်ဆက်သွယ်မှုကိုအကန့်အသတ်ရှိသည်။

အကြောင်းပြချက် 2: နှစ်ဖက်စလုံး၏ကန ဦး sequence နံပါတ်များကိုတစ်ပြိုင်တည်းချိန်ကိုက်ရန်
TCP protocol ၏နှစ်ဖက်စလုံးသည်အဆက်မပြတ်နံပါတ်ကိုထိန်းသိမ်းထားရမည်။ ၎င်းသည်ယုံကြည်စိတ်ချရသောကူးစက်မှုကိုသေချာစေရန်အဓိကအချက်ဖြစ်သည်။ TCP connections များတွင်အစီအစဉ်နံပါတ်များသည်အရေးကြီးသောအခန်းကဏ် plays မှပါ 0 င်သည်။

လက်ခံသူသည်ပုံတူအချက်အလက်များကိုဖယ်ရှားပြီးအချက်အလက်များ၏တိကျမှန်ကန်မှုကိုသေချာစေနိုင်သည်။

လက်ခံသူသည်အချက်အလက်များ၏သမာဓိကိုသေချာစေရန် sequence နံပါတ်၏အမိန့်ကိုလက်ခံနိုင်သည်။

●●အစီအစဉ်နံပါတ်သည်အခြားပါတီမှလက်ခံသော data packet ကိုခွဲခြားသတ်မှတ်နိုင်သည်။

ထို့ကြောင့် TCP ဆက်သွယ်မှုတစ်ခုတည်ဆောက်ခြင်းတွင် client သည်ကန ဦး sequence နံပါတ်နံပါတ်နှင့်အတူ SIN packets များကိုပေးပို့သည် 0 န်ဆောင်မှုခံယူသူ၏ Syn packet ည့်ခံချက်ကိုအောင်မြင်စွာ reception ည့်ခံချက်ကိုညွှန်ပြရန်ဆာဗာလိုအပ်သည်။ ထို့နောက်ဆာဗာသည် Sequence နံပါတ်နံပါတ်နှင့် Syn packetet ကို client သို့ပေးပို့သည်နှင့်ကန ဦး sequence နံပါတ်များကိုယုံကြည်စိတ်ချစွာထပ်တူပြုခြင်းဖြစ်ကြောင်းသေချာစေရန်ဖောက်သည်ကိုတစ်ကြိမ်နှင့်အားလုံးအတွက်ပြန်လည်ဖြေကြားရန်စောင့်သည်။

နှစ် ဦး စလုံးပါတီများ၏ကန ဦး အမှတ်စဉ်နံပါတ်များကိုတစ်ပြိုင်တည်းချိန်ကိုက်ပါ

လေးလမ်းတစ်လျှောက်လုံးလက်ဆွဲနှုတ်ဆက်ခြင်းသည်ပါတီနှစ်ခုစလုံး၏ကန ဦး အစီအစဉ်နံပါတ်များကိုယုံကြည်စိတ်ချစွာထပ်တူထပ်တူပြုခြင်းဖြစ်သော်လည်းဒုတိယနှင့်တတိယအဆင့်များကိုတစ်ဆင့်ချင်းစီတစ်လျှောက်လုံးချိတ်ဆက်နိုင်သည်။ သို့သော်လက်ဆွဲနှစ်ခုသည်ပါတီတစ်ခု၏ကန ဦး ဆက်နွှယ်မှုကိုအခြားပါတီတစ်ခုမှအောင်မြင်စွာရရှိနိုင်ပါသည်။ ထို့ကြောင့် TCP ဆက်သွယ်မှုများ၏တည်ငြိမ်မှုနှင့်ယုံကြည်စိတ်ချရမှုများကိုသေချာစေရန်သုံးလမ်းခရီးသည်အကောင်းဆုံးရွေးချယ်မှုဖြစ်သည်။

အကြောင်းပြချက် 3 - အရင်းအမြစ်များကိုမဖြုန်းတီးပါနှင့်
အကယ်. "လက်ကိုင်နှစ်" တည်းသာလျှင် client syn rembery ကိုကွန်ယက်တွင်ပိတ်ဆို့ထားသည့်အခါ 0 န်ဆောင်မှုခံယူသူသည်ဆာဗာမှပေးပို့သော Ack packet ကိုမရရှိနိုင်ပါ။ သို့သော်တတိယလက်ဆွဲသူမရှိသောကြောင့် client သည် connection ကိုတည်ထောင်ရန် 0 န်ဆောင်မှုခံယူသူသည် ACK အသိအမှတ်ပြုမှုကိုလက်ခံရရှိမနေဆုံးဖြတ်ရန်ဆာဗာသည်မဆုံးဖြတ်နိုင်ပါ။ ထို့ကြောင့်ဆာဗာသည် SEY တောင်းဆိုမှုတစ်ခုစီကိုလက်ခံပြီးနောက်ဆက်သွယ်မှုတစ်ခုသာတည်ဆောက်နိုင်သည်။ ၎င်းသည်အောက်ပါတို့ကို ဦး ဆောင်သည် -

အရင်းအမြစ်များကိုဖြုန်းတီးခြင်း - 0 န်ဆောင်မှုခံယူသူ၏ခွင့်တောင်းခံမှုကိုပိတ်ဆို့ထားလျှင်, Syn packets များထပ်မံထုတ်လွှင့်ခြင်းအားဖြင့်ဆာဗာသည်တောင်းဆိုမှုရပြီးနောက်ဆာဗာသည်မလိုအပ်သောဆက်သွယ်မှုမျိုးစုံကိုတည်ဆောက်လိမ့်မည်။ ၎င်းသည်ဆာဗာအရင်းအမြစ်များကိုမလိုအပ်သောစွန့်ပစ်ပစ္စည်းများကိုဖြစ်ပေါ်စေသည်။

မက်ဆေ့ခ်ျကိုထိန်းသိမ်းထားခြင်း - တတိယလက်ဆွဲအိတ်မရှိတာကြောင့်ဆာဗာသည် connection ကိုတည်ဆောက်ရန် ACK အသိအမှတ်ပြုမှုကိုမှန်ကန်စွာရရှိခြင်းရှိ, ရလဒ်အနေဖြင့်ကွန်ယက်တွင်မက်ဆေ့ခ်ျများကပ်နေပါက 0 န်ဆောင်မှုခံယူသူသည် server ကိုဆက်သွယ်မှုအသစ်များကိုအဆက်မပြတ်မြဲမြံစွာ ဆက်. ပေးပို့သည်။ ၎င်းသည်ကွန်ရက်ပိတ်ဆို့မှုကိုပိတ်ဆို့ခြင်းနှင့်နှောင့်နှေးမှုများကိုနှောင့်နှေးစေပြီးကွန်ရက်စွမ်းဆောင်ရည်ကိုဆိုးကျိုးသက်ရောက်စေလိမ့်မည်။

အရင်းအမြစ်များကိုဖြုန်းခြင်းများကိုရှောင်ပါ

ထို့ကြောင့်ကွန်ယက်ချိတ်ဆက်မှု၏တည်ငြိမ်မှုနှင့်ယုံကြည်စိတ်ချရမှုကိုသေချာစေရန် TCP သည်ဤပြ problems နာများကိုရှောင်ရှားရန်ဆက်သွယ်မှုကိုတည်ဆောက်ရန် TCP သုံးလမ်းရှိလက်ဆွဲနှုတ်ဆက်ခြင်းကိုအသုံးပြုသည်။

အကျဉ်းချုပ်
အပေြာင်းကွန်ယက် Packet BrokerTCP connection connection ကိုသုံးလမ်းရှိလက်ဆွဲနှုတ်ဆက်ခြင်းဖြင့်ပြုလုပ်သည်။ သုံးလမ်းခရီးတွင်လက်ဆွဲနှုတ်ဆက်နေစဉ်အတွင်း client သည် server သို့ SEL အလံနှင့်ပထမဆုံး packet တစ်ခုပေးပြီး၎င်းသည်ဆက်သွယ်မှုတစ်ခုတည်ဆောက်လိုကြောင်းညွှန်ပြသည်။ 0 န်ဆောင်မှုခံယူသူမှတောင်းဆိုမှုကိုလက်ခံရရှိပြီးနောက် server သည် client ကို Syn နှင့် Ack အလံများပါသည့် packet ကိုပြန်ဖြေသည်, connection တောင်းဆိုမှုကိုလက်ခံခြင်းနှင့်၎င်း၏ကိုယ်ပိုင်အစီအစဉ်နံပါတ်ကိုပေးပို့သည်။ နောက်ဆုံးတွင် client သည် connection ကိုအောင်မြင်စွာထူထောင်နိုင်ကြောင်းညွှန်ပြရန်ဆာဗာသို့ ACK Flag ဖြင့်ပြန်လည်ဖြေကြားသည်။ ထို့ကြောင့်ပါတီနှစ်ခုသည်တည်ထောင်ထားသောအခြေအနေတွင်ရှိပြီးတစ် ဦး နှင့်တစ် ဦး အချက်အလက်များပေးပို့နိုင်သည်။

ယေဘုယျအားဖြင့် TCP connection in tcp connection in ရိယာများအတွက်သုံးလမ်းရှိလက်ဆွဲနှုတ်ဆက်ခြင်းလုပ်ငန်းစဉ်သည်ဆက်သွယ်မှုတည်ငြိမ်မှုနှင့်ယုံကြည်စိတ်ချရမှုများကိုစိတ်ရှုပ်ထွေးမှုများနှင့်စွန့်ပစ်ခြင်းကိုရှောင်ရှားရန်,


Post Time: Jan-08-2025