← कोर्सच्या मुख्य पानाकडे परत

📐 12 धडे आकृत्यांमध्ये

भाग 1: टपाल (निळा, 1–6) · भाग 2: इमारत (जांभळा-निळा, 7–12). प्रत्येक आकृती खरी गोष्ट आहे — पाकीट, पत्त्याचे bits, खोल्या, handshake — आणि प्रत्येकीखाली एक lab: पत्रावर पत्ता लिहा, subnet कापा, port वर टकटक करा, नाव resolve करा, certificate तपासा, शिडी चढा. वर्तुळातले आकडे 1 → 2 → 3 या क्रमाने पहा.

1 📮 Networking का

शाळेचे टपाल — पत्राला पत्ता, खोली क्रमांक आणि प्रवासाचा रस्ता असेल तरच दोन संगणक बोलू शकतात.

🧒 सोप्या शब्दांत

दोन computers मधला संदेश म्हणजे दुसऱ्या शाळेला पत्र पाठवण्यासारखे. त्याला इमारतीचा पत्ता, आतला खोली क्रमांक आणि प्रवासासाठी रस्ता लागतो, आणि उत्तर त्याच मार्गाने परत येते. प्रत्येक पत्र योग्य खोलीत पोहोचेल याची खात्री करणारे नियम म्हणजेच networking.

📖 नवे शब्दIP address — इमारतीचा पत्ता, उदा. 93.184.216.34port — खोली क्रमांक: पत्र कोणत्या program ला मिळणारpacket — network वरून प्रवास करणारे एक छोटे पत्रDNS — example.com सारख्या नावाचे पत्त्यात रूपांतर करणारी directory
1📮 एक request = एक पत्र: पत्ता, खोली, रस्ता आणि पावतीतुमचा laptop · 192.168.0.12"GET /grades"to: 93.184.216.34 ← पत्ताखोली: 443 ← portfrom: 192.168.0.12:51234✉️ पाकीट (TCP/IP headers)⇄तुमचा router⇄ISP🛣️ रस्ता: hop-hop ने (धडा 09)example.com · 93.184.216.34खोली 443ऐकणारा program200 OK · 38 bytes📬 पावती / उत्तरत्याच रस्त्याने परतपत्ता (IP) इमारत शोधतो · port खोली शोधतो · थर म्हणजे पोहोच-साखळी · निर्देशिका (DNS) नावाचा पत्ता करते2🧭 प्रत्येक packet उत्तर देतो ते चार प्रश्न📍कुठे?IP पत्ता · धडा 02🚪कोणती खोली?port · धडा 03📦कसे गुंडाळले?थर · धडा 04📖कोणते नाव?DNS · धडा 063📬 पावती की नाही — धडा 05registered पोस्ट: TCP✓ पावती, क्रम जपलेलाloudspeaker: UDPपावती नाही, काही हरवतातHTTP, SSH, databasesDNS, video, games
⏪ आधी

समान नियमांशिवाय दोन computers म्हणजे पत्ता, room किंवा रस्ता नसताना गर्दीत ओरडणारी दोन माणसे.

💡 काय

networking म्हणजे शाळेचे post: प्रत्येक request हे पत्ता, room number, रस्ता आणि उत्तर असलेले पत्र आहे.

⚙️ कसे

तुमचा laptop 192.168.0.12 हा GET /grades पत्ता 93.184.216.34 च्या room 443 ला hop by hop पाठवतो, आणि 200 OK त्याच रस्त्याने परत येते.

🎯 का

page load होत नसेल तर कुठे, कोणती room, कोणता रस्ता आणि उत्तर हे चार प्रश्न माहीत असले की कुठे पाहायचे ते कळते.

🚀 पुढे

पत्राच्या प्रत्येक भागाला स्वतःचा lesson आहे: IP addresses, ports, layers, DNS, आणि lesson 09 मध्ये रस्ता स्वतः.

🧪 Try it here — पत्रावर पत्ता लिहा: नाव आणि service निवडा, पाकिटावरची माहिती पहा

संपूर्ण धडा 01 वाचा →

2 🏫 IP पत्ते & subnets

इमारतीचा पत्ता — IPv4, IPv6, CIDR विभाग, खाजगी पल्ले, आणि गेटवरचा एकच सार्वजनिक पत्ता (NAT).

🧒 सोप्या शब्दांत

गावातल्या प्रत्येक इमारतीला पत्ता असतो, आणि मोठी शाळा wings मध्ये विभागलेली असते. IPv4 पत्ता म्हणजे 192.168.0.12 सारखे चार आकडे: पहिला भाग wing सांगतो आणि शेवटचा भाग खोली. शाळेच्या आत खोल्या private पत्ते वापरतात, आणि gate बाहेरच्या जगाला फक्त एकच public पत्ता दाखवते.

📖 नवे शब्दIPv4 — 192.168.0.12 सारख्या चार आकड्यांत लिहिलेला 32-bit पत्ताsubnet — एक wing: ज्यांचा पहिला भाग सारखा आहे असे पत्ते/24 — पहिले 24 bits wing सांगतात, 256 पत्ते उरतातprivate address — फक्त आतला पत्ता, जसे 192.168.x.xNAT — private पत्त्यांच्या जागी एक public पत्ता लावणारे gate
1🏫 IPv4 पत्ता म्हणजे 32 bits — टिंबांनी जोडलेले चार आकडे192168012...11000000101010000000000000001100network bits: विभाग (/24)host: खोली192.168.0.0/24 = 256 पत्ते: .0 network · .1–.254 hosts · .255 broadcast2🏢 subnet म्हणजे विभाग: एकच विभाग = एकच कॉरिडॉर192.168.0.0/24.2.3.4192.168.1.0/24.2.3.4192.168.2.0/24.2.3.4⇄router विभाग जोडतो.12 → .13 त्याच विभागात: थेट · .12 → 192.168.1.5: router मार्गे (धडा 09)3🚪 आत private, दारावर एक public पत्ता — NATशाळेच्या आत (private)192.168.0.12192.168.0.13192.168.0.14⇄दार · NAT203.0.113.7internetprivate ranges: 10/8 · 172.16/12 · 192.168/16 — जगातली प्रत्येक शाळा पुन्हा वापरतेम्हणून दोन घरे दोन्ही 192.168.0.12 असू शकतात; फक्त दाराचा पत्ता अनोखा4🔢 IPv6 — 128 bits, आठ गट, भरपूर खोल्या20010db8000000000000000000000012थोडक्यात: 2001:db8::12 (:: शून्य गट गिळते)127.0.0.1 · ::1loopback = "हीच इमारत"ip addr · ifconfigतुमचे स्वतःचे पत्ते दाखवतेcloud तुम्हाला VPC देतो: तुम्ही स्वतः आखलेल्या subnets चा campus (AWS शाळा)
⏪ आधी

पत्त्याशिवाय पत्राला जायला इमारतच नसते, आणि कोणत्या machines एकाच corridor मध्ये आहेत हेही कळत नाही.

💡 काय

IP address म्हणजे इमारतीचा पत्ता; IPv4 हा 32 bits चा असतो, 192.168.0.12 सारखा चार अंक आणि dots ने लिहिलेला.

⚙️ कसे

192.168.0.0/24 मध्ये पहिले 24 bits wing सांगतात, म्हणून 256 addresses: .0 network, .1 ते .254 hosts, .255 broadcast.

🎯 का

subnets ठरवतात कोण थेट बोलतो आणि कोण router मार्गे जातो, आणि NAT मुळे पूर्ण इमारत एकच public address वापरते.

🚀 पुढे

cloud VPCs आणि Kubernetes pod networks याच CIDR wings ने आखले जातात, म्हणून हे गणित प्रत्येक cloud design मध्ये येते.

🧪 Try it here — prefix सह पत्ता लिहा आणि तो कोणत्या विभागात आहे ते पहा

संपूर्ण धडा 02 वाचा →

3 🚪 Ports & sockets

खोली क्रमांक — port कोणता प्रोग्राम ते सांगतो; socket म्हणजे एका खोलीतले एक बाक; सुप्रसिद्ध खोल्या 0–1023.

🧒 सोप्या शब्दांत

एका शाळेच्या इमारतीत अनेक खोल्या असतात, म्हणून पत्रावर कोणत्या खोलीसाठी ते लिहावे लागते. computer वर पत्ता machine शोधतो आणि port क्रमांक program शोधतो: website साठी 443, ssh साठी 22. socket म्हणजे एक संभाषण, एका desk सारखे, दोन्ही बाजूंच्या पत्त्यांनी आणि ports नी ओळखले जाणारे.

📖 नवे शब्दport — संदेश कोणत्या program ला मिळणार ते ठरवणारा 0 ते 65535 मधला आकडाsocket — एक संभाषण: तुमचा पत्ता आणि port, अधिक त्यांचेwell-known ports — 0–1023, 80 आणि 443 सारख्या ठरलेल्या सेवांसाठी राखीवlisten — आपल्या खोलीत पाहुण्यांची वाट पाहणारा program
1🚪 port म्हणजे खोलीचा क्रमांक — 65,536 खोल्या93.184.216.34 — इमारत22ssh53dns80http443https5432postgres6379redis8080तुमची0–1023: मुख्याध्यापकांच्या खोल्या (फक्त root)प्रत्येक खोलीत एकच program ऐकतो · "address already in use" = त्या खोलीत कोणी आहेfirewall (धडा 10) म्हणजे पाहुणे कोणत्या खोल्यांवर टकटक करू शकतात त्याची यादी2🪑 socket = एक desk = चार आकडे192.168.0.1293.184.216.34192.168.0.12:51234 ↔ 93.184.216.34:443192.168.0.13192.168.0.13:40222 ↔ 93.184.216.34:443तीच खोली 443 · वेगळे desksclient चा port यादृच्छिक आणि तात्पुरता (49152–65535) · server चा ठरलेलाचारपैकी कोणताही एक आकडा बदला आणि ते वेगळे संभाषण3👂 listening विरुद्ध connected — ss -ltn आणि lsof काय दाखवतातखोली 443LISTENद्वारपाल: वाट पाहतकोणी टकटक करेल याचीdesk 1ESTAB192.168.0.12:51234desk 2ESTAB192.168.0.13:40222desk 3ESTAB10.4.2.9:60111$ ss -ltnLISTEN 0.0.0.0:443LISTEN 0.0.0.0:22$ ss -tn | head -2ESTAB 93.184.216.34:443 192.168.0.12:51234net/demo.py ports नेहमीच्या दारांवर टकटक करते: refused = रिकामी खोली, open = कोणी ऐकतोय
⏪ आधी

फक्त पत्त्याने इमारत गाठता येते, पण एकाच server वर ssh, web आणि database असताना पत्राला कोणता program ते कळत नाही.

💡 काय

port म्हणजे 0 ते 65,535 मधला room number, आणि socket म्हणजे एक संवाद: दोन addresses आणि दोन ports.

⚙️ कसे

server 443 सारख्या ठरलेल्या room मध्ये ऐकतो, तर client प्रत्येक desk साठी 49152 ते 65535 मधला तात्पुरता port घेतो.

🎯 का

यामुळे "address already in use" सारख्या errors समजतात, आणि अनेक visitors एकाच वेळी room 443 मध्ये वेगवेगळ्या desks वर बसू शकतात.

🚀 पुढे

lesson 10 मधले firewalls म्हणजे visitors कोणत्या rooms वर knock करू शकतात याची list, याच port numbers वर बांधलेली.

🧪 Try it here — खोली क्रमांकावर टकटक करा — आणि चार-आकड्यांचा नियम पाहायला desks उघडा

संपूर्ण धडा 03 वाचा →

4 📦 थर (layers)

पोहोच-साखळी — पत्र, लखोटा, पिशवी, व्हॅन, रस्ता: Ethernet वर IP वर TCP वर HTTP, आणि प्रत्येक थर फक्त शेजाऱ्याला का ओळखतो.

🧒 सोप्या शब्दांत

पार्सल पाठवताना पत्र पाकिटात जाते, पाकीट टपाल पिशवीत, पिशवी van मध्ये. प्रत्येक मदतनीस फक्त आपले लेबल वाचतो आणि आत काय आहे याची पर्वा करत नाही. networks असेच काम करतात, म्हणूनच website ला कळू न देता तुम्ही cable वरून Wi-Fi वर जाऊ शकता.

📖 नवे शब्दlayer — पोहोचवण्याच्या साखळीतला एक काम करणारा मदतनीसencapsulation — गुंडाळणे: प्रत्येक layer पुढे आपले लेबल लावतोheader — layer लावतो ते लेबल, जसे 'कडून' आणि 'कडे'MTU — रस्त्यावर चालणारी सर्वात मोठी पिशवी, सुमारे 1,500 bytes
1📦 encapsulation — पत्र, पाकिटात, पिशवीत, गाडीत🚐 Ethernet / Wi-Fi frame🎒 IP packet✉️ TCP segment📝 HTTP — खुद्द पत्रGET /grades HTTP/1.1Eth header: MAC कडून → MAC कडेIP header: 192.168.0.12 → 93.184.216.34TCP header: port 51234 → 443, seq #प्रत्येक थर पुढे आपले label लावतो — headers च्या आत headersप्रत्येक मदतनीस फक्त आपले label वाचतो, बाकी वर देतो — HTTP ला कळल्याशिवाय Wi-Fi बदलू शकते2📏 wire वरचे bytes (MTU ≈ 1500)Eth 14IP 20TCP 20HTTP data … 1460 bytes पर्यंतएक frame ≤ ~1,514 bytes; मोठ्या पिशव्या फोडल्या किंवा टाकल्या जातात1 MB चा फोटो = ~700 frames,प्रत्येकावर तीच चार labelsheaders म्हणजे भार: छोटे packets bandwidth वाया घालवतात3👀 कोण कोणते label वाचतो🔀 switchEthernet header (MAC)🧭 routerIP header (पत्ता)💻 तुमचा OSTCP header (port, seq)🐍 तुमचा programHTTP (पत्र)OSI ला 7 थर; internet 4–5 वापरते · L4 = ports, L7 = HTTP
⏪ आधी

एकाच program ने Wi-Fi signals, routing आणि web pages सगळे एकदम हाताळले तर कोणताही बदल सर्व काही मोडेल.

💡 काय

layers म्हणजे delivery chain: TCP envelope मधले HTTP पत्र, ते IP bag मध्ये, आणि ते Ethernet van मध्ये.

⚙️ कसे

प्रत्येक layer पुढे स्वतःचा header जोडतो, Eth 14 + IP 20 + TCP 20 bytes, त्यामुळे प्रत्येक frame मध्ये 1460 bytes पर्यंत data.

🎯 का

प्रत्येक helper फक्त स्वतःचे label वाचतो, म्हणून HTTP ला कळत नकळत Wi-Fi बदलू शकते आणि एकेक layer debug करता येतो.

🚀 पुढे

पुढचे lessons एकेक envelope उघडतात: TCP आणि UDP, DNS, HTTP, TLS, आणि मग routing चा रस्ता.

🧪 Try it here — पत्र लिहा आणि labels लागताना पहा

संपूर्ण धडा 04 वाचा →

5 📬 TCP विरुद्ध UDP

नोंदणीकृत टपाल विरुद्ध लाउडस्पीकर — TCP चा handshake, पावत्या आणि क्रम; UDP चे स्वस्त, हरवणारे आवाज.

🧒 सोप्या शब्दांत

registered post प्रत्येक तुकड्याला क्रमांक आणि पावती देते, म्हणून हरवलेले तुकडे पुन्हा पाठवले जातात आणि क्रमाने पोहोचतात: सुरक्षित, पण हळू. शाळेचा loudspeaker फक्त ओरडतो: जलद आणि स्वस्त, पण एखादा शब्द चुकला तर कोणी पुन्हा सांगत नाही. TCP म्हणजे registered post आणि UDP म्हणजे loudspeaker; खात्री महत्त्वाची की वेग, त्यावरून निवडा.

📖 नवे शब्दTCP — भरवशाची डिलिव्हरी: क्रमांक, पावती, पुन्हा पाठवणे, क्रम टिकवणेUDP — जलद आरोळ्या: पावती नाही, काही हरवूही शकतातhandshake — TCP बोलायला लागण्याआधीचे 'चालेल का? / हो, मी? / हो'ACK — 'मिळाले' सांगणारी पावती
1📬 TCP — registered पोस्ट: पावत्यांसह क्रमांकित तुकडे💻 client🏫 server1 SYN — "बोलू का?"2 SYN-ACK — "हो, मी बोलू का?"3 ACK — "हो" → pipe उघडलाhandshake: 1 round tripतुकडा #1ACK 1तुकडा #2तुकडा #3 … हरवला ✗ACK 2 (3 ची वाट अजून)तुकडा #3 पुन्हाACK 3 ✓FIN — "झाले"FIN + ACKप्रत्येक byte ला क्रमांक · हरवलेले पुन्हा पाठवले · क्रम जपलेला · एक STREAM: message च्या सीमा नाहीत2📢 UDP — loudspeaker: handshake नाही, पावती नाहीclientserver✗ गेला✗ गेला✗ गेलादहा हाका, सात ऐकल्या — कोणीच पुन्हा पाठवत नाही (net/demo.py udp: मुद्दाम 30% loss)3⚖️ सौदा — खात्रीची किंमत: एक round trip आणि buffersTCPUDPhandshakeहो (1 RTT)नाहीपावत्या / क्रमहोनाहीहरवलेला तुकडापुन्हा पाठवलागेलासीमाएक streamएक datagramवापरतातHTTP/1-2 · SSH · DBsDNS · video · games · QUICHTTP/3 UDP वर QUIC ने जाते आणि विश्वासार्हता स्वतः बांधते (धडा 07)
⏪ आधी

