3.4.1. Mô hình Makam 5M 5M 5M 5M 5M 5M 5 M 5 M 5M X 3M 3M 3M 3M3 M 2M 3M 3M R1 R2 R3 ELSR1 ELSR3 ELSR4 ELSR2 LSR1 LSR2 LSR3 LSR4 LSR5 LSR6 3M3M Đường làm việc Đường khôi phục Mô hình Makam Hình 3.1 Mô hình Makam
- Một trong các mô hình đề xuất đầu tiên cho việc khôi phục trong mạng MPLS được giới thiệu bởi Makam [10] .
- Mô hình theo hình 3.1 cung cấp cơ chế bảo vệ end-to-end cho một đường LSP bằng việc thiết lập đường bảo vệ toàn mạng giữa các LSR lối vào và LSR lối ra.
- Đường khôi phục này được tách rời nhau cả về kết nối và node mạng. Khi phát hiện lỗi ở bất kỳ vị trí nào trên đường làm việc, tín hiệu FIS được sử dụng để chuyển thông báo lỗi về cho ingress-LSR (là PSL). Ingress-LSR sẽ thực hiện chuyển mạch lưu lượng sang đường khôi phục.
- Mô hình này hỗ trợ cả đường khôi phục thiết lập sẵn (chuyển mạch bảo vệ) và đường khôi phục thiết lập tự động (định tuyến lại)
- Ƣu điểm: chỉ cần một đường dự phòng cho mọi sự cố trên đường làm việc và chỉ cần một LSR có chức năng làm PSL.
- Nhƣợc điểm: mô hình này có một khoảng thời gian trễ để tín hiệu truyền ngược về tới PSL. Trong thời gian này, lưu lượng trên đường làm việc bị mất.
3.4.2. Mô hình Haskin (Reverse Backup)
- Một trong các mô hình đề xuất cho việc khôi phục trong mạng MPLS được giới thiệu bởi Haskin [2] .
5M 5M 5M 5M 5M 5M 5 M 5 M 5M 3M 3M 3M X 3M3 M 2M 3M 3M R1 R2 R3 ELSR1 ELSR3 ELSR4 ELSR2 LSR1 LSR2 LSR3 LSR4 LSR5 LSR6 3M 3M Đường làm việc Đường khôi phục Mô hình Haskin Hình 3.2 Mô hình Haskin
- Ngay khi một LSR phát hiện sự cố trên đường làm việc – hình 3.2, LSR thực hiện chuyển hướng lưu lượng sang đường dự phòng đảo đi ngược về PSL.
- Khi quay trở về tới PSL, lưu lượng được chuyển sang đường khôi phục toàn mạng.
- Một cải tiến khác là cho phép các PSL chuyển trực tiếp lưu lượng sang đường khôi phục toàn mạng ngay khi nó thấy đường dự phòng đảo được sử dụng. Các gói đầu tiên trong phần lưu lượng được đảo chiều có tác dụng như tín hiệu FIS. Cách này tối ưu hơn vì đường đi của lưu lượng được bảo vệ ngắn hơn. Tuy nhiên trong thời gian ban đầu, lưu lượng mới chuyển đi trên đường khôi phục sẽ trộn lẫn với phần lưu lượng được đảo chiều dẫn đến việc thay đổi thứ tự gói so với ban đầu.
- Ƣu điểm: mô hình Haskin khắc phục lỗi mất gói của mô hình Makam. - Nhƣợc điểm: đường dự phòng đảo và khôi phục phải thiết lập sẵn nên tốn
tài nguyên mạng.
3.4.3. Mô hình Hundessa
- Mô hình Hundessa tương tự như mô hình Haskin cải tiến nhưng khắc phục được vấn đề xáo trộn thứ tự gói.
Khi gói đầu tiên quay trở về PSL trên đường dự phòng đảo có tác dụng như tín hiệu FIS báo cho PSL biết là đã có lỗi.
PSL đánh dấu gói cuối cùng truyền đi trên đường bị lỗi bằng cách đặt một bit trong trường EXP của nhãn, sau đó dừng việc đẩy gói qua đường lỗi.
Khi gói được đánh dấu quay trở về PSL trên đường đảo, PSL mới tiếp tục chuyển các gói mới trực tiếp ra đường khôi phục.
3.4.4. Mô hình Shortest-Dynamic 5M 5M 5M 5M 5M 5M 5M 5 M 5 M 5M 3M 3M 3M X 3M3 M 2M 3M 3M R1 R2 R3 ELSR1 ELSR3 ELSR4 ELSR2 LSR1 LSR2 LSR3 LSR4 LSR5 LSR6 3M 3M Đường làm việc Đường khôi phục Mô hình Shortest-Dynamic
Hình 3.3 Mô hình Shortest Dynamic
- Trong mô hình Shortest-Dynamic chỉ có đường làm việc được thiết lập – Hình 3.3.
- Khi một node mạng phát hiện sự cố kết nối thì nó phải tính toán rồi báo hiệu thiết lập đường hầm LSP ngắn nhất đi từ nó đến node ở phía bên kia kết nối bị sự cố và sau đó chuyển mạch lưu lượng (bằng cách xếp chồng nhãn để các lưu lượng đường làm việc chui qua đường hầm tránh lỗi).
3.4.5. Mô hình Simple-Dynamic
- Tương tự như mô hình Shortest-Dynamic, cơ chế của Simple-Dynamic cũng là cơ chế cục bộ.
- Node mạng phát hiện ra lỗi kết nối sẽ chuyển mạch lưu lượng.
- Sự khác nhau của hai cơ chế là node mạng cuối cùng của đường làm việc phải là PLM.
- Trong trường hợp này không tính toán trước đường LSP khôi phục.
- Tương tự như mô hình Simple-Dynamic, nhưng đường khôi phục đã được tính toán trước khi xảy ra lỗi.
3.5. Kết luận Chƣơng 3
Chương 3 trình bày chi tiết về kỹ thuật điều khiển lưu lượng trong mạng MPLS. - Các trung kế điều khiển lưu lượng là phần tử kết nối logic thực hiện chức
năng điều khiển lưu lượng trên mạng.
- Những thuộc tính chọn đường được xây dựng và tính toán nhằm đảm bảo các trung kế lưu lượng hoạt động theo thiết kế.
- Các mô hình khôi phục lưu lượng trong MPLS được thiết kế với mục đích xây dựng khả năng ứng dụng linh hoạt đối với các mô hình mạng khác nhau.
CHƢƠNG IV
MÔ PHỎNG VÀ PHÂN TÍCH VỚI NS2
4.1. Môi trƣờng mô phỏng
- Trước khi bắt tay vào lựa chọn các phương thức mô phỏng, học viên đã tìm hiểu và chọn một trong hai phương thức mô phỏng sau:
Mô phỏng bằng thuật toán.
Mô phỏng bằng phần mềm.
- Sau đây là một trong những lý do dẫn đến việc học viên quyết định lựa chọn mô phỏng bằng phần mềm với Chương trình mô phỏng NS2.
4.1.1. J-SIM
- J-Sim ( thường gọi là Java Sim) là một phần của chương trình mô phỏng mạng được phát triển trên môi trường Java do Hung-ying Tyan và một nhóm nghiên cứu tại Ohia State University phát triển.
- J-Sim là một dự án phát triển trên môi trường mã nguồn mở và có thể thực hiện mô phỏng với một số module có sẵn trên trang chủ của nhóm nghiên cứu này.
- Một module mô phỏng MPLS được phát triển bởi Infonet Group of the University of Namur.
- Mô hình này bao gồm hai phần tử:
Bảng chuyển tiếp.
Các thành phần trong MPLS.
- Bảng chuyển tiếp lưu trữ toàn bộ những thông tin liên quan đến các nhãn đã được cấu hình. Nó kết hợp với mặt nạ địa chỉ IP hoặc một nhãn lối vào với một giao diện ra và một nhãn lối ra.
- Các phần tử trong MPLS chuyển tiếp gói tin với thông tin cấu hình của bảng chuyển tiếp.
- Các mô hình này không bao gồm giao thức phân phối nhãn ( LDP) nên các đường chuyển mạch nhãn ( LSPs) cần thiết phải cấu hình riêng lẻ.
- Ở đây có một số cơ chế RSVP-TE được thêm vào, nhưng những phần tử này vẫn chưa được hoàn thiện. Đây cũng chính là nguyên nhân dẫn đến việc học viên không lựa chọn phần mềm mô phỏng là J-Sim.
4.1.2. OMNeT++
- OMNeT++ là môi trường lập trình mô phỏng gồm các phần tử rời rạc trên môi trường ngôn ngữ C++, được phát triển bởi Andás Varga.
- Chương trình cũng phát triển theo mô hình mã nguồn mở sử dụng cho nghiên cứu và người dùng phi lợi nhuận.
- Mô hình MPLS trong OMNeT++ có xuất xứ phát triển từ Xuan Thang Nguyen của Đại học Công nghệ của Sydney. Hiện nay, mô hình này được duy trì bởi Andás Varga. Mô hình bao gồm các phần tử cho chuyển tiếp MPLS, LDP, CR-LDP và RSVP-TE.
- Mô hình này được phát triển cho mục đích nghiên cứu cơ chế chuyển tiếp trong MPLS và mô hình hóa lại những chức năng mà LSR thực hiện được. - Mô hình này cũng không còn phù hợp với việc mô phỏng cơ chế khôi phục
lỗi hiện nay. Bảng chuyển tiếp cho tất cả các router trong một mạng được lưu trữ trong một bảng duy nhất, có nghĩa là tất cả các router đều có chung một bản copy của mô hình mạng tại cùng một thời điểm. Nếu có lỗi xảy ra trong hệ thống mạng, thì tất cả các router cũng sẽ lỗi tại cùng một thời điểm. - Tình huống này không xảy ra trong mô hình mạng thực tế vì khi node mạng bị lỗi, thông tin cập nhật về lỗi sẽ được node mạng này thông báo cập nhật cho toàn hệ thống.
- Ngoài ra, chương trình này cũng còn tồn tại một số vấn đề về khả năng thực thi các giao thức giao vận cho mạng IP. Do vậy, đây cũng là nguyên nhân dẫn đến việc học viên không lựa chọn phần mềm mô phỏng OMNeT++.
4.1.3. GLASS
- GLASS là viết tắt của GMPLS Lightwave Agile Switching Simulator, là phần mềm mô phỏng trên môi trường Java. Đây là phần mềm mô phỏng được phát triển bởi tổ chức Internetworking Technologies Group of the Advance Network Technologies Division at NIST (National Institute of Standards and Technology).
- Chương trình mô phỏng sử dụng khung làm việc của mô hình Scalable Simulation Framework ( SSF). Chương trình mô phỏng GLASS hỗ trợ thực hiện chuyển tiếp MPLS và phân phối nhãn với LDP, CR-LDP và RSVP-TE. - Thông tin hỗ trợ về mô phỏng và triển khai phần mềm này không có nhiều,
rất khó tương tác với hệ thống hỗ trợ xử lý lỗi và các mô hình tham khảo. Do vậy, đây cũng là lý do học viên không lựa chọn GLASS.
4.1.4. NS2
- NS-2 (Network Simulator 2) là chương trình mô phỏng với các module rời rạc, mục tiêu sử dụng cho nghiên cứu hệ thống mạng. Phần mềm mô phỏng được phát triển từ năm 1989 và đã xây dựng được rất nhiều các mô hình khác nhau. Đây cũng là phần mềm mô phỏng theo mô hình mã nguồn mở và có sự quan tâm của rất nhiều người cùng tham gia xây dựng. Các thành phần chính tham gia xây dựng mô hình bao gồm dự án VINT của BL, Xerox PARC, UCB, và USC/ISI.
- Ngôn ngữ xây dựng lên phần mềm là C++ và TCL [12].
- Mô hình MPLS học viên lựa chọn mô phỏng là MNS ( MPLS Network Simulation được phát triển bởi Gaeil Ahn. Mô hình MNS thực hiện chuyển tiếp MPLS và phân phối nhãn bởi LDP và CR-LDP.
- Mô hình cũng có một số chức năng cho cơ chế khôi phục lỗi như cơ chế thiết lập đường dự phòng và kết hợp nó với đường làm việc.
- Có một vấn đề mà phần mềm chưa thực hiện được chính là RSVP-TE. Để khắc phục vấn đề này, học viên phải sử dụng các bản vá lỗi bổ sung những phần tử còn thiếu của mô hình [6].
- René Böringer tại IDEO Laboratories phát triển thêm MNS bằng việc thêm vào mô hình RSVP của Marc Greis và sửa đổi mô hình này bằng việc thêm vào tính năng TE.
- Christian Callegari and Fabio Vitucci cũng xây dựng mô hình thực thi RSVP-TE cho NS2 theo mô hình Marc Greis nhưng khắc phục được một số thiếu sót của mô hình René Böringer.
4.2. Cài đặt và cấu hình phần mềm mô phỏng
- Hướng dẫn cấu hình chi tiết được trình bày trong phần phụ lục của Luận văn. - Phiên bản sử dụng trong chương trình mô phỏng là phiên bản ns-allinone-
2.29, đây là gói phần mềm đã bao gồm các thành phần :
Tcl/Tk nam-1 ns-2
Otcl xgraph tcl-debug
TclCL perl dmalloc
- Để thực hiện được mô phỏng MPLS RSVP-TE trong NS-2.29, học viên đã thực hiện cài đặt bản vá lỗi cho module MNS2.0.
- Do các bản vá lỗi được viết cho từng phiên bản ns2 khác nhau:
René Böringer tại IDEO Laboratories viết bản vá lỗi MPLS cho ns- allinone-2.29
Christian Callegari and Fabio Vitucci viết bản vá lỗi MPLS cho ns- allinone-2.26
- Do vấn đề tương thích giữa hệ điều hành Linux và các phiên bản ns-2 ( ns- 2.26 sử dụng gcc 2.45, ns-2.29 sử dụng được các phiên bản gcc cao hơn), do vậy học viên đã chọn phương án thực hiện mô phỏng trên phiên bản ns-2.29.
4.3. Các tình huống mô phỏng trong NS2
4.3.1. Mô phỏng trong môi trường không sử dụng MPLS
- Mô phỏng:
Truyền các lưu lượng:
Router nguồn: R0.
Router đích: R10.
Truyền lưu lượng 01:
Thời gian truyền từ 0s ÷ 5,0s.
Dung lượng truyền: 0,8MB.
Kích thước gói tin: 600B.
Truyền lưu lượng 02:
Thời gian truyền từ 2,0s ÷ 5,0s.
Dung lượng truyền: 0,8MB.
Kích thước gói tin: 600B. - Hiện tượng:
Thời điểm từ 0s ÷ 2,0s lưu lượng truyền trên mạng đến đích đạt 0,9M.
Từ thời điểm 2,0s ÷ 5,0s lưu lượng truyền trên mạng đến đích đạt 1,0M.
Trên mạng có hiện tượng mất gói xảy ra từ thời điểm 2,0s đến 5,0s – Hình 4.1.
Hình 4.1 Đồ thị mô phỏng truyền dữ liệu qua mạng IP
Băng thông giữa node mạng R3 và node mạng R5 có dung lượng 1MB.
Tại thời điểm 0s ÷ 2,0s, chỉ có lưu lượng 01 truyền trên mạng, do vậy băng thông sử dụng giữa R3 và R5 chỉ đạt đến 0,9MB.
Hình 4.2 Mô hình biểu diễn sự mất gói trên đường truyền
Từ thời điểm 2,0s ÷ 5,0s, có thêm lưu lượng 02 truyền trên mạng, tại node mạng R3 băng thông đạt tới 1MB.
Do băng thông của R3 và R5 có dung lượng 1MB, do vậy tại node mạng R3 có hiện tượng nghẽn mạng xảy ra.
Bộ đệm của R3 bị tràn do không đủ dung lượng để chứa các gói tin, do vậy một số gói tin bị hủy tại node mạng R3 dẫn tới hiện tượng mất gói – Hình 4.2.
Đối với lưu lượng 01: 28,9%.
Đối với lưu lượng 02: 42,9%.
Hình 4.3 Mô tả truyền lưu lượng của mạng IP trên phần mềm NS2
- Kết luận:
Trường hợp mạng chỉ truyền dữ liệu : giao thức sử dụng là TCP sẽ dẫn đến hiện tượng kết nối và truyền file chậm ( do có việc truyền lại đối với các gói TCP bị hủy).
Trường hợp mạng truyền dữ liệu: (dữ liệu bao gồm cả TCP và UDP) hiện tượng mất dữ liệu sẽ xảy ra đối với những luồng dữ liệu sử dụng UDP.
Trường hợp mạng sử dụng cho thoại, video:
Cuộc gọi sẽ không thực hiện được do ảnh hưởng tới báo hiệu và mất gói trên đường truyền.
Hình ảnh video sẽ có hiện tượng dừng, không đảm bảo tính thời gian thực của hình ảnh.
4.3.2. Mô phỏng định tuyến bắt buộc trong MPLS
- Mô phỏng:
Truyền các lưu lượng:
Router nguồn: R0.
Router đích: R10.
Truyền lưu lượng 01:
Thời gian truyền từ 0,501s ÷ 5,001s.
Dung lượng truyền: 0,8MB.
Kích thước gói tin: 600B.
Truyền lưu lượng 02:
Thời gian truyền từ 1,001s ÷ 5,001s.
Kích thước gói tin: 600B.
Truyền lưu lượng 03:
Thời gian truyền từ 1,501s ÷ 5,001s.
Dung lượng truyền: 0,8MB.
Kích thước gói tin: 600B. - Hiện tượng:
Thiết lập đường truyền nhãn:
Giá trị mức ưu tiên trên các đường truyền nhãn là như nhau:
Giá trị thiết lập mức ưu tiên: 7
Giá trị giữ mức ưu tiên: 7
Thời điểm 0,201s:
Thiết lập đường truyền nhãn (LSP) 1100 trên mạng MPLS.
Router thực hiện phân phối nhãn là R1.
Thời điểm 0,601s:
Thiết lập đường truyền nhãn (LSP) 1200 trên mạng MPLS.
Router thực hiện phân phối nhãn là R1.
Thời điểm 1,001s:
Thiết lập đường truyền nhãn (LSP) 1300 trên mạng MPLS.
Router thực hiện phân phối nhãn là R1.
Truyền dữ liệu:
Thời điểm 0,501s: truyền lưu lượng 01 trên đường truyền nhãn 1100 – Hình 4.5.
Thời điểm 1,001s: truyền lưu lượng 02 trên đường truyền nhãn 1200 – Hình 4.6.
Thời điểm 1,501s: truyền lưu lượng 03 trên đường truyền nhãn 1300 – Hình 4.7; 4.8; 4.9.