<!DOCTYPE html>
<!--[if IE 7]>
<html class="ie ie7" lang="en-US">
<![endif]-->
<!--[if IE 8]>
<html class="ie ie8" lang="en-US">
<![endif]-->
<!--[if !(IE 7) | !(IE 8)  ]><!-->
<html lang="en-US" >

<!--<![endif]-->
<head>
<meta charset="UTF-8" />

<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=3.0"> 
<meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1' /><link rel="shortcut icon" href="https://media.geeksforgeeks.org/wp-content/cdn-uploads/gfg_favicon.png" type="image/x-icon" />

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>


<meta name="theme-color" content="#308D46" />
<!-- <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1' /> -->

<meta name="image" property="og:image" content="https://media.geeksforgeeks.org/wp-content/cdn-uploads/gfg_200x200-min.png">
<meta property="og:image:type" content="image/png">
<meta property="og:image:width" content="200">
<meta property="og:image:height" content="200">
<meta name="facebook-domain-verification" content="xo7t4ve2wn3ywfkjdvwbrk01pvdond" />

<meta property="og:title" content="Introduction To Subnetting - GeeksforGeeks" />
<meta name="description" content="Your All-in-One Learning Portal: GeeksforGeeks is a comprehensive educational platform that empowers learners across domains-spanning computer science and programming, school education, upskilling, commerce, software tools, competitive exams, and more." />
<meta property="og:url" content="https://www.geeksforgeeks.org/computer-networks/introduction-to-subnetting/" />
<meta name="keywords" content="Subnetting, Subnets, IP Addressing, Subnet Mask, CIDR Notation, Classful Addressing, Network Security, Network Management, Performance Issues, IP Address Efficiency, Improved Security, Point to Point Subnet, IPv6 Subnetting, Public and Private Subnet" />
<meta property="og:site_name" content="GeeksforGeeks" />
<meta property="og:image" content="https://media.geeksforgeeks.org/wp-content/uploads/20250107215830240237/hostandnetid-660x413.png" />
<meta property="article:section" content="Computer Networks" />
<meta property="og:type" content="article" />
<meta property="og:locale" content="en_US" />
<meta property="article:published_time" content="2019-02-11 06:43:54+00:00" />
<meta property="article:modified_time" content="2025-02-07 17:39:56+00:00" />
<meta property="og:updated_time" content="2025-02-07 17:39:56+00:00" />
<meta property="og:image:secure_url" content="https://media.geeksforgeeks.org/wp-content/uploads/20250107215830240237/hostandnetid-660x413.png" />
<meta property="og:description" content="Your All-in-One Learning Portal: GeeksforGeeks is a comprehensive educational platform that empowers learners across domains-spanning computer science and programming, school education, upskilling, commerce, software tools, competitive exams, and more." />
<script src="https://cdnads.geeksforgeeks.org/synchronously_gfg_ads.min.js"></script>
<script defer src="https://apis.google.com/js/platform.js"></script>
<!-- earlier require.js -->
<!-- <script src="//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.14/require.min.js"></script> -->
<!-- <script src="https://assets.geeksforgeeks.org/codetabs-dev/require.js"></script> -->
<!-- Removed the below script from here to prevent loading google translate js at initial load
<script async src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script> -->
<script src="//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.14/require.min.js"></script>
<!-- FIXME:-  To be finalised whether we need to put this gpt script in header or footer  -->
<!-- //gpt.js script -->
<!-- <script async src='https://www.googletagservices.com/tag/js/gpt.js'></script> -->
<script>
   var IHPWT={}; //Initialize Namespace
  var pbjs = pbjs || {};
  pbjs.que = pbjs.que || [];
  var googletag = googletag || {};
  googletag.cmd = googletag.cmd || [];
  var gptRan = false;
</script>
<script defer src="https://ads.pubmatic.com/AdServer/js/pwt/162080/12331/pwt.js"></script>
      <script defer src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
  <script defer src="https://cdnads.geeksforgeeks.org/gfg_ads.min.js?ver=0.1"></script>
<script defer src="https://cdnads.geeksforgeeks.org/prebid.js?ver=0.1"></script>

                    <script> 
                        var video_api_response = JSON.parse("{\"id\":3105,\"title\":\"Introduction to Subnetting\",\"slug\":\"subnetting-video-jtogmm\",\"description\":\"<p>Subnetting is the process of dividing a large network into smaller, manageable subnets. It enhances communication between devices by allocating dedicated space for each group. Subnetting improves security, makes network management easier, and allows for better control of traffic. For example, in a company, each department can have its own subnet, keeping data traffic separate. In this article, we will explore Subnetting in detail and its role in network optimization.<br><br>For more details, check out the full article: <a href=\\\"https:\/\/www.geeksforgeeks.org\/introduction-to-subnetting\/\\\">Introduction To Subnetting<\/a>.<\/p>\",\"source\":\"https:\/\/cdnvideos.geeksforgeeks.org\/hls\/5b4097d544152cd214fccff586e5e93fgfg--20210407--copy--5b4097d544152cd214fccff586e5e93fgfg-Subnetting.m3u8\",\"category\":[{\"term_id__id\":166,\"term_id__term_name\":\"courses populated\",\"term_id__term_type\":2,\"term_id__slug\":\"courses-populated\"},{\"term_id__id\":167,\"term_id__term_name\":\"Data Structures and Algorithms\",\"term_id__term_type\":1,\"term_id__slug\":\"data-structures-and-algorithms\"}],\"video_type\":\"courses\",\"meta\":{\"thumbnail\":\"https:\/\/media.geeksforgeeks.org\/courses\/SubnettingVideo\/Subnetting20241128172240-small.png\",\"largeThumbnail\":\"https:\/\/media.geeksforgeeks.org\/courses\/SubnettingVideo\/Subnetting20241128172240.jpg\",\"likes\":1,\"views\":45400,\"isFeatured\":0,\"isPremium\":0,\"isPublic\":1,\"format\":0,\"revision\":{}},\"time\":\"15\/10\/2019\",\"seo\":{\"description\":\"<p>Subnetting is the process of dividing a large network into smaller, mana\",\"thumbnail\":\"https:\/\/media.geeksforgeeks.org\/courses\/SubnettingVideo\/Subnetting20241128172240-seo.png\"},\"subtitle\":\"https:\/\/cdnvideos.geeksforgeeks.org\/subtitles\/Introduction_to_Subnetting.vtt\",\"duration\":1423,\"post_list\":[{\"post_id\":274561,\"post_title\":\"Introduction To Subnetting\"},{\"post_id\":1055134,\"post_title\":\"Network Layer in OSI Model\"}],\"course_link\":\"https:\/\/gfgcdn.com\/tu\/U4D\/\",\"views\":\"45400\",\"video_schema\":{\"@context\":\"https:\/\/schema.org\",\"@type\":\"VideoObject\",\"name\":\"Introduction to Subnetting\",\"description\":\"Subnetting is the process of dividing a large network into smaller, manageable subnets. It enhances communication between devices by allocating dedicated space for each group. Subnetting improves security, makes network management easier, and allows for better control of traffic. For example, in a company, each department can have its own subnet, keeping data traffic separate. In this article, we will explore Subnetting in detail and its role in network optimization.For more details, check out the full article Introduction To Subnetting.\",\"thumbnailUrl\":[\"https:\/\/media.geeksforgeeks.org\/courses\/SubnettingVideo\/Subnetting20241128172240.jpg\",\"https:\/\/media.geeksforgeeks.org\/courses\/SubnettingVideo\/Subnetting20241128172240-seo.png\",\"https:\/\/media.geeksforgeeks.org\/courses\/SubnettingVideo\/Subnetting20241128172240-small.png\"],\"uploadDate\":\"2019-10-15T14:18:33Z\",\"duration\":\"PT0H23M43S\",\"contentUrl\":\"https:\/\/www.geeksforgeeks.org\/videos\/subnetting-video-jtogmm\/\"}}");
                    </script>
                
<!-- gfg tabs compatablity bundled js -->

<title>Introduction To Subnetting - GeeksforGeeks</title>
<link rel="profile" href="http://gmpg.org/xfn/11" />
<link rel="pingback" href="" />
<!--[if lt IE 9]>
<script src="https://www.geeksforgeeks.org/wp-content/themes/iconic-one/js/html5.js" type="text/javascript"></script>
<![endif]-->


<!-- Video Schema for posts only -->
            <script type="application/ld+json">{"@context":"https://schema.org","@type":"VideoObject","name":"Introduction to Subnetting","description":"Subnetting is the process of dividing a large network into smaller, manageable subnets. It enhances communication between devices by allocating dedicated space for each group. Subnetting improves security, makes network management easier, and allows for better control of traffic. For example, in a company, each department can have its own subnet, keeping data traffic separate. In this article, we will explore Subnetting in detail and its role in network optimization.For more details, check out the full article Introduction To Subnetting.","thumbnailUrl":["https://media.geeksforgeeks.org/courses/SubnettingVideo/Subnetting20241128172240.jpg","https://media.geeksforgeeks.org/courses/SubnettingVideo/Subnetting20241128172240-seo.png","https://media.geeksforgeeks.org/courses/SubnettingVideo/Subnetting20241128172240-small.png"],"uploadDate":"2019-10-15T14:18:33Z","duration":"PT0H23M43S","contentUrl":"https://www.geeksforgeeks.org/videos/subnetting-video-jtogmm/"}</script>
      
<!-- adding article schema markup -->


<!--POST SCHEMA through API-->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "mainEntityOfPage": {
    "@type": "WebPage",
    "id": "https://www.geeksforgeeks.org/computer-networks/introduction-to-subnetting/"
  },
  "headline": "Introduction To Subnetting",
  "datePublished": "2019-02-11 06:43:54",
  "dateModified": "2025-02-07 05:39:56",
  "image": {
    "@type": "ImageObject",
    "url": "https://media.geeksforgeeks.org/wp-content/uploads/subnetting.111111.jpg",
    "width": "521",
    "height": "242"
  },
  "author": {
    "@type": "Organization",
    "name": "GeeksforGeeks",
    "url": "https://www.geeksforgeeks.org/",
    "logo": {
      "@type": "ImageObject",
      "url": "https://media.geeksforgeeks.org/wp-content/cdn-uploads/logo-new-2.svg",
      "width": "301",
      "height": "40"
    }
  },
  "publisher": {
    "@type": "Organization",
    "name": "GeeksforGeeks",
    "url": "https://www.geeksforgeeks.org/",
    "logo": {
      "@type": "ImageObject",
      "url": "https://media.geeksforgeeks.org/wp-content/cdn-uploads/logo-new-2.svg",
      "width": "301",
      "height": "40"
    }
  },
  "description": "Subnetting is the process of dividing a large network into smaller networks called \"subnets.\" Subnets provide each group of devices with their own space to communicate, which ultimately helps the network to work easily. This also boosts security and makes it easier to manage the network, as each subnet can",
  "about": [
    {
      "@type": "Thing",
      "name": "ComputerNetworks"
    },
    {
      "@type": "Thing",
      "name": "GateCs"
    }
  ]
}</script>
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "GeeksforGeeks",
  "url": "https://www.geeksforgeeks.org/",
  "potentialAction": {
    "@type": "SearchAction",
    "target": "https://www.geeksforgeeks.org/search/{search_term_string}/",
    "query-input": "required name=search_term_string"
  }
}</script>
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "GeeksforGeeks",
  "url": "https://www.geeksforgeeks.org/",
  "logo": "https://media.geeksforgeeks.org/wp-content/cdn-uploads/20200817185016/gfg_complete_logo_2x-min.png",
  "description": "Your All-in-One Learning Portal: GeeksforGeeks is a comprehensive educational platform that empowers learners across domains-spanning computer science and programming, school education, upskilling, commerce, software tools, competitive exams, and more.",
  "founder": [
    {
      "@type": "Person",
      "name": "Sandeep Jain",
      "url": "https://in.linkedin.com/in/sandeep-jain-b3940815"
    }
  ],
  "sameAs": [
    "https://www.facebook.com/geeksforgeeks.org/",
    "https://twitter.com/geeksforgeeks",
    "https://www.linkedin.com/company/1299009",
    "https://www.youtube.com/geeksforgeeksvideos/"
  ]
}</script>
<script type="application/ld+json">{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Computer Networks",
      "item": {
        "@type": "Thing",
        "@id": "https://www.geeksforgeeks.org/category/computer-networks/"
      }
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "introduction-to-subnetting",
      "item": {
        "@type": "Thing",
        "@id": "https://www.geeksforgeeks.org/computer-networks/introduction-to-subnetting/"
      }
    }
  ]
}</script>
<script>
    var arrPostCat = new Array();
    var arrPostCatName="GATECS";
            arrPostCat.push('2051');
            arrPostCat.push('2055');
        var tIds = "2051,2055";
    var termsNames = "ComputerNetworks,GATECS,ComputerSubject";
    var tIdsInclusiveParents = "2051,2055,2050";
    var domain = 1;
    var arrPost = new Array();
    var post_id = "274561";
    var post_type = "post";
    var post_slug = window.location.href;
    var ip = "64.252.73.9";
    var post_title = `Introduction To Subnetting`;
    var post_status = "publish";
    var practiceAPIURL="https://practiceapi.geeksforgeeks.org/";
    var practiceURL="https://practice.geeksforgeeks.org/";
    var post_date = "2019-02-11 11:44:06";
    var commentSysUrl = "https://discuss.geeksforgeeks.org/commentEmbedV2.js";
    //var postAdApiUrlString = "";
    var link_on_code_run = '';
    var link_search_modal_top = '';
    var country_code_cf = "AT";
    
    
        var postAdApiUrlString = '2050/2051/2055/';
</script>



<link rel='dns-prefetch' href='//cdn.geeksforgeeks.org' />
<link rel='dns-prefetch' href='//s.w.org' />
		<script type="text/javascript">
			window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/11\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/11\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/www.geeksforgeeks.org\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.9.8"}};
			!function(a,b,c){function d(a,b){var c=String.fromCharCode;l.clearRect(0,0,k.width,k.height),l.fillText(c.apply(this,a),0,0);var d=k.toDataURL();l.clearRect(0,0,k.width,k.height),l.fillText(c.apply(this,b),0,0);var e=k.toDataURL();return d===e}function e(a){var b;if(!l||!l.fillText)return!1;switch(l.textBaseline="top",l.font="600 32px Arial",a){case"flag":return!(b=d([55356,56826,55356,56819],[55356,56826,8203,55356,56819]))&&(b=d([55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447],[55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447]),!b);case"emoji":return b=d([55358,56760,9792,65039],[55358,56760,8203,9792,65039]),!b}return!1}function f(a){var c=b.createElement("script");c.src=a,c.defer=c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var g,h,i,j,k=b.createElement("canvas"),l=k.getContext&&k.getContext("2d");for(j=Array("flag","emoji"),c.supports={everything:!0,everythingExceptFlag:!0},i=0;i<j.length;i++)c.supports[j[i]]=e(j[i]),c.supports.everything=c.supports.everything&&c.supports[j[i]],"flag"!==j[i]&&(c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&c.supports[j[i]]);c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&!c.supports.flag,c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.everything||(h=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",h,!1),a.addEventListener("load",h,!1)):(a.attachEvent("onload",h),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),g=c.source||{},g.concatemoji?f(g.concatemoji):g.wpemoji&&g.twemoji&&(f(g.twemoji),f(g.wpemoji)))}(window,document,window._wpemojiSettings);
		</script>
		<style type="text/css">
img.wp-smiley,
img.emoji {
	display: inline !important;
	border: none !important;
	box-shadow: none !important;
	height: 1em !important;
	width: 1em !important;
	margin: 0 .07em !important;
	vertical-align: -0.1em !important;
	background: none !important;
	padding: 0 !important;
}
</style>
<link rel='stylesheet' id='custom-style-css'  href='https://www.geeksforgeeks.org/wp-content/themes/iconic-one/css/gfg.min.css?ver=12.08' type='text/css' media='all' />
<script type='text/javascript' src='https://code.jquery.com/jquery-3.7.1.min.js?ver=3.7.1'></script>
<script type='text/javascript' src='https://code.jquery.com/jquery-migrate-3.5.2.min.js?ver=3.5.2'></script>
<script type='text/javascript'>
/* <![CDATA[ */
var gfgObject = {"authUrl":"https:\/\/auth.geeksforgeeks.org\/","writeApiUrl":"https:\/\/apiwrite.geeksforgeeks.org\/","writeUrl":"https:\/\/write.geeksforgeeks.org\/","utilUrl":"https:\/\/util.geeksforgeeks.org\/","apiUrl":"https:\/\/api.geeksforgeeks.org\/","cfApiUrl":"https:\/\/gfgapi.geeksforgeeks.org\/","baseCompilerURL":"https:\/\/codejudge.geeksforgeeks.org\/","idePageBaseUrl":"https:\/\/ide.geeksforgeeks.org\/","gfgApiScriptUrl":"https:\/\/apiscript.geeksforgeeks.org\/","gfgSiteUrl":"https:\/\/www.geeksforgeeks.org\/","curatedListId":"1","curatedListTitle":"SDE Sheet Problems","utilDjangoCfUrl":"https:\/\/utilapi.geeksforgeeks.org\/","premiumCheckoutSlug":"premium-plans-payment\/","premiumLandingSlug":"premium-plans\/","premiumCssUrl":"https:\/\/www.geeksforgeeks.org\/wp-content\/themes\/iconic-one\/css\/gfgpremium.min.css?ver=1.7","premiumJsUrl":"https:\/\/www.geeksforgeeks.org\/wp-content\/themes\/iconic-one\/js\/gfgpremium.min.js?ver=1.6","utilGoogleUrl":"https:\/\/ugprod.geeksforgeeks.org\/","communityApiUrl":"https:\/\/communityapi.geeksforgeeks.org\/","utilDjangoUrl":"https:\/\/gfgutil.geeksforgeeks.org\/","gfgPracticeUrl":"https:\/\/practiceapi.geeksforgeeks.org\/","gfgMediaUrl":"https:\/\/media.geeksforgeeks.org\/","authDjangoApiUrl":"https:\/\/authapi.geeksforgeeks.org\/","gfgMlApiUrl":"https:\/\/recommendations.geeksforgeeks.org\/","is_home":"","is_category":"","userlevelPremiumPlus":"2","practiceUrl":"https:\/\/practice.geeksforgeeks.org\/","gfgNotificationsApiUrl":"https:\/\/notificationsapi.geeksforgeeks.org\/"};
/* ]]> */
</script>
<script type='text/javascript' async="async" src='https://www.geeksforgeeks.org/wp-content/themes/iconic-one/js/gfg.min.js?ver=13.86'></script>

<style>
#wpadminbar{
background: #ff0000 !important;
}
</style>
<style type="text/css" id="custom-background-css">
body.custom-background { background-color: #ffffff; }
</style>
<link rel="icon" href="https://www.geeksforgeeks.org/wp-content/uploads/gfg_200X200-100x100.png" sizes="32x32" />
<link rel="icon" href="https://www.geeksforgeeks.org/wp-content/uploads/gfg_200X200.png" sizes="192x192" />
<link rel="apple-touch-icon-precomposed" href="https://www.geeksforgeeks.org/wp-content/uploads/gfg_200X200.png" />
<meta name="msapplication-TileImage" content="https://www.geeksforgeeks.org/wp-content/uploads/gfg_200X200.png" />

<!--
<script type='text/javascript'>
  var googletag = googletag || {};
  googletag.cmd = googletag.cmd || [];
  (function() {
    var gads = document.createElement('script');
    gads.async = true;
    gads.type = 'text/javascript';
    var useSSL = 'https:' == document.location.protocol;
    gads.src = (useSSL ? 'https:' : 'http:') +
      '//www.googletagservices.com/tag/js/gpt.js';
    var node = document.getElementsByTagName('script')[0];
    node.parentNode.insertBefore(gads, node);
  })();
</script>

 AutoAds
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<script>
(adsbygoogle = window.adsbygoogle || []).push({
google_ad_client: "ca-pub-9465609616171866",
enable_page_level_ads: true
});
</script>
-->




<style>

    #internal-promo-section{
        display: none !important;
    }
    @media screen and (max-width:1500px) and (min-width:1280px){
        body.single .article-page_flex .leftBar {
            flex-basis: calc(100% - 605px);
            max-width: calc(100% - 605px);
            min-width: calc(100% - 605px);
        }
        
        .sidebar_wrapper{
            max-width: 300px;
            min-width: 300px;
        }
        
        div#secondary {
            min-width: 300px;
            max-width: 300px;
        }
        
        .widget-area{
            padding: 0px;
        }
        
        .article-page_flex .rightBar{
            padding: 20px 0px 0px 0px;
        }
        
        .article--viewer_content .a-wrapper .content {
            padding: 0px 10px 55px 20px;
        }
        
        .oinLeftbar {
            height: calc(100vh - 350px) !important;
        }  
    }
    .autoLeftBar_oin_child{
        height: 100% !important;
    }
    .autoLeftBar_oin_non_sticky{
        height: unset !important;
    }
    .sideBar--wrap.newLeftbar > div[id^='GFG_AD_Leftsidebar_']:nth-of-type(1){
        padding-top: 20px;
    }
    .sideBar--wrap.newLeftbar > div[id^='GFG_AD_Leftsidebar_']{
        padding: 5px 0;
    }

@media (max-width:1043px) and (min-width:992px) {
 .hide-1043992 {
   display: none!important;
 }
}

.mobile-header-list-item{
    padding-left:30px; 
    padding-right:10px;
    margin-top:5px;
}

.mobile-header-list{
    border-bottom: 1px solid rgba(158, 158, 158, 0.3) !important;
}

.mobile-header-list .dropdown-title{
    border-bottom: none !important;
    font-size: 16px!important; 
    padding: 0px!important; 
    padding-left: 45px!important; 
    font-weight: normal;
}

.mobile-header-list .upside::after{
    transform: rotate(180deg);
}

</style>
<!-- End Google Tag Manager -->
<!-- Global site tag (gtag.js) - Google Ads: 474915276 -->
<!-- <script async src="https://www.googletagmanager.com/gtag/js?id=AW-474915276"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'AW-474915276');
</script> -->

