Ravindra BagaleCourses & study guides English

Public आणि private IP, NAT, ports, IP classes, loopback, HTTP vs HTTPS, आणि 255 का?

चला, सुरू करूया. काल आपण IP address म्हणजे काय, IPv4 addresses कसे मोजायचे, आणि static आणि dynamic IP मधला फरक बघितला. आज एकच साधा प्रश्न: जगात फक्त 429 कोटी IPv4 addresses आहेत, तरी पूर्ण जग online कसं आहे? हे बघताना आपण घरचा router, ports, web server, SSH, IP classes, localhost बघणार, आणि free WiFi खरंच free नसतं हे पण बघणार. शेवटी IP चा प्रत्येक भाग 255 वरच का थांबतो, ते समजून घेऊ. घाबरू नका, हळूहळू कळेल तुम्हाला.

या class मध्ये काय शिकणार

  • Recap: 4,294,967,296 IPv4 addresses
  • फक्त dynamic IP पुरेसा का नाही
  • Public IP आणि private IP
  • Internet शिवाय बोलणं, अंतरानुसार
  • Router NAT कसं करतो
  • IPv4 अजून संपला का नाही
  • Router चा public IP: static की dynamic?
  • WiFi आणि mobile data एकत्र
  • Mobile hotspot: तुमचा phone router बनतो
  • Ports, आणि default ports 80 आणि 443
  • Web server आणि /var/www/html
  • Port 22 वर SSH
  • URL syntax: protocol चे नियम
  • IP classes A ते E, आणि CIDR
  • एका network मध्ये किती devices
  • Private ranges आणि cloud मधलं काम
  • IP addresses कोण वाटतं
  • Loopback, 127.0.0.1 आणि localhost
  • HTTP vs HTTPS, आणि free WiFi
  • Binary: प्रत्येक भाग 255 वर का थांबतो
  • Homework

Classroom line

Does anyone have a question on what we did yesterday?

1. Recap: IPv4 आणि 4,294,967,296 चा problem

का. आजचं सगळं एकाच problem मधून येतं, म्हणून आधी तो problem परत board वर लिहूया.

काय. IPv4 address चे 4 भाग असतात, प्रत्येक भाग 0 ते 255. म्हणजे 0.0.0.0 पासून 255.255.255.255 पर्यंत.

  1. एक भाग: 256 values (0 ते 255).
  2. दोन भाग: 256 × 256 = 65,536.
  3. तीन भाग: 256 × 256 × 256 = 16,777,216.
  4. चार भाग: 256 × 256 × 256 × 256 = 4,294,967,296, म्हणजे जवळपास 429 कोटी.

जगात 800+ कोटी लोक आहेत, आणि प्रत्येकाकडे एकापेक्षा जास्त devices आहेत. म्हणून IPv4 addresses कमी पडतात.

आतापर्यंत आपण हे कसं सांभाळलं.

कोणाला मिळतो का
Static IP servers clients ना server दर वेळी त्याच address वर सापडला पाहिजे; domain name (GoDaddy सारख्या registrar कडून घेतलेलं) DNS मधून त्याच IP कडे point करतं
Dynamic IP clients: phones, laptops तुम्ही online असेपर्यंत मिळतो, disconnect केलं की परत घेतला जातो, मग दुसऱ्या कोणाला दिला जातो

तुमच्या phone मधलं app server चा IP आत लिहून ठेवत नाही. ते domain name ठेवतं, आणि DNS ते name server च्या static IP मध्ये बदलतं.

2. फक्त dynamic IP पुरेसा का नाही

का. रात्री प्रत्येक phone ने IP परत दिला तरी, एकाच वेळी online असणारे devices 429 कोटी पेक्षा खूप जास्त आहेत. फक्त वेळेनुसार reuse करून भागत नाही.

Classroom line

Dynamic IP does not completely solve the IP problem... so IPs were again split into two types: Public IP and Private IP.

काय. म्हणजे आता शब्दांच्या दोन जोड्या आहेत. Static आणि dynamic सांगतात address device कडे किती वेळ राहतो. Public आणि private सांगतात address कुठे चालतो.

3. Public IP आणि private IP

का. प्रत्येक घरातल्या प्रत्येक phone, laptop आणि TV ला स्वतःचा public IP लागला असता, तर IPv4 कधीच संपला असता. Private IPs मुळे पूर्ण घर एकच public IP share करतं.

काय.

Public IP Private IP
कुठे चालतो पूर्ण internet वर फक्त तुमच्या स्वतःच्या network मध्ये (घर, office, AWS VPC)
कोण देतो तुमचा internet provider (ISP) तुमचा router (किंवा VPC मध्ये AWS)
Unique आहे का? पूर्ण जगात unique तेच numbers प्रत्येक घरात परत परत वापरले जातात
Board वरचं उदाहरण 3.3.3.3 192.168.0.2, 192.168.0.3

घरी हे कसं दिसतं (board वरचं drawing).

  1. ISP ची line (Jio Fiber, Airtel Fiber, किंवा कोणी local cable वाला) घरच्या router मध्ये येते.
  2. ISP router ला एक public IP देतो, समजा 3.3.3.3.
  3. घरात router हा gateway आहे, 192.168.0.1 वर.
  4. Router तुमच्या devices ना private IPs देतो: phone 192.168.0.2, दुसरा phone 192.168.0.3, laptop 192.168.0.4, TV 192.168.0.5.
  5. 192.168.0.0 हा network address आहे. तो पूर्ण network चं नाव आहे, कोणत्याच device ला किंवा router ला दिला जात नाही.
  6. Router आणि devices भोवती काढलेलं वर्तुळ म्हणजे तुमचं private network.
