توضیح IPv6

مقدمه

IPv6 (Internet Protocol version 6) نسخه جدید پروتکل اینترنت است که برای جایگزینی IPv4 طراحی شده است. IPv6 از آدرس‌های ۱۲۸ بیتی استفاده می‌کند که این امکان را فراهم می‌کند که تعداد بیشتری آدرس یکتا داشته باشیم.

فرمت آدرس IPv6

یک آدرس IPv6 شامل ۸ گروه از ۴ رقم هگزادسیمال است که با دو نقطه (:) جدا شده‌اند. هر گروه نمایانگر ۱۶ بیت است که مجموعاً ۱۲۸ بیت را تشکیل می‌دهد.

2001:0db8:85a3:0000:0000:8a2e:0370:7334

نمایش هگزادسیمال

در هگزادسیمال، هر کاراکتر نمایانگر ۴ بیت است. برای مثال، کاراکتر A در هگزادسیمال معادل با عدد باینری ۱۰۱۰ است.

محاسبه شناسه شبکه و میزبان

برای محاسبه شناسه شبکه (Network ID) و شناسه میزبان (Host ID) در IPv6، از پیشوند CIDR استفاده می‌شود.

2001:0db8:85a3::8a2e:0370:7334/64

این آدرس نشان می‌دهد که ۶۴ بیت اول برای شناسه شبکه و باقی بیت‌ها برای شناسه میزبان استفاده می‌شود.

مثال کد پایتون


def ipv6_to_binary(ipv6):
    parts = ipv6.split(':')
    binary_str = ''
    for part in parts:
        binary_str += bin(int(part, 16))[2:].zfill(16)
    return binary_str

def calculate_network_host(ipv6, prefix_length):
    binary_ipv6 = ipv6_to_binary(ipv6)
    network_id = binary_ipv6[:prefix_length]
    host_id = binary_ipv6[prefix_length:]
    return network_id, host_id

# Example usage
ipv6_address = '2001:0db8:85a3:0000:0000:8a2e:0370:7334'
prefix_length = 64

network_id, host_id = calculate_network_host(ipv6_address, prefix_length)
print(f"Network ID: {network_id}")
print(f"Host ID: {host_id}")
        

سرایند (Header) IPv6

سرایند IPv6 ساده‌تر از سرایند IPv4 است و شامل فیلدهای ثابتی است که چکسام را شامل نمی‌شود.

مثال سرایند IPv6 در هگزادسیمال

6000 0000 0018 3bff 2001 0db8 85a3 0000 0000 8a2e 0370 7334 2001 0db8 85a3 0000 0000 8a2e 0370 7335

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version | Traffic Class |           Flow Label                |
|  4 Bits |    8 Bits     |            20 Bits                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Payload Length        | Next Header  |   Hop Limit    |
|           16 Bits             |     8 Bits   |     8 Bits     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                         Source Address                        +
|                            128 Bits                           |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                      Destination Address                      +
|                            128 Bits                           |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

سرایند IPv6

فیلد بیت‌ها توضیحات
Version 4 نسخه پروتکل (برای IPv6 مقدار 6)
Traffic Class 8 اولویت‌بندی بسته‌ها و کیفیت سرویس (QoS)
Flow Label 20 شناسایی جریان‌های بسته‌ها
Payload Length 16 طول بار مفید بسته به بایت
Next Header 8 نوع سرایند بعدی (پروتکل لایه بالا)
Hop Limit 8 تعداد روترهایی که بسته می‌تواند عبور کند
Source Address 128 آدرس IP مبدأ
Destination Address 128 آدرس IP مقصد
  1. ورود به صفحه فارسی