نیٹ ورک پیکٹ بروکر TCP کنکشنز کے اہم اسرار: ٹرپل ہینڈ شیک کی ضرورت کو ختم کر دیا گیا

TCP کنکشن سیٹ اپ
جب ہم ویب براؤز کرتے ہیں، ای میل بھیجتے ہیں، یا کوئی آن لائن گیم کھیلتے ہیں، تو ہم اکثر اس کے پیچھے پیچیدہ نیٹ ورک کنکشن کے بارے میں نہیں سوچتے ہیں۔ تاہم، یہ بظاہر چھوٹے قدم ہیں جو ہمارے اور سرور کے درمیان مستحکم رابطے کو یقینی بناتے ہیں۔ سب سے اہم مراحل میں سے ایک TCP کنکشن سیٹ اپ ہے، اور اس کا بنیادی حصہ تین طرفہ مصافحہ ہے۔

یہ مضمون تین طرفہ مصافحہ کے اصول، عمل اور اہمیت پر تفصیل سے بحث کرے گا۔ مرحلہ وار، ہم اس بات کی وضاحت کریں گے کہ تین طرفہ مصافحہ کی ضرورت کیوں ہے، یہ کنکشن کے استحکام اور بھروسے کو کیسے یقینی بناتا ہے، اور ڈیٹا کی منتقلی کے لیے یہ کتنا اہم ہے۔ تین طرفہ مصافحہ کی گہری تفہیم کے ساتھ، ہم نیٹ ورک کمیونیکیشن کے بنیادی میکانزم کی بہتر تفہیم اور TCP کنکشنز کی وشوسنییتا کے بارے میں واضح نظریہ حاصل کریں گے۔

TCP تین طرفہ مصافحہ عمل اور ریاستی تبدیلیاں
TCP ایک کنکشن پر مبنی ٹرانسپورٹ پروٹوکول ہے، جس کے لیے ڈیٹا ٹرانسمیشن سے پہلے کنکشن اسٹیبلشمنٹ کی ضرورت ہوتی ہے۔ یہ کنکشن قائم کرنے کا عمل تین طرفہ مصافحہ کے ذریعے کیا جاتا ہے۔

 TCP تین طرفہ مصافحہ

آئیے ان TCP پیکٹوں پر گہری نظر ڈالتے ہیں جو ہر کنکشن میں بھیجے جاتے ہیں۔

ابتدائی طور پر، کلائنٹ اور سرور دونوں بند ہیں۔ سب سے پہلے، سرور فعال طور پر ایک بندرگاہ پر سنتا ہے اور LISTEN حالت میں ہے، جس کا مطلب ہے کہ سرور کو شروع کرنا ضروری ہے۔ اگلا، کلائنٹ ویب پیج تک رسائی شروع کرنے کے لیے تیار ہے۔ اسے سرور کے ساتھ کنکشن قائم کرنے کی ضرورت ہے۔ پہلے کنکشن پیکٹ کا فارمیٹ اس طرح ہے:

 SYN پیکٹ

جب ایک کلائنٹ ایک کنکشن شروع کرتا ہے، تو یہ ایک بے ترتیب ابتدائی ترتیب نمبر (client_isn) بناتا ہے اور اسے TCP ہیڈر کے "Sequence number" فیلڈ میں رکھتا ہے۔ ایک ہی وقت میں، کلائنٹ SYN پرچم کی پوزیشن کو 1 پر سیٹ کرتا ہے اس بات کی نشاندہی کرنے کے لیے کہ باہر جانے والا پیکٹ ایک SYN پیکٹ ہے۔ کلائنٹ اشارہ کرتا ہے کہ وہ سرور کو پہلا SYN پیکٹ بھیج کر سرور کے ساتھ رابطہ قائم کرنا چاہتا ہے۔ اس پیکٹ میں ایپلیکیشن لیئر ڈیٹا (یعنی بھیجے گئے ڈیٹا) پر مشتمل نہیں ہے۔ اس مقام پر، کلائنٹ کی حیثیت کو SYN-SENT کے بطور نشان زد کیا گیا ہے۔

SYN+ACK پیکٹ

جب سرور کسی کلائنٹ سے SYN پیکٹ وصول کرتا ہے، تو یہ تصادفی طور پر اپنا سیریل نمبر (server_isn) شروع کرتا ہے اور پھر اس نمبر کو TCP ہیڈر کے "سیریل نمبر" فیلڈ میں رکھتا ہے۔ اس کے بعد، سرور کلائنٹ_isn + 1 کو "اعتراف نمبر" فیلڈ میں داخل کرتا ہے اور SYN اور ACK دونوں بٹس کو 1 پر سیٹ کرتا ہے۔ آخر میں، سرور کلائنٹ کو پیکٹ بھیجتا ہے، جس میں کوئی ایپلیکیشن لیئر ڈیٹا نہیں ہوتا ہے (اور سرور کے لیے کوئی ڈیٹا نہیں ہوتا ہے۔ بھیجنا)۔ اس وقت، سرور SYN-RCVD حالت میں ہے۔

ACK پیکٹ

ایک بار جب کلائنٹ کو سرور سے پیکٹ مل جاتا ہے، تو اسے حتمی جوابی پیکٹ کا جواب دینے کے لیے درج ذیل اصلاح کرنے کی ضرورت ہوتی ہے: سب سے پہلے، کلائنٹ جوابی پیکٹ کے TCP ہیڈر کے ACK بٹ کو 1 پر سیٹ کرتا ہے۔ دوسرا، کلائنٹ "جواب نمبر کی تصدیق کریں" فیلڈ میں ویلیو سرور_isn + 1 داخل کرتا ہے۔ آخر میں، کلائنٹ سرور کو پیکٹ بھیجتا ہے. یہ پیکٹ کلائنٹ سے سرور تک ڈیٹا لے جا سکتا ہے۔ ان کارروائیوں کی تکمیل پر، کلائنٹ قائم حالت میں داخل ہو جائے گا۔

ایک بار جب سرور کو کلائنٹ سے جوابی پیکٹ موصول ہو جاتا ہے، تو یہ قائم حالت میں بھی چلا جاتا ہے۔

جیسا کہ آپ مندرجہ بالا عمل سے دیکھ سکتے ہیں، تین طرفہ مصافحہ کرتے وقت، تیسرے ہینڈ شیک کو ڈیٹا لے جانے کی اجازت ہے، لیکن پہلے دو مصافحہ نہیں ہیں۔ یہ ایک ایسا سوال ہے جو اکثر انٹرویوز میں پوچھا جاتا ہے۔ تین طرفہ مصافحہ مکمل ہونے کے بعد، دونوں فریق قائم شدہ حالت میں داخل ہوتے ہیں، جس سے ظاہر ہوتا ہے کہ کنکشن کامیابی کے ساتھ قائم ہو گیا ہے، اس وقت کلائنٹ اور سرور ایک دوسرے کو ڈیٹا بھیجنا شروع کر سکتے ہیں۔

تین مصافحہ کیوں؟ دو بار نہیں چار بار؟
عام جواب ہے، "کیونکہ تین طرفہ مصافحہ وصول کرنے اور بھیجنے کی صلاحیت کی ضمانت دیتا ہے۔" یہ جواب درست ہے، لیکن یہ صرف سطحی وجہ ہے، بنیادی وجہ کو آگے نہیں بڑھاتا۔ مندرجہ ذیل میں، میں تین پہلوؤں سے ٹرپل مصافحہ کی وجوہات کا تجزیہ کروں گا تاکہ اس مسئلے کے بارے میں ہماری سمجھ کو مزید گہرا کیا جا سکے۔

تین طرفہ مصافحہ مؤثر طریقے سے تاریخی طور پر دہرائے جانے والے رابطوں کے آغاز سے بچ سکتا ہے (بنیادی وجہ)
تین طرفہ مصافحہ اس بات کی ضمانت دیتا ہے کہ دونوں فریقوں کو ایک قابل اعتماد ابتدائی ترتیب نمبر موصول ہوا ہے۔
تین طرفہ مصافحہ وسائل کو ضائع ہونے سے بچاتا ہے۔

وجہ 1: تاریخی ڈپلیکیٹ شمولیت سے بچیں۔
مختصراً، تین طرفہ مصافحہ کی بنیادی وجہ پرانے ڈپلیکیٹ کنکشن کے آغاز کی وجہ سے پیدا ہونے والی الجھن سے بچنا ہے۔ ایک پیچیدہ نیٹ ورک ماحول میں، ڈیٹا پیکٹ کی ترسیل ہمیشہ مخصوص وقت کے مطابق منزل کے میزبان کو نہیں بھیجی جاتی ہے، اور نیٹ ورک کی بھیڑ اور دیگر وجوہات کی وجہ سے پرانے ڈیٹا پیکٹ پہلے منزل کے میزبان پر پہنچ سکتے ہیں۔ اس سے بچنے کے لیے، TCP کنکشن قائم کرنے کے لیے تین طرفہ مصافحہ کا استعمال کرتا ہے۔

تین طرفہ مصافحہ تاریخی ڈپلیکیٹ کنکشن سے بچتا ہے۔

جب ایک کلائنٹ یکے بعد دیگرے متعدد SYN کنکشن اسٹیبلشمنٹ پیکٹ بھیجتا ہے، نیٹ ورک کنجشن جیسے حالات میں، درج ذیل ہو سکتا ہے:

1- پرانے SYN پیکٹ تازہ ترین SYN پیکٹوں سے پہلے سرور پر پہنچ جاتے ہیں۔
2- پرانا SYN پیکٹ حاصل کرنے کے بعد سرور کلائنٹ کو SYN + ACK پیکٹ کا جواب دے گا۔
3- جب کلائنٹ کو SYN + ACK پیکٹ موصول ہوتا ہے، تو وہ اپنے سیاق و سباق کے مطابق یہ طے کرتا ہے کہ کنکشن ایک تاریخی کنکشن ہے (سلسلہ نمبر ختم یا ٹائم آؤٹ)، اور پھر کنکشن کو ختم کرنے کے لیے سرور کو RST پیکٹ بھیجتا ہے۔

دو ہاتھ ملانے والے کنکشن کے ساتھ، یہ تعین کرنے کا کوئی طریقہ نہیں ہے کہ آیا موجودہ کنکشن ایک تاریخی کنکشن ہے۔ تین طرفہ مصافحہ کلائنٹ کو یہ تعین کرنے کی اجازت دیتا ہے کہ آیا موجودہ کنکشن سیاق و سباق کی بنیاد پر ایک تاریخی کنکشن ہے جب وہ تیسرا پیکٹ بھیجنے کے لیے تیار ہو:

1- اگر یہ تاریخی کنکشن ہے (سلسلہ نمبر ایکسپائر یا ٹائم آؤٹ)، تیسرے ہینڈ شیک کے ذریعے بھیجا گیا پیکٹ تاریخی کنکشن کو ختم کرنے کے لیے ایک RST پیکٹ ہے۔
2- اگر یہ تاریخی کنکشن نہیں ہے تو، تیسری بار بھیجا جانے والا پیکٹ ACK پیکٹ ہے، اور دو بات چیت کرنے والے فریق کامیابی کے ساتھ کنکشن قائم کر لیتے ہیں۔

لہذا، TCP تین طرفہ مصافحہ کا استعمال کرنے کی بنیادی وجہ یہ ہے کہ یہ تاریخی رابطوں کو روکنے کے لیے کنکشن کو شروع کرتا ہے۔

وجہ 2: دونوں فریقوں کے ابتدائی ترتیب نمبروں کو ہم آہنگ کرنے کے لیے
TCP پروٹوکول کے دونوں اطراف کو ایک ترتیب نمبر برقرار رکھنا چاہیے، جو قابل اعتماد ترسیل کو یقینی بنانے کے لیے ایک اہم عنصر ہے۔ ترتیب نمبر TCP کنکشن میں اہم کردار ادا کرتے ہیں۔ وہ درج ذیل کام کرتے ہیں:

وصول کنندہ ڈپلیکیٹ ڈیٹا کو ختم کر سکتا ہے اور ڈیٹا کی درستگی کو یقینی بنا سکتا ہے۔

وصول کنندہ ڈیٹا کی سالمیت کو یقینی بنانے کے لیے ترتیب نمبر کے مطابق پیکٹ وصول کر سکتا ہے۔

● ترتیب نمبر ڈیٹا پیکٹ کی شناخت کر سکتا ہے جو دوسرے فریق کو موصول ہوا ہے، جس سے قابل اعتماد ڈیٹا کی ترسیل ممکن ہو سکتی ہے۔

لہذا، TCP کنکشن قائم کرنے پر، کلائنٹ ابتدائی ترتیب نمبر کے ساتھ SYN پیکٹ بھیجتا ہے اور سرور سے مطالبہ کرتا ہے کہ وہ ACK پیکٹ کے ساتھ جواب دے جو کلائنٹ کے SYN پیکٹ کے کامیاب استقبال کی نشاندہی کرے۔ پھر، سرور کلائنٹ کو ابتدائی ترتیب نمبر کے ساتھ SYN پیکٹ بھیجتا ہے اور کلائنٹ کے جواب کا انتظار کرتا ہے، ایک بار اور سب کے لیے، اس بات کو یقینی بنانے کے لیے کہ ابتدائی ترتیب نمبر قابل اعتماد طریقے سے مطابقت پذیر ہیں۔

دونوں جماعتوں کے ابتدائی سیریل نمبروں کو ہم وقت ساز کریں۔

اگرچہ چار طرفہ مصافحہ بھی دونوں فریقوں کے ابتدائی ترتیب نمبروں کو قابل اعتماد طریقے سے ہم آہنگ کرنے کے لیے ممکن ہے، لیکن دوسرے اور تیسرے مراحل کو ایک قدم میں ملایا جا سکتا ہے، جس کے نتیجے میں تین طرفہ مصافحہ ہوتا ہے۔ تاہم، دو مصافحہ صرف اس بات کی ضمانت دے سکتے ہیں کہ ایک فریق کا ابتدائی ترتیب نمبر دوسرے فریق کو کامیابی کے ساتھ موصول ہو گیا ہے، لیکن اس بات کی کوئی ضمانت نہیں ہے کہ دونوں فریقوں کے ابتدائی ترتیب نمبر کی تصدیق ہو سکتی ہے۔ لہذا، TCP کنکشنز کے استحکام اور بھروسے کو یقینی بنانے کے لیے تین طرفہ مصافحہ بہترین انتخاب ہے۔

وجہ 3: وسائل کو ضائع کرنے سے بچیں۔
اگر صرف ایک "دو ہینڈ شیک" ہے، جب کلائنٹ کی SYN کی درخواست نیٹ ورک میں بلاک ہوتی ہے، تو کلائنٹ سرور کی طرف سے بھیجا گیا ACK پیکٹ وصول نہیں کر سکتا، اس لیے SYN دوبارہ بھیج دیا جائے گا۔ تاہم، چونکہ کوئی تیسرا ہینڈ شیک نہیں ہے، اس لیے سرور اس بات کا تعین نہیں کر سکتا کہ آیا کلائنٹ کو کنکشن قائم کرنے کے لیے ACK کا اعتراف موصول ہوا ہے۔ لہذا، سرور ہر SYN درخواست موصول ہونے کے بعد ہی فعال طور پر ایک کنکشن قائم کر سکتا ہے۔ یہ مندرجہ ذیل کی طرف جاتا ہے:

وسائل کا ضیاع: اگر کلائنٹ کی SYN درخواست کو بلاک کر دیا جاتا ہے، جس کے نتیجے میں متعدد SYN پیکٹوں کی بار بار ترسیل ہوتی ہے، درخواست موصول ہونے کے بعد سرور متعدد بے کار غلط کنکشنز قائم کرے گا۔ اس سے سرور کے وسائل کا غیر ضروری ضیاع ہوتا ہے۔

پیغام برقرار رکھنا: تیسرے ہینڈ شیک کی کمی کی وجہ سے، سرور کے پاس یہ جاننے کا کوئی طریقہ نہیں ہے کہ آیا کلائنٹ نے کنکشن قائم کرنے کے لیے ACK کی تصدیق درست طریقے سے حاصل کی ہے۔ نتیجے کے طور پر، اگر پیغامات نیٹ ورک میں پھنس جاتے ہیں، تو کلائنٹ بار بار SYN کی درخواستیں بھیجتا رہے گا، جس کی وجہ سے سرور مسلسل نئے کنکشن قائم کرتا ہے۔ یہ نیٹ ورک کی بھیڑ اور تاخیر میں اضافہ کرے گا اور نیٹ ورک کی مجموعی کارکردگی کو منفی طور پر متاثر کرے گا۔

وسائل کو ضائع کرنے سے گریز کریں۔

لہذا، نیٹ ورک کنکشن کے استحکام اور بھروسے کو یقینی بنانے کے لیے، TCP کنکشن قائم کرنے کے لیے تین طرفہ مصافحہ کا استعمال کرتا ہے تاکہ ان مسائل کی موجودگی سے بچا جا سکے۔

خلاصہ
دینیٹ ورک پیکٹ بروکرTCP کنکشن کا قیام تین طرفہ مصافحہ کے ساتھ کیا جاتا ہے۔ تین طرفہ مصافحہ کے دوران، کلائنٹ پہلے سرور کو SYN پرچم کے ساتھ ایک پیکٹ بھیجتا ہے، جس سے یہ ظاہر ہوتا ہے کہ وہ کنکشن قائم کرنا چاہتا ہے۔ کلائنٹ کی طرف سے درخواست موصول ہونے کے بعد، سرور کلائنٹ کو SYN اور ACK جھنڈوں کے ساتھ ایک پیکٹ کا جواب دیتا ہے، جس سے ظاہر ہوتا ہے کہ کنکشن کی درخواست قبول کر لی گئی ہے، اور اپنا ابتدائی ترتیب نمبر بھیجتا ہے۔ آخر میں، کلائنٹ سرور کو ACK جھنڈے کے ساتھ جواب دیتا ہے تاکہ یہ ظاہر کیا جا سکے کہ کنکشن کامیابی سے قائم ہو گیا ہے۔ اس طرح، دونوں جماعتیں قائم حالت میں ہیں اور ایک دوسرے کو ڈیٹا بھیجنا شروع کر سکتی ہیں۔

عام طور پر، TCP کنکشن کے قیام کے لیے تین طرفہ مصافحہ کا عمل کنکشن کے استحکام اور بھروسے کو یقینی بنانے، تاریخی رابطوں پر ابہام اور وسائل کے ضیاع سے بچنے، اور اس بات کو یقینی بنانے کے لیے بنایا گیا ہے کہ دونوں فریق ڈیٹا وصول کرنے اور بھیجنے کے قابل ہیں۔


پوسٹ ٹائم: جنوری-08-2025