Vào đầu những năm 1990, IETF bắt đầu xem xét vấn đề mở rộng không gian địa chỉ IP và một số giải pháp thay thế đã được đề xuất.các kỹ thuật viên đã bắt đầu tìm kiếm một phiên bản kế thừa cho giao thức IPv4. Điều này đã chỉ ra rằng không gian địa chỉ IP 32 bit đã bắt đầu có dấu hiệu cạn kiệt.
Để để đối phó với các vấn đề về quy mô do sự phát triển lớn mạnh của Internet và đáp ứng nhu cầu sử dụng địa chỉ IP, một giao thức IP mới là IPv6 đã được phát triển. Các nhà thiết kế của IPv6 cũng nhân cơ hội này để điều chỉnh và tăng cường các khía cạnh khác của IPv4, dựa trên kinh nghiệm hoạt động tích lũy với IPv4.
1. IPv6 Packet Format
Mặc dù giao thức IPv6 là phiên bản mở rộng IPv4 theo một số cách, nhưng định dạng tiêu đề của nó thực sự đơn giản hơn. Sự đơn giản này là do nỗ lực phối hợp để loại bỏ chức năng không cần thiết khỏi giao thức.
Đầu tiên là việc mở rộng khả năng xử lý địa chỉ. IPv6 tăng kích thước của địa chỉ IP từ 32 lên 128 bit. Điều này đảm bảo rằng thế giới sẽ không hết địa chỉ IP. Để hiểu rõ hơn về số lượng địa chỉ IPv6 ta có thể hình dung mọi hạt cát trên Trái Đất có thể có địa chỉ IP.
1.1 Các định nghĩa của trường các gói
– Version: Trường này xác định số phiên bản IP. Không có gì ngạc nhiên khi IPv6 mang giá trị “6” trong trường này. Lưu ý rằng việc đặt “4” vào trường này không tạo ra gói IPv4 hợp lệ (hãy xem cách chuyển đổi từ IPv4 sang IPv6 ở phần sau)
– Priority: Trường bốn bit này tương tự như trường ToS mà chúng ta đã thấy trong IPv4. Nó cho biết rằng các giá trị từ 0 đến 7 sẽ được sử dụng cho mức độ ưu tiên trong số lưu lượng được kiểm soát tắc nghẽn (tức là nguồn sẽ tắt khi phát hiện tắc nghẽn), trong khi các giá trị từ 8 đến 15 được sử dụng cho lưu lượng truy cập được kiểm soát không tắc nghẽn, chẳng hạn như lưu lượng thời gian thực tốc độ bit không đổi.
– Flow label: Trường này được sử dụng để xác định “luồng” các gói
– Payload length: Giá trị 16-bit này được coi là một số nguyên không dấu cho số byte trong gói IPv6 theo chiều dài cố định, tiêu đề gói 40 byte.
– Next header: Trường này xác định giao thức mà nội dung của gói này sẽ được phân phối (ví dụ: tới TCP hoặc UDP). Các giá trị được sử dụng giống như các trường trong giao thức trong IPv4.
– Hop limit: Nội dung của trường này được giảm dần bởi mỗi bộ định tuyến chuyển tiếp gói tin. Nếu số lượng giới hạn bước nhảy bằng không, gói tin sẽ bị loại bỏ.
– Source and destination address: Địa chỉ IPv6 có cấu trúc sau:
– Data: Đây là phần tải trọng của gói IPv6. Khi gói đến đích, trọng tải sẽ bị xóa khỏi gói IP và được chuyển đến giao thức được chỉ định trong trường tiêu đề nex.
1.2 So sánh với cấu trúc gói tin IPv4
Bên cạnh đó, một số thành phần của IPv4 đã được loại bỏ trên IPv6 như sau:
Fragmentation/Reassembly :IPv6 không cung cấp khả năng phân mảnh và lắp ráp lại. Nếu gói IPv6 mà bộ định tuyến nhận được quá lớn để được chuyển tiếp qua liên kết đi, bộ định tuyến chỉ cần bỏ gói đó xuống và gửi lại thông báo lỗi ICMP “Gói quá lớn” cho người gửi. Sau đó, người gửi có thể gửi lại dữ liệu, sử dụng kích thước gói IP nhỏ hơn. Phân mảnh và lắp ráp lại là một hoạt động tốn nhiều thời gian; loại bỏ chức năng này khỏi các bộ định tuyến và đặt nó một cách vuông vắn trong các hệ thống đầu cuối giúp tăng tốc đáng kể việc chuyển tiếp IP trong mạng.
Checksum: Vì lớp truyền tải (ví dụ: TCP và UDP) và các giao thức liên kết dữ liệu (ví dụ: Ethernet) trong các lớp Internet thực hiện tổng kiểm tra, các nhà thiết kế IP có thể cảm thấy rằng chức năng này đủ dư thừa trong lớp mạng mà nó có thể bị loại bỏ. Một lần nữa, xử lý nhanh các gói IP là mối quan tâm trung tâm. Nhớ lại cuộc thảo luận của chúng ta về IPv4 trong phần 4.4.1, vì tiêu đề IPv4 chứa trường TTL (tương tự như trường giới hạn bước nhảy trong IPv6), tổng kiểm tra tiêu đề IPv4 cần được tính toán lại ở mọi bộ định tuyến. Giống như phân mảnh và lắp ráp lại, đây cũng là một hoạt động tốn kém trong IPv4.
Options:Trường tùy chọn không còn là một phần của tiêu đề IP tiêu chuẩn. Tuy nhiên, nó vẫn chưa biến mất. Thay vào đó, trường tùy chọn là một trong những “tiêu đề tiếp theo” có thể được trỏ đến từ bên trong tiêu đề IPv6. Nghĩa là, cũng giống như tiêu đề giao thức TCP hoặc UDP có thể là tiêu đề tiếp theo trong gói IP, trường tùy chọn cũng vậy. Việc loại bỏ các tùy chọn đã nộp dẫn đến một độ dài cố định, 40 tiêu đề IP byte.
2. Cấu trúc IPv6 Adress
Tương tự như địa chỉ IPv4 nhưng với địa chỉ IPv6 thì nó có độ dài 128 bit, được chia làm 8 nhóm, mỗi nhóm gồm 16 bit, được ngăn cách với nhau bằng dấu hai chấm “:”. Mỗi nhóm được biểu diễn dưới dạng Hexa, để dễ hình dung thì mời các bạn quan sát ví dụ sau:
IPv6 address: AEDC:CA9F:008A:0C98:FBBA:C087:0008:1011
Có thể thấy rằng, nếu để nhớ được địa chỉ của IPv6 là điều không khả quan. Có thể sử dụng
DNS để phân giải thành tên miền, nhưng không phải như vậy, địa chỉ IPv6 chỉ có thể được viết vắn tắt bằng sử dụng “quy tắc số 0 “.
– Cho phép bỏ các số 0 nằm trước mỗi nhóm.
– Thay bằng một số 0 cho nhóm có toàn số 0.
– Thay bằng dấu “::” cho các nhóm liên tiếp nhau có toàn số 0.
Nói như vậy vẫn rất khó để hình dung, hãy quan sát ví dụ dưới đây:
AEDC:CA9F:008A:0C98:FBBA:C087:0008:1011
AEDC:CA9F:8A:C98:FBBA:C087:8:1011
AEDC:CA9F:0000:0000:0000:0000:FBA8:1011
AEDC:CA9F::FBA8:1011
3. Phân loại địa chỉ IPv6
Địa chỉ Unicast
Trong địa chỉ Unicast, máy chủ được xác định duy nhất trong một phân đoạn mạng. Gói in IPv6 sẽ chứa cả IP nguồn và IP đích
Địa chỉ Multicast
Cũng giống như của IPv4, gói tin được gửi đến nhiều node với một địa chỉ multicast đặc biệt. Tất cả các node quan tâm đến thông tin phát multicast đó, trước tiên cần tham gia nhóm multicast .Toàn bộ các node tham gia nhóm đều sẽ nhận được gói phát multicast này và xử lý nó, trong khi các node khác không quan tâm đến gói phát multicast đó thì bỏ qua.
Địa chỉ Anycast
Riêng đối vớiIPv6 đây là một loại địa chỉ mới được gọi là Anycast. Trong chế độ địa chỉ này, nhiều Hosts được gán cùng một địa chỉ IP Anycast. Khi một node muốn liên lạc với một node được trang bị địa chỉ IP Anycast, nó sẽ gửi một tin nhắn Unicast.