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 Persistent Connections बनाए रखने और उद्यम वातावरण के लिए प्रॉक्सी सेट अप करने की अनुमति मिलती है।
नेटवर्क समस्याओं के निदान के लिए 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 (Address Resolution Protocol) जैसे प्रोटोकॉल काम करते हैं, जो स्थानीय नेटवर्क में उपकरणों के IP पतों को MAC पतों में परिवर्तित करता है, और PPP (Point-to-Point Protocol), जो VPN कनेक्शन और मोबाइल डेटा नेटवर्क में उपयोग होता है।
| परत | प्रोटोकॉल | कार्य |
|---|---|---|
| एप्लिकेशन | HTTP, HTTPS, DNS, FTP, WebSocket | एप्लिकेशन डेटा फ़ॉर्मेटिंग |
| ट्रांसपोर्ट | TCP, UDP | एप्लिकेशन के बीच ट्रांसमिशन, त्रुटि नियंत्रण |
| नेटवर्क | IP, ICMP, ARP | पैकेट रूटिंग और एड्रेसिंग |
| लिंक | Ethernet, Wi-Fi, PPP | भौतिक माध्यम ट्रांसमिशन |
TCP (Transmission Control Protocol) ट्रांसपोर्ट परत के मुख्य प्रोटोकॉल में से एक है। यह एप्लिकेशन के बीच बाइट स्ट्रीम की विश्वसनीय, क्रमबद्ध और त्रुटि-जांचित डिलीवरी सुनिश्चित करता है। डेटा संचारित करने से पहले, TCP तीन-चरणीय हैंडशेक के माध्यम से कनेक्शन स्थापित करता है।
तीन-चरणीय हैंडशेक (three-way handshake) क्लाइंट द्वारा 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 सॉकेट बनाया जाता है, जो कनेक्ट कॉल किए जाने पर स्वचालित रूप से तीन-चरणीय हैंडशेक करता है। 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 API और डेटा लोडिंग के लिए 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 एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें