RSVP là một chuẩn giao thức đƣợc định nghĩa trong khuyến nghị RFC 2205 của IETF [2]. RSVP là một giao thức IP QoS. Nó hỗ trợ cả 2 phiên bản IPv4 và IPv6 và ứng dụng đƣợc cả trong chế độ địa chỉ unicast và multicast.
Trong RSVP tài nguyên dành riêng cho mỗi hƣớng là độc lập lẫn nhau. RSVP không phải là một giao thức định tuyến. Các bản tin RSVP đƣợc phân phối cùng hƣớng với các gói tin IP thông qua các giao thức định tuyến đƣợc cài đặt trên Router.
RSVP cung cấp một vài kiểu dự trữ tài nguyên và nó là một giao thức khá phức tạp bởi mỗi nút trên một tuyến phải lƣu trữ thông tin dành riêng cho mỗi luồng dữ liệu nào đó. Với mạng có quy mô lớn RSVP khó có thể đáp ứng đƣợc do phát sinh vấn đề cần ổn định mạng.
Nguyên tắc hoạt động của RSVP có thể hiểu đơn giản nhƣ sau:
R2 R1 R3 SW2 Server2 SW1 Server1 Yêu cầu trễ thấp, băng thông 30 kbps PATH Yêu cầu trễ thấp, băng thông 30 kbps PATH Yêu cầu trễ thấp, băng thông 30 kbps PATH Yêu cầu trễ thấp, băng thông 30 kbps PATH Dự trữ trễ thấp, băng thông 30 kbps RESV Dự trữ trễ thấp, băng thông 30 kbps RESV Dự trữ trễ thấp, băng thông 30 kbps RESV Dự trữ trễ thấp, băng thông 30 kbps RESV
Hình 4.1: Nguyên tắc hoạt động của RSVP
Một phiên làm việc của RSVP thông thƣờng đƣợc định nghĩa theo 3 thông số (địa chỉ đích, giao thức, cổng đích).
Khởi tạo phiên làm việc, trạm nguồn sẽ gửi một bản tin PATH tới trạm đích. Bản tin PATH chứa đựng thông tin QoS (yêu cầu trễ thấp, băng thông 30 kbps) của luồng dữ liệu cần đƣợc gửi đi. Khi bản tin này truyền qua các Router, các Router này lƣu trữ nhận dạng và các tiêu chuẩn của luồng thông tin sắp đƣợc gửi qua vào bộ nhớ của chúng.
Khi trạm cuối cùng nhận đƣợc bản tin PATH, nó sẽ gửi ngƣợc trở lại trạm nguồn bản tin RESV. RESV mang thông tin về dự trữ tài nguyên (dự trữ trễ thấp, băng thông 30kbps). Các Router sau khi nhận đƣợc bản tin RESV thực hiện dự trữ tài nguyên cần thiết.
Khi trạm gửi nhận đƣợc bản tin RESV nó bắt đầu thực hiện quá trình truyền tin. Các gói IP thuộc luồng dữ liệu cần phân tán sẽ đƣợc gửi tới đích theo vết mà bản tin PATH đã đi qua.
Một bản tin RSVP có cấu trúc nhƣ sau:
Từ mào đầu RSVP Object 1 Object N . . . Object 2 Hình 4.2: Cấu trúc RSVP
Từ mào đầu RSVP là từ mào đầu chung cho các bản tin RSVP. Trong mỗi chủ thể (Object N) lại có từ mào đầu riêng của nó.
- 8 bít kiểu bản tin RSVP - 16 bít kiểm tra lỗi checksum
- 8 bít thời gian tồn tại gói tin TTL ( Time to live) - 16 bít chiều dài bản tin.
Tùy theo giá trị của trƣờng bản tin mà xác định bản tin khác nhau. Bảng các kiểu bản tin RSVP nhƣ sau:
Giá trị trƣờng bản tin Kiểu bản tin
1 PATH 2 RESV 3 PATHErr 4 PATHTear 5 RESVErr 6 RESVTear 7 RESVConf Bảng 4.1: Các bản tin RSVP
Trong đó bản tin PATH và RESV là bản tin gốc đƣợc sử dụng cho việc dự trữ tài nguyên mạng.
RSVP Object bao gồm các thông số sử dụng cho việc điều khiển truyền tải dịch vụ. Với cấu trúc điều khiển khá phức tạp do vậy trong thực tế mô hình dịch vụ tổ hợp cũng rất ít đƣợc sử dụng trong mạng cỡ lớn. Thay vào đó nó thƣờng đƣợc sử dụng phổ biến trong mô hình cỡ nhỏ và trung bình. Trong mạng có quy mô lớn ngƣời ta thƣờng sử dụng mô hình dịch vụ phân biệt DiffServ để điều khiển QoS.
4.3. Mô hình dịch vụ phân biệt - Differentiated Services: 4.3.1. Tổng quan DiffServ:[3]
DiffServ là mô hình cung cấp chất lƣợng dịch vụ có khả năng mở rộng. Trong DiffServ các luồng dữ liệu riêng biệt không đƣợc nhận dạng riêng biệt mà chúng đƣợc tổ hợp thành các lớp lƣu lƣợng có cấu trúc nhỏ hơn.
Không giống nhƣ mô hình IntServ, băng thông và các tài nguyên mạng khác trong mô hình DiffSer đƣợc phân bổ theo lớp dịch vụ chứ không phải theo luồng lƣu lƣợng.
Một mạng triển khai DiffServ mang các đặc điểm sau:
- Trong một mạng đơn lẻ các gói sẽ đƣợc đánh dấu tại node biên mạng, khi đó các thiết bị khác lựa chọn mức QoS cho gói tin dựa trên thông tin đã đƣợc đánh dấu.
- Giá trị trƣờng đánh dấu là giá trị trong từ mào đầu của gói tin IP, bởi từ mào đầu này đƣợc duy trì xuyên suốt qua mạng.
- Giữa các mạng, các gói tin có thể đƣợc phân lớp lại và đánh dấu lại tại node biên của mạng đó.
- Thông thƣờng để tiện đánh dấu thì từ mào đầu IP đƣợc định nghĩa lại thành 6 bít điểm mã dịch vụ phân biệt DSCP (Differentiated Services Code Point). Với 6 lớp này sẽ tạo ra 64 lớp dịch vụ đƣợc phục vụ.
DiffSer hoạt động dựa trên nguyên tắc phân loại lƣu lƣợng tại thành biên mạng và thực hiện các chu trình sắp xếp, hủy gói tin tại trong lõi mạng. Phần lớn các quản lý xử lý đƣợc thực hiện tại thành biên mạng mà không phải lƣu trữ trạng thái dịch vụ trong lõi mạng.
Trong DiffServ một dịch vụ DiffServ là sự thảo thuận mức dịch vụ - SLA (Service Level Agreement) giữa nhà cung cấp với khách hàng hay giữa các nhà cung cấp với nhau.
Một dịch vụ DiffServ đƣợc định nghĩa theo các thông số mà khách hàng đƣợc hiểu nhƣ thỏa thuận điều hòa lƣu lƣợng (TCA - Traffic Conditioning Agreement) bao gồm các thuộc tính lƣu lƣợng, tiêu chuẩn dịch vụ (thông lƣợng, trễ, rớt gói), cách xử lý gói và sửa dạng lƣu lƣợng.
Tùy theo SLA mà nhà cung cấp sẽ thiết kế mạng phù hợp với yêu cầu của khách hàng. Các gói tin đƣợc Router kiểm tra giá trị DSCP và thực hiện phân lớp bởi bộ phân lớp tập hợp hành vi (BA - Behavior Aggregation). Các gói tin có cùng giá trị DSCP sẽ đƣợc phân lớp, tập hợp lại và chuyển đi theo cùng một hƣớng.
Mỗi phân lớp sẽ đƣợc xử lý cố định cho mỗi lớp dịch vụ tại mỗi hop tƣơng ứng với yêu cầu QoS của chúng (đƣợc gọi là PHB - Per Hop Behavior). PHP bao gồm các cơ
4.3.2. Kiến trúc DiffServ:[3]
Thông thƣờng, khái niệm miền trong mạng IP liên qua tới 1 vùng địa lý đƣợc xác định bởi một biên và trong miền đó áp dụng các chính xác và phƣơng thức quản lý nhất định.
Miền IP DS
Non - DS
Hình 4.2: Miền IP - IP Domain.
Một mạng IP đƣợc xem nhƣ có khả năng DS (Differentiated Services) nếu nó có khả năng cung cấp DiffServ. Một miền IP có thể bao hàm trong nó có DS và Non-DS. Một miền DS là phần có khả năng cung cấp DS trong miền IP.
Một miền DS đƣợc phân gianh giới bởi 1 biên. Các node nằm trên biên đƣợc gọi là node DS biên còn các node bên trong gọi là DS trong (DS interior node).
Các node DS biên thực hiện các chức năng nhƣ phân lớp, sửa dạng lƣu lƣợng... Có 2 loại node biên. Node vào (Ingress DS) và node ra (Egress DS). Các dịch vụ đƣợc chuyển vào miền DS thông qua Ingress DS và đƣa ra khỏi miền DS thông qua Egress DS. Các DS biên đƣợc kết nối với các node trong hoặc ngoài miền DS trong khi đó các node trong chỉ đƣợc kết nối với các node biên hoặc các node trong cùng miền DS.
Miền DS Node DS vào
Node DS trong
Node DS vào
Hình 4.3: Miền DS.
Các miền DS liền kề nhau tạo lên vùng DS (DS region). Nói chung mỗi một miền DS họat động với chính sách và sử dụng PHP của chúng và sử dụng chính DSCP của chúng để phân lớp dịch vụ. Do vậy để có thể cung cấp DiffServ xuyên 1 vùng thì các
miền DS ngang hàng phải thiết lập thỏa thuận mức dịch vụ - SLA tại giao tiếp giữa các miền đó. Vùng DS Miền DS 1 Miền DS 2 Thỏa thuận mức dịch vụ giữa 2 miền SLA Hình 4.4: Vùng DS - DS region.
4.3.3. Đánh dấu các gói trong DS:
DiffServ sử dụng trƣờng kiểu dịch vụ (ToS - Type of Sevice) trong từ mào đầu của IPv4 và trƣờng lớp dịch vụ (TC - Traffic Class) trong từ mào đầu của IPv6 để đánh dấu các gói tin.
8 bít trong ToS và TC đƣợc định nghĩa lại nhƣ một trƣờng DS. Trong 8 bít này thì chỉ có 6 bít đƣợc sử dụng cho việc đánh dấu các gói tin DiffServ, 2 bít còn lại sử dụng dự phòng cho phát triển trong tƣơng lai.
Khuân dạng trƣờng DS nhƣ sau:
DSCP (Diffrential Service Code Point) CU Hình 4.5: Khuân dạng trƣờng DS.
Về mặt lý thuyết DSCP bao gồm 6 bít nhƣ vậy có thể tạo ra 64 lớp dịch vụ. Tuy nhiên trong thực tế chỉ một số lớp dịch vụ đƣợc triển khai. Ngƣời ta thƣờng sử dụng 3 bít đầu (ứng với trọng số lớn nhất trong trƣờng ToS hoặc TC) để ánh xạ đến trƣờng DSCP. 3 bít còn lại nhận giá trị 0.
Giá trị DSCP thông thƣờng gắn kết với các kiểu PHB, do vậy để thuận tiện giá trị của chúng sẽ đƣợc trình bày ở phần PHB.
DiffServ sử dụng phƣơng thức phân lớp tập hợp hành vị - BA. Trong phƣơng thức này các gói tin đƣợc phân lớp chỉ dựa trên giá trị DSCP mà không phụ thuộc vào bất kỳ thông số nào khác.
Nền tảng của DiffServ dựa trên Per- hop và các PHB trên các Router riêng lẻ. Tuy nhiên để có thể cung cấp DiffServ trong một miền DS nào đó thì các PHB của Router có thể đƣợc thiết kế lại để đảm bảo mức QoS giống nhƣ trong mô hình QoS End - to End. Trong thực tế ngƣời ta thƣờng thiết kế PHB kết hợp với phƣơng thức điều hòa lƣu lƣợng, điều khiển quản trị và giám sát mạng để có thể cung cấp End - to - End DiffServ.
Thông thƣờng một nhà cung cấp dịch vụ thƣờng sử dụng 1 PHB để xác định băng thông và các tài nguyên khác để đảm bảo chất lƣợng cho một nức dịch vụ nào đó. Bởi vậy một PHB có thể đƣợc định nghĩa theo các thành phần của yêu cầu tài nguyên nhƣ băng thông, cỡ bộ đệm, cơ chế hàng đợi ...
Có 4 PHB quan trong khi triển khai DiffServ là: - PHB mặc định: Default PHB.
- PHB lựa chọn theo lớp: Class-Selector PHB.
- PHB chuyển tiếp đƣợc đảm bảo: Assured Forwarding PHB - PHB chuyển tiếp ƣu tiên nhất: Expedited Forwarding PHB.
4.3.4.1. PHB mặc định - Default PHB:
PHB mặc định là cơ chế tƣơng ứng với tiến trình chuyển tiếp gói tin một cách tốt nhất. Với các Router của Cisco cơ chế này đƣợc cấu hình mặc định.
Với cơ chế này nó chỉ đơn giản là phân phối gói tin càng nhiều càng tốt. Các PHB không có sự cam kết chất lƣợng dịch vụ cho các gói tin.
Các gói tin đƣợc ánh xạ tới PHB này có giá trị DSCP = 0.
4.3.4.2.PHB lựa chọn theo lớp - Class Selector PBH:
Trong một vài triển khai IP QoS, giá trị quyền ƣu tiên IP (IP Precedence) thƣờng đƣợc sử dụng vì tính đơn giản và dễ sử dụng của chúng. Để tƣơng thích với các giá trị ƣu tiên, các giá trị DSCP đƣợc định nghĩa dƣới dạng XXX000 (X: có thể nhận giá trị 0 hoặc 1). Phƣơng thức nhƣ vậy đƣợc gọi là DSCP lựa chọn theo lớp. PHB kết hợp với 1 DSCP lựa chọn theo lớp đƣợc gọi là PHB lựa chọn theo lớp - Class Selector PBH. Giá trị DSCP lựa chọn theo lớp nhƣ sau:
Default 000000 0 CS1 001000 1 CS2 010000 2 CS3 011000 3 CS4 100000 4 CS5 101000 5 CS6 110000 6 CS7 111000 7
Bảng 4.2: Giá trị DSCP lựa chọn theo lớp.
Mặc dù DiffServ chỉ cung cấp 8 giá trị CS - DSCP tƣơng ứng với 8 giá trị quyền ƣu tiên IP. Tuy nhiên trong thực tế ngƣời ta có thể sử dụng rất nhiều giá trị CS - DSCP có quyền ƣu tiên tƣơng đƣơng nhau. Ví dụ các DSCP có giá trị 8-15 bắt đầu bởi chuỗi số nhị phân 001 trong 6 bít nhị phân của trƣờng DSCP đều có quyền ƣu tiên = 1 (mã nhị phân 3 bít đầu là 001). Bảng mã CS - DSCP mở rộng nhƣ sau:
Dải CS - DSCP Giá trị nhị phân DSCP Giá trị ƣu tiên
0–7 000xxx 0 8–15 001xxx 1 16–23 010xxx 2 24–31 011xxx 3 32–39 100xxx 4 40–47 101xxx 5 48–55 110xxx 6 56–63 111xxx 7 - X nhận gía trị 0 hoặc 1
Bảng 4.3: Giá trị DSCP lựa chọn theo lớp mở rộng .
Trong phƣơng thức này các Router thay thế trƣờng IP Precedence bằng các giá trị DSCP tƣơng ứng. Cơ chế PHB chuyển tiếp các gói tin giống nhƣ cơ chế chuyển tiếp các node sử dụng quyền ƣu tiên IP. Nghĩa là các gói CS - DSCP có giá trị cao hơn sẽ
đƣợc ƣu tiên cao hơn. Ví dụ các gói tin có cùng giá trị DSCP là 101000 sẽ có độ ƣu tiên chuyển tiếp cao hơn các gói tin có giá trị DSCP là 011000.
4.3.4.3. PHB chuyển tiếp đƣợc đảm bảo - Assured Forwarding PHB:
AF PHB đƣợc định nghĩa trong khuyến nghị RFC 2597 của IETF [4]. Nó là một công cụ đƣợc sử dụng để đƣa ra các mức dịch vụ đảm bảo chuyển tiếp các gói tin giữa những ngƣời dùng.
Có 4 lớp AF đƣợc sử dụng trong các thủ tục hàng đợi. Ở mỗi hàng đợi AF các gói tin đƣợc đăng kí một trong 3 lớp ƣu tiên đánh rớt. Tức là một gói tin có thể có lựa chọn 1 trong 3 mức ƣu tiên rớt gói khác nhau.
Trong phƣơng thức AF mỗi một PHB thực hiện 2 chức năng QoS sau:
- Chức năng QoS thứ nhất là cơ chế hàng đợi. Mỗi một Router phân lớp các gói tin thành 4 lớp khác nhau và các gói tin trong mỗi lớp sẽ đƣợc đặt trong các hàng đợi khác nhau. Các hàng đợi này phải sử dụng phƣơng thức hàng đợi sao cho có khả năng dự trữ băng thông tối thiểu cho mỗi AF.
- Chức năng QoS thứ hai đó là phƣơng thức tránh tắc nghẽn đƣợc tổ hợp trong mỗi AF PHB. Các công cụ tránh tắc nghẽn thực hiện loại bỏ gói khi hàng đợi bị đầy để tránh quá trình "tail drop" xẩy ra. Trong các thiết bị Router của Cisco ngƣời ta thƣờng cấu hình WRED để thực hiện cơ chế này. Cần chú ý rằng khái niệm "đảm bảo" ở đây không có nghĩa rằng tất cả các gói tin sẽ đƣợc phân phối đảm bảo xuyên qua mạng mà nó chỉ có nghĩa "đảm bảo" rằng các hàng đợi cung cấp đủ băng thông và khi tắc nghẽn xẩy ra một phần lƣu lƣợng ít quan trọng hơn sẽ bị loại bỏ.
Nhƣ đã trình bầy ở trên, mỗi một BA có 4 lớp khác nhau và trong mỗi lớp có 3 nghƣỡng nghẽn khác nhau để xác định khả năng đánh rớt gói tin. Để dánh dấu gói tin trong AF PHB ngƣời ta sử dụng 12 giá trị DSCP với tên chúng bắt đầu bằng chữ cái AF.
Không giống nhƣ CS - PHB, AF - PHB không theo nguyên tắc giá trị thập phân nào lớn hơn sẽ đƣợc ƣu tiên cao hơn. Trong AF - PHB không có một thông số hàng đợi đặc biệt nào đƣợc ứng dụng trong các lớp do vậy không có ƣu tiên cố hữu nào giữa các lớp.
Tuy nhiên trong AF - PHB sử dụng thành phần bít thứ 2 bao gồm 3 bít cuối của AF DSCP để xác định ƣu tiên rớt gói, trong đó giá trị 1 có trọng số ƣu tiên thấp hơn. Nhƣ vậy trong 1 lớp các gói có giá trị DSCP là AFx3 DSCP sẽ bị đánh rớt trƣớc AFx2 DSCP và AFx2 DSCP sẽ bị đánh rớt trƣớc AFx1 DSCP trong trƣờng hợp có nghẽn xẩy ra..
Ví dụ AF23 trẽ bị đánh rớt trƣớc AF22 và AF22 bị đánh rớt trƣớc AF21.
Mỗi một lớp AF đƣợc chỉ định với 1 số lƣợng tài nguyên nhất định và nó phụ thuộc vào thỏa thuận mức dịch vụ với khách hàng hay với nhà cung cấp khác bao gồm băng thông và không gian bộ đệm.
Việc chuyển tiếp các gói tin là độc lập dọc theo mỗi lớp.
Lớp Lớp xác suất rớt thấp Lớp xác suất rớt trung bình Lớp xác suất rớt cao
Class 1 AF11 / 10 / 001010 AF12 / 12 / 001100 AF13 / 14 / 001110