network pieces हरवते आणि क्रम बिघडवते, म्हणून नियमांशिवाय file मध्ये भोके किंवा चुकीच्या क्रमातील पाने येऊ शकतात.

💡 काय

TCP म्हणजे क्रमांक आणि पावत्या असलेले registered post; UDP म्हणजे handshake किंवा पावतीशिवाय ओरडणारा loudspeaker.

⚙️ कसे

TCP SYN, SYN-ACK, ACK ने सुरू होतो आणि हरवलेले pieces पुन्हा पाठवतो; UDP demo मध्ये 30% loss, दहा पैकी सात आवाज ऐकू येतात.

🎯 का

खात्रीसाठी एक round trip आणि buffers मोजावे लागतात, म्हणून files आणि pages साठी TCP, आणि जलद loss चालणाऱ्या traffic साठी UDP.

🚀 पुढे

पुढच्या lesson मध्ये DNS UDP port 53 वर चालतो, आणि HTTP/3 QUIC वापरून UDP वरच स्वतःची reliability बांधतो.

🧪 Try it here — गळक्या कॉरिडॉरमधून दहा तुकडे दोन्ही प्रकारे पाठवा

संपूर्ण धडा 05 वाचा →

6 📖 DNS

शाळेची निर्देशिका — नावाचा पत्ता होतो; resolvers, records, TTL, आणि 'DNS आहे का?' ने प्रत्येक outage का सुरू होते.

🧒 सोप्या शब्दांत

तुम्हाला मित्राचे नाव माहीत आहे पण घर क्रमांक नाही, म्हणून तुम्ही directory पाहता. DNS ही internet ची directory आहे: ती example.com चे 93.184.216.34 करते. कोणत्याही एका server ला सगळी नावे माहीत नसतात, म्हणून प्रत्येक जण पुढे कुठे विचारायचे ते सांगतो, आणि उत्तर काही वेळ लक्षात ठेवले जाते म्हणजे पुढचा शोध लगेच होतो.

📖 नवे शब्दDNS — नावांचे पत्त्यांत रूपांतर करणारी directoryresolver — तुमच्यासाठी चौकशी करणारा आणि उत्तरे लक्षात ठेवणारा मदतनीसA record — 'हे नाव या IPv4 पत्त्यावर राहते' सांगणारी ओळTTL — उत्तर किती seconds लक्षात ठेवता येते, उदा. 300
1📖 "example.com?" — निर्देशिकेची साखळी, आणि उत्तर कुठे लक्षात ठेवले जातेतुम्ही · आधी cache1📖 resolver8.8.8.8 / तुमचा ISP · cache ठेवतो🏛️ root.comexample.com NS23 ".com? त्यांना विचारा →"4 "example.com? →"5 A 93.184.216.34 · TTL 300 — 300 s लक्षात6प्रत्येक नाव कोणालाच माहीत नाही: प्रत्येक server निर्देशिकेत पुढे बोट दाखवतो; शेवटचा उत्तर देतोUDP port 53 · resolver उत्तरे cache करतो, म्हणून दुसरा शोध इमारतीबाहेर जातच नाही$ dig +short example.com93.184.216.342🗂️ record प्रकार — निर्देशिका काय सांगू शकतेAIPv4 पत्ताAAAAIPv6 पत्ताCNAMEनावाचे दुसरे नावMXmail कुठे जातेTXTपुरावा / धोरणNSकोण उत्तर देतोचुकीचे किंवा शिळे उत्तर अगदी मेलेल्या server सारखे दिसते — आधी निर्देशिका तपासा3⏳ TTL — उत्तर सगळ्यांनी किती वेळ लक्षात ठेवायचेTTL 300 sतुम्ही पत्ता बदलताकाहींना अजून जुना दिसतोसगळ्यांना नवा दिसतो0 s → 300 s: सगळीकडे दिसायला एक TTL · migration आधी तो कमी कराnet/demo.py dns 29-byte प्रश्न हाताने बांधते आणि उत्तर वाचते
⏪ आधी

directory नसती तर example.com टाइप करण्याऐवजी 93.184.216.34 लक्षात ठेवावे लागले असते.

💡 काय

DNS ही शाळेची directory आहे जी example.com सारखे नाव address मध्ये बदलते, A, AAAA आणि CNAME सारखे records वापरून.

⚙️ कसे

तुमचा resolver आधी root, मग .com, मग example.com ला विचारतो आणि A 93.184.216.34 हे TTL 300 seconds साठी cache करतो.

🎯 का

जवळजवळ प्रत्येक request lookup ने सुरू होतो, म्हणून चुकीचा record किंवा जुना cache म्हणजे पूर्ण site बंद असल्यासारखे दिसते.

🚀 पुढे

म्हणूनच lesson 12 च्या triage ladder ची पहिली पायरी "is it DNS?" आहे, आणि dig हे पहिले tool.

🧪 Try it here — नाव पावलापावलाने resolve करा — दुसऱ्यांदा ते cache मधून येते

संपूर्ण धडा 06 वाचा →

7 📨 तारेवरचे HTTP

लखोट्यातली चिठ्ठी — request line, headers, body; keep-alive; HTTP/1.1, /2 आणि /3 (QUIC).

🧒 सोप्या शब्दांत

पाकिटाच्या आत एक साधी लिहिलेली चिठ्ठी असते: तुम्हाला काय हवे, कोणते पान, काही नोंदी, आणि कदाचित काही मजकूर. server 200 OK सारखी स्थिती आणि उत्तर असलेली चिठ्ठी परत लिहितो. HTTP म्हणजे फक्त तो मजकूर, आणि नव्या आवृत्त्यांत अनेक चिठ्ठ्या एकाच वेळी एकच रस्ता वापरू शकतात.

📖 नवे शब्दHTTP — web ची साध्या मजकुरातली विचारा-आणि-उत्तर भाषाmethod — क्रियापद, जसे आणायला GET किंवा पाठवायला POSTstatus code — एक आकडा: 2xx ठीक, 4xx तुमची चूक, 5xx त्यांचीheader — 'name: value' अशी नोंद, जसे Content-Typekeep-alive — अनेक requests साठी एकच connection पुन्हा वापरणे
1📨 request चिठ्ठी — TCP stream वरचा साधा मजकूरGET /v1/students/2 HTTP/1.1Host: example.comAccept: application/json← request line: method, path, version← headers: नाव: मूल्य, ओळीला एक← रिकामी ओळ = headers संपले← body (GET ला नाही)net/demo.py http नेमके हेच bytes socket वर टाइप करते — HTTP म्हणजे फक्त मजकूरAPI शाळा इथून सुरू होते आणि वर जाते2📬 शिक्का मारलेले उत्तरHTTP/1.1 200 OKContent-Type: application/jsonContent-Length: 38{"id":2,"name":"Katrina","class":"3A"}← status line: code + कारण← headers: काय, किती लांब← रिकामी ओळ← body: 38 bytes of JSON2xx ठीक · 3xx दुसरीकडे · 4xx तुमची चूक · 5xx त्यांची चूक · Content-Length body संपवते3🔁 त्याच चिठ्ठीच्या तीन पिढ्याHTTP/1.1 keep-alivereq 1req 2req 3req 4एक connection, एका वेळी एक request — रांगेतHTTP/2 — h2एक TCP connection, अनेक requests binary frames म्हणून मिसळलेल्याHTTP/3 — QUIC over UDPstream 2 हरवला ✗ — 1 आणि 3 चालूस्वतंत्र streams: हरवलेला packet फक्त स्वतःचा stream अडवतोkeep-alive प्रत्येक request चा handshake वाचवते · h2 रांगेत थांबणे सोडवते · h3 head-of-line blocking सोडवते — तुमचा फोन आज हेच वापरतो
⏪ आधी

ठरलेल्या format शिवाय browser आणि server ला request कुठे संपते किंवा उत्तराचा अर्थ काय हे कळणार नाही.

💡 काय

HTTP म्हणजे envelope मधली साध्या text ची चिठ्ठी: request line, headers, एक रिकामी ओळ, आणि मग हवी तर body.

⚙️ कसे

GET /v1/students/2 HTTP/1.1 जातो, आणि HTTP/1.1 200 OK हे Content-Length: 38 आणि 38 bytes JSON सह परत येते.

🎯 का

status codes दोष कोणाचा ते सांगतात: 2xx ok, 3xx दुसरीकडे, 4xx तुमची चूक, 5xx त्यांची चूक.

🚀 पुढे

HTTP/2 एकच connection वाटून घेतो आणि HTTP/3 QUIC वर चालतो, आणि API school सगळे याच चिठ्ठीवर बांधते.

🧪 Try it here — request बांधा आणि नेमके bytes पहा; status code निवडा आणि वाचा

संपूर्ण धडा 07 वाचा →

8 🔒 TLS & certificates

सील केलेला लखोटा — certificates, सही करणारी CA, handshake, SNI; HTTPS आणि प्रत्येक 'S' का.

🧒 सोप्या शब्दांत

postcard वाटेतला प्रत्येक पोस्टमन वाचू शकतो; बंद पाकीट नाही. TLS तुमचे संदेश सील करते, म्हणजे वाटेत कोणी ते वाचू किंवा बदलू शकत नाही. आधी website तुमच्या computer चा आधीच विश्वास असलेल्या कोणीतरी सही केलेले ओळखपत्र दाखवते, म्हणजे ती खरीच तीच आहे हे कळते, आणि मग दोन्ही बाजू एका गुप्त key वर सहमत होतात.

📖 नवे शब्दTLS — वाटेत संदेश खाजगी आणि न बदललेले ठेवणारे सीलcertificate — website चे ओळखपत्र, ठरावीक काळासाठी वैध (उदा. 90 दिवस)CA — ती ओळखपत्रे सही करणारे विश्वासू कार्यालयHTTPS — TLS सीलच्या आत प्रवास करणारे साधे HTTP
1🤝 TLS 1.3 handshake — आधी कोण ते सिद्ध करा, मग काय ते लपवा💻 browser🏫 example.comClientHello: "मला example.com हवे" (SNI) + माझा key shareServerHello + certificate + key shareतपासा: cert → CA → विश्वासू root ✓ · नाव जुळते ✓Finished — दोघांकडे आता एकच session keyयानंतरचे सगळे encrypted + छेडछाड-प्रूफ🔍 net/demo.py tls protocol, cipher, issuer, expiry छापते · openssl s_client -connect host:443 -servername host2🪪 certificate — विश्वासू CA ने सही केलेले ओळखपत्रCERTIFICATEsubjectexample.com (आणि *.example.com)issuerLet's Encrypt R3 ← CAवैध2026-09-01 → 2026-11-30 (90 दिवस)public keyRSA 2048 / ECDSA P-256सही✓ CA च्या private key नेself-signed = कोणीच हमी देत नाही · expired = browsers नकार देतात · renewal automate करा3🔒 बंद पाकिटातून रस्त्याला काय दिसतेआत — लपलेले: path, headers, cookies, bodyबाहेर — दिसणारे:पत्ता 93.184.216.34 · port 443server चे नाव (SNI): example.comकिती, किती वेळा (metadata)HTTPS, SMTPS, आणि प्रत्येक "S" हेचCA म्हणजे विश्वासू शिक्का बनवणारा; तुमचा OSroots ची यादी घेऊन येतो (~150)चुकीचे नाव किंवा expired → "certificate error"
⏪ आधी

साधे HTTP म्हणजे postcard: रस्त्यावरचा कोणीही तुमचा password वाचू शकतो किंवा page पोहोचण्यापूर्वी बदलू शकतो.

💡 काय

TLS envelope बंद करतो: certificate server कोण आहे ते सिद्ध करतो, मग पुढचे सर्व encrypted आणि tamper-proof असते.

⚙️ कसे

TLS 1.3 मध्ये browser SNI आणि key share पाठवतो, cert ते CA ते trusted root तपासतो, मग दोघांकडे एकच session key.

🎯 का

HTTPS आणि इतर अनेक protocols मधला S हाच आहे, जो प्रत्येक अविश्वसनीय network वर logins, payments आणि data वाचवतो.

🚀 पुढे

Let's Encrypt सारखे certificates 90 दिवस टिकतात, म्हणून खऱ्या teams expiry मुळे site बंद पडण्याआधी renewal automate करतात.

🧪 Try it here — browser तपासतो तसे certificate तपासा

संपूर्ण धडा 08 वाचा →

9 🧭 Routing & internet

कॉरिडॉरचा नकाशा — default gateway, prefix नुसार पुढे पाठवणारे routers, traceroute चे hops, MTU, आणि एका परिच्छेदात BGP.

🧒 सोप्या शब्दांत

टपाल कार्यालयातल्या कोणालाच पूर्ण देशाचा नकाशा माहीत नसतो. प्रत्येक sorting office ला फक्त तुमची पिशवी पुढे कोणत्या दाराने पाठवायची ते माहीत असते, hop by hop, ती पोहोचेपर्यंत. routers असेच करतात: घरचा router ओळखत नसलेले सगळे तुमच्या internet provider कडे पाठवतो, आणि मोठी networks एकमेकांना कोणते पत्ते गाठता येतात ते सांगतात.

📖 नवे शब्दrouter — packets पुढच्या hop कडे पाठवणारे sorting officehop — एका router पासून पुढच्या router पर्यंतचे एक पाऊलdefault gateway — 'खात्री नसेल तर इथे पाठवा', सहसा घरचा routerBGP — मोठी networks कोणते पत्ते गाठू शकतात ते कसे जाहीर करतातtraceroute — वाटेतला प्रत्येक hop दाखवणारे tool
1🧭 hop-hop ने — अख्खा नकाशा कोणालाच माहीत नाही, पुढचा कॉरिडॉर सगळ्यांना192.168.0.12/24hop 1⇄तुमचा router 192.168.0.1prefixपुढचा hop192.168.0.0/24थेट0.0.0.0/0ISP ↑hop 2⇄ISP routerprefixपुढचा hop93.184.0.0/16पूर्व0.0.0.0/0peerhops 3–7internet · ~75,000 networksBGP: प्रत्येक network जाहीर करते "93.184.0.0/16 माझ्याकडे"hop 8⇄त्यांचा router93.184.216.34$ traceroute example.com 1 192.168.0.1 1 ms 2 10.20.0.1 9 ms 8 93.184.216.34 38 ms ← ~10 ms/hoproute म्हणजे नियम: "या prefix साठी पिशवी त्या शेजारच्या दाराकडे द्या" · सगळ्यात लांब जुळणारा prefix जिंकतो · 0.0.0.0/0 = बाकी सगळे2🕵️ traceroute ला hops कसे दिसतात — TTL ची युक्ती⇄hop 1⇄hop 2⇄hop 3⇄hop 4✗ TTL=1 इथे संपला → hop 1 उत्तर देतो✗ TTL=2 इथे संपला → hop 2 उत्तर देतो✗ TTL=3 इथे संपला → hop 3 उत्तर देतोTTL 1, 2, 3 … ने पाठवा: पिशवी टाकणारा प्रत्येक router स्वतःला उघड करतो3🎒 पिशवीला आकाराची मर्यादा — MTU1,500 bytes ✓4,000 bytes → फोडले ✂ किंवा टाकलेip route / netstat -rn तुमचे नियम दाखवते · mtr = ping + traceroute कायमएक चुकीची BGP घोषणा आणि एक देश तासभर गायब
⏪ आधी

कोणतेही एक machine सर्व ~75,000 networks चा रस्ता जाणू शकत नाही, म्हणून routing शिवाय packet ला कुठे जायचे ते कळणार नाही.

💡 काय

routing म्हणजे hop-by-hop delivery: प्रत्येक router फक्त प्रत्येक address prefix साठी पुढचा corridor जाणतो.

⚙️ कसे

route सांगतो की THIS prefix साठी bag THAT पुढच्या दाराला द्या; सर्वात लांब match जिंकतो आणि 0.0.0.0/0 हा default.

🎯 का

traceroute रस्ता कुठे संपतो ते दाखवतो, म्हणून local router ची अडचण आणि internet वर दूरची अडचण वेगळी ओळखता येते.

🚀 पुढे

networks दरम्यान "I have 93.184.0.0/16" सारख्या BGP announcements या tables बनवतात, आणि cloud route tables असेच चालतात.

🧪 Try it here — route table मध्ये पत्ता शोधा — सगळ्यात लांब prefix जिंकतो — मग रस्ता trace करा

संपूर्ण धडा 09 वाचा →

10 🚧 Firewalls, NAT & VPN

गेट — परवानगी-याद्या, stateful नियम, security groups, NAT, SSH बोगदे आणि VPN: कोणत्या खोलीत कोण जाऊ शकते.

🧒 सोप्या शब्दांत

