What is TCP and why it is needed
TCP (Transmission Control Protocol) एक नेटवर्क प्रोटोकॉल है जो इंटरनेट पर डेटा भेजने और उसे प्राप्त करने का नियम बनाता है। इसका जरुरत ज़रुरत क्यों है - इंटरनेट पर डेटा छोटे पैकेट्स में जाता है। बिना TCP के पैकेट्स खो सकते हैं उल्टे-पल्टे या डुप्लीकेट हो सकते हैं। TCP यह सुनिश्चित करता है कि सही डेटा, सही क्रम में, बिना गलती के पहुँचे।
Problems TCP is designed to solve
TCP मुख्य रूप से निम्नलिखित समस्याओ का समाधान करता है |
- डेटा खो जाने या दोहराने से बचाता है
- पैकेट सही क्रम में पहुँचता है
- नेटवर्क में एरर होने पर सुधार करता है
What is the TCP 3-Way Handshake
TCP में कनेक्शन 3 स्टेप्स में होता है |
- SYN (Synchronize)
- SYN-ACK (Synchronize + Acknowledge)
- ACK (Acknowledge)
Step-by-step working of SYN, SYN-ACK, and ACK
Step 1 – SYN (Synchronize) क्लाइंट सर्वर को कहता है: “मैं तुमसे कनेक्ट होना चाहता हूँ।” यह पैकेट SYN फ्लैग के साथ भेजा जाता है। इस स्टेप से सर्वर को पता चलता है कि क्लाइंट कनेक्शन शुरू करना चाहता है।
Step 2 – SYN-ACK (Synchronize + Acknowledge) सर्वर क्लाइंट के SYN का जवाब देता है। सर्वर पैकेट में SYN और ACK दोनों फ्लैग सेट करता है। इसका मतलब है: “मैंने तुम्हारा संदेश देखा और मैं भी तैयार हूँ।”
Step 3 – ACK (Acknowledge) क्लाइंट सर्वर के SYN-ACK का जवाब देता है। इस पैकेट में सिर्फ ACK फ्लैग होता है। इसका मतलब है: “ठीक है, मुझे समझ में आ गया। अब कनेक्शन बन गया।”
How data transfer works in TCP
डेटा को छोटे पैकेट्स (Segments) में बाँटा जाता है। प्रत्येक पैकेट को Sequence Number दिया जाता है। रिसीवर हर पैकेट पर ACK (Acknowledgment) भेजता है। यदि पैकेट खो जाता है या गड़बड़ होता है TCP उसे दोबारा भेज देता है ।
How TCP ensures reliability, order, and correctness
ACK रिसीवर की पुष्टि करता है कि पैकेट मिला, Sequence Number पैकेट सही क्रम में जोड़ता है। Checksum पैकेट सही है या करप्ट है इसको जाँचता है। Retransmission अगर पैकेट खो जाए या गलत आए तो दोबारा भेजा जाता है। इससे TCP डेटा को Reliable, Ordered और Error-free बनाता है।
How a TCP connection is closed
Client sends FIN (Finish)
जब क्लाइंट डेटा भेजना बंद कर देता है वह सर्वर को कहता है मैंने अपना डेटा भेज दिया अब मैं कनेक्शन बंद करना चाहता हूँ। यह पैकेट FIN फ्लैग के साथ भेजा जाता है।
Server sends ACK (Acknowledgment)
सर्वर इस संदेश को स्वीकार करता है ठीक है मुझे पता चल गया । यह पैकेट ACK फ्लैग के साथ होता है। अब क्लाइंट से सर्वर तक का डेटा ट्रांसफर पूरा हो गया है ।
Server sends FIN
अब सर्वर अपने तरफ से भी कनेक्शन बंद करना चाहता है। वह क्लाइंट को FIN पैकेट भेजता है मैं भी अपना डेटा भेजना खत्म कर रहा हूँ कनेक्शन बंद करें।
Client sends ACK
क्लाइंट सर्वर के FIN को स्वीकार करता है अब कनेक्शन पूरी तरह बंद हो गया । इसके बाद दोनों तरफ से TCP कनेक्शन पूरी तरह से बंद हो जाता है।
TCP कनेक्शन को चार स्टेप्स में बंद किया जाता है |
