Khuôn dạng gói dữ liệu IPv6 được minh họa trên hình hình 7.20. Điểm thay đổi quan trọng nhất của IPv6 chính là khuôn dạng gói tin.
- Mở rộng khả năng đánh địa chỉ: IP v6 tăng kích thước địa chỉ IP từ 32 bit lên 128 bit. Với độ dài 128 bit có thể tạo được 2128
địa chỉ sẽ đảm bảo khả năng không bị thiếu địa chỉ IP. Bên cạnh địa chỉ duy nhất (unicast) và địa chỉ nhóm (multicast), IPv6 còn có một dạng địa chỉ mới gọi là “anycast”, cho phép một gói tin với địa chỉ đích thuộc kiểu “anycast” có thể được chuyển từ một nhóm các máy tính (đặc điểm này sẽ được sử dụng ví dụ khi gửi thông điệp HTTP GET tới nhiều trang phụ (mirror site) chứa cùng một tài liệu nào đấy).
- Phần thông tin điều khiển có độ dài cố định 40 byte: một số trường IP v4 mang tính chất tùy chọn, do đó độ dài của nó có thể thay đổi. Độ dài phần thông tin điều khiển cố định cho phép xử lý các gói dữ liệu IP v6 nhanh hơn. - Gán nhãn luồng (flow label) và độ ưu tiên (priority): IPv6 không có định
nghĩa cho luồng một cách rõ ràng. Các khuyến nghị RFC 1752 và RFC 2460 cho phép gắn nhãn cho các gói tin thuộc về cùng một luồng. Các gói tin này đòi hỏi được xử lý một cách đặc biệt, như các dịch vụ thời gian thực với chất lượng tốt hơn. Ví dụ, các dữ liệu đa phương tiện có thể xem như một luồng liên tục. Dữ liệu các ứng dụng truyền thống, như truyền tập tin, thư điện tử không được xem như một luồng. Có thể dữ liệu của những người có độ ưu tiên cao (ví dụ người trả phí cao hơn) cũng có thể coi như một luồng. Rõ ràng ở đây những người thiết kế IPv6 đã dự đoán được nhu cầu phân biệt giữa các luồng dữ liệu ngay cả khi chưa định nghĩa chính xác được luồng là gì. Thông tin điều khiển của IP v6 cũng có trường Traffic Class 8 bit. Trường này giống trường TOS (Tyte of Service) trong IPv4 có thể được sử dụng cho những gói tin có quyền ưu tiên trong một luồng, hoặc cho những ứng dụng có độ ưu tiên cao (ví dụ gói tin ICMP).
So sánh khuôn dạng gói dữ liệu IP v4 và IP v6 ta thấy gói IP V6 có cấu trúc đơn giản hơn. Sau đây là một số trường trong gói dữ liệu IPV6:
- Phiên bản (version): Trường 4-bit này xác định phiên bản IP của gói dữ liệu. Rõ ràng gói IPv6 có giá trị “6“ trong trường này. Chú ý không phải đặt giá trị “4“ trong trường này thì gói dữ liệu là IPv4.
- Traffc class: Trường 8-bit này giống trường TOS trong IPv4.
- Nhãn luồng (Flow label): Trường 20 bit này xác định một luồng chứa gói dữ liệu.
- Độ lớn dữ liệu (Payload length): Độ lớn (tính theo byte) của phần dữ liệu không tính tiêu đề.
- Next header: Trường này xác định giao thức ở tầng phía trên sẽ nhận dữ liệu (ví dụ tới TCP hoặc UDP). Trường này giống trường Protocol của IPv4. - Hop limit: Giá trị của trường này sự giảm đi 1 khi đi qua mỗi router. Nếu giá
trị này bằng 0, gói dữ liệu bị loại bỏ.
- Địa chỉ nguồn và đích (source ang destination addresss): Khuôn dạng 128- bit địa chỉ IPv6 được đặc tả trong RFC 2373.
- Dữ liệu (data): Khi gói tin IPv6 tới đích, các tiêu đề sẽ bị loại bỏ và phần dữ liệu này sẽ được chuyển đến thực thể ở tầng phía trên.
Version Traffic Class Flow Label
Playload length Next Hdr Hop Limit
Source Address (128 bites)
Destination Address (128 bites)
Data
32 bits
Hình 7.20 Cấu trúc gói tin IP V6 Có một số trường trong IPv4 không xuất hiện trong IPv6 nữa:
- Phân mảnh, Hợp nhất gói tin: IPv6 không cho phép phân mảnh và hợp nhất gói tin tại các router trung gian. Nếu một gói dữ liệu IPv6 quá lớn để có thể gửi đi trên một đường liên kết ra của router, router sẽ loại bỏ gói tin này và gửi một thông báo lỗi ICMP “Packet Too Big” tới bên gửi. Sau đó bên gửi gửi lại dữ liệu, sử dụng các gói dữ liệu có kích thước nhỏ hơn. Việc phân mảnh và hợp nhất các gói tin IP chiếm nhiều thời gian xử lý của các router. Thực hiện những công việc này tại các thiết bị đầu cuối sẽ làm tăng tốc độ truyền trên mạng.
- Checksum. Do tầng vận tải (ví dụ, TCP và UDP) và các giao thức liên kết dữ liệu (ví dụ Ethenet) đã thực hiện kiểm tra lỗi, chức năng này không cần thiết trong tầng mạng nên đã được bỏ đi. Giá trị trường TTL trong tiêu đề của
IPv4 giảm đi một khi đi qua mỗi thiết bị định tuyến, nên giá trị trường checksum trong tiêu đề IPv4 cần phải được tính tại tại các thiết bị định tuyến. Như vậy, giống như phân mảnh và hợp nhất, việc này khiến thời gian xử lý gói tin IPv4 lâu hơn.