घरी public IP आणि private IP Internet Google 8.8.8.8 ISP Jio Fiber / Airtel ISP ची line Private network 192.168.0.0/24 घरचा router (gateway) Public: 3.3.3.3 Private: 192.168.0.1 Phone192.168.0.2 Phone 2192.168.0.3 Laptop192.168.0.4 TV192.168.0.5 192.168.0.0 = network address, कोणत्याच device ला दिला जात नाही

Figure 1. तुमचं घर: ISP router ला एक public IP (3.3.3.3) देतो. Private network मध्ये router 192.168.0.1 आणि devices .2, .3, .4, .5.

Private IP वाल्या devices ना internet मिळतं का? हो. तुमचा 192.168.0.2 वरचा phone रोज reels बघतो. Private IP स्वतःहून public internet वर जाऊ शकत नाही, म्हणून बाहेर जाताना router तो बदलून स्वतःचा public IP लावतो (या बदलाला NAT म्हणतात) आणि परत येताना पुन्हा बदलतो. हा बदल step by step आपण section 5 मध्ये बघू.

Ravindra Bagale's Tip

खूप students router 192.168.0.0 असा लिहितात. .0 हा network address आहे. Router साधारण 192.168.0.1 असतो (काही brands 192.168.1.1 वापरतात), आणि devices .2 पासून सुरू होतात.

4. Internet शिवाय बोलणं: अंतरावर अवलंबून

का. Internet कसं चालतं ते बघण्याआधी एक छोटा प्रश्न: समजा ISP ची cable तुटली. तरी दोन devices बोलू शकतात का?

काय. Board वरचा प्रश्न. दोन मित्र एकाच room मध्ये बसलेत. एकाला दुसऱ्याला एक file पाठवायची आहे. Internet नाही, data pack नाही. कसं?

  1. एका student ने SMS सांगितलं. पण SMS ला recharge आणि mobile network लागतं, म्हणून नाही.
  2. मग students नी Bluetooth, mobile hotspot, आणि ShareIt सारखे file-sharing apps सांगितले. हो, हे internet शिवाय चालतात.

कोण किती लांब पोहोचतं (साधारण values):

अंतर काय चालतं Note
साधारण 1 m infrared जुने phones आणि TV remote; एकमेकांकडे point करावं लागतं
साधारण 10 m Bluetooth file sharing, earphones
साधारण 100 m WiFi, mobile hotspot, LAN local network; devices ना private IPs मिळतात
500 m ते 1 km walkie-talkie फक्त radio वरचा आवाज, files नाहीत; हे IP networking नाही
काही km तुमची स्वतःची cable copper LAN cable एका run मध्ये साधारण 100 m जाते; जास्त लांब साठी fibre cable
जगात कुठेही internet जेव्हा स्वतःची cable टाकणं शक्य नसतं

Classroom line

If you are rich, you can lay a cable even 10 kilometres long.

Internet नाही? अंतर ठरवतं Infrared~1 m · जुने phones, TV remote Bluetooth~10 m · file share, earphones WiFi / hotspot / LAN~100 m · private IPs Walkie-talkie~1 km · फक्त radio वरचा आवाज, IP नाही स्वतःची cablekm · लांबसाठी fibre Internetकुठेही · बहुतेक जमिनीवर आणि समुद्राखाली fibre

Figure 2. Internet शिवाय devices किती लांब बोलू शकतात: infrared साधारण 1 m, Bluetooth साधारण 10 m, WiFi साधारण 100 m, जास्त लांब साठी स्वतःची cable, आणि cable टाकता येत नसेल तर internet.

मग internet म्हणजे काय? Internet बहुतेक cables आहे: जमिनीवरच्या आणि समुद्राखालच्या fibre cables, ज्या ISPs, companies आणि cloud providers चे networks जोडतात. Mobile tower किंवा तुमचं WiFi हा फक्त तुमच्या phone पर्यंतचा शेवटचा wireless hop आहे.

5. तुमचा phone router मधून Google पर्यंत कसा पोहोचतो (NAT)

का. तुमच्या phone कडे private IP आहे, तरी Google कडून उत्तर येतं. मधे कोणीतरी translate करतंय. ते म्हणजे router, आणि त्या trick चं नाव NAT (Network Address Translation).

काय. घरात devices एकमेकांशी WiFi वरून direct बोलतात. बाहेर जाणारं सगळं आधी router वर थांबतं. तुम्ही Google वर "weather Pune" search केलं, तर packet direct Google कडे जात नाही. ते router कडे जातं.

कसं. Step by step (board वरचे numbers):

  1. तुमचा phone 192.168.0.2 "weather Pune" search करतो. तो packet बनवतो: From 192.168.0.2:50001, To 8.8.8.8:443 (board वर Google म्हणजे 8.8.8.8).
  2. Packet router कडे जातं, 192.168.0.1. घरात router तुमचा phone त्याच्या MAC address ने ओळखतो; MAC फक्त local network मध्येच वापरला जातो.
  3. Router त्याच्या NAT table मध्ये एक line लिहितो: आतला 192.168.0.2:50001 ↔ बाहेरचा 3.3.3.3:40001.
  4. Router From address बदलून स्वतःचा public IP लावतो: From 3.3.3.3:40001, To 8.8.8.8:443.
  5. Packet internet वरून Google पर्यंत जातं.
  6. Google उत्तर देतं: From 8.8.8.8:443, To 3.3.3.3:40001. Google ला फक्त 3.3.3.3 दिसतो.
  7. Router NAT table मध्ये 3.3.3.3:40001 शोधतो आणि त्याला 192.168.0.2:50001 सापडतो.
  8. Router To address परत 192.168.0.2:50001 करतो आणि उत्तर तुमच्या phone ला देतो.

