<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3685716557674208478</id><updated>2026-07-24T11:35:55.346+05:30</updated><category term="Network"/><title type='text'>Ankit.Jainarain</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ankitjainarain.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://ankitjainarain.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Ankit</name><uri>http://www.blogger.com/profile/05478322170957335992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_zckDpxGeJaU/S8qX85_LlVI/AAAAAAAAAJY/nVMcpJ7-xMw/S220/Ankit+Jainarain+(2).jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>38</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3685716557674208478.post-8425318608165997659</id><published>2010-07-28T12:55:00.000+05:30</published><updated>2010-07-28T12:55:29.218+05:30</updated><title type='text'>Windows’s Vista Activation Trick</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial; font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 13px;&quot;&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; font-size: medium;&quot;&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;u&gt;&lt;span style=&quot;font-size: 14pt; line-height: 115%;&quot;&gt;Windows’s Vista Activation  Trick&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class=&quot;WordSection1&quot;&gt;  &lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;margin-left: 1in; mso-add-space: auto; mso-list: l2 level1 lfo2; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;font-family: Wingdings; font-size: 12pt; line-height: 115%; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;Ø&lt;span style=&quot;font: 7pt &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;u&gt;&lt;span style=&quot;font-size: 12pt; line-height: 115%;&quot;&gt;First  Trick&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;margin-left: 1in; mso-add-space: auto;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;mso-bidi-font-family: Calibri;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;-&lt;span style=&quot;font: 7pt &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Open CMD with  Administrator&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;right click&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot;&gt;&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;&lt;v:shapetype coordsize=&quot;21600,21600&quot; filled=&quot;f&quot; id=&quot;_x0000_t75&quot; o:preferrelative=&quot;t&quot; o:spt=&quot;75&quot; path=&quot; m@4@5 l@4@11@9@11@9@5 xe&quot; stroked=&quot;f&quot;&gt;&lt;v:stroke joinstyle=&quot;miter&quot;&gt;&lt;/v:stroke&gt;&lt;v:formulas&gt;&lt;v:f eqn=&quot;if lineDrawn pixelLineWidth 0 &quot;&gt;&lt;/v:f&gt;&lt;v:f eqn=&quot;sum @0 1 0 &quot;&gt;&lt;/v:f&gt;&lt;v:f eqn=&quot;sum 0 0 @1 &quot;&gt;&lt;/v:f&gt;&lt;v:f eqn=&quot;prod @2 1 2 &quot;&gt;&lt;/v:f&gt;&lt;v:f eqn=&quot;prod @3 21600 pixelWidth &quot;&gt;&lt;/v:f&gt;&lt;v:f eqn=&quot;prod @3 21600 pixelHeight &quot;&gt;&lt;/v:f&gt;&lt;v:f eqn=&quot;sum @0 0 1 &quot;&gt;&lt;/v:f&gt;&lt;v:f eqn=&quot;prod @6 1 2 &quot;&gt;&lt;/v:f&gt;&lt;v:f eqn=&quot;prod @7 21600 pixelWidth &quot;&gt;&lt;/v:f&gt;&lt;v:f eqn=&quot;sum @8 21600 0 &quot;&gt;&lt;/v:f&gt;&lt;v:f eqn=&quot;prod @7 21600 pixelHeight &quot;&gt;&lt;/v:f&gt;&lt;v:f eqn=&quot;sum @10 21600 0 &quot;&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;v:path gradientshapeok=&quot;t&quot; o:connecttype=&quot;rect&quot; o:extrusionok=&quot;f&quot;&gt;&lt;/v:path&gt;&lt;o:lock aspectratio=&quot;t&quot; v:ext=&quot;edit&quot;&gt;&lt;/o:lock&gt;&lt;/v:shapetype&gt;&lt;v:shape coordsize=&quot;21600,21600&quot; id=&quot;Picture_x0020_7&quot; o:spid=&quot;_x0000_i1025&quot; style=&quot;height: 246pt; visibility: visible; width: 396pt;&quot; type=&quot;#_x0000_t75&quot;&gt;&lt;v:imagedata o:title=&quot;&quot; src=&quot;Windows’s%20Vista%20Activation%20Trick_files/image001.png&quot;&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3uYeHPki8Re-Ma2_GW3aVb9MOOp1Y4dE_SiUnrZtH196z0Mqa_f7HJmGxmBy6Hj9r0sZNIh0yoG4PrJ_SsV-G4wWQ5v9KoLrwKwTJLpCpDgHcqQTYUCoDGMYYQXwZXVVPAYYSrT6YQ0U/s1600/image002.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3uYeHPki8Re-Ma2_GW3aVb9MOOp1Y4dE_SiUnrZtH196z0Mqa_f7HJmGxmBy6Hj9r0sZNIh0yoG4PrJ_SsV-G4wWQ5v9KoLrwKwTJLpCpDgHcqQTYUCoDGMYYQXwZXVVPAYYSrT6YQ0U/s320/image002.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;mso-bidi-font-family: Calibri;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;-&lt;span style=&quot;font: 7pt &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;text-align: justify; text-indent: -0.25in;&quot;&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;&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;text-align: justify; text-indent: -0.25in;&quot;&gt;Set Dir to  C:\windows\system32&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;mso-bidi-font-family: Calibri;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;-&lt;span style=&quot;font: 7pt &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Set Date to  31-12-2099 with DATE command &lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5LNqh3JJvKJ2G4fHys08rTD4jlvOANdfTnVeV0v1E3tdMCawhklcLudtBGL0oiv95b8G2oJPlsmvXaMOgzZ1X2UZBHGoCTH9ZSbmRlg6_OZ1C81nv8NG4NYDW4T5Nvw_xx454dPEEFPA/s1600/image003.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5LNqh3JJvKJ2G4fHys08rTD4jlvOANdfTnVeV0v1E3tdMCawhklcLudtBGL0oiv95b8G2oJPlsmvXaMOgzZ1X2UZBHGoCTH9ZSbmRlg6_OZ1C81nv8NG4NYDW4T5Nvw_xx454dPEEFPA/s320/image003.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot;&gt;&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;&lt;v:shape coordsize=&quot;21600,21600&quot; id=&quot;Picture_x0020_16&quot; o:spid=&quot;_x0000_i1026&quot; style=&quot;height: 193.5pt; visibility: visible; width: 396.75pt;&quot; type=&quot;#_x0000_t75&quot;&gt;&lt;v:imagedata o:title=&quot;Untitled&quot; src=&quot;Windows’s%20Vista%20Activation%20Trick_files/image003.jpg&quot;&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/span&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot;&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;&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot;&gt;csscript slmgr.vbs –rearm&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;mso-bidi-font-family: Calibri;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;-&lt;span style=&quot;font: 7pt &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Restart.&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;mso-bidi-font-family: Calibri;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;-&lt;span style=&quot;font: 7pt &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Open CMD with  Administrator&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;right click&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;mso-bidi-font-family: Calibri;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;-&lt;span style=&quot;font: 7pt &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Set Date back  to current Date with DATE command.&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;margin-left: 1in; mso-add-space: auto; mso-list: l1 level1 lfo3; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;font-family: Wingdings; font-size: 12pt; line-height: 115%; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;margin-left: 1in; mso-add-space: auto; mso-list: l1 level1 lfo3; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;font-family: Wingdings; font-size: 12pt; line-height: 115%; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;margin-left: 1in; mso-add-space: auto; mso-list: l1 level1 lfo3; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;font-family: Wingdings; font-size: 12pt; line-height: 115%; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;Ø&lt;span style=&quot;font: 7pt &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;u&gt;&lt;span style=&quot;font-size: 12pt; line-height: 115%;&quot;&gt;Second  Trick&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;margin-left: 1in; mso-add-space: auto;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;mso-bidi-font-family: Calibri;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;-&lt;span style=&quot;font: 7pt &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Run vista  Test Crack.exe from one expanded rar contents &lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot;&gt;&lt;span style=&quot;mso-no-proof: yes;&quot;&gt;&lt;v:shape coordsize=&quot;21600,21600&quot; id=&quot;Picture_x0020_17&quot; o:spid=&quot;_x0000_i1027&quot; style=&quot;height: 271.5pt; visibility: visible; width: 468pt;&quot; type=&quot;#_x0000_t75&quot;&gt;&lt;v:imagedata o:title=&quot;Untitled&quot; src=&quot;Windows’s%20Vista%20Activation%20Trick_files/image005.jpg&quot;&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqx3lVH6QydBWVDsRh7A7pWABZ1jxAgoDx5rKAFzf2awzB-ybyvXKgQltvAbvAKLZNaZhzQ67-UuGcuDG-ajeL4Y_qBew1dDybIsgXbviK6A0z5mcZEErfZjg-Ov9dWjc5DW8Mjo912j8/s1600/image006.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqx3lVH6QydBWVDsRh7A7pWABZ1jxAgoDx5rKAFzf2awzB-ybyvXKgQltvAbvAKLZNaZhzQ67-UuGcuDG-ajeL4Y_qBew1dDybIsgXbviK6A0z5mcZEErfZjg-Ov9dWjc5DW8Mjo912j8/s320/image006.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;mso-bidi-font-family: Calibri;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;-&lt;span style=&quot;font: 7pt &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;text-align: left; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;mso-bidi-font-family: Calibri;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;&lt;span style=&quot;font: 7pt &#39;Times New Roman&#39;;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&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; Click on  install service on the window that opens &lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;text-align: left; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;mso-bidi-font-family: Calibri;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;-&lt;span style=&quot;font: 7pt &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Restart. &amp;nbsp;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ankitjainarain.blogspot.com/feeds/8425318608165997659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ankitjainarain.blogspot.com/2010/07/windowss-vista-activation-trick.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/8425318608165997659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/8425318608165997659'/><link rel='alternate' type='text/html' href='http://ankitjainarain.blogspot.com/2010/07/windowss-vista-activation-trick.html' title='Windows’s Vista Activation Trick'/><author><name>Ankit</name><uri>http://www.blogger.com/profile/05478322170957335992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_zckDpxGeJaU/S8qX85_LlVI/AAAAAAAAAJY/nVMcpJ7-xMw/S220/Ankit+Jainarain+(2).jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3uYeHPki8Re-Ma2_GW3aVb9MOOp1Y4dE_SiUnrZtH196z0Mqa_f7HJmGxmBy6Hj9r0sZNIh0yoG4PrJ_SsV-G4wWQ5v9KoLrwKwTJLpCpDgHcqQTYUCoDGMYYQXwZXVVPAYYSrT6YQ0U/s72-c/image002.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3685716557674208478.post-4106156284633186879</id><published>2010-05-26T19:13:00.000+05:30</published><updated>2010-05-26T19:13:08.573+05:30</updated><title type='text'>Blogger Buzz: Blogger integrates with Amazon Associates</title><content type='html'>&lt;a href=&quot;http://buzz.blogger.com/2009/12/blogger-integrates-with-amazon.html&quot;&gt;Blogger Buzz: Blogger integrates with Amazon Associates&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://ankitjainarain.blogspot.com/feeds/4106156284633186879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ankitjainarain.blogspot.com/2010/05/blogger-buzz-blogger-integrates-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/4106156284633186879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/4106156284633186879'/><link rel='alternate' type='text/html' href='http://ankitjainarain.blogspot.com/2010/05/blogger-buzz-blogger-integrates-with.html' title='Blogger Buzz: Blogger integrates with Amazon Associates'/><author><name>Ankit</name><uri>http://www.blogger.com/profile/05478322170957335992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_zckDpxGeJaU/S8qX85_LlVI/AAAAAAAAAJY/nVMcpJ7-xMw/S220/Ankit+Jainarain+(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3685716557674208478.post-1035903395826522531</id><published>2010-04-18T13:06:00.003+05:30</published><updated>2011-03-23T18:35:42.683+05:30</updated><title type='text'>HOW TO] Reset Nokia Security/Lock code to 12345</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: white; font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a64d79;&quot;&gt;You will need a card reader to perform this operation.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a64d79; font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;1) Remove memory card from your locked Nokia mobile phone.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a64d79; font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;2) Put your card into card reader and connect it with your computer. Create&lt;br /&gt;
the directory System\Recogs and copy thc-nokia-unlock.mdl into this directory. So at the end your file will be in System/recogs directory of your mmc.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a64d79; font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;3) Remove the Memory Card and place it into the locked phone.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a64d79; font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;4) Now start your locked phone and wait for some time when it asks for the code. Let this tool reset the code for you. Wait for 2 minutes and then enter 12345 in the code box.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #a64d79;&quot;&gt;5) Done. Your security code will be reset to 12345.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: white; font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: black;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: white;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: white; font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: black;&quot;&gt;&lt;h3 style=&quot;font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 30px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;&quot;&gt;&lt;strong&gt;&lt;strong&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #3366ff;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;times new roman&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;http://rapidshare.com/files/176305922/THC-NOKIA-UNLOCK.rar&quot; style=&quot;text-decoration: none;&quot;&gt;DOWNLOAD NOKIA THC UNLOCK (1 KB)(.mdl file)(RS)&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/h3&gt;&lt;h3 style=&quot;font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 30px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;&quot;&gt;&lt;strong&gt;&lt;strong&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #3366ff;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;times new roman&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;http://rapidshare.com/files/176305922/THC-NOKIA-UNLOCK.rar&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-text-decorations-in-effect: none; color: white; font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 14px; font-weight: bold;&quot;&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;a href=&quot;http://hotfile.com/dl/22240538/a5af163/THC-NOKIA-UNLOCK.rar.html&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #3366ff;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;times new roman&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;NEW LINK:- DOWNLOAD NOKIA THC UNLOCK (1 KB)(.rar file)(HF)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/h3&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: black;&quot;&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ankitjainarain.blogspot.com/feeds/1035903395826522531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ankitjainarain.blogspot.com/2010/04/how-to-reset-nokia-securitylock-code-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/1035903395826522531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/1035903395826522531'/><link rel='alternate' type='text/html' href='http://ankitjainarain.blogspot.com/2010/04/how-to-reset-nokia-securitylock-code-to.html' title='HOW TO] Reset Nokia Security/Lock code to 12345'/><author><name>Ankit</name><uri>http://www.blogger.com/profile/05478322170957335992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_zckDpxGeJaU/S8qX85_LlVI/AAAAAAAAAJY/nVMcpJ7-xMw/S220/Ankit+Jainarain+(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3685716557674208478.post-4569615283985452955</id><published>2010-04-18T12:37:00.002+05:30</published><updated>2010-04-18T12:46:50.006+05:30</updated><title type='text'>Missing or corrupt hal.dll</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Garamond, Georgia, &#39;Times new Roman&#39;, serif; font-size: 14px; line-height: 17px; &quot;&gt;At start-up, you receive the error message: &quot;Missing or corrupt &lt;windows&gt;\system32\hal.dll&quot; and Windows does not boot.&lt;/span&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Garamond, Georgia, &#39;Times new Roman&#39;, serif; font-size: 14px; line-height: 17px; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Garamond, Georgia, &#39;Times new Roman&#39;, serif; font-size: 14px; line-height: 17px; &quot;&gt;This error message will occur if Windows does not find the critical system file &lt;strong&gt;hal.dll&lt;/strong&gt; in the location specified in the &lt;strong&gt;boot.ini&lt;/strong&gt; file. This usually occurs because something (such as Bios settings changes) may have changed the drive letter allocations so the Windows folder is no longer C:\Windows (or whatever it was.) Another possibility is that the boot.ini file has been corrupted or changed. A slight possibility is that the file hal.dll is corrupted.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Garamond, Georgia, &#39;Times new Roman&#39;, serif; font-size: 14px; line-height: 17px; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Garamond, Georgia, &#39;Times new Roman&#39;, serif; font-size: 14px; line-height: 17px; &quot;&gt;&lt;h5 style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0.2em; margin-left: 0px; font-size: 1.2em; font-weight: bold; line-height: 1em; &quot;&gt;Method 1&lt;/h5&gt;&lt;ul&gt;&lt;li&gt;Check the system Bios settings to ensure that the drive settings have not changed.&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; &quot;&gt;If this does not resolve the problem, try Method 2.&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; &quot;&gt;&lt;/p&gt;&lt;h5 style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0.2em; margin-left: 0px; font-size: 1.2em; font-weight: bold; line-height: 1em; &quot;&gt;Method 2&lt;/h5&gt;&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; &quot;&gt;This method requires a Windows XP CD-ROM.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Insert the Windows XP CD and &lt;strong&gt;start the computer&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;Press R to repair Windows when prompted to do so.&lt;/li&gt;&lt;li&gt;Select the Windows installation that you want to repair.&lt;/li&gt;&lt;li&gt;Type the &lt;strong&gt;administrator password&lt;/strong&gt; when prompted to do so.&lt;/li&gt;&lt;li&gt;At the command prompt type &lt;strong&gt;bootcfg /rebuild&lt;/strong&gt; and press &lt;strong&gt;Enter&lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;When &lt;strong&gt;Add installation to boot list?&lt;/strong&gt; is displayed, type &lt;strong&gt;Y&lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;When &lt;strong&gt;Enter Load Identifier:&lt;/strong&gt; is displayed, type the name of the operating system, e.g. &lt;strong&gt;Windows XP Professional&lt;/strong&gt; or &lt;strong&gt;Windows XP Home Edition&lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;When &lt;strong&gt;Enter OS Load options:&lt;/strong&gt; is displayed, just press &lt;strong&gt;Enter&lt;/strong&gt;, leaving the field blank.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Restart the computer&lt;/strong&gt; and select the first item on the boot menu. Windows XP should now start normally.&lt;/li&gt;&lt;li&gt;Click &lt;strong&gt;Start&lt;/strong&gt;, &lt;strong&gt;Run&lt;/strong&gt;, type &lt;strong&gt;msconfig.exe&lt;/strong&gt; and press &lt;strong&gt;Enter&lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;Select the &lt;strong&gt;Boot.ini&lt;/strong&gt; tab.&lt;/li&gt;&lt;li&gt;Click &lt;strong&gt;Check All Boot Paths&lt;/strong&gt; to remove the incorrect entry.&lt;/li&gt;&lt;/ul&gt;&lt;h5 style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0.2em; margin-left: 0px; font-size: 1.2em; font-weight: bold; line-height: 1em; &quot;&gt;Applies to&lt;/h5&gt;&lt;ul&gt;&lt;li&gt;Microsoft Windows NT&lt;/li&gt;&lt;li&gt;Microsoft Windows 2000&lt;/li&gt;&lt;li&gt;Microsoft Windows XP&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ankitjainarain.blogspot.com/feeds/4569615283985452955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ankitjainarain.blogspot.com/2010/04/missing-or-corrupt-haldll.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/4569615283985452955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/4569615283985452955'/><link rel='alternate' type='text/html' href='http://ankitjainarain.blogspot.com/2010/04/missing-or-corrupt-haldll.html' title='Missing or corrupt hal.dll'/><author><name>Ankit</name><uri>http://www.blogger.com/profile/05478322170957335992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_zckDpxGeJaU/S8qX85_LlVI/AAAAAAAAAJY/nVMcpJ7-xMw/S220/Ankit+Jainarain+(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3685716557674208478.post-2374064207243960385</id><published>2010-04-18T12:33:00.001+05:30</published><updated>2010-04-18T12:35:13.257+05:30</updated><title type='text'>Browser Shaking</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; font-size: medium; &quot;&gt;&lt;p&gt;This is a fun little trick that can create a shaking screen on your web browser (i.e. Internet Explorer, etc..)&lt;/p&gt;&lt;p&gt;The trick is simply a small Java Script that causes your browser window to move to different positions, causing a shake of your entire screen. It&#39;s kind of cool to watch and see what Java Script can do! Try it out..&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Copy this entire line and paste it onto your address box, then press Enter:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div style=&quot;font-family: courier; font-size: 6pt; background-color: rgb(255, 250, 196); &quot;&gt;javascript:function Shw(n) {if (self.moveBy) {for (i = 35; i &gt; 0; i--) {for (j = n; j &gt; 0; j--) {self.moveBy(1,i);self.moveBy(i,0);self.moveBy(0,-i);self.moveBy(-i,0); } } }} Shw(6)&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://ankitjainarain.blogspot.com/feeds/2374064207243960385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ankitjainarain.blogspot.com/2010/04/browser-shaking.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/2374064207243960385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/2374064207243960385'/><link rel='alternate' type='text/html' href='http://ankitjainarain.blogspot.com/2010/04/browser-shaking.html' title='Browser Shaking'/><author><name>Ankit</name><uri>http://www.blogger.com/profile/05478322170957335992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_zckDpxGeJaU/S8qX85_LlVI/AAAAAAAAAJY/nVMcpJ7-xMw/S220/Ankit+Jainarain+(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3685716557674208478.post-2099902195667673127</id><published>2010-04-18T12:14:00.001+05:30</published><updated>2010-04-18T12:15:21.337+05:30</updated><title type='text'>Operate Mouse Pointer Without Mouse</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Times New Roman&#39;; font-size: medium; &quot;&gt;&lt;p&gt;I will give you suggestion&lt;br /&gt;&lt;br /&gt;Press Left &lt;b&gt;Alt&lt;/b&gt; + Left &lt;b&gt;Shift&lt;/b&gt; + &lt;b&gt;Num Lock &lt;/b&gt;Button + &lt;b&gt;Ok&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;with the help of Numeric Keypad e.g ( Press and Hold the following Keys )&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;b&gt;&lt;pre&gt;7   8    9  4        6  1   2    3 &lt;/pre&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;For Normal Click Press &lt;b&gt;5 &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Default&lt;br /&gt;&lt;b&gt;Left Alt&lt;/b&gt; + &lt;b&gt;Left Shift&lt;/b&gt; + &lt;b&gt;Num Lock&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://ankitjainarain.blogspot.com/feeds/2099902195667673127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ankitjainarain.blogspot.com/2010/04/operate-mouse-pointer-without-mouse.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/2099902195667673127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/2099902195667673127'/><link rel='alternate' type='text/html' href='http://ankitjainarain.blogspot.com/2010/04/operate-mouse-pointer-without-mouse.html' title='Operate Mouse Pointer Without Mouse'/><author><name>Ankit</name><uri>http://www.blogger.com/profile/05478322170957335992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_zckDpxGeJaU/S8qX85_LlVI/AAAAAAAAAJY/nVMcpJ7-xMw/S220/Ankit+Jainarain+(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3685716557674208478.post-2913481172632924995</id><published>2009-10-28T02:03:00.001+05:30</published><updated>2010-04-18T11:47:24.531+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Network"/><title type='text'>Network Security</title><content type='html'>&lt;div align=&quot;left&quot;&gt;     &lt;p align=&quot;left&quot;&gt;Data on the network is analogous to possessions of a person.      It has to be kept secure from others with malicious intent. This intent      ranges from bringing down servers on the network to using people&#39;s private      information like credit card numbers to sabotage of major organizations with      a presence on a network. To secure data, one has to ensure that it makes      sense only to those for whom it is meant. This is the case for data      transactions where we want to prevent eavesdroppers from listening to and      stealing data. Other aspects of security involve protecting user data on a      computer by providing password restricted access to the data and maybe some      resources so that only authorized people get to use these,  and identifying      miscreants and thwarting their attempts to cause damage to the network among      other things.&lt;/p&gt;&lt;/div&gt;   &lt;div align=&quot;left&quot;&gt;&lt;p&gt;     The various issues in Network security are as follows :   &lt;/p&gt;&lt;/div&gt;    &lt;div align=&quot;left&quot;&gt;      &lt;ol&gt;&lt;li&gt;&lt;b&gt;Authentication: &lt;/b&gt;We have to check that the person who has        requested for something or has sent an e-mail is indeed allowed to do so.        In this process we will also look at how the person authenticates his        identity to a remote machine.       &lt;/li&gt;&lt;li&gt;&lt;b&gt;Integrity: &lt;/b&gt;We have to check that the message which we have        received is indeed the message which was sent. Here CRC will not be enough        because somebody may deliberately change the data. Nobody along the route        should be able to change the data.       &lt;/li&gt;&lt;li&gt;&lt;b&gt;Confidentiality: &lt;/b&gt;Nobody should be able to read the data on        the way so we need Encryption       &lt;/li&gt;&lt;li&gt;&lt;b&gt;Non-repudiation: &lt;/b&gt;Once we sent a message, there should be no        way that we can deny sending it and we have to accept that we had sent it.       &lt;/li&gt;&lt;li&gt;&lt;b&gt;Authorization: &lt;/b&gt;This refers to the kind of service which is        allowed for a particular client. Even though a user is authenticated we        may decide not to authorize him to use a particular service. &lt;/li&gt;&lt;/ol&gt;       For authentication, if two persons know a secret then we just need to        prove that no third person could have generated the message. But for        Non-repudiation we need to prove that even the sender could not have        generated the message. So authentication is easier than Non-repudiation.       To ensure all this, we take the help of cryptography. We can have two        kinds of encryption : &lt;ol&gt;&lt;li&gt;&lt;b&gt;Symmetric Key Encryption: &lt;/b&gt;There is a single key which is shared between the two users and the same        key is used for encrypting and decrypting the message. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Public Key Encryption: &lt;/b&gt;There are two keys with each user : a public        key and a private key. The public key of a user is known to all but the        private key is not known to anyone except the owner of the key. If a user        encrypts a message in his private key then it can be decrypted by anyone        by using the sender&#39;s public key. To send a message securely, we encrypt        the message in the public key of the receiver which can only be decrypted        by the user with his private key. &lt;/li&gt;&lt;/ol&gt;     &lt;p&gt;Symmetric key encryption is much faster and efficient in terms of      performance. But it does not give us Non-repudiation. And there is a problem      of how do the two sides agree on the key to be used assuming that the      channel is insecure ( others may snoop on our packet ). In symmetric key      exchange, we need some amount of public key encryption for authentication.      However, in public key encryption, we can send the public key in plain text      and so key exchange is trivial. But this does not authenticate anybody. So      along with the public key, there needs to be a certificate. Hence we would      need a public key infrastructure to distribute such certificates in the      world.&lt;/p&gt;      &lt;h3&gt;Key Exchange in Symmetric Key Schemes&lt;/h3&gt;            We will first look at the case where we can use public key encryption        for this key exchange. . The sender first encrypts the message using the        symmetric key. Then the sender encrypts the symmetric key first using it&#39;s        private key and then using the receiver&#39;s public key. So we are doing the        encryption twice. If we send the certificate also along with this then we        have authentication also. So what we finally send looks like this :&lt;p&gt;        &lt;/p&gt;&lt;/div&gt; &lt;div align=&quot;center&quot;&gt;   &lt;span style=&quot;font-size:130%;&quot;&gt;Z :    Certificate&lt;sub&gt;sender &lt;/sub&gt;+ Public&lt;sub&gt;reciever   &lt;/sub&gt;( Private&lt;sub&gt;sender &lt;/sub&gt;( E&lt;sub&gt;k&lt;/sub&gt; ) ) + E&lt;sub&gt;k&lt;/sub&gt; ( M )&lt;/span&gt;&lt;/div&gt;  &lt;div align=&quot;left&quot;&gt;   Here E&lt;sub&gt;k &lt;/sub&gt;stands for the symmetric key and E&lt;sub&gt;k &lt;/sub&gt;( M ) for    the message which has been encrypted in this symmetric key.&lt;p&gt;However this    still does not ensure integrity. The reason is that if there is some change in    the middle element, then we will not get the correct key and hence the message    which we decrypt will be junk. So we need something similar to CRC but    slightly more complicated. This is because somebody might change the CRC and    the message consistently. This function is called Digital Signature.&lt;/p&gt;        &lt;h3&gt;Digital Signatures&lt;/h3&gt;     Suppose A has to send a message to B. A computes a hash function of the      message and then sends this after encrypting it using its own private key.      This constitutes the signature produced by A. B can now decrypt it,      recompute the hash function of the message it has received and compare the      two.      Obviously, we would need the hash functions to be such that the      probability of two messages hashing to the same value is extremely low.      Also, it should be difficult to compute a message with the same hash      function as another given message. Otherwise any intruder could replace the      message with another that has the same hash value and leave the signatures      intact leading to loss of integrity.      So the message along with the digital signature looks like this :    &lt;/div&gt; &lt;p align=&quot;center&quot;&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;Z + Private&lt;sub&gt;sender &lt;/sub&gt;( Hash ( M ) )&lt;/span&gt;&lt;/p&gt; &lt;div align=&quot;left&quot;&gt;     &lt;h3&gt;Digital Certificates&lt;/h3&gt;   In addition to using the public key we would like to have a guarantee of    talking to a known person. We assume that there is an entity who is entrusted    by everyone and whose public key is known to everybody. This entity gives a    certificate to the sender having the sender&#39;s name, some other information and    the sender&#39;s public key. This whole information is encrypted in the private    key of this trusted entity. A person can decrypt this message using the public    key of the trusted authority. But how can we be sure that the public key of    the authority is correct ?       In this respect Digital signatures are like I-Cards. Let us ask ourselves    the question : How safe are we with I-Cards? Consider a situation where you go    to the bank and need to prove your identity. I-Card is used as a proof of your    identity. It contains your signature. How does the bank know you did not make    the I-Card yourselves? It needs some proof of that and in the case of I-Cards    they contain a counter signature by the director for the purpose. Now how does    the bank know the signature I claim to be of the director indeed belongs to    him? Probably the director will also have an I-Card with a counter signature    of a higher authority. Thus we will get a chain of signing authorities. Thus    in addition to signing we need to prove that the signatures are genuine and    for that purpose we would probably use multiple I-Cards each carrying a higher    level of signature-counter signature pair. &lt;/div&gt;    So in order to distribute the public key of this authority we use    certificates of higher authority and so on. Thus we get a tree structure where    the each node needs the certificates of all nodes above it on the path to the    root in order to be trusted. But at some level in the tree the public key    needs to be known to everybody and should be trusted by everybody too.</content><link rel='replies' type='application/atom+xml' href='http://ankitjainarain.blogspot.com/feeds/2913481172632924995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/network-security.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/2913481172632924995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/2913481172632924995'/><link rel='alternate' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/network-security.html' title='Network Security'/><author><name>Ankit</name><uri>http://www.blogger.com/profile/05478322170957335992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_zckDpxGeJaU/S8qX85_LlVI/AAAAAAAAAJY/nVMcpJ7-xMw/S220/Ankit+Jainarain+(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3685716557674208478.post-2148826794759939813</id><published>2009-10-28T02:02:00.001+05:30</published><updated>2010-04-18T11:47:24.531+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Network"/><title type='text'>Wireless Networks</title><content type='html'>&lt;h3&gt;Introduction&lt;/h3&gt; As the need of communication became more and more demanding, new technologies in the field of networks developed. One of them is the use of wireless networks. It is the transmission of data from source to destination without the use of wires as the physical media.&lt;br /&gt;&lt;h3&gt;Why to use Wireless?&lt;/h3&gt; Three reasons may be stated for the over-growing use of wireless networks across the world: &lt;ol&gt;&lt;li&gt; They are ubiquitous networks. As the do not require messy wires as a medium of communication, they can be used to connect far-off places.&lt;/li&gt;&lt;li&gt; They are cheaper than wired networks specially in the case of long-distance communication.&lt;/li&gt;&lt;li&gt; They are pretty effective and fast, especially with the modern advancements in this field.&lt;/li&gt;&lt;/ol&gt;  &lt;h3&gt;Some Terms and Technologies:&lt;/h3&gt;  &lt;p&gt;&lt;b&gt; ATM-Asynchronous Transfer Mode:&lt;/b&gt;&lt;br /&gt;ATM is a connection-oriented switching technology. It was built to support ISDN (Integrated Services Digital Network). ISDN required high speed cables for both its narrow band (64 Kbps) and broad band (155 Mbps) transmission. There were two technologies available for transmitting data- &lt;/p&gt;&lt;ol&gt;&lt;li&gt; &lt;b&gt;Circuit Switching:&lt;/b&gt; In this technology, when a user makes a call, the resources are reserved for him.  The advantage of this technology is that it prevents collisions among various users. But the disadvantage is that it leads to inefficient utilization of bandwidth-- if the user fails to send data or if the transmission speed is faster than the speed of sending data. then most of the bandwidth is wasted.&lt;/li&gt;&lt;li&gt; &lt;b&gt;Packet Switching:&lt;/b&gt; In this technology, resources are never reserved for any particular user. The advantage of this technology is that it leads to efficient utilization of bandwidth i.e. the channel is never free until &amp;amp; unless there are no users, But the disadvantage is that it causes many collision.&lt;/li&gt;&lt;/ol&gt; ATM was built as a combination of the best features of these two. Also ATM provides QoS (Quality of Service) based on the following priority pattern: &lt;ol&gt;&lt;li&gt; &lt;b&gt;CBR-Constant Bit Rate: &lt;/b&gt;Jobs that can tolerate no delay are assigned the CBR priority.  These jobs are provided same number of bits every frame..   For example, viewing a video reel definitely requires some blocks in every frame.&lt;/li&gt;&lt;li&gt; &lt;b&gt;VBR-Variable Bit Rate: &lt;/b&gt;Jobs that may produce different sized packets at different times are assigned VBR priority. They are provided with a variable number of bits varying between  a maximum and a minimum in different frames. e.g.. a document may be compressed differently by different machines. Transmitting it will be a variable transmission.&lt;/li&gt;&lt;li&gt; &lt;b&gt;ABR-Available Bit Rate: &lt;/b&gt;This is the same as VBR except that it has only the minimum fixed. If there are no CBR or VBR jobs left, it can use the entire frame,&lt;/li&gt;&lt;li&gt; &lt;b&gt;UBR-Unavailable Bit Rate: &lt;/b&gt;These jobs are the least priority jobs. The network does not promise anything but simply tries its best  to transmit it.&lt;/li&gt;&lt;/ol&gt; &lt;b&gt; WLAN-Wireless LAN&lt;/b&gt;&lt;br /&gt;This is currently being used as dictated by the standards of IEEE 802.11. It can be installed at the medium access layer and the data transmission can occur using a converter to reach the wired LAN network.( IEEE 802.x)&lt;br /&gt; &lt;br /&gt;&lt;b&gt; WATM-Wireless ATM &lt;/b&gt;&lt;br /&gt;It is the wireless version of ATM.  It provides QoS. It is not yet available in market. because installing it will require the simultaneous installation of ATM infrastructure. It is currently being tested thoroughly.  &lt;p&gt;&lt;b&gt; Coupling of Networks:&lt;/b&gt;&lt;br /&gt;The alternatives are: &lt;/p&gt;&lt;ol&gt;&lt;li&gt; WLAN               LAN&lt;/li&gt;&lt;li&gt; WATM             LAN&lt;/li&gt;&lt;li&gt; WLAN             ATM&lt;/li&gt;&lt;li&gt; WATM             ATM&lt;/li&gt;&lt;/ol&gt;   &lt;ol&gt;&lt;li&gt; WLAN-LAN is the simplest of the above. According to the IEEE standards, the IEEE 802.11 (WLAN)  can be used with IEEE 802.x (LAN) as follows:&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec32/6-layer.gif&quot; border=&quot;20&quot; height=&quot;80%&quot; hspace=&quot;20&quot; vspace=&quot;20&quot; width=&quot;80%&quot; /&gt;&lt;/li&gt;&lt;li&gt; WLAN-ATM- NOT FEASIBLE.&lt;/li&gt;&lt;li&gt; WATM-LAN- NOT FEASIBLE because WATM requires an infrastructure of the type ATM&lt;/li&gt;&lt;li&gt; WATM-ATM-this is also a simple scheme because WATM can run on ATM.&lt;/li&gt;&lt;/ol&gt; &lt;h3&gt;Issues involved in Wireless Networks&lt;/h3&gt;  &lt;ul&gt;&lt;li&gt; &lt;b&gt;Cost and Speed: &lt;/b&gt;As it is being considered as an alternative to wired networks, it should be faster and cheaper.&lt;/li&gt;&lt;li&gt; &lt;b&gt;Quality of Transmission:&lt;/b&gt; It gives a higher BER (Bit Error Rate). The BER is greater than 10  &lt;sup&gt;-6.&lt;/sup&gt; This is caused because transmission quality depends highly on the physical media including landscape, weather etc.&lt;/li&gt;&lt;li&gt; &lt;b&gt;RayLeigh Fading: &lt;/b&gt;The data has to travel the distance through a medium like air. Several rays of the same stream cause Rayleigh fading due to interference. This causes poor transmission.&lt;/li&gt;&lt;li&gt; &lt;b&gt;Multipath Propagation:&lt;/b&gt; Similarly, due to multipath propagation, the signal received at the destination may be garbled.&lt;/li&gt;&lt;li&gt; &lt;b&gt;Hand-Offs:&lt;/b&gt; If hand-offs are used i.e., hexagonal cells each having a base station and many mobile terminals, two Mobile terminals that are far enough can use the same bandwidth. This reuse of bandwidth is helpful.&lt;/li&gt;&lt;li&gt; &lt;b&gt;Dynamic Physical Characteristics: &lt;/b&gt;The terminal may be mobile and constantly moving. Thus the distance between the base station and any active terminal may be constantly changing. This has to be taken into account while designing.&lt;/li&gt;&lt;li&gt; &lt;b&gt;Practical Implementation&lt;/b&gt;: The practical implementation of any wireless network requires CSMA/CD for proper transmission. The range of any terminal is fixed. So, there may be two terminals that are out of range of each other. These are called HIDDEN TERMINALS. Collisions may be caused due to simultaneous sending of data from any two hidden terminals.  The HIDDEN TERMINAL PROBLEM should be overcome with the help of Base Station.&lt;/li&gt;&lt;li&gt;  .&lt;b&gt;Mobility and Network Topologies:&lt;/b&gt; Wireless networks should be effective enough to overcome the problems caused by the topology of the area and the mobility of the terminals&lt;/li&gt;&lt;li&gt; &lt;b&gt;Frequency Allocation: Licensed &amp;amp; Unlicensed:&lt;/b&gt; For licensed networks, permission has to be taken from the authorities that grant you a fixed bandwidth which is not used by anybody else while unlicensed networking does not require any such permissions. It just provides with some unlicensed bands which can be used by anybody. Unlicensed bands may thus, cause collisions.&lt;/li&gt;&lt;li&gt; &lt;b&gt;Capture Effect: &lt;/b&gt;If there are more than one terminals requiring the attention of the Base Station, the one nearer to the base station may capture it. This unfair access to the base station should be prevented.&lt;/li&gt;&lt;li&gt; &lt;b&gt;Power Requirements and Battery: &lt;/b&gt;This problem arises for the Mobile Terminals that run battery or cells. Much dissipation of power  is caused when switching from receiving mode to sending mode and vice versa.&lt;/li&gt;&lt;li&gt; &lt;b&gt;Human Safety:&lt;/b&gt; Not all bandwidths can be used . Also, the intensity should not be very high as it may lead to several complications in human body e.g.. cataract.&lt;/li&gt;&lt;/ul&gt;  &lt;h3&gt;Wireless Physical Media&lt;/h3&gt;  In the wireless physical media, three technologies are used: &lt;ol&gt;&lt;li&gt; &lt;b&gt;Transmission at Infrared frequency: &lt;/b&gt;This is easier to build and set-up. It is mainly used for indoor purposes because the beam has to be focussed and can&#39;t cross opaque media like walls etc.&lt;/li&gt;&lt;li&gt; &lt;b&gt;Transmission through Microwave: &lt;/b&gt;This is preferred as it requires low power consumption. (the bandwidth is fixed)  But the basic problem is that it requires Line-of-Sight. Also, it requires license.&lt;/li&gt;&lt;li&gt; &lt;b&gt;Transmission at Radio Frequency:  &lt;/b&gt;This is the one that is most familiar to us. The bandwidth is pretty large.&lt;/li&gt;&lt;/ol&gt;  &lt;h3&gt;Integrity and Security of the signal&lt;/h3&gt;   &lt;p&gt;&lt;b&gt;Spread Spectrum:&lt;/b&gt; To reduce the effect of noise signals, the bandwidth of the signal is increased tremendously. This is costly but assures better transmission. This is called SPREAD-SPECTRUM. This is used in two ways: &lt;/p&gt;&lt;ul&gt;&lt;li&gt; &lt;b&gt;FHSS (Frequency hopping spread spectrum)&lt;/b&gt;: The entire packet is not sent at the same bandwidth. Say, it is sent at frequency range A for  time T1, frequency range B for time T2, A for T1, B for T2 and so on. The receiver also knows this sequence and so, looks at A for time T1, then at B for time T2 and so on. Thus this sort of understanding between the sender   and receiver prevents the signal from being completely garbled .&lt;/li&gt;&lt;li&gt; &lt;b&gt;DSSS (Direct Sequence Spread Spectrum): &lt;/b&gt;This involves sending of coded data  instead of the actual data. This code is known to the destination only which can decipher the data now.&lt;/li&gt;&lt;/ul&gt; The problem still left undealt is that of bursty errors. If there  is lot of traffic, interference may hinder  the Base Station from  receiving data for a burst of time. This is called &lt;b&gt;&quot;Bursty Errors&quot;.&lt;/b&gt; &lt;br /&gt;Such problem are looked at by &lt;b&gt;MAC&lt;/b&gt;-Medium Access Control.  &lt;h3&gt;MEDIUM ACCESS CONTROL&lt;/h3&gt; To control the traffic, various techniques are used. MAC  fulfills the following requirements: &lt;ol&gt;&lt;li&gt; &lt;b&gt;QoS Requirements: &lt;/b&gt; It provides Quality of Service according to the priority of jobs.&lt;/li&gt;&lt;li&gt;  &lt;b&gt;Error Control: &lt;/b&gt;Error handling is done using some codes.&lt;/li&gt;&lt;li&gt; &lt;b&gt;Frame Size: &lt;/b&gt;To transmit maximum data, we want the frame-size to be maximum but at the same time, large frame-size highly increases the probability of errors. So, MAC provides a tradeoff between the above two factors determining the size of the frame.&lt;/li&gt;&lt;li&gt; &lt;b&gt;Secure Transmission: &lt;/b&gt; The data meant for a particular receiver is secured from others.&lt;/li&gt;&lt;li&gt; &lt;b&gt;Reasonable Transmission: &lt;/b&gt; If the number of users increases, each should get reasonable service. MAC prevents unfair access to channel.&lt;/li&gt;&lt;li&gt; &lt;b&gt;Efficient utilization of Power: &lt;/b&gt; If a transmitter is always on, it is continuously using power even if there is no data on the channel for it. This is reduced by sending the transmitter to &quot;sleep mode&quot; whenever the battery is going down. In this mode, the transmitter is unable to receive any data.&lt;/li&gt;&lt;/ol&gt;  &lt;h3&gt;Architecture for Wireless Network&lt;/h3&gt; There are two types of architecture possible: &lt;ol&gt;&lt;li&gt; &lt;b&gt;AD-HOC NETWORK&lt;/b&gt;&lt;/li&gt;&lt;li&gt; &lt;b&gt;INFRASTRUCTURE NETWORK&lt;/b&gt;&lt;/li&gt;&lt;/ol&gt; The Ad-Hoc network can be set up anytime. It does not require a Base Station.  It is generally used for indoor purposes.&lt;br /&gt;The Infrastructure network involves Base Station and Mobile Terminals. It provides uplink facility    ( link from MT to BS) and downlink facility (link from BS to MT).  &lt;h3&gt;THE MAC PROTOCOL&lt;/h3&gt;  This protocol decides how to assign data slots to different users. The various policies it uses are: &lt;ol&gt;&lt;li&gt; &lt;b&gt;Fixed Assignment Policy&lt;/b&gt;&lt;/li&gt;&lt;li&gt; &lt;b&gt;Random Assignment Policy&lt;/b&gt;&lt;/li&gt;&lt;li&gt; &lt;b&gt;Centrally Controlled Policy&lt;/b&gt;&lt;/li&gt;&lt;li&gt; &lt;b&gt;Distributed Controlled Policy&lt;/b&gt;&lt;/li&gt;&lt;li&gt; &lt;b&gt;Hybrid Controlled Policy&lt;/b&gt;&lt;/li&gt;&lt;/ol&gt; &lt;b&gt; Fixed Assignment Policy:&lt;/b&gt;&lt;br /&gt; In this policy, each terminal is assigned some sort of data slot to speak. It causes a fixed delay. It is done in 3 ways: &lt;ol&gt;&lt;li&gt; &lt;b&gt;TDMA (TIME DIVISION MULTIPLE ACCESS) : &lt;/b&gt; Each user is given a fixed time to speak., after which the chance goes to another user. This cycle continues indefinitely.&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec32/6-tdma.gif&quot; border=&quot;20&quot; height=&quot;50%&quot; hspace=&quot;20&quot; vspace=&quot;20&quot; width=&quot;50%&quot; /&gt;&lt;/li&gt;&lt;li&gt; &lt;b&gt;FDMA (FREQUENCY DIVISION MULTIPLE ACCESS):&lt;/b&gt; Each user is given a fixed bandwidth in which he can speak at all times.        &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec32/6-fdma.gif&quot; border=&quot;20&quot; height=&quot;50%&quot; hspace=&quot;20&quot; vspace=&quot;20&quot; width=&quot;50%&quot; /&gt;&lt;/li&gt;&lt;li&gt; &lt;b&gt;CDMA (CODIVISION MULTIPLE ACCESS):&lt;/b&gt; Each user is given different frequencies at different times. This ensures that each user gets a fair amount of channel each time.&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec32/6-cdma.gif&quot; border=&quot;20&quot; height=&quot;50%&quot; hspace=&quot;20&quot; vspace=&quot;20&quot; width=&quot;50%&quot; /&gt;&lt;/li&gt;&lt;/ol&gt;  &lt;p&gt;Also, sometimes, statistical multiple access is used in which a slot is assigned to a user only if it has data to send.&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;&lt;b&gt;Random Assignment Policy&lt;/b&gt; &lt;br /&gt;In this  policy, contention slots are provided to all the users. Problem may arise if the number of users increase drastically. The number of contention slots should be variable. This may cause some limiting of data slots but is necessary to prevent the derailment of the service .&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;&lt;b&gt;Centrally Controlled Policy:&lt;/b&gt;&lt;br /&gt;This is used in an infrastructure architecture.  It involves the participation of a Base Station which may assign slots and priorities(CNBR,VBR etc.) to all the users.&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;&lt;b&gt;Distributed Controlled Policy:&lt;/b&gt;&lt;br /&gt;This is used in Ad-Hoc architecture. The control is among the terminals which decide among themselves about who is going to speak first.&lt;br /&gt;   &lt;/p&gt;&lt;p&gt;&lt;b&gt;Hybrid Controlled Policy:&lt;/b&gt;&lt;br /&gt;This combines the best features of centrally controlled and distributed controlled policies.&lt;br /&gt;  &lt;/p&gt;&lt;h3&gt;KINDS OF MAC PROTOCOLS:&lt;/h3&gt; There are two kinds of Mac protocols: &lt;ol&gt;&lt;li&gt; &lt;b&gt;FDD (Frequency Division Duplex) &lt;/b&gt;This provides two separate bandwidths for uplink and downlink transmission. This leads to inefficient utilization of bandwidth as there is  more  traffic on downlink than uplink&lt;/li&gt;&lt;li&gt; &lt;b&gt;TDD (Time Division Duplex)&lt;/b&gt; This provides an adoptive boundary between the uplink and downlink frequency which depends on the what is being used at that particular time. It works as follows:&lt;/li&gt;&lt;/ol&gt;  Any mobile terminal can be in 3 states : empty state, request state and ready-to-transmit state. &lt;ol&gt;&lt;li&gt; uplink-MT1 sends a random-access request to BS to communicate with MT2&lt;/li&gt;&lt;li&gt; downlink: BS sends a b-bit access id to MT2&lt;/li&gt;&lt;li&gt; uplink:  MT1 sends the packet&lt;/li&gt;&lt;li&gt; downlink: BS sends the packet to MT2&lt;/li&gt;&lt;/ol&gt; The TDD is more in use now-a-days.</content><link rel='replies' type='application/atom+xml' href='http://ankitjainarain.blogspot.com/feeds/2148826794759939813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/wireless-networks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/2148826794759939813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/2148826794759939813'/><link rel='alternate' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/wireless-networks.html' title='Wireless Networks'/><author><name>Ankit</name><uri>http://www.blogger.com/profile/05478322170957335992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_zckDpxGeJaU/S8qX85_LlVI/AAAAAAAAAJY/nVMcpJ7-xMw/S220/Ankit+Jainarain+(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3685716557674208478.post-553481395612186433</id><published>2009-10-28T02:01:00.001+05:30</published><updated>2010-04-18T11:47:24.531+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Network"/><title type='text'>Firewalls</title><content type='html'>&lt;h3&gt; Introduction &lt;/h3&gt; This lecture discusses about security mechanisms in the Internet namely Firewall . In brief, It&#39;s a configuration of routers and networks placed between an organization&#39;s internal internet and a connection to an external internet to provide security. In other words, Firewall is a mechanism to provide limited access to machines either from the outside world to internal internet or from internal world to outside world. By, providing these security mechanisms, we are increasing the processing time before one can access a machine. So, there is a trade-off between security and ease of use. A firewall partitions an internet into two regions, referred to informally as the inside and outside.   &lt;p&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                                                                                   __&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size:+0;&quot;&gt;                                                                                   |   | _________  Firewall&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                  ______________________                     |   |             ____________________&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size:+0;&quot;&gt;                 |                                           |                     |   |             |                                      |&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                 |                                            |                     |   |             |                                      |&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                 |      Rest of Internet          |________     |    |_____   |      Intranet                   |&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                 |                                           |                    |   |              |                                       |&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                 |_____________________ |                    |   |             |___________________| &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                                                                                  |_|&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size:+0;&quot;&gt;                            Outside                                                                        Inside&lt;/span&gt;&lt;br /&gt;  &lt;/p&gt;    Security Lapses &lt;ul&gt;&lt;li&gt;&lt;u&gt;Vulnerable Services&lt;/u&gt;    - NFS :  A user should not be allowed to export certain files to the outside world and from the outside world also, someone should not be allowed to export our files.&lt;/li&gt;&lt;li&gt;&lt;u&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;Routing based attacks&lt;/span&gt;&lt;/u&gt; : &lt;span style=&quot;font-size:+0;&quot;&gt; Some kind of ICMP message should not be allowed to enter my network. e.g.. Source routing and change route ICMP&#39;s.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;u&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;Controlled access to our systems&lt;/span&gt;&lt;/u&gt; : &lt;span style=&quot;font-size:+0;&quot;&gt; e.g.. Mail server and web pages should be accessible from outside but our individual PC&#39;s should not be accessible from the outside world.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;u&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;Authentication&lt;/span&gt;&lt;/u&gt; : &lt;span style=&quot;font-size:+0;&quot;&gt;Encryption can be used between hosts on different networks.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;&lt;u&gt;Enhanced Privacy&lt;/u&gt; : Some applications should be blocked. e.g..  finger  ...&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;&lt;u&gt;PING &amp;amp; SYN attack&lt;/u&gt; : Since these messages are send very frequently, therefore you won&#39;t be able to do anything except reply to these messages. So, I should not allow these messages to enter my network.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;    So. whatever I provide for my security is called Firewall. It is a mechanism and not just a hardware or software.&lt;/span&gt;&lt;br /&gt;  &lt;/p&gt; &lt;h3&gt; Firewall Mechanisms&lt;/h3&gt; &lt;span style=&quot;font-size:+0;&quot;&gt;1. &lt;u&gt;Network Policy &lt;/u&gt;&lt;/span&gt;: &lt;span style=&quot;font-size:+0;&quot;&gt;Here, we take into consideration, what services are allowed for outside and inside users and the services which are allowed can have additional restrictions. e.g.. I might be allowed to download things from the net but not upload i.e.. some outside users cannot download the things from our net. Some exceptional cases might be there which have to be handled separately. And if some new application comes up then , we choose an appropriate network policy.&lt;/span&gt;   &lt;span style=&quot;font-size:+0;&quot;&gt;2. &lt;u&gt;Authentication mechanism &lt;/u&gt; : &lt;span style=&quot;font-size:+0;&quot;&gt;An application can be designed which ask for a password for authentication. &lt;/span&gt;&lt;/span&gt;  &lt;p&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;3. &lt;u&gt;Packet Filtering&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:+3;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;: &lt;/span&gt;Router have information about some particular packets which should not be allowed.&lt;/span&gt;  &lt;/p&gt;  &lt;p&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;4. &lt;u&gt;Application gateways&lt;/u&gt; : or proxy servers.&lt;/span&gt;&lt;br /&gt;  &lt;/p&gt;    &lt;h2&gt;&lt;u&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;Certain Problems with Firewall&lt;/span&gt;&lt;/u&gt;&lt;/h2&gt;  &lt;p&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;1. Complacency : &lt;/span&gt;There are lots of attacks on the firewall from internal users and therefore, it&#39;s limitations should be understood. &lt;/p&gt;  &lt;p&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;2. Encapsulated packets : &lt;/span&gt;An encapsulated packet is an IP packet within another IP packet. If we ask the router to drop encapsulated packets then, it will drop the multicast packets also. &lt;/p&gt;  &lt;p&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;3. Throughput :So, in order to check which packets are allowed and which are not, we are doing some processing which can be an overhead and thus affects throughput.&lt;/span&gt;&lt;br /&gt;  &lt;/p&gt;  &lt;h3&gt;&lt;u&gt;Authentication:&lt;/u&gt;&lt;/h3&gt;  &lt;p&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;We can use the following mechanisms:&lt;/span&gt; &lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;&lt;u&gt;One time passwords&lt;/u&gt;:  passwords are used only once and then it changes. But only the user and the machine knows the changing passwords.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;&lt;u&gt;password aging&lt;/u&gt; : User are forced to change passwords after some time on regular intervals.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;&lt;u&gt;smart cards&lt;/u&gt; :  swipe through the PC.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;&lt;u&gt;biometrics&lt;/u&gt; : eyes or finger prints are used.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p&gt;  &lt;/p&gt;  &lt;h3&gt;&lt;u&gt;Packet Filtering&lt;/u&gt; :&lt;/h3&gt;  &lt;p&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;Terms associated:&lt;/span&gt; &lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;Source IP address&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;Destination IP address&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;Source port #&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;Destination port #&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;protocol&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;interface&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;      Many commercial routers offer a mechanism that augments normal routing and permits a manager to further control packet processing. Informally called a &lt;i&gt;packet filter,&lt;/i&gt; the mechanism requires the manager to specify how the router should dispose of each datagram. For example, the manager might choose to &lt;i&gt;filter&lt;/i&gt; (i.e.. block) all datagrams that come from a particular source or those used by a particular application, while choosing to route other datagrams to their destination.&lt;/span&gt; &lt;/p&gt;  &lt;p&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;     The term &lt;i&gt;packet filter arises&lt;/i&gt;  because the filtering mechanism does not keep a record of interaction or a history of previous datagrams. Instead, the filter considers each datagrams separately. When a datagram first arrives, the router passes the datagram through its packet filter before performing any other processing. If the filter rejects the datagram, the router drops it immediately.&lt;/span&gt; &lt;/p&gt;  &lt;p&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;    For example, normally I won&#39;t allow TFTP, openwin, RPC, rlogin, rsh packets to pass through the router whether from inside or outside and router just discard these packets. But I might put some restrictions on telnet, ftp, http, and smtp packets in order to pass through the router and therefore some processing is to be done before discarding or allowing these packets.&lt;/span&gt; &lt;/p&gt;  &lt;p&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;    Because TCP/IP does not dictate a standard for packet filters, each router vendor is free to choose the capabilities of their packet filter as well as the interface the manager uses to configure the filter. Some routers permit a manager  to configure separate filter actions for each interface, while others have a single configuration for all interfaces. Usually, when specifying datagrams that the filter should block, a manager can list any combination of source IP address, destination IP address, protocol, source protocol port number, and destination protocol port number.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;    So, these filtering rules may become more tricky with complex network policies.&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size:+0;&quot;&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;    Since, Filtering rules are based on port numbers, there is a problem with RPC applications. First, the number of well-known ports is large and growing. Thus, a manager would need to update such a list continually because a simple error of  omission could leave the firewall vulnerable. Second, much of the traffic on an internet does not travel to or from a well-known port. In addition to programmers who can choose port numbers for their private client-server applications, services like &lt;i&gt;Remote Procedure Call (RPC) &lt;/i&gt;assigns port dynamically. Third, listing ports of well-known services leaves the firewall vulnerable to &lt;i&gt;tunneling&lt;/i&gt;, a technique in which one datagram is temporarily encapsulated in another for transfer across part of an internet.&lt;/span&gt; &lt;/p&gt;  &lt;p&gt; &lt;br /&gt;&lt;/p&gt;  &lt;h3&gt;&lt;u&gt;Relay Software (proxies)&lt;/u&gt; :&lt;/h3&gt;  &lt;p&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;I can run multiple proxy on same machine. They may detect misuse by keeping loops. For example, some machine give login to Ph.D.. students. So, in this case it&#39;s better to keep proxy servers than to give login on those machines. But the disadvantage with this is that there are two connections for each process.&lt;/span&gt; &lt;/p&gt;  &lt;p&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                _________                                __________&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                |                  |                               |                  |&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                |    &lt;/span&gt;User     |_______________|  Proxy       |___________    Outside &lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                | ________|              1.             |_________ |            2.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;  &lt;/p&gt;  &lt;h3&gt;&lt;u&gt;Various Firewall Considerations&lt;/u&gt;&lt;/h3&gt;  &lt;p&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;1. &lt;u&gt;Packet Filtering Firewall&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt; This is the simplest design and it is considered when the network is small and user don&#39;t run many Intranet applications.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                                                    __________&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                                                    |                     |&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                Intranet  __________|   Router      |__________   Internet&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                                                    |________ _ |&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                                                               |&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                                                               |&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                                                            Filter&lt;/span&gt; &lt;/p&gt;  &lt;p&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;2. &lt;u&gt;Dual home gateway&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;This gives least amount of flexibility. Instead of router, we have application gateways.&lt;br /&gt; &lt;span style=&quot;font-size:+0;&quot;&gt;                                                     ______________&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size:+0;&quot;&gt;                                                     | Application      |&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size:+0;&quot;&gt;                   Inside   ________ _ |        level            |___________   Outside&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size:+0;&quot;&gt;                                                     |      gateway      |&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size:+0;&quot;&gt;                                                     |____________  |&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size:+0;&quot;&gt;                                                            &lt;/span&gt;proxy&lt;br /&gt; &lt;span style=&quot;font-size:+0;&quot;&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;3. &lt;/span&gt;&lt;u&gt;Sreened host Firewall&lt;/u&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt; It&#39;s the combination of the above two schemes. Some applications are allowed uninterrupted while some have to be screened. For any reasonable size network, Screened host firewall can get loaded.&lt;/span&gt; &lt;/p&gt;  &lt;p&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                                      _________                                                 ___________&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                                     |                  |                                               |                    |&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;       Inside  _________| Router 1  |_______________________ | Router 2     |______   Outside&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                                     |_________|                    |                         |__________ |&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                                                                    ____|______&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                                                                     |                    |&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                                                                    |    Proxy      |&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                                                                    |__________|&lt;/span&gt; &lt;/p&gt;  &lt;p&gt;&lt;span style=&quot;font-size:+0;&quot;&gt; The problem with this is that there is only one proxy and thus, it may get overloaded. Therefore, to reduce load, we can use multiple screened host firewalls. And this is what normally used.&lt;/span&gt; &lt;/p&gt;  &lt;p&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                             _________                                                                __________&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                            |                  |                                                              |                     |&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;     Inside  _____ | Router 1  |______________________________  | Router 2     |_____Outside&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                            |_________|              |                                               |__________ |&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                                                     ____|____&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                                                    |                 |&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                                                    | Proxy 1   |      Proxy2    .......&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                                                    |________ |&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;  &lt;/p&gt;  &lt;h3&gt;&lt;u&gt;Modem pool&lt;/u&gt;&lt;/h3&gt;  &lt;span style=&quot;font-size:+0;&quot;&gt; User can dial and open only a terminal server but he has to give a password. But TELNET and FTP client does not understand proxy. Therefore, people come out with &lt;i&gt;Transparent proxy&lt;/i&gt; which means that I have some memory which keeps track of whether this packet was allowed earlier or not and therefore, I need not check this time. Client does not know that there is somebody who is checking my authentication.&lt;/span&gt;&lt;br /&gt;So, transparent proxy is used only for checking the IP packets whereas proxy is used when many IP addresses are not available.   &lt;p&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;&lt;b&gt;&lt;u&gt;Private IP&lt;/u&gt;&lt;/b&gt;&lt;/span&gt; (PIP address)&lt;br /&gt; &lt;span style=&quot;font-size:+0;&quot;&gt; It is an extension of transparent proxy. Here we also change the IP address (source address) to one of the allocated IP address and send it. So, the client does not know that the IP address has been changed, only the proxy server knows it. The machine that changes the IP address is &lt;/span&gt;&lt;i&gt;Network address translator (&lt;/i&gt;NAT) . NAT also changes other things like CRC, TCP header checksum  ( this is calculated using pseudo IP header). NAT can also change the port number. &lt;/p&gt;  &lt;p&gt; &lt;span style=&quot;font-size:+0;&quot;&gt;    e.g..   Port address translation&lt;/span&gt; &lt;/p&gt;  &lt;p&gt; &lt;span style=&quot;font-size:+0;&quot;&gt;                                                                     ____________ &lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size:+0;&quot;&gt;                                               X  -------|                       |&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size:+0;&quot;&gt;                                                                    |      NAT         |&lt;/span&gt;&lt;br /&gt;  &lt;span style=&quot;font-size:+0;&quot;&gt;                                               Y  -------|___________ |&lt;/span&gt; &lt;/p&gt;  &lt;p&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                    X&lt;sub&gt;1&lt;/sub&gt;&lt;/span&gt; , P&lt;sub&gt;1&lt;/sub&gt;   ----&gt;      G&lt;sub&gt;1&lt;/sub&gt; , P&lt;sub&gt;a&lt;/sub&gt;   (IP address, port #)&lt;br /&gt;&lt;span style=&quot;font-size:+0;&quot;&gt;                    X1 , P2   ----&gt;     G1 , Pb&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-size:+0;&quot;&gt;                     Y  , P3    ----&gt;     G1, Pc&lt;/span&gt; &lt;/p&gt;  &lt;p&gt;&lt;span style=&quot;font-size:+0;&quot;&gt; I may not like to have global IP address because then, anybody can contact me inspite of these security measures. So, I work with Private IP. In that case, there has to be a one-to-one mapping between private IP and global IP.&lt;/span&gt; &lt;/p&gt; &lt;hr /&gt;</content><link rel='replies' type='application/atom+xml' href='http://ankitjainarain.blogspot.com/feeds/553481395612186433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/firewalls.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/553481395612186433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/553481395612186433'/><link rel='alternate' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/firewalls.html' title='Firewalls'/><author><name>Ankit</name><uri>http://www.blogger.com/profile/05478322170957335992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_zckDpxGeJaU/S8qX85_LlVI/AAAAAAAAAJY/nVMcpJ7-xMw/S220/Ankit+Jainarain+(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3685716557674208478.post-572941393870685955</id><published>2009-10-28T02:00:00.001+05:30</published><updated>2010-04-18T11:47:24.532+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Network"/><title type='text'>Routing in Internet</title><content type='html'>&lt;h3&gt;The Origin of Internet&lt;/h3&gt;  The response of Internet to the issue of choosing routing tables with complete/par tail information is shown by the following architecture. There are a few nodes having complete routing information and a large number of nodes with partial information. The nodes with complete information, called core gateways, are well connected by a Backbone Network. These nodes talk to each other to keep themselves updated. The non-core gateways are connected to the core gateways. (Historically, this architecture comes from the ARPANET.)  &lt;p&gt; The original internet was structured around a backbone of ARPANET with several core gateways connected to it .These core gateways connected some Local Area Networks (LANs) to the rest of the network. These core gateways talked to themselves and exchanged routing information&#39;s. Every core gateway contained complete information about all possible destinations.  &lt;/p&gt;&lt;p align=&quot;CENTER&quot;&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec24/1.gif&quot; name=&quot;fig1&quot; align=&quot;BOTTOM&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;  &lt;h3&gt;How do you do routing ?&lt;/h3&gt; The usual IP routing algorithm employs an internet routing table (some times called an IP routing table) on each machine that Stores the information about the possible destinations, and how to reach them.   &lt;h4&gt;Default Routes&lt;/h4&gt;  This technique used to hide information and keep routing table size small consolidates multiple entries into a default case. If no route appears in the routing table, the routing routine sends the data gram to the &lt;i&gt;default router&lt;/i&gt;. &lt;p&gt; Default routing is especially useful when a site has a small set of local addresses and only one connection to the rest of the internet. &lt;/p&gt;&lt;h4&gt;Host-Specific Routes&lt;/h4&gt;  Most IP routing software allows per-host routes to be specified as a special case. Having per-host routes gives the local network administrator more control over network use, permits testing, and can also be used to control access for security purposes. when debugging network connections or routing tables, the ability to specify a special route to one individual machine turns out to be especially useful.&lt;br /&gt;&lt;h4&gt;Internet with Two Backbones&lt;/h4&gt; &lt;p align=&quot;CENTER&quot;&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec24/2.gif&quot; name=&quot;fig2&quot; align=&quot;BOTTOM&quot; border=&quot;0&quot; /&gt;&lt;/p&gt; &lt;p&gt; As long as there was just one single router connecting ARPANET with NSFNET there was no problem. The core gateways of ARPANET had information about all destinations and the routers inside NSFNET contained information about local destinations and used a default route to send all non-NSFNET traffic to between NSFNET and ARPANET as both of them used different matrices to measure costs. the core gateways through the router between ARPANET and NSFNET. However as multiple connections were made between the two backbones, problems arise. Which route should a packet from net1 to net2 take? &lt;b&gt;Should it be R1 or R2 or R3 or R4 or R5?&lt;/b&gt; For this some exchange of routing information between the two backbones was necessary. But, this was again a problem as how should we compare information.  &lt;/p&gt;&lt;h3&gt;Gateway-To-Gateway Protocol (GGP)&lt;/h3&gt;  This was the protocol used by the core-routers to exchange routing information among themselves. This is based on &lt;b&gt;&lt;i&gt;Distance Vector Algorithm&lt;/i&gt;&lt;/b&gt; and uses number of hops as the distance metric. This is a very poor metric as this does not take into account the load on the links and whether a link is slow or fast. A provision is made to manually increment the hop count in case a link is particularly slow.A protocol based on Shortest Path First Algorithm , known as &lt;b&gt;SPREAD&lt;/b&gt; ,was also used for the same purpose.  &lt;p align=&quot;CENTER&quot;&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec24/3.gif&quot; name=&quot;fig3&quot; align=&quot;BOTTOM&quot; border=&quot;0&quot; /&gt;&lt;/p&gt; &lt;h4&gt;Added Complexity To The Architecture Model&lt;/h4&gt; &lt;p&gt; As the number of networks and routers increased, to reduce the load on the core gateways because of the enormous amount of calculations, routing was done with some core gateways keeping complete information and the non-core gateways keeping partial information.  &lt;/p&gt;&lt;p align=&quot;CENTER&quot;&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec24/4.gif&quot; name=&quot;fig4&quot; align=&quot;BOTTOM&quot; border=&quot;0&quot; /&gt;&lt;/p&gt; &lt;p&gt; In thisarchitecture, G&lt;sub&gt;1&lt;/sub&gt; ,G&lt;sub&gt;2&lt;/sub&gt; ,G&lt;sub&gt;3&lt;/sub&gt; are all core gateways and G&lt;sub&gt;4&lt;/sub&gt; and G&lt;sub&gt;5&lt;/sub&gt; are non-core gateways. We must have a mechanism for someone to tell G&lt;sub&gt;2&lt;/sub&gt; that it is connected to net2 , net3 and net4 , besides net1. Only G&lt;sub&gt;5&lt;/sub&gt; can tell this to G&lt;sub&gt;2&lt;/sub&gt; and so we must provide for a mechanism for G&lt;sub&gt;2&lt;/sub&gt; to talk to G&lt;sub&gt;5&lt;/sub&gt; . A concept of one backbone with core gateways connected to &lt;i&gt;Autonomous Systems&lt;/i&gt; was developed. An &lt;i&gt;Autonomous system&lt;/i&gt; is a group of networks controlled by a single administrative authority. Routers within an autonomous system are free to choose their own mechanisms for discovering , propagating ,validating , and checking the consistency of routes. Each autonomous system must agree to advertise network reachability information to other autonomous systems. Each advertisement propagates through a core router. The assumption made is that most of the routers in the autonomous system have complete information about the autonomous system. One such router will be assigned the task of talking to the core gateway. &lt;/p&gt;&lt;h3&gt;Interior Gateway Protocols (IGP)&lt;/h3&gt; IGP is a type of protocols used by the routers in an autonomous system to exchange network reachability and routing information. Some of IGPs are given below. &lt;h4&gt;Routing Information Protocol (RIP)&lt;/h4&gt; &lt;p&gt; This is one of the most widely used IGP. It was developed at Berkeley. This is also known by the name of the program that  implements it, routed .This implements Distance Vector algorithm.Features of RIP: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;  RIP uses a hop count metric to measure the distance to a destination. To  compensate for differences in technologies, many RIP implementations allow   managers to configure artificially high hop  counts when advertising connections to slow networks. All routinfg  updates are broadcast. This allows all hosts on the network to know  about the routes.  &lt;/li&gt;&lt;li&gt;  To prevent routes from oscillating between two or more equal cost  paths, RIP specifies that existing routes should be retained until a  new route has strictly lower cost. Since RIP does not explicitly  detect routing loops, RIP must either assume participants can be  trusted (being part of one autonomous system) or take precautions to  prevent such loops.  &lt;/li&gt;&lt;li&gt;  To prevent instabilities, RIP must use a low value for the maximum  possible distance.RIP uses 16 as the maximum hop count. This  restricts the maximum network diameter of the system to 16.  &lt;/li&gt;&lt;li&gt;  To solve the slow convergence problem arising due to slow propagation  of routing information, RIP uses Hold Down. If a particular link is  down , any new information about that link is not accepted till some  time. This is because the router must wait till the information  aboutthe link being down propagates to another router before  accepting information from that router about that down link.  &lt;/li&gt;&lt;li&gt;  RIP runs on top of TCP/IP. RIP allows addresses to be of a maximum size  of 14 Bytes. The Distance varies from 1 to 16 (where 16 is used to  signify infinity). RIP address 0.0.0.0 denotes a default route.  There is no explicit size of the RIP message and any number of  routes can be advertized. &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;The message format is as shown: &lt;/p&gt;&lt;p align=&quot;CENTER&quot;&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec24/5.gif&quot; name=&quot;fig5&quot; align=&quot;BOTTOM&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;  &lt;h4&gt;OSPF(Open Shortest Path First )&lt;/h4&gt; &lt;p&gt; This is an Interior Gateway Protocol designed by the Internet Engineering Task Force ( IETF ). This algorithm scales better than the vector distance algorithms. This Protocol tackles several goals: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;  OSPF includes type of service(ToS) routing. So, you can installmultiple  routers to a given destination, one for each type of service. When  routing a datagram, a router running OSPF uses both the destination  address and type of service fields in the IP Header to choose a  route.  &lt;/li&gt;&lt;li&gt;  OSPF provides load balancing. If there are multiple routes to a given  destination at the same cost, OSPF distributes traffic over all the  routes equally.  &lt;/li&gt;&lt;li&gt;  OSPF allows for creation of AREA HIERARCHIES. This makes the growth of the  network easier and makes the network at a site easier to manage. Each  area is self contained, so, multiple groups within a site can  cooperate in the use of OSPF for routing.  &lt;/li&gt;&lt;li&gt;  OSPF protocol specifies that all exchanges between the routers be  authenticated. OSPF allows variety of authentication schemes, and  even allows one area to choose a different scheme from the other  areas.  &lt;/li&gt;&lt;li&gt;  To accomodate multi-access networks like ethernet, OSPF allows every  multi-access network to have a designated router( designated gateway).  &lt;/li&gt;&lt;li&gt;  To permit maximum flexibility, OSPF allows the description of a virtual  network topology that abstracts away from details of physical  connections.  &lt;/li&gt;&lt;li&gt;  OSPF also allows for routers to exchange routing information learned from  other sites. The message format distinguishes between information  acquired from external sources and information acquired from routers  interior to the site, so there is no ambiguity about the source or  reliability of routes.  &lt;/li&gt;&lt;li&gt;  It hastoo much overhead of sending LSPs but is gradually becoming popular. &lt;/li&gt;&lt;/ul&gt; &lt;p align=&quot;CENTER&quot;&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec24/6.gif&quot; name=&quot;fig6&quot; align=&quot;BOTTOM&quot; border=&quot;0&quot; /&gt;&lt;/p&gt;  &lt;h4&gt;Exterior Gateway Protocol (EGP)&lt;/h4&gt; &lt;p&gt; If two routers belonging to two different autonomous systems exchange routing information ,the protocol used is called EGP . EGP consists of: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Acquisition Request:&lt;/b&gt;   A router sends a request to another neighbour router  saying &#39;I want to talk&#39;.  &lt;/li&gt;&lt;li&gt;&lt;b&gt;Acquisition Confirm:&lt;/b&gt;   This is a positive reply to the Acquisition request.  &lt;/li&gt;&lt;li&gt;&lt;b&gt;Acquisition Refuse:&lt;/b&gt;   This is a negative response to the Acquisition request.  &lt;/li&gt;&lt;li&gt;&lt;b&gt;Cease Request:&lt;/b&gt;   This requests termination of neighbour relationship.  &lt;/li&gt;&lt;li&gt;&lt;b&gt;Cease Confirm:&lt;/b&gt;   This is a confirmation response to the Cease Request.  &lt;/li&gt;&lt;li&gt;&lt;b&gt;Hello :&lt;/b&gt;   This is used to find if the neighbour router is up or down.This  requests router to respond if alive.  &lt;/li&gt;&lt;li&gt;&lt;b&gt;I Heard You:&lt;/b&gt;   This is a response to the Hello message confirming that  the router is alive. Because it is possible for Hello or I Heard You  messages to be lost in transit, EGP uses a k-out-of-n rule to  determine whether a network is down.At least k of the last n  messages must fail for the router to declare its neighbour down.  &lt;/li&gt;&lt;li&gt;&lt;b&gt;Poll Request:&lt;/b&gt;   This is a request for network routing update.  &lt;/li&gt;&lt;li&gt;&lt;b&gt;Routing Update:&lt;/b&gt;   This conveys routing information about reachable networks  to its EGP neighbour. The routing information is the distance vector  of the reachable networks.  &lt;/li&gt;&lt;li&gt;&lt;b&gt;Error:&lt;/b&gt;   This is a response to an incorrect message. &lt;/li&gt;&lt;/ul&gt; &lt;p&gt; EGP is used only to find network reachability and not for differentiating between good and bad routes. We can only use distance metric to declare a route plausible and not for comparing it with some other route (unless the two route form part of a same autonomous system).  Since there cannot be two different routes to the same network, EGP restricts the topology of any internet to a tree structure in which a core system forms the root. There are no loops among other autonomous systems connected to it. This leads to several problems: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Univerasal connectivity fails if the core gateway system fails.  &lt;/li&gt;&lt;li&gt;EGP can advertise only one path to a given network.  &lt;/li&gt;&lt;li&gt;EGP does not support load sharing on routers between arbitrary  autonomous systems.  &lt;/li&gt;&lt;li&gt;Multiple backbone networks with multiple connections between them cannot be  handled by EGP. &lt;/li&gt;&lt;/ul&gt;  &lt;h4&gt;Border Gateway Protocol(BGP)&lt;/h4&gt; BGP is a distance-vector protocol used to communicate between different ASes. Instead of maintaining just the cost to each destination,each BGP router keeps track of the exact path used.Similarly,instead of periodically giving each neighbour its estimated cost to each destination, each BGP router tells its neighbours the path it is using.Every BGP router contains a module that examines routes to a given destination and scores them returning a number for destination to each route. Any route violating a policy constraint automatically gets a score of infinity. The router adapts a route with shortest distance.The scoring function is not a part of the BGP protocol and can be any function that the system managers want.BGP easily solves the count to infinity problem that plagues other distance-vector algorithms as whole path is known.</content><link rel='replies' type='application/atom+xml' href='http://ankitjainarain.blogspot.com/feeds/572941393870685955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/routing-in-internet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/572941393870685955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/572941393870685955'/><link rel='alternate' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/routing-in-internet.html' title='Routing in Internet'/><author><name>Ankit</name><uri>http://www.blogger.com/profile/05478322170957335992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_zckDpxGeJaU/S8qX85_LlVI/AAAAAAAAAJY/nVMcpJ7-xMw/S220/Ankit+Jainarain+(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3685716557674208478.post-5090129946824189364</id><published>2009-10-28T01:58:00.001+05:30</published><updated>2010-04-18T11:47:24.532+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Network"/><title type='text'>DNS(Continued), BOOTP, DHCP</title><content type='html'>&lt;h3&gt;Resource Record&lt;/h3&gt; A &lt;b&gt;Resource Record&lt;/b&gt; (RR)  has the following:  &lt;ul&gt;&lt;li&gt;&lt;b&gt;owner &lt;/b&gt;which is the domain name where the RR is found. &lt;/li&gt;&lt;li&gt;&lt;b&gt;type&lt;/b&gt; which is an encoded 16 bit value that specifies the type of     the resource in this resource record. It can be one of the following:       &lt;ul&gt;&lt;li&gt;&lt;b&gt;A&lt;/b&gt; a host address &lt;/li&gt;&lt;li&gt;&lt;b&gt;CNAME&lt;/b&gt; identifies the canonical name of an alias &lt;/li&gt;&lt;li&gt;&lt;b&gt;HINFO &lt;/b&gt;identifies the CPU and OS used by a host &lt;/li&gt;&lt;li&gt;&lt;b&gt;MX &lt;/b&gt;identifies a mail exchange for the domain. &lt;/li&gt;&lt;li&gt;&lt;b&gt;NS &lt;/b&gt;the authoritative name server for the domain &lt;/li&gt;&lt;li&gt;&lt;b&gt;PTR &lt;/b&gt;a pointer to another part of the domain name space &lt;/li&gt;&lt;li&gt;&lt;b&gt;SOA &lt;/b&gt;identifies the start of a zone of authority class which is         an encoded 16 bit value which identifies a protocol family or instance         of a protocol.&lt;/li&gt;&lt;/ul&gt;   &lt;/li&gt;&lt;li&gt;&lt;b&gt;class &lt;/b&gt;One of: &lt;b&gt;IN&lt;/b&gt; the Internet system or &lt;b&gt;CH&lt;/b&gt; the Chaos     system &lt;/li&gt;&lt;li&gt;&lt;b&gt;TTL&lt;/b&gt; which is the time to live of the RR. This field is a 32 bit     integer in units of seconds, an is primarily used by resolvers when they     cache RRs. The TTL describes how long a RR can be cached before it should be     discarded. &lt;/li&gt;&lt;li&gt;&lt;b&gt;RDATA&lt;/b&gt; Data in this field depends on the values of the type and     class of the RR and a description for each is as follows:     &lt;ul&gt;&lt;li&gt;for A: For the IN class, a 32 bit IP address For the CH class, a         domain name followed by a 16 bit octal Chaos address. &lt;/li&gt;&lt;li&gt;for CNAME: a domain name. &lt;/li&gt;&lt;li&gt;for MX: a 16 bit preference value (lower is better) followed by a host         name willing to act as a mail exchange for the owner domain. &lt;/li&gt;&lt;li&gt;for NS: a host name. &lt;/li&gt;&lt;li&gt;for PTR: a domain name. &lt;/li&gt;&lt;li&gt;for SOA: several fields.&lt;/li&gt;&lt;/ul&gt;   &lt;/li&gt;&lt;/ul&gt;  &lt;b&gt;Note: &lt;/b&gt;While short TTLs can be used to minimize caching, and a zero TTL prohibits caching, the realities of Internet performance suggest that these times should be on the order of days for the typical host. If a change can be anticipated, the TTL can be reduced prior to the change to minimize inconsistency during the change, and then increased back to its former value following the change. The data in the RDATA section of RRs is carried as a combination of binary strings and domain names. The domain names are frequently used as &quot;pointers&quot; to other data in the DNS. &lt;h3&gt;Aliases and Cannonical Names&lt;/h3&gt;&lt;span&gt; Some servers typically have multiple names for convenience. For example &lt;a href=&quot;http://www.iitk.ac.in/&quot; class=&quot;smarterwiki-linkify&quot;&gt;www.iitk.ac.in&lt;/a&gt; &amp;amp; yamuna.iitk.ernet.in identify the same server. In addition multiple mailboxes might be provided by some organizations. Most of these systems have a notion that one of the equivalent set of names is the canonical or primary name and all others are aliases. &lt;/span&gt;&lt;p&gt;When a name server fails to find a desired RR in the resource set associated with the domain name, it checks to see if the resource set consists of a CNAME record with a matching class. If so, the name server includes the CNAME record in the response and restarts the query at the domain name specified in the data field of the CNAME record. &lt;/p&gt;&lt;h3&gt;Name Servers&lt;/h3&gt;Name servers are the repositories of information that make up the domain database. The database is divided up into sections called zones, which are distributed among the name servers. Name servers can answer queries in a simple manner; the response can always be generated using only local data, and either contains the answer to the question or a referral to other name servers &quot;closer&quot; to the desired information. The way that the name server answers the query depends upon whether it is operating in recursive mode or iterative mode: &lt;ul&gt;&lt;li&gt;The simplest mode &lt;i&gt;for the server&lt;/i&gt; is non-recursive, since it can answer queries using only local information: the response contains an error, the answer, or a referral to some other server &quot;closer&quot; to the answer. All name servers must implement non-recursive queries. &lt;/li&gt;&lt;li&gt;The simplest mode &lt;i&gt;for the client&lt;/i&gt; is recursive, since in this mode the name server acts in the role of a resolver and returns either an error or the answer, but never referrals. This service is optional in a name server, and the name server may also choose to restrict the clients which can use recursive mode. &lt;/li&gt;&lt;/ul&gt;  &lt;h4&gt;Recursive Query vs Iterative Query&lt;/h4&gt;If the server is supposed to answer a recursive quesry then the response is either the reource record data or a error code. A server operating in this mode will never return the name of any forwarding name server but will contact the appropiate name server itself and try to get the information. &lt;p&gt;In iterative mode, on the other hand, if the server does not have the information requested locally then it return the address of some name server who might have the information about the query. It is then the responsibility of the contacting application to contact the next name server to resolve its query and do this iteratively until gets an answer or and error. &lt;/p&gt;&lt;h3&gt;Relative Names&lt;/h3&gt;In place of giving full DNS names like cu2.cse.iitk.ac.in or bhaskar.cc.iitk.ac.in one can give just cu2 or bhaskar.This can be used by the server side as well as the client side.But for this one has to manually specify these extensions in the database of the servers holding the resource records. &lt;hr color=&quot;BLACK&quot;&gt;  &lt;center&gt;&lt;h2&gt;BOOTP&lt;/h2&gt;&lt;/center&gt;The BOOTP uses UDP/IP. It is run when the machine boots. The protocol allows diskless machines to discover their IP address and the address of the server host. Additionally name of the file to be loaded from memory and executed is also supplied to the machine. This protocol is an improvement over RARP which has the follwing limitations: &lt;ol&gt;&lt;li&gt;Networks which do not have a broadcast method can&#39;t support RARP as it uses the broadcast method of the MAC layer underneath the IP layer. &lt;/li&gt;&lt;li&gt;RARP is heavily dependent on the MAC protocol.  &lt;/li&gt;&lt;li&gt;RARP just supplies the IP address corresponding to a MAC address It doesn&#39;t support respond with any more data.  &lt;/li&gt;&lt;li&gt;RARP uses the computer hardware&#39;s address to identify the machine and hence cannot be used in networks that dynamically assign hardware addresses. &lt;/li&gt;&lt;/ol&gt;  &lt;h3&gt;Events in BOOTP&lt;/h3&gt; &lt;ol&gt;&lt;li&gt;The Client broadcasts its MAC address (or other unique hardware identity number) asking for help in booting.  &lt;/li&gt;&lt;li&gt;The BOOTP Server responds with the data that specifies how the Client should be configured (pre-configured for the specific client) &lt;/li&gt;&lt;/ol&gt;  &lt;b&gt;Note: &lt;/b&gt;BOOTP doesn&#39;t use the MAC layer broadcast but uses UDP/IP.  &lt;h3&gt;Configuration Information&lt;/h3&gt; The important informations provided are: &lt;ul&gt;&lt;li&gt;IP address  &lt;/li&gt;&lt;li&gt;IP address of the default router for that particular subnet  &lt;/li&gt;&lt;li&gt;Subnet mask  &lt;/li&gt;&lt;li&gt;IP addresses of the primary and secondary nameservers &lt;/li&gt;&lt;/ul&gt;  Additionaly it may also provide: &lt;ul&gt;&lt;li&gt;Time offset from GMT  &lt;/li&gt;&lt;li&gt;The IP address of a time server  &lt;/li&gt;&lt;li&gt;The IP address of a boot server  &lt;/li&gt;&lt;li&gt;The name of a boot file (e.g. boot image for X terminals)  &lt;/li&gt;&lt;li&gt;The IP domain name for the client  &lt;/li&gt;&lt;/ul&gt; But the problem with BOOTP is that it again can&#39;t be used for the dynamic IP&#39;s as in RARP servers.For getting dynamic IP&#39;s we use DHCP. &lt;hr color=&quot;BLACK&quot;&gt; &lt;center&gt;&lt;h2&gt;DHCP (Dynamic Host Configuration Protocol)&lt;/h2&gt;&lt;/center&gt; DHCP (Dynamic Host Configuration Protocol) is a protocol that lets network administrators manage centrally and automate the assignment of Internet Protocol (IP) addresses in an organization&#39;s network. If a machine uses Internet&#39;s set of protocol (TCP/IP), each machine that can connect to the Internet needs a unique IP address. When an organization sets up its computer users with a connection to the Internet, an IP address must be assigned to each machine. Without DHCP, the IP address must be entered manually at each computer and, if computers move to another location in another part of the network, a new IP address must be entered. DHCP lets a network administrator supervise and distribute IP addresses from a central point and automatically sends a new IP address when a computer is plugged into a different place in the network. &lt;h3&gt;IP Address Allocation Mechanism&lt;/h3&gt; DHCP supports three mechanisms for IP address allocation.  &lt;ul&gt;&lt;li&gt;&lt;b&gt;Automatic allocation: &lt;/b&gt;DHCP assigns a permanent IP address to a host.  &lt;/li&gt;&lt;li&gt;&lt;b&gt;Dynamic allocation: &lt;/b&gt;DHCP assigns an IP address to a host for a limited period of time (or until the host explicitly relinquishes the   address).  &lt;/li&gt;&lt;li&gt;&lt;b&gt;Manual allocation: &lt;/b&gt;Host&#39;s IP address is assigned by the network administrator, and DHCP is used simply to convey the assigned address to the host. A particular network will use one or more of these mechanisms, depending on the policies of the network administrator. &lt;/li&gt;&lt;/ul&gt;  &lt;h3&gt;Messages Used by DHCP&lt;/h3&gt;  &lt;ul&gt;&lt;li&gt;  &lt;b&gt;DHCP Discover &lt;/b&gt;- Client broadcast to locate available servers. It is assumed atleast one of the servers will  have resources  to  fulfill the request.( may include additional pointers to      specific services required eg. particular subnet, minimum time limit etc ).&lt;/li&gt;&lt;li&gt;  &lt;b&gt;DHCP Offer - &lt;/b&gt;Server to client in response to DHCP Discover with offer of configration parameters.&lt;/li&gt;&lt;li&gt;  &lt;b&gt;DHCP Request - &lt;/b&gt;Client broadcast to servers requesting offered parameters from one server and implicitly declining offers from all others.( also important in case of lease renewal if the alloted time is about to expire ).&lt;/li&gt;&lt;li&gt;  &lt;b&gt;DHCP Decline - &lt;/b&gt;Client to server indicating configration parameters invalid.&lt;b&gt; &lt;/b&gt;&lt;/li&gt;&lt;li&gt;  &lt;b&gt;DHCP Release - &lt;/b&gt;Client to server relinquishing network address and cancelling current lease.( in case of a graceful shut down DHCP server is sent a DHCP Release by the host machine).&lt;b&gt; &lt;/b&gt;&lt;/li&gt;&lt;li&gt;  &lt;b&gt;DHCP Ack - &lt;/b&gt;Server to client with configration parameters, including committed Network address.&lt;/li&gt;&lt;li&gt; &lt;b&gt;DHCP Nack - &lt;/b&gt;Server to client refusing request for configratin parameters (eg. requested network address already allocated).&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;  &lt;h3&gt;Timers Used&lt;/h3&gt; Note that lease time is the time specified by the server for which the services have been provided to the client.  &lt;ul&gt;&lt;li&gt;&lt;b&gt;Lease Renewal Timer - &lt;/b&gt;When this timer expires machine will ask the server for more time sending a DHCP Request.&lt;/li&gt;&lt;li&gt; &lt;b&gt;Lease Rebinding Timer - &lt;/b&gt;Whenever this timer expires, we have not been receiving any response from the server and so we can assume the server is down. Thus send a DHCP Request to all the servers using IP Broadcast facility. This is only point of difference between Lease renewal and rebinding.&lt;/li&gt;&lt;li&gt; &lt;b&gt;Lease Expiry Timer - &lt;/b&gt;Whenever this timer expires, the system will have to start crashing as the host does not have a valid IP address in the network.&lt;/li&gt;      &lt;/ul&gt;  &lt;h3&gt;Timer Configuration Policy&lt;/h3&gt;The timers have this usual setting which can be configured depending upon the usage pattern of the network. An example setting has been discussed below. Lease Renewal = 50 % Lease time&lt;br /&gt;Lease Rebinding = 87.5 % Lease time&lt;br /&gt;Lease Expiry = 100 % Lease time</content><link rel='replies' type='application/atom+xml' href='http://ankitjainarain.blogspot.com/feeds/5090129946824189364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/dnscontinued-bootp-dhcp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/5090129946824189364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/5090129946824189364'/><link rel='alternate' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/dnscontinued-bootp-dhcp.html' title='DNS(Continued), BOOTP, DHCP'/><author><name>Ankit</name><uri>http://www.blogger.com/profile/05478322170957335992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_zckDpxGeJaU/S8qX85_LlVI/AAAAAAAAAJY/nVMcpJ7-xMw/S220/Ankit+Jainarain+(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3685716557674208478.post-3016217578971559360</id><published>2009-10-28T01:57:00.001+05:30</published><updated>2010-04-18T11:47:24.532+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Network"/><title type='text'>Transport Layer Protocol (TCP)</title><content type='html'>&lt;h3&gt;What is TCP?&lt;/h3&gt; &lt;p align=&quot;left&quot;&gt;TCP was specifically designed to provide a reliable end to end    byte stream over an unreliable internetwork. Each machine supporting TCP has    a TCP transport entity either a user process or part of the kernel that manages    TCP streams and interface to IP layer. A TCP entity accepts user data streams    from local processes, breaks them up into pieces not exceeding 64KB and sends    each piece as a separate IP datagram. Client Server mechanism is not necessary    for TCP to behave properly.&lt;/p&gt; &lt;p align=&quot;left&quot;&gt;The IP layer gives no guarantee that datagram will be delivered   properly, so it is up to TCP to timeout and retransmit, if needed. Duplicate,   lost and out of sequence packets are handled using the sequence number, acknowledgements,    retransmission, timers, etc to provide a reliable service. Connection is a must    for this service.Bit errors are taken care of by the CRC checksum. One difference    from usual sequence numbering is that each byte is given a number instead of    each packet. This is done so that at the time of transmission in case of loss,    data of many small packets can be combined together to get a larger packet,    and hence smaller overhead.&lt;/p&gt; &lt;p align=&quot;left&quot;&gt;TCP connection is a &lt;i&gt;duplex connection&lt;/i&gt;. That means there    is no difference between two sides once the connection is established.&lt;/p&gt;  &lt;h2&gt;&lt;a name=&quot;connection&quot;&gt;&lt;/a&gt;TCP Connection establishment&lt;/h2&gt;  &lt;p&gt;  The &quot;three-way handshake&quot; is the procedure used to establish a   connection.  This procedure normally is initiated by one TCP and   responded to by another TCP.  The procedure also works if two TCP   simultaneously initiate the procedure.  When simultaneous attempt   occurs, each TCP receives a &quot;SYN&quot; segment which carries no   acknowledgment after it has sent a &quot;SYN&quot;.  Of course, the arrival of   an old duplicate &quot;SYN&quot; segment can potentially make it appear, to the   recipient, that a simultaneous connection initiation is in progress.   Proper use of &quot;reset&quot; segments can disambiguate these cases.&lt;/p&gt; &lt;p&gt; The three-way handshake   reduces the possibility of false connections.  It is the   implementation of a trade-off between memory and messages to provide   information for this checking.&lt;/p&gt; &lt;p&gt;  The simplest three-way handshake is shown in figure below.  The   figures should be interpreted in the following way.  Each line is   numbered for reference purposes.  Right arrows (--&gt;) indicate   departure of a TCP segment from TCP A to TCP B, or arrival of a   segment at B from A.  Left arrows (&lt;--), indicate the reverse.   Ellipsis (...) indicates a segment which is still in the network   (delayed). TCP states represent the state AFTER   the departure or arrival of the segment (whose contents are shown in   the center of each line).  Segment contents are shown in abbreviated   form, with sequence number, control flags, and ACK field.  Other   fields such as window, addresses, lengths, and text have been left out   in the interest of clarity.&lt;/p&gt; &lt;p&gt;  &lt;/p&gt;  &lt;pre&gt;      TCP A                                                TCP B&lt;br /&gt;&lt;br /&gt; 1.  CLOSED                                               LISTEN&lt;br /&gt;&lt;br /&gt; 2.  SYN-SENT    --&gt; &lt;seq=100&gt;&lt;ctl=syn&gt;               --&gt; SYN-RECEIVED&lt;br /&gt;&lt;br /&gt; 3.  ESTABLISHED &lt;-- &lt;seq=300&gt;&lt;ack=101&gt;&lt;ctl=syn,ack&gt;  &lt;-- SYN-RECEIVED&lt;br /&gt;&lt;br /&gt; 4.  ESTABLISHED --&gt; &lt;seq=101&gt;&lt;ack=301&gt;&lt;ctl=ack&gt;       --&gt; ESTABLISHED&lt;br /&gt;&lt;br /&gt; 5.  ESTABLISHED --&gt; &lt;seq=101&gt;&lt;ack=301&gt;&lt;ctl=ack&gt;&lt;data&gt; --&gt; ESTABLISHED&lt;br /&gt;&lt;br /&gt;         Basic 3-Way Handshake for Connection Synchronisation&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;  &lt;p&gt;  In line 2 of above figure, TCP A begins by sending a SYN segment   indicating that it will use sequence numbers starting with sequence   number 100.  In line 3, TCP B sends a SYN and acknowledges the SYN it   received from TCP A.  Note that the acknowledgment field indicates TCP   B is now expecting to hear sequence 101, acknowledging the SYN which   occupied sequence 100. &lt;/p&gt; &lt;p&gt;  At line 4, TCP A responds with an empty segment containing an ACK for   TCP B&#39;s SYN; and in line 5, TCP A sends some data.  Note that the   sequence number of the segment in line 5 is the same as in line 4   because the ACK does not occupy sequence number space (if it did, we   would wind up ACKing ACK&#39;s!).&lt;br /&gt;&lt;/p&gt; &lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec14/tcp_connection.gif&quot; alt=&quot;&quot; height=&quot;438&quot; width=&quot;640&quot; /&gt;&lt;br /&gt;&lt;/p&gt; &lt;p&gt;  Simultaneous initiation is only slightly more complex, as is shown in   figure below.  Each TCP cycles from CLOSED to SYN-SENT to SYN-RECEIVED to   ESTABLISHED.&lt;/p&gt; &lt;p&gt;  &lt;/p&gt;  &lt;pre&gt;      TCP A                                            TCP B&lt;br /&gt;&lt;br /&gt; 1.  CLOSED                                           CLOSED&lt;br /&gt;&lt;br /&gt; 2.  SYN-SENT     --&gt; &lt;seq=100&gt;&lt;ctl=syn&gt;              ...&lt;br /&gt;&lt;br /&gt; 3.  SYN-RECEIVED &lt;-- &lt;seq=300&gt;&lt;ctl=syn&gt;              &lt;-- SYN-SENT&lt;br /&gt;&lt;br /&gt; 4.               ... &lt;seq=100&gt;&lt;ctl=syn&gt;              --&gt; SYN-RECEIVED&lt;br /&gt;&lt;br /&gt; 5.  SYN-RECEIVED --&gt; &lt;seq=100&gt;&lt;ack=301&gt;&lt;ctl=syn,ack&gt; ...&lt;br /&gt;&lt;br /&gt; 6.  ESTABLISHED  &lt;-- &lt;seq=300&gt;&lt;ack=101&gt;&lt;ctl=syn,ack&gt; &lt;-- SYN-RECEIVED&lt;br /&gt;&lt;br /&gt; 7.               ... &lt;seq=101&gt;&lt;ack=301&gt;&lt;ctl=ack&gt;     --&gt; ESTABLISHED&lt;br /&gt;&lt;br /&gt;               Simultaneous Connection Synchronisation&lt;br /&gt;&lt;/pre&gt;  &lt;b&gt;Question:&lt;/b&gt; Why is three-way handshake needed? What is the problem if we send only two packets and consider the connection established? What will be the problem from application&#39;s point of view? Will the packets be delivered to the wrong application?&lt;br /&gt;&lt;p&gt;&lt;u&gt;Problem regarding 2-way handshake&lt;/u&gt;&lt;br /&gt;The only real problem with a 2-way handshake is that duplicate packets from a  previous connection( which has been closed) between the two nodes might still be  floating on the network. After a SYN has been sent to the responder, it might  receive a duplicate packet of a previous connection and it would regard it as a  packet from the current connection which would be undesirable.&lt;br /&gt;Again spoofing is another issue of concern if a two way handshake is used.Suppose there is a node C which sends connection request to B saying that it is A.Now B sends an ACK to A which it rejects &amp;amp; asks B to close connection.Beteween these two events C can send a lot of packets which will be delievered to the application..&lt;/p&gt; &lt;table&gt; &lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec14/fig2.jpg&quot; alt=&quot;&quot; height=&quot;288&quot; width=&quot;288&quot; /&gt;&lt;/td&gt; &lt;td&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec14/fig3.jpg&quot; alt=&quot;&quot; height=&quot;288&quot; width=&quot;288&quot; /&gt;&lt;/td&gt; &lt;td&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec14/fig4.jpg&quot; alt=&quot;&quot; height=&quot;288&quot; width=&quot;363&quot; /&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;br /&gt;The first two figures show how a three way handshake  deals with problems of duplicate/delayed connection requests and duplicate/delayed connection acknowledgements in the network.The third figure highlights the problem of spoofing associated with a two way handshake. &lt;p&gt; &lt;b&gt;Some Conventions&lt;/b&gt;&lt;br /&gt;1. The ACK contains  &#39;x+1&#39; if the sequence number received is &#39;x&#39;.&lt;br /&gt;2. If &#39;ISN&#39; is the sequence number of the connection packet then 1st data packet has the seq number &#39;ISN+1&#39;&lt;br /&gt;3. Seq numbers are 32 bit.They are byte seq number(every byte has a seq number).With a packet 1st seq  number and length of the packet is sent.&lt;br /&gt;4. Acknowlegements are cummulative.&lt;br /&gt;5. Acknowledgements have a seq number of their own but with a length 0.So the next data packet have the  seq number same as ACK.&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;b&gt; Connection Establish&lt;/b&gt;&lt;/p&gt; &lt;center&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec14/establish.conn.gif&quot; border=&quot;0&quot; /&gt; &lt;/center&gt; &lt;ul&gt;&lt;li&gt; The sender sends a SYN packet with serquence numvber say &#39;x&#39;. &lt;/li&gt;&lt;li&gt;The receiver on receiving SYN packet responds with SYN packet with sequence number &#39;y&#39; and ACK with seq number &#39;x+1&#39; &lt;/li&gt;&lt;li&gt;On receiving both SYN and ACK packet, the sender responds with ACK packet with seq number &#39;y+1&#39; &lt;/li&gt;&lt;li&gt;The receiver when receives ACK packet, initiates the connection. &lt;/li&gt;&lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Connection Release&lt;/b&gt;&lt;/p&gt;  &lt;center&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec14/close.conn.gif&quot; border=&quot;0&quot; /&gt;&lt;/center&gt; &lt;ul&gt;&lt;li&gt;The initiator sends a FIN with the current sequence and acknowledgement    number.&lt;/li&gt;&lt;li&gt;The responder on receiving this informs the application program that it    will receive no more data and sends an acknowledgement of the packet. The    connection is now closed from one side.&lt;/li&gt;&lt;li&gt;Now the responder will follow similar steps to close the connection from    its side. Once this is done the connection will be fully closed.&lt;/li&gt;&lt;/ul&gt;    &lt;p&gt; &lt;/p&gt;&lt;hr /&gt; &lt;b&gt;Image References&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt; &lt;a href=&quot;http://www.renoir.vill.edu/%7Ecassel/4900/transport.html&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://www.renoir.vill.edu/~cassel/4900/transport.html&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://www.uga.edu/%7Eucns/lans/tcpipsem/close.conn.gif&quot; class=&quot;smarterwiki-linkify&quot;&gt;www.uga.edu/~ucns/lans/tcpipsem/close.conn.gif&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://www.uga.edu/%7Eucns/lans/tcpipsem/establish.conn.gif&quot; class=&quot;smarterwiki-linkify&quot;&gt;www.uga.edu/~ucns/lans/tcpipsem/establish.conn.gif&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://ankitjainarain.blogspot.com/feeds/3016217578971559360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/transport-layer-protocol-tcp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/3016217578971559360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/3016217578971559360'/><link rel='alternate' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/transport-layer-protocol-tcp.html' title='Transport Layer Protocol (TCP)'/><author><name>Ankit</name><uri>http://www.blogger.com/profile/05478322170957335992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_zckDpxGeJaU/S8qX85_LlVI/AAAAAAAAAJY/nVMcpJ7-xMw/S220/Ankit+Jainarain+(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3685716557674208478.post-7046266661648623232</id><published>2009-10-28T01:55:00.001+05:30</published><updated>2010-04-18T11:47:24.532+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Network"/><title type='text'>Computer Networks (CS425)- ARP,RARP,ICMP Protocols</title><content type='html'>&lt;h3&gt;Address Resolution Protocol&lt;/h3&gt; If a machine talks to another machine in the same network, it requires its physical or MAC address. But ,since the application has given the destination&#39;s IP address it requires some mechanism to bind  the IP address with its MAC address.This is done through Address Resolution protocol (ARP).IP address  of the destination node is broadcast and the destination node informs the source of its MAC address. &lt;ol&gt;&lt;li&gt;Assume broadcast nature of LAN &lt;/li&gt;&lt;li&gt;Broadcast IP address of the destination &lt;/li&gt;&lt;li&gt;Destination replies it with its MAC address. &lt;/li&gt;&lt;li&gt;Source maintains a cache of IP and MAC address bindings &lt;/li&gt;&lt;/ol&gt; But this means that every time machine A wants to send packets to machine B, A has to send an ARP packet to  resolve the MAC address of B and hence this will increase the traffic load too much, so to reduce the communication cost computers that use ARP maintains a cache of recently acquired IP_to_MAC address bindings, i.e. they dont have to use ARP repeatedly. ARP Refinements Several refinements of ARP are possible: When machine A wants to send packets to macine B, it is possible that machine B is going to send packets to machine A in the near future.So to avoid ARP for machine B, A should put its IP_to_MAC address binding in the special packet while requesting for the MAC address of B. Since A broadcasts its initial request for the MAC address of B, every machine on the network should extract and store in its cache the IP_to_MAC address binding of A When a new machine appears on the network (e.g. when an operating system reboots) it can broadcast its IP_to_MAC address binding so that all other machines can store it in their caches. This will eliminate a lot of ARP packets by all other machines, when they want to communicate with this new machine. &lt;br /&gt;&lt;br /&gt;Example displaying the use of Address Resolution Protocol:&lt;br /&gt;&lt;br /&gt;Consider a scenario where a computer tries to contact some remote machine using ping program, assuming that there  has been no exchange of IP datagrams previously between the two machines and therefore arp packet must be sent to identify the MAC address of the remote machine.&lt;br /&gt;&lt;center&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec13/arp.gif&quot; /&gt;&lt;/center&gt; The arp request message (who is A.A.A.A tell B.B.B.B where the two are IP addresses) is broadcast on the local area network with an Ethernet protocol type 0x806. The packet is discarded by all the machines except the target machine which responds with an arp response message (A.A.A.A is hh:hh:hh:hh:hh:hh where hh:hh:hh:hh:hh:hh is the Ethernet source address). This packet is unicast to the machine with IP address B.B.B.B. Since the arp request message included the hardware address (Ethernet source address) of the requesting computer, target machine doesn&#39;t require another arp message to figure it out. &lt;hr /&gt; &lt;h3&gt;Reverse Address Resolution Protocol&lt;/h3&gt; RARP is a protocol by which a physical machine in a local area network can request to learn its IP address from a  gateway server&#39;s Address Resolution Protocol table or cache. This is needed since the machine may not have permanently attacded disk where it can store its IP address permanently. A network administrator creates a table in a local area network&#39;s gateway router that maps the physical machine (or Medium Access Control - MAC) addresses to corresponding  Internet Protocol addresses. When a new machine is set up, its RARP client program requests from the RARP server on the router to be sent its IP address. Assuming that an entry has been set up in the router table, the RARP server will return the IP address to the machine which can store it for future use.&lt;br /&gt;&lt;br /&gt;Detailed Mechanism&lt;br /&gt;&lt;br /&gt;Both the machine that issues the request and the server that responds use physical network addresses during their  brief communication. Usually, the requester does not know the physical address. So, the request is broadcasted to all the machines on the network. Now, the requester must identify istelf uniquely to the server. For this either  CPU serial number or the machine&#39;s physical network address can be used. But using the physical address as a unique  id has two advantages. &lt;ul&gt;&lt;li&gt;These addresses are always available and do not have to be bound into bootstrap code. &lt;/li&gt;&lt;li&gt;Because the identifying information depends on the network and not on the CPU vendor, all machines on a given  network will supply unique identifiers.  &lt;/li&gt;&lt;/ul&gt; &lt;b&gt;Request:&lt;/b&gt;&lt;br /&gt; Like an ARP message, a RARP message is sent from one machine to the another encapsulated in the data portion of a network frame. An ethernet frame carrying a RARP request has the usual preamle, Ethernet source and destination  addresses, and packet type fields in front of the frame. The frame conatins the value 8035 (base 16) to identify the contents of the frame as a RARP message. The data portion of the frame contains the 28-octet RARP message. The sender braodcasts a RARP request that specifies itself as both the sender and target machine, and supplies its physical network address in the target hardware address field. All machines on the network receive the request, but only those authorised to supply the RARP services process the request and send a reply, such machines are known informally as RARP servers.  For RARP to succeed, the network must contain at least one RARP server. &lt;br /&gt;&lt;b&gt;Reply: &lt;/b&gt;&lt;br /&gt;Servers answers request by filling in the target protocol address field, changing the message type from request  to reply, and sending the reply back directly to the machine making the request.&lt;br /&gt;&lt;br /&gt;&lt;b&gt; Timing RARP Transactions&lt;/b&gt;&lt;br /&gt;Since RARP uses the physical network directly, no other protocol software will time the response or retransmit the request. RARP software must handle these tasks. Some workstations that rely on RARP to boot, choose to retry indefinitely until the receive a response. Other implementations announce failure after only a few tries to avoid flooding the network with unnecessary broadcast.&lt;br /&gt;&lt;br /&gt;&lt;b&gt; Mulitple RARP Servers&lt;/b&gt;&lt;br /&gt;Advantage: More reliability. Diadvantage: Overloading may result when all servers respond. So, to get away with disadvantage we have primary and secondary servers. Each machine that makes RARP request is assigned a primary server. Normally, the primary server responds but if it fails, then requester may time out and rebroadcast the request.Whenever a secondary server receives a second copy of the request within a short time of the first, it responds. But, still there might be a problem that all secondary servers respond, thus overloading the network. So, the solution adopted is to avoid having all secondary servers transmit responses simultaneously. Each secondary server that receives the request computes a random delay and then sends a response.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Drawbacks of RARP&lt;/b&gt; &lt;ul&gt;&lt;li&gt;Since it operates at low level, it requires direct addresss to the network which makes it difficult for an application programmer to build a server. &lt;/li&gt;&lt;li&gt;It doesn&#39;t fully utilizes the capability of a network like ethernet which is enforced to send a minimum packet size since the reply from the server contains only one small piece of information, the 32-bit internet address. &lt;/li&gt;&lt;/ul&gt; RARP is formally described in RFC903. &lt;hr /&gt; &lt;h3&gt;ICMP&lt;/h3&gt; This protocol discusses a mechanism that gateways and hosts use to communicate control or error information.The Internet protocol provides unreliable,connectionless datagram service,and that a datagram travels from gateway to gateway until it reaches one that can deliver it directly to its final destination. If a gateway cannot route or deliver a datagram,or if the gateway detects an unusual condition, like network congestion, that affects its ability to forward the datagram, it needs to instruct the original source to take action to avoid or correct the problem. The Internet Control Message Protocol allows gateways to send error or control messages to other gateways or hosts;ICMP provides communication between the Internet Protocol software on one machine and the Internet Protocol software on another. This is a special purpose message mechanism added by the designers to the TCP/IP protocols. This is to allow gateways in an internet to report errors or provide information about unexpecter circumstances. The IP  protocol itself contains nothing to help the sender test connectivity or learn about failures.  &lt;br /&gt;&lt;br /&gt;&lt;b&gt; Error Reporting vs Error Correction&lt;/b&gt;&lt;br /&gt;ICMP only reports error conditions to the original source; the source must relate errors to individual application  programs and take action to correct problems. It provides a way for gateway to report the error It does not fully  specify the action to be taken for each possible error. ICMP is restricted to communicate with the original source but not intermediate sources. &lt;br /&gt;&lt;b&gt;ICMP Message Delivery&lt;/b&gt;&lt;br /&gt;ICMP messages travel across the internet in the data portion of an IP datagram,which itself travels across the  internet in the data portion of an IP datagram,which itself travels across each physical network in the data portion of a frame.Datagrams carryin ICMP messages are routed exactly like datagrams carrying information for users;there is  no additional reliability or priority.An exception is made to the error handling procedures if an IP  datagram carrying an ICMP messages are not generated for errors that result from datagrams carrying ICMP error messages. &lt;br /&gt;&lt;b&gt;ICMP Message Format&lt;/b&gt;&lt;br /&gt;It has three fields;an 8-bit integer message TYPE field that identifies the message,an 8-bit CODE field that provides  further information about the message type,and a 16-bit CHECKSUM field(ICMP uses the same additive checksum algorithm  as IP,but the ICMP checksum only covers the ICMP message).In addition , ICMP messages that report errors always include the header and first 64 data bits of the datagram causing the problem. The ICMP TYPE field defines the meaning of the message as well as its format.&lt;br /&gt;&lt;b&gt;The Types include :&lt;/b&gt; &lt;p&gt;&lt;span style=&quot;color:black;&quot;&gt;&lt;b&gt;TYPE FIELD   &lt;/b&gt;                      &lt;b&gt; ICMP MESSAGE TYPE&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;        0                                             ECHO REPLY&lt;br /&gt;        3                                              DESTINATION UNREACHABLE&lt;br /&gt;        4                                             SOURCE QUENCH&lt;br /&gt;        5                                             REDIRECT(CHANGE A ROUTE)&lt;br /&gt;        8                                             ECHO REQUEST&lt;br /&gt;       11                                            TIME EXCEEDED FOR A DATAGRAM &lt;br /&gt;       12                                            PARAMETER PROBLEM ON A DATAGRAM&lt;br /&gt;       13                                            TIMESTAMP REQUEST&lt;br /&gt;       14                                            TIMESTAMP REPLY&lt;br /&gt;       15                                             INFORMATION REQUEST(OBSOLETE)&lt;br /&gt;       16                                              INFORMATION REPLY(OBSOLETE)&lt;br /&gt;       17                                            ADDRESS MASK REQUEST&lt;br /&gt;       18                                            ADDRESS MASK REPLY TESTING DESTINATION&lt;br /&gt;&lt;br /&gt;&lt;b&gt; Reachabilty and Status  :&lt;/b&gt;&lt;br /&gt;TCP/IP protocols provide facilities to help network managers or users identify network problems.One of the most frequently used debugging tools invokes the ICMP echo request and echo reply messages.A host or gateway sends an ICMP echo request message to a specified destination.Any machine that receives an echo request formulates an echo reply and returns to the original sender.The request contains an optional data area; the reply contains a  copy of the data sent in the request.The echo request and associated reply can be used to test whether a destination is reachable and responding.Because both the request and reply travel in IP datagrams,successful receipt of a reply verifies that major pieces of the transport system work.&lt;br /&gt;1.1 : IP software on the source must route the datagram&lt;br /&gt;2.2 : Intermediate gateways between the source and destination must be operating and must route datagram correctly.&lt;br /&gt;3.3 : The destination machine must be running , and both ICMP and IP software must be working.&lt;br /&gt;4.4 : Routes in gateways along the return path must be correct.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Echo Request and Reply&lt;/b&gt;&lt;br /&gt;The field listed OPTIONAL DATA is a variable length field that contains data to be returned to the sender.An echo reply always returns exactly the same data as was received in the request.Fields IDENTIFIER and SEQUENCE NUMBER  are used by the sender to match replies to request.The value of the TYPE field specifies whether the message is a  request(8) or a reply(0).  &lt;br /&gt;&lt;b&gt;&lt;br /&gt;Reports of Unreachable Destinations&lt;/b&gt;&lt;br /&gt;The Code field in a destination unreachable message contains an integer that further describes th problem.Possible values are :  &lt;/p&gt;&lt;p&gt;&lt;b&gt;CODE VALUE                                 MEANING&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;           0                                 NETWORK UNREACHABLE&lt;br /&gt;           1                                 HOST UNREACHABLE&lt;br /&gt;           2                                  PROTOCOL UNREACHABLE&lt;br /&gt;           3                                 PORT UNREACHABLE&lt;br /&gt;           4                                 FRAGMENTATION NEEDED AND DF SET&lt;br /&gt;           5                                 SOURCE ROOT FAILED&lt;br /&gt;           6                                DESTINATION NETWORK UNKNOWN &lt;br /&gt;           7                                DESTINATION HOST UNKNOWN&lt;br /&gt;           8                                 SOURCE HOST ISOLATED&lt;br /&gt;           9                                COMMUNICATION WITH DESTINATION NETWORK ADMINISTRATIVELY PROHIBITED&lt;br /&gt;         10                                COMMUNICATION WTTH DESTINATION HOST ADMINISTRATIVELY PROHIBITED&lt;br /&gt;         11                                 NETWORK UNREACHABLE FOR TYPE OF SERVICE&lt;br /&gt;         12                                HOST UNREACHABLE FOR TYPE OF SERVICE&lt;br /&gt;&lt;br /&gt;Whenever an error prevents a gateway from routing or delivering a datagram, the gateway sends a destination unreachable  message back to the source and then drops the datagram.Network unreachable errors usually imply roting failures ; host  unreachable errors imply delivery failures.Because the message contains a short prefix of the datagram that caused the  problem, the source will know exactly which address is unreachable. Destinations may be unreachable because hardware is temporarily out of service, because the sender specified a  nonexistent destination address, or because the gateway  does not  have a route to the destination network. Although gateways send destination unreachable messages if they cannot route or deliver datagrams, not all  such errors can be detected.If the datagram contains the source route option with an incorrect route, it may trigger a source route failure message.If a gateway needs to fragment adatagram but the &quot;don&#39;t fragment&quot; bit is set, the gateway sends a fragmentation needed message back to the source. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Congestion and Datagram Flow Control :&lt;/b&gt;&lt;br /&gt;Gateways cannot reserve memory or communication resources in advance of  receiving  datagrams because IP is connectionless. The result is, gateways  can overrun with traffic, a condition known as congestion.Congestion arises due to two reasons : &lt;/p&gt;&lt;ol&gt;&lt;li&gt;A high speed computer may be able to generate traffic faster than a network can transfer it . &lt;/li&gt;&lt;li&gt;If many computers sumultaneously need to send datagrams through a single gateway , the gateway can experience congestion, even though no single source causes the problem. &lt;/li&gt;&lt;/ol&gt; When datagrams arrive too quickly for a host or a gateway to process, it enqueues them in memory temporarily.If the  traffic continues, the host or gateway eventually exhausts menory ans must discard additional datagrams that arrive. A machine uses ICMP source quench  messages to releive congestion. A source quench message is a request for the source to reduce its current rate of  datagram transmission. &lt;br /&gt;There is no ICMP messages to reverse the effect of a source quench.&lt;br /&gt;&lt;b&gt;Source Quench :&lt;/b&gt;&lt;br /&gt;Source quench messages have a field that contains a datagram prefix in addition to the  usual ICMP TYPE,CODE,CHECKSUM fields.Congested gateways send one source quench message each time they discard a datagram; the datagram prefix  identifies the datagram that was dropped. &lt;br /&gt;&lt;br /&gt;&lt;b&gt; Route Change Requests From Gateways : &lt;/b&gt;&lt;br /&gt;Internet routing tables are initialized by hosts from a configuration file at system startup, and  system administrators seldom make routing changes during normal operations.Gateways exchange routing information periodically to accomadate network changes and keep their routes up-to-date.The general rule is , Gateways  are assumed to know correct routes; host begin wint minimal routing information and learn  new routes from gateways. The GATEWAY INTERNET ADDRESS field contains the address of a  gateway   that the host is to use to reach the destination mentioned in the datagram header. The INTERNET HEADER field contains IP header plus the next 64 bits of the datagram that triggered the message.The CODE field of an ICMP redirect message further specifies how to interpret the destination address, based on values  assigned as follows :&lt;br /&gt;&lt;br /&gt;Code Value                           Meaning&lt;br /&gt;0                                   REDIRECT DATAGRAMS FOR THE NET&lt;br /&gt;1                                   REDIRECT DATAGRAMS FOR THE HOST&lt;br /&gt;2                                   REDIRECT DATAGRAMS FOR THE TYPE OF SERVICE AND NET&lt;br /&gt;3                                   REDIRECT DATAGRAMS FOR THE TYPE OF SERVICE AND HOST&lt;br /&gt;Gateways   only send ICMP redirect requests to hosts and not to other gateways.  &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Detecting Circular or Excessively Long Routes : &lt;/b&gt;&lt;br /&gt;Internet gateways compute a next hop using local tables, errors in routing tables can produce a routing cycle for  some destination. A routing cycle can consist of  two gateways that each route a datagram for  a  particular   destination  to other, or it can consist of several gateways.To prevent datagrams from circling forever in a TCP/IP internet, each IP datagram contains a time-to-live counter , sometimes called a hop count. A gateway decrements the time-to-live counter whenever it processes the datagram and discards the datagram when  the count reaches zero. Whenever a gateway discards a datagram because its hop count has reached zero or because a timeout occured while  waiting for fragments of a datagram ,it sends  an ICMP time exceeded message back to the datagram&#39;s source, A gateway sends this message whenever a datagram is discarded because the time-to-live field in the datagram header  has reached zero or because its reassembly timer expired while waiting for fragments. &lt;br /&gt;The code field explains the nature of the timeout :&lt;br /&gt;Code Value                           Meaning&lt;br /&gt;0                                    TIME-TO-LIVE COUNT EXCEEDED&lt;br /&gt;1                                    FRAGMENT REASSEMBLY TIME EXCEEDED&lt;br /&gt;Fragment reassembly refers to the task of collecting all  the fragments from a datagram.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Reprting Other Problems :&lt;/b&gt;&lt;br /&gt;When a gateway or host  finds problems with a datagram not covered by previous ICMP error messages it sends a parameter  problem message to the original source.To make the message unambigous, the sender uses the POINTER field in the message  header to identify the octet in the datagram that caused the problem. Code 1 is used to report that a required option is  missing; the POINTER field is not used for code 1. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Clock Synchronization nd Transmit the estimation : &lt;/b&gt;&lt;br /&gt;ICMP messages are used to obtain the time from another machine.A requesting machine sends an ICMP timestamp request message to another machine, asking that the second machine return its current value of the time of day. The receiving machine returns a timestamp reply back to the machine making the request. TCP/IP protocol suite includes several protocols that can be used to synchronize clocks. This is one of the simplest techniques used by TCP/IP. The TYPE field idintifies the message as a request (13 ) or a reply ( 14 ); the IDENTIFIER and SEQUENCE NUMBER fields are used by the source to associate replies with requests.The ORIGINATE TIMESTAMP filed is filled in by the original sendet just before the packet is transmitted, the RECEIVE TIMESTAMP field is filled immediately upon receipt of a request, and the TRANSMIT TIMESTAMP field is filled immediately before the reply is transmitted. Hosts use the three timestamp fields to compute estimates of the delay time between them and to synchronize their clock.A host can compute the total time required for a request to travel to a destination, be transformed into a reply, and return. In practice, accurate estimation of round-trip delay can be difficult and substantially restirct the utility of ICMP timestanp messages.To obtain an accurate estimate to round trip delay one must take many measurements and average them.&lt;br /&gt;&lt;br /&gt;&lt;b&gt; Obtaining a Subnet Mask:&lt;/b&gt;&lt;br /&gt;Subnet addressing is used by the hosts to extract some bits in the hostid portion of their IP address to identify a  physical network.To participate in subnet addressing, hosts need to know which bits of the 32-bit internet address  correspond to the physical network and which correspond to host identifiers. The information needed to interpret the address is represented in a 32-bit quatity called the subnet mask. To learn the subnet mask used for the local network, a machine can send an address mask request message to a gateway and receive an address mask reply. The TYPE field in an address mask message specifies whether the message is a request ( 17 ) or a reply ( 18 ). A reply contains the nework&#39;s subnet address mask in the ADDRESS MASK field.The IDENTIFIER  and SEQUENCE NUMBER fields allow a machine to associate replies with requests.</content><link rel='replies' type='application/atom+xml' href='http://ankitjainarain.blogspot.com/feeds/7046266661648623232/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/computer-networks-cs425-arprarpicmp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/7046266661648623232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/7046266661648623232'/><link rel='alternate' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/computer-networks-cs425-arprarpicmp.html' title='Computer Networks (CS425)- ARP,RARP,ICMP Protocols'/><author><name>Ankit</name><uri>http://www.blogger.com/profile/05478322170957335992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_zckDpxGeJaU/S8qX85_LlVI/AAAAAAAAAJY/nVMcpJ7-xMw/S220/Ankit+Jainarain+(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3685716557674208478.post-1738539309394547704</id><published>2009-10-28T01:54:00.001+05:30</published><updated>2010-04-18T11:47:24.533+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Network"/><title type='text'>Computer Networks (CS425)- Routing Algorithms</title><content type='html'>&lt;h3&gt;Non-Hierarchical Routing&lt;/h3&gt; In this type of routing, interconnected networks are viewed as a single network, where bridges, routers and gateways are just additional nodes. &lt;ul&gt;&lt;li&gt;Every node keeps information about every other node in the network &lt;/li&gt;&lt;li&gt;In case of adaptive routing, the routing calculations are done and updated for all the nodes.  &lt;/li&gt;&lt;/ul&gt;The above two are also the disadvantages of non-hierarchical routing, since the table sizes and the routing calculations become too large as the networks get bigger. So this type of routing is feasible only for small networks. &lt;h3&gt;Hierarchical Routing&lt;/h3&gt;This is essentially a &#39;Divide and Conquer&#39; strategy. The network is divided into different regions and a router for a particular region knows only about its own domain and other routers. Thus, the network is viewed at two levels: &lt;ol&gt;&lt;li&gt;The Sub-network level, where each node in a region has information about its peers in the same region and about the region&#39;s interface with other regions. Different regions may have different &#39;local&#39; routing algorithms. Each local algorithm handles the traffic between nodes of the same region and also directs the outgoing packets to the appropriate interface. &lt;/li&gt;&lt;li&gt;The Network Level, where each region is considered as a single node connected to its interface nodes. The routing algorithms at this level handle the routing of packets between two interface nodes, and is isolated from intra-regional transfer. &lt;/li&gt;&lt;/ol&gt;Networks can be organized in hierarchies of many levels; e.g. local networks of a city at one level, the cities of a country at a level above it, and finally the network of all nations. &lt;p&gt; In Hierarchical routing, the interfaces need to store information about: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;All nodes in its region which are at one level below it.  &lt;/li&gt;&lt;li&gt;Its peer interfaces.  &lt;/li&gt;&lt;li&gt;At least one interface at a level above it, for outgoing packages. &lt;/li&gt;&lt;/ul&gt; Advantages of Hierarchical Routing :  &lt;ul&gt;&lt;li&gt;Smaller sizes of routing tables.  &lt;/li&gt;&lt;li&gt;Substantially lesser calculations and updates of routing tables.  &lt;/li&gt;&lt;/ul&gt; Disadvantage :  &lt;ul&gt;&lt;li&gt;Once the hierarchy is imposed on the network, it is followed and possibility of direct paths is ignored. This may lead to sub optimal routing. &lt;/li&gt;&lt;/ul&gt;  &lt;h3&gt;Source Routing&lt;/h3&gt; Source routing is similar in concept to virtual circuit routing. It is implemented as under: &lt;ul&gt;&lt;li&gt;Initially, a path between nodes wishing to communicate is found out, either by flooding or by any other suitable method. &lt;/li&gt;&lt;li&gt;This route is then specified in the header of each packet routed between these two nodes. A route may also be specified partially, or in terms of some intermediate hops. &lt;/li&gt;&lt;/ul&gt; Advantages: &lt;ul&gt;&lt;li&gt;Bridges do not need to lookup their routing tables since the path is already specified in the packet itself. &lt;/li&gt;&lt;li&gt;The throughput of the bridges is higher, and this may lead to better utilization of bandwidth, once a route is established. &lt;/li&gt;&lt;/ul&gt; Disadvantages: &lt;ul&gt;&lt;li&gt;Establishing the route at first needs an expensive search method like flooding.  &lt;/li&gt;&lt;li&gt;To cope up with dynamic relocation of nodes in a network, frequent updates of tables are required, else all packets would be sent in wrong direction. This too is expensive. &lt;/li&gt;&lt;/ul&gt;  &lt;h3&gt;Policy Based Routing&lt;/h3&gt;In this type of routing, certain restrictions are put on the type of packets accepted and sent. e.g.. The IIT- K router may decide to handle traffic pertaining to its departments only, and reject packets from other routes. This kind of routing is used for links with very low capacity or for security purposes. &lt;h3&gt;Shortest Path Routing&lt;/h3&gt;Here, the central question dealt with is &#39;How to determine the optimal path for routing ?&#39; Various algorithms are used to determine the optimal routes with respect to some predetermined criteria. A network is represented as a graph, with its terminals as nodes and the links as edges. A &#39;length&#39; is associated with each edge, which represents the cost of using the link for transmission. Lower the cost, more suitable is the link. The cost is determined depending upon the criteria to be optimized. Some of the important ways of determining the cost are: &lt;ul&gt;&lt;li&gt;&lt;b&gt;Minimum number of hops: &lt;/b&gt;If each link is given a unit cost, the shortest path is the one with minimum number of hops. Such a route is easily obtained by a breadth first search method. This is easy to implement but ignores load, link capacity etc. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Transmission and Propagation Delays: &lt;/b&gt;If the cost is fixed as a function of transmission and propagation delays, it will reflect the link capacities and the geographical distances. However these costs are essentially static and do not consider the varying load conditions. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Queuing Delays: &lt;/b&gt;If the cost of a link is determined through its queuing delays, it takes care of the varying load conditions, but not of the propagation delays. &lt;/li&gt;&lt;/ul&gt;Ideally, the cost parameter should consider all the above mentioned factors, and it should be updated periodically to reflect the changes in the loading conditions. However, if the routes are changed according to the load, the load changes again. This feedback effect between routing and load can lead to undesirable oscillations and sudden swings. &lt;h3&gt;Routing Algorithms&lt;/h3&gt; As mentioned above, the shortest paths are calculated using suitable algorithms on the graph representations of the networks.  Let the network be represented by graph G ( V, E ) and let the number of nodes be &#39;N&#39;.   For all the algorithms discussed below, the costs associated with the links are assumed to be positive.  A node has zero cost w.r.t itself.  Further, all the links are assumed to be symmetric, i.e.  if  d&lt;sub&gt;i,j  &lt;/sub&gt; =  cost of link  from node i to node j, then d &lt;sub&gt;i,j&lt;/sub&gt; = d &lt;sub&gt;j,i&lt;/sub&gt; .  The graph is assumed to be complete. If there exists no edge between two nodes, then a link of infinite cost is assumed.  The algorithms given below find costs of the paths from all nodes to a particular node; the problem is equivalent to finding the cost of paths from a source to all destinations.  &lt;h3&gt;Bellman-Ford Algorithm&lt;/h3&gt; This algorithm iterates on the number of edges in a path to obtain the shortest path. Since the number of hops possible is limited (cycles are implicitly not allowed),  the algorithm terminates giving the shortest path.  &lt;p&gt;&lt;b&gt;Notation: &lt;/b&gt;&lt;br /&gt;    d &lt;sub&gt;i,j &lt;/sub&gt;        =   Length of path between nodes i and j,  indicating the cost of the link.&lt;br /&gt;    h            =   Number of hops.&lt;br /&gt;    D[ i,h]   =   Shortest path length from node i to node 1, with upto &#39;h&#39; hops.&lt;br /&gt;    D[ 1,h]  =   0  for all h .&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Algorithm :&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;    Initial condition  :                 D[ i, 0]  =  infinity,  for all  i  ( i != 1 )  &lt;/p&gt;&lt;p&gt;    Iteration             :                 D[i, h+1]  = min&lt;sub&gt; &lt;/sub&gt;{ d&lt;sub&gt;i,j&lt;/sub&gt; + D[j,h] }     over all values of j .  &lt;/p&gt;&lt;p&gt;    Termination        :                The algorithm terminates when  &lt;/p&gt;&lt;p&gt;                                                D[i, h]  =  D [ i,  h+1]     for all  i .  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Principle: &lt;/b&gt;&lt;br /&gt;For zero hops,  the minimum length path has length of infinity, for every node.  For one hop the shortest-path length associated with a node is equal to the length of the edge between  that node and node 1. Hereafter, we increment the number of hops allowed, (from h to h+1 ) and find out whether a shorter path exists through each of the  other nodes.  If  it exists, say through node &#39;j&#39;,  then its length must be the sum of the lengths between these two nodes (i.e.  d&lt;sub&gt;i,j&lt;/sub&gt; ) and the shortest path between j and 1 obtainable in upto h paths. If such a path doesn&#39;t exist, then the path length remains the same. The algorithm is guaranteed to terminate, since there are utmost N nodes, and so N-1 paths. It has time complexity of O ( N&lt;sup&gt;3&lt;/sup&gt; ) .  &lt;/p&gt;&lt;h3&gt;Dijkstra&#39;s Algorithm&lt;/h3&gt;  &lt;p&gt; &lt;b&gt;Notation:&lt;/b&gt;&lt;br /&gt;D&lt;sub&gt;i &lt;/sub&gt;  =     Length of shortest path from node &#39;i&#39; to node 1.&lt;br /&gt;d&lt;sub&gt;i,j &lt;/sub&gt; =     Length of path between nodes i and j .  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Algorithm&lt;/b&gt;&lt;br /&gt;Each node j  is  labeled with Dj, which is an estimate of cost of path from node j to node 1. Initially, let the estimates be infinity, indicating that nothing is known about the paths.  We now iterate on the length of paths, each time revising our estimate to lower values, as we obtain them. Actually, we divide the nodes into two groups ; the first one, called set P contains the nodes whose shortest distances have been found, and the other Q containing all the remaining nodes. Initially P contains only the node 1. At each step,  we select the node that has minimum cost path to node 1. This node is transferred to set P.  At the first step, this corresponds to shifting the node closest to 1 in P. Its minimum cost to node 1 is now known. At the next step, select the next closest node from set Q and update the labels corresponding to each node using : &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;center&gt;D&lt;sub&gt;j &lt;/sub&gt;   =   min [ D&lt;sub&gt;j&lt;/sub&gt;  ,  D&lt;sub&gt;i&lt;/sub&gt;  +  d&lt;sub&gt;j,i &lt;/sub&gt;  ]&lt;/center&gt;&lt;/b&gt;  &lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color:#000000;&quot;&gt;Finally, after N-1 iterations, the  shortest paths for all nodes are known, and the algorithm terminates.&lt;br /&gt;   &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color:#000000;&quot;&gt;&lt;b&gt;Principle&lt;/b&gt;&lt;br /&gt;Let the closest node to 1 at some step be i. Then i is shifted to P. Now, for each node j , the closest path to 1 either passes through i or it doesn&#39;t.  In the first case Dj remains the same. In the second case, the revised estimate of D&lt;sub&gt;j&lt;/sub&gt; is the sum D&lt;sub&gt;i &lt;/sub&gt; +  d&lt;sub&gt;i,j &lt;/sub&gt;. So we take the minimum of these two cases and update D&lt;sub&gt;j &lt;/sub&gt;accordingly.  As each of the nodes get transferred to set P, the estimates get closer to the lowest possible value. When a node is transferred, its shortest path length is known. So finally all the nodes are in P and the D&lt;sub&gt;j &lt;/sub&gt;&#39;s represent the minimum costs.  The algorithm is guaranteed to terminate in N-1 iterations and  its complexity is O( N&lt;sup&gt;2&lt;/sup&gt; ).  &lt;/span&gt;&lt;/p&gt;&lt;h3&gt;&lt;span style=&quot;color:#000000;&quot;&gt;The Floyd Warshall Algorithm&lt;/span&gt;&lt;/h3&gt; &lt;span style=&quot;color:#000000;&quot;&gt;This algorithm iterates on the set of nodes that can be used as intermediate nodes on paths. This set grows from a single node ( say node 1 ) at start to finally all the nodes of the graph.  At each iteration, we find the shortest path using given set of nodes as intermediate nodes, so that finally all the shortest paths are obtained.  &lt;/span&gt;&lt;p&gt;&lt;span style=&quot;color:#000000;&quot;&gt;&lt;b&gt;Notation&lt;/b&gt;&lt;br /&gt;D&lt;sub&gt;i,j&lt;/sub&gt; [n]     =     Length of shortest  path between the nodes i and j using only the nodes 1,2,....n as intermediate nodes.  &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color:#000000;&quot;&gt;&lt;b&gt;Initial Condition&lt;/b&gt;&lt;br /&gt;Di,j[0]     =     d&lt;sub&gt;i,j &lt;/sub&gt;       for all nodes i,j .  &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color:#000000;&quot;&gt;&lt;b&gt;Algorithm&lt;/b&gt;&lt;br /&gt;Initially,  n = 0.      At each iteration, add next node to n. i.e.   For  n = 1,2, .....N-1 ,&lt;br /&gt;&lt;br /&gt;Di,j[n + 1]    =  min  {  D&lt;sub&gt;i,j&lt;/sub&gt;[n] ,   D&lt;sub&gt;i,n+1&lt;/sub&gt;[n]  + D&lt;sub&gt;n+1,j&lt;/sub&gt;[n]  }  &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color:#000000;&quot;&gt;&lt;b&gt;Principle&lt;/b&gt;&lt;br /&gt;Suppose the shortest path between i and j using nodes 1,2,...n is known. Now, if node n+1 is allowed to be an intermediate node, then the shortest path under new conditions either passes through node n+1 or it doesn&#39;t. If it does not pass through the node n+1, then D&lt;sub&gt;i,j&lt;/sub&gt;[n+1] is same as D&lt;sub&gt;i,j&lt;/sub&gt;[n] .  Else, we find the cost of the new route, which is obtained from the sum,  D&lt;sub&gt;i,n+1&lt;/sub&gt;[n] + D&lt;sub&gt;n+1,j&lt;/sub&gt;[n]. So we take the minimum of these two cases at each step.  After adding all the nodes to the set of intermediate nodes, we obtain the shortest paths between all pairs of nodes together.  The complexity of  Floyd-Warshall algorithm is O ( N&lt;sup&gt;3&lt;/sup&gt; ).  &lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;color:#000000;&quot;&gt;It is observed that all the three algorithms mentioned above give comparable performance, depending upon the exact topology of the network.   &lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://ankitjainarain.blogspot.com/feeds/1738539309394547704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/computer-networks-cs425-routing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/1738539309394547704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/1738539309394547704'/><link rel='alternate' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/computer-networks-cs425-routing.html' title='Computer Networks (CS425)- Routing Algorithms'/><author><name>Ankit</name><uri>http://www.blogger.com/profile/05478322170957335992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_zckDpxGeJaU/S8qX85_LlVI/AAAAAAAAAJY/nVMcpJ7-xMw/S220/Ankit+Jainarain+(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3685716557674208478.post-4626088171976644852</id><published>2009-10-28T01:52:00.003+05:30</published><updated>2010-04-18T11:47:24.533+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Network"/><title type='text'>Network Layer(cont) - Routing Algorithms Classification</title><content type='html'>&lt;p&gt; The network layer is concerned with getting packets from the source all the way to the destnation. The packets may require to make many hops at the intermediate routers while reaching the destination. This is the lowest layer that deals with end to end transmission. In order to achieve its goals, the network later must know about the topology of the communication network. It must also take care to choose routes to avoid overloading of some of the communication lines while leaving others idle. The main functions performed by the network layer are as follows: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Routing &lt;/li&gt;&lt;li&gt;Congestion Control &lt;/li&gt;&lt;li&gt;Internetwokring &lt;/li&gt;&lt;/ul&gt;  &lt;h3&gt;Routing&lt;/h3&gt;Routing is the process of forwarding of a packet in a network so that it reaches its intended destination. The main goals of routing are: &lt;ol&gt;&lt;li&gt;&lt;b&gt;Correctness: &lt;/b&gt;The routing should be done properly and correctly so that the packets may reach their proper destination. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Simplicity: &lt;/b&gt;The routing should be done in a simple manner so that the overhead is as low as possible. With increasing complexity of the routing algorithms the overhead also increases. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Robustness: &lt;/b&gt;Once a major network becomes operative, it may be expected to run continuously for years without any failures. The algorithms designed for routing should be robust enough to handle hardware and software failures and should be able to cope with changes in the topology and traffic without requiring all jobs in all hosts to be aborted and the network rebooted every time some router goes down. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Stability: &lt;/b&gt;The routing algorithms should be stable under all possible circumstances. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Fairness: &lt;/b&gt;Every node connected to the network should get a fair chance of transmitting their packets. This is generally done on a first come first serve basis. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Optimality: &lt;/b&gt;The routing algorithms should be optimal in terms of throughput and minimizing mean packet delays. Here there is a trade-off and one has to choose depending on his suitability. &lt;/li&gt;&lt;/ol&gt;  &lt;h3&gt;Classification of Routing Algorithms&lt;/h3&gt; The routing algorithms may be classified as follows:  &lt;ol&gt;&lt;li&gt;&lt;b&gt;Adaptive Routing Algorithm: &lt;/b&gt;These algorithms change their routing decisions to reflect changes in the topology and in traffic as well. These get their routing information from adjacent routers or from all routers. The optimization parameters are the distance, number of hops and estimated transit time. This can be further classified as follows: &lt;ol&gt;&lt;li&gt;&lt;b&gt;Centralized: &lt;/b&gt;In this type some central node in the network gets entire information about the network topology, about the traffic and about other nodes. This then transmits this information to the respective routers. The advantage of this is that only one node is required to keep the information. The disadvantage is that if the central node goes down the entire network is down, i.e. single point of failure. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Isolated: &lt;/b&gt;In this method the node decides the routing without seeking information from other nodes. The sending node does not know about the status of a particular link. The disadvantage is that the packet may be send through a congested route resulting in a delay. Some examples of this type of algorithm for routing are: &lt;ul&gt;&lt;li&gt;&lt;b&gt;Hot Potato: &lt;/b&gt;When a packet comes to a node, it tries to get rid of it as fast as it can, by putting it on the shortest output queue without regard to where that link leads. A variation of this algorithm is to combine static routing with the hot potato algorithm. When a packet arrives, the routing algorithm takes into account both the static weights of the links and the queue lengths. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Backward Learning: &lt;/b&gt;In this method the routing tables at each node gets modified by information from the incoming packets. One way to implement backward learning is to include the identity of the source node in each packet, together with a hop counter that is incremented on each hop. When a node receives a packet in a particular line, it notes down the number of hops it has taken to reach it from the source node. If the previous value of hop count stored in the node is better than the current one then nothing is done but if the current value is better then the value is updated for future use. The problem with this is that when the best route goes down then it cannot recall the second best route to a particular node. Hence all the nodes have to forget the stored informations periodically and start all over again. &lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;li&gt;&lt;b&gt;Distributed: &lt;/b&gt;In this the node receives information from its neighbouring nodes and then takes the decision about which way to send the packet. The disadvantage is that if in between the the interval it receives information and sends the paket something changes then the packet may be delayed. &lt;/li&gt;&lt;/ol&gt;&lt;p&gt; &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Non-Adaptive Routing Algorithm: &lt;/b&gt;These algorithms do not base their routing decisions on measurements and estimates of the current traffic and topology. Instead the route to be taken in going from one node to the other is computed in advance, off-line, and downloaded to the routers when the network is booted. This is also known as static routing. This can be further classified as: &lt;ol&gt;&lt;li&gt;&lt;b&gt;Flooding: &lt;/b&gt;Flooding adapts the technique in which every incoming packet is sent on every outgoing line except the one on which it arrived. One problem with this method is that packets may go in a loop. As a result of this a node may receive several copies of a particular packet which is undesirable. Some techniques adapted to overcome these problems are as follows: &lt;ul&gt;&lt;li&gt;&lt;b&gt;Sequence Numbers: &lt;/b&gt;Every packet is given a sequence number. When a node receives the packet it sees its source address and sequence number. If the node finds that it has sent the same packet earlier then it will not transmit the packet and will just discard it. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Hop Count: &lt;/b&gt;Every packet has a hop count associated with it. This is decremented(or incremented) by one by each node which sees it. When the hop count becomes zero(or a maximum possible value) the packet is dropped. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Spanning Tree: &lt;/b&gt;The packet is sent only on those links that lead to the destination by constructing a spanning tree routed at the source. This avoids loops in transmission but is possible only when all the intermediate nodes have knowledge of the network topology. &lt;/li&gt;&lt;/ul&gt;Flooding is not practical for general kinds of applications. But in cases where high degree of robustness is desired such as in military applications, flooding is of great help. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Random Walk: &lt;/b&gt;In this method a packet is sent by the node to one of its neighbours randomly. This algorithm is highly robust. When the network is highly interconnected, this algorithm has the property of making excellent use of alternative routes. It is usually implemented by sending the packet onto the least queued link. &lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;/ol&gt;  &lt;h3&gt;Delta Routing&lt;/h3&gt; Delta routing is a hybrid of the centralized and isolated routing algorithms. Here each node computes the cost of each line (i.e some functions of the delay, queue length, utilization, bandwidth etc) and periodically sends a packet to the central node giving it these values which then computes the &lt;b&gt;k&lt;/b&gt; best paths from node &lt;b&gt;i&lt;/b&gt; to node &lt;b&gt;j&lt;/b&gt;. Let &lt;b&gt;Cij1&lt;/b&gt; be the cost of the best &lt;b&gt;i-j&lt;/b&gt; path, &lt;b&gt;Cij2&lt;/b&gt; the cost of the next best path and so on.If &lt;b&gt;Cijn - Cij1 &lt;&gt;, (&lt;b&gt;Cijn&lt;/b&gt; - cost of &lt;b&gt;n&#39;th&lt;/b&gt;  best &lt;b&gt;i-j&lt;/b&gt; path, &lt;b&gt;delta&lt;/b&gt; is some constant) then path &lt;b&gt;n&lt;/b&gt; is regarded equivalent to the best &lt;b&gt;i-j&lt;/b&gt; path since their cost differ by so little. When &lt;b&gt;delta -&gt; 0&lt;/b&gt; this algorithm becomes centralized routing and when &lt;b&gt;delta -&gt; infinity&lt;/b&gt; all the paths become equivalent.  &lt;/b&gt;&lt;h3&gt;&lt;b&gt;Multipath Routing&lt;/b&gt;&lt;/h3&gt;&lt;b&gt;In the above algorithms it has been assumed that there is a single best path between any pair of nodes and that all traffic between them should use it. In many networks however there are several paths between pairs of nodes that are almost equally good. Sometimes in order to improve the performance multiple paths between single pair of nodes are used. This technique is called multipath routing or bifurcated routing. In this each node maintains a table with one row for each possible destination node. A row gives the best, second best, third best, etc outgoing line for that destination, together with a relative weight. Before forwarding a packet, the node generates a random number and then chooses among the alternatives, using the weights as probabilities. The tables are worked out manually and loaded into the nodes before the network is brought up and not changed thereafter. &lt;/b&gt;&lt;h3&gt;&lt;b&gt;Hierarchical Routing&lt;/b&gt;&lt;/h3&gt;&lt;b&gt;In this method of routing the nodes are divided into regions based on hierarchy. A particular node can communicate with nodes at the same hierarchial level or the nodes at a lower level and directly under it. Here, the path from any source to a destination is fixed and is exactly one if the heirarchy is a tree. &lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://ankitjainarain.blogspot.com/feeds/4626088171976644852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/network-layercont-routing-algorithms.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/4626088171976644852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/4626088171976644852'/><link rel='alternate' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/network-layercont-routing-algorithms.html' title='Network Layer(cont) - Routing Algorithms Classification'/><author><name>Ankit</name><uri>http://www.blogger.com/profile/05478322170957335992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_zckDpxGeJaU/S8qX85_LlVI/AAAAAAAAAJY/nVMcpJ7-xMw/S220/Ankit+Jainarain+(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3685716557674208478.post-7907569180045296624</id><published>2009-10-28T01:50:00.001+05:30</published><updated>2010-04-18T11:47:24.533+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Network"/><title type='text'>Network Layer</title><content type='html'>&lt;h3&gt;What is Network Layer?&lt;/h3&gt; The network layer is concerned with getting packets from the source all the way to the destination. The packets may require to make many hops at the intermediate routers while reaching the destination. This is the lowest layer that deals with end to end transmission. In order to achieve its goals, the network layer must know about the topology of the communication network. It must also take care to choose routes to avoid overloading of some of the communication lines while leaving others idle. The network layer-transport layer interface frequently is the interface between the carrier and the customer, that is the boundary of the subnet. The functions of this layer include : &lt;ol&gt;&lt;li&gt;Routing - The process of transferring packets received from the Data Link Layer of the source network to the Data  Link Layer of the correct destination network is called routing. Involves decision making at each intermediate node on where to send the packet next so that it eventually reaches its destination. The node which makes this choice is called a router. For routing we require some mode of addressing which is recognized by the Network Layer. This addressing is  different from the MAC layer addressing. &lt;/li&gt;&lt;li&gt;Inter-networking - The network layer is the same across all physical networks (such as Token-Ring and Ethernet).  Thus, if two physically different networks have to communicate, the packets that arrive at the Data Link Layer of the  node which connects these two physically different networks, would be stripped of their headers and passed to the  Network Layer. The network layer would then pass this data to the Data Link Layer of the other physical network.. &lt;/li&gt;&lt;li&gt;Congestion Control - If the incoming rate of the packets arriving at any router is more than the outgoing rate, then congestion is said to occur. Congestion may be caused  by many factors.  If suddenly, packets begin arriving on many input lines and all need the same output line, then a queue will build up. If there is insufficient memory to  hold all of them, packets will be lost. But even if routers have an infinite amount of memory, congestion gets worse, because by the time packets reach to the front of the queue, they have already timed out (repeatedly), and duplicates have been sent. All these packets are dutifully forwarded to the next router, increasing the load all the way to the destination. Another reason for congestion are slow processors. If the router&#39;s CPUs are slow at performing the  bookkeeping tasks required of them, queues can build up, even though there is excess line capacity. Similarly,  low-bandwidth lines can also cause congestion. &lt;/li&gt;&lt;/ol&gt; We will now look at these function one by one. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Addressing Scheme&lt;/b&gt;&lt;br /&gt;     IP addresses are of 4 bytes and consist of :&lt;br /&gt;i) The network address, followed by&lt;br /&gt;ii) The host address&lt;br /&gt;The first part identifies a network on which the host resides and the second part identifies the particular host on  the given network. Some nodes which have more than one interface to a network must be assigned separate internet  addresses for each interface. This multi-layer addressing makes it easier to find and deliver data to the destination. A fixed size for each of these would lead to wastage or under-usage that is either there will be too many network  addresses and few hosts in each (which causes problems for routers who route based on the network address) or there  will be very few network addresses and lots of hosts (which will be a waste for small network requirements). Thus,  we do away with any notion of fixed sizes for the network and host addresses.&lt;br /&gt;We classify networks as follows:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;Large Networks :&lt;/b&gt; 8-bit network address and 24-bit host address. There are approximately 16 million hosts per network and a maximum of 126 ( 2^7 - 2 ) Class A networks can be defined. The calculation requires that 2 be subtracted because 0.0.0.0 is reserved for use as the default route and 127.0.0.0 be reserved for the loop back function. Moreover each  Class A network can support a maximum of 16,777,214 (2^24 - 2) hosts per network. The host calculation requires that 2 be subtracted because all 0&#39;s are reserved to identify the network itself and all 1s are reserved for broadcast addresses. The reserved numbers may not be assigned to individual hosts. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Medium Networks :&lt;/b&gt; 16-bit network address and 16-bit host address. There are approximately 65000 hosts per network and a maximum of 16,384 (2^14) Class B networks can be defined with up to (2^16-2) hosts per network. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Small networks :&lt;/b&gt; 24-bit network address and 8-bit host address. There are approximately 250 hosts per network. &lt;/li&gt;&lt;/ol&gt;You might think that Large and Medium networks are sort of a waste as few corporations/organizations are large enough to have 65000 different hosts. (By the way, there are very few corporations in the world with even close to 65000 employees, and even in these corporations it is highly unlikely that each employee has his/her own computer connected to the network.) Well, if you think so, you&#39;re right. This decision seems to have been a mistak &lt;p align=&quot;left&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;Address Classes&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;         &lt;dl&gt;&lt;div align=&quot;left&quot;&gt;             &lt;dt&gt;The IP specifications divide addresses into the following              classes :&lt;/dt&gt;           &lt;/div&gt;&lt;/dl&gt;         &lt;ul&gt;&lt;li&gt;           &lt;div align=&quot;left&quot;&gt;             Class A - For large networks&lt;table border=&quot;1&quot; height=&quot;12&quot; width=&quot;439&quot;&gt;                &lt;tbody&gt;&lt;tr&gt;                 &lt;td align=&quot;center&quot; height=&quot;12&quot; width=&quot;18&quot;&gt;0&lt;/td&gt;                 &lt;td align=&quot;center&quot; height=&quot;12&quot; width=&quot;377&quot;&gt;7 bits of the network                  address&lt;/td&gt;                 &lt;td align=&quot;center&quot; height=&quot;12&quot; width=&quot;319&quot;&gt;24 bits of host                  address&lt;/td&gt;               &lt;/tr&gt;             &lt;/tbody&gt;&lt;/table&gt;             &lt;dd&gt;  &lt;/dd&gt;            &lt;/div&gt;           &lt;/li&gt;&lt;li&gt;           &lt;div align=&quot;left&quot;&gt;             Class B - For medium networks&lt;table border=&quot;1&quot; height=&quot;12&quot; width=&quot;442&quot;&gt;               &lt;tbody&gt;&lt;tr&gt;                 &lt;td align=&quot;center&quot; height=&quot;12&quot; width=&quot;18&quot;&gt;1&lt;/td&gt;                 &lt;td align=&quot;center&quot; height=&quot;12&quot; width=&quot;18&quot;&gt;0&lt;/td&gt;                  &lt;td align=&quot;center&quot; height=&quot;12&quot; width=&quot;398&quot;&gt;14 bits of the                  network address&lt;/td&gt;                 &lt;td align=&quot;center&quot; height=&quot;12&quot; width=&quot;301&quot;&gt;16 bits of host                  address&lt;/td&gt;               &lt;/tr&gt;             &lt;/tbody&gt;&lt;/table&gt;             &lt;dd&gt;  &lt;/dd&gt;           &lt;/div&gt;           &lt;/li&gt;&lt;li&gt;           &lt;div align=&quot;left&quot;&gt;             Class C - For small networks&lt;table border=&quot;1&quot; height=&quot;12&quot; width=&quot;445&quot;&gt;               &lt;tbody&gt;&lt;tr&gt;                 &lt;td align=&quot;center&quot; height=&quot;12&quot; width=&quot;18&quot;&gt;1&lt;/td&gt;                 &lt;td align=&quot;center&quot; height=&quot;12&quot; width=&quot;18&quot;&gt;1&lt;/td&gt;                 &lt;td align=&quot;center&quot; height=&quot;12&quot; width=&quot;18&quot;&gt;0&lt;/td&gt;                  &lt;td align=&quot;center&quot; height=&quot;12&quot; width=&quot;399&quot;&gt;21 bits of the                  network address&lt;/td&gt;                 &lt;td align=&quot;center&quot; height=&quot;12&quot; width=&quot;301&quot;&gt;8 bits of host                  address&lt;/td&gt;               &lt;/tr&gt;             &lt;/tbody&gt;&lt;/table&gt;             &lt;dd&gt;  &lt;/dd&gt;           &lt;/div&gt;           &lt;/li&gt;&lt;li&gt;           &lt;div align=&quot;left&quot;&gt;             Class D - For multi-cast messages ( multi-cast to a &quot;group&quot; of              networks )&lt;table border=&quot;1&quot; height=&quot;12&quot; width=&quot;445&quot;&gt;               &lt;tbody&gt;&lt;tr&gt;                 &lt;td align=&quot;center&quot; height=&quot;12&quot; width=&quot;18&quot;&gt;1&lt;/td&gt;                 &lt;td align=&quot;center&quot; height=&quot;12&quot; width=&quot;18&quot;&gt;1&lt;/td&gt;                  &lt;td align=&quot;center&quot; height=&quot;12&quot; width=&quot;18&quot;&gt;1&lt;/td&gt;                 &lt;td align=&quot;center&quot; height=&quot;12&quot; width=&quot;18&quot;&gt;0&lt;/td&gt;                 &lt;td align=&quot;center&quot; height=&quot;12&quot; width=&quot;427&quot;&gt;28 bits for some sort                  of group address&lt;/td&gt;               &lt;/tr&gt;             &lt;/tbody&gt;&lt;/table&gt;             &lt;dd&gt;  &lt;/dd&gt;           &lt;/div&gt;            &lt;/li&gt;&lt;li&gt;           &lt;div align=&quot;left&quot;&gt;             Class E - Currently unused, reserved for potential uses in the              future&lt;table border=&quot;1&quot; height=&quot;12&quot; width=&quot;448&quot;&gt;               &lt;tbody&gt;&lt;tr&gt;                 &lt;td align=&quot;center&quot; height=&quot;12&quot; width=&quot;18&quot;&gt;1&lt;/td&gt;                 &lt;td align=&quot;center&quot; height=&quot;12&quot; width=&quot;18&quot;&gt;1&lt;/td&gt;                  &lt;td align=&quot;center&quot; height=&quot;12&quot; width=&quot;18&quot;&gt;1&lt;/td&gt;                 &lt;td align=&quot;center&quot; height=&quot;12&quot; width=&quot;18&quot;&gt;1&lt;/td&gt;                 &lt;td align=&quot;center&quot; height=&quot;12&quot; width=&quot;430&quot;&gt;28 bits&lt;/td&gt;               &lt;/tr&gt;             &lt;/tbody&gt;&lt;/table&gt;             &lt;p&gt; &lt;/p&gt;&lt;/div&gt;           &lt;/li&gt;&lt;/ul&gt;             &lt;h3&gt;Internet Protocol&lt;/h3&gt; Special Addresses : There are some special IP addresses :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Broadcast Addresses They are of two types :&lt;br /&gt;(i) Limited Broadcast : It consists of all 1&#39;s, i.e., the address is 255.255.255.255 . It is used only on the LAN, and not for any external network.&lt;br /&gt;(ii) Directed Broadcast : It consists of the network number + all other bits as1&#39;s. It reaches the router corresponding to the network number, and from there it broadcasts to all the nodes in the network. This method is a major security problem, and is not used anymore. So now if we find that all the bits are 1 in the host no. field, then the packet is simply dropped. Therefore, now we can only do broadcast in our own network using Limited Broadcast. &lt;/li&gt;&lt;li&gt;Network ID = 0&lt;br /&gt;It means we are referring to this network and for local broadcast we make the host ID zero. &lt;/li&gt;&lt;li&gt;Host ID = 0&lt;br /&gt;This is used to refer to the entire network in the routing table. &lt;/li&gt;&lt;li&gt;Loop-back Address&lt;br /&gt;Here we have addresses of the type 127.x.y.z It goes down way upto the IP layer and comes back to the application layer on the same host. This is used to test network applications before they are used commercially. &lt;/li&gt;&lt;/ol&gt; &lt;b&gt;Subnetting&lt;/b&gt;&lt;br /&gt;Sub netting means organizing hierarchies within the network by dividing the host ID as per our network. For example  consider the network ID : 150.29.x.y&lt;br /&gt;We could organize the remaining 16 bits in any way, like :&lt;br /&gt;4 bits - department&lt;br /&gt;4 bits - LAN&lt;br /&gt;8 bits - host&lt;br /&gt;This gives some structure to the host IDs. This division is not visible to the outside world. They still see just the network number, and host number (as a whole). The network will have an internal routing table which stores information  about which router to send an address to. Now consider the case where we have : 8 bits - subnet number, and 8 bits - host number. Each router on the network  must know about all subnet numbers. This is called the subnet mask. We put the network number and subnet number bits  as 1 and  the host bits as 0. Therefore, in this example the subnet mask becomes : 255.255.255.0 . The hosts also need to know the subnet mask when they send a packet. To find if two addresses are on the same subnet, we can AND source address with subnet mask, and destination address with with subnet mask, and see if the two results  are the same. The basic reason for sub netting was avoiding broadcast. But if at the lower level, our switches are smart enough to send directed messages, then we do not need sub netting. However, sub netting has some security  related advantages. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Supernetting&lt;/b&gt;&lt;br /&gt;This is moving towards class-less addressing. We could say that the network number is 21 bits ( for 8 class C networks ) or say that it is 24 bits and 7 numbers following that. For example : a.b.c.d / 21 This means only look at the first 21 bits as the network address.&lt;br /&gt;&lt;br /&gt;&lt;b&gt; Addressing on IITK Network&lt;/b&gt;&lt;br /&gt; If we do not have connection with the outside world directly then we could have Private IP addresses ( 172.31 )  which are not to be publicised and routed to the outside world. Switches will make sure that they do not broadcast  packets with such addressed to the outside world. The basic reason for implementing subnetting was to avoid broadcast. So in our case we can have some subnets for security and other reasons although if the switches could do the routing properly, then we do not need subnets. In the IITK network we have three subnets -CC, CSE building are two subnets and the rest of the campus is one subset &lt;p&gt;&lt;u&gt;&lt;b&gt;Packet Structure&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;   &lt;div align=&quot;center&quot;&gt;     &lt;center&gt;     &lt;table style=&quot;border-collapse: collapse;&quot; id=&quot;AutoNumber1&quot; border=&quot;2&quot; bordercolor=&quot;#111111&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; width=&quot;60%&quot;&gt;        &lt;tbody&gt;&lt;tr&gt;         &lt;td width=&quot;13%&quot;&gt;         &lt;p align=&quot;center&quot;&gt;Version Number (4 bits)&lt;/p&gt;&lt;/td&gt;         &lt;td width=&quot;12%&quot;&gt;         &lt;p align=&quot;center&quot;&gt;Header Length (4 bits)&lt;/p&gt;&lt;/td&gt;         &lt;td width=&quot;25%&quot;&gt;         &lt;p align=&quot;center&quot;&gt;Type of Service (8 bits)&lt;/p&gt;&lt;/td&gt;          &lt;td colspan=&quot;2&quot; width=&quot;50%&quot;&gt;         &lt;p align=&quot;center&quot;&gt;Total Length (16 bits)&lt;/p&gt;&lt;/td&gt;       &lt;/tr&gt;       &lt;tr&gt;         &lt;td colspan=&quot;3&quot; width=&quot;50%&quot;&gt;         &lt;p align=&quot;center&quot;&gt;ID (16 bits)&lt;/p&gt;&lt;/td&gt;         &lt;td width=&quot;10%&quot;&gt;         &lt;p align=&quot;center&quot;&gt;Flags (3bits)&lt;/p&gt;&lt;/td&gt;          &lt;td width=&quot;25%&quot;&gt;         &lt;p align=&quot;center&quot;&gt;Flag Offset (13 bits)&lt;/p&gt;&lt;/td&gt;       &lt;/tr&gt;       &lt;tr&gt;         &lt;td colspan=&quot;2&quot; width=&quot;25%&quot;&gt;         &lt;p align=&quot;center&quot;&gt;Time To Live (8 bits)&lt;/p&gt;&lt;/td&gt;         &lt;td width=&quot;25%&quot;&gt;         &lt;p align=&quot;center&quot;&gt;Protocol (8 bits)&lt;/p&gt;&lt;/td&gt;          &lt;td colspan=&quot;2&quot; width=&quot;50%&quot;&gt;         &lt;p align=&quot;center&quot;&gt;Header Checksum (16 bits)&lt;/p&gt;&lt;/td&gt;       &lt;/tr&gt;       &lt;tr&gt;         &lt;td colspan=&quot;5&quot; width=&quot;100%&quot;&gt;         &lt;p align=&quot;center&quot;&gt;Source (32 bits)&lt;/p&gt;&lt;/td&gt;       &lt;/tr&gt;       &lt;tr&gt;          &lt;td colspan=&quot;5&quot; width=&quot;100%&quot;&gt;         &lt;p align=&quot;center&quot;&gt;Destination (32 bits)&lt;/p&gt;&lt;/td&gt;       &lt;/tr&gt;       &lt;tr&gt;         &lt;td colspan=&quot;5&quot; width=&quot;100%&quot;&gt;         &lt;dl&gt;&lt;div align=&quot;center&quot;&gt;             &lt;center&gt;              &lt;dt&gt;Options&lt;/dt&gt;             &lt;/center&gt;           &lt;/div&gt;&lt;/dl&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;     &lt;/center&gt;    &lt;/div&gt;   &lt;dl&gt;&lt;dt&gt;&lt;i&gt;Version Number : &lt;/i&gt;The current version is      Version 4 (0100).&lt;/dt&gt;&lt;/dl&gt; &lt;ol&gt;&lt;li&gt; &lt;b&gt;Header Length :&lt;/b&gt; We could have multiple sized headers so we need this field. Header will always be a multiple of 4bytes and so we can have a maximum length of the field as 15, so the maximum size of the header is 60 bytes ( 20 bytes are mandatory ). &lt;/li&gt;&lt;li&gt;&lt;b&gt; Type Of Service (ToS) :&lt;/b&gt; This helps the router in taking the right routing decisions. The structure is :&lt;br /&gt;&lt;b&gt;First three bits :&lt;/b&gt; They specify the precedences i.e. the priority of the packets.&lt;br /&gt;&lt;b&gt;Next three bits :&lt;/b&gt; &lt;ul&gt;&lt;li&gt;D bit - D stands for delay. If the D bit is set to 1, then this means that the application is delay sensitive, so we should try to route the packet with minimum delay. &lt;/li&gt;&lt;li&gt;T bit - T stands for throughput. This tells us that this particular operation is throughput sensitive. &lt;/li&gt;&lt;li&gt;R bit - R stands for reliability. This tells us that we should route this packet through a more reliable network. &lt;/li&gt;&lt;/ul&gt; &lt;b&gt;Last two bits: &lt;/b&gt;The last two bits are never used. Unfortunately, no router in this world looks at these bits and so no application sets them nowadays. The second word is meant for handling fragmentations. If a link cannot transmit large packets, then we fragment the packet and put sufficient information in the header for recollection at the destination. &lt;/li&gt;&lt;li&gt;&lt;b&gt;ID Field :&lt;/b&gt; The source and ID field together will represent the fragments of a unique packet. So each fragment will have a different ID. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Offset :&lt;/b&gt;  It is a 13 bit field that represents where in the packet, the current fragment starts. Each bit  represents 8 bytes of the packet. So the packet size can be at most 64 kB. Every fragment except the last one must have its size in bytes as a multiple of 8 in order to ensure compliance with this structure. The reason why the position of a fragment is given as an offset value instead of simply numbering each packet is because refragmentation may occur  somewhere on the path to the other node. Fragmentation, though supported by IPv4 is not encouraged. This is because if even one fragment is lost the entire  packet needs to be discarded. A quantity M.T.U (Maximum Transmission Unit) is defined for each link in the route. It  is the size of the largest packet that can be handled by the link. The Path-M.T.U is then defined as the size of the  largest packet that can be handled by the path. It is the smallest of all the MTUs along the path. Given information  about the path MTU we can send packets with sizes smaller than the path MTU and thus prevent fragmentation. This will  not completely prevent it because routing tables may change leading to a change in the path. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Flags :&lt;/b&gt;It has three bits - &lt;ul&gt;&lt;li&gt;M bit : If M is one, then there are more fragments on the way and if M is 0, then it is the last fragment &lt;/li&gt;&lt;li&gt;DF bit : If this bit is sent to 1, then we should not fragment such a packet. &lt;/li&gt;&lt;li&gt;Reserved bit : This bit is not used. &lt;/li&gt;&lt;/ul&gt;Reassembly can be done only at the destination and not at any intermediate node. This is because we are considering Datagram Service and so it is not guaranteed that all the fragments of the packet will be sent thorough the node at which we wish to do reassembly. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Total Length :&lt;/b&gt; It includes the IP header and everything that comes after it. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Time To Live (TTL) :&lt;/b&gt; Using this field, we can set the time within which the packet should be delivered or else destroyed. It is strictly treated as the number of hops. The packet should reach the destination in this number of hops. Every router decreases the value as the packet goes through it and if this value becomes zero at a particular router, it can be destroyed. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Protocol :&lt;/b&gt;  This specifies the module to which we should hand over the packet ( UDP or TCP ). It is the next encapsulated protocol.&lt;br /&gt;Value                                    Protocol&lt;br /&gt;0                                    Pv6 Hop-by-Hop Option.&lt;br /&gt;1                                    ICMP, Internet Control Message Protocol.&lt;br /&gt;2                                    IGMP, Internet Group Management Protocol. RGMP, Router-port Group Management Protocol.&lt;br /&gt;3                                    GGP, Gateway to Gateway Protocol.&lt;br /&gt;4                                    IP in IP encapsulation.&lt;br /&gt;5                                    ST, Internet Stream Protocol.&lt;br /&gt;6                                    TCP, Transmission Control Protocol.&lt;br /&gt;7                                    UCL, CBT.&lt;br /&gt;8                                    EGP, Exterior Gateway Protocol.&lt;br /&gt;9                                    IGRP.&lt;br /&gt;10                                    BBN RCC Monitoring.&lt;br /&gt;11                                    NVP, Network Voice Protocol.&lt;br /&gt;12                                    PUP.&lt;br /&gt;13                                    ARGUS.&lt;br /&gt;14                                    EMCON, Emission Control Protocol.&lt;br /&gt;15                                    XNET, Cross Net Debugger.&lt;br /&gt;16                                    Chaos.&lt;br /&gt;17                                    UDP, User Datagram Protocol.&lt;br /&gt;18                                    TMux, Transport Multiplexing Protocol.&lt;br /&gt;19                                    DCN Measurement Subsystems.&lt;br /&gt;&lt;br /&gt;-&lt;br /&gt;-&lt;br /&gt;255&lt;br /&gt;&lt;/li&gt;&lt;li&gt; &lt;b&gt;Header Checksum : &lt;/b&gt;This is the usual checksum field used to detect errors. Since the TTL field is changing at every  router so the header checksum ( upto the options field )  is checked and recalculated at every router. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Source :&lt;/b&gt; It is the IP address of the source node &lt;/li&gt;&lt;li&gt;&lt;b&gt;Destination :&lt;/b&gt;  It is the IP address of the destination node. &lt;/li&gt;&lt;li&gt;&lt;b&gt;IP Options :&lt;/b&gt; The options field was created in order to allow features to be added into IP as time passes and requirements change.  Currently 5 options are specified although not all routers support them. They are: &lt;ul&gt;&lt;li&gt;&lt;b&gt;Securtiy:&lt;/b&gt; It tells us how secret the information is. In theory a military router might use this field to  specify not to route through certain routers. In practice no routers support this field. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Source Routing:&lt;/b&gt; It is used when we want the source to dictate how the packet traverses the network. It is of 2 types&lt;br /&gt;&lt;b&gt;-&gt; Loose Source Record Routing (LSRR): &lt;/b&gt;It requires that the packet traverse a list of specified routers, in the order specified but the packet may pass though some other routers as well.&lt;br /&gt;&lt;b&gt;-&gt; Strict Source Record Routing (SSRR): &lt;/b&gt;It requires that the packet traverse only the set of specified routers  and nothing else. If it is not possible, the packet is dropped with an error message sent to the host. &lt;center&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec10/1.gif&quot; /&gt;&lt;/center&gt;&lt;br /&gt;The above is the format for SSRR. For LSRR the code is 131. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Record Routing :&lt;/b&gt; &lt;center&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec10/2.gif&quot; /&gt;&lt;/center&gt; In this the intermediate routers put there IP addresses in the header, so that the destination knows the entire path  of the packet. Space for storing the IP address is specified by the source itself. The pointer field points to the  position where the next IP address has to be written. Length field gives the number of bytes reserved by the source for writing the IP addresses.  If the space provided for storing the IP addresses of the routers visited, falls short while storing these addresses, then the subsequent routers do not write their IP addresses.  &lt;/li&gt;&lt;li&gt;&lt;b&gt;Time Stamp Routing :&lt;/b&gt; &lt;center&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec10/3.gif&quot; /&gt;&lt;/center&gt; It is similar to record route option except that nodes also add their timestamps to  the packet. The new fields in this option are&lt;br /&gt;&lt;b&gt;-&gt; Flags:&lt;/b&gt; It can have the following values &lt;ul&gt;&lt;li&gt; 0- Enter only timestamp. &lt;/li&gt;&lt;li&gt;1- The nodes should enter Timestamp as well as their IP. &lt;/li&gt;&lt;li&gt;3 - The source specifies the IPs that should enter their timestamp. A special point of interest is that only if the IP is the same as that at the pointer then the time is entered. Thus if the source specifies IP1 and IP2 but  IP2 is first in the path then the field IP2 is left empty, even after having reached IP2 but before reaching IP1. &lt;/li&gt;&lt;/ul&gt; &lt;b&gt;-&gt; Overflow:&lt;/b&gt; It stores the number of nodes that were unable to add their timestamps to the packet. The maximum value is 15.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Format of the type/code field &lt;/b&gt;  &lt;table style=&quot;border-collapse: collapse;&quot; id=&quot;AutoNumber1&quot; border=&quot;1&quot; bordercolor=&quot;#111111&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; width=&quot;280&quot;&gt;   &lt;tbody&gt;&lt;tr&gt;     &lt;td width=&quot;66&quot;&gt; Copy Bit &lt;/td&gt;     &lt;td width=&quot;100&quot;&gt; Type of option&lt;/td&gt;     &lt;td width=&quot;110&quot;&gt; Option Number.&lt;/td&gt;   &lt;/tr&gt;  &lt;/tbody&gt;&lt;/table&gt; &lt;ul&gt;&lt;li&gt;&lt;b&gt;Copy bit:&lt;/b&gt; It says whether the option is to be copied to every fragment or not. a value of 1 stands for copying and 0 stands for not copying. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Type: &lt;/b&gt;It is a 2 bit field. Currently specified values are 0 and 2. 0 means the option is a control option while 2 means the option is for measurement &lt;/li&gt;&lt;li&gt;&lt;b&gt;Option Number: &lt;/b&gt;It is a 5 bit field which specifies the option number. &lt;/li&gt;&lt;/ul&gt;For all options a length field is put in order that a router not familiar with the option will know how many bytes to skip. Thus every option is of the form &lt;/li&gt;&lt;li&gt;&lt;b&gt;TLV: Type/Length/Value.&lt;/b&gt; This format is followed in not only in IP but in nearly all major protocols. &lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;/ol&gt;</content><link rel='replies' type='application/atom+xml' href='http://ankitjainarain.blogspot.com/feeds/7907569180045296624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/network-layer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/7907569180045296624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/7907569180045296624'/><link rel='alternate' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/network-layer.html' title='Network Layer'/><author><name>Ankit</name><uri>http://www.blogger.com/profile/05478322170957335992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_zckDpxGeJaU/S8qX85_LlVI/AAAAAAAAAJY/nVMcpJ7-xMw/S220/Ankit+Jainarain+(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3685716557674208478.post-6128474485338289526</id><published>2009-10-28T01:49:00.001+05:30</published><updated>2010-04-18T11:47:24.534+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Network"/><title type='text'>Computer Networks (CS425)- Data Link Layer(DLL)</title><content type='html'>&lt;center&gt;&lt;h2&gt;Data Link Layer&lt;/h2&gt;&lt;/center&gt;&lt;p&gt; &lt;/p&gt;&lt;h3&gt; &lt;b&gt;What is DLL(Data Link Layer)&lt;/b&gt;&lt;/h3&gt; The Data Link Layer is the second layer in the OSI model, above the Physical Layer, which ensures that the error free data is transferred between the adjacent nodes in the network. It breaks the datagrams passed down  by above layers and convert them into frames ready for transfer. This is called Framing. It provides two main functionalities &lt;ul&gt;&lt;li&gt;Reliable data transfer service between two peer network layers &lt;/li&gt;&lt;li&gt;Flow Control mechanism which regulates the flow of frames such that data congestion  is not there at slow receivers due to fast senders. &lt;/li&gt;&lt;/ul&gt; &lt;b&gt;&lt;h3&gt;What is Framing?&lt;/h3&gt;&lt;/b&gt; Since the physical layer merely accepts and transmits a stream of bits without any  regard to meaning or structure, it is upto the data link layer to create and recognize frame boundaries. This can be accomplished by attaching special bit patterns to the beginning and end of the frame. If these bit patterns can accidentally occur in data, special care must be taken to make sure these patterns are not incorrectly interpreted as frame delimiters. The four framing methods that are widely used are &lt;ul&gt;&lt;li&gt;Character count &lt;/li&gt;&lt;li&gt;Starting and ending characters, with character stuffing &lt;/li&gt;&lt;li&gt;Starting and ending flags, with bit stuffing &lt;/li&gt;&lt;li&gt;Physical layer coding violations &lt;/li&gt;&lt;/ul&gt; &lt;h4&gt;Character Count&lt;/h4&gt; This method uses a field in the header to specify the number of characters in the frame.  When the data link layer at the destination sees the character count,it knows how  many characters follow, and hence where the end of the frame is. The disadvantage is  that if the count is garbled by a transmission error, the destination will lose  synchronization and will be unable to locate the start of the next frame. So, this method is rarely used. &lt;h4&gt;Character stuffing&lt;/h4&gt; In the second method, each frame starts with the ASCII character sequence  DLE STX and ends with the sequence DLE ETX.(where DLE is Data Link Escape,  STX is Start of TeXt and ETX is End of TeXt.) This method overcomes the  drawbacks of the character count method. If the destination ever loses synchronization,  it only has to look for DLE STX and DLE ETX characters. If however, binary data is  being transmitted then there exists a possibility of the characters DLE STX and DLE  ETX occurring in the data. Since this can interfere with the framing, a technique called character stuffing is used. The sender&#39;s data link layer inserts an ASCII DLE character  just before the DLE character in the data. The receiver&#39;s data link layer removes this DLE before this data is given to the network layer. However character stuffing is  closely associated with 8-bit characters and this is a major hurdle in transmitting  arbitrary sized characters. &lt;h4&gt;Bit stuffing&lt;/h4&gt; The third method allows data frames to contain an arbitrary number of bits  and allows character codes with an arbitrary number of bits per character. At  the start and end of each frame is a flag byte consisting of the special  bit pattern 01111110 . Whenever the sender&#39;s data link layer encounters five  consecutive 1s in the data, it automatically stuffs a zero bit into the outgoing bit stream. This technique is called bit stuffing. When the receiver sees five consecutive 1s in the incoming data stream, followed by a zero bit, it automatically destuffs the 0 bit. The boundary between two frames can be determined by  locating the flag pattern.  &lt;h4&gt;Physical layer coding violations&lt;/h4&gt; The final framing method is physical layer coding violations and is applicable to networks in which the encoding on the physical medium contains some redundancy.  In such cases normally, a 1 bit is a high-low pair and a 0 bit is a low-high pair. The  combinations of low-low and high-high which are not used for data may be used for marking frame boundaries.   &lt;h3&gt;&lt;b&gt;Error Control&lt;/b&gt;&lt;/h3&gt; The bit stream transmitted by the physical layer is not guaranteed to be error free.  The data link layer is responsible for error detection and correction. The most common  error control method is to compute and append some form of a checksum to each outgoing frame  at the sender&#39;s data link layer and to recompute the checksum and verify it with the received  checksum at the receiver&#39;s side. If both of them match, then the frame is correctly received; else it is erroneous. The checksums may be of two types:&lt;br /&gt;# Error detecting : Receiver can only detect the error in the frame and inform the sender about it. # Error detecting and correcting : The receiver can not only detect the error but also correct it.&lt;br /&gt;Examples of Error Detecting methods: &lt;ul&gt;&lt;li&gt;&lt;b&gt;Parity bit:&lt;/b&gt;&lt;br /&gt;Simple example of error detection technique is parity bit. The parity bit is chosen that the number of 1 bits in the code word is either even( for even parity) or odd (for odd parity). For example when 10110101 is transmitted then for even parity an 1 will be appended to the data and for odd  parity a 0 will be appended. This scheme can detect only single bits. So if two or more bits are  changed then that can not be detected. &lt;/li&gt;&lt;li&gt; &lt;b&gt;Longitudinal Redundancy Checksum:&lt;/b&gt;&lt;br /&gt;Longitudinal Redundancy Checksum is an error detecting scheme which overcomes the problem of two erroneous bits. In this conceptof parity bit is used but with slightly more intelligence. With each byte we send one  parity bit then send one additional byte which have the parity corresponding to the each bit position of the sent bytes. So the parity bit is set in both horizontal and vertical direction. If one bit get flipped we can tell which row and column have error then we find the intersection of the two and determine the erroneous bit. If 2 bits are in error and they are in the different column and row then they can be detected. If the error are in the same column then the row will differentiate and vice versa. Parity can  detect the only odd number of errors. If they are even and distributed in a fashion that in all direction then LRC may not be able to find the error. &lt;/li&gt;&lt;li&gt; &lt;b&gt;Cyclic Redundancy Checksum (CRC):&lt;/b&gt;&lt;br /&gt;We have an n-bit message. The sender adds a k-bit Frame Check Sequence (FCS) to this message before sending. The resulting (n+k) bit message is divisible by some (k+1) bit number. The receiver divides the message ((n+k)-bit) by the same (k+1)-bit number and if there is no remainder, assumes that there was no error. How do we choose this number?&lt;br /&gt;For example, if k=12 then 1000000000000 (13-bit number) can be chosen, but this is a pretty crappy choice. Because it will result in a zero remainder for all (n+k) bit messages with the last 12 bits zero. Thus, any bits flipping beyond the last 12 go undetected. If k=12, and we take 1110001000110 as the 13-bit number  (incidentally, in decimal representation this turns out to be 7238). This will be unable to detect errors only if the corrupt message and original message have a difference of a multiple of 7238. The probablilty of this is low, much lower than the probability that anything beyond the last 12-bits flips. In practice, this number is chosen after analyzing common network transmission errors and then selecting a  number which is likely to detect these common errors. &lt;/li&gt;&lt;/ul&gt;  &lt;h3&gt;&lt;b&gt;How to detect source errors?&lt;/b&gt;&lt;/h3&gt; In order ensure that the frames are delivered correctly, the receiver should inform the sender about incoming frames using positive or negative acknowledgements. On the sender&#39;s side the  receipt of a positive acknowledgement implies that the frame has arrived at the destination safely while the receipt of a negative acknowledgement means that an error has occurred in the frame and  it needs to be retransmitted. However, this scheme is too simplistic because if a noise burst causes the frame to vanish completely, the receiver will not respond at all and the sender would hang forever  waiting for an acknowledgement. To overcome this drawback, timers are introduced into the data link layer.  When the sender transmits a frame it also simultaneously starts a timer. The timer is set to go off  after a interval long enough for the frame to reach the destination, be processed there, and have the acknowledgement propogate back to the sender. If the frame is received correctly the positive acknowledgment arrives before the timer runs out and so the timer is canceled. If however either the frame or the  acknowledgement is lost the timer will go off and the sender may retransmit the frame. Since multiple  transmission of frames can cause the receiver to accept the same frame and pass it to the network layer more than once, sequence numbers are generally assigned to the outgoing frames.&lt;br /&gt;The types of acknowledgements that are sent can be classified as follows: &lt;ul&gt;&lt;li&gt;Cumulative acknowledgements: A single acknowledgement informing the sender that all the frames upto a certain number have been received. &lt;/li&gt;&lt;li&gt; Selective acknowledgements: Acknowledgement for a particular frame. &lt;/li&gt;&lt;/ul&gt; They may be also classified as: &lt;ul&gt;&lt;li&gt;Individual acknowledgements: Individual acknowledgement for each frame. &lt;/li&gt;&lt;li&gt;Group acknowledgements: A bit-map that specifies the acknowledgements of a range of frame numbers. &lt;/li&gt;&lt;/ul&gt;  &lt;h3&gt;&lt;b&gt;Flow Control&lt;/b&gt;&lt;/h3&gt;  Consider a situation in which the sender transmits frames faster than the receiver can accept them. If the sender keeps pumping out frames at high rate, at some point the receiver will be completely swamped and will start losing some frames. This problem may be solved by introducing flow control. Most flow control protocols contain a feedback mechanism to inform the sender when it should transmit the next frame.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Mechanisms For Flow Control:&lt;/b&gt; &lt;ul&gt;&lt;li&gt;&lt;b&gt;Stop and Wait Protocol:&lt;/b&gt; This is the simplest file control protocol in which the sender transmits a frame and then waits for an acknowledgement, either positive or negative, from the receiver before proceeding. If a positive acknowledgement is received, the sender transmits the next packet; else it retransmits the same frame. However, this protocol has one major flaw in it. If  a packet or an acknowledgement is completely destroyed in transit due to a noise burst, a deadlock will occur because the sender cannot proceed until it receives an acknowledgement. This problem may be solved using timers on the sender&#39;s side. When the frame is transmitted, the timer is set. If  there is no response from the receiver within a certain time interval, the timer goes off and the frame may be  retransmitted. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Sliding Window Protocols:&lt;/b&gt; Inspite of the use of timers, the stop and wait protocol still suffers from a few drawbacks. Firstly, if the receiver had the capacity to accept more than one frame, its resources are being underutilized. Secondly,  if the receiver was busy and did not wish to receive any more packets, it may delay the acknowledgement. However, the timer on the sender&#39;s side may go off and cause an unnecessary retransmission. These drawbacks are overcome by the sliding window protocols.&lt;br /&gt;In sliding window protocols the sender&#39;s data link layer maintains a &#39;sending window&#39; which consists of a set of sequence numbers corresponding to the frames it is permitted to send. Similarly, the  receiver maintains a   &#39;receiving window&#39; corresponding to the set of frames it is permitted to accept. The window size is dependent on the retransmission policy and it may differ in values for the receiver&#39;s and the sender&#39;s window. The sequence numbers within the sender&#39;s window represent the frames sent but as yet not acknowledged. Whenever a new packet arrives from the network layer, the upper edge of the  window is advanced by one. When an acknowledgement arrives from the receiver the lower edge is advanced by one. The receiver&#39;s window corresponds to the frames that the receiver&#39;s data link layer may accept. When a frame with sequence number equal to the lower edge of the window is received, it is passed to the network layer, an acknowledgement is generated and the window is rotated by one. If however, a frame  falling outside the  window is received,  the receiver&#39;s data link  layer has two options.  It may either discard this frame and all subsequent  frames until the desired frame is received or it may accept these frames and buffer them until  the appropriate frame is received and then pass the frames to the network layer in sequence.&lt;br /&gt;&lt;center&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec09/sw.jpg&quot; /&gt;&lt;/center&gt;In this simple example, there is a 4-byte sliding window. Moving from left to right, the window &quot;slides&quot; as bytes in the stream are sent and acknowledged.&lt;br /&gt;Most sliding window  protocols also employ ARQ ( Automatic Repeat reQuest ) mechanism. In ARQ, the sender  waits for a positive acknowledgement before proceeding to the next frame. If no acknowledgement is received within a certain time interval it retransmits the frame. ARQ is of two types : &lt;ol&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Go Back &#39;n&#39;:&lt;/b&gt; If a frame is lost or received in error, the receiver may simply discard all subsequent frames, sending no  acknowledgments for the discarded frames. In this case the receive window is of size 1. Since no  acknowledgements are being received the sender&#39;s window will fill up, the sender will eventually time out and  retransmit all the unacknowledged frames in order starting from the damaged or lost frame.  The maximum window size for this protocol can be obtained as follows. Assume that the window size of the sender is n. So the window will initially contain the frames with sequence numbers from 0  to (w-1). Consider that the sender  transmits all these  frames and the receiver&#39;s data link layer receives all of them correctly. However, the sender&#39;s data link layer does not receive any acknowledgements as all of them are lost. So the sender will retransmit all the frames after its timer goes off. However the receiver window has already advanced to w. Hence to avoid overlap ,  the sum of the two windows should be less than the sequence number space.&lt;br /&gt;&lt;center&gt;&lt;b&gt;w-1 + 1 &lt; Sequence Number Space&lt;br /&gt;i.e., w &lt; Sequence Number Space&lt;br /&gt;Maximum Window Size = Sequence Number Space - 1 &lt;/b&gt;&lt;/center&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Selective Repeat:&lt;/b&gt;In this protocol rather than discard all  the subsequent frames following a damaged or  lost frame, the receiver&#39;s data link layer simply stores them in buffers. When the sender does not receive an  acknowledgement for the first frame it&#39;s timer goes off after a certain time interval and it retransmits only the lost frame. Assuming error - free transmission this time, the sender&#39;s data link layer will have a sequence of a many correct frames which it can hand over to the network layer. Thus there is less overhead  in retransmission  than in the case of Go Back n protocol.&lt;br /&gt;In case of selective repeat protocol the window size may be calculated as follows. Assume that the size of  both the sender&#39;s and the receiver&#39;s window is w. So initially both of them contain the values 0 to (w-1). Consider that sender&#39;s data link layer transmits all the w frames, the receiver&#39;s data link layer receives them correctly and  sends acknowledgements for each of them. However, all the acknowledgemnets are lost and the sender does not advance it&#39;s window. The receiver window at this point contains the values w to (2w-1). To avoid overlap when the sender&#39;s  data link layer retransmits, we must have the sum of these two windows less than sequence number space. Hence, we get the condition  &lt;center&gt;&lt;br /&gt;&lt;b&gt;Maximum Window Size = Sequence Number Space / 2&lt;/b&gt;&lt;/center&gt; &lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;/ul&gt;   &lt;hr color=&quot;BLACK&quot;&gt; &lt;h3&gt;Image References:&lt;/h3&gt; &lt;ul&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://condor.depaul.edu/%7Ejkristof/technotes/sliding-window.jpg&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://condor.depaul.edu/~jkristof/technotes/sliding-window.jpg&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://www.eas.asu.edu/trace/eee459_sp02/applet/archana/gupta5463.html&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://www.eas.asu.edu/trace/eee459_sp02/applet/archana/gupta5463.html&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://ankitjainarain.blogspot.com/feeds/6128474485338289526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/computer-networks-cs425-data-link.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/6128474485338289526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/6128474485338289526'/><link rel='alternate' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/computer-networks-cs425-data-link.html' title='Computer Networks (CS425)- Data Link Layer(DLL)'/><author><name>Ankit</name><uri>http://www.blogger.com/profile/05478322170957335992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_zckDpxGeJaU/S8qX85_LlVI/AAAAAAAAAJY/nVMcpJ7-xMw/S220/Ankit+Jainarain+(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3685716557674208478.post-9027758514676370507</id><published>2009-10-28T01:47:00.001+05:30</published><updated>2010-04-18T11:47:24.534+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Network"/><title type='text'>Token Ring Network(Contd...) and IEEE 802.4: Token Bus Network</title><content type='html'>&lt;center&gt;&lt;h2&gt;Token Ring Network (Contd...)&lt;/h2&gt;&lt;/center&gt;&lt;p&gt; &lt;/p&gt;&lt;h3&gt; &lt;b&gt;Phase Jitter Compensation :&lt;/b&gt;&lt;/h3&gt; In a token ring the source starts discarding all it&#39;s previously transmitted bits as soon as they circumnavigate the ring and reach the source. Hence, it&#39;s not desirable that while a token is being sent some bits of the token which have already been sent become available at the incoming end of the source. This behavior though is desirable in case of data packets which ought to be drained from the ring once they have gone around the ring. To achieve the aforesaid behavior with respect to tokens, we would like the ring to hold at least 24 bits at a time. How do we ensure this? &lt;p&gt;Each node in a ring introduces a 1 bit delay. So, one approach might be to set the minimum limit on the number of nodes in a ring as 24. But, this is not a viable option. The actual solution is as follows.  We have one node in the ring designated as &lt;b&gt;&quot;monitor&quot;&lt;/b&gt;. The monitor maintains a 24 bits buffer with help of which it introduces a 24 bit delay. The catch here is what if the clocks of nodes following the source are faster than the source? In this case the 24 bit delay of the monitor would be less than the 24 bit delay desired by the host. To avoid this situation the monitor maintains 3 extra bits to compensate for the faster bits. The 3 extra bits suffice even if bits are 10 % faster. This compensation is called Phase Jitter Compensation.  &lt;/p&gt;&lt;h3&gt;&lt;b&gt;Handling multiple priority frames&lt;/b&gt;&lt;/h3&gt; Each node or packet has a priority level. We don&#39;t concern ourselves with how this priority is decided. The first 3 bits of the Access Control byte in the token are for priority and the last 3 are for reservation.&lt;br /&gt;  &lt;table border=&quot;1&quot; width=&quot;20%&quot;&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td width=&quot;12%&quot;&gt; P&lt;/td&gt;  &lt;td width=&quot;12%&quot;&gt; P&lt;/td&gt;  &lt;td width=&quot;12%&quot;&gt; P&lt;/td&gt;  &lt;td width=&quot;12%&quot;&gt; T&lt;/td&gt;  &lt;td width=&quot;13%&quot;&gt;M&lt;/td&gt;  &lt;td width=&quot;13%&quot;&gt; R&lt;/td&gt;  &lt;td width=&quot;13%&quot;&gt; R&lt;/td&gt;  &lt;td width=&quot;13%&quot;&gt; R&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Initially the reservation bits are set to 000. When a node wants to transmit a priority n frame, it must wait until it can capture a token whose priority is less than or equal to n. Furthermore, when a data frame goes by, a station can try to reserve the next token by writing the priority of the frame it wants to send into the frame&#39;s Reservation bits. However, if a higher priority has already been reserved there, the station cannot make a reservation. When the current frame is finished, the next token is generated at the priority that has been reserved. &lt;/p&gt;&lt;p&gt;A slight problem with the above reservation procedure is that the reservation priority keeps on increasing. To solve this problem, the station raising the priority remembers the reservation priority that it replaces and when it is done it reduces the priority to the previous priority. &lt;/p&gt;&lt;p&gt;Note that in a token ring, low priority frames may starve.  &lt;/p&gt;&lt;h3&gt;&lt;b&gt;Ring Maintenance&lt;/b&gt;&lt;/h3&gt; Each token ring has a monitor that oversees the ring. Among the monitor&#39;s responsibilities are seeing that the token is not lost, taking action when the ring breaks, cleaning the ring when garbled frames appear and watching out for orphan frames. An orphan frame occurs when a station transmits a short frame in it&#39;s entirety  onto a long ring and then crashes or is powered down before the frame can be removed. If nothing is done, the frame circulates indefinitely. &lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;Detection of orphan frames:&lt;/b&gt; The monitor detects orphan frames by setting the monitor bit in the Access Control byte whenever it passes through. If an incoming frame has this bit set, something is wrong since the same frame has passed the monitor twice. Evidently it was not removed by the source, so the monitor drains it. &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;Lost Tokens:&lt;/b&gt; The monitor has a timer that is set to the longest possible tokenless interval : when each node transmits for the full token holding time. If this timer goes off, the monitor drains the ring and issues a fresh token. &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;Garbled frames:&lt;/b&gt; The monitor can detect such frames by their invalid format or checksum, drain the ring and issue a fresh token. &lt;/p&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;The token ring control frames for maintenance are:&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;center&gt;&lt;table border=&quot;1&quot; width=&quot;77%&quot;&gt; &lt;tbody&gt;&lt;tr&gt; &lt;td width=&quot;14%&quot;&gt; &lt;center&gt;&lt;i&gt;Control field&lt;/i&gt;&lt;/center&gt; &lt;/td&gt;  &lt;td width=&quot;25%&quot;&gt; &lt;center&gt;&lt;i&gt;Name&lt;/i&gt;&lt;/center&gt; &lt;/td&gt;  &lt;td width=&quot;61%&quot;&gt; &lt;center&gt;&lt;i&gt;Meaning&lt;/i&gt;&lt;/center&gt; &lt;/td&gt; &lt;/tr&gt;  &lt;tr&gt; &lt;td width=&quot;14%&quot;&gt; 00000000&lt;/td&gt;  &lt;td width=&quot;25%&quot;&gt; Duplicate address test&lt;/td&gt;  &lt;td width=&quot;61%&quot;&gt; Test if two stations have the same address&lt;/td&gt; &lt;/tr&gt;  &lt;tr&gt; &lt;td width=&quot;14%&quot;&gt; 00000010&lt;/td&gt;  &lt;td width=&quot;25%&quot;&gt; Beacon&lt;/td&gt;  &lt;td width=&quot;61%&quot;&gt; Used to locate breaks in the ring&lt;/td&gt; &lt;/tr&gt;  &lt;tr&gt; &lt;td width=&quot;14%&quot;&gt; 00000011&lt;/td&gt;  &lt;td width=&quot;25%&quot;&gt; Claim token&lt;/td&gt;  &lt;td width=&quot;61%&quot;&gt; Attempt to become monitor&lt;/td&gt; &lt;/tr&gt;  &lt;tr&gt; &lt;td width=&quot;14%&quot;&gt; 00000100&lt;/td&gt;  &lt;td width=&quot;25%&quot;&gt; Purge&lt;/td&gt;  &lt;td width=&quot;61%&quot;&gt; Reinitialize the ring&lt;/td&gt; &lt;/tr&gt;  &lt;tr&gt; &lt;td width=&quot;14%&quot;&gt; 00000101&lt;/td&gt;  &lt;td width=&quot;25%&quot;&gt; Active monitor present&lt;/td&gt;  &lt;td width=&quot;61%&quot;&gt; Issued periodically by the monitor&lt;/td&gt; &lt;/tr&gt;  &lt;tr&gt; &lt;td width=&quot;14%&quot;&gt; 00000110&lt;/td&gt;  &lt;td width=&quot;25%&quot;&gt; Standby monitor present&lt;/td&gt;  &lt;td width=&quot;61%&quot;&gt; Announces the presence of potential monitors&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;&lt;/center&gt; &lt;p&gt; The monitor periodically issues a message &quot;Active Monitor Present&quot; informing all nodes of its presence. When this message is not received for a specific time interval, the nodes detect a monitor failure. Each node that believes it can function as a monitor broadcasts a &quot;Standby Monitor Present&quot; message at regular intervals, indicating that it is ready to take on the monitor&#39;s job. Any node that detects failure of a monitor issues a &quot;Claim&quot; token. There are 3 possible outcomes : &lt;/p&gt;&lt;ol&gt;&lt;li&gt;If the issuing node gets back its own claim token, then it becomes the monitor. &lt;/li&gt;&lt;li&gt;If a packet different from a claim token is received, apparently a wrong guess of monitor failure was made. In this case on receipt of our own claim token, we discard it. Note that our claim token may have been removed by some other node which has detected this error. &lt;/li&gt;&lt;li&gt;If some other node has also issued a claim token, then the node with the larger address becomes the monitor. &lt;/li&gt;&lt;/ol&gt; In order to resolve errors of duplicate addresses, whenever a node comes up it sends a &lt;b&gt;&quot;Duplicate Address Detection&quot;&lt;/b&gt; message (with the destination = source) across the network. If the address recognize bit has been set on receipt of the message, the issuing node realizes a duplicate address and goes to standby mode. A node informs other nodes of removal of a packet from the ring through a &lt;b&gt;&quot;Purge&quot;&lt;/b&gt; message. One maintenance function that the monitor cannot handle is locating breaks in the ring. If there is no activity detected in the ring (e.g. Failure of monitor to issue the &lt;b&gt;Active Monitor Present&lt;/b&gt; token...) , the usual procedures of sending a claim token are followed. If the claim token itself is not received besides packets of any other kind, the node then sends &lt;b&gt;&quot;Beacons&quot;&lt;/b&gt; at regular intervals until a message is received indicating that the broken ring has been repaired.&lt;br /&gt; &lt;h3&gt; &lt;b&gt;Other Ring Networks&lt;/b&gt;&lt;/h3&gt; The problem with the token ring system is that large rings cause large delays. It must be made possible for multiple packets to be in the ring simultaneously. The following ring networks resolve this problem to some extent :- &lt;p&gt;&lt;b&gt;Slotted Ring :&lt;/b&gt; &lt;/p&gt;&lt;p&gt;In this system, the ring is slotted into a number of fixed size frames which are continuously moving around the ring. This makes it necessary that there be enough number of nodes (large ring size) to ensure that all the bits can stay on the ring at the same time. The frame header contains information as to whether the slots are empty or full. The usual disadvantages of overhead/wastage associated with fixed size frames are present. &lt;/p&gt;&lt;center&gt; &lt;p&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec08/slottedr.gif&quot; /&gt;&lt;/p&gt;&lt;/center&gt;  &lt;p&gt;&lt;b&gt;Register Insertion Rings :&lt;/b&gt; &lt;/p&gt;&lt;p&gt;This is an improvement over slotted ring architecture. The network interface consists of two registers : a shift register and an output buffer. At startup, the input pointer points to the rightmost bit position in the input shift register .When a bit arrives it is in the rightmost empty position (the one indicated by the input pointer). After the node has detected that the frame is not addressed to it, the bits are transmitted one at time (by shifting). As new bits come in, they are inserted at  the position indicated by the pointer and then the contents are shifted. Thus the pointer is not moved. Once the shift register has pushed out the last bit of a frame, it checks to see if it has an output frame waiting. In case yes, then it checks that if the number of empty slots in the shift register is at least equal to the number of bits in the output frame. After this the output connection is switched to this second register and after the register has emptied its contents, the output line is switched back to the shift register. Thus, no single node can hog the bandwidth. In a loaded system, a node can transmit a k-bit frame only if it has saved up a k-bits of inter frame gaps. &lt;/p&gt;&lt;center&gt; &lt;p&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec08/registerin.gif&quot; /&gt;&lt;/p&gt;&lt;/center&gt;  &lt;p&gt;Two major disadvantages of this topology are complicated hardware and difficulty in the detection of start/end of packets.  &lt;/p&gt;&lt;h4&gt;Contention Ring&lt;/h4&gt; &lt;p&gt;The token ring has primarily two problems:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;On light loads, huge overhead is incurred for token passing.  &lt;/li&gt;&lt;li&gt;Nodes with low priority data may starve if there is always a node with high priority data.  &lt;/li&gt;&lt;/ul&gt;A contention ring attempts to address these problems. In a contention ring, if there is no communication in the ring for a while, a sender node will send its data immediately, followed by a token. If the token comes back to the sender without any data packet in between, the sender removes it from the ring. However under heavy load the behavior is that of a normal token ring. In case a collision, each of the sending nodes will remove the others&#39; data packet from the ring, back off for a random period of time and then resend their data. &lt;center&gt;&lt;h2&gt;IEEE 802.4: Token Bus Network&lt;/h2&gt;&lt;/center&gt;In this system, the nodes are physically connected as a bus, but logically form a ring with tokens passed around to determine the turns for sending. It has the robustness of the 802.3 broadcast cable and the known worst case behavior of a ring. The structure of a token bus network is as follows:&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec08/bus1.gif&quot; /&gt;&lt;/center&gt;&lt;p&gt;  &lt;/p&gt;&lt;h3&gt;Frame Structure&lt;/h3&gt; &lt;center&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec08/frame.gif&quot; /&gt;&lt;/center&gt;&lt;p&gt;  &lt;/p&gt;&lt;p&gt;A 802.4 frame has the following fields:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Preamble:  The Preamble is used to synchronize the receiver&#39;s clock.&lt;br /&gt; &lt;/li&gt;&lt;li&gt;Starting Delimiter (SD) and End Delimiter (ED): The Starting Delimiter and Ending Delimiter fields are used to mark frame boundaries. Both of them contain analog encoding of symbols other than 1 or 0 so that they cannot occur accidentally in the user data. Hence no length field is needed.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Frame Control (FC): This field is used to distinguish data frames from control frames. For data frames, it carries the frame&#39;s priority as well as a bit which the destination can set as an acknowledgement. For control frames, the Frame Control field is used to specify the frame type. The allowed types include token passing and various ring maintenance frames.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Destination and Source Address: The Destination and Source address fields may be 2 bytes (for a local address) or 6 bytes (for a global address).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Data: The Data field carries the actual data and it may be 8182 bytes when 2 byte addresses are used and 8174 bytes for 6 byte addresses.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Checksum:  A 4-byte checksum calculated for the data. Used in error detection.  &lt;/li&gt;&lt;/ul&gt;   &lt;h3&gt;Ring Maintenance:&lt;/h3&gt; &lt;h4&gt;Mechanism:&lt;/h4&gt; &lt;p&gt;When the first node on the token bus comes up, it sends a &lt;b&gt;Claim_token&lt;/b&gt; packet to initialize the ring. If more than one station send this packet at the same time, there is a collision. Collision is resolved by a contention mechanism, in which the contending nodes send random data for 1, 2, 3 and 4 units of time depending on the first two bits of their address. The node sending data for the longest time wins. If two nodes have the same first two bits in their addresses, then contention is done again based on the next two bits of their address and so on.&lt;/p&gt; &lt;p&gt;After the ring is set up, new nodes which are powered up may wish to join the ring. For this a node sends &lt;b&gt;Solicit_successor_1&lt;/b&gt; packets from time to time, inviting bids from new nodes to join the ring. This packet contains the address of the current node and its current successor, and asks for nodes in between these two addresses to reply. If more than one nodes respond, there will be collision. The node then sends a &lt;b&gt;Resolve_contention&lt;/b&gt; packet, and the contention is resolved using a similar mechanism as described previously. Thus at a time only one node gets to enter the ring. The last node in the ring will send a&lt;b&gt; Solicit_successor_2&lt;/b&gt; packet containing the addresses of it and its successor. This packet asks nodes not having addresses in between these two addresses to respond. &lt;/p&gt; &lt;p&gt;A question arises that how frequently should a node send a Solicit_successor packet? If it is sent too frequently, then overhead will be too high. Again if it is sent too rarely, nodes will have to wait for a long time before joining the ring. If the channel is not busy, a node will send a Solicit_successor packet after a fixed number of token rotations. This number can be configured by the network administrator. However if there is heavy traffic in the network, then a node would defer the sending of bids for successors to join in.&lt;/p&gt; &lt;p&gt;There may be problems in the logical ring due to sudden failure of a node. What happens when a node goes down along with the token? After passing the token, a node, say node A, listens to the channel to see if its successor either transmits the token or passes a frame. If neither happens, it resends a token. Still if nothing happens, A sends a &lt;b&gt;Who_follows&lt;/b&gt; packet, containing the address of the down node. The successor of the down node, say node C, will now respond with a &lt;b&gt;Set_successor&lt;/b&gt; packet, containing its own address. This causes A to set its successor node to C, and the logical ring is restored. However, if two successive nodes go down suddenly, the ring will be dead and will have to be built afresh, starting from a &lt;b&gt;Claim_token&lt;/b&gt; packet.&lt;/p&gt; &lt;p&gt;When a node wants to shutdown normally, it sends a &lt;b&gt;Set_successor&lt;/b&gt; packet to its predecessor, naming its own successor. The ring then continues unbroken, and the node goes out of the ring.&lt;/p&gt; &lt;p&gt;The various control frames used for ring maintenance are shown below:&lt;/p&gt; &lt;table border=&quot;1&quot; width=&quot;100%&quot;&gt;   &lt;tbody&gt;&lt;tr&gt;     &lt;td width=&quot;33%&quot;&gt;       &lt;h4&gt;Frame Control Field&lt;/h4&gt;     &lt;/td&gt;     &lt;td&gt;       &lt;h4&gt;Name&lt;/h4&gt;     &lt;/td&gt;     &lt;td&gt;       &lt;h4&gt;Meaning&lt;/h4&gt;     &lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;     &lt;td width=&quot;33%&quot;&gt;00000000&lt;/td&gt;     &lt;td&gt;Claim_token&lt;/td&gt;     &lt;td&gt;Claim token during ring maintenance&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;     &lt;td width=&quot;33%&quot;&gt;00000001&lt;/td&gt;     &lt;td&gt;Solicit_successor_1&lt;/td&gt;     &lt;td&gt;Allow stations to enter the ring&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;     &lt;td width=&quot;33%&quot;&gt;00000010&lt;/td&gt;     &lt;td&gt;Solicit_successor_2&lt;/td&gt;     &lt;td&gt;Allow stations to enter the ring&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;     &lt;td&gt;00000011&lt;/td&gt;     &lt;td&gt;Who_follows&lt;/td&gt;     &lt;td&gt;Recover from lost token&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;     &lt;td&gt;00000100&lt;/td&gt;     &lt;td&gt;Resolve_contention&lt;/td&gt;     &lt;td&gt;Used when multiple stations want to enter&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;     &lt;td&gt;00001000&lt;/td&gt;     &lt;td&gt;Token&lt;/td&gt;     &lt;td&gt;Pass the token&lt;/td&gt;   &lt;/tr&gt;   &lt;tr&gt;     &lt;td&gt;00001100&lt;/td&gt;     &lt;td width=&quot;33%&quot;&gt;Set_successor&lt;/td&gt;     &lt;td&gt;Allow the stations leave the ring&lt;/td&gt;   &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;h3&gt;Priority Scheme:&lt;/h3&gt; &lt;p&gt;Token bus supports four distinct priority levels: 0, 2, 4 and 6.&lt;/p&gt; &lt;p&gt;0 is the lowest priority level and 6 the highest. The following times are defined by the token bus:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;THT: Token Holding Time. A node holding the token can send priority 6 data for a maximum of this amount of time.  &lt;/li&gt;&lt;li&gt;TRT_4: Token Rotation Time for class 4 data. This is the maximum time a token can take to circulate and still allow transmission of class 4 data. &lt;/li&gt;&lt;li&gt;TRT_2 and TRT_0: Similar to TRT_4. &lt;/li&gt;&lt;/ul&gt;   &lt;p&gt;When a station receives data, it proceeds in the following manner:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;It transmits priority 6 data for at most THT time, or as long as it has data. &lt;/li&gt;&lt;li&gt;Now if the time for the token to come back to it is less than TRT_4, it will transmit priority 4 data, and for the amount of time allowed by TRT_4. Therefore the maximum time for which it can send priority 4 data is= Actual TRT - THT - TRT_4 &lt;/li&gt;&lt;li&gt;Similarly for priority 2 and priority 0 data.&lt;/li&gt;&lt;/ul&gt;   &lt;p&gt;This mechanism ensures that priority 6 data is always sent, making the system suitable for real time data transmission. In fact this was one of the primary aims in the design of token bus.    &lt;/p&gt;&lt;hr color=&quot;BLACK&quot;&gt; &lt;h3&gt;Image References:&lt;/h3&gt; &lt;ul&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;https://www.cis.strath.ac.uk/teaching/ug/classes/52.354/Images/SlottedRing.gif&quot; class=&quot;smarterwiki-linkify&quot;&gt;https://www.cis.strath.ac.uk/teaching/ug/classes/52.354/Images/SlottedRing.gif&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://www.lkn.ei.tum.de/lehre/mmprog/mac/protocols/token-bus/pics/bus1.gif&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://www.lkn.ei.tum.de/lehre/mmprog/mac/protocols/token-bus/pics/bus1.gif&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://www.acerimmeronline.com/networks/images/token_bus_frame.gif&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://www.acerimmeronline.com/networks/images/token_bus_frame.gif&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://ankitjainarain.blogspot.com/feeds/9027758514676370507/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/token-ring-networkcontd-and-ieee-8024.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/9027758514676370507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/9027758514676370507'/><link rel='alternate' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/token-ring-networkcontd-and-ieee-8024.html' title='Token Ring Network(Contd...) and IEEE 802.4: Token Bus Network'/><author><name>Ankit</name><uri>http://www.blogger.com/profile/05478322170957335992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_zckDpxGeJaU/S8qX85_LlVI/AAAAAAAAAJY/nVMcpJ7-xMw/S220/Ankit+Jainarain+(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3685716557674208478.post-9188762513964185797</id><published>2009-10-28T01:46:00.001+05:30</published><updated>2010-04-18T11:47:24.534+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Network"/><title type='text'>Computer Networks (CS425)- IEEE 802.5: Token Ring Network</title><content type='html'>&lt;ul&gt;&lt;li&gt;Token Ring is formed by the nodes connected in ring format as shown in the diagram below. The principle used in the token ring network is that a token is circulating in the ring and whichever node grabs that token will have right to transmit the data. &lt;/li&gt;&lt;li&gt;Whenever a station wants to transmit a frame it inverts a single bit of the 3-byte token which instantaneously changes it into a normal data packet. Because there is only one token, there can atmost be one transmission at a time. &lt;/li&gt;&lt;li&gt;Since the token rotates in the ring it is guarenteed that every node gets the token with in some specified time. So there is an upper bound on the time of waiting to grab the token so that starvation is avoided. &lt;/li&gt;&lt;li&gt;There is also an upper limit of 250 on the number of nodes in the network.  &lt;/li&gt;&lt;li&gt;To distinguish the normal data packets from token (control packet) a special sequence is assigned to the token packet. When any node gets the token it first sends the data it wants to send, then recirculates the token. &lt;/li&gt;&lt;/ul&gt; &lt;br /&gt;&lt;center&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec07/ring.gif&quot; /&gt; &lt;/center&gt;  &lt;p&gt;If a node transmits the token and nobody wants to send the data the token comes back to the sender. If the first bit of the token reaches the sender before the transmission of the last bit, then error situation araises. So to avoid this we should have: &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;center&gt; &lt;b&gt; propogation delay + transmission of n-bits (1-bit delay in each node ) &gt; transmission of the token time &lt;/b&gt; &lt;/center&gt;&lt;br /&gt;A station may hold the token for the token-holding time. which is 10 ms unless the installation sets a different value. If there is enough time left after the first frame has been transmitted to send more frames, then these frames may be sent as well. After all pending frames have been transmitted or the transmission frame would exceed the token-holding time, the station regenerates the 3-byte token frame and puts it back on the ring. &lt;p&gt; &lt;/p&gt;&lt;h3&gt;Modes of Operation&lt;/h3&gt; &lt;ol&gt;&lt;li&gt;&lt;b&gt;Listen Mode: &lt;/b&gt;In this mode the node listens to the data and transmits the data to the next node. In this mode there is a one-bit delay associated with the transmission.&lt;br /&gt;&lt;center&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec07/listen.jpg&quot; /&gt; &lt;/center&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Transmit Mode: &lt;/b&gt;In this mode the node just discards the any data and puts the data onto the network.&lt;br /&gt;&lt;center&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec07/transmit.jpg&quot; /&gt; &lt;/center&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;By-pass Mode: &lt;/b&gt;In this mode  reached when the node is down. Any data is just bypassed. There is no one-bit delay in this mode.&lt;br /&gt;&lt;center&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec07/bypass.jpg&quot; /&gt; &lt;/center&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;  &lt;h3&gt;Token Ring Using Ring Concentrator&lt;/h3&gt;&lt;br /&gt;&lt;center&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec07/trhubani.gif&quot; /&gt; &lt;/center&gt;&lt;br /&gt;One problem with a ring network is that if the cable breaks somewhere, the ring dies. This problem is elegantly addressed by using a ring concentrator. A Token Ring concentrator simply changes the topology from a physical ring to a star wired ring. But the network still remains a ring logically. Physically, each station is connected to the ring concentrator (wire center) by a cable containing at least two twisted pairs, one for data to the station and one for data from the station. The Token still circulates around the network and is still controlled in the same manner, however, using a hub or a switch greatly improves reliability because the hub can automatically bypass any ports that are disconnected or have a cabling fault. This is done by having bypass relays inside the concentrator that are energized by current from the stations. If the ring breaks or station goes down, loss of the drive current will release the relay and bypass the station. The ring can then continue operation with the bad segment bypassed. &lt;h3&gt;Who should remove the packet from the ring ?&lt;/h3&gt; There are 3 possibilities-      &lt;ol&gt;&lt;li&gt;&lt;b&gt;The source itself removes the packet after one full round in the ring&lt;/b&gt;.     &lt;/li&gt;&lt;li&gt;&lt;b&gt;The destination removes it after accepting it&lt;/b&gt;: This has two       potential problems. Firstly, the solution won&#39;t work for broadcast or       multicast, and secondly, there would be no way to acknowledge the sender       about the receipt of the packet.     &lt;/li&gt;&lt;li&gt;&lt;b&gt;Have a specialized node only to discard packets&lt;/b&gt;: This is a bad       solution as the specialized node would know that the packet has been       received by the destination only when it receives the packet the second       time and by that time the packet may have actually made about one and half       (or almost two in the worst case) rounds in the ring.      &lt;/li&gt;&lt;/ol&gt; &lt;p&gt; Thus the first solution is adopted with the source itself removing the packet from the ring after a full one round. With this scheme, broadcasting and multicasting can be handled as well as the destination can acknowledge the source about the receipt of the packet (or can tell the source about some error).  &lt;/p&gt;&lt;h3&gt;Token Format&lt;/h3&gt;  &lt;p&gt;The token is the shortest frame transmitted (24 bit)&lt;br /&gt;MSB (Most Significant  Bit) is always transmitted first - as opposed to Ethernet&lt;/p&gt; &lt;blockquote&gt; &lt;table color=&quot;#FF0000&quot; border=&quot;4&quot;&gt;   &lt;tbody&gt;   &lt;tr&gt;     &lt;td&gt;SD&lt;/td&gt;     &lt;td&gt;AC&lt;/td&gt;     &lt;td&gt;ED&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;    &lt;p&gt;&lt;b&gt;SD = Starting Delimiter (1 Octet)&lt;br /&gt;AC = Access Control (1 Octet)&lt;br /&gt;ED =  Ending Delimiter (1 Octet)&lt;/b&gt;&lt;/p&gt; &lt;h4&gt;Starting Delimiter Format:&lt;/h4&gt; &lt;table border=&quot;3&quot;&gt;   &lt;tbody&gt;   &lt;tr&gt;     &lt;td&gt;J&lt;/td&gt;     &lt;td&gt;K&lt;/td&gt;     &lt;td&gt;O&lt;/td&gt;     &lt;td&gt;J&lt;/td&gt;     &lt;td&gt;K&lt;/td&gt;     &lt;td&gt;O&lt;/td&gt;     &lt;td&gt;O&lt;/td&gt;     &lt;td&gt;O&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;b&gt;J = Code Violation&lt;br /&gt;K = Code Violation&lt;/b&gt; &lt;/p&gt; &lt;h4&gt;Access Control Format: &lt;/h4&gt; &lt;table border=&quot;3&quot;&gt;   &lt;tbody&gt;   &lt;tr&gt;     &lt;td&gt;P&lt;/td&gt;     &lt;td&gt;P&lt;/td&gt;     &lt;td&gt;P&lt;/td&gt;     &lt;td&gt;T&lt;/td&gt;     &lt;td&gt;M&lt;/td&gt;     &lt;td&gt;R&lt;/td&gt;     &lt;td&gt;R&lt;/td&gt;     &lt;td&gt;R&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;b&gt;T=Token&lt;/b&gt;&lt;br /&gt;T = 0  for Token&lt;br /&gt;T = 1  for Frame&lt;br /&gt;When a station with a Frame to  transmit detects a token which has a priority equal to or less than the Frame to  be transmitted, it may change the token to a start-of-frame sequence and  transmit the Frame&lt;br /&gt;&lt;br /&gt;&lt;b&gt;P = Priority&lt;br /&gt;&lt;/b&gt;Priority Bits indicate  tokens priority, and therefore, which stations are allowed to use it. Station can  transmit if its priority as at least as high as that of the token.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;M  = Monitor&lt;br /&gt;&lt;/b&gt;The monitor bit is used to prevent a token whose priority is  greater than 0 or any frame from continuously circulating on the ring. If an  active monitor detects a frame or a high priority token with the monitor bit  equal to 1, the frame or token is aborted. This bit shall be transmitted as 0 in  all frame and tokens. The active monitor inspects and modifies this bit. All  other stations shall repeat this bit as received.&lt;/p&gt; &lt;p&gt;&lt;b&gt;R = Reserved bits&lt;br /&gt;&lt;/b&gt;The reserved bits allow station with high  priority Frames to request that the next token be issued at the requested priority.&lt;/p&gt;  &lt;h4&gt;Ending Delimiter Format:&lt;/h4&gt; &lt;table border=&quot;3&quot;&gt;   &lt;tbody&gt;   &lt;tr&gt;     &lt;td&gt;J&lt;/td&gt;     &lt;td&gt;K&lt;/td&gt;     &lt;td&gt;1&lt;/td&gt;     &lt;td&gt;J&lt;/td&gt;     &lt;td&gt;K&lt;/td&gt;     &lt;td&gt;1&lt;/td&gt;     &lt;td&gt;1&lt;/td&gt;     &lt;td&gt;E&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;br /&gt;&lt;b&gt;J = Code Violation&lt;br /&gt;K = Code Violation&lt;br /&gt;I = Intermediate Frame Bit&lt;br /&gt;E = Error Detected Bit&lt;/b&gt;&lt;br /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;Frame Format:&lt;/h3&gt;  &lt;p&gt;MSB (Most Significant Bit) is always transmitted first - as opposed to  Ethernet&lt;/p&gt; &lt;blockquote&gt; &lt;table border=&quot;3&quot;&gt;   &lt;tbody&gt;   &lt;tr&gt;     &lt;td&gt;SD&lt;/td&gt;     &lt;td&gt;AC&lt;/td&gt;     &lt;td&gt;FC&lt;/td&gt;     &lt;td&gt;DA&lt;/td&gt;     &lt;td&gt;SA&lt;/td&gt;     &lt;td&gt;DATA&lt;/td&gt;     &lt;td&gt;CRC&lt;/td&gt;     &lt;td&gt;ED&lt;/td&gt;     &lt;td&gt;FS&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;b&gt;SD=Starting Delimiter(1 octet)&lt;br /&gt;AC=Access Control(1 octet)&lt;br /&gt;    FC = Frame Control (1 Octet)&lt;br /&gt;DA = Destination Address (2 or 6  Octets)&lt;br /&gt;SA = Source Address (2 or 6 Octets)&lt;br /&gt;DATA = Information 0 or more  octets up to 4027&lt;br /&gt;CRC = Checksum(4 Octets)&lt;br /&gt;ED = Ending Delimiter  (1 Octet)&lt;br /&gt;FS=Frame Status&lt;/b&gt;&lt;/p&gt;  &lt;h4&gt;Starting Delimiter Format:&lt;/h4&gt; &lt;table border=&quot;3&quot;&gt;   &lt;tbody&gt;   &lt;tr&gt;     &lt;td&gt;J&lt;/td&gt;     &lt;td&gt;K&lt;/td&gt;     &lt;td&gt;0&lt;/td&gt;     &lt;td&gt;J&lt;/td&gt;     &lt;td&gt;K&lt;/td&gt;     &lt;td&gt;0&lt;/td&gt;     &lt;td&gt;0&lt;/td&gt;     &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;b&gt;J = Code Violation&lt;br /&gt;K = Code Violation&lt;/b&gt;&lt;/p&gt;  &lt;h4&gt;Access Control Format:&lt;/h4&gt; &lt;table border=&quot;3&quot;&gt;   &lt;tbody&gt;   &lt;tr&gt;     &lt;td&gt;P&lt;/td&gt;     &lt;td&gt;P&lt;/td&gt;     &lt;td&gt;P&lt;/td&gt;     &lt;td&gt;T&lt;/td&gt;     &lt;td&gt;M&lt;/td&gt;     &lt;td&gt;R&lt;/td&gt;     &lt;td&gt;R&lt;/td&gt;     &lt;td&gt;R&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;b&gt;T=Token&lt;/b&gt;&lt;/p&gt; &lt;p&gt;T = �0� for Token,&lt;br /&gt;T = �1� for Frame.&lt;/p&gt; &lt;p&gt;When a station with a Frame to transmit detects a token which has a priority  equal to or less than the Frame to be transmitted, it may change the token to a  start-of-frame sequence and transmit the Frame.&lt;/p&gt; &lt;p&gt;&lt;b&gt;P = Priority&lt;br /&gt;&lt;/b&gt;Bits Priority Bits indicate tokens priority, and  therefore, which stations are allowed to use it. Station can transmit if its  priority as at least as high as that of the token.&lt;/p&gt; &lt;p&gt;&lt;b&gt;M = Monitor&lt;br /&gt;&lt;/b&gt;The monitor bit is used to prevent a token whose  priority is greater than 0 or any frame from continuously circulating on the  ring. if an active monitor detects a frame or a high priority token with the  monitor bit equal to 1, the frame or token is aborted. This bit shall be  transmitted as 0 in all frame and tokens. The active monitor inspects and  modifies this bit. All other stations shall repeat this bit as received.&lt;/p&gt; &lt;p&gt;&lt;b&gt;R = Reserved bits&lt;/b&gt; the reserved bits allow station with high priority  Frames to request that the next token be issued at the requested priority &lt;/p&gt;  &lt;h4&gt;Frame Control Format:&lt;/h4&gt; &lt;table border=&quot;3&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;F&lt;/td&gt; &lt;td&gt;F&lt;/td&gt; &lt;td&gt;CONTROL BITS (6 BITS)&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;b&gt;FF= Type of Packet-Regular data packet or MAC layer packet&lt;br /&gt;Control Bits= Used if the packet is for MAC layer protocol itself&lt;/b&gt;  &lt;/p&gt;&lt;h4&gt;Source and Destination Address Format:&lt;/h4&gt; &lt;p&gt;The addresses can be of 2 bytes (local address) or 6 bytes (global address).&lt;/p&gt;  &lt;p&gt;&lt;b&gt;local address format:&lt;/b&gt;&lt;/p&gt; &lt;table border=&quot;3&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;I/G (1 BIT)&lt;/td&gt; &lt;td&gt;NODE ADDRESS (15 BITS)&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;alternatively&lt;br /&gt; &lt;table border=&quot;3&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;I/G (1 BIT)&lt;/td&gt; &lt;td&gt;RING ADDRESS (7 BITS)&lt;/td&gt; &lt;td&gt;NODE ADDRESS (8 BITS)&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;&lt;p&gt;The first bit specifies individual or group address.&lt;/p&gt; &lt;p&gt;&lt;b&gt;universal (global) address format:&lt;/b&gt;&lt;/p&gt; &lt;table border=&quot;3&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;I/G (1 BIT)&lt;/td&gt; &lt;td&gt;L/U (1 BIT)&lt;/td&gt; &lt;td&gt;RING ADDRESS (14 BITS)&lt;/td&gt; &lt;td&gt;NODE ADDRESS (32 BITS)&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;The first bit specifies individual or group address.&lt;br /&gt;The second bit specifies local or global (universal) address.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;local group addresses (16 bits):&lt;/b&gt;&lt;/p&gt; &lt;table border=&quot;3&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;I/G (1 BIT)&lt;/td&gt; &lt;td&gt;T/B(1 BIT)&lt;/td&gt; &lt;td&gt;GROUP ADDRESS (14 BITS)&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;The first bit specifies an individual or group address.&lt;br /&gt;The second bit specifies traditional or bit signature group address.  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Traditional Group Address: &lt;/b&gt;2Exp14 groups can be defined.&lt;br /&gt;&lt;b&gt;Bit Signature Group Address: &lt;/b&gt;14 grtoups are defined. A host can be a member of none or any number of them. For multicasting, those group bits are set to which the packet should go. For broadcasting, all 14 bits are set. A host receives a packet only if it is a member of a group whose corresponding bit is set to 1.  &lt;/p&gt;&lt;p&gt;&lt;b&gt;universal group addresses (16 bits):&lt;/b&gt;&lt;/p&gt; &lt;table border=&quot;3&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;I/G (1 BIT)&lt;/td&gt; &lt;td&gt;RING NUMBER&lt;/td&gt; &lt;td&gt;T/B (1 BIT)&lt;/td&gt; &lt;td&gt;GROUP ADDRESS (14 BITS)&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;The description is similar to as above.  &lt;/p&gt;&lt;h4&gt;Data Format:&lt;/h4&gt; &lt;p&gt;No upper limit on amount of data as such, but it is limited by the token holding time.  &lt;/p&gt;&lt;h4&gt;Checksum:&lt;/h4&gt; &lt;p&gt;The source computes and sets this value. Destination too calculates this value. If the two are different, it indicates an error, otherwise the data may be correct.  &lt;/p&gt;&lt;h4&gt;Frame Status:&lt;/h4&gt; &lt;p&gt;It contains the A and C bits.&lt;/p&gt;&lt;p&gt;&lt;b&gt;A bit set to 1: destination recognized the packet.&lt;br /&gt;C bit set to 1: destination accepted the packet.&lt;/b&gt;&lt;/p&gt;&lt;p&gt;This arrangement provides an automatic acknowledgement for each frame. The A and C bits are present twice in the Frame Status to increase reliability in as much as they are not covered by the checksum.&lt;b&gt;  &lt;/b&gt;&lt;/p&gt;&lt;h4&gt;&lt;b&gt;Ending Delimiter Format:&lt;/b&gt;&lt;/h4&gt; &lt;table border=&quot;3&quot;&gt;   &lt;tbody&gt;   &lt;tr&gt;     &lt;td&gt;J&lt;/td&gt;     &lt;td&gt;K&lt;/td&gt;     &lt;td&gt;1&lt;/td&gt;     &lt;td&gt;J&lt;/td&gt;     &lt;td&gt;K&lt;/td&gt;     &lt;td&gt;1&lt;/td&gt;     &lt;td&gt;I&lt;/td&gt;     &lt;td&gt;E&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;b&gt;&lt;b&gt;J = Code Violation&lt;br /&gt;K = Code Violation&lt;br /&gt;I = Intermediate Frame Bit&lt;br /&gt;&lt;/b&gt;  &lt;/b&gt;  If this bit is set to 1, it indicates that this packet is an intermediate part of a bigger packet, the last packet would have this bit set to 0.&lt;b&gt; &lt;br /&gt;&lt;b&gt; E = Error Detected Bit&lt;br /&gt;&lt;/b&gt;  &lt;/b&gt;  This bit is set if any interface detects an error.&lt;/p&gt;  &lt;/blockquote&gt; &lt;p&gt;This concludes our description of the token ring frame format.&lt;/p&gt;   &lt;hr color=&quot;BLACK&quot;&gt; &lt;h3&gt;Image References:&lt;/h3&gt; &lt;ul&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://www.webopedia.com/FIG/RING.gif&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://www.webopedia.com/FIG/RING.gif&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://www.datacottage.com/nch/anigifs/trhubani.gif&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://www.datacottage.com/nch/anigifs/trhubani.gif&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://ankitjainarain.blogspot.com/feeds/9188762513964185797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/computer-networks-cs425-ieee-8025-token.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/9188762513964185797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/9188762513964185797'/><link rel='alternate' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/computer-networks-cs425-ieee-8025-token.html' title='Computer Networks (CS425)- IEEE 802.5: Token Ring Network'/><author><name>Ankit</name><uri>http://www.blogger.com/profile/05478322170957335992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_zckDpxGeJaU/S8qX85_LlVI/AAAAAAAAAJY/nVMcpJ7-xMw/S220/Ankit+Jainarain+(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3685716557674208478.post-8936953351618439483</id><published>2009-10-28T01:45:00.001+05:30</published><updated>2010-04-18T11:47:24.535+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Network"/><title type='text'>Computer Networks (CS425)- IEEE 802.3 and Ethernet</title><content type='html'>&lt;ul&gt;&lt;li&gt;Very popular LAN standard.  &lt;/li&gt;&lt;li&gt;Ethernet and IEEE 802.3 are distinct standards but as they are very similar to one another these words are used interchangeably. &lt;/li&gt;&lt;li&gt;A standard for a 1-persistent CSMA/CD LAN.  &lt;/li&gt;&lt;li&gt;It covers the physical layer and MAC sublayer protocol.  &lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;Ethernet Physical Layer&lt;/h3&gt; A Comparison of Various Ethernet and IEEE 802.3 Physical-Layer Specifications &lt;p&gt; &lt;table bordercolorlight=&quot;#800000&quot; bordercolordark=&quot;#800000&quot; border=&quot;1&quot; bordercolor=&quot;#800000&quot; height=&quot;169&quot; width=&quot;982&quot;&gt;  &lt;tbody&gt;&lt;tr valign=&quot;TOP&quot;&gt;      &lt;th colspan=&quot;1&quot; rowspan=&quot;2&quot; height=&quot;38&quot; width=&quot;177&quot;&gt;&lt;b&gt;Characteristic&lt;/b&gt;&lt;/th&gt;      &lt;th colspan=&quot;1&quot; rowspan=&quot;2&quot; height=&quot;38&quot; width=&quot;124&quot;&gt;&lt;b&gt;Ethernet Value&lt;/b&gt;&lt;/th&gt;      &lt;th colspan=&quot;5&quot; rowspan=&quot;1&quot; height=&quot;19&quot; width=&quot;634&quot;&gt;&lt;b&gt;IEEE 802.3 Values&lt;/b&gt;&lt;/th&gt; &lt;/tr&gt; &lt;tr valign=&quot;TOP&quot;&gt;      &lt;th align=&quot;LEFT&quot; height=&quot;13&quot; width=&quot;124&quot;&gt;&lt;b&gt;10Base5&lt;/b&gt;&lt;/th&gt;      &lt;th align=&quot;LEFT&quot; height=&quot;13&quot; width=&quot;116&quot;&gt;&lt;b&gt;10Base2&lt;/b&gt;&lt;/th&gt;      &lt;th align=&quot;LEFT&quot; height=&quot;13&quot; width=&quot;179&quot;&gt;&lt;b&gt;10BaseT&lt;/b&gt;&lt;/th&gt;      &lt;th align=&quot;LEFT&quot; height=&quot;13&quot; width=&quot;85&quot;&gt;&lt;b&gt;10BaseF&lt;/b&gt;&lt;/th&gt;      &lt;th align=&quot;LEFT&quot; height=&quot;13&quot; width=&quot;106&quot;&gt;&lt;b&gt;10 Base -TX&lt;/b&gt;&lt;/th&gt;      &lt;th align=&quot;LEFT&quot; height=&quot;13&quot; width=&quot;245&quot;&gt;&lt;b&gt;100BaseT4&lt;/b&gt;&lt;/th&gt; &lt;/tr&gt; &lt;tr valign=&quot;TOP&quot;&gt;&lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;177&quot;&gt;      &lt;p&gt;Data rate (Mbps)&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;124&quot;&gt;      &lt;p&gt;10&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;124&quot;&gt;      &lt;p&gt;10&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;116&quot;&gt;      &lt;p&gt;10&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;179&quot;&gt;      &lt;p&gt;10&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;85&quot;&gt;      &lt;p&gt;10&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;106&quot;&gt;      100      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;245&quot;&gt;      &lt;p&gt;100&lt;/p&gt;      &lt;/td&gt; &lt;/tr&gt; &lt;tr valign=&quot;TOP&quot;&gt;&lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;177&quot;&gt;      &lt;p&gt;Signaling method&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;124&quot;&gt;      &lt;p&gt;Baseband&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;124&quot;&gt;      &lt;p&gt;Baseband&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;116&quot;&gt;      &lt;p&gt;Baseband&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;179&quot;&gt;      &lt;p&gt;Baseband&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;85&quot;&gt;      &lt;p&gt;Baseband&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;106&quot;&gt;      Baseband      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;245&quot;&gt;      &lt;p&gt;Baseband&lt;/p&gt;      &lt;/td&gt; &lt;/tr&gt; &lt;tr valign=&quot;TOP&quot;&gt;&lt;td align=&quot;left&quot; nowrap=&quot;nowrap&quot; height=&quot;19&quot; width=&quot;177&quot;&gt;      &lt;p&gt;Maximum segment length (m)&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;124&quot;&gt;      &lt;p&gt;500&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;124&quot;&gt;      &lt;p&gt;500&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;116&quot;&gt;      &lt;p&gt;185&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;179&quot;&gt;      &lt;p&gt;100&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;85&quot;&gt;      &lt;p&gt;2,000&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;106&quot;&gt;      100      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;245&quot;&gt;      &lt;p&gt;100&lt;/p&gt;      &lt;/td&gt; &lt;/tr&gt; &lt;tr valign=&quot;TOP&quot;&gt;&lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;177&quot;&gt;      &lt;p&gt;Media&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;left&quot; nowrap=&quot;nowrap&quot; height=&quot;19&quot; width=&quot;124&quot;&gt;      &lt;p&gt;50-ohm coax (thick)&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;left&quot; nowrap=&quot;nowrap&quot; height=&quot;19&quot; width=&quot;124&quot;&gt;      &lt;p&gt;50-ohm coax (thick)&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;left&quot; nowrap=&quot;nowrap&quot; height=&quot;19&quot; width=&quot;116&quot;&gt;      &lt;p&gt;50-ohm coax (thin)&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;left&quot; nowrap=&quot;nowrap&quot; height=&quot;19&quot; width=&quot;179&quot;&gt;      &lt;p&gt;Unshielded twisted-pair cable&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;85&quot;&gt;      &lt;p&gt;Fiber-optic&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;left&quot; nowrap=&quot;nowrap&quot; height=&quot;19&quot; width=&quot;106&quot;&gt;      Cat 5 UTP      &lt;/td&gt;      &lt;td align=&quot;left&quot; nowrap=&quot;nowrap&quot; height=&quot;19&quot; width=&quot;245&quot;&gt;      &lt;p&gt;Unshielded twisted-pair cable&lt;/p&gt;      &lt;/td&gt; &lt;/tr&gt; &lt;tr valign=&quot;TOP&quot;&gt;&lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;177&quot;&gt;      Nodes/segment      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;124&quot;&gt;      100      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;124&quot;&gt;      100      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;116&quot;&gt;      30      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;179&quot;&gt;      1024      &lt;/td&gt;      &lt;td align=&quot;left&quot; nowrap=&quot;nowrap&quot; height=&quot;19&quot; width=&quot;85&quot;&gt;      1024      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;106&quot;&gt;     &lt;br /&gt;&lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;245&quot;&gt;     &lt;br /&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;tr valign=&quot;TOP&quot;&gt;&lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;177&quot;&gt;      &lt;p&gt;Topology&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;124&quot;&gt;      &lt;p&gt;Bus&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;124&quot;&gt;      &lt;p&gt;Bus&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;116&quot;&gt;      &lt;p&gt;Bus&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;179&quot;&gt;      &lt;p&gt;Star&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;left&quot; nowrap=&quot;nowrap&quot; height=&quot;19&quot; width=&quot;85&quot;&gt;      &lt;p&gt;Point-to-point&lt;/p&gt;      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;106&quot;&gt;      Bus      &lt;/td&gt;      &lt;td align=&quot;LEFT&quot; height=&quot;19&quot; width=&quot;245&quot;&gt;      &lt;p&gt;Bus&lt;/p&gt;      &lt;/td&gt; &lt;/tr&gt;  &lt;/tbody&gt;&lt;/table&gt;  &lt;/p&gt;&lt;p&gt; 10Base5 means it operates at 10 Mbps, uses baseband signaling and can support segments of up to 500 meters. The 10Base5 cabling is popularly called the Thick Ethernet. Vampire taps are used for their connections where a pin is carefully forced halfway into the co-axial cable&#39;s core as shown in the figure below. The 10Base2 or Thin Ethernet bends easily and is connected using standard BNC connectors to form T junctions (shown in the figure below). In the 10Base-T scheme a different kind of wiring pattern is followed in which all stations have a twisted-pair cable running to a central hub (see below). The difference between the different physical connections is shown below:&lt;br /&gt;&lt;/p&gt;&lt;center&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec06/cabling.jpg&quot; /&gt;&lt;br /&gt;&lt;b&gt;(a) 10Base5 (b)10Base2 (c)10Base-T&lt;/b&gt; &lt;/center&gt;&lt;br /&gt;All 802.3 baseband systems use Manchester encoding , which is a way for receivers to unambiguously determine the start, end or middle of each bit without reference to an external clock. There is a restriction on the minimum node spacing (segment length between two nodes) in 10Base5 and 10Base2 and that is 2.5 meter and 0.5 meter respectively. The reason is that if two nodes are closer than the specified limit then there will be very high current which may cause trouble in detection of signal at the receiver end. Connections from station to cable of 10Base5 (i.e. Thick Ethernet) are generally made using vampire taps and to 10Base2 (i.e. Thin Ethernet) are made using industry standard BNC connectors to form T junctions. To allow larger networks, multiple segments can be connected by repeaters as shown. A repeater is a physical layer device. It receives, amplifies and retransmits signals in either direction. &lt;p&gt;&lt;b&gt;Note: &lt;/b&gt;To connect multiple segments, amplifier is not used because amplifier also amplifies the noise in the signal, whereas repeater regenerates signal after removing the noise. &lt;/p&gt;&lt;h3&gt;&lt;b&gt;IEEE 802.3 Frame Structure&lt;/b&gt;&lt;/h3&gt;  &lt;p&gt; &lt;/p&gt;&lt;center&gt; &lt;table bordercolorlight=&quot;#800000&quot; bordercolordark=&quot;#800000&quot; border=&quot;3&quot; bordercolor=&quot;#800000&quot;&gt; &lt;tbody&gt;&lt;tr align=&quot;CENTER&quot;&gt; &lt;th&gt;Preamble&lt;br /&gt;(7 bytes)&lt;/th&gt; &lt;th&gt;Start of Frame Delimiter&lt;br /&gt;(1 byte)&lt;/th&gt; &lt;th&gt;Dest. Address&lt;br /&gt;(2/6 bytes)&lt;/th&gt; &lt;th&gt;Source Address&lt;br /&gt;(2/6 bytes)&lt;/th&gt; &lt;th&gt;Length&lt;br /&gt;(2 bytes)&lt;/th&gt; &lt;th&gt;802.2 Header+Data&lt;br /&gt;(46-1500 bytes)&lt;/th&gt; &lt;th&gt;Frame Checksum&lt;br /&gt;(4 bytes)&lt;/th&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/center&gt; &lt;h4&gt;&lt;i&gt;A brief description of each of the fields&lt;/i&gt;&lt;/h4&gt; &lt;ul&gt;&lt;li&gt; &lt;b&gt;Preamble :&lt;/b&gt;Each frame starts with a &lt;u&gt;preamble&lt;/u&gt; of 7 bytes, each byte containing the bit pattern 10101010. Manchester encoding is employed here and this enables the receiver&#39;s clock to synchronize with the sender&#39;s and initialise itself. &lt;/li&gt;&lt;li&gt; &lt;b&gt;Start of Frame Delimiter :&lt;/b&gt;This field containing a byte sequence 10101011 denotes the start of the frame itself. &lt;/li&gt;&lt;li&gt; &lt;b&gt;Dest. Address :&lt;/b&gt;The standard allows 2-byte and 6-byte addresses. Note that the 2-byte addresses are always local addresses while the 6-byte ones can be local or global.&lt;br /&gt;&lt;br /&gt; &lt;i&gt;&lt;b&gt;2-Byte Address    - Manually assigned address&lt;/b&gt;&lt;/i&gt; &lt;table bordercolordark=&quot;#800000&quot; bordercolorlight=&quot;#800000&quot; border=&quot;2&quot; bordercolor=&quot;#800000&quot;&gt; &lt;tbody&gt;&lt;tr align=&quot;CENTER&quot;&gt; &lt;th&gt;Individual(0)/Group(1)&lt;br /&gt;(1 bit)&lt;/th&gt; &lt;th&gt;Address of the machine&lt;br /&gt;(15 bits)&lt;/th&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;6-Byte Address    - Every Ethernet card with globally unique address&lt;/b&gt;&lt;/i&gt; &lt;table bordercolorlight=&quot;#800000&quot; bordercolordark=&quot;#800000&quot; border=&quot;2&quot; bordercolor=&quot;#800000&quot;&gt; &lt;tbody&gt;&lt;tr align=&quot;CENTER&quot;&gt; &lt;th&gt;Individual(0)/Group(1)&lt;br /&gt;(1 bit)&lt;/th&gt; &lt;th&gt;Universal(0)/Local(1)&lt;br /&gt;(1 bit)&lt;/th&gt; &lt;th&gt;Address of the machine&lt;br /&gt;(46 bits)&lt;/th&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;b&gt;Multicast :&lt;/b&gt; Sending to group of stations. This is ensured by setting the first bit in either 2-byte/6-byte addresses to 1.&lt;br /&gt;&lt;b&gt;Broadcast :&lt;/b&gt; Sending to all stations. This can be done by setting all bits in the address field to 1.All Ethernet cards(Nodes) are a member of this group. &lt;p&gt;  &lt;/p&gt;&lt;/li&gt;&lt;li&gt; &lt;b&gt;Source Address :&lt;/b&gt;Refer to Dest. Address. Same holds true over here.   &lt;/li&gt;&lt;li&gt; &lt;b&gt;Length :&lt;/b&gt; The &lt;u&gt;Length&lt;/u&gt; field tells how many bytes are present in the data field, from a minimum of 0 to a maximum of 1500. The Data and padding together can be from 46bytes to 1500 bytes as the valid frames must be at least 64 bytes long, thus if data is less than 46 bytes the amount of padding can be found out by length field.   &lt;/li&gt;&lt;li&gt; &lt;b&gt;Data :&lt;/b&gt;Actually this field can be split up into two parts - Data(0-1500 bytes) and Padding(0-46 bytes).&lt;br /&gt;&lt;i&gt;Reasons for having a minimum length frame :&lt;/i&gt; &lt;ol&gt;&lt;li&gt;To prevent a station from completing the transmission of a short frame before the first bit has even reached the far end of the cable, where it may collide with another frame. Note that the transmission time ought to be greater than twice the propagation time between two farthest nodes. &lt;center&gt; &lt;b&gt;transmission time for frame &gt; 2*propagation time between two farthest nodes&lt;/b&gt; &lt;/center&gt; &lt;/li&gt;&lt;li&gt;When a transceiver detects a collision, it truncates the current frame, which implies that stray bits and pieces of frames appear on the cable all the time. Hence to distinguish between valid frames from garbage, 802.3 states that the minimum length of valid frames ought to be 64 bytes (from Dest. Address to Frame Checksum). &lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;li&gt; &lt;b&gt;Frame Checksum :&lt;/b&gt; It is a 32-bit hash code of the data. If some bits are erroneously received by the destination (due to noise on the cable), the checksum computed by the destination wouldn&#39;t match with the checksum sent and therefore the error will be detected. The checksum algorithm is a cyclic redundancy checksum (CRC) kind. The checksum includes the packet from Dest. Address to Data field. &lt;/li&gt;&lt;/ul&gt; &lt;p&gt; &lt;/p&gt;&lt;h3&gt;&lt;b&gt;Ethernet Frame Structure&lt;/b&gt;&lt;/h3&gt; &lt;p&gt; &lt;/p&gt;&lt;center&gt; &lt;table bordercolordark=&quot;#800000&quot; bordercolorlight=&quot;#800000&quot; border=&quot;2&quot; bordercolor=&quot;#800000&quot;&gt; &lt;tbody&gt;&lt;tr align=&quot;CENTER&quot;&gt; &lt;th&gt;Preamble&lt;br /&gt;(8 bytes)&lt;/th&gt; &lt;th&gt;Dest. Address&lt;br /&gt;(2/6 bytes)&lt;/th&gt; &lt;th&gt;Source Address&lt;br /&gt;(2/6 bytes)&lt;/th&gt; &lt;th&gt;Type&lt;br /&gt;(2 bytes)&lt;/th&gt; &lt;th&gt;Data&lt;br /&gt;(46-1500 bytes)&lt;/th&gt; &lt;th&gt;Frame Checksum&lt;br /&gt;(4 bytes)&lt;/th&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/center&gt; &lt;h4&gt;&lt;i&gt;A brief description of the fields which differ from IEEE 802.3&lt;/i&gt;&lt;/h4&gt; &lt;ul&gt;&lt;li&gt; &lt;b&gt;Preamble :&lt;/b&gt;The &lt;i&gt;Preamble&lt;/i&gt; and &lt;i&gt;Start of Frame Delimiter&lt;/i&gt; are merged into one in Ethernet standard. However, the contents of the first 8 bytes remains the same in both. &lt;/li&gt;&lt;li&gt; &lt;b&gt;Type :&lt;/b&gt;The length field of IEEE 802.3 is replaced by &lt;u&gt;Type&lt;/u&gt; field, which denotes the type of packet being sent viz. IP, ARP, RARP, etc. If the field indicates a value less than 1500 bytes then it is length field of 802.3 else it is the type field of Ethernet packet. &lt;/li&gt;&lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;&lt;h3&gt;Truncated Binary Exponential Back off&lt;/h3&gt; In case of collision the node transmitting backs off by a random number of slots , each slot time being equal to transmission time of 512 bits (64 Byte- minimum size of a packet) in the following fashion: &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;span style=&quot;color:#800000;&quot;&gt;No of Collision  &lt;/span&gt;&lt;/u&gt;&lt;/b&gt;                          &lt;span style=&quot;color:#800000;&quot;&gt;&lt;b&gt;&lt;u&gt;Random No of slots&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;1st                                                0-1&lt;/p&gt; &lt;p&gt;2nd                                               0-3&lt;/p&gt; &lt;p&gt;3rd                                                0-7&lt;/p&gt; &lt;p&gt;|                                                        |&lt;/p&gt; &lt;p&gt;|                                                        |&lt;/p&gt; &lt;p&gt;10th                                                0-1023&lt;/p&gt; &lt;p&gt;---------------------------------------------&lt;/p&gt; &lt;p&gt;11th                                                0-1023&lt;/p&gt; &lt;p&gt;12th                                                0-1023&lt;/p&gt; &lt;p&gt;|                                                        |&lt;/p&gt; &lt;p&gt;16th                                                0-1023&lt;/p&gt; &lt;p&gt;In general after i collisions a random number between 0-2^i-1 is chosen , and that number of slots is skipped. However, after 10 collisions have been reached the randomization interval is frozen at maximum of 1023 slots. After 16 collisions the controller reports failure back to the computer.&lt;/p&gt;  &lt;h3&gt;5-4-3 Rule&lt;/h3&gt;Each version of 802.3 has a maximum cable length per segment because long propagation time leads to difficulty in collision detection. To compensate for this the transmission time has to be increased which can be achieved by slowing down the transmission rate or increasing the packet size, neither of which is desirable. Hence to allow for large networks, multiple cables are connected via &lt;b&gt;repeaters&lt;/b&gt;. Between any two nodes on an Ethernet network, there can be at most five segments, four repeaters and three populated segments (non-populated segments are those which do not have any machine connected between the two repeaters). This is known as the &lt;b&gt;5-4-3 Rule&lt;/b&gt;.   &lt;hr color=&quot;BLACK&quot;&gt; &lt;h3&gt;Image References:&lt;/h3&gt; &lt;span&gt;&lt;a href=&quot;http://homepages.ius.edu/rwisman/b438/Html/4-14.jpg&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://homepages.ius.edu/rwisman/b438/Html/4-14.jpg&lt;/a&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://ankitjainarain.blogspot.com/feeds/8936953351618439483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/computer-networks-cs425-ieee-8023-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/8936953351618439483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/8936953351618439483'/><link rel='alternate' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/computer-networks-cs425-ieee-8023-and.html' title='Computer Networks (CS425)- IEEE 802.3 and Ethernet'/><author><name>Ankit</name><uri>http://www.blogger.com/profile/05478322170957335992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_zckDpxGeJaU/S8qX85_LlVI/AAAAAAAAAJY/nVMcpJ7-xMw/S220/Ankit+Jainarain+(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3685716557674208478.post-5526107826212979224</id><published>2009-10-28T01:43:00.001+05:30</published><updated>2010-04-18T11:47:24.535+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Network"/><title type='text'>CSMA/CA, Contention Free Protocols and Limited Contention Protocols</title><content type='html'>&lt;center&gt;&lt;h2&gt;CSMA with Collision Avoidance&lt;/h2&gt;&lt;/center&gt;&lt;p&gt; We have observed that CSMA/CD would break down in wireless networks because of hidden node and exposed nodes problems. We will have a quick recap of these two problems through examples.  &lt;/p&gt;&lt;h3&gt;Hidden Node Problem&lt;/h3&gt; In the case of wireless network it is possible that A is sending a message to B, but C is out of its range and hence while &quot;listening&quot; on the network it will find the network to be free and might try to send packets to B at the same time as A. So, there will be a collision at B. The problem can be looked upon as if A and C are hidden from each other. Hence it is called the &quot;hidden node problem&quot;. &lt;h3&gt;Exposed Node Problem&lt;/h3&gt;If C is transmitting a message to D and B wants to transmit a message to A, B will find the network to be busy as B hears C trnasmitting. Even if B would have transmitted to A, it would not have been a problem at A or D. CSMA/CD would not allow it to transmit message to A, while the two transmissions could have gone in parallel.&lt;br /&gt;&lt;center&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec05/image002.gif&quot; /&gt; &lt;/center&gt;&lt;br /&gt; &lt;h3&gt;Addressing hidden node problem (CSMA/CA)&lt;/h3&gt; Consider the figure above.Suppose A wants to send a packet to B. Then it will first send a small packet to B called &lt;b&gt;&quot;Request to Send&quot; (RTS)&lt;/b&gt;. In response, B sends a small packet to A called &lt;b&gt;&quot;Clear to Send&quot; (CTS)&lt;/b&gt;. Only after A receives a CTS, it transmits the actual data. Now, any of the nodes which can hear either CTS or RTS assume the network to be busy. Hence even if some other node which is out of range of both A and B sends an RTS to C (which can hear at least one of the RTS or CTS between A and B), C would not send a CTS to it and hence the communication would not be established between C and D. &lt;p&gt;One issue that needs to be addressed is how long the rest of the nodes should wait before they can transmit data over the network. The answer is that the RTS and CTS would carry some information about the size of the data that B intends to transfer. So, they can calculate time that would be required for the transmission to be over and assume the network to be free after that.Another interesting issue is what a node should do if it hears RTS but not a corresponding CTS. One possibility is that it assumes the recipient node has not responded and hence no transmission is going on, but there is a catch in this. It is possible that the node hearing RTS is just on the boundary of the node sending CTS. Hence, it does hear CTS but the signal is so deteriorated that it fails to recognize it as a CTS. Hence to be on the safer side, a node will not start transmission if it hears either of an RTS or a CTS. &lt;/p&gt;&lt;p&gt;The assumption made in this whole discussion is that if a node X can send packets to a node Y, it can also receive a packet from Y, which is a fair enough assumption given the fact that we are talking of a local network where standard instruments would be used. If that is not the case additional complexities would get introduced in the system. &lt;/p&gt;&lt;h3&gt;Does CSMA/CD work universally in the wired networks ?&lt;/h3&gt;The problem of range is there in wired networks as well in the form of deterioration of signals. Normally to counter this, we use repeaters, which can regenerate the original signal from a deteriorated one. But does that mean that we can build as long networks as we want with repeaters. The answer, unfortunately, is NO! The reason is the beyond a certain length CSMA/CD will break down. &lt;p&gt;The mechanism of collision detection which CSMA/CD follows is through listening while talking. What this means is so long as a node is transmitting the packet, it is listening on the cable. If the data it listens to is different from the data it is transmitting it assumes a collision. Once it has stopped transmitting the packet, and has not detected collision while transmission was going on, it assumes that the transmission was successful. The problem arises when the distance between the two nodes is too large. Suppose A wants to transmit some packet to B which is at a very large distance from B. Data can travel on cable only at a finite speed (usually 2/3c, c being the speed of light). So, it is possible that the packet has been transmitted by A onto the cable but the first bit of the packet has not yet reached B. In that case, if a collision occurs, A would be unaware of it occurring. Therefore there is problem in too long a network. &lt;/p&gt;&lt;p&gt;Let us try to parametrize the above problem. Suppose &quot;t&quot; is the time taken for the node A to transmit the packet on the cable and &quot;T&quot; is the time , the packet takes to reach from A to B. Suppose transmission at A starts at time t0. In the worst case the collision takes place just when the first packet is to reach B. Say it is at t0+T-e (e being very small). Then the collision information will take T-e time to propagate back to A. So, at t0+2(T-e) A should still be transmitting. Hence, for the correct detection of collision (ignoring e) &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;center&gt;&lt;h3&gt;t &gt; 2T&lt;/h3&gt;&lt;/center&gt; &lt;p&gt;t increases with the number of bits to be transferred and decreases with the rate of transfer (bits per second). T increases with the distance between the nodes and decreases with the speed of the signal (usually 2/3c). We need to either keep t large enough or T as small. We do not want to live with lower rate of bit transfer and hence slow networks. We can not do anything about the speed of the signal. So what we can rely on is the minimum size of the packet and the distance between the two nodes. Therefore, we fix some minimum size of the packet and if the size is smaller than that, we put in some extra bits to make it reach the minimum size. Accordingly we fix the maximum distance between the nodes. Here too, there is a tradeoff to be made. We do not want the minimum size of the packets to be too large since that wastes lots of resources on cable. At the same time we do not want the distance between the nodes to be too small. Typical minimum packet size is 64 bytes and the corresponding distance is 2-5 kilometers. &lt;/p&gt;&lt;center&gt;&lt;h2&gt;Collision Free Protocols&lt;/h2&gt;&lt;/center&gt;Although collisions do not occur with CSMA/CD once a station has unambigously seized the channel, they can still occur during the contention period. These collisions adversely affect the efficiency of transmission. Hence some protocols have been developed which are contention free. &lt;h3&gt;Bit-Map Method&lt;/h3&gt;In this method, there N slots. If node 0 has a frame to send, it transmit a 1 bit during the first slot. No other node is allowed to transmit during this period. Next node 1 gets a chance to transmit 1 bit if it has something to send, regardless of what node 0 had transmitted. This is done for all the nodes. In general node j may declare the fact that it has a frsme to send by inserting a 1 into slot j. Hence after all nodes have passed, each node has complete knowledge of who wants to send a frame. Now they begin transmitting in numerical order. Since everyone knows who is transmitting and when, there could never be any collision. &lt;p&gt;The basic problem with this protocol is its inefficiency during low load. If a node has to transmit and no other node needs to do so, even then it has to wait for the bitmap to finish. Hence the bitmap will be repeated over and over again if very few nodes want to send wasting valuable bandwidth. &lt;/p&gt;&lt;h3&gt;Binary Countdown&lt;/h3&gt; In this protocol, a node which wants to signal that it has a frame to send does so by writing its address into the header as a binary number. The arbitration is such that as soon as a node sees that a higher bit position that is 0 in its address has been overwritten with a 1, it gives up. The final result is the address of the node which is allowed to send. After the node has transmitted the whole process is repeated all over again. Given below is an example situation. &lt;center&gt; &lt;table border=&quot;0&quot;&gt; &lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Nodes&lt;/th&gt;&lt;th&gt;Addresses&lt;/th&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;A&lt;/td&gt;&lt;td&gt;0010&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;B&lt;/td&gt;&lt;td&gt;0101&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;C&lt;/td&gt;&lt;td&gt;1010&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;D&lt;/td&gt;&lt;td&gt;1001&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;----&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;1010&lt;/td&gt;&lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/center&gt;Node C having higher priority gets to transmit. The problem with this protocol is that the nodes with higher address always wins. Hence this creates a priority which is highly unfair and hence undesirable. &lt;center&gt;&lt;h2&gt;Limited Contention Protocols&lt;/h2&gt;&lt;/center&gt;Both the type of protocols described above - Contention based and Contention - free has their own problems. Under conditions of light load, contention is preferable due to its low delay. As the load increases, contention becomes increasingly less attractive, because the overload associated with channel arbitration becomes greater. Just the reverse is true for contention - free protocols. At low load, they have high delay, but as the load increases , the channel efficiency improves rather than getting worse as it does for contention protocols. &lt;p&gt; Obviously it would be better if one could combine the best properties of the contention and contention - free protocols, that is, protocol which used contention at low loads to provide low delay, but used a cotention-free technique at high load to provide good channel efficiency. Such protocols do exist and are called Limited contention protocols. &lt;/p&gt;&lt;p&gt; It is obvious that the probablity of some station aquiring the channel could only be increased by decreasing the amount of competition. The limited contention protocols do exactly that. They first divide the stations up into ( not necessarily disjoint ) groups. Only the members of group 0 are permitted to compete for slot 0. The competition for aquiring the slot within a group is contention based. If one of the members of that group succeeds, it aquires the channel and transmits a frame. If there is collision or no node of a particular group wants to send then the members of the next group compete for the next slot. The probablity of a particular node is set to a particular value ( optimum ). &lt;/p&gt;&lt;h3&gt;Adaptive Tree Walk Protocol&lt;/h3&gt;The following is the method of adaptive tree protocol. Initially all the nodes are allowed to try to aquire the channel. If it is able to aquire the channel, it sends its frame. If there is collision then the nodes are divided into two equal groups and only one of these groups compete for slot 1. If one of its member aquires the channel then the next slot is reserved for the other group. On the other hand, if there is a collision then that group is again subdivided and the same process is followed. This can be better understood if the nodes are thought of as being organised in a binary tree as shown in the following figure.&lt;br /&gt;&lt;center&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec05/tree.gif&quot; /&gt; &lt;/center&gt;&lt;br /&gt;Many improvements could be made to the algorithm. For example, consider the case of nodes G and H being the only ones wanting to transmit. At slot 1 a collision will be detected and so 2 will be tried and it will be found to be idle. Hence it is pointless to probe 3 and one should directly go to 6,7. &lt;hr color=&quot;BLACK&quot;&gt; &lt;h3&gt;Image References:&lt;/h3&gt; &lt;ul&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://www.ccs.neu.edu/course/csg150/Solutions-III_files/image002.gif&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://www.ccs.neu.edu/course/csg150/Solutions-III_files/image002.gif&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt; &lt;hr color=&quot;BLACK&quot;&gt;</content><link rel='replies' type='application/atom+xml' href='http://ankitjainarain.blogspot.com/feeds/5526107826212979224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/csmaca-contention-free-protocols-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/5526107826212979224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/5526107826212979224'/><link rel='alternate' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/csmaca-contention-free-protocols-and.html' title='CSMA/CA, Contention Free Protocols and Limited Contention Protocols'/><author><name>Ankit</name><uri>http://www.blogger.com/profile/05478322170957335992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_zckDpxGeJaU/S8qX85_LlVI/AAAAAAAAAJY/nVMcpJ7-xMw/S220/Ankit+Jainarain+(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3685716557674208478.post-8954571647960632421</id><published>2009-10-28T01:41:00.001+05:30</published><updated>2010-04-18T11:47:24.536+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Network"/><title type='text'>Computer Networks (CS425)- Multiplexing, Network Topology, Aloha and CSMA/CD</title><content type='html'>&lt;h3&gt;Multiplexing&lt;/h3&gt; When two communicating nodes are connected through a media, it generally happens that bandwidth of media is several  times greater than that of the communicating nodes. Transfer of a single signal at a time is both slow and expensive.  The whole capacity of the link is not being utilized in this case. This link can be further exploited by sending  several signals combined into one. This combining of signals into one is called multiplexing.  &lt;ol&gt;&lt;li&gt;&lt;b&gt;Frequency Division Multiplexing (FDM): &lt;/b&gt;This is possible in the case where transmission media has a bandwidth  than the required bandwidth of signals to be transmitted. A number of signals can be transmitted at the same time.  Each source is allotted a frequency range in which it can transfer it&#39;s signals, and a suitable frequency gap is  given between two adjescent signals to avoid overlapping. This is type of multiplexing is commonly seen in the cable  TV networks.&lt;br /&gt;&lt;center&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec04/multip10.gif&quot; /&gt; &lt;/center&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Time Division Multiplexing (TDM): &lt;/b&gt;This is possible when data transmission rate of the media is much higher  than that of the data rate of the source. Multiple signals can be transmitted if each signal is allowed to be  transmitted for a definite amount of time. These time slots are so small that all transmissions appear to be in parallel. &lt;ol&gt;&lt;li&gt;&lt;b&gt;Synchronous TDM: &lt;/b&gt;Time slots are preassigned and are fixed. Each source is given it&#39;s time slot at every  turn due to it. This turn may be once per cycle, or several turns per cycle ,if it has a high data transfer rate, or  may be once in a no. of cycles if it is slow. This slot is given even if the source is not ready with data. So this  slot is transmitted empty.&lt;br /&gt;&lt;center&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec04/multip5.gif&quot; /&gt; &lt;/center&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Asynchronous TDM: &lt;/b&gt; In this method, slots are not fixed. They are allotted dynamically depending on speed  of sources, and whether they are ready for transmission.&lt;br /&gt;&lt;center&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec04/multip13.gif&quot; /&gt; &lt;/center&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;/ol&gt;  &lt;h3&gt;Network Topologies&lt;/h3&gt; A network topology is the basic design of a computer network. It is very much like a map of a road. It details how key  network components such as nodes and links are interconnected. A network&#39;s topology is comparable to the blueprints of  a new home in which components such as the electrical system, heating and air conditioning system, and plumbing are  integrated into the overall design.  Taken from the Greek work &quot;Topos&quot; meaning &quot;Place,&quot; Topology, in relation to networking, describes the configuration of  the network; including the location of the workstations and wiring connections. Basically it provides a definition of  the components of a Local Area Network (LAN). A topology, which is a pattern of interconnections among nodes,  influences a network&#39;s cost and performance.  There are three primary types of network topologies which refer to the physical and logical layout of the Network  cabling. They are:  &lt;ol&gt;&lt;li&gt;&lt;b&gt;Star Topology: &lt;/b&gt;All devices connected with a Star setup communicate through a central Hub by cable segments.  Signals are transmitted and received through the Hub. It is the simplest and the oldest and all the telephone switches  are based on this. In a star topology, each network device has a home run of cabling back to a network hub, giving each  device a separate connection to the network. So, there can be multiple connections in parallel.&lt;br /&gt;&lt;center&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec04/star.gif&quot; /&gt; &lt;/center&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Advantages&lt;/b&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Network administration and error detection is easier because problem is isolated to central node  &lt;/li&gt;&lt;li&gt;Networks runs even if one host fails  &lt;/li&gt;&lt;li&gt;Expansion becomes easier and scalability of the network increases  &lt;/li&gt;&lt;li&gt;More suited for larger networks  &lt;/li&gt;&lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Disadvantages&lt;/b&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Broadcasting and multicasting is not easy because some extra functionality needs to be provided to the central hub  &lt;/li&gt;&lt;li&gt;If the central node fails, the whole network goes down; thus making the switch some kind of a bottleneck  &lt;/li&gt;&lt;li&gt;Installation costs are high because each node needs to be connected to the central switch  &lt;/li&gt;&lt;/ul&gt; &lt;p&gt; &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Bus Topology: &lt;/b&gt;The simplest and one of the most common of all topologies, Bus consists of a single cable,  called a Backbone, that connects all workstations on the network using a single line. All transmissions must pass  through each of the connected devices to complete the desired request. Each workstation has its own individual signal  that identifies it and allows for the requested data to be returned to the correct originator. In the Bus Network,  messages are sent in both directions from a single point and are read by the node (computer or peripheral on the  network) identified by the code with the message. Most Local Area Networks (LANs) are Bus Networks because the  network will continue to function even if one computer is down. This topology works equally well for either peer to  peer or client server. &lt;br /&gt;&lt;center&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec04/bus.gif&quot; /&gt; &lt;/center&gt;&lt;br /&gt;The purpose of the terminators at either end of the network is to stop the signal being reflected back.  &lt;p&gt;&lt;b&gt;Advantages&lt;/b&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Broadcasting and multicasting is much simpler  &lt;/li&gt;&lt;li&gt;Network is redundant in the sense that failure of one node doesn&#39;t effect the network. The other part may still function properly &lt;/li&gt;&lt;li&gt;Least expensive since less amount of cabling is required and no network switches are required  &lt;/li&gt;&lt;li&gt;Good for smaller networks not requiring higher speeds  &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;b&gt;Disadvantages&lt;/b&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Trouble shooting and error detection becomes a problem because, logically, all nodes are equal  &lt;/li&gt;&lt;li&gt;Less secure because sniffing is easier  &lt;/li&gt;&lt;li&gt;Limited in size and speed  &lt;/li&gt;&lt;/ul&gt; &lt;p&gt; &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Ring Topology: &lt;/b&gt;All the nodes in a Ring Network are connected in a closed circle of cable. Messages that are  transmitted travel around the ring until they reach the computer that they are addressed to, the signal being refreshed  by each node. In a ring topology, the network signal is passed through each network card of each device and passed on  to the next device. Each device processes and retransmits the signal, so it is capable of supporting many devices in a  somewhat slow but very orderly fashion. There is a very nice feature that everybody gets a chance to send a packet and  it is guaranteed that every node gets to send a packet in a finite amount of time. &lt;br /&gt;&lt;center&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec04/ring.gif&quot; /&gt; &lt;/center&gt; &lt;p&gt;&lt;b&gt;Advantages&lt;/b&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Broadcasting and multicasting is simple since you just need to send out one message  &lt;/li&gt;&lt;li&gt;Less expensive since less cable footage is required  &lt;/li&gt;&lt;li&gt;It is guaranteed that each host will be able to transmit within a finite time interval  &lt;/li&gt;&lt;li&gt;Very orderly network where every device has access to the token and the opportunity to transmit  &lt;/li&gt;&lt;li&gt;Performs better than a star network under heavy network load  &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;b&gt;Disadvantages&lt;/b&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Failure of one node brings the whole network down  &lt;/li&gt;&lt;li&gt;Error detection and network administration becomes difficult  &lt;/li&gt;&lt;li&gt;Moves, adds and changes of devices can effect the network  &lt;/li&gt;&lt;li&gt;It is slower than star topology under normal load  &lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;/ol&gt; &lt;p&gt; Generally, a BUS architecture is preferred over the other topologies - ofcourse, this is a very subjective opinion and  the final design depends on the requirements of the network more than anything else. Lately, most networks are shifting  towards the STAR topology. Ideally we would like to design networks, which physically resemble the STAR topology, but  behave like BUS or RING topology.  &lt;/p&gt;&lt;hr color=&quot;BLACK&quot;&gt; &lt;center&gt;&lt;h2&gt;Data Link Layer&lt;/h2&gt;&lt;/center&gt; Data link layer can be characterized by two types of layers: &lt;ol&gt;&lt;li&gt;Medium Access Layer (MAL)  &lt;/li&gt;&lt;li&gt;Logical Link Layer &lt;/li&gt;&lt;/ol&gt; &lt;h3&gt;Aloha Protocols&lt;/h3&gt; &lt;h4&gt;History&lt;/h4&gt; The Aloha protocol was designed as part of a project at the University of Hawaii. It provided data transmission  between computers on several of the Hawaiian Islands using radio transmissions.  &lt;ul&gt;&lt;li&gt;Communications was typically between remote stations and a central sited named Menehune or vice versa.  &lt;/li&gt;&lt;li&gt;All message to the Menehune were sent using the same frequency.  &lt;/li&gt;&lt;li&gt;When it received a message intact, the Menehune would broadcast an ack on a distinct outgoing frequency.  &lt;/li&gt;&lt;li&gt;The outgoing frequency was also used for messages from the central site to remote computers.  &lt;/li&gt;&lt;li&gt;All stations listened for message on this second frequency.  &lt;/li&gt;&lt;/ul&gt;  &lt;h4&gt;Pure Aloha&lt;/h4&gt;Pure Aloha is an unslotted, fully-decentralized protocol. It is extremely simple and trivial to  implement. The ground rule is - &quot;when you want to talk, just talk!&quot;. So, a node which wants to transmits, will go  ahead and send the packet on its broadcast channel, with no consideration whatsoever as to anybody else is transmitting  or not. &lt;br /&gt;&lt;center&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec04/aloha14.gif&quot; /&gt; &lt;/center&gt;&lt;br /&gt;One serious drawback here is that, you dont know whether what you are sending has been received properly or not (so as  to say, &quot;whether you&#39;ve been heard and understood?&quot;). To resolve this, in Pure Aloha, when one node finishes speaking,  it expects an acknowledgement in a finite amount of time - otherwise it simply retransmits the data. This scheme works  well in small networks where the load is not high. But in large, load intensive networks where many nodes may want to  transmit at the same time, this scheme fails miserably. This led to the development of Slotted Aloha.  &lt;h4&gt;Slotted Aloha&lt;/h4&gt; This is quite similar to Pure Aloha, differing only in the way transmissions take place. Instead of transmitting right  at demand time, the sender waits for some time. This delay is specified as follows - the timeline is divided into  equal slots and then it is required that transmission should take place only at slot boundaries. To be more precise,  the slotted-Aloha makes the following assumptions: &lt;ul&gt;&lt;li&gt;All frames consist of exactly L bits.  &lt;/li&gt;&lt;li&gt;Time is divided into slots of size L/R seconds (i.e., a slot equals the time to transmit one frame).  &lt;/li&gt;&lt;li&gt;Nodes start to transmit frames only at the beginnings of slots.  &lt;/li&gt;&lt;li&gt;The nodes are synchronized so that each node knows when the slots begin.  &lt;/li&gt;&lt;li&gt;If two or more frames collide in a slot, then all the nodes detect the collision event before the slot ends. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;center&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec04/aloha15.gif&quot; /&gt; &lt;/center&gt;&lt;br /&gt;In this way, the number of collisions that can possibly take place is reduced by a huge margin. And hence, the  performance become much better compared to Pure Aloha. collisions may only take place with nodes that are ready to  speak at the same time. But nevertheless, this is a substantial reduction.   &lt;h3&gt;Carrier Sense Mutiple Access Protocols&lt;/h3&gt; In both slotted and pure ALOHA, a node&#39;s decision to transmit is made independently of the activity of the other nodes  attached to the broadcast channel. In particular, a node neither pays attention to whether another node happens to be  transmitting when it begins to transmit, nor stops transmitting if another node begins to interfere with its  transmission. As humans, we have human protocols that allow allows us to not only behave with more civility, but also  to decrease the amount of time spent &quot;colliding&quot; with each other in conversation and consequently increasing the amount  of data we exchange in our conversations. Specifically, there are two important rules for polite human conversation:  &lt;ol&gt;&lt;li&gt;&lt;b&gt;Listen before speaking: &lt;/b&gt;If someone else is speaking, wait until they are done. In the networking world,  this is termed carrier sensing - a node listens to the channel before transmitting. If a frame from another node is  currently being transmitted into the channel, a node then waits (&quot;backs off&quot;) a random amount of time and then again  senses the channel. If the channel is sensed to be idle, the node then begins frame transmission. Otherwise, the node  waits another random amount of time and repeats this process.  &lt;/li&gt;&lt;li&gt;&lt;b&gt;If someone else begins talking at the same time, stop talking.&lt;/b&gt; In the networking world, this is termed  collision detection - a transmitting node listens to the channel while it is transmitting. If it detects that another  node is transmitting an interfering frame, it stops transmitting and uses some protocol to determine when it should  next attempt to transmit. &lt;/li&gt;&lt;/ol&gt;  It is evident that the end-to-end channel propagation delay of a broadcast channel - the time it takes for a signal to  propagate from one of the the channel to another - will play a crucial role in determining its performance. The longer  this propagation delay, the larger the chance that a carrier-sensing node is not yet able to sense a transmission that  has already begun at another node in the network.  &lt;h4&gt;CSMA- Carrier Sense Multiple Access&lt;/h4&gt; This is the simplest version CSMA protocol as described above. It does not specify any collision detection or handling.  So collisions might and WILL occur and clearly then, this is not a very good protocol for large, load intensive  networks.  &lt;p&gt; So, we need an improvement over CSMA - this led to the development of CSMA/CD.   &lt;/p&gt;&lt;h4&gt;CSMA/CD- CSMA with Collision Detection&lt;/h4&gt; In this protocol, while transmitting the data, the sender simultaneously tries to receive it. So, as soon as it  detects a collission (it doesn&#39;t receive its own data) it stops transmitting. Thereafter, the node waits for some time  interval before attempting to transmit again. Simply put, &lt;b&gt;&quot;listen while you talk&quot;&lt;/b&gt;. But, how long should one wait  for the carrier to be freed? There are three schemes to handle this:   &lt;ol&gt;&lt;li&gt;&lt;b&gt;1-Persistent: &lt;/b&gt;In this scheme, transmission proceeds immediately if the carrier is idle. However, if the carrier is  busy, then sender continues to sense the carrier until it becomes idle. The main problem here is that, if more than  one transmitters are ready to send, a collision is GUARANTEED!!  &lt;/li&gt;&lt;li&gt;&lt;b&gt;Non-Persistent: &lt;/b&gt;In this scheme, the broadcast channel is not monitored continuously. The sender polls it at  random time intervals and transmits whenever the carrier is idle. This decreases the probability of collisions. But, it is not efficient in a low load situation, where number of collisions are anyway small. The problems it entails  are:  &lt;ul&gt;&lt;li&gt;If back-off time is too long, the idle time of carrier is wasted in some sense  &lt;/li&gt;&lt;li&gt;It may result in long access delays  &lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;li&gt;&lt;b&gt;p-Persistent: &lt;/b&gt;Even if a sender finds the carrier to be idle, it uses a probabilistic distribution to  determine whether to transmit or not. Put simply, &quot;toss a coin to decide&quot;. If the carrier is idle, then transmission  takes place with a probability p and the sender waits with a probability 1-p. This scheme is a good trade off between  the Non-persistent and 1-persistent schemes. So, for low load situations, p is high (example: 1-persistent); and for  high load situations, p may be lower. Clearly, the value of p plays an important role in determining the performance  of this protocol. Also the same p is likely to provide different performance at different loads. &lt;/li&gt;&lt;/ol&gt;  CSMA/CD doesn&#39;t work in some wireless scenarios called &lt;b&gt;&quot;hidden node&quot;&lt;/b&gt; problems. Consider a situation, where there are 3  nodes - A, B and C communicating with each other using a wireless protocol. Morover, B can communicate with both A and  C, but A and C lie outside each other&#39;s range and hence can&#39;t communicate directly with each other. Now, suppose both  A and C want to communicate with B simultaneously. They both will sense the carrier to be idle and hence will begin  transmission, and even if there is a collision, neither A nor C will ever detect it. B on the other hand will receive  2 packets at the same time and might not be able to understand either of them. To get around this problem, a better  version called CSMA/CA was developed, specially for wireless applications.  &lt;hr color=&quot;BLACK&quot;&gt; &lt;h3&gt;Image References:&lt;/h3&gt; &lt;ul&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://williams.comp.ncat.edu/Networks/multip10.gif&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://williams.comp.ncat.edu/Networks/multip10.gif&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://williams.comp.ncat.edu/Networks/multip5.gif&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://williams.comp.ncat.edu/Networks/multip5.gif&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://williams.comp.ncat.edu/Networks/multip13.gif&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://williams.comp.ncat.edu/Networks/multip13.gif&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://www.e-networks.org/images/startopology.gif&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://www.e-networks.org/images/startopology.gif&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://www.delmar.edu/Courses/CIS306/Primer/primf05.gif&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://www.delmar.edu/Courses/CIS306/Primer/primf05.gif&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://www.e-networks.org/images/ringtopology.gif&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://www.e-networks.org/images/ringtopology.gif&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://www.laynetworks.com/images/aloha14.gif&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://www.laynetworks.com/images/aloha14.gif&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://www.laynetworks.com/images/aloha15.gif&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://www.laynetworks.com/images/aloha15.gif&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://ankitjainarain.blogspot.com/feeds/8954571647960632421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/computer-networks-cs425-multiplexing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/8954571647960632421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/8954571647960632421'/><link rel='alternate' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/computer-networks-cs425-multiplexing.html' title='Computer Networks (CS425)- Multiplexing, Network Topology, Aloha and CSMA/CD'/><author><name>Ankit</name><uri>http://www.blogger.com/profile/05478322170957335992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_zckDpxGeJaU/S8qX85_LlVI/AAAAAAAAAJY/nVMcpJ7-xMw/S220/Ankit+Jainarain+(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3685716557674208478.post-7789562068871158231</id><published>2009-10-28T01:40:00.001+05:30</published><updated>2010-04-18T11:47:24.536+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Network"/><title type='text'>Computer Networks (CS425) - Data Encoding</title><content type='html'>&lt;h3&gt;Digital data to analog signals&lt;/h3&gt; A modem (modulator-demodulator) converts digital data to analog signal.  There are 3 ways to modulate a digital signal on an analog carrier signal. &lt;ol&gt;&lt;li&gt;&lt;b&gt;Amplitude shift keying (ASK):&lt;/b&gt; is a form of modulation which represents digital data as variations in  the amplitude of a carrier wave. Two different amplitudes of carrier frequency represent &#39;0&#39; , &#39;1&#39;. &lt;br /&gt;&lt;center&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec03/ask.gif&quot; /&gt; &lt;/center&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Frequency shift keying (FSK):&lt;/b&gt; In Frequency Shift Keying, the change in frequency define different digits.  Two different frequencies near carrier frequency represent &#39;0&#39; ,&#39;&#39;1&#39;.&lt;br /&gt;&lt;center&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec03/fsk.gif&quot; /&gt; &lt;/center&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Phase shift keying (PSK):&lt;/b&gt; The phase of the carrier is discretely varied in relation either to a reference  phase or to the phase of the immediately preceding signal element, in accordance with data being transmitted. Phase  of carrier signal is shifted to represent &#39;0&#39; , &#39;1&#39;. &lt;br /&gt;&lt;center&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec03/psk.png&quot; /&gt; &lt;/center&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt; &lt;h3&gt; Digital data to digital signals&lt;/h3&gt; A digital signal is sequence of discrete , discontinuous voltage pulses. Each pulses a signal element. Encoding scheme is an important factor in how successfully the receiver interprets the incoming signal. &lt;h3&gt;Encoding Techniques&lt;/h3&gt;Following are several ways to map data bits to signal elements. &lt;ul&gt;&lt;li&gt;&lt;b&gt;Non return to zero(NRZ)&lt;/b&gt; NRZ codes share the property that voltage level is constant during a bit interval.  High level voltage = bit 1 and Low level voltage = bit 0. A problem arises when there is a long sequence of 0s or 1s and the volatage level is maintained at the same value for a long time. This creates a problem on the recieving end because now, the clock synchronization is lost due to lack of any transitions and hence, it is difficult to determine the exact number of 0s or 1s in this sequence.&lt;br /&gt;&lt;center&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec03/nrz-run.gif&quot; /&gt; &lt;/center&gt;&lt;br /&gt;The two variations are as follows: &lt;ol&gt;&lt;li&gt; &lt;b&gt; NRZ-Level:&lt;/b&gt; In NRZ-L encoding, the polarity of the signal changes only when the incoming signal changes  from a 1 to a 0 or from a 0 to a 1. NRZ-L method looks just like the NRZ method, except for the first input  one data bit. This is because NRZ does not consider the first data bit to be a polarity change, where NRZ-L does. &lt;/li&gt;&lt;li&gt; &lt;b&gt;NRZ-Inverted:&lt;/b&gt; Transition at the beginning of bit interval = bit 1 and No Transition at beginning of bit  interval = bit 0 or vicecersa. This technique is known as differential encoding. &lt;/li&gt;&lt;/ol&gt;  &lt;p&gt;NRZ-I has an advantage over NRZ-L. Consider the situation when two data wires are wrongly connected in each other&#39;s  place.In NRZ-L all bit sequences will get reversed (B&#39;coz voltage levels get swapped).Whereas in NAZ-I since bits are  recognized by transition the bits will be correctly interpreted. A disadvantage in NRZ codes is that a string of 0&#39;s  or 1&#39;s will prevent synchronization of transmitter clock with receiver clock and a separate clock line need to be  provided.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Biphase encoding:&lt;/b&gt; It has following characteristics: &lt;ol&gt;&lt;li&gt;Modulation rate twice that of NRZ and bandwidth correspondingly greater. (Modulation is the rate at which signal level is changed). &lt;/li&gt;&lt;li&gt;Because there is predictable transition during each bit time,the receiver can synchronize on that transition i.e. clock is extracted from the signal itself. &lt;/li&gt;&lt;li&gt;Since there can be transition at the beginning as well as in the middle of the bit interval the clock operates  at twice the data transfer rate. &lt;/li&gt;&lt;/ol&gt; Types of Encoding --&gt; &lt;ul&gt;&lt;li&gt;&lt;b&gt;Biphase-manchester:&lt;/b&gt; Transition from high to low in middle of interval = 1 and Transition from low to high in middle of interval = 0 &lt;/li&gt;&lt;li&gt;&lt;b&gt;Differential-manchester: &lt;/b&gt;Always a transition in middle of interval. No transition at beginning of interval=1 and Transition at beginning of interval = 0 &lt;center&gt; &lt;p&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec03/3-signals.gif&quot; lowsrc=&quot;./fig.lec03/3-signals.gif&quot; height=&quot;313&quot; width=&quot;503&quot; /&gt; &lt;/p&gt;&lt;/center&gt; &lt;/li&gt;&lt;li&gt;&lt;b&gt;4B/5B Encoding: &lt;/b&gt;In Manchester encoding scheme , there is a transition after every bit. It means that we must have clocks with double the speed to send same amount of data as in NRZ encodings. In other words, we may say that only 50% of the data is sent. This performance factor can be significantly improved if we use a better encoding scheme. This scheme may have a transition after fixed number of bits instead of every other bit. Like if we have a transition after every four bits, then we will be sending 80% data of actual capacity. This is a significant improvement in the performance. &lt;p&gt;     This scheme is known as &lt;b&gt;4B/5B&lt;/b&gt;. So here we convert 4-bits to 5-bits, ensuring at least one transition in them. The basic idea here is that 5-bit code selected must have : &lt;/p&gt;&lt;ul&gt;&lt;li&gt;one leading 0&lt;/li&gt;&lt;li&gt;no more than two trailing 0s&lt;/li&gt;&lt;/ul&gt; Thus it is ensured that we can never have more than three consecutive 0s. Now these 5-bit codes are transmitted using NRZI coding thus problem of consecutive 1s is solved. &lt;p&gt; The exact transformation is as follows :&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                                                      &lt;table align=&quot;center&quot; border=&quot;1&quot;&gt; &lt;tbody&gt;&lt;tr&gt;&lt;th&gt;4-bit Data &lt;/th&gt;&lt;th&gt;5-bit code&lt;/th&gt;&lt;th&gt;4-bit Data&lt;/th&gt;&lt;th&gt;5-bit code&lt;/th&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;0000&lt;/td&gt;&lt;td&gt;11110&lt;/td&gt;&lt;td&gt;1000&lt;/td&gt;&lt;td&gt;10010&lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;0001&lt;/td&gt;&lt;td&gt;01001&lt;/td&gt;&lt;td&gt;1001&lt;/td&gt;&lt;td&gt;10011&lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;0010&lt;/td&gt;&lt;td&gt;10100&lt;/td&gt;&lt;td&gt;1010&lt;/td&gt;&lt;td&gt;10110&lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;0011&lt;/td&gt;&lt;td&gt;10101&lt;/td&gt;&lt;td&gt;1011&lt;/td&gt;&lt;td&gt;10111&lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;0100&lt;/td&gt;&lt;td&gt;01010&lt;/td&gt;&lt;td&gt;1100&lt;/td&gt;&lt;td&gt;11010&lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;0101&lt;/td&gt;&lt;td&gt;01011&lt;/td&gt;&lt;td&gt;1101&lt;/td&gt;&lt;td&gt;11011&lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;0110&lt;/td&gt;&lt;td&gt;01110&lt;/td&gt;&lt;td&gt;1110&lt;/td&gt;&lt;td&gt;11100&lt;/td&gt;   &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;0111&lt;/td&gt;&lt;td&gt;01111&lt;/td&gt;&lt;td&gt;1111&lt;/td&gt;&lt;td&gt;11101&lt;/td&gt;   &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Of the remaining 16 codes, 7 are invalid and others are used to send some control  information like line idle(11111), line dead(00000), Halt(00100) etc.  &lt;/p&gt;&lt;p&gt;There are other variants for this scheme viz. 5B/6B, 8B/10B etc. These have self suggesting names.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;8B/6T Encoding: &lt;/b&gt;In the above schemes, we have used two/three voltage levels for a signal. But we may altogether use more than three voltage  levels so that more than one-bit could be send over a single signal. Like if we use six voltage levels and we use 8-bits then the scheme is called &lt;b&gt;8B/6T&lt;/b&gt;. Clearly here we have 729(3^6) combinations for signal and 256(2^8) combinations for bits. &lt;/li&gt;&lt;/ul&gt;  &lt;/li&gt;&lt;li&gt;&lt;b&gt;Bipolar AIM:&lt;/b&gt; Here we have 3 voltage levels: middle,upper,lower &lt;ul&gt;&lt;li&gt;Representation 1: Middle level =0 Upper,Lower level =1 such that successive 1&#39;s will be represented alternately on upper and lower levels. &lt;/li&gt;&lt;li&gt;Representation 2 (pseudoternary): Middle level =1 Upper,Lower level=0   &lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;h3&gt;Analog data to digital signal:&lt;/h3&gt; The process is called digitization. Sampling frequency must be at least twice that of highest frequency present in the the signal so that it may be fairly regenerated. Quantization - Max. and Min values of amplitude in the sample are noted. Depending on number of bits (say n) we use we divide the interval (min,max) into 2(^n) number of levels. The amplitude is then approximated to the nearest level by a &#39;n&#39; bit integer. The digital signal thus consists of blocks of n bits.On reception the process is reversed to produce analog signal. But a lot of data can be lost if fewer bits are used or sampling frequency not so high. &lt;ul&gt;&lt;li&gt;&lt;b&gt;Pulse code modulation(PCM):&lt;/b&gt; Here intervals are equally spaced. 8 bit PCB uses 256 different levels of amplitude. In non-linear encoding levels may be unequally spaced. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Delta Modulation(DM):&lt;/b&gt; Since successive samples do not differ very much we send the differences between previous and present sample. It requires fewer bits than in PCM. &lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;Digital Data Communication Techniques:&lt;/h3&gt; For two devices linked by a transmission medium to exchange data ,a high degree of co-operation is required. Typically data is transmitted one bit at a time. The timing (rate, duration,spacing) of these bits must be same for transmitter and receiver. There are two options for transmission of bits. &lt;ol&gt;&lt;li&gt;&lt;b&gt;Parallel&lt;/b&gt; All bits of a byte are transferred simultaneously on separate parallel wires. Synchronization between multiple bits is required which becomes difficult over large distance. Gives large band width but expensive. Practical only for devices close to each other. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Serial&lt;/b&gt; Bits transferred serially one after other.Gives less bandwidth   but cheaper. Suitable for transmission over long distances.  &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;b&gt; Transmission Techniques:&lt;/b&gt;  &lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;Asynchronous:&lt;/b&gt; Small blocks of bits(generally bytes) are sent at a time without any time relation between consecutive bytes .when no transmission occurs a default state is maintained corresponding to bit 1. Due to arbitrary delay between consecutive bytes,the time occurrences of the clock pulses at the receiving end need to be synchronized for each byte. This is achieved by providing 2 extra bits start and stop. &lt;p&gt; &lt;b&gt;Start bit:&lt;/b&gt; It is prefixed to each byte and equals 0. Thus it ensures a transition from 1 to 0 at onset of transmission of byte.The leading edge of start bit is used as a reference for generating clock pulses at required sampling instants. Thus each onset of a byte results in resynchronization of receiver clock. &lt;/p&gt;&lt;p&gt;&lt;b&gt;Stop bit:&lt;/b&gt; To ensure that transition from 1 to 0 is always present at beginning of a byte it is necessary that default state be 1. But there may be two bytes one immediately following the other and if last bit of first byte is 0, transition from 1 to 0 will not occur . Therefore a stop bit is suffixed to each byte equaling 1. It&#39;s duration is usually 1,1.5,2 bits. &lt;/p&gt;&lt;p&gt; Asynchronous transmission is simple and cheap but requires an overhead of 3 bits i.e. for 7 bit code 2 (start ,stop bits)+1 parity bit implying 30% overhead.However % can be reduced by sending larger blocks of data but then timing errors between receiver and sender can not be tolerated beyond [50/no. of bits in block] % (assuming sampling is done at middle of bit interval). It will not only result in incorrect sampling but also misaligned bit count i.e. a data bit can be mistaken for stop bit if receiver&#39;s clock is faster. &lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec03/3-asy.gif&quot; lowsrc=&quot;./fig.lec03/3-asy.gif&quot; height=&quot;354&quot; width=&quot;595&quot; /&gt;&lt;br /&gt; &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Synchronous&lt;/b&gt; - Larger blocks of bits are successfully transmitted.Blocks of     data are either treated as     sequence of     bits or bytes. To prevent timing drift     clocks at two ends need to be synchronized.This can     done in two ways: &lt;ol&gt;&lt;li&gt;Provide a separate clock line between receiver and transmitter. OR  &lt;/li&gt;&lt;li&gt;Clocking information is embedded in data signal i.e. biphase coding for  digital signals.  &lt;/li&gt;&lt;/ol&gt; Still another level of synchronization is required so that receiver determines beginning or end of block of data. Hence each block begins with a start code and ends with a stop code.These are in general same known as flag that is unique sequence of fixed no. of bits.In addition some control characters encompass data within these flags. &lt;b&gt;   Data+control information&lt;/b&gt; is called a frame. Since any arbitrary bit pattern can be transmitted there is no assurance that bit pattern for flag will not appear inside the frame thus destroying frame level synchronization. So to avoid this we use bit stuffing &lt;p&gt;&lt;b&gt;Bit Stuffing:&lt;/b&gt; Suppose our flag bits are 01111110 (six 1&#39;s). So the transmitter will always insert an extra 0 bit after each occurrence of five 1&#39;s (except for flags). After detecting a starting flag the receiver monitors the bit stream . If pattern of five 1&#39;s appear, the sixth is examined and if it is 0 it isdeleted else if it is 1 and next is 0 the combination is accepted as a flag. Similarly byte stuffing is used for byte oriented transmission.Here we use an escape sequence to prefix a byte similar to flag and 2 escape sequences if byte is itself a escape sequence. &lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec03/3-syn.gif&quot; lowsrc=&quot;./fig.lec03/3-syn.gif&quot; height=&quot;59&quot; width=&quot;552&quot; /&gt; &lt;/p&gt;&lt;/li&gt;&lt;/ol&gt; &lt;hr color=&quot;BLACK&quot;&gt; &lt;h3&gt;Image References:&lt;/h3&gt; &lt;ul&gt;&lt;li&gt;&lt;span&gt; &lt;a href=&quot;http://www.analog.com/library/analogDialogue/archives/38-08/DDS_06.gif&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://www.analog.com/library/analogDialogue/archives/38-08/DDS_06.gif&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt; &lt;a href=&quot;http://racon.net/archive/FHTW/projects/Richtfunk/2psk.png&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://racon.net/archive/FHTW/projects/Richtfunk/2psk.png&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt; &lt;a href=&quot;http://fara.cs.uni-potsdam.de/%7Ernitschk/wireless/antenna/pics/009001.gif&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://fara.cs.uni-potsdam.de/~rnitschk/wireless/antenna/pics/009001.gif&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt; &lt;a href=&quot;http://www.erg.abdn.ac.uk/users/gorry/course/images/nrz-run.gif&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://www.erg.abdn.ac.uk/users/gorry/course/images/nrz-run.gif&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://ankitjainarain.blogspot.com/feeds/7789562068871158231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/computer-networks-cs425-data-encoding.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/7789562068871158231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/7789562068871158231'/><link rel='alternate' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/computer-networks-cs425-data-encoding.html' title='Computer Networks (CS425) - Data Encoding'/><author><name>Ankit</name><uri>http://www.blogger.com/profile/05478322170957335992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_zckDpxGeJaU/S8qX85_LlVI/AAAAAAAAAJY/nVMcpJ7-xMw/S220/Ankit+Jainarain+(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3685716557674208478.post-4811012723627410729</id><published>2009-10-28T01:24:00.003+05:30</published><updated>2010-04-18T11:47:24.536+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Network"/><title type='text'>Computer Networks (CS425)</title><content type='html'>&lt;b&gt;&lt;u&gt;&lt;center&gt;&lt;h2&gt;ISO-OSI 7-Layer Network Architecture&lt;/h2&gt;&lt;/center&gt;&lt;/u&gt;&lt;/b&gt; &lt;p&gt;This lecture introduces the ISO-OSI layered architecture of Networks. According to the ISO standards, networks have  been divided into 7 layers depending on the complexity of the fucntionality each of these layers provide. The detailed  description of each of these layers is given in the notes below. We will first list the layers as defined by the  standard in the increasing order of function complexity:&lt;/p&gt;  &lt;ol&gt;&lt;li&gt;&lt;a href=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/lec01.html#physical&quot;&gt;Physical Layer&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/lec01.html#datalink&quot;&gt;Data Link Layer&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/lec01.html#network&quot;&gt;Network Layer&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/lec01.html#transport&quot;&gt;Transport Layer&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/lec02.html#session&quot;&gt;Session Layer&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/lec02.html#presentation&quot;&gt;Presentation Layer&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/lec02.html#application&quot;&gt;Application Layer&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;   &lt;h3&gt;&lt;a name=&quot;physical&quot;&gt;Physical Layer&lt;/a&gt;&lt;/h3&gt;  This layer is the lowest layer in the OSI model. It helps in the transmission of data between two machines that are communicating through a physical medium, which can be optical fibres,copper wire or wireless etc. The following are the  main functions of the physical layer: &lt;ol&gt;&lt;li&gt;&lt;b&gt;Hardware Specification:&lt;/b&gt; The details of the physical cables, network interface cards, wireless radios, etc are a part of this layer. &lt;center&gt;&lt;br /&gt;&lt;table&gt; &lt;tbody&gt;&lt;tr&gt;&lt;td&gt; &lt;b&gt;Coaxial Cable&lt;/b&gt;&lt;/td&gt;&lt;td&gt; &lt;b&gt;Hybrid Cable&lt;/b&gt;&lt;/td&gt;&lt;td&gt; &lt;b&gt;Wireless Card&lt;/b&gt;&lt;/td&gt;&lt;td&gt; &lt;b&gt;Network Card&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec01/coaxla.gif&quot; height=&quot;100&quot; width=&quot;150&quot; /&gt;&lt;/td&gt;&lt;td&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec01/hybrids.jpg&quot; height=&quot;100&quot; width=&quot;150&quot; /&gt;&lt;/td&gt;&lt;td&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec01/wireless.jpg&quot; height=&quot;100&quot; width=&quot;150&quot; /&gt;&lt;/td&gt;&lt;td&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec01/card.jpg&quot; height=&quot;100&quot; width=&quot;150&quot; /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/center&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Encoding and Signalling:&lt;/b&gt; How are the bits encoded in the medium is also decided by this layer. For example,  on the coppar wire medium, we can use differnet voltage levels for a certain time interval to represent &#39;0&#39; and &#39;1&#39;.  We may use +5mV for 1nsec to represent &#39;1&#39; and -5mV for 1nsec to represent &#39;0&#39;. All the issues of modulation is dealt  with in this layer. eg, we may use Binary phase shift keying for the representation of &#39;1&#39; and &#39;0&#39; rather than using different volatage levels if we have to transfer in RF waves.  &lt;center&gt;&lt;br /&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec01/bpsk.gif&quot; /&gt;&lt;br /&gt;&lt;b&gt;Binary Phase Shift Keying&lt;/b&gt; &lt;/center&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Data Transmission and Reception:&lt;/b&gt; The transfer of each bit of data is the responsibility of this layer. This  layer assures the transmissoin of each bit with a &lt;i&gt;high probability&lt;/i&gt;. The transmission of the bits is not  completely reliable as their is no error correction in this layer. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Topology and Network Design:&lt;/b&gt; The network design is the integral part of the physical layer. Which part of the  network is the router going to be placed, where the switches will be used, where we will put the hubs, how many machines is each switch going to handle, what server is going to be placed where, and many such concerns are to be taken care of by the physical layer. The variosu kinds of netopologies that we decide to use may be ring, bus, star or a hybrid of  these topologies depending on our requirements.  &lt;center&gt;&lt;br /&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec01/net_topo.gif&quot; /&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;    &lt;h3&gt;&lt;a name=&quot;datalink&quot;&gt; Data Link Layer&lt;/a&gt;&lt;/h3&gt; This layer provides reliable transmission of a packet by using the services of the physical layer which transmits bits over the medium in an unreliable fashion. This layer is concerned with : &lt;ol&gt;&lt;li&gt;Framing : Breaking input data into frames (typically a few hundred bytes) and caring about the frame boundaries and the size of each frame. &lt;/li&gt;&lt;li&gt;Acknowledgment : Sent by the receiving end to inform the source that the frame was received without any error. &lt;/li&gt;&lt;li&gt;Sequence Numbering : To acknowledge which frame was received. &lt;/li&gt;&lt;li&gt;Error Detection : The frames may be damaged, lost or duplicated leading to errors.The error control is on &lt;b&gt;link to link&lt;/b&gt; basis. &lt;/li&gt;&lt;li&gt;Retransmission : The packet is retransmitted if the source fails to receive acknowledgment. &lt;/li&gt;&lt;li&gt;Flow Control : Necessary for a fast transmitter to keep pace with a slow receiver. &lt;/li&gt;&lt;/ol&gt; &lt;center&gt;&lt;br /&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec01/data_link_layer.gif&quot; /&gt;&lt;br /&gt;&lt;b&gt;Data Link Layer&lt;/b&gt; &lt;/center&gt;&lt;br /&gt; &lt;h3&gt;&lt;a name=&quot;network&quot;&gt;Network Layer&lt;/a&gt;&lt;/h3&gt; Its basic functions are routing and congestion control.&lt;br /&gt;&lt;b&gt;Routing:&lt;/b&gt; This deals with determining how packets will be routed (transferred) from source to destination. It can be of three types :  &lt;ul&gt;&lt;li&gt;Static : Routes are based on static tables that are &quot;wired into&quot; the network and are rarely changed. &lt;/li&gt;&lt;li&gt;Dynamic : All packets of one application can follow different routes depending upon the topology of the network, the shortest path and the current network load. &lt;/li&gt;&lt;li&gt;Semi-Dynamic : A route is chosen at the start of each conversation and then all the packets of the application follow the same route. &lt;/li&gt;&lt;/ul&gt; &lt;center&gt;&lt;br /&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec01/routing.jpg&quot; /&gt;&lt;br /&gt;&lt;b&gt;Routing&lt;/b&gt; &lt;/center&gt;&lt;br /&gt;The services provided by the network can be of two types : &lt;ul&gt;&lt;li&gt;&lt;b&gt;Connection less service:&lt;/b&gt; Each packet of an application is treated as an independent entity. On each packet of the application the destination address is provided and the packet is routed. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Connection oriented service:&lt;/b&gt; Here, first a connection is established and then all packets of the application follow the same route. To understand the above concept, we can also draw an analogy from the real life. Connection oriented service is modeled after the telephone system. All voice packets go on the same path after the connection is established till the connection is hung up. It acts like a tube ; the sender pushes the objects in at one end and the receiver takes them out in the same order at the other end. Connection less service is modeled after the postal system. Each letter carries the destination address and is routed independent of all the others. Here, it is possible that the letter sent first is delayed so that the second letter reaches the destination before the first letter. &lt;/li&gt;&lt;/ul&gt; &lt;b&gt;Congestion Control:&lt;/b&gt; A router can be connected to 4-5 networks. If all the networks send packet at the same time with maximum rate possible then the router may not be able to handle all the packets and may drop some/all packets. In this context the dropping of the packets should be minimized and the source whose packet was dropped should be informed. The control of such congestion is also a function of the network layer. Other issues related with this layer are transmitting time, delays, jittering.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Internetworking:&lt;/b&gt; Internetworks are multiple networks that are connected in such a way that they act as one large network, connecting multiple office or department networks. Internetworks are connected by networking hardware such as routers, switches, and bridges.Internetworking is a solution born of three networking problems: isolated LANs, duplication of resources, and the lack of a centralized network management system. With connected LANs, companies no longer have to duplicate programs or resources on each network. This in turn gives way to managing the network from one central location instead of trying to manage each separate LAN. We should be able to transmit any packet from one network to any other network even if they follow different protocols or use different addressing modes. &lt;center&gt;&lt;br /&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec01/internetworking.gif&quot; /&gt;&lt;br /&gt;&lt;b&gt;Inter-Networking&lt;/b&gt; &lt;/center&gt;&lt;br /&gt;Network Layer &lt;b&gt;does not&lt;/b&gt; guarantee that the packet will reach its intended destination. There are no reliability  guarantees.  &lt;h3&gt;&lt;a name=&quot;transport&quot;&gt;Transport Layer&lt;/a&gt;&lt;/h3&gt; Its functions are : &lt;ul&gt;&lt;li&gt;&lt;b&gt;Multiplexing / Demultiplexing :&lt;/b&gt; Normally the transport layer will create distinct network connection for each transport connection required by the session layer. The transport layer may either create multiple network connections (to improve throughput) or it may multiplex several transport connections onto the same network connection (because creating and maintaining networks may be expensive). In the latter case, demultiplexing will be required at the receiving end. A point to note here is that communication is always carried out between two processes and not between two machines. This is also known as process-to-process communication. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Fragmentation and Re-assembly :&lt;/b&gt; The data accepted by the transport layer from the session layer is split up into smaller units (fragmentation) if needed and then passed to the network layer. Correspondingly, the data provided by the network layer to the transport layer on the receiving side is re-assembled. &lt;center&gt;&lt;br /&gt;&lt;table&gt; &lt;tbody&gt;&lt;tr&gt;&lt;td&gt; &lt;b&gt;Fragmentation&lt;/b&gt;&lt;/td&gt;&lt;td&gt; &lt;b&gt;Reassembly&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec01/frag.gif&quot; height=&quot;300&quot; width=&quot;400&quot; /&gt;&lt;/td&gt;&lt;td&gt; &lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec01/reass.gif&quot; height=&quot;300&quot; width=&quot;400&quot; /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;/center&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Types of service :&lt;/b&gt; The transport layer also decides the type of service that should be provided to the session layer. The service may be perfectly reliable, or may be reliable within certain tolerances or may not be reliable at all. The message may or may not be received in the order in which it was sent. The decision regarding the type of service to be provided is taken at the time when the connection is established. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Error Control :&lt;/b&gt; If reliable service is provided then error detection and error recovery operations are also performed. It provides error control mechanism on &lt;b&gt;end to end&lt;/b&gt; basis. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Flow Control :&lt;/b&gt; A fast host cannot keep pace with a slow one. Hence, this is a mechanism to regulate the flow of information. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Connection Establishment / Release :&lt;/b&gt; The transport layer also establishes and releases the connection across the network. This requires some sort of naming mechanism so that a process on one machine can indicate with whom it wants to communicate. &lt;/li&gt;&lt;/ul&gt; &lt;hr color=&quot;BLACK&quot;&gt; &lt;b&gt;References of Images&lt;/b&gt; &lt;ul&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://www.putergeek.com/.../&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://www.putergeek.com/.../&lt;/a&gt; pci_combo_card_sm.jpg &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://blue.utb.edu/libertad/clipart/pi_wireless_pc_card_b.jpg&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://blue.utb.edu/libertad/clipart/pi_wireless_pc_card_b.jpg&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://www.commscope.com/&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://www.commscope.com/&lt;/a&gt; images/hybrids.jpg hybrid cable &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://www.cba.nau.edu/facstaff/maris-j/SavedStuff/Images/net_topo.gif&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://www.cba.nau.edu/facstaff/maris-j/SavedStuff/Images/net_topo.gif&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://www.ces.net/doc/2003/research/xl-unicast-routing.gif&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://www.ces.net/doc/2003/research/xl-unicast-routing.gif&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://www.infinitygroup.com/images/internetworking.gif&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://www.infinitygroup.com/images/internetworking.gif&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://www.microway.com/.../&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://www.microway.com/.../&lt;/a&gt; data_link_layer.gif  &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://searchnetworking.techtarget.com/WhatIs/images/coaxla.gif&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://searchnetworking.techtarget.com/WhatIs/images/coaxla.gif&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://www.df.lth.se/%7Epkj/thesis_report/img13.gif&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://www.df.lth.se/~pkj/thesis_report/img13.gif&lt;/a&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://www.df.lth.se/%7Epkj/&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://www.df.lth.se/~pkj/&lt;/a&gt; thesis_report/img12.gif &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://www.ifla.org/VI/5/reports/rep3/rep3-2.gif&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://www.ifla.org/VI/5/reports/rep3/rep3-2.gif&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://msp.gsfc.nasa.gov/tdrss/bpsk.gif&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://msp.gsfc.nasa.gov/tdrss/bpsk.गिफ&lt;/a&gt;             &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span&gt;___________________________________________________________________________________________&lt;br /&gt;&lt;/span&gt;&lt;h3&gt;&lt;a name=&quot;session&quot;&gt;Session Layer&lt;/a&gt;&lt;/h3&gt; It deals with the concept of &lt;b&gt;Sessions&lt;/b&gt; i.e. when a user logins to a remote server he should be &lt;b&gt;authenticated&lt;/b&gt; before getting access to the files and application programs. Another job of session layer is to establish and maintain sessions. If during the transfer of data between two machines the session breaks down, it is the session layer which re-establishes the connection. It also ensures that the data transfer starts from where it breaks keeping it transparent to the end user. e.g. In case of a session with a database server, this layer introduces &lt;b&gt;check points&lt;/b&gt; at various places so that in case the connectoin is broken and reestablished, the transition running on the database is not lost even if the user has not committed. This activity is called &lt;b&gt;Synchronization&lt;/b&gt;. Another function of this layer is &lt;b&gt;Dialogue Control&lt;/b&gt; which determines whose turn is it to speak in a session. It is useful in video conferencing.  &lt;h3&gt;&lt;a name=&quot;presentation&quot;&gt;Presentation Layer&lt;/a&gt;&lt;/h3&gt; This layer is concerned with the syntax and semantics of the information transmitted. In order to make it possible for computers with different data representations to communicate data structures to be exchanged can be defined in abstract way alongwith standard encoding. It also manages these abstract data structres and allows higher level of data structres to be defined an exchange. It encodes the data in standard agreed way(network format). Suppose there are two machines A and B one follows &#39;Big Endian&#39; and other &#39;Little Endian&#39; for data representation. This layer ensures that the data transmitted by one gets converted in the form compatibale to othe machine. This layer is concerned with the syntax and semantics of the information transmitted.In order to make it possible for computers with different data representations to communicate data structures to be exchanged canbe defined in abstract way alongwith standard encoding. It also manages these abstract data structres and allows higher level of data structres to be defined an exchange. Other functions include compression, encryption etc. &lt;h3&gt;&lt;a name=&quot;application&quot;&gt;Application Layer&lt;/a&gt;&lt;/h3&gt;The seventh layer contains the application protocols with which the user gains access to the network. The choice of which specific protocols and their associated functions are to be used at the application level is up to the individual user. Thus the boundary between the presentation layer and the application layer represents a separation of the protocols imposed by the network designers from those being selected and implemented by the network users.For example commonly used protocols are HTTP(for web browsing), FTP(for file transfer) etc. &lt;h3&gt;Network Layers as in Practice&lt;/h3&gt; In most of the networks today, we do not follow the OSI model of seven layers. What is actually implemented is as  follows. The functionality of Application layer and Presentation layer is merged into one and is called as the  Application Layer. Functionalities of Session Layer is not implemented in most networks today. Also, the Data Link layer  is split theoretically into &lt;b&gt;MAC (Medium Access Control) Layer&lt;/b&gt; and &lt;b&gt;LLC (Link Layer Control)&lt;/b&gt;. But again in  practice, the LLC layer is not implemented by most networks. So as of today, the network architecture is of 5 layers  only. &lt;center&gt;&lt;br /&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec02/tcp_layer.jpg&quot; /&gt;&lt;br /&gt;&lt;b&gt;Network Layers in Internet Today&lt;/b&gt; &lt;/center&gt;&lt;br /&gt; &lt;h3&gt;Some Related Links on OSI Model and TCP Model&lt;/h3&gt; &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/OSI_model&quot;&gt;http://en.wikipedia.org/wiki/OSI_model&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.tcpipguide.com/free/t_OSIReferenceModelLayers.htm&quot;&gt;http://www.tcpipguide.com/free/t_OSIReferenceModelLayers.htm&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.geocities.com/SiliconValley/Monitor/3131/ne/osimodel.html&quot;&gt;http://www.geocities.com/SiliconValley/Monitor/3131/ne/osimodel.html&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.tech-faq.com/osi-model.shtml&quot;&gt;http://www.tech-faq.com/osi-model.shtml&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.networkdictionary.com/protocols/osimodel.php&quot;&gt;http://www.networkdictionary.com/protocols/osimodel.php&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt; &lt;hr color=&quot;BLACK&quot;&gt;  &lt;u&gt;&lt;center&gt;&lt;h2&gt;Physical Layer&lt;/h2&gt;&lt;/center&gt;&lt;/u&gt;  Physical layer is concerned with transmitting raw bits over a communication channel. The design issues have to do with making sure that when one side sends a 1 bit, it is recieved by the other side as 1 bit and not as 0 bit. In physical layer we deal with the communication medium used for transmission.  &lt;h3&gt;Types of Medium&lt;/h3&gt;  Medium can be classified into 2 categories. &lt;ol&gt;&lt;li&gt;&lt;b&gt;Guided Media : &lt;/b&gt;Guided media means that signals is guided  by the prescence of physical media i.e. signals are under control and remains in the physical wire. For eg. copper wire. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Unguided Media : &lt;/b&gt;Unguided Media means that there is no physical path for the signal to propogate. Unguided media are essentially electro-magnetic waves. There is no control on flow of signal. For eg. radio waves. &lt;/li&gt;&lt;/ol&gt;  &lt;h3&gt;Communication Links&lt;/h3&gt; &lt;p&gt;In a nework nodes are connected through links. The communication through links can be classified as &lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;Simplex : &lt;/b&gt;Communication can take place only in one direction. eg. T.V broadcasting. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Half-duplex : &lt;/b&gt;Communication can take place in one direction at a time. Suppose node A and B are connected then half-duplex communication means that at a time data can flow from A to B or from B to A but not simultaneously. eg. two persons talking to each other such that when speaks the other listens and vice versa. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Full-duplex : &lt;/b&gt;Communication can take place simultaneously in both directions. eg. A discussion in a group without discipline. &lt;/li&gt;&lt;/ol&gt;  &lt;p&gt;Links can be further classified as &lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;Point to Point :&lt;/b&gt; In this communication only two nodes are connected to each other. When a node sends a packet then it can be recieved only by the node on the other side and none else. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Multipoint&lt;/b&gt; : It is a kind of sharing communication, in which signal can be recieved by all nodes. This is also called broadcast. &lt;/li&gt;&lt;/ol&gt;  &lt;p&gt; Generally two kind of problems are associated in transmission of signals. &lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;Attenuation :&lt;/b&gt; When a signal transmitts in a network then the quality of signal degrades as the signal travels longer distances in the wire. This is called attenuation. To improve quality of signal amplifiers are used at regular distances. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Noise :&lt;/b&gt; In a communication channel many signals transmits simultaneously, certain random signals are also present in the medium. Due to interference of these signals our signal gets disrupted a bit. &lt;/li&gt;&lt;/ol&gt; &lt;h3&gt;Bandwidth&lt;/h3&gt; Bandwidth simply means how many bits can be transmitted per second in the communication channel. In technical terms it indicates the width of frequency spectrum.  &lt;h3&gt;Transmission Media&lt;/h3&gt; &lt;b&gt;Guided Transmission Media&lt;/b&gt;&lt;br /&gt;In Guided transmission media generally two kind of materials are used. &lt;ol&gt;&lt;li&gt;Copper &lt;ul&gt;&lt;li&gt;Coaxial Cable &lt;/li&gt;&lt;li&gt;Twisted Pair &lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;li&gt;Optical Fiber &lt;/li&gt;&lt;/ol&gt;  &lt;ol&gt;&lt;li&gt;&lt;b&gt;Coaxial Cable: &lt;/b&gt;Coaxial cable consists of an inner conductor and an outer conductor which are seperated by an insulator. The inner conductor is usually copper. The outer conductor is covered by a plastic jacket. It is named coaxial because the two conductors are coaxial. Typical diameter of coaxial cable lies between 0.4 inch to 1 inch. The most application of coaxial cable is cable T.V. The coaxial cable has high bandwidth, attenuation is less. &lt;center&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec02/fig1.gif&quot; /&gt;&lt;/center&gt;  &lt;/li&gt;&lt;li&gt;&lt;b&gt;Twisted Pair: &lt;/b&gt;A Twisted pair consists of two insulated copper wires, typically 1mm thick. The wires are twisted togather in a helical form the purpose of twisting is to reduce cross talk interference between several pairs. Twisted Pair is much cheaper then coaxial cable but it is susceptible to noise and electromagnetic interference and attenuation is large. &lt;center&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec02/fig2.jpg&quot; /&gt;&lt;/center&gt; &lt;br /&gt;Twisted Pair can be further classified in two categories:&lt;br /&gt;&lt;b&gt;Unshielded twisted pair:&lt;/b&gt; In this no insulation is provided, hence they are susceptible to interference.&lt;br /&gt;&lt;b&gt;Shielded twisted pair:&lt;/b&gt; In this a protective thick insulation is provided but shielded twisted pair is expensive and not commonly used.  &lt;p&gt;The most common application of twisted pair is the telephone system. Nearly all telephones are connected to the telephone company office by a twisted pair. Twisted pair can run several kilometers without amplification, but for longer distances repeaters are needed. Twisted pairs can be used for both analog and digital transmission. The bandwidth depends on the thickness of wire and the distance travelled. Twisted pairs are generally limited in distance, bandwidth and data rate. &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Optical Fiber: &lt;/b&gt;In optical fiber light is used to send data. In general terms prescence of light is taken as bit 1 and its absence as bit 0. Optical fiber consists of inner core of either glass or plastic. Core is surrounded by cladding of the same material but of different refrective index. This cladding is surrounded by a plastic jacket which prevents optical fiber from electromagnetic interferrence and harshy environments. It uses the principle of total internal reflection to transfer data over optical fibers. Optical fiber is much better in bandwidth as compared to copper wire, since there is hardly any attenuation or electromagnetic interference in optical wires. Hence there is less requirement to improve quality of signal, in long distance transmission. Disadvantage of optical fiber is that end points are fairly expensive. (eg. switches) &lt;p&gt;Differences between different kinds of optical fibers: &lt;/p&gt;&lt;ol&gt;&lt;li&gt;Depending on material &lt;ul&gt;&lt;li&gt;Made of glass &lt;/li&gt;&lt;li&gt;Made of plastic. &lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;li&gt;Depending on radius &lt;ul&gt;&lt;li&gt;Thin optical fiber &lt;/li&gt;&lt;li&gt;Thick optical fiber &lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;li&gt;Depending on light source &lt;ul&gt;&lt;li&gt;LED (for low bandwidth) &lt;/li&gt;&lt;li&gt;Injection lased diode (for high bandwidth) &lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;/ol&gt;  &lt;h3&gt;Wireless Transmission&lt;/h3&gt; &lt;ol&gt;&lt;li&gt;&lt;b&gt;Radio:&lt;/b&gt; Radio is a general term that is used for any kind of frequency. But higher frequencies are usually termed as microwave and the lower frequency band comes under radio frequency. There are many application of radio. For eg. cordless keyboard, wireless LAN, wireless ethernet. but it is limited in range to only a few hundred meters. Depending on frequency radio offers different bandwidths. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Terrestrial microwave:&lt;/b&gt; In terrestrial microwave two antennas are used for communication. A focused beam emerges from an antenna and is recieved by the other antenna, provided that antennas should be facing each other with no obstacle in between. For this reason antennas are situated on high towers. Due to curvature of earth terristial microwave can be used for long distance communication with high bandwidth. Telecom department is also using this for long distance communication. An advantage of wireless communication is that it is not required to lay down wires in the city hence no permissions are required. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Satellite communication:&lt;/b&gt; Satellite acts as a switch in sky. On earth VSAT(Very Small Aperture Terminal) are used to transmit and recieve data from satellite. Generally one station on earth transmitts signal to satellite and it is recieved by many stations on earth. Satellite communication is generally used in those places where it is very difficult to obtain line of sight i.e. in highly irregular terristial regions. In terms of noise wireless media is not as good as the wired media. There are frequency band in wireless communication and two stations should not be allowed to transmit simultaneously in a frequency band. The most promising advantage of satellite is broadcasting. If satellites are used for point to point communication then they are expensive as compared to wired media. &lt;center&gt;&lt;img src=&quot;http://www.cse.iitk.ac.in/%7Edheeraj/cs425/fig.lec02/satellite.jpg&quot; /&gt;&lt;/center&gt; &lt;/li&gt;&lt;/ol&gt; &lt;hr color=&quot;BLACK&quot;&gt; &lt;h3&gt;References of Images&lt;/h3&gt; &lt;ul&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://ai3.asti.dost.gov.ph/sat/levels.jpg&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://ai3.asti.dost.gov.ph/sat/levels.jpg&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt; &lt;a href=&quot;http://www.ll.mit.edu/Image-Lib/photos/color-Satellite.jpg&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://www.ll.mit.edu/Image-Lib/photos/color-Satellite.jpg&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://oldsite.vislab.usyd.edu.au/photonics/revolution/technology/images/twisted_pair.jpg&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://oldsite.vislab.usyd.edu.au/photonics/revolution/technology/images/twisted_pair.jpg&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href=&quot;http://www.radio-electronics.com/info/antennas/coax/cross_section_thro_coax.gif&quot; class=&quot;smarterwiki-linkify&quot;&gt;http://www.radio-electronics.com/info/antennas/coax/cross_section_thro_coax.gif&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://ankitjainarain.blogspot.com/feeds/4811012723627410729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/computer-networks-cs425.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/4811012723627410729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/4811012723627410729'/><link rel='alternate' type='text/html' href='http://ankitjainarain.blogspot.com/2009/10/computer-networks-cs425.html' title='Computer Networks (CS425)'/><author><name>Ankit</name><uri>http://www.blogger.com/profile/05478322170957335992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_zckDpxGeJaU/S8qX85_LlVI/AAAAAAAAAJY/nVMcpJ7-xMw/S220/Ankit+Jainarain+(2).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3685716557674208478.post-3100027921662515732</id><published>2009-06-10T14:31:00.001+05:30</published><updated>2009-06-10T14:37:31.908+05:30</updated><title type='text'></title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana; font-weight: bold; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;Speed up your browsing of Windows 2000 &amp;amp; XP machines&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana; font-size: 18px; font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana; font-size: 18px; font-weight: bold;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;times new roman&#39;; font-size: 16px; font-weight: normal; &quot;&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style=&quot;font-family:Verdana, Arial, Helvetica, sans-serif;font-size:-2;&quot;&gt;Here&#39;s a great tip to speed up your browsing of Windows XP machines. Its actually a fix to a bug installed as default in Windows 2000 that scans shared files for Scheduled Tasks. And it turns out that you can experience a delay as long as 30 seconds when you try to view shared files across a network because Windows 2000 is using the extra time to search the remote computer for any Scheduled Tasks. Note that though the fix is originally intended for only those affected, Windows 2000 users will experience that the actual browsing speed of both the Internet &amp;amp; Windows Explorers improve significantly after applying it since it doesn&#39;t search for Scheduled Tasks anymore. Here&#39;s how :&lt;br /&gt;&lt;br /&gt;Open up the Registry and go to :&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:Verdana, Arial, Helvetica, sans-serif;font-size:-2;&quot;&gt;HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/Current Version/Explorer/RemoteComputer/NameSpace&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:Verdana, Arial, Helvetica, sans-serif;font-size:-2;&quot;&gt;Under that branch, select the key :&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:Verdana, Arial, Helvetica, sans-serif;font-size:-2;&quot;&gt;{D6277990-4C6A-11CF-8D87-00AA0060F5BF}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:Verdana, Arial, Helvetica, sans-serif;font-size:-2;&quot;&gt;and delete it.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:Verdana, Arial, Helvetica, sans-serif;font-size:-2;&quot;&gt;This is key that instructs Windows to search for Scheduled Tasks. If you like you may want to export the exact branch so that you can restore the key if necessary.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family:Verdana, Arial, Helvetica, sans-serif;font-size:-2;&quot;&gt;This fix is so effective that it doesn&#39;t require a reboot and you can almost immediately determine yourself how much it speeds up your browsing processes.&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p align=&quot;center&quot;&gt; &lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ankitjainarain.blogspot.com/feeds/3100027921662515732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ankitjainarain.blogspot.com/2009/06/speed-up-your-browsing-of-windows-2000.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/3100027921662515732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3685716557674208478/posts/default/3100027921662515732'/><link rel='alternate' type='text/html' href='http://ankitjainarain.blogspot.com/2009/06/speed-up-your-browsing-of-windows-2000.html' title=''/><author><name>Ankit</name><uri>http://www.blogger.com/profile/05478322170957335992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_zckDpxGeJaU/S8qX85_LlVI/AAAAAAAAAJY/nVMcpJ7-xMw/S220/Ankit+Jainarain+(2).jpg'/></author><thr:total>0</thr:total></entry></feed>