የቲሲፒ ግንኙነት ማዋቀር
ድሩን ስናስስ፣ ኢሜይል ስንልክ ወይም የመስመር ላይ ጨዋታ ስንጫወት፣ ብዙውን ጊዜ ከበስተጀርባው ስላለው ውስብስብ የአውታረ መረብ ግንኙነት አናስብም። ሆኖም ግን፣ በእኛ እና በአገልጋዩ መካከል የተረጋጋ ግንኙነትን የሚያረጋግጡት እነዚህ ትናንሽ የሚመስሉ እርምጃዎች ናቸው። በጣም አስፈላጊ ከሆኑት ደረጃዎች አንዱ የTCP ግንኙነት ማዋቀር ሲሆን የዚህም ዋና ነገር የሶስት መንገድ የእጅ መጨባበጥ ነው።
ይህ ጽሑፍ የሶስት መንገድ የእጅ መጨባበጥ መርህ፣ ሂደት እና አስፈላጊነት በዝርዝር ያብራራል። ደረጃ በደረጃ፣ የሶስት መንገድ የእጅ መጨባበጥ ለምን እንደሚያስፈልግ፣ የግንኙነት መረጋጋትን እና አስተማማኝነትን እንዴት እንደሚያረጋግጥ እና ለውሂብ ማስተላለፍ ምን ያህል አስፈላጊ እንደሆነ እናብራራለን። የሶስት መንገድ የእጅ መጨባበጥ በጥልቀት በመረዳት፣ የኔትወርክ ግንኙነት መሰረታዊ ዘዴዎችን በተሻለ ሁኔታ መረዳት እና የቲሲፒ ግንኙነቶችን አስተማማኝነት የበለጠ ግልጽ የሆነ እይታ እናገኛለን።
የTCP ባለ ሶስት አቅጣጫ የእጅ መጨባበጥ ሂደት እና የሁኔታ ሽግግሮች
TCP ግንኙነትን መሰረት ያደረገ የትራንስፖርት ፕሮቶኮል ሲሆን ከውሂብ ማስተላለፊያ በፊት ግንኙነት መፍጠርን ይጠይቃል። ይህ የግንኙነት ማቋቋም ሂደት የሚከናወነው በሶስት መንገድ የእጅ መጨባበጥ ነው።
በእያንዳንዱ ግንኙነት ውስጥ የሚላኩትን የ TCP ፓኬቶች በዝርዝር እንመልከት።
መጀመሪያ ላይ ደንበኛውም ሆነ አገልጋዩ ተዘግተዋል። በመጀመሪያ፣ አገልጋዩ በፖርት ላይ በንቃት ያዳምጣል እና በ LISTEN ሁኔታ ውስጥ ነው፣ ይህ ማለት አገልጋዩ መጀመር አለበት ማለት ነው። በመቀጠል፣ ደንበኛው የድረ-ገጹን መድረስ ለመጀመር ዝግጁ ነው። ከአገልጋዩ ጋር ግንኙነት መመስረት አለበት። የመጀመሪያው የግንኙነት ፓኬት ቅርጸት እንደሚከተለው ነው፡
ደንበኛ ግንኙነት ሲጀምር፣ የዘፈቀደ የመጀመሪያ የቅደም ተከተል ቁጥር (client_isn) ይፈጥራል እና በTCP ራስጌ "ቅደም ተከተል ቁጥር" መስክ ውስጥ ያስቀምጠዋል። በተመሳሳይ ጊዜ፣ ደንበኛው የሚወጣው ፓኬት የSYN ፓኬት መሆኑን ለማመልከት የSYN ባንዲራ ቦታን ወደ 1 ያስቀምጣል። ደንበኛው የመጀመሪያውን የSYN ፓኬት ወደ አገልጋዩ በመላክ ከአገልጋዩ ጋር ግንኙነት መመስረት እንደሚፈልግ ያሳያል። ይህ ፓኬት የመተግበሪያ ንብርብር ውሂብ (ማለትም የተላከ ውሂብ) አልያዘም። በዚህ ጊዜ፣ የደንበኛው ሁኔታ SYN-SENT ተብሎ ምልክት ይደረግበታል።
አንድ አገልጋይ ከደንበኛ የSYN ፓኬት ሲቀበል፣ የራሱን ተከታታይ ቁጥር (server_isn) በዘፈቀደ ያስጀምራል ከዚያም ያንን ቁጥር በTCP ራስጌ "ተከታታይ ቁጥር" መስክ ውስጥ ያስቀምጣል። በመቀጠል፣ አገልጋዩ በ"የማረጋገጫ ቁጥር" መስክ ውስጥ client_isn + 1 ያስገባል እና ሁለቱንም SYN እና ACK ቢትስ ወደ 1 ያዘጋጃል። በመጨረሻም፣ አገልጋዩ ፓኬቱን ወደ ደንበኛው ይልካል፣ ይህም ምንም የመተግበሪያ-ንብርብር ውሂብ (እና አገልጋዩ የሚልክበት ምንም ውሂብ) የለውም። በዚህ ጊዜ አገልጋዩ በSYN-RCVD ሁኔታ ውስጥ ነው።
ደንበኛው ፓኬቱን ከአገልጋዩ እንደተቀበለ፣ የመጨረሻውን የመልስ ፓኬት ምላሽ ለመስጠት የሚከተሉትን ማሻሻያዎች ማድረግ ያስፈልገዋል፡- በመጀመሪያ፣ ደንበኛው የመልስ ፓኬቱን የTCP ራስጌ ACK ክፍል ወደ 1 ያዘጋጃል፤ ሁለተኛ፣ ደንበኛው በ"የመልስ ቁጥር ማረጋገጫ" መስክ ውስጥ ያለውን እሴት server_isn + 1 ያስገባል፤ በመጨረሻም፣ ደንበኛው ፓኬቱን ወደ አገልጋዩ ይልካል። ይህ ፓኬት ከደንበኛው ወደ አገልጋዩ ውሂብ ሊያስተላልፍ ይችላል። እነዚህ ስራዎች ሲጠናቀቁ፣ ደንበኛው ወደ ESTABLISHED ሁኔታ ይገባል።
አገልጋዩ የመልስ ፓኬቱን ከደንበኛው እንደተቀበለ፣ ወደ ESTABLISHED ሁኔታም ይቀየራል።
ከላይ ከተጠቀሰው ሂደት እንደሚታየው፣ የሶስት መንገድ የእጅ ጭብጨባ ሲያደርጉ፣ ሦስተኛው የእጅ ጭብጨባ ውሂብ እንዲይዝ ይፈቀድለታል፣ ነገር ግን የመጀመሪያዎቹ ሁለት የእጅ ጭብጨባዎች አይደሉም። ይህ በቃለ-መጠይቆች ውስጥ ብዙ ጊዜ የሚጠየቅ ጥያቄ ነው። የሶስት መንገድ የእጅ ጭብጨባ አንዴ ከተጠናቀቀ፣ ሁለቱም ወገኖች ወደ ተቋቁሟል ሁኔታ ይገባሉ፣ ይህም ግንኙነቱ በተሳካ ሁኔታ መቋቋሙን ያሳያል፣ በዚህ ጊዜ ደንበኛው እና አገልጋዩ እርስ በእርስ ውሂብ መላክ መጀመር ይችላሉ።
ለምን ሶስት እጅ መጨባበጥ? ሁለት ጊዜ አይደለም፣ አራት ጊዜ?
የተለመደው መልስ "የሶስት አቅጣጫ የእጅ መጨባበጥ የመቀበልና የመላክ ችሎታን ስለሚያረጋግጥ" የሚል ነው። ይህ መልስ ትክክል ነው፣ ነገር ግን የገጽታ ምክንያት ብቻ ነው፣ ዋናውን ምክንያት አያቀርብም። በሚቀጥለው፣ የዚህን ጉዳይ ግንዛቤ የበለጠ ለማሳደግ የሶስትዮሽ የእጅ መጨባበጥ ምክንያቶችን ከሶስት ገጽታዎች እመረምራለሁ።
የሶስት አቅጣጫ የእጅ መጨባበጥ በታሪክ የተደጋገሙ ግንኙነቶችን መጀመርን ውጤታማ በሆነ መንገድ ያስወግዳል (ዋናው ምክንያት)
የሶስት አቅጣጫ የእጅ መጨባበጥ ሁለቱም ወገኖች አስተማማኝ የመጀመሪያ ቅደም ተከተል ቁጥር እንደሚያገኙ ያረጋግጣል።
የሶስት አቅጣጫ የእጅ መጨባበጥ ሀብትን ከማባከን ይቆጠባል።
ምክንያት 1፡ ታሪካዊ የተባዙ መጋጠሚያዎችን ያስወግዱ
ባጭሩ፣ የሶስት አቅጣጫ የእጅ መጨባበጥ ዋናው ምክንያት በአሮጌው የተባዛ ግንኙነት ጅምር ምክንያት የሚፈጠረውን ግራ መጋባት ለማስወገድ ነው። ውስብስብ በሆነ የአውታረ መረብ አካባቢ፣ የውሂብ ፓኬቶች ስርጭት ሁልጊዜ ወደ መድረሻ አስተናጋጅ በተጠቀሰው ጊዜ መሠረት አይላክም፣ እና አሮጌ የውሂብ ፓኬቶች በአውታረ መረብ መጨናነቅ እና በሌሎች ምክንያቶች መጀመሪያ ወደ መድረሻ አስተናጋጅ ሊደርሱ ይችላሉ። ይህንን ለማስቀረት፣ TCP ግንኙነቱን ለመመስረት የሶስት አቅጣጫ የእጅ መጨባበጥ ይጠቀማል።
አንድ ደንበኛ በርካታ የSYN ግንኙነት ማቋቋሚያ ፓኬቶችን በተከታታይ ሲልክ፣ እንደ የአውታረ መረብ መጨናነቅ ባሉ ሁኔታዎች ውስጥ፣ የሚከተሉት ሊከሰቱ ይችላሉ፡
1- የድሮው የSYN ፓኬቶች የቅርብ ጊዜ የSYN ፓኬቶች ከመድረሳቸው በፊት ወደ አገልጋዩ ይደርሳሉ።
2- አገልጋዩ የድሮውን የSYN ፓኬት ከተቀበለ በኋላ ለደንበኛው የSYN + ACK ፓኬት ምላሽ ይሰጣል።
3- ደንበኛው የSYN + ACK ፓኬት ሲቀበል፣ ግንኙነቱ እንደየሁኔታው ታሪካዊ ግንኙነት (የቅደም ተከተል ቁጥር ጊዜው ያለፈበት ወይም ጊዜው ያለፈበት) መሆኑን ይወስናል፣ ከዚያም ግንኙነቱን ለማቋረጥ የRST ፓኬትን ወደ አገልጋዩ ይልካል።
በሁለት እጅ መጨባበጥ ግንኙነት፣ የአሁኑ ግንኙነት ታሪካዊ ግንኙነት መሆኑን ወይም አለመሆኑን ለመወሰን ምንም መንገድ የለም። ባለ ሶስት አቅጣጫ የእጅ መጨባበጥ ደንበኛው የአሁኑ ግንኙነት ታሪካዊ ግንኙነት መሆኑን ወይም አለመሆኑን ለመወሰን ያስችለዋል፣ ይህም ሶስተኛውን ፓኬት ለመላክ ዝግጁ ሲሆን፡
1- ታሪካዊ ግንኙነት ከሆነ (የቅደም ተከተል ቁጥር ጊዜው ያለፈበት ወይም ጊዜው ያለፈበት)፣ በሦስተኛው እጅ መጨባበጥ የተላከው ፓኬት ታሪካዊ ግንኙነቱን ለማቋረጥ የRST ፓኬት ነው።
2- ታሪካዊ ግንኙነት ካልሆነ፣ ለሶስተኛ ጊዜ የተላከው ፓኬት የኤሲኬ ፓኬት ሲሆን ሁለቱ የመገናኛ አካላት ግንኙነቱን በተሳካ ሁኔታ ያቋቁማሉ።
ስለዚህ፣ TCP የሶስት አቅጣጫ የእጅ መጨባበጥን የሚጠቀምበት ዋናው ምክንያት ታሪካዊ ግንኙነቶችን ለመከላከል ግንኙነቱን ማስጀመር ነው።
ምክንያት 2፡ የሁለቱም ወገኖች የመጀመሪያ ቅደም ተከተል ቁጥሮችን ለማመሳሰል
የTCP ፕሮቶኮል ሁለቱም ወገኖች የቅደም ተከተል ቁጥር መያዝ አለባቸው፣ ይህም አስተማማኝ ስርጭትን ለማረጋገጥ ቁልፍ ነገር ነው። የቅደም ተከተል ቁጥሮች በTCP ግንኙነቶች ውስጥ ትልቅ ሚና ይጫወታሉ። የሚከተሉትን ያደርጋሉ፡
ተቀባዩ የተባዛ ውሂብን ማስወገድ እና የውሂቡን ትክክለኛነት ማረጋገጥ ይችላል።
ተቀባዩ የውሂቡን ትክክለኛነት ለማረጋገጥ በቅደም ተከተል ቁጥር ቅደም ተከተል ፓኬጆችን መቀበል ይችላል።
● የቅደም ተከተል ቁጥሩ በሌላኛው ወገን የተቀበለውን የውሂብ ፓኬት መለየት ይችላል፣ ይህም አስተማማኝ የውሂብ ማስተላለፍን ያስችላል።
ስለዚህ፣ የTCP ግንኙነት ሲመሰረት፣ ደንበኛው የመጀመሪያውን የቅደም ተከተል ቁጥር የያዙ የSYN ፓኬቶችን ይልካል እና አገልጋዩ የደንበኛውን የSYN ፓኬት በተሳካ ሁኔታ መቀበሉን የሚያሳይ የACK ፓኬት ምላሽ እንዲሰጥ ይጠይቃል። ከዚያም አገልጋዩ የመጀመሪያውን የቅደም ተከተል ቁጥር የያዘውን የSYN ፓኬት ለደንበኛው ይልካል እና ደንበኛው የመጀመሪያ የቅደም ተከተል ቁጥሮች በአስተማማኝ ሁኔታ መመሳሰላቸውን ለማረጋገጥ ለአንዴና ለመጨረሻ ጊዜ ምላሽ እስኪሰጥ ይጠብቃል።
ምንም እንኳን የአራት አቅጣጫ የእጅ መጨባበጥ የሁለቱንም ወገኖች የመጀመሪያ ቅደም ተከተል ቁጥሮች በአስተማማኝ ሁኔታ ማመሳሰል ቢቻልም፣ ሁለተኛውና ሦስተኛው ደረጃዎች ወደ አንድ ደረጃ ሊጣመሩ ይችላሉ፣ ይህም የሶስት አቅጣጫ የእጅ መጨባበጥ ያስከትላል። ሆኖም፣ ሁለቱ የእጅ መጨባበጦች የአንድ ወገን የመጀመሪያ ቅደም ተከተል ቁጥር በሌላኛው ወገን በተሳካ ሁኔታ መቀበሉን ብቻ ሊያረጋግጡ ይችላሉ፣ ነገር ግን የሁለቱም ወገኖች የመጀመሪያ ቅደም ተከተል ቁጥር መረጋገጡን የሚያረጋግጥ ምንም ዋስትና የለም። ስለዚህ፣ የቲሲፒ ግንኙነቶችን መረጋጋት እና አስተማማኝነት ለማረጋገጥ የሶስት አቅጣጫ የእጅ መጨባበጥ ምርጡ ምርጫ ነው።
ምክንያት 3፡ ሀብቶችን ከማባከን መቆጠብ
የደንበኛው የSYN ጥያቄ በአውታረ መረቡ ውስጥ ሲታገድ "ሁለት እጅ መጨባበጥ" ብቻ ከሆነ፣ ደንበኛው በአገልጋዩ የተላከውን የACK ፓኬት መቀበል አይችልም፣ ስለዚህ SYN እንደገና ይላካል። ሆኖም፣ ሶስተኛ እጅ መጨባበጥ ስለሌለ፣ አገልጋዩ ደንበኛው ግንኙነቱን ለመመስረት የACK ማረጋገጫ ማግኘቱን ወይም አለመሆኑን ማወቅ አይችልም። ስለዚህ፣ አገልጋዩ እያንዳንዱን የSYN ጥያቄ ከተቀበለ በኋላ ብቻ ግንኙነት መመስረት ይችላል። ይህ ወደሚከተሉት ይመራል፡
የሀብት ብክነት፡ የደንበኛው የSYN ጥያቄ ከታገደ፣ ይህም ብዙ የSYN ፓኬቶችን በተደጋጋሚ ማስተላለፍን ያስከትላል፣ አገልጋዩ ጥያቄውን ከተቀበለ በኋላ ብዙ አላስፈላጊ ልክ ያልሆኑ ግንኙነቶችን ይፈጥራል። ይህም የአገልጋይ ሀብቶችን አላስፈላጊ ብክነት ያስከትላል።
የመልእክት ማቆየት፡- ለሶስተኛ ጊዜ የሚደረግ የእጅ መጨባበጥ ባለመኖሩ፣ አገልጋዩ ደንበኛው ግንኙነቱን ለመመስረት የACK እውቅና በትክክል ማግኘቱን ወይም አለመሆኑን የሚያውቅበት መንገድ የለውም። በዚህም ምክንያት፣ መልዕክቶች በአውታረ መረቡ ውስጥ ከተጣበቁ፣ ደንበኛው የSYN ጥያቄዎችን ደጋግሞ መላክን ይቀጥላል፣ ይህም አገልጋዩ ያለማቋረጥ አዳዲስ ግንኙነቶችን እንዲያቋቁም ያደርጋል። ይህ የአውታረ መረብ መጨናነቅንና መዘግየትን ይጨምራል እንዲሁም አጠቃላይ የአውታረ መረብ አፈፃፀምን አሉታዊ ተጽዕኖ ያሳድራል።
ስለዚህ የአውታረ መረብ ግንኙነቱን መረጋጋት እና አስተማማኝነት ለማረጋገጥ፣ TCP የእነዚህ ችግሮች እንዳይከሰቱ ለመከላከል ግንኙነቱን ለመመስረት የሶስት አቅጣጫ የእጅ መጨባበጫ ይጠቀማል።
ማጠቃለያ
የየአውታረ መረብ ፓኬት ደላላየቲሲፒ ግንኙነት መመስረት የሚከናወነው በሶስት መንገድ የእጅ መጨባበጥ ነው። በሶስት መንገድ የእጅ መጨባበጥ ወቅት፣ ደንበኛው መጀመሪያ የSYN ባንዲራ ያለበት ፓኬት ወደ አገልጋዩ ይልካል፣ ይህም ግንኙነት መመስረት እንደሚፈልግ ያሳያል። ከደንበኛው ጥያቄውን ከተቀበለ በኋላ፣ አገልጋዩ የSYN እና የACK ባንዲራዎች ያሉት ፓኬት ለደንበኛው ይመልሳል፣ ይህም የግንኙነት ጥያቄው ተቀባይነት እንዳገኘ ያሳያል፣ እና የራሱን የመጀመሪያ ቅደም ተከተል ቁጥር ይልካል። በመጨረሻም፣ ደንበኛው ግንኙነቱ በተሳካ ሁኔታ መቋቋሙን ለማመልከት በአገልጋዩ ላይ የACK ባንዲራ ይመልሳል። ስለዚህ፣ ሁለቱ ወገኖች በተቋቋመ ሁኔታ ውስጥ ናቸው እና እርስ በእርስ ውሂብ መላክ መጀመር ይችላሉ።
በአጠቃላይ፣ የቲሲፒ ግንኙነት ማቋቋም የሶስት አቅጣጫ የእጅ መጨባበጥ ሂደት የግንኙነት መረጋጋትን እና አስተማማኝነትን ለማረጋገጥ፣ በታሪካዊ ግንኙነቶች ምክንያት ግራ መጋባትን እና የሀብት ብክነትን ለማስወገድ እና ሁለቱም ወገኖች ውሂብ መቀበል እና መላክ መቻላቸውን ለማረጋገጥ የተነደፈ ነው።
የፖስታ ሰዓት፡- ጥር-08-2025






