آبجی
24th May 2010, 01:48 AM
سرآیندهای بسته IPv6
IPv6 بسیاری از ویژگیهای اصلی پروتكل IPv4 را دارا میباشد، اینترنت موفقیتهای لازم را كسب نخواهد كرد مگر اینكه بسیاری از عیبها و نقایص مهم و قابل توجه موجود در طراحی IPv4 را كنار بگذاریم. بنابراین سرآیندهای IPv6 دارای شباهتهای زیادی در مقایسه با هدرهای IPv4 میباشد. هدرهای IPv6 تركیبی از 64 بیت هستندكه بوسیله دو فیلد 128 بیتی یعنی آدرس مبداء و آدرس مقصد احاطه شدهاند. دیگر فیلدهای سرآیند یك بسته IPv6 از قرار زیر میباشد:
<LI class=MsoNormal dir=rtl style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-list: l0 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">Version <LI class=MsoNormal dir=rtl style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-list: l0 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">Class <LI class=MsoNormal dir=rtl style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-list: l0 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">Flow label <LI class=MsoNormal dir=rtl style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-list: l0 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">Length of payload <LI class=MsoNormal dir=rtl style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-list: l0 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">Type
Hop limit
برخلاف سرآیندهای IPv4 كه شكل و قالب ثابت دارند. سرآیندهای IPv6 دارای شكل ثابت نبوده و از انعطافپذیری بیشتری برخوردار است. این كار باعث میشود سرآیندهایی كه در IPv4 استفاده میشدند سادهتر گردد زیرا IPv4 یك شكل و قالب ثابت به همه هدرها اختصاص میدهد و تصحیح كنندههای سرآیند[1] را جابجا میكند و این پروسه و عمل را در همه جهش[2]ها تكرار میكند.مهمترین قسمت این تغییرات، جابجایی و برداشتن پروسه تقسیمبندی جهش به جهش[3] میباشد، قبلاً ممكن بود یك میزبان اطلاعات خود را از طریق چند محیط و مسیر به سمت مقصد بفرستد زیرا این احتمال و جود داشت كه بستهای كه ارسال شده به اندازهای بزرگ باشد كه بعضی از شبكهها نمیتوانند آن را انتقال دهند. به عنوان مثال ارسال یك بسته از محیط شبكه با توپولوژی حلقه نشانه[4] كه ماكزیمم اندازه بسته آن 4 كیلو بایت است به یك شبكه با استاندارد اترنت كه حداكثر اندازه بسته آن 5 .1 كیلو بایت میباشد در نظر بگیرید، در این حالت مسیریابی كه دو نوع محیط را به همدیگر متصل میكند بسته اصلی را تقسیم[5] خواهد كرد. این اتفاق در IPv6 نخواهد افتاد زیرا IPv6 از پروسهای كه "تشخیص دهنده MTU[6] مسیر" گفته میشود استفاده میكند و بنابراین مطمئن است كه هیچ تقسیم بندی لازم نیست.با وجود اینكه IPv6 دارای سرآیندهای بسیار سادهای است و لی با این وجود مفهوم سرآیندهای توسعه[7] را نیز پشتیبانی میكند. زمانی كه سرآیندهای توسعه مورد استفاده قرار میگیرند بخش انتهایی هر سرآیند آدرس سرآیند بعدی را مشخص میكند مگر در حالتی كه نوبت سرآیند آخری، یعنی ناحیه داده، باشد. این مفهوم در شكل زیر نشان داده شده است.
Payload
IPv6 headerNext header= payload
Payload
Routing headerNext header= payload
IPv6 headerNext header= Routing
Payload
Encryption headerNext header= payload
Routing headerNextheader=Encryption
IPv6 headerNext header= Routing
سرآیندهای توسعهای كه قابل دسترسی هستند عبارتند از:
<LI class=MsoNormal dir=rtl style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-list: l1 level1 lfo2; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">Routing header <LI class=MsoNormal dir=rtl style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-list: l1 level1 lfo2; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">Fragment heade <LI class=MsoNormal dir=rtl style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-list: l1 level1 lfo2; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">Authentication header <LI class=MsoNormal dir=rtl style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-list: l1 level1 lfo2; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">Encrypted security payload
Destination option header
[1]Header checksum
[2]Hop
[3]Hop by hop
[4]Token-Ring
[5]Fragmentation
[6]Maximum Transfer Unit
[7]Header extension
آدرس دهی در IPV6
در IPv4 از روش معروف هشتتایی برای آدرسدهی استفاده میكردیم و با استفاده از آن كلاسهای آدرس A، B، C، D و E را تعریف میكردیم و با توجه به ماسك زیر شبكه[1]ای كه اعمال میكردیم میتوانستیم شبكه، زیر شبكه و شمارههای گرهها را تشخیص دهیم. IPv6 مقداری با این مفهوم متفاوت است و ما این تفاوت را در اینجا توضیح میدهیم.در IPv6 سه روش آدرسدهی وجود دارد كه عبارتند از: آدرس منحصر به فرد[2]، گروهی[3] و anycast . حالت پخشی[4] وجود ندارد. آدرس منحصر به فرد مانند ارتباط نقطه به نقطه[5] میباشد و یك بسته فقط به یك آدرس مشخص ارسال میشود نه به آدرسهای دیگر و این آدرس به یك واسط[6] مشخص و ثابت در شبكه اختصاص پیدا میكند. حالت گروهی به فرآیندی اشاره دارد كه در آن یك بسته به تعدادی از گیرندهها ارسال میشود این كار متفاوت با حالت پخشی میباشد زیرا در حالت پخشی بسته ارسال شده به تمامی افزارها و دستگاههای موجود در زیر شبكه تحویل داده میشود ولی در حالت گروهی ارسال بسته فقط برای تعداد محدودی از افزارها كه از قبل تنظیم شدهاند صورت میگیرد بنابراین افزارهایی بسته را دریافت میكنند كه حالت گروهی از قبل برای آنها تعریف شده باشد. حالت anycast مشابه حالت گروهی میباشد با این تفاوت كه بسته تنها به اولین افزاری كه در گروه anycast میتواند بسته را دریافت كند تحویل داده میشود و به تمامی افزارهای موجود در گروه anycast تحویل داده نخواهد شد.قراردادی كه برای نشان دادن و نوشتن آدرسهای 128 بیتی در IPv6 بهكار میرود استفاده از بلوكهایی از 4 عدد هگزا دسیمال است كه با علامت كولن ( : ) از همدیگر جدا میشوند، یك مثال در زیر آورده شده است.
FEDC:CD56:6543:7896:F123:2344:9877:7654
نوشتن این اعداد مقداری پرزحمت است البته نه برای كاربرانی كه در هرحالت میتوانند از نام میزبان بهجای آدرس آن استفاده كنند بلكه برای مدیرانی كه مجبورند این اعداد را برای پیكربندی فایلها و بانكهای اطلاعاتی و افزارها بنویسند. برای خلاصه كردن این عدد نویسی، مطابق قرارداد از نوشتن یك بلوك از صفرهای متوالی آدرس جلوگیری میكنند. این كار بسیار مفید واقع خواهد شد مخصوصاً در روزهای اول عمر IPv6 كه مقدار زیادی از فضای آدرس از صفرها تشكیل شده است. قرارداد حذف كردن صفرها به عددنویسی با دو كولن معروف است و آن به این معنا است كه اگر دو كولن در یك آدرس نشان داده شود آن آدرس را با وارد كردن صفرها بین دو كولن به 128 بیت میرسانیم. مثال زیر این عمل را نشان میدهد.
FF02:0000:0000:0000:0000:0000:0000:0002
که میتوان آدرس فوق را به صورت زیر نمایش داد.FF02:2در نوشتن اعداد مربوط به آدرسهای IPv6 میتوان یك پیشوند آدرس، همانطور كه در IPv4 استفاده میشد تعریف نمود، در IPv4 همانطور كه دیدید تعداد بیتهایی كه به عنوان پیشوند به آدرس اضافه میشد و آدرس زیر شبكه را مشخص میكرد، را میتوانستیم با استفاده از علامت / (slash) از آدرس جدا كنیم. در IPv6 نیز از همان قالب (IPv6-prefix/prefix-length) میتوان استفاده نمود. مثال زیر یك آدرس IPv4 كلاس B با تعداد بیتهای 24 تایی (كه معادل با ماسك زیر شبكه 255.255.255.0 است) را نشان میدهد.173.8.4.3/24از همان روش در IPv6 نیز میتوان استفاده كرد، مثال زیر نشان میدهد كه اولین 64 بیتی كه به عنوان پیشوند میباشد در جدول مسیریابی برای مشخص كردن قسمتهای مجزا و انحصاری شبكه استفاده میشود
FEDC::1234:2345:2222/64
[1]Subnet mask[2]Unicast[3]Multicast[4]Broadcast[5]Point to point[6]Interface
IPv6 بسیاری از ویژگیهای اصلی پروتكل IPv4 را دارا میباشد، اینترنت موفقیتهای لازم را كسب نخواهد كرد مگر اینكه بسیاری از عیبها و نقایص مهم و قابل توجه موجود در طراحی IPv4 را كنار بگذاریم. بنابراین سرآیندهای IPv6 دارای شباهتهای زیادی در مقایسه با هدرهای IPv4 میباشد. هدرهای IPv6 تركیبی از 64 بیت هستندكه بوسیله دو فیلد 128 بیتی یعنی آدرس مبداء و آدرس مقصد احاطه شدهاند. دیگر فیلدهای سرآیند یك بسته IPv6 از قرار زیر میباشد:
<LI class=MsoNormal dir=rtl style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-list: l0 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">Version <LI class=MsoNormal dir=rtl style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-list: l0 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">Class <LI class=MsoNormal dir=rtl style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-list: l0 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">Flow label <LI class=MsoNormal dir=rtl style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-list: l0 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">Length of payload <LI class=MsoNormal dir=rtl style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-list: l0 level1 lfo1; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">Type
Hop limit
برخلاف سرآیندهای IPv4 كه شكل و قالب ثابت دارند. سرآیندهای IPv6 دارای شكل ثابت نبوده و از انعطافپذیری بیشتری برخوردار است. این كار باعث میشود سرآیندهایی كه در IPv4 استفاده میشدند سادهتر گردد زیرا IPv4 یك شكل و قالب ثابت به همه هدرها اختصاص میدهد و تصحیح كنندههای سرآیند[1] را جابجا میكند و این پروسه و عمل را در همه جهش[2]ها تكرار میكند.مهمترین قسمت این تغییرات، جابجایی و برداشتن پروسه تقسیمبندی جهش به جهش[3] میباشد، قبلاً ممكن بود یك میزبان اطلاعات خود را از طریق چند محیط و مسیر به سمت مقصد بفرستد زیرا این احتمال و جود داشت كه بستهای كه ارسال شده به اندازهای بزرگ باشد كه بعضی از شبكهها نمیتوانند آن را انتقال دهند. به عنوان مثال ارسال یك بسته از محیط شبكه با توپولوژی حلقه نشانه[4] كه ماكزیمم اندازه بسته آن 4 كیلو بایت است به یك شبكه با استاندارد اترنت كه حداكثر اندازه بسته آن 5 .1 كیلو بایت میباشد در نظر بگیرید، در این حالت مسیریابی كه دو نوع محیط را به همدیگر متصل میكند بسته اصلی را تقسیم[5] خواهد كرد. این اتفاق در IPv6 نخواهد افتاد زیرا IPv6 از پروسهای كه "تشخیص دهنده MTU[6] مسیر" گفته میشود استفاده میكند و بنابراین مطمئن است كه هیچ تقسیم بندی لازم نیست.با وجود اینكه IPv6 دارای سرآیندهای بسیار سادهای است و لی با این وجود مفهوم سرآیندهای توسعه[7] را نیز پشتیبانی میكند. زمانی كه سرآیندهای توسعه مورد استفاده قرار میگیرند بخش انتهایی هر سرآیند آدرس سرآیند بعدی را مشخص میكند مگر در حالتی كه نوبت سرآیند آخری، یعنی ناحیه داده، باشد. این مفهوم در شكل زیر نشان داده شده است.
Payload
IPv6 headerNext header= payload
Payload
Routing headerNext header= payload
IPv6 headerNext header= Routing
Payload
Encryption headerNext header= payload
Routing headerNextheader=Encryption
IPv6 headerNext header= Routing
سرآیندهای توسعهای كه قابل دسترسی هستند عبارتند از:
<LI class=MsoNormal dir=rtl style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-list: l1 level1 lfo2; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">Routing header <LI class=MsoNormal dir=rtl style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-list: l1 level1 lfo2; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">Fragment heade <LI class=MsoNormal dir=rtl style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-list: l1 level1 lfo2; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">Authentication header <LI class=MsoNormal dir=rtl style="MARGIN: 0in 0in 10pt; LINE-HEIGHT: normal; mso-list: l1 level1 lfo2; tab-stops: list .5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">Encrypted security payload
Destination option header
[1]Header checksum
[2]Hop
[3]Hop by hop
[4]Token-Ring
[5]Fragmentation
[6]Maximum Transfer Unit
[7]Header extension
آدرس دهی در IPV6
در IPv4 از روش معروف هشتتایی برای آدرسدهی استفاده میكردیم و با استفاده از آن كلاسهای آدرس A، B، C، D و E را تعریف میكردیم و با توجه به ماسك زیر شبكه[1]ای كه اعمال میكردیم میتوانستیم شبكه، زیر شبكه و شمارههای گرهها را تشخیص دهیم. IPv6 مقداری با این مفهوم متفاوت است و ما این تفاوت را در اینجا توضیح میدهیم.در IPv6 سه روش آدرسدهی وجود دارد كه عبارتند از: آدرس منحصر به فرد[2]، گروهی[3] و anycast . حالت پخشی[4] وجود ندارد. آدرس منحصر به فرد مانند ارتباط نقطه به نقطه[5] میباشد و یك بسته فقط به یك آدرس مشخص ارسال میشود نه به آدرسهای دیگر و این آدرس به یك واسط[6] مشخص و ثابت در شبكه اختصاص پیدا میكند. حالت گروهی به فرآیندی اشاره دارد كه در آن یك بسته به تعدادی از گیرندهها ارسال میشود این كار متفاوت با حالت پخشی میباشد زیرا در حالت پخشی بسته ارسال شده به تمامی افزارها و دستگاههای موجود در زیر شبكه تحویل داده میشود ولی در حالت گروهی ارسال بسته فقط برای تعداد محدودی از افزارها كه از قبل تنظیم شدهاند صورت میگیرد بنابراین افزارهایی بسته را دریافت میكنند كه حالت گروهی از قبل برای آنها تعریف شده باشد. حالت anycast مشابه حالت گروهی میباشد با این تفاوت كه بسته تنها به اولین افزاری كه در گروه anycast میتواند بسته را دریافت كند تحویل داده میشود و به تمامی افزارهای موجود در گروه anycast تحویل داده نخواهد شد.قراردادی كه برای نشان دادن و نوشتن آدرسهای 128 بیتی در IPv6 بهكار میرود استفاده از بلوكهایی از 4 عدد هگزا دسیمال است كه با علامت كولن ( : ) از همدیگر جدا میشوند، یك مثال در زیر آورده شده است.
FEDC:CD56:6543:7896:F123:2344:9877:7654
نوشتن این اعداد مقداری پرزحمت است البته نه برای كاربرانی كه در هرحالت میتوانند از نام میزبان بهجای آدرس آن استفاده كنند بلكه برای مدیرانی كه مجبورند این اعداد را برای پیكربندی فایلها و بانكهای اطلاعاتی و افزارها بنویسند. برای خلاصه كردن این عدد نویسی، مطابق قرارداد از نوشتن یك بلوك از صفرهای متوالی آدرس جلوگیری میكنند. این كار بسیار مفید واقع خواهد شد مخصوصاً در روزهای اول عمر IPv6 كه مقدار زیادی از فضای آدرس از صفرها تشكیل شده است. قرارداد حذف كردن صفرها به عددنویسی با دو كولن معروف است و آن به این معنا است كه اگر دو كولن در یك آدرس نشان داده شود آن آدرس را با وارد كردن صفرها بین دو كولن به 128 بیت میرسانیم. مثال زیر این عمل را نشان میدهد.
FF02:0000:0000:0000:0000:0000:0000:0002
که میتوان آدرس فوق را به صورت زیر نمایش داد.FF02:2در نوشتن اعداد مربوط به آدرسهای IPv6 میتوان یك پیشوند آدرس، همانطور كه در IPv4 استفاده میشد تعریف نمود، در IPv4 همانطور كه دیدید تعداد بیتهایی كه به عنوان پیشوند به آدرس اضافه میشد و آدرس زیر شبكه را مشخص میكرد، را میتوانستیم با استفاده از علامت / (slash) از آدرس جدا كنیم. در IPv6 نیز از همان قالب (IPv6-prefix/prefix-length) میتوان استفاده نمود. مثال زیر یك آدرس IPv4 كلاس B با تعداد بیتهای 24 تایی (كه معادل با ماسك زیر شبكه 255.255.255.0 است) را نشان میدهد.173.8.4.3/24از همان روش در IPv6 نیز میتوان استفاده كرد، مثال زیر نشان میدهد كه اولین 64 بیتی كه به عنوان پیشوند میباشد در جدول مسیریابی برای مشخص كردن قسمتهای مجزا و انحصاری شبكه استفاده میشود
FEDC::1234:2345:2222/64
[1]Subnet mask[2]Unicast[3]Multicast[4]Broadcast[5]Point to point[6]Interface