<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Himanshu Bhatt</title>
    <description>The latest articles on DEV Community by Himanshu Bhatt (@himanshu_bhatt).</description>
    <link>https://dev.to/himanshu_bhatt</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2757310%2F5068b1d0-4dfb-42af-af4a-f7c39031109d.png</url>
      <title>DEV Community: Himanshu Bhatt</title>
      <link>https://dev.to/himanshu_bhatt</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/himanshu_bhatt"/>
    <language>en</language>
    <item>
      <title>HTML-101 #6. Paths, Anchor Tag, Mail &amp; Phone Links</title>
      <dc:creator>Himanshu Bhatt</dc:creator>
      <pubDate>Wed, 21 Jan 2026 03:39:56 +0000</pubDate>
      <link>https://dev.to/himanshu_bhatt/html-101-6-paths-anchor-tag-mail-phone-links-5f24</link>
      <guid>https://dev.to/himanshu_bhatt/html-101-6-paths-anchor-tag-mail-phone-links-5f24</guid>
      <description>&lt;h2&gt;
  
  
  👋 Short Intro (Why I’m Writing This)
&lt;/h2&gt;

&lt;p&gt;I’m currently learning HTML and decided to &lt;strong&gt;learn in public&lt;/strong&gt; by documenting my journey.&lt;/p&gt;

&lt;p&gt;This blog is part of my &lt;strong&gt;HTML-101 series&lt;/strong&gt;, where I’m learning HTML step by step from scratch.&lt;/p&gt;

&lt;p&gt;This series is &lt;strong&gt;not written by an expert&lt;/strong&gt; — it’s a beginner learning out loud, sharing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what I understand,&lt;/li&gt;
&lt;li&gt;what confuses me,&lt;/li&gt;
&lt;li&gt;and what I learn along the way.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is to build consistency, clarity, and invite discussion.&lt;/p&gt;




&lt;h2&gt;
  
  
  📌 What This Blog Covers
&lt;/h2&gt;

&lt;p&gt;In this post, I’ll cover:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Quick recap — what paths are (short)
&lt;/li&gt;
&lt;li&gt;Anchor tag basics (&lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt;) and anatomy
&lt;/li&gt;
&lt;li&gt;Types of href values (absolute, relative, fragment, mailto, tel)
&lt;/li&gt;
&lt;li&gt;Important attributes: &lt;code&gt;target&lt;/code&gt;, &lt;code&gt;rel&lt;/code&gt;, &lt;code&gt;download&lt;/code&gt;, &lt;code&gt;title&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Link states, styling, accessibility &amp;amp; keyboard behavior
&lt;/li&gt;
&lt;li&gt;Mailto links: formats and extra parameters (subject, body)
&lt;/li&gt;
&lt;li&gt;Tel links: formatting and best practices
&lt;/li&gt;
&lt;li&gt;When to use links vs buttons
&lt;/li&gt;
&lt;li&gt;Common mistakes and tips&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  📂 GitHub Repository
&lt;/h2&gt;

&lt;p&gt;All my notes, examples, and practice code live here:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;GitHub Repo:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/dmz-v-x/html-101" rel="noopener noreferrer"&gt;https://github.com/dmz-v-x/html-101&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This repo is updated as I continue learning.&lt;/p&gt;


&lt;h2&gt;
  
  
  📚 Learning Notes
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. Quick recap — What a path is (1 line)
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;path&lt;/strong&gt; tells the browser where to find a file (image, page, script, stylesheet).&lt;br&gt;&lt;br&gt;
Examples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"images/logo.png"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"pages/about.html"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;About&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"css/style.css"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Difference between &lt;code&gt;src&lt;/code&gt;, &lt;code&gt;href&lt;/code&gt; and &lt;code&gt;rel&lt;/code&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Attribute&lt;/th&gt;
&lt;th&gt;What it means&lt;/th&gt;
&lt;th&gt;Loads file?&lt;/th&gt;
&lt;th&gt;Used for&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;src&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Source of content&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;Images, JS, media&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;href&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Link/reference&lt;/td&gt;
&lt;td&gt;⚠️ Sometimes&lt;/td&gt;
&lt;td&gt;Pages, CSS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rel&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Relationship&lt;/td&gt;
&lt;td&gt;❌ No&lt;/td&gt;
&lt;td&gt;Explains purpose&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  2. Anchor tag basics — what is &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt;?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt;&lt;/strong&gt; (anchor) creates clickable links.&lt;/p&gt;

&lt;p&gt;Basic example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://example.com"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Visit Example&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;href&lt;/code&gt; = destination (required for a real link)
&lt;/li&gt;
&lt;li&gt;Link text = what users see and click&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If &lt;code&gt;href&lt;/code&gt; is missing, &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; is not treated as a link by browsers and assistive tech.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Types of &lt;code&gt;href&lt;/code&gt; values
&lt;/h3&gt;

&lt;h4&gt;
  
  
  3.1 Absolute URL (external)
&lt;/h4&gt;

&lt;p&gt;Full web address with protocol:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://youtube.com"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;YouTube&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use when linking to another website or CDN.&lt;/p&gt;

&lt;h4&gt;
  
  
  3.2 Root-relative path
&lt;/h4&gt;

&lt;p&gt;Starts from the site root (&lt;code&gt;/&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"/about"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;About&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"/assets/images/logo.png"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Works reliably when the site is hosted at domain root.&lt;/p&gt;

&lt;h4&gt;
  
  
  3.3 Relative path
&lt;/h4&gt;

&lt;p&gt;Relative to the current file’s folder:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- current file: /project/index.html --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"pages/about.html"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;About&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"images/logo.png"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use for files inside the same project.&lt;/p&gt;

&lt;h4&gt;
  
  
  3.4 Fragment / Anchor (jump within page)
&lt;/h4&gt;

&lt;p&gt;Jump to an element with a matching &lt;code&gt;id&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;h2&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"projects"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Projects&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#projects"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Go to Projects&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  3.5 &lt;code&gt;mailto:&lt;/code&gt; (email) and &lt;code&gt;tel:&lt;/code&gt; (phone)
&lt;/h4&gt;

&lt;p&gt;Special schemes that launch apps:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"mailto:someone@example.com"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Email me&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"tel:+911234567890"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Call me&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  4. Anchor tag anatomy (basic + attributes)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"URL"&lt;/span&gt; &lt;span class="na"&gt;target=&lt;/span&gt;&lt;span class="s"&gt;"_blank"&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"noopener noreferrer"&lt;/span&gt; &lt;span class="na"&gt;title=&lt;/span&gt;&lt;span class="s"&gt;"Tooltip"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  Link Text
&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;href&lt;/code&gt; — destination (URL, path, mailto, tel, or fragment)
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;target&lt;/code&gt; — where to open (&lt;code&gt;_self&lt;/code&gt;, &lt;code&gt;_blank&lt;/code&gt;, &lt;code&gt;_parent&lt;/code&gt;, &lt;code&gt;_top&lt;/code&gt;)
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;rel&lt;/code&gt; — relationship / security (important with &lt;code&gt;_blank&lt;/code&gt;)

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;noopener&lt;/code&gt; prevents the new page from getting &lt;code&gt;window.opener&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;noreferrer&lt;/code&gt; prevents sending the referrer URL
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;
&lt;code&gt;download&lt;/code&gt; — suggests downloading the resource instead of navigating
&lt;/li&gt;

&lt;li&gt;
&lt;code&gt;title&lt;/code&gt; — tooltip (use sparingly; not always helpful for accessibility)&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Attribute&lt;/th&gt;
&lt;th&gt;Value(s)&lt;/th&gt;
&lt;th&gt;What it does (plain English)&lt;/th&gt;
&lt;th&gt;When it comes into play&lt;/th&gt;
&lt;th&gt;When to use it&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;target&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;_self&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Opens link in &lt;strong&gt;same tab&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;When link is clicked&lt;/td&gt;
&lt;td&gt;Default behavior&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;a href="page.html" target="_self"&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;target&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;_blank&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Opens link in &lt;strong&gt;new tab&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;When link is clicked&lt;/td&gt;
&lt;td&gt;External sites&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;a href="https://google.com" target="_blank"&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;target&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;_parent&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Opens link in &lt;strong&gt;parent frame&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Inside iframe&lt;/td&gt;
&lt;td&gt;When using iframes&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;a href="x.html" target="_parent"&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;target&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;_top&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Opens link in &lt;strong&gt;full window&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Inside nested iframes&lt;/td&gt;
&lt;td&gt;Break out of frames&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;a href="x.html" target="_top"&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rel&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;noopener&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Blocks access to &lt;code&gt;window.opener&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;With &lt;code&gt;target="_blank"&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Security&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;a target="_blank" rel="noopener"&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rel&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;noreferrer&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Hides referrer info&lt;/td&gt;
&lt;td&gt;With external links&lt;/td&gt;
&lt;td&gt;Privacy&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;a rel="noreferrer"&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;download&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;filename (optional)&lt;/td&gt;
&lt;td&gt;Forces file download&lt;/td&gt;
&lt;td&gt;On click&lt;/td&gt;
&lt;td&gt;Download files&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;a download&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;title&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;text&lt;/td&gt;
&lt;td&gt;Shows tooltip on hover&lt;/td&gt;
&lt;td&gt;On mouse hover&lt;/td&gt;
&lt;td&gt;Extra hint text&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;a title="Info"&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Safe new-tab pattern&lt;/strong&gt; (always do this):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://example.com"&lt;/span&gt; &lt;span class="na"&gt;target=&lt;/span&gt;&lt;span class="s"&gt;"_blank"&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"noopener noreferrer"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  External site
&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  5. Link states &amp;amp; basic styling
&lt;/h3&gt;

&lt;p&gt;Browsers provide pseudo-classes for link states:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;a:link&lt;/code&gt; — unvisited link
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;a:visited&lt;/code&gt; — visited link
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;a:hover&lt;/code&gt; — mouse over
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;a:active&lt;/code&gt; — pressed/clicking
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;a:focus&lt;/code&gt; — focused via keyboard (Tab)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Order in CSS: &lt;code&gt;:link, :visited, :hover, :active, :focus&lt;/code&gt; (LVHAF).&lt;/p&gt;

&lt;p&gt;Basic styling example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;a&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#1e90ff&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;text-decoration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c"&gt;/* remove underline */&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="nd"&gt;:hover&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;text-decoration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;underline&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="nd"&gt;:focus&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;outline&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="m"&gt;#f59e0b&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;outline-offset&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Usability tip:&lt;/strong&gt; If you remove underline, show a clear hover or focus indicator so users know it’s a link.&lt;/p&gt;




&lt;h3&gt;
  
  
  6. Accessibility &amp;amp; keyboard behavior
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Links are keyboard-focusable by default and activate with Enter.
&lt;/li&gt;
&lt;li&gt;Never remove focus outline without replacing it with a visible focus style.
&lt;/li&gt;
&lt;li&gt;Link text should be descriptive (avoid “click here”).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Good vs bad:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- Bad --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"mailto:someone@example.com"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Click here&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-- Good --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"mailto:someone@example.com"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Email Support&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  7. Anchor vs Button — When to use what?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; for &lt;strong&gt;navigation&lt;/strong&gt; (go to a new page, external link, fragment).
&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt; for &lt;strong&gt;actions&lt;/strong&gt; on the current page (open modal, submit form, toggle UI).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bad pattern:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt; &lt;span class="na"&gt;onclick=&lt;/span&gt;&lt;span class="s"&gt;"submitForm()"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Submit&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- ❌ --&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Better:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"button"&lt;/span&gt; &lt;span class="na"&gt;onclick=&lt;/span&gt;&lt;span class="s"&gt;"submitForm()"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Submit&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- ✅ --&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  8. &lt;code&gt;download&lt;/code&gt; attribute (force download suggestion)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"/files/resume.pdf"&lt;/span&gt; &lt;span class="na"&gt;download&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Download Resume&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"/files/resume.pdf"&lt;/span&gt; &lt;span class="na"&gt;download=&lt;/span&gt;&lt;span class="s"&gt;"Himanshu-Bhatt-Resume.pdf"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Download&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Browser may still open the file depending on type &amp;amp; user settings, but &lt;code&gt;download&lt;/code&gt; suggests saving.&lt;/p&gt;




&lt;h3&gt;
  
  
  9. Mailto links — more details &amp;amp; extras
&lt;/h3&gt;

&lt;p&gt;Basic mailto:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"mailto:someone@example.com"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Email me&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Multiple recipients:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"mailto:person1@example.com,person2@example.com"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Email both&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add subject and body (URL-encoded):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"mailto:someone@example.com?subject=Hello%20from%20site&amp;amp;body=Hi%20there%2C%0A%0AI%20found%20your%20site."&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  Email with subject
&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Spaces → &lt;code&gt;%20&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;New lines → &lt;code&gt;%0A&lt;/code&gt; or &lt;code&gt;%0D%0A&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;?&lt;/code&gt; for first param, &lt;code&gt;&amp;amp;&lt;/code&gt; for others&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; mailto opens the user’s email client. Not all desktop users have a configured client.&lt;/p&gt;




&lt;h3&gt;
  
  
  10. Tel links — formatting &amp;amp; best practice
&lt;/h3&gt;

&lt;p&gt;Basic:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"tel:+911234567890"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;+91 12345 67890&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Use &lt;strong&gt;international format&lt;/strong&gt; (&lt;code&gt;+&lt;/code&gt; + country code) in &lt;code&gt;href&lt;/code&gt;.
&lt;/li&gt;
&lt;li&gt;Display can show spaces or local formatting for readability.
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;tel:&lt;/code&gt; opens dialer on mobile; desktop behavior varies.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Good examples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- Display friendly, href machine-friendly --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"tel:+14155552671"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;+1 (415) 555-2671&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"tel:+911234567890"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;+91 12345 67890&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  11. Usability &amp;amp; accessibility tips for mail/tel links
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Make link text descriptive: &lt;code&gt;Email Support&lt;/code&gt; or &lt;code&gt;Call Support&lt;/code&gt;.
&lt;/li&gt;
&lt;li&gt;For phone numbers, consider adding &lt;code&gt;aria-label&lt;/code&gt; for clarity:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"tel:+911234567890"&lt;/span&gt; &lt;span class="na"&gt;aria-label=&lt;/span&gt;&lt;span class="s"&gt;"Call support at +91 12345 67890"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  +91 12345 67890
&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Don’t rely on &lt;code&gt;mailto:&lt;/code&gt; for forms that require structured data — prefer actual contact forms for reliability and spam protection.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  12. Common mistakes (summary)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Forgetting to add &lt;code&gt;rel="noopener noreferrer"&lt;/code&gt; with &lt;code&gt;target="_blank"&lt;/code&gt;.
&lt;/li&gt;
&lt;li&gt;Using links for actions that should be buttons (accessibility &amp;amp; semantics).
&lt;/li&gt;
&lt;li&gt;Using &lt;code&gt;href="#"&lt;/code&gt; — this is an anti-pattern (it changes the URL or scrolls).
&lt;/li&gt;
&lt;li&gt;Poor link text like “click here” — not descriptive for screen reader users.
&lt;/li&gt;
&lt;li&gt;Not testing &lt;code&gt;mailto:&lt;/code&gt; / &lt;code&gt;tel:&lt;/code&gt; behavior on mobile vs desktop.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  ⚠️ Challenges / Mistakes I Faced
&lt;/h3&gt;

&lt;p&gt;When I started, I used links for things that should be buttons and I often forgot &lt;code&gt;rel="noopener noreferrer"&lt;/code&gt; for &lt;code&gt;target="_blank"&lt;/code&gt;.&lt;br&gt;&lt;br&gt;
I also learned that &lt;code&gt;mailto:&lt;/code&gt; and &lt;code&gt;tel:&lt;/code&gt; work great on mobile but may behave differently on desktop.&lt;/p&gt;

&lt;p&gt;If you faced any issues or have questions, feel free to let me know in the comments 🙂&lt;/p&gt;




&lt;h3&gt;
  
  
  💬 Feedback &amp;amp; Discussion
&lt;/h3&gt;

&lt;p&gt;💡 &lt;strong&gt;I’d love your feedback!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you notice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;something incorrect,&lt;/li&gt;
&lt;li&gt;a better explanation,&lt;/li&gt;
&lt;li&gt;or have suggestions to improve my understanding,&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;please comment below. I’m happy to learn and correct mistakes.&lt;/p&gt;




&lt;h3&gt;
  
  
  ⭐ Support the Learning Journey
&lt;/h3&gt;

&lt;p&gt;If you find these notes useful:&lt;/p&gt;

&lt;p&gt;⭐ Consider giving the GitHub repo a star —&lt;br&gt;&lt;br&gt;
it really motivates me to keep learning and sharing publicly.&lt;/p&gt;




&lt;h3&gt;
  
  
  🐦 Stay Updated (Twitter / X)
&lt;/h3&gt;

&lt;p&gt;I share learning updates, notes, and progress regularly.&lt;/p&gt;

&lt;p&gt;👉 Follow me on Twitter/X:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://x.com/_himanshubhatt1" rel="noopener noreferrer"&gt;https://x.com/_himanshubhatt1&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  🔜 What’s Next
&lt;/h3&gt;

&lt;p&gt;In the next post, I’ll be covering:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;Internal Page Navigation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’ll also continue updating the GitHub repo as I progress.&lt;/p&gt;




&lt;h3&gt;
  
  
  🙌 Final Thoughts
&lt;/h3&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

&lt;p&gt;If you’re also learning HTML, feel free to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;follow along,&lt;/li&gt;
&lt;li&gt;share your experience,&lt;/li&gt;
&lt;li&gt;or drop questions in the comments 👋&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;📘 Learning in public&lt;br&gt;&lt;br&gt;
📂 Repo: &lt;a href="https://github.com/dmz-v-x/html-101" rel="noopener noreferrer"&gt;https://github.com/dmz-v-x/html-101&lt;/a&gt;&lt;br&gt;
🐦 Twitter/X: &lt;a href="https://x.com/_himanshubhatt1" rel="noopener noreferrer"&gt;https://x.com/_himanshubhatt1&lt;/a&gt;&lt;br&gt;
💬 Feedback welcome — please comment if anything feels off&lt;br&gt;
⭐ Star the repo if you find it useful&lt;/p&gt;

</description>
      <category>html</category>
      <category>webdev</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Networking 101 #6. Subnets, CIDR &amp; NAT</title>
      <dc:creator>Himanshu Bhatt</dc:creator>
      <pubDate>Thu, 15 Jan 2026 10:33:04 +0000</pubDate>
      <link>https://dev.to/himanshu_bhatt/networking-101-6-subnets-cidr-nat-341c</link>
      <guid>https://dev.to/himanshu_bhatt/networking-101-6-subnets-cidr-nat-341c</guid>
      <description>&lt;h2&gt;
  
  
  👋 Short Intro (Why I’m Writing This)
&lt;/h2&gt;

&lt;p&gt;I’m currently learning &lt;strong&gt;Networking for DevOps&lt;/strong&gt; and decided to &lt;strong&gt;learn in public&lt;/strong&gt; by documenting my journey.&lt;/p&gt;

&lt;p&gt;This blog is part of my &lt;strong&gt;Networking 101 series&lt;/strong&gt;, where I’m learning Networking for DevOps step by step from scratch.&lt;/p&gt;

&lt;p&gt;This series is &lt;strong&gt;not written by an expert&lt;/strong&gt; — it’s a beginner learning out loud, sharing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what I understand,&lt;/li&gt;
&lt;li&gt;what confuses me,&lt;/li&gt;
&lt;li&gt;and what I learn along the way.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is to build consistency, clarity, and invite discussion.&lt;/p&gt;




&lt;h2&gt;
  
  
  📌 What This Blog Covers
&lt;/h2&gt;

&lt;p&gt;In this post, I’ll cover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What are subnets&lt;/li&gt;
&lt;li&gt;Public subnet vs Private subnet&lt;/li&gt;
&lt;li&gt;What is CIDR&lt;/li&gt;
&lt;li&gt;What is NAT&lt;/li&gt;
&lt;li&gt;Issues with Subnets&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📂 GitHub Repository
&lt;/h2&gt;

&lt;p&gt;All my notes, diagrams, and learning resources for this series live here:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;GitHub Repo:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/dmz-v-x/networking-for-devops-101" rel="noopener noreferrer"&gt;https://github.com/dmz-v-x/networking-for-devops-101&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This repo is updated as I continue learning.&lt;/p&gt;


&lt;h2&gt;
  
  
  📚 Learning Notes
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. First: why do subnets even exist?
&lt;/h3&gt;

&lt;p&gt;Let’s start with a simple question.&lt;/p&gt;

&lt;p&gt;Why don’t we just put &lt;strong&gt;all computers on one big network&lt;/strong&gt;?&lt;/p&gt;

&lt;p&gt;Because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It would be insecure&lt;/li&gt;
&lt;li&gt;It would be chaotic&lt;/li&gt;
&lt;li&gt;It would not scale&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So networks are &lt;strong&gt;divided into smaller networks&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;These smaller networks are called &lt;strong&gt;subnets&lt;/strong&gt;.&lt;/p&gt;


&lt;h3&gt;
  
  
  2. What is a subnet?
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;subnet&lt;/strong&gt; is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A &lt;strong&gt;group of IP addresses&lt;/strong&gt; that belong to the same internal network.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That’s it.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;10.0.0.0 – 10.0.0.255
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;All machines in this range:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can talk to each other directly&lt;/li&gt;
&lt;li&gt;Are part of the same private network&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  3. Why cloud providers force you to use subnets
&lt;/h3&gt;

&lt;p&gt;In cloud platforms (AWS, GCP, Azure):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You don’t get a “flat” network&lt;/li&gt;
&lt;li&gt;You must create:

&lt;ul&gt;
&lt;li&gt;VPC (virtual private network)&lt;/li&gt;
&lt;li&gt;Subnets inside it&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Why?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Security isolation&lt;/li&gt;
&lt;li&gt;Routing control&lt;/li&gt;
&lt;li&gt;Scalability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is why you always see subnet selection during VM creation.&lt;/p&gt;




&lt;h3&gt;
  
  
  4. What is CIDR (the scary &lt;code&gt;/24&lt;/code&gt; thing)?
&lt;/h3&gt;

&lt;p&gt;CIDR looks scary but is simple.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;10.0.0.0/24
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;CIDR means:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“How many IPs belong to this network”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  4.1 CIDR without math (promise)
&lt;/h3&gt;

&lt;p&gt;Here’s the only thing you need to remember:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;CIDR&lt;/th&gt;
&lt;th&gt;Approx IPs&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;/24&lt;/td&gt;
&lt;td&gt;~256 IPs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;/16&lt;/td&gt;
&lt;td&gt;~65,000 IPs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;/8&lt;/td&gt;
&lt;td&gt;~16 million IPs&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Smaller number after &lt;code&gt;/&lt;/code&gt; → bigger network&lt;br&gt;&lt;br&gt;
Bigger number after &lt;code&gt;/&lt;/code&gt; → smaller network&lt;/p&gt;

&lt;p&gt;That’s enough for DevOps.&lt;/p&gt;
&lt;h3&gt;
  
  
  4.2 What &lt;code&gt;/24&lt;/code&gt; actually means
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;10.0.0.0/24
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Network starts at &lt;code&gt;10.0.0.0&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Ends at &lt;code&gt;10.0.0.255&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Total ≈ 256 IPs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cloud providers reserve some IPs internally.&lt;/p&gt;


&lt;h3&gt;
  
  
  5. Why CIDR matters in real DevOps work
&lt;/h3&gt;

&lt;p&gt;CIDR decides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How many servers you can run&lt;/li&gt;
&lt;li&gt;How isolated your network is&lt;/li&gt;
&lt;li&gt;Whether services can talk to each other&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Common mistake:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Choosing a subnet too small → running out of IPs&lt;/p&gt;
&lt;/blockquote&gt;


&lt;h3&gt;
  
  
  6. Public vs Private subnets
&lt;/h3&gt;
&lt;h4&gt;
  
  
  6.1 Public Subnet
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Has a route to the internet&lt;/li&gt;
&lt;li&gt;Used for:

&lt;ul&gt;
&lt;li&gt;Load balancers&lt;/li&gt;
&lt;li&gt;Bastion hosts&lt;/li&gt;
&lt;li&gt;Public-facing services&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  6.1 Private Subnet
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;No direct internet access&lt;/li&gt;
&lt;li&gt;Used for:

&lt;ul&gt;
&lt;li&gt;App servers&lt;/li&gt;
&lt;li&gt;Databases&lt;/li&gt;
&lt;li&gt;Internal services&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Best practice:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Only expose what must be public.&lt;/p&gt;
&lt;/blockquote&gt;


&lt;h3&gt;
  
  
  7. How do private subnets access the internet?
&lt;/h3&gt;

&lt;p&gt;This is where &lt;strong&gt;NAT&lt;/strong&gt; comes in.&lt;/p&gt;
&lt;h4&gt;
  
  
  7.1 What is NAT (Network Address Translation)?
&lt;/h4&gt;

&lt;p&gt;NAT allows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Private IPs → Internet
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Without exposing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Internet → Private IPs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;NAT is &lt;strong&gt;one-way&lt;/strong&gt; by default.&lt;/p&gt;

&lt;h4&gt;
  
  
  7.2 NAT explained simply
&lt;/h4&gt;

&lt;p&gt;Private server:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;10.0.1.5
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wants to access:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;google.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Flow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;10.0.1.5 → NAT Gateway → Internet
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Internet sees:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Public IP → Internet
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replies come back through NAT.&lt;/p&gt;




&lt;h3&gt;
  
  
  8. Why NAT is critical for security
&lt;/h3&gt;

&lt;p&gt;Without NAT:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Every private server needs a public IP&lt;/li&gt;
&lt;li&gt;Everything is exposed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With NAT:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Servers stay private&lt;/li&gt;
&lt;li&gt;Only outbound traffic allowed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is why databases are almost always in private subnets.&lt;/p&gt;




&lt;h3&gt;
  
  
  9. Common DevOps architecture
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Internet
   ↓
Load Balancer (Public Subnet)
   ↓
App Servers (Private Subnet)
   ↓
Database (Private Subnet)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;NAT allows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;App → Internet (updates, APIs)&lt;/li&gt;
&lt;li&gt;Database → No internet access&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  10. How subnet issues show up in real life
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Problem&lt;/th&gt;
&lt;th&gt;Likely Cause&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Can’t reach DB&lt;/td&gt;
&lt;td&gt;Wrong subnet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;App can’t access internet&lt;/td&gt;
&lt;td&gt;Missing NAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Server unreachable&lt;/td&gt;
&lt;td&gt;Public IP missing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Only some services talk&lt;/td&gt;
&lt;td&gt;Routing issue&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Most “network issues” are subnet or NAT misconfigurations.&lt;/p&gt;




&lt;h3&gt;
  
  
  11. Mini hands-on mental exercise
&lt;/h3&gt;

&lt;p&gt;Ask yourself:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is this service public or private?&lt;/li&gt;
&lt;li&gt;Does it need inbound access?&lt;/li&gt;
&lt;li&gt;Does it need outbound internet?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those answers decide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Subnet&lt;/li&gt;
&lt;li&gt;NAT&lt;/li&gt;
&lt;li&gt;Security rules&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  12. Mental model upgrade
&lt;/h3&gt;

&lt;p&gt;Your networking stack now looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Internet
  ↓
Public Subnet
  ↓
Private Subnet
  ↓
Service
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Subnets decide &lt;strong&gt;who can talk to whom&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  ✅ Key takeaways
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Subnets group IPs&lt;/li&gt;
&lt;li&gt;CIDR controls subnet size&lt;/li&gt;
&lt;li&gt;Public subnets face the internet&lt;/li&gt;
&lt;li&gt;Private subnets stay hidden&lt;/li&gt;
&lt;li&gt;NAT allows safe outbound access&lt;/li&gt;
&lt;li&gt;Most cloud networking issues are subnet-related&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  💬 Feedback &amp;amp; Discussion
&lt;/h3&gt;

&lt;p&gt;💡 &lt;strong&gt;I’d love your feedback!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you notice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;missing tool categories,&lt;/li&gt;
&lt;li&gt;incorrect assumptions,&lt;/li&gt;
&lt;li&gt;or better learning paths,&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;please comment below. I’m here to learn.&lt;/p&gt;




&lt;h3&gt;
  
  
  ⭐ Support the Learning Journey
&lt;/h3&gt;

&lt;p&gt;If you found this blog useful:&lt;/p&gt;

&lt;p&gt;⭐ Consider giving the GitHub repo a star —&lt;br&gt;&lt;br&gt;
it really motivates me to keep learning and sharing publicly.&lt;/p&gt;




&lt;h3&gt;
  
  
  🐦 Stay Updated (Twitter / X)
&lt;/h3&gt;

&lt;p&gt;I share learning updates, notes, and progress regularly.&lt;/p&gt;

&lt;p&gt;👉 Follow me on Twitter/X:&lt;br&gt;&lt;br&gt;
&lt;a href="https://x.com/_himanshubhatt1" rel="noopener noreferrer"&gt;https://x.com/_himanshubhatt1&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  🔜 What’s Next
&lt;/h3&gt;

&lt;p&gt;In the next post, I’ll be covering:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;Firewalls, Security Groups &amp;amp; Why “Connection Refused” Happens&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’ll also continue updating the GitHub repo as I progress.&lt;/p&gt;




&lt;h3&gt;
  
  
  📘 Learning in public
&lt;/h3&gt;

&lt;p&gt;📂 Repo: &lt;a href="https://github.com/dmz-v-x/networking-for-devops-101" rel="noopener noreferrer"&gt;https://github.com/dmz-v-x/networking-for-devops-101&lt;/a&gt;&lt;br&gt;
🐦 Twitter/X: &lt;a href="https://x.com/_himanshubhatt1" rel="noopener noreferrer"&gt;https://x.com/_himanshubhatt1&lt;/a&gt;&lt;br&gt;
💬 Feedback welcome — please comment if anything feels off&lt;br&gt;
⭐ Star the repo if you find it useful&lt;/p&gt;

</description>
      <category>devops</category>
      <category>networking</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Networking 101 #5. DNS Explained</title>
      <dc:creator>Himanshu Bhatt</dc:creator>
      <pubDate>Thu, 15 Jan 2026 04:03:03 +0000</pubDate>
      <link>https://dev.to/himanshu_bhatt/networking-101-4-dns-explained-4min</link>
      <guid>https://dev.to/himanshu_bhatt/networking-101-4-dns-explained-4min</guid>
      <description>&lt;h2&gt;
  
  
  👋 Short Intro (Why I’m Writing This)
&lt;/h2&gt;

&lt;p&gt;I’m currently learning &lt;strong&gt;Networking for DevOps&lt;/strong&gt; and decided to &lt;strong&gt;learn in public&lt;/strong&gt; by documenting my journey.&lt;/p&gt;

&lt;p&gt;This blog is part of my &lt;strong&gt;Networking 101 series&lt;/strong&gt;, where I’m learning Networking for DevOps step by step from scratch.&lt;/p&gt;

&lt;p&gt;This series is &lt;strong&gt;not written by an expert&lt;/strong&gt; — it’s a beginner learning out loud, sharing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what I understand,&lt;/li&gt;
&lt;li&gt;what confuses me,&lt;/li&gt;
&lt;li&gt;and what I learn along the way.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is to build consistency, clarity, and invite discussion.&lt;/p&gt;




&lt;h2&gt;
  
  
  📌 What This Blog Covers
&lt;/h2&gt;

&lt;p&gt;In this post, I’ll cover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is DNS?&lt;/li&gt;
&lt;li&gt;DNS Resolution flow&lt;/li&gt;
&lt;li&gt;DNS Caching&lt;/li&gt;
&lt;li&gt;TTL in DNS caching&lt;/li&gt;
&lt;li&gt;Common DNS Record types&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📂 GitHub Repository
&lt;/h2&gt;

&lt;p&gt;All my notes, diagrams, and learning resources for this series live here:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;GitHub Repo:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/dmz-v-x/networking-for-devops-101" rel="noopener noreferrer"&gt;https://github.com/dmz-v-x/networking-for-devops-101&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This repo is updated as I continue learning.&lt;/p&gt;


&lt;h2&gt;
  
  
  📚 Learning Notes
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. Quick recap (from earlier blogs)
&lt;/h3&gt;

&lt;p&gt;From Part 1:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Computers do NOT understand domain names.&lt;br&gt;&lt;br&gt;
They only understand &lt;strong&gt;IP addresses&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;DNS exists to translate:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;myapp.com → 13.234.56.78
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;DNS happens &lt;strong&gt;before&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;TCP connection&lt;/li&gt;
&lt;li&gt;HTTPS&lt;/li&gt;
&lt;li&gt;Any application logic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If DNS fails, nothing else matters.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. What actually happens during DNS resolution
&lt;/h3&gt;

&lt;p&gt;When your browser wants to reach:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://myapp.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It asks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“What IP address belongs to &lt;code&gt;myapp.com&lt;/code&gt;?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But &lt;strong&gt;who does it ask&lt;/strong&gt;?&lt;/p&gt;




&lt;h3&gt;
  
  
  3. DNS resolution flow (simplified)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Browser
  ↓
OS DNS Cache
  ↓
Local Resolver (ISP / 8.8.8.8 / 1.1.1.1)
  ↓
Authoritative DNS Server
  ↓
IP Address returned
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;DNS is &lt;strong&gt;distributed&lt;/strong&gt;, not centralized.&lt;/p&gt;

&lt;p&gt;This design makes DNS:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fast&lt;/li&gt;
&lt;li&gt;Scalable&lt;/li&gt;
&lt;li&gt;Cache-heavy (important!)&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  4. What is DNS caching?
&lt;/h3&gt;

&lt;p&gt;To avoid repeating DNS lookups:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Browsers cache results&lt;/li&gt;
&lt;li&gt;OS caches results&lt;/li&gt;
&lt;li&gt;DNS resolvers cache results&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each cached record has a &lt;strong&gt;TTL&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  5. TTL — Time To Live
&lt;/h3&gt;

&lt;p&gt;TTL tells DNS:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“How long can I remember this answer?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;TTL = 300 seconds (5 minutes)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Meaning:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DNS answer can be reused for 5 minutes&lt;/li&gt;
&lt;li&gt;No fresh lookup needed during this time&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  6. Real DevOps DNS failure example
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Scenario:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You update your server IP&lt;/li&gt;
&lt;li&gt;You update DNS record&lt;/li&gt;
&lt;li&gt;Some users still hit the old server&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Old IP is cached&lt;/li&gt;
&lt;li&gt;TTL hasn’t expired yet&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;DNS is &lt;strong&gt;eventually consistent&lt;/strong&gt;, not instant.&lt;/p&gt;




&lt;h3&gt;
  
  
  7. Common DNS record types (DevOps must-know)
&lt;/h3&gt;

&lt;p&gt;You do NOT need to know all DNS records.&lt;/p&gt;

&lt;p&gt;These are enough.&lt;/p&gt;

&lt;h4&gt;
  
  
  7.1 A Record
&lt;/h4&gt;

&lt;p&gt;Maps a domain to an IP address.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;myapp.com → 13.234.56.78
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  7.2 CNAME Record
&lt;/h4&gt;

&lt;p&gt;Maps one domain to another domain.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;www.myapp.com → myapp.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Used for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Aliases&lt;/li&gt;
&lt;li&gt;Load balancers&lt;/li&gt;
&lt;li&gt;Cloud services&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  7.3 TXT Record
&lt;/h4&gt;

&lt;p&gt;Stores arbitrary text.&lt;/p&gt;

&lt;p&gt;Used for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Domain verification&lt;/li&gt;
&lt;li&gt;SSL certificates&lt;/li&gt;
&lt;li&gt;Email security&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Used often when working with cloud providers.&lt;/p&gt;




&lt;h3&gt;
  
  
  8. Why CNAMEs matter in DevOps
&lt;/h3&gt;

&lt;p&gt;CNAMEs allow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Changing infrastructure without changing domains&lt;/li&gt;
&lt;li&gt;Blue/green deployments&lt;/li&gt;
&lt;li&gt;Easier migrations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;app.mycompany.com → alb-123.aws.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You update the load balancer — DNS stays same.&lt;/p&gt;




&lt;h3&gt;
  
  
  9. Common DNS debugging commands
&lt;/h3&gt;

&lt;h4&gt;
  
  
  9.1 Check DNS resolution
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dig myapp.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  9.2 Use a specific DNS server
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dig myapp.com @8.8.8.8
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  9.3 See only the IP
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dig myapp.com +short
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  9.4 Using nslookup
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nslookup myapp.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  10. Why DNS works for some users and not others
&lt;/h3&gt;

&lt;p&gt;Because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Different users use different DNS resolvers&lt;/li&gt;
&lt;li&gt;Different caches expire at different times&lt;/li&gt;
&lt;li&gt;ISPs cache aggressively&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is normal DNS behavior, not a bug.&lt;/p&gt;




&lt;h3&gt;
  
  
  11. DNS vs TCP vs HTTP (clear separation)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Failure Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DNS&lt;/td&gt;
&lt;td&gt;Domain not resolving&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TCP&lt;/td&gt;
&lt;td&gt;Connection refused&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS&lt;/td&gt;
&lt;td&gt;Certificate error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTTP&lt;/td&gt;
&lt;td&gt;500 error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;App&lt;/td&gt;
&lt;td&gt;Logic bug&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Always identify &lt;strong&gt;which layer is failing&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  12. Classic DevOps mistake
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Mistake:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
“DNS change didn’t work — let’s restart the server.”&lt;/p&gt;

&lt;p&gt;Wrong.&lt;/p&gt;

&lt;p&gt;DNS:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lives outside your server&lt;/li&gt;
&lt;li&gt;Is cached everywhere&lt;/li&gt;
&lt;li&gt;Needs time to propagate&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Restarting apps won’t fix DNS.&lt;/p&gt;


&lt;h3&gt;
  
  
  13. Mini hands-on exercise
&lt;/h3&gt;

&lt;p&gt;Run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dig google.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Look at:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ANSWER section&lt;/li&gt;
&lt;li&gt;TTL value&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Run it again:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Notice TTL decreases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s caching in action.&lt;/p&gt;




&lt;h3&gt;
  
  
  14. Mental model upgrade
&lt;/h3&gt;

&lt;p&gt;Your updated flow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Browser
  ↓
DNS (cached or fresh)
  ↓
IP + Port
  ↓
TCP / UDP
  ↓
Application
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;DNS is &lt;strong&gt;always first&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  ✅ Key takeaways
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;DNS converts names → IPs&lt;/li&gt;
&lt;li&gt;DNS is cached everywhere&lt;/li&gt;
&lt;li&gt;TTL controls how long results live&lt;/li&gt;
&lt;li&gt;DNS issues look random but are predictable&lt;/li&gt;
&lt;li&gt;Debug DNS before touching servers&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  💬 Feedback &amp;amp; Discussion
&lt;/h3&gt;

&lt;p&gt;💡 &lt;strong&gt;I’d love your feedback!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you notice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;missing tool categories,&lt;/li&gt;
&lt;li&gt;incorrect assumptions,&lt;/li&gt;
&lt;li&gt;or better learning paths,&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;please comment below. I’m here to learn.&lt;/p&gt;




&lt;h3&gt;
  
  
  ⭐ Support the Learning Journey
&lt;/h3&gt;

&lt;p&gt;If you found this blog useful:&lt;/p&gt;

&lt;p&gt;⭐ Consider giving the GitHub repo a star —&lt;br&gt;&lt;br&gt;
it really motivates me to keep learning and sharing publicly.&lt;/p&gt;




&lt;h3&gt;
  
  
  🐦 Stay Updated (Twitter / X)
&lt;/h3&gt;

&lt;p&gt;I share learning updates, notes, and progress regularly.&lt;/p&gt;

&lt;p&gt;👉 Follow me on Twitter/X:&lt;br&gt;&lt;br&gt;
&lt;a href="https://x.com/_himanshubhatt1" rel="noopener noreferrer"&gt;https://x.com/_himanshubhatt1&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  🔜 What’s Next
&lt;/h3&gt;

&lt;p&gt;In the next post, I’ll be covering:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;Subnets, CIDR &amp;amp; NAT&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’ll also continue updating the GitHub repo as I progress.&lt;/p&gt;




&lt;h3&gt;
  
  
  📘 Learning in public
&lt;/h3&gt;

&lt;p&gt;📂 Repo: &lt;a href="https://github.com/dmz-v-x/networking-for-devops-101" rel="noopener noreferrer"&gt;https://github.com/dmz-v-x/networking-for-devops-101&lt;/a&gt;&lt;br&gt;
🐦 Twitter/X: &lt;a href="https://x.com/_himanshubhatt1" rel="noopener noreferrer"&gt;https://x.com/_himanshubhatt1&lt;/a&gt;&lt;br&gt;
💬 Feedback welcome — please comment if anything feels off&lt;br&gt;
⭐ Star the repo if you find it useful&lt;/p&gt;

</description>
      <category>devops</category>
      <category>networking</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Networking 101 #4. TCP vs UDP</title>
      <dc:creator>Himanshu Bhatt</dc:creator>
      <pubDate>Thu, 15 Jan 2026 03:42:30 +0000</pubDate>
      <link>https://dev.to/himanshu_bhatt/networking-101-4-tcp-vs-udp-lnl</link>
      <guid>https://dev.to/himanshu_bhatt/networking-101-4-tcp-vs-udp-lnl</guid>
      <description>&lt;h2&gt;
  
  
  👋 Short Intro (Why I’m Writing This)
&lt;/h2&gt;

&lt;p&gt;I’m currently learning &lt;strong&gt;Networking for DevOps&lt;/strong&gt; and decided to &lt;strong&gt;learn in public&lt;/strong&gt; by documenting my journey.&lt;/p&gt;

&lt;p&gt;This blog is part of my &lt;strong&gt;Networking 101 series&lt;/strong&gt;, where I’m learning Networking for DevOps step by step from scratch.&lt;/p&gt;

&lt;p&gt;This series is &lt;strong&gt;not written by an expert&lt;/strong&gt; — it’s a beginner learning out loud, sharing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what I understand,&lt;/li&gt;
&lt;li&gt;what confuses me,&lt;/li&gt;
&lt;li&gt;and what I learn along the way.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is to build consistency, clarity, and invite discussion.&lt;/p&gt;




&lt;h2&gt;
  
  
  📌 What This Blog Covers
&lt;/h2&gt;

&lt;p&gt;In this post, I’ll cover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is TCP&lt;/li&gt;
&lt;li&gt;Advantages of TCP&lt;/li&gt;
&lt;li&gt;What is UDP&lt;/li&gt;
&lt;li&gt;Advantages of UDP&lt;/li&gt;
&lt;li&gt;When to use TCP vs UDP&lt;/li&gt;
&lt;li&gt;Basic commands related to TCP &amp;amp; UDP&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📂 GitHub Repository
&lt;/h2&gt;

&lt;p&gt;All my notes, diagrams, and learning resources for this series live here:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;GitHub Repo:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/dmz-v-x/networking-for-devops-101" rel="noopener noreferrer"&gt;https://github.com/dmz-v-x/networking-for-devops-101&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This repo is updated as I continue learning.&lt;/p&gt;


&lt;h2&gt;
  
  
  📚 Learning Notes
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. First, the big question
&lt;/h3&gt;

&lt;p&gt;When one computer sends data to another, how do we make sure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The data arrives?&lt;/li&gt;
&lt;li&gt;The data arrives &lt;strong&gt;in the correct order&lt;/strong&gt;?&lt;/li&gt;
&lt;li&gt;Missing data is re-sent?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are &lt;strong&gt;two different answers&lt;/strong&gt; to this problem.&lt;/p&gt;

&lt;p&gt;They are called:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;TCP&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;UDP&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;
  
  
  2.Before we start: where TCP &amp;amp; UDP sit
&lt;/h3&gt;

&lt;p&gt;From earlier blogs, our stack looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Application (HTTP, SSH, DB)
        ↓
Transport Layer (TCP or UDP)
        ↓
IP (IP Address)
        ↓
Network
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;TCP and UDP live in the &lt;strong&gt;transport layer&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
They decide &lt;strong&gt;how data moves&lt;/strong&gt;, not &lt;strong&gt;where it goes&lt;/strong&gt;.&lt;/p&gt;


&lt;h3&gt;
  
  
  3. TCP — Transmission Control Protocol
&lt;/h3&gt;

&lt;p&gt;TCP is the &lt;strong&gt;most important protocol&lt;/strong&gt; for DevOps engineers.&lt;/p&gt;
&lt;h4&gt;
  
  
  3.1 What TCP guarantees
&lt;/h4&gt;

&lt;p&gt;TCP guarantees:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data arrives&lt;/li&gt;
&lt;li&gt;Data arrives &lt;strong&gt;in order&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Lost data is &lt;strong&gt;re-sent&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Duplicate data is removed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes TCP &lt;strong&gt;reliable&lt;/strong&gt;.&lt;/p&gt;


&lt;h3&gt;
  
  
  4. What “connection-based” actually means
&lt;/h3&gt;

&lt;p&gt;Before sending data, TCP does something crucial.&lt;/p&gt;

&lt;p&gt;It creates a &lt;strong&gt;connection&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Conceptually:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Client: “Can we talk?”&lt;/li&gt;
&lt;li&gt;Server: “Yes”&lt;/li&gt;
&lt;li&gt;Client: “Great”&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is called the &lt;strong&gt;TCP handshake&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If this handshake fails, &lt;strong&gt;nothing else happens&lt;/strong&gt;.&lt;/p&gt;


&lt;h3&gt;
  
  
  5. Common DevOps errors caused by TCP failure
&lt;/h3&gt;

&lt;p&gt;If TCP connection fails, you’ll see errors like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Connection refused&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Connection timed out&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;No route to host&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These errors mean:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The app may be running&lt;/li&gt;
&lt;li&gt;But TCP cannot establish a connection&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Usually due to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Firewall rules&lt;/li&gt;
&lt;li&gt;Closed ports&lt;/li&gt;
&lt;li&gt;App not listening&lt;/li&gt;
&lt;li&gt;Wrong IP or port&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;
  
  
  6. What uses TCP? (Very important list)
&lt;/h3&gt;

&lt;p&gt;Almost everything you use daily:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Protocol&lt;/th&gt;
&lt;th&gt;Uses TCP?&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;HTTP&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTTPS&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SSH&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FTP&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Databases&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If reliability matters → TCP is used.&lt;/p&gt;


&lt;h3&gt;
  
  
  7. UDP — User Datagram Protocol
&lt;/h3&gt;

&lt;p&gt;UDP solves a &lt;strong&gt;different problem&lt;/strong&gt;.&lt;/p&gt;
&lt;h4&gt;
  
  
  7.1 What UDP does (and doesn’t do)
&lt;/h4&gt;

&lt;p&gt;UDP:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sends data&lt;/li&gt;
&lt;li&gt;Does &lt;strong&gt;not&lt;/strong&gt; guarantee delivery&lt;/li&gt;
&lt;li&gt;Does &lt;strong&gt;not&lt;/strong&gt; guarantee order&lt;/li&gt;
&lt;li&gt;Does &lt;strong&gt;not&lt;/strong&gt; create a connection&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;UDP is &lt;strong&gt;fast&lt;/strong&gt;, but unreliable.&lt;/p&gt;


&lt;h3&gt;
  
  
  8. UDP analogy (simple)
&lt;/h3&gt;

&lt;p&gt;TCP is like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Making a phone call and talking step by step.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;UDP is like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Shouting messages across a room and hoping they’re heard.&lt;/p&gt;
&lt;/blockquote&gt;


&lt;h3&gt;
  
  
  9. Why does UDP even exist?
&lt;/h3&gt;

&lt;p&gt;Because sometimes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Speed matters more than perfection&lt;/li&gt;
&lt;li&gt;Losing some data is okay&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DNS queries&lt;/li&gt;
&lt;li&gt;Video streaming&lt;/li&gt;
&lt;li&gt;Online gaming&lt;/li&gt;
&lt;li&gt;Metrics &amp;amp; monitoring systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Retrying TCP connections would be &lt;strong&gt;too slow&lt;/strong&gt; here.&lt;/p&gt;


&lt;h3&gt;
  
  
  10. What uses UDP? (DevOps-relevant)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Use Case&lt;/th&gt;
&lt;th&gt;Protocol&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DNS (mostly)&lt;/td&gt;
&lt;td&gt;UDP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Metrics&lt;/td&gt;
&lt;td&gt;UDP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Service discovery&lt;/td&gt;
&lt;td&gt;UDP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Streaming&lt;/td&gt;
&lt;td&gt;UDP&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;DNS often uses UDP first, and TCP only if needed.&lt;/p&gt;


&lt;h3&gt;
  
  
  11. Side-by-side comparison (important)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;TCP&lt;/th&gt;
&lt;th&gt;UDP&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Connection&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reliable&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ordered&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Speed&lt;/td&gt;
&lt;td&gt;Slower&lt;/td&gt;
&lt;td&gt;Faster&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DevOps usage&lt;/td&gt;
&lt;td&gt;Very High&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;


&lt;h3&gt;
  
  
  12. How this affects DevOps debugging
&lt;/h3&gt;

&lt;p&gt;When something breaks, ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is this &lt;strong&gt;TCP-based&lt;/strong&gt; or &lt;strong&gt;UDP-based&lt;/strong&gt;?&lt;/li&gt;
&lt;li&gt;Does it expect reliability?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTTP API failing → TCP issue&lt;/li&gt;
&lt;li&gt;DNS sometimes failing → UDP + network issue&lt;/li&gt;
&lt;li&gt;Metrics missing → UDP packet loss&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Understanding this changes &lt;strong&gt;how you debug&lt;/strong&gt;.&lt;/p&gt;


&lt;h3&gt;
  
  
  13. Commands mapped to TCP &amp;amp; UDP
&lt;/h3&gt;
&lt;h4&gt;
  
  
  13.1 TCP testing
&lt;/h4&gt;

&lt;p&gt;Checks if TCP port 443 is open and reachable&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nc &lt;span class="nt"&gt;-vz&lt;/span&gt; example.com 443
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  13.2 UDP testing
&lt;/h3&gt;

&lt;p&gt;Sends a UDP packet to port 53 to see if it’s reachable (best-effort check)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nc &lt;span class="nt"&gt;-vu&lt;/span&gt; example.com 53
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Notice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;TCP checks for connection&lt;/li&gt;
&lt;li&gt;UDP just sends data&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  14. Real DevOps scenario
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Your app can resolve DNS, but sometimes fails to connect.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why this happens:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DNS uses UDP&lt;/li&gt;
&lt;li&gt;UDP packets can be dropped&lt;/li&gt;
&lt;li&gt;Retry logic may be missing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is why DNS caching and retries matter (next blogs!).&lt;/p&gt;




&lt;h3&gt;
  
  
  ✅ Key takeaways
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;TCP = reliable, connection-based&lt;/li&gt;
&lt;li&gt;UDP = fast, connectionless&lt;/li&gt;
&lt;li&gt;Most DevOps tools rely on TCP&lt;/li&gt;
&lt;li&gt;DNS and metrics often use UDP&lt;/li&gt;
&lt;li&gt;Error messages tell you &lt;strong&gt;which layer is failing&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  💬 Feedback &amp;amp; Discussion
&lt;/h3&gt;

&lt;p&gt;💡 &lt;strong&gt;I’d love your feedback!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you notice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;missing tool categories,&lt;/li&gt;
&lt;li&gt;incorrect assumptions,&lt;/li&gt;
&lt;li&gt;or better learning paths,&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;please comment below. I’m here to learn.&lt;/p&gt;




&lt;h3&gt;
  
  
  ⭐ Support the Learning Journey
&lt;/h3&gt;

&lt;p&gt;If you found this blog useful:&lt;/p&gt;

&lt;p&gt;⭐ Consider giving the GitHub repo a star —&lt;br&gt;&lt;br&gt;
it really motivates me to keep learning and sharing publicly.&lt;/p&gt;




&lt;h3&gt;
  
  
  🐦 Stay Updated (Twitter / X)
&lt;/h3&gt;

&lt;p&gt;I share learning updates, notes, and progress regularly.&lt;/p&gt;

&lt;p&gt;👉 Follow me on Twitter/X:&lt;br&gt;&lt;br&gt;
&lt;a href="https://x.com/_himanshubhatt1" rel="noopener noreferrer"&gt;https://x.com/_himanshubhatt1&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  🔜 What’s Next
&lt;/h3&gt;

&lt;p&gt;In the next post, I’ll be covering:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;DNS Explained&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’ll also continue updating the GitHub repo as I progress.&lt;/p&gt;




&lt;h3&gt;
  
  
  📘 Learning in public
&lt;/h3&gt;

&lt;p&gt;📂 Repo: &lt;a href="https://github.com/dmz-v-x/networking-for-devops-101" rel="noopener noreferrer"&gt;https://github.com/dmz-v-x/networking-for-devops-101&lt;/a&gt;&lt;br&gt;
🐦 Twitter/X: &lt;a href="https://x.com/_himanshubhatt1" rel="noopener noreferrer"&gt;https://x.com/_himanshubhatt1&lt;/a&gt;&lt;br&gt;
💬 Feedback welcome — please comment if anything feels off&lt;br&gt;
⭐ Star the repo if you find it useful&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>devops</category>
      <category>networking</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Himanshu Bhatt</dc:creator>
      <pubDate>Wed, 14 Jan 2026 09:17:54 +0000</pubDate>
      <link>https://dev.to/himanshu_bhatt/-35a2</link>
      <guid>https://dev.to/himanshu_bhatt/-35a2</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/himanshu_bhatt" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2757310%2F5068b1d0-4dfb-42af-af4a-f7c39031109d.png" alt="himanshu_bhatt"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/himanshu_bhatt/networking-101-3-ip-addresses-ports-3jj4" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Networking 101 #3. IP Addresses &amp;amp; Ports&lt;/h2&gt;
      &lt;h3&gt;Himanshu Bhatt ・ Jan 14&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Networking 101 #3. IP Addresses &amp; Ports</title>
      <dc:creator>Himanshu Bhatt</dc:creator>
      <pubDate>Wed, 14 Jan 2026 09:17:45 +0000</pubDate>
      <link>https://dev.to/himanshu_bhatt/networking-101-3-ip-addresses-ports-3jj4</link>
      <guid>https://dev.to/himanshu_bhatt/networking-101-3-ip-addresses-ports-3jj4</guid>
      <description>&lt;h2&gt;
  
  
  👋 Short Intro (Why I’m Writing This)
&lt;/h2&gt;

&lt;p&gt;I’m currently learning &lt;strong&gt;Networking for DevOps&lt;/strong&gt; and decided to &lt;strong&gt;learn in public&lt;/strong&gt; by documenting my journey.&lt;/p&gt;

&lt;p&gt;This blog is part of my &lt;strong&gt;Networking 101 series&lt;/strong&gt;, where I’m learning Networking for DevOps step by step from scratch.&lt;/p&gt;

&lt;p&gt;This series is &lt;strong&gt;not written by an expert&lt;/strong&gt; — it’s a beginner learning out loud, sharing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what I understand,&lt;/li&gt;
&lt;li&gt;what confuses me,&lt;/li&gt;
&lt;li&gt;and what I learn along the way.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is to build consistency, clarity, and invite discussion.&lt;/p&gt;




&lt;h2&gt;
  
  
  📌 What This Blog Covers
&lt;/h2&gt;

&lt;p&gt;In this post, I’ll cover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;IP Address, Local IP vs Internet IP&lt;/li&gt;
&lt;li&gt;Public IP vs Private IP&lt;/li&gt;
&lt;li&gt;Brief overview of NAT&lt;/li&gt;
&lt;li&gt;Ports&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;localhost&lt;/code&gt; vs &lt;code&gt;127.0.0.1&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Few Basic commands&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📂 GitHub Repository
&lt;/h2&gt;

&lt;p&gt;All my notes, diagrams, and learning resources for this series live here:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;GitHub Repo:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/dmz-v-x/networking-for-devops-101" rel="noopener noreferrer"&gt;https://github.com/dmz-v-x/networking-for-devops-101&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This repo is updated as I continue learning.&lt;/p&gt;


&lt;h2&gt;
  
  
  📚 Learning Notes
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. What is an IP address (really)?
&lt;/h3&gt;

&lt;p&gt;An &lt;strong&gt;IP address&lt;/strong&gt; identifies a &lt;strong&gt;machine on a network&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That’s it.&lt;/p&gt;

&lt;p&gt;Just remember this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;IP address = identity of a machine on a network&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Examples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;192.168.1.10
10.0.0.5
13.234.56.78
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every machine that communicates on a network must have an IP.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Local IP vs Internet IP (very first distinction)
&lt;/h3&gt;

&lt;p&gt;Your laptop has:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One IP &lt;strong&gt;inside your local network&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Possibly another IP &lt;strong&gt;visible to the internet&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Why? Because networks are layered.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Laptop → WiFi Router → Internet
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your laptop is &lt;strong&gt;not directly exposed&lt;/strong&gt; to the internet.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Public IP Address (Internet-facing)
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;public IP&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is unique on the internet&lt;/li&gt;
&lt;li&gt;Can be accessed from anywhere&lt;/li&gt;
&lt;li&gt;Is assigned by ISPs or cloud providers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;13.234.56.78
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cloud servers usually have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A public IP (optional)&lt;/li&gt;
&lt;li&gt;A private IP (always)&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  4. Private IP Address (Internal-only)
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;private IP&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Works only inside a private network&lt;/li&gt;
&lt;li&gt;Cannot be reached directly from the internet&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Common private IP ranges:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;10.0.0.0    – 10.255.255.255
172.16.0.0 – 172.31.255.255
192.168.0.0 – 192.168.255.255
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your home WiFi, office network, and cloud VPCs all use private IPs.&lt;/p&gt;




&lt;h3&gt;
  
  
  5. Why private IPs exist
&lt;/h3&gt;

&lt;p&gt;The internet does &lt;strong&gt;not&lt;/strong&gt; have enough IPs for every device.&lt;/p&gt;

&lt;p&gt;So:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Private IPs are reused everywhere&lt;/li&gt;
&lt;li&gt;Public IPs act as gateways&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This design allows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Security (not everything exposed)&lt;/li&gt;
&lt;li&gt;Scalability&lt;/li&gt;
&lt;li&gt;Cost efficiency&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This leads us to a &lt;strong&gt;very important idea&lt;/strong&gt; (we’ll learn this concept later):&lt;br&gt;
👉 &lt;strong&gt;NAT (Network Address Translation)&lt;/strong&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  6. Tiny preview: What NAT does
&lt;/h3&gt;

&lt;p&gt;NAT allows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Many private IPs → One public IP
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your laptop sends traffic:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;192.168.1.10 → Internet
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The router translates it to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Public IP → Internet
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  7. What is a port?
&lt;/h3&gt;

&lt;p&gt;If an IP identifies a &lt;strong&gt;machine&lt;/strong&gt;, a &lt;strong&gt;port&lt;/strong&gt; identifies a &lt;strong&gt;program on that machine&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;One machine can run &lt;strong&gt;many applications&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Web server&lt;/li&gt;
&lt;li&gt;Database&lt;/li&gt;
&lt;li&gt;SSH&lt;/li&gt;
&lt;li&gt;Cache&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ports make this possible.&lt;/p&gt;




&lt;h3&gt;
  
  
  8. Port analogy (simple but powerful)
&lt;/h3&gt;

&lt;p&gt;Think of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;IP address → apartment building&lt;/li&gt;
&lt;li&gt;Port → apartment number
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;13.234.56.78:22   → SSH
13.234.56.78:80   → HTTP
13.234.56.78:443  → HTTPS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Same building, different doors.&lt;/p&gt;




&lt;h3&gt;
  
  
  9. Common ports every DevOps engineer must know
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Port&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;22&lt;/td&gt;
&lt;td&gt;SSH&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;HTTP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;443&lt;/td&gt;
&lt;td&gt;HTTPS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3306&lt;/td&gt;
&lt;td&gt;MySQL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5432&lt;/td&gt;
&lt;td&gt;PostgreSQL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6379&lt;/td&gt;
&lt;td&gt;Redis&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  10. How IP + Port work together
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;network connection&lt;/strong&gt; always needs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;IP address + Port
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Examples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ssh user@13.234.56.78     → port 22
https://example.com       → port 443
localhost:3000            → port 3000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Without a port, the OS doesn’t know &lt;em&gt;which app&lt;/em&gt; should receive the data.&lt;/p&gt;




&lt;h3&gt;
  
  
  11. &lt;code&gt;localhost&lt;/code&gt; vs &lt;code&gt;127.0.0.1&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;When we run an application on our laptop, that's when &lt;code&gt;localhost&lt;/code&gt; and &lt;code&gt;127.0.0.1&lt;/code&gt; comes into picture.&lt;/p&gt;

&lt;h4&gt;
  
  
  11.1 What is 127.0.0.1?
&lt;/h4&gt;

&lt;p&gt;&lt;code&gt;127.0.0.1&lt;/code&gt; is an IP address, specially it is called loopback IP which means if any network request sent to this IP it comes back to the same machine. &lt;/p&gt;

&lt;p&gt;The request never leaves our machine, no router, no internet and no external network is involved.&lt;/p&gt;

&lt;h4&gt;
  
  
  11.2 What is &lt;code&gt;localhost&lt;/code&gt;?
&lt;/h4&gt;

&lt;p&gt;&lt;code&gt;localhost&lt;/code&gt; is a hostname, it's not an ip. When we type &lt;code&gt;localhost&lt;/code&gt; our operating system translates this name into an IP address that is &lt;code&gt;127.0.0.1&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;localhost&lt;/code&gt; → &lt;code&gt;127.0.0.1&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This translation happens via&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;/etc/hosts file (Linux/macOS)&lt;/li&gt;
&lt;li&gt;C:\Windows\System32\drivers\etc\hosts (Windows)&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  11.3 How does &lt;code&gt;localhost&lt;/code&gt; actuallly works?
&lt;/h4&gt;

&lt;p&gt;When we type: &lt;a href="http://localhost:3000" rel="noopener noreferrer"&gt;http://localhost:3000&lt;/a&gt;, internally our operating system follow these steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OS sees &lt;code&gt;localhost&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;It looks up the hosts file&lt;/li&gt;
&lt;li&gt;Resolve it to an IP (usually &lt;code&gt;127.0.0.1&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Send the request to that IP&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So the flow becomes:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;localhost&lt;/code&gt; → &lt;code&gt;127.0.0.1&lt;/code&gt; → your own machine&lt;/p&gt;

&lt;h4&gt;
  
  
  11.4 Are &lt;code&gt;localhost&lt;/code&gt; and &lt;code&gt;127.0.0.1&lt;/code&gt; same?
&lt;/h4&gt;

&lt;p&gt;Short Answer: No&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;127.0.0.1&lt;/code&gt; is hard-coded as a loopback IP&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;localhost&lt;/code&gt; is configurable&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Our system can map &lt;code&gt;localhost&lt;/code&gt; to something else&lt;/p&gt;

&lt;p&gt;In many modern systems:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;localhost&lt;/code&gt; → ::1&lt;/p&gt;

&lt;p&gt;::1 is the IPv6 loopback address.&lt;/p&gt;

&lt;h4&gt;
  
  
  11.4 Which one should we use?
&lt;/h4&gt;

&lt;p&gt;Use &lt;code&gt;localhost&lt;/code&gt; when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developing locally&lt;/li&gt;
&lt;li&gt;You don't care about IPv4 vs IPv6&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use &lt;code&gt;127.0.0.1&lt;/code&gt; when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Debugging networking issues&lt;/li&gt;
&lt;li&gt;Want guaranteed IPv4&lt;/li&gt;
&lt;li&gt;Dealing with Docker, databases, or binding issues&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  11.5 A DevOps Example:
&lt;/h4&gt;

&lt;p&gt;If our server logs say:&lt;/p&gt;

&lt;p&gt;Listening on &lt;code&gt;127.0.0.1&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;That means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Only this machine can access it.&lt;/li&gt;
&lt;li&gt;Not accessible from other devices.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If it listens on:&lt;/p&gt;

&lt;p&gt;0.0.0.0&lt;/p&gt;

&lt;p&gt;That means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Accept connections from any network interface.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  11.6 Complete flow
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;We type in browser:
   `localhost`
       ↓
 OS resolves name
       ↓
   `127.0.0.1` or ::1
       ↓
 Request comes back to
   your own machine

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  12. Classic DevOps failure example
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
App works on your laptop but not on the cloud server.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What’s happening:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;App is listening on &lt;code&gt;localhost&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Cloud traffic comes to &lt;strong&gt;public IP&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;App never sees it&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fix:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bind app to &lt;code&gt;0.0.0.0&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Open the correct port&lt;/li&gt;
&lt;li&gt;Allow traffic in firewall/security group&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We’ll fully break this down later.&lt;/p&gt;


&lt;h3&gt;
  
  
  13. Hands-on commands
&lt;/h3&gt;
&lt;h4&gt;
  
  
  13.1 Check your IPs
&lt;/h4&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ip addr        &lt;span class="c"&gt;# Linux&lt;/span&gt;
ifconfig       &lt;span class="c"&gt;# macOS&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h4&gt;
  
  
  13.2 See listening ports
&lt;/h4&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ss &lt;span class="nt"&gt;-tuln&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;or&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;netstat &lt;span class="nt"&gt;-tuln&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  13.3 Test remote port
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nc &lt;span class="nt"&gt;-vz&lt;/span&gt; 13.234.56.78 443
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  ✅ Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;IP address identifies a &lt;strong&gt;machine&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Port identifies an &lt;strong&gt;application&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Public IP → internet-facing&lt;/li&gt;
&lt;li&gt;Private IP → internal-only&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;localhost&lt;/code&gt; vs &lt;code&gt;127.0.0.1&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Most DevOps bugs = wrong IP, wrong port, or wrong binding&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  💬 Feedback &amp;amp; Discussion
&lt;/h3&gt;

&lt;p&gt;💡 &lt;strong&gt;I’d love your feedback!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you notice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;missing tool categories,&lt;/li&gt;
&lt;li&gt;incorrect assumptions,&lt;/li&gt;
&lt;li&gt;or better learning paths,&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;please comment below. I’m here to learn.&lt;/p&gt;




&lt;h3&gt;
  
  
  ⭐ Support the Learning Journey
&lt;/h3&gt;

&lt;p&gt;If you found this blog useful:&lt;/p&gt;

&lt;p&gt;⭐ Consider giving the GitHub repo a star —&lt;br&gt;&lt;br&gt;
it really motivates me to keep learning and sharing publicly.&lt;/p&gt;




&lt;h3&gt;
  
  
  🐦 Stay Updated (Twitter / X)
&lt;/h3&gt;

&lt;p&gt;I share learning updates, notes, and progress regularly.&lt;/p&gt;

&lt;p&gt;👉 Follow me on Twitter/X:&lt;br&gt;&lt;br&gt;
&lt;a href="https://x.com/_himanshubhatt1" rel="noopener noreferrer"&gt;https://x.com/_himanshubhatt1&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  🔜 What’s Next
&lt;/h3&gt;

&lt;p&gt;In the next post, I’ll be covering:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;TCP vs UDP (Connections, Reliability, and Why It Matters)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’ll also continue updating the GitHub repo as I progress.&lt;/p&gt;




&lt;h3&gt;
  
  
  📘 Learning in public
&lt;/h3&gt;

&lt;p&gt;📂 Repo: &lt;a href="https://github.com/dmz-v-x/networking-for-devops-101" rel="noopener noreferrer"&gt;https://github.com/dmz-v-x/networking-for-devops-101&lt;/a&gt;&lt;br&gt;
🐦 Twitter/X: &lt;a href="https://x.com/_himanshubhatt1" rel="noopener noreferrer"&gt;https://x.com/_himanshubhatt1&lt;/a&gt;&lt;br&gt;
💬 Feedback welcome — please comment if anything feels off&lt;br&gt;
⭐ Star the repo if you find it useful&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>devops</category>
      <category>networking</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Networking 101 #2. How the Internet actually works</title>
      <dc:creator>Himanshu Bhatt</dc:creator>
      <pubDate>Tue, 13 Jan 2026 15:09:50 +0000</pubDate>
      <link>https://dev.to/himanshu_bhatt/networking-101-2-how-the-internet-actually-works-2fg1</link>
      <guid>https://dev.to/himanshu_bhatt/networking-101-2-how-the-internet-actually-works-2fg1</guid>
      <description>&lt;h2&gt;
  
  
  👋 Short Intro (Why I’m Writing This)
&lt;/h2&gt;

&lt;p&gt;I’m currently learning &lt;strong&gt;Networking for DevOps&lt;/strong&gt; and decided to &lt;strong&gt;learn in public&lt;/strong&gt; by documenting my journey.&lt;/p&gt;

&lt;p&gt;This blog is part of my &lt;strong&gt;Networking 101 series&lt;/strong&gt;, where I’m learning Networking for DevOps step by step from scratch.&lt;/p&gt;

&lt;p&gt;This series is &lt;strong&gt;not written by an expert&lt;/strong&gt; — it’s a beginner learning out loud, sharing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what I understand,&lt;/li&gt;
&lt;li&gt;what confuses me,&lt;/li&gt;
&lt;li&gt;and what I learn along the way.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is to build consistency, clarity, and invite discussion.&lt;/p&gt;




&lt;h2&gt;
  
  
  📌 What This Blog Covers
&lt;/h2&gt;

&lt;p&gt;In this post, I’ll cover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How DNS works&lt;/li&gt;
&lt;li&gt;TCP Connection &amp;amp; TCP Handshake&lt;/li&gt;
&lt;li&gt;TLS Brief Overview
&lt;/li&gt;
&lt;li&gt;Complete Request Response Flow &lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📂 GitHub Repository
&lt;/h2&gt;

&lt;p&gt;All my notes, diagrams, and learning resources for this series live here:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;GitHub Repo:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/dmz-v-x/networking-for-devops-101" rel="noopener noreferrer"&gt;https://github.com/dmz-v-x/networking-for-devops-101&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This repo is updated as I continue learning.&lt;/p&gt;


&lt;h2&gt;
  
  
  📚 Learning Notes
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. Consider this scenario:
&lt;/h3&gt;

&lt;p&gt;Let's say i want to visit a website:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://myapp.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and then i press &lt;strong&gt;Enter&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Let’s follow this request from start to finish.&lt;/p&gt;




&lt;h3&gt;
  
  
  Step 0: What does your browser actually need?
&lt;/h3&gt;

&lt;p&gt;Your browser cannot talk to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Domain names&lt;/li&gt;
&lt;li&gt;Applications&lt;/li&gt;
&lt;li&gt;Containers&lt;/li&gt;
&lt;li&gt;Kubernetes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your browser only knows how to talk to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;IP addresses&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ports&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Using TCP&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So the browser’s first question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“What IP address should I connect to?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That’s where DNS comes in.&lt;/p&gt;




&lt;h3&gt;
  
  
  Step 1: DNS — Converting Domain name → IP
&lt;/h3&gt;

&lt;p&gt;From Part 1:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;DNS is the phonebook of the internet.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Your browser asks the operating system:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Do you know the IP for &lt;code&gt;myapp.com&lt;/code&gt;?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Possible outcomes:
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Case 1: DNS cache hit
&lt;/h4&gt;

&lt;p&gt;If your system already knows the IP (cached):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No network request needed&lt;/li&gt;
&lt;li&gt;Faster response&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Case 2: DNS cache miss
&lt;/h4&gt;

&lt;p&gt;Your system asks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DNS resolver&lt;/li&gt;
&lt;li&gt;Which asks other DNS servers&lt;/li&gt;
&lt;li&gt;Until it gets an IP address&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Eventually, you get something like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;myapp.com → 13.234.56.78
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;If DNS fails → everything stops here&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Step 2: Choosing the port (HTTP vs HTTPS)
&lt;/h3&gt;

&lt;p&gt;You typed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://myapp.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That &lt;code&gt;https&lt;/code&gt; matters.&lt;/p&gt;

&lt;p&gt;It tells the browser:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;strong&gt;port 443&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;encrypted communication&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If it were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;http://&lt;/code&gt; → port &lt;code&gt;80&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;https://&lt;/code&gt; → port &lt;code&gt;443&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So now the browser knows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;IP:   13.234.56.78
Port: 443
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Step 3: TCP connection (very important)
&lt;/h3&gt;

&lt;p&gt;Before &lt;strong&gt;any data&lt;/strong&gt; is sent, TCP does something crucial.&lt;/p&gt;

&lt;h3&gt;
  
  
  TCP Handshake (conceptual)
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Client: “Can I connect?”&lt;/li&gt;
&lt;li&gt;Server: “Yes”&lt;/li&gt;
&lt;li&gt;Client: “Okay, let’s talk”&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is why TCP is called &lt;strong&gt;connection-based&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If this step fails, you’ll see errors like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Connection refused&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Connection timed out&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This usually means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Firewall blocked it&lt;/li&gt;
&lt;li&gt;Port not open&lt;/li&gt;
&lt;li&gt;Service not running&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Step 4: TLS (HTTPS security layer)
&lt;/h3&gt;

&lt;p&gt;Because this is &lt;strong&gt;HTTPS&lt;/strong&gt;, another step happens.&lt;/p&gt;

&lt;p&gt;The browser and server:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Agree on encryption&lt;/li&gt;
&lt;li&gt;Exchange certificates&lt;/li&gt;
&lt;li&gt;Set up a secure channel&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If TLS fails, you’ll see:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“Your connection is not private”&lt;/li&gt;
&lt;li&gt;Certificate errors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;DevOps engineers see this often when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Certs expire&lt;/li&gt;
&lt;li&gt;Domains don’t match&lt;/li&gt;
&lt;li&gt;Load balancers misconfigured&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Step 5: HTTP request is finally sent
&lt;/h3&gt;

&lt;p&gt;Only &lt;strong&gt;now&lt;/strong&gt; does the browser send the request:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GET / HTTP/1.1
Host: myapp.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Important:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTTP is &lt;strong&gt;inside TCP&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;TCP is &lt;strong&gt;inside IP&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;IP is &lt;strong&gt;inside the network&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Think of it like nested boxes.&lt;/p&gt;




&lt;h3&gt;
  
  
  Step 6: The request reaches the server
&lt;/h3&gt;

&lt;p&gt;On the server side:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The OS receives the packet&lt;/li&gt;
&lt;li&gt;TCP hands data to the application&lt;/li&gt;
&lt;li&gt;Web server (Nginx, Node, etc.) processes it&lt;/li&gt;
&lt;li&gt;Application logic runs&lt;/li&gt;
&lt;li&gt;A response is created&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Example response:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;HTTP/1.1 200 OK
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Step 7: The response travels back
&lt;/h3&gt;

&lt;p&gt;The response:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Goes back through TCP&lt;/li&gt;
&lt;li&gt;Over the network&lt;/li&gt;
&lt;li&gt;To your browser&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your browser:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Parses HTML&lt;/li&gt;
&lt;li&gt;Loads CSS/JS&lt;/li&gt;
&lt;li&gt;Makes &lt;strong&gt;more requests&lt;/strong&gt; (repeat steps!)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One page load = &lt;strong&gt;many network requests&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Full flow (one glance view)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Browser
  ↓
DNS (name → IP)
  ↓
TCP connection
  ↓
TLS handshake (HTTPS)
  ↓
HTTP request
  ↓
Server processing
  ↓
HTTP response
  ↓
Browser renders page
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is the &lt;strong&gt;core internet flow&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Everything else in DevOps builds on this.&lt;/p&gt;




&lt;h3&gt;
  
  
  Where things usually break (DevOps view)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Step&lt;/th&gt;
&lt;th&gt;Common Failure&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DNS&lt;/td&gt;
&lt;td&gt;Wrong record, cache issues&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TCP&lt;/td&gt;
&lt;td&gt;Port closed, firewall&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS&lt;/td&gt;
&lt;td&gt;Expired certificate&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTTP&lt;/td&gt;
&lt;td&gt;500 errors&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Server&lt;/td&gt;
&lt;td&gt;App crash, timeout&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;📌 Debug &lt;strong&gt;top to bottom&lt;/strong&gt;, never randomly.&lt;/p&gt;




&lt;h3&gt;
  
  
  Commands mapped to each step
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Step&lt;/th&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DNS&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;dig&lt;/code&gt;, &lt;code&gt;nslookup&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reachability&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ping&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TCP&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;nc&lt;/code&gt;, &lt;code&gt;telnet&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTTP&lt;/td&gt;
&lt;td&gt;&lt;code&gt;curl&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;curl -v&lt;/code&gt;, browser errors&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;You now know &lt;strong&gt;why&lt;/strong&gt; these commands exist.&lt;/p&gt;




&lt;h3&gt;
  
  
  ✅ Key takeaways
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Browsers don’t talk to apps — they talk to &lt;strong&gt;IPs &amp;amp; ports&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;DNS happens &lt;strong&gt;before&lt;/strong&gt; any network connection&lt;/li&gt;
&lt;li&gt;TCP connection must succeed before HTTP&lt;/li&gt;
&lt;li&gt;HTTPS adds a security layer on top&lt;/li&gt;
&lt;li&gt;Every failure maps to a specific step&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  💬 Feedback &amp;amp; Discussion
&lt;/h3&gt;

&lt;p&gt;💡 &lt;strong&gt;I’d love your feedback!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you notice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;missing tool categories,&lt;/li&gt;
&lt;li&gt;incorrect assumptions,&lt;/li&gt;
&lt;li&gt;or better learning paths,&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;please comment below. I’m here to learn.&lt;/p&gt;




&lt;h3&gt;
  
  
  ⭐ Support the Learning Journey
&lt;/h3&gt;

&lt;p&gt;If you found this blog useful:&lt;/p&gt;

&lt;p&gt;⭐ Consider giving the GitHub repo a star —&lt;br&gt;&lt;br&gt;
it really motivates me to keep learning and sharing publicly.&lt;/p&gt;




&lt;h3&gt;
  
  
  🐦 Stay Updated (Twitter / X)
&lt;/h3&gt;

&lt;p&gt;I share learning updates, notes, and progress regularly.&lt;/p&gt;

&lt;p&gt;👉 Follow me on Twitter/X:&lt;br&gt;&lt;br&gt;
&lt;a href="https://x.com/_himanshubhatt1" rel="noopener noreferrer"&gt;https://x.com/_himanshubhatt1&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  🔜 What’s Next
&lt;/h3&gt;

&lt;p&gt;In the next post, I’ll be covering:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;IP Addresses &amp;amp; Ports&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’ll also continue updating the GitHub repo as I progress.&lt;/p&gt;




&lt;h3&gt;
  
  
  📘 Learning in public
&lt;/h3&gt;

&lt;p&gt;📂 Repo: &lt;a href="https://github.com/dmz-v-x/networking-for-devops-101" rel="noopener noreferrer"&gt;https://github.com/dmz-v-x/networking-for-devops-101&lt;/a&gt;&lt;br&gt;
🐦 Twitter/X: &lt;a href="https://x.com/_himanshubhatt1" rel="noopener noreferrer"&gt;https://x.com/_himanshubhatt1&lt;/a&gt;&lt;br&gt;
💬 Feedback welcome — please comment if anything feels off&lt;br&gt;
⭐ Star the repo if you find it useful&lt;/p&gt;

</description>
      <category>devops</category>
      <category>networking</category>
      <category>cloud</category>
      <category>beginners</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Himanshu Bhatt</dc:creator>
      <pubDate>Tue, 13 Jan 2026 09:32:11 +0000</pubDate>
      <link>https://dev.to/himanshu_bhatt/-5gjl</link>
      <guid>https://dev.to/himanshu_bhatt/-5gjl</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/himanshu_bhatt" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2757310%2F5068b1d0-4dfb-42af-af4a-f7c39031109d.png" alt="himanshu_bhatt"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/himanshu_bhatt/networking-101-1-networking-introduction-4ip0" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Networking 101 #1. Networking Introduction&lt;/h2&gt;
      &lt;h3&gt;Himanshu Bhatt ・ Jan 13&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#networking&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#devops&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#cloud&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>networking</category>
      <category>devops</category>
      <category>cloud</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Networking 101 #1. Networking Introduction</title>
      <dc:creator>Himanshu Bhatt</dc:creator>
      <pubDate>Tue, 13 Jan 2026 07:21:25 +0000</pubDate>
      <link>https://dev.to/himanshu_bhatt/networking-101-1-networking-introduction-4ip0</link>
      <guid>https://dev.to/himanshu_bhatt/networking-101-1-networking-introduction-4ip0</guid>
      <description>&lt;h2&gt;
  
  
  👋 Short Intro (Why I’m Writing This)
&lt;/h2&gt;

&lt;p&gt;I’m currently learning &lt;strong&gt;Networking for DevOps&lt;/strong&gt; and decided to &lt;strong&gt;learn in public&lt;/strong&gt; by documenting my journey.&lt;/p&gt;

&lt;p&gt;This blog is part of my &lt;strong&gt;Networking 101 series&lt;/strong&gt;, where I’m learning Networking for DevOps step by step from scratch.&lt;/p&gt;

&lt;p&gt;This series is &lt;strong&gt;not written by an expert&lt;/strong&gt; — it’s a beginner learning out loud, sharing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what I understand,&lt;/li&gt;
&lt;li&gt;what confuses me,&lt;/li&gt;
&lt;li&gt;and what I learn along the way.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is to build consistency, clarity, and invite discussion.&lt;/p&gt;




&lt;h2&gt;
  
  
  📌 What This Blog Covers
&lt;/h2&gt;

&lt;p&gt;In this post, I’ll cover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why DevOps engineers should care about networking
&lt;/li&gt;
&lt;li&gt;The core networking mental model
&lt;/li&gt;
&lt;li&gt;DNS, IP addresses, and ports
&lt;/li&gt;
&lt;li&gt;TCP vs UDP
&lt;/li&gt;
&lt;li&gt;ICMP vs TCP vs HTTP
&lt;/li&gt;
&lt;li&gt;A practical debugging flow
&lt;/li&gt;
&lt;li&gt;Hands-on commands to make networking real
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📂 GitHub Repository
&lt;/h2&gt;

&lt;p&gt;All my notes, diagrams, and learning resources for this series live here:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;GitHub Repo:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/dmz-v-x/networking-for-devops-101" rel="noopener noreferrer"&gt;https://github.com/dmz-v-x/networking-for-devops-101&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This repo is updated as I continue learning.&lt;/p&gt;


&lt;h2&gt;
  
  
  📚 Learning Notes
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. Why should DevOps engineers even care about networking?
&lt;/h3&gt;

&lt;p&gt;Let’s start from basics.&lt;/p&gt;

&lt;p&gt;Most DevOps failures are &lt;strong&gt;not code bugs&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;They look like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;❌ “The app works locally but not in production”&lt;/li&gt;
&lt;li&gt;❌ “The service is running but not reachable”&lt;/li&gt;
&lt;li&gt;❌ “502 Bad Gateway”&lt;/li&gt;
&lt;li&gt;❌ “Connection refused”&lt;/li&gt;
&lt;li&gt;❌ “Request timed out”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All of these comes down to one problem that is &lt;strong&gt;networking problems&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If you don’t understand networking:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You won’t know &lt;strong&gt;where&lt;/strong&gt; the problem is&lt;/li&gt;
&lt;li&gt;You’ll randomly try fixes&lt;/li&gt;
&lt;li&gt;You’ll depend on someone else to debug&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This blog series exists to change that — &lt;strong&gt;from zero&lt;/strong&gt;.&lt;/p&gt;


&lt;h3&gt;
  
  
  2. Goal of this series
&lt;/h3&gt;

&lt;p&gt;By the end of this series, you should be able to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understand how traffic flows from &lt;strong&gt;browser → cloud → server&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Debug basic production networking issues&lt;/li&gt;
&lt;li&gt;Understand Docker &amp;amp; Kubernetes networking at a high level&lt;/li&gt;
&lt;li&gt;Read cloud architecture diagrams without fear&lt;/li&gt;
&lt;li&gt;And hopefully, &lt;strong&gt;you and I both can confidently answer networking interview questions&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;
  
  
  3. The ONE mental model we must remember
&lt;/h3&gt;

&lt;p&gt;Everything in networking can be explained using &lt;strong&gt;three boxes&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Client (Browser / App)
        ↓
     Network
(DNS, Internet, Load Balancer)
        ↓
Server (VM / Container / App)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Rule:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
When something breaks, the problem is &lt;strong&gt;always&lt;/strong&gt; in one of these boxes or the connection between them.&lt;/p&gt;

&lt;p&gt;We’ll keep coming back to this model in every blog.&lt;/p&gt;


&lt;h3&gt;
  
  
  4. DNS — turning names into addresses
&lt;/h3&gt;

&lt;p&gt;When you type any url into our browser:&lt;/p&gt;

&lt;p&gt;For Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://google.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your computer does &lt;strong&gt;not&lt;/strong&gt; understand &lt;code&gt;google.com&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Computers only understand &lt;strong&gt;numbers&lt;/strong&gt; (IP addresses).&lt;/p&gt;

&lt;p&gt;👉 DNS exists to solve this problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DNS = Name → IP address&lt;/strong&gt;&lt;br&gt;
Means resolving Name(address/url) to IP Address.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;google.com → 93.184.216.34
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Think of DNS like a &lt;strong&gt;phone book&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You search by name&lt;/li&gt;
&lt;li&gt;You get a number&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If DNS breaks, &lt;strong&gt;nothing works&lt;/strong&gt; — even if your server is perfectly fine.&lt;/p&gt;




&lt;h3&gt;
  
  
  5. IP addresses &amp;amp; Ports — where and what to connect to
&lt;/h3&gt;

&lt;h4&gt;
  
  
  5.1 IP Address
&lt;/h4&gt;

&lt;p&gt;An IP address identifies a &lt;strong&gt;machine on a network&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;192.168.1.10&lt;/code&gt; (private IP)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;13.234.56.78&lt;/code&gt; (public IP)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Public IP → reachable from the internet&lt;br&gt;&lt;br&gt;
Private IP → only reachable inside a private network (like cloud VPCs - Virtual Private Cloud)&lt;/p&gt;


&lt;h4&gt;
  
  
  5.2 Port - Which application?
&lt;/h4&gt;

&lt;p&gt;A port identifies &lt;strong&gt;which application&lt;/strong&gt; on that machine we want to talk to.&lt;/p&gt;

&lt;p&gt;Okay, so when we connect to an application, we are actually connecting to an IP address where that application is running.&lt;/p&gt;

&lt;p&gt;However, this does not mean that only one application can run on a single IP address. In reality, &lt;strong&gt;mulitple application can run on the same IP address&lt;/strong&gt;, and they are distinguished from each other using different port numbers.&lt;/p&gt;

&lt;p&gt;Example: Let say we have a server that has an IP: &lt;/p&gt;

&lt;p&gt;&lt;code&gt;192.168.1.10&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now on this same IP, we might have:&lt;/p&gt;

&lt;p&gt;Web app running on port 80&lt;br&gt;
Backend API running on port 3000&lt;br&gt;
Database running on port 5432&lt;/p&gt;

&lt;p&gt;So:&lt;/p&gt;

&lt;p&gt;192.168.1.10:80 → Web application&lt;br&gt;
192.168.1.10:3000 → Backend service&lt;br&gt;
192.168.1.10:5432 → Database&lt;/p&gt;

&lt;p&gt;Common Ports:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;22&lt;/code&gt; → SSH&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;80&lt;/code&gt; → HTTP&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;443&lt;/code&gt; → HTTPS&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;5432&lt;/code&gt; → PostgreSQL&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;IP = &lt;em&gt;which computer&lt;/em&gt;&lt;br&gt;&lt;br&gt;
Port = &lt;em&gt;which app on that computer&lt;/em&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  6. TCP vs UDP — how data is sent
&lt;/h3&gt;

&lt;p&gt;This is about &lt;strong&gt;rules of communication&lt;/strong&gt;.&lt;/p&gt;
&lt;h4&gt;
  
  
  6.1 TCP (most important for DevOps)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Reliable&lt;/li&gt;
&lt;li&gt;Ordered&lt;/li&gt;
&lt;li&gt;Connection-based&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Used by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTTP / HTTPS&lt;/li&gt;
&lt;li&gt;SSH&lt;/li&gt;
&lt;li&gt;Databases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Think of TCP like a &lt;strong&gt;phone call&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You connect&lt;/li&gt;
&lt;li&gt;You talk&lt;/li&gt;
&lt;li&gt;You hang up&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  6.2 UDP (less common, but important)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Fast&lt;/li&gt;
&lt;li&gt;No guarantee of delivery&lt;/li&gt;
&lt;li&gt;No connection&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Used by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DNS (often)&lt;/li&gt;
&lt;li&gt;Streaming&lt;/li&gt;
&lt;li&gt;Some internal systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Think of UDP like shouting messages — fast, but no confirmation.&lt;/p&gt;


&lt;h3&gt;
  
  
  7. DNS Resolution — What’s Really Happening?
&lt;/h3&gt;

&lt;p&gt;Computers cannot understand domain names.&lt;br&gt;&lt;br&gt;
Computers only understand IP addresses like:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;93.184.216.34&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;So when we type a domain like &lt;code&gt;google.com&lt;/code&gt;, it must be converted into an IP address first.&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;Finding the IP address of a domain name is called DNS resolution.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If DNS fails → &lt;strong&gt;nothing else matters&lt;/strong&gt;.&lt;/p&gt;


&lt;h3&gt;
  
  
  8. What Happens Before ping?
&lt;/h3&gt;

&lt;p&gt;Before anything else, we always ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What is the IP address of &lt;code&gt;google.com&lt;/code&gt;?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Internally, this happens:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;google.com → DNS → 93.184.216.34
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So if DNS fails, &lt;strong&gt;everything fails&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  9. What ping Actually Does
&lt;/h3&gt;

&lt;p&gt;Once the IP is known, we use &lt;code&gt;ping&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Ping sends a special network message called an &lt;strong&gt;ICMP Echo Request&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It’s like asking the server:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Hey server, are you alive?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If the server is reachable and allows ping, it replies with an &lt;strong&gt;ICMP Echo Reply&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Your terminal prints something like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;64 bytes from 93.184.216.34: time=12ms
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The server is reachable&lt;/li&gt;
&lt;li&gt;The network path works&lt;/li&gt;
&lt;li&gt;The round-trip time is 12 milliseconds&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By default, ping keeps sending packets every second:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ping → reply
ping → reply
ping → reply
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Until you stop it with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Ctrl + C
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  10. What ping Verifies vs What It Does NOT
&lt;/h3&gt;

&lt;h4&gt;
  
  
  What ping verifies:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;The IP is reachable over the network&lt;/li&gt;
&lt;li&gt;Basic connectivity exists&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  What ping does &lt;strong&gt;NOT&lt;/strong&gt; verify:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Application is running&lt;/li&gt;
&lt;li&gt;Website is working&lt;/li&gt;
&lt;li&gt;Port is open&lt;/li&gt;
&lt;li&gt;Server is healthy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A server can reply to ping and still have a down website.&lt;/p&gt;




&lt;h3&gt;
  
  
  11. Why ping Sometimes Fails but Website Works
&lt;/h3&gt;

&lt;p&gt;Sometimes this happens:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;ping google.com&lt;/code&gt; → ❌ fails
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;curl https://google.com&lt;/code&gt; → ✅ works
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This does &lt;strong&gt;not&lt;/strong&gt; mean the site is down.&lt;/p&gt;

&lt;p&gt;Many servers block ICMP (ping) for security reasons.&lt;/p&gt;




&lt;h3&gt;
  
  
  12. Does ping Do DNS Resolution?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Yes&lt;/strong&gt;, ping does DNS resolution — but only when we give it a domain name.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ping google.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Internally:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ping sees the domain&lt;/li&gt;
&lt;li&gt;It asks DNS to resolve it&lt;/li&gt;
&lt;li&gt;DNS responds with:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  google.com → 93.184.216.34
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;ping sends ICMP packets to that IP&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📌 &lt;strong&gt;Point to remember:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Ping does DNS only as a &lt;strong&gt;prerequisite&lt;/strong&gt;, not as its main job.&lt;/p&gt;

&lt;p&gt;If you provide an IP directly, DNS is skipped completely.&lt;/p&gt;


&lt;h3&gt;
  
  
  13. Why We Still Need dig &amp;amp; nslookup
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Question:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
If ping does DNS resolution, why do we need &lt;code&gt;dig&lt;/code&gt; and &lt;code&gt;nslookup&lt;/code&gt;?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Ping does DNS &lt;em&gt;just enough to proceed&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;dig&lt;/code&gt; and &lt;code&gt;nslookup&lt;/code&gt; exist to &lt;strong&gt;inspect and debug DNS itself&lt;/strong&gt;.&lt;/p&gt;


&lt;h3&gt;
  
  
  14 ping vs dig / nslookup
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Aspect&lt;/th&gt;
&lt;th&gt;&lt;code&gt;ping&lt;/code&gt;&lt;/th&gt;
&lt;th&gt;&lt;code&gt;dig / nslookup&lt;/code&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Primary question answered&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;After resolving the name, can I reach the IP?&lt;/td&gt;
&lt;td&gt;Is DNS working correctly?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Main purpose&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Network reachability&lt;/td&gt;
&lt;td&gt;DNS resolution &amp;amp; configuration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Uses DNS?&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Yes (minimal)&lt;/td&gt;
&lt;td&gt;Yes (main focus)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Shows DNS server&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌ No&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Shows DNS response time&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌ No&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Shows record types&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌ No&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Shows multiple IPs&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌ No&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Shows TTL&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌ No&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Affected if ICMP is blocked&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌ Yes&lt;/td&gt;
&lt;td&gt;✅ No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;


&lt;h3&gt;
  
  
  15. ping Domain vs ping IP
&lt;/h3&gt;
&lt;h4&gt;
  
  
  CASE A: &lt;code&gt;ping google.com&lt;/code&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Domain name is provided&lt;/li&gt;
&lt;li&gt;DNS lookup happens:
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  google.com → 93.184.216.34
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Ping sends packets to the IP&lt;/li&gt;
&lt;li&gt;DNS involved only once&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  CASE B: &lt;code&gt;ping 93.184.216.34&lt;/code&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;IP address is provided&lt;/li&gt;
&lt;li&gt;DNS is skipped completely&lt;/li&gt;
&lt;li&gt;Ping sends packets directly&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  One-line difference:
&lt;/h4&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;DNS involved?&lt;/th&gt;
&lt;th&gt;What is pinged&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ping domain&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;Application server IP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ping IP&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;❌ No&lt;/td&gt;
&lt;td&gt;Application server IP&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;


&lt;h3&gt;
  
  
  16. Why Cloud Servers Block ping
&lt;/h3&gt;

&lt;p&gt;Ping uses &lt;strong&gt;ICMP&lt;/strong&gt;, which is a low-level network check.&lt;/p&gt;

&lt;p&gt;Security reasons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Attackers can find live servers&lt;/li&gt;
&lt;li&gt;Infrastructure mapping becomes easy&lt;/li&gt;
&lt;li&gt;Can lead to DDoS scanning&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Users don’t use ICMP.&lt;br&gt;&lt;br&gt;
Users use &lt;strong&gt;HTTP, HTTPS, APIs, TCP connections&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So blocking ping does not affect real users.&lt;/p&gt;

&lt;p&gt;Common real-world situation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ping myserver.com  → fails
curl https://myserver.com → works
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Server is running&lt;/li&gt;
&lt;li&gt;Application is working&lt;/li&gt;
&lt;li&gt;ICMP is intentionally blocked&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  17. ICMP vs TCP vs HTTP
&lt;/h3&gt;

&lt;h4&gt;
  
  
  ICMP
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Internet Control Message Protocol&lt;/li&gt;
&lt;li&gt;Used only to check reachability&lt;/li&gt;
&lt;li&gt;Answers: &lt;em&gt;Can I reach this server at all?&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  TCP
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Transmission Control Protocol&lt;/li&gt;
&lt;li&gt;Opens reliable connections&lt;/li&gt;
&lt;li&gt;Talks to applications on ports&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  HTTP / HTTPS
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Application-level protocols&lt;/li&gt;
&lt;li&gt;Built on top of TCP&lt;/li&gt;
&lt;li&gt;Used by real users&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Comparison
&lt;/h4&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Thing&lt;/th&gt;
&lt;th&gt;ICMP (Ping)&lt;/th&gt;
&lt;th&gt;TCP / HTTP&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Purpose&lt;/td&gt;
&lt;td&gt;Reachability&lt;/td&gt;
&lt;td&gt;Real communication&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Uses ports?&lt;/td&gt;
&lt;td&gt;❌ No&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Talks to app?&lt;/td&gt;
&lt;td&gt;❌ No&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Blocked often?&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;❌ Rarely&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Used by users?&lt;/td&gt;
&lt;td&gt;❌ No&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  18. Check DNS Resolution
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dig google.com +short
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;We ask the &lt;code&gt;dig&lt;/code&gt; tool:
“Hey DNS, what is the IP address of google.com?”&lt;/li&gt;
&lt;li&gt;DNS replies with an IP like: &lt;code&gt;74.125.68.101&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;+short&lt;/code&gt; means: show only the final IP&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Alternative: nslookup
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nslookup google.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;nslookup&lt;/code&gt; (Name Server Lookup) does the same job as &lt;code&gt;dig&lt;/code&gt; but also shows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The DNS server used&lt;/li&gt;
&lt;li&gt;The response details&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Server:  8.8.8.8
Address: 8.8.8.8#53

Non-authoritative answer:
Name:    google.com
Address: 93.184.216.34
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  19. Check Basic Connectivity
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ping google.com

OR

ping 93.184.216.34
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If ping fails:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Network issue&lt;/li&gt;
&lt;li&gt;Firewall issue&lt;/li&gt;
&lt;li&gt;Host down&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  20. Check If a Port Is Open (nc)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nc &lt;span class="nt"&gt;-vz&lt;/span&gt; google.com 443
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What is &lt;code&gt;nc&lt;/code&gt; (Netcat)?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Networking testing tool&lt;/li&gt;
&lt;li&gt;Opens TCP connections&lt;/li&gt;
&lt;li&gt;Tests if a port is reachable&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Flags:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;-v&lt;/code&gt; → verbose&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;-z&lt;/code&gt; → zero-I/O (no data sent)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Internal steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;DNS resolution&lt;/li&gt;
&lt;li&gt;TCP 3-way handshake&lt;/li&gt;
&lt;li&gt;Result printed&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you see:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;connection refused&lt;/code&gt; → service or firewall issue&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;timeout&lt;/code&gt; → routing or security group issue&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  21. Test HTTP Directly (curl)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-I&lt;/span&gt; https://google.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;curl&lt;/code&gt; = Client URL&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;-I&lt;/code&gt; = HEAD request (headers only)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Internal flow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;DNS resolution&lt;/li&gt;
&lt;li&gt;TCP handshake&lt;/li&gt;
&lt;li&gt;HTTP request&lt;/li&gt;
&lt;li&gt;Response received&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  22. Real DevOps Debugging Order
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. DNS        → dig
2. Reachable  → ping
3. Port open  → nc
4. App works  → curl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dig google.com
ping google.com
nc &lt;span class="nt"&gt;-vz&lt;/span&gt; google.com 443
curl https://google.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  ✅ Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;DevOps problems are often &lt;strong&gt;network problems&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Understand DNS before anything else&lt;/li&gt;
&lt;li&gt;Ping checks reachability, not applications&lt;/li&gt;
&lt;li&gt;Use the right tool at the right step&lt;/li&gt;
&lt;li&gt;Debug &lt;strong&gt;step by step&lt;/strong&gt;, never by guessing&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  💬 Feedback &amp;amp; Discussion
&lt;/h2&gt;

&lt;p&gt;💡 &lt;strong&gt;I’d love your feedback!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you notice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;missing tool categories,&lt;/li&gt;
&lt;li&gt;incorrect assumptions,&lt;/li&gt;
&lt;li&gt;or better learning paths,&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;please comment below. I’m here to learn.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⭐ Support the Learning Journey
&lt;/h2&gt;

&lt;p&gt;If you found this blog useful:&lt;/p&gt;

&lt;p&gt;⭐ Consider giving the GitHub repo a star —&lt;br&gt;&lt;br&gt;
it really motivates me to keep learning and sharing publicly.&lt;/p&gt;




&lt;h2&gt;
  
  
  🐦 Stay Updated (Twitter / X)
&lt;/h2&gt;

&lt;p&gt;I share learning updates, notes, and progress regularly.&lt;/p&gt;

&lt;p&gt;👉 Follow me on Twitter/X:&lt;br&gt;&lt;br&gt;
&lt;a href="https://x.com/_himanshubhatt1" rel="noopener noreferrer"&gt;https://x.com/_himanshubhatt1&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🔜 What’s Next
&lt;/h2&gt;

&lt;p&gt;In the next post, I’ll be covering:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;How the Internet Actually Works&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’ll also continue updating the GitHub repo as I progress.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Networking for DevOps isn’t about memorizing protocols or becoming a networking expert overnight.&lt;/p&gt;

&lt;p&gt;It’s about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;understanding how traffic actually flows
&lt;/li&gt;
&lt;li&gt;knowing &lt;strong&gt;where to look&lt;/strong&gt; when something breaks
&lt;/li&gt;
&lt;li&gt;debugging step by step instead of guessing
&lt;/li&gt;
&lt;li&gt;building a strong mental model (Client → Network → Server)
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most production issues don’t fail because of code —&lt;br&gt;&lt;br&gt;
they fail because &lt;strong&gt;something in the network path breaks&lt;/strong&gt;.&lt;/p&gt;




&lt;p&gt;📘 Learning in public&lt;br&gt;&lt;br&gt;
📂 Repo: &lt;a href="https://github.com/dmz-v-x/networking-for-devops-101" rel="noopener noreferrer"&gt;https://github.com/dmz-v-x/networking-for-devops-101&lt;/a&gt;&lt;br&gt;
🐦 Twitter/X: &lt;a href="https://x.com/_himanshubhatt1" rel="noopener noreferrer"&gt;https://x.com/_himanshubhatt1&lt;/a&gt;&lt;br&gt;
💬 Feedback welcome — please comment if anything feels off&lt;br&gt;
⭐ Star the repo if you find it useful&lt;/p&gt;

</description>
      <category>networking</category>
      <category>devops</category>
      <category>cloud</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Introduction to DevOps #5. DevOps Tooling Landscape</title>
      <dc:creator>Himanshu Bhatt</dc:creator>
      <pubDate>Mon, 12 Jan 2026 04:30:29 +0000</pubDate>
      <link>https://dev.to/himanshu_bhatt/introduction-to-devops-4-devops-tooling-landscape-12m5</link>
      <guid>https://dev.to/himanshu_bhatt/introduction-to-devops-4-devops-tooling-landscape-12m5</guid>
      <description>&lt;h2&gt;
  
  
  👋 Short Intro (Why I’m Writing This)
&lt;/h2&gt;

&lt;p&gt;I’m currently learning &lt;strong&gt;DevOps&lt;/strong&gt; and decided to &lt;strong&gt;learn in public&lt;/strong&gt; by documenting my journey.&lt;/p&gt;

&lt;p&gt;This blog is the last part of my &lt;strong&gt;DevOps 101 series&lt;/strong&gt;, where I’m learning DevOps step by step from scratch.&lt;/p&gt;

&lt;p&gt;This series is &lt;strong&gt;not written by an expert&lt;/strong&gt; — it’s a beginner learning out loud, sharing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what I understand,&lt;/li&gt;
&lt;li&gt;what confuses me,&lt;/li&gt;
&lt;li&gt;and what I learn along the way.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is to build consistency, clarity, and invite discussion.&lt;/p&gt;




&lt;h2&gt;
  
  
  📌 What This Blog Covers
&lt;/h2&gt;

&lt;p&gt;In this post, I’ll cover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What DevOps tools are (and aren’t)&lt;/li&gt;
&lt;li&gt;Why tooling matters in DevOps&lt;/li&gt;
&lt;li&gt;Major DevOps tool categories&lt;/li&gt;
&lt;li&gt;How tools fit into the DevOps lifecycle&lt;/li&gt;
&lt;li&gt;Common misconceptions about DevOps tools&lt;/li&gt;
&lt;li&gt;How beginners should think about learning tools&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This blog gives a &lt;strong&gt;high-level overview&lt;/strong&gt;, not tutorials.&lt;/p&gt;




&lt;h2&gt;
  
  
  📂 GitHub Repository
&lt;/h2&gt;

&lt;p&gt;All my notes, diagrams, and learning resources for this series live here:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;GitHub Repo:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/dmz-v-x/introduction-to-devops-101" rel="noopener noreferrer"&gt;https://github.com/dmz-v-x/introduction-to-devops-101&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This repo is updated as I continue learning.&lt;/p&gt;




&lt;h2&gt;
  
  
  📚 Learning Notes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. DevOps Tools Are Enablers, Not DevOps Itself
&lt;/h3&gt;

&lt;p&gt;A very important reminder:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Tools do &lt;strong&gt;not&lt;/strong&gt; equal DevOps.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;DevOps tools exist to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;reduce manual work&lt;/li&gt;
&lt;li&gt;enforce consistency&lt;/li&gt;
&lt;li&gt;automate processes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without the right mindset:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;tools become complex&lt;/li&gt;
&lt;li&gt;automation breaks&lt;/li&gt;
&lt;li&gt;teams struggle&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Culture comes first, tools come second.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Why Tooling Matters in DevOps
&lt;/h3&gt;

&lt;p&gt;Modern systems are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;complex&lt;/li&gt;
&lt;li&gt;distributed&lt;/li&gt;
&lt;li&gt;always changing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tools help teams:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;move fast safely&lt;/li&gt;
&lt;li&gt;avoid human errors&lt;/li&gt;
&lt;li&gt;observe system behavior&lt;/li&gt;
&lt;li&gt;recover quickly from failures&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;DevOps without tools doesn’t scale.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Version Control (Collaboration Foundation)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Purpose:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;manage code changes&lt;/li&gt;
&lt;li&gt;collaborate safely&lt;/li&gt;
&lt;li&gt;track history&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;li&gt;GitHub&lt;/li&gt;
&lt;li&gt;GitLab&lt;/li&gt;
&lt;li&gt;Bitbucket&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Why it matters:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;enables team collaboration&lt;/li&gt;
&lt;li&gt;supports automation&lt;/li&gt;
&lt;li&gt;acts as the source of truth&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  4. CI/CD Tools (Automation Backbone)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Purpose:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;automate build, test, and deploy&lt;/li&gt;
&lt;li&gt;reduce manual steps&lt;/li&gt;
&lt;li&gt;speed up releases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Jenkins&lt;/li&gt;
&lt;li&gt;GitHub Actions&lt;/li&gt;
&lt;li&gt;GitLab CI&lt;/li&gt;
&lt;li&gt;CircleCI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;CI/CD helps make deployments:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;repeatable&lt;/li&gt;
&lt;li&gt;predictable&lt;/li&gt;
&lt;li&gt;boring&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  5. Containerization Tools (Consistency)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Purpose:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;package applications with dependencies&lt;/li&gt;
&lt;li&gt;ensure consistent environments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;Podman&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Why this matters:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;eliminates “works on my machine”&lt;/li&gt;
&lt;li&gt;simplifies deployments&lt;/li&gt;
&lt;li&gt;improves portability&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  6. Orchestration Tools (Running at Scale)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Purpose:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;manage many containers&lt;/li&gt;
&lt;li&gt;handle scaling and failures&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kubernetes&lt;/li&gt;
&lt;li&gt;Docker Swarm&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Orchestration helps with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;auto-scaling&lt;/li&gt;
&lt;li&gt;self-healing&lt;/li&gt;
&lt;li&gt;service discovery&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  7. Cloud Platforms (Infrastructure on Demand)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Purpose:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;provide scalable infrastructure&lt;/li&gt;
&lt;li&gt;reduce upfront costs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS&lt;/li&gt;
&lt;li&gt;Google Cloud&lt;/li&gt;
&lt;li&gt;Azure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cloud enables:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;rapid experimentation&lt;/li&gt;
&lt;li&gt;automation&lt;/li&gt;
&lt;li&gt;global reach&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  8. Infrastructure as Code (Automation for Infra)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Purpose:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;manage infrastructure using code&lt;/li&gt;
&lt;li&gt;version control infrastructure changes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Terraform&lt;/li&gt;
&lt;li&gt;CloudFormation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;repeatability&lt;/li&gt;
&lt;li&gt;auditability&lt;/li&gt;
&lt;li&gt;consistency&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  9. Monitoring &amp;amp; Observability Tools (Feedback Loop)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Purpose:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;observe system health&lt;/li&gt;
&lt;li&gt;detect issues early&lt;/li&gt;
&lt;li&gt;support debugging&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prometheus&lt;/li&gt;
&lt;li&gt;Grafana&lt;/li&gt;
&lt;li&gt;Datadog&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Monitoring closes the DevOps feedback loop.&lt;/p&gt;




&lt;h3&gt;
  
  
  10. Logging &amp;amp; Alerting Tools (Visibility)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Purpose:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;understand system behavior&lt;/li&gt;
&lt;li&gt;respond to incidents&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ELK Stack&lt;/li&gt;
&lt;li&gt;Loki&lt;/li&gt;
&lt;li&gt;Splunk&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Visibility helps teams learn from failures.&lt;/p&gt;




&lt;h3&gt;
  
  
  11. Common Tooling Misconceptions
&lt;/h3&gt;

&lt;p&gt;Common mistakes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;learning tools before concepts&lt;/li&gt;
&lt;li&gt;chasing every new tool&lt;/li&gt;
&lt;li&gt;assuming one tool solves everything&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Better approach:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;understand the problem first&lt;/li&gt;
&lt;li&gt;then choose the right tool&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  12. How Beginners Should Approach DevOps Tools
&lt;/h3&gt;

&lt;p&gt;Suggested approach:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Understand DevOps concepts&lt;/li&gt;
&lt;li&gt;Learn one tool per category&lt;/li&gt;
&lt;li&gt;Focus on &lt;em&gt;why&lt;/em&gt;, not just &lt;em&gt;how&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Build small projects&lt;/li&gt;
&lt;li&gt;Improve gradually&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;DevOps mastery is a journey.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ Key Learnings &amp;amp; Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;DevOps tools enable DevOps practices&lt;/li&gt;
&lt;li&gt;Tools exist to automate and standardize&lt;/li&gt;
&lt;li&gt;Each tool category solves a specific problem&lt;/li&gt;
&lt;li&gt;Learning concepts before tools matters&lt;/li&gt;
&lt;li&gt;Tooling should support culture, not replace it&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;DevOps works best when tools and mindset align.&lt;/p&gt;




&lt;h2&gt;
  
  
  💬 Feedback &amp;amp; Discussion
&lt;/h2&gt;

&lt;p&gt;💡 &lt;strong&gt;I’d love your feedback!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you notice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;missing tool categories,&lt;/li&gt;
&lt;li&gt;incorrect assumptions,&lt;/li&gt;
&lt;li&gt;or better learning paths,&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;please comment below. I’m here to learn.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⭐ Support the Learning Journey
&lt;/h2&gt;

&lt;p&gt;If you found this DevOps 101 series useful:&lt;/p&gt;

&lt;p&gt;⭐ Consider giving the GitHub repo a star —&lt;br&gt;&lt;br&gt;
it really motivates me to keep learning and sharing publicly.&lt;/p&gt;




&lt;h2&gt;
  
  
  🐦 Stay Updated (Twitter / X)
&lt;/h2&gt;

&lt;p&gt;I share learning updates, notes, and progress regularly.&lt;/p&gt;

&lt;p&gt;👉 Follow me on Twitter/X:&lt;br&gt;&lt;br&gt;
&lt;a href="https://x.com/_himanshubhatt1" rel="noopener noreferrer"&gt;https://x.com/_himanshubhatt1&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🔚 Wrapping Up DevOps 101
&lt;/h2&gt;

&lt;p&gt;This marks the end of the &lt;strong&gt;DevOps 101 series&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;We covered:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What DevOps is
&lt;/li&gt;
&lt;li&gt;Why DevOps was needed
&lt;/li&gt;
&lt;li&gt;How DevOps came into existence
&lt;/li&gt;
&lt;li&gt;What problems DevOps solves
&lt;/li&gt;
&lt;li&gt;The DevOps tooling landscape
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This foundation makes it much easier to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;dive into tools&lt;/li&gt;
&lt;li&gt;build real projects&lt;/li&gt;
&lt;li&gt;understand real-world systems&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🙌 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;DevOps isn’t about becoming a tool expert overnight.&lt;/p&gt;

&lt;p&gt;It’s about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;thinking in systems&lt;/li&gt;
&lt;li&gt;improving continuously&lt;/li&gt;
&lt;li&gt;collaborating better&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks for following along on this learning journey 🙌&lt;/p&gt;




&lt;p&gt;📘 Learning in public&lt;br&gt;&lt;br&gt;
📂 Repo: &lt;a href="https://github.com/dmz-v-x/introduction-to-devops-101" rel="noopener noreferrer"&gt;https://github.com/dmz-v-x/introduction-to-devops-101&lt;/a&gt;&lt;br&gt;
🐦 Twitter/X: &lt;a href="https://x.com/_himanshubhatt1" rel="noopener noreferrer"&gt;https://x.com/_himanshubhatt1&lt;/a&gt;&lt;br&gt;
💬 Feedback welcome — please comment if anything feels off&lt;br&gt;
⭐ Star the repo if you find it useful&lt;/p&gt;

</description>
      <category>devops</category>
      <category>cloud</category>
      <category>beginners</category>
      <category>discuss</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Himanshu Bhatt</dc:creator>
      <pubDate>Mon, 12 Jan 2026 04:26:18 +0000</pubDate>
      <link>https://dev.to/himanshu_bhatt/-2910</link>
      <guid>https://dev.to/himanshu_bhatt/-2910</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/himanshu_bhatt" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2757310%2F5068b1d0-4dfb-42af-af4a-f7c39031109d.png" alt="himanshu_bhatt"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/himanshu_bhatt/introduction-to-devops-4-what-problems-devops-solves-177g" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Introduction to DevOps #4. What Problems DevOps Solves&lt;/h2&gt;
      &lt;h3&gt;Himanshu Bhatt ・ Jan 12&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#devops&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#cloud&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#discuss&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>devops</category>
      <category>cloud</category>
      <category>beginners</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Introduction to DevOps #4. What Problems DevOps Solves</title>
      <dc:creator>Himanshu Bhatt</dc:creator>
      <pubDate>Mon, 12 Jan 2026 04:18:26 +0000</pubDate>
      <link>https://dev.to/himanshu_bhatt/introduction-to-devops-4-what-problems-devops-solves-177g</link>
      <guid>https://dev.to/himanshu_bhatt/introduction-to-devops-4-what-problems-devops-solves-177g</guid>
      <description>&lt;h2&gt;
  
  
  👋 Short Intro (Why I’m Writing This)
&lt;/h2&gt;

&lt;p&gt;I’m currently learning &lt;strong&gt;DevOps&lt;/strong&gt; and decided to &lt;strong&gt;learn in public&lt;/strong&gt; by documenting my journey.&lt;/p&gt;

&lt;p&gt;This blog is part of my &lt;strong&gt;DevOps 101 series&lt;/strong&gt;, where I’m learning DevOps step by step from scratch.&lt;/p&gt;

&lt;p&gt;This series is &lt;strong&gt;not written by an expert&lt;/strong&gt; — it’s a beginner learning out loud, sharing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what I understand,&lt;/li&gt;
&lt;li&gt;what confuses me,&lt;/li&gt;
&lt;li&gt;and what I learn along the way.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is to build consistency, clarity, and invite discussion.&lt;/p&gt;




&lt;h2&gt;
  
  
  📌 What This Blog Covers
&lt;/h2&gt;

&lt;p&gt;In this post, I’ll cover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The core problems DevOps is designed to solve&lt;/li&gt;
&lt;li&gt;How DevOps improves software delivery&lt;/li&gt;
&lt;li&gt;The impact of DevOps on teams and systems&lt;/li&gt;
&lt;li&gt;Before vs After comparisons&lt;/li&gt;
&lt;li&gt;Why DevOps matters in the real world&lt;/li&gt;
&lt;li&gt;How DevOps changes everyday engineering work&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This blog focuses on &lt;strong&gt;practical outcomes&lt;/strong&gt;, not tools.&lt;/p&gt;




&lt;h2&gt;
  
  
  📂 GitHub Repository
&lt;/h2&gt;

&lt;p&gt;All my notes, diagrams, and learning resources for this series live here:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;GitHub Repo:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/dmz-v-x/introduction-to-devops-101" rel="noopener noreferrer"&gt;https://github.com/dmz-v-x/introduction-to-devops-101&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This repo is updated as I continue learning.&lt;/p&gt;




&lt;h2&gt;
  
  
  📚 Learning Notes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Problem: Slow Software Delivery
&lt;/h3&gt;

&lt;p&gt;Before DevOps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;releases were rare&lt;/li&gt;
&lt;li&gt;deployments were stressful&lt;/li&gt;
&lt;li&gt;shipping features took weeks or months&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With DevOps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;small changes are shipped frequently&lt;/li&gt;
&lt;li&gt;deployments are automated&lt;/li&gt;
&lt;li&gt;feedback is faster&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;DevOps helps teams move &lt;strong&gt;fast without breaking things&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Problem: Risky and Unreliable Deployments
&lt;/h3&gt;

&lt;p&gt;Earlier:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;manual deployments&lt;/li&gt;
&lt;li&gt;human errors&lt;/li&gt;
&lt;li&gt;late-night rollbacks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With DevOps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;automated pipelines&lt;/li&gt;
&lt;li&gt;repeatable processes&lt;/li&gt;
&lt;li&gt;safer releases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Failures become:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;smaller&lt;/li&gt;
&lt;li&gt;easier to fix&lt;/li&gt;
&lt;li&gt;less scary&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  3. Problem: Poor Collaboration Between Teams
&lt;/h3&gt;

&lt;p&gt;Earlier:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dev and Ops worked in silos&lt;/li&gt;
&lt;li&gt;handoffs caused delays&lt;/li&gt;
&lt;li&gt;blame culture existed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With DevOps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;shared responsibility&lt;/li&gt;
&lt;li&gt;cross-functional teams&lt;/li&gt;
&lt;li&gt;better communication&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Teams stop blaming and start &lt;strong&gt;solving problems together&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  4. Problem: Environment Inconsistency
&lt;/h3&gt;

&lt;p&gt;Earlier:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;different setups everywhere&lt;/li&gt;
&lt;li&gt;“works on my machine” issues&lt;/li&gt;
&lt;li&gt;unpredictable behavior&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With DevOps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;consistent environments&lt;/li&gt;
&lt;li&gt;automation ensures repeatability&lt;/li&gt;
&lt;li&gt;fewer surprises&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Consistency builds confidence.&lt;/p&gt;




&lt;h3&gt;
  
  
  5. Problem: Slow Feedback Loops
&lt;/h3&gt;

&lt;p&gt;Earlier:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;bugs discovered late&lt;/li&gt;
&lt;li&gt;users reported issues first&lt;/li&gt;
&lt;li&gt;debugging was hard&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With DevOps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;monitoring and logging&lt;/li&gt;
&lt;li&gt;fast alerts&lt;/li&gt;
&lt;li&gt;quick feedback&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Teams learn faster and improve continuously.&lt;/p&gt;




&lt;h3&gt;
  
  
  6. Problem: Systems That Don’t Scale Well
&lt;/h3&gt;

&lt;p&gt;Earlier:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;manual scaling&lt;/li&gt;
&lt;li&gt;guesswork&lt;/li&gt;
&lt;li&gt;downtime during traffic spikes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With DevOps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;automated scaling&lt;/li&gt;
&lt;li&gt;infrastructure as code&lt;/li&gt;
&lt;li&gt;predictable behavior under load&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Systems grow &lt;strong&gt;without chaos&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  7. Problem: Burnout and Stress
&lt;/h3&gt;

&lt;p&gt;Earlier:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;long release nights&lt;/li&gt;
&lt;li&gt;constant firefighting&lt;/li&gt;
&lt;li&gt;high stress&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With DevOps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;boring deployments&lt;/li&gt;
&lt;li&gt;clear processes&lt;/li&gt;
&lt;li&gt;shared on-call responsibility&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;DevOps improves &lt;strong&gt;developer experience&lt;/strong&gt;, not just systems.&lt;/p&gt;




&lt;h3&gt;
  
  
  8. Before vs After (Quick Comparison)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Before DevOps:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;slow releases
&lt;/li&gt;
&lt;li&gt;manual deployments
&lt;/li&gt;
&lt;li&gt;silos
&lt;/li&gt;
&lt;li&gt;blame culture
&lt;/li&gt;
&lt;li&gt;unstable systems
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;After DevOps:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;frequent releases
&lt;/li&gt;
&lt;li&gt;automation
&lt;/li&gt;
&lt;li&gt;collaboration
&lt;/li&gt;
&lt;li&gt;ownership
&lt;/li&gt;
&lt;li&gt;reliability
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The difference is huge.&lt;/p&gt;




&lt;h3&gt;
  
  
  9. Why Businesses Care About DevOps
&lt;/h3&gt;

&lt;p&gt;DevOps enables:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;faster time to market&lt;/li&gt;
&lt;li&gt;better customer experience&lt;/li&gt;
&lt;li&gt;reduced downtime&lt;/li&gt;
&lt;li&gt;lower operational costs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It aligns engineering with business goals.&lt;/p&gt;




&lt;h3&gt;
  
  
  10. DevOps Solves System-Level Problems
&lt;/h3&gt;

&lt;p&gt;DevOps doesn’t fix:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;bad code&lt;/li&gt;
&lt;li&gt;poor requirements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But it does fix:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;broken processes&lt;/li&gt;
&lt;li&gt;slow feedback&lt;/li&gt;
&lt;li&gt;operational bottlenecks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It optimizes the &lt;strong&gt;entire system&lt;/strong&gt;, not just one part.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ Key Learnings &amp;amp; Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;DevOps solves real, painful problems&lt;/li&gt;
&lt;li&gt;Automation reduces risk and stress&lt;/li&gt;
&lt;li&gt;Collaboration improves outcomes&lt;/li&gt;
&lt;li&gt;Faster feedback leads to better systems&lt;/li&gt;
&lt;li&gt;DevOps benefits both engineers and businesses&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;DevOps is valuable because it &lt;strong&gt;actually works&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  💬 Feedback &amp;amp; Discussion
&lt;/h2&gt;

&lt;p&gt;💡 &lt;strong&gt;I’d love your feedback!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you notice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;something missing,&lt;/li&gt;
&lt;li&gt;a real-world example to add,&lt;/li&gt;
&lt;li&gt;or a better explanation,&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;please comment below. I’m here to learn and improve.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⭐ Support the Learning Journey
&lt;/h2&gt;

&lt;p&gt;If you find these notes useful:&lt;/p&gt;

&lt;p&gt;⭐ Consider giving the GitHub repo a star —&lt;br&gt;&lt;br&gt;
it really motivates me to keep learning and sharing publicly.&lt;/p&gt;




&lt;h2&gt;
  
  
  🐦 Stay Updated (Twitter / X)
&lt;/h2&gt;

&lt;p&gt;I share learning updates, notes, and progress regularly.&lt;/p&gt;

&lt;p&gt;👉 Follow me on Twitter/X:&lt;br&gt;&lt;br&gt;
&lt;a href="https://x.com/_himanshubhatt1" rel="noopener noreferrer"&gt;https://x.com/_himanshubhatt1&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🔜 What’s Next
&lt;/h2&gt;

&lt;p&gt;In the next post, I’ll be covering:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;DevOps Tooling Landscape (High-Level Overview)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’ll also continue updating the GitHub repo as I progress.&lt;/p&gt;




&lt;h2&gt;
  
  
  🙌 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;DevOps is valuable because it solves problems&lt;br&gt;
teams face every single day.&lt;/p&gt;

&lt;p&gt;Understanding these benefits makes the tooling&lt;br&gt;
much easier to learn later.&lt;/p&gt;




&lt;p&gt;📘 Learning in public&lt;br&gt;&lt;br&gt;
📂 Repo: &lt;a href="https://github.com/dmz-v-x/introduction-to-devops-101" rel="noopener noreferrer"&gt;https://github.com/dmz-v-x/introduction-to-devops-101&lt;/a&gt;&lt;br&gt;
🐦 Twitter/X: &lt;a href="https://x.com/_himanshubhatt1" rel="noopener noreferrer"&gt;https://x.com/_himanshubhatt1&lt;/a&gt;&lt;br&gt;
💬 Feedback welcome — please comment if anything feels off&lt;br&gt;
⭐ Star the repo if you find it useful&lt;/p&gt;

</description>
      <category>devops</category>
      <category>cloud</category>
      <category>beginners</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