शाळेच्या gate वर यादी घेतलेला पहारेकरी असतो: पाहुणे office मध्ये जाऊ शकतात, बाकी सगळ्यांना परत पाठवले जाते. firewall computers साठी हेच करते, यादीतले सोडून प्रत्येक port बंद ठेवते. NAT मुळे संपूर्ण शाळा एकच public पत्ता वापरते, आणि VPN म्हणजे दूरवरून इमारतीत येणारा खाजगी झाकलेला रस्ता.

📖 नवे शब्दfirewall — कोणते ports, कुठून गाठता येतात ते सांगणारी gate ची यादीdeny by default — यादीत नसलेले सगळे बंदstateful — तुम्ही पाठवलेल्याची उत्तरे आपोआप आत येऊ दिली जातातNAT — अनेक private machines एकच public पत्ता वापरतातVPN — दूरवरूनही तुम्हाला 'आत' आणणारा encrypted बोगदा
1🚧 firewall म्हणजे यादी असलेले दार — default नकारदारनियम443 कुठूनहीallow ✓22 office IP कडूनallow ✓बाकी सगळेdeny ✗443 घरून✓ आत22 घरून✗ गुपचूप टाकले3306 कुठूनही✗ timed outstateful: तुम्ही पाठवलेल्याची उत्तरे आत येतात · refused = रिकामी खोली · timed out = दार2🔄 NAT — अख्ख्या इमारतीसाठी एक public पत्ता192.168.0.12:51234from 192.168.0.12 :51234⇄दारfrom203.0.113.7 :40001आतबाहेर192.168.0.12:51234203.0.113.7:40001192.168.0.13:40222203.0.113.7:40002port map:कोणी विचारलेदार पाकीट पुन्हा लिहिते आणि कोणी विचारले ते लक्षात ठेवते, म्हणून उत्तर योग्य desk ला पोहोचतेcloud मध्ये दार म्हणजे security group: प्रत्येक instance ची allow-list, stateful (AWS शाळा L07)3🕳️ tunnels आणि VPNs — दारातून जाणारा खासगी कॉरिडॉरतुम्ही, घरीदारssh -L 5432:db:5432 — tunnel port 22 वरून दारातून जातोdb · 5432localhost:5432 → खरे तर db, tunnel मधून🔐 VPNसगळ्या traffic साठी तीच कल्पना:तुम्ही "इमारतीच्या आत" आहातघरून — एक दार, एक किल्लीleast privilege: 443 जगाला · 22 तुमच्या IP ला · database फक्त app च्या subnet ला — database वर 0.0.0.0/0 कधीच नाही"connection refused" = खोली रिकामी · "timed out" = दाराने शब्दही न बोलता टाकले
⏪ आधी

प्रत्येक room उघडा असलेल्या server वर कोणताही visitor database port वर knock करू शकतो, म्हणजे सहज घुसखोरी.

💡 काय

firewall म्हणजे list असलेले gate जे default ने नकार देते; NAT आणि VPNs gate कसे पार करायचे ते ठरवतात.

⚙️ कसे

443 सर्वांसाठी, 22 फक्त office IP साठी allow, बाकी deny; NAT 192.168.0.12:51234 ला 203.0.113.7:40001 असे बदलते.

🎯 का

refused म्हणजे रिकामी room आणि timed out म्हणजे gate हे माहीत असले की connection fail झाल्यावर तासन्तास वाचतात.

🚀 पुढे

cloud मध्ये हेच gate security groups बनते, आणि SSH tunnels व VPNs मुळे teams खाजगी rooms पर्यंत सुरक्षित पोहोचतात.

🧪 Try it here — port आणि source घेऊन दारावर टकटक करा; नियम ठरवताना पहा

संपूर्ण धडा 10 वाचा →

11 🏪 Load balancers, proxies & CDN

स्वागत कक्ष — L4 विरुद्ध L7, reverse proxies, health checks, sticky sessions, आणि वाचकाजवळची प्रत (CDN).

🧒 सोप्या शब्दांत

गर्दीच्या शाळेत अनेक counters समोर एकच reception desk असतो. पाहुणे desk ला विचारतात, आणि desk प्रत्येकाला चालू, मोकळ्या counter कडे पाठवतो, बंद पडलेले counter वगळून. load balancer websites साठी हेच करतो, आणि CDN चित्रांच्या प्रती तुमच्या जवळच्या शाखेत ठेवतो म्हणजे ती लवकर पोहोचतात.

📖 नवे शब्दload balancer — प्रत्येक पाहुण्याला अनेक servers पैकी एकाकडे पाठवतोhealth check — नियमित 'ठीक आहात ना?' म्हणजे बिघडलेले servers वगळले जातातreverse proxy — तुमच्या वतीने servers शी बोलणारा पुढचा deskL4 vs L7 — L4 फक्त पत्ते आणि ports वाचतो; L7 HTTP request सुद्धा वाचतोCDN — जगभरातील वाचकांच्या जवळ ठेवलेल्या files च्या प्रती
1🏪 स्वागत कक्ष — अनेक counters पुढे एक नाव👥👥👥हजारो पाहुणेसगळे एकच नाव विचारत🏪 deskload balancer / reverse proxyTLS इथे संपतेcounter 1✓ ठीकcounter 2✓ ठीकcounter 3✗ आजारी — वगळलादर काही सेकंदांनी health checksalgorithmपुढचा पाहुणा कोणालाround-robin1, 2, 1, 2 … आळीपाळीनेleast connectionsजो सगळ्यात कमी busysticky (cookie)मागच्या वेळचाच counterdesk किती counters आहेत ते लपवतो — एका नावामागे खोल्या वाढवून तुम्ही scale करताX-Forwarded-For खऱ्या पाहुण्याचा पत्ता proxy मधून नेते · Kubernetes: Service + Ingress2📦 L4 विरुद्ध L7 — पाकिटाचा किती भाग वाचला जातोto :443from 1.2.3.4L4: पत्ता + port नेजलद, पत्राला आंधळाGET /gradesHost: api…Cookie: s=…L7: URL, headers नेपत्र उघडतो: routes,caches, TLS संपवतोnginx, HAProxy, ALB (L7) · NLB (L4) — AWS शाळा L153🌍 CDN — प्रत्येक शहरात एक प्रत📄Mumbai📄Frankfurt📄Sydney📄Virginia👤 पुण्यातला वाचक→ मुंबईची प्रत: 12 msVirginia नाही: 240 msstatic फाइल्स URL ने cache (UI शाळा L09) · anycast तुम्हालाजवळच्या प्रतीकडे नेते · cache miss एकदा origin कडे जाते
⏪ आधी

एका नावामागे एकच server असेल तर हजारो visitors आल्यावर तो कोसळतो, आणि तो आजारी पडला तर पूर्ण site बंद.

💡 काय

load balancer म्हणजे reception desk: अनेक counters समोर एकच नाव, जे प्रत्येक visitor ला निरोगी counter कडे पाठवते.

⚙️ कसे

दर काही seconds ला health checks आजारी counters वगळतात, आणि round-robin, least connections किंवा sticky cookies पुढचा निवडतात.

🎯 का

एका नावामागे rooms वाढवून तुम्ही scale करता, आणि TLS desk वरच संपू शकतो त्यामुळे counters सोपे राहतात.

🚀 पुढे

Kubernetes Service आणि Ingress हीच desk आहे, आणि CDN प्रत्येक वाचकाजवळ copy ठेवून pages जलद करतो.

🧪 Try it here — पाहुणे desk कडे पाठवा आणि प्रत्येकाला कोणता counter मिळतो ते पहा

संपूर्ण धडा 11 वाचा →

12 🔧 Network चे debugging

तपासणीची शिडी — DNS → पोहोच → route → port → TLS → HTTP → logs; latency विरुद्ध bandwidth; साधनपेटी.

🧒 सोप्या शब्दांत

'internet बंद आहे' असे वाटले की शिडी चढल्यासारखे तपासा: नावावरून पत्ता मिळतो का, machine पर्यंत पोहोचता येते का, रस्ता तिथवर जातो का, खोली उघडी आहे का, सील वैध आहे का, server ने काय उत्तर दिले? जी पहिली पायरी अपयशी ठरते ती problem कुठे आहे ते सांगते, म्हणजे अंदाज लावणे थांबते.

📖 नवे शब्दtriage — आधी काय बिघडले ते शोधायला ठरलेल्या क्रमाने तपासणेping — machine ला पाठवलेली 'आहेस का?' चाचणीlatency — एक संदेश पोहोचायला किती वेळ लागतोbandwidth — प्रत्येक second ला किती data वाहू शकतो
1🪜 triage शिडी — एखादी पायरी नापास होईपर्यंत चढा; तीच पायरी कारण सांगते1DNSdig +short hostNXDOMAIN → निर्देशिकेत नाही2पोहोचping hostउत्तर नाही → बंद, किंवा ICMP अडवलेले3routetraceroute hosthop k वर थांबते → रस्ता तिथे संपतो4portnc -zv host 443refused = रिकामी खोली · timed out = दार5TLSopenssl s_clientcertificate error → चुकीचे नाव / expired6HTTPcurl -v https://host/4xx तुम्ही · 5xx ते · body वाचा7logsत्यांचे logs, तुमचे logsपत्र पोहोचले — program ने काय केले?↑ खालून चढाnet/lab.sh सातही पायऱ्या एका दमात चालवते · कळस-प्रकल्प: मुद्दाम काहीतरी मोडा आणि योग्य पायरी नापास होताना पहा2🔍 चुकांचा अर्थतुम्हाला काय दिसतेम्हणजे कायconnection refusedखोली रिकामीtimed outदार, किंवा रस्ताच नाहीconnection resetपलीकडच्याने फोन ठेवलाNXDOMAINनिर्देशिकेत नाहीcertificate errorचुकीचे नाव किंवा expired502 / 504desk ला उत्तरच मिळाले नाही3🐢 latency विरुद्ध bandwidth — दोन वेगळे प्रश्नlatency: एका पत्राला किती वेळ✉️ 40 ms (अंतर, hops)bandwidth: सेकंदाला किती✉️✉️✉️✉️✉️✉️✉️✉️100 Mbit/s: रुंद रस्ता, तरी 40 ms दूरजाड pipe दूरचा server जवळ आणत नाही · साधने: ss / lsof (कोण ऐकतो),tcpdump (wire वरची पत्रे वाचा), mtr (ping + traceroute कायम)
⏪ आधी

"site बंद आहे" तेव्हा अंदाजाने शोधले तर तास वाया जातात, कारण दोष अनेक layers पैकी कुठेही असू शकतो.

💡 काय

triage ladder च्या सात पायऱ्या: DNS, reach, route, port, TLS, HTTP, logs; जी पहिली पायरी fail होते तीच कारण सांगते.

⚙️ कसे

dig, ping, traceroute, nc -zv host 443, openssl s_client आणि curl -v ने चढा; net/lab.sh सातही पायऱ्या एकदम चालवतो.

🎯 का

शांत, क्रमाने केलेली तपासणी भीतीदायक outage ला एका तुटलेल्या पायरीत बदलते, आणि latency व bandwidth अडचणी वेगळ्या करते.

🚀 पुढे

capstone मध्ये तुम्ही मुद्दाम काहीतरी मोडून ते शोधता; हीच सवय production मधला प्रत्येक on-call engineer वापरतो.

🧪 Try it here — मुद्दाम काहीतरी मोडा, मग पायरी नापास होईपर्यंत शिडी चढा

संपूर्ण धडा 12 वाचा →