एकाच वेळी दोघांनी search केलं तर. तुमची बहीण 192.168.0.3 वरून त्याच वेळी "cricket score" search करते. Router दुसरी line लिहितो: 192.168.0.3:50001 ↔ 3.3.3.3:40002. दोन्ही उत्तरं एकाच public IP 3.3.3.3 वर येतात, पण वेगळ्या ports वर, म्हणून router तुमचं weather आणि तिचा cricket score कधीच mix करत नाही.

आत (private IP:port) बाहेर (public IP:port) Search
192.168.0.2:50001 3.3.3.3:40001 weather Pune
192.168.0.3:50001 3.3.3.3:40002 cricket score
NAT: router private IP:port बदलून public IP:port लावतो तुमचा phone192.168.0.2"weather Pune" बहिणीचा phone192.168.0.3"cricket score" Router · public 3.3.3.3 NAT table आत IP:portबाहेर IP:port 192.168.0.2:500013.3.3.3:40001 192.168.0.3:500013.3.3.3:40002 Public IP एकच, ports वेगळे, म्हणून उत्तरं कधीच mix होत नाहीत MAC address फक्त घरातच वापरला जातो Google8.8.8.8:443 जाताना: From 192.168.0.2:50001 → router → From 3.3.3.3:40001, To 8.8.8.8:443 येताना: From 8.8.8.8:443, To 3.3.3.3:40001 → table मध्ये शोध → To 192.168.0.2:50001

Figure 3. Router ची NAT table: प्रत्येक private IP:port बदलून public IP 3.3.3.3 आणि त्याचा स्वतःचा port लावला जातो. 8.8.8.8 कडून आलेलं उत्तर त्याच port वर येतं आणि बरोबर phone ला दिलं जातं.

Packet चा प्रवास, IP swap सकट Phone192.168.0.2 Router3.3.3.3 Internet Google8.8.8.8 From 192.168.0.2 To 8.8.8.8 From 3.3.3.3 To 8.8.8.8 From 8.8.8.8 To 3.3.3.3 From 8.8.8.8 To 192.168.0.2 इथे swap

Figure 4. Animation: packet phone मधून From 192.168.0.2 म्हणून निघतं, router ते From 3.3.3.3 करतो, ते 8.8.8.8 ला पोहोचतं, आणि उत्तर त्याच रस्त्याने परत येतं.

Ravindra Bagale's Tip

Interview मध्ये खूप students सांगतात "router request ID लक्षात ठेवतो". बरोबर सांगा: router एक NAT table ठेवतो, जी private IP आणि port ला public IP आणि port शी जोडते. हीच idea AWS मध्ये private subnets साठी NAT Gateway म्हणून परत येते.

6. IPv4 अजून का संपला नाही: प्रत्येक घर तेच private IPs वापरतं

का. 429 कोटी addresses, 800+ कोटी लोक, प्रत्येकाकडे खूप devices, तरी सगळे online. ही आहे trick.

काय.

  1. माझ्या घरी router चा public IP 3.3.3.3 आहे, आणि माझे devices 192.168.0.2, 192.168.0.3, …
  2. तुमच्या घरी router चा public IP 5.5.5.5 आहे, आणि तुमचे devices पण 192.168.0.2, 192.168.0.3, …
  3. काही clash होत नाही, कारण private IPs कधीच स्वतःच्या network बाहेर जात नाहीत. Internet वर फक्त routers चे public IPs जातात.
  4. म्हणून कोट्यवधी घरं तेच 192.168.0.x numbers परत परत वापरतात.
  5. Mobile companies हेच मोठ्या प्रमाणावर करतात: खूप phones एकच public IP share करतात (carrier-grade NAT).
प्रत्येक घर तेच private IPs परत वापरतं Internetफक्त public IPs दिसतात माझं घर तुमचं घर Public 3.3.3.3192.168.0.1 Public 5.5.5.5192.168.0.1 192.168.0.2 192.168.0.3 192.168.0.2 192.168.0.3

Figure 5. दोन घरं तेच private IPs 192.168.0.2 आणि .3 वापरतात, काही clash नाही. Internet वर फक्त त्यांचे public IPs, 3.3.3.3 आणि 5.5.5.5, दिसतात.

हे तुम्ही स्वतः कसं बघणार. एकाच घरच्या WiFi वरचे सगळे Google वर "my IP" search करतील, तर सगळ्यांना एकच public IP दिसेल: router चा. हे तुम्ही homework मध्ये test करणार.

एका घरच्या router वर किती devices बसतात? 192.168.0.x सारख्या घरच्या network मध्ये (AWS च्या भाषेत /24) 256 addresses असतात, .0 ते .255:

  1. 192.168.0.0 हा network address. वापरता येत नाही.
  2. 192.168.0.255 हा broadcast address. वापरता येत नाही.
  3. उरले 254 usable addresses, .1 ते .254.
  4. एक router घेतो (.1), म्हणजे साधारण 253 devices जोडता येतात.

7. Router चा public IP static असतो की dynamic?

का. एका student ने विचारलं: "Router cha public IP static aste ki dynamic aste?" (Router चा public IP static असतो की dynamic?)

काय.

  1. बहुतेक घरच्या routers ना dynamic public IP मिळतो. आज 3.3.3.3 असेल; restart नंतर किंवा काही दिवसांनी बदलू शकतो.
  2. मुख्य कारण: ISPs कमी असलेले IPv4 addresses वाचवतात, आणि dynamic सगळ्यांसाठी स्वस्त पडतो.
  3. Fixed IP हवा असेल (उदाहरण, घरून server चालवायचा असेल), तर ISP कडून static IP विकत घेता येतो.
  4. Client आहे म्हणून IP dynamic च पाहिजे असं काही नाही. घरांसाठी dynamic हा फक्त स्वस्त आणि जास्त वापरला जाणारा पर्याय आहे.

8. WiFi आणि mobile data, दोन्ही चालू

का. सगळे दोन्ही चालू ठेवतात. मग phone कोणतं वापरतो?

काय.

  1. WiFi connected असेल आणि चालत असेल, तर phone WiFi ला प्राधान्य देतो.
  2. WiFi ला internet नसेल, तर phone mobile data वर जातो.
  3. फक्त mobile data वर असताना phone ला address mobile company देते. बऱ्याच वेळा हा पण shared public IP मागचा private address असतो (carrier-grade NAT).

9. Mobile hotspot: तुमचा phone router बनतो

का. मित्रासाठी hotspot चालू केला की तुमचा phone अगदी घरच्या router सारखंच काम करतो.

काय.

  1. तुमचा phone स्वतःचं WiFi name दाखवतो.
  2. जे devices connect होतात त्यांना तो private IPs देतो.
  3. त्यांचा traffic तो स्वतःच्या mobile-data address मधून बाहेर पाठवतो, NAT वापरून, घरच्या router सारखाच.
  4. तुमच्या मित्राने "cricket score" search केलं, तर website ला तुमच्या phone चा public address दिसतो, मित्राचा private IP नाही.

किती devices? Hotspot फक्त थोडे devices घेतो, साधारण 5 ते 10, phone company ने ठरवलेले. Phone चा CPU, battery आणि RAM खऱ्या router सारखे खूप devices सांभाळायला बनलेले नसतात.

दुसऱ्याच्या hotspot वर privacy. Hotspot वाल्याच्या phone मधून तुमचा सगळा traffic जातो. साध्या HTTP वर तुम्ही जे पाठवता ते तो वाचू शकतो. HTTPS वर content encrypted असतो. हे आपण section 20 मध्ये परत बघू.

10. Ports: IP server पर्यंत नेतो, port app पर्यंत

का. एका server वर एकाच वेळी खूप programs चालतात: website, database, remote-login service. IP फक्त machine पर्यंत नेतो. आतल्या कोणत्या program कडे जायचं ते कोणीतरी सांगायला हवं.

काय. Port म्हणजे 0 ते 65,535 मधला एक number (म्हणजे 65,536 ports), जो operating system network वरच्या program ला देतो.

  1. Browser http://3.3.3.3/login.html उघडतो (किंवा https://instagram.com/login.html; हे board वरचं "समजा" उदाहरण).
  2. तुम्ही name टाकलं असेल, तर आधी DNS ते name IP मध्ये बदलतं.
  3. Request server 3.3.3.3 ला पोहोचते. इथे IP चं काम संपलं.
  4. Port number सांगतो की 3.3.3.3 वरच्या कोणत्या program ला request मिळायला हवी.

Building आणि flat. IP म्हणजे building चा पत्ता; port म्हणजे building मधला flat number. Courier ला दोन्ही लागतात.

Ravindra Bagale's Tip

Network port म्हणजे CPU वरची hardware pin नाही, आणि laptop वरचा USB port पण नाही. तो operating system मधला logical number आहे (TCP किंवा UDP). लक्षात ठेवा: building = IP, flat number = port.

11. Default ports: 80 आणि 443

का. Browser मध्ये कोणी :80 टाकत नाही, तरी चालतं. Browser तो तुमच्यासाठी लावतो.

काय.

तुम्ही टाकता Browser खरं तर वापरतो
http://3.3.3.3 http://3.3.3.3:80
https://3.3.3.3 https://3.3.3.3:443
http://3.3.3.3:8080 port 8080, कारण तुम्ही तो टाकला

म्हणजे http://3.3.3.3:80 आणि http://3.3.3.3 एकच page उघडतात.

या course मध्ये तुम्ही वापरणार ते common ports:

Port Program
22 SSH (server वर remote login)
80 HTTP (website)
443 HTTPS (secure website)
3306 MySQL database
9000 php-fpm (Nginx मागचं PHP)
Whiteboard list: http 80, https 443, ssh 22.

Class board वरून: हे default ports पाठ करून ठेवा: HTTP ला 80, HTTPS ला 443, आणि SSH ला 22.

12. Web server: 80 आणि 443 वर कोण ऐकतं?

का. फक्त port 80 उघडून भागत नाही. त्यावर एखादा program चालू असून ऐकत असला पाहिजे, नाहीतर browser ला काहीच मिळत नाही.

काय. तो program म्हणजे web server. उदाहरणं: Apache, Nginx, Tomcat, IIS, Gunicorn, Uvicorn.

login.html ची request कशी serve होते (Apache):

  1. Browser http://3.3.3.3/login.html मागतो.
  2. Request 3.3.3.3 च्या port 80 वर पोहोचते.
  3. Apache port 80 वर ऐकत असतो.
  4. Apache चा default web folder (document root) /var/www/html आहे.
  5. Apache /var/www/html/login.html ही file परत पाठवतो.

Amazon Linux वर Nginx चा default web folder /usr/share/nginx/html असतो.

Lab मध्ये तुम्ही हे स्वतः करणार:

  1. sudo yum install httpd -y
  2. sudo service httpd start
  3. तुमचं page /var/www/html/login.html मध्ये ठेवा.
  4. Browser मध्ये http://<तुमच्या-server-चा-IP>/login.html उघडा.

13. Port 22 वर SSH: पूर्ण server सांभाळणं

का. Visitors ना फक्त तुमच्या website च्या files लागतात. तुम्हाला, admin ला, पूर्ण server लागतो: software install करणं, folders बनवणं, logs वाचणं.

काय. SSH म्हणजे Secure Shell. तो port 22 वर चालतो आणि तुमच्या laptop वरून server ची command line देतो.

