TCP/IP ایک پروٹوکول اسٹیک ہے جو انٹرنیٹ اور زیادہ تر کمپیوٹر نیٹ ورکس کی بنیاد ہے۔ یہ TCP پروٹوکول، جو قابل اعتماد ڈیٹا کی ترسیل کا ذمہ دار ہے، اور IP، جو نوڈس کے درمیان پیکٹ روٹنگ کو یقینی بناتا ہے، کو یکجا کرتا ہے۔ IETF RFC 1180 (2024) کے مطابق، TCP/IP اسٹیک موبائل اور ویب ایپلیکیشنز سمیت عالمی نیٹ ورک ٹریفک کا 80% سے زیادہ پروسیس کرتا ہے۔ پروٹوکول اسٹیک اس بات کی وضاحت کرتا ہے کہ ڈیٹا کو نیٹ ورک میں آلات کے درمیان کیسے پیکج، ایڈریس اور منتقل کیا جاتا ہے۔
اہم نکات
TCP/IP (Transmission Control Protocol / Internet Protocol) ایک پروٹوکول اسٹیک ہے جو 1970 کی دہائی میں ARPANET کے لیے تیار کیا گیا تھا اور عالمی انٹرنیٹ کے لیے حقیقی معیار بن گیا ہے۔ یہ اس بات کی وضاحت کرتا ہے کہ ڈیٹا کو پیکٹ میں کیسے تقسیم، ایڈریس، منتقل اور وصول کنندہ کی طرف دوبارہ جمع کیا جاتا ہے۔
TCP/IP آرکیٹیکچر کثیر سطحی اصول پر بنایا گیا ہے، جہاں ہر پرت مخصوص افعال کو تجرید کرتی ہے۔ ایپلیکیشن پرت ایپلیکیشن ڈیٹا کے ساتھ کام کرتی ہے، ٹرانسپورٹ پرت اعتماد کو یقینی بناتی ہے، نیٹ ورک پرت روٹنگ کو سنبھالتی ہے اور لنک پرت فزیکل ٹرانسمیشن کا انتظام کرتی ہے۔ ماڈیولریٹی پڑوسی پرتوں کو متاثر کیے بغیر ایک پرت کے اندر پروٹوکول تبدیل کرنے کی اجازت دیتی ہے۔
موبائل ڈویلپمنٹ میں، TCP/IP ہر ایپلیکیشن کے ذریعے استعمال ہوتا ہے جو نیٹ ورک کی درخواستیں کرتی ہے۔ URLSession، OkHttp، AFNetworking اور Alamofire جیسی لائبریریاں اس اسٹیک کے اوپر کام کرتی ہیں، ڈویلپر سے پیکٹ پیکجنگ اور روٹنگ کی تفصیلات چھپاتی ہیں۔ تاہم، کارکردگی کو بہتر بنانے کے لیے TCP/IP کو سمجھنا ضروری ہے: URLSessionConfiguration کے ذریعے TCP پیرامیٹرز کو کنفیگر کرنا ٹائم آؤٹ کو منظم کرنے، HTTP مستقل کنکشن برقرار رکھنے اور انٹرپرائز ماحول کے لیے پراکسی سیٹ اپ کرنے کی اجازت دیتا ہے۔
نیٹ ورک کے مسائل کی تشخیص کے لیے TCP/IP کو سمجھنا ضروری ہے: اگر کوئی ایپلیکیشن سرور سے کنیکٹ نہیں ہو سکتی تو مسئلہ اسٹیک کی کسی بھی پرت پر ہو سکتا ہے — فزیکل چینل سے لے کر ایپلیکیشن پروٹوکول تک۔ tcpdump، Wireshark اور Charles Proxy جیسے ٹولز ہر پرت پر ٹریفک کا تجزیہ کرنے اور رکاوٹیں تلاش کرنے کی اجازت دیتے ہیں۔ موبائل ڈویلپرز کے لیے، Xcode Network Debug Dashboard فراہم کرتا ہے اور Android Studio ریئل ٹائم میں TCP کنکشن کا تجزیہ کرنے کے لیے Network Inspector فراہم کرتا ہے۔
TCP/IP ماڈل میں چار پرتیں شامل ہیں، ہر ایک ڈیٹا کی ترسیل کے دوران سختی سے متعین افعال انجام دیتی ہے۔ اس درجہ بندی کو سمجھنا نیٹ ورک کے مسائل کی تشخیص اور ایپلیکیشنز کو بہتر بنانے کے لیے ضروری ہے۔
ایپلیکیشن پرت پر وہ پروٹوکول کام کرتے ہیں جن کے ساتھ ایپلیکیشنز براہ راست تعامل کرتی ہیں: HTTP، HTTPS، FTP، SMTP، DNS، WebSocket۔ یہ پرت ڈیٹا کو اس طرح فارمیٹ کرتی ہے جسے ایپلیکیشن سمجھتی ہے اور اسے ٹرانسپورٹ پرت کو بھیجتی ہے۔ موبائل ایپلیکیشن ڈویلپر نیٹ ورکنگ لائبریریوں کے ذریعے اس پرت پر کام کرتے ہیں۔
ٹرانسپورٹ پرت مختلف آلات پر ایپلیکیشنز کے درمیان ڈیٹا کی ترسیل کو یقینی بناتی ہے۔ اہم پروٹوکول TCP (تصدیق کے ساتھ قابل اعتماد ترسیل) اور UDP (ضمانت کے بغیر تیز ترسیل) ہیں۔ TCP ڈیٹا میں بھیجنے والے اور وصول کنندہ کے پورٹس شامل کرتا ہے، پیکٹ کی ترتیب کا انتظام کرتا ہے اور نیٹ ورک کی بھیڑ کو کنٹرول کرتا ہے۔
نیٹ ورک پرت IP پروٹوکول کے ذریعے لاگو کی جاتی ہے، جو ایڈریسنگ (IPv4، IPv6) اور پیکٹ روٹنگ کی وضاحت کرتا ہے۔ ہر پیکٹ میں بھیجنے والے اور وصول کنندہ کے IP پتے ہوتے ہیں، اور راستے میں موجود روٹر روٹنگ ٹیبلز کی بنیاد پر اگلے نوڈ کے بارے میں فیصلے کرتے ہیں۔ IPv4 32 بٹ پتے (تقریباً 4.3 بلین) استعمال کرتا ہے، جبکہ IPv6 128 بٹ پتے استعمال کرتا ہے، جو پتوں کی کمی کے مسئلے کو حل کرتا ہے۔
لنک پرت فزیکل ٹرانسمیشن میڈیم کے ساتھ کام کرتی ہے: Ethernet، Wi-Fi، Bluetooth۔ یہ پرت پیکٹوں کو سگنلز میں اور واپس تبدیل کرتی ہے، MAC پتوں کے ذریعے ٹرانسمیشن میڈیم تک رسائی کا انتظام کرتی ہے اور فریم چیک سیکوینس (FCS) کا استعمال کرتے ہوئے فزیکل پرت کی غلطیوں کا پتہ لگاتی ہے۔
لنک پرت پر ARP (ایڈریس ریزولوشن پروٹوکول) جیسے پروٹوکول کام کرتے ہیں، جو مقامی نیٹ ورک میں آلات کے IP پتوں کو MAC پتوں میں تبدیل کرتا ہے، اور PPP (پوائنٹ ٹو پوائنٹ پروٹوکول)، جو VPN کنکشنز اور موبائل ڈیٹا نیٹ ورکس میں استعمال ہوتا ہے۔
| پرت | پروٹوکول | فعل |
|---|---|---|
| ایپلیکیشن | HTTP, HTTPS, DNS, FTP, WebSocket | ایپلیکیشن ڈیٹا کی فارمیٹنگ |
| ٹرانسپورٹ | TCP, UDP | ایپلیکیشنز کے درمیان ترسیل، غلطی کنٹرول |
| نیٹ ورک | IP, ICMP, ARP | پیکٹ روٹنگ اور ایڈریسنگ |
| لنک | Ethernet, Wi-Fi, PPP | فزیکل میڈیم پر ترسیل |
TCP (Transmission Control Protocol) ٹرانسپورٹ پرت کے اہم پروٹوکول میں سے ایک ہے۔ یہ ایپلیکیشنز کے درمیان بائٹ اسٹریم کی قابل اعتماد، ترتیب شدہ اور غلطی سے جانچی گئی ترسیل کو یقینی بناتا ہے۔ ڈیٹا منتقل کرنے سے پہلے، TCP تین مرحلہ مصافحہ کے ذریعے کنکشن قائم کرتا ہے۔
تین مرحلہ مصافحہ (تھری وے ہینڈ شیک) کلائنٹ کے SYN پیکٹ بھیجنے سے شروع ہوتا ہے۔ سرور SYN-ACK پیکٹ کے ساتھ جواب دیتا ہے، وصولی کی تصدیق کرتا ہے۔ کلائنٹ ACK پیکٹ کے ساتھ مصافحہ مکمل کرتا ہے، جس کے بعد ڈیٹا کی ترسیل شروع ہوتی ہے۔ یہ عمل اس بات کو یقینی بناتا ہے کہ دونوں فریق تبادلے کے لیے تیار ہیں اور ترتیب نمبروں پر ہم آہنگ ہیں۔
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('example.com', 80))
sock.send(b'GET / HTTP/1.1\r\nHost: example.com\r\n\r\n')
response = sock.recv(4096)
print(response.decode())
sock.close()
مثال میں، SOCK_STREAM قسم کے ساتھ ایک TCP ساکٹ بنایا گیا ہے، جو connect کال ہونے پر خود بخود تین مرحلہ مصافحہ انجام دیتا ہے۔ send طریقہ HTTP درخواست بھیجتا ہے اور recv جواب وصول کرتا ہے۔ مکمل ہونے کے بعد، close کنکشن کو مناسب طریقے سے بند کرنے کے لیے FIN پیکٹ بھیجتا ہے۔
آئیے Python میں TCP سرور کی ایک مثال دیکھتے ہیں جو تھریڈز کے ذریعے متعدد کلائنٹس کو قبول کرتا ہے۔ ہر کنکشن کو الگ تھریڈ میں سنبھالا جاتا ہے، جس سے مرکزی لوپ کو روکے بغیر ایک ساتھ متعدد کلائنٹس کی خدمت ممکن ہوتی ہے۔
import socket
import threading
def handle_client(conn, addr):
print(f'کلائنٹ منسلک: {addr}')
with conn:
while True:
data = conn.recv(1024)
if not data:
break
conn.sendall(data.upper())
print(f'کلائنٹ {addr} منقطع')
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(('0.0.0.0', 9090))
server.listen(5)
print('TCP سرور پورٹ 9090 پر شروع ہوا')
while True:
conn, addr = server.accept()
thread = threading.Thread(target=handle_client, args=(conn, addr))
thread.start()
TCP سرور ہر کنکشن کو الگ تھریڈ میں سنبھالتا ہے، لامحدود لوپ میں accept کال کرتا ہے۔ handle_client فنکشن ڈیٹا وصول کرتا ہے، اسے بڑے حروف میں تبدیل کرتا ہے اور sendall کے ذریعے واپس بھیجتا ہے۔ جب recv لوپ ختم ہوتا ہے (جب کلائنٹ کنکشن بند کرتا ہے)، تھریڈ ختم ہو جاتا ہے اور ساکٹ خود بخود بند ہو جاتا ہے۔ موبائل ایپلیکیشنز میں، اس طرح کا کم سطحی ساکٹ کام براہ راست استعمال نہیں ہوتا — موبائل HTTP لائبریریاں تھریڈ پولز کے ذریعے کنکشن کا انتظام کرتی ہیں اور خود بخود TCP کنکشن دوبارہ استعمال کرتی ہیں۔
TCP اور UDP کے درمیان انتخاب نیٹ ورک کمیونیکیشن ڈیزائن کرتے وقت اہم فیصلوں میں سے ایک ہے۔ TCP اضافی تاخیر کی قیمت پر ترسیل، ترتیب اور ڈیٹا کی سالمیت کو یقینی بناتا ہے۔ UDP کم سے کم تاخیر اور کم چینل بوجھ کے لیے اعتماد قربان کرتا ہے۔
| خصوصیت | TCP | UDP |
|---|---|---|
| کنکشن | قائم کرتا ہے (مصافحہ) | قائم نہیں کرتا |
| اعتماد | ترسیل کی ضمانت دیتا ہے | ضمانت نہیں دیتا |
| پیکٹ ترتیب | ترتیب دیتا ہے | ترتیب نہیں دیتا |
| رفتار | کم | زیادہ |
| استعمال | ویب، ای میل، فائلیں | سٹریمنگ، گیمز، DNS |
موبائل ایپلیکیشنز کے لیے، پروٹوکول کا انتخاب منظر نامے پر منحصر ہے: REST APIs اور ڈیٹا لوڈنگ کے لیے TCP درکار ہے، جبکہ ویڈیو کالز اور آن لائن گیمز UDP کی رفتار سے فائدہ اٹھاتے ہیں۔ کچھ ایپلیکیشنز دونوں پروٹوکول کو یکجا کرتی ہیں — کنٹرول کے لیے TCP اور میڈیا سٹریمنگ کے لیے UDP۔ جدید QUIC پروٹوکول، جو UDP پر چلتا ہے اور HTTP/3 میں استعمال ہوتا ہے، دونوں طریقوں کے فوائد کو یکجا کرتا ہے اور iOS اور Android پر URLSession کے ذریعے خود بخود سپورٹ کیا جاتا ہے۔
آئیے غلطی ہینڈلنگ اور ٹائم آؤٹ کے ساتھ Python میں TCP کلائنٹ کی ایک مثال دیکھتے ہیں۔ یہ طریقہ موبائل ایپلیکیشنز میں قابل اعتماد سرور کنکشن کے لیے استعمال ہوتا ہے۔
import socket
import sys
def tcp_client(host, port):
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(10)
sock.connect((host, port))
print(f'{host}:{port} سے منسلک')
return sock
except socket.error as err:
print(f'کنکشن کی خرابی: {err}')
sys.exit(1)
sock = tcp_client('api.example.com', 443)
sock.close()
tcp_client فنکشن ایک ہوسٹ اور پورٹ لیتا ہے، 10 سیکنڈ کے ٹائم آؤٹ کے ساتھ ایک ساکٹ بناتا ہے اور کنیکٹ کرنے کی کوشش کرتا ہے۔ کنکشن کی غلطی پر — مثال کے طور پر، سرور دستیاب نہ ہو یا فائر وال بلاک کر رہا ہو — مسئلے کی تفصیل کے ساتھ ایک استثناء پھینکا جاتا ہے۔ موبائل ایپلیکیشنز میں، کنکشن ٹائم آؤٹ اہم ہے: بہت چھوٹا سست نیٹ ورکس پر غلط خرابیوں کا باعث بنتا ہے، بہت لمبا انٹرفیس منجمد ہونے کا باعث بنتا ہے۔ موبائل نیٹ ورکس کے لیے تجویز کردہ قیمت URLSession کنفیگریشن میں timeoutIntervalForRequest کے لیے 10–15 سیکنڈ اور timeoutIntervalForResource کے لیے 30–60 سیکنڈ ہے۔
اکثر پوچھے گئے سوالات
IP روٹنگ کا ذمہ دار ہے — درمیانی نوڈس کے ذریعے بھیجنے والے سے وصول کنندہ تک پیکٹ پہنچانا۔ TCP ڈیٹا کی قابل اعتماد اسمبلی کو یقینی بناتا ہے: ترتیب کو کنٹرول کرتا ہے، سالمیت کی جانچ کرتا ہے اور کھوئے ہوئے پیکٹ کی دوبارہ ترسیل کی درخواست کرتا ہے۔ ساتھ مل کر وہ TCP/IP اسٹیک بناتے ہیں۔
TCP/IP ایک مقررہ پورٹ استعمال نہیں کرتا — پورٹ ایپلیکیشن کے ذریعے مقرر کی جاتی ہے۔ معیاری پورٹس: 80 (HTTP)، 443 (HTTPS)، 22 (SSH)، 25 (SMTP)۔ پورٹ 443 موبائل ایپلیکیشنز میں محفوظ ویب ٹریفک کے لیے اہم ہے۔
TCP کنکشن دو ایپلیکیشنز کے درمیان ایک منطقی چینل ہے، جو تین مرحلہ مصافحہ (SYN, SYN-ACK, ACK) کے ذریعے قائم ہوتا ہے۔ کنکشن بھیجنے والے اور وصول کنندہ کے جوڑے (IP پتہ، پورٹ) سے شناخت کیا جاتا ہے۔ مصافحہ اس بات کو یقینی بناتا ہے کہ دونوں فریق ڈیٹا کے تبادلے کے لیے تیار ہیں۔
ہاں، TCP/IP انٹرنیٹ تک رسائی کے بغیر مقامی نیٹ ورکس (LAN) پر کام کرتا ہے۔ آلات Wi-Fi Direct، Bluetooth PAN یا Ethernet کے ذریعے جڑتے ہیں اور مقامی IP پتوں کا استعمال کرتے ہوئے ڈیٹا کا تبادلہ کرتے ہیں۔ مقامی TCP/IP IoT آلات اور پیر ٹو پیر ایپلیکیشنز میں استعمال ہوتا ہے۔
TCP اضافی میکانزم کی وجہ سے سست ہے: ترسیل سے پہلے تین مرحلہ مصافحہ، ہر پیکٹ کی تصدیق، کھوئے ہوئے سیگمنٹس کی دوبارہ ترسیل اور بھیڑ کنٹرول۔ UDP ان جانچوں کے بغیر ڈیٹاگرام بھیجتا ہے، ممکنہ نقصان کی قیمت پر تاخیر کم کرتا ہے۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں