<?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: Vignesh J</title>
    <description>The latest articles on DEV Community by Vignesh J (@vignesh-j).</description>
    <link>https://dev.to/vignesh-j</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%2F1801774%2Fc9b84a54-cf34-49b3-a808-e4b3cc8f6c84.jpg</url>
      <title>DEV Community: Vignesh J</title>
      <link>https://dev.to/vignesh-j</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vignesh-j"/>
    <language>en</language>
    <item>
      <title>How GitHub Copilot Helped Me Roast Its Own Users</title>
      <dc:creator>Vignesh J</dc:creator>
      <pubDate>Mon, 26 Jan 2026 10:56:47 +0000</pubDate>
      <link>https://dev.to/vignesh-j/how-github-copilot-helped-me-roast-its-own-users-4540</link>
      <guid>https://dev.to/vignesh-j/how-github-copilot-helped-me-roast-its-own-users-4540</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/github-2026-01-21"&gt;GitHub Copilot CLI Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What if GitHub Copilot didn’t just help you write code but judged you for it?&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I had been waiting for a challenge that truly sounded like me for a long time, and that’s when the GitHub Copilot CLI Challenge showed up.&lt;/p&gt;

&lt;p&gt;Within five minutes, the idea that popped into my head was to use Copilot CLI to do something with Copilot itself.&lt;/p&gt;

&lt;p&gt;That’s when the idea of roasting the user for their GitHub Copilot usage came up.&lt;/p&gt;

&lt;p&gt;Then I started wondering how to implement it.&lt;/p&gt;

&lt;p&gt;Whether to build something that runs in the terminal but that would consume RAM.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Should I try a different approach?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That’s when the idea of a VS Code extension popped up (GitHub CLI actually helped me there 😉).&lt;/p&gt;

&lt;p&gt;This was my first time using an AI pair programmer to help me build a project completely, because I had never built, or even thought about creating a VS Code extension before.&lt;/p&gt;

&lt;p&gt;The roasts are static for now and don’t use AI, because I couldn’t afford an API key 😩.&lt;/p&gt;




&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Click the following link:&lt;br&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=VigneshJ.copilot-roaster" rel="noopener noreferrer"&gt;Copilot Roaster Extension&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Install the extension using the link.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fp8kd7cmoa87g3e4bp5dn.png" class="article-body-image-wrapper"&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%2Farticles%2Fp8kd7cmoa87g3e4bp5dn.png" alt="Extenstion"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And your setup is complete.&lt;/p&gt;

&lt;p&gt;Then, open any sample file to test it.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fz8739gfssiuep4wghrca.png" class="article-body-image-wrapper"&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%2Farticles%2Fz8739gfssiuep4wghrca.png" alt="Sample File"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ask GitHub Copilot to write something and accept its suggestion to see the magic ✨&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fy256grfxydcbfngkdcru.png" class="article-body-image-wrapper"&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%2Farticles%2Fy256grfxydcbfngkdcru.png" alt="Copilot Chat"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Find my demo below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.loom.com/share/e9206dad95044bdba7127ad198710722" rel="noopener noreferrer"&gt;Demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can find the GitHub repository &lt;a href="https://github.com/Vignesh025/copilot-roast-extension" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Feel free to fork, modify, and upgrade it.&lt;/p&gt;


&lt;h2&gt;
  
  
  My Experience with GitHub Copilot CLI
&lt;/h2&gt;



&lt;p&gt;This was my first time using an AI pair programmer in the CLI. I was really excited to see how it worked. After installing it and typing copilot in the terminal, it felt like magic when this showed up.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fvre4uytrbplpzkp3dzed.png" class="article-body-image-wrapper"&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%2Farticles%2Fvre4uytrbplpzkp3dzed.png" alt="Copilot CLI"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I started wondering how it would work,  which subscription it would use and which profile it would be linked to.&lt;/p&gt;

&lt;p&gt;While thinking about all this, I typed a prompt, and that’s when I got an error saying I needed to log in to proceed further.&lt;/p&gt;

&lt;p&gt;First, we need to use /login to sign in with our GitHub account.&lt;/p&gt;

&lt;p&gt;After that, everything was smooth. The suggestions were almost exactly what I expected (maybe my prompt was too good 😉).&lt;/p&gt;

&lt;p&gt;Then I tweaked things a bit, and tadaaa 🎉&lt;/p&gt;

&lt;p&gt;The extension was ready and looked cool.&lt;/p&gt;

&lt;p&gt;I added a few more roasts just to make sure the same ones didn’t repeat.&lt;/p&gt;

&lt;p&gt;Then I published it on the Marketplace.&lt;/p&gt;

&lt;p&gt;GitHub Copilot CLI provided me with the exact steps to publish the extension, because I had no clue how to do it and the whole process was smooth as well.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;So go ahead, install the extension, let Copilot write your code, and brace yourself… because this time, you’re the one getting reviewed 😏&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Follow me on&lt;/em&gt;&lt;/strong&gt; &lt;a href="https://www.linkedin.com/in/vigneshj-" rel="noopener noreferrer"&gt;&lt;em&gt;Linkedin&lt;/em&gt;&lt;/a&gt; | &lt;a href="https://github.com/Vignesh025" rel="noopener noreferrer"&gt;&lt;em&gt;GitHub&lt;/em&gt;&lt;/a&gt; | &lt;a href="https://x.com/vigneshtwt_" rel="noopener noreferrer"&gt;&lt;em&gt;Twitter&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Subscribe to my newsletter and get articles delivered straight to your inbox.&lt;/p&gt;

&lt;p&gt;

&lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://thedeveloperstack.substack.com/" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21nxwJ%21%2Cf_auto%2Cq_auto%3Abest%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fthedeveloperstack.substack.com%252Ftwitter%252Fsubscribe-card.jpg%253Fv%253D2026909357%2526version%253D9" height="auto" class="m-0"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://thedeveloperstack.substack.com/" rel="noopener noreferrer" class="c-link"&gt;
            The Developer Stack | Vignesh J | Substack
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            Stay ahead with 'Technical Bytes' and insider stories from corporate work life, delivered straight to your inbox. Click to read The Developer Stack, by Vignesh J, a Substack publication. Launched 8 months ago.
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21KePl%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F596c1ef8-4de0-48ad-becd-d4913e378716%252Ffavicon.ico"&gt;
          thedeveloperstack.substack.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;




</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
      <category>cli</category>
      <category>githubcopilot</category>
    </item>
    <item>
      <title>SQL vs NoSQL: Choosing the Right Database Before It Chooses Your Fate</title>
      <dc:creator>Vignesh J</dc:creator>
      <pubDate>Sat, 09 Aug 2025 11:25:36 +0000</pubDate>
      <link>https://dev.to/vignesh-j/sql-vs-nosql-choosing-the-right-database-before-it-chooses-your-fate-4j1e</link>
      <guid>https://dev.to/vignesh-j/sql-vs-nosql-choosing-the-right-database-before-it-chooses-your-fate-4j1e</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;SQL or NoSQL - the debate isn’t just about databases, it’s about how your application will think, grow, and scale.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Pick the wrong one, and you might end up fighting your database instead of building your product.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fzxyt2hewq75dqszi0sly.gif" class="article-body-image-wrapper"&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%2Farticles%2Fzxyt2hewq75dqszi0sly.gif" alt="database Rage"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What if the database you choose today becomes the reason your app slows down, fails to scale, or costs you thousands to fix later?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Let’s make sure that never happens.&lt;/p&gt;

&lt;p&gt;Choosing between SQL and NoSQL is one of the most important decisions you’ll make when designing a data-driven application.&lt;/p&gt;

&lt;p&gt;Both have their strengths, weaknesses, and ideal use cases and the choice can shape your system’s performance, scalability, and even your development speed.&lt;/p&gt;

&lt;p&gt;In this guide, we’ll break down what SQL and NoSQL are, where each shines, their pros and cons, and how to decide which one’s right for you.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is SQL?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;SQL (Structured Query Language) is a standardized, domain-specific programming language used to access, manipulate, and manage data within relational database management systems (RDBMS).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data is organized into tables with rows and columns, enforcing a strict schema. Examples of SQL operations include &lt;code&gt;SELECT&lt;/code&gt;, &lt;code&gt;INSERT&lt;/code&gt;, &lt;code&gt;UPDATE&lt;/code&gt;, &lt;code&gt;DELETE&lt;/code&gt;, and advanced queries involving &lt;code&gt;JOINs&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2F7fu39h2jlhfjjio1hkan.webp" class="article-body-image-wrapper"&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%2Farticles%2F7fu39h2jlhfjjio1hkan.webp" alt="SQL"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is NoSQL?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;NoSQL (“Not Only SQL”) refers to a broad category of non-relational databases that store and retrieve data differently from traditional table-based databases.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;NoSQL databases come in many types: key-value, document, wide-column, and graph. They allow for flexible schemas and are designed for high scalability, performance, and handling unstructured or semi-structured data.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fmtpslet9j4myjc638av3.png" class="article-body-image-wrapper"&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%2Farticles%2Fmtpslet9j4myjc638av3.png" alt="NoSQL"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Uses of SQL and NoSQL Databases
&lt;/h2&gt;

&lt;h3&gt;
  
  
  SQL
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Suitable for applications needing consistent, structured data: finance systems, ERP, CRM, e-commerce, and any domain where ACID transactions and complex queries are crucial.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Commonly found in analytical workloads, data warehousing, and transactional systems.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  NoSQL
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Used when flexibility and scalability are necessary: big data analytics, social networks, content management, IoT, and mobile applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ideal for handling rapidly evolving data models, storing large amounts of unstructured data, and supporting horizontal scaling across multiple servers.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fp0tqc5e690vf5swmxk8v.png" class="article-body-image-wrapper"&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%2Farticles%2Fp0tqc5e690vf5swmxk8v.png" alt="SQLvsNOSQL"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  When Should You Use SQL vs NoSQL?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  SQL is best when:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Your data is structured and fits well into tables (tabular model).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You need strong data consistency (e.g., financial transactions).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Your application requires complex queries and joins.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  NoSQL is preferable when:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The data is unstructured, semi-structured, or changing frequently.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scalability and distributed architectures are important (e.g., web-scale apps, IoT, streaming data).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You need high write/read throughput, flexible schema, or must store large datasets with minimal overhead.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Popular SQL and NoSQL Databases
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
  &lt;tr&gt;
    &lt;th&gt;Category&lt;/th&gt;
    &lt;th&gt;Database&lt;/th&gt;
    &lt;th&gt;Highlights&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td rowspan="5"&gt;SQL&lt;/td&gt;
    &lt;td&gt;MySQL&lt;/td&gt;
    &lt;td&gt;Open-source, widely used for speed/reliability&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;PostgreSQL&lt;/td&gt;
    &lt;td&gt;Advanced features, strong consistency, robust&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Oracle&lt;/td&gt;
    &lt;td&gt;Scalable, enterprise features, commercial&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Microsoft SQL Server&lt;/td&gt;
    &lt;td&gt;Integration with MS ecosystem, commercial&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;SQLite&lt;/td&gt;
    &lt;td&gt;Lightweight, file-based, serverless&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td rowspan="5"&gt;NoSQL&lt;/td&gt;
    &lt;td&gt;MongoDB&lt;/td&gt;
    &lt;td&gt;Document store, JSON-like documents, flexible schema&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Apache Cassandra&lt;/td&gt;
    &lt;td&gt;Wide-column store, high scalability, fault-tolerant&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Redis&lt;/td&gt;
    &lt;td&gt;Key-value store, extremely fast, in-memory&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Couchbase&lt;/td&gt;
    &lt;td&gt;Document + key-value, scalable, mobile/cloud-friendly&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Neo4j&lt;/td&gt;
    &lt;td&gt;Graph database, excels at modeling relationships&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Pros and Cons
&lt;/h2&gt;

&lt;h3&gt;
  
  
  SQL Databases
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Pros:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Strong data consistency (ACID properties).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Powerful query capabilities, including JOINs and aggregations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mature ecosystem, well-supported in enterprise environments.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Standardized language and strong transactional support.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Cons:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Rigid schema; structure changes are complex.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Vertical scaling (limited by hardware upgrades).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Can become resource-intensive with large volumes of data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Less ideal for unstructured or semi-structured data.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  NoSQL Databases
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Pros:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Highly scalable via horizontal distribution across servers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Flexible schema; dynamic data models.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Good performance under heavy load or with big data volumes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Suitable for rapid development and changing requirements.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Cons:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;May sacrifice strong consistency for performance (eventual consistency).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Limited support for complex queries and joins.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Diverse models (key-value, document, graph, etc.) – learning curve can &lt;br&gt;
be steeper.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ACID guarantees may be absent or limited.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Now let’s dive deep into the Pros and Cons&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What Are ACID Properties?
&lt;/h2&gt;

&lt;p&gt;ACID is a set of four guarantees that make transactions in a database reliable:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Property&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;th&gt;Why It Matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;A - Atomicity&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A transaction is all or nothing. If any step fails, the whole thing rolls back.&lt;/td&gt;
&lt;td&gt;Prevents partial updates (e.g., money deducted from one account but not added to another).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;C - Consistency&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The database moves from one valid state to another. All rules (constraints, triggers, etc.) are followed.&lt;/td&gt;
&lt;td&gt;Ensures data integrity.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;I - Isolation&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Transactions don’t interfere with each other. Even if they run at the same time, the result is as if they ran one after the other.&lt;/td&gt;
&lt;td&gt;Prevents race conditions.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;D - Durability&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Once a transaction is committed, it’s permanent even after a crash or power loss.&lt;/td&gt;
&lt;td&gt;Ensures data isn’t lost unexpectedly.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  How SQL Databases Support ACID
&lt;/h2&gt;

&lt;p&gt;Traditional relational databases like MySQL, PostgreSQL, Oracle, SQL Server are designed around ACID.&lt;/p&gt;

&lt;h3&gt;
  
  
  How they do it:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Atomicity → Transactions can be started with &lt;code&gt;BEGIN&lt;/code&gt; and rolled back with &lt;code&gt;ROLLBACK&lt;/code&gt; if anything fails.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Consistency → Enforced using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data types&lt;/li&gt;
&lt;li&gt;Constraints (&lt;code&gt;PRIMARY KEY&lt;/code&gt;, &lt;code&gt;FOREIGN KEY&lt;/code&gt;, &lt;code&gt;CHECK&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Triggers &amp;amp; rules&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Isolation → Achieved using locking and isolation levels (&lt;code&gt;READ COMMITTED&lt;/code&gt;, &lt;code&gt;SERIALIZABLE&lt;/code&gt;, etc.).&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Durability → Achieved through:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Write-ahead logging (WAL) -changes are logged before applying.&lt;/li&gt;
&lt;li&gt;Data replication and backups.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;BEGIN&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;UPDATE&lt;/span&gt; &lt;span class="n"&gt;accounts&lt;/span&gt; &lt;span class="k"&gt;SET&lt;/span&gt; &lt;span class="n"&gt;balance&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;balance&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;500&lt;/span&gt; &lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;UPDATE&lt;/span&gt; &lt;span class="n"&gt;accounts&lt;/span&gt; &lt;span class="k"&gt;SET&lt;/span&gt; &lt;span class="n"&gt;balance&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;balance&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;500&lt;/span&gt; &lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;COMMIT&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;If any update fails, SQL ensures the whole operation rolls back.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fnd3bcxhf68tqo0kz0c36.gif" class="article-body-image-wrapper"&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%2Farticles%2Fnd3bcxhf68tqo0kz0c36.gif" alt="ACID"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Why Many NoSQL Databases Don’t Fully Support ACID
&lt;/h2&gt;

&lt;p&gt;Many NoSQL databases (e.g., MongoDB, Cassandra, Couchbase) prioritize scalability and availability over strict ACID — especially when distributed across many servers.&lt;/p&gt;
&lt;h3&gt;
  
  
  Challenges:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Distributed nature → Keeping strong ACID across multiple nodes is expensive and slow.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Instead, many follow BASE:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Basically Available → System is always responsive.&lt;/li&gt;
&lt;li&gt;Soft state → Data may change over time (eventual consistency).&lt;/li&gt;
&lt;li&gt;Eventual consistency → All replicas will agree eventually, but not instantly.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Many NoSQL systems relax Isolation and Consistency to gain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Faster writes&lt;/li&gt;
&lt;li&gt;Easier horizontal scaling&lt;/li&gt;
&lt;li&gt;High availability in case of network failures&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  ❗Important Note
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Not all NoSQL is non-ACID, some have partial or optional ACID support.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MongoDB → ACID transactions for multi-document operations (since v4.0), but with performance trade-offs.&lt;/li&gt;
&lt;li&gt;Cassandra → Lightweight transactions with limited isolation.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;But by default, most NoSQL systems lean towards BASE for performance and scalability.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  SQL databases are less ideal for unstructured or semi-structured data
&lt;/h2&gt;

&lt;p&gt;SQL databases are less ideal for unstructured or semi-structured data mainly because of how they’re designed at their core.&lt;/p&gt;
&lt;h3&gt;
  
  
  1. SQL Databases Expect a Fixed Schema
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In SQL, you must define a schema (tables, columns, data types) before inserting data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Every row in a table must follow this schema.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Problem with unstructured data:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unstructured (e.g., images, videos, free text) and semi-structured (e.g., JSON, XML) data doesn’t fit neatly into rigid tables.&lt;/li&gt;
&lt;li&gt;If the shape of the data changes often, you’d need to alter the schema repeatedly which is expensive and disruptive.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  2. Data Fits Poorly into Rows and Columns
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;SQL databases are row-and-column oriented.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Unstructured data often has:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Varying fields per record.&lt;/li&gt;
&lt;li&gt;Optional or nested attributes.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trying to store this in SQL means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Many &lt;code&gt;NULL&lt;/code&gt; values for unused columns.&lt;/li&gt;
&lt;li&gt;Complex join tables to represent nested relationships.&lt;/li&gt;
&lt;li&gt;Reduced performance.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  3. Complex Storage for Nested or Variable Data
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Semi-structured data like JSON can be stored in modern SQL databases (e.g., PostgreSQL’s jsonb), but:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It loses many of the query optimizations of relational tables.&lt;/li&gt;
&lt;li&gt;Indexing and searching within JSON fields is slower and more resource-intensive.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;NoSQL document databases (like MongoDB) handle nested, variable fields natively, making them faster for such use cases.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  4. Scaling and Flexibility Issues
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Unstructured/semi-structured data grows in unpredictable ways.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SQL’s strict schema + vertical scaling approach makes it harder to adapt.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;NoSQL’s flexible schema + horizontal scaling is a better fit for changing and large-scale unstructured datasets.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  NoSQL databases support a flexible schema
&lt;/h2&gt;

&lt;p&gt;When we say NoSQL databases support a flexible schema, we mean:&lt;/p&gt;
&lt;h3&gt;
  
  
  1. No Predefined Table Structure
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In SQL, you must define all columns and their types before inserting data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In NoSQL (e.g., MongoDB, Cassandra, DynamoDB), you don’t have to predefine all fields.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can insert a record with certain fields and another record with completely different fields in the same collection/table.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  2. Different Records Can Have Different Structures
&lt;/h3&gt;

&lt;p&gt;Example in MongoDB (Document Database):&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Document&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Vignesh"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"email"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"vignesh@example.com"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Document&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Raj"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"phone"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"9876543210"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"address"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"city"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Chennai"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"zip"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"600001"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;Vignesh&lt;/code&gt;has an &lt;code&gt;email&lt;/code&gt;field but no &lt;code&gt;phone&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;Raj&lt;/code&gt; has a &lt;code&gt;phone&lt;/code&gt; and nested &lt;code&gt;address&lt;/code&gt;but no &lt;code&gt;email&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Both are stored in the same collection without schema changes.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  3. Easy to Evolve
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You can add, remove, or rename fields anytime without altering the entire database structure.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;This is especially useful when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your data model changes often.&lt;/li&gt;
&lt;li&gt;You’re storing unstructured or semi-structured data (e.g., JSON, XML).&lt;/li&gt;
&lt;li&gt;You have to handle diverse data sources with different formats.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  4. Schema-on-Read vs Schema-on-Write
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;SQL uses schema-on-write → structure is enforced when data is inserted.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;NoSQL often uses schema-on-read → structure is applied when data is retrieved/processed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;This means you can store raw, irregular data and shape it later.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  What is Vertical Scaling (Scale Up)?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Meaning:&lt;/strong&gt; Increasing the capacity of a single machine (server) to handle more load.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;How it’s done:&lt;/strong&gt; Add more CPU, RAM, storage, or faster disks to the same server.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Analogy:&lt;/strong&gt; Like buying a bigger, faster laptop instead of having multiple laptops.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fnap8l6l644hms5nu4hxj.webp" class="article-body-image-wrapper"&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%2Farticles%2Fnap8l6l644hms5nu4hxj.webp" alt="Vertical Scaling"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  SQL Databases and Vertical Scaling
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Traditional SQL databases (like MySQL, PostgreSQL, Oracle) store data in a structured, relational format.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;They are often designed to run on a single powerful machine for consistency and complex queries.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Scaling horizontally (across multiple servers) is harder for SQL because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;They rely heavily on transactions (ACID compliance).&lt;/li&gt;
&lt;li&gt;Data is often interrelated (joins across multiple tables).&lt;/li&gt;
&lt;li&gt;Splitting (sharding) the data while preserving relationships is complex.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;So the simpler approach has been:&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Make the one machine stronger → Vertical scaling.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  What is Horizontal Scaling (Scale Out)?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Meaning:&lt;/strong&gt; Adding more machines (servers) to distribute the load.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;How it’s done:&lt;/strong&gt; Use multiple servers that share the workload, often with data spread across them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Analogy:&lt;/strong&gt; Instead of buying a supercomputer, you buy 10 normal computers and make them work together.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Flygjsl9dpjk745lavdt7.webp" class="article-body-image-wrapper"&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%2Farticles%2Flygjsl9dpjk745lavdt7.webp" alt="Horizontal Scaling"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  NoSQL Databases and Horizontal Scaling
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;NoSQL databases (like MongoDB, Cassandra, Couchbase) store data in a non-relational way (documents, key-value pairs, wide-columns, etc.).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;They are built with distribution in mind from the start:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data can be sharded across multiple servers easily.&lt;/li&gt;
&lt;li&gt;Each server handles a portion of the data.&lt;/li&gt;
&lt;li&gt;This allows handling huge datasets and high traffic by just adding more machines.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;So the common scaling method is:&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Add more servers to share the work → Horizontal scaling.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Choosing between &lt;strong&gt;SQL&lt;/strong&gt; and &lt;strong&gt;NoSQL&lt;/strong&gt; isn’t about which one is better in a vacuum. It’s about which one aligns with your &lt;strong&gt;data model&lt;/strong&gt;, &lt;strong&gt;growth plans&lt;/strong&gt;, and &lt;strong&gt;application needs&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Think of it like building a house: you wouldn’t choose the same foundation for a skyscraper as you would for a cabin.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;If you need &lt;strong&gt;structure, consistency, and reliability&lt;/strong&gt;, SQL databases offer proven stability.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you need &lt;strong&gt;flexibility, speed at scale, and evolving data models&lt;/strong&gt;, NoSQL can give you the agility you need.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The most successful projects start with &lt;strong&gt;clarity, not guesswork&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Pick the right database today, and you won’t just avoid costly mistakes, you’ll set your application up to scale gracefully for years to come.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Follow me on&lt;/em&gt;&lt;/strong&gt; &lt;a href="https://www.linkedin.com/in/vigneshj-" rel="noopener noreferrer"&gt;&lt;em&gt;Linkedin&lt;/em&gt;&lt;/a&gt; | &lt;a href="https://github.com/Vignesh025" rel="noopener noreferrer"&gt;&lt;em&gt;GitHub&lt;/em&gt;&lt;/a&gt; | &lt;a href="https://x.com/vigneshtwt_" rel="noopener noreferrer"&gt;&lt;em&gt;Twitter&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Subscribe to my newsletter and get articles delivered straight to your inbox.&lt;/p&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://thedeveloperstack.substack.com/" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21nxwJ%21%2Cf_auto%2Cq_auto%3Abest%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fthedeveloperstack.substack.com%252Ftwitter%252Fsubscribe-card.jpg%253Fv%253D2026909357%2526version%253D9" height="auto" class="m-0"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://thedeveloperstack.substack.com/" rel="noopener noreferrer" class="c-link"&gt;
            The Developer Stack | Vignesh J | Substack
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            Stay ahead with 'Technical Bytes' and insider stories from corporate work life, delivered straight to your inbox. Click to read The Developer Stack, by Vignesh J, a Substack publication. Launched 8 months ago.
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21KePl%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F596c1ef8-4de0-48ad-becd-d4913e378716%252Ffavicon.ico"&gt;
          thedeveloperstack.substack.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;



</description>
      <category>database</category>
      <category>sql</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Retro’ing and Debugging 2024 - A year of learning and fun</title>
      <dc:creator>Vignesh J</dc:creator>
      <pubDate>Wed, 08 Jan 2025 13:50:39 +0000</pubDate>
      <link>https://dev.to/vignesh-j/retroing-and-debugging-2024-a-year-of-learning-and-fun-4nlg</link>
      <guid>https://dev.to/vignesh-j/retroing-and-debugging-2024-a-year-of-learning-and-fun-4nlg</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/newyear"&gt;2025 New Year Writing challenge&lt;/a&gt;: Retro’ing and Debugging 2024.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First of all, Happy New Year, everyone!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let all your dreams come true, and may you reach the goals that you’ve set.&lt;/p&gt;

&lt;p&gt;This is my first blog of 2025. I am going to reflect on how the year 2024 went for me.&lt;/p&gt;

&lt;p&gt;And where should I start?&lt;br&gt;
2024 has been an amazing ride for me. I’ve learned a lot more in 2024 than any other year.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;January&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;January was the holiday season for me. I was enjoying my life.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fccu40g24vr1vpxdjkly7.gif" class="article-body-image-wrapper"&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%2Farticles%2Fccu40g24vr1vpxdjkly7.gif" alt="chilling" width="640" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;February&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In February, I started learning CPP. I learned some syntaxes and solved some problems. However, I took a break because of my college project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;March&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In March, I was busy with a college project. Documenting the project was the hard part!&lt;br&gt;
However, we completed it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;April&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In April, I started solving problems from a book called “&lt;em&gt;Let Us C&lt;/em&gt;” by Yashavant Kanetkar.&lt;br&gt;
It took me 2 months to solve all the problems. You can find the solutions here ↓&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Vignesh025" rel="noopener noreferrer"&gt;
        Vignesh025
      &lt;/a&gt; / &lt;a href="https://github.com/Vignesh025/Let-us-C" rel="noopener noreferrer"&gt;
        Let-us-C
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Solutions for Let us C -19th Edition
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;May&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In May, I was solving the “&lt;em&gt;Let Us C&lt;/em&gt;” problems, and I was also spending a lot of time watching football as it was a peak season.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;June&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In June, I was exploring the internet about what to do next and what to learn next.&lt;br&gt;
I also tried to make a website for the solutions I made for “&lt;em&gt;Let Us C&lt;/em&gt;.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;July&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In July, I started my full-stack web development journey. I started with the MERN stack.&lt;/p&gt;

&lt;p&gt;This is one of the most important months of my life:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I joined Dev.to and started my habit of reading blogs.&lt;/li&gt;
&lt;li&gt;I joined an open-source program called “Code Sapiens.”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is when I learned a lot about open source and started contributing to it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;August&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In August, I started my first full-stack project as a part of my learning journey called &lt;strong&gt;CampX&lt;/strong&gt;.&lt;br&gt;
You can find the project here ↓&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Vignesh025" rel="noopener noreferrer"&gt;
        Vignesh025
      &lt;/a&gt; / &lt;a href="https://github.com/Vignesh025/CampX" rel="noopener noreferrer"&gt;
        CampX
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      "CampX: Discover and share the best campgrounds across Globe, where adventure meets community."
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;CampX&lt;/h1&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Introduction&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;CampX&lt;/strong&gt; is a web application designed to help users discover and share campgrounds from around the world. Users can browse through a collection of campgrounds, read reviews, and contribute by adding their own. Each user has control over the campgrounds they add, with the ability to edit or delete them. The platform encourages a community-driven approach to exploring the great outdoors.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Table of Contents&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/Vignesh025/CampX#introduction" rel="noopener noreferrer"&gt;Introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Vignesh025/CampX#features" rel="noopener noreferrer"&gt;Features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Vignesh025/CampX#hosted-website" rel="noopener noreferrer"&gt;Hosted Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Vignesh025/CampX#tech-stack" rel="noopener noreferrer"&gt;Tech Stack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Vignesh025/CampX#installation" rel="noopener noreferrer"&gt;Installation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Vignesh025/CampX#usage" rel="noopener noreferrer"&gt;Usage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Vignesh025/CampX#configuration" rel="noopener noreferrer"&gt;Configuration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Vignesh025/CampX#dependencies" rel="noopener noreferrer"&gt;Dependencies&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Vignesh025/CampX#contributing" rel="noopener noreferrer"&gt;Contributing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Vignesh025/CampX#contributors" rel="noopener noreferrer"&gt;Contributors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Vignesh025/CampX#license" rel="noopener noreferrer"&gt;License&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Global Campground Discovery&lt;/strong&gt;: Browse campgrounds from various locations worldwide.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User-Generated Content&lt;/strong&gt;: Users can add campgrounds and reviews.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Edit and Delete Permissions&lt;/strong&gt;: Only the original author of a campground can edit or delete their entry.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interactive UI&lt;/strong&gt;: Engaging interface built with HTML, CSS, and JavaScript.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Hosted Website&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Visit the live version of CampX here: &lt;a href="https://campx-ztww.onrender.com/" rel="nofollow noopener noreferrer"&gt;CampX Website&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Tech Stack&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: HTML, CSS, JavaScript&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend&lt;/strong&gt;: Node.js, Express.js&lt;/li&gt;
&lt;li&gt;…&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Vignesh025/CampX" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;September&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In September, I finished my full-stack project, and guess what?&lt;br&gt;
This is the month when I posted my first &lt;strong&gt;Dev.to blog&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I’ve shared about my project there. You can find the post here ↓&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/vignesh-j" 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%2F1801774%2Fc9b84a54-cf34-49b3-a808-e4b3cc8f6c84.jpg" alt="vignesh-j"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/vignesh-j/introducing-campx-an-open-source-nodejs-mongodb-and-express-project-your-contributions-welcome-25p9" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;🚀 Introducing CampX: An Open-Source Node.js, MongoDB, and Express Project – Your Contributions Welcome! 🌟&lt;/h2&gt;
      &lt;h3&gt;Vignesh J ・ Sep 7 '24&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#node&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#express&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#mongodb&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;In late September, I created a GitHub organization and made my first full-stack project open source. You can find the project here ↓&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/VigneshDevHub" rel="noopener noreferrer"&gt;
        VigneshDevHub
      &lt;/a&gt; / &lt;a href="https://github.com/VigneshDevHub/CampX" rel="noopener noreferrer"&gt;
        CampX
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      "CampX: Discover and share the best campgrounds across Globe, where adventure meets community."
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Star our Repository ⭐&lt;/h1&gt;
&lt;/div&gt;
&lt;div&gt;
  &lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;CampX&lt;/h1&gt;
&lt;/div&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/c59567e9c216585857f2560f38d759d77d0e645e999cf72975723c19f8d0fa50/68747470733a2f2f7265732e636c6f7564696e6172792e636f6d2f646772323165696f762f696d6167652f75706c6f61642f76313732343735333131322f486f6d652e706e67"&gt;&lt;img src="https://camo.githubusercontent.com/c59567e9c216585857f2560f38d759d77d0e645e999cf72975723c19f8d0fa50/68747470733a2f2f7265732e636c6f7564696e6172792e636f6d2f646772323165696f762f696d6167652f75706c6f61642f76313732343735333131322f486f6d652e706e67"&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;p&gt;&lt;a href="https://discord.gg/Wq6MZ88ecf" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/4ac22e87419b9720447fc6d8c77b298517c1d766982fc59bc6b616d8b8146710/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f446973636f72642d6461726b626c75653f7374796c653d666f722d7468652d6261646765266c6f676f3d646973636f7264266c6f676f436f6c6f723d7768697465" alt="Discord"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;&lt;div&gt; &lt;a href="https://github.com/VigneshDevHub/CampX/stargazers" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/f0ace0a6a210b23a4914ada510198e54bbec62164c7f89effce549f66992973a/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f5669676e6573684465764875622f43616d70583f7374796c653d666f722d7468652d6261646765266c6f676f3d676974687562" alt="Stars"&gt;&lt;/a&gt; &lt;a href="https://github.com/VigneshDevHub/CampX/network/members" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/9b373151deef3db63055b4e40b7b97b2daf39e08b2ed41ecfebf46640f9d0637/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f5669676e6573684465764875622f43616d70583f7374796c653d666f722d7468652d6261646765266c6f676f3d676974687562" alt="Forks"&gt;&lt;/a&gt; &lt;a href="https://github.com/VigneshDevHub/CampX/issues" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/58a8f5c3d6a9072416a312952fdd08c63639990fcfe1e515ce1caabf0f08976f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f5669676e6573684465764875622f43616d70583f7374796c653d666f722d7468652d6261646765266c6f676f3d676974687562" alt="Issues"&gt;&lt;/a&gt; &lt;a href="https://github.com/VigneshDevHub/CampX/pulls" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/817fcdb33b5120564cba47133694c703b3025a87d851d30dd052d1371da35afd/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732d70722f5669676e6573684465764875622f43616d70583f7374796c653d666f722d7468652d6261646765266c6f676f3d676974687562" alt="PRs Open"&gt;&lt;/a&gt; &lt;a href="https://github.com/VigneshDevHub/CampX/pulls?q=is%3Apr+is%3Aclosed" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/1ac9d711ea37f4f904316c3966b151061bd0ac1cde72ec474353571a89650c60/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732d70722d636c6f7365642f5669676e6573684465764875622f43616d70583f7374796c653d666f722d7468652d6261646765266c6f676f3d67697468756226636f6c6f723d326362653465" alt="PRs Closed"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;/h3&gt;

&lt;/div&gt;
&lt;br&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Introduction 🤝&lt;/h1&gt;

&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;CampX&lt;/strong&gt; is a web application designed to help users discover and share campgrounds from around the world. Users can browse through a collection of campgrounds, read reviews, and contribute by adding their own. Each user has control over the campgrounds they add, with the ability to edit or delete them. The platform encourages a community-driven approach to exploring the great outdoors.&lt;/p&gt;
&lt;br&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Code of Conduct 📄&lt;/h1&gt;

&lt;/div&gt;
&lt;p&gt;We are committed to fostering a welcoming and inclusive environment for everyone. Please take a moment to review our &lt;a href="https://github.com/VigneshDevHub/CampX/blob/main/CODE_OF_CONDUCT.md" rel="noopener noreferrer"&gt;Code of Conduct&lt;/a&gt;, which outlines our expectations for participant behavior and how we handle reports of misconduct.&lt;/p&gt;
&lt;p&gt;By participating in this project, you agree to abide by our Code of Conduct.&lt;/p&gt;
&lt;br&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Table of Contents 📖&lt;/h1&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/VigneshDevHub/CampX#introduction" rel="noopener noreferrer"&gt;Introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/VigneshDevHub/CampX#features" rel="noopener noreferrer"&gt;Features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/VigneshDevHub/CampX#hosted-website" rel="noopener noreferrer"&gt;Hosted Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/VigneshDevHub/CampX#tech-stack" rel="noopener noreferrer"&gt;Tech Stack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/VigneshDevHub/CampX#installation" rel="noopener noreferrer"&gt;Installation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/VigneshDevHub/CampX#usage" rel="noopener noreferrer"&gt;Usage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/VigneshDevHub/CampX#configuration" rel="noopener noreferrer"&gt;Configuration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/VigneshDevHub/CampX#dependencies" rel="noopener noreferrer"&gt;Dependencies&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/VigneshDevHub/CampX#contributing" rel="noopener noreferrer"&gt;Contributing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/VigneshDevHub/CampX#contributors" rel="noopener noreferrer"&gt;Contributors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/VigneshDevHub/CampX#troubleshooting" rel="noopener noreferrer"&gt;Troubleshooting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/VigneshDevHub/CampX#for-help-and-support-" rel="noopener noreferrer"&gt;Help And Support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/VigneshDevHub/CampX#license" rel="noopener noreferrer"&gt;License&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Features 🛒&lt;/h1&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Global Campground Discovery&lt;/strong&gt;…&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/VigneshDevHub/CampX" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;I prepared it for the most anticipated season of every year: the &lt;strong&gt;Hacktoberfest season&lt;/strong&gt;.&lt;br&gt;
The project was also enrolled in &lt;strong&gt;Hacktoberfest&lt;/strong&gt; and &lt;strong&gt;GSSoC-2024 Extd&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;October&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;October was one of the busiest months of the year:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Maintaining the project as well as contributing to other open-source projects.&lt;/li&gt;
&lt;li&gt;Participating in another open-source program called “DevFest” as a contributor.&lt;/li&gt;
&lt;li&gt;Attending many sessions and learning a lot of new stuff.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;November&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In November, I was posting about my October month contributions online.&lt;br&gt;
I also started a new blog series on &lt;strong&gt;Dev.to&lt;/strong&gt; about “&lt;em&gt;Computer Networking&lt;/em&gt;.”&lt;br&gt;
You can find it here ↓&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/vignesh-j" 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%2F1801774%2Fc9b84a54-cf34-49b3-a808-e4b3cc8f6c84.jpg" alt="vignesh-j"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/vignesh-j/computer-networking-full-course-2nmj" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Introduction to Computer Networking: A Beginner's Guide to How the Internet Works&lt;/h2&gt;
      &lt;h3&gt;Vignesh J ・ Nov 11 '24&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#computernetworking&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#interviewprep&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;I joined the &lt;strong&gt;Azure Developer Community&lt;/strong&gt; on Discord. It was so fun attending the quizzes, and the most interesting part is that they reward the winners with swag. There were many engaging sessions on various topics.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;December&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In December, I completed my blog series on “Computer Networking.”&lt;br&gt;
I started my learning journey on the &lt;strong&gt;Java and Spring frameworks&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I also won a quiz conducted by the Azure Developer Community. Yay!&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Ffpdoq920wiz22gecu7ad.gif" class="article-body-image-wrapper"&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%2Farticles%2Ffpdoq920wiz22gecu7ad.gif" alt="Happy happy happy" width="128" height="128"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;So this is how my 2024 went.&lt;/p&gt;

&lt;p&gt;It was a year of &lt;strong&gt;learning and fun&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If I could change anything from 2024, I wouldn’t change a thing because I believe everything happens for a reason.&lt;/p&gt;

&lt;p&gt;If you like my content, you can follow me here:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.linkedin.com/in/vigneshj-" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Vignesh025" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://x.com/vigneshtwt_" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>newyearchallenge</category>
      <category>career</category>
      <category>devjournal</category>
    </item>
    <item>
      <title>Understanding the Data Link and Physical Layers: The Final Step in Mastering OSI Model and Computer Networking</title>
      <dc:creator>Vignesh J</dc:creator>
      <pubDate>Sat, 14 Dec 2024 13:41:00 +0000</pubDate>
      <link>https://dev.to/vignesh-j/understanding-the-data-link-and-physical-layers-the-final-step-in-mastering-osi-model-and-computer-6g</link>
      <guid>https://dev.to/vignesh-j/understanding-the-data-link-and-physical-layers-the-final-step-in-mastering-osi-model-and-computer-6g</guid>
      <description>&lt;p&gt;This is the &lt;strong&gt;eighth&lt;/strong&gt; and &lt;strong&gt;final&lt;/strong&gt; part of the computer networking series. Check out the previous parts if you haven't. In this part, we'll see about:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data Link Layer
&lt;/li&gt;
&lt;li&gt;Physical Layer
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
Data Link Layer
&lt;/li&gt;
&lt;li&gt;
Physical Layer
&lt;/li&gt;
&lt;li&gt;
Conclusion
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Data Link Layer
&lt;/h2&gt;

&lt;p&gt;The data link layer is responsible for sending the data packets received from the network layer over a physical link.&lt;br&gt;&lt;br&gt;
In the data link layer, the data is sent as &lt;strong&gt;frames&lt;/strong&gt;.  &lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fer6r6n2sdal4gwd5qa7l.png" class="article-body-image-wrapper"&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%2Farticles%2Fer6r6n2sdal4gwd5qa7l.png" alt="Data link" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If many devices are connected in a &lt;strong&gt;LAN&lt;/strong&gt;, the devices communicate with each other using their &lt;strong&gt;data link layer addresses&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
If you don't know what a LAN is, we've already discussed it in a previous part. You can check it here ↓&lt;br&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="/vignesh-j" 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%2F1801774%2Fc9b84a54-cf34-49b3-a808-e4b3cc8f6c84.jpg" alt="vignesh-j"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/vignesh-j/computer-networking-full-course-7ap" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Exploring Network Types and Topologies&lt;/h2&gt;
      &lt;h3&gt;Vignesh J ・ Nov 13 '24&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#computernetworking&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#interviewprep&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  Example of Communication in a LAN
&lt;/h3&gt;

&lt;p&gt;Consider A, B, C, and D connected in a LAN, and A wants to send data to D:  &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Checking ARP Cache:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;First, A checks its &lt;strong&gt;cache memory&lt;/strong&gt; (known as the &lt;strong&gt;ARP cache&lt;/strong&gt;) for D's data link layer address.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Broadcast Request:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;If the address is unavailable, A sends a message to all devices in the network asking for D's data link layer address.
&lt;/li&gt;
&lt;li&gt;The message is a &lt;strong&gt;frame&lt;/strong&gt; that includes:

&lt;ul&gt;
&lt;li&gt;The data link layer address of the sender (A).
&lt;/li&gt;
&lt;li&gt;The IP address of the destination (D).
&lt;/li&gt;
&lt;li&gt;A request for the data link layer address of the destination.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  Address Resolution Protocol (ARP)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ARP Cache&lt;/strong&gt;: Stores mappings of IP addresses to data link layer addresses.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MAC Address&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;A unique 12-digit alphanumeric string that serves as the data link layer address.
&lt;/li&gt;
&lt;li&gt;Stands for &lt;strong&gt;Media Access Control&lt;/strong&gt;.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;The data link layer works closely with the physical layer to ensure communication.&lt;/p&gt;

&lt;h2&gt;
  
  
  Physical Layer
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Physical Layer&lt;/strong&gt; is the &lt;strong&gt;bottom-most layer&lt;/strong&gt; in the OSI Model. It represents the &lt;strong&gt;physical and electrical&lt;/strong&gt; aspects of the system.  &lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fymy7fkf3swns64bu1qpz.png" class="article-body-image-wrapper"&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%2Farticles%2Fymy7fkf3swns64bu1qpz.png" alt="Physical" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features of the Physical Layer
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Hardware Components&lt;/strong&gt;: Includes power plugs, connectors, receivers, and cable types.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transmission of Data Bits&lt;/strong&gt;: Responsible for sending unstructured raw data streams from one device (e.g., a computer) to another.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Encoding&lt;/strong&gt;: Defines how 0s and 1s are encoded into signals for transmission over the physical medium.
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The &lt;strong&gt;Physical Layer&lt;/strong&gt; is responsible for communication over a &lt;strong&gt;physical medium&lt;/strong&gt; like cables and wireless systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;This marks the end of the OSI model and also the end of this series. I hope you’ve gained insights into some basic computer networking concepts necessary to understand how the internet works.  &lt;/p&gt;

&lt;p&gt;Remember, computer networking is a vast field with much more to explore. This series provides a foundational overview, but you can dive deeper into specialized topics by exploring additional resources.  &lt;/p&gt;

&lt;p&gt;Make sure to react and leave your feedback in the comments! It would be really helpful to understand what is good and what I need to improve.  &lt;/p&gt;

&lt;p&gt;If you like my content, you can follow me here:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.linkedin.com/in/vigneshj-" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Vignesh025" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://x.com/vigneshtwt_" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thank you for following along this journey!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>networking</category>
      <category>beginners</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>Understanding the Network Layer and IP: Routing, IPv4 vs IPv6, and Key Concepts Explained</title>
      <dc:creator>Vignesh J</dc:creator>
      <pubDate>Sat, 07 Dec 2024 10:30:00 +0000</pubDate>
      <link>https://dev.to/vignesh-j/understanding-the-network-layer-and-ip-routing-ipv4-vs-ipv6-and-key-concepts-explained-4ip0</link>
      <guid>https://dev.to/vignesh-j/understanding-the-network-layer-and-ip-routing-ipv4-vs-ipv6-and-key-concepts-explained-4ip0</guid>
      <description>&lt;p&gt;This is the seventh part of the computer networking series. Check out the previous parts if you haven't. In this part, we'll explore the &lt;strong&gt;Network Layer&lt;/strong&gt; and &lt;strong&gt;Internet Protocol (IP)&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
Network Layer

&lt;ul&gt;
&lt;li&gt;Control Plane&lt;/li&gt;
&lt;li&gt;Forwarding and Routing Tables&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
Internet Protocol (IP)

&lt;ul&gt;
&lt;li&gt;
IPv4

&lt;ul&gt;
&lt;li&gt;Classes of IP Addresses&lt;/li&gt;
&lt;li&gt;Subnet Masking&lt;/li&gt;
&lt;li&gt;Reserved Addresses&lt;/li&gt;
&lt;li&gt;Packets in IPv4&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
IPv6

&lt;ul&gt;
&lt;li&gt;Cons of IPv6&lt;/li&gt;
&lt;li&gt;IPv6 Format&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
Middleboxes

&lt;ul&gt;
&lt;li&gt;Firewalls&lt;/li&gt;
&lt;li&gt;Network Address Translation (NAT)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Network Layer
&lt;/h2&gt;

&lt;p&gt;In the &lt;strong&gt;Network Layer&lt;/strong&gt;, we work with &lt;strong&gt;routers&lt;/strong&gt;. If you're unfamiliar with routers, check out our earlier discussion here ↓&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/vignesh-j" 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%2F1801774%2Fc9b84a54-cf34-49b3-a808-e4b3cc8f6c84.jpg" alt="vignesh-j"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/vignesh-j/computer-networking-full-course-5c80" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Networking Devices Explained: A Beginner's Guide to Routers, Switches, Hubs, and More&lt;/h2&gt;
      &lt;h3&gt;Vignesh J ・ Nov 15 '24&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#computernetworking&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#interviewprep&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;While the &lt;strong&gt;Transport Layer&lt;/strong&gt; transfers data as &lt;strong&gt;segments&lt;/strong&gt;, the &lt;strong&gt;Network Layer&lt;/strong&gt; sends data as &lt;strong&gt;packets&lt;/strong&gt;. Let’s look at an example:&lt;/p&gt;

&lt;h3&gt;
  
  
  Packet Routing and Hop-by-Hop Forwarding
&lt;/h3&gt;

&lt;p&gt;When sending data from A to B, it passes through several routers. Each router:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Has its own network address.&lt;/li&gt;
&lt;li&gt;Checks if the packet is meant for it.&lt;/li&gt;
&lt;li&gt;Uses a &lt;strong&gt;forwarding table&lt;/strong&gt; to send the packet towards the destination router.
This process is called &lt;strong&gt;hop-by-hop forwarding&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In an IP address,&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fzaj0ohm97k7hhgcm2mzs.png" class="article-body-image-wrapper"&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%2Farticles%2Fzaj0ohm97k7hhgcm2mzs.png" alt="IP" width="230" height="166"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Routers here refer to Internet Service Provider (ISP) routers, not the ones in your home network.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Forwarding and Routing Tables
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Routing Table&lt;/strong&gt;: Contains the entire path (e.g., A → B → C → D → E).
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Forwarding Table&lt;/strong&gt;: Holds the next step (e.g., A → B).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These tables are maintained by each router.&lt;/p&gt;

&lt;h2&gt;
  
  
  Control Plane
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Control Plane&lt;/strong&gt; builds routing tables. There are two types of routing:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Static Routing&lt;/strong&gt;:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Addresses are manually added to the routing table.
&lt;/li&gt;
&lt;li&gt;Time-consuming and requires manual updates for network changes.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Dynamic Routing&lt;/strong&gt;:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Automatically updates routing tables when the network changes.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Internet Protocol (IP)
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Internet Protocol (IP)&lt;/strong&gt; identifies routers and servers uniquely in a network. It has two versions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;IPv4&lt;/strong&gt; (32-bit)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IPv6&lt;/strong&gt; (128-bit)&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  IPv4
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Format
&lt;/h4&gt;

&lt;p&gt;IPv4 addresses are in the format &lt;code&gt;X.X.X.X&lt;/code&gt;, where each &lt;code&gt;X&lt;/code&gt; is an 8-bit number.&lt;/p&gt;

&lt;h4&gt;
  
  
  Classes of IP Addresses
&lt;/h4&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Class&lt;/th&gt;
&lt;th&gt;Range&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Class A&lt;/td&gt;
&lt;td&gt;&lt;code&gt;0.0.0.0 – 127.255.255.255&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Class B&lt;/td&gt;
&lt;td&gt;&lt;code&gt;128.0.0.0 – 191.255.255.255&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Class C&lt;/td&gt;
&lt;td&gt;&lt;code&gt;192.0.0.0 – 223.255.255.255&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Class D&lt;/td&gt;
&lt;td&gt;&lt;code&gt;224.0.0.0 – 239.255.255.255&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Class E&lt;/td&gt;
&lt;td&gt;&lt;code&gt;240.0.0.0 – 255.255.255.255&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h4&gt;
  
  
  Subnet Masking
&lt;/h4&gt;

&lt;p&gt;Subnet masking divides an IP address into:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Network Section&lt;/strong&gt;: Represents the server/network.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Host Section&lt;/strong&gt;: Represents the client/device.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Example:&lt;br&gt;&lt;br&gt;
IP Address &lt;code&gt;192.168.2.30&lt;/code&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Subnet ID&lt;/strong&gt;: &lt;code&gt;192.168.2&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Host ID&lt;/strong&gt;: &lt;code&gt;30&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Reserved Addresses
&lt;/h4&gt;

&lt;p&gt;Some IPv4 addresses are reserved:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Loopback Address&lt;/strong&gt;: &lt;code&gt;127.0.0.1&lt;/code&gt; (used for testing where your device acts as both client and server).&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Packets in IPv4
&lt;/h4&gt;

&lt;p&gt;Packets contain headers of 20 bytes, which include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;IP version&lt;/strong&gt;, &lt;strong&gt;total length&lt;/strong&gt;, &lt;strong&gt;identification number&lt;/strong&gt;, &lt;strong&gt;flags&lt;/strong&gt;, &lt;strong&gt;protocols&lt;/strong&gt;, &lt;strong&gt;checksums&lt;/strong&gt;, &lt;strong&gt;addresses&lt;/strong&gt;, and &lt;strong&gt;Time To Live (TTL)&lt;/strong&gt;.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The TTL ensures packets do not hop indefinitely by limiting their lifespan.You can check this by using the ping command.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2F7zzybf9n36wqxoqo4dzk.png" class="article-body-image-wrapper"&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%2Farticles%2F7zzybf9n36wqxoqo4dzk.png" alt="TTL" width="681" height="61"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  IPv6
&lt;/h3&gt;

&lt;p&gt;IPv6 provides a &lt;strong&gt;128-bit address&lt;/strong&gt;, significantly larger than IPv4’s &lt;strong&gt;32-bit address&lt;/strong&gt;. However, IPv6 adoption has been slow due to certain drawbacks.&lt;/p&gt;

&lt;h4&gt;
  
  
  Cons of IPv6
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Not backward compatible&lt;/strong&gt;: IPv4 devices cannot communicate with IPv6 networks.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;High cost&lt;/strong&gt;: ISPs require significant hardware upgrades to support IPv6.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  IPv6 Format
&lt;/h4&gt;

&lt;p&gt;IPv6 addresses are in the format &lt;code&gt;X.X.X.X.X.X.X.X&lt;/code&gt;, where each &lt;code&gt;X&lt;/code&gt; is a 16-bit hexadecimal number.&lt;/p&gt;

&lt;h2&gt;
  
  
  Middleboxes
&lt;/h2&gt;

&lt;p&gt;Apart from end systems and routers, &lt;strong&gt;middleboxes&lt;/strong&gt; also interact with IP packets. They can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Allow or reject packets.&lt;/li&gt;
&lt;li&gt;Modify packets.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Firewalls
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Firewalls&lt;/strong&gt; are middleboxes that act as filters:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Global Internet Firewalls&lt;/strong&gt;: Block untrusted IP packets.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local Network Firewalls&lt;/strong&gt;: Protect internal networks and modify packets (e.g., changing port numbers).&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Network Address Translation (NAT)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Network address translation (NAT)&lt;/strong&gt; is a method of mapping an IP address space into another by modifying network address information in the &lt;strong&gt;IP header&lt;/strong&gt; of packets while they are in transit across a traffic routing device.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fmfzeywx7oa00hu351fp9.png" class="article-body-image-wrapper"&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%2Farticles%2Fmfzeywx7oa00hu351fp9.png" alt="NAT" width="684" height="317"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That’s all for this part of the series. Stay tuned for the next part, where we’ll explore more exciting networking concepts!&lt;/p&gt;

&lt;p&gt;Follow me on &lt;a href="https://www.linkedin.com/in/vigneshj-" rel="noopener noreferrer"&gt;Linkedin&lt;/a&gt; | &lt;a href="https://github.com/Vignesh025" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; | &lt;a href="https://x.com/vigneshtwt_" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>networking</category>
      <category>beginners</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>In-Depth Guide to the Transport Layer: Understanding TCP and UDP Protocols</title>
      <dc:creator>Vignesh J</dc:creator>
      <pubDate>Wed, 04 Dec 2024 10:30:00 +0000</pubDate>
      <link>https://dev.to/vignesh-j/understanding-the-transport-layer-and-its-protocols-5g90</link>
      <guid>https://dev.to/vignesh-j/understanding-the-transport-layer-and-its-protocols-5g90</guid>
      <description>&lt;p&gt;This is the sixth part of the computer networking series. Check out the previous parts if you haven’t! In this post, we’ll dive into the &lt;strong&gt;Transport Layer&lt;/strong&gt; and its protocols: &lt;strong&gt;TCP&lt;/strong&gt; and &lt;strong&gt;UDP&lt;/strong&gt;.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
What Is the Transport Layer?
&lt;/li&gt;
&lt;li&gt;
How Does the Transport Layer Work?

&lt;ul&gt;
&lt;li&gt;
Data Transmission
&lt;/li&gt;
&lt;li&gt;
Congestion Control
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
Ensuring Data Integrity

&lt;ul&gt;
&lt;li&gt;
Checksums
&lt;/li&gt;
&lt;li&gt;
Timers
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
Transport Layer Protocols

&lt;ul&gt;
&lt;li&gt;
User Datagram Protocol (UDP)
&lt;/li&gt;
&lt;li&gt;
Transmission Control Protocol (TCP)
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
TCP’s 3-Way Handshake
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What Is the Transport Layer?
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Transport Layer&lt;/strong&gt; plays a crucial role in moving data between applications and networks.  &lt;/p&gt;

&lt;h3&gt;
  
  
  Example
&lt;/h3&gt;

&lt;p&gt;Imagine texting your friend on WhatsApp:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;Network Layer&lt;/strong&gt; ensures your message reaches your friend’s device.
&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;Transport Layer&lt;/strong&gt; ensures the data moves from the WhatsApp app on your device to the network, and then from the network to WhatsApp on your friend’s device.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How Does the Transport Layer Work?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Data Transmission
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Packets:&lt;/strong&gt; Data is divided into packets for transmission.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiplexing:&lt;/strong&gt; The transport layer sends packets to the network using a multiplexer.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Demultiplexing:&lt;/strong&gt; It receives packets from the network and sends them to the correct application.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Port Numbers:&lt;/strong&gt; The transport layer attaches port numbers to packets for identification.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Flwbl14y2madwn68vy53e.png" class="article-body-image-wrapper"&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%2Farticles%2Flwbl14y2madwn68vy53e.png" alt="Data transmission" width="639" height="242"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Congestion Control
&lt;/h3&gt;

&lt;p&gt;The transport layer monitors network traffic to prevent congestion.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Ensuring Data Integrity
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Checksums
&lt;/h3&gt;

&lt;p&gt;Checksums help detect corruption during data transfer.  &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The sender calculates a checksum using an algorithm and sends it along with the data.
&lt;/li&gt;
&lt;li&gt;The receiver calculates a checksum for the received data.
&lt;/li&gt;
&lt;li&gt;If the checksums match, the data is intact. If not, the data is corrupted.
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Timers
&lt;/h3&gt;

&lt;p&gt;Timers ensure data delivery:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When a packet is sent, a timer starts.
&lt;/li&gt;
&lt;li&gt;If no acknowledgment (ACK) is received before the timer expires, the sender knows the data didn’t arrive and resends it.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sequence Numbers:&lt;/strong&gt; Prevent duplicate packets from causing confusion.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Transport Layer Protocols
&lt;/h2&gt;

&lt;p&gt;The Transport Layer has two main protocols:  &lt;/p&gt;

&lt;h3&gt;
  
  
  1. User Datagram Protocol (UDP)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Unreliable:&lt;/strong&gt; Data may or may not be delivered.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Connectionless:&lt;/strong&gt; It doesn’t establish a connection before sending data.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Error Handling:&lt;/strong&gt; UDP uses checksums but doesn’t handle errors—it simply discards corrupted packets.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Speed:&lt;/strong&gt; It’s faster because it doesn’t check for delivery or errors.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Frggqo0owepe5vm4331y2.gif" class="article-body-image-wrapper"&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%2Farticles%2Frggqo0owepe5vm4331y2.gif" alt="UDP" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Applications of UDP
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Video conferencing (e.g., Zoom, Teams)
&lt;/li&gt;
&lt;li&gt;DNS (Domain Name System)
&lt;/li&gt;
&lt;li&gt;Online gaming
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Transmission Control Protocol (TCP)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reliable:&lt;/strong&gt; Ensures data is delivered without errors.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Connection-Oriented:&lt;/strong&gt; Data is sent only after a connection is established.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Order Preservation:&lt;/strong&gt; Ensures packets arrive in the correct order.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Error and Congestion Control:&lt;/strong&gt; Checks for errors and manages network congestion.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Full Duplex:&lt;/strong&gt; Data can be sent and received simultaneously.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fen1nm4y2ke9hh4k6zzi7.gif" class="article-body-image-wrapper"&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%2Farticles%2Fen1nm4y2ke9hh4k6zzi7.gif" alt="TCP" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  How TCP Works
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Segmentation:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;TCP divides large chunks of data into smaller segments, adding headers and checksums.
&lt;/li&gt;
&lt;li&gt;At the receiver’s end, it reassembles segments into the original data.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Features:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Error control
&lt;/li&gt;
&lt;li&gt;Congestion control
&lt;/li&gt;
&lt;li&gt;Sequence numbers to maintain order
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  TCP’s 3-Way Handshake
&lt;/h3&gt;

&lt;p&gt;The &lt;strong&gt;3-way handshake&lt;/strong&gt; is a process to establish a TCP connection.  &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;SYN:&lt;/strong&gt; The client sends a connection request with:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;synchronization (SYN) flag&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;random sequence number&lt;/strong&gt; for security
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;SYN-ACK:&lt;/strong&gt; The server responds with:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;SYN flag&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;An &lt;strong&gt;acknowledgment (ACK) flag&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;A new sequence number and an acknowledgment number (client's sequence number + 1)
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;ACK:&lt;/strong&gt; The client sends:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An &lt;strong&gt;ACK flag&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Its updated sequence and acknowledgment numbers
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once this process is complete, a reliable connection is established.  &lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2F2f70t4f2r5cukcomw8oq.png" class="article-body-image-wrapper"&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%2Farticles%2F2f70t4f2r5cukcomw8oq.png" alt="3-way" width="377" height="321"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This wraps up the &lt;strong&gt;Transport Layer&lt;/strong&gt; and its protocols. Stay tuned for the next part, where we’ll dive deeper into more networking concepts!  &lt;/p&gt;

&lt;p&gt;Follow me on &lt;a href="https://www.linkedin.com/in/vigneshj-" rel="noopener noreferrer"&gt;Linkedin&lt;/a&gt; | &lt;a href="https://github.com/Vignesh025" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; | &lt;a href="https://x.com/vigneshtwt_" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>networking</category>
      <category>beginners</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>Understanding HTTP, Cookies, Email Protocols, and DNS: A Guide to Key Internet Technologies</title>
      <dc:creator>Vignesh J</dc:creator>
      <pubDate>Sat, 30 Nov 2024 10:30:00 +0000</pubDate>
      <link>https://dev.to/vignesh-j/understanding-http-cookies-email-protocols-and-dns-a-guide-to-key-internet-technologies-45a</link>
      <guid>https://dev.to/vignesh-j/understanding-http-cookies-email-protocols-and-dns-a-guide-to-key-internet-technologies-45a</guid>
      <description>&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;This is the fifth part of the computer networking series. If you haven't read the previous parts, make sure to check them out. In this post, we'll discuss the &lt;strong&gt;HTTP protocol&lt;/strong&gt;, &lt;strong&gt;Cookies&lt;/strong&gt;, &lt;strong&gt;how email works&lt;/strong&gt;, and the &lt;strong&gt;Domain Name System (DNS)&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Table of Contents
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  Introduction
&lt;/li&gt;
&lt;li&gt;  HTTP

&lt;ul&gt;
&lt;li&gt;  HTTP Methods
&lt;/li&gt;
&lt;li&gt;  Error/Status Codes
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  Cookies

&lt;ul&gt;
&lt;li&gt;  Third-Party Cookies
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  How Email Works

&lt;ul&gt;
&lt;li&gt;  SMTP
&lt;/li&gt;
&lt;li&gt;  POP
&lt;/li&gt;
&lt;li&gt;  IMAP
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  Domain Name System (DNS)
&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  HTTP
&lt;/h3&gt;

&lt;p&gt;HTTP (HyperText Transfer Protocol) is a &lt;strong&gt;client-server protocol&lt;/strong&gt; that defines how data is requested and sent between clients and servers.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  When a client makes a request to the server, it's called an &lt;strong&gt;HTTP request&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;  When the server sends back data to the client, it's called an &lt;strong&gt;HTTP response&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Ftalr9rna7pmbdpb36as8.png" class="article-body-image-wrapper"&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%2Farticles%2Ftalr9rna7pmbdpb36as8.png" alt="HTTP" width="660" height="374"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;HTTP operates at the &lt;strong&gt;application layer&lt;/strong&gt; of the OSI model and uses &lt;strong&gt;TCP&lt;/strong&gt; to ensure reliable data transmission.&lt;/p&gt;

&lt;p&gt;HTTP is &lt;strong&gt;stateless&lt;/strong&gt;, meaning the server doesn't store any information about the client by default.&lt;/p&gt;

&lt;h4&gt;
  
  
  HTTP Methods
&lt;/h4&gt;

&lt;p&gt;HTTP methods indicate the action the server should take in response to a request. The most common methods are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;GET&lt;/strong&gt;: Requests data from the server.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;POST&lt;/strong&gt;: Sends data to the server.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;PUT&lt;/strong&gt;: Replaces the current resource with the provided data.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;DELETE&lt;/strong&gt;: Deletes data on the server.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Error/Status Codes
&lt;/h4&gt;

&lt;p&gt;Status codes inform the client about the result of their request.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;200&lt;/strong&gt;: Request was successful.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;404&lt;/strong&gt;: Resource not found.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;400&lt;/strong&gt;: Bad request.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;500&lt;/strong&gt;: Internal server error.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;1XX&lt;/strong&gt;: Informational responses.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;2XX&lt;/strong&gt;: Success codes.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;3XX&lt;/strong&gt;: Redirection messages.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;4XX&lt;/strong&gt;: Client errors.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;5XX&lt;/strong&gt;: Server errors.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Cookies
&lt;/h3&gt;

&lt;p&gt;Cookies are &lt;strong&gt;unique strings&lt;/strong&gt; stored on a client's browser by a website to track user sessions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  When you visit a webpage for the first time, a cookie is set.&lt;/li&gt;
&lt;li&gt;  On subsequent visits, the cookie is sent with the request header to maintain session states.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Third-Party Cookies
&lt;/h4&gt;

&lt;p&gt;Third-party cookies are created by websites other than the one you're visiting. They are used to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Track browsing history.&lt;/li&gt;
&lt;li&gt;  Personalize ads and services.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How Email Works
&lt;/h3&gt;

&lt;p&gt;Email communication uses &lt;strong&gt;application layer protocols&lt;/strong&gt; like &lt;strong&gt;SMTP&lt;/strong&gt;, &lt;strong&gt;POP&lt;/strong&gt;, and &lt;strong&gt;IMAP&lt;/strong&gt;, with &lt;strong&gt;TCP&lt;/strong&gt; ensuring reliable transport.&lt;/p&gt;

&lt;h4&gt;
  
  
  SMTP
&lt;/h4&gt;

&lt;p&gt;SMTP (Simple Mail Transfer Protocol) handles the sending of emails.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; The sender's SMTP server connects to the receiver's SMTP server.&lt;/li&gt;
&lt;li&gt; After establishing a connection, the email is transferred.&lt;/li&gt;
&lt;li&gt; For emails within the same domain, no external connection is needed.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2F5jztegb517gcse7toiu4.gif" class="article-body-image-wrapper"&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%2Farticles%2F5jztegb517gcse7toiu4.gif" alt="SMTP" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Command Example&lt;/strong&gt;:&lt;br&gt;
To find SMTP servers:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nslookup -type=mx gmail.com

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

&lt;/div&gt;



&lt;h4&gt;
  
  
  POP
&lt;/h4&gt;

&lt;p&gt;POP (Post Office Protocol) retrieves emails from the server.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  The client authorizes with credentials (email ID and password).&lt;/li&gt;
&lt;li&gt;  Emails are downloaded to the client.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fiaqh8zpdpx38fopn0q6x.png" class="article-body-image-wrapper"&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%2Farticles%2Fiaqh8zpdpx38fopn0q6x.png" alt="POP" width="550" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  IMAP
&lt;/h4&gt;

&lt;p&gt;IMAP (Internet Message Access Protocol) enables viewing emails on multiple devices by keeping emails synchronized with the server.&lt;/p&gt;

&lt;h3&gt;
  
  
  Domain Name System (DNS)
&lt;/h3&gt;

&lt;p&gt;The DNS translates &lt;strong&gt;domain names&lt;/strong&gt; into &lt;strong&gt;IP addresses&lt;/strong&gt;, acting as the internet's directory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;:&lt;br&gt;
When you type &lt;code&gt;google.com&lt;/code&gt;, the DNS resolves it to an IP address to connect your device to the server hosting Google.&lt;/p&gt;

&lt;h4&gt;
  
  
  Domain Hierarchy
&lt;/h4&gt;

&lt;p&gt;For &lt;code&gt;mail.google.com&lt;/code&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;code&gt;.com&lt;/code&gt; → Top-Level Domain.&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;google&lt;/code&gt; → Second-Level Domain.&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;mail&lt;/code&gt; → Subdomain.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fszh33vm8nyguql6nhve5.png" class="article-body-image-wrapper"&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%2Farticles%2Fszh33vm8nyguql6nhve5.png" alt="DNS Hierarchy" width="692" height="285"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DNS Lookup Process&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; The browser first checks the local cache for the domain's IP address.&lt;/li&gt;
&lt;li&gt; If not found, it queries the local DNS (e.g., your ISP's DNS).&lt;/li&gt;
&lt;li&gt; If still unresolved, the request moves to root servers, top-level domains, and authoritative DNS servers to find the IP address.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Top-Level Domains (TLDs)&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;code&gt;.com&lt;/code&gt; → Commercial.&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;.edu&lt;/code&gt; → Education.&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;.in&lt;/code&gt; → Country-specific.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The DNS infrastructure is managed by &lt;strong&gt;ICANN&lt;/strong&gt; (Internet Corporation for Assigned Names and Numbers).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Useful Resource&lt;/strong&gt;:&lt;br&gt;
To explore root DNS servers, visit &lt;a href="https://root-servers.org/" rel="noopener noreferrer"&gt;root-servers.org&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Final Words
&lt;/h3&gt;

&lt;p&gt;This concludes the fifth part of the computer networking series. We've covered HTTP, Cookies, Email communication, and DNS. Stay tuned for the next part, where we'll dive deeper into more networking concepts!&lt;/p&gt;

&lt;p&gt;Follow me on &lt;a href="https://www.linkedin.com/in/vigneshj-" rel="noopener noreferrer"&gt;Linkedin&lt;/a&gt; | &lt;a href="https://github.com/Vignesh025" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; | &lt;a href="https://x.com/vigneshtwt_" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>networking</category>
      <category>beginners</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>Comprehensive Guide to the OSI Model, TCP/IP Model, and Application Layer</title>
      <dc:creator>Vignesh J</dc:creator>
      <pubDate>Tue, 26 Nov 2024 13:29:28 +0000</pubDate>
      <link>https://dev.to/vignesh-j/overview-of-osi-model-tcpip-model-and-application-layer-2mcc</link>
      <guid>https://dev.to/vignesh-j/overview-of-osi-model-tcpip-model-and-application-layer-2mcc</guid>
      <description>&lt;p&gt;This is the &lt;strong&gt;fourth&lt;/strong&gt; part of the Computer Networking series. Make sure to check the previous parts if you haven't. In this post, we’ll discuss an overview of the OSI model, TCP/IP model, and the Application Layer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
Structure of Network

&lt;ul&gt;
&lt;li&gt;
OSI Model
&lt;/li&gt;
&lt;li&gt;
TCP/IP Model
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
Application Layer

&lt;ul&gt;
&lt;li&gt;
Client-Server Architecture
&lt;/li&gt;
&lt;li&gt;
Peer-to-Peer Architecture
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
Common Protocols in Networking
&lt;/li&gt;
&lt;li&gt;
Important Networking Terminologies
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Structure of Network
&lt;/h2&gt;

&lt;p&gt;To understand network communication and data transfer, we rely on two fundamental models:  &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;OSI Model&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TCP/IP Model&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  OSI Model
&lt;/h3&gt;

&lt;p&gt;The &lt;strong&gt;Open Systems Interconnection (OSI)&lt;/strong&gt; model has seven layers:  &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Application Layer
&lt;/li&gt;
&lt;li&gt;Presentation Layer
&lt;/li&gt;
&lt;li&gt;Session Layer
&lt;/li&gt;
&lt;li&gt;Transport Layer
&lt;/li&gt;
&lt;li&gt;Network Layer
&lt;/li&gt;
&lt;li&gt;Data Link Layer
&lt;/li&gt;
&lt;li&gt;Physical Layer
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each layer has its own responsibilities and interacts with the layers directly above and below it. Each layer adds specific information to ensure the data reaches its destination correctly, and these steps are reversed upon arrival.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fp49504gkugtwzf4lw2as.png" class="article-body-image-wrapper"&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%2Farticles%2Fp49504gkugtwzf4lw2as.png" alt="OSI model" width="666" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  TCP/IP Model
&lt;/h3&gt;

&lt;p&gt;The &lt;strong&gt;Transmission Control Protocol/Internet Protocol (TCP/IP)&lt;/strong&gt; model has four layers:  &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Application Layer
&lt;/li&gt;
&lt;li&gt;Transport Layer
&lt;/li&gt;
&lt;li&gt;Network Layer
&lt;/li&gt;
&lt;li&gt;Network Access Layer
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The &lt;strong&gt;Application Layer&lt;/strong&gt; in the TCP/IP model combines the Application, Presentation, and Session layers of the OSI model. The &lt;strong&gt;Network Access Layer&lt;/strong&gt; in the TCP/IP model combines the Data Link and Physical layers of the OSI model.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2F3zgnhhb3lcncd2ms7m7t.png" class="article-body-image-wrapper"&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%2Farticles%2F3zgnhhb3lcncd2ms7m7t.png" alt="TCP/IP" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Application Layer
&lt;/h2&gt;

&lt;p&gt;The Application Layer is where users interact with applications like web browsers, chat applications, and more. This layer resides on our devices and provides the interface for communication.  &lt;/p&gt;

&lt;h3&gt;
  
  
  Architectures in the Application Layer
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Client-Server Architecture&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Peer-to-Peer Architecture&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  Client-Server Architecture
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;The application has two parts: the &lt;strong&gt;client&lt;/strong&gt; and the &lt;strong&gt;server&lt;/strong&gt;, which communicate with each other as processes.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clients&lt;/strong&gt; are users consuming resources. For example, when you make a request to Google, you act as a client.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Servers&lt;/strong&gt; control the websites and resources you access.
&lt;/li&gt;
&lt;li&gt;A collection of servers forms &lt;strong&gt;data centers&lt;/strong&gt;, which host services, maintain static IP addresses, and require high internet speeds for efficient operation.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Flngpdpuz7u7ahnnpdtmm.png" class="article-body-image-wrapper"&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%2Farticles%2Flngpdpuz7u7ahnnpdtmm.png" alt="Client server" width="800" height="323"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Peer-to-Peer Architecture
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;There’s no dedicated server in P2P architecture. Devices communicate directly with each other.
&lt;/li&gt;
&lt;li&gt;Each device acts as both a &lt;strong&gt;client&lt;/strong&gt; and a &lt;strong&gt;server&lt;/strong&gt;, making this architecture highly scalable.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2F7c7x13o2udcpih1z1rcq.png" class="article-body-image-wrapper"&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%2Farticles%2F7c7x13o2udcpih1z1rcq.png" alt="peer-to-peer" width="567" height="341"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Common Protocols in Networking
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;HTTP (HyperText Transfer Protocol):&lt;/strong&gt; Used for browsing websites.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DHCP (Dynamic Host Configuration Protocol):&lt;/strong&gt; Allocates IP addresses dynamically.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FTP (File Transfer Protocol):&lt;/strong&gt; Transfers files between devices.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SMTP (Simple Mail Transfer Protocol):&lt;/strong&gt; Sends emails.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;POP3 &amp;amp; IMAP:&lt;/strong&gt; Receive emails.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SSH (Secure Shell):&lt;/strong&gt; Securely connects to remote devices.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VNC (Virtual Network Computing):&lt;/strong&gt; Enables remote desktop sharing.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Telnet:&lt;/strong&gt; Allows connecting to remote hosts/devices using a Telnet client (port 23).
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UDP (User Datagram Protocol):&lt;/strong&gt; A lightweight, stateless connection protocol.
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Important Networking Terminologies
&lt;/h2&gt;

&lt;p&gt;Let’s explain networking terms with an example: WhatsApp.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Program:&lt;/strong&gt; The application itself (e.g., WhatsApp).
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Process:&lt;/strong&gt; A running instance or a feature of the program. For instance, sending a message or recording a video.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thread:&lt;/strong&gt; A lightweight version of a process. For example, when you record a video, a thread handles the camera function.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Socket:&lt;/strong&gt; The interface between a process and the internet.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ports:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;IP addresses&lt;/strong&gt; identify the device making the request.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ports&lt;/strong&gt; identify the application on the device.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  What about multiple processes?
&lt;/h3&gt;

&lt;p&gt;If multiple processes of the same application are running (e.g., multiple Chrome tabs), &lt;strong&gt;ephemeral ports&lt;/strong&gt; help distinguish which specific process made the request. These are temporary network endpoints that facilitate communication between client and server applications.&lt;/p&gt;

&lt;p&gt;This concludes Part 4. Stay tuned for the next part, where we’ll explore more aspects of computer networking!&lt;/p&gt;

&lt;p&gt;Follow me on &lt;a href="https://www.linkedin.com/in/vigneshj-" rel="noopener noreferrer"&gt;Linkedin&lt;/a&gt; | &lt;a href="https://github.com/Vignesh025" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; | &lt;a href="https://x.com/vigneshtwt_" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>computernetworking</category>
      <category>beginners</category>
      <category>interviewprep</category>
    </item>
    <item>
      <title>Networking Devices Explained: A Beginner's Guide to Routers, Switches, Hubs, and More</title>
      <dc:creator>Vignesh J</dc:creator>
      <pubDate>Fri, 15 Nov 2024 05:42:15 +0000</pubDate>
      <link>https://dev.to/vignesh-j/computer-networking-full-course-5c80</link>
      <guid>https://dev.to/vignesh-j/computer-networking-full-course-5c80</guid>
      <description>&lt;p&gt;This is the &lt;strong&gt;third&lt;/strong&gt; part of the Computer Networking series! If you haven't checked out the earlier parts, make sure to do so. In this post, we’ll explore various networking devices.&lt;/p&gt;

&lt;p&gt;Networking devices are essential components that allow devices to communicate within a network. They come in various forms and serve different purposes, such as extending network range, converting data formats, or managing traffic.&lt;/p&gt;

&lt;h2&gt;
  
  
  Types of Networking Devices
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Internal Devices&lt;/strong&gt;: Found inside desktops, laptops, or mobile devices, such as Ethernet, Wi-Fi cards, and Bluetooth. Disconnecting these devices affects only the specific device, as they are not shared among network users.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;External Devices&lt;/strong&gt;: Shared devices that multiple users in a network use, either directly or indirectly. Examples include routers, modems, and hubs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Portable Devices&lt;/strong&gt;: Battery-powered devices that create temporary networks, such as Wi-Fi hotspots. For example, you can create a hotspot with your mobile device to share your internet connection with others.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  List of Networking Devices
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Internal Devices
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Network Interface Controller (NIC)&lt;/li&gt;
&lt;li&gt;Wireless Network Interface Controller&lt;/li&gt;
&lt;li&gt;Bluetooth Dongle&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  External Devices
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Hub&lt;/li&gt;
&lt;li&gt;Switch&lt;/li&gt;
&lt;li&gt;Router&lt;/li&gt;
&lt;li&gt;Brouter&lt;/li&gt;
&lt;li&gt;Bridge&lt;/li&gt;
&lt;li&gt;Repeater&lt;/li&gt;
&lt;li&gt;Modem&lt;/li&gt;
&lt;li&gt;Gateway&lt;/li&gt;
&lt;li&gt;Wi-Fi Routers / Broadband Routers&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Portable Devices
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Wi-Fi Hotspot&lt;/li&gt;
&lt;li&gt;Portable Modem Dongle&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Detailed Overview of Key Networking Devices
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Repeater
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;Repeater&lt;/strong&gt; extends the range of a signal to cover longer distances. It’s an electronic device that receives and retransmits signals, useful for both wired media (e.g., telephone line, fiber optic cable) and wireless media (e.g., satellite, microwave, Wi-Fi, LTE).&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fxenxji7sp8y91kz4rtt1.png" class="article-body-image-wrapper"&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%2Farticles%2Fxenxji7sp8y91kz4rtt1.png" alt="Repeater" width="265" height="190"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Modem
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;Modem&lt;/strong&gt; (Modulator-Demodulator) converts digital data from computers into analog signals for transmission over phone lines, and back into digital data at the receiving end. It modulates digital data into analog signals to send, and demodulates received analog signals into digital data for the receiving computer.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fgjavhaw0hdfqfbxvjrcv.jpg" class="article-body-image-wrapper"&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%2Farticles%2Fgjavhaw0hdfqfbxvjrcv.jpg" alt="Modem" width="640" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Gateway
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;Gateway&lt;/strong&gt; is a software-based device that serves as a "gate" between two networks, often found in routers with addresses like &lt;code&gt;192.168.0.1&lt;/code&gt; or &lt;code&gt;192.168.1.1&lt;/code&gt;. A gateway enables traffic flow between networks, often acting as a firewall or router, while protecting nodes within the network.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2F0cjd8ied2cce0m12o4ah.gif" class="article-body-image-wrapper"&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%2Farticles%2F0cjd8ied2cce0m12o4ah.gif" alt="Gateway" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Hub
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;Hub&lt;/strong&gt; is a basic networking device that connects multiple devices in a LAN (Local Area Network). It acts as a point of connection, allowing data to be sent to all connected devices simultaneously, though it cannot differentiate data destinations.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fvc5y5uzega8wgqmo0prg.jpg" class="article-body-image-wrapper"&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%2Farticles%2Fvc5y5uzega8wgqmo0prg.jpg" alt="Hub" width="800" height="493"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Switch
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;Switch&lt;/strong&gt; is a network controller that enables devices to communicate more efficiently within a network. Switches connect computers, printers, and servers in buildings or campuses, directing data to its intended destination rather than broadcasting it to all devices.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fwjqzvvo36y9mevcsiczb.png" class="article-body-image-wrapper"&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%2Farticles%2Fwjqzvvo36y9mevcsiczb.png" alt="Switch" width="371" height="136"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Router
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;Router&lt;/strong&gt; directs data packets between networks, finding the best path to reach the intended device on another LAN. Routers connect different networks, manage traffic, and send data across the best available paths.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fap0znuf4e3bka7xuzyt2.jpg" class="article-body-image-wrapper"&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%2Farticles%2Fap0znuf4e3bka7xuzyt2.jpg" alt="Router" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Bridge
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;Bridge&lt;/strong&gt; is typically used in LANs to interconnect networks using the same protocol. It forwards data only when it knows the destination node's MAC address. While useful, bridges can potentially flood the network if they are unable to locate the destination node.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fuf00c8gt7c90famujc0s.png" class="article-body-image-wrapper"&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%2Farticles%2Fuf00c8gt7c90famujc0s.png" alt="Bridge" width="582" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Brouter
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;Brouter&lt;/strong&gt; (Bridging Router) combines features of both bridges and routers. Operating at the data link layer, it can filter LAN traffic and route data between different networks. It acts as a router by directing packets and as a bridge by filtering LAN traffic.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2F7z46lipa777mdzs2qv8b.jpg" class="article-body-image-wrapper"&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%2Farticles%2F7z46lipa777mdzs2qv8b.jpg" alt="Brouter" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Feel free to connect with me and check out my other work:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;LinkedIn: &lt;a href="//www.linkedin.com/in/vigneshj-"&gt;Vignesh J&lt;/a&gt;&lt;/em&gt;&lt;br&gt;
&lt;em&gt;GitHub: &lt;a href="https://github.com/Vignesh025" rel="noopener noreferrer"&gt;Vignesh025&lt;/a&gt;&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Twitter: &lt;a href="https://x.com/vigneshtwt_" rel="noopener noreferrer"&gt;vigneshtwt_&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>computernetworking</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>interviewprep</category>
    </item>
    <item>
      <title>Exploring Network Types and Topologies</title>
      <dc:creator>Vignesh J</dc:creator>
      <pubDate>Wed, 13 Nov 2024 07:01:28 +0000</pubDate>
      <link>https://dev.to/vignesh-j/computer-networking-full-course-7ap</link>
      <guid>https://dev.to/vignesh-j/computer-networking-full-course-7ap</guid>
      <description>&lt;p&gt;This is the &lt;strong&gt;second&lt;/strong&gt; part of the Computer Networking series. In this post, we’ll dive into different types of networks and explore various network topologies and their structures.&lt;/p&gt;

&lt;h2&gt;
  
  
  Personal Area Network (PAN)
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;Personal Area Network (PAN)&lt;/strong&gt; is the most basic type of computer network, designed to connect devices within a short range, typically around a single person. It allows your personal devices, like smartphones, tablets, laptops, and wearables, to communicate and share data with each other.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fc04cq2eebrokkhvpf5io.png" class="article-body-image-wrapper"&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%2Farticles%2Fc04cq2eebrokkhvpf5io.png" alt="PAN" width="800" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Local Area Network (LAN)
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;Local Area Network (LAN)&lt;/strong&gt; interconnects computers within a limited area, such as a residence, school, or university campus.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fy76kfc5s027ql3as4e8y.png" class="article-body-image-wrapper"&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%2Farticles%2Fy76kfc5s027ql3as4e8y.png" alt="LAN" width="760" height="631"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Metropolitan Area Network (MAN)
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;Metropolitan Area Network (MAN)&lt;/strong&gt; connects computers across a geographic region the size of a metropolitan area, such as a city.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2F916e0qx57u0ptw96hbj3.png" class="article-body-image-wrapper"&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%2Farticles%2F916e0qx57u0ptw96hbj3.png" alt="MAN" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Wide Area Network (WAN)
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;Wide Area Network (WAN)&lt;/strong&gt; extends over large geographic areas, such as entire countries.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fptcz7v1mhpsgt10hjjaf.png" class="article-body-image-wrapper"&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%2Farticles%2Fptcz7v1mhpsgt10hjjaf.png" alt="WAN" width="763" height="584"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In essence, multiple local area networks (LANs) connect to each other through a metropolitan area network (MAN), and several MANs are connected via a wide area network (WAN), forming the &lt;strong&gt;internet&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;These connections are established using technologies such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SONET&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Frame Relay&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Topologies
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Bus Topology
&lt;/h2&gt;

&lt;p&gt;In a &lt;strong&gt;Bus Topology&lt;/strong&gt;, devices are connected to a single backbone. If any part of the backbone fails, the entire system goes down. Only one device at a time can send information.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fjm954o0ftrngts44y0kz.png" class="article-body-image-wrapper"&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%2Farticles%2Fjm954o0ftrngts44y0kz.png" alt="BUS" width="533" height="184"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Ring Topology
&lt;/h2&gt;

&lt;p&gt;In a &lt;strong&gt;Ring Topology&lt;/strong&gt;, every system is connected in a ring-like structure, where each device communicates with the next. If one cable breaks, data transfer stops. This topology can lead to many unnecessary data transmissions.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fq5393huyqxbh2x3gr6vw.jpg" class="article-body-image-wrapper"&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%2Farticles%2Fq5393huyqxbh2x3gr6vw.jpg" alt="Ring" width="541" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Star Topology
&lt;/h2&gt;

&lt;p&gt;In a &lt;strong&gt;Star Topology&lt;/strong&gt;, there is a central device that connects to all computers. If the central device fails, the entire network goes down.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fcb868v1ie7rio4oo4fob.png" class="article-body-image-wrapper"&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%2Farticles%2Fcb868v1ie7rio4oo4fob.png" alt="Star" width="800" height="571"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Tree Topology
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Tree Topology&lt;/strong&gt; is a variation of the star topology. It has a hierarchical structure resembling a tree, with a central node (root) from which other nodes branch out.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Frr3efxckat9nbdkluy65.png" class="article-body-image-wrapper"&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%2Farticles%2Frr3efxckat9nbdkluy65.png" alt="Tree" width="701" height="351"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Mesh Topology
&lt;/h2&gt;

&lt;p&gt;In a &lt;strong&gt;Mesh Topology&lt;/strong&gt;, every device connects to every other device. This setup provides redundancy but is costly and can have scalability issues.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fwqf29wgz3ax74kv3rb97.png" class="article-body-image-wrapper"&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%2Farticles%2Fwqf29wgz3ax74kv3rb97.png" alt="Mesh" width="800" height="571"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Hybrid Topology
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Hybrid Topology&lt;/strong&gt; combines various types of topologies. It’s used when nodes are free to take different forms. They can individually use topologies like Ring or Star, or be a combination of multiple types. Hybrid Topology offers flexibility to suit different network requirements.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fy5qz50jf02b7xgei6i1f.png" class="article-body-image-wrapper"&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%2Farticles%2Fy5qz50jf02b7xgei6i1f.png" alt="Hybrid" width="617" height="546"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Feel free to connect with me and check out my other work:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;LinkedIn: &lt;a href="//www.linkedin.com/in/vigneshj-"&gt;Vignesh J&lt;/a&gt;&lt;/em&gt;&lt;br&gt;
&lt;em&gt;GitHub: &lt;a href="https://github.com/Vignesh025" rel="noopener noreferrer"&gt;Vignesh025&lt;/a&gt;&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Twitter: &lt;a href="https://x.com/vigneshtwt_" rel="noopener noreferrer"&gt;vigneshtwt_&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>computernetworking</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>interviewprep</category>
    </item>
    <item>
      <title>Introduction to Computer Networking: A Beginner's Guide to How the Internet Works</title>
      <dc:creator>Vignesh J</dc:creator>
      <pubDate>Mon, 11 Nov 2024 13:47:24 +0000</pubDate>
      <link>https://dev.to/vignesh-j/computer-networking-full-course-2nmj</link>
      <guid>https://dev.to/vignesh-j/computer-networking-full-course-2nmj</guid>
      <description>&lt;p&gt;I've recently refreshed my networking knowledge, and I often hear people saying, &lt;em&gt;"I struggled with networking questions in my interview."&lt;/em&gt; So, I thought it would be helpful to create a blog series on Computer Networking to simplify these concepts and make it easy to review them right before interviews. This is the &lt;strong&gt;first&lt;/strong&gt; and introductory part of the series, where we’ll cover the basics of networking. Let’s dive right into it!&lt;/p&gt;

&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;What is a Network?&lt;/li&gt;
&lt;li&gt;The Internet&lt;/li&gt;
&lt;li&gt;How Did It Start?&lt;/li&gt;
&lt;li&gt;Protocols&lt;/li&gt;
&lt;li&gt;World Wide Web (WWW)&lt;/li&gt;
&lt;li&gt;
IP Address

&lt;ul&gt;
&lt;li&gt;Format of an IP Address&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Port Numbers&lt;/li&gt;
&lt;li&gt;Internet Speed&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What is a Network?
&lt;/h2&gt;

&lt;p&gt;In simple terms, it's just computers connected together.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fgq18bv69walj2t78td84.jpg" class="article-body-image-wrapper"&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%2Farticles%2Fgq18bv69walj2t78td84.jpg" alt="Network" width="600" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Internet
&lt;/h2&gt;

&lt;p&gt;The internet is essentially a collection of these computer networks.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Did It Start?
&lt;/h2&gt;

&lt;p&gt;The Advanced Research Projects Agency (ARPA) initially set up networks across four locations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MIT&lt;/li&gt;
&lt;li&gt;Stanford&lt;/li&gt;
&lt;li&gt;UCLA&lt;/li&gt;
&lt;li&gt;Utah&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To enable communication between these locations, they developed ARPAnet, which used the TCP/IP protocol (we’ll discuss this in more detail later).&lt;/p&gt;

&lt;h2&gt;
  
  
  Protocols
&lt;/h2&gt;

&lt;p&gt;Protocols are the rules established by the &lt;strong&gt;Internet Society&lt;/strong&gt; on how data is sent. Examples include TCP, IP, and UDP.&lt;/p&gt;

&lt;h2&gt;
  
  
  World Wide Web (WWW)
&lt;/h2&gt;

&lt;p&gt;The World Wide Web, commonly called the web, is an information system where documents and other resources are identified by URLs. These resources can be interlinked via hyperlinks and accessed over the internet.This is the first ever &lt;a href="https://info.cern.ch/hypertext/WWW/TheProject.html" rel="noopener noreferrer"&gt;website&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  IP Address
&lt;/h2&gt;

&lt;p&gt;Every device on the internet that can communicate with others has an IP address.&lt;/p&gt;

&lt;h3&gt;
  
  
  Format of an IP Address
&lt;/h3&gt;

&lt;p&gt;An IP address is typically in the format:&lt;br&gt;
&lt;strong&gt;X.X.X.X&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Each "X" can range from 0 to 255.&lt;br&gt;&lt;br&gt;
To check the IP address of your computer, use these commands:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Windows&lt;/strong&gt;: &lt;code&gt;ipconfig&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mac and Linux&lt;/strong&gt;: &lt;code&gt;ifconfig&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You’ll come across different types of IP addresses: &lt;strong&gt;global&lt;/strong&gt; and &lt;strong&gt;local&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Global IP Address&lt;/strong&gt;: This is the IP address assigned by your Internet Service Provider (ISP) and is the same for all devices connected to that network.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local IP Address&lt;/strong&gt;: This is the unique identifier for your device within your ISP’s network.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;IP addresses are assigned using &lt;strong&gt;Dynamic Host Configuration Protocol (DHCP)&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
If you’re connected to the internet through a modem, that modem assigns IP addresses to all connected devices using DHCP.&lt;/p&gt;

&lt;p&gt;When you request data from the internet, that request goes first to your ISP, then to your modem, which uses &lt;strong&gt;Network Address Translation (NAT)&lt;/strong&gt; to decide which device made the request.&lt;/p&gt;

&lt;h2&gt;
  
  
  Port Numbers
&lt;/h2&gt;

&lt;p&gt;Now, you might wonder: even with IP addresses, how do we know which application requested the data? This is where &lt;strong&gt;port numbers&lt;/strong&gt; come in.&lt;br&gt;&lt;br&gt;
Each port number corresponds to a specific application, allowing data to reach the correct app. For example, all HTTP requests happen on port 80.&lt;/p&gt;

&lt;p&gt;Ports are 16-bit numbers and are divided into three ranges:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Well-Known Ports&lt;/strong&gt;: 0–1023&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Registered Ports&lt;/strong&gt;: 1024–49151&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dynamic or Private Ports&lt;/strong&gt;: 49152–65535&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The well-known ports are system-assigned, registered ports are for specific applications, and dynamic ports are for private use. You can check a detailed list of ports &lt;a href="https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Internet Speed
&lt;/h2&gt;

&lt;p&gt;Let’s talk about speed—not the streamer, but internet speed! A common misconception is that Mbps stands for &lt;del&gt;megabytes&lt;/del&gt; per second, but it actually means &lt;strong&gt;megabits per second&lt;/strong&gt; (the same applies to Kbps and Gbps).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;1 Mbps&lt;/strong&gt; = 1,000,000 bits per second&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s a high speed, though people often underestimate it. Wondering how data transfers at such speeds? The internet doesn’t travel through air or clouds; it moves through wires and cables across oceans and land. Check out how these cables are laid at &lt;a href="https://submarinecable.com" rel="noopener noreferrer"&gt;submarinecable.com&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Feel free to connect with me and check out my other work:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;LinkedIn: &lt;a href="//www.linkedin.com/in/vigneshj-"&gt;Vignesh J&lt;/a&gt;&lt;/em&gt;&lt;br&gt;
&lt;em&gt;GitHub (Personal): &lt;a href="https://github.com/Vignesh025" rel="noopener noreferrer"&gt;Vignesh025&lt;/a&gt;&lt;/em&gt;&lt;br&gt;
&lt;em&gt;GitHub Organization (VigneshDevHub): &lt;a href="https://github.com/VigneshDevHub" rel="noopener noreferrer"&gt;VigneshDevHub&lt;/a&gt;&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Join our Open-Source Community on Discord: &lt;a href="https://discord.com/invite/jXmmRPXpqu" rel="noopener noreferrer"&gt;VigneshDevHub&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>computernetworking</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>interviewprep</category>
    </item>
    <item>
      <title>Technical Writing Journeys: Share Your Path to Success!</title>
      <dc:creator>Vignesh J</dc:creator>
      <pubDate>Tue, 05 Nov 2024 12:08:47 +0000</pubDate>
      <link>https://dev.to/vignesh-j/technical-writing-journeys-share-your-path-to-success-3lk6</link>
      <guid>https://dev.to/vignesh-j/technical-writing-journeys-share-your-path-to-success-3lk6</guid>
      <description>&lt;p&gt;Hi everyone!&lt;/p&gt;

&lt;p&gt;I'm Vignesh, a budding writer with a passion for both technical writing and blogging. I'm eager to learn from experienced writers and improve my skills.&lt;/p&gt;

&lt;p&gt;To gain a deeper understanding of the technical writing world, I'm reaching out to the community. I'm curious about your experiences, challenges, and triumphs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you're a technical writer/blogger, I'd love to hear about your journey. Please share your insights by:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Commenting below:&lt;/strong&gt; Answer the questions directly in the comments section.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Creating a blog post about your journey:&lt;/strong&gt; Share a link to your blog post in the comments.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fnr43hu19n8olid8mvlz9.jpg" class="article-body-image-wrapper"&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%2Farticles%2Fnr43hu19n8olid8mvlz9.jpg" alt="technical writer" width="735" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here are the questions to guide your sharing:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. How did you get started in technical writing/blogging?&lt;/strong&gt; &lt;em&gt;What sparked your interest in this field?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. What resources did you find most helpful in developing your technical writing/blogging skills?&lt;/strong&gt; &lt;em&gt;Were there any specific books, courses, or mentors that significantly impacted your journey?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. What were some of the biggest challenges you faced as a technical writer/blogger?&lt;/strong&gt; &lt;em&gt;How did you overcome these obstacles?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. What advice would you give to someone who is just starting out in technical writing/blogging?&lt;/strong&gt; &lt;em&gt;What are the essential skills and qualities to cultivate?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;By sharing your experiences, you'll inspire aspiring writers like me and help shape the future of technical communication.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fuhz2o5xihtxhhroyutn2.jpg" class="article-body-image-wrapper"&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%2Farticles%2Fuhz2o5xihtxhhroyutn2.jpg" alt="community" width="736" height="766"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's connect and learn together!&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Feel free to connect with me and check out my other work:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;LinkedIn: &lt;a href="//www.linkedin.com/in/vigneshj-"&gt;Vignesh J&lt;/a&gt;&lt;/em&gt;&lt;br&gt;
&lt;em&gt;GitHub (Personal): &lt;a href="https://github.com/Vignesh025" rel="noopener noreferrer"&gt;Vignesh025&lt;/a&gt;&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Join our Open-Source Community on Discord: &lt;a href="https://discord.gg/jXmmRPXpqu" rel="noopener noreferrer"&gt;VigneshDevHub&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Looking forward to your support!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>technicalwriting</category>
      <category>careeradvice</category>
      <category>writingtips</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