Board वरचं drawing कसं आहे:

  1. Server 3.3.3.3 हा एक मोठा box आहे. Website हा त्यातला एक छोटा folder, /var/www/html.
  2. Visitors port 80 किंवा 443 मधून येतात आणि फक्त त्या folder पर्यंत पोहोचतात.
  3. Admin laptop वर PowerShell उघडतो आणि port 22 वर SSH ने connect होतो.
  4. आता admin पूर्ण server च्या आत आहे आणि commands चालवू शकतो, उदाहरण mkdir ravi.
एक server, तीन दरवाजे (ports) IP = building चा पत्ता · port = flat number Visitor चा browserhttp://3.3.3.3:80 Visitor चा browserhttps://3.3.3.3:443 Admin चा laptopPowerShellssh ec2-user@3.3.3.3 Server 3.3.3.3 80 443 22 /var/www/htmlwebsite च्या files (login.html)web server: Apache / Nginx बाकी सगळं: सगळ्या files, सगळ्या sites, software, settings, logs $ mkdir ravi SSH (Secure Shell) = पूर्ण server

Figure 6. एक server, 3.3.3.3. Visitors ports 80 आणि 443 मधून फक्त website folder पर्यंत पोहोचतात. Admin port 22 वरच्या SSH मधून पूर्ण server पर्यंत पोहोचतो.

SSH ची जास्त काळजी का घ्यायची.

काय hack झालं काय affect होतं
Website ती site आणि तिचा data
SSH पूर्ण server: प्रत्येक file, त्यावरची प्रत्येक site, प्रत्येक setting

म्हणून hack झालेला SSH login सगळ्यात धोकादायक. AWS मध्ये त्याला protect करा:

  1. Security group मध्ये port 22 फक्त My IP वरून allow करा, सगळीकडून (0.0.0.0/0) नाही.
  2. Password नाही, key pair ने login करा.
  3. Private key file सांभाळून ठेवा, कधीच कोणाला देऊ नका.

Classroom line

Any question here?

14. URL syntax: protocol म्हणजे कडक नियम

का. Protocol म्हणजे असे नियम जे दोन्ही बाजू अगदी तंतोतंत पाळतात. एक character चुकला की browser ला तुमचं काहीच कळत नाही.

काय. http://3.3.3.3:80/login.html तुकडा तुकडा वाचा:

  1. http हा protocol. fttp नाही, htp नाही.
  2. :// म्हणजे एक colon आणि दोन slashes.
  3. 3.3.3.3 हा server चा IP (किंवा domain name).
  4. : IP आणि port वेगळे करतो.
  5. 80 हा port.
  6. /login.html ही तुम्हाला हवी असलेली file.
URL तुकडा तुकडा वाचूया http :// 3.3.3.3 : 80 /login.html protocol colon +2 slashes IP किंवा domain colon port file path fttp नाही, semicolon नाही, comma नाही. एक character चुकला की चालत नाही.

Figure 7. URL च्या प्रत्येक तुकड्याची जागा ठरलेली आहे: protocol, colon आणि दोन slashes, IP किंवा name, colon, port, मग file path.

Handwritten URL http://3.3.3.3:80/login.html, with the protocol part bracketed and the IP address underlined.

Class board वरून: URL कसा वाचायचा ते बघा: आधी protocol (http), मग ://, मग IP address (3.3.3.3), मग : आणि port (80), आणि शेवटी / नंतर path (login.html).

Classroom line

After HTTP you must write a colon... a semicolon won't work, a comma won't work... you must write two slashes.

15. IP classes A ते E

का. सुरुवातीच्या internet मध्ये IPs ठरलेल्या size च्या blocks मध्ये दिले जायचे, त्यांना classes म्हणतात. IP चा पहिला भाग class सांगतो. ही नावं तुम्हाला interviews मध्ये आणि घरच्या router मध्ये अजून ऐकायला मिळतील.

काय. फक्त IP चा पहिला भाग बघा:

Class पहिला भाग Network आणि host भाग कशासाठी
A 0 ते 127 (usable 1 ते 126) N.H.H.H खूप मोठे networks
B 128 ते 191 N.N.H.H मध्यम networks
C 192 ते 223 N.N.N.H छोटे networks, घरासारखे
D 224 ते 239 – multicast (एक पाठवणारा, खूप घेणारे)
E 240 ते 255 – reserved, experimental

N म्हणजे network भाग (त्या network मधल्या सगळ्या devices साठी सारखा). H म्हणजे host भाग (प्रत्येक device साठी वेगळा).

  1. 0.x.x.x reserved आहे, आणि 127.x.x.x class A मध्येच आहे पण loopback साठी reserved आहे (section 19). म्हणून class A hosts 1 ते 126 वापरतात.
  2. Normal devices ना फक्त A, B आणि C classes दिले जातात.

उदाहरणं:

IP पहिला भाग Class
10.0.0.5 10 A
127.0.0.1 127 A range, पण loopback साठी reserved
172.16.4.20 172 B
192.168.0.2 192 C
224.0.0.5 224 D (multicast)
IP चा पहिला भाग class ठरवतो Class A0 – 127 (hosts 1 – 126) Class B128 – 191 C192–223 D E 0128192224240255 127 = loopback (127.0.0.1) multicast reserved Network (N) आणि host (H) भाग AN . H . H . H10.0.0.5 BN . N . H . H172.16.4.20 CN . N . N . H192.168.0.2 आज: CIDR /8, /16, /24 (AWS VPC CIDR वापरतं)

Figure 8. IP चा पहिला भाग class ठरवतो: A 0 ते 127 (127 म्हणजे loopback), B 128 ते 191, C 192 ते 223, D 224 ते 239 multicast, E 240 ते 255 reserved.

आज हे कसं करतात: CIDR. Classes आता इतिहास आहेत. आजचे networks, आणि AWS VPC, CIDR वापरतात: slash नंतरचा number सांगतो की किती bits network भाग आहेत. /8 म्हणजे class A सारखं, /16 class B सारखं, /24 class C सारखं, पण तुम्ही कोणतीही size निवडू शकता, उदाहरण /20.

16. एका network मध्ये किती devices बसतात

का. AWS मध्ये network बनवताना तुम्ही त्याची size निवडता. म्हणून कोणत्या size मध्ये किती devices बसतात ते माहिती पाहिजे.

काय.

  1. घरचा router class C सारखं network वापरतो, 192.168.0.x. फक्त शेवटचा भाग बदलतो, 0 ते 255: 256 addresses, 254 usable (.0 network, .255 broadcast).
  2. Class B सारख्या network मध्ये शेवटचे दोन भाग बदलतात: 256 × 256 = 65,536 addresses.
  3. घरचा router इतक्या devices साठी बनलेला नसतो. मोठी offices आणि malls enterprise network equipment वापरतात.
  4. AWS मध्ये /24 subnet ला 256 addresses असतात, आणि AWS प्रत्येक subnet मधले 5 स्वतःकडे ठेवतं, म्हणून तुमच्या servers साठी 251 usable.
Network Addresses Usable
192.168.0.0/24 (घर) 256 254 (253 devices आणि router)
AWS subnet /24 256 251 (AWS 5 ठेवतं)
/16 (class B सारखं) 65,536 65,534

17. Private IP ranges, आणि cloud मधलं काम बहुतेक private का

का. Private IP बघितल्या बघितल्या ओळखता आला पाहिजे, कारण AWS मध्ये तुम्ही बनवणार ते जवळपास प्रत्येक server ला private IP असणार.

काय. हे तीन ranges private आहेत (RFC 1918). बाकी सगळे, reserved blocks सोडून, public आहेत आणि ISPs आणि cloud providers मधून दिले जातात.

Range Class सारखं उदाहरण
10.0.0.0 ते 10.255.255.255 A 10.0.1.25
172.16.0.0 ते 172.31.255.255 B 172.31.5.10
192.168.0.0 ते 192.168.255.255 C 192.168.0.2

लक्षात ठेवा: 172.15.0.1 आणि 172.32.0.1 private नाहीत. फक्त 172.16 ते 172.31.

Classroom line

Our whole working life goes in private IPs... most of our work stays in private IPs.

मोठं app हे कसं वापरतं. समजा Instagram सारखं app 100,000 servers वर चालतं (हा शिकण्यासाठी "समजा" number आहे):

  1. फक्त समोरचे servers आणि load balancers public IPs घेऊन internet कडे तोंड करून असतात.
  2. App servers आणि databases एकमेकांशी private IPs वर बोलतात.
  3. AWS मध्ये हेच VPC बनतं: public subnets (समोरचा दरवाजा) आणि private subnets (बाकी सगळं).

18. IP addresses कोण वाटतं?

का. प्रत्येक देशाने किंवा company ने मनाला येईल तो IP घेतला असता, तर दोन machines ना एकच address मिळाला असता आणि internet बिघडलं असतं.

Classroom line

These IPs don't belong to any one country... they are the whole world's property.

काय. साखळी अशी आहे:

  1. IANA पूर्ण जगाचा IP address space सांभाळतं.
  2. IANA मोठे blocks पाच regional registries ना देतं. भारत आणि Asia-Pacific साठी ते APNIC आहे.
  3. APNIC ISPs आणि cloud providers ना blocks देतं (Jio, Airtel, AWS आणि इतर).
  4. ISP त्याच्या block मधला एक IP तुमच्या router ला किंवा phone ला देतो.
  5. Registries कडचे IPv4 संपलेत, म्हणून आता IPv4 blocks companies मध्ये transfer market वर विकत घेतले आणि विकले पण जातात.

IP वरून location कळतं का? IP मधले numbers ISP, राज्य किंवा जिल्हा सांगत नाहीत. पण कोणत्या ISP ला कोणता block मिळाला हे registries नोंदवतात, म्हणून location services पूर्ण blocks ला साधारण शहर आणि ISP शी जोडतात. म्हणून तुमच्या public IP वरून तुम्ही साधारण कुठे आहात आणि कोणता ISP वापरता हे कळू शकतं.

19. Loopback आणि localhost: 127.0.0.1

का. एकाच server वर programs ना एकमेकांशी बोलावं लागतं: web server PHP शी, PHP database शी. हे internet वर बाहेर पाठवून परत आणणं slow आणि unsafe झालं असतं.

काय. पूर्ण 127.0.0.0 ते 127.255.255.255 range म्हणजे loopback: तिथे पाठवलेला traffic machine च्या बाहेर कधीच जात नाही. सगळे 127.0.0.1 वापरतात, आणि त्याचं नाव localhost.

एका server वर हे कसं चालतं (board वरचं drawing):

  1. Visitor port 80 वर Nginx पर्यंत पोहोचतो.
  2. Nginx PHP चं काम 127.0.0.1:9000 वरच्या php-fpm कडे देतो. (Amazon Linux वर php-fpm port 9000 ऐवजी socket file वापरू शकतो; idea तीच आहे.)
  3. php-fpm 127.0.0.1:3306 वरच्या MySQL ला विचारतो.
  4. हे सगळं server च्या आतच राहतं. IP एकच, ports वेगळे.
  5. 127.0.0.2 किंवा 127.0.0.3 पण वापरता येतात, पण साधारण सगळे 127.0.0.1 वापरतात आणि programs ports ने वेगळे करतात.
Loopback: एका server वरचे programs 127.0.0.1 वर बोलतात Visitorport 80 Server 3.3.3.3 · localhost = 127.0.0.1 Nginx:80 php-fpm:9000 MySQL:3306 127.0.0.1:9000 127.0.0.1:3306 machine बाहेर कधीच जात नाही · IP एकच, ports वेगळे

