<?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>Forem: Arjun U S</title>
    <description>The latest articles on Forem by Arjun U S (@arjunumesh11).</description>
    <link>https://forem.com/arjunumesh11</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%2F453632%2F33cf247f-49c1-4273-a9fa-900f68a3dd02.jpeg</url>
      <title>Forem: Arjun U S</title>
      <link>https://forem.com/arjunumesh11</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/arjunumesh11"/>
    <language>en</language>
    <item>
      <title>🧠 Mastering LLD: A Step-by-Step Guide to Cracking Low-Level Design Questions</title>
      <dc:creator>Arjun U S</dc:creator>
      <pubDate>Sun, 25 May 2025 08:11:43 +0000</pubDate>
      <link>https://forem.com/arjunumesh11/mastering-lld-a-step-by-step-guide-to-cracking-low-level-design-questions-1n9</link>
      <guid>https://forem.com/arjunumesh11/mastering-lld-a-step-by-step-guide-to-cracking-low-level-design-questions-1n9</guid>
      <description>&lt;p&gt;Low-Level Design (LLD) interviews can be intimidating, especially if you don’t have a structured approach. Whether you’re designing a ride-hailing app, a library management system, or a file storage service, the fundamental principles remain the same.&lt;/p&gt;

&lt;p&gt;In this article, we’ll walk through a step-by-step framework to tackle LLD questions confidently. This approach combines practical techniques, widely accepted design strategies, and implementation examples to solidify your understanding.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧩 Step 1: Gather Functional Requirements
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“If you don’t understand the problem, you’ll design the wrong solution.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Before diving into classes or diagrams, take a moment to truly understand what’s being asked.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ Understand the Problem Statement
&lt;/h3&gt;

&lt;p&gt;Carefully read or listen to the requirements. Clarify any ambiguous areas. Platforms like LeetCode, Stack Overflow, and GeeksforGeeks often have helpful breakdowns of classic LLD problems.&lt;/p&gt;

&lt;h3&gt;
  
  
  📋 List Key Use Cases
&lt;/h3&gt;

&lt;p&gt;Break the system down into actionable tasks. For example, in a library system:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Borrow a book
&lt;/li&gt;
&lt;li&gt;Return a book
&lt;/li&gt;
&lt;li&gt;Search for a book
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ❓ Ask Clarifying Questions
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;What are the performance constraints?
&lt;/li&gt;
&lt;li&gt;Do users have roles?
&lt;/li&gt;
&lt;li&gt;Can a book be reserved?
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🏗️ Step 2: Identify Key Entities
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Think in terms of nouns — they often become your classes.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;With requirements in hand, identify the core components that will bring your system to life.&lt;/p&gt;

&lt;h3&gt;
  
  
  📦 Think About Core Components
&lt;/h3&gt;

&lt;p&gt;In a library system, possible entities might be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Book&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Member&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Library&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🧠 Define Responsibilities
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Book&lt;/strong&gt; — has title, author, status
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Member&lt;/strong&gt; — can borrow/return books
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Library&lt;/strong&gt; — manages collections and operations
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔁 Consider Interactions
&lt;/h3&gt;

&lt;p&gt;How do these entities work together to support the use cases?&lt;/p&gt;




&lt;h2&gt;
  
  
  🔗 Step 3: Establish Relationships Between Entities
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“A system is more than just its parts — it’s how those parts relate.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Define how the entities connect and interact.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔄 Determine Associations
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Aggregation&lt;/strong&gt;: A &lt;code&gt;Library&lt;/code&gt; has many &lt;code&gt;Books&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Composition&lt;/strong&gt;: A &lt;code&gt;Book&lt;/code&gt; has an &lt;code&gt;Author&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inheritance&lt;/strong&gt;: &lt;code&gt;PremiumMember&lt;/code&gt; might inherit from &lt;code&gt;Member&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔢 Define Cardinality
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;code&gt;Member&lt;/code&gt; can borrow multiple &lt;code&gt;Books&lt;/code&gt; (one-to-many)
&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;Book&lt;/code&gt; might have multiple &lt;code&gt;Authors&lt;/code&gt; (many-to-many)
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧰 Step 4: Apply Design Patterns
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Design patterns are tried-and-tested blueprints to solve common design problems.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In interviews, design patterns are not just optional — they’re powerful tools to showcase your understanding of scalable and maintainable code.&lt;/p&gt;

&lt;p&gt;When you're under time pressure, it's often hard to visualize every relationship between classes from scratch. But if you can recognize familiar sub-problems and map them to known design patterns, you gain two major advantages:&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ Clarity in Communication
&lt;/h3&gt;

&lt;p&gt;Instead of explaining complex logic, you can say, &lt;em&gt;“This part uses the Factory pattern,”&lt;/em&gt; which instantly makes your intent clear.&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚡ Speed in Implementation
&lt;/h3&gt;

&lt;p&gt;Solving a problem using a known pattern allows you to build faster and with more confidence.&lt;/p&gt;

&lt;h4&gt;
  
  
  🛠️ Common Patterns to Know:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Factory&lt;/strong&gt;: Great for object creation without exposing instantiation logic.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Singleton&lt;/strong&gt;: Use when a class should have only one instance (e.g., configuration manager).
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Observer&lt;/strong&gt;: When one object needs to notify others about changes.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Strategy&lt;/strong&gt;: Encapsulate different behaviors (e.g., different book return policies).
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  💬 Explain Your Choices
&lt;/h3&gt;

&lt;p&gt;Always be ready to justify why a pattern fits your case.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 Pro Tip: Pattern Mapping Comes with Practice
&lt;/h2&gt;

&lt;p&gt;The more LLD problems you solve, the faster you'll get at mapping requirements to patterns. Start identifying common scenarios like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🛎 Need for notifications? Use &lt;strong&gt;Observer / Pub-Sub&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🔒 Need shared state or consistency? Use &lt;strong&gt;Singleton&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🧱 Need object creation logic? Use &lt;strong&gt;Factory&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🧠 Need flexible behavior? Use &lt;strong&gt;Strategy&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Practicing a wide range of design problems will sharpen your instinct to recognize these patterns early and apply them with confidence during interviews.&lt;/p&gt;




&lt;h2&gt;
  
  
  📐 Step 5: Construct the Class Diagram
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“A clear diagram speaks volumes.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is where your thoughts begin to materialize.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✏️ Define Class Attributes and Methods
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Book&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;string&lt;/span&gt; &lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;string&lt;/span&gt; &lt;span class="n"&gt;author&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kt"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;isAvailable&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nl"&gt;public:&lt;/span&gt;
    &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;borrow&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;returnBook&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🧭 Draw Relationships
&lt;/h3&gt;

&lt;p&gt;Use UML notations to show:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Inheritance&lt;/strong&gt; →
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Composition&lt;/strong&gt; ◆
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Association&lt;/strong&gt; --&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ Validate Against Requirements
&lt;/h3&gt;

&lt;p&gt;Every use case from Step 1 should be supported by your diagram.&lt;/p&gt;




&lt;h2&gt;
  
  
  💻 Step 6: Write the Code
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“From concept to code — time to build.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Turn your diagram into real, working code.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔨 Translate Classes
&lt;/h3&gt;

&lt;p&gt;Start writing class definitions, keeping responsibilities and interactions in mind.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔁 Test with Sample Scenarios
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
cpp
Member m("Alice");
Book b("1984", "Orwell");
m.borrowBook(b);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>interview</category>
      <category>lld</category>
      <category>designpatterns</category>
    </item>
    <item>
      <title>Broadcast Domain Vs Collision Domain</title>
      <dc:creator>Arjun U S</dc:creator>
      <pubDate>Sun, 23 Aug 2020 14:14:10 +0000</pubDate>
      <link>https://forem.com/arjunumesh11/broadcast-domain-vs-collision-domain-2a39</link>
      <guid>https://forem.com/arjunumesh11/broadcast-domain-vs-collision-domain-2a39</guid>
      <description>&lt;h1&gt;
  
  
  Broadcast Domain Vs Collision Domain
&lt;/h1&gt;

&lt;p&gt;In order to understand what is the difference between Collision Domain and Broadcast Domain and how having more number of Collision Domain and Broadcast Domain makes a network more efficient we must go through some history lessons.&lt;/p&gt;

&lt;h1&gt;
  
  
  HUB
&lt;/h1&gt;

&lt;p&gt;our first stop will be at HUB,&lt;/p&gt;

&lt;p&gt;A hub is a network equipment with several interfaces (also called ports, not to be confused with TCP or UDP ports since these are physical ports where you can connect cables).&lt;/p&gt;

&lt;p&gt;All a hub will ever do is to copy electrical signals that are entering one port to all other ports. So whatever a computer sends into the hub will be copied by the hub to all other devices on every other port. This means that a hub is completely unintelligent. It doesn’t care about network traffic or addresses at all. All it does is to copy electrical signals. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kxYaKxAt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://thecybersecuritymancom.files.wordpress.com/2018/01/hubs.gif%3Fw%3D431%26h%3D323" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kxYaKxAt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://thecybersecuritymancom.files.wordpress.com/2018/01/hubs.gif%3Fw%3D431%26h%3D323" alt="https://thecybersecuritymancom.files.wordpress.com/2018/01/hubs.gif?w=431&amp;amp;h=323"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now that we know what a HUB is let us discuss the problems and why we don't use hub now a days. Consider two device in network connected using HUB transmit at the same time.&lt;/p&gt;

&lt;p&gt;Here H3 will get a corrupted signal and ask for re-transmission. As number of devices to hub increases the chance of getting collision increases as well which essentially reduces the efficiency of the network. Inorder to deal with the loss of signal the end systems have to come up with schemes to reduces the chance of collision since hub is unintelligent device(all it do is repeat the electrical signal). One of scheme is CSMA/CD.&lt;/p&gt;

&lt;p&gt;I will give a simplified idea of what CSMA/CD is.&lt;/p&gt;

&lt;p&gt;CSMA/CD is a simple protocol. All computers to the network will listen to see if someone is transmitting. When we want to send something and nobody is transmitting, we can transmit a frame. By doing this also there are chances of collision when CSMA/CD detect collision it will re-transmit the data after a random time delay thus reduces the chances of collision. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_faZ1bW3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.networklessons.com/wp-content/uploads/2016/11/xhub-three-hosts-collision.png.pagespeed.ic.okyCZADr-D.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_faZ1bW3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.networklessons.com/wp-content/uploads/2016/11/xhub-three-hosts-collision.png.pagespeed.ic.okyCZADr-D.png" alt="https://cdn.networklessons.com/wp-content/uploads/2016/11/xhub-three-hosts-collision.png.pagespeed.ic.okyCZADr-D.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Now that we know what a HUB is it is time to define collision Domain more formally.
&lt;/h2&gt;

&lt;p&gt;A collision domain the part of a network where packet collisions can occur. A collision occurs when two devices send a packet at the same time on the shared network segment. The packets collide and both devices must send the packets again.&lt;/p&gt;

&lt;h3&gt;
  
  
  So in HUB all the devices that are connected are in the same collision Domain.
&lt;/h3&gt;

&lt;p&gt;What i meant by same collision domain will be clear after reading about Bridge.&lt;/p&gt;

&lt;h1&gt;
  
  
  Bridge
&lt;/h1&gt;

&lt;p&gt;Bridge devices work at the data link layer of the Open System Interconnect (OSI) model, connecting two different networks together and providing communication between them. Bridges are similar to repeaters and hubs in that they broadcast data to every node. However, bridges maintain the media access control (MAC) address table as soon as they discover new segments meaning that it uses the MAC address information to make decisions regarding forwarding data packets. Only the data that needs to be sent across the bridge to the adjacent network segment is forwarded. This makes it possible to isolate or segment the network data traffic.&lt;/p&gt;

&lt;p&gt;Here is an example of two network connected using bridge.&lt;/p&gt;

&lt;p&gt;we can see that our bridge was successfully able to split our network into two collision domain where H1 and H2 belong to same collision domain and H3 and H4 belongs to same collision domain.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MkKZ1dB8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.networklessons.com/wp-content/uploads/2016/11/xtwo-hubs-bridge-in-the-middle.png.pagespeed.ic.g8otdXl8nH.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MkKZ1dB8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.networklessons.com/wp-content/uploads/2016/11/xtwo-hubs-bridge-in-the-middle.png.pagespeed.ic.g8otdXl8nH.png" alt="https://cdn.networklessons.com/wp-content/uploads/2016/11/xtwo-hubs-bridge-in-the-middle.png.pagespeed.ic.g8otdXl8nH.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Switches
&lt;/h1&gt;

&lt;p&gt;Bridges and Switches are pretty similar, both operate at the Data Link layer (Layer 2) and both can filter data so that only the appropriate segment or host receives a transmission.some of the difference between them are&lt;/p&gt;

&lt;p&gt;Packet forwarding in Switches are performed using ASICS (Application Specific Integrated Circuits) thus a switch is hardware-based.Packet forwarding in Bridges is performed using the software. Thus bridges are software-based.A Bridge has only 2 ports while a switch can handle many ports.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Zvsb4pBm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://networklessons.com/wp-content/uploads/2016/11/switch-each-interface-collision-domain.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Zvsb4pBm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://networklessons.com/wp-content/uploads/2016/11/switch-each-interface-collision-domain.png" alt="https://networklessons.com/wp-content/uploads/2016/11/switch-each-interface-collision-domain.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Up until this point we have only discussed about collision domain its time to introduce broadcast domain and why we need that.
&lt;/h1&gt;

&lt;p&gt;In computer networking, broadcasting refers to transmitting a packet that will be received by every device on the network.Broadcast helps to attain efficiency when a common data stream needs to be delivered to all, by minimizing the communication and processing overhead.&lt;/p&gt;

&lt;p&gt;For example, consider ARP protocol.&lt;/p&gt;

&lt;p&gt;The Address Resolution Protocol (ARP) is a communication protocol used for discovering the link layer address, such as a MAC address.When a IP packet comes a (layer 3) switch checks whether the destination IP address is in the routing table if it could not find an entry mapping the MAC address with the IP it sends (broadcast) an ARP message to all the connected device asking " Does anyone have this IP " if a node have the particular IP it reply else it ignore. Important point that must be carried from above example is that at most only node will have a matching IP address all other nodes receiving the packet just ignore the message which waste the valuable time for sending and processing the ARP packet. &lt;/p&gt;

&lt;h2&gt;
  
  
  All the devices we discussed so far has only one broadcast domain that means packets like ARP will be transmitted across all interface.
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sUNMbV7q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.networklessons.com/wp-content/uploads/2016/11/xswitches-forward-broadcast-traffic.png.pagespeed.ic.Wm3iOiCmNm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sUNMbV7q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.networklessons.com/wp-content/uploads/2016/11/xswitches-forward-broadcast-traffic.png.pagespeed.ic.Wm3iOiCmNm.png" alt="https://cdn.networklessons.com/wp-content/uploads/2016/11/xswitches-forward-broadcast-traffic.png.pagespeed.ic.Wm3iOiCmNm.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Our final stop.
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Router
&lt;/h2&gt;

&lt;p&gt;A router is a device like a switch that routes data packets based on their IP addresses rather than MAC address. Router is mainly a Network Layer device.When a data packet comes in on one of the lines, the router reads the network address information in the packet header to determine the ultimate destination. Then, using information in its routing table or routing policy (is a data table stored in a router or a network host that lists the routes to particular network destination), it directs the packet to the next network on its journey.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does a Router split Broadcast domain ?
&lt;/h2&gt;

&lt;p&gt;A router receives packets from each interface via a network interface. Received packets have all link protocol headers removed. The router uses the information in the IP header to decide whether and where to forward each received packet, and which network interface to use to send the packet. Most packets are forwarded based on the packet's IP destination address , along with routing information held within the router in a routing table. A router does not by default forward a packet with an IP broadcast address.&lt;/p&gt;

&lt;p&gt;Let me elaborate on that consider a broadcast frame (we usually call packets at link layer a frame) reaches a switch the frame, being determined as a broadcast, would be forwarded out all interfaces except the one it originated from.&lt;/p&gt;

&lt;h3&gt;
  
  
  how does a switch know it is a broadcast frame ?
&lt;/h3&gt;

&lt;p&gt;The destination MAC address of broadcast frame will be FF:FF:FF:FF:FF:FF.&lt;/p&gt;

&lt;p&gt;what happens when a broadcast frame enters a router ?&lt;/p&gt;

&lt;p&gt;the frame gets decapsulated from link layer and passed up to the network layer and destination IP would be  255.255.255.255 (referring to the current network). The router does not forward such packets hence it split the broadcast area (domain).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---hNI1a4I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.networklessons.com/wp-content/uploads/2016/11/xrouter-breaks-broadcast-domain.png.pagespeed.ic.FzR4ox_5t4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---hNI1a4I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.networklessons.com/wp-content/uploads/2016/11/xrouter-breaks-broadcast-domain.png.pagespeed.ic.FzR4ox_5t4.png" alt="https://cdn.networklessons.com/wp-content/uploads/2016/11/xrouter-breaks-broadcast-domain.png.pagespeed.ic.FzR4ox_5t4.png"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>networking</category>
    </item>
  </channel>
</rss>
