IPv6 (Internet Protocol version 6) نسخه جدید پروتکل اینترنت است که برای جایگزینی IPv4 طراحی شده است. 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}")
سرایند IPv6 سادهتر از سرایند IPv4 است و شامل فیلدهای ثابتی است که چکسام را شامل نمیشود.
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 |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
فیلد | بیتها | توضیحات |
---|---|---|
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 مقصد |