</head>

<body class="post-template-default single single-post postid-274561 single-format-standard custom-background custom-background-white">

    <script>
        // Dark mode script

        const gfgThemeList = Object.freeze({
            LIGHT: "gfgThemeLight",
            DARK: "gfgThemeDark"
        })
        const getThemeFromCookie = () => {
            let gfg_def_theme = "";
            let cookies = document.cookie;
            let cooks = cookies.split(";");
        
            for (let i = 0; i < cooks.length; i++) {   
                let icook = cooks[i].split("=");
                if (icook[0].trim() == "gfg_theme") {
                    gfg_def_theme = icook[1].trim();
                }
            }
            return gfg_def_theme
        }
        if(!(post_slug.includes('premium-plans-payment/') || post_slug.includes('premium-plans/'))){
            var isDarkMode = getThemeFromCookie() == gfgThemeList.DARK ? true : false;
            document.querySelector("body").setAttribute("data-dark-mode", isDarkMode);
        }
 

        function setSearchBarFocus() {
          const myTimeout = setTimeout(searchBarFocus, 0);
          function searchBarFocus() {
            document.getElementById("gcse-search-input").focus();
          }
        }

        
    </script>

    <!-- <div class="header-main__wrapper not-fixed"> -->
    <nav>
    <div class="header-main__wrapper">

        <a class="gfg-stc" style="top:0" href="#main">Skip to content</a>

        <a href="https://www.geeksforgeeks.org/" aria-label="Logo" class="header-main__logo">
            <div class="_logo">
                <!-- Original Logo -->
                <img class="gfg_logo_img" style="height: 30px; width: 80px; max-width: fit-content;" src="https://media.geeksforgeeks.org/gfg-gg-logo.svg" alt="geeksforgeeks">
            </div>
        </a>
        <div class="header-main__container">
            <!-- for mobile only -->
            
        <!-- For Web view only -->
        <ul class="header-main__list"><li class="header-main__list-item Header_1" data-parent="false" aria-expanded="true" data-expandable="true"><span>Tutorials</span><i class="gfg-icon gfg-icon_arrow-down gfg-icon_header"></i><ul class="mega-dropdown Screen_1"><li class="mega-dropdown__list-item" data-child="true" aria-expanded="false" data-expandable="false"><a href="https://www.geeksforgeeks.org/python/python-programming-language-tutorial/" target="_self">Python</a></li><li class="mega-dropdown__list-item" data-child="true" aria-expanded="false" data-expandable="false"><a href="https://www.geeksforgeeks.org/java/java/" target="_self">Java</a></li><li class="mega-dropdown__list-item" data-child="true" aria-expanded="false" data-expandable="false"><a href="https://www.geeksforgeeks.org/learn-data-structures-and-algorithms-dsa-tutorial/" target="_self">Data Structures & Algorithms</a></li><li class="mega-dropdown__list-item" data-child="true" aria-expanded="false" data-expandable="false"><a href="https://www.geeksforgeeks.org/ai-ml-and-data-science-tutorial-learn-ai-ml-and-data-science/" target="_self">ML & Data Science</a></li><li class="mega-dropdown__list-item" data-child="true" aria-expanded="false" data-expandable="false"><a href="https://www.geeksforgeeks.org/interview-corner/" target="_self">Interview Corner</a></li><li class="mega-dropdown__list-item" data-child="true" aria-expanded="false" data-expandable="false"><a href="https://www.geeksforgeeks.org/programming-language-tutorials/" target="_self">Programming Languages</a></li><li class="mega-dropdown__list-item" data-child="true" aria-expanded="false" data-expandable="false"><a href="https://www.geeksforgeeks.org/web-technology/" target="_self">Web Development</a></li><li class="mega-dropdown__list-item" data-child="true" aria-expanded="false" data-expandable="false"><a href="https://www.geeksforgeeks.org/articles-on-computer-science-subjects-gq/" target="_self">CS Subjects</a></li><li class="mega-dropdown__list-item" data-child="true" aria-expanded="false" data-expandable="false"><a href="https://www.geeksforgeeks.org/devops-and-linux-tutorial/" target="_self">DevOps And Linux</a></li><li class="mega-dropdown__list-item" data-child="true" aria-expanded="false" data-expandable="false"><a href="https://www.geeksforgeeks.org/geeksforgeeks-school/?ref=outind" target="_self">School Learning</a></li><li class="mega-dropdown__list-item" data-child="true" aria-expanded="false" data-expandable="false"><a href="https://www.geeksforgeeks.org/geeksforgeeks-practice-best-online-coding-platform/" target="_self">Practice Coding Problems</a></li></ul></li><li class="header-main__list-item Header_2" data-parent="false" aria-expanded="true" data-expandable="true"><span>Courses</span><i class="gfg-icon gfg-icon_arrow-down gfg-icon_header"></i><ul class="mega-dropdown Screen_1"><li class="mega-dropdown__list-item" data-child="true" aria-expanded="false" data-expandable="false"><a href="https://www.geeksforgeeks.org/courses/dsa-to-development-coding-guide/" target="_self">DSA to Development</a></li><li class="mega-dropdown__list-item" data-child="true" aria-expanded="false" data-expandable="false"><a href="https://www.geeksforgeeks.org/courses/category/ibm-certification/" target="_self">Get IBM Certification</a></li><li class="mega-dropdown__list-item" data-parent="false" aria-expanded="true" data-expandable="true"><span>Newly Launched!</span><i class="gfg-icon gfg-icon_arrow-right"></i><ul class="mega-dropdown Screen_2"><li class="mega-dropdown__list-item" data-child="true" aria-expanded="false" data-expandable="false"><a href="https://www.geeksforgeeks.org/courses/mastering-django-framework-beginner-to-advance/" target="_self">Master Django Framework</a></li><li class="mega-dropdown__list-item" data-child="true" aria-expanded="false" data-expandable="false"><a href="https://www.geeksforgeeks.org/courses/search?query=AWS" target="_self">Become AWS Certified</a></li></ul></li><li class="mega-dropdown__list-item" data-parent="false" aria-expanded="true" data-expandable="true"><span>For Working Professionals</span><i class="gfg-icon gfg-icon_arrow-right"></i><ul class="mega-dropdown Screen_2"><li class="mega-dropdown__list-item" data-child="true" aria-expanded="false" data-expandable="false"><a href="https://www.geeksforgeeks.org/courses/interviewe-101-data-structures-algorithm-system-design/" target="_self">Interview 101: DSA & System Design</a></li><li class="mega-dropdown__list-item" data-child="true" aria-expanded="false" data-expandable="false"><a href="https://www.geeksforgeeks.org/courses/full-stack-applied-data-science-program/" target="_self">Data Science Training Program</a></li><li class="mega-dropdown__list-item" data-child="true" aria-expanded="false" data-expandable="false"><a href="https://www.geeksforgeeks.org/courses/Java-backend-live" target="_self">JAVA Backend Development (Live)</a></li><li class="mega-dropdown__list-item" data-child="true" aria-expanded="false" data-expandable="false"><a href="https://www.geeksforgeeks.org/courses/devops-live" target="_self">DevOps Engineering (LIVE)</a></li><li class="mega-dropdown__list-item" data-child="true" aria-expanded="false" data-expandable="false"><a href="https://www.geeksforgeeks.org/courses/Data-Structures-With-Python" target="_self">Data Structures & Algorithms in Python</a></li></ul></li><li class="mega-dropdown__list-item" data-parent="false" aria-expanded="true" data-expandable="true"><span>For Students</span><i class="gfg-icon gfg-icon_arrow-right"></i><ul class="mega-dropdown Screen_2"><li class="mega-dropdown__list-item" data-child="true" aria-expanded="false" data-expandable="false"><a href="https://www.geeksforgeeks.org/courses/placement-prep-live" target="_self">Placement Preparation Course</a></li><li class="mega-dropdown__list-item" data-child="true" aria-expanded="false" data-expandable="false"><a href="https://www.geeksforgeeks.org/courses/data-science-live" target="_self">Data Science (Live)</a></li><li class="mega-dropdown__list-item" data-child="true" aria-expanded="false" data-expandable="false"><a href="https://www.geeksforgeeks.org/courses/dsa-self-paced" target="_self">Data Structure & Algorithm-Self Paced (C++/JAVA)</a></li><li class="mega-dropdown__list-item" data-child="true" aria-expanded="false" data-expandable="false"><a href="https://www.geeksforgeeks.org/courses/competitive-programming-cp" target="_self">Master Competitive Programming (Live)</a></li><li class="mega-dropdown__list-item" data-child="true" aria-expanded="false" data-expandable="false"><a href="https://www.geeksforgeeks.org/courses/full-stack-node" target="_self">Full Stack Development with React & Node JS (Live)</a></li></ul></li><li class="mega-dropdown__list-item" data-child="true" aria-expanded="false" data-expandable="false"><a href="https://www.geeksforgeeks.org/courses/full-stack-node" target="_self">Full Stack Development</a></li><li class="mega-dropdown__list-item" data-child="true" aria-expanded="false" data-expandable="false"><a href="https://www.geeksforgeeks.org/courses/data-science-live" target="_self">Data Science Program</a></li><li class="mega-dropdown__list-item" data-child="true" aria-expanded="false" data-expandable="false"><a href="https://www.geeksforgeeks.org/courses" target="_self">All Courses</a></li></ul></li></ul>
        <!-- right now only search is visible for mobile view because of css and all are visible for web view -->
            <ul class="header-main__left-list" data-nl="false">
                <li class="header-main__left-list-item gcse-search_li p-relative" aria-expanded="false" data-expandable="false">
                    <div class="gcse-form-search-suggestion_wrapper">
                                            <form id="gcse-form" class="gcse-form_class p-relative closeChatScreen gcse-form-web" data-sm="true">
                            <span class="front-search-icon" style="display: block;"><i class="gfg-icon gfg-icon_search gfg-icon_white gcse-search__icon gcse-search-icon_grey"></i> </span>
                            <input class="gcse-search-input__wrapper" id="gcse-search-input" aria-expanded="true" placeholder="Search..." autocomplete="off" />
                            <i class="gfg-icon gfg-icon_times gfg-icon_white hide-search"></i>
                            <button  aria-label="search" type="submit" class="gcse-search__btn" style="display: none;">
                                <i class="gfg-icon gfg-icon_search gfg-icon_white gcse-search__icon"></i>
                            </button>
                        </form>
                                            <div class="gfg-search-suggestion_wrapper" style="display:none"></div>
                    <div>
                </li>
                                <li>
                    <div class="darkMode-wrap" data-mode="Switch to Dark Mode">
                        <button aria-label="toggle theme" data-gfg-action="toggleGFGTheme">
                            <div id="darkMode-wrap-red-dot" style="height:12px;width:12px;background-color:#EB2222;border-radius:999999px;position:absolute;top:4px;right:0;display:none;"></div>
                            <i class="gfg-icon gfg-icon_dark-mode"></i>
                        </button>
                        <span id="darkModeTooltipText"></span>
                    </div>
                </li>
                                
                <li class="header-main__left-list-item google-translate-parent-element" aria-expanded="false" data-expanded="true">
                    <div class="translate" id="g_translater">
                        <div id="google_translate_element" data-show="false"></div>
                    </div>
                    <i class ="gfg-icon gfg-icon_translate googleTranslateToggle" data-gfg-action="google_translate_element"></i>
                    <!-- removed below code from here to load google translate js dynamically -->
                    <!-- <script>
                        var m = false;
                        function googleTranslateElementInit() {
                            new google.translate.TranslateElement({pageLanguage: 'en'}, 'google_translate_element');
                            setTimeout(function(){
                                if (jQuery( window ).width() < 768){
                                    m = true;
                                     jQuery('#g_translater').detach().appendTo('#google_translate_mobile');                            
                                }
                            }, 7000);
                        }
                        jQuery( window ).resize(function() {
                            if (jQuery( window ).width() < 768 && m == false){
                                m = true;
                                jQuery('#g_translater').detach().appendTo('#google_translate_mobile');  
                            } else if (jQuery( window ).width() >= 768 && m == true){
                                m = false;
                                jQuery('#g_translater').detach().prependTo('.google-translate-parent-element');                            
                            }
                        });
                    </script> -->
                </li>
                <li id="userProfileId" class="header-main__left-list-item p-relative" aria-expanded="false" data-expandable="false">
                    <!-- Profile Section to be added via JS -->
                </li>
                            </ul>
        </div>

        <!-- for mobile only -->
        
        <!-- for mobile only -->
               
       </div>
    </nav>
    <div id="header-main__slider-outer-div">
        <div class="header-main__slider">
            <button aria-label="sub header slider previous" class="header-main__slider-arrow previous hideIt">
                <i class="gfg-icon gfg-icon_arrow-left gicon-centered"></i>
            </button>
            <!-- main content for leftbar -->
            <ul id="hslider">
            <li><a href="https://www.geeksforgeeks.org/aptitude-questions-and-answers/">Aptitude</a></li><li><a href="https://www.geeksforgeeks.org/engineering-mathematics-tutorials/">Engineering Mathematics</a></li><li><a href="https://www.geeksforgeeks.org/discrete-mathematics-tutorial/">Discrete Mathematics</a></li><li><a href="https://www.geeksforgeeks.org/operating-systems/">Operating System</a></li><li><a href="https://www.geeksforgeeks.org/dbms/">DBMS</a></li><li><a href="https://www.geeksforgeeks.org/computer-network-tutorials/">Computer Networks</a></li><li><a href="https://www.geeksforgeeks.org/digital-electronics-logic-design-tutorials/">Digital Logic and Design</a></li><li><a href="https://www.geeksforgeeks.org/c-programming-language/">C Programming</a></li><li><a href="https://www.geeksforgeeks.org/data-structures/">Data Structures</a></li><li><a href="https://www.geeksforgeeks.org/fundamentals-of-algorithms/">Algorithms</a></li><li><a href="https://www.geeksforgeeks.org/theory-of-computation-automata-tutorials/">Theory of Computation</a></li><li><a href="https://www.geeksforgeeks.org/compiler-design-tutorials/">Compiler Design</a></li><li><a href="https://www.geeksforgeeks.org/computer-organization-and-architecture-tutorials/">Computer Org and Architecture</a></li>            </ul>
            <button aria-label="sub header slider next" class="header-main__slider-arrow next hideIt">
                <i class="gfg-icon gfg-icon_arrow-right gicon-centered"></i>
            </button>
            <!-- <a type="button" class="header-main__signup login-modal-btn" href="https://www.geeksforgeeks.org/merge-sort/">Sign In</a> -->
        </div>
         <div class="gcse-form-search-shm">
    <form id="gcse-form-shm" class="gcse-form_class-shm p-relative " data-sm="false">
        <span class="front-search-shm-icon">
            <i class="gfg-icon gfg-icon_search gfg-icon_white gcse-search__icon gcse-search-icon_grey" style="display: none"></i>
        </span>
        <input class="gcse-search-input-shm" id="gcse-search-input-shm" aria-expanded="false" placeholder="Search..." autocomplete="off" style="display: none"/>
        <i class="gfg-icon gfg-icon_times gfg-icon_white hide-search-shm" style="display: none"></i>
        <button id=sub-header__search aria-label="search" type="button" class="gcse-search-shm__btn not-expanded " style="display:none">
            <i class="gfg-icon gfg-icon_search gfg-icon_white gcse-search__icon"></i>
        </button>
    </form>
    <div class="gcse-form-search-shm-modal" style="display: none"></div>
</div>

        <div id="sub-header__signup-outer-div">
            <button id="sub-header__signup" class="login-modal-btn">Sign In</button>
        </div>
    </div>
    
    <button id="scrollTopBtn" title="Scroll to Top" type="button" class="btn btn-success">&#x25B2;</button>
    <!-- .top-spacing to give space on single pages-->
    <div id="main" class="wrapper single-page">

<script>
    if(post_slug.includes('premium-plans-payment/') || post_slug.includes('premium-plans/')){
        $(".header-main__slider").remove();
    }
    //getting tags for the page type data
    let mobileView = false;
    let pageTags = JSON.parse('null');
    let allTags = JSON.parse('["ComputerNetworks","GATECS","ComputerSubject"]');
</script>

<script>
    window.have_dsa_term = false;
    // var practiceTab = ; 
</script>

<style>
    .wrapper {
        flex-direction: column !important;
    }
    /* spinner css */
    @keyframes spinner {
        to {transform: rotate(360deg);}
    }
    
    .spinner:before {
        content: '';
        box-sizing: border-box;
        position: absolute;
        top: 50%;
        left: 50%;
        width: 20px;
        height: 20px;
        margin-top: -10px;
        margin-left: -10px;
        border-radius: 50%;
        border: 2px solid #ccc;
        border-top-color: #000;
        animation: spinner .6s linear infinite;
    }

    .report-loader{
        position: relative;
        
    }

    .report-loader.spinner{
        margin-left: 16px;
    }
    .badges{
        display: flex;
        align-items: center;
        position: relative;
    }
    .badges .gfg-badge-icon.md::after{
        transform: scale(0.25);
        position:relative;
        top: 2px;
        left: -2px;
    }
    .sep{
        margin: 0px 5px;
        font-size: 20px;
        color: var(--badge-name-color);
    }
    .pub-count{
        font-size: 14px;
        font-family: var(--font-secondary);
    }
    .badge-details{
        display:none;
    }
    .badges{
        cursor: pointer;
        position: relative;
        /* width: 0px;
        height: 20px;
        top: -32px; */
    }
    .badge-icon{
        display: flex;
        align-items: center;
    }
    .badge-content{
        margin-left: 9px;
    }
    .badge-name{
        color: var(--badge-nam-color);
        font-weight: 600;
        font-size: 16px;
        text-transform: capitalize;
    }
    .badge-data{
        color: #A5A4A4;
        font-size: 10px;
    }
    .badges:hover .badge-details{
        display: block;
        background: var(--badge-bg);
        padding: 10px 18px 10px 18px;
        position: absolute;
        width: 175px;
        top: -10px;
        z-index: 10;
        left: 112%;
        box-shadow: rgb(100 100 111 / 20%) 0px 7px 29px 0px;
        border-radius: 5px;
        /* transform-origin: top right; */
    }
    .badge-details::before {
        content: "";
        position: absolute;
        transform: rotate(90deg);
        /* transform-origin: right; */
        left: -6px;
        top: 50%;
        margin-left: -17px;
        border-width: 12px;
        border-style: solid;
        border-color: var(--badge-bg) transparent transparent transparent;
        margin-top: -12px;
    }
    .badge-icon .icon{
        border: 1px solid var(--icon-border-color);
        padding: 4px 3px;
        border-radius: 4px;
        width: 22px;
        height: 24px;
        position: relative;
    }
    .b-icon-pos{
        position: relative;
        top: -34px;
        left: -34px;
    }
    /* article viewer */
    .article--viewer .a-wrapper{
        margin-top: 0px !important;
    }
    .content{
        padding-top: 10px !important;
    }
    .u-name{
        font-size: 14px;
    }
    .article--viewer_content .a-wrapper .content{
        padding-bottom: 10px !important;
    }
    .likeTooltipBottom{
        font-size: 14px;
    }
    @media (max-width: 434px) {
        .article-buttons.show-bg{
            margin-top: 56px !important;
        }
    }
    @media (max-width: 730px),
            ((min-width: 992px) and (max-width:1100px))  {
        .article--viewer .media{
            position: relative;
        }
        .article--viewer .media{
            margin-bottom: 0px !important;
        }
        .badges:hover .badge-details{
            top: -56px;
            left: 62px;
        }
        .badge-details::before{
            transform: rotate(0deg);
            left: 10%;
            top: 117%;
        }
        .article-buttons.show-bg{
            margin-top: 22px;
            top: 0px !important;
        }
    }
    @media ((min-width:731px) and (max-width:1223px)) {
        .article-buttons.show-bg{
            top: 18px;
        }
    }
    @media ((min-width:993px) and (max-width:1190px)) {
        .article--viewer .media{
            position: relative;
        }
        .article--viewer .media{
            margin-bottom: 25px !important;
        }
    }
</style>
<!-- Survey modal implementation -->
<script>
    function getCookie(name) {
        function escape(s) { return s.replace(/([.*+?\^$(){}|\[\]\/\\])/g, '\\$1'); }
        var match = document.cookie.match(RegExp('(?:^|;\\s*)' + escape(name) + '=([^;]*)'));
        return match ? match[1] : null;
    }
</script>
<!-- END Survey modal implementation-->

<!-- Open in App Button and CSS-->

<!-- Above code is for old openInApp pop-up with open in app and continue buttons-->

<div id='openInApp-modal' class='openInApp'>
    <a href = 'https://geeksforgeeksapp.page.link/?link=https://www.geeksforgeeks.org/introduction-to-subnetting/?type%3Darticle%26id%3D274561&apn=free.programming.programming&isi=1641848816&ibi=org.geeksforgeeks.GeeksforGeeksDev&efr=1' class='openInAppLink'>
        <span style='color: #fff;'>Open In App</span>
    </a>
</div>
    <script>
        var consentValue = localStorage.getItem("gfg_cc");
        var isIOS = !!navigator.platform && /iPad|iPhone|iPod|MacIntel/.test(navigator.platform) && navigator.maxTouchPoints > 0;
        const isSafari = navigator.userAgent.indexOf("Safari") > -1;
        const isMozilla = navigator.userAgent.indexOf("Mozilla") > -1;
        if(consentValue){
            if(window.innerHeight > window.innerWidth && navigator.maxTouchPoints > 1 && (isSafari || isMozilla || navigator.userAgentData.mobile)){
                $('.openInApp').css({
                    display: "block"
                });
                $('#scrollTopBtn').css({
                    bottom: "44px"
                });
                //adding a new class to check stats for clicks on iOS and Android
                isIOS ? jQuery('.openInAppLink').addClass("oia-iOS") : $('.openInAppLink').addClass("oia-android");      //for openInApp Link
            }
        }
        
    </script>
    <style>
        .openInApp{
            display: none;
            bottom: 0px;
            width: 100%;
            position: fixed;
            z-index: 1025;
            opacity: 0.93;
        }
        .openInAppLink{
            height: 44px;
            background: var(--color-gfg);
            font-weight: bold;
            display: block;
            text-align: center;
            padding: 12px;
            font-size: large;
        }
        .openInAppLink, .openInAppLink:hover, .openInAppLink:active, .openInAppLink:visited, .openInAppLink:focus {
            text-decoration:none;
        }
    </style>
<!-- END Open in App Button and CSS-->

            <script>
                companyTagsArray = JSON.parse('[]');
                categoryTagsArray = JSON.parse('[]');
            </script>
            <div class="container-fluid bg-light" id="home-page" style="position: relative; max-width:100%;">
    <div class="article-page_flex">
            <div class="sidebar_wrapper  manual_leftbar ">
                                            <a href="https://www.geeksforgeeks.org/computer-networks/difference-between-subnetting-and-supernetting/" class="next_article_leftbar_container">
                                    <div class="next_article_leftbar_content">
                                            <span class="next_article_text">Next Article:</span>
                                        <div class="next_article_title">Difference between Subnetting and Supernetting</div>
                                    </div>
                                    <img src="https://media.geeksforgeeks.org/auth-dashboard-uploads/ep_right.svg" alt="Next article icon" />
                                </a>
                                      <div class="sideBar " style="height: unset !important">
                <!-- <div class="sideBar--wrap newLeftbar oinLeftbar "> -->
                <div class="sideBar--wrap newLeftbar ">
                                        <div id="GFG_AD_Leftsidebar_300x250_chained_1"></div>
                        <div id="GFG_AD_Leftsidebar_300x250_chained_2"></div>
                        <div id="GFG_AD_Leftsidebar_300x250_chained_3"></div>
                        <div id="GFG_AD_Leftsidebar_300x600_chained_1"></div>
                    </div>
                               </div>
             <div id="GFG_AD_Desktop_LeftSideBar_Docked_160x600" style="max-width:160px; max-height:600px"></div>
        </div>
                <div class="leftBar">
            <div class="article--viewer">
                <div class="article--viewer_content">
                    <div class="a-wrapper">
                        <div class="" style="z-index:9999 !important;position:relative;">
                        </div>
                         <article class="content post-274561 post type-post status-publish format-standard hentry category-computer-networks category-gate-cs" id="post-274561">
                                                                                   <!-- when comment system will be scalable from practice side then we will display  Article/Discussion tab-->
                            <div class="main_wrapper" style="display:flex;">
                                                                <div style="width: 100%;">
                                        <div class="article-title">
                                            <h1>Introduction To Subnetting</h1>
                                        </div>
                                                                                    <div class="last_updated_parent">
                                                <div>
                                                    <span class="strong">Last Updated : </span>
                                                    <span>07 Feb, 2025</span>
                                                </div>

                                                 <!-- three dot menu -->
                                                <div class="three_dot_dropdown"> 
                                                        <div style="display: flex;">
                                                                                                                    <!-- summarized button is removed on 03/04/25 for task T1G-3293 -->
                                                            <!-- <div pid="274561" ptitle="Introduction To Subnetting" class="top-summary-icon-div ">
                                                                <div class="three_dot_dropdown_div tooltip">
                                                                    <span class="summary_tooltiptext">Summarize</span>
                                                                    <div class="summarize_header">
                                                                    <i class= "summary_button" style="position: relative;"></i>
                                                                    </div>
                                                                </div>
                                                            </div> -->
                                                            <!-- share button is placed on 03/04/25 for task T1G-3293 -->
                                                              <div pid="274561" class="article--viewer_share tooltip">
                                                <div class="three_dot_dropdown_div three_dot_dropdown_share"onmouseleave="closeShareModal()" onmouseenter="openShareModal()">
                                                    <div style="display: flex;align-items: center;" class="three_dot_dropdown_inner_div_share" data-gfg-action="share-article" data-bookmark-value="0">
                                                        <i class="gfg-share-icon"></i>
                                                    </div>
                                                </div>
                                            </div>
                                                                                                                                                                                        <div pid="274561" ptitle="Introduction To Subnetting" class="article--viewer_comment tooltip top-comment-icon-div">
                                                                    <span class="comment_tooltiptext">Comments</span>
                                                                    <div class="three_dot_dropdown_div" data-gfg-action='loadComments'>
                                                                        <div class="comment_header">
                                                                        <i class= "discussion_button" style="position: relative; transform: scale(0.9);"></i>
                                                                        </div>
                                                                    </div>
                                                                </div>
                                                                <div pid="274561" ptitle="Introduction To Subnetting" class="article--viewer_improve tooltip">
                                                                <span class="improve_tooltiptext">Improve</span>
                                                                <div class="three_dot_dropdown_div three_dot_dropdown_improve" onclick="improveArticleCall()">
                                                                    <div class="improve_wrapper_top">
                                                                    <i class="gfg-icon gfg-icon-pencil  gfg-icon_edit" style="position: relative; z-index: 3;"></i>
                                                                    </div>
                                                                </div>
                                                            </div> 
                                                                                                                    <!-- three dots -->
                                                        <ul class="dropbtn icons btn-right showLeft" onclick="showDropdown()">
                                                            <li>
                                                                                                                            </li>
                                                            <li></li>
                                                            <li></li>
                                                        </ul>
                                                    </div>
                                                </div> 
                                            </div>
                                                                            </div>
                                                            </div>
                            <!-- menu -->
                            <div id="myDropdown" class="three_dot_dropdown_content">
                            <div class="article-buttons drop" onmouseleave="closeKebabMenu()">
                                            <!-- If the status of the summary API is true than we are showing the summarize button otherwise not  -->
                                            <!--  -->
                                            <div pid="274561" ptitle="Introduction To Subnetting" class="improve_article--viewer tooltip">
                                                <div class="three_dot_dropdown_div three_dot_dropdown_improve" onclick="suggestionArticleCall()" style="margin-top: 1px;">
                                                    <div class="three_dot_dropdown_inner_div improve_dot_dropdown_inner_div">
                                                        <i class="gfg-icon gfg-icon_suggest_changes gfg-icon_edit"></i>
                                                        <span>Suggest changes</span>
                                                    </div>
                                                </div>
                                            </div>
                                                                                         <div pid="274561" class="article--viewer_like tooltip">
                                            <div class="three_dot_dropdown_div three_dot_dropdown_likearticle" onmouseleave='toggleLikeElementVisibility("showLikesContainer", false)'  onmouseenter='toggleLikeElementVisibility("showLikesContainer", true)'>
                                                    <div class="showLikesContainer"> 
                                                        <span class="likeTooltip">Like Article</span>
                                                    </div>
                                                    <div class="three_dot_dropdown_inner_div" data-gfg-action="like-article" data-bookmark-value="0">
                                                        <i class="gfg-icon gfg-icon_thumbs"></i>
                                                        <span>Like</span>
                                                    </div>
                                                </div>
<!-- <button data-gfg-action="like-article" data-bookmark-value="0">
                                                    <i class="gfg-icon gfg-icon_thumbs"></i>
                                                </button> -->
                                            </div>
                                            
                                            <!-- share button is removed from here for web view and placed at the place of summarize on 03/04/25 for task T1G-3293 -->

                                            <!-- <div pid="274561" class="article--viewer_share tooltip">
                                                <div class="three_dot_dropdown_div three_dot_dropdown_share" onmouseleave="closeShareModal()" onmouseenter="openShareModal()">
                                                    <div style="display: flex;align-items: center;" class="three_dot_dropdown_inner_div" data-gfg-action="share-article" data-bookmark-value="0">
                                                        <i class="gfg-share-icon"></i>
                                                        <span>Share</span>
                                                    </div>
                                                </div>
                                            </div> -->
                                            <div class="article--viewer_report tooltip">
                                                <div class="three_dot_dropdown_div three_dot_dropdown_reportarticle">
                                                    <div class="three_dot_dropdown_inner_div" data-gfg-action="report-article" onclick="report_article();">
                                                        <i class="gfg-icon gfg-icon_report"></i>
                                                        <span>Report</span>
                                                    </div>
                                                </div>
