Canonical stuff...

From: Scott Morris (smorris@xxxxxxxx)
Date: Thu Mar 16 2000 - 18:53:33 GMT-3


   
Hopefully this will all make sense out of context. I happened to write a
segment of a Token Ring chapter that dealt with canonical conversion steps.
This doesn't mention any areas that NEED or DON'T NEED the canonical
addresses, but it will explain the steps to convert the addresses so things
make sense to you!
If you have any questions, or my lack of context doesn't make sense, feel
free to let me know!

----------------------------------------------------
The first thing we will do is look at the MAC address in pair-bytes, which
is the way that most people are used to seeing the MAC address represented
anyway. So our Token Ring interface is now looking like 00-00-30-A9-60-16.

The next step is to convert each pair-byte into binary. Remember that the
MAC address is a hexadecimal number, so each digit/character represents 4
bits of information. For a refresher-course, you can look back to Section
1.11 for information on numbering schemas and converting between them.

4 bits in binary will give the following positions for our first pair 00:

0 0 0 0 0 0 0 0
8 4 2 1 8 4 2 1
23 22 21 20 23 22 21 20

Its really simple when the numbers are 0!!! So lets skip to the 30
group:

0 0 1 1 0 0 0 0
8 4 2 1 8 4 2 1
23 22 21 20 23 22 21 20

In binary, the 30 is 00110000.

Now, we are going to perform the bit-swapping part! No magic is involved,
so quit conjuring up images of David Copperfield and sounds of a drum roll!

As we stated, this process takes place within each pair of hexadecimal
characters (which, since each is 4 bits, 4 bits + 4 bits = 8 bits = 1 byte
of information!). So well look at the 30 pair first. We are going to
flop the entire group, where the right-most bit will become the left-most
bit.

If we look at the number above, 00110000 will become 00001100. So lets
plug it back in to the 4-bit matrix weve created:

0 0 0 0 1 1 0 0
8 4 2 1 8 4 2 1
23 22 21 20 23 22 21 20

We now get a 0 and a C in hexadecimal. So the 30 pair will become 0C!

So lets look at each pair now! Remember the original address was
00-00-30-A9-60-16!

00 is 0000 0000 in binary. Interestingly enough, when you reverse it all,
it looks the same! So we get by really easy for the first two pairs!

30 is 0011 0000 in binary. Swapped, it becomes 0000 1100 as discussed
above. That is 0C in hexadecimal.

A9 is 1010 1001 in binary. Swapped, it becomes 1001 0101, which is 95
when converted back to hexadecimal.

60 is 0110 0000 in binary. Swapped, it becomes 0000 0110, which is 06
in hexadecimal.

16 is 0001 0110 in binary. Swapped, it becomes 0110 1000, which is 68
in hexadecimal.

So when we put each concatenated pair back together, we find that the Token
Ring address has become 00-00-0C-95-06-68. That number-sequence is what we
will see contained within a Destination Address or Source Address portion of
a Token Ring frame.

Scott Morris, MCSE, CNE(3.x), CCDP (R&S), CCIE (R&S) #4713, Security
Specialization, CCNA - WAN Switching
smorris@ccci.com
----------------------------------------------------------------------------
------------------------------
Chesapeake Network Solutions http://www.ccci.com
Cell Phone: 941-350-8590 e-mail:smorris@ccci.com
Pager: 800-490-1326 Fax: 606-225-8403



This archive was generated by hypermail 2.1.4 : Thu Jun 13 2002 - 08:23:06 GMT-3