NEXT HEADER HEADER LEN
Một hoặc nhiều tuỳ chọn
Không giống nh Ipv4 gồm có các trờng cho sự phân mảnh trong mỗi header của datagram, Ipv6 để các thông tin về sự phân mảnh trong một header riêng. Hơn nữa, khi sự phân mảnh cần thiết, toàn bộ datagram gốc (gồm cả phần header gốc) sẽ đợc chia thành các phần nhỏ và đặt trong phần payload của các phân đoạn. một header cơ sở mới đợc tạo ra cho mỗi phân đoạn, và header mở rộng phân đoạn đợc chèn thêm vào để xác nhận đó là một phân đoạn. Hình 26 minh hoạ sự phân đoạn của Ipv6.
(a) (b)
(c)
(d)
Hình 26. minh hoạ sự phân đoạn trong Ipv6. Datagram gốc gồm có header trong hình (a), đợc chia thành các phần nhỏ đặt trong phần payload của các phân đoạn hình b, c, d.
Nh trên hình vẽ, mỗi phân đoạn đều có kích thớc nhỏ hơn datagram gốc. Với Ipv4, kích thớc của phân đoạn đợc chọn là giá trị của đơn vị truyền cực đại (MTU) của mạng cơ sở mà phân đoạn đó cần truyền qua. Do vậy, phân đoạn cuối cùng có thể nhoe hơn các phân đoạn khác bởi vì nó chứa phần dữ liệu còn lại sau khi đã chia thành các phần có kích thớc bằng giá trị MTU từ datagram gốc.
Sự phân mảnh trong Ipv6 khác hẳn so với sự phân mảnh trong Ipv4. Nhớ lại rằng trong Ipv4, một router thcự hiện sự phân mảnh khi router đó nhận đợc một datagram qua lớn so với khả năng của mạng có thể truyền đợc nó. Trong Ipv6, máy trạm gửi có trách nhiệm cho sự phân mảnh. Do vậy, các máy trạm cần thiết chọn lựa một kích thớc cho datagram mà không phải phân mảnh; các router dọc theo đờng truyền nhận đợc một datagram lớn sẽ không thực hiện phân mảnh datagram đó.
IV. Cơ chế địa chỉ của Ipv6
Giống nha Ipv4, Ipv6 thiết lập một địa chỉ duy nhất cho mỗi kết nối giữa một máy tính với mạng vật lý. Do vậy, nếu một máy tính (có thể là router) kết nối với 3 mạng vật lý, máy tính đó sẽ đợc thiết lập 3 địa chỉ. Cũng giống nh Ipv4, Ipv6 chia địa chỉ thành 2 phần là phần đầu để xác nhận thuộc mạng nào và phần cuối để xác định máy tính cụ thể trên mạng đó.
Base header Data
P1 P2 P3 New Base header Frag. 1 header P1 New Base header Frag. 2 header P2 New Base header Frag. 3 header P3
Mặc dù cũng có cùng cách tiếp cận về việc thiết lập địa chỉ cho máy tính, địa chỉ Ipv6 khác với Ipv4 trong một số cách. Thứ nhất, tất cả các chi tiết của địa chỉ là hoàn toàn khác. thứ hai, Ipv6 đa ra một tập các địa chỉ đặc biệt khác hẳn so với các địa chỉ đặc biệt của Ipv4. Đặc biệt, Ipv6 không có địa chỉ đặc biệt cho việc truyền quảng bá trong một mạng cụ thể. Thay vào đó, mỗi địa chỉ Ipv6 thuộc một trong 3 kiểu cơ bản sau:
• Unicast: địa chỉ tơng ứng của một máy tính đơn. Một datagram gửi đến địa chỉ này sẽ đợc truyền đi theo đờng truyền ngắn nhất đến đích.
• Multicast: địa chỉ tơng ứng với một tập các máy tính, có thể ở nhiều vị trí khác nhau; các thành viên thuộc tập hợp có thể thay đổi bất kỳ lúc nào. Khi một datagram đợc gửi đến địa chỉ này, Ipv6 sẽ chuyển một bản sao của datagram đó đến mọi thành viên thuộc tập hợp
• Cluster: địa chỉ tơng ứng với một tập các máy tính mà có cùng phần đầu địa chỉ (ví dụ tất cả các máy cùng thuộc một phòng). Một datagram gửi đến địa chỉ này sẽ đợc định tuyến theo đờng đi ngắn nhất và sau đó đợc truyền đến chính xác một trong tất cả các máy tính đó (ví dụ là máy tính gần máy gửi nhất).
Nguyên nhân đa ra địa chỉ cluster xuất phát từ việc muốn cho phép làm một bản sao của các dịch vụ. Ví dụ, một công ty đa ra một dịch vụ trên một mạng có thiết lập địa chỉ cluster cho một vài máy tính mà tất cả đều cung cấp dịch vụ đó. Khi một ngời sử dụng gửi một datagram đến địa chỉ cluster, Ipv6 sẽ gửi datagram đó đến một trong các máy tính thuộc cluster đó. Nếu ngời sử dụng từ một vị trí khác gửi một datagram đến địa chỉ cluster, Ipv6 có thể chọn lựa để định tuyến datagram đến các thành viên khác nhau thuộc cluster cho phép cả hai máy tính có thể xử lý các yêu cầu đồng thời.
Phân cách địa chỉ hệ 16 của Ipv6
Mặc dù một địa chỉ chiếm 128 bit có thể thích hợp với sự phát triên của Internet, nh- ng việc viết chúng quả thật rất cồng kềnh. Ví dụ, một địa chỉ 128 bit viết dới dạng chấm cách thập phân:
105.220.136.100.255.255.255.255.0.0.18.128.140.10.255.255
để giảm số ký tự dùng để viết một địa chỉ, ngời thiết kế Ipv6 đã đa ra một dạng cú pháp biểu diễn gọn hơn gọi là phân cách thập lục phân bằng dấu hai chấm (colon hexadecimal notation) trong đó mỗi nhóm 16 bit đợc viết trong hệ 16 và phân cách bằng dấu hai châm. Ví dụ, khi biểu diễn địa chỉ trên trong dạng này sẽ là:
69DC:8864:FFFF:FFFF:0:1280:8C0A:FFFF
Nh trong ví dụ ta thấy, phân cách thập lục phân bằng dấu hai chấm cần ít ký tự để biểu diễn một địa chỉ hơn. Cùng với việc tối u hoá gọi là nén số 0 (zero compression) còn có thể làm giảm đợc kích thớc nữa. Sự nén số 0 là việc thay thể một dãy các số 0 bằng hai dấu hai chấm. Ví dụ, địa chỉ là:
FF0C:0:0:0:0:0:0:B1 có thể viết lại là: FB0C::B1
Không gian của địa chỉ Ipv6 lớn và cơ chế đánh địa chỉ dùng nén số 0 đặc biệt quan trong bởi ngời thiết kế cho rằng có nhiều địa chỉ Ipv6 có chứa một dãy các số 0. Đặc biệt, để giúp cho việc dễ dàng chuyển đổi sang giao thức mới, ngời thiết kế thực hiện việc ánh xạ địa chỉ Ipv4 hiện tại thành địa chỉ Ipv6. Bất kỳ địa chỉ Ipv6 nào mà bắt đầu với 98 bit 0 là có chứa địa chỉ Ipv4 ở 32 bit cuối.
Phần VII
Tcp_dịch vụ truyền tin cậy
Lời giới thiệu
Trong phần trớc đã nói đến dịch vụ truyền gói tin không liên kết dùng IP và các giao thức đi kèm dùng để thông báo lỗi. Trong phần này chúng ta sẽ xem xét đến TCP, giao thức truyền thông chính trong bộ giao thức TCP/IP, và giải thích làm thế nào mà giao thức đó đem lại sự truyền tin đáng tin cậy.
TCP đạt đợc một nhiệm vụ mà dờng nh không thể làm đợc đó là nó sử dụng dịch vụ datagram không tin cậy đa ra bởi IP khi truyền dữ liệu đến máy tính khác, nhng cung cấp một dịch vụ truyền dữ liệu đáng tin cậy đến các chơng trình ứng dụng. TCP phải khắc phục
thực hiện làm sao để không làm quá tải mạng và các router. Sau khi xem xét các dịch vụ mà TCP đem lại cho các ứng dụng, trong phần này sẽ xem xét đến các kỹ thuật TCP sử dụng để đạt đợc độ tin cậy.