<!-- <button data-gfg-action="like-article" data-bookmark-value="0">
                                                    <i class="gfg-icon gfg-icon_thumbs"></i>
                                                </button> -->
                                            </div>
                                            <!-- follow button is removed on 07/04/25 for task T1G-3307 -->
                                            <!-- <div class="article--viewer_Gnews tooltip">
                                                <a class="three_dot_dropdown_inner_div Gnews_wrapper" href ='https://news.google.com/publications/CAAqBwgKMLTrzwsw44bnAw?hl=en-IN&gl=IN&ceid=IN%3Aen' target="_blank">
                                                    <img class="gfg-icon_Gnews no-zoom-in-cursor" src=https://media.geeksforgeeks.org/auth-dashboard-uploads/Google-news.svg  loading="lazy" alt="News"></img>
                                                    <span class='kebab_menu_news_text'>Follow</span>
                                                </a>
                                            </div> -->
                                        </div>
                                    </div>
                            <div class="text">
                                                                <p dir="ltr" style="text-align: justify;"><span>Subnetting is the process of dividing a large network into smaller networks called "subnets." Subnets provide each group of devices with their own space to communicate, which ultimately helps the network to work easily. This also boosts security and makes it easier to manage the network, as each subnet can be monitored and controlled separately.&nbsp;In this article, we will discuss Subnetting in detail.</span></p><h2 style="text-align:left"><span>Introduction to Subnet</span></h2><p dir="ltr" style="text-align: justify;"><span>A subnet is like a smaller group within a large network. It is a way to split a large network into smaller networks so that devices present in one network can transmit data more easily. For example, in a company, different departments can each have their own subnet, keeping their data traffic separate from others. Subnet makes the network faster and easier to manage and also improves the security of the network.</span></p><h2 style="text-align:left"><span>Why Subnetting is Important?</span></h2><p dir="ltr"><span>Let's consider a company that follows </span><a href="https://www.geeksforgeeks.org/introduction-of-classful-ip-addressing/" target="_blank" rel="noopener"><span>classful addressing</span></a><span>, it has a </span><b><strong>Class C network (192.168.1.0/24)</strong></b><span> with </span><b><strong>256</strong></b><a href="https://www.geeksforgeeks.org/what-is-an-ip-address/" target="_blank" rel="noopener"><b><strong> IP addresses</strong></b></a><span>. It has three departments:</span></p><ul><li value="1"><b><strong>Sales</strong></b><span>: 20 devices</span></li><li value="2"><b><strong>HR</strong></b><span>: 10 devices</span></li><li value="3"><b><strong>IT</strong></b><span>: 50 devices</span></li></ul><p dir="ltr"><span>Without subnetting, all departments share the same network, and all </span><b><strong>256 IP addresses</strong></b><span> are available to everyone, which leads to:</span></p><ul><li value="1"><b><strong>IP Waste</strong></b><span>: Only </span><b><strong>80 devices</strong></b><span> are needed (20 + 10 + 50), but all 256 addresses are allocated, wasting </span><b><strong>176 addresses</strong></b><span>.</span></li></ul><ul><li value="1"><b><strong>Performance Issues</strong></b><span>: Since all departments are on the same network, any data sent between devices floods the entire network, slowing communication for everyone. For example, heavy data transfer in IT can impact Sales and HR.</span></li></ul><ul><li value="1"><b><strong>Security Risks</strong></b><span>: Without subnets, anyone in Sales can access HR or IT devices, exposing sensitive data like payroll systems.</span></li></ul><p dir="ltr"><b><strong>With Subnetting</strong></b><span>, we split the network into three subnets, allocating just enough IP addresses for each department:</span></p><ul><li value="1"><b><strong>Sales</strong></b><span>: 192.168.1.0/27 → 32 IPs (for 20 devices, 12 spare)</span></li><li value="2"><b><strong>HR</strong></b><span>: 192.168.1.32/28 → 16 IPs (for 10 devices, 6 spare)</span></li><li value="3"><b><strong>IT</strong></b><span>: 192.168.1.48/26 → 64 IPs (for 50 devices, 14 spare)</span></li></ul><p dir="ltr"><b><strong>By subnetting, we:</strong></b></p><ul><li value="1"><b><strong>Save IP addresses (Efficiency)</strong></b><span>: Only 112 addresses are used (80 + some spare), leaving 144 unused for future growth.</span></li></ul><ul><li value="1"><b><strong>Keep networks faster</strong></b><span> </span><b><strong>(Better Performance)</strong></b><span>: Data within each department stays in its subnet. For example, HR traffic stays in HR, reducing network congestion for Sales and IT.</span></li></ul><ul><li value="1"><b><strong>Protect sensitive data (Improved Security)</strong></b><span>: Each department is isolated. If someone in Sales tries to access HR systems, subnet restrictions block them.</span></li></ul><h2 style="text-align:left"><span>Key Concepts in Subnetting</span></h2><h3 style="text-align:left"><span>IP Addressing</span></h3><p dir="ltr" style="text-align: justify;"><span>An</span><a href="https://www.geeksforgeeks.org/what-is-an-ip-address/" target="_blank" rel="noopener"><span> IP address</span></a><span> is made up of different parts, each serving a specific purpose in identifying a device on a network. An IPv4 address consists of four parts called "octets," separated by dots (e.g., 192.168.1.1). It has two main sections:</span></p><ul><li value="1"><b><strong>Network Portion</strong></b><span>: Identifies the network the device belongs to.</span></li><li value="2"><b><strong>Host Portion</strong></b><span>: Uniquely identifies a device within the network.</span></li></ul><p dir="ltr"><span>IPv4 addresses are divided into classes based on the length of the network and host portions:</span></p><ul><li value="1"><b><strong>Class A</strong></b><span>: 8-bit network ID, 24-bit host ID.</span></li><li value="2"><b><strong>Class B</strong></b><span>: 16-bit network ID, 16-bit host ID.</span></li><li value="3"><b><strong>Class C</strong></b><span>: 24-bit network ID, 8-bit host ID.</span></li></ul><figure class="image"><img src="https://media.geeksforgeeks.org/wp-content/uploads/20250107215830240237/hostandnetid-660x413.png" alt="hostandnetid-660x413" width="660" height="413" srcset="https://media.geeksforgeeks.org/wp-content/uploads/20250107215830240237/hostandnetid-660x413.png 660w,https://media.geeksforgeeks.org/wp-content/uploads/20250107215830240237/hostandnetid-660x413-100.png 100w,https://media.geeksforgeeks.org/wp-content/uploads/20250107215830240237/hostandnetid-660x413-200.png 200w,https://media.geeksforgeeks.org/wp-content/uploads/20250107215830240237/hostandnetid-660x413-300.png 300w"><figcaption> </figcaption></figure><p dir="ltr"><span>For more details, refer to </span><a href="https://www.geeksforgeeks.org/introduction-of-classful-ip-addressing/" target="_blank" rel="noopener"><span>Classful IP Addressing</span></a><span>.</span></p><h3 style="text-align:left"><span>What is a Subnet Mask?</span></h3><p dir="ltr" style="text-align: justify;"><span>A </span><a href="https://www.geeksforgeeks.org/role-of-subnet-mask/" target="_blank" rel="noopener"><b><strong>subnet mask</strong></b></a><span> is a 32-bit number used in IP addressing to separate the network portion of an </span><a href="https://www.geeksforgeeks.org/what-is-an-ip-address/" target="_blank" rel="noopener"><span>IP address</span></a><span> from the host portion. It helps computers and devices determine which part of an IP address refers to the network they are present, and which part refers to their specific location or address within that network.</span></p><h3 style="text-align:left"><b><strong>CIDR Notation: A Simplified Approach to Subnetting</strong></b></h3><p dir="ltr"><span>Instead of using a long subnet mask (e.g., 255.255.255.0), CIDR uses a simple format like </span><b><strong>/24</strong></b><span>. The number after the slash (</span><b><strong>/n</strong></b><span>) represents the number of bits used for the </span><b><strong>network portion</strong></b><span> of the IP address.</span></p><h2 style="text-align:left"><span>How Subnetting Works?</span></h2><p dir="ltr" style="text-align: justify;"><span>The working of subnets starts in such a way that firstly it divides the subnets into smaller subnets. For communicating between subnets, routers are used. Each subnet allows its linked devices to communicate with each other. Subnetting for a network should be done in such a way that it does not affect the network bits.</span></p><p dir="ltr" style="text-align: justify;"><span>In class C the first 3 octets are network bits so it remains as it is.&nbsp;</span></p><ul><li value="1"><b><strong>For Subnet-1: </strong></b><span> The first bit which is chosen from the host id part is zero and the range will be from (193.1.2.00000000 till you get all 1's in the host ID part i.e, 193.1.2.01111111) except for the first bit which is chosen zero for subnet id part. </span></li></ul><p dir="ltr" style="text-align: justify;"><span>Thus, the range of subnet 1 is: </span><b><strong>193.1.2.0 to 193.1.2.127</strong></b><span>&nbsp;</span></p><pre><span>Subnet id of Subnet-1 is : 193.1.2.0</span><br><span>The direct Broadcast id of Subnet-1 is: 193.1.2.127</span><br><span>The total number of hosts possible is: 126 (Out of 128, 2 id's are used for Subnet id &amp; Direct Broadcast id)</span><br><span>The subnet mask of Subnet- 1 is: 255.255.255.128</span></pre><ul><li value="1"><b><strong>For Subnet-2:</strong></b><span> The first bit chosen from the host id part is one and the range will be from (193.1.2.100000000 till you get all 1's in the host ID part i.e, 193.1.2.11111111).</span></li></ul><p dir="ltr" style="text-align: justify;"><span>Thus, the range of subnet-2 is: </span><b><strong>193.1.2.128 to 193.1.2.255</strong></b><span>&nbsp;</span></p><pre><span>Subnet id of Subnet-2 is : 193.1.2.128</span><br><span>The direct Broadcast id of Subnet-2 is: 193.1.2.255</span><br><span>The total number of hosts possible is: 126 (Out of 128, 2 id's are used for Subnet id &amp;  Direct Broadcast id)</span><br><span>The subnet mask of Subnet- 2 is: 255.255.255.128</span><br><span>The best way to find out the subnet mask of a subnet is to set the fixed bit of host-id to 1 and the rest to 0.</span></pre><p dir="ltr" style="text-align: justify;"><span>Finally, after using the subnetting the total number of usable hosts is reduced from 254 to 252.&nbsp;</span></p><p dir="ltr" style="text-align: justify;"><b><strong>Note:</strong></b></p><ol><li value="1"><span> To divide a network into four (2 </span><sup><span>2 </span></sup><span>) parts you need to choose two bits from the host id part for each subnet i.e, (00, 01, 10, 11). </span></li><li value="2"><span> To divide a network into eight (2</span><sup><span> 3 </span></sup><span>) parts you need to choose three bits from the host id part for each subnet i.e, (000, 001, 010, 011, 100, 101, 110, 111) and so on. </span></li><li value="3"><span> We can say that if the total number of subnets in a network increases the total number of usable hosts decreases. </span></li></ol><p dir="ltr" style="text-align: justify;"><b><strong>The network can be divided into two parts:</strong></b><span> To divide a network into two parts, you need to choose one bit for each Subnet from the host ID part.</span></p><img src="https://media.geeksforgeeks.org/wp-content/uploads/subnetting.111111.jpg" alt="Subnetting" width="inherit" height="inherit" loading="lazy"><p dir="ltr" style="text-align: justify;"><span>In the above diagram, there are two Subnets.&nbsp;</span></p><p dir="ltr" style="text-align: justify;"><b><strong>Note:</strong></b><span> It is a class C IP so, there are 24 bits in the network id part and 8 bits in the host id part.</span></p><h3 style="text-align:left"><b><strong>Example 1: </strong></b><span>An organization is assigned a class C network address of 201.35.2.0. It uses a netmask of 255.255.255.192 to divide this into sub-networks. Which of the following is/are valid host IP addresses?</span></h3><ol><li value="1"><span> 201.35.2.129 </span></li><li value="2"><span> 201.35.2.191 </span></li><li value="3"><span> 201.35.2.255 </span></li><li value="4"><span> Both (A) and (C) </span></li></ol><p dir="ltr" style="text-align: justify;"><b><strong>Solution:</strong></b></p><pre><span>Converting the last octet of the netmask into the binary form: 255.255.255.</span><b><strong>11</strong></b><span>000000</span><br><span>Converting the last octet of option 1 into the binary form: 201.35.2.</span><b><strong>10</strong></b><span>000001</span><br><span>Converting the last octet of option 2 into the binary form: 201.35.2.</span><b><strong>10</strong></b><span>111111</span><br><span>Converting the last octet of option 3 into the binary form: 201.35.2.</span><b><strong>11</strong></b><span>111111</span></pre><p dir="ltr" style="text-align: justify;"><span>From the above, we see that Options 2 and 3 are not valid host IP addresses (as they are broadcast addresses of a subnetwork), and </span><b><strong>OPTION 1</strong></b><span> is not a broadcast address and it can be assigned to a host IP.</span></p><h3 style="text-align:left"><b><strong>Example 2: &nbsp;</strong></b><span>An organization has a class C network address of 201.32.64.0. It uses a subnet mask of 255.255.255.248. Which of the following is NOT a valid broadcast address for any subnetworks?</span></h3><ol><li value="1"><span> 201.32.64.135 </span></li><li value="2"><span> 201.32.64.240 </span></li><li value="3"><span> 201.32.64.207 </span></li><li value="4"><span> 201.32.64.231 </span></li></ol><p dir="ltr" style="text-align: justify;"><b><strong>Solution:</strong></b></p><pre><span>Converting the last octet of the netmask into the binary form: 255.255.255.</span><b><strong>11111</strong></b><span>000</span><br><span>Converting the last octet of option 1 into the binary form: 201.32.64.</span><b><strong>10000</strong></b><span>111</span><br><span>Converting the last octet of option 2 into the binary form: 201.32.64.</span><b><strong>11110</strong></b><span>000</span><br><span>Converting the last octet of option 3 into the binary form: 201.32.64.</span><b><strong>11001</strong></b><span>111</span><br><span>Converting the last octet of option 4 into the binary form: 201.32.64.</span><b><strong>11100</strong></b><span>111</span></pre><p dir="ltr" style="text-align: justify;"><span>From the above, we can see that in OPTION 1, 3, and 4, all the host bits are 1 and give the valid broadcast address of subnetworks.</span></p><p dir="ltr" style="text-align: justify;"><span>and </span><b><strong>OPTION 2,</strong></b><span> the last three bits of the Host address are not 1 therefore it's not a valid broadcast address.</span></p><h2 style="text-align:left"><span>Advantages of Subnetting</span></h2><ul><li value="1"><span>It provides security to one network from another network. For example: In an Organization, the code of the Developer department must not be accessed by another department. </span></li></ul><ul><li value="1"><span>It may be possible that a particular subnet might need higher network priority than others. For example, a Sales department needs to host webcasts or video conferences. </span></li></ul><ul><li value="1"><span>In the case of Small networks, maintenance is easy. </span></li></ul><h2 style="text-align:left"><span>Disadvantages of Subnetting</span></h2><ul><li value="1"><span>In the case of a single network, only three steps are required to reach a Process i.e Source Host to Destination Network, Destination Network to Destination Host, and then Destination Host to Process. </span></li></ul><ul><li value="1"><span>In the case of a Single Network only two IP addresses are wasted to represent Network Id and Broadcast address but in the case of Subnetting two IP addresses are wasted for each Subnet. </span></li></ul><ul><li value="1"><span>The cost of the overall Network also increases. Subnetting requires internal </span><a href="https://www.geeksforgeeks.org/introduction-of-a-router/" target="_blank" rel="noopener"><span>routers</span></a><span>, </span><a href="https://www.geeksforgeeks.org/types-of-switches-in-computer-network/" target="_blank" rel="noopener"><span>Switches</span></a><span>, </span><a href="https://www.geeksforgeeks.org/what-is-network-hub-and-how-it-works/" target="_blank" rel="noopener"><span>Hubs</span></a><span>, Bridges, etc. which are very costly. </span></li></ul><p dir="ltr"><span>&nbsp;</span><b><strong>To learn all the basic to advanced subnetting concepts, refer to </strong></b><a href="https://www.geeksforgeeks.org/subnet-cheat-sheet/" target="_blank" rel="noopener"><b><strong>Subnet Mask Cheat Sheet</strong></b></a><b><strong>.</strong></b></p>
                            <!-- Quiz Carousel -->
                            
                        <div class='article_bottom_text'></div><br>
                                                                              <div id="video-tab-content" class="video-tab-content">
                                        <div style="text-align: center; margin: 20px 0px;" id="GFG_AD_InContent_Desktop_728x280"></div>
                                                                                </div>
                                                                <div class="d-row content-bw article-pgnavi v-divider-gfg"style="margin-top: 20px;">
                            <div class="article-pgnavi_prev"><div class="comment_div" data-title="Comments"><button class="author_footer_btn" data-gfg-action="loadComments">
    <div class='discussion_panel'>
        <i class='discussion_button'>
        </i>
        Comment
    </div></button></div><div class="trigger-div"><button class="author_footer_btn"><div class="more_info">More info<span class="more_info_uparrow gfg-icon gfg-icon_arrow-down-thin"></span></div></button></div><a href="https://www.geeksforgeeks.org/about/contact-us/?listicles" target="_blank" class="advertise-with-us-div"><button class="advertise-with-us-btn"><span class="advertise-with-us-text">Advertise with us</span></button></a></div>                                <div class="article-pgnavi_next">
                                <a href="https://www.geeksforgeeks.org/computer-networks/difference-between-subnetting-and-supernetting/" class="pg-head">
                                        <span>Next Article</span>
                                        <span class="gfg-icon gfg-icon_next"></span>
                                    </a>
                                    <!-- <div class="pg-meta">8 Min Read&ensp;|&ensp;<a href="#">Java</a></div> -->
                                    <div class="pg-main">
                                        <a href="https://www.geeksforgeeks.org/computer-networks/difference-between-subnetting-and-supernetting/">Difference between Subnetting and Supernetting</a>
                                    </div>
                                </div>
                                                        </div>
                        <div class="more-info hidden-div ">
                            <div class="article-meta-author-details ">
                                        <div class="article-meta-author-details-block">
                                            <div class="article-meta-author-details-profile-display">
                                                <div class="author_info">
                                                <div class="article-meta-author-details-profile-display-icon">
                                                    <a href="https://www.geeksforgeeks.org/user/nidhi1352singh/" style="text-decoration: none;"><div class="image-wrap" style="position: relative"><img loading="lazy" src="https://media.geeksforgeeks.org/auth/profile/zhc116j7idv67y0ru7oz" class="avatarprofile_image restrict-popup-gfg" alt="author">
        <div style="position: absolute;top: -35px; left: -13px;">
            <i class="gfg-badge-icon md scholar"></i>
        </div>
        </div>
</a>                                                </div>
                                                <div class="article-meta-author-details-profile-display-name" >
                                                    <a aria-label="author profile" href="https://www.geeksforgeeks.org/user/nidhi1352singh/" style="display: block;overflow: hidden;width: 65px;text-decoration: none;text-overflow: ellipsis;color: var(--gfg-title-color);font-weight: bold;white-space: nowrap;">nidhi1352singh</a>                                                </div>
                                                </div>
                                                <div class="author_follow_btn"><div class="article-meta-author-details-follow-button">
            <div class="follow-container">
            <div class="follow-btn" >
<button id="followAuthor" type="button" onclick ="followOrUnfollowAuthor()" value="nidhi1352singh">
<span role="img" aria-label="plus" class="plus-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="plus" width="1em" height="1em" fill="currentColor" aria-hidden="true"><defs><style></style></defs><path d="M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"></path><path d="M176 474h672q8 0 8 8v60q0 8-8 8H176q-8 0-8-8v-60q0-8 8-8z"></path></svg></span> <span>Follow</span></button></div></div></div></div>                                            </div>
                                            
                                        </div>
                                        <div class="article_bottom_suggestion_wrapper">
                                            <!-- <div class="article_bottom_suggestion" data-title="Follow">
                                                <a href='https://news.google.com/publications/CAAqBwgKMLTrzwsw44bnAw?hl=en-IN&gl=IN&ceid=IN%3Aen' target="_blank">
                                                    <img class="gfg-icon_Gnews no-zoom-in-cursor" src=https://media.geeksforgeeks.org/auth-dashboard-uploads/Google-news.svg  loading="lazy" alt="News"></img>
                                                </a>
                                            </div>  -->
                                            <div pid="274561" class="article--viewer_like tooltip tooltipBottom" data-title="Like Article">
                                                <!-- <span class="tooltiptext likeTooltipBottom">Like Article</span> -->
                                                <button id="likeButton" aria-label="like article" data-gfg-action="like-article" data-bookmark-value="0" data-liked="false" style="color: #5B5A5A !important; display: flex; align-items: center; background-color: unset; margin: 0px !important; padding: 5px 0px;">
                                                    <i class="author-badge-like-button"></i>
                                                    <figure id="likeCount" style="margin-left: 3px; margin-top: 4px; color: var(--like-count-color); font-size: 14px; font-weight: 600;" class="favoriteText"></figure>
                                                </button>
                                            </div>
                                            
                                                                            <div class="article_bottom_suggestion" onclick="improveArticleCall()" data-title="Improve">
                                    <span class="improveTooltipBottom">Improve</span>
                                    <i class="author-badge-improvement-button"></i>
                                </div>
                            
                                        </div>
                        </div>
                                                <div class="bottom-wrap" style="margin-top: 12px; margin-bottom: 25px;">
                                                            <div class="improved">
                                    <div class="t-head">Article Tags : </div>
                                    <ul>
                                        
            <li style="border-radius: 25px;" class="">
                <a href="https://www.geeksforgeeks.org/category/computer-subject/computer-networks/">Computer Networks</a>
            </li>
            <li style="border-radius: 25px;" class="">
                <a href="https://www.geeksforgeeks.org/category/gate-cs/">GATE CS</a>
            </li>                                    </ul>
                                                                    </div>
                                                                                </div>
                                                </div>

                                                </article>
                        
                                                                          <div class="article--recommended article--recommended_wrapper" id="similar-reads">
                                                         <h3 class="new-top-bar top-bar-title">Similar Reads</h3>
                                <div class="gfg-similar-reads-list">
                                    <ul class="similarReadLeftBarList"><div class="second"><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/computer-network-tutorials/">Computer Network Tutorial  <div class="gfg-similar-read-item-subheading">A Computer Network is a system where two or more devices are linked together to share data, resources and information. These networks can range from simple setups, like connecting two devices in your home, to massive global systems, like the Internet. Below are the main components of a computer netw</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">7 min read</span>
                </div></a><h2 class="dropdown-title">Basics of Computer Network<span class="gfg-icon gfg-icon_arrow-down-thin"></span></h2><div class="dropdown-item" style="display:none;"><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/basics-computer-networking/">Basics of Computer Networking<div class="gfg-similar-read-item-subheading">A computer network is a collection of interconnected devices that share resources and information. These devices can include computers, servers, printers, and other hardware. Networks allow for the efficient exchange of data, enabling various applications such as email, file sharing, and internet br</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">14 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/introduction-to-basic-networking-terminology/">Introduction to basic Networking Terminology<div class="gfg-similar-read-item-subheading">For a specific purpose if things are connected together, are referred to as a NETWORK. A network can be of many types, like a telephone network, television network, computer network, or even a people network. Similarly, a COMPUTER NETWORK is also a kind of setup, where it connects two or more device</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">4 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/goals-of-networks/">Goals of Networks<div class="gfg-similar-read-item-subheading">Computer Network means an interconnection of autonomous (standalone) computers for information exchange. The connecting media could be a copper wire, optical fiber, microwave, or satellite. Networking Elements - The computer network includes the following networking elements: At least two computers</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">4 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/basic-characteristics-of-computer-networks/">Basic Characteristics of Computer Networks<div class="gfg-similar-read-item-subheading">Computer networks allow multiple devices to connect and share resources like files, printers, and internet access. Key characteristics include the network's size (like local or wide area), the way data is transferred (wired or wireless), and the network's layout (such as star or mesh). These feature</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">5 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/challenges-of-computer-network/">Challenges of Computer Network<div class="gfg-similar-read-item-subheading">In the age of Internet where everyone loves to work with their computers and smart phones it is impossible to think any work without networking. With advancement of technology use of computer networking is increasing rapidly. In general if we will see, we can feel also how important networking is th</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">4 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/physical-components-of-computer-network/">Physical Components of Computer Network<div class="gfg-similar-read-item-subheading">The physical components of a computer network include hardware devices and media that enable connectivity and data exchange between devices. The server, client, peer, transmission media, and connecting devices make up the hardware components. A computer network is made up of several computers connec</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">6 min read</span>
                </div></a></div><h2 class="dropdown-title">Network Hardware and Software<span class="gfg-icon gfg-icon_arrow-down-thin"></span></h2><div class="dropdown-item" style="display:none;"><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/types-of-computer-networks/">Types of Computer Networks<div class="gfg-similar-read-item-subheading">A computer network is a system that connects many independent computers to share information (data) and resources. The integration of computers and other different devices allows users to communicate more easily. It is a collection of two or more computer systems that are linked together. A network</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">11 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/lan-full-form/">LAN Full Form - Local area network<div class="gfg-similar-read-item-subheading">A Local area network (LAN) is a network that is used to link devices in a single office, building, or campus of up to a short distance. LAN is restricted in size. In LAN networks internet speed is from 10 Mbps to 100 Mbps (But now much higher speeds can be achieved). The most common topologies used</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">10 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/how-to-set-up-a-lan-network/">How to Set Up a LAN Network?<div class="gfg-similar-read-item-subheading">LAN (Local Area Network) is a data communication network that locally connects network devices such as workstations, servers, routers, etc. to share the resources within a small area such as a building or campus. Physical or wireless connections are set up between workstations to share the resources</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">4 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/man-full-form-in-computer-networking/">MAN Full Form in Computer Networking<div class="gfg-similar-read-item-subheading">A Metropolitan Area Network (MAN) is a type of computer network that spans over a metropolitan area, typically a city. It provides high-speed data communication services such as video, audio, and data transfer between multiple LANs (Local Area Networks) and WANs (Wide Area Networks). The main purpos</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">9 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/man-full-form/">MAN Full Form<div class="gfg-similar-read-item-subheading">MAN stands for Metropolitan Area Network and it is made by connecting multiple LANs. MAN covers a geographical area which is known as the metropolitan area. It serves as a connection that is larger than LAN(Local Area Network) but smaller than WAN(Wide Area Network). It generally covers the area of</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">5 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-science-fundamentals/wan-full-form/">WAN Full Form<div class="gfg-similar-read-item-subheading">A WAN (Wide Area Network) is to connect multiple smaller Local Area Networks (LANs). It is a computer network designed. WANs can help in communication, the sharing of information, and much more between systems or devices from around the world through a WAN provider. What is a WAN?WAN stands for Wide</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">5 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/introduction-of-internetworking/">Introduction of Internetworking<div class="gfg-similar-read-item-subheading">Internetworking is composed of 2 words, inter and networking, which implies an association between totally different nodes or segments. This connection area unit is established through intercessor devices, such as routers or gateways. The first term for associate degree internetwork was Catenet. Thi</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">8 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/difference-between-internet-intranet-and-extranet/">Difference between Internet, Intranet and Extranet<div class="gfg-similar-read-item-subheading">Networks are crucial in today&acirc;&#128;&#153;s globalized world because they allow the acquisition, exchange, and organization of knowledge. Of all the first order networks the Internet, Intranet, and Extranet are commonly utilized for various applications. Every network type meets specific roles that are required</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">5 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/protocol-hierarchies-in-computer-network/">Protocol Hierarchies in Computer Network<div class="gfg-similar-read-item-subheading">A Protocol Hierarchy is a fixed set of rules and conventions that govern the communication between two or more computers. The hierarchical structure allows for modular design, interoperability, and ease of implementation in computer networks. What is Protocol?A protocol is simply defined as a set of</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">3 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/network-devices-hub-repeater-bridge-switch-router-gateways/">Network Devices (Hub, Repeater, Bridge, Switch, Router, Gateways and Brouter)<div class="gfg-similar-read-item-subheading">Network devices are physical devices that allow hardware on a computer network to communicate and interact with each other. Network devices like hubs, repeaters, bridges, switches, routers, gateways, and brouter help manage and direct data flow in a network. They ensure efficient communication betwe</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">9 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/introduction-of-a-router/">Introduction of a Router<div class="gfg-similar-read-item-subheading">Network devices are physical devices that allow hardware on a computer network to communicate and interact with one another. For example Repeater, Hub, Bridge, Switch, Routers, Gateway, Router, and NIC, etc. What is a Router?A Router is a networking device that forwards data packets between computer</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">12 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/introduction-of-gateways/">Introduction of Gateways<div class="gfg-similar-read-item-subheading">A gateway is a network connectivity device that connects two different configuration networks. Gateways are also known as protocol converters, because they play an important role in converting protocols supported by traffic on different networks. As a result, it allows smooth communication between t</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">5 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/what-is-a-network-switch-and-how-does-it-work/">What is a Network Switch and How Does it Work?<div class="gfg-similar-read-item-subheading">The Switch is a network device that is used to segment the networks into different subnetworks called subnets or LAN segments. It is responsible for filtering and forwarding the packets between LAN segments based on MAC address.&Acirc;&nbsp;Switches have many ports, and when data arrives at any port, the destin</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">9 min read</span>
                </div></a></div><h2 class="dropdown-title">Network Topology<span class="gfg-icon gfg-icon_arrow-down-thin"></span></h2><div class="dropdown-item" style="display:none;"><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/types-of-network-topology/">Types of Network Topology<div class="gfg-similar-read-item-subheading">Network topology refers to the arrangement of different elements like nodes, links, or devices in a computer network. Common types of network topology include bus, star, ring, mesh, and tree topologies, each with its advantages and disadvantages. In this article, we will discuss different types of n</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">12 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/difference-between-physical-and-logical-topology/">Difference between Physical and Logical Topology<div class="gfg-similar-read-item-subheading">A Physical and Logical topologies are important concepts that govern the formation and operation of networks. In this article we will see differences between both topologies, and troubleshooting network infrastructure. What is Physical Topology?Physical topology indicates the arrangement of differen</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">5 min read</span>
                </div></a></div><h2 class="dropdown-title">OSI Model<span class="gfg-icon gfg-icon_arrow-down-thin"></span></h2><div class="dropdown-item" style="display:none;"><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/open-systems-interconnection-model-osi/">What is OSI Model? - Layers of OSI Model<div class="gfg-similar-read-item-subheading">The OSI (Open Systems Interconnection) Model is a set of rules that explains how different computer systems communicate over a network. OSI Model was developed by the International Organization for Standardization (ISO). The OSI Model consists of 7 layers and each layer has specific functions and re</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">13 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/physical-layer-in-osi-model/">Physical Layer in OSI Model<div class="gfg-similar-read-item-subheading">The physical Layer is the bottom-most layer in the Open System Interconnection (OSI) Model which is a physical and electrical representation of the system. It consists of various network components such as power plugs, connectors, receivers, cable types, etc. The physical layer sends data bits from</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">4 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/data-link-layer/">Data Link Layer in  OSI Model<div class="gfg-similar-read-item-subheading">The data link layer is the second layer from the bottom in the OSI (Open System Interconnection) network architecture model. It is responsible for the node-to-node delivery of data within the same local network. Its major role is to ensure error-free transmission of information. DLL is also responsi</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">5 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/session-layer-in-osi-model/">Session Layer in OSI model<div class="gfg-similar-read-item-subheading">The Session Layer is the 5th layer in the Open System Interconnection (OSI) model which plays an important role in controlling the dialogues (connections) between computers. This layer is responsible for setting up, coordinating, and terminating conversations, exchanges, and dialogues between the ap</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">6 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/presentation-layer-in-osi-model/">Presentation Layer in OSI model<div class="gfg-similar-read-item-subheading">Presentation Layer is the 6th layer in the Open System Interconnection (OSI) model. This layer is also known as Translation layer, as this layer serves as a data translator for the network. The data which this layer receives from the Application Layer is extracted and manipulated here as per the req</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">4 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/application-layer-in-osi-model/">Application Layer in OSI Model<div class="gfg-similar-read-item-subheading">The Application Layer of OSI (Open System Interconnection) model, is the top layer in this model and takes care of network communication. The application layer provides the functionality to send and receive data from users. It acts as the interface between the user and the application. The applicati</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">5 min read</span>
                </div></a></div><h2 class="dropdown-title">Protocols<span class="gfg-icon gfg-icon_arrow-down-thin"></span></h2><div class="dropdown-item" style="display:none;"><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/protocol-and-standard-in-computer-networks/">Protocol and Standard in Computer Networks<div class="gfg-similar-read-item-subheading">Protocols and standards are important in computer networks. They are like the rules and guidelines that allow different devices and systems to communicate and work together smoothly. Protocols define how data is sent, received, and processed, while standards ensure that various technologies are comp</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">9 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/examples-of-data-link-layer-protocols/">Examples of Data Link Layer Protocols<div class="gfg-similar-read-item-subheading">Data Link Layer protocols are generally responsible for ensuring and confirming that the bits and bytes received are identical to the bits and bytes being transferred. It is a set of specifications that are used for the implementation of the data link layer just above the physical layer of the Open</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">5 min read</span>
                </div></a></div><h2 class="dropdown-title">TCP/IP Model<span class="gfg-icon gfg-icon_arrow-down-thin"></span></h2><div class="dropdown-item" style="display:none;"><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/tcp-ip-model/">TCP/IP Model<div class="gfg-similar-read-item-subheading">The TCP/IP model (Transmission Control Protocol/Internet Protocol) is a four-layer networking framework that enables reliable communication between devices over interconnected networks. It provides a standardized set of protocols for transmitting data across interconnected networks, ensuring efficie</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">7 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/tcp-ip-ports-and-its-applications/">TCP/IP Ports and Its Applications<div class="gfg-similar-read-item-subheading">A port is like a logical address for different types of internet communication. Each type of service (like websites or email) has its port where data is sent and received. You can think of it as a mailbox where messages are delivered. When data comes in, it goes to the right port (mailbox), and the</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">7 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/what-is-transmission-control-protocol-tcp/">What is TCP (Transmission Control Protocol)?<div class="gfg-similar-read-item-subheading">Transmission Control Protocol (TCP) is a connection-oriented protocol for communications that helps in the exchange of messages between different devices over a network. It is one of the main protocols of the TCP/IP suite. In OSI model, it operates at the transport layer(Layer 4). It lies between th</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">5 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/tcp-3-way-handshake-process/">TCP 3-Way Handshake Process<div class="gfg-similar-read-item-subheading">The TCP 3-Way Handshake is a fundamental process that establishes a reliable connection between two devices over a TCP/IP network. It involves three steps: SYN (Synchronize), SYN-ACK (Synchronize-Acknowledge), and ACK (Acknowledge). During the handshake, the client and server exchange initial sequen</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">6 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/services-and-segment-structure-in-tcp/">Services and Segment structure in TCP<div class="gfg-similar-read-item-subheading">The Transmission Control Protocol is the most common transport layer protocol. It works together with IP and provides a reliable transport service between processes using the network layer service provided by the IP protocol. The various services provided by the TCP to the application layer are as f</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">5 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/tcp-connection-establishment/">TCP Connection Establishment<div class="gfg-similar-read-item-subheading">TCP (Transmission Control Protocol) is a core internet protocol that ensures reliable, ordered, and error-checked delivery of data between computers. It establishes a connection using a three-way handshake before data transfer begins, allowing both devices to synchronize and agree on communication p</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">4 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/tcp-connection-termination/">TCP Connection Termination<div class="gfg-similar-read-item-subheading">In TCP 3-way Handshake Process we studied that how connections are established between client and server in Transmission Control Protocol (TCP) using SYN bit segments. In this article, we will study how TCP close connection between Client and Server. Here we will also need to send bit segments to a</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">5 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/tcp-timers/">TCP Timers<div class="gfg-similar-read-item-subheading">TCP uses several timers to ensure that excessive delays are not encountered during communications. Several of these timers are elegant, handling problems that are not immediately obvious at first analysis. Each of the timers used by TCP is examined in the following sections, which reveal its role in</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">3 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/fast-recovery-technique-for-loss-recovery-in-tcp/">Fast Recovery Technique For Loss Recovery in TCP<div class="gfg-similar-read-item-subheading">When the RTO timer expires but an ACK is not received, the sender confirms that the packet is lost due to congestion at intermediary devices. Now sender has to tackle this congestion state carefully. Fast Recovery is the packet loss recovery technique. Recovery means becoming inactive and not transm</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">4 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/difference-between-osi-model-and-tcp-ip-model/">Difference Between OSI Model and TCP/IP Model<div class="gfg-similar-read-item-subheading">Data communication is a process or act in which we can send or receive data. Understanding the fundamental structures of networking is crucial for anyone working with computer systems and communication. For data communication two models are available, the OSI (Open Systems Interconnection) Model, an</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">5 min read</span>
                </div></a></div><h2 class="dropdown-title">Medium Access Control<span class="gfg-icon gfg-icon_arrow-down-thin"></span></h2><div class="dropdown-item" style="display:none;"><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/mac-full-form/">MAC Full Form - Media Access Control<div class="gfg-similar-read-item-subheading">MAC refers to Media Access Control, which is an important issue in network technology. In simple words, MAC is a series of rules through which devices can transfer data among them in a network. When a device is connected to a network, it obtains a unique MAC address. It identifies a device connected</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">5 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/channel-allocation-problem-in-computer-network/">Channel Allocation Problem in Computer Network<div class="gfg-similar-read-item-subheading">The Channel Allocation Problem arises in communication networks when multiple devices need to share a limited number of communication channels. The goal is to efficiently allocate channels to devices while avoiding interference, reducing congestion, and optimizing network performance. Channel alloca</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">4 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/multiple-access-protocols-in-computer-network/">Multiple Access Protocols in Computer Network<div class="gfg-similar-read-item-subheading">Multiple Access Protocols are methods used in computer networks to control how data is transmitted when multiple devices are trying to communicate over the same network. These protocols ensure that data packets are sent and received efficiently, without collisions or interference. They help manage t</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">9 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/carrier-sense-multiple-access-csma/">Carrier Sense Multiple Access (CSMA)<div class="gfg-similar-read-item-subheading">Carrier Sense Multiple Access (CSMA) is a method used in computer networks to manage how devices share a communication channel to transfer the data between two devices. In this protocol, each device first sense the channel before sending the data. If the channel is busy, the device waits until it is</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">9 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/collision-detection-csmacd/">Collision Detection in CSMA/CD<div class="gfg-similar-read-item-subheading">CSMA/CD (Carrier Sense Multiple Access/ Collision Detection) is a media access control method that was widely used in Early Ethernet technology/LANs when there used to be shared&Acirc;&nbsp;Bus Topology and each node ( Computers) was connected by Coaxial Cables. Nowadays Ethernet is Full Duplex and Topology is</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">7 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/controlled-access-protocols-in-computer-network/">Controlled Access Protocols in Computer Network<div class="gfg-similar-read-item-subheading">Controlled Access Protocols (CAPs) in computer networks&Acirc;&nbsp;control how data packets are sent over a common communication medium. These protocols ensure that data is transmitted efficiently, without collisions, and with little interference from other data transmissions. In this article, we will discuss</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">6 min read</span>
                </div></a></div><h2 class="dropdown-title">SLIDING WINDOW PROTOCOLS<span class="gfg-icon gfg-icon_arrow-down-thin"></span></h2><div class="dropdown-item" style="display:none;"><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/stop-and-wait-arq/">Stop and Wait ARQ<div class="gfg-similar-read-item-subheading">Stop and Wait ARQ is a Sliding Window Protocol method used for the reliable delivery of data frames. The stop-and-wait ARQ is used for noisy channels or links to handle flow and error control between sender and receiver. The Stop and Wait ARQ protocol sends a data frame and then waits for an acknowl</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">9 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/sliding-window-protocol-set-3-selective-repeat/">Sliding Window Protocol | Set 3 (Selective Repeat)<div class="gfg-similar-read-item-subheading">Prerequisite : Sliding Window Protocol - Set 1 (Sender Side), Set 2 (Receiver Side) Why Selective Repeat Protocol? The go-back-n protocol works well if errors are less, but if the line is poor it wastes a lot of bandwidth on retransmitted frames. An alternative strategy, the selective repeat protoco</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">3 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/piggybacking-in-computer-networks/">Piggybacking in Computer Networks<div class="gfg-similar-read-item-subheading">Piggybacking is the technique of delaying outgoing acknowledgment temporarily and attaching it to the next data packet. When a data frame arrives, the receiver waits and does not send the control frame (acknowledgment) back immediately. The receiver waits until its network layer moves to the next da</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">5 min read</span>
                </div></a></div><h2 class="dropdown-title active">IP Addressing<span class="gfg-icon gfg-icon_arrow-down-thin upside"></span></h2><div class="dropdown-item" style="display:block"><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/what-is-ipv4/">What is IPv4?<div class="gfg-similar-read-item-subheading">IP stands for Internet Protocol version v4 stands for Version Four (IPv4), is the most widely used system for identifying devices on a network. It uses a set of four numbers, separated by periods (like 192.168.0.1), to give each device a unique address. This address helps data find its way from one</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">5 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/what-is-ipv6/">What is IPv6?<div class="gfg-similar-read-item-subheading">The most common version of the Internet Protocol currently is IPv6. The well-known IPv6 protocol is being used and deployed more often, especially in mobile phone markets. IP address determines who and where you are in the network of billions of digital devices that are connected to the Internet. It</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">5 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/introduction-of-classful-ip-addressing/">Introduction of Classful IP Addressing<div class="gfg-similar-read-item-subheading">An IP address is an address that has information about how to reach a specific host, especially outside the LAN. An IP address is a 32-bit unique address having an address space of 232.Classful IP addressing is a way of organizing and managing IP addresses, which are used to identify devices on a ne</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">11 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/ip-addressing-classless-addressing/">Classless Addressing in IP Addressing<div class="gfg-similar-read-item-subheading">The Network address identifies a network on the internet.&Acirc;&nbsp;Using this, we can find a range of addresses in the network and total possible number of hosts in the network. Mask is a 32-bit binary number that gives the network address in the address block when AND operation is bitwise applied on the mas</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">7 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/classful-vs-classless-addressing/">Classful vs Classless Addressing<div class="gfg-similar-read-item-subheading">Classful and Classless addressing are methods used in networking to manage IP addresses. Classful addressing divides IP addresses into fixed classes (A, B, C, D, E), each with predefined ranges. In contrast, classless addressing, also known as CIDR (Classless Inter-Domain Routing), offers more flexi</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">6 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/classless-inter-domain-routing-cidr/">Classless Inter Domain Routing (CIDR)<div class="gfg-similar-read-item-subheading">Classless Inter-Domain Routing (CIDR) is a method of IP address allocation and IP routing that allows for more efficient use of IP addresses. CIDR is based on the idea that IP addresses can be allocated and routed based on their network prefix rather than their class, which was the traditional way o</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">6 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/supernetting-in-network-layer/">Supernetting in Network Layer<div class="gfg-similar-read-item-subheading">Supernetting is the opposite of Subnetting. In subnetting, a single big network is divided into multiple smaller subnetworks. In Supernetting, multiple networks are combined into a bigger network termed a Supernetwork or Supernet. In this article, we'll explore the purpose and advantages of supernet</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">4 min read</span>
                </div></a><a class="similarReadDropdownItem currentpage" href="https://www.geeksforgeeks.org/computer-networks/introduction-to-subnetting/">Introduction To Subnetting<div class="gfg-similar-read-item-subheading">Subnetting is the process of dividing a large network into smaller networks called "subnets." Subnets provide each group of devices with their own space to communicate, which ultimately helps the network to work easily. This also boosts security and makes it easier to manage the network, as each sub</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">8 min read</span>
                </div></a><a class="similarReadDropdownItem" href="https://www.geeksforgeeks.org/computer-networks/difference-between-subnetting-and-supernetting/">Difference between Subnetting and Supernetting<div class="gfg-similar-read-item-subheading">Subnetting is the procedure to divide the network into sub-networks or small networks, these smaller networks are known as subnets. The subnet is also defined as an internal address made up of a combination of a small network and host segments. In a subnet, a few bits from the host portion are used</div>
                <div class="reading-time">
                    <i class="reading-time-icon" data-gfg-action="readingtime"></i>
                    <span style="color: var(--recommendation-card-text-color);font-size: 14px;font-weight: 500;line-height: 17px;">4 min read</span>
                </div></a></div></div></ul>
                                </div>
                            </div>
                            
                        


                                                <div class="vote-wrap">
                                <div style="display:none;align-items:center;justify-content:center;width:100%;">
                                    <button aria-label="like" data-type="like" class="vote-this" style="margin-right: 0; margin-left:0 ;">
                                        <i class="gfg-icon gfg-icon_like favoriteIcon"></i>
                                        <span class="favoriteLike">Like</span>
                                        <figure class="favoriteText"></figure>
                                    </button>
                                                                    </div>
                            </div>

                        </div>
                            <div class="article-meta">
                                                                                    <div class="bottom-wrap">
                              <div id="GFG_AD_InContent_Desktop_BTF_650x250" style="text-align:center;max-height: 300px;"></div>
                            </div>
                                                        <!-- end -->
                        </div>
                    </div>
                </div>
            </div>
                <div id="report_modal_content" class="report_modal_content" style="display:hidden;"></div>
        <div class="onopen-discussion-panel">
            <div class="discussion-tab">
                <div class="discussion_heading">
                    <div></div>
                    <i class="gfg-icon close-tab-icon"></i>
                </div> 
                <div class="discussion_content">                            <div style="height:100%">
                                <div style="height:100%" id="comment-system"></div>
                            </div>

                            
</div>
            </div>
        </div>  

        <div class="rightBar" style="padding-right: 5px;">
                
<style>
	.article--container_content{
		align-items: unset !important;
	}
	.sideBar {
		position: sticky !important;
	}
	.gfg-icon_switch::after {
		background-position: -40px -281px !important;
	}
	.gfg-icon_transaction::after {
		background-position: -40px -321px !important;
	}
	.header-main__profile.selected+.mega-dropdown{
		width: 225px !important;
	}
	#courses-container .course-price{
		display:none;
	}
	/* .side--container_wscard .card-content .content .meta:empty, .practiceBannerFromPlugin{
		display:none !important;
	} */
	.side--container_wscard .card-content .content .meta{
		display:block !important;
	}
	.side--container_wscard .card-content .content .meta p{
		background-color: rgba(254, 212, 91, 0.6);
		font-size: 10pt;
		font-weight: bold;
		display: inline-block;
		color: var(--color-black);
		margin-top: 15px;
		padding: 0px 5px;
	}
	#try-it{
		display:initial !important;
	}
	#try-it .try-it-div{
		line-height: 34px;
	}
	.gfg-icon_dark-mode::after {
		background-position: -40px -680px;
	}
	.side--container_wscard .head{
		font-size: 14px !important;
	}
	.nineDot-menu, .gfg-icon_ndot{
		display: none;
	}
	#text-15{
		flex-direction: column;
	}
	.mtq_correct_marker, .mtq_wrong_marker{
		display: none;
	}
	.sidebar_wrapper > :last-child{
		margin: unset !important;
		margin-left: 5px !important;
		margin-top: 20px !important;
		top: 70px !important;
	}
	.darkMode-wrap{
		bottom:1% !important;
	}
	#secondary .textwidget{
		margin-left: auto;
		margin-right: 0;
		text-align: right;
	}
	#secondary .widget_text:last-child{
		top: 70px !important;
	}
	@media(max-width:768px){
		#scrollTopBtn{
			display:none !important;
		}
	}
	.rightbar_loggedin_promo_cta{
		display:flex;
		cursor:pointer;
		margin-bottom:20px;
	}
</style>

<div id="secondary" class="widget-area">
	
	<!------------------------ text-15 (for Ads) ------------------------ -->
	<aside id="text-15" class="widget widget_text">
		<div class="textwidget">
					<div id="_GFG_ABP_Desktop_RightSideBar_ATF_300x600_2"></div>
			<div id="GFG_AD_Desktop_RightSideBar_ATF_300x250_2" style="min-width: 300px;margin-bottom:10px;"></div>
			<div id='GFG_AD_Desktop_RightSideBar_ATF_300x600' style='min-width: 300px; min-height: 600px;margin-bottom:10px;'></div>
					</div>
	</aside>

	<!------------------------ text-16 (For Ads)------------------------ -->
	<aside id="text-16" class="widget widget_text">
		<div class="textwidget">
					<div id="_GFG_ABP_Desktop_RightSideBar_MTF_300x600"></div>
			<div id='GFG_AD_Desktop_RightSideBar_MTF_300x250' style='min-width: 300px;'></div>
			<div id="_GFG_ABP_Desktop_RightSideBar_BTF_300x600"></div>
			<div id="_GFG_ABP_Desktop_RightSideBar_BTF_300x600_3"></div>
				</div>
	</aside>
	<!-- ---------------------- courses section ------------------------- -->
	    <!-- <script>
        var rightBarExploreMoreList = ``
	</script> -->

	<!-------------------------------- Text-18 (explore more section + ads) --------------------------->
	<aside id="text-18" class="widget widget_text">
		<div class="textwidget">
					<div id='GFG_AD_Desktop_RightSideBar_BTF_Sticky_300x250' style='min-width: 300px;margin-bottom:10px'></div>
			<div id='GFG_AD_Desktop_RightSideBar_Docked_160x600' style='min-width: 160px;'></div><div id='GFG_AD_Desktop_RightSideBar_BTFdocked_300x600' style='min-width: 300px;'></div>
			</aside>

	<!-------------------------- Text -20 (For maintaining some CSS) ---------------------- -->
	<aside id="text-20" class="widget widget_text">
		<div class="textwidget">
		 <!-- Please do not delete this div -->
		</div>
	</aside>
</div>

                <div id="user-personal-note" style="display: none;"></div>
        </div>
    </div>
    <section class="disqus-section">
        <div class="article-page_flex">
            <div class="leftBar">
            </div>
        </div>
    </section>
</div>

<div id="video-popup" style="display:none"></div>

<link rel="stylesheet" href='https://www.geeksforgeeks.org/wp-content/themes/iconic-one/css/articleList.min.css?ver=1.8'>

<script>
    var commentConfig = function () {
    this.identifier = 'gfg_' + post_type + '_' + post_id;
    this.title = encodeURIComponent(post_title);
    this.domain = 'gfg';
    this.pageURL = encodeURIComponent($(location).attr('href').replace('www.cdn.geeksforgeeks.org', 'www.geeksforgeeks.org'));
    this.mode = (getThemeFromCookie() === 'gfgThemeDark') ? 'dark' : 'light';
};
$(function () {
    if($('.main_wrapper').length){
        var main_offset = $('.main_wrapper').offset().top;
    }
    var width = $(".main_wrapper").innerWidth() + 10;

    jQuery("#comment").on("click", function () {

        jQuery(this).hide();
    });

    $(document).on("click", "[data-gfg-action='loadComments']", function (e) {
        if ($("#comment-system").length === 0) {
            var commentSectionTemplate = ` <div class="disqus--viewer">
                                                <div style="height:100%" class="comment-section" hidden>
                                                    <div style="height:100%">
                                                        <div style="height:100%" id="comment-system"></div>
                                                    </div>
                                                </div>
                                            </div`;
            $(commentSectionTemplate).insertBefore(".article--recommended");
        }
        loadComments();
    });
});

function loadComments() {
    if ($("iframe[id*='discuss-iframe']").length < 1) {
        (function () {
            var d = document,
                s = d.createElement("script");
            s.src = commentSysUrl;
            (d.head || d.body).appendChild(s);
        })();

    }

    if (!$('.comment-section').is(':visible')) {
        $('.comment-section').show();
    }
}
function improveArticleCall() {
    $('.improve-modal--overlay').show();
    $('.improve-modal--improvement').show();
    $('.locked-status--impove-modal').css("display", "none");
    $('.improve-modal--improvement').attr("status", "unlocked");
    $('.unlocked-status--improve-modal-content').css("display", "block");
}
function showDropdown() {
    document.getElementById("myDropdown").classList.toggle("show");
}

// Close the dropdown if the user clicks outside of it
$(window).click(function (e) {
    if ($('.three_dot_dropdown_content').hasClass("show") && !(e.target.matches('.dropbtn') || (e.target.closest('#myDropdown') && e.target.closest('#myDropdown').matches('#myDropdown')))) {
        $('.three_dot_dropdown_content').removeClass("show");
    }
});


function suggestionArticleCall() {
    $('.improve-modal--overlay').show();
    $('.improve-modal--improvement').css("display", "none");
    $('.thank-you-message').css("display","none");  
    $('.improve-modal--suggestion').show();
    $('#suggestion-section-textarea').show();
    if(suggestEditorInstance !== null){
        suggestEditorInstance.setEditorValue("");
    }
    $('.suggestion-section').css('display', 'block');
    jQuery('.suggest-bottom-btn').css("display","block");
    $('.suggest-bottom-btn').html("Suggest changes");
    $('.left-arrow-icon_wrapper').hide();
    $('.locked-status--impove-modal').css("display", "none");
    $('.improve-modal--improvement').attr("status", "unlocked");
    $('.unlocked-status--improve-modal-content').css("display", "block");
    return;
}
$(document).ready(function() {
    var isfollowingApiCall = false;
    if ($('.follow-btn').length) {
        var articleRecommendedTop = $(".article--recommended").offset().top;
        var articleRecommendedBottom = articleRecommendedTop + $(".article--recommended").outerHeight();
        $(window).scroll(function() {
            var top_of_element = $(".article--recommended").offset().top;
            var bottom_of_element = $(".article--recommended").offset().top + $(".article--recommended").outerHeight();
            var bottom_of_screen = $(window).scrollTop() + $(window).innerHeight();
            var top_of_screen = $(window).scrollTop();
            if ((bottom_of_screen > top_of_element && top_of_screen < bottom_of_element) || 
                (bottom_of_screen > articleRecommendedTop && top_of_screen < articleRecommendedBottom) ||
                (top_of_screen > articleRecommendedBottom)) {
                if (!isfollowingApiCall) {
                    isfollowingApiCall = true;
                    setTimeout(function(){
                        if (loginData && loginData.isLoggedIn) {
                            if (loginData.userName !== $('#followAuthor').val()) {
                                is_following();
                            } else {
                                $('.profileCard-profile-picture').css('background-color', '#E7E7E7');
                            }
                        } else {
                            $('.follow-btn').removeClass('hideIt');
                        }
                    }, 3000);
                }
            }
        });
    }
    
    $(".accordion-header").click(function() {
        var arrowIcon = $(this).find('.bottom-arrow-icon');
        arrowIcon.toggleClass('rotate180');
    });

});

window.isReportArticle = false;
function report_article(){
    if (!loginData || !loginData.isLoggedIn) {
        const loginModalButton = $('.login-modal-btn')
            if (loginModalButton.length) {
                loginModalButton.click();
            }
    return;
}

    if(!window.isReportArticle){
            //to add loader
            $('.report-loader').addClass('spinner');
            jQuery('#report_modal_content').load(gfgSiteUrl+'wp-content/themes/iconic-one/report-modal.php', {
                PRACTICE_API_URL: practiceAPIURL,
                PRACTICE_URL:practiceURL
            },function(responseTxt, statusTxt, xhr){
                if(statusTxt == "error"){
                    alert("Error: " + xhr.status + ": " + xhr.statusText);
                }
            });
    }else{
        window.scrollTo({ top: 0, behavior: 'smooth' });
        $("#report_modal_content").show();
    }
} 

function closeShareModal() {
    const shareOption = document.querySelector('[data-gfg-action="share-article"]');
    shareOption.classList.remove("hover_share_menu");
    let shareModal = document.querySelector(".hover__share-modal-container");
    shareModal && shareModal.remove();
}

function openShareModal() {
    closeShareModal(); // Remove existing modal if any

    let shareModal = document.querySelector(".three_dot_dropdown_share");
    shareModal.appendChild(Object.assign(document.createElement("div"), { className: "hover__share-modal-container" }));

    document.querySelector(".hover__share-modal-container").append(
        Object.assign(document.createElement('div'), { className: "share__modal" }),
    );

    document.querySelector(".share__modal").append(Object.assign(document.createElement('h1'), { className: "share__modal-heading" }, { textContent: "Share to" }));
    const socialOptions = ["LinkedIn", "WhatsApp","Twitter", "Copy Link"];

    socialOptions.forEach((socialOption) => {
        const socialContainer = Object.assign(document.createElement('div'), { className: "social__container" });
        const icon = Object.assign(document.createElement("div"), { className: `share__icon share__${socialOption.split(" ").join("")}-icon` });
        const socialText = Object.assign(document.createElement("span"), { className: "share__option-text" }, { textContent: `${socialOption}` });
        const shareLink = (socialOption === "Copy Link") ? 
            Object.assign(document.createElement('div'), { role: "button", className: "link-container CopyLink" }) : 
            Object.assign(document.createElement('a'), { className: "link-container" });

       
        if (socialOption === "LinkedIn") {
            shareLink.setAttribute('href', `https://www.linkedin.com/sharing/share-offsite/?url=${window.location.href}`);
            shareLink.setAttribute('target', '_blank');
        }
        if (socialOption === "WhatsApp") {
            shareLink.setAttribute('href', `https://api.whatsapp.com/send?text=${window.location.href}`); 
            shareLink.setAttribute('target', "_blank");
        }
        if (socialOption === "Twitter") {
            shareLink.setAttribute('href', `https://twitter.com/intent/tweet?url=${window.location.href}`); 
            shareLink.setAttribute('target', "_blank");
        }

        shareLink.append(icon, socialText);
        socialContainer.append(shareLink);
        document.querySelector(".share__modal").appendChild(socialContainer);

        //adding copy url functionality
        if(socialOption === "Copy Link") {
            shareLink.addEventListener("click", function() {
                var tempInput = document.createElement("input");
                tempInput.value = window.location.href; 
                document.body.appendChild(tempInput); 
                tempInput.select();
                tempInput.setSelectionRange(0, 99999); // For mobile devices
                document.execCommand('copy');
                document.body.removeChild(tempInput);
                this.querySelector(".share__option-text").textContent = "Copied"
            })
        }
    });
    // document.querySelector(".hover__share-modal-container").addEventListener("mouseover", () => document.querySelector('[data-gfg-action="share-article"]').classList.add("hover_share_menu"));
}
function toggleLikeElementVisibility(selector, show) {
    document.querySelector(`.${selector}`).style.display = show ? "block" : "none";
}

function closeKebabMenu(){
    document.getElementById("myDropdown").classList.toggle("show");
}

</script>
<!-- Script for the new design of similar read  -->
<script>
$(document).ready(function() {

    $("#showMoreTagsBtn").click(function() {
        $('.articles-hidden-tags').show();
        $(this).hide();
    });

    $("#showMorePracticeTagsBtn").click(function() {
        $(".practice-tags li:nth-child(n+5)").show();
        $(this).hide();
    });
});
</script>
<!-- Script end for similar read -->

<style>
        .grecaptcha-badge {
            visibility: hidden !important;
        }
        .thank-you-message {
            height: 100%;
            display:flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
        }
        .thank-you-message-content {
            margin-top: 17px;
            font: 400 20px var(--font-secondary);
            color: var(--improve-modal-text);
            line-height: 180%;
            text-align: center;
        }
        .thank-you-message-content h2{
          font-family: var(--font-secondary);
        }
        .all-footer-information{
          width: 100% !important;;
        }
        .footer-wrapper_links-list{
           margin-block-start: 0em !important;
           width: 16% !important; 
           padding-inline-start: 18px !important;
        }
        .link-head{
               margin-bottom: 0px;
        }
        @media only screen and (max-width:1340px) {
              .footer-wrapper_links-list{
              overflow-wrap: break-word;
          }
        }
        @media screen and (min-width: 991px)  {
              .all-footer-information{
                padding-left:15px;
          }
        }
        @media only screen and (max-width:980px) {
          .footer-wrapper_branding-address{
               padding-top: 10px;
          }
        }
        @media (max-width: 750px) {
            .thank-you-message-content{
                font-size: 14px;
                line-height: 170%;
            }
        }

        /* CSS variable meant to handle the dark and light mode icon for three 90 event in header courses dropdown */
        :root{
          --three90headericon : url('https://media.geeksforgeeks.org/auth-dashboard-uploads/three90daylogocompressed.svg');
          --three90headericonposition : 0px -40px;
          --three90leftbarimggrid : url('https://media.geeksforgeeks.org/auth-dashboard-uploads/three90leftbarspritecompressed.svg');
          --three90leftbarimgposition : -5px -55px;
          --three90leftbarbgcolour : #b3abd0;
        }

        body[data-dark-mode="true"]{
          --three90leftbarimgposition : -6px 1px;
          --three90headericonposition : 0px 0px;
          --three90leftbarbgcolour: #8c82b9;
        }

        .three90leftbarimg{
          margin-left: -5px;
          height: 30px;
          background-image: var(--three90leftbarimggrid);
          background-repeat: no-repeat;
          background-position: var(--three90leftbarimgposition);
          background-size: 212px;
        }

        .courseTabShimmer{
          position: absolute;
          height: 110%;
          width: 0;
          opacity: .7;
          -webkit-animation: courseShimmer 2s cubic-bezier(0,0,.07,.61) infinite;
          animation: courseShimmer 2s cubic-bezier(0,0,.07,.61) infinite;
          box-shadow: 0 0 25px 5px #dddcdc;
          -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
          padding:0px !important;
          border:unset !important;
        }

        @keyframes courseShimmer{
          0% {
              left: 0;
          }
          55% {
              left: 100%;
          }
          99% {
              left: 110%;
          }
        }

</style>


	</div><!-- #main .wrapper -->
  <div id="displayModal" class="modal fade" role="dialog">
    <div class="modal-dialog">
      <!-- <div class="upper-box">
        <h3 style="font: normal normal bold 18px/31px var(--font-primary); color: var(--color-black);">Improve your Coding Skills with Practice</h3>
        <button class="upper-box-btn"><a style="color: white !important;" href="https://practice.geeksforgeeks.org/explore?page=1&sortBy=submissions">Try It!</a></button>
      </div> -->
      <div class="modal-content">
        <div class="error-message"></div>
        <!-- <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal" data-modal="displayModal">&times;</button>
          <h2 class="modal-title" id="dmTitle"></h2>
        </div> -->
        <div class="modal-body" id="dmBody">
            <div id="modal-dm-content"></div>
              <div class="modal-overlay" aria-hidden=true>
                <span class="loader__animation"></span>
              </div>
            <!-- body -->
        </div>
      </div>
    </div>
  </div>  
  <div id="displayModalBackdrop" class="backdrop"></div>
  <!-- Footer start -->
  <footer class="gfg-footer" id="gfg-footer">
      <div class="footer-wrapper">
          <div class="footer-wrapper_branding">
              <a class="footer-wrapper_branding-anchor" aria-label="GeeksforGeeks Logo" href="https://www.geeksforgeeks.org/">
                <img loading="lazy" style="height: 32px; width: 230px; max-width: fit-content;" class="footer-wrapper_branding-nlogo" src="https://media.geeksforgeeks.org/auth-dashboard-uploads/gfgFooterLogo.png" alt="geeksforgeeks-footer-logo"/>
              </a>
              <div class="footer-wrapper_branding-address">
                  <div class="address_section">
                    <div class="address-icon-wrapper">
                      <i class="gfg-icon gfg-icon_pin"></i> 
                    <div class="address_div">
                     
                      <div class="address_name">Corporate & Communications Address:</div>
                                            <div class="footer-address">
                      A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)                    </div>
                    </div>
                  </div>
                     
                      <div class="address-icon-wrapper">
                      <i class="gfg-icon gfg-icon_pin"></i>  
                      <div class="address_div">
                        <div class="address_name">Registered Address:</div>
                        K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305                      </div>
                    </div>
                                      </div>
              </div>
              <div class="footer-wrapper_branding-social">
                  <a href="https://www.facebook.com/geeksforgeeks.org/" rel="noopener noreferrer" aria-label="GeeksforGeeks Facebook" target="_blank">
                      <div class="facebook"></div>
                  </a>
                  <a href="https://www.instagram.com/geeks_for_geeks/" rel="noopener noreferrer" aria-label="GeeksforGeeks Instagram" target="_blank">
                      <div class="instagram"></div>
                  </a>
                  <a href="https://in.linkedin.com/company/geeksforgeeks" rel="noopener noreferrer" aria-label="GeeksforGeeks LinkedIn" target="_blank">
                      <div class="linkedin"></div>
                  </a>
                  <a href="https://twitter.com/geeksforgeeks" rel="noopener noreferrer" aria-label="GeeksforGeeks Twitter" target="_blank">
                      <div class="twitter"></div>
                  </a>
                  <a href="https://www.youtube.com/geeksforgeeksvideos" rel="noopener noreferrer" aria-label="GeeksforGeeks YouTube" target="_blank">
                      <div class="youtube"></div>
                  </a>
              </div>
              <div class="footer-wrapper_branding-app">
                  <a aria-label="GeeksforGeeks App Link" href="https://geeksforgeeksapp.page.link/gfg-app" target="_blank" ><img src="https://media.geeksforgeeks.org/auth-dashboard-uploads/googleplay.png" alt="GFG App on Play Store" id="gplay" loading="lazy"></a>
                  <a aria-label="GeeksforGeeks App Link" href="https://geeksforgeeksapp.page.link/gfg-app" target="_blank"><img src="https://media.geeksforgeeks.org/auth-dashboard-uploads/appstore.png" alt="GFG App on App Store" id="appstore" loading="lazy"></a>
              </div>
              <div class="footer_advertise_btn_box">
                <a href="https://www.geeksforgeeks.org/advertise-with-us/" target="_blank" class="footer_advertise_btn">Advertise with us</a>
              </div> 
          </div>
        <div class="all-footer-information">
          <div class="footer-wrapper_links" style="justify-content: space-between; text-align: -webkit-left;"><ul class="footer-wrapper_links-list" ><li>Company</li><li><a href=https://www.geeksforgeeks.org/about/>About Us</a></li><li><a href=https://www.geeksforgeeks.org/legal/>Legal</a></li><li><a href=https://www.geeksforgeeks.org/legal/privacy-policy/>Privacy Policy</a></li><li><a href=https://www.geeksforgeeks.org/press-release/>In Media</a></li><li><a href=https://www.geeksforgeeks.org/about/contact-us/>Contact Us</a></li><li><a href=https://www.geeksforgeeks.org/advertise-with-us/>Advertise with us</a></li><li><a href=https://www.geeksforgeeks.org/gfg-corporate-solution/>GFG Corporate Solution</a></li><li><a href=https://www.geeksforgeeks.org/campus-training-program/>Placement Training Program</a></li></ul><ul class="footer-wrapper_links-list" ><li><a class="link-head" href=https://www.geeksforgeeks.org/introduction-to-programming-languages/>Languages</a></li><li><a href=https://www.geeksforgeeks.org/python-programming-language/>Python</a></li><li><a href=https://www.geeksforgeeks.org/java/>Java</a></li><li><a href=https://www.geeksforgeeks.org/c-plus-plus/>C++</a></li><li><a href=https://www.geeksforgeeks.org/php-tutorials/>PHP</a></li><li><a href=https://www.geeksforgeeks.org/golang/>GoLang</a></li><li><a href=https://www.geeksforgeeks.org/sql-tutorial/>SQL</a></li><li><a href=https://www.geeksforgeeks.org/r-tutorial/>R Language</a></li><li><a href=https://www.geeksforgeeks.org/android-tutorial/>Android Tutorial</a></li><li><a href=https://www.geeksforgeeks.org/geeksforgeeks-online-tutorials-free/>Tutorials Archive</a></li></ul><ul class="footer-wrapper_links-list" ><li><a class="link-head" href=https://www.geeksforgeeks.org/learn-data-structures-and-algorithms-dsa-tutorial/>DSA</a></li><li><a href=https://www.geeksforgeeks.org/data-structures/>Data Structures</a></li><li><a href=https://www.geeksforgeeks.org/fundamentals-of-algorithms/>Algorithms</a></li><li><a href=https://www.geeksforgeeks.org/complete-guide-to-dsa-for-beginners/>DSA for Beginners</a></li><li><a href=https://www.geeksforgeeks.org/basic-coding-problems-in-dsa-for-beginners/>Basic DSA Problems</a></li><li><a href=https://www.geeksforgeeks.org/complete-roadmap-to-learn-dsa-from-scratch/>DSA Roadmap</a></li><li><a href=https://www.geeksforgeeks.org/top-100-data-structure-and-algorithms-dsa-interview-questions-topic-wise/>Top 100 DSA Interview Problems</a></li><li><a href=https://www.geeksforgeeks.org/dsa-roadmap-for-beginner-to-advanced-by-sandeep-jain/>DSA Roadmap by Sandeep Jain</a></li><li><a href=https://www.geeksforgeeks.org/geeksforgeeks-master-sheet-list-of-all-cheat-sheets/>All Cheat Sheets</a></li></ul><ul class="footer-wrapper_links-list" ><li><a class="link-head" href=https://www.geeksforgeeks.org/ai-ml-ds/>Data Science & ML</a></li><li><a href=https://www.geeksforgeeks.org/data-science-tutorial/>Data Science With Python</a></li><li><a href=https://www.geeksforgeeks.org/data-science-for-beginners/>Data Science For Beginner</a></li><li><a href=https://www.geeksforgeeks.org/machine-learning/>Machine Learning</a></li><li><a href=https://www.geeksforgeeks.org/machine-learning-mathematics/>ML Maths</a></li><li><a href=https://www.geeksforgeeks.org/python-data-visualization-tutorial/>Data Visualisation</a></li><li><a href=https://www.geeksforgeeks.org/pandas-tutorial/>Pandas</a></li><li><a href=https://www.geeksforgeeks.org/numpy-tutorial/>NumPy</a></li><li><a href=https://www.geeksforgeeks.org/natural-language-processing-nlp-tutorial/>NLP</a></li><li><a href=https://www.geeksforgeeks.org/deep-learning-tutorial/>Deep Learning</a></li></ul><ul class="footer-wrapper_links-list" ><li><a class="link-head" href=https://www.geeksforgeeks.org/web-technology/>Web Technologies</a></li><li><a href=https://www.geeksforgeeks.org/html/>HTML</a></li><li><a href=https://www.geeksforgeeks.org/css/>CSS</a></li><li><a href=https://www.geeksforgeeks.org/javascript/>JavaScript</a></li><li><a href=https://www.geeksforgeeks.org/typescript/>TypeScript</a></li><li><a href=https://www.geeksforgeeks.org/learn-reactjs/>ReactJS</a></li><li><a href=https://www.geeksforgeeks.org/nextjs/>NextJS</a></li><li><a href=https://www.geeksforgeeks.org/bootstrap/>Bootstrap</a></li><li><a href=https://www.geeksforgeeks.org/web-design/>Web Design</a></li></ul><ul class="footer-wrapper_links-list" ><li><a class="link-head" href=https://www.geeksforgeeks.org/python-programming-language/>Python Tutorial</a></li><li><a href=https://www.geeksforgeeks.org/python-programming-examples/>Python Programming Examples</a></li><li><a href=https://www.geeksforgeeks.org/python-projects-beginner-to-advanced/>Python Projects</a></li><li><a href=https://www.geeksforgeeks.org/python-tkinter-tutorial/>Python Tkinter</a></li><li><a href=https://www.geeksforgeeks.org/python-web-scraping-tutorial/>Python Web Scraping</a></li><li><a href=https://www.geeksforgeeks.org/opencv-python-tutorial/>OpenCV Tutorial</a></li><li><a href=https://www.geeksforgeeks.org/python-interview-questions/>Python Interview Question</a></li><li><a href=https://www.geeksforgeeks.org/django-tutorial/>Django</a></li></ul></div><div class="footer-wrapper_links" style="justify-content: space-between; text-align: -webkit-left;"><ul class="footer-wrapper_links-list" style="margin-block-start: 0em; width:16%; padding-inline-start: 18px;"><li>Computer Science</li><li><a href=https://www.geeksforgeeks.org/operating-systems/>Operating Systems</a></li><li><a href=https://www.geeksforgeeks.org/computer-network-tutorials/>Computer Network</a></li><li><a href=https://www.geeksforgeeks.org/dbms/>Database Management System</a></li><li><a href=https://www.geeksforgeeks.org/software-engineering/>Software Engineering</a></li><li><a href=https://www.geeksforgeeks.org/digital-electronics-logic-design-tutorials/>Digital Logic Design</a></li><li><a href=https://www.geeksforgeeks.org/engineering-mathematics-tutorials/>Engineering Maths</a></li><li><a href=https://www.geeksforgeeks.org/software-development/>Software Development</a></li><li><a href=https://www.geeksforgeeks.org/software-testing-tutorial/>Software Testing</a></li></ul><ul class="footer-wrapper_links-list" ><li><a class="link-head" href=https://www.geeksforgeeks.org/devops-tutorial/>DevOps</a></li><li><a href=https://www.geeksforgeeks.org/git-tutorial/>Git</a></li><li><a href=https://www.geeksforgeeks.org/linux-tutorial/>Linux</a></li><li><a href=https://www.geeksforgeeks.org/aws-tutorial/>AWS</a></li><li><a href=https://www.geeksforgeeks.org/docker-tutorial/>Docker</a></li><li><a href=https://www.geeksforgeeks.org/kubernetes-tutorial/>Kubernetes</a></li><li><a href=https://www.geeksforgeeks.org/microsoft-azure/>Azure</a></li><li><a href=https://www.geeksforgeeks.org/google-cloud-platform-tutorial/>GCP</a></li><li><a href=https://www.geeksforgeeks.org/devops-roadmap/>DevOps Roadmap</a></li></ul><ul class="footer-wrapper_links-list" ><li><a class="link-head" href=https://www.geeksforgeeks.org/system-design-tutorial/>System Design</a></li><li><a href=https://www.geeksforgeeks.org/what-is-high-level-design-learn-system-design/>High Level Design</a></li><li><a href=https://www.geeksforgeeks.org/what-is-low-level-design-or-lld-learn-system-design/>Low Level Design</a></li><li><a href=https://www.geeksforgeeks.org/unified-modeling-language-uml-introduction/>UML Diagrams</a></li><li><a href=https://www.geeksforgeeks.org/system-design-interview-guide/>Interview Guide</a></li><li><a href=https://www.geeksforgeeks.org/software-design-patterns/>Design Patterns</a></li><li><a href=https://www.geeksforgeeks.org/object-oriented-analysis-and-design/>OOAD</a></li><li><a href=https://www.geeksforgeeks.org/system-design-interview-bootcamp-guide/>System Design Bootcamp</a></li><li><a href=https://www.geeksforgeeks.org/most-commonly-asked-system-design-interview-problems-questions/>Interview Questions</a></li></ul><ul class="footer-wrapper_links-list" ><li><a class="link-head" href=https://www.geeksforgeeks.org/technical-interview-preparation/>Inteview Preparation</a></li><li><a href=https://www.geeksforgeeks.org/competitive-programming-a-complete-guide/>Competitive Programming</a></li><li><a href=https://www.geeksforgeeks.org/top-algorithms-and-data-structures-for-competitive-programming/>Top DS or Algo for CP</a></li><li><a href=https://www.geeksforgeeks.org/company-wise-recruitment-process/>Company-Wise Recruitment Process</a></li><li><a href=https://www.geeksforgeeks.org/company-preparation/>Company-Wise Preparation</a></li><li><a href=https://www.geeksforgeeks.org/aptitude-questions-and-answers/>Aptitude Preparation</a></li><li><a href=https://www.geeksforgeeks.org/puzzles/>Puzzles</a></li></ul><ul class="footer-wrapper_links-list" ><li>School Subjects</li><li><a href=https://www.geeksforgeeks.org/maths/>Mathematics</a></li><li><a href=https://www.geeksforgeeks.org/physics/>Physics</a></li><li><a href=https://www.geeksforgeeks.org/chemistry/>Chemistry</a></li><li><a href=https://www.geeksforgeeks.org/biology/>Biology</a></li><li><a href=https://www.geeksforgeeks.org/social-science/>Social Science</a></li><li><a href=https://www.geeksforgeeks.org/english-grammar/>English Grammar</a></li><li><a href=https://www.geeksforgeeks.org/commerce/>Commerce</a></li><li><a href=https://www.geeksforgeeks.org/tag/world-general-knowledge/>World GK</a></li></ul><ul class="footer-wrapper_links-list" ><li><a class="link-head" href=https://www.geeksforgeeks.org/videos/>GeeksforGeeks Videos</a></li><li><a href=https://www.geeksforgeeks.org/videos/category/sde-sheet/>DSA</a></li><li><a href=https://www.geeksforgeeks.org/videos/category/python/>Python</a></li><li><a href=https://www.geeksforgeeks.org/videos/category/java-w6y5f4/>Java</a></li><li><a href=https://www.geeksforgeeks.org/videos/category/c/>C++</a></li><li><a href=https://www.geeksforgeeks.org/videos/category/web-development/>Web Development</a></li><li><a href=https://www.geeksforgeeks.org/videos/category/data-science/>Data Science</a></li><li><a href=https://www.geeksforgeeks.org/videos/category/cs-subjects/>CS Subjects</a></li></ul></div>        </div> 
      </div>
            <!-- Jobs Fair 2024 related CSS changes -->

<style>
  :root{
    --home-jobs-section-jf-logo: url('https://media.geeksforgeeks.org/auth-dashboard-uploads/JobFair2024Logo.svg');
  }

  body[data-dark-mode="true"]
  {
    --home-jobs-section-jf-logo: url('https://media.geeksforgeeks.org/auth-dashboard-uploads/JobFair2024LogoDark.svg');
  }

  .hp_job_section_jf_logo, .job-a-thon-jf-sticky-header-logo{
    background: var(--home-jobs-section-jf-logo);
    height: 50px;
    background-repeat: no-repeat;
    width: 105px;
    background-size: 100px;
  }

  @keyframes challenge {
	0%{
		transform: scale(1);
	}
	50%{
		transform: scale(1.03);
	}
	100%{
		transform: scale(1);
	}
  }

  .job-a-thon-jf-sticky-header-logo{
    height: 45px;
  }

</style>

<!-- ---------------------------------- -->
      <div class="footer-strip" >
          <div class="copyright">
              <a href="https://www.geeksforgeeks.org/" rel="noopener noreferrer" target="_blank">@GeeksforGeeks, Sanchhaya Education Private Limited</a><span>, <a href="https://www.geeksforgeeks.org/copyright-information/">All rights reserved</a></span>
          </div>
          <div class="social-links">
          </div>
      </div>
  </footer>
</div><!-- #page -->
<script type='text/javascript' src='https://www.geeksforgeeks.org/wp-includes/js/wp-embed.min.js?ver=4.9.8'></script>

<!-- Cookie Consent Div-->
<div class="cookie-consent hide-consent">
    <span class="cookie-text">
        We use cookies to ensure you have the best browsing experience on our website. By using our site, you
        acknowledge that you have read and understood our
        <a href="https://www.geeksforgeeks.org/cookie-policy/" target="_blank"><u>Cookie Policy</u></a> &
        <a href="https://www.geeksforgeeks.org/privacy-policy/" target="_blank"><u>Privacy Policy</u></a>
            </span>
    <button class="consent-btn">
        Got It !
    </button>
</div>
<!-- Cookie Consent Div ends -->

<!--Light Box Div starts-->
<div class="lightbox-target">
   <img id="lightbox-image" src="" alt="Lightbox"/>
   <span class="lightbox-close"></span>
</div>
<!--Light Box Div ends-->

<!-- <link rel="stylesheet" href="https://use.typekit.net/mrg0hpc.css"/> -->
<link href="https://fonts.googleapis.com/css2?family=Nunito:wght@400;700&family=Source+Sans+3:wght@400;600&display=swap" rel="stylesheet">
<script>
  if(post_slug.includes('premium-plans-payment/') || post_slug.includes('premium-plans/')){
    $('.darkMode-wrap').remove();
    $('.toggle-darkMode').remove(); 
  }

function setGoogleRecaptcha() {
    var captchaSiteKey = '6LdMFNUZAAAAAIuRtzg0piOT-qXCbDF-iQiUi9KY';
    grecaptcha.ready(function() {
        grecaptcha.execute(captchaSiteKey).then(function(token) {
            document.getElementById('g-recaptcha-response-suggestion-form').value = token;
            suggestionCall();
        });
    });
}

</script>

        <div class="improve-modal--overlay" style="display: none;">
            <div class="improve-modal--improvement" status="locked">
                <div class="improve-modal--improve-header">
                    <div class="improve-header-fst-child">Improvement</div>
                    <div class="improve-header-sec-child">
                        <i class="gfg-icon improve-cross-icon"></i>
                    </div>
                </div>
                <div class="locked-status--impove-modal">
                    <div class="improve-modal--improve-content error-message"></div>                    
                    <div class="improve-modal--improve-bottom">
                        <button class="improve-bottom-btn" type="button">Suggest changes</button>
                    </div>
                </div>
                <div class="unlocked-status--improve-modal-content">
                  <div class="suggest-change_wrapper">
                    <div class="suggest-change-content_wrapper">
                      <div class="suggest-change">Suggest Changes</div>
                      <div class="suggest-changes-about">Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.</div>
                    </div>
                    <div class="suggest-change-icon_wrapper">
                      <img loading="lazy" class="suggest-change-icon" src="https://media.geeksforgeeks.org/auth-dashboard-uploads/suggestChangeIcon.png" alt="geeksforgeeks-suggest-icon"/>
                    </div>
                  </div>
                  <div class="create-improvement_wrapper">
                    <div class="create-improvement-content_wrapper">
                      <div class="create-improvement">Create Improvement</div>
                      <div class="create-improvements-about">Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.</div>
                    </div>
                    <div class="create-improvement-icon_wrapper">
                    <img loading="lazy" class="create-improvement-icon" src="https://media.geeksforgeeks.org/auth-dashboard-uploads/createImprovementIcon.png" alt="geeksforgeeks-improvement-icon"/>
                    </div>
                  </div>
                  <div class="error-status"></div>
                </div>
            </div>
            <div class="improve-modal--suggestion" style="display: none;">
                <!-- Header of improve-modal--improvement and improve-modal--suggestion have same CSS rule that's why I use same class name -->
                <div class="improve-modal--improve-header">
                  <div class="left-arrow-icon_suggest_wrapper">
                    <div class="left-arrow-icon_wrapper">
                      <i class="gfg-icon improve-left-arrow-icon"></i>
                    </div>
                    <div class="improve-header-fst-child">Suggest Changes</div>
                  </div>
                  <div class="improve-header-sec-child">
                        <i class="gfg-icon improve-cross-icon"></i>
                  </div>
                </div>
                <div class="suggestion-modal-section">
                        <div class="suggestion-section">min 4 words, max Words Limit:1000</div>
                        <div id="suggestion-section-textarea">
                        </div>
                        <input type="hidden" name="g-recaptcha-suggestion-response" id="g-recaptcha-response-suggestion-form">
                        <div class="thank-you-message" style="text-align: center; display:none">
                              <h2>Thank You!</h2>
                              <div class="thank-you-message-content">Your suggestions are valuable to us.</div>
                        </div>
                </div> 
                <!-- Button of improve-modal--improvement and improve-modal--suggestion have same CSS rule that's why I use same class name -->
                <div class="improve-modal--improve-bottom suggestion-btn">
                    <p><span id="suggestion-modal-alert" style="display: none;"></span></p>
                    <button class="suggest-bottom-btn" type="button"></button>
                </div>
            </div>
            <a href="#" style="visibility:hidden" class="create-improvement-redirection-to-write" target="_blank"></a>
        </div>
        <script>

            //code to add text editor on click in suggestion modal in improvements
            let suggestEditorInstance=null; //global variable to access editor instance
            let editorLoaded = false;
            $('.suggest-change_wrapper,.improve_dot_dropdown_inner_div, .locked-status--impove-modal .improve-bottom-btn ,#user-personal-note ').one('click',function() {
            //editor already loaded then return
            if(editorLoaded){
            return;
            }
            // if($('.spinner-loading-overlay:eq(0)').length){
            // $('.spinner-loading-overlay:eq(0)').remove();
            // }
            // $('body').append('<div class="spinner-loading-overlay"></div>');
            // $('.spinner-loading-overlay').show();
            let script = document.createElement('script');
            script.src = 'https://assets.geeksforgeeks.org/v2/editor-prod/static/js/bundle.min.js';
            script.defer = true
            document.head.appendChild(script);
            script.onload = function() {
            suggestionModalEditor() //to add editor in suggestion modal
            if(loginData && loginData.premiumConsent){
              personalNoteEditor() //to load editor in personal note
            }
            }
            script.onerror = function() {
            if($('.editorError').length){
            $('.editorError').remove();
            }
            var messageDiv = $('<div class="editorError"></div>').text('Editor not loaded due to some issues');
            $('#suggestion-section-textarea').append(messageDiv);
            $('.suggest-bottom-btn').hide();
            $('.suggestion-section').hide();
            editorLoaded = false;
            }
            });
            //suggestion modal editor
            function suggestionModalEditor(){
            // editor params
            const params = {
            data: undefined,
            plugins: ["BOLD", "ITALIC", "UNDERLINE", "PREBLOCK"],
            }
            // loading editor
            try {
            suggestEditorInstance = new GFGEditorWrapper("suggestion-section-textarea", params, { appNode: true })
            suggestEditorInstance._createEditor("")
            $('.spinner-loading-overlay:eq(0)').remove();
            editorLoaded = true;
            }
            catch (error) {
            $('.spinner-loading-overlay:eq(0)').remove();
            editorLoaded = false;
            }
            }
            //personal note editor
            function personalNoteEditor(){
            // editor params
            const params = {
            data: undefined,
            plugins: ["UNDO", "REDO", "BOLD", "ITALIC", "NUMBERED_LIST", "BULLET_LIST", "TEXTALIGNMENTDROPDOWN"],
            placeholderText: "Description to be......",
            }
            // loading editor
            try {
            let notesEditorInstance = new GFGEditorWrapper("pn-editor", params, { appNode: true })
            notesEditorInstance._createEditor(loginData&&loginData.user_personal_note?loginData.user_personal_note:"")
            $('.spinner-loading-overlay:eq(0)').remove();
            editorLoaded = true;
            }
            catch (error) {
            $('.spinner-loading-overlay:eq(0)').remove();
            editorLoaded = false;
            }
}

            var lockedCasesHtml = `<span class="improve-modal--improve-content-modified"></span><span>You can suggest the changes for now and it will be under 'My Suggestions' Tab on Write.</span><br><br><span>You will be notified via email once the article is available for improvement. Thank you for your valuable feedback!</span>`;
            var badgesRequiredHtml = `<span>It seems that you do not meet the eligibility criteria to create improvements for this article, as only users who have earned specific badges are permitted to do so.</span><br><br><span>However, you can still create improvements through the <a href="https://write.geeksforgeeks.org/pick-improvements/pick" target='_blank'>Pick for Improvement</a> section.</span>`;
            jQuery('.improve-header-sec-child').on('click', function(){
                jQuery('.improve-modal--overlay').hide();
                $('.improve-modal--suggestion').hide();
                jQuery('#suggestion-modal-alert').hide();
            });

            $('.suggest-change_wrapper, .locked-status--impove-modal .improve-bottom-btn').on('click',function(){ // when suggest changes option is clicked
              $('.ContentEditable__root').text("");
              $('.suggest-bottom-btn').html("Suggest changes");
              $('.thank-you-message').css("display","none");  
              $('.improve-modal--improvement').hide();
              $('.improve-modal--suggestion').show();
              $('#suggestion-section-textarea').show();
              jQuery('#suggestion-modal-alert').hide();
              if(suggestEditorInstance !== null){
                suggestEditorInstance.setEditorValue("");
                }
              $('.suggestion-section').css('display', 'block');
              jQuery('.suggest-bottom-btn').css("display","block");
            });

            $('.create-improvement_wrapper').on('click',function(){  // when create improvement option clicked then improvement reason will be shown
              if(loginData && loginData.isLoggedIn) {
                $('body').append('<div class="spinner-loading-overlay"></div>');
                $('.spinner-loading-overlay').show();
                jQuery.ajax({
                  url: writeApiUrl + 'create-improvement-post/?v=1',
                  type: "POST",
                  contentType: 'application/json; charset=utf-8',
                  dataType: 'json',
                  xhrFields: {
                    withCredentials: true
                  },
                  data: JSON.stringify({
                    gfg_id: post_id
                  }),
                  success:function(result) {
                    $('.spinner-loading-overlay:eq(0)').remove();
                    $('.improve-modal--overlay').hide();
                    $('.unlocked-status--improve-modal-content').css("display","none");
                    $('.create-improvement-redirection-to-write').attr('href',writeUrl + 'improve-post/' + `${result.id}` + '/', '_blank');
                    $('.create-improvement-redirection-to-write')[0].click();
                  },
                  error:function(e) {
                    showErrorMessage(e.responseJSON,e.status)
                  },
                });
              }
              else {
               if(loginData && !loginData.isLoggedIn) {
                   $('.improve-modal--overlay').hide();
                if ($('.header-main__wrapper').find('.header-main__signup.login-modal-btn').length) {
                $('.header-main__wrapper').find('.header-main__signup.login-modal-btn').click();
                 }
                return;
                }
              }
            });
            $('.left-arrow-icon_wrapper').on('click',function(){
              if($('.improve-modal--suggestion').is(":visible"))
              $('.improve-modal--suggestion').hide();
              else{
              }

              $('.improve-modal--improvement').show();
            });
            const showErrorMessage = (result,statusCode) => {
                if(!result)
                return;
                $('.spinner-loading-overlay:eq(0)').remove();
                if(statusCode == 403) {
                    $('.improve-modal--improve-content.error-message').html(result.message);
                    jQuery('.improve-modal--overlay').show();
                    jQuery('.improve-modal--improvement').show();
                    $('.locked-status--impove-modal').css("display","block");
                    $('.unlocked-status--improve-modal-content').css("display","none");
                    $('.improve-modal--improvement').attr("status","locked");
                    return;
                }
                            }
            function suggestionCall() {   
                var editorValue = suggestEditorInstance.getValue();
                var suggest_val = $(".ContentEditable__root").find("[data-lexical-text='true']").map(function() {
                                    return $(this).text().trim();
                                    }).get().join(' ');
                suggest_val = suggest_val.replace(/\s+/g, ' ').trim();     
                var array_String= suggest_val.split(" ") //array of words
                var gCaptchaToken = $("#g-recaptcha-response-suggestion-form").val();
                var error_msg = false;
                if(suggest_val != "" && array_String.length >=4){
                    if(editorValue.length <= 2000){
                        var payload = {
                                    "gfg_post_id" : `${post_id}`,
                                    "suggestion" : `${editorValue}`,
                                }
                        if(!loginData || !loginData.isLoggedIn)                  // User is not logged in
                        payload["g-recaptcha-token"] = gCaptchaToken
                        jQuery.ajax({
                            type:'post',
                            url:  "https://apiwrite.geeksforgeeks.org/suggestions/auth/create/",
                            xhrFields: {
                                withCredentials: true
                            },
                            crossDomain: true,
                            contentType:'application/json',
                            data: JSON.stringify(payload),
                            success:function(data) {
                                if(!loginData || !loginData.isLoggedIn) {
                                  grecaptcha.reset();
                                }
                                jQuery('.spinner-loading-overlay:eq(0)').remove();
                                jQuery('.suggest-bottom-btn').css("display","none");
                                $('#suggestion-section-textarea').hide()
                                $('.thank-you-message').css('display', 'flex');
                                $('.suggestion-section').css('display', 'none');
                                jQuery('#suggestion-modal-alert').hide();
                            },
                            error:function(data) {
                                if(!loginData || !loginData.isLoggedIn) {
                                  grecaptcha.reset();
                                }
                                jQuery('.spinner-loading-overlay:eq(0)').remove();
                                jQuery('#suggestion-modal-alert').html("Something went wrong.");
                                jQuery('#suggestion-modal-alert').show();
                                error_msg = true;
                            }
                        });
                    }
                    else{
                        jQuery('.spinner-loading-overlay:eq(0)').remove();
                        jQuery('#suggestion-modal-alert').html("Minimum 4 Words and Maximum Words limit is 1000.");
                        jQuery('#suggestion-modal-alert').show();
                        jQuery('.ContentEditable__root').focus();
                        error_msg = true;
                    }
                }
                else{
                    jQuery('.spinner-loading-overlay:eq(0)').remove();
                    jQuery('#suggestion-modal-alert').html("Enter atleast four words !");
                    jQuery('#suggestion-modal-alert').show();
                    jQuery('.ContentEditable__root').focus();
                    error_msg = true;
                }
                if(error_msg){
                    setTimeout(() => {
                        jQuery('.ContentEditable__root').focus();
                        jQuery('#suggestion-modal-alert').hide();
                    }, 3000);
                }
            }
            
            document.querySelector('.suggest-bottom-btn').addEventListener('click', function(){
              jQuery('body').append('<div class="spinner-loading-overlay"></div>');
              jQuery('.spinner-loading-overlay').show();
              if(loginData && loginData.isLoggedIn) {
                 suggestionCall();
                 return;
              }
              // script for grecaptcha loaded in loginmodal.html and call function to set the token
              setGoogleRecaptcha();
            });
            $('.improvement-bottom-btn.create-improvement-btn').click(function() {  //create improvement button is clicked
              $('body').append('<div class="spinner-loading-overlay"></div>');
              $('.spinner-loading-overlay').show();
              // send this option via create-improvement-post api
              jQuery.ajax({
                url: writeApiUrl + 'create-improvement-post/?v=1',
                type: "POST",
                contentType: 'application/json; charset=utf-8',
                dataType: 'json',
                xhrFields: {
                  withCredentials: true
                },
                data: JSON.stringify({
                  gfg_id: post_id
                }),
                success:function(result) {
                  $('.spinner-loading-overlay:eq(0)').remove();
                  $('.improve-modal--overlay').hide();
                  $('.create-improvement-redirection-to-write').attr('href',writeUrl + 'improve-post/' + `${result.id}` + '/', '_blank');
                  $('.create-improvement-redirection-to-write')[0].click();
                },
                error:function(e) {
                  showErrorMessage(e.responseJSON,e.status);
                },
              });
            });
        </script>
    <script>
var AdblockPlus = new function() {
     this.detect = function(px, callback) {
         var detected = false;
         var checksRemain = 2;
         var error1 = false;
         var error2 = false;
         if (typeof callback != "function") return;
         px += "?ch=*&rn=*";

         function beforeCheck(callback, timeout) {
             if (checksRemain == 0 || timeout > 1E3) callback(checksRemain == 0 && detected);
             else setTimeout(function() {
                 beforeCheck(callback, timeout * 2)
             }, timeout * 2)
         }

         function checkImages() {
             if (--checksRemain) return;
             detected = !error1 && error2
         }
         var random = Math.random() * 11;
         var img1 = new Image;
         img1.onload = checkImages;
         img1.onerror = function() {
             error1 = true;
             checkImages()
         };
         img1.src = px.replace(/\*/, 1).replace(/\*/, random);
         var img2 = new Image;
         img2.onload = checkImages;
         img2.onerror = function() {
             error2 = true;
             checkImages()
         };
         img2.src = px.replace(/\*/, 2).replace(/\*/, random);
         beforeCheck(callback, 250)
     }
 };

/*
AdblockPlus.detect("https://cdnads.geeksforgeeks.org/res/px.gif", function(abp){
    window.googletag = window.googletag || {cmd: []};
    window.abp=abp;
    var elms = [...document.querySelectorAll('div[id^=_GFG_ABP_]')];
    const units=elms.map(elem=>elem.id)
    if(abp) {
        for(let curr_unit of units) {
            const iframe = document.createElement('iframe');
            iframe.setAttribute('src',"https://aa.geeksforgeeks.org/iframe.html?code="+curr_unit.substr(1))
            const elem = document.getElementById(curr_unit)
            const div = document.createElement('div');
            div.setAttribute('id',curr_unit.substr(1))
            let sizes = curr_unit.split("_");
            sizes = sizes.filter(val => val.includes('x'));
            let [width, height] = sizes[0].split("x");
            iframe.style.width = `${+width+20}px`
            iframe.style.height = `${+height+20}px`
            if(elem) {
                elem.appendChild(iframe);
            }
        }
        var gfgAdDivs = [...document.querySelectorAll('div[id^=GFG_AD_]')];
        gfgAdDivs.forEach(gfgDiv => document.getElementById(gfgDiv.id).removeAttribute("style"));
        jQuery('#secondary .widget_text:last-child').css({"position": "unset"});
    }
});*/
    AdblockPlus.detect("https://cdnads.geeksforgeeks.org/res/px.gif", function(abp){
    window.googletag = window.googletag || {cmd: []};
    window.abp=abp;
    var elms = [...document.querySelectorAll('div[id^=_GFG_ABP_]')];
    //const units=elms.map(elem=>elem.id)
    const units = elms
      .filter(elem => !(window.innerWidth < 1500 && elem.id === "_GFG_ABP_Incontent_728x90"))
      .map(elem => elem.id);
    if(abp) {
        isAdBlockerPresent = true;
        for(let curr_unit of units) {
            const iframe = document.createElement('iframe');
            iframe.addEventListener("load", () => {
              iframe.contentWindow.postMessage(JSON.stringify({host: window.location.host,category: window.arrPostCatName,parentWidth: window.innerWidth}),'https://aa.geeksforgeeks.org');
            });
            iframe.setAttribute('src',"https://aa.geeksforgeeks.org/iframe.html?code="+curr_unit.substr(1))
            const elem = document.getElementById(curr_unit)
            const div = document.createElement('div');
            div.setAttribute('id',curr_unit.substr(1))
            let sizes = curr_unit.split("_");
            sizes = sizes.filter(val => val.includes('x'));
            let [width, height] = sizes[0].split("x");
            iframe.style.width = `${+width+20}px`
            iframe.style.height = `${+height+20}px`
            if(elem) {
                elem.appendChild(iframe);
            }
        }
        var gfgAdDivs = [...document.querySelectorAll('div[id^=GFG_AD_]')];
        gfgAdDivs.forEach(gfgDiv => document.getElementById(gfgDiv.id).removeAttribute("style"));
        jQuery('#secondary .widget_text:last-child').css({"position": "unset"});
    }
    else{
      try {
        var isAdblockEnabled = t =>
            fetch(
                new Request('https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js', {
                    method: 'HEAD',
                    mode: 'no-cors'
                })
            ).catch(t);
          isAdblockEnabled(() => {
            // here goes modal pop-up code
            isAdBlockerPresent = true;
          });
      } catch (err) {console.error(err);}
    }
});

  function closeAdBlockPopupModal(){
    const modal = document.getElementById("adBlockerModal");
    $('body').removeClass('body-for-ad-blocker');
    $('#adBlockerModal').remove()
    localStorage.setItem('gfgAdBlockPopup',new Date())
  }
  function showAdblockerModal(){
    let randomNumberForButtonText = Math.round(Math.random()); 
    let currTime = new Date();
    let lastTime = new Date(localStorage.getItem('gfgAdBlockPopup'));
    if(((currTime-lastTime)/(1000*60*60))<1)
    {
      return;
    }
    const adBlockerModal = `<div id="adBlockerModal" class="ad-blocker-modal">
      <div id="ad-blocker-modal-overlay">
        <div id="ad-blocker-outer-div">
          <div id="ad-blocker-div">
          <p id="ad-blocker-div-warning" style="margin-bottom: 30px;">It seems that you are using an ad blocker.<br><span style="font-size: 22px;font-weight: normal;">Please disable it to support us!</span></p>
              <div id="ad-blocker-div-btns">
                  <button id="ad-blocker-div-button1" onclick="handleAdBlockerClick('disabled')">
                      I disabled my ad blocker
                  </button>
                  <a href="https://www.geeksforgeeks.org/geeksforgeeks-premium-subscription" target="_blank">
                      <button
                          id="ad-blocker-div-button2"
                          style="
                              background: linear-gradient(45deg, #f0bd36, #bf873f);
                              border: 1px solid transparent;
                              color: white;
                          "
                      >
                          ${randomNumberForButtonText === 1 ? "Go Ad-Free with Premium" : "Upgrade for No Ads"}
                      </button>
                  </a>
              </div>
              <div id="ad-blocker-div-continue-premium-promo-text">
                  "For an ad-free experience and exclusive features, subscribe to our Premium Plan!"<br>
              </div>
              <div id="ad-blocker-div-continue-btn-div">
                  <a id="ad-blocker-div-continue-btn" href="#" onclick="closeAdBlockPopupModal()">Continue without supporting</a>
              </div>
          </div>
        </div>
      </div>
    </div>`;
    $('body').append(adBlockerModal);
    $('body').addClass('body-for-ad-blocker');
    const modal = document.getElementById("adBlockerModal");
    modal.style.display = "block";
  }
  function handleAdBlockerClick(type){
      if(type == 'disabled'){
        window.location.reload();
      }
      else if(type == 'info'){
        document.getElementById("ad-blocker-div").style.display = "none";
        document.getElementById("ad-blocker-info-div").style.display = "flex";
        handleAdBlockerIconClick(0);
      }
  }
  var lastSelected= null;
  //Mapping of name and video URL with the index.
  const adBlockerVideoMap = [
    ['Ad Block Plus','https://media.geeksforgeeks.org/auth-dashboard-uploads/abp-blocker-min.mp4'],
    ['Ad Block','https://media.geeksforgeeks.org/auth-dashboard-uploads/Ad-block-min.mp4'],
    ['uBlock Origin','https://media.geeksforgeeks.org/auth-dashboard-uploads/ub-blocke-min.mp4'],
    ['uBlock','https://media.geeksforgeeks.org/auth-dashboard-uploads/U-blocker-min.mp4'],
  ]
  function handleAdBlockerIconClick(currSelected){
    const videocontainer = document.getElementById('ad-blocker-info-div-gif');
    const videosource = document.getElementById('ad-blocker-info-div-gif-src');
    if(lastSelected != null){
      document.getElementById("ad-blocker-info-div-icons-"+lastSelected).style.backgroundColor = "white";  
      document.getElementById("ad-blocker-info-div-icons-"+lastSelected).style.borderColor = "#D6D6D6";
    }
    document.getElementById("ad-blocker-info-div-icons-"+currSelected).style.backgroundColor = "#D9D9D9";
    document.getElementById("ad-blocker-info-div-icons-"+currSelected).style.borderColor = "#848484";
    document.getElementById('ad-blocker-info-div-name-span').innerHTML = adBlockerVideoMap[currSelected][0]
    videocontainer.pause();
    videosource.setAttribute('src', adBlockerVideoMap[currSelected][1]);
    videocontainer.load();
    videocontainer.play();
    lastSelected = currSelected;
  }
</script>
<!-- <script async src="https://www.googleoptimize.com/optimize.js?id=OPT-5PGZ8MN"></script> -->

<style>
/* Temporary CSS for Three90 pop up modal (START)*/
    .three90popup__container {
      width: 100vw;
      height: 100vh; 
      position: fixed;
      top:0px;
      background: var(--job-tab-faded-background);
      z-index: 1024;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .three90modal__wrapper{
      background-color: white;
      max-width: 350px;
      display: flex;
      flex-direction: column;
      border-radius: 10px;
      overflow: hidden;

    }
    .three90modal__message-container {
      display: flex;
      flex-direction: column;
      align-items: center;
      font-family: var(--font-primary);
    }
    .three90modal__subheading {
      margin-top: 20px;
      font-size: 22px;
      font-weight: 600;
    }
    .three90modal__text-message {
      margin-top: 20px;
      font-size: 15px;
      font-weight: 400;
      text-align: center;
      padding: 0 5px;
    }
    .three90__modal__button-wrapper {
      width: 100%;
      padding: 20px 0px;
      display: flex;
      justify-content: space-evenly;
    }
    .three90__modal__button-wrapper > button {
      width: 105px;
      height: 35px;
      border-radius: 13px;
      border:none;
      font-weight: 600;
      cursor: pointer;
    } 
    #three90__modal-close-btn:hover {
      background-color: #cacbcd;
    }
    #three90__modal-explore-btn {
      background-color: #0a0727;
      color: white
    }

    @media screen and (max-width: 441px) {
      .three90modal__wrapper {
        max-width: 300px;
      }
    }

  /* Temporary CSS for Three90 pop up modal (END)*/
</style>

<script type="text/javascript" >
    const coursePromotionCities = JSON.parse(`{"NCR":{"LOCATIONS":["Noida","Greater Noida","Ghaziabad","Faridabad","Delhi","New Delhi"],"COURSES":[{"name":"Data Science Course","url":"https:\/\/www.geeksforgeeks.org\/courses\/data-science-classroom-program?itm_source=geeksforgeeks&itm_medium=main_header&itm_campaign=courses"},{"name":"Data Analytics Course","url":"https:\/\/www.geeksforgeeks.org\/courses\/complete-data-analytics-program?itm_source=geeksforgeeks&itm_medium=main_header&itm_campaign=courses"},{"name":"Complete Backend Development Course","url":"https:\/\/www.geeksforgeeks.org\/courses\/complete-java-backend-development-program?itm_source=geeksforgeeks&itm_medium=main_header&itm_campaign=courses"},{"name":"DSA for Interview Preparation","url":"https:\/\/www.geeksforgeeks.org\/courses\/dsa-interview-preparation-classroom?itm_source=geeksforgeeks&itm_medium=main_header&itm_campaign=courses"},{"name":"MERN Full Stack Web Development Course","url":"https:\/\/www.geeksforgeeks.org\/courses\/mern-full-stack-development-classroom?itm_source=geeksforgeeks&itm_medium=main_header&itm_campaign=courses"},{"name":"All Courses","url":"https:\/\/www.geeksforgeeks.org\/courses\/offline-courses?city=noida?itm_source=geeksforgeeks&itm_medium=main_header&itm_campaign=courses"}]},"NON_NCR":{"Bengaluru":[{"name":"Data Science Course","url":"https:\/\/www.geeksforgeeks.org\/courses\/data-science-classroom-program?itm_source=geeksforgeeks&itm_medium=main_header&itm_campaign=courses"},{"name":"Complete Data Analytics Program","url":"https:\/\/www.geeksforgeeks.org\/courses\/complete-data-analytics-program?itm_source=geeksforgeeks&itm_medium=main_header&itm_campaign=courses"},{"name":"Complete Backend Development Course","url":"https:\/\/www.geeksforgeeks.org\/courses\/complete-java-backend-development-program?itm_source=geeksforgeeks&itm_medium=main_header&itm_campaign=courses"},{"name":"DSA For Interview Preparation","url":"https:\/\/www.geeksforgeeks.org\/courses\/dsa-interview-preparation-classroom?itm_source=geeksforgeeks&itm_medium=main_header&itm_campaign=courses"},{"name":"MERN Full Stack Web Development Course","url":"https:\/\/www.geeksforgeeks.org\/courses\/mern-full-stack-development-classroom?itm_source=geeksforgeeks&itm_medium=main_header&itm_campaign=courses"},{"name":"All Courses","url":"https:\/\/www.geeksforgeeks.org\/courses\/offline-courses?city=bengaluru?itm_source=geeksforgeeks&itm_medium=main_header&itm_campaign=courses"}],"Pune":[{"name":"Data Analytics Course","url":"https:\/\/www.geeksforgeeks.org\/courses\/complete-data-analytics-program?itm_source=geeksforgeeks&itm_medium=main_header&itm_campaign=courses"},{"name":"DSA For Interview Preparation","url":"https:\/\/www.geeksforgeeks.org\/courses\/dsa-interview-preparation-classroom?itm_source=geeksforgeeks&itm_medium=main_header&itm_campaign=courses"},{"name":"MERN Full Stack Web Development Course","url":"https:\/\/www.geeksforgeeks.org\/courses\/mern-full-stack-development-classroom?itm_source=geeksforgeeks&itm_medium=main_header&itm_campaign=courses"},{"name":"All Courses","url":"https:\/\/www.geeksforgeeks.org\/courses\/offline-courses?city=pune?itm_source=geeksforgeeks&itm_medium=main_header&itm_campaign=courses"}],"Hyderabad":[{"name":"Complete Data Analytics Program","url":"https:\/\/www.geeksforgeeks.org\/courses\/complete-data-analytics-program?itm_source=geeksforgeeks&itm_medium=main_header&itm_campaign=courses"},{"name":"Complete Backend Development Course","url":"https:\/\/www.geeksforgeeks.org\/courses\/complete-java-backend-development-program?itm_source=geeksforgeeks&itm_medium=main_header&itm_campaign=courses"},{"name":"DSA for Interview Preparation","url":"https:\/\/www.geeksforgeeks.org\/courses\/dsa-interview-preparation-classroom?itm_source=geeksforgeeks&itm_medium=main_header&itm_campaign=courses"},{"name":"MERN Full Stack Web Development Course","url":"https:\/\/www.geeksforgeeks.org\/courses\/mern-full-stack-development-classroom?itm_source=geeksforgeeks&itm_medium=main_header&itm_campaign=courses"},{"name":"All Courses","url":"https:\/\/www.geeksforgeeks.org\/courses\/offline-courses?city=hyderabad?itm_source=geeksforgeeks&itm_medium=main_header&itm_campaign=courses"}]}}`);
    const offlineCourseTermMapper = JSON.parse(`{"ALL_TERMIDS":["2058","6263","2628","1745","1789","2601","2057","5037","2971","2023","2162","2795"],"COURSE_TERMID_MAP":{"JAVA":["2058"],"DATA_ANALYTICS":["1745","1789","2601","2057","5037","2971","2023","2162","2795"],"DSA":["6263"],"MERN":["2628"]}}`);
</script>

<script async src="https://www.geeksforgeeks.org/wp-content/themes/iconic-one/js/event-promotion.min.js?ver=4.8"></script>
  
<!-- gfg tabs compatablity bundled js -->

<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-KDVRCT5');</script>

<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-DWCCJLKX3X"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
//  gtag('config', 'AW-474915276');
  gtag('config', 'G-DWCCJLKX3X');
  gtag('config', 'AW-796001856');
</script>

<!-- fancybar ad code start -->
<div id="GFG_AD_Desktop_Stickyunit_1x1"></div>
<!-- fancybar ad code ends -->
<!-- <div id="GFG_AD_gfg_mobile_320x50"></div> -->
<style>
    :root {
        --com-extra-icons-mobile-image: url(https://media.geeksforgeeks.org/auth-dashboard-uploads/Com-Extra-Icons13.svg);
        --write-experience-card-1: #ECF5F5;
        --write-experience-card-icon-1: #21898C;
        --write-experience-card-2: #EAF2F7;
        --write-experience-card-icon-2: #3079AC;
        --write-experience-card-3: #FDEFE6;
        --write-experience-card-icon-3: #F5A572;
        --write-experience-card-4: #F1F8F5;
        --write-experience-card-icon-4: #91C4AD;
        --write-experience-card-5: #EEE7FF;
        --write-experience-card-icon-5: #8B72C9;
        --write-experience-card-6: #F2F8E6;
        --write-experience-card-icon-6: #78C57F;
        --editor-button-text-color: #6E6E73;
        --write-modal-background: #fefefe;
        --experience-sidebar: #000;
        --left-bar-background: #FFFFFF;
        --write-redirect-container:#EAF2F7;
        --write-redirect-container-hover:#d6e7f2;
        
    }

    /* Dark Mode */
    body[data-dark-mode="true"] {
        --write-modal-background: #161c23;
        --experience-sidebar: #000;
        --left-bar-background: #F0F3F5;
    }

    .popup-main {
        padding: 20px 18px 20px 18px;
        border-radius: 8px;
    }

    .popup-main .popup-heading {
        display: flex;
        align-items: center;
        color: #E9E9EA;
        margin-bottom: 10px;
        justify-content: space-between;
    }

    .popup-main .close-icon {
        background-image: var(--com-extra-icons-mobile-image);background-position: -15px -1651px;height: 22px;width: 22px;transform: scale(1);
        margin-bottom: 12px;
        cursor: pointer;
    }

    .popup-main .experience-card {
        color: #000;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
        /* margin-bottom:10px; */
    }

    .popup-main a:hover,
    .popup-main a:active,
    .popup-main a:visited {
        color: inherit;
        text-decoration: none;
    }

    .popup-main .exp-card1,
    .popup-main .exp-card2,
    .popup-main .exp-card3,
    .popup-main .exp-card4,
    .popup-main .exp-card5,
    .popup-main .exp-card6 {
        display: flex;
        align-items: center;
        border-radius: 10px;
        cursor: pointer;
    }

    .popup-main .exp-card1 .icon1,
    .popup-main .exp-card2 .icon2,
    .popup-main .exp-card3 .icon3,
    .popup-main .exp-card4 .icon4,
    .popup-main .exp-card5 .icon5,
    .popup-main .exp-card6 .icon6 {
        width: 80px;
        height: 80px;
        border-radius: 10px 0px 0px 10px;
        display: flex;
        align-items: center;
        justify-content: center;
        background: var(--write-experience-card-icon-1);
    }

    .popup-main .exp-card1 .icon1,
    .popup-main .exp-card2 .icon2,
    .popup-main .exp-card3 .icon3,
    .popup-main .exp-card4 .icon4,
    .popup-main .exp-card5 .icon5,
    .popup-main .exp-card6 .icon6 {
        width: 80px;
        height: 80px;
        border-radius: 10px 0px 0px 10px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .popup-main .exp-card1 .icon1 {
        background: var(--write-experience-card-icon-1);
    }

    .popup-main .exp-card2 .icon2 {
        background: var(--write-experience-card-icon-2);
    }

    .popup-main .exp-card3 .icon3 {
        background: var(--write-experience-card-icon-3);
    }

    .popup-main .exp-card4 .icon4 {
        background: var(--write-experience-card-icon-4);
    }

    .popup-main .exp-card5 .icon5 {
        background: var(--write-experience-card-icon-5);
    }

    .popup-main .exp-card6 .icon6 {
        background: var(--write-experience-card-icon-6);
    }

    .popup-main .exp-card6 .icon6-image {
        background-image: url(https://media.geeksforgeeks.org/auth-dashboard-uploads/compass.svg);
        width: 46px;
        height: 30px;
        background-size: 30px;
        background-repeat: no-repeat;
        background-position: center;
    }

    .popup-main .exp-card1 .icon1-image {
        background-image: var(--com-extra-icons-mobile-image);
        width: 46px;
        height: 28px;
        background-position: -4px -812px;
    }

    .popup-main .exp-card2 .icon2-image {
        background-image: var(--com-extra-icons-mobile-image);
        width: 46px;
        height: 28px;
        background-position: -4px -888px;
    }

    .popup-main .exp-card3 .icon3-image {
        background-image: var(--com-extra-icons-mobile-image);
        width: 46px;
        height: 28px;
        background-position: -4px -848px;
    }

    .popup-main .exp-card4 .icon4-image {
        background-image: url(https://media.geeksforgeeks.org/auth-dashboard-uploads/competitive.svg);
        width: 46px;
        height: 30px;
        background-size: 30px;
        background-repeat: no-repeat;
        background-position: center;
    }

    .popup-main .exp-card5 .icon5-image {
        background-image: var(--com-extra-icons-mobile-image);
        width: 46px;
        height: 33px;
        background-position: -4px -1217px;
    }


    .popup-main .exp-card1 .exp-card1-text,
    .popup-main .exp-card2 .exp-card2-text,
    .popup-main .exp-card3 .exp-card3-text,
    .popup-main .exp-card4 .exp-card4-text,
    .popup-main .exp-card5 .exp-card5-text,
    .popup-main .exp-card6 .exp-card6-text {
        display: flex;
        align-items: center;
        border-radius: 0px 10px 10px 0px;
        height: 80px;
        width: calc(100% - 80px);
    }

    .popup-main .exp-card1 {
        justify-content: flex-start;
        background: var(--write-experience-card-1);
    }

    .popup-main .exp-card2 {
        justify-content: flex-start;
        background: var(--write-experience-card-2);
    }

    .popup-main .exp-card3 {
        justify-content: flex-start;
        background: var(--write-experience-card-3);
    }

    .popup-main .exp-card4 {
        justify-content: flex-start;
        background: var(--write-experience-card-4);
    }

    .popup-main .exp-card5 {
        justify-content: flex-start;
        background: var(--write-experience-card-5);
    }

    .popup-main .exp-card6 {
        justify-content: flex-start;
        background: var(--write-experience-card-6);
    }

    .popup-main span {
        font-family: var(--font-primary);
        font-size: 14px;
        font-style: normal;
        font-weight: 500;
        line-height: normal;
        padding-left: 5px;
        padding-right: 5px;
    }

    #popup {
        display: none;
        background-color: var(--write-modal-background);
        padding: 20px;
        text-align: center;
        position: fixed;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        z-index: 1026;
        width: min(650px, calc(100% - 20px));
    }
    .link-container-write{
        display:flex;
        flex-direction:column;
    }
    .link-container-write > a {
        margin:7px 0px;
    }
    .phrase__container{
        color:var(--color-gfg);
        border-radius: 6px;
        width: 100%;
        background-color:var(--write-redirect-container);
        padding: 15px;
        text-align: justify;
        font-size:14px;
    }
    .phrase__container:hover {
        color:var(--color-gfg) !important;
        background-color:var(--write-redirect-container-hover);
    }
</style>
<div class="popup-container">
        <div id="popup" accesskey="" class="popup-main">
            <div class="popup-heading">
                <h2>What kind of Experience do you want to share?</h2>
                <div class="close-icon share-experience-modal-close"></div>
            </div>
            <!-- <span class="description"style="color: #BEBEC2;">Tell us your type of experiences which can help other fellow Geeks for their future events and preparations.</span> -->
            <div class="experience-card">
                <a class="exp-card5" href= "https://write.geeksforgeeks.org/posts-new?cid=e8fc46fe-75e7-4a4b-be3c-0c862d655ed0" target="_blank">
                    <div class="icon5">
                        <div class="icon5-image"></div>
                    </div>
                    <div class="exp-card5-text">
                        <span style="color: #000;">Interview Experiences</span>
                    </div>
                </a>
                <a class="exp-card1" href="https://write.geeksforgeeks.org/posts-new?cid=82536bdb-84e6-4661-87c3-e77c3ac04ede" target="_blank">
                    <div class="icon1">
                        <div class="icon1-image"></div>
                    </div>
                    <div class="exp-card1-text">
                        <span style="color: #000;">Admission Experiences</span>
                    </div>
                </a>
                <a class="exp-card6" href= "https://write.geeksforgeeks.org/posts-new?cid=5219b0b2-7671-40a0-9bda-503e28a61c31" target="_blank">
                    <div class="icon6">
                        <div class="icon6-image"></div>
                    </div>
                    <div class="exp-card6-text">
                        <span style="color: #000;">Career Journeys</span>
                    </div>
                </a>
                <a class="exp-card2" href="https://write.geeksforgeeks.org/posts-new?cid=22ae3354-15b6-4dd4-a5b4-5c7a105b8a8f" target="_blank">
                    <div class="icon2">
                        <div class="icon2-image"></div>
                    </div>
                    <div class="exp-card2-text">
                        <span style="color: #000;">Work Experiences</span>
                    </div>
                </a>
                <a class="exp-card3" href= "https://write.geeksforgeeks.org/posts-new?cid=c5e1ac90-9490-440a-a5fa-6180c87ab8ae" target="_blank">
                    <div class="icon3">
                        <div class="icon3-image"></div>
                    </div>
                    <div class="exp-card3-text">
                        <span style="color: #000;">Campus Experiences</span>
                    </div>
                </a>
                <a class="exp-card4" href= "https://write.geeksforgeeks.org/posts-new?cid=5ebb8fe9-b980-4891-af07-f2d62a9735f2" target="_blank">
                    <div class="icon4">
                        <div class="icon4-image"></div>
                    </div>
                    <div class="exp-card4-text">
                        <span style="color: #000;">Competitive Exam Experiences</span>
                    </div>
                </a>
            </div>
        <!--    <div class="link-container-write">
                <a href="https://write.geeksforgeeks.org/pick-article?taxonomy=10261&page=1">
                    <div role="span" class="phrase__container">
                        Can't choose a topic to write? click here for suggested topics
                    </div>
                </a>
                <a href="https://write.geeksforgeeks.org/posts-new">
                    <div role="span" class="phrase__container">
                       Write and publish your own Article
                    </div>
                </a>
            </div> -->
        </div>
        <div id="overlay" onclick="toggleExperiencePopup()" style="display: block;min-height: 100vh;min-width: 100vw;position: fixed;top: 0;bottom: 0;right: 0;left: 0;display: none;justify-content: center;align-items: center;background: rgba(0,0,0,.702);z-index: 1025 !important;backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);word-break: keep-all;"></div>
    </div>

    <script>
        $('.share-experience-modal').click(function(e){
            e.preventDefault();
            var link = $(this).attr('href');
            toggleExperiencePopup(link);
        });
        function toggleExperiencePopup(link) {
            var popup = document.getElementById("popup");
            var overlay = document.getElementById("overlay");

            if (window.innerWidth < 992) {
                window.location.href = link;
            } else {
                popup.style.display = (popup.style.display === "block") ? "none" : "block";
                overlay.style.display = (overlay.style.display === "block") ? "none" : "block";
            }
        }
        $('.share-experience-modal-close').click(function(e){
            var popup = document.getElementById("popup");
            popup.style.display = 'none';
            var overlay = document.getElementById("overlay");
            overlay.style.display = 'none';
        });
</script>
</div><!-- Chat bot is being shown for these category articles (8 -> linked-list 9172 -> AI-ML-DS, 1789 -> python  4667 -> math)  -->

</body>
</html>


<!-- Dynamic page generated in 0.733 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2025-06-22 15:31:27 -->

<!-- Compression = gzip -->
<!-- super cache -->