<?xml version="1.0" encoding="utf-8"?>
<!-- generator="" -->
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
	<title type="text">Network Protocols</title>
	<subtitle type="text">Leading Network Security &amp; Cyber Security site. Cisco Routing/Switching, VPN, Microsoft, SASE, SSE, F5, PaloAlto Firewalls, Protocol Analysis, Tips &amp; more.</subtitle>
	<link rel="alternate" type="text/html" href="https://www.firewall.cx"/>
	<id>https://www.firewall.cx/networking/network-protocols.feed</id>
	<updated>2026-04-11T12:38:48+10:00</updated>
	<author>
		<name>Firewall.cx Website</name>
	</author>
	<generator uri="https://www.joomla.org"></generator>
	<link rel="self" type="application/atom+xml" href="https://www.firewall.cx/networking/network-protocols.feed?type=atom"/>
	<entry>
		<title>IPv6 Subnetting - How and Why to Subnet IPv6</title>
		<link rel="alternate" type="text/html" href="https://www.firewall.cx/networking/network-protocols/ipv6-subnetting-how-to-subnet-ipv6.html"/>
		<published>2012-06-19T20:00:00+10:00</published>
		<updated>2012-06-19T20:00:00+10:00</updated>
		<id>https://www.firewall.cx/networking/network-protocols/ipv6-subnetting-how-to-subnet-ipv6.html</id>
		<author>
			<name>Administrator</name>
		</author>
		<summary type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;In the previous tutorials, I went through the need for IPv6, and followed it up by drawing out the salient features which overcomes issues with IPv4. We took the journey of looking inside the headers, the structure and purpose of each and every extension headers. By now I sincerely hope, as readers, you all have got a good grasp of what entails this new protocol.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;In this tutorial, I will be talking about subnetting. Subnetting is one of the most talked about, practiced, and supposedly confusing topics encountered by network professionals. In retrospect, all I would say, and do take it as a personal opinion, subnetting is one of the easiest things that can be mastered. The question you might ask is, why do we need to do subnetting if IPv6 already caters to the need for an absurd amount of IP addresses? Yes, I would agree to it at first but because IPv6 does make itself and subnetting two very disjoint terms. I might say, subnetting decreases broadcast traffic, but then you can counter it by saying IPv6 doesn’t have broadcast traffic. It does become difficult to justify.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;However if you see it logically, you will still need reduce unnecessary network traffic. Subnetting also will give you an element of security. You can force people to follow a certain route, or even go through a specific router, where you can apply security policies.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;For network administrators, subnetting increases flexibility in designing networks, route summarisation becomes easy, routing itself becomes efficient and management of networks improves. If you are given a /48 subnet to work with, you will have more than enough spaces to work with i.e. you get 65536 subnets with 18,446,744,073,709,551,616 hosts per subnet. I think that’s more than enough.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;So, in all, subnetting is necessary in IPv6, but not for the reasons why we did it with IPv4.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Before diving into subnetting IPv6, I'd like to present a diagram which illustrates the differences between the IPv4 &amp;amp; IPv6 header. This will help understand the major structural differences between the two protocols. Notice the additional addressing space provided in the IPv6 Source and Destination Address which is now 128bit long (each), compared to 32bits in IPv4:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ipv6-ipv4-vs-ipv6-header.png&quot; alt=&quot;ipv6-ipv4-vs-ipv6-header&quot; width=&quot;790&quot; height=&quot;440&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; title=&quot;IPv4 and IPv6 Header&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;em&gt;Courtesy of ls-a.org&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Now, let us all exercise our birthright to subnet, and dig deeper into how we go about doing it. I can bet you, there are more than thousands of ways you can do this, and perhaps a similar if not greater number of videos on the web, that teaches you to do this as well. What follows is my personal humble attempt of practicing the dark arts, in perhaps a simple way possible.&lt;/p&gt;
&lt;p&gt;An IPv6 subnet mask is written in hexadecimal, but let's start by explaining that IPv6 uses 128 binary digits for each IP address, as opposed to IPv4's 32 binary digits, and those 128 binary digits are divided into eight 16-bit words (8 x 16 = 128), like this:&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 8pt;&quot;&gt;0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;It would be a little difficult to use IPv4's old octet notation for 128 bits, which might look like this:&lt;br /&gt; 182.222.101.003.255.074.112.200.000.010.135.016.208.192.136&lt;br /&gt;&lt;br /&gt;So, a hexadecimal representation is used instead, which makes a little bit easier. Hexadecimal is a 16-digit numbering system, as opposed to binary's 2-digit system and decimal's 10-digit system. The 16 digits of hexadecimal run from &lt;strong&gt;zero &lt;/strong&gt;to &lt;strong&gt;nine&lt;/strong&gt;, then use the letters &lt;strong&gt;A&lt;/strong&gt; to &lt;strong&gt;F&lt;/strong&gt;: {&lt;strong&gt;0123456789ABCDEF&lt;/strong&gt;}.&lt;br /&gt;&lt;br /&gt; One &lt;span style=&quot;color: #008000;&quot;&gt;4-digit hex word&lt;/span&gt; represents &lt;strong&gt;16 binary digits&lt;/strong&gt;, like this:&lt;br /&gt; Bin &lt;strong&gt;0000000000000000 &lt;/strong&gt;= Hex &lt;span style=&quot;color: #339966;&quot;&gt;0000 &lt;/span&gt;(or just 0)&lt;br /&gt; Bin &lt;strong&gt;1111111111111111 &lt;/strong&gt;= Hex &lt;span style=&quot;color: #339966;&quot;&gt;FFFF&lt;/span&gt;&lt;br /&gt; Bin &lt;strong&gt;1101010011011011 &lt;/strong&gt;= Hex &lt;span style=&quot;color: #339966;&quot;&gt;D4DB&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So, this 128-bit binary address:&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 8pt;&quot;&gt;1111111111111111.1111111111111111.1111111111111111.1111111111111111.1111111111111111.1111111111111111.1111111111111111.1111111111111111&lt;/span&gt;&lt;br /&gt; ...would be represented by 8 hex words, separated by colons:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A full IPv6 subnet mask uses the same 8-hex-word format as an IPv6 address, although some tools allow you to specify only 1 hex word.&amp;nbsp;&lt;br /&gt; &lt;br /&gt; Like IPv4, an IPv6 address has a network portion and a device portion. Unlike IPv4, an IPv6 address has a dedicated subnetting portion. Next we show how the ranges are divided in IPv6.&lt;/p&gt;
&lt;h5&gt;Network Address Range&lt;/h5&gt;
&lt;p&gt;In IPv6, the first 48 bits are for &lt;span style=&quot;color: #000080;&quot;&gt;Internet routing&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 8pt;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #000080;&quot;&gt;1111111111111111.1111111111111111.1111111111111111&lt;/span&gt;&lt;/strong&gt;.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000&lt;/span&gt;&lt;/p&gt;
&lt;h5&gt;Subnetting Range&lt;/h5&gt;
&lt;p&gt;The 16 bits from the 49th to the 64th are for defining subnets.&lt;/p&gt;
&lt;h5&gt;&lt;span style=&quot;font-size: 8pt;&quot;&gt;0000000000000000.0000000000000000.0000000000000000.&lt;strong&gt;1111111111111111&lt;/strong&gt;.0000000000000000.0000000000000000.0000000000000000.0000000000000000&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Device (Interface) Range&lt;/h5&gt;
&lt;p&gt;The &lt;strong&gt;last 64 bits&lt;/strong&gt; are for device (interface) ID's:&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 8pt;&quot;&gt;0000000000000000.0000000000000000.0000000000000000.0000000000000000.&lt;strong&gt;1111111111111111.1111111111111111.1111111111111111.1111111111111111&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;The diagram below depicts a &lt;strong&gt;Global Unicast IPv6 address&lt;/strong&gt; which has the following characteristics:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Address format that enables aggregation upward to the ISP.&lt;acronym title=&quot;Internet Service Provider&quot;&gt;&lt;br /&gt;&lt;/acronym&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;48-bit global routing prefix&lt;/strong&gt; and a &lt;strong&gt;16-bit subnet ID&lt;/strong&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Allows for organizations to have up to &lt;strong&gt;65535 individual subnets&lt;/strong&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ipv6-address.png&quot; alt=&quot;ipv6-address&quot; width=&quot;650&quot; height=&quot;184&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; title=&quot;IPv6 Address Analysis&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;em&gt;Courtesy of ls-a.org&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Subnetting Example&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Let's assume there is a requirement to break your corporate network into &lt;strong&gt;64 subnets&lt;/strong&gt;. The binary mask just for the subnetting range would be &lt;span style=&quot;color: #003300;&quot;&gt;1111110000000000&lt;/span&gt; which translates to a hex value of &lt;span style=&quot;color: #003300;&quot;&gt;FC00&lt;/span&gt;. Some IPv6 masking tools will work with just this one hex word, otherwise a full 128-bit hex mask would be FFFF:FFFF:FFFF:&lt;span style=&quot;color: #003300;&quot;&gt;FC00&lt;/span&gt;:0:0:0:0.&lt;br /&gt; &lt;br /&gt; If you play around with converting values in the Windows Calculator (in scientific mode), remember to convert between binary and hexadecimal, not decimal and hex.&lt;br /&gt; &lt;br /&gt;Before you ask, yes, it is possible to use bits in the device range for additional subnet masking, but you shouldn't need it. The 16 binary digits dedicated to subnetting and 64 binary digits available for devices give 65,535 subnets with over 18 quintillion devices per subnet. In addition, if you use some of the 64 bits in the device range for subnetting, then you can't use autoconfiguration tools because they expect all of the 64 bits on the right side to be dedicated to devices. So don't use any of the device bits for subnetting if you need IPv6 Autoconfiguration and if you don't know whether or not you need autoconfiguration, assume you do. And even if you know you don't need autoconfiguration, it's a good standard to use a 64-64 split for network/lan vs. device.&lt;br /&gt;&lt;br /&gt;Those interested in IP4v Subnetting can read through our extensive &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/subnetting.html&quot; title=&quot;IPv4 Subnetting tutorial&quot;&gt;IPv4 Subnetting tutorial&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Hope the tutorial quenches your thirst for IPv6 subnetting.&lt;/p&gt;
&lt;h2&gt;About the Writer&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Arani Mukherjee holds a Master’s degree in Distributed Computing Systems from the University of Greenwich, UK and works as network designer and innovator for remote management systems, for a major telecoms company in UK. He is an avid reader of anything related to networking and computing. Arani is a highly valued and respected member of Firewall.cx, offering knowledge and expertise to the global community since 2005.&lt;/p&gt;</summary>
		<content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;In the previous tutorials, I went through the need for IPv6, and followed it up by drawing out the salient features which overcomes issues with IPv4. We took the journey of looking inside the headers, the structure and purpose of each and every extension headers. By now I sincerely hope, as readers, you all have got a good grasp of what entails this new protocol.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;In this tutorial, I will be talking about subnetting. Subnetting is one of the most talked about, practiced, and supposedly confusing topics encountered by network professionals. In retrospect, all I would say, and do take it as a personal opinion, subnetting is one of the easiest things that can be mastered. The question you might ask is, why do we need to do subnetting if IPv6 already caters to the need for an absurd amount of IP addresses? Yes, I would agree to it at first but because IPv6 does make itself and subnetting two very disjoint terms. I might say, subnetting decreases broadcast traffic, but then you can counter it by saying IPv6 doesn’t have broadcast traffic. It does become difficult to justify.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;However if you see it logically, you will still need reduce unnecessary network traffic. Subnetting also will give you an element of security. You can force people to follow a certain route, or even go through a specific router, where you can apply security policies.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;For network administrators, subnetting increases flexibility in designing networks, route summarisation becomes easy, routing itself becomes efficient and management of networks improves. If you are given a /48 subnet to work with, you will have more than enough spaces to work with i.e. you get 65536 subnets with 18,446,744,073,709,551,616 hosts per subnet. I think that’s more than enough.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;So, in all, subnetting is necessary in IPv6, but not for the reasons why we did it with IPv4.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Before diving into subnetting IPv6, I'd like to present a diagram which illustrates the differences between the IPv4 &amp;amp; IPv6 header. This will help understand the major structural differences between the two protocols. Notice the additional addressing space provided in the IPv6 Source and Destination Address which is now 128bit long (each), compared to 32bits in IPv4:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ipv6-ipv4-vs-ipv6-header.png&quot; alt=&quot;ipv6-ipv4-vs-ipv6-header&quot; width=&quot;790&quot; height=&quot;440&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; title=&quot;IPv4 and IPv6 Header&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;em&gt;Courtesy of ls-a.org&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Now, let us all exercise our birthright to subnet, and dig deeper into how we go about doing it. I can bet you, there are more than thousands of ways you can do this, and perhaps a similar if not greater number of videos on the web, that teaches you to do this as well. What follows is my personal humble attempt of practicing the dark arts, in perhaps a simple way possible.&lt;/p&gt;
&lt;p&gt;An IPv6 subnet mask is written in hexadecimal, but let's start by explaining that IPv6 uses 128 binary digits for each IP address, as opposed to IPv4's 32 binary digits, and those 128 binary digits are divided into eight 16-bit words (8 x 16 = 128), like this:&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 8pt;&quot;&gt;0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;It would be a little difficult to use IPv4's old octet notation for 128 bits, which might look like this:&lt;br /&gt; 182.222.101.003.255.074.112.200.000.010.135.016.208.192.136&lt;br /&gt;&lt;br /&gt;So, a hexadecimal representation is used instead, which makes a little bit easier. Hexadecimal is a 16-digit numbering system, as opposed to binary's 2-digit system and decimal's 10-digit system. The 16 digits of hexadecimal run from &lt;strong&gt;zero &lt;/strong&gt;to &lt;strong&gt;nine&lt;/strong&gt;, then use the letters &lt;strong&gt;A&lt;/strong&gt; to &lt;strong&gt;F&lt;/strong&gt;: {&lt;strong&gt;0123456789ABCDEF&lt;/strong&gt;}.&lt;br /&gt;&lt;br /&gt; One &lt;span style=&quot;color: #008000;&quot;&gt;4-digit hex word&lt;/span&gt; represents &lt;strong&gt;16 binary digits&lt;/strong&gt;, like this:&lt;br /&gt; Bin &lt;strong&gt;0000000000000000 &lt;/strong&gt;= Hex &lt;span style=&quot;color: #339966;&quot;&gt;0000 &lt;/span&gt;(or just 0)&lt;br /&gt; Bin &lt;strong&gt;1111111111111111 &lt;/strong&gt;= Hex &lt;span style=&quot;color: #339966;&quot;&gt;FFFF&lt;/span&gt;&lt;br /&gt; Bin &lt;strong&gt;1101010011011011 &lt;/strong&gt;= Hex &lt;span style=&quot;color: #339966;&quot;&gt;D4DB&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So, this 128-bit binary address:&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 8pt;&quot;&gt;1111111111111111.1111111111111111.1111111111111111.1111111111111111.1111111111111111.1111111111111111.1111111111111111.1111111111111111&lt;/span&gt;&lt;br /&gt; ...would be represented by 8 hex words, separated by colons:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A full IPv6 subnet mask uses the same 8-hex-word format as an IPv6 address, although some tools allow you to specify only 1 hex word.&amp;nbsp;&lt;br /&gt; &lt;br /&gt; Like IPv4, an IPv6 address has a network portion and a device portion. Unlike IPv4, an IPv6 address has a dedicated subnetting portion. Next we show how the ranges are divided in IPv6.&lt;/p&gt;
&lt;h5&gt;Network Address Range&lt;/h5&gt;
&lt;p&gt;In IPv6, the first 48 bits are for &lt;span style=&quot;color: #000080;&quot;&gt;Internet routing&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 8pt;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #000080;&quot;&gt;1111111111111111.1111111111111111.1111111111111111&lt;/span&gt;&lt;/strong&gt;.0000000000000000.0000000000000000.0000000000000000.0000000000000000.0000000000000000&lt;/span&gt;&lt;/p&gt;
&lt;h5&gt;Subnetting Range&lt;/h5&gt;
&lt;p&gt;The 16 bits from the 49th to the 64th are for defining subnets.&lt;/p&gt;
&lt;h5&gt;&lt;span style=&quot;font-size: 8pt;&quot;&gt;0000000000000000.0000000000000000.0000000000000000.&lt;strong&gt;1111111111111111&lt;/strong&gt;.0000000000000000.0000000000000000.0000000000000000.0000000000000000&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Device (Interface) Range&lt;/h5&gt;
&lt;p&gt;The &lt;strong&gt;last 64 bits&lt;/strong&gt; are for device (interface) ID's:&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 8pt;&quot;&gt;0000000000000000.0000000000000000.0000000000000000.0000000000000000.&lt;strong&gt;1111111111111111.1111111111111111.1111111111111111.1111111111111111&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;The diagram below depicts a &lt;strong&gt;Global Unicast IPv6 address&lt;/strong&gt; which has the following characteristics:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Address format that enables aggregation upward to the ISP.&lt;acronym title=&quot;Internet Service Provider&quot;&gt;&lt;br /&gt;&lt;/acronym&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;48-bit global routing prefix&lt;/strong&gt; and a &lt;strong&gt;16-bit subnet ID&lt;/strong&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Allows for organizations to have up to &lt;strong&gt;65535 individual subnets&lt;/strong&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ipv6-address.png&quot; alt=&quot;ipv6-address&quot; width=&quot;650&quot; height=&quot;184&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; title=&quot;IPv6 Address Analysis&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;em&gt;Courtesy of ls-a.org&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Subnetting Example&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Let's assume there is a requirement to break your corporate network into &lt;strong&gt;64 subnets&lt;/strong&gt;. The binary mask just for the subnetting range would be &lt;span style=&quot;color: #003300;&quot;&gt;1111110000000000&lt;/span&gt; which translates to a hex value of &lt;span style=&quot;color: #003300;&quot;&gt;FC00&lt;/span&gt;. Some IPv6 masking tools will work with just this one hex word, otherwise a full 128-bit hex mask would be FFFF:FFFF:FFFF:&lt;span style=&quot;color: #003300;&quot;&gt;FC00&lt;/span&gt;:0:0:0:0.&lt;br /&gt; &lt;br /&gt; If you play around with converting values in the Windows Calculator (in scientific mode), remember to convert between binary and hexadecimal, not decimal and hex.&lt;br /&gt; &lt;br /&gt;Before you ask, yes, it is possible to use bits in the device range for additional subnet masking, but you shouldn't need it. The 16 binary digits dedicated to subnetting and 64 binary digits available for devices give 65,535 subnets with over 18 quintillion devices per subnet. In addition, if you use some of the 64 bits in the device range for subnetting, then you can't use autoconfiguration tools because they expect all of the 64 bits on the right side to be dedicated to devices. So don't use any of the device bits for subnetting if you need IPv6 Autoconfiguration and if you don't know whether or not you need autoconfiguration, assume you do. And even if you know you don't need autoconfiguration, it's a good standard to use a 64-64 split for network/lan vs. device.&lt;br /&gt;&lt;br /&gt;Those interested in IP4v Subnetting can read through our extensive &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/subnetting.html&quot; title=&quot;IPv4 Subnetting tutorial&quot;&gt;IPv4 Subnetting tutorial&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Hope the tutorial quenches your thirst for IPv6 subnetting.&lt;/p&gt;
&lt;h2&gt;About the Writer&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Arani Mukherjee holds a Master’s degree in Distributed Computing Systems from the University of Greenwich, UK and works as network designer and innovator for remote management systems, for a major telecoms company in UK. He is an avid reader of anything related to networking and computing. Arani is a highly valued and respected member of Firewall.cx, offering knowledge and expertise to the global community since 2005.&lt;/p&gt;</content>
		<category term="Network Protocols" />
	</entry>
	<entry>
		<title>IPv6 - Analysing the IPv6 Protocol Structure and IPv6 Header</title>
		<link rel="alternate" type="text/html" href="https://www.firewall.cx/networking/network-protocols/ipv6-analysis.html"/>
		<published>2012-05-31T06:40:00+10:00</published>
		<updated>2012-05-31T06:40:00+10:00</updated>
		<id>https://www.firewall.cx/networking/network-protocols/ipv6-analysis.html</id>
		<author>
			<name>Administrator</name>
		</author>
		<summary type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ipv6-analysis-1a.gif&quot; alt=&quot;ipv6-analysis-1a&quot; width=&quot;280&quot; height=&quot;154&quot; style=&quot;margin: 10px; float: left;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;As discussed in the &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/ipv6-intro.html&quot; target=&quot;_blank&quot;&gt;previous tutorial&lt;/a&gt;, we were made painfully aware that we were running out of IP address spaces and literally did in 2011. A new proposal or RFC was released for creation of a new addressing and network protocol that would improve this major issue and other issues that IPv4 couldn’t resolve.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;RFC 1752&lt;/strong&gt;, raised in the Toronto IETF meeting, explained the major changes that had to happen. It was adopted by IETF and IPv6 was established.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;RFC 2460 was written specifically on IPv6 and we’ll follow it for study and analysis of the features. The features being discussed appear in similar order to those in the RFC. Let’s find out why IPv6 is being touted as the best thing since sliced bread.&lt;/p&gt;
