Tcp vs udp cover

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

یہاں ہم TCP اور UDP کا جائزہ لیں گے، یہ کیا ہیں، اور اگر آپ پراکسیز کے ساتھ کام کرتے ہیں تو انہیں سمجھنا کیوں اہم ہے۔

یہ خام HTML بلاک ہے۔
اس HTML کو تبدیل کرنے کے لئے edit بٹن پر کلک کریں

آپ کا پراکسی ورک فلو TCP اور UDP پر کیوں منحصر ہے

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

یہ بنیادی ٹرانسپورٹ طریقے ہیں اور پراکسی نظام میں تاخیر سے لے کر پیکٹس کی سالمیت تک ہر چیز پر اثر انداز ہوتے ہیں۔

TCP کو سمجھنا

TCP کا مطلب ہے Transmission Control Protocol۔ یہ پروٹوکول بائٹس کی ترسیل کے طریقے سے متعلق مخصوص یقین دہانیاں فراہم کرتا ہے۔ بنیادی طور پر یہ انٹرنیٹ کی بنیاد بنانے والے اہم پروٹوکولز میں سے ایک ہے۔ TCP اتنا مقبول اس لئے ہے کہ یہ بہت قابلِ اعتماد ہے۔

آپ جو بائٹ اسٹریم بھیجتے ہیں، اسے پیکٹس میں تقسیم کیا جاتا ہے اور ہر پیکٹ کے ساتھ اضافی معلومات شامل ہوتی ہیں۔ ان میں وہ پورٹ شامل ہو سکتی ہے جس پر آپ پیغام بھیج رہے ہیں، پیغام کا حجم، checksum اور sequence number۔ پھر یہ پیکٹ وصول کنندہ کو بھیجا جاتا ہے۔ وصول کنندہ اسے پا کر اس کی تصدیق کرتا ہے۔ مثلاً وہ اپنا checksum حساب کرتا ہے اور اسے پیکٹ میں موجود encoded checksum سے ملاتا ہے۔ اگر دونوں یکساں ہوں تو اس کا مطلب ہے کہ پیکٹ درست حالت میں پہنچا ہے۔ اس صورت میں وصول کرنے والا فریق ایک تصدیقی پیغام واپس بھیجتا ہے، مثلاً: مجھے اس sequence number والا packet مل گیا؛ براہ کرم اگلا بھیجیں۔

بھیجنے والے کی طرف، جب یہ تصدیق موصول ہو جاتی ہے تو اگلا پیکٹ بھیج دیا جاتا ہے۔ لیکن کبھی کبھار کوئی پیکٹ راستے میں گم ہو جاتا ہے۔ ایسی صورت میں وصول کنندہ دوبارہ checksum کا حساب کرتا ہے، اسے پیکٹ کے checksum سے ملاتا ہے، فرق دیکھتا ہے اور یوں جواب دیتا ہے: براہ کرم اس sequence number والا packet دوبارہ بھیجیں۔

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

UDP کیا ہے؟

UDP کا مطلب ہے User Datagram Protocol۔ یہ TCP سے کہیں سادہ ہے، لیکن یہ پروٹوکول قابلِ اعتمادی کی کوئی ضمانت نہیں دیتا۔ اس کے بجائے اس کا بنیادی فائدہ رفتار ہے۔

اہم فرق یہ ہے کہ UDP انفرادی پیغامات، یعنی datagrams، کے ساتھ کام کرتا ہے۔ ہر پیغام کی لمبائی مقرر ہوتی ہے اور اسے پیکٹس میں تقسیم کئے بغیر، کسی تصدیق کے انتظار کے بغیر، مکمل طور پر بھیج دیا جاتا ہے۔

اس بات کی کوئی ضمانت نہیں ہوتی کہ پیغام وصول کنندہ تک پہنچے گا بھی یا نہیں۔ پیغام بھیجا جا سکتا ہے، راستے میں گم ہو سکتا ہے، اور معاملہ وہیں ختم ہو جاتا ہے۔ وصول کنندہ کو یہ بھی معلوم نہیں ہوتا کہ کچھ بھیجا گیا تھا۔ پیغام خراب حالت میں بھی پہنچ سکتا ہے۔

UDP اس وقت مفید ہوتا ہے جب قابلِ اعتمادی سب سے اہم نہ ہو۔ یہ حقیقی وقت کی آڈیو یا ویڈیو کے لئے موزوں ہے، broadcast اور multicast کو سپورٹ کرتا ہے تاکہ بہت سے آلات تک تیزی سے پہنچا جا سکے، اور چیٹس، ملٹی پلیئر گیمز یا اسٹریمنگ میں مدد دیتا ہے۔ UDP تیز ہے کیونکہ اس میں تصدیق، دوبارہ ترسیل اور قابلِ اعتمادی کے اضافی طریقہ کار شامل نہیں ہوتے۔

TCP vs UDP

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

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

سکیورٹی کے پہلو سے کیا صورت ہے؟

TCP کنکشن پر مبنی ہے۔ تاہم، اس کا handshake mechanism SYN flood attacks میں استعمال کیا جا سکتا ہے، جہاں حملہ آور نامکمل کنکشن درخواستوں سے سرورز کو بے حد مصروف کر دیتے ہیں۔ TCP کنکشنز کو جعلی RST (reset) پیکٹس یا sequence number prediction attacks سے بھی متاثر کیا جا سکتا ہے۔ UDP کنکشن لیس ہے۔ یہ IP spoofing، reflection اور amplification attacks کے سامنے نسبتاً کم محفوظ ہے۔ اسی لئے بہت سے پراکسی فراہم کنندگان ممکنہ غلط استعمال کو کم کرنے کے لئے UDP ٹریفک کو محدود کرتے ہیں یا اس کی رفتار پر پابندی لگاتے ہیں۔

 

خصوصیت TCP UDP
ترسیل کی قسم کنکشن پر مبنی بغیر کنکشن
اعتماد پذیری زیادہ کم
رفتار سست تیز
پراکسی کے لئے موزونیت مستحکم کنکشنز کم تاخیر والے ٹریفک کے لئے مفید
DoS خطرات SYN floods کے لئے غیر محفوظ UDP floods کے لئے غیر محفوظ
欺骗 مشکل مگر ممکن handshake نہ ہونے کی وجہ سے آسان

پراکسیز TCP اور UDP ٹریفک کو کیسے سنبھالتی ہیں

زیادہ تر residential اور mobile پراکسیز دونوں پروٹوکولز کو سپورٹ کرتی ہیں، لیکن TCP عموماً ترجیحی انتخاب ہوتا ہے کیونکہ اس کا قابلِ اعتماد ڈیزائن سیشن پر مبنی کاموں، جیسے ویب اسکریپنگ یا API calls، کے لئے بہتر ہے۔ UDP کی سپورٹ موجود ہوتی ہے، مگر اسے اکثر رفتار کی پابندی یا فلٹر شدہ پورٹس کے ذریعے محدود کیا جاتا ہے۔ پراکسیز NAT اور پیکٹ ترجمہ بھی سنبھالتی ہیں تاکہ کلائنٹ آلات اور ہدف سرورز کے درمیان درخواست اور جواب کا بہاؤ درست رہے۔

TCP کنکشنز کو ٹریس اور مانیٹر کرنا نسبتاً آسان ہوتا ہے، جبکہ UDP تیز ترسیل اور کسی حد تک گمنامی فراہم کرتا ہے۔ تاہم پراکسی نیٹ ورکس میں اسے محدود کیا جا سکتا ہے، جس سے تاخیر کے لحاظ سے حساس ٹریفک متاثر ہوتی ہے۔

Share article: