Tài liệu Mô phỏng mạng ip và làm chủ phần mềm ns-3

  • Số trang: 19 |
  • Loại file: PDF |
  • Lượt xem: 200 |
  • Lượt tải: 0
nganguyen

Đã đăng 34345 tài liệu

Mô tả:

1 BỘ GIÁO DỤC VÀ ĐÀO TẠO TẬP ĐOÀN BƯU CHÍNH VIỄN THÔNG VIỆT NAM HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG --------------------------------------- NGÔ THỊ LAN MÔ PHỎNG MẠNG IP VÀ LÀM CHỦ PHẦN MỀM NS-3 CHUYÊN NGÀNH : TRUYỀN DỮ LIỆU VÀ MẠNG MÁY TÍNH MÃ SỐ : 60.48.15 Người hướng dẫn khoa học: TS Đinh Văn Dũng TÓM TẮT LUẬN VĂN THẠC SĨ HÀ NỘI - 2011 2 MỞ ĐẦU I. Đặt vấn đề Thế giới của mạng viễn thông và mạng máy tính đã trải qua kinh nghiệm trên 2 thập niên trước, một sự phát triển chưa từng có tiền lệ trong lĩnh vực cung cấp dịch vụ, âm lượng của quá trình truyền tin, các công nghệ được sử dụng. Các mạng viễn thông, mà trước đây tập trung vào sự truyền tải sử dụng công nghệ chuyển mạch, đã nhanh chóng phát triển theo hướng chuyển giao kỹ thuật số, dữ liệu, hình ảnh dùng các công nghệ chuyển mạch gói TCP/IP. Việc kết hợp các hệ thống làm tăng tính phức tạp trong xử lý là nguyên nhân dẫn đến sự ra đời của các phương pháp mô hình hóa và các kỹ thuật mô phỏng trong khi quy hoạch, thiết kế mạng với công nghệ nền IP (Internet, NGN, 3G, MAN-E,...). Ngay nay, việc mô hình hóa và mô phỏng là một trong hầu hết các kỹ thuật được sử dụng rộng rãi trong thiết kế các hệ thống phức tạp do nó linh hoạt và hiệu quả. Đồng thời, sử dụng các mô phỏng làm cho việc học tập, nghiên cứu các hệ thống trong các nhà trường hiệu quả hơn trong khi cơ sở vật chất chưa đáp ứng được. II. Mục tiêu nghiên cứu của luận văn Xuất phát từ sự hiệu quả trong sử dụng, đồng thời cũng xuất phát từ yêu cầu của trường Đại học Công Nghiệp Việt – Hung: Khuyến khích giáo viên sử dụng các công cụ mô phỏng bài giảng, để học sinh quan sát trực quan và cũng là để giải quyết vấn đề thiếu phương tiện dạy học. Và từ thực tế dạy học chuyên nghành “Quản trị mạng” tại trường. Đề tài “Mô phỏng mạng IP và làm chủ phần mềm NS-3” với mong muốn sau khi hoàn thành sẽ giúp cho công tác giảng dạy được thuận lợi hơn để truyền đạt tối đa kiến thức đến cho sinh viên chuyên nghành “Quản trị mạng” nơi em công tác. Do đó, mục tiêu của đề tài cần đạt được là: - Tìm hiểu các phương pháp mô hình hóa mạng IP: mô phỏng sự kiện rời rạc, mô phỏng theo vết (trace driven) và phương pháp mô phỏng Monte. - Làm chủ phần mềm mã nguồn mở ns-3, nắm vững các lớp, mô hình và cách sử dụng của các lớp trong ns-3 III. Thực hiện các minh họa mô phỏng sử dụng ns-3. Bố cục của luận văn Luận văn gồm 3 nội dung sau: Chương 1 : Mô phỏng mạng IP Chương 2 : Kiến trúc hệ thống phần mềm NS-3 Chương 3 : Phát triển và ứng dụng phần mềm mô phỏng NS-3 3 Chương 1 MÔ PHỎNG MẠNG IP 1.1. Các phương pháp mô hình hóa mạng IP 1.1.1. Phương pháp mô phỏng sự kiện rời rạc Một mô phỏng sử dụng mô hình trạng thái rời rạc của hệ thống được gọi là phương pháp mô phỏng sự kiện rời rạc. Phương pháp này ngược với các phương pháp mô phỏng sự kiện liên tục ở chỗ trong mô phỏng sự kiện liên tục trạng thái của hệ thống lấy các giá trị liên tục. Các mô hình trạng thái liên tục được sử dụng trong các mô phỏng hóa học do trạng thái của hệ thống được mô tả bởi sự tập trung của một chất hóa học. Trong các hệ thống máy tính, các mô hình sự kiện rời rạc được sử dụng bởi vì trạng thái của hệ thống được mô tả bởi số lượng công việc ở những thiết bị khác nhau. Lưu ý rằng thuật ngữ “rời rạc” không dùng để chỉ giá trị thời gian được sử dụng trong mô phỏng. Phương pháp mô phỏng sự kiện rời rạc có thể sử dụng các giá trị thời gian liên tục hay rởi rạc. Tất cả phương pháp mô phỏng sự kiện rời rạc đều có chung một cấu trúc. Bất kể hệ thống được mô hình là gì, thì phương pháp mô phỏng cũng sẽ có một số thành phần như sau: Nếu sử dụng ngôn ngữ lập trình đa dụng, thì các nhà phân tích phải tự phát triển tất cả các thành phần. Nguôn ngữ lập trình mô phỏng thì có thể cung cấp một vài thành phần, còn lại các nhà phân tích phải tự phát triển. 1.1.2. Phương pháp mô phỏng theo vết (trace driven) Mô phỏng sử dụng trace làm đầu vào là phương pháp mô phỏng trace-driven. Trace là một bản ghi các sự kiện được sắp xếp theo thời gian của một hệ thống thật. Các phương pháp mô phỏng trace-driven này khá thông dụng trong các phân tích hệ thống máy tính. Chúng thường được sử dụng để phân tích và điều chỉnh các giải thuật quản lý tài nguyên. Giải thuật paging, phân tích bộ nhớ cache, các giải thuật lập lịch CPU, các giải thuật ngăn chặn nghẽn và các giải thuật để phân chia động bộ nhớ là các ví dụ về các trường hợp đã áp dụng thành công phương pháp mô phỏng Trace-driven và được để cập đến trong các tài liệu Trong những nghiên cứu đó, Trace của tài nguyên yêu cầu được dùng làm đầu vào để thực hiện mô phỏng để mô hình những giải thuật khác nhau. 1.1.3. Phương pháp mô phỏng Monte Phương pháp mô phỏng tĩnh hay một phương pháp mô phỏng nào đó không có trục thời gian thì được gọi là phương pháp mô phỏng Monte Carlo. Những phương pháp thường được dùng để mô hình những hiện tượng xác suất , những hiện tượng không thay đổi đặc tính theo thời gian. Giống như một phương pháp mô phỏng động, các phương pháp mô phỏng tĩnh cũng cần phải có một bộ tạo các số giả ngẫu nhiên. Phương pháp mô phỏng Monte Carlo cũng được sử dụng để tính toán các biểu thức không theo sắc xuất bằng cách sử dụng các phương pháp theo sắc xuất. 1.2. Đánh giá các phần mềm mô phỏng mạng IP 1.2.1. Các tiêu chí đánh giá một phần mềm mô phỏng mạng - Phương pháp mô phỏng được hỗ trợ: Các phương pháp mô phỏng phổ biến gồm có 3 phương pháp: mô phỏng sự kiện rời rạc, mô phỏng theo vết (trace driven) và mô phỏng Monte. - Hỗ trợ chạy trên các nền tảng khác nhau: Sẽ hữu ích nếu có một chương trình mô phỏng chạy trên các nền tảng khác nhau, cụ thể là trên cả các hệ điều hành linux và windows. Trong trường hợp mô phỏng có tải tính toán nặng, cần quan tâm tới các khả năng xử lí đa nhiệm, song song, hay phân tán - Hỗ trợ việc tạo các topo mạng: Các chương trình mô phỏng cần có khả năng tạo các topo mạng phân cấp, không phân cấp cũng như các topo mạng ngẫu nhiên. 4 - Hỗ trợ giám sát: Trong quá trình mô phỏng, sẽ rất có lợi nếu giám sát hoạt động của mạng trên mỗi luồng, mỗi nút mạng hay tổng quát hơn là trên một số các tiêu chí tổng hợp. Việc giám sát có thể được trợ giúp bởi giao diện đồ họa. Kết quả giám sát có thể ghi vào các file nhằm tạo ra các dữ liệu để so sánh về sau hay chạy lại mô phỏng phục vụ mục đích nghiên cứu các hoạt đã xảy ra. - Sự cân đối, khả năng mở rộng, khả năng điều chỉnh và tính mềm dẻo/ linh hoạt: Các chương trình mô phỏng phải có một kiến trúc module mở trong đó, các mô hình hiện thời có thể được thay thế, chỉnh sửa, hay bổ sung các mô hình mới. - Tính khả dụng rộng rãi: Thiết kế phần mềm của một chương trình mô phỏng cũng như là các công cụ lập trình dùng trong chương trình mô phỏng đó có tác động lớn đến tính khả dụng của nó. Lợi ích của giao diện đồ họa có thể tăng tốc thao tác trên chương trình mô phỏng. Và chất lượng chung của các tài liệu sẵn có và hỗ trợ về kĩ thuật cũng là các yếu tố quan trọng để có thể học cách sử dụng và điều khiển chương trình mô phỏng đó một cách hiệu quả và nhanh chóng. - Mức độ cộng đồng mạng chấp nhận một chương trình mô phỏng: Việc chọn lựa một chương trình mô phỏng được sử dụng rộng rãi và được chấp nhận bởi cộng đồng mạng cho phép tạo ra các kết quả dễ so sánh với các kết quả được trình bày trong các tài liệu đã có, và ở khía cạnh nào đó, các kết quả này cũng dễ được giới khoa học chấp nhận hơn. 1.2.2. Một số phần mềm mô phỏng mạng IP 1.3. 1.2.2.1. OPNET 1.2.2.2. OMNeT++ 1.2.2.3. NS-2 1.2.2.4. JiST 1.2.2.5. SimPy So sánh hiệu suất của các phần mềm mô phỏng 1.3.1. Phương pháp thực hiện Thực hiện trên một mô hình mạng bất kỳ và chạy trên tất cả các phần mềm mô phỏng ns-2, OMNet++, ns-3, SimPy và JiST/SWANS. Bởi vì, hiệu suất của quá trình mô phỏng mạng phụ thuộc chủ yếu vào mã của các mô hình mạng và độ phức tạp tính toán của chúng. 1.3.2. Khả năng tương đương của các mô hình Thực hiện một mô phỏng trên 5 phần mềm mô phỏng khác nhau ở trên. Trong ví dụ này ta chạy mô phỏng một mô hình mạng trong tất cả các phần mềm mô phỏng, xác suất mất mát thông tin nằm trong khoảng giữa 0 và 1, cấu trúc liên kết mạng hình vuông giới hạn kích thước mạng từ 4 tới 1024 nút , thời gian mô phỏng được đặt là 600s. Kết quả đạt được cho thấy tỷ lệ mất mát thông tin của SimPy là hơi cao hơn mức trung bình, tuy nhiên vẫn nằm trong giới hạn chấp nhận được. Từ những kết quả này, ta có thể kết luận rằng việc triển khai độc lập các mô phỏng trong thực tế cho kết quả tương đương nhau. 1.3.3. So sánh hiệu suất Với thực tế khả năng mô phỏng của các phần mềm cho kết quả như nhau, bây giờ ta tiến hành so sánh từng công cụ mô phỏng riêng, đánh giá ở thông số: Thời gian chạy mô phỏng (simulation runtime) và sử dụng bộ nhớ (memory usage). Để đánh giá khả năng của các phần mềm mô phỏng, chúng ta sẽ thực hiện 2 lượt chạy khác nhau sử dụng một mô phỏng. Trong lượt chạy đầu tiên, xác suất mất thông tin được đặt cố định là 0.10 với kích thước mạng trong khoảng từ 4 tới 3025 nút. 5 Hình 1.3. Thời gian chạy mô phỏng thời gian so với kích thước mạng Lượt thứ 2 sử dụng kích thức mạng cố định là 3025 nút, xác suất mất thông tin nằm trong khoảng 0.0 và 1.0. Tất cả các kết quả đưa ra sau đây là trung bình của 5 lần thực hiện đối với mỗi loạt mô phỏng. Trong cả 2 loạt mô phỏng, thời gian mô phỏng được đặt là 600s. 1.3.3.1. Thời gian chạy mô phỏng Hình 1.3 cho thấy thời gian chạy mô phỏng được đo ở các kích thước mạng khác nhau đối với các công cụ mô phỏng được so sánh. Trước hết, những kết quả này cho thấy rằng SimPy không hoạt động tốt và vì thế không thể áp dụng mô phỏng mạng có quy mô lớn: Đối với một mạng có kích thước 3025 nút, trung bình nó cần tới 1225 giây để hoàn thành việc chạy mô phỏng. Trái ngược với điều đó, cùng một công việc đó JiST hoàn thành nhanh hơn khoảng 14 lần, kết quả thời gian thực hiện trung bình là 86s. Nhìn qua thì hiệu suất thời gian chạy tổng thể của JiST là đáng kinh ngạc. Thực tế cho thấy là nó được xây dựng dựa trên Java và vẫn còn nhanh hơn so với OMNeT++ và ns3, là những công cụ được thực hiện một cách tự nhiên. Điều đó là do giới hạn thành công là từ kiến trúc của JiST: Bên cạnh việc thực hiện song song trên các thực thể khác nhau, JiST thực hiện tối ưu hóa thời gian chạy dựa trên sự phân tích của mã byte thực hiện. Theo hiệu suất thời gian chạy của Ns-3, sự cải tiến về kiến trúc, cụ thể là việc bỏ oTCL/C++, được phản ánh rõ ràng trong kết quả đã thu được ở trên, ns-3 được coi là nhanh hơn so với phiên bản trước (ns-2) của nó. Trong khi hiệu suất thời gian chạy của OMNeT++ hơi kém hơn so với ns-3 và JiST, cả 3 công cụ mô phỏng này thể hiện rằng hầu như có cùng một khả năng mở rộng theo thời gian chạy mô phỏng. Hình 1.4. Thời gian chạy mô phỏng so với việc giảm xác suất 6 Để hiểu sâu hơn về các cách thức trong thời gian chạy của các công cụ mô phỏng khác nhau ta có thể được quan sát từ các kết quả trong hình 1.4. Ở đây, có thể hình dung thời gian chạy trung bình từ loạt mô phỏng thứ 2 đối với một mạng có kích thước cố định là 3025 nút và các xác suất mất mát thông tin khác nhau. Với việc tăng các xác suất mất mát thông tin, thời gian chạy mô phỏng tự nhiên giảm một cách nhanh chóng đối với toàn bộ các công cụ mô phỏng, càng ngày càng nhiều gói tin bị loại bỏ từ mô phỏng, do đó dẫn đến kết quả là ít sự kiện được xử lý hơn. Nói cách khác, xác suất mất mát thông tin trực tiếp phản ánh số các sự kiện được thực hiện trong các mô phỏng. Ta có thể thấy rằng thời gian chạy mô phỏng SimPy tăng nhanh hơn nhiều ở xác xuất mất thông tin thấp hơn bất kỳ một công cụ mô phỏng nào khác. Từ các kết quả đó, ta có thể kết luận rằng thực tế SimPy có một ít sự kiện xử lý hơn các lõi mô phỏng khác. 1.3.3.2. Sử dụng bộ nhớ Tương tự như phân tích ở trên về thời gian chạy mô phỏng. Hình 1.5 mô tả việc sử dụng bộ nhớ tối đa của từng công cụ mô phỏng riêng biệt trong hai loạt chạy mô phỏng. Hình 1.5. Bộ nhớ sử dụng so với kích thước mạng Từ kết quả trên cho thấy, JiST sử dụng tài nguyên bộ nhớ nhiều hơn so với các công cụ mô phỏng khác. Ngoài ra, sự khác biệt trong sử dụng bộ nhớ giữa JiST và các công cụ khác tăng lên khi kích thước mạng lớn hơn. Hiệu suất sử dụng bộ nhớ của ns-2, OMNeT++ và SimPY chia thành các đường tuyến tính tương tự nhau thể hiện tốc độ tăng dần của việc sử dụng bộ nhớ khi kích thước mạng tăng và ns-3 là công cụ mô phỏng hiệu quả nhất trong vấn đề này. 7 Chương 2 KIẾN TRÚC HỆ THỐNG PHẦN MỀM NS-3 2.1 Cấu trúc phần mềm NS-3 Ns-3 là một phần mềm mô phỏng mạng các sự kiện rời rạc mà trong đó lõi và các mô hình mô phỏng được thực hiện trong C++. Ns-3 xây dựng một thư viện có thể là tĩnh hoặc động liên kết với một chương trình chính của C++, định nghĩa các cấu trúc mô phỏng và bắt đầu mô phỏng. Ns-3 cũng đưa ra hầu như tất cả các API của nó cho Python, cho phép các chương trình Python sử dụng một module Ns-3 tương tự như được sử dụng trong C++. 2.2 Lịch trình thời gian thực (RealTime Scheduler) Mục đích của lịch trình thời gian thực là đồng bộ giữa thời gian mô phỏng với thời gian thực bên ngoài. Nếu không có sự hiện diện các một thời gian thực bên ngoài (biên của đồng hồ) thời gian của các mô phỏng tiếp theo sẽ được nhảy ngay lập tức sau khi kết thúc một mô phỏng trước đó. 2.3 Mô phỏng rời rạc với MPI Mô phỏng sự kiện rời rạc và song song cho phép thực hiện một chương trình mô phỏng trên nhiều bộ xử lý. Bằng cách chia các mô phỏng thành các xử lý thích hợp, các LP, mỗi LP có thể được thực hiện bởi một bộ xử lý khác nhau. Phương pháp mô phỏng này cho phép mô phỏng các mô phỏng trong phạm vi rất lớn bằng cách thúc đẩy làm tăng năng lực xử lý và sự sẵn có của bộ nhớ. Để đảm bảo chắc chắn việc thực hiện mô phỏng rời rạc là đúng, bắt buộc phải có một thông điệp truyền qua giữa các LP. Để hỗ trợ cho các mô phỏng rời rạc trong ns-3, một giao diện chuyển thông điệp chuẩn (Message Passing Interface (MPI)) được sử dụng, cùng với một lớp mô phỏng rời rạc mới. Hiện tại, việc phân chia một mô phỏng cho các mục đích rời rạc trong ns-3 chỉ có thể tập trung ở các liên kết điểm nối điểm (Point-to-Point) 2.4 Node và NetDevices Node là một thành phần của lớp Node. Một lớp Node bao gồm các NetDevice và những bộ phận cấu trúc bên trong là các phương thức và các ứng dụng. Đối tượng Node chứa một danh sách các ứng dụng (Application) (ban đầu là danh sách rỗng), một danh sách các NetDevice (ban đầu là danh sách rỗng), một danh sách các ProtocolHandlers, và một số nguyên ID duy nhất và một ID của hệ thống (đối với mô phỏng rời rạc). 2.5 Wifi NetDevice WifiNetDevice mô hình hóa một điều khiển giao tiếp của mạng không dây dựa trên chuẩn IEEE802.11. Tập hợp các mô hình của 802.11 trong ns-3 cung cấp một thực thi chính xác mức MAC của các chi tiết kỹ thuật 802.11 và cung cấp một mô hình mức PHY của các chi tiết kỹ thuật 802.11a. Mã nguồn của NetDevice Wifi có trong thư mục src/devices/wifi. 2.6 Wimax NetDevice Khi thêm các đối tượng WimaxNetDevice vào các nút của Ns-3, người ta có thể tạo ra các mô hình mạng dựa trên chuẩn 802.16. Các tính năng quan trọng nhất của mô hình Wimax trong ns-3 gồm: - Khả năng mở rộng, lớp vật lý thực tế và mô hình kênh. - Phân loại gói tin cho các lớp con hội tụ IP - Hiệu quả trong các kế hoạch liên kết trên và liên kết dưới. - Hỗ trợ dịch vụ truyền đa điểm và quảng bá (Multicast và Broadcast Service (MBS)) và chức năng truy tìm gói tin. 8 Mã nguồn của các mô hình WiMAX được đặt trong thư mục src/devices/wimax 2.7 Các API Socket API của socket đã tồn tại từ lâu được sử dụng bởi các ứng dụng người dùng để truy cập các dịch vụ mạng trong nhân mạng. “Socket” là một khái niệm trừu tượng, giống như một kênh điều khiển tập tin của Unix, cho phép các ứng dụng kết nối với các máy tính khác trên Internet và trao đổi dòng dữ liệu tin cậy và các gói dữ liệu không tin cậy, giữa các dịch vụ với nhau. Ns-3 cung cấp 2 loại API Socket, và điều đó là rất quan trọng để hiểu được sự khác biệt giữa chúng. Loại đầu tiên là một API ns-3 tự nhiên trong khi loại thứ 2 sử dụng các dịch vụ của API tự nhiên để cung cấp một API giống như POSIX như là một phần của quá trình xử lý ứng dụng tổng thể. Cả 2 loại này đều cố gắng sao cho gần với các API cơ bản để người viết ứng dụng trên hệ thống Unix quen với nó, nhưng các biến thể POSIX là rất gần với các API Socket của hệ thống thực. 2.8 Tổng quan về định tuyến Ns-3 được thiết kế nhằm mục đích hỗ trợ các phương pháp định tuyến và các giao thức truyền thống, các cổng hỗ trợ thực thi các định tuyến trên mã nguồn mở và tạo điều kiện để nghiên cứu các kỹ thuật định tuyến không chính thống. Một số vấn đề về định tuyến trong ns-3: Kiến trúc định tuyến, cấu hình các định tuyến toàn cục đối với cấu trúc mạng có dây, các giao thức định tuyến đơn, định tuyến đa luồng. 2.9 Tạo một mô hình Ns-3 mới 2.9.1 Phương pháp thiết kế Hãy xem xét việc mô hình muốn tạo làm việc như thế nào; nó nên làm những gì. Hãy suy nghĩ về những điều này: + Chức năng: Nó cần có những chức năng gì ? Những thuộc tính hay những cấu hình nào được người dùng nhìn thấy ? + Sử dụng lại: bao nhiêu người có khả năng sử dụng lại thiết kế của tôi? Tôi có thể sử dụng lại mã từ ns-2 để bắt đầu? Làm thế nào để người sử dụng tích hợp mô hình với phần còn lại của mô phỏng khác? + Phụ thuộc: Làm thế nào tôi có thể làm giảm bớt sự phụ thuộc vào bên ngoài ở trong đoạn mã mới của tôi càng nhiều càng tốt (để làm cho nó module hóa hơn không)? Ví dụ, tôi muốn sử dụng Ipv6 mà không phụ thuộc vào IPv4? Tôi có nên tránh bất kỳ sự phụ thuộc vào IP ở tất cả các phiên bản? 2.9.2 Xây dựng khung cho các hàm cần tạo Khi đã sẵn sàng để bắt đầu thực hiện và đã xác định những gì muốn xây dựng. Một cách để giải quyết là tạo ra khung cho các hàm cần tạo (scaffolding) và điền các chi tiết như là đã hoàn thành quá trình thiết kế. Phần này mô tả qua rất nhiều bước nên cần cân nhắc để định nghĩa scaffolding hoặc khung sườn không chứa nội dung nào của những mô hình gì sẽ được thực thi. Nó thường được thực hành tốt để không phải đợi để có được những chi tiết này kết hợp với người dùng cuối, nhưng thay vì đưa ngay khung trong mô hình vào hệ thống và sau đó thêm một số chức năng mới sau khi API và quá trình tích hợp dường như thích hợp 2.9.3 Tạo một mô hình Ns-3 mới 2.9.3.1 Bổ sung thêm các hỗ trợ cơ bản vào lớp point-to-point-net-device.h class ErrorModel; /** * Mô hình lỗi đối với các sự kiện nhận gói tin Ptr m_receiveErrorModel; 9 2.9.3.2 Bổ sung bộ xử lý truy cập void PointToPointNetDevice::SetReceiveErrorModel (Ptr em) NS_LOG_FUNCTION (this << em); m_receiveErrorModel = em; .AddAttribute ("ReceiveErrorModel", "Mô hình lỗi nhận được sử dụng để mô phỏng mất gói tin", PointerValue (), MakePointerAccessor (&PointToPointNetDevice::m_receiveErrorModel), MakePointerChecker ()) 2.9.3.3 2.9.3.3 Xâm nhập vào hệ thống void PointToPointNetDevice::Receive (Ptr packet) NS_LOG_FUNCTION (this << packet); uint16_t protocol = 0; if (m_receiveErrorModel && m_receiveErrorModel->IsCorrupt (packet) ) / / Nếu chúng ta có một mô hình thông báo lỗi và nó chỉ ra thời điểm mất một gói dữ liệu bị hỏng, không chuyển tiếp gói tin này, hãy để cho nó đi. m_dropTrace (packet); else / / Tìm được dấu vết nhận tiếp theo thì gỡ bỏ tiêu đề của giao thức điểm nối điểm và chuyển tiếp gói tin này lên ngăn xếp giao thức. m_rxTrace (packet); ProcessHeader(packet, protocol); m_rxCallback (this, packet, protocol, GetRemote ()); if (!m_promiscCallback.IsNull ()) m_promiscCallback (this, packet, protocol, GetRemote (), GetAddress (), NetDevice::PACKET_HOST); 2.9.3.4 Tạo một đoạn mã không có chức năng simple-error-model.cc / / Mô hình thông báo lỗi // Chúng tôi muốn bổ sung thêm một mô hình lỗi vào NetDevice của Node 3. // Chúng tôi có thể có được một xử lý tới NetDevice thông quá kênh và node // Các con trỏ Ptr nd3 = PointToPointTopology::GetNetDevice (n3, channel2); Ptr em = Create (); nd3->SetReceiveErrorModel (em); bool ErrorModel::DoCorrupt (Packet& p) NS_LOG_FUNCTION; NS_LOG_UNCOND("Corrupt!"); return false; 10 Chương 3 PHÁT TRIỂN VÀ ỨNG DỤNG PHẦN MỀM 3.1 Thực hiện gói tin IPv6 trong NS-3 Ns-3 ra đời nhằm đáp ứng sự phát triển mạnh mẽ của các công nghệ mạng, sự xuất hiện của công nghệ không dây, trong đó bao gồm hỗ trợ tính di động và multihoming. Hiện nay, NS-3 đáp ứng được các yêu cầu của một công cụ mô phỏng cơ bản. Tuy nhiên NS-3 chỉ tập trung vào IPv4, trong khi IPv6 đang được triển khai trên mạng Internet và chắc chắn sẽ là giao thức được sử dụng trên Internet trong năm mươi năm tới, và vì thế bất kỳ một công cụ mô phỏng mạng nào cũng nên hỗ trợ cho IPv6. Hầu hết các phát triển trong tương lai của các giao thức cho Internet sẽ hỗ trợ IPv6 3.1.1 Đặc điểm của IPv6 Hiện nay, giao thức được sử dụng là giao thức mạng phiên bản 4 (IPv4). Giao thức này đã được đưa vào sử dụng rất hiệu quả. Tuy nhiên, sự phát triển ngày càng tăng của mạng Internet gây ra sự thiếu hụt về địa chỉ và vấn đề bảo trì các tuyến đường. Vấn đề thiếu hụt địa chỉ được khắc phục một phần bằng cách giới thiệu rộng rãi về công nghệ NAT (Network Address Translators), cho phép kết hợp một địa chỉ IP toàn cục duy nhất cho nhiều máy trong cùng một mạng riêng. Mặc dù vậy, việc sử dụng NAT gây rắc rối trong quá trình truyền thông giữa các máy và cũng có thể ảnh hưởng đến hiệu suất của mạng. Để giải quyết vấn đề này và để nâng cao dịch vụ được cung cấp bởi IP thì phải chấp nhận một phiên bản IP mới, là IP phiên bản 6 (IPv6). IPv6 đã được đưa ra để giải quyết phần lớn các vấn đề đúc kết được trên 30 năm qua trên mạng Internet. Đầu tiên, nó mở rộng không gian địa chỉ từ 232 tới 2128. Một địa chỉ IPv6 được cấu tạo gồm 128 bit: 64 bit đầu tiên thường được dùng để định danh một mạng (phần đầu của mạng), trong khi đó 64 bit sau dùng để định vị các máy trong mạng này. Mỗi địa chỉ IPv6 đều có thể hiện phạm vi của chúng: liên kết cục bộ, trang cục bộ hay toàn cục. Phạm vi có hiệu lực của các địa chỉ liên kết cục bộ bị giới hạn bởi chính tên của liên kết đó, ví dụ như các địa chỉ loại này chỉ được dùng để truyền thông trực tiếp giữa các máy gần nhau. Một địa chỉ liên kết cục bộ được cấu hình tự động trên mỗi giao diện mạng bằng cách kết hợp tiền tố FE80::/64 với IEEE802 E-64 của giao diện đó. Đối với một trang không kết nối được tới mạng Internet hoặc vẫn là một mạng riêng thì nó có phạm vi cục bộ. Những địa chỉ này tương đương với các địa chỉ IPv4 riêng (ví dụ 192.168.0.0). Tuy nhiên, những địa chỉ như thế này không được chấp nhận trong suốt quá trình định tuyến và các vấn đề phân định ranh giới của một trang. Chúng được thay thế bởi địa chỉ cục bộ duy nhất. Cuối cùng, các địa chỉ IPv6 toàn cục có thể được định tuyến trên toàn bộ mạng IPv6 và do đó được sử dụng để truyền tải thông tin giữa hai máy IPv6 từ xa bất kỳ. 3.1.1.1 Phát hiện các nút mạng lân cận IPv6 có một giao thức mới là giao thức phát hiện các nút mạng lân cận (Neighbor Discovery), thực hiện một vài chức năng như khám phá các tuyến đường, phân giải địa chỉ (ánh xạ các địa chỉ IP với các địa chỉ lớp liên kết), tự động cấu hình địa chỉ, tìm các nút mạng lân cận, quyết định bước nhảy tiếp theo và chuyển hướng máy. Tất cả các thông điệp IPv6 (ICMPv6) được giao thức phát hiện các nút mạng lân cận truyền đi đều được thực hiện bởi Giao thức điều khiển thông báo trên mạng (Internet Control Message Protocol). Giao thức phát hiện nút mạng lân cận cung cấp một thủ tục cấu hình địa chỉ mới đó là cơ chế tự động cấu hình địa chỉ. Một máy tính có thể tự động cấu hình địa chỉ IPv6 có giá trị toàn cục khi nhận được một thông điệp thông báo của bộ định tuyến (Router Advertisement) rằng bộ định tuyến truy cập cục bộ định kỳ 11 được quảng bá trên liên kết IPv6. Một thông báo của bộ định tuyến thường cung cấp một (nhiều) tiền tố liên kết để cấu hình địa chỉ toàn cầu, thêm vào địa chỉ lớp liên kết của bộ định tuyến truy cập cục bộ. Lưu ý rằng, địa chỉ IPv6 liên kết cục bộ của bộ định tuyến được lấy từ tiêu đề IPv6 của thông báo của bộ định tuyến, do đó một yêu cầu cần thiết là không được thay đổi gói tin IPv6 cần chuyển tiếp tới bộ định tuyến này. Khi nhận thông báo của bộ định tuyến, một máy tính cấu hình địa chỉ IPv6 toàn cục cho mỗi tiền tố được liệt kê trong thông báo bằng cách kết hợp những tiền tố này với IEEE 802 EUI-64 của giao diện đã nhận được tin nhắn. Ngoài ra, máy đó cũng bổ sung thêm các tuyến đường có liên quan trong bảng định tuyến của nó (Tuyến đường mặc định, tuyến đường cho các liên kết đích,…) và đămg ký trong bộ nhớ đệm của nút mạng lân cận (tương đương với bộ nhớ ARP của IPv4) ánh xạ các địa chỉ IPv6 với các địa chỉ lớp liên kết của bộ định tuyến. Hơn nữa, bộ định tuyến truy cập cung cấp một thời gian tồn tại cho mỗi tiền tố, thông báo để hỗ trợ các máy tính biết khi một địa chỉ không được chấp nhận và không nên sử dụng để bắt đầu một phiên truyền thông mới. Lưu ý rằng, IPv6 cũng cho phép cấu hình địa chỉ tự động thông qua Giao thức cấu hình địa chỉ động phiên bản 6 (Dynamic Host Configuration Protocol version 6 - DHCPv6) hoặc cấu hình địa chỉ bằng tay. 3.1.1.2 Phương thức nâng cao độ tin cậy kết nối IP Phương thức nâng cao độ tin cậy kết nối IP (Multihoming) là trạng thái một nút mạng có thể truy cập bằng nhiều đường, hoặc bởi vì nút mạng này có một vài giao diện mạng kết nối tới các mạng truy cập khác, hoặc bởi vì mạng con của nút này được truy cập nhiều lần bởi chính nó. Trong khi một nút mạng chỉ có thể có một địa chỉ trên mỗi giao diện trong IPv4, thì IPv6 cho phép một nút mạng được gán vài địa chỉ IPv6 (không quan tâm phạm vi của địa chỉ) trên một giao diện. Một trường hợp cụ thể minh họa cấu hình này là một liên kết được cung cấp với 2 bộ định tuyến truy cập thông báo một tiền tố duy nhất. Một nút mạng có thể cấu hình ít nhất 3 địa chỉ trên giao diện kết nối tới liên kết này: Một địa chỉ liên kết cục bộ, và 2 địa chỉ toàn cục (từ đây gọi là IP1 và IP2), tương ứng với mỗi tiền tố. Như vậy, nút mạng này có thể hoặc là giao tiếp chỉ với IP1 hoặc IP2 hoặc là cả IP1 và IP2. 3.1.1.3 Phương thức truyền đa điểm Phương thức truyền đa điểm IP là cơ chế chuyển các gói tin IP tới nhiều điểm đến cùng một lúc bằng cách thực hiện gửi mỗi gói tin một lần và khi gặp một điểm đến bị chia tách thì tạo một bản sao khác. Khác với IPv4, phương thức truyền đa điểm IP là một phần cơ bản trong đặc tính của IPv6. Ví dụ, đặc tính quảng bá của IPv4 được thay thế bằng phương thức truyền đa điểm tới các nhóm đại diện cho tất cả các nút mạng trên liên kết. Giao thức phát hiện danh sách các hướng (Multicast Lister Discovery) (tuơng đương với giao thức quản lý nhóm mạng của IPv4) được nhúng trực tiếp trong các thông điệp ICMPv6. 3.1.1.4 Mở rộng tiêu đề Bên cạnh một tiêu đề IP đơn giản (( số các trường được chia thành 2 so với 1 tiêu đề của IPv4). IPv6 cũng làm cho việc định nghĩa phần mở rộng mới đễ dàng hơn, nhúng trực tiếp vào tiêu đề của IP. Tiêu đề của IPv6 gồm có một trường cho tiêu đề tiếp theo xác định hoặc là giao thức từ lớp trên của mô hình OSI (chẳng hạn là giao thức TCP hoặc UDP) hoặc là một IPv6 mở rộng. Người đọc có thể tham khảo phần [2] để biết thêm chi tiết về định dạng và tiện ích của những lựa chọn phổ biến nhất. 12 3.2 Các công nghệ nền tảng mô phỏng các tấn công và thách thức mạng Thách thức là một sự kiện tác động tới các hoạt động bình thường. Thách thức gây ra lỗi và nếu lỗi đó lan ra nó có thể làm cho các dịch vụ chuyển vận lỗi. Các thách thức tới các hoạt động bình thường của các mạng gồm: Cấu hình sai không cố ý, hoặc lỗi hoạt động, các tấn công nguy hiểm, các tai nạn tự nhiên trong quy mô lớn, và các thách thức của môi trường. Nguyên tắc phân loại thách thức mạng được dùng cho các công nghệ nền tảng mô phỏng thể hiện trong hình 3.7. Hình 3.7: Nguyên tắc phân loại các thách thức mạng Nguyên tắc này cần thiết để phân biệt những thách thức được đã đưa ra và hiểu hơn về tác động của chúng. Các thách thức được chia thành 3 loại: Mục đích, phạm vi và miền hoạt động. 3.2.1 Các mô hình thách thức căn cứ vào mục tiêu Các mô hình thách thức được phân loại căn cứ vào sự nguy hiểm hay không nguy hiểm. Các thách thức không nguy hiểm có thể do sự thiếu năng lực của người sử dụng (ví dụ: vô tình bị cắt liên lạc, cấu hình sai tài nguyên mạng) hoặc do người thiết kế (ví dụ lỗi phần cứng hoặc phần mềm cuối cùng làm cho một nút hoặc một liên kết bị lỗi). Những sự kiện ngẫu nhiên này ảnh hưởng tới nút hoặc liên kết đã có sẵn và kết quả có thể thấy được trong đa số các lỗi gặp phải. Mặt khác, các tấn công có hại hoặc được sắp đặt bởi một đối thủ thông minh, mục tiêu cụ thể trong các phần của một mạng và có thể tác động đáng kể nếu các thành phần quan trọng của mạng bị lỗi. 3.2.2 Các mô hình thách thức căn cứ vào phạm vi Phạm vi của một thách thức có thể được phân loại nhiều hơn nữa dựa trên các nút, các liên kết hoặc các phần tử mạng bị ảnh hưởng trong một khu vực địa lý. Trong khi một nút và một liên kết lỗi có thể tác động đến một hoặc nhiều phần từ mạng thì thách thức theo vùng thường ảnh hưởng tới nhiều phần tử mạng. Hiện tượng địa lý tự nhiên có thể tác động tới các khu vực rộng lớn. Bão, động đất, bão mặt trời là các ví dụ của thiên tai có thể ảnh hưởng tới mạng trong phạm vi lớn. Hơn nữa, tương quan địa lý sai có thể do phụ thuộc giữa các cơ sở hạ tầng quan trọng. 3.2.3 Các mô hình thách thức căn cứ vào miền hoạt động Các mạng có các đặc điểm khác nhau lớn dựa trên miền chúng hoạt động là có dây hay không dây. Hiệu quả của quá trình truyền thông trên mạng trong miền không dây chủ yếu bị ảnh hưởng bởi sự di chuyển giữa các nút và sự suy yếu gây ra bởi các phương tiện không dây. Những thách thức đó là cố hữu trong lĩnh vực không dây bao gồm: các kênh kết nối yếu, sự di chuyển của các nút trong mạng ad-hoc, và thời gian trễ không thể xác định trước được. Đây là kết quả của tiếng ồn, nhiễu, và các hiệu ứng khác từ sự nhân lên của RF như phân tán và nhiều đường truyền, cũng như sự di động của các nút không dây. Hơn nữa, các sự kiện thời tiết như mưa và tuyết có thể làm cho các tín hiệu suy giảm và làm suy yếu các mạng truyền thông không 13 dây. Các nút nguy hiểm có thể làm nghẽn tín hiệu của người sử dụng để làm suy yếu phiên truyền thông trong phương tiện không dây mở. Trong khi các mô hình thách thức được nhắc đến ở trên là trực giao với nhau thì các kịch bản thách thức là sự kết hợp của các thách thức loại nhỏ. Ví dụ, một thất bại do sự lão hóa tự nhiên của một thành phần có thể được phân loại như là một nút không nguy hiểm, có dây (hoặc không dây), nút bị lỗi. 3.3 Nền tảng mô phỏng Để xây dựng nền tảng (Framework) mô phỏng bước đầu tiên là cung cấp chi tiết thông tin thách thức bao gồm loại thách thức và chi tiết cụ thể của loại thách thức đó. Bước thứ 2 là cung cấp một mô tả về cấu trúc liên kết mạng, bao gồm vị trí địa lý của nút hoặc tọa độ logic và một ma trận kề. Bước thứ 3 là tự động sinh mã mô phỏng của ns-3 dựa trên cấu trúc liên kết mạng và các mô tả thách thức. Cuối cùng, tiến hành chạy các mô phỏng và phân tích hiệu suất mạng theo các kịch bản thách thức. 3.4 Các ví dụ mô phỏng Trong phần này, áp dụng nền tảng mô phỏng của các thách thức và phương pháp đánh giá các cấu trúc liên kết mẫu để chứng minh sự hữu ích của phương pháp này. Các tham số mô phỏng ns-3 cho như sau: mạng bao gồm các liên kết hai chiều có dây với băng thông 10Mb/s và thời gian truyền trễ là 2ms. Việc định tuyến được thực hiện bằng cách sử dụng thuật toán tìm đường đi ngắn nhất Dijkstra, tính toán lại ở mỗi bước, với thời gian trễ hội tụ lại coi như là một tham số mô phỏng. Lưu lượng truyền với tốc độ bit cố định (CBR) là 40kb/s giữa mỗi cặp nút, với các gói tin 1000 Byte. Những tham số này được lựa chọn như vậy là không có tình trạng tắc nghẽn trong điều kiện hoạt động bình thường, nhưng mạng không cung cấp các thông tin để có thể nhìn thấy tác động của nút và liên kết thất bại. Tiến hành đo hiệu suất mạng theo các thách thức về tỷ lệ phân phối gói tin (PDR). 3.4.1 Các thách thức có hại và không có hại Đầu tiên, ta đánh giá hiệu suất của 3 cấu trúc liên kết riêng thể hiện trong hình 3.10. theo các thách thức có hại và không có hại. Các cấu trúc liên kết được chọn là Sprint suy ra từ cấu trúc liên kết (hình 3.10.1) và 2 cấu trúc liên kết giả (hình 3.10.2 và 3.10.3). Các cấu trúc liên kết giả được tạo ra bằng cách sử dụng công cụ tạo cấu trúc liên kết KU-LoCGen. KU-LoCGen tạo ra các cấu trúc liên kết với các ràng buộc địa lý và địa điểm liên kết giữa các nút sử dụng mô hình Waxman đã được sửa đổi. Kết quả là các cấu trúc liên kết giả có số các nút giống nhau ở các vị trí giống nhau như suy ra từ cấu trúc liên kết Sprint, tuy nhiên số các liên kết và các kết nối của các nút là khác nhau. Hai đồ thị giả được chọn trong ở đây bao gồm một cấu trúc liên kết đa dạng và một cấu trúc không có liên kết nếu để chứng minh phạm vi của các kết nối mạnh mẽ từ công nghệ mô phỏng này. Các đặc tính đồ thị của 3 cấu trúc liên kết được biểu diễn trong bảng 3.2. . Bảng 3.2- Các đặc tính cấu trúc liên kết trong ví dụ 14 Đầu tiên chúng ta tính toán sự nằm giữa (hoặc mức độ kết nối ) đối với mỗi thành phần của mạng trong cấu trúc liên kết, và cung cấp một tệp tin thách thức là một danh sách các phần tử được đưa xuống. Trong hình 3.11 thể hiện PDR trong các liên kết xáo trộn tới Sprint suy ra từ các cấu trúc liên kết tương ứng: (hình 3.11.1), mô hình 1 (hình 3.11.2). và mô hình 2 (hình 3.11.3). Kết quả đánh giá PDR trong các liên kết lỗi với 2 trường hợp sau: 10 liên kết ngẫu nghiên lỗi và một tấn công sử dụng 10 liên kết có thứ hạng cao nhất trên cơ sở liên kết có các giá trị nằm giữa. Ngoại trừ cấu trúc liên kết giả lập 1, các liên kết tấn công có nhiều tác động làm giảm hơn là các liên kết thất bại ngẫu nghiên. 100% PDR cho cả trường hợp ngẫu nhiên và trường hợp tấn công đối với cấu trúc liên kết giả lập 1 (hình 3.10.2) có thể là do số các điểm tiếp theo trung bình thấp hơn của cấu trúc liên kết này, đường kính mạng, hệ số nhóm và mức độ trung bình cao hơn. Cấu trúc liên kết giả lập 1 cũng có nhiều hơn 6 liên kết so với 2 cấu trúc liên kết khác: 74 và 68. Mặt khác, một liên kết tấn công trên liên kết nằm giữa cao nhất đối với cấu trúc liên kết giả lập 2 kết quả trong PDR giảm tới 60%. Xem xét kỹ cấu trúc liên kết giả lập 2 (hình 3.10.3) rõ ràng xác định được liên kết cắt giữa trung tâm và phía tây US là nguyên nhân làm giảm nhiều như vậy kể từ các phân vùng mạng sau khi liên kết thất bại. Từ đó cũng có thể suy ra cùng một kết luận bằng cách kiểm tra các liên kết nằm giữa của cấu trúc liên kết giả lập 2 trong bảng 1, trong đó liên kết này có 140 đường ngắn nhất. Hiệu suất của các cấu trúc liên kết trong ví dụ tương phản với việc sự đảo ngược nút nhiễu và không nhiễu được thể hiện trong hình 3.12. Kết quả đánh giá PDR trong nút lỗi đối với 3 trường hợp: 10 lỗi nút ngẫu nhiên, các tấn công của 10 nút có thứ hạng cao nhất dựa trên cơ sở các tấn công nằm giữa, và 10 nút có thứ hạng cao nhất dựa trên mức độ kết nối. Hình 3.12.1, 3.12.2 và 3.12.3 thể hiện rằng các lỗi nút tồi tệ hơn các liên kết thất bại và lỗi liên kết, vì mỗi nút lỗi tương đương với sự thất bại của tất cả các liên kết đến nút đó. Kết quả thu được cho thấy các cuộc tấn công có thể gây ra sự suy thoái nghiêm trọng nhất. 3.4.2 Các thách thức dựa căn cứ vào vùng hoạt động Như đã thảo, công nghệ nền sử dụng các hình tròn và hình đa giác để mô hình địa lý tương quan với các lỗi thể hiện các tai nạn có quy mô lớn cần thiết cho sự tồn tại của mạng. Những thách thức dựa trên vùng trong mô hình của chúng tôi có thể không thay đổi hoặc phát phát trong một thời gian. Tiếp theo, chúng tôi biểu diễn các kết quả của 3 kịch bản chứng minh các thách thức dựa trên vùng phát triển không gian và thời gian. Trong tất cả các kịch bản, xem trong hình 3.13 chúng tôi sử dụng Rocketfuel suy ra từ cấu trúc liên kết Sprint như thể hiện trong hình 4a. Lưu lượng ứng dụng được sinh ra trong khoảng thời gian từ 2 đến 29s và các kịch bản thách thức được ứng dụng từ 10 tới 22s đối với các đồ thị hiển thị hiệu suất như trong hình 3.14. 3.4.2.1 Đường tròn tỷ lệ Để chứng minh một đường tròn tỷ lệ trong kịch bản thách thức dựa trên vùng. Chúng tôi mô phỏng một vòng tròn ở trung tâm (74:00, 40:71), ở New York, USA như trong hình 3.13.1, với đường kính là 1 (Khoảng 111 km). Chúng tôi chọn kịch bản miêu tả một xung điện tử tấn công (EMP). PDR được hiển thị trong hình 3.14.1. Chúng tôi chọn các tham số mô phỏng để bán kính tăng gấp đôi trong 4 giây. Như có thể thấy, PDR làm giảm gấp đôi diện tích đường tròn. Việc giảm PDR phụ thuộc vào việc xét xem bao nhiêu nút và bao nhiêu liên kết nằm trong mỗi bước. 3.4.2.2 Vòng tròn di động Tiếp theo, chúng ta chứng minh một kịch bản dựa trên vùng có thể phát triển trong không gian và thời gian. Chúng tôi mô phỏng một sự dịch chuyển của vòng tròng theo quỹ đạo từ Orlando, USA (81:37, 28:53) tới New York, USA (-74.00, 40.71). Ba hình chụp được trong việc phát triển các thách thức được hiển thị trong hình 7b. Đường kính của hình tròn được giữ là 2 (tương đương 222km). Chúng tôi chọn các tham số 15 mô phỏng minh họa rằng đường tròn đạt đến NY trong 7 giây ( để hạn chế thời gian mô phỏng) với tuyến đường ước lượng lại mỗi 3 giây (3.10.1) Sprint suy ra từ cấu trúc liên kết (3.10.2) Cấu trúc (3.10.3) cấu trúc liên kết giả 1 liên kết giả 2 Hình 3.10: Ví dụ về các cấu trúc liên kết để ước tính các nút và các liên kết lỗi [11] Hình 3.11:PDR trong suốt các liên kết có hại và không có hại Hình 3.12:PDR trong suốt các nút có hại và không có hại. [11] Như trong hình 3.14.2, PDR làm giảm đến 93% như các thách thức bắt đầu chỉ bao gồm một nút ở Orlando lúc 10s. Như đối với thách thức di chuyển về phía NY trong quỹ đạo của nó, PDR đạt 1 vào giây thứ 13. Trong trường hợp này, thách thức vùng chỉ gồm một liên kết giữa Orlando và NY, nhưng từ khi có nhiều đường đi trên một lỗi liên kết đơn không ảnh hưởng tới PDR, cho thấy sự đa dạng khả năng sống là rất quan trọng. Khi di chuyển thách thức vào khu vực đông bắc US ở giây thứ 16, PDR giảm tới 66% như là thách thức bao gồm một số các nút và các liên kết. Quá trình mô phỏng cho thấy rằng việc di chuyển vòng tròn ra ngoài khu vực đông đúc của một mạng, PDR được cải thiện, cho tới khi thách thức kết thúc ở giây thứ 22. 16 3.4.2.3 Mở rộng đa giác Các đa giác rất hữu ích cho việc mô hình cụ thể các thách thứch địa lý như các thất bại về năng lực mạng. Xét một ví dụ về mở rộng đa giác, chúng tôi biểu diễn ở một đa giác có 6 mặt không đều nhau ở vùng Trung Tây của US, đặc trưng tiêu biểu của Tổng công ty điện tử tin cậy vùng Bắc Mỹ (NERC) khu vực Trung Tây, với các đỉnh [(-87.91 , 43.04 ), (-89.09,42.27), (-89.64,39.8), (-88.54,39.12), (-88.24 ,40.12 ), (87.65 , 41.85 )] như trong hình 3.15 (3.13.1) Đường tròn tỷ lệ (3.13.2) Di chuyển vòng tròn (3.13.3) Mở rộng đa giác Hình 3.13: Các kịch bản thách thức dựa trên vùng. Hình 3.14. PDR trong suốt cácthách thức dựa trên vùng. PDR trong quá trình mô phỏng được thể hiện trong hình 8c. Trong mô phỏng này, các cạnh của đa giác không đều tăng 1,8 lần mỗi giây. Ở giây thứ 10, Challenge ảnh hưởng tới 16 liên kết, điều này làm cho PDR giảm tới 65%. PDR sau đó tăng lên tới 93%, cho dù nhiều liên kết và nhiều nút bị ảnh hưởng ở giây thứ 3 hơn. Do sự hội tụ của các tuyến đường. Khi tăng kích thước đa giác, PDR giảm xuống thấp tới 41%, bởi vì các khu vực thách thức chia cắt mạng ở giây thứ 21. Kiểu mô phỏng này có thể được sử dụng để tìm hiểu ràng buộc giữa khu vực thách thức và năng lực mạng, hoặc để mô hình một thách thức tạm thời đang phát triển, chẳng hạn như sắp tầng năng lượng thất bại làm tăng phạm vi thời gian. 17 3.4.3 Các thách thức trong miền không dây Những thách thức không dây được mô hình như một thiết bị làm nhiễu và làm giảm trong công nghệ lõi của ns-3. Trong phần này, chúng ta sẽ thực hiện một kịch bản kết hợp với cả 2 loại thách thức. Trong kịch bản này, một nút làm nhiễu và làm giảm di chuyển như thể hiện trong hình 3.15. Người gửi ở tọa độ (300,0) người nhận ở vị trí tọa độ (0,0), và nút làm nhiễu ở tọa độ (-100,0). Trong khi mô phỏng nút làm giảm chạy ngang qua mạng không dây từ trái sang phải. Hình 3.15: Sự phối hợp giữa các thiết bị gây nhiễu và làm suy yếu thông tin [11] Hình 3.16: PDR trong kịch bản thách thức không dây [11] Kết quả thực hiện của kịch bản trên được hiển thị trong hình 3.16. Trong kịch bản này, thiết bị làm nhiễu được lắp đặt do đó nó làm cho gói tin mất 70% lưu lượng truyền thông chính thức giữa người gửi và người nhận. khi suy giảm quét theo chiều ngang, PDR thay đổi theo. Trong một khu vực khi việc suy giảm ảnh hưởng tới nút làm nhiễu, PDR đạt được giữa người gửi và người nhận là 100%. Khi suy giảm ảnh hưởng tới người gửi và người nhận, PDR giảm xuống 0%. 18 KẾT LUẬN Mô phỏng mạng là lĩnh vực hiện nay đang ngày càng được sử dụng rộng rãi trong thiết kế mạng máy tính và mạng viễn thông. Các phần mềm mã nguồn mở, các phần mềm thương mại lần lượt xuất hiện mang đến cho người dùng những công cụ tối ưu nhất phục vụ cho mục đích, công việc của mình. Sau một thời gian nghiên cứu, thực hiện đề tài có thể rút ra một số kết luận sau: - Trình bày tổng quan về các phương pháp mô hình hóa và một số phương pháp mô phỏng được sử dụng hiện nay. - Giới thiệu một số phần mềm mô phỏng mạng hiện đang được sử dụng. - So sánh hiệu suất của một số phần mềm mô phỏng hiện nay: OPNET, OMNET++, JiST, SimPy và NS-2 về phương pháp thực hiện mô phỏng, hiệu suất thực hiện, thời gian chạy mô phỏng và nhu cầu sử dụng bộ nhớ khi thực hiện mô phỏng. - Tổng quan về cấu trúc của phần mềm mô phỏng NS-3. Trình bày các chức năng, cấu trúc của các lớp trong ns-3 - Ứng dụng phần mềm mô phỏng NS-3 vào thực hiện một số mô phỏng 19 KIẾN NGHỊ VÀ HƯỚNG NGHIÊN CỨU TIẾP I. Kiến nghị Với mong muốn sau khi nghiên cứu, thực hiện đề tài này sẽ góp phần hỗ trợ việc học các môn học về mạng máy tính và truyền thông tại trường Đại học Công Nghiệp Việt Hung. Tác giả kiến nghị với ban giám hiệu nhà trường và các cấp có thẩm quyền triển khai hiệu quả các vấn đề sau: - Vận dụng các phần mềm mô phỏng vào dạy học chuyên ngành “Quản trị mạng” tại trường để nâng cao chất lượng dạy học. - Lập kế hoạch tập huấn, bồi dưỡng, tạo điều kiện cho đội ngũ giáo viên tiếp cận và đưa vào nghiên cứu và sử dụng các phần mềm mã nguồn mở. - Khuyến khích giáo viên sử dụng các công cụ mô phỏng bài giảng, để học sinh quan sát trực quan và cũng là để giải quyết vấn đề thiếu phương tiện dạy học. II. Hướng nghiên cứu tiếp Luận văn có thể được phát triển tiếp theo một số hướng: - Phát triển thêm các module của phần mềm mô phỏng mang NS-3. - Vận dụng các chức năng đã có của ns-3 để đánh giá năng lực mạng của các hệ thống lớn.
- Xem thêm -