&lt;h2&gt;Addressing Capability - &amp;nbsp; Three Types of Addresses IPv6 Supports&lt;/h2&gt;
&lt;h5 style=&quot;text-align: justify;&quot;&gt;Unicast&lt;/h5&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;A unicast address identifies a single interface within the scope of the type of unicast address. With the appropriate unicast routing topology, packets addressed to a unicast address are delivered to a single interface. To accommodate load-balancing systems, it allows multiple interfaces to use the same address as long as they appear as a single interface to the IPv6 implementation on the host.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;This in turn is further subdivided into the following types:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Unicast IPv6 addresses fall into one of five types:&lt;/p&gt;
&lt;ol style=&quot;text-align: justify;&quot;&gt;
&lt;li&gt;&lt;strong&gt;Global unicast addresses&lt;/strong&gt; (which are conventional, publicly routable address, just like conventional IPv4 publicly routable addresses.)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Link-local addresses&lt;/strong&gt; (They are akin to the private, non-routable addresses in IPv4 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16). They are not meant to be routed, but confined to a single network segment. Link-local addresses mean you can easily throw together a temporary LAN, such as for conferences or meetings, or set up a permanent small LAN the easy way.)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Site-local addresses&lt;/strong&gt; (They are also meant for private addressing, with the addition of being unique, so that joining two subnets does not cause address collisions.)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Special addresses&lt;/strong&gt; (They are loopback addresses, IPv4-address mapped spaces, and 6-to-4 addresses for crossing from an IPv4 network to an IPv6 network.)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Compatibility addresses&lt;/strong&gt; (They are addresses to aid the migration of IPv4 to IPv6 and the coexistence of both types of hosts.)&lt;/li&gt;
&lt;/ol&gt;
&lt;h5 style=&quot;text-align: justify;&quot;&gt;Multicast&lt;/h5&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;A &lt;a href=&quot;https://www.firewall.cx/networking/network-fundamentals/network-multicast.html&quot; target=&quot;_blank&quot; title=&quot;multicast address&quot;&gt;multicast address&lt;/a&gt; identifies multiple interfaces. With the appropriate multicast routing topology, packets addressed to a multicast address are delivered to all interfaces that are identified by the address. A multicast address is used for one-to-many communication, with delivery to multiple interfaces.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;In IPv6, multicast traffic operates in the same way that it does in IPv4. Arbitrarily located IPv6 nodes can listen for multicast traffic on arbitrary IPv6 multicast addresses. IPv6 nodes can listen to multiple multicast addresses at the same time. Nodes can join or leave a multicast group at any time.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;IPv6 multicast addresses have the first 8 bits set to 1111 1111. An IPv6 address is easy to classify as multicast because it always begins with “FF.” Multicast addresses cannot be used as source addresses or as intermediate destinations in a Routing header. Beyond the first 8 bits, multicast addresses include additional structure to identify their flags, scope, and multicast group.&lt;/p&gt;
&lt;h5 style=&quot;text-align: justify;&quot;&gt;Anycast&lt;/h5&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;An anycast address identifies multiple interfaces. With the appropriate routing topology, packets addressed to an anycast address are delivered to a single interface, the nearest interface that is identified by the address. The nearest interface is defined as being closest in terms of routing distance. An anycast address is used for one-to-one-of-many communication, with delivery to a single interface.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;An anycast address is assigned to multiple interfaces. The routing infrastructure forwards packets that are addressed to an anycast address to the nearest interface to which the anycast address is assigned. To facilitate delivery, the routing infrastructure must track the interfaces that have been assigned anycast addresses and their distance in terms of routing metrics. At present, anycast addresses are used only as destination addresses and are assigned only to routers. Anycast addresses are assigned out of the unicast address space, and the scope of an anycast address is the scope of the type of unicast address from which the anycast address is assigned.&lt;/p&gt;
&lt;h2&gt;Simplification Of The Header Format&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The header format has been simplified to reduce processing time by intermediate nodes. Several IPv4 headers have been dropped, some of which are ID, header length, flags, fragmentation offset and checksum. The ID flag has been removed as it was maintained in v4 as a part of fragmentation for intermediate nodes. Since by design fragmentation is not handled by intermediate nodes in IPv6, this field has been removed. The header length could change in v4 due to presence of options but in v6 the header length is kept constant at 6 octets. Options are taken as a part of the payload. Flags are not required in v6 as fragmentation cannot be set by intermediate nodes. Checksum is being handled by upper and lower level protocols either way apart from IPv4 so it was dropped in v6.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ipv6-analysis-1.gif&quot; alt=&quot;ipv6-analysis-1&quot; width=&quot;544&quot; height=&quot;160&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;Figure above shows the IPv6 header format. The various fields and their sizes are as follows:&lt;/p&gt;
&lt;div&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;strong&gt;IP v6 Header Analysis&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Version&lt;/strong&gt; (4 bits) shows the IP version number which is 6.&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Traffic&lt;/strong&gt; &lt;strong&gt;Class&lt;/strong&gt; (8 bits) is discussed later.&lt;br /&gt; &lt;strong&gt;Flow Label&lt;/strong&gt; (20 bits) is discussed later.&lt;br /&gt; &lt;strong&gt;Payload Length&lt;/strong&gt; (16 bits) is used to assign length. This is discussed later.&lt;br /&gt; &lt;strong&gt;Next Header&lt;/strong&gt; (8 bits) identifies the type of header that follows the IPv6 header.&lt;br /&gt; &lt;strong&gt;Hop Limit&lt;/strong&gt; (8 bits) is used to limit life of a packet on the network. This is discussed later.&lt;br /&gt; &lt;strong&gt;Source and Destination Addresses&lt;/strong&gt; (each 128 bits) assigns the source and destination addresses.&lt;/div&gt;
&lt;h2&gt;IPv6 Extension Headers&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Further options for IPv6 headers are included in the extension headers. Each extension header is characterized by a certain value in the next header field in the preceding header. A IPv6 header may have zero, one or multiple extension headers. These headers are not processes by intermediate nodes unless they are specified by hop-by-hop option header. De-multiplexing occurs at the final destination and is done according to the content and semantics of the extension headers. If there are no extensions headers, the next header relates to the upper layer protocol header (which is the basic payload). Whether to process the next header is decided by the content of the extension header. Processing must follow the sequence of the extension headers. The only exception to this rule is the hop-by-hop option header. If this header is present this is processed ahead of any other extension header. Hence this is placed right after the IPv6 header with the &lt;em&gt;next header&lt;/em&gt; value of the 6 header set to ‘0’. In case of multiple extension headers being present they occur in the following order:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Hop–by–hop, then&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Destination option header (for processing by the first node), then&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Routing header, then&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Fragmentation header, then&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Authentication header, then&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Encapsulating security payload header, then&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Destination option header (for processing by the final destination), then&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Upper layer protocol header.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Each header can only occur once except the destination option header. It can occur twice, once right after the IPv6 header and again before the upper layer protocol header. The general format of an extension header is shown in the figure below:&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ipv6-analysis-3.gif&quot; alt=&quot;&quot; width=&quot;318&quot; height=&quot;150&quot; data-alt=&quot;ipv6-analysis-3&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The structure and functionality is as follows:&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Option Type&lt;/strong&gt;: This field consists of 8 bits out of which the first 2 highest order bits defines method of treating the packet if option is unrecognizable by a node. The third highest order bit says whether or not the option data can change while in transit.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Option Length&lt;/strong&gt;: This field, having a size of 8 bits, shows the length of the option data exclusive of the option length field size (8 bits).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Option Data&lt;/strong&gt;: This field has a variable size and consists of the optional data.&lt;/div&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The type and function of each extension header is discussed in subsequent sections.&lt;/p&gt;
&lt;h2&gt;Hop–by–Hop Option Header&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;This header is placed after the IPv6 header and is processed by all link nodes. This has a next header value of ‘0’. The only options are &lt;em&gt;pad1 &lt;/em&gt;and &lt;em&gt;padn option. &lt;/em&gt;In order to align a packet, an option header of padding is used. &lt;em&gt;Pad1 &lt;/em&gt;is used to create one octet padding whereas &lt;em&gt;padN&lt;/em&gt; is used to create ‘&lt;em&gt;n&lt;/em&gt;’ octet padding.&lt;/p&gt;
&lt;h2&gt;Routing Header&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;This header is analogous to IPv4 loose routing / record route header. This has a next header value of ‘&lt;strong&gt;43&lt;/strong&gt;’. The format of a routing header is shown in figure below:&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ipv6-analysis-4.gif&quot; alt=&quot;&quot; width=&quot;470&quot; height=&quot;129&quot; data-alt=&quot;ipv6-analysis-4&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Explanation of the header is as follows:&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Next Header&lt;/strong&gt; (8 bits): This is used to denote the type of header placed next after this header.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Header Extension Length&lt;/strong&gt; (8 bits): This is used to denote the length of the routing header excluding the double octets for next header and this header.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Routing Type&lt;/strong&gt; (8 bits): This is used to denote the type of routing option that is being carried within the routing header. This will be broadly discussed later.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Segments Left&lt;/strong&gt; (8 bits): This field is used to denote the number of link nodes left before reaching the final destination node.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Type Specific Data&lt;/strong&gt;: This field has a variable size, as it depends on the routing type.&lt;/div&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;While processing, if the routing is unrecognizable by a link node it checks for the number of segments left. If that value is ‘&lt;strong&gt;0&lt;/strong&gt;’, then the link node processes the next header. If the &lt;em&gt;segments left&lt;/em&gt; field has a non ‘&lt;strong&gt;0&lt;/strong&gt;’ value, then the packet is discarded and an ICMP message with ‘&lt;em&gt;unrecognizable route option’ &lt;/em&gt;is sent to the source. If a node finds that the MTU is less for a packet to be sent to the next node, then it is discarded as well.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The point worth noting here is that PMTU calculation is done before sending a packet, and fragmentation is maintained only by source and destination. So it can be presumed that the packet size will conform to the outgoing PMTU. So this kind of discarding of a packet for not conforming to PMTU is contradictory.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Routing formats: Type ‘&lt;strong&gt;0&lt;/strong&gt;’ routing header format is displayed below:&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ipv6-analysis-5.gif&quot; alt=&quot;&quot; width=&quot;600&quot; height=&quot;130&quot; data-alt=&quot;ipv6-analysis-5&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The basic explanation of the fields of the routing has already been done. The only difference here is the &lt;em&gt;reserved&lt;/em&gt; field of 32 bits, which is ignored while processing by the link nodes. &lt;br /&gt; A routing header is not processed until it reaches a node which is mentioned as one of the addresses in the &lt;em&gt;address &lt;/em&gt;fields. This is checked by the destination address field. If a destination address field and an intermediate address is the same then, as directed by the next header in the &lt;em&gt;hop-by-hop &lt;/em&gt;header, processing reaches the routing header. The node then checks if the &lt;em&gt;segments left &lt;/em&gt;values is ‘&lt;strong&gt;0&lt;/strong&gt;’.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;If yes, then it proceeds to the next header which can be the upper layer protocol header. If no, then the following algorithm is maintained:&lt;/p&gt;
&lt;p class=&quot;box-content&quot;&gt;if Segments Left = 0 {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proceed to process the next header in the packet, whose type is&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; identified by the Next Header field in the Routing header&lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; else if Hdr Ext Len is odd {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; send an ICMP Parameter Problem, Code 0, message to the Source&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Address, pointing to the Hdr Ext Len field, and discard the&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; packet&lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; compute n, the number of addresses in the Routing header, by&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dividing Hdr Ext Len by 2&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if Segments Left is greater than n {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; send an ICMP Parameter Problem, Code 0, message to the Source&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Address, pointing to the Segments Left field, and discard the&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; packet&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; decrement Segments Left by 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; compute i, the index of the next address to be visited in&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the address vector, by subtracting Segments Left from n&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if Address [i] or the IPv6 Destination Address is multicast {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; discard the packet&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; swap the IPv6 Destination Address and Address[i]&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if the IPv6 Hop Limit is less than or equal to 1 {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; send an ICMP Time Exceeded -- Hop Limit Exceeded in&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Transit message to the Source Address and discard the&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; packet&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; decrement the Hop Limit by 1&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; resubmit the packet to the IPv6 module for transmission&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to the new destination&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;(Courtesy: RFC 2460, www.ietf.org)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The algorithm works as follows: At each link node having the same address as the destination address of the incoming packet, the &lt;em&gt;segments left&lt;/em&gt; value is checked for a non ‘&lt;strong&gt;0&lt;/strong&gt;’ value. If found true, then a value n = (header length)/2 is calculated. At each respective node, value of &lt;em&gt;segments left&lt;/em&gt; is recalculated as &lt;em&gt;segments left = segments left -&lt;/em&gt;1. To pick the next address from the list carried by the packet, a value i is calculated as &lt;em&gt;i = segments left – n.&lt;/em&gt; Now the ith address from the array is taken and swapped with the &lt;em&gt;destination address&lt;/em&gt; field. Hence the table is maintained throughout the path.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The problem with this is that the table values are not removed and the burden of the array is carried along the entire path. If this is to ensure a &lt;em&gt;record route&lt;/em&gt; option then the above algorithm does not serve the purpose. If this is to ensure a packet follows a particular path, then addresses of nodes already visited are of no during processing by intermediate nodes which have not been visited yet. An alternate algorithm which reduces the load as a packet passes through nodes listed in the address array can be implemented. On reaching a node, if the destination address matches the node address a node processes the &lt;em&gt;segments left&lt;/em&gt; field. On a non ‘&lt;strong&gt;0&lt;/strong&gt;’ value, it processes the topmost address of the address list.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;If found valid, this new address is swapped with the &lt;em&gt;destination address&lt;/em&gt; field, the &lt;em&gt;hop limit&lt;/em&gt; is decremented by 1 and the &lt;em&gt;segments left&lt;/em&gt; is decremented by 1. The topmost address from the list is now removed and the next address is incremented to its position. This allows incremental reduction of load on a packet and by the time it reaches its final destination the list holds only 1 address, which should be the same as the final destination.&lt;/p&gt;
&lt;h2&gt;Fragmentation Header&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Fragmentation in IPv6 is analogous in functionality in IPv4. The only difference is that this is handled by only the source and destination nodes. Intermediate link nodes are not allowed to fragment packets. The header format is shown in the figure below:&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;img src=&quot;https://www.firewall.cx/images/stories/ipv6-analysis-6.gif&quot; alt=&quot;&quot; width=&quot;464&quot; height=&quot;130&quot; data-alt=&quot;ipv6-analysis-6&quot; /&gt;&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;The fragmentation header has a &lt;em&gt;next header&lt;/em&gt; value of ‘&lt;strong&gt;44&lt;/strong&gt;’. The respective fields are:&lt;br /&gt;&lt;br /&gt; &lt;strong&gt;Next Header&lt;/strong&gt; (8 bits): The next header contains the type of header following the &amp;nbsp;fragmentation header.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Reserved&lt;/strong&gt; (8 bits): This field is reserved and is ignored during processing.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Fragmentation Offset&lt;/strong&gt; (13 bits): This field shows the relative position of the fragment in the whole packet.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Res&lt;/strong&gt; (2 bits): This field is reserved and is ignored during processing.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;M&lt;/strong&gt; (1 bit): This field denotes whether the fragment is the last fragment of a packet or an intermediate one. Value ‘0’ means last fragment, value ‘1’ means there are more fragments.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Identification&lt;/strong&gt; (32 bits): This field is generated by the source to label a fragment. At the destination, all fragments with the same &lt;em&gt;identification&lt;/em&gt; field, &lt;em&gt;source&lt;/em&gt; and &lt;em&gt;destination address&lt;/em&gt; are reassembled.&lt;/div&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Each packet has two parts:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Unfragmentable Part:&lt;/strong&gt; the IPv6 header which does not change in any of the fragments and is carried by all of the fragments.&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Fragmentable Part:&lt;/strong&gt; which comprises the extension headers and the payload. Each fragment has the following changed. The &lt;em&gt;next header&lt;/em&gt; value in the IPv6 header is changed to 44. For reassembly the &lt;em&gt;next header&lt;/em&gt; field value of the unfragmented part is obtained from the &lt;em&gt;next header&lt;/em&gt; field value of the fragment header of the first fragment. The payload length is calculated by taking the length of the unfragmentable part and the length and offset of the last fragment. The formula is as follows:&lt;br /&gt; &lt;strong&gt;&lt;em&gt;PL.ORIG = PL.FIRST – FL.FIRST – 8 + (8*FO.LAST) + FL.LAST &lt;/em&gt;&lt;/strong&gt;&lt;em&gt;(courtesy:RFC2460, www.ietf.org)&lt;br /&gt; &lt;/em&gt;where:&lt;br /&gt; PL.ORIG = payload length of the reassembled packet.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;PL.FIRST = payload length of the first fragment.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;FL.FIRST = length of the fragment which follows the fragment header of the first fragment.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;FO.LAST = &lt;em&gt;fragment offset&lt;/em&gt; field of the last fragment.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;FL.LAST = length of the fragment which follows the fragment header of the last fragment.&lt;/div&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Reassembly of packets is discarded under the following conditions:&lt;/p&gt;
&lt;ul class=&quot;check&quot;&gt;
&lt;li&gt;If all the fragments do not arrive at their destination within the first 60 seconds from the time of arrival of the first fragment.&lt;/li&gt;
&lt;li&gt;For a fragment whose M flag is set to 1, and the packet is not a multiple of 8 octets as calculated from the packet’s payload length.&lt;/li&gt;
&lt;li&gt;If a fragment, after reassembly makes a whole packet size greater than 65535 octets.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Destination Option Header&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;This header is only processed by the destination node. This is the only header which can occur twice, once just after the &lt;em&gt;hop-by-hop&lt;/em&gt; option header, and once before the actual payload. It has a next header value of 60.&lt;/p&gt;
&lt;h2&gt;No Next Header&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;This header has a next header value of 59. This signifies that there is no header following the header whose &lt;em&gt;next header&lt;/em&gt; value is 59. If the IPv6 header payload depicts data beyond such a header, it is passed unchanged for forwarding.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;This ends the discussion on the various types of header formats and their subsequent uses in the v6 header. A major improvement in IPv6 has been the packet size management and transmission unit calculation. The next section deals with these two issues.&lt;/p&gt;
&lt;h2&gt;Packet Size &amp;amp; MTU Issues&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;IPv6 needs to have every link on the internet to have an MTU of 1280 octets which is 1280 bytes. Any link that cannot conform to this value needs to have the lower layer protocol manage some form of fragmentation and reassembly below the Ipv6 protocol layer. It has been recommended that higher layer protocols with configurable MTU should have it set to 1280 bytes. It is preferable to have it set to 1500 bytes to utilize encapsulation facility without fragmentation.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;An Ipv6 node should be able to implement PMTU discovery (RFC 1981). If this is not available then it should restrict to the minimum size of 1280 bytes. Fragmentation algorithm is to be followed for a node trying to send a packet of size bigger than the PMTU. But if an upper layer protocol can resize its segments to match the PMTU, it should be followed. Problem is, once PMTU is discovered using the algorithm detailed in RFC 1981, how do we conform to the upper layer to start constructing segments which will match the PMTU? No specific communication protocol has been designed to send PMTU information to upper layer protocols.&lt;/p&gt;
&lt;h2&gt;Flow Label&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;A new field in the IPv6 header is the flow label. This is used to assign a label to all traffic which requires the same level of handling, e.g. ‘real time’ traffic. Problems arise in the level of priority handling of such packets. Instances where routers and hosts don’t support flow labelling, this field is set to ‘0’ and routers ignore it. So there is a question of recognizing the feature. A router which does not recognize this feature ignores the value.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;A flow label is identified by a set of same &lt;em&gt;source address, destination address&lt;/em&gt; and a &lt;em&gt;flow label. &lt;/em&gt;If any packet has the &lt;em&gt;hop-by-hop&lt;/em&gt; option set, then all packets belonging to the same flow must have the same option, except the value of the &lt;em&gt;next header&lt;/em&gt; field. If any packet in the flow has a routing header, then all packets in the same flow must have the same content up to and including the routing header, except the value of the &lt;em&gt;next header &lt;/em&gt;field. So the problem is that the burden of a &lt;em&gt;hop-by-hop &lt;/em&gt;or &lt;em&gt;routing &lt;/em&gt;header requirements of any one packet in a flow has to be borne by all the packets in that flow, whether or not it applies to them. Flow label recovery after a router has crashed is also difficult, while keeping in mind the time constraints and domain of values within a given time frame.&lt;/p&gt;
&lt;h2&gt;Traffic Classes&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;This field is analogous to the &lt;em&gt;TOS &lt;/em&gt;field in IPv4 headers. This is created to provide the same type of functionality.&lt;/p&gt;
&lt;h2&gt;Upper Layer Checksum Issues&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Any upper layer protocol which also takes into account the IP addresses, while calculating checksum, needs to modify its checksum calculating algorithm to accommodate 128 bit addresses instead of 32 bit addresses.&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Maximum Payload Size&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;While calculating the maximum payload size, an upper layer protocol has to take into account the header size of the v6 header. Hence a TCP segment can have a maximum size of 60 bytes less than the PMTU calculated. This is to accommodate 40 octets of the IPv6 header and 20 octets for the TCP header.&lt;/p&gt;
&lt;h2&gt;Responding the Packets Carrying Routing Headers&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Certain methods have to be followed while a response packet is being sent to an incoming packet carrying a routing header. When an upper layer protocol is responding to a packet which carried a routing header, the response packet generated will not carry a routing header by reversing the order of addresses found in the routing header of the incoming packet. The only exceptions to this rule are:&lt;/p&gt;
&lt;h2&gt;Response To Packets Not Carrying A Routing Header&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Packets having a routing header supplied by the local configuration, which was not generated by reversing the address list found in the incoming packet to which this response packet is being generated. Routing headers generated by reversing the list of the routing header in an incoming packet, if, and only if, the incoming packet carried an &lt;em&gt;authentication header&lt;/em&gt; and has been verified by the receiver.&lt;/p&gt;
&lt;h2 class=&quot;About-Writer&quot;&gt;About The Writer&lt;/h2&gt;
&lt;p&gt;Arani Mukherjee holds a Master’s degree in Distributed Computing Systems from the University of Greenwich, UK and works as network designer and innovator for remote management systems, for a major telecoms company in UK. He is an avid reader of anything related to networking and computing. Arani is a highly valued and respected member of Firewall.cx, offering knowledge and expertise to the global community since 2005.&lt;/p&gt;</summary>
		<content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ipv6-analysis-1a.gif&quot; alt=&quot;ipv6-analysis-1a&quot; width=&quot;280&quot; height=&quot;154&quot; style=&quot;margin: 10px; float: left;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;As discussed in the &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/ipv6-intro.html&quot; target=&quot;_blank&quot;&gt;previous tutorial&lt;/a&gt;, we were made painfully aware that we were running out of IP address spaces and literally did in 2011. A new proposal or RFC was released for creation of a new addressing and network protocol that would improve this major issue and other issues that IPv4 couldn’t resolve.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;RFC 1752&lt;/strong&gt;, raised in the Toronto IETF meeting, explained the major changes that had to happen. It was adopted by IETF and IPv6 was established.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;RFC 2460 was written specifically on IPv6 and we’ll follow it for study and analysis of the features. The features being discussed appear in similar order to those in the RFC. Let’s find out why IPv6 is being touted as the best thing since sliced bread.&lt;/p&gt;
&lt;h2&gt;Addressing Capability - &amp;nbsp; Three Types of Addresses IPv6 Supports&lt;/h2&gt;
&lt;h5 style=&quot;text-align: justify;&quot;&gt;Unicast&lt;/h5&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;A unicast address identifies a single interface within the scope of the type of unicast address. With the appropriate unicast routing topology, packets addressed to a unicast address are delivered to a single interface. To accommodate load-balancing systems, it allows multiple interfaces to use the same address as long as they appear as a single interface to the IPv6 implementation on the host.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;This in turn is further subdivided into the following types:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Unicast IPv6 addresses fall into one of five types:&lt;/p&gt;
&lt;ol style=&quot;text-align: justify;&quot;&gt;
&lt;li&gt;&lt;strong&gt;Global unicast addresses&lt;/strong&gt; (which are conventional, publicly routable address, just like conventional IPv4 publicly routable addresses.)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Link-local addresses&lt;/strong&gt; (They are akin to the private, non-routable addresses in IPv4 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16). They are not meant to be routed, but confined to a single network segment. Link-local addresses mean you can easily throw together a temporary LAN, such as for conferences or meetings, or set up a permanent small LAN the easy way.)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Site-local addresses&lt;/strong&gt; (They are also meant for private addressing, with the addition of being unique, so that joining two subnets does not cause address collisions.)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Special addresses&lt;/strong&gt; (They are loopback addresses, IPv4-address mapped spaces, and 6-to-4 addresses for crossing from an IPv4 network to an IPv6 network.)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Compatibility addresses&lt;/strong&gt; (They are addresses to aid the migration of IPv4 to IPv6 and the coexistence of both types of hosts.)&lt;/li&gt;
&lt;/ol&gt;
&lt;h5 style=&quot;text-align: justify;&quot;&gt;Multicast&lt;/h5&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;A &lt;a href=&quot;https://www.firewall.cx/networking/network-fundamentals/network-multicast.html&quot; target=&quot;_blank&quot; title=&quot;multicast address&quot;&gt;multicast address&lt;/a&gt; identifies multiple interfaces. With the appropriate multicast routing topology, packets addressed to a multicast address are delivered to all interfaces that are identified by the address. A multicast address is used for one-to-many communication, with delivery to multiple interfaces.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;In IPv6, multicast traffic operates in the same way that it does in IPv4. Arbitrarily located IPv6 nodes can listen for multicast traffic on arbitrary IPv6 multicast addresses. IPv6 nodes can listen to multiple multicast addresses at the same time. Nodes can join or leave a multicast group at any time.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;IPv6 multicast addresses have the first 8 bits set to 1111 1111. An IPv6 address is easy to classify as multicast because it always begins with “FF.” Multicast addresses cannot be used as source addresses or as intermediate destinations in a Routing header. Beyond the first 8 bits, multicast addresses include additional structure to identify their flags, scope, and multicast group.&lt;/p&gt;
&lt;h5 style=&quot;text-align: justify;&quot;&gt;Anycast&lt;/h5&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;An anycast address identifies multiple interfaces. With the appropriate routing topology, packets addressed to an anycast address are delivered to a single interface, the nearest interface that is identified by the address. The nearest interface is defined as being closest in terms of routing distance. An anycast address is used for one-to-one-of-many communication, with delivery to a single interface.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;An anycast address is assigned to multiple interfaces. The routing infrastructure forwards packets that are addressed to an anycast address to the nearest interface to which the anycast address is assigned. To facilitate delivery, the routing infrastructure must track the interfaces that have been assigned anycast addresses and their distance in terms of routing metrics. At present, anycast addresses are used only as destination addresses and are assigned only to routers. Anycast addresses are assigned out of the unicast address space, and the scope of an anycast address is the scope of the type of unicast address from which the anycast address is assigned.&lt;/p&gt;
&lt;h2&gt;Simplification Of The Header Format&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The header format has been simplified to reduce processing time by intermediate nodes. Several IPv4 headers have been dropped, some of which are ID, header length, flags, fragmentation offset and checksum. The ID flag has been removed as it was maintained in v4 as a part of fragmentation for intermediate nodes. Since by design fragmentation is not handled by intermediate nodes in IPv6, this field has been removed. The header length could change in v4 due to presence of options but in v6 the header length is kept constant at 6 octets. Options are taken as a part of the payload. Flags are not required in v6 as fragmentation cannot be set by intermediate nodes. Checksum is being handled by upper and lower level protocols either way apart from IPv4 so it was dropped in v6.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ipv6-analysis-1.gif&quot; alt=&quot;ipv6-analysis-1&quot; width=&quot;544&quot; height=&quot;160&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;Figure above shows the IPv6 header format. The various fields and their sizes are as follows:&lt;/p&gt;
&lt;div&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;strong&gt;IP v6 Header Analysis&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Version&lt;/strong&gt; (4 bits) shows the IP version number which is 6.&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Traffic&lt;/strong&gt; &lt;strong&gt;Class&lt;/strong&gt; (8 bits) is discussed later.&lt;br /&gt; &lt;strong&gt;Flow Label&lt;/strong&gt; (20 bits) is discussed later.&lt;br /&gt; &lt;strong&gt;Payload Length&lt;/strong&gt; (16 bits) is used to assign length. This is discussed later.&lt;br /&gt; &lt;strong&gt;Next Header&lt;/strong&gt; (8 bits) identifies the type of header that follows the IPv6 header.&lt;br /&gt; &lt;strong&gt;Hop Limit&lt;/strong&gt; (8 bits) is used to limit life of a packet on the network. This is discussed later.&lt;br /&gt; &lt;strong&gt;Source and Destination Addresses&lt;/strong&gt; (each 128 bits) assigns the source and destination addresses.&lt;/div&gt;
&lt;h2&gt;IPv6 Extension Headers&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Further options for IPv6 headers are included in the extension headers. Each extension header is characterized by a certain value in the next header field in the preceding header. A IPv6 header may have zero, one or multiple extension headers. These headers are not processes by intermediate nodes unless they are specified by hop-by-hop option header. De-multiplexing occurs at the final destination and is done according to the content and semantics of the extension headers. If there are no extensions headers, the next header relates to the upper layer protocol header (which is the basic payload). Whether to process the next header is decided by the content of the extension header. Processing must follow the sequence of the extension headers. The only exception to this rule is the hop-by-hop option header. If this header is present this is processed ahead of any other extension header. Hence this is placed right after the IPv6 header with the &lt;em&gt;next header&lt;/em&gt; value of the 6 header set to ‘0’. In case of multiple extension headers being present they occur in the following order:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Hop–by–hop, then&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Destination option header (for processing by the first node), then&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Routing header, then&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Fragmentation header, then&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Authentication header, then&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Encapsulating security payload header, then&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Destination option header (for processing by the final destination), then&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Upper layer protocol header.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Each header can only occur once except the destination option header. It can occur twice, once right after the IPv6 header and again before the upper layer protocol header. The general format of an extension header is shown in the figure below:&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ipv6-analysis-3.gif&quot; alt=&quot;&quot; width=&quot;318&quot; height=&quot;150&quot; data-alt=&quot;ipv6-analysis-3&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The structure and functionality is as follows:&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Option Type&lt;/strong&gt;: This field consists of 8 bits out of which the first 2 highest order bits defines method of treating the packet if option is unrecognizable by a node. The third highest order bit says whether or not the option data can change while in transit.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Option Length&lt;/strong&gt;: This field, having a size of 8 bits, shows the length of the option data exclusive of the option length field size (8 bits).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Option Data&lt;/strong&gt;: This field has a variable size and consists of the optional data.&lt;/div&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The type and function of each extension header is discussed in subsequent sections.&lt;/p&gt;
&lt;h2&gt;Hop–by–Hop Option Header&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;This header is placed after the IPv6 header and is processed by all link nodes. This has a next header value of ‘0’. The only options are &lt;em&gt;pad1 &lt;/em&gt;and &lt;em&gt;padn option. &lt;/em&gt;In order to align a packet, an option header of padding is used. &lt;em&gt;Pad1 &lt;/em&gt;is used to create one octet padding whereas &lt;em&gt;padN&lt;/em&gt; is used to create ‘&lt;em&gt;n&lt;/em&gt;’ octet padding.&lt;/p&gt;
&lt;h2&gt;Routing Header&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;This header is analogous to IPv4 loose routing / record route header. This has a next header value of ‘&lt;strong&gt;43&lt;/strong&gt;’. The format of a routing header is shown in figure below:&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ipv6-analysis-4.gif&quot; alt=&quot;&quot; width=&quot;470&quot; height=&quot;129&quot; data-alt=&quot;ipv6-analysis-4&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Explanation of the header is as follows:&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Next Header&lt;/strong&gt; (8 bits): This is used to denote the type of header placed next after this header.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Header Extension Length&lt;/strong&gt; (8 bits): This is used to denote the length of the routing header excluding the double octets for next header and this header.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Routing Type&lt;/strong&gt; (8 bits): This is used to denote the type of routing option that is being carried within the routing header. This will be broadly discussed later.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Segments Left&lt;/strong&gt; (8 bits): This field is used to denote the number of link nodes left before reaching the final destination node.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Type Specific Data&lt;/strong&gt;: This field has a variable size, as it depends on the routing type.&lt;/div&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;While processing, if the routing is unrecognizable by a link node it checks for the number of segments left. If that value is ‘&lt;strong&gt;0&lt;/strong&gt;’, then the link node processes the next header. If the &lt;em&gt;segments left&lt;/em&gt; field has a non ‘&lt;strong&gt;0&lt;/strong&gt;’ value, then the packet is discarded and an ICMP message with ‘&lt;em&gt;unrecognizable route option’ &lt;/em&gt;is sent to the source. If a node finds that the MTU is less for a packet to be sent to the next node, then it is discarded as well.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The point worth noting here is that PMTU calculation is done before sending a packet, and fragmentation is maintained only by source and destination. So it can be presumed that the packet size will conform to the outgoing PMTU. So this kind of discarding of a packet for not conforming to PMTU is contradictory.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Routing formats: Type ‘&lt;strong&gt;0&lt;/strong&gt;’ routing header format is displayed below:&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ipv6-analysis-5.gif&quot; alt=&quot;&quot; width=&quot;600&quot; height=&quot;130&quot; data-alt=&quot;ipv6-analysis-5&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The basic explanation of the fields of the routing has already been done. The only difference here is the &lt;em&gt;reserved&lt;/em&gt; field of 32 bits, which is ignored while processing by the link nodes. &lt;br /&gt; A routing header is not processed until it reaches a node which is mentioned as one of the addresses in the &lt;em&gt;address &lt;/em&gt;fields. This is checked by the destination address field. If a destination address field and an intermediate address is the same then, as directed by the next header in the &lt;em&gt;hop-by-hop &lt;/em&gt;header, processing reaches the routing header. The node then checks if the &lt;em&gt;segments left &lt;/em&gt;values is ‘&lt;strong&gt;0&lt;/strong&gt;’.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;If yes, then it proceeds to the next header which can be the upper layer protocol header. If no, then the following algorithm is maintained:&lt;/p&gt;
&lt;p class=&quot;box-content&quot;&gt;if Segments Left = 0 {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proceed to process the next header in the packet, whose type is&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; identified by the Next Header field in the Routing header&lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; else if Hdr Ext Len is odd {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; send an ICMP Parameter Problem, Code 0, message to the Source&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Address, pointing to the Hdr Ext Len field, and discard the&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; packet&lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; compute n, the number of addresses in the Routing header, by&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dividing Hdr Ext Len by 2&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if Segments Left is greater than n {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; send an ICMP Parameter Problem, Code 0, message to the Source&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Address, pointing to the Segments Left field, and discard the&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; packet&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; decrement Segments Left by 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; compute i, the index of the next address to be visited in&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the address vector, by subtracting Segments Left from n&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if Address [i] or the IPv6 Destination Address is multicast {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; discard the packet&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; swap the IPv6 Destination Address and Address[i]&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if the IPv6 Hop Limit is less than or equal to 1 {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; send an ICMP Time Exceeded -- Hop Limit Exceeded in&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Transit message to the Source Address and discard the&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; packet&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; decrement the Hop Limit by 1&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; resubmit the packet to the IPv6 module for transmission&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to the new destination&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;(Courtesy: RFC 2460, www.ietf.org)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The algorithm works as follows: At each link node having the same address as the destination address of the incoming packet, the &lt;em&gt;segments left&lt;/em&gt; value is checked for a non ‘&lt;strong&gt;0&lt;/strong&gt;’ value. If found true, then a value n = (header length)/2 is calculated. At each respective node, value of &lt;em&gt;segments left&lt;/em&gt; is recalculated as &lt;em&gt;segments left = segments left -&lt;/em&gt;1. To pick the next address from the list carried by the packet, a value i is calculated as &lt;em&gt;i = segments left – n.&lt;/em&gt; Now the ith address from the array is taken and swapped with the &lt;em&gt;destination address&lt;/em&gt; field. Hence the table is maintained throughout the path.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The problem with this is that the table values are not removed and the burden of the array is carried along the entire path. If this is to ensure a &lt;em&gt;record route&lt;/em&gt; option then the above algorithm does not serve the purpose. If this is to ensure a packet follows a particular path, then addresses of nodes already visited are of no during processing by intermediate nodes which have not been visited yet. An alternate algorithm which reduces the load as a packet passes through nodes listed in the address array can be implemented. On reaching a node, if the destination address matches the node address a node processes the &lt;em&gt;segments left&lt;/em&gt; field. On a non ‘&lt;strong&gt;0&lt;/strong&gt;’ value, it processes the topmost address of the address list.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;If found valid, this new address is swapped with the &lt;em&gt;destination address&lt;/em&gt; field, the &lt;em&gt;hop limit&lt;/em&gt; is decremented by 1 and the &lt;em&gt;segments left&lt;/em&gt; is decremented by 1. The topmost address from the list is now removed and the next address is incremented to its position. This allows incremental reduction of load on a packet and by the time it reaches its final destination the list holds only 1 address, which should be the same as the final destination.&lt;/p&gt;
&lt;h2&gt;Fragmentation Header&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Fragmentation in IPv6 is analogous in functionality in IPv4. The only difference is that this is handled by only the source and destination nodes. Intermediate link nodes are not allowed to fragment packets. The header format is shown in the figure below:&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;img src=&quot;https://www.firewall.cx/images/stories/ipv6-analysis-6.gif&quot; alt=&quot;&quot; width=&quot;464&quot; height=&quot;130&quot; data-alt=&quot;ipv6-analysis-6&quot; /&gt;&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;The fragmentation header has a &lt;em&gt;next header&lt;/em&gt; value of ‘&lt;strong&gt;44&lt;/strong&gt;’. The respective fields are:&lt;br /&gt;&lt;br /&gt; &lt;strong&gt;Next Header&lt;/strong&gt; (8 bits): The next header contains the type of header following the &amp;nbsp;fragmentation header.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Reserved&lt;/strong&gt; (8 bits): This field is reserved and is ignored during processing.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Fragmentation Offset&lt;/strong&gt; (13 bits): This field shows the relative position of the fragment in the whole packet.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Res&lt;/strong&gt; (2 bits): This field is reserved and is ignored during processing.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;M&lt;/strong&gt; (1 bit): This field denotes whether the fragment is the last fragment of a packet or an intermediate one. Value ‘0’ means last fragment, value ‘1’ means there are more fragments.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Identification&lt;/strong&gt; (32 bits): This field is generated by the source to label a fragment. At the destination, all fragments with the same &lt;em&gt;identification&lt;/em&gt; field, &lt;em&gt;source&lt;/em&gt; and &lt;em&gt;destination address&lt;/em&gt; are reassembled.&lt;/div&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Each packet has two parts:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Unfragmentable Part:&lt;/strong&gt; the IPv6 header which does not change in any of the fragments and is carried by all of the fragments.&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Fragmentable Part:&lt;/strong&gt; which comprises the extension headers and the payload. Each fragment has the following changed. The &lt;em&gt;next header&lt;/em&gt; value in the IPv6 header is changed to 44. For reassembly the &lt;em&gt;next header&lt;/em&gt; field value of the unfragmented part is obtained from the &lt;em&gt;next header&lt;/em&gt; field value of the fragment header of the first fragment. The payload length is calculated by taking the length of the unfragmentable part and the length and offset of the last fragment. The formula is as follows:&lt;br /&gt; &lt;strong&gt;&lt;em&gt;PL.ORIG = PL.FIRST – FL.FIRST – 8 + (8*FO.LAST) + FL.LAST &lt;/em&gt;&lt;/strong&gt;&lt;em&gt;(courtesy:RFC2460, www.ietf.org)&lt;br /&gt; &lt;/em&gt;where:&lt;br /&gt; PL.ORIG = payload length of the reassembled packet.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;PL.FIRST = payload length of the first fragment.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;FL.FIRST = length of the fragment which follows the fragment header of the first fragment.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;FO.LAST = &lt;em&gt;fragment offset&lt;/em&gt; field of the last fragment.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;FL.LAST = length of the fragment which follows the fragment header of the last fragment.&lt;/div&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Reassembly of packets is discarded under the following conditions:&lt;/p&gt;
&lt;ul class=&quot;check&quot;&gt;
&lt;li&gt;If all the fragments do not arrive at their destination within the first 60 seconds from the time of arrival of the first fragment.&lt;/li&gt;
&lt;li&gt;For a fragment whose M flag is set to 1, and the packet is not a multiple of 8 octets as calculated from the packet’s payload length.&lt;/li&gt;
&lt;li&gt;If a fragment, after reassembly makes a whole packet size greater than 65535 octets.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Destination Option Header&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;This header is only processed by the destination node. This is the only header which can occur twice, once just after the &lt;em&gt;hop-by-hop&lt;/em&gt; option header, and once before the actual payload. It has a next header value of 60.&lt;/p&gt;
&lt;h2&gt;No Next Header&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;This header has a next header value of 59. This signifies that there is no header following the header whose &lt;em&gt;next header&lt;/em&gt; value is 59. If the IPv6 header payload depicts data beyond such a header, it is passed unchanged for forwarding.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;This ends the discussion on the various types of header formats and their subsequent uses in the v6 header. A major improvement in IPv6 has been the packet size management and transmission unit calculation. The next section deals with these two issues.&lt;/p&gt;
&lt;h2&gt;Packet Size &amp;amp; MTU Issues&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;IPv6 needs to have every link on the internet to have an MTU of 1280 octets which is 1280 bytes. Any link that cannot conform to this value needs to have the lower layer protocol manage some form of fragmentation and reassembly below the Ipv6 protocol layer. It has been recommended that higher layer protocols with configurable MTU should have it set to 1280 bytes. It is preferable to have it set to 1500 bytes to utilize encapsulation facility without fragmentation.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;An Ipv6 node should be able to implement PMTU discovery (RFC 1981). If this is not available then it should restrict to the minimum size of 1280 bytes. Fragmentation algorithm is to be followed for a node trying to send a packet of size bigger than the PMTU. But if an upper layer protocol can resize its segments to match the PMTU, it should be followed. Problem is, once PMTU is discovered using the algorithm detailed in RFC 1981, how do we conform to the upper layer to start constructing segments which will match the PMTU? No specific communication protocol has been designed to send PMTU information to upper layer protocols.&lt;/p&gt;
&lt;h2&gt;Flow Label&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;A new field in the IPv6 header is the flow label. This is used to assign a label to all traffic which requires the same level of handling, e.g. ‘real time’ traffic. Problems arise in the level of priority handling of such packets. Instances where routers and hosts don’t support flow labelling, this field is set to ‘0’ and routers ignore it. So there is a question of recognizing the feature. A router which does not recognize this feature ignores the value.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;A flow label is identified by a set of same &lt;em&gt;source address, destination address&lt;/em&gt; and a &lt;em&gt;flow label. &lt;/em&gt;If any packet has the &lt;em&gt;hop-by-hop&lt;/em&gt; option set, then all packets belonging to the same flow must have the same option, except the value of the &lt;em&gt;next header&lt;/em&gt; field. If any packet in the flow has a routing header, then all packets in the same flow must have the same content up to and including the routing header, except the value of the &lt;em&gt;next header &lt;/em&gt;field. So the problem is that the burden of a &lt;em&gt;hop-by-hop &lt;/em&gt;or &lt;em&gt;routing &lt;/em&gt;header requirements of any one packet in a flow has to be borne by all the packets in that flow, whether or not it applies to them. Flow label recovery after a router has crashed is also difficult, while keeping in mind the time constraints and domain of values within a given time frame.&lt;/p&gt;
&lt;h2&gt;Traffic Classes&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;This field is analogous to the &lt;em&gt;TOS &lt;/em&gt;field in IPv4 headers. This is created to provide the same type of functionality.&lt;/p&gt;
&lt;h2&gt;Upper Layer Checksum Issues&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Any upper layer protocol which also takes into account the IP addresses, while calculating checksum, needs to modify its checksum calculating algorithm to accommodate 128 bit addresses instead of 32 bit addresses.&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Maximum Payload Size&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;While calculating the maximum payload size, an upper layer protocol has to take into account the header size of the v6 header. Hence a TCP segment can have a maximum size of 60 bytes less than the PMTU calculated. This is to accommodate 40 octets of the IPv6 header and 20 octets for the TCP header.&lt;/p&gt;
&lt;h2&gt;Responding the Packets Carrying Routing Headers&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Certain methods have to be followed while a response packet is being sent to an incoming packet carrying a routing header. When an upper layer protocol is responding to a packet which carried a routing header, the response packet generated will not carry a routing header by reversing the order of addresses found in the routing header of the incoming packet. The only exceptions to this rule are:&lt;/p&gt;
&lt;h2&gt;Response To Packets Not Carrying A Routing Header&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Packets having a routing header supplied by the local configuration, which was not generated by reversing the address list found in the incoming packet to which this response packet is being generated. Routing headers generated by reversing the list of the routing header in an incoming packet, if, and only if, the incoming packet carried an &lt;em&gt;authentication header&lt;/em&gt; and has been verified by the receiver.&lt;/p&gt;
&lt;h2 class=&quot;About-Writer&quot;&gt;About The Writer&lt;/h2&gt;
&lt;p&gt;Arani Mukherjee holds a Master’s degree in Distributed Computing Systems from the University of Greenwich, UK and works as network designer and innovator for remote management systems, for a major telecoms company in UK. He is an avid reader of anything related to networking and computing. Arani is a highly valued and respected member of Firewall.cx, offering knowledge and expertise to the global community since 2005.&lt;/p&gt;</content>
		<category term="Network Protocols" />
	</entry>
	<entry>
		<title>Understanding the Need for IPv6 - How IPv6 Overcomes IPv4 Limitations</title>
		<link rel="alternate" type="text/html" href="https://www.firewall.cx/networking/network-protocols/ipv6-intro.html"/>
		<published>2012-05-16T05:36:46+10:00</published>
		<updated>2012-05-16T05:36:46+10:00</updated>
		<id>https://www.firewall.cx/networking/network-protocols/ipv6-intro.html</id>
		<author>
			<name>Administrator</name>
		</author>
		<summary type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://www.firewall.cx//images/stories/ipv6-intro-1.jpg&quot; alt=&quot;ipv6-intro-1&quot; width=&quot;285&quot; height=&quot;217&quot; style=&quot;margin: 7px; float: left; border: 2px #000000;&quot; title=&quot;Understanding the Need for IPv6&quot; /&gt;Internet has been around in its current form since the 1980s. What started off as an in-house project in ARPA in 1958 rapidly expanded into what we know today as the Internet. IPv4 as a protocol has been in practice since the 1980s. Back then it was only designed to allocate addresses for a few billion, 4.3 billion to be exact. The Internet Assigned Numbers Authority (IANA) was in charge of allocating these addresses and it did so by sending them in blocks of 16.8 million. This it did by putting in place certain regional Internet registries or RIRs.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;But as the popularity of the Internet grew exponentially, so did the need for more and more IP addresses. This already was becoming a problem in the late 1980s. Through time, as computers become more affordable and people wanted to be on the World Wide Web, the need was growing more acute. With more advancement of technology, today, phones, cameras, video game consoles and other devices are also joining the internet.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;This added to the issue of the lack of IP addresses to allocate to this new breed of machines on the Internet. IANA officially exhausted its pool of addresses on 31&lt;sup&gt;st&lt;/sup&gt; January 2011 and one RIR exhausted its on 15&lt;sup&gt;th&lt;/sup&gt; April 2011. The rest are destined to run out within the next few years.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Guided by this sense of Internet catastrophe, the most logical solution to this problem was to create a new protocol, a protocol that would go where no protocol has gone before, or at least provide more internet addresses to use.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;As is traditional in our networking community, prescribed by the Internet Engineering Task Force or IETF (the main promoter and developer of Internet standards), any new standard, method, behaviours, research and innovation needs to be published as a memorandum. This can include anything that involves or is applicable to the internet or internet related systems. It’s what they call a Request for Comment or an RFC.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Hence, an RFC was released in January 1995 that detailed the creation of a new protocol IPv6. This was called RFC 1752 and the opening lines said, and I quote “This document presents the recommendation of the IPng Area Directors on what should be used to replace the current version of the Internet Protocol.”&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The solution was for IPv6 to accommodate the increased demand by providing a much larger address space, along with improved traffic routing and better security. Some of the salient features include:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Larger IP address space:&amp;nbsp;&lt;/strong&gt;IPv6 has 128-bit address space or 4 times more address bits than IPv4's 32-bit address space. This large address space is enough for many decades to come. In real terms, every residential or commercial customer will be able to receive more address space from TWC than the entire IPv4 address space contains – several billion IP addresses!&lt;/p&gt;
&lt;ul style=&quot;text-align: justify;&quot;&gt;
&lt;li&gt;&lt;strong&gt;Better security:&lt;/strong&gt;&amp;nbsp;IPv6 includes security in the underlying protocol. For example, encryption of packets (ESP: Encapsulated Security Payload) and authentication of the sender of packets (AH: Authentication Header).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Consideration to real time:&lt;/strong&gt;&amp;nbsp;To implement better support for real-time traffic (such as videoconference), IPv6 includes a flow label mechanism so routers can more easily recognize where to send information.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Plug and play:&lt;/strong&gt;&amp;nbsp;IPv6 includes plug and play, which is easier for novice users to connect their machines to the network. Essentially, configuration will happen automatically.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Better optimization:&lt;/strong&gt;&amp;nbsp;IPv6 takes the best of what made IPv4 successful and gets rid of minor flaws and unused features.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The recommendation to create the next generation protocol was raised in the Toronto IETF conference. The main changes from IPv4 can be summarised as follows:&lt;/p&gt;
&lt;ul style=&quot;text-align: justify;&quot;&gt;
&lt;li&gt;&lt;strong&gt;Expanded addressing capability and auto configuration mechanism&lt;/strong&gt;: the address size in this protocol has been increased from 32 bit to 128 bit with deeper addressing hierarchy and simpler configurations. A new type of address called Anycast has been created to send a message to a single nearest member of a group.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Simplification of the header format and reduction in size&lt;/strong&gt;: the header now has a fixed length of 40 bytes. Some header fields that were a part of IPv4 have been removed. They are discussed more in detail in the description of IPv6 header. This was done to improve on header processing time and forwarding techniques.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improved support for extensions and options&lt;/strong&gt;: unlike IPv4, the extensions in IPv6 are made optional and inserted between the header and the payload when needed. This improves flexibility and any new options in the future can be integrated easily.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Extensions for authentications and privacy&lt;/strong&gt;: support for data authentications and data security has been specified.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flow labelling capability&lt;/strong&gt;: packets belonging to the same traffic flow needing special handling or security can be labelled by the sender.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;So, in all, the proposal was adopted by IETF and implemented. The deployment of&amp;nbsp;IPv6&amp;nbsp;is the only available solution to the IPv4 address shortage.&amp;nbsp;IPv6 is endorsed and implemented by all Internet technical standards bodies and network equipment vendors. It encompassed many design improvements, including the replacement of the 32-bit IPv4 address format with a&amp;nbsp;128-bit address&amp;nbsp;for a capacity of about 3.4×10&lt;sup&gt;38&lt;/sup&gt;&amp;nbsp;addresses. IPv6 has been in active production deployment since June 2006.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;In the next tutorial, &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/ipv6-analysis.html&quot; target=&quot;_blank&quot; title=&quot;IPv6 - Analysing the IPv6 Protocol Structure and IPv6 Header&quot;&gt;IPv6 - Analysing the IPv6 Protocol Structure and IPv6 Header&lt;/a&gt;, we will see exactly how and why is IPv6 the next best thing since sliced bread, or in our world, the next best protocol!&lt;/p&gt;
&lt;h2 class=&quot;About-Writer&quot; style=&quot;text-align: justify;&quot;&gt;About The Writer&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Arani Mukherjee holds a Master’s degree in Distributed Computing Systems from the University of Greenwich, UK and works as network designer and innovator for remote management systems, for a major telecoms company in UK. He is an avid reader of anything related to networking and computing. Arani is a highly valued and respected member of Firewall.cx, offering knowledge and expertise to the global community since 2005.&lt;/p&gt;</summary>
		<content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://www.firewall.cx//images/stories/ipv6-intro-1.jpg&quot; alt=&quot;ipv6-intro-1&quot; width=&quot;285&quot; height=&quot;217&quot; style=&quot;margin: 7px; float: left; border: 2px #000000;&quot; title=&quot;Understanding the Need for IPv6&quot; /&gt;Internet has been around in its current form since the 1980s. What started off as an in-house project in ARPA in 1958 rapidly expanded into what we know today as the Internet. IPv4 as a protocol has been in practice since the 1980s. Back then it was only designed to allocate addresses for a few billion, 4.3 billion to be exact. The Internet Assigned Numbers Authority (IANA) was in charge of allocating these addresses and it did so by sending them in blocks of 16.8 million. This it did by putting in place certain regional Internet registries or RIRs.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;But as the popularity of the Internet grew exponentially, so did the need for more and more IP addresses. This already was becoming a problem in the late 1980s. Through time, as computers become more affordable and people wanted to be on the World Wide Web, the need was growing more acute. With more advancement of technology, today, phones, cameras, video game consoles and other devices are also joining the internet.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;This added to the issue of the lack of IP addresses to allocate to this new breed of machines on the Internet. IANA officially exhausted its pool of addresses on 31&lt;sup&gt;st&lt;/sup&gt; January 2011 and one RIR exhausted its on 15&lt;sup&gt;th&lt;/sup&gt; April 2011. The rest are destined to run out within the next few years.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Guided by this sense of Internet catastrophe, the most logical solution to this problem was to create a new protocol, a protocol that would go where no protocol has gone before, or at least provide more internet addresses to use.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;As is traditional in our networking community, prescribed by the Internet Engineering Task Force or IETF (the main promoter and developer of Internet standards), any new standard, method, behaviours, research and innovation needs to be published as a memorandum. This can include anything that involves or is applicable to the internet or internet related systems. It’s what they call a Request for Comment or an RFC.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Hence, an RFC was released in January 1995 that detailed the creation of a new protocol IPv6. This was called RFC 1752 and the opening lines said, and I quote “This document presents the recommendation of the IPng Area Directors on what should be used to replace the current version of the Internet Protocol.”&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The solution was for IPv6 to accommodate the increased demand by providing a much larger address space, along with improved traffic routing and better security. Some of the salient features include:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Larger IP address space:&amp;nbsp;&lt;/strong&gt;IPv6 has 128-bit address space or 4 times more address bits than IPv4's 32-bit address space. This large address space is enough for many decades to come. In real terms, every residential or commercial customer will be able to receive more address space from TWC than the entire IPv4 address space contains – several billion IP addresses!&lt;/p&gt;
&lt;ul style=&quot;text-align: justify;&quot;&gt;
&lt;li&gt;&lt;strong&gt;Better security:&lt;/strong&gt;&amp;nbsp;IPv6 includes security in the underlying protocol. For example, encryption of packets (ESP: Encapsulated Security Payload) and authentication of the sender of packets (AH: Authentication Header).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Consideration to real time:&lt;/strong&gt;&amp;nbsp;To implement better support for real-time traffic (such as videoconference), IPv6 includes a flow label mechanism so routers can more easily recognize where to send information.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Plug and play:&lt;/strong&gt;&amp;nbsp;IPv6 includes plug and play, which is easier for novice users to connect their machines to the network. Essentially, configuration will happen automatically.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Better optimization:&lt;/strong&gt;&amp;nbsp;IPv6 takes the best of what made IPv4 successful and gets rid of minor flaws and unused features.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The recommendation to create the next generation protocol was raised in the Toronto IETF conference. The main changes from IPv4 can be summarised as follows:&lt;/p&gt;
&lt;ul style=&quot;text-align: justify;&quot;&gt;
&lt;li&gt;&lt;strong&gt;Expanded addressing capability and auto configuration mechanism&lt;/strong&gt;: the address size in this protocol has been increased from 32 bit to 128 bit with deeper addressing hierarchy and simpler configurations. A new type of address called Anycast has been created to send a message to a single nearest member of a group.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Simplification of the header format and reduction in size&lt;/strong&gt;: the header now has a fixed length of 40 bytes. Some header fields that were a part of IPv4 have been removed. They are discussed more in detail in the description of IPv6 header. This was done to improve on header processing time and forwarding techniques.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improved support for extensions and options&lt;/strong&gt;: unlike IPv4, the extensions in IPv6 are made optional and inserted between the header and the payload when needed. This improves flexibility and any new options in the future can be integrated easily.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Extensions for authentications and privacy&lt;/strong&gt;: support for data authentications and data security has been specified.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flow labelling capability&lt;/strong&gt;: packets belonging to the same traffic flow needing special handling or security can be labelled by the sender.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;So, in all, the proposal was adopted by IETF and implemented. The deployment of&amp;nbsp;IPv6&amp;nbsp;is the only available solution to the IPv4 address shortage.&amp;nbsp;IPv6 is endorsed and implemented by all Internet technical standards bodies and network equipment vendors. It encompassed many design improvements, including the replacement of the 32-bit IPv4 address format with a&amp;nbsp;128-bit address&amp;nbsp;for a capacity of about 3.4×10&lt;sup&gt;38&lt;/sup&gt;&amp;nbsp;addresses. IPv6 has been in active production deployment since June 2006.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;In the next tutorial, &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/ipv6-analysis.html&quot; target=&quot;_blank&quot; title=&quot;IPv6 - Analysing the IPv6 Protocol Structure and IPv6 Header&quot;&gt;IPv6 - Analysing the IPv6 Protocol Structure and IPv6 Header&lt;/a&gt;, we will see exactly how and why is IPv6 the next best thing since sliced bread, or in our world, the next best protocol!&lt;/p&gt;
&lt;h2 class=&quot;About-Writer&quot; style=&quot;text-align: justify;&quot;&gt;About The Writer&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Arani Mukherjee holds a Master’s degree in Distributed Computing Systems from the University of Greenwich, UK and works as network designer and innovator for remote management systems, for a major telecoms company in UK. He is an avid reader of anything related to networking and computing. Arani is a highly valued and respected member of Firewall.cx, offering knowledge and expertise to the global community since 2005.&lt;/p&gt;</content>
		<category term="Network Protocols" />
	</entry>
	<entry>
		<title>Understanding VPN IPSec Tunnel Mode and IPSec Transport Mode - What's the Difference?</title>
		<link rel="alternate" type="text/html" href="https://www.firewall.cx/networking/network-protocols/ipsec-modes.html"/>
		<published>2012-05-06T11:14:51+10:00</published>
		<updated>2012-05-06T11:14:51+10:00</updated>
		<id>https://www.firewall.cx/networking/network-protocols/ipsec-modes.html</id>
		<author>
			<name>Administrator</name>
		</author>
		<summary type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;IPSec’s protocol objective is to provide security services for IP packets such as encrypting sensitive data, authentication, protection against replay and data confidentiality.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;As outlined in our &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/ip-security-protocol.html&quot; target=&quot;_blank&quot; title=&quot;IPSec protocol article&quot;&gt;IPSec protocol article&lt;/a&gt;, Encapsulating Security Payload (ESP) and Authentication Header (AH) are the two IPSec security protocols used to provide these security services. &amp;nbsp;Analysing &amp;nbsp;the ESP and AH protocols is out of this article’s scope, however you can turn to our &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/ip-security-protocol.html&quot; target=&quot;_blank&quot; title=&quot;IPSec article&quot;&gt;IPSec article&lt;/a&gt; where you’ll find an in-depth analysis and packet diagrams to help make the concept clear.&lt;/p&gt;
&lt;h2&gt;Understanding IPSec Modes –Tunnel Mode &amp;amp; Transport Mode&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;IPSec can be configured to operate in two different modes, &lt;strong&gt;Tunnel&lt;/strong&gt; and &lt;strong&gt;Transport&lt;/strong&gt; mode. Use of each mode depends on the requirements and implementation of IPSec.&lt;/p&gt;
&lt;h3&gt;IPSec Tunnel Mode&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;IPSec tunnel mode is the &lt;strong&gt;default mode&lt;/strong&gt;. With tunnel mode, the entire original IP packet is protected by IPSec. This means IPSec wraps the original packet, encrypts it, adds a new IP header and sends it to the other side of the VPN tunnel (IPSec peer).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Tunnel mode&amp;nbsp;is most commonly used between gateways (Cisco routers or ASA firewalls), or at an end-station to a gateway, the gateway acting as a proxy for the hosts behind it.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Tunnel mode is used to encrypt traffic between secure IPSec Gateways, for example two Cisco routers connected over the Internet via IPSec VPN. Configuration and setup of this topology is extensively covered in our &lt;a href=&quot;https://www.firewall.cx/cisco/cisco-routers/cisco-router-site-to-site-ipsec-vpn.html&quot; target=&quot;_blank&quot; title=&quot;Site-to-Site IPSec VPN article&quot;&gt;Site-to-Site IPSec VPN article&lt;/a&gt;. In this example, each router acts as an IPSec Gateway for their LAN, providing secure connectivity to the remote network:&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.firewall.cx//images/stories/ipsec-modes-transport-tunnel-5.gif&quot; alt=&quot;ipsec-modes-transport-tunnel-5&quot; width=&quot;656&quot; height=&quot;209&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;br /&gt;Another example of tunnel mode is an IPSec tunnel between a Cisco VPN Client and an IPSec Gateway (e.g ASA5510 or PIX Firewall). The client connects to the IPSec Gateway. Traffic from the client is encrypted, encapsulated inside a new IP packet and sent to the other end. Once decrypted by the firewall appliance, the client’s original IP packet is sent to the local network.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;In tunnel mode, an IPSec header (&lt;strong&gt;AH&lt;/strong&gt; or &lt;strong&gt;ESP header&lt;/strong&gt;) is inserted between the IP header and the upper layer protocol. Between AH and ESP,&amp;nbsp; ESP is most commonly used in IPSec VPN Tunnel configuration.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The packet diagram below illustrates &lt;strong&gt;IPSec Tunnel mode&lt;/strong&gt; with &lt;strong&gt;ESP header&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.firewall.cx//images/stories/ipsec-modes-transport-tunnel-1.png&quot; alt=&quot;ipsec-modes-transport-tunnel-1&quot; width=&quot;592&quot; height=&quot;193&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;ESP is identified in the &lt;strong&gt;New IP header&lt;/strong&gt; with an IP &lt;strong&gt;protocol ID&lt;/strong&gt; of 50.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The packet diagram below illustrates &lt;strong&gt;IPSec Tunnel mode&lt;/strong&gt; with &lt;strong&gt;AH header&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.firewall.cx//images/stories/ipsec-modes-transport-tunnel-2.png&quot; alt=&quot;ipsec-modes-transport-tunnel-2&quot; width=&quot;420&quot; height=&quot;171&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The AH can be applied alone or together with the ESP, when IPSec is in tunnel mode. AH’s job is to protect the entire packet. The AH does not protect all of the fields in the New IP Header because some change in transit, and the sender cannot predict how they might change. The AH protects everything that does not change in transit. AH is identified in the &lt;strong&gt;New IP header&lt;/strong&gt; with an IP &lt;strong&gt;protocol ID&lt;/strong&gt; of &lt;strong&gt;51.&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;IPSec Transport Mode&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;IPSec Transport mode is used for end-to-end communications, for example, for communication between a client and a server or between a workstation and a gateway (if the gateway is being treated as a host). &amp;nbsp;A good example would be an encrypted Telnet or Remote Desktop session from a workstation to a server.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.firewall.cx//images/stories/ipsec-modes-transport-tunnel-6.gif&quot; alt=&quot;ipsec-modes-transport-tunnel-6&quot; width=&quot;462&quot; height=&quot;182&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Transport mode provides the protection of our data, also known as IP Payload, and consists of TCP/UDP header + Data, through an AH or ESP header. The payload is encapsulated by the IPSec headers and trailers. The original IP headers remain intact, except that the IP protocol field is changed to ESP (50) or AH (51), and the original protocol value is saved in the IPsec trailer to be restored when the packet is decrypted.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;IPSec transport mode is usually used when another tunneling protocol (like GRE) is used to first encapsulate the IP data packet, then IPSec is used to protect the GRE tunnel packets. IPSec protects the GRE tunnel traffic in transport mode.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The packet diagram below illustrates &lt;strong&gt;IPSec Transport mode&lt;/strong&gt; with &lt;strong&gt;ESP header&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.firewall.cx//images/stories/ipsec-modes-transport-tunnel-3.png&quot; alt=&quot;ipsec-modes-transport-tunnel-3&quot; width=&quot;592&quot; height=&quot;193&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Notice that the original IP Header is &lt;strong&gt;moved&lt;/strong&gt; to the front. Placing the sender’s IP header at the front (with minor changes to the protocol ID), proves that transport mode does not provide protection or encryption to the original IP header and ESP is identified in the &lt;strong&gt;New IP header&lt;/strong&gt; with an IP &lt;strong&gt;protocol ID&lt;/strong&gt; of &lt;strong&gt;50&lt;/strong&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The packet diagram below illustrates &lt;strong&gt;IPSec Transport mode&lt;/strong&gt; with &lt;strong&gt;AH header&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.firewall.cx//images/stories/ipsec-modes-transport-tunnel-4.png&quot; alt=&quot;ipsec-modes-transport-tunnel-4&quot; width=&quot;420&quot; height=&quot;171&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The AH can be applied alone or together with the ESP when IPSec is in transport mode. AH’s job is to &lt;strong&gt;protect&lt;/strong&gt; the entire packet, however, IPSec in transport mode does not create a new IP header in front of the packet but places a copy of the original with some minor changes to the protocol ID therefore not providing essential protection to the details contained in the IP header (Source IP, destination IP etc). AH is identified in the &lt;strong&gt;New IP header&lt;/strong&gt; with an IP &lt;strong&gt;protocol ID&lt;/strong&gt; of &lt;strong&gt;51&lt;/strong&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;In both ESP and AH cases with IPSec Transport mode, the IP header is exposed.&lt;/p&gt;</summary>
		<content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;IPSec’s protocol objective is to provide security services for IP packets such as encrypting sensitive data, authentication, protection against replay and data confidentiality.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;As outlined in our &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/ip-security-protocol.html&quot; target=&quot;_blank&quot; title=&quot;IPSec protocol article&quot;&gt;IPSec protocol article&lt;/a&gt;, Encapsulating Security Payload (ESP) and Authentication Header (AH) are the two IPSec security protocols used to provide these security services. &amp;nbsp;Analysing &amp;nbsp;the ESP and AH protocols is out of this article’s scope, however you can turn to our &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/ip-security-protocol.html&quot; target=&quot;_blank&quot; title=&quot;IPSec article&quot;&gt;IPSec article&lt;/a&gt; where you’ll find an in-depth analysis and packet diagrams to help make the concept clear.&lt;/p&gt;
&lt;h2&gt;Understanding IPSec Modes –Tunnel Mode &amp;amp; Transport Mode&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;IPSec can be configured to operate in two different modes, &lt;strong&gt;Tunnel&lt;/strong&gt; and &lt;strong&gt;Transport&lt;/strong&gt; mode. Use of each mode depends on the requirements and implementation of IPSec.&lt;/p&gt;
&lt;h3&gt;IPSec Tunnel Mode&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;IPSec tunnel mode is the &lt;strong&gt;default mode&lt;/strong&gt;. With tunnel mode, the entire original IP packet is protected by IPSec. This means IPSec wraps the original packet, encrypts it, adds a new IP header and sends it to the other side of the VPN tunnel (IPSec peer).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Tunnel mode&amp;nbsp;is most commonly used between gateways (Cisco routers or ASA firewalls), or at an end-station to a gateway, the gateway acting as a proxy for the hosts behind it.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Tunnel mode is used to encrypt traffic between secure IPSec Gateways, for example two Cisco routers connected over the Internet via IPSec VPN. Configuration and setup of this topology is extensively covered in our &lt;a href=&quot;https://www.firewall.cx/cisco/cisco-routers/cisco-router-site-to-site-ipsec-vpn.html&quot; target=&quot;_blank&quot; title=&quot;Site-to-Site IPSec VPN article&quot;&gt;Site-to-Site IPSec VPN article&lt;/a&gt;. In this example, each router acts as an IPSec Gateway for their LAN, providing secure connectivity to the remote network:&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;https://www.firewall.cx//images/stories/ipsec-modes-transport-tunnel-5.gif&quot; alt=&quot;ipsec-modes-transport-tunnel-5&quot; width=&quot;656&quot; height=&quot;209&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;br /&gt;Another example of tunnel mode is an IPSec tunnel between a Cisco VPN Client and an IPSec Gateway (e.g ASA5510 or PIX Firewall). The client connects to the IPSec Gateway. Traffic from the client is encrypted, encapsulated inside a new IP packet and sent to the other end. Once decrypted by the firewall appliance, the client’s original IP packet is sent to the local network.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;In tunnel mode, an IPSec header (&lt;strong&gt;AH&lt;/strong&gt; or &lt;strong&gt;ESP header&lt;/strong&gt;) is inserted between the IP header and the upper layer protocol. Between AH and ESP,&amp;nbsp; ESP is most commonly used in IPSec VPN Tunnel configuration.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The packet diagram below illustrates &lt;strong&gt;IPSec Tunnel mode&lt;/strong&gt; with &lt;strong&gt;ESP header&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.firewall.cx//images/stories/ipsec-modes-transport-tunnel-1.png&quot; alt=&quot;ipsec-modes-transport-tunnel-1&quot; width=&quot;592&quot; height=&quot;193&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;ESP is identified in the &lt;strong&gt;New IP header&lt;/strong&gt; with an IP &lt;strong&gt;protocol ID&lt;/strong&gt; of 50.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The packet diagram below illustrates &lt;strong&gt;IPSec Tunnel mode&lt;/strong&gt; with &lt;strong&gt;AH header&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.firewall.cx//images/stories/ipsec-modes-transport-tunnel-2.png&quot; alt=&quot;ipsec-modes-transport-tunnel-2&quot; width=&quot;420&quot; height=&quot;171&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The AH can be applied alone or together with the ESP, when IPSec is in tunnel mode. AH’s job is to protect the entire packet. The AH does not protect all of the fields in the New IP Header because some change in transit, and the sender cannot predict how they might change. The AH protects everything that does not change in transit. AH is identified in the &lt;strong&gt;New IP header&lt;/strong&gt; with an IP &lt;strong&gt;protocol ID&lt;/strong&gt; of &lt;strong&gt;51.&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;IPSec Transport Mode&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;IPSec Transport mode is used for end-to-end communications, for example, for communication between a client and a server or between a workstation and a gateway (if the gateway is being treated as a host). &amp;nbsp;A good example would be an encrypted Telnet or Remote Desktop session from a workstation to a server.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.firewall.cx//images/stories/ipsec-modes-transport-tunnel-6.gif&quot; alt=&quot;ipsec-modes-transport-tunnel-6&quot; width=&quot;462&quot; height=&quot;182&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Transport mode provides the protection of our data, also known as IP Payload, and consists of TCP/UDP header + Data, through an AH or ESP header. The payload is encapsulated by the IPSec headers and trailers. The original IP headers remain intact, except that the IP protocol field is changed to ESP (50) or AH (51), and the original protocol value is saved in the IPsec trailer to be restored when the packet is decrypted.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;IPSec transport mode is usually used when another tunneling protocol (like GRE) is used to first encapsulate the IP data packet, then IPSec is used to protect the GRE tunnel packets. IPSec protects the GRE tunnel traffic in transport mode.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The packet diagram below illustrates &lt;strong&gt;IPSec Transport mode&lt;/strong&gt; with &lt;strong&gt;ESP header&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.firewall.cx//images/stories/ipsec-modes-transport-tunnel-3.png&quot; alt=&quot;ipsec-modes-transport-tunnel-3&quot; width=&quot;592&quot; height=&quot;193&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Notice that the original IP Header is &lt;strong&gt;moved&lt;/strong&gt; to the front. Placing the sender’s IP header at the front (with minor changes to the protocol ID), proves that transport mode does not provide protection or encryption to the original IP header and ESP is identified in the &lt;strong&gt;New IP header&lt;/strong&gt; with an IP &lt;strong&gt;protocol ID&lt;/strong&gt; of &lt;strong&gt;50&lt;/strong&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The packet diagram below illustrates &lt;strong&gt;IPSec Transport mode&lt;/strong&gt; with &lt;strong&gt;AH header&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.firewall.cx//images/stories/ipsec-modes-transport-tunnel-4.png&quot; alt=&quot;ipsec-modes-transport-tunnel-4&quot; width=&quot;420&quot; height=&quot;171&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The AH can be applied alone or together with the ESP when IPSec is in transport mode. AH’s job is to &lt;strong&gt;protect&lt;/strong&gt; the entire packet, however, IPSec in transport mode does not create a new IP header in front of the packet but places a copy of the original with some minor changes to the protocol ID therefore not providing essential protection to the details contained in the IP header (Source IP, destination IP etc). AH is identified in the &lt;strong&gt;New IP header&lt;/strong&gt; with an IP &lt;strong&gt;protocol ID&lt;/strong&gt; of &lt;strong&gt;51&lt;/strong&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;In both ESP and AH cases with IPSec Transport mode, the IP header is exposed.&lt;/p&gt;</content>
		<category term="Network Protocols" />
	</entry>
	<entry>
		<title>ISDN Layers, Protocols &amp; Components</title>
		<link rel="alternate" type="text/html" href="https://www.firewall.cx/networking/network-protocols/isdn-layers-protocols-components.html"/>
		<published>2011-06-10T07:40:39+10:00</published>
		<updated>2011-06-10T07:40:39+10:00</updated>
		<id>https://www.firewall.cx/networking/network-protocols/isdn-layers-protocols-components.html</id>
		<author>
			<name>Administrator</name>
		</author>
		<summary type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;Our previous article was an &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/isdn-introduction.html&quot; target=&quot;_blank&quot; title=&quot;Introduction To The ISDN Protocol&quot;&gt;Introduction To The ISDN Protocol&lt;/a&gt;. This article dives a bit deeper by examining &lt;strong&gt;ISDN Layers&lt;/strong&gt;, &lt;strong&gt;Protocols &amp;amp; Components&lt;/strong&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;ISDN uses circuit-switching to establish a physical permanent point-to-point connection from the source to the destination. ISDN has standards defined by the ITU that encompass the OSI bottom three layers of which are Physical, Data Link and Network, see Table 1 below.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;At the physical layer the ITU has defined the user network interface standard as I.430 for Basic Rate Access and I.431 for Primary Rate Access; please see the ITU-T I.414 “Overview of Recommendations on Layer 1 for ISDN and B-ISDN customer accesses” document on the ITU's website. ANSI has defined the user network interface standard as T1.601. As already stated above, the physical layer uses the normal telephone cabling as its physical cabling structure.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The ISDN B channels will typically utilise a Point-to-Point protocol such as HDLC (High-Level Data Link Control) or PPP frames at Layer 2 however you can sometimes see other encapsulation such as Frame relay. As you would expect, at layer 3 you typically see IP packets. ISDN operates in Full-Duplex which means that traffic can be received and transmitted at the same time.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;The ISDN D channel will utilise different signalling protocols at Layer 3 and Layer 2 of the OSI Model. Typically at Layer 2, LAP-D (Link Access Procedure – D Channel) is the Q.921 signalling used and DSS1 (Digital Subscriber Signalling System No.1) is the Q.931 signalling that is used at Layer 3. It is easy to remember which one is used at which layer by simply remembering that the middle number corresponds to the layer it operates at.&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot; align=&quot;center&quot;&gt;
&lt;p&gt;&lt;strong&gt;Table 1&lt;/strong&gt;&lt;/p&gt;
&lt;table style=&quot;border: 1px solid #000000;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;background-color: #4b741a;&quot;&gt;
&lt;td style=&quot;background-color: #4169e1; width: 73px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;OSI Layer&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;background-color: #4169e1; width: 104px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;B Channel&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;background-color: #4169e1; width: 108px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;D Channel&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 73px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;3&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 104px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;IP&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 108px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;DSS1 (Q.931)&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 73px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;2&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 104px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;HDLC/PPP&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 108px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;LAP-D (Q.921)&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 73px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;1&lt;/p&gt;
&lt;/td&gt;
&lt;td colspan=&quot;2&quot; style=&quot;width: 212px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;I.430/I.431 or ANSI T1.601&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;center&quot;&gt;Users requiring information on how to configure a Cisco router for ISDN dialup can read our &lt;a href=&quot;https://www.firewall.cx/cisco/cisco-routers/cisco-router-isdn-dialup.html&quot; target=&quot;_blank&quot; title=&quot;How To Configure ISDN Internet Dialup On A Cisco Router&quot;&gt;How To Configure ISDN Internet Dialup On A Cisco Router&lt;/a&gt; article.&lt;/p&gt;
&lt;h2&gt;The Different ISDN Components&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;As part of the ISDN Standards, there are several types devices that are used to connect to the ISDN network which are known as Terminal Equipments (TE) and also Network Termination (NT) equipment. You also have Reference Points which are used to define the connections between the various equipment that is used within the ISDN network.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; align=&quot;center&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/wan-tech-isdn-layers-proto-1.gif&quot; alt=&quot;wan-tech-isdn-layers-proto-1&quot; width=&quot;602&quot; height=&quot;309&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Terminal Equipment and Network Termination Definitions&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;•&amp;nbsp; &lt;strong&gt;Terminal Equipment Type 1&lt;/strong&gt; (&lt;strong&gt;TE1&lt;/strong&gt;) are devices that can plug directly into an ISDN Network and understands the ISDN standards&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;• &lt;strong&gt;Terminal Equipment Type 2&lt;/strong&gt; (&lt;strong&gt;TE2&lt;/strong&gt;) are devices that predate the official ISDN standards and require the use of a terminal adapter (TA) to facilitate plugging into the ISDN Network. These can simply be routers that only have a serial interface on them and not an ISDN WIC. The terminal adapter can plug into the serial interface and allow the router to be used to connect to the ISDN network. Another example would be a Personal Computer (PC).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;• &lt;strong&gt;Network Termination 1&lt;/strong&gt; (&lt;strong&gt;NT1&lt;/strong&gt;) is typically a customer's device that is used to implement the physical layer specification into the ISDN Network (or the NT2 device). This is the U Reference point that connects through to the telco. This operates at Layer 1 of the OSI Model.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;• &lt;strong&gt;Network Termination 2&lt;/strong&gt; (&lt;strong&gt;NT2&lt;/strong&gt;) is typically the telco's device (it's very rare to see this at the customers site) that is used to terminate from the customers NT1 device before traffic hits the ISDN network. This operates at Layer 2 &amp;amp; 3 of the OSI Model and is an intelligent device performing the switching.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;• &lt;strong&gt;Terminal Adapter&lt;/strong&gt; (&lt;strong&gt;TA&lt;/strong&gt;) is used to convert TE2 device signalling into signalling that is used by the ISDN switch.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/wan-tech-isdn-layers-proto-2.gif&quot; alt=&quot;wan-tech-isdn-layers-proto-2&quot; width=&quot;602&quot; height=&quot;309&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;Different ISDN Reference Points&lt;/h4&gt;
&lt;p&gt;•&amp;nbsp; &lt;strong&gt;R&lt;/strong&gt; – This reference point is used to specify the point between the TE2 device and the TA device.&lt;/p&gt;
&lt;p&gt;•&amp;nbsp; &lt;strong&gt;S&lt;/strong&gt; – This reference point is used to specify the point between the customers router and the NT2 device.&lt;/p&gt;
&lt;p&gt;•&amp;nbsp; &lt;strong&gt;T&lt;/strong&gt; – This reference point is used to specify the point between the NT1 device and the NT2 device S and T reference points can perform the same functions therefore they are sometimes referred to as an S/T reference point. When we are plugging into the S/T reference point location, the function of the NT2 is redundant since it's built in.&lt;/p&gt;
&lt;p&gt;•&amp;nbsp; &lt;strong&gt;U&lt;/strong&gt; – This reference point is used to specify the point between the NT1 device and the telco's termination equipment in the ISDN carrier network, apart from in North America where the NT1 function isn't provided by the carrier network.&lt;/p&gt;
&lt;h2&gt;Cisco Router Options&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;With Modular Cisco Routers, they come with slots where you can plug in various cards different types of WAN Interface Cards (WIC). Cisco provide 2 different types of WICs for ISDN support. These different cards provide either a ISDN WIC with the S/T reference points which plug into an NT1 device or an ISDN WIC with a U reference point which has the NT1 built into the WIC itself.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Which WIC is required depends on your location and the telco that provides the ISDN circuit. For example, in North America , they use a two-wire connection which is a WIC card with the U reference point, having the NT1 built into it.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;More information regarding the configuration of Cisco routers and ISDN confguration can be found in our &lt;a href=&quot;https://www.firewall.cx/cisco/cisco-routers/cisco-router-isdn-config.html&quot; target=&quot;_blank&quot; title=&quot;Basic ISDN Configuration&quot;&gt;Basic ISDN Configuration&lt;/a&gt; article.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</summary>
		<content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;Our previous article was an &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/isdn-introduction.html&quot; target=&quot;_blank&quot; title=&quot;Introduction To The ISDN Protocol&quot;&gt;Introduction To The ISDN Protocol&lt;/a&gt;. This article dives a bit deeper by examining &lt;strong&gt;ISDN Layers&lt;/strong&gt;, &lt;strong&gt;Protocols &amp;amp; Components&lt;/strong&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;ISDN uses circuit-switching to establish a physical permanent point-to-point connection from the source to the destination. ISDN has standards defined by the ITU that encompass the OSI bottom three layers of which are Physical, Data Link and Network, see Table 1 below.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;At the physical layer the ITU has defined the user network interface standard as I.430 for Basic Rate Access and I.431 for Primary Rate Access; please see the ITU-T I.414 “Overview of Recommendations on Layer 1 for ISDN and B-ISDN customer accesses” document on the ITU's website. ANSI has defined the user network interface standard as T1.601. As already stated above, the physical layer uses the normal telephone cabling as its physical cabling structure.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The ISDN B channels will typically utilise a Point-to-Point protocol such as HDLC (High-Level Data Link Control) or PPP frames at Layer 2 however you can sometimes see other encapsulation such as Frame relay. As you would expect, at layer 3 you typically see IP packets. ISDN operates in Full-Duplex which means that traffic can be received and transmitted at the same time.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;The ISDN D channel will utilise different signalling protocols at Layer 3 and Layer 2 of the OSI Model. Typically at Layer 2, LAP-D (Link Access Procedure – D Channel) is the Q.921 signalling used and DSS1 (Digital Subscriber Signalling System No.1) is the Q.931 signalling that is used at Layer 3. It is easy to remember which one is used at which layer by simply remembering that the middle number corresponds to the layer it operates at.&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot; align=&quot;center&quot;&gt;
&lt;p&gt;&lt;strong&gt;Table 1&lt;/strong&gt;&lt;/p&gt;
&lt;table style=&quot;border: 1px solid #000000;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;background-color: #4b741a;&quot;&gt;
&lt;td style=&quot;background-color: #4169e1; width: 73px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;OSI Layer&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;background-color: #4169e1; width: 104px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;B Channel&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;background-color: #4169e1; width: 108px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;D Channel&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 73px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;3&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 104px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;IP&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 108px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;DSS1 (Q.931)&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 73px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;2&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 104px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;HDLC/PPP&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 108px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;LAP-D (Q.921)&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 73px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;1&lt;/p&gt;
&lt;/td&gt;
&lt;td colspan=&quot;2&quot; style=&quot;width: 212px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;I.430/I.431 or ANSI T1.601&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;center&quot;&gt;Users requiring information on how to configure a Cisco router for ISDN dialup can read our &lt;a href=&quot;https://www.firewall.cx/cisco/cisco-routers/cisco-router-isdn-dialup.html&quot; target=&quot;_blank&quot; title=&quot;How To Configure ISDN Internet Dialup On A Cisco Router&quot;&gt;How To Configure ISDN Internet Dialup On A Cisco Router&lt;/a&gt; article.&lt;/p&gt;
&lt;h2&gt;The Different ISDN Components&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;As part of the ISDN Standards, there are several types devices that are used to connect to the ISDN network which are known as Terminal Equipments (TE) and also Network Termination (NT) equipment. You also have Reference Points which are used to define the connections between the various equipment that is used within the ISDN network.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; align=&quot;center&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/wan-tech-isdn-layers-proto-1.gif&quot; alt=&quot;wan-tech-isdn-layers-proto-1&quot; width=&quot;602&quot; height=&quot;309&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Terminal Equipment and Network Termination Definitions&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;•&amp;nbsp; &lt;strong&gt;Terminal Equipment Type 1&lt;/strong&gt; (&lt;strong&gt;TE1&lt;/strong&gt;) are devices that can plug directly into an ISDN Network and understands the ISDN standards&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;• &lt;strong&gt;Terminal Equipment Type 2&lt;/strong&gt; (&lt;strong&gt;TE2&lt;/strong&gt;) are devices that predate the official ISDN standards and require the use of a terminal adapter (TA) to facilitate plugging into the ISDN Network. These can simply be routers that only have a serial interface on them and not an ISDN WIC. The terminal adapter can plug into the serial interface and allow the router to be used to connect to the ISDN network. Another example would be a Personal Computer (PC).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;• &lt;strong&gt;Network Termination 1&lt;/strong&gt; (&lt;strong&gt;NT1&lt;/strong&gt;) is typically a customer's device that is used to implement the physical layer specification into the ISDN Network (or the NT2 device). This is the U Reference point that connects through to the telco. This operates at Layer 1 of the OSI Model.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;• &lt;strong&gt;Network Termination 2&lt;/strong&gt; (&lt;strong&gt;NT2&lt;/strong&gt;) is typically the telco's device (it's very rare to see this at the customers site) that is used to terminate from the customers NT1 device before traffic hits the ISDN network. This operates at Layer 2 &amp;amp; 3 of the OSI Model and is an intelligent device performing the switching.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;• &lt;strong&gt;Terminal Adapter&lt;/strong&gt; (&lt;strong&gt;TA&lt;/strong&gt;) is used to convert TE2 device signalling into signalling that is used by the ISDN switch.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/wan-tech-isdn-layers-proto-2.gif&quot; alt=&quot;wan-tech-isdn-layers-proto-2&quot; width=&quot;602&quot; height=&quot;309&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;Different ISDN Reference Points&lt;/h4&gt;
&lt;p&gt;•&amp;nbsp; &lt;strong&gt;R&lt;/strong&gt; – This reference point is used to specify the point between the TE2 device and the TA device.&lt;/p&gt;
&lt;p&gt;•&amp;nbsp; &lt;strong&gt;S&lt;/strong&gt; – This reference point is used to specify the point between the customers router and the NT2 device.&lt;/p&gt;
&lt;p&gt;•&amp;nbsp; &lt;strong&gt;T&lt;/strong&gt; – This reference point is used to specify the point between the NT1 device and the NT2 device S and T reference points can perform the same functions therefore they are sometimes referred to as an S/T reference point. When we are plugging into the S/T reference point location, the function of the NT2 is redundant since it's built in.&lt;/p&gt;
&lt;p&gt;•&amp;nbsp; &lt;strong&gt;U&lt;/strong&gt; – This reference point is used to specify the point between the NT1 device and the telco's termination equipment in the ISDN carrier network, apart from in North America where the NT1 function isn't provided by the carrier network.&lt;/p&gt;
&lt;h2&gt;Cisco Router Options&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;With Modular Cisco Routers, they come with slots where you can plug in various cards different types of WAN Interface Cards (WIC). Cisco provide 2 different types of WICs for ISDN support. These different cards provide either a ISDN WIC with the S/T reference points which plug into an NT1 device or an ISDN WIC with a U reference point which has the NT1 built into the WIC itself.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Which WIC is required depends on your location and the telco that provides the ISDN circuit. For example, in North America , they use a two-wire connection which is a WIC card with the U reference point, having the NT1 built into it.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;More information regarding the configuration of Cisco routers and ISDN confguration can be found in our &lt;a href=&quot;https://www.firewall.cx/cisco/cisco-routers/cisco-router-isdn-config.html&quot; target=&quot;_blank&quot; title=&quot;Basic ISDN Configuration&quot;&gt;Basic ISDN Configuration&lt;/a&gt; article.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</content>
		<category term="Network Protocols" />
	</entry>
	<entry>
		<title>Introduction To The ISDN Protocol</title>
		<link rel="alternate" type="text/html" href="https://www.firewall.cx/networking/network-protocols/isdn-introduction.html"/>
		<published>2011-06-10T07:28:03+10:00</published>
		<updated>2011-06-10T07:28:03+10:00</updated>
		<id>https://www.firewall.cx/networking/network-protocols/isdn-introduction.html</id>
		<author>
			<name>Administrator</name>
		</author>
		<summary type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;ISDN&lt;/strong&gt; (&lt;strong&gt;Integrated Services Digital Network&lt;/strong&gt;) is a digital telephone standard designed to replace analogue connections by utilising ordinary copper wires that are used in standard analogue telephone systems. It started as a recommendation within the ITU's (International Telecommunication Union) Red Book in 1984, although prior to 1992, the ITU was known as the CCITT (International Telegraph and Telephone Consultative Committee). The ITU is responsible for developing recommendations on International Standards within the industry.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;ISDN was developed to provide digital transmission of both voice and data resulting in better quality and speeds over that of PSTN (Public Switched Telephone Network) systems.&lt;/p&gt;
&lt;p&gt;Getting to Know the Digital Protocol&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;There are two types of IDSN Channels.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;•&amp;nbsp; &lt;strong&gt;The B-Channel&lt;/strong&gt; – This is known as the &lt;strong&gt;Bearer&lt;/strong&gt; (“&lt;strong&gt;B&lt;/strong&gt;”) &lt;strong&gt;channel&lt;/strong&gt; which is a 64Kbps channel used for voice, video, data or multimedia transfer. These can be aggregated together to get higher bandwidth utilisation.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;•&amp;nbsp; &lt;strong&gt;The D-Channel&lt;/strong&gt; – This is known as the &lt;strong&gt;Delta&lt;/strong&gt; (“&lt;strong&gt;D&lt;/strong&gt;”) &lt;strong&gt;channel&lt;/strong&gt; which can be either 16Kbps or 64Kbps used primarily for the signalling between the switching equipment. Some say that this adds to the security of ISDN because the controlling and data channels are separate.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;N.B. Digital Signal 0 (DS0) is a basic digital signalling rate of 64Kbits which may be used to describe a single Bearer channel.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Users requiring information on how to configure a Cisco router for ISDN dialup can read our &lt;a href=&quot;https://www.firewall.cx/cisco/cisco-routers/cisco-router-isdn-dialup.html&quot; target=&quot;_blank&quot; title=&quot;How To Configure ISDN Internet Dialup On A Cisco Router&quot;&gt;How To Configure ISDN Internet Dialup On A Cisco Router&lt;/a&gt; article.&lt;/p&gt;
&lt;h2&gt;BRI (Basic Rate Interface)&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Can also be known as BA (Basic Access), this operates a single 16Kbps D channel and two 64Kbps B channels. Although it isn't usually pointed out, the BRI total speed is 192Kbps, this is because you have an additional 48Kbps overhead for framing and synchronisation on the D channel. (64 * 2) + (16 + 48) = (128 + 64) = 192Kbps.&lt;/p&gt;
&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/wan-tech-isdn-intro-1.gif&quot; alt=&quot;wan-tech-isdn-intro-1&quot; width=&quot;271&quot; height=&quot;178&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; title=&quot;ISDN BRI &amp;amp; D Channels&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;PRI (Primary Rate Interface)&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Can also be known as &lt;strong&gt;PA&lt;/strong&gt; (&lt;strong&gt;Primary Access&lt;/strong&gt;), this can operate in two different modes depending on your geographic location. For European locations, &lt;strong&gt;PRI&lt;/strong&gt; is made up of &lt;strong&gt;30 x 64Kbps B channels&lt;/strong&gt; and a &lt;strong&gt;single 64Kbps D channel&lt;/strong&gt; which gives a total of &lt;strong&gt;2.048Mbps&lt;/strong&gt; which is also known as an &lt;strong&gt;E1&lt;/strong&gt; line (or &lt;strong&gt;DS1&lt;/strong&gt;).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;For American and Japanese locations, &lt;strong&gt;PRI&lt;/strong&gt; is made up of &lt;strong&gt;23 x 64Kbps B channels&lt;/strong&gt; and a &lt;strong&gt;single 64Kbps D channel&lt;/strong&gt; which give a total of &lt;strong&gt;1.544Mbps&lt;/strong&gt; which is also known as a &lt;strong&gt;T1&lt;/strong&gt; line (or &lt;strong&gt;DS1&lt;/strong&gt;). Framing and Synchronisation is at 8Kbps for T1 or 64Kbps for E1. T1 PRI is commonly referred to as “23B+D” and for E1 PRI is commonly referred to as “30B+D”.&lt;/p&gt;
&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/wan-tech-isdn-intro-2.gif&quot; alt=&quot;wan-tech-isdn-intro-2&quot; width=&quot;289&quot; height=&quot;178&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; title=&quot;PRI, T1 and E1 Channels&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;N.B. E1 PRI actually has 32 channels which are comprised of 30 x B Channels, 1 x D Channel and 1 Synchronisation Channel.&lt;/p&gt;
&lt;h2&gt;Digital Signal Levels (DSx)&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Digital Signal X is used to describe standard digital transmission rates or levels based on DS0 which is defined as a transmission rate of 64Kbps. This is the rate for one telephone voice channel. This is based on the ANSI T1.107 guidelines and the ITU guideline does differ slightly. The following tables show you the DS level and the corresponding speed and T/E classification.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; align=&quot;center&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;strong&gt;T Carrier&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot; align=&quot;center&quot;&gt;
&lt;table border=&quot;0&quot; style=&quot;border: 1px solid #ffffff; width: 437px; height: 77px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;background-color: #871c78;&quot;&gt;
&lt;td style=&quot;width: 140px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;strong&gt;Digital Signal Level&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 101px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;strong&gt;T Speed&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 110px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;strong&gt;T Classification&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 76px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;strong&gt;Channels&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 140px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;DS0&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 101px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;64 Kbps&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 110px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;N/A&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 76px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;1&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 140px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;DS1&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 101px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;1.544 Mbps&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 110px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;T1&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 76px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;24&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 140px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;DS2&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 101px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;6.312 Mbps&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 110px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;T2&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 76px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;96&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 140px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;DS3&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 101px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;44.368 Mbps&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 110px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;T3&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 76px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;672&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p style=&quot;text-align: left;&quot; align=&quot;center&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;strong&gt;E Carrier&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot; align=&quot;center&quot;&gt;
&lt;table border=&quot;0&quot; style=&quot;border: 1px solid #ffffff;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;background-color: #2c6b77;&quot;&gt;
&lt;td style=&quot;width: 140px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;strong&gt;Digital Signal Level&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 101px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;strong&gt;E Speed&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 110px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;strong&gt;E Classification&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 76px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;strong&gt;Channels&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 140px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;DS0&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 101px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;64 Kbps&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 110px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;N/A&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 76px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;1&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 140px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;DS1&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 101px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;2.048 Mbps&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 110px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;E1&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 76px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;32&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 140px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;DS2&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 101px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;8.448 Mbps&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 110px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;E2&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 76px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;128&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 140px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;DS3&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 101px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;34.368 Mbps&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 110px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;E3&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 76px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;512&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 140px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;DS4&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 101px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;139.264 Mbps&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 110px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;E4&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 76px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;2048&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 140px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;DS5&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 101px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;565.148 Mbps&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 110px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;E5&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 76px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;8192&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;As you can see from the tables, you can see where the guidelines differ slightly. In fact, depending on what sources you read, these tables may differ slightly.&lt;/p&gt;
&lt;h2&gt;Point-to-Point Protocol (PPP)&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;ISDN will typically use the Point-to-Point (PPP) Tunnelling protocol as its basis of transmitting packets over the ISDN circuit. The IP Packets are encapsulated into the PPP packets before the traffic is sent.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;PPP provides link specific control functions via Link Control Protocol (LCP) such as Link Configuration, Link Quality Testing &amp;amp; Address Negotiation. LCP provides more advanced features, such as Multilink, Header Compression, Callback, Scripting, Demand Dialing, Filtering, Tunnelling and Server Routing. There are also authentication mechanisms that can help to ensure that the ISDN connection that is established is from a trusted source. Authentication is optional which can be performed by the use of PAP, CHAP &amp;amp; EAP (although EAP is not used in ISDN implementations, EAP is however a valid authentication method of PPP).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;PAP &lt;/strong&gt;– Password Authentication Protocol is not strong since the password is sent in clear text. PAP occurs during the LCP phase of the PPP connection.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;CHAP &lt;/strong&gt;– Challenge Handshake Authentication Protocol, is much stronger then PAP and is much more widely used. It uses a Challenge/Response security mechanism which uses a one way Hash Function to ensure that the passwords are not sent over the link. The password is Hashed and sent over the link, the other side of the link then performs the same hashing function on the password that they have configured then check to ensure that the two hash values are the same. This can also provide protection against playback.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;EAP &lt;/strong&gt;– Extensible Authentication Protocol provides the ability to use multiple authentication protocols such as static passwords, CHAP, Token Cards, Biometrics, etc... As you can imagine, since CHAP is available on its own and ISDN cannot really work with Token Cards or Biometrics it isn't used in ISDN implementations.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The next article deals with &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/isdn-layers-protocols-components.html&quot; title=&quot;ISDN Layers, Protocols &amp;amp; Components&quot;&gt;ISDN Layers, Protocols &amp;amp; Components&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</summary>
		<content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;ISDN&lt;/strong&gt; (&lt;strong&gt;Integrated Services Digital Network&lt;/strong&gt;) is a digital telephone standard designed to replace analogue connections by utilising ordinary copper wires that are used in standard analogue telephone systems. It started as a recommendation within the ITU's (International Telecommunication Union) Red Book in 1984, although prior to 1992, the ITU was known as the CCITT (International Telegraph and Telephone Consultative Committee). The ITU is responsible for developing recommendations on International Standards within the industry.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;ISDN was developed to provide digital transmission of both voice and data resulting in better quality and speeds over that of PSTN (Public Switched Telephone Network) systems.&lt;/p&gt;
&lt;p&gt;Getting to Know the Digital Protocol&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;There are two types of IDSN Channels.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;•&amp;nbsp; &lt;strong&gt;The B-Channel&lt;/strong&gt; – This is known as the &lt;strong&gt;Bearer&lt;/strong&gt; (“&lt;strong&gt;B&lt;/strong&gt;”) &lt;strong&gt;channel&lt;/strong&gt; which is a 64Kbps channel used for voice, video, data or multimedia transfer. These can be aggregated together to get higher bandwidth utilisation.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;•&amp;nbsp; &lt;strong&gt;The D-Channel&lt;/strong&gt; – This is known as the &lt;strong&gt;Delta&lt;/strong&gt; (“&lt;strong&gt;D&lt;/strong&gt;”) &lt;strong&gt;channel&lt;/strong&gt; which can be either 16Kbps or 64Kbps used primarily for the signalling between the switching equipment. Some say that this adds to the security of ISDN because the controlling and data channels are separate.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;N.B. Digital Signal 0 (DS0) is a basic digital signalling rate of 64Kbits which may be used to describe a single Bearer channel.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Users requiring information on how to configure a Cisco router for ISDN dialup can read our &lt;a href=&quot;https://www.firewall.cx/cisco/cisco-routers/cisco-router-isdn-dialup.html&quot; target=&quot;_blank&quot; title=&quot;How To Configure ISDN Internet Dialup On A Cisco Router&quot;&gt;How To Configure ISDN Internet Dialup On A Cisco Router&lt;/a&gt; article.&lt;/p&gt;
&lt;h2&gt;BRI (Basic Rate Interface)&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Can also be known as BA (Basic Access), this operates a single 16Kbps D channel and two 64Kbps B channels. Although it isn't usually pointed out, the BRI total speed is 192Kbps, this is because you have an additional 48Kbps overhead for framing and synchronisation on the D channel. (64 * 2) + (16 + 48) = (128 + 64) = 192Kbps.&lt;/p&gt;
&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/wan-tech-isdn-intro-1.gif&quot; alt=&quot;wan-tech-isdn-intro-1&quot; width=&quot;271&quot; height=&quot;178&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; title=&quot;ISDN BRI &amp;amp; D Channels&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;PRI (Primary Rate Interface)&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Can also be known as &lt;strong&gt;PA&lt;/strong&gt; (&lt;strong&gt;Primary Access&lt;/strong&gt;), this can operate in two different modes depending on your geographic location. For European locations, &lt;strong&gt;PRI&lt;/strong&gt; is made up of &lt;strong&gt;30 x 64Kbps B channels&lt;/strong&gt; and a &lt;strong&gt;single 64Kbps D channel&lt;/strong&gt; which gives a total of &lt;strong&gt;2.048Mbps&lt;/strong&gt; which is also known as an &lt;strong&gt;E1&lt;/strong&gt; line (or &lt;strong&gt;DS1&lt;/strong&gt;).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;For American and Japanese locations, &lt;strong&gt;PRI&lt;/strong&gt; is made up of &lt;strong&gt;23 x 64Kbps B channels&lt;/strong&gt; and a &lt;strong&gt;single 64Kbps D channel&lt;/strong&gt; which give a total of &lt;strong&gt;1.544Mbps&lt;/strong&gt; which is also known as a &lt;strong&gt;T1&lt;/strong&gt; line (or &lt;strong&gt;DS1&lt;/strong&gt;). Framing and Synchronisation is at 8Kbps for T1 or 64Kbps for E1. T1 PRI is commonly referred to as “23B+D” and for E1 PRI is commonly referred to as “30B+D”.&lt;/p&gt;
&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/wan-tech-isdn-intro-2.gif&quot; alt=&quot;wan-tech-isdn-intro-2&quot; width=&quot;289&quot; height=&quot;178&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; title=&quot;PRI, T1 and E1 Channels&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;N.B. E1 PRI actually has 32 channels which are comprised of 30 x B Channels, 1 x D Channel and 1 Synchronisation Channel.&lt;/p&gt;
&lt;h2&gt;Digital Signal Levels (DSx)&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Digital Signal X is used to describe standard digital transmission rates or levels based on DS0 which is defined as a transmission rate of 64Kbps. This is the rate for one telephone voice channel. This is based on the ANSI T1.107 guidelines and the ITU guideline does differ slightly. The following tables show you the DS level and the corresponding speed and T/E classification.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; align=&quot;center&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;strong&gt;T Carrier&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot; align=&quot;center&quot;&gt;
&lt;table border=&quot;0&quot; style=&quot;border: 1px solid #ffffff; width: 437px; height: 77px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;background-color: #871c78;&quot;&gt;
&lt;td style=&quot;width: 140px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;strong&gt;Digital Signal Level&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 101px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;strong&gt;T Speed&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 110px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;strong&gt;T Classification&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 76px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;strong&gt;Channels&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 140px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;DS0&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 101px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;64 Kbps&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 110px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;N/A&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 76px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;1&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 140px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;DS1&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 101px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;1.544 Mbps&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 110px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;T1&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 76px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;24&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 140px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;DS2&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 101px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;6.312 Mbps&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 110px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;T2&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 76px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;96&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 140px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;DS3&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 101px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;44.368 Mbps&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 110px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;T3&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 76px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;672&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p style=&quot;text-align: left;&quot; align=&quot;center&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;strong&gt;E Carrier&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot; align=&quot;center&quot;&gt;
&lt;table border=&quot;0&quot; style=&quot;border: 1px solid #ffffff;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;background-color: #2c6b77;&quot;&gt;
&lt;td style=&quot;width: 140px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;strong&gt;Digital Signal Level&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 101px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;strong&gt;E Speed&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 110px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;strong&gt;E Classification&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 76px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;strong&gt;Channels&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 140px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;DS0&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 101px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;64 Kbps&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 110px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;N/A&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 76px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;1&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 140px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;DS1&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 101px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;2.048 Mbps&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 110px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;E1&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 76px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;32&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 140px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;DS2&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 101px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;8.448 Mbps&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 110px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;E2&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 76px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;128&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 140px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;DS3&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 101px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;34.368 Mbps&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 110px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;E3&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 76px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;512&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 140px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;DS4&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 101px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;139.264 Mbps&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 110px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;E4&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 76px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;2048&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 140px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;DS5&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 101px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;565.148 Mbps&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 110px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;E5&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 76px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;center&quot;&gt;8192&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;As you can see from the tables, you can see where the guidelines differ slightly. In fact, depending on what sources you read, these tables may differ slightly.&lt;/p&gt;
&lt;h2&gt;Point-to-Point Protocol (PPP)&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;ISDN will typically use the Point-to-Point (PPP) Tunnelling protocol as its basis of transmitting packets over the ISDN circuit. The IP Packets are encapsulated into the PPP packets before the traffic is sent.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;PPP provides link specific control functions via Link Control Protocol (LCP) such as Link Configuration, Link Quality Testing &amp;amp; Address Negotiation. LCP provides more advanced features, such as Multilink, Header Compression, Callback, Scripting, Demand Dialing, Filtering, Tunnelling and Server Routing. There are also authentication mechanisms that can help to ensure that the ISDN connection that is established is from a trusted source. Authentication is optional which can be performed by the use of PAP, CHAP &amp;amp; EAP (although EAP is not used in ISDN implementations, EAP is however a valid authentication method of PPP).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;PAP &lt;/strong&gt;– Password Authentication Protocol is not strong since the password is sent in clear text. PAP occurs during the LCP phase of the PPP connection.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;CHAP &lt;/strong&gt;– Challenge Handshake Authentication Protocol, is much stronger then PAP and is much more widely used. It uses a Challenge/Response security mechanism which uses a one way Hash Function to ensure that the passwords are not sent over the link. The password is Hashed and sent over the link, the other side of the link then performs the same hashing function on the password that they have configured then check to ensure that the two hash values are the same. This can also provide protection against playback.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;EAP &lt;/strong&gt;– Extensible Authentication Protocol provides the ability to use multiple authentication protocols such as static passwords, CHAP, Token Cards, Biometrics, etc... As you can imagine, since CHAP is available on its own and ISDN cannot really work with Token Cards or Biometrics it isn't used in ISDN implementations.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The next article deals with &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/isdn-layers-protocols-components.html&quot; title=&quot;ISDN Layers, Protocols &amp;amp; Components&quot;&gt;ISDN Layers, Protocols &amp;amp; Components&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</content>
		<category term="Network Protocols" />
	</entry>
	<entry>
		<title>Introduction To Protocols</title>
		<link rel="alternate" type="text/html" href="https://www.firewall.cx/networking/network-protocols/introduction-to-protocols.html"/>
		<published>2011-04-25T10:00:00+10:00</published>
		<updated>2011-04-25T10:00:00+10:00</updated>
		<id>https://www.firewall.cx/networking/network-protocols/introduction-to-protocols.html</id>
		<author>
			<name>Administrator</name>
		</author>
		<summary type="html">&lt;p&gt;In the networking and communications area, a protocol is the formal specification that defines the procedures that must be followed when transmitting or receiving data. Protocols define the format, timing, sequence, and error checking used on the network.&lt;br /&gt;&lt;br /&gt;In plain english, the above means that if you have 2 or more devices e.g computers which want to communicate, then they need a common &quot;Protocol&quot; which is a set of rules that guide the computers on how and when to talk to each other. &lt;br /&gt;&lt;br /&gt;The way this &quot;defenition&quot; happens in computer land is by the RFC's (Requests For Comments) where the IETF (a group of enginners with no life) make up the new standards and protocols and then the major vendors (IBM, Cisco, Microsoft, Novell) follow these standards and implement them in their products to make more money and try to take over this world !&lt;br /&gt;&lt;br /&gt;There are hundreads of protocols out there and it is impossible to list them all here, but instead we have included some of the most popular protocols around so you can read up on them and learn more about them. &lt;br /&gt;&lt;br /&gt;The table below shows the most popular TCP/IP protocols. The OSI model is there for you to see which layer each of these protocols work at.&lt;br /&gt;&lt;br /&gt;One thing which you should keep in mind is that as you move from the lower layers (Physical) to the upper layers (Applications), more processing time is needed by the device that's dealing with the protocol.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/networking/network-protocols/introduction-to-protocols/osi-model-protocol-mapping.png&quot; alt=&quot;osi model and protocol mapping&quot; width=&quot;535&quot; height=&quot;311&quot; style=&quot;display: block; margin: 7px auto;&quot; title=&quot;osi model and protocol mapping&quot; /&gt;There is a great amount of protocols covered on Firewall.cx, these include: &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/ip-protocol.html&quot; title=&quot;IP Protocol&quot;&gt;IP protocol&lt;/a&gt;, &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/subnetting.html&quot; title=&quot;Subnetting&quot;&gt;Subnetting&lt;/a&gt;, &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/tcp-udp-protocol.html&quot; title=&quot;TCP/UDP Protocol&quot;&gt;TCP/UDP protocol&lt;/a&gt;, &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/icmp-protocol.html&quot; title=&quot;ICMP Protocol&quot;&gt;ICMP&lt;/a&gt;, &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/dns-protocol.html&quot; title=&quot;Domain Name System Protocol&quot;&gt;DNS&lt;/a&gt;, &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/protocols-ftp.html&quot; title=&quot;FTP Protocol&quot;&gt;FTP&lt;/a&gt;, &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/tftp-protocol.html&quot; title=&quot;TFTP Protocol&quot;&gt;TFTP&lt;/a&gt;, &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/netflow.html&quot; title=&quot;Netflow&quot;&gt;Netflow&lt;/a&gt;, &lt;a href=&quot;https://www.firewall.cx/network-protocols/spanning-tree-protocol.html&quot; title=&quot;STP Protocol&quot;&gt;Spanning Tree Protocol&lt;/a&gt;, &lt;a href=&quot;https://www.firewall.cx/networking/ethernet.html&quot; title=&quot;Ethernet Protocol&quot;&gt;Ethernet&lt;/a&gt;, &lt;a href=&quot;https://www.firewall.cx/networking/routing-protocols/routing-protocol-rip.html&quot; title=&quot;RIP Routing Protocol&quot;&gt;RIP&lt;/a&gt;, &lt;a href=&quot;https://www.firewall.cx/routing-protocols/routing-protocol-ospf.html&quot; title=&quot;OSPF Protocol&quot;&gt;OSPF&lt;/a&gt; and many more.&lt;/p&gt;
&lt;p&gt;To read up on any of our covered topics, simply navigate through our &lt;a href=&quot;https://www.firewall.cx/networking.html&quot; title=&quot;Networking Menu&quot;&gt;Networking menu&lt;/a&gt; above.&lt;/p&gt;</summary>
		<content type="html">&lt;p&gt;In the networking and communications area, a protocol is the formal specification that defines the procedures that must be followed when transmitting or receiving data. Protocols define the format, timing, sequence, and error checking used on the network.&lt;br /&gt;&lt;br /&gt;In plain english, the above means that if you have 2 or more devices e.g computers which want to communicate, then they need a common &quot;Protocol&quot; which is a set of rules that guide the computers on how and when to talk to each other. &lt;br /&gt;&lt;br /&gt;The way this &quot;defenition&quot; happens in computer land is by the RFC's (Requests For Comments) where the IETF (a group of enginners with no life) make up the new standards and protocols and then the major vendors (IBM, Cisco, Microsoft, Novell) follow these standards and implement them in their products to make more money and try to take over this world !&lt;br /&gt;&lt;br /&gt;There are hundreads of protocols out there and it is impossible to list them all here, but instead we have included some of the most popular protocols around so you can read up on them and learn more about them. &lt;br /&gt;&lt;br /&gt;The table below shows the most popular TCP/IP protocols. The OSI model is there for you to see which layer each of these protocols work at.&lt;br /&gt;&lt;br /&gt;One thing which you should keep in mind is that as you move from the lower layers (Physical) to the upper layers (Applications), more processing time is needed by the device that's dealing with the protocol.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/networking/network-protocols/introduction-to-protocols/osi-model-protocol-mapping.png&quot; alt=&quot;osi model and protocol mapping&quot; width=&quot;535&quot; height=&quot;311&quot; style=&quot;display: block; margin: 7px auto;&quot; title=&quot;osi model and protocol mapping&quot; /&gt;There is a great amount of protocols covered on Firewall.cx, these include: &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/ip-protocol.html&quot; title=&quot;IP Protocol&quot;&gt;IP protocol&lt;/a&gt;, &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/subnetting.html&quot; title=&quot;Subnetting&quot;&gt;Subnetting&lt;/a&gt;, &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/tcp-udp-protocol.html&quot; title=&quot;TCP/UDP Protocol&quot;&gt;TCP/UDP protocol&lt;/a&gt;, &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/icmp-protocol.html&quot; title=&quot;ICMP Protocol&quot;&gt;ICMP&lt;/a&gt;, &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/dns-protocol.html&quot; title=&quot;Domain Name System Protocol&quot;&gt;DNS&lt;/a&gt;, &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/protocols-ftp.html&quot; title=&quot;FTP Protocol&quot;&gt;FTP&lt;/a&gt;, &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/tftp-protocol.html&quot; title=&quot;TFTP Protocol&quot;&gt;TFTP&lt;/a&gt;, &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/netflow.html&quot; title=&quot;Netflow&quot;&gt;Netflow&lt;/a&gt;, &lt;a href=&quot;https://www.firewall.cx/network-protocols/spanning-tree-protocol.html&quot; title=&quot;STP Protocol&quot;&gt;Spanning Tree Protocol&lt;/a&gt;, &lt;a href=&quot;https://www.firewall.cx/networking/ethernet.html&quot; title=&quot;Ethernet Protocol&quot;&gt;Ethernet&lt;/a&gt;, &lt;a href=&quot;https://www.firewall.cx/networking/routing-protocols/routing-protocol-rip.html&quot; title=&quot;RIP Routing Protocol&quot;&gt;RIP&lt;/a&gt;, &lt;a href=&quot;https://www.firewall.cx/routing-protocols/routing-protocol-ospf.html&quot; title=&quot;OSPF Protocol&quot;&gt;OSPF&lt;/a&gt; and many more.&lt;/p&gt;
&lt;p&gt;To read up on any of our covered topics, simply navigate through our &lt;a href=&quot;https://www.firewall.cx/networking.html&quot; title=&quot;Networking Menu&quot;&gt;Networking menu&lt;/a&gt; above.&lt;/p&gt;</content>
		<category term="Network Protocols" />
	</entry>
	<entry>
		<title>File Transfer Protocol - FTP</title>
		<link rel="alternate" type="text/html" href="https://www.firewall.cx/networking/network-protocols/protocols-ftp.html"/>
		<published>2011-04-25T10:00:00+10:00</published>
		<updated>2011-04-25T10:00:00+10:00</updated>
		<id>https://www.firewall.cx/networking/network-protocols/protocols-ftp.html</id>
		<author>
			<name>Administrator</name>
		</author>
		<summary type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;File transfer is among the most frequently used TCP/IP applications and it accounts for a lot of the network traffic on the Internet. Various standard file transfer protocols existed even before the Internet was available to everyone and it was these early versions of the file transfer software that helped create today's standard known as the File Transfer Protocol (FTP). Most recent specifications of the protocol are listed in &lt;a href=&quot;https://www.rfc-editor.org/rfc/rfc959&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot; title=&quot;FTP RFC 959&quot;&gt;RFC 959&lt;/a&gt;.&lt;/p&gt;
&lt;h2 align=&quot;left&quot;&gt;The Protocol&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;FTP uses TCP as a transport protocol. This means that FTP inherits TCP's robustness and is very reliable for transferring files. Chances are if you download files, you've probably used ftp a few hundred times without realising it ! And if you have a huge warez collection, then make that a couple of thousand times :)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;The picture below shows where FTP stands in contrast to the OSI model. As I have noted in other sections, it's important to understand the concept of the OSI model, because it will greatly help you understand all this too :)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ftp-1.gif&quot; alt=&quot;ftp-1&quot; width=&quot;382&quot; height=&quot;328&quot; style=&quot;margin: 5px; float: left;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Now, we mentioned that FTP uses TCP as a transport, but we didn't say which ports it uses! Port numbers 21 and 20 are used for FTP. Port 21 is used to establish the connection between the 2 computers (or hosts) and port 20 to transfer data (via the Data channel).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;But there are some instances where port 21 is used for both, establishing a connection and data transfer and I will analyse them shortly.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The best thing you can do to &quot;see&quot; it yourself is to grab a packet sniffer which you will conveniently find in our &lt;a href=&quot;https://www.firewall.cx/downloads.html&quot; target=&quot;_blank&quot; title=&quot;Download section&quot;&gt;download section&lt;/a&gt; and try to capture a few packets while you're ftp'ing to a site.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot;&gt;Both Ports - 20 and 21 - Active FTP Mode&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Included below is a screenshot clearly showing &lt;strong&gt;TCP ports 20&lt;/strong&gt; and &lt;strong&gt;21&lt;/strong&gt; being used:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ftp-2small.gif&quot; alt=&quot;ftp-2small&quot; width=&quot;624&quot; height=&quot;118&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot;&gt;Only Port 21 - Passive FTP Mode&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The next screenshot shows captures an FTP session using only &lt;strong&gt;TCP Port 21&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ftp-3small.gif&quot; alt=&quot;ftp-3small&quot; width=&quot;626&quot; height=&quot;99&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;FTP has two different modes of operation: &lt;strong&gt;Active&lt;/strong&gt; and &lt;strong&gt;Passive&lt;/strong&gt;. The mode used depends on a number of circumstances, but mainly if you are behind a firewall or not.&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Active Mode FTP&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Active mode is usually used when there isn't any firewall between you and the FTP server. In such cases you have a direct connection to the Internet. When you (the client) try to establish a connection to a FTP server, your workstation includes a second port number (using the PORT command) that is used when data is to be exchanged, this is known as the Data Channel.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The FTP server then starts the exchange of data from its own port 20 to whatever port was designated by your workstation (in the screen shot, my workstation used port 1086), and because the server initiated the communication, it's not controlled by the workstation client. This can also potentially allow uninvited data to arrive to your computer from anywhere posing as a normal FTP transfer. This is one of the reasons Passive FTP is more secure.&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Passive Mode FTP&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Using normal or passive FTP, a client begins a session by sending a request to communicate through TCP port 21, the port that is conventionally assigned for this use at the FTP server. This communication is known as the Control Channel connection.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;At this point, a PASV command is sent instead of a PORT command. Instead of specifying a port that the server can send to, the PASV command asks the server to specify a port it wishes to use for the Data Channel connection. The server replies on the Control Channel with the port number which the client then uses to initiate an exchange on the Data Channel. The server will thus always be responding to client-initiated requests on the Data Channel and the firewall can correlate these.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;It's simple to configure your client FTP program to use either Active or Passive FTP. For example, in Cute FTP, you can set your program to use Passive FTP by going to FTP--&amp;gt; Settings --&amp;gt; Options and then selecting the &quot;Firewall&quot; tab :&lt;/p&gt;
&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ftp4.gif&quot; alt=&quot;ftp4&quot; width=&quot;368&quot; height=&quot;359&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;If you remove the above options, then your workstation will be using (if possible) Active FTP mode, and I say &quot;if possible&quot; cause if your already behind a firewall, there is probably no way you will be using Active FTP, so the program will automatically change to Passive FTP mode.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;So let's have a look at the process of a computer establishing an FTP connection with a server: .&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ftp-handshake.gif&quot; alt=&quot;ftp-handshake&quot; width=&quot;510&quot; height=&quot;312&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The above is assuming a direct connection to the FTP server. For simplicity reasons, we are looking at the way the FTP connection is created and not worring if it's a Passive or Active FTP connection. Since FTP is using TCP as a transport, you would expect to see the 3-way handshake. Once that is completed and there is data connection established, the client will send its login name and then password. After the authentication sequence is finished and the user is authenticated to the Server, it's allowed access and is ready to leach the site dry :)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Finally, below are the most commonly used FTP commands:&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;ABOR&lt;/strong&gt;: abort previous FTP command&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;LIST&lt;/strong&gt; and &lt;strong&gt;NLST&lt;/strong&gt;: list file and directories&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;DELE&lt;/strong&gt;: delete a file&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;RMD&lt;/strong&gt;: remove a directory&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;MKD&lt;/strong&gt;: create a directory&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;PWD&lt;/strong&gt;: print current working directory ( show you which dir. your at)&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;PASS&lt;/strong&gt;: send password&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;PORT&lt;/strong&gt;: request open port number on specific IP address/port number&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;QUIT&lt;/strong&gt;: log off from server&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;RETR&lt;/strong&gt;: retrieve file&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;STOR&lt;/strong&gt;: send or put file&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;SYST&lt;/strong&gt;: identity system type&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;TYPE&lt;/strong&gt;: specify type (A for ASCII, I for binary)&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;USER&lt;/strong&gt;: send username&lt;/div&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;And that just about complete's our analysis on the FTP protocol !&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</summary>
		<content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;File transfer is among the most frequently used TCP/IP applications and it accounts for a lot of the network traffic on the Internet. Various standard file transfer protocols existed even before the Internet was available to everyone and it was these early versions of the file transfer software that helped create today's standard known as the File Transfer Protocol (FTP). Most recent specifications of the protocol are listed in &lt;a href=&quot;https://www.rfc-editor.org/rfc/rfc959&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot; title=&quot;FTP RFC 959&quot;&gt;RFC 959&lt;/a&gt;.&lt;/p&gt;
&lt;h2 align=&quot;left&quot;&gt;The Protocol&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;FTP uses TCP as a transport protocol. This means that FTP inherits TCP's robustness and is very reliable for transferring files. Chances are if you download files, you've probably used ftp a few hundred times without realising it ! And if you have a huge warez collection, then make that a couple of thousand times :)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;The picture below shows where FTP stands in contrast to the OSI model. As I have noted in other sections, it's important to understand the concept of the OSI model, because it will greatly help you understand all this too :)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ftp-1.gif&quot; alt=&quot;ftp-1&quot; width=&quot;382&quot; height=&quot;328&quot; style=&quot;margin: 5px; float: left;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Now, we mentioned that FTP uses TCP as a transport, but we didn't say which ports it uses! Port numbers 21 and 20 are used for FTP. Port 21 is used to establish the connection between the 2 computers (or hosts) and port 20 to transfer data (via the Data channel).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;But there are some instances where port 21 is used for both, establishing a connection and data transfer and I will analyse them shortly.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The best thing you can do to &quot;see&quot; it yourself is to grab a packet sniffer which you will conveniently find in our &lt;a href=&quot;https://www.firewall.cx/downloads.html&quot; target=&quot;_blank&quot; title=&quot;Download section&quot;&gt;download section&lt;/a&gt; and try to capture a few packets while you're ftp'ing to a site.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot;&gt;Both Ports - 20 and 21 - Active FTP Mode&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Included below is a screenshot clearly showing &lt;strong&gt;TCP ports 20&lt;/strong&gt; and &lt;strong&gt;21&lt;/strong&gt; being used:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ftp-2small.gif&quot; alt=&quot;ftp-2small&quot; width=&quot;624&quot; height=&quot;118&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot;&gt;Only Port 21 - Passive FTP Mode&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The next screenshot shows captures an FTP session using only &lt;strong&gt;TCP Port 21&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ftp-3small.gif&quot; alt=&quot;ftp-3small&quot; width=&quot;626&quot; height=&quot;99&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;FTP has two different modes of operation: &lt;strong&gt;Active&lt;/strong&gt; and &lt;strong&gt;Passive&lt;/strong&gt;. The mode used depends on a number of circumstances, but mainly if you are behind a firewall or not.&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Active Mode FTP&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Active mode is usually used when there isn't any firewall between you and the FTP server. In such cases you have a direct connection to the Internet. When you (the client) try to establish a connection to a FTP server, your workstation includes a second port number (using the PORT command) that is used when data is to be exchanged, this is known as the Data Channel.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The FTP server then starts the exchange of data from its own port 20 to whatever port was designated by your workstation (in the screen shot, my workstation used port 1086), and because the server initiated the communication, it's not controlled by the workstation client. This can also potentially allow uninvited data to arrive to your computer from anywhere posing as a normal FTP transfer. This is one of the reasons Passive FTP is more secure.&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Passive Mode FTP&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Using normal or passive FTP, a client begins a session by sending a request to communicate through TCP port 21, the port that is conventionally assigned for this use at the FTP server. This communication is known as the Control Channel connection.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;At this point, a PASV command is sent instead of a PORT command. Instead of specifying a port that the server can send to, the PASV command asks the server to specify a port it wishes to use for the Data Channel connection. The server replies on the Control Channel with the port number which the client then uses to initiate an exchange on the Data Channel. The server will thus always be responding to client-initiated requests on the Data Channel and the firewall can correlate these.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;It's simple to configure your client FTP program to use either Active or Passive FTP. For example, in Cute FTP, you can set your program to use Passive FTP by going to FTP--&amp;gt; Settings --&amp;gt; Options and then selecting the &quot;Firewall&quot; tab :&lt;/p&gt;
&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ftp4.gif&quot; alt=&quot;ftp4&quot; width=&quot;368&quot; height=&quot;359&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;If you remove the above options, then your workstation will be using (if possible) Active FTP mode, and I say &quot;if possible&quot; cause if your already behind a firewall, there is probably no way you will be using Active FTP, so the program will automatically change to Passive FTP mode.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;So let's have a look at the process of a computer establishing an FTP connection with a server: .&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ftp-handshake.gif&quot; alt=&quot;ftp-handshake&quot; width=&quot;510&quot; height=&quot;312&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The above is assuming a direct connection to the FTP server. For simplicity reasons, we are looking at the way the FTP connection is created and not worring if it's a Passive or Active FTP connection. Since FTP is using TCP as a transport, you would expect to see the 3-way handshake. Once that is completed and there is data connection established, the client will send its login name and then password. After the authentication sequence is finished and the user is authenticated to the Server, it's allowed access and is ready to leach the site dry :)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Finally, below are the most commonly used FTP commands:&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;ABOR&lt;/strong&gt;: abort previous FTP command&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;LIST&lt;/strong&gt; and &lt;strong&gt;NLST&lt;/strong&gt;: list file and directories&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;DELE&lt;/strong&gt;: delete a file&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;RMD&lt;/strong&gt;: remove a directory&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;MKD&lt;/strong&gt;: create a directory&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;PWD&lt;/strong&gt;: print current working directory ( show you which dir. your at)&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;PASS&lt;/strong&gt;: send password&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;PORT&lt;/strong&gt;: request open port number on specific IP address/port number&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;QUIT&lt;/strong&gt;: log off from server&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;RETR&lt;/strong&gt;: retrieve file&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;STOR&lt;/strong&gt;: send or put file&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;SYST&lt;/strong&gt;: identity system type&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;TYPE&lt;/strong&gt;: specify type (A for ASCII, I for binary)&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;USER&lt;/strong&gt;: send username&lt;/div&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;And that just about complete's our analysis on the FTP protocol !&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</content>
		<category term="Network Protocols" />
	</entry>
	<entry>
		<title>Trivial File Transport Protocol - TFTP</title>
		<link rel="alternate" type="text/html" href="https://www.firewall.cx/networking/network-protocols/tftp-protocol.html"/>
		<published>2011-04-25T10:00:00+10:00</published>
		<updated>2011-04-25T10:00:00+10:00</updated>
		<id>https://www.firewall.cx/networking/network-protocols/tftp-protocol.html</id>
		<author>
			<name>Administrator</name>
		</author>
		<summary type="html">&lt;p&gt;&lt;strong&gt;TFTP&lt;/strong&gt; is a &lt;strong&gt;file transport protocol&lt;/strong&gt; and its name suggests it's something close to the &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/protocols-ftp.html&quot; target=&quot;_blank&quot; title=&quot;FTP protocol&quot;&gt;FTP protocol&lt;/a&gt; (File Transfer Protocol), which is true .. to a degree. &lt;strong&gt;TFTP&lt;/strong&gt; isn't very popular because it's not really used on the Internet because of its limitations which we'll explore next.&lt;/p&gt;
&lt;h2&gt;The TFTP Protocol&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;TFTP&lt;/strong&gt;'s main difference from &lt;strong&gt;FTP&lt;/strong&gt; is the transport protocol it uses and the lack of any authentication mechanisim. Where FTP uses the robust &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/tcp-udp-protocol.html&quot; target=&quot;_blank&quot; title=&quot;TCP protocol&quot;&gt;TCP protocol&lt;/a&gt; to establish connections and complete the file transfers, TFTP uses the &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/tcp-udp-protocol/udp-protocol.html&quot; target=&quot;_blank&quot; title=&quot;UDP protocol&quot;&gt;UDP protocol&lt;/a&gt; which is unsecure and has no error checking built in to it (unless they have implemented some type of error checking in the program you are using to transfer files), this also explains why you are more likely to find TFTP in a LAN, rather than a WAN (Wide Area Network) or on the Internet.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/tftp-1.gif&quot; alt=&quot;tftp-1&quot; width=&quot;382&quot; height=&quot;328&quot; style=&quot;margin: 5px; float: left;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The major limitations with &lt;strong&gt;TFTP&lt;/strong&gt; are &lt;em&gt;authentication&lt;/em&gt; and &lt;em&gt;directory visibility&lt;/em&gt;, meaning you don't get to see the files and directories available at the TFTP server.&lt;/p&gt;
&lt;p&gt;As mentioned, &lt;strong&gt;TFTP&lt;/strong&gt; uses &lt;strong&gt;UDP&lt;/strong&gt; as a transport, as opposed to TCP which FTP uses, and works on &lt;strong&gt;port 69&lt;/strong&gt;, you can clearly see that in the cool 3D diagram on the left.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;&lt;strong&gt;Port 69&lt;/strong&gt; is the default port for TFTP, but if you like, you can modify the settings on your TFTP server so it runs on a different port.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Now, to make things a bit clearer I have included a screen shot of my workstation tftp'ing into a &lt;strong&gt;TFTP&lt;/strong&gt; server which I have setup in my little network.&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/tftp-1small.gif&quot; alt=&quot;tftp-1small&quot; width=&quot;635&quot; height=&quot;119&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;You can see my workstation (192.168.0.100) contacting the TFTP server (192.168.0.1) on port 69(destination port). In this first packet, my workstation is contacting the server and requesting the file I entered before I connected to the server. &lt;a href=&quot;https://www.firewall.cx/images/stories/tftp-1big.gif&quot; target=&quot;_blank&quot;&gt;Click here&lt;/a&gt; for the full picture.&lt;/p&gt;
&lt;p&gt;Because you don't get a listing of the files and directories, you must know which file you want to download ! In the response I received (2nd packet) the server gets straight into business and starts sending the file. &lt;strong&gt;No authentication&lt;/strong&gt; whatsoever !&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;Note&lt;/span&gt;: The workstation usally won't send back any acknowlegement (because &lt;strong&gt;UDP&lt;/strong&gt;, which is the transport protocol, by nature, &lt;strong&gt;never sends acknowledgements&lt;/strong&gt;), but the software developers can incorporate such a feature by forcing the workstation to send a small packet which the TFTP server is able to pickup as an acknowledgement of the previous data packet it sent to the workstation.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;In the example I provide, you can see my workstation sending small packets to the server after it receives one packet from it. These small acknowledgements have been added by the software company who created the program I was using for this example.&lt;/p&gt;
&lt;p&gt;Below is a screen shot of the program I used to TFTP (TFTP Client) to the server:&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/tftp-2.gif&quot; alt=&quot;tftp-2&quot; width=&quot;346&quot; height=&quot;268&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Notice how I entered the file I wanted to downloaded (server.exe), and selected the name which the file will be saved as on my local computer (Local File). If I didn't provide the Remote File name, I would simply get an error poping up at the server side, complaing that no such file exists. You can also send files using TFTP, as it's not just for downloading :)&lt;/p&gt;
&lt;h2&gt;So where is TFTP used?&lt;/h2&gt;
&lt;p&gt;TFTP is used mostly for backing up router configuration files like Cisco and its IOS images, it is also used for diskless booting PC's where, after the workstation has booted from the network card's ROM, TFTP is used to download the program it needs to load and run from a central server.&lt;/p&gt;
&lt;p&gt;Below is a diagram which shows what takes place during a TFTP session:&lt;br /&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/tftp-handshake.gif&quot; alt=&quot;tftp-handshake&quot; width=&quot;539&quot; height=&quot;170&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;In this diagram we are assuming that there is no error checking built into the software running at both ends (client and server).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;This completes our discussion on the TFTP protocol. More information around different protocols can be found in the &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols.html&quot; title=&quot;Network Protocol Section&quot;&gt;Network Protocol&lt;/a&gt; section.&lt;/p&gt;
&lt;div id=&quot;_mcePaste&quot; class=&quot;mcePaste&quot; style=&quot;overflow: hidden; position: absolute; left: -10000px; top: 16px; width: 1px; height: 1px; text-align: justify;&quot;&gt;
&lt;table border=&quot;0&quot; style=&quot;width: 630px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;height: 294px;&quot; valign=&quot;top&quot;&gt;
&lt;div align=&quot;center&quot;&gt;
&lt;p align=&quot;left&quot;&gt;net.&lt;/p&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;height: 328px;&quot; valign=&quot;top&quot;&gt;
&lt;table border=&quot;0&quot; style=&quot;width: 100%;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 382px; height: 328px;&quot; valign=&quot;top&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/pictures/tftp-1.gif&quot; alt=&quot;&quot; width=&quot;382&quot; height=&quot;328&quot; /&gt;&lt;/td&gt;
&lt;td style=&quot;width: 248px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;The major limitations with &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #ffff00;&quot;&gt;TFTP&lt;/span&gt;&lt;/span&gt; are &lt;span style=&quot;color: #33ff00;&quot;&gt;authentication&lt;/span&gt; and &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #00ff00;&quot;&gt;directory visibility&lt;/span&gt;&lt;/span&gt;, meaning you don't get to see the files and directories available at the TFTP server.&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;As mentioned, &lt;span style=&quot;color: #ffff00;&quot;&gt;TFTP&lt;/span&gt; uses &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #ff9933;&quot;&gt;UDP&lt;/span&gt;&lt;/span&gt; as a transport, as opposed to TCP which FTP uses, and works on &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #ff33ff;&quot;&gt;port 69&lt;/span&gt;&lt;/span&gt;, you can clearly see that in the cool 3D diagram on the left.&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;Port 69 is the default port for TFTP, but if you like, you can modify the settings on your TFTP server so it runs on a different port.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;height: 1341px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;left&quot;&gt;You will find some very good TFTP servers and clients in the &lt;a href=&quot;https://www.firewall.cx/downloads-ftp.php&quot;&gt;download&lt;/a&gt; section.&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;Now, to make things a bit clearer I have included a screen shot of my workstation tftp'ing into a &lt;span style=&quot;color: #ffff00;&quot;&gt;TFTP&lt;/span&gt; server which I have setup in my little network.&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/pictures/tftp-1small.gif&quot; alt=&quot;&quot; width=&quot;630&quot; height=&quot;119&quot; /&gt;&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;You can see my workstation (192.168.0.100) contacting the &lt;span style=&quot;color: #ffff00;&quot;&gt;TFTP&lt;/span&gt; server (192.168.0.1) on &lt;span style=&quot;color: #ff00ff;&quot;&gt;port 69&lt;/span&gt;(destination port). In this first packet, my workstation is contacting the server and requesting the file I entered before I connected to the server. &lt;a href=&quot;https://www.firewall.cx/pictures/tftp-1big.gif&quot;&gt;Click here&lt;/a&gt; for the full picture.&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;Because you don't get a listing of the files and directories, you must know which file you want to download ! In the response I received (2nd packet) the server gets straight into business and starts sending the file.&lt;span style=&quot;color: #99ffff;&quot;&gt; No authentication&lt;/span&gt; whatsoever !&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;Note&lt;/span&gt;: The workstation usally won't send back any acknowlegement (because &lt;span style=&quot;color: #ff9900;&quot;&gt;UDP&lt;/span&gt;, which is the transport protocol, by nature, &lt;span style=&quot;color: #ff9900;&quot;&gt;never sends acknowledgements&lt;/span&gt;), but the software developers can incorporate such a feature by forcing the workstation to send a small packet which the &lt;span style=&quot;color: #ffff00;&quot;&gt;TFTP&lt;/span&gt; server is able to pickup as an acknowledgement of the previous data packet it sent to the workstation.&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;In the example I provide, you can see my workstation sending small packets to the server after it receives one packet from it. These small acknowledgements have been added by the software company who created the program I was using for this example.&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;Below is a screen shot of the program I used to &lt;span style=&quot;color: #ffff00;&quot;&gt;TFTP&lt;/span&gt; (&lt;span style=&quot;color: #ffff00;&quot;&gt;TFTP&lt;/span&gt; Client) to the server:&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/pictures/tftp-2.gif&quot; alt=&quot;&quot; width=&quot;346&quot; height=&quot;268&quot; /&gt;&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;Notice how I entered the file I wanted to downloaded (server.exe), and selected the name which the file will be saved as on my local computer (Local File). If I didn't provide the &lt;span style=&quot;color: #66ffff;&quot;&gt;Remote File&lt;/span&gt; name, I would simply get an error poping up at the server side, complaing that no such file exists. You can also send files using &lt;span style=&quot;color: #ffff00;&quot;&gt;TFTP&lt;/span&gt;, as it's not just for downloading :)&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;span style=&quot;color: #ff9933;&quot;&gt;&lt;strong&gt;So where is TFTP used ?&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;span style=&quot;color: #ffff00;&quot;&gt;TFTP&lt;/span&gt; is used mostly for backing up router configuration files like Cisco and its IOS images, it is also used for diskless booting PC's where, after the workstation has booted from the network card's ROM, &lt;span style=&quot;color: #ffff00;&quot;&gt;TFTP&lt;span style=&quot;color: #ffffff;&quot;&gt; is used&lt;/span&gt;&lt;/span&gt; to download the program it needs to load and run from a central server.&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;Below is a diagram which shows what takes place during a &lt;span style=&quot;color: #ffff00;&quot;&gt;TFTP&lt;/span&gt; session:&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.....&lt;/span&gt;&lt;img src=&quot;https://www.firewall.cx/pictures/tftp%20handshake.gif&quot; alt=&quot;&quot; width=&quot;539&quot; height=&quot;170&quot; /&gt;&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;In this diagram we are assuming that there is no error checking built into the software running at both ends (client and server).&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;And that pretty much sums it all up for the TFTP protocol.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</summary>
		<content type="html">&lt;p&gt;&lt;strong&gt;TFTP&lt;/strong&gt; is a &lt;strong&gt;file transport protocol&lt;/strong&gt; and its name suggests it's something close to the &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/protocols-ftp.html&quot; target=&quot;_blank&quot; title=&quot;FTP protocol&quot;&gt;FTP protocol&lt;/a&gt; (File Transfer Protocol), which is true .. to a degree. &lt;strong&gt;TFTP&lt;/strong&gt; isn't very popular because it's not really used on the Internet because of its limitations which we'll explore next.&lt;/p&gt;
&lt;h2&gt;The TFTP Protocol&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;TFTP&lt;/strong&gt;'s main difference from &lt;strong&gt;FTP&lt;/strong&gt; is the transport protocol it uses and the lack of any authentication mechanisim. Where FTP uses the robust &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/tcp-udp-protocol.html&quot; target=&quot;_blank&quot; title=&quot;TCP protocol&quot;&gt;TCP protocol&lt;/a&gt; to establish connections and complete the file transfers, TFTP uses the &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols/tcp-udp-protocol/udp-protocol.html&quot; target=&quot;_blank&quot; title=&quot;UDP protocol&quot;&gt;UDP protocol&lt;/a&gt; which is unsecure and has no error checking built in to it (unless they have implemented some type of error checking in the program you are using to transfer files), this also explains why you are more likely to find TFTP in a LAN, rather than a WAN (Wide Area Network) or on the Internet.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/tftp-1.gif&quot; alt=&quot;tftp-1&quot; width=&quot;382&quot; height=&quot;328&quot; style=&quot;margin: 5px; float: left;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The major limitations with &lt;strong&gt;TFTP&lt;/strong&gt; are &lt;em&gt;authentication&lt;/em&gt; and &lt;em&gt;directory visibility&lt;/em&gt;, meaning you don't get to see the files and directories available at the TFTP server.&lt;/p&gt;
&lt;p&gt;As mentioned, &lt;strong&gt;TFTP&lt;/strong&gt; uses &lt;strong&gt;UDP&lt;/strong&gt; as a transport, as opposed to TCP which FTP uses, and works on &lt;strong&gt;port 69&lt;/strong&gt;, you can clearly see that in the cool 3D diagram on the left.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;&lt;strong&gt;Port 69&lt;/strong&gt; is the default port for TFTP, but if you like, you can modify the settings on your TFTP server so it runs on a different port.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Now, to make things a bit clearer I have included a screen shot of my workstation tftp'ing into a &lt;strong&gt;TFTP&lt;/strong&gt; server which I have setup in my little network.&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/tftp-1small.gif&quot; alt=&quot;tftp-1small&quot; width=&quot;635&quot; height=&quot;119&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;You can see my workstation (192.168.0.100) contacting the TFTP server (192.168.0.1) on port 69(destination port). In this first packet, my workstation is contacting the server and requesting the file I entered before I connected to the server. &lt;a href=&quot;https://www.firewall.cx/images/stories/tftp-1big.gif&quot; target=&quot;_blank&quot;&gt;Click here&lt;/a&gt; for the full picture.&lt;/p&gt;
&lt;p&gt;Because you don't get a listing of the files and directories, you must know which file you want to download ! In the response I received (2nd packet) the server gets straight into business and starts sending the file. &lt;strong&gt;No authentication&lt;/strong&gt; whatsoever !&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;Note&lt;/span&gt;: The workstation usally won't send back any acknowlegement (because &lt;strong&gt;UDP&lt;/strong&gt;, which is the transport protocol, by nature, &lt;strong&gt;never sends acknowledgements&lt;/strong&gt;), but the software developers can incorporate such a feature by forcing the workstation to send a small packet which the TFTP server is able to pickup as an acknowledgement of the previous data packet it sent to the workstation.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;In the example I provide, you can see my workstation sending small packets to the server after it receives one packet from it. These small acknowledgements have been added by the software company who created the program I was using for this example.&lt;/p&gt;
&lt;p&gt;Below is a screen shot of the program I used to TFTP (TFTP Client) to the server:&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/tftp-2.gif&quot; alt=&quot;tftp-2&quot; width=&quot;346&quot; height=&quot;268&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Notice how I entered the file I wanted to downloaded (server.exe), and selected the name which the file will be saved as on my local computer (Local File). If I didn't provide the Remote File name, I would simply get an error poping up at the server side, complaing that no such file exists. You can also send files using TFTP, as it's not just for downloading :)&lt;/p&gt;
&lt;h2&gt;So where is TFTP used?&lt;/h2&gt;
&lt;p&gt;TFTP is used mostly for backing up router configuration files like Cisco and its IOS images, it is also used for diskless booting PC's where, after the workstation has booted from the network card's ROM, TFTP is used to download the program it needs to load and run from a central server.&lt;/p&gt;
&lt;p&gt;Below is a diagram which shows what takes place during a TFTP session:&lt;br /&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/tftp-handshake.gif&quot; alt=&quot;tftp-handshake&quot; width=&quot;539&quot; height=&quot;170&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;In this diagram we are assuming that there is no error checking built into the software running at both ends (client and server).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;This completes our discussion on the TFTP protocol. More information around different protocols can be found in the &lt;a href=&quot;https://www.firewall.cx/networking/network-protocols.html&quot; title=&quot;Network Protocol Section&quot;&gt;Network Protocol&lt;/a&gt; section.&lt;/p&gt;
&lt;div id=&quot;_mcePaste&quot; class=&quot;mcePaste&quot; style=&quot;overflow: hidden; position: absolute; left: -10000px; top: 16px; width: 1px; height: 1px; text-align: justify;&quot;&gt;
&lt;table border=&quot;0&quot; style=&quot;width: 630px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;height: 294px;&quot; valign=&quot;top&quot;&gt;
&lt;div align=&quot;center&quot;&gt;
&lt;p align=&quot;left&quot;&gt;net.&lt;/p&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;height: 328px;&quot; valign=&quot;top&quot;&gt;
&lt;table border=&quot;0&quot; style=&quot;width: 100%;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 382px; height: 328px;&quot; valign=&quot;top&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/pictures/tftp-1.gif&quot; alt=&quot;&quot; width=&quot;382&quot; height=&quot;328&quot; /&gt;&lt;/td&gt;
&lt;td style=&quot;width: 248px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;The major limitations with &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #ffff00;&quot;&gt;TFTP&lt;/span&gt;&lt;/span&gt; are &lt;span style=&quot;color: #33ff00;&quot;&gt;authentication&lt;/span&gt; and &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #00ff00;&quot;&gt;directory visibility&lt;/span&gt;&lt;/span&gt;, meaning you don't get to see the files and directories available at the TFTP server.&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;As mentioned, &lt;span style=&quot;color: #ffff00;&quot;&gt;TFTP&lt;/span&gt; uses &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #ff9933;&quot;&gt;UDP&lt;/span&gt;&lt;/span&gt; as a transport, as opposed to TCP which FTP uses, and works on &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #ff33ff;&quot;&gt;port 69&lt;/span&gt;&lt;/span&gt;, you can clearly see that in the cool 3D diagram on the left.&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;Port 69 is the default port for TFTP, but if you like, you can modify the settings on your TFTP server so it runs on a different port.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;height: 1341px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;left&quot;&gt;You will find some very good TFTP servers and clients in the &lt;a href=&quot;https://www.firewall.cx/downloads-ftp.php&quot;&gt;download&lt;/a&gt; section.&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;Now, to make things a bit clearer I have included a screen shot of my workstation tftp'ing into a &lt;span style=&quot;color: #ffff00;&quot;&gt;TFTP&lt;/span&gt; server which I have setup in my little network.&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/pictures/tftp-1small.gif&quot; alt=&quot;&quot; width=&quot;630&quot; height=&quot;119&quot; /&gt;&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;You can see my workstation (192.168.0.100) contacting the &lt;span style=&quot;color: #ffff00;&quot;&gt;TFTP&lt;/span&gt; server (192.168.0.1) on &lt;span style=&quot;color: #ff00ff;&quot;&gt;port 69&lt;/span&gt;(destination port). In this first packet, my workstation is contacting the server and requesting the file I entered before I connected to the server. &lt;a href=&quot;https://www.firewall.cx/pictures/tftp-1big.gif&quot;&gt;Click here&lt;/a&gt; for the full picture.&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;Because you don't get a listing of the files and directories, you must know which file you want to download ! In the response I received (2nd packet) the server gets straight into business and starts sending the file.&lt;span style=&quot;color: #99ffff;&quot;&gt; No authentication&lt;/span&gt; whatsoever !&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;Note&lt;/span&gt;: The workstation usally won't send back any acknowlegement (because &lt;span style=&quot;color: #ff9900;&quot;&gt;UDP&lt;/span&gt;, which is the transport protocol, by nature, &lt;span style=&quot;color: #ff9900;&quot;&gt;never sends acknowledgements&lt;/span&gt;), but the software developers can incorporate such a feature by forcing the workstation to send a small packet which the &lt;span style=&quot;color: #ffff00;&quot;&gt;TFTP&lt;/span&gt; server is able to pickup as an acknowledgement of the previous data packet it sent to the workstation.&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;In the example I provide, you can see my workstation sending small packets to the server after it receives one packet from it. These small acknowledgements have been added by the software company who created the program I was using for this example.&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;Below is a screen shot of the program I used to &lt;span style=&quot;color: #ffff00;&quot;&gt;TFTP&lt;/span&gt; (&lt;span style=&quot;color: #ffff00;&quot;&gt;TFTP&lt;/span&gt; Client) to the server:&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/pictures/tftp-2.gif&quot; alt=&quot;&quot; width=&quot;346&quot; height=&quot;268&quot; /&gt;&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;Notice how I entered the file I wanted to downloaded (server.exe), and selected the name which the file will be saved as on my local computer (Local File). If I didn't provide the &lt;span style=&quot;color: #66ffff;&quot;&gt;Remote File&lt;/span&gt; name, I would simply get an error poping up at the server side, complaing that no such file exists. You can also send files using &lt;span style=&quot;color: #ffff00;&quot;&gt;TFTP&lt;/span&gt;, as it's not just for downloading :)&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;span style=&quot;color: #ff9933;&quot;&gt;&lt;strong&gt;So where is TFTP used ?&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;span style=&quot;color: #ffff00;&quot;&gt;TFTP&lt;/span&gt; is used mostly for backing up router configuration files like Cisco and its IOS images, it is also used for diskless booting PC's where, after the workstation has booted from the network card's ROM, &lt;span style=&quot;color: #ffff00;&quot;&gt;TFTP&lt;span style=&quot;color: #ffffff;&quot;&gt; is used&lt;/span&gt;&lt;/span&gt; to download the program it needs to load and run from a central server.&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;Below is a diagram which shows what takes place during a &lt;span style=&quot;color: #ffff00;&quot;&gt;TFTP&lt;/span&gt; session:&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.....&lt;/span&gt;&lt;img src=&quot;https://www.firewall.cx/pictures/tftp%20handshake.gif&quot; alt=&quot;&quot; width=&quot;539&quot; height=&quot;170&quot; /&gt;&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;In this diagram we are assuming that there is no error checking built into the software running at both ends (client and server).&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;And that pretty much sums it all up for the TFTP protocol.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</content>
		<category term="Network Protocols" />
	</entry>
	<entry>
		<title>IPSec - Internet Protocol Security</title>
		<link rel="alternate" type="text/html" href="https://www.firewall.cx/networking/network-protocols/ip-security-protocol.html"/>
		<published>2011-04-25T10:00:00+10:00</published>
		<updated>2011-04-25T10:00:00+10:00</updated>
		<id>https://www.firewall.cx/networking/network-protocols/ip-security-protocol.html</id>
		<author>
			<name>Administrator</name>
		</author>
		<summary type="html">&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;IPSec is one of the new buzz words these days in the networking security area. It's becoming very popular and also a standard in most operating systems. Windows 2000 fully supports IPSec and that's most probably where you are likely to find it. Routers these days also support IPSec to establish secure links and to ensure that no-one can view or read the data they are exchanging.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;When the original IP (Internet Protocol) specification was created, it didn't really include much of a security mechanisim to protect it from potential hackers. There were 2 reasons they didn't give IP some kind of security. First was because back then (we are talking around 30 years ago) most people thought that users and administrators would continue to behave fairly well and not make any serious attempts to compromise other people's traffic. Second reason was because the cryptographic technology needed to provide adequate security simply wasn't widely available and in most cases not even known about!&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;&lt;strong&gt;How IPSec Works&lt;/strong&gt;&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;The Internet Security Agreement/Key Management Protocol and Oakley ( ISAKMP)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;ISAKMP provides a way for two computers to agree on security settings and exchange a security key that they can use to communicate securely. A &lt;em&gt;Security Association&lt;/em&gt; (SA) provides all the information needed for two computers to communicate securely. The SA contains a policy agreement that controls which algorithms and key lengths the two machines will use, plus the actual security keys used to securely exchange information.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;There are two steps in this process. First, the two computers must agree on the following three things:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;1) The encryption algorithm to be used (DES, triple DES)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;2) Which algorithm they'll use for verifying message integrity (MD5 or SHA-1)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;3) How connections will be authenticated: using public-key certificate, a shared secret key or Kerberos.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;Once all that has been sorted out, they start another round of negotiations which cover the following:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;1) Whether the Authentication Header (AH) protocol will be used&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;2) Whether the Encapsulating Security Payload (ESP) protocol will be used&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;3) Which encryption algorithm will be used for ESP&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;4) Which authentication protocol will be used for AH&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;IPSec has 2 mechanisms which work together to give you the end result, which is a secure way to send data over public networks. Keep in mind that you can use both or just one of these mechanisms together.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;These mechanisms are:&lt;/p&gt;
&lt;ul class=&quot;check-green&quot;&gt;
&lt;li&gt;&lt;strong&gt;Authentication Header (AH)&lt;br /&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Encapsulating Security Payload - ESP&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;The Authentication Header (AH) Mechanism&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;The &lt;strong&gt;Authentication Header&lt;/strong&gt; information is added into the packet which is generated by the sender, right between the &lt;a href=&quot;https://www.firewall.cx/networking/osi-model/osi-layer3.html&quot; target=&quot;_blank&quot; title=&quot;OSI Network Layer&quot;&gt;Network&lt;/a&gt; (Layer 3) and &lt;a href=&quot;https://www.firewall.cx/networking/osi-model/osi-layer4.html&quot; target=&quot;_blank&quot; title=&quot;OSI Transport Layer&quot;&gt;Transport&lt;/a&gt; (Layer 4) Layer (see picture below) of the &lt;a href=&quot;https://www.firewall.cx/networking/osi-model.html&quot; target=&quot;_blank&quot; title=&quot;OSI Model&quot;&gt;OSI model&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;Authentication protects your network, and the data it carries, from tampering. Tampering might be a hacker sitting between the client and server, altering the contents of the packets sent between the client and server, or someone trying to impersonate either the client or server, thus fooling the other side and gaining access to sensitive data.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;To overcome this problem, &lt;strong&gt;IPSec&lt;/strong&gt; uses an &lt;strong&gt;Authentication Header&lt;/strong&gt; (&lt;strong&gt;AH&lt;/strong&gt;) to digitally sign the entire contents of each packet. This signature provides 3 benefits:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;1) Protects against replay attacks. If an attacker can capture packets, save them and modify them, and then send them to the destination, then they can impersonate a machine when that machine is not on the network. This is what we call a replay attack. IPSec will prevent this from happening by including the sender's signature on all packets.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;2) Protection against tampering. The signatures added to each packet by IPSec means that you can't alter any part of a packet undetected.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;3) Protection against spoofing. Each end of a connection (e.g client-server) verifies the other's identity with the authentication headers used by IPSec.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;The &lt;strong&gt;AH&lt;/strong&gt; is computed on the entire packet, including payload (upper layers - 4,5,6,7) and headers of each layer. The following picture shows us a packet using AH :&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ipsec-ah.gif&quot; alt=&quot;ipsec-ah&quot; width=&quot;539&quot; height=&quot;283&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;Below is the analysis of the &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt;Authentication Header&lt;/span&gt;&lt;/span&gt;:&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ipsec-ah-2.gif&quot; alt=&quot;ipsec-ah-2&quot; width=&quot;354&quot; height=&quot;539&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;h3 style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;AH Algorithms&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;For point-to-point communication (e.g client to server), suitable authentication algorithms include keyed Message Authentication Codes (MACs) based on symmetric encryption algorithms (e.g DES) or on one-way hash functions (e.g MD5 or SHA-1).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;For multicast communication (e.g between a group of routers), one-way hash algorithms combined with asymmetric signature algorithms are usually used, but they are also more cpu intensive.&lt;/p&gt;
&lt;h2&gt;The Encapsulating Security Payload - ESP&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The Authentication Header (&lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;AH&lt;/span&gt;&lt;/span&gt;) we spoke about will protect your data from tampering, but it will not stop people from seeing it. For that, &lt;strong&gt;IPSec&lt;/strong&gt; uses an encryption which provides the Encapsulating Security Payload (ESP). ESP is used to encrypt the entire payload of an &lt;strong&gt;IPSec&lt;/strong&gt; packet (Payload is the portion of the packet which contains the upper layer data).&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000080;&quot;&gt;ESP&lt;/span&gt; is a bit more complex than &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;AH&lt;/span&gt;&lt;/span&gt; because alone it can provide authentication, replay-proofing and integrity checking. It acomplishes this by adding 3 separate components:&lt;/p&gt;
&lt;ul class=&quot;check&quot;&gt;
&lt;li&gt;An ESP header&lt;/li&gt;
&lt;li&gt;An ESP trailer and&lt;/li&gt;
&lt;li&gt;An ESP authentication block.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Each of these components contains some of the data needed to provide the necessary authentication and integrity checking. To prevent tampering, an ESP client has to sign the ESP header, application data, and ESP trailer into one unit, of course ESP is used to encrypt the application data and the ESP trailer to provide confidentiality. The combination of this overlapping signature and encryption operation provides good security.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;Let's have a look at a packet using IPSec - ESP:&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ipsec-esp-1.gif&quot; alt=&quot;ipsec-esp-1&quot; width=&quot;630&quot; height=&quot;326&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ipsec-esp-2.gif&quot; alt=&quot;ipsec-esp-2&quot; width=&quot;630&quot; height=&quot;400&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;IPSec can get very complicated and messy. I have tried keeping everything as simple as possible, but you should keep in mind that this topic can be studied in far greater depth than is presented here!&lt;/p&gt;
&lt;div id=&quot;_mcePaste&quot; class=&quot;mcePaste&quot; style=&quot;overflow: hidden; position: absolute; left: -10000px; top: 886px; width: 1px; height: 1px; text-align: justify;&quot;&gt;
&lt;table border=&quot;0&quot; style=&quot;width: 630px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td colspan=&quot;2&quot; style=&quot;height: 1861px;&quot; valign=&quot;top&quot;&gt;
&lt;div align=&quot;center&quot;&gt;
&lt;p align=&quot;left&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/pictures/ipsec-ah.gif&quot; alt=&quot;&quot; width=&quot;539&quot; height=&quot;283&quot; /&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;height: 539px;&quot; valign=&quot;top&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/pictures/ipsec-ah%202.gif&quot; alt=&quot;&quot; width=&quot;354&quot; height=&quot;539&quot; /&gt;&lt;/td&gt;
&lt;td style=&quot;width: 276px;&quot; valign=&quot;top&quot;&gt;On the left you are seeing the analysis of the &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt;Authentication Header&lt;/span&gt;&lt;/span&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan=&quot;2&quot; style=&quot;height: 150px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;left&quot;&gt;&lt;span style=&quot;color: #6699ff;&quot;&gt;&lt;strong&gt;AH Algorithms&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;For point-to-point communication (e.g client to server), suitable authentication algorithms include keyed Message Authentication Codes (MACs) based on symmetric encryption algorithms (e.g DES) or on one-way hash functions (e.g MD5 or SHA-1).&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;For multicast communication (e.g between a group of routers), one-way hash algorithms combined with asymmetric signature algorithms are usually used, but they are also more cpu intensive.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan=&quot;2&quot; style=&quot;height: 772px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;span style=&quot;color: #ffff00;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #66ff00;&quot;&gt;The Encapsulating Security Payload - ESP&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;The Authentication Header (&lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;AH&lt;/span&gt;&lt;/span&gt;) we spoke about will protect your data from tampering, but it will not stop people from seeing it. For that, &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #ff9900;&quot;&gt;IPSec&lt;/span&gt;&lt;/span&gt; uses an encryption which provides the &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #00ff00;&quot;&gt;&lt;em&gt;Encapsulating Security Payload&lt;/em&gt;&lt;/span&gt;&lt;/span&gt; (&lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #00ff00;&quot;&gt;ESP&lt;/span&gt;&lt;/span&gt;). &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #00ff00;&quot;&gt;ESP&lt;/span&gt;&lt;/span&gt; is used to encrypt the entire payload of an &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #ff9900;&quot;&gt;IPSec&lt;/span&gt; &lt;/span&gt;packet (Payload is the portion of the packet which contains the upper layer data).&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;span style=&quot;color: #00ff00;&quot;&gt;ESP&lt;/span&gt; is a bit more complex than &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;AH&lt;/span&gt;&lt;/span&gt; because &lt;em&gt;alone&lt;/em&gt; it can provide authentication, replay-proofing and integrity checking. It acomplishes this by adding 3 separate components:&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;1) An&lt;span style=&quot;color: #ffffff;&quot;&gt; &lt;span style=&quot;color: #00ff66;&quot;&gt;ESP&lt;/span&gt; &lt;/span&gt;header&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;2) An &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #00ff66;&quot;&gt;ESP&lt;/span&gt;&lt;/span&gt; trailer and&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;3) An &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #00ff66;&quot;&gt;ESP&lt;/span&gt;&lt;/span&gt; authentication block.&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;Each of these components contains some of the data needed to provide the necessary authentication and integrity checking. To prevent tampering, an &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #00ff00;&quot;&gt;ESP&lt;/span&gt;&lt;/span&gt; client has to sign the&lt;span style=&quot;color: #ffffff;&quot;&gt; &lt;span style=&quot;color: #00ff00;&quot;&gt;ESP&lt;/span&gt;&lt;/span&gt; header, application data, and &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #00ff00;&quot;&gt;ESP&lt;/span&gt;&lt;/span&gt; trailer into one unit, of course &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #00ff00;&quot;&gt;ESP&lt;/span&gt;&lt;/span&gt; is used to encrypt the application data and the &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #00ff00;&quot;&gt;ESP&lt;/span&gt;&lt;/span&gt; trailer to provide confidentiality. The combination of this overlapping signature and encryption operation provides good security.&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;Let's have a look at a packet using IPSec - ESP:&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/pictures/ipsec-esp%201.gif&quot; alt=&quot;&quot; width=&quot;630&quot; height=&quot;326&quot; /&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan=&quot;2&quot; style=&quot;height: 400px;&quot; valign=&quot;top&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/pictures/ipsec-esp%202.gif&quot; alt=&quot;&quot; width=&quot;630&quot; height=&quot;400&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan=&quot;2&quot; style=&quot;height: 86px;&quot; valign=&quot;top&quot;&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ff9900;&quot;&gt;IPSec&lt;/span&gt; can get very complicated and messy. I have tried keeping everything as simple as possible, but you should keep in mind that this topic can be studied in far greater depth than is presented here!&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</summary>
		<content type="html">&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;IPSec is one of the new buzz words these days in the networking security area. It's becoming very popular and also a standard in most operating systems. Windows 2000 fully supports IPSec and that's most probably where you are likely to find it. Routers these days also support IPSec to establish secure links and to ensure that no-one can view or read the data they are exchanging.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;When the original IP (Internet Protocol) specification was created, it didn't really include much of a security mechanisim to protect it from potential hackers. There were 2 reasons they didn't give IP some kind of security. First was because back then (we are talking around 30 years ago) most people thought that users and administrators would continue to behave fairly well and not make any serious attempts to compromise other people's traffic. Second reason was because the cryptographic technology needed to provide adequate security simply wasn't widely available and in most cases not even known about!&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;&lt;strong&gt;How IPSec Works&lt;/strong&gt;&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;The Internet Security Agreement/Key Management Protocol and Oakley ( ISAKMP)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;ISAKMP provides a way for two computers to agree on security settings and exchange a security key that they can use to communicate securely. A &lt;em&gt;Security Association&lt;/em&gt; (SA) provides all the information needed for two computers to communicate securely. The SA contains a policy agreement that controls which algorithms and key lengths the two machines will use, plus the actual security keys used to securely exchange information.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;There are two steps in this process. First, the two computers must agree on the following three things:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;1) The encryption algorithm to be used (DES, triple DES)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;2) Which algorithm they'll use for verifying message integrity (MD5 or SHA-1)&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;3) How connections will be authenticated: using public-key certificate, a shared secret key or Kerberos.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;Once all that has been sorted out, they start another round of negotiations which cover the following:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;1) Whether the Authentication Header (AH) protocol will be used&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;2) Whether the Encapsulating Security Payload (ESP) protocol will be used&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;3) Which encryption algorithm will be used for ESP&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;4) Which authentication protocol will be used for AH&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;IPSec has 2 mechanisms which work together to give you the end result, which is a secure way to send data over public networks. Keep in mind that you can use both or just one of these mechanisms together.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;These mechanisms are:&lt;/p&gt;
&lt;ul class=&quot;check-green&quot;&gt;
&lt;li&gt;&lt;strong&gt;Authentication Header (AH)&lt;br /&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Encapsulating Security Payload - ESP&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;The Authentication Header (AH) Mechanism&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;The &lt;strong&gt;Authentication Header&lt;/strong&gt; information is added into the packet which is generated by the sender, right between the &lt;a href=&quot;https://www.firewall.cx/networking/osi-model/osi-layer3.html&quot; target=&quot;_blank&quot; title=&quot;OSI Network Layer&quot;&gt;Network&lt;/a&gt; (Layer 3) and &lt;a href=&quot;https://www.firewall.cx/networking/osi-model/osi-layer4.html&quot; target=&quot;_blank&quot; title=&quot;OSI Transport Layer&quot;&gt;Transport&lt;/a&gt; (Layer 4) Layer (see picture below) of the &lt;a href=&quot;https://www.firewall.cx/networking/osi-model.html&quot; target=&quot;_blank&quot; title=&quot;OSI Model&quot;&gt;OSI model&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;Authentication protects your network, and the data it carries, from tampering. Tampering might be a hacker sitting between the client and server, altering the contents of the packets sent between the client and server, or someone trying to impersonate either the client or server, thus fooling the other side and gaining access to sensitive data.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;To overcome this problem, &lt;strong&gt;IPSec&lt;/strong&gt; uses an &lt;strong&gt;Authentication Header&lt;/strong&gt; (&lt;strong&gt;AH&lt;/strong&gt;) to digitally sign the entire contents of each packet. This signature provides 3 benefits:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;1) Protects against replay attacks. If an attacker can capture packets, save them and modify them, and then send them to the destination, then they can impersonate a machine when that machine is not on the network. This is what we call a replay attack. IPSec will prevent this from happening by including the sender's signature on all packets.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;2) Protection against tampering. The signatures added to each packet by IPSec means that you can't alter any part of a packet undetected.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;3) Protection against spoofing. Each end of a connection (e.g client-server) verifies the other's identity with the authentication headers used by IPSec.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;The &lt;strong&gt;AH&lt;/strong&gt; is computed on the entire packet, including payload (upper layers - 4,5,6,7) and headers of each layer. The following picture shows us a packet using AH :&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ipsec-ah.gif&quot; alt=&quot;ipsec-ah&quot; width=&quot;539&quot; height=&quot;283&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;Below is the analysis of the &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt;Authentication Header&lt;/span&gt;&lt;/span&gt;:&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ipsec-ah-2.gif&quot; alt=&quot;ipsec-ah-2&quot; width=&quot;354&quot; height=&quot;539&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;h3 style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;AH Algorithms&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;For point-to-point communication (e.g client to server), suitable authentication algorithms include keyed Message Authentication Codes (MACs) based on symmetric encryption algorithms (e.g DES) or on one-way hash functions (e.g MD5 or SHA-1).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;For multicast communication (e.g between a group of routers), one-way hash algorithms combined with asymmetric signature algorithms are usually used, but they are also more cpu intensive.&lt;/p&gt;
&lt;h2&gt;The Encapsulating Security Payload - ESP&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The Authentication Header (&lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;AH&lt;/span&gt;&lt;/span&gt;) we spoke about will protect your data from tampering, but it will not stop people from seeing it. For that, &lt;strong&gt;IPSec&lt;/strong&gt; uses an encryption which provides the Encapsulating Security Payload (ESP). ESP is used to encrypt the entire payload of an &lt;strong&gt;IPSec&lt;/strong&gt; packet (Payload is the portion of the packet which contains the upper layer data).&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000080;&quot;&gt;ESP&lt;/span&gt; is a bit more complex than &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;AH&lt;/span&gt;&lt;/span&gt; because alone it can provide authentication, replay-proofing and integrity checking. It acomplishes this by adding 3 separate components:&lt;/p&gt;
&lt;ul class=&quot;check&quot;&gt;
&lt;li&gt;An ESP header&lt;/li&gt;
&lt;li&gt;An ESP trailer and&lt;/li&gt;
&lt;li&gt;An ESP authentication block.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Each of these components contains some of the data needed to provide the necessary authentication and integrity checking. To prevent tampering, an ESP client has to sign the ESP header, application data, and ESP trailer into one unit, of course ESP is used to encrypt the application data and the ESP trailer to provide confidentiality. The combination of this overlapping signature and encryption operation provides good security.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; align=&quot;left&quot;&gt;Let's have a look at a packet using IPSec - ESP:&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ipsec-esp-1.gif&quot; alt=&quot;ipsec-esp-1&quot; width=&quot;630&quot; height=&quot;326&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/images/stories/ipsec-esp-2.gif&quot; alt=&quot;ipsec-esp-2&quot; width=&quot;630&quot; height=&quot;400&quot; style=&quot;display: block; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;IPSec can get very complicated and messy. I have tried keeping everything as simple as possible, but you should keep in mind that this topic can be studied in far greater depth than is presented here!&lt;/p&gt;
&lt;div id=&quot;_mcePaste&quot; class=&quot;mcePaste&quot; style=&quot;overflow: hidden; position: absolute; left: -10000px; top: 886px; width: 1px; height: 1px; text-align: justify;&quot;&gt;
&lt;table border=&quot;0&quot; style=&quot;width: 630px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td colspan=&quot;2&quot; style=&quot;height: 1861px;&quot; valign=&quot;top&quot;&gt;
&lt;div align=&quot;center&quot;&gt;
&lt;p align=&quot;left&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/pictures/ipsec-ah.gif&quot; alt=&quot;&quot; width=&quot;539&quot; height=&quot;283&quot; /&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;height: 539px;&quot; valign=&quot;top&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/pictures/ipsec-ah%202.gif&quot; alt=&quot;&quot; width=&quot;354&quot; height=&quot;539&quot; /&gt;&lt;/td&gt;
&lt;td style=&quot;width: 276px;&quot; valign=&quot;top&quot;&gt;On the left you are seeing the analysis of the &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #cc0000;&quot;&gt;Authentication Header&lt;/span&gt;&lt;/span&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan=&quot;2&quot; style=&quot;height: 150px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;left&quot;&gt;&lt;span style=&quot;color: #6699ff;&quot;&gt;&lt;strong&gt;AH Algorithms&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;For point-to-point communication (e.g client to server), suitable authentication algorithms include keyed Message Authentication Codes (MACs) based on symmetric encryption algorithms (e.g DES) or on one-way hash functions (e.g MD5 or SHA-1).&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;For multicast communication (e.g between a group of routers), one-way hash algorithms combined with asymmetric signature algorithms are usually used, but they are also more cpu intensive.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan=&quot;2&quot; style=&quot;height: 772px;&quot; valign=&quot;top&quot;&gt;
&lt;p align=&quot;left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;span style=&quot;color: #ffff00;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #66ff00;&quot;&gt;The Encapsulating Security Payload - ESP&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;The Authentication Header (&lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;AH&lt;/span&gt;&lt;/span&gt;) we spoke about will protect your data from tampering, but it will not stop people from seeing it. For that, &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #ff9900;&quot;&gt;IPSec&lt;/span&gt;&lt;/span&gt; uses an encryption which provides the &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #00ff00;&quot;&gt;&lt;em&gt;Encapsulating Security Payload&lt;/em&gt;&lt;/span&gt;&lt;/span&gt; (&lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #00ff00;&quot;&gt;ESP&lt;/span&gt;&lt;/span&gt;). &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #00ff00;&quot;&gt;ESP&lt;/span&gt;&lt;/span&gt; is used to encrypt the entire payload of an &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #ff9900;&quot;&gt;IPSec&lt;/span&gt; &lt;/span&gt;packet (Payload is the portion of the packet which contains the upper layer data).&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;span style=&quot;color: #00ff00;&quot;&gt;ESP&lt;/span&gt; is a bit more complex than &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;AH&lt;/span&gt;&lt;/span&gt; because &lt;em&gt;alone&lt;/em&gt; it can provide authentication, replay-proofing and integrity checking. It acomplishes this by adding 3 separate components:&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;1) An&lt;span style=&quot;color: #ffffff;&quot;&gt; &lt;span style=&quot;color: #00ff66;&quot;&gt;ESP&lt;/span&gt; &lt;/span&gt;header&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;2) An &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #00ff66;&quot;&gt;ESP&lt;/span&gt;&lt;/span&gt; trailer and&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;3) An &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #00ff66;&quot;&gt;ESP&lt;/span&gt;&lt;/span&gt; authentication block.&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;Each of these components contains some of the data needed to provide the necessary authentication and integrity checking. To prevent tampering, an &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #00ff00;&quot;&gt;ESP&lt;/span&gt;&lt;/span&gt; client has to sign the&lt;span style=&quot;color: #ffffff;&quot;&gt; &lt;span style=&quot;color: #00ff00;&quot;&gt;ESP&lt;/span&gt;&lt;/span&gt; header, application data, and &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #00ff00;&quot;&gt;ESP&lt;/span&gt;&lt;/span&gt; trailer into one unit, of course &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #00ff00;&quot;&gt;ESP&lt;/span&gt;&lt;/span&gt; is used to encrypt the application data and the &lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #00ff00;&quot;&gt;ESP&lt;/span&gt;&lt;/span&gt; trailer to provide confidentiality. The combination of this overlapping signature and encryption operation provides good security.&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;Let's have a look at a packet using IPSec - ESP:&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/pictures/ipsec-esp%201.gif&quot; alt=&quot;&quot; width=&quot;630&quot; height=&quot;326&quot; /&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan=&quot;2&quot; style=&quot;height: 400px;&quot; valign=&quot;top&quot;&gt;&lt;img src=&quot;https://www.firewall.cx/pictures/ipsec-esp%202.gif&quot; alt=&quot;&quot; width=&quot;630&quot; height=&quot;400&quot; /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan=&quot;2&quot; style=&quot;height: 86px;&quot; valign=&quot;top&quot;&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ff9900;&quot;&gt;IPSec&lt;/span&gt; can get very complicated and messy. I have tried keeping everything as simple as possible, but you should keep in mind that this topic can be studied in far greater depth than is presented here!&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</content>
		<category term="Network Protocols" />
	</entry>
</feed>
