<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: anas24eng</title>
    <description>The latest articles on DEV Community by anas24eng (@anas24eng).</description>
    <link>https://dev.to/anas24eng</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F372294%2F3e6f2f03-0720-4996-91d3-e063de27c458.png</url>
      <title>DEV Community: anas24eng</title>
      <link>https://dev.to/anas24eng</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/anas24eng"/>
    <language>en</language>
    <item>
      <title>What is NAT ?</title>
      <dc:creator>anas24eng</dc:creator>
      <pubDate>Tue, 29 Aug 2023 23:33:11 +0000</pubDate>
      <link>https://dev.to/anas24eng/what-is-nat--5ffj</link>
      <guid>https://dev.to/anas24eng/what-is-nat--5ffj</guid>
      <description>&lt;p&gt;Network Address Translation (NAT) is a process in which one or more local IP address is translated into one or more Global IP address and vice versa in order to provide Internet access to the local hosts. Also, it does the translation of port numbers i.e. masks the port number of the host with another port number, in the packet that will be routed to the destination. It then makes the corresponding entries of IP address and port number in the NAT table. NAT generally operates on a router or firewall. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZJ9sdqGm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l4rr9q6uz1t7z729p4b0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZJ9sdqGm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l4rr9q6uz1t7z729p4b0.jpg" alt="Image description" width="512" height="182"&gt;&lt;/a&gt;&lt;br&gt;
Network Address Translation (NAT) Types – &lt;br&gt;
There are 3 ways to configure NAT: &lt;/p&gt;

&lt;p&gt;Static NAT – In this, a single unregistered (Private) IP address is mapped with a legally registered (Public) IP address i.e one-to-one mapping between local and global addresses. This is generally used for Web hosting. These are not used in organizations as there are many devices that will need Internet access and to provide Internet access, a public IP address is needed. &lt;br&gt;
Suppose, if there are 3000 devices that need access to the Internet, the organization has to buy 3000 public addresses that will be very costly. &lt;/p&gt;

&lt;p&gt;Dynamic NAT – In this type of NAT, an unregistered IP address is translated into a registered (Public) IP address from a pool of public IP addresses. If the IP address of the pool is not free, then the packet will be dropped as only a fixed number of private IP addresses can be translated to public addresses. &lt;br&gt;
Suppose, if there is a pool of 2 public IP addresses then only 2 private IP addresses can be translated at a given time. If 3rd private IP address wants to access the Internet then the packet will be dropped therefore many private IP addresses are mapped to a pool of public IP addresses. NAT is used when the number of users who want to access the Internet is fixed. This is also very costly as the organization has to buy many global IP addresses to make a pool. &lt;/p&gt;

&lt;p&gt;Port Address Translation (PAT) – This is also known as NAT overload. In this, many local (private) IP addresses can be translated to a single registered IP address. Port numbers are used to distinguish the traffic i.e., which traffic belongs to which IP address. This is most frequently used as it is cost-effective as thousands of users can be connected to the Internet by using only one real global (public) IP address. &lt;/p&gt;

&lt;p&gt;Advantages of NAT – &lt;/p&gt;

&lt;p&gt;NAT conserves legally registered IP addresses. &lt;/p&gt;

&lt;p&gt;It provides privacy as the device’s IP address, sending and receiving the traffic, will be hidden. &lt;/p&gt;

&lt;p&gt;Eliminates address renumbering when a network evolves. &lt;/p&gt;

&lt;p&gt;Disadvantage of NAT – &lt;/p&gt;

&lt;p&gt;Translation results in switching path delays. &lt;/p&gt;

&lt;p&gt;Certain applications will not function while NAT is enabled. &lt;/p&gt;

&lt;p&gt;Complicates tunneling protocols such as IPsec. &lt;/p&gt;

&lt;p&gt;Also, the router being a network layer device, should not tamper with port numbers(transport layer) but it has to do so because of NAT.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Value in javascript</title>
      <dc:creator>anas24eng</dc:creator>
      <pubDate>Wed, 05 Aug 2020 19:40:07 +0000</pubDate>
      <link>https://dev.to/anas24eng/value-in-javascript-19ck</link>
      <guid>https://dev.to/anas24eng/value-in-javascript-19ck</guid>
      <description>&lt;p&gt;Values&lt;br&gt;
Imagine a sea of bits—an ocean of them. A typical modern computer has more than 30 billion bits in its volatile data storage (working memory). Nonvolatile storage (the hard disk or equivalent) tends to have yet a few orders of magnitude more.&lt;/p&gt;

&lt;p&gt;To be able to work with such quantities of bits without getting lost, we must separate them into chunks that represent pieces of information. In a JavaScript environment, those chunks are called values. Though all values are made of bits, they play different roles. Every value has a type that determines its role. Some values are numbers, some values are pieces of text, some values are functions, and so on.&lt;/p&gt;

&lt;p&gt;To create a value, you must merely invoke its name. This is convenient. You don’t have to gather building material for your values or pay for them. You just call for one, and whoosh, you have it. They are not really created from thin air, of course. Every value has to be stored somewhere, and if you want to use a gigantic amount of them at the same time, you might run out of memory. Fortunately, this is a problem only if you need them all simultaneously. As soon as you no longer use a value, it will dissipate, leaving behind its bits to be recycled as building material for the next generation of values.&lt;/p&gt;

&lt;p&gt;This chapter introduces the atomic elements of JavaScript programs, that is, the simple value types and the operators that can act on such values.&lt;/p&gt;

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