Figure 9. एकाच server मध्ये Nginx (80), php-fpm (9000) आणि MySQL (3306) एकमेकांशी 127.0.0.1 वर बोलतात. हा traffic machine च्या बाहेर कधीच जात नाही.

तुमच्या server वर try करा: curl http://localhost तुमचा web server host करत असलेलं page दाखवतो, internet मधून न जाता.

20. HTTP vs HTTPS: दुसऱ्यांना काय दिसतं

का. दुसऱ्याच्या hotspot वर किंवा cafe च्या WiFi वर तुमचं प्रत्येक packet त्यांच्या device मधून जातं. त्यांना काय वाचता येईल ते HTTP की HTTPS यावर ठरतं.

काय.

HTTP HTTPS
Data कसा जातो plain text encrypted
Port 80 443
काय लागतं काही extra नाही server वर SSL/TLS certificate
WiFi वाल्याला तुमचा password वाचता येतो? हो नाही, फक्त गोंधळलेला data

उदाहरण. तुम्ही cafe च्या WiFi वर एका site वर login करता.

  1. http://example.com वर तुमचं username आणि password plain text म्हणून जातात. WiFi वाला ते वाचू शकतो.
  2. https://example.com वर तेच login encrypted जातं. WiFi वाल्याला फक्त गोंधळलेला data दिसतो.
  3. Payment आणि shopping apps (PhonePe, Paytm, Flipkart, Amazon) HTTPS वापरतात, म्हणून public WiFi आधीपेक्षा खूप safe आहे. तरी काळजी घ्या.
Cafe WiFi: HTTP vs HTTPS http://example.com (port 80) Laptop Cafe WiFiमालक बघतोय Website user=ravi password=Ravi@123 ← वाचता येतं https://example.com (port 443) Laptop Cafe WiFiमालक बघतोय WebsiteSSL/TLS x9#Lq!7v%Tz@2k ← गोंधळलेलं; मालकाला फक्त "example.com" दिसतं

Figure 10. Animation: HTTP वर password cafe WiFi मधून वाचता येईल असा जातो; HTTPS वर गोंधळलेला data म्हणून जातो, आणि WiFi वाल्याला फक्त site चं name दिसतं.

21. Mall मधलं free WiFi: पैसे कोण भरतंय?

Classroom line

Nobody buys anyone tea or vada pav for free, so who gives free WiFi without any benefit?

HTTPS असलं तरी free WiFi वाल्याला काय दिसतं:

  1. प्रत्येक packet चे From आणि To IPs, कारण ते पोहोचवायला router ला ते लागतात.
  2. तुम्ही कोणत्या sites वर जाता, मुख्यतः तुमच्या DNS lookups मधून आणि HTTPS connection च्या सुरुवातीला browser पाठवतो त्या site name मधून.
  3. तुम्ही कधी आणि किती वापरता.

HTTPS असताना त्यांना काय दिसत नाही: तुमचे messages, passwords आणि page चा content.

फक्त IP वरून app नेहमी कळत नाही, कारण खूप sites एकच मोठे content-delivery servers share करतात. धडा तोच: free WiFi ला तुम्ही कोणत्या sites वर गेलात ते दिसतं, तुम्ही काय पाठवलं ते नाही.

22. तुमच्या स्वतःच्या phone चा traffic बघा

का. स्वतःचे packets बघितले की आजच्या सगळ्या ideas खऱ्या वाटतात.

काय. Android वरचे packet-capture apps (उदाहरण "PCAPdroid" किंवा जुने "Packet Capture" apps) तुमच्या phone वर एक local VPN बनवतात आणि तुमच्या स्वतःच्या phone चे connections दाखवतात: कोणतं app कोणत्या server शी, कोणत्या port वर बोलतंय.

  1. तुमच्या स्वतःच्या phone वर Play Store मधून packet-capture app install करा.
  2. Capture सुरू करा.
  3. काही apps उघडा.
  4. प्रत्येक app कोणते IPs आणि ports वापरतं, आणि कोणते connections HTTP आहेत आणि कोणते HTTPS, ते बघा.

हे फक्त तुमच्या स्वतःच्या phone वर वापरा. दुसऱ्यांच्या परवानगीशिवाय त्यांचा traffic बघणं बरोबर नाही.

23. IP चा प्रत्येक भाग 255 वर का थांबतो: binary

का. मागच्या class पासून आपण म्हणतोय "कोणताच भाग 255 च्या वर जात नाही". आज का ते बघूया.

काय. माणसं decimal मध्ये मोजतात (0 ते 9). Machines ना फक्त binary कळते: 0 आणि 1. म्हणून प्रत्येक IP binary मध्ये store होतो.

Board वरचा प्रश्न: "Kiti zero use karu?" (किती zero वापरू?) Students नी 4, 8, 16, 32 असे अंदाज केले. उत्तर: प्रत्येक भागासाठी 8 bits (8 binary digits). 8 bits = 1 byte.

  1. 0.0.0.0 binary मध्ये 00000000.00000000.00000000.00000000.
  2. पुढचा IP, 0.0.0.1, म्हणजे 00000000.00000000.00000000.00000001.
  3. IPv4 address म्हणजे 4 भाग × 8 bits = 32 bits.

Classroom line

This is the quality of our studying... this all happens because of rote learning. If you understand it, this never happens.

Binary मध्ये मोजणं, 0 ते 15:

Decimal Binary Decimal Binary
0 0 8 1000
1 1 9 1001
2 10 10 1010
3 11 11 1011
4 100 12 1100
5 101 13 1101
6 110 14 1110
7 111 15 1111
Two handwritten columns: decimal 0 to 8 with binary 0 to 1000, and decimal 9 to 15 with binary 1001 to 1111.

