MET CS CS625 Business Data Communications and Networks Lab 6 – IPv6 Address Representation

my wechat:Yooo932851

Don't hesitate to contact me

While IPv4 is still by far the language of the Internet and is used significantly more than IPv6, some organizations have begun to transition to IPv6. There is sufficient vendor and standards support to make this transition possible, and organizations recognize that as the intended replacement for IPv4, IPv6 offers many benefits. Therefore it is important for you to understand some fundamental IPv6 concepts so that you are prepared to work with modern networks that have transitioned, or will soon transition, to IPv6. You may legitimately ask why IPv6 is needed at all. After all, if IPv4 is working fine for many organizations, why not just keep using IPv4? We are in the final stages of IPv4 address exhaustion, because IPv4 addresses are only 32 bits in length, and because IPv4 addresses have not been allocated optimally or equitably to all organizations worldwide. So although organizations have managed to operate worldwide using IPv4 up until now, the unprecedented growth of the Internet will not allow for an IPv4 only world much longer. There has been and continues to be an explosion of the use of personal devices such as smart phones and tablets, and each of these need an IP address. Previously underdeveloped markets worldwide are beginning to demand millions of new IP addresses. The now digital world will soon need a different protocol, and IPv6 is the intended solution.

Although IPv6 is the intended replacement for IPv4, it is likely that IPv4 will be used for

decades to come. We will not likely experience a light switch effect of “turning off” IPv4

and “turning on” IPv6. One reason for this is because organizations use port address

translation (PAT) to map hundreds or thousands of private addresses to a single public

address, thereby delaying the often touted IPv4 address exhaustion due to IPv4’s 32‐bit

address. Without PAT, we would have exhausted all public IPv4 addresses a long time

ago and organizations would have been forced to switch to a replacement sooner, but

as of today many organizations are operating just fine using IPv4. Therefore many

organizations will continue to use IPv4, possibly for a long time to come. Some hardware

and software is very long lived, even unto decades, and in many cases it may be cost

prohibitive or impossible to upgrade such legacy systems to IPv6, even if the organization as a whole has migrated to IPv6. So you can rest assured that your IPv4and

IPv6 knowledge and skills will be useful for decades to come.

One of the many powerful features of IPv6 is that it has been designed to fully

interoperate with IPv4, so that organizations that use IPv4 exclusively can communicate

with organizations that use IPv6 exclusively, and vice‐versa. Also, organizations can use

both IPv4 and IPv6 simultaneously, making the transition to IPv6 easier.

LAB OBJECTIVES

The objectives of this lab are:

 to learn how to represent IPv6 addresses in canonical text representation.

 to learn how to remove leading zeros from IPv6 addresses in canonical text

representation.

 to learn how to zero compress IPv6 addresses in canonical text representation.

 to learn how to create and represent IPv4‐mapped IPv6 addresses.

LAB SUBMISSION

Use the submission template provided in the assignment inbox to perform the steps

requested by this lab. Return to the assignment inbox to submit your lab.

Section One – IPv6 Address Representation

OVERVIEW

IPv6 addresses are 128 bits in length, and this length demands a human‐readable

representation that is more concise than the standard IPv4 dotted decimal notation. The

accepted IPv6 representation is 8 blocks of 4 hexadecimal digits, each separated by a

colon. Since each hexadecimal digit is capable of representing 4 bits, a block of 4 of

them can represent 16 bits. And we need 8 blocks of these to represent the full 128 bit

address.

STEPS

1. Let us work through an example of IPv6 representation. Imagine that an IPv6 address

in binary is 00100000 00000001 00001101 01110100 00111000 00101101 00000000

00010010 00000000 00000000 00000000 00000001 00010010 00110100 01010110

10101010. Wow! That is a long binary number! Computers have no problem with

binary numbers of that length, but we would surely make mistakes if we tried to

work with and perform calculations on such long binary numbers. Instead, we

represent this same IPv6 address as follows:

2001:0d74:382d:0012:0000:0001:1234:56aa

Each hexadecimal digit represents 4 bits. For example, the first 8 bits of the address

in binary are  00100000, so the first 4 bits, 0010, are  represented with a 2 in

hexadecimal, and the second 4 bits, 0000, are represented with a 0 in hexadecimal.

For the next 8 bits, 00000001, 0000 is represented with a 0 in hexadecimal, and 0001

is represented with a 1 in hexadecimal. Thus the first 16 bits are represented as 2001

in hexadecimal. After a block of 4 hexadecimal digits, by convention, we insert a

colon (:) to separate it from another block of 4 hexadecimal digits.  

The following figure illustrates this methodology applied to the first 32 bits of the

same IPv6 address.  

Notice that each group of 4 bits is converted to hexadecimal, and that a colon is

inserted after each block of 4 hexadecimal digits. While the figure only illustrates the

first 32 bits, the same methodology can be applied to all 128 bits to arrive at the

human readable representation of 2001:0d74:382d:0012:0000:0001:1234:56aa.

The human readable representation shown above, with 8 sets of 4 hexadecimal

digits, is defined in RFC 2373, titled “IP Version 6 Addressing Architecture”, and in

RFC 5952, titled “A Recommendation for IPv6 Address Text Representation”. An RFC

is a document that is a “Request for Comments” by the Internet Engineering Task

Force (IETF), one of the organizations responsible for defining and improving many

network protocols. RFC 5952 terms this representation as the “canonical text

representation”, and this term will be used throughout the remainder of this lab to

refer to this human readable representation.

2. Convert the following IPv6 address given in binary to its canonical text representation

shown in step 1.

11010011 00000101 11111100 10101010 00000000 11000000 11100111 00111100

01010000 11000001 10000101 00001111 00100100 11011011 10100011 01100110

3. RFCs 2373 and 5952 define two rules on how to shorten the length of canonical text

representations. We will work with the first rule in this step, and the second rule in a

later step. The first rule is that in each group of 4 hexadecimal digits, leading 0 digits

can be omitted. For example, if a group contains the digits “0001”, the group can be

shortened to “1” by eliminating the leading 0 digits. If a group consists of all 0 digits,

however, the rule states that one 0 must still be present. Therefore, a group that

contains “0000” can be shortened to “0”. Other examples include reducing “0010” to

“10” and “0A9B” to “A9B”. In all cases we simply eliminate the leading 0 digits, if

there are any.

In step 1, we determined that the canonical text representation for address:

00100000 00000001 00001101 01110100 00111000 00101101 00000000 00010010

00000000 00000000 00000000 00000001 00010010 00110100 01010110 10101010

is 2001:0d74:382d:0012:0000:0001:1234:56aa.

If we apply the first rule to eliminate all leading 0 digits, the leading 0 bits are

eliminated, 2001:0d74:382d:0012:0000:0001:1234:56aa, and the result is thus

2001:d74:382d:12:0:1:1234:56aa.

4. Now you give the rule a try on the following address:

00000000 10001111 11000110 00000001 00001011 00111110 11111110 0001100011101110 01110000 00111001 11111110 01010100 11000001 00000001 11100111

Represent the address in its canonical text notation, making sure to eliminate all

leadings 0 digits as described by the rule introduced in step 3.

5. RFCs 2373 and 5952 define a second rule termed “zero compression” that further

reduces the size of a particular canonical text representation. In exactly one place in

a canonical text representation of an address, the characters “::” can substitute for

two or more consecutive groups of 4 hexadecimal digits that consist of all 0 digits.  

For example, the following address in binary notation:

11001111 00110011 00110011 00000000 00000000 00000000 00000000 00000000

00000000 00000000 10001100 01011100 00000000 00000000 00000000 00000000

is represented as CF33:3300:0000:0000:0000:8C5C:0000:0000 in full canonical text

representation. If we apply zero compression to the first three consecutive groups of

4 hexadecimal digits consisting of all 0s, the canonical text representation then

becomes CF33:3300::8C5C:0000:0000. Let us view this zero compression graphically

in the figure below.

Notice that the three consecutive groups of all 0 digits are eliminated and are simply

represented by the characters “::”.

Note that this rule can be applied toonly one instance of consecutive groups of all 0

digits. Why? Because if two or more consecutive groups were replaced with the “::”

characters, it would no longer be possible to reconstruct the full address reliably due

to the introduced ambiguity. For example, the aforementioned address

CF33:3300:0000:0000:0000:8C5C:0000:0000 has two different consecutive groups of

all 0 digits, with the consecutive groups highlighted in blue. If we were to zero

compress both of them, the result would be CF33:3300::8C5C::. Why does this result

not work? Simple! In viewing this compress form, we have allowed for the following

two full representations:

 CF33:3300:0000:0000:8C5C:0000:0000:0000

 CF33:3300:0000:0000:0000:8C5C:0000:0000

There is no way for us to determine which is correct simply by viewing the

compressed form of the address, CF33:3300::8C5C::. For this reason, RFC 5952

mandates that only one consecutive group of all 0 digits can be replaced with the

characters “::”, because then there is no ambiguity.

What happens if there are multiple consecutive groups of all 0 digits in the address?

RFC 5952 indicates the following order of precedence:

1. Zero compress the longest of the consecutive groups of all 0 digits.

2. If two or more consecutive groups of all 0 digits are of the same length (and are

the longest consecutive groups), zero compress the first (leftmost).

With our example address CF33:3300:0000:0000:0000:8C5C:0000:0000, we zero

compress the first of the consecutive groups of all 0 digits, because the first has 3

groups, and the second only has 2 groups. Therefore CF33:3300::8C5C:0000:0000is

the correct representation, and CF33:3300:0000:0000:0000:8C5C:: is not the correct

representation.

Another point worth mentioning is that a single group of all 0 digits does not qualify

for zero compression. The most we can do for a single group of all 0 digits is to

remove the leadings 0 digits. That means that a single group of all 0 digits, 0000,

would become simply become “0”, but could not be replaced with the “::”

characters.

Lastly, why bother with zero compression at all? After all, how likely is it that a real

address will have consecutive groups of 16‐bits that are all 0s? Many special

addressing IPv6 forms make use of many consecutive 0 bits. As just one example,

when IPv4 addresses are embedded into IPv6 addresses, the IPv6 address begins

with 80 0 bits. There are other special forms as well where long strings of 0 bits are

used, so it is not uncommon to see IPv6 addresses with many consecutive groups of

16‐bits that are all 0s.

6. Now you give this second rule a try on the following address:

11001100 01110110 00000000 00000000 00000000 00000000 00111011 11100111

00000000 00000000 00000000 00000000 00000000 00000000 11110010 10000110

Represent the address in its canonical text notation, making sure to zero compress

the appropriate consecutive groups of all 0 digits, as described by the rule introduced

in step 5.

7. The two aforementioned rules can be combined to obtain the shortest canonical text

representation of an IPv6 address. For example, imagine that the full canonical text

representation of an IPv6 address is 02AB:0000:0000:0995:AB05:0000:9954:0032.

We can zero compress the address, which gives us a result of

02AB::0995:AB05:0000:9954:0032, then we can remove leading 0 digits, which gives

us a result of 2AB::995:AB05:0:9954:32. Application of both rules is illustrated in the

following figure.

Notice that the second and third groups, which consist of all 0 digits, were

compressed, and all leading 0 digits were removed.

According to RFC 5952, when representing an IPv6 address in its canonical text

representation, both rules must be applied. However, because IPv6 has not yet been

widely adopted as of this writing, it remains to be seen whether the compressed

format or the full format will be preferred.

8. Given the following IPv6 address in binary:

00000000 00000000 00000000 00000000 00000000 00000000 00000000 10101011

00001001 00010000 00000000 00000000 11110001 01010110 00001101 01010101

determine its canonical text representation, making sure to remove leading 0 digits

and to apply zero compression, as illustrated in step 7.  

9. A significant factor in the success of IPv6 deployment worldwide is how well it

interoperates with IPv4, because the world’s existing infrastructure consists of

billions of devices and network links that use IPv4.  It is likely that some devices will

continue to use IPv4 for decades to come, and we do not want cut off

communication to and from these devices. The designers of IPv6 recognized that

devices that operate using IPv6 must be able to communicate with devices that

exclusively use IPv4, and therefore defined a standard method of converting an IPv4

address into an IPv6 address. This type of address is termed anIPv4‐mapped IPv6

address.

The method of creating an IPv4‐mapped IPv6 address from an existing IPv4 address is

straightforward. The first 80 bits of the IPv6 address are each set to 0, the next 16 bits are each set to 1, and the IPv4 address itself is embedded in the last 32 bits. This concept is illustrated in the figure below.

Let us look at an example. Imagine that a node has the IPv4 address 177.212.15.33

and we want to create its corresponding IPv4‐mapped IPv6 address.

 First, we start with 80 0 bits, which corresponds to 5 groups of 4 hexadecimal

digits: 0000:0000:0000:0000:0000.

 Second, we append the 16 1 bits, which corresponds to 1 group of

hexadecimal digits: 0000:0000:0000:0000:0000:FFFF.

 Third, we append the IPv4 address:

0000:0000:0000:0000:0000:FFFF:177.212.15.33.

 Fourth, we zero compress the result: ::FFFF:177.212.15.33.

Wait a minute! Is that a typo? We are not used to seeing an IPv6 address in this way,

with hexadecimal mixed with dotted decimal notation. Actually, we are permitted to

represent IPv4 addresses embedded in IPv6 addresses in dotted decimal notation,

and it helps the IPv4 address stand out as an IPv4 address within the IPv6 address.

Note that it is not illegal to represent the address in all hexadecimal, in which case

the result would be ::FFFF:B1D4:F21, but it is conventional to represent the IPv4

address in dotted decimal. So our final result for the IPv4‐mapped IPv6 address is

::FFFF:177.212.15.33.

10. Imagine that a computer is assigned IPv4 address 245.19.1.99. Create its

corresponding IPv4‐mapped IPv6 address as demonstrated in step 9, making sure to

zero compress the result.  

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,186评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,858评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,620评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,888评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,009评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,149评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,204评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,956评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,385评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,698评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,863评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,544评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,185评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,899评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,141评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,684评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,750评论 2 351

推荐阅读更多精彩内容