Class board वरून: Binary मध्ये मोजणी: 0 ते 15 decimal आणि बाजूला त्यांचं binary, 0, 1, 10, 11 पासून 1111 पर्यंत. 4 bits मध्ये 16 values बसतात, 0 ते 15.

8 bits मधला सगळ्यात मोठा number. आठही bits मध्ये 1 भरा: 11111111. प्रत्येक जागेची एक value असते, उजवीकडून सुरू करून: 1, 2, 4, 8, 16, 32, 64, 128.

128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255

Eight vertical strokes (bits set to 1) on a line, with place values 128 64 32 16 8 4 2 1 written above them.

Class board वरून: IP चा एक part म्हणजे 8 bits, आणि त्यांच्या place values 128, 64, 32, 16, 8, 4, 2, 1. सगळे bits 1 केले आणि बेरीज केली की 128+64+32+16+8+4+2+1 = 255 येते. म्हणूनच प्रत्येक part 255 वरच थांबतो.

8 bits, सगळे 1 = 255 1281 641 321 161 81 41 21 11 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255 एक भाग = 8 bits = 1 byte · IPv4 = 4 × 8 = 32 bits 0.0.0.1 = 00000000.00000000.00000000.00000001 256 = 1 00000000 ← 9 वा bit लागतो, म्हणून IP मध्ये कधीच नाही

Figure 11. Animation: आठ bits, place values 128 ते 1. आठही 1 असले की बेरीज 255 होते. 256 साठी 9 वा bit लागेल.

म्हणजे:

  1. एका भागात 8 bits, म्हणून त्यात 0 (00000000) ते 255 (11111111) बसतात.
  2. 256 binary मध्ये 100000000. त्याला 9 वा bit लागतो, जो IPv4 च्या भागात नसतो.
  3. म्हणूनच 256.0.7.8 कधीच IP address नसतो.

24. Homework: घरी try करा

घरी try करा

Test 1: खूप devices, एक public IP

  1. तुमच्या phone वर mobile hotspot चालू करा.
  2. 2 किंवा 3 मित्रांना त्याला connect व्हायला सांगा.
  3. सगळ्यांनी Google उघडून "my IP" search करा.
  4. Compare करा: सगळ्यांना एकच public IP दिसेल, तुमच्या phone चा.
  5. हेच NAT: एका public IP मागे private IPs.

Test 2: तुमचा स्वतःचा private IP शोधा

  1. Windows laptop वर Command Prompt उघडा आणि ipconfig चालवा.
  2. IPv4 Address (उदाहरण 192.168.0.4) आणि Default Gateway (उदाहरण 192.168.0.1) शोधा.
  3. Linux वर ip addr चालवा आणि inet ने सुरू होणारी line बघा.
  4. Check करा: तुमचा IP तीन private ranges पैकी एकात येतो का?
  5. आता Google वर "my IP" search करा. दिसणारा public IP तुमच्या private IP पेक्षा वेगळा असेल.

Test 3 (optional): localhost

  1. तुमच्या laptop वर किंवा server वर web server चालू असेल, तर http://localhost उघडा.
  2. तुमच्या AWS server वर curl http://localhost चालवू शकता.
  3. Page त्याच machine वरून, 127.0.0.1 मधून येतं.

Ravindra Bagale's Tip

खूप students ipconfig मधला 192.168.x.x address हाच public IP म्हणून लिहितात. हे दोन वेगळे आहेत: ipconfig router ने दिलेला private IP दाखवतो; Google तुमच्या router चा public IP दाखवतं.

Recap

थोडक्यात सांगायचं तर

  1. IPv4 मध्ये 4,294,967,296 addresses, म्हणजे जवळपास 429 कोटी, आणि लोक 800+ कोटी. फक्त dynamic IP ने हे सुटत नाही.
  2. Public IPs internet वर चालतात; private IPs फक्त तुमच्या network मध्ये चालतात आणि प्रत्येक घरात परत वापरले जातात.
  3. तुमचा router 192.168.0.1, devices .2 पासून, आणि .0 म्हणजे network address.
  4. Router NAT करतो: private IP:port ↔ public IP:port, म्हणून private devices ना पण internet मिळतं.
  5. /24 घरच्या network मध्ये 254 usable addresses; router सोडून साधारण 253 devices.
  6. Internet शिवाय अंतर ठरवतं: infrared, Bluetooth, WiFi, स्वतःची cable. Internet स्वतः बहुतेक fibre आहे.
  7. IP server पर्यंत नेतो; port (0 ते 65,535) program पर्यंत. 80 HTTP, 443 HTTPS, 22 SSH, 3306 MySQL, 9000 php-fpm.
  8. SSH म्हणजे Secure Shell; SSH login hack झालं तर पूर्ण server उघडा पडतो.
  9. Classes: hosts साठी A, B, C, D multicast, E reserved. आज AWS CIDR वापरतं (/16, /24).
  10. Private ranges: 10.x, 172.16 ते 172.31, 192.168.x. IANA → APNIC → ISPs IPs वाटतात.
  11. 127.0.0.1 (localhost) machine च्या बाहेर कधीच जात नाही.
  12. HTTPS content लपवतं, कोणत्या sites वर गेलात ते नाही. Free WiFi कधीच पूर्ण free नसतं.
  13. आठ bits चे 1 = 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255. म्हणूनच कोणताच भाग 255 च्या वर जात नाही.

समजलं का? आज रात्री hotspot चा "my IP" test करा. कळेल तुम्हाला, हळूहळू कळेल. पुढच्या class मध्ये अजून खोलात जाऊ.


Ravindra Bagale, trainer: linkedin.com/in/ravindra-bagale. Board वरचे सगळे IPs शिकण्यासाठीचे dummy numbers आहेत. Instagram 100,000 servers वर हे "समजा" उदाहरण आहे, Instagram बद्दलचं fact नाही.