Chương 4

Màu nền
Font chữ
Font size
Chiều cao dòng

Chương 4: Mô phỏng sự kiện rời rạc trong các hệ thống máy tính và truyền thông

Tác giả: Alfred Hartmann và Herb Schwetman

Dịch thuật: Nguyễn Quang Huy, Nguyễn Hoàng Minh Phúc, Nguyễn Thanh Hải

Biên tập: Nguyễn Anh Tôn

4.1 Giới thiệu

Trong chương này chúng ta sẽ thảo luận về những kỹ thuật được sử dụng để xây dựng các chương trình mô phỏng sự kiện rời rạc cho các hệ thống máy tính và truyền thông. Trong khi các phương pháp phân tích như lý thuyết hàng đợi đôi khi được dùng (Lazowska , 1984) và có thể cho ta những sự hiểu biết có giá trị, phạm vi của chúng bị giới hạn bởi những vấn đề, mà ở đó chỉ có các phương pháp dùng phép phân tích giải pháp mới khả thi. Mô phỏng dựa trên máy tính được ứng dụng khá rộng rãi, với tiện ích của các gói phần mềm mô phỏng cùng sự tăng trưởng nhanh chóng của khả năng tính toán phí tổn thấp đến mỗi máy tính, việc phân tích dựa trên mô phỏng đang ngày càng có vị trí quan trọng. Ngày nay, hầu hết những nhà thiết kế hệ thống máy tính và truyền thông đều thân thuộc với ngôn ngữ lập trình C/C++ và khái niệm về các quá trình tính toán. Điều này khiến việc mô phỏng trên C/C++ dựa vào các quá trình trở thành một lựa chọn tiện ích và tự nhiên cho rất nhiều những dự án kiểu mẫu.

4.2 Các khái niệm cơ bản

Một mạng máy tính hay truyền thông bao gồm một tập hợp các nguồn tài nguyên. Những thực thể (ví dụ như những công việc, các chương trình, các nhiệm vụ, giao dịch, thông điệp, v.v.) cạnh tranh về quyền sử dụng các nguồn tài nguyên này. Các hình thái của những hệ thống này sỡ hữu, ít nhất là ở mức độ nào đó, những cấu trúc đại diện cho cả những nguồn tài nguyên và những thực thể. Hầu hết bất kỳ kiểu mô phỏng của bất kỳ loại hệ thống nào cũng có cấu trúc tương đồng. Trong chương này chúng ta sẽ khảo sát xem những sản phẩm tạo nên các mạng máy tính và truyền thông điển hình khác biệt như thế nào so với những kiểu mô phỏng của các hệ thống khác loại.

4.2.1 Những mục tiêu

Mục tiêu chính của tất cả các dự án hệ thống điển hình là cho ra những sự đánh giá về hiệu suất của hệ thống. Đối với các hệ thống máy tính, thông số đo lường quan trọng nhất cần đạt được là thời gian đáp ứng nhiệm vụ. Còn với những mạng truyền thông, nó lại là thời gian tiềm tàng của thông điệp. Vì thế mục đích của nhiều dự án là đưa ra những sự đánh giá chính xác về các thông số đo lường. Những mục tiêu khác bao gồm việc cung cấp cái nhìn rõ ràng về hoạt động của hệ thống và việc hướng dẫn để giảm thiểu sự tác động của những đường giới hạn đáp ứng.

4.2.2 Các nguồn tài nguyên và những thực thể

Như đã đề cập ở trên, các mô hình mô phỏng chủ yếu bao gồm những thực thể (các quá trình, những khách hàng, các thông điệp, những giao dịch, v.v.) và những nguồn tài nguyên (bộ vi xử lý, bộ nhớ, bus đường truyền, các liên kết giao tiếp, v.v).

Trong các mô hình này, có một vài kiểu thực thể khác nhau mà cũng có thế có các mẫu đa dạng của từng kiểu thực thể, chúng hoạt động ở những điểm trùng nhau và khác nhau trong thời điểm được mô phỏng.Trong nhiều trường hợp, những thực thể đó đang cạnh tranh để giành được một số nguồn tài nguyên của mô hình hệ thống. Ví dụ, trong mô hình hệ thống máy tính, một vài nhiệm vụ mô phỏng có thể cạnh tranh nguồn tài nguyên của CPU.

Tương tự như vậy, có rất nhiều kiểu tài nguyên trong một mô hình hệ thống. Chúng có thể được chia ra làm 2 loại chính : (1) các nguồn chủ động và (2) các nguồn bị động. Nét đặc thù của chúng phụ thuộc vào việc những kiểu thực thể làm gì sau khi nắm giữ việc truy cập vào một thành phần của nguồn tài nguyên. Một thành phần của một nguồn tài nguyên chủ động thường được dùng hoặc bị nắm giữ trong một khoảng thời gian nhất định và sau đó được giải phóng. Còn một nguồn tài nguyên bị động thì bị nắm giữ bởi một thực thể; lúc này thực thể xử lý để đáp ứng các hoạt động khác, bao gồm cả việc giành lấy truy cập đến các nguồn tài nguyên khác.

Những ví dụ về các nguồn tài nguyên chủ động trong một hệ thống máy tính bao gồm các bộ vi xử lý trung tâm, ổ đĩa cứng, và các bộ điều khiển. Những ví dụ về nguồn tài nguyên thụ động bao gồm bộ nhớ chính và các bus đường truyền. Trong một mạng truyền thông, nếu các bộ vi xử lý thông điệp và các đường truyền liên nút mạng có thể được xem như là các nguồn tài nguyên chủ động, các bộ đệm sẽ là những ví dụ về nguồn tài nguyên bị động.

Các thực thể của các mô hình mạng này phụ thuộc vào các cấp độ của mô hình. Với mô hình mạng mức cao của một hệ thống máy tính, các thực thể có thể là các chương trình hoặc là các giao dịch. Trong mô hình mạng truyền thông, các thực thể đó có thể là những thông điệp. Đối với mô hình hệ thống máy tính ở mức thấp, những thành phần có thể là những chỉ dẫn tính toán độc lập, các yêu cầu xuất nhập dữ liệu, và sự truyền dữ liệu đến và đi từ bộ nhớ chính. Ở một mô hình mức thấp hơn của mạng truyền thông, các thực thể có thể là các gói hoặc tế bào dữ liệu.

Tải làm việc

Mỗi mô hình hệ thống được đặc trưng bởi một mức tải làm việc của nó. Ở đây tải làm việc đề cập đến trình tự các yêu cầu của các thực thể đối với các nguồn tài nguyên của hệ thống. Việc đạt được một đặc tính chính xác về tải làm việc của hệ thống là một trong những bước quan trọng nhất để hướng đến việc xây dựng một mô hình mạng hữu ích và chính xác. Với các hệ thống máy tính, nhiệm vụ này, trong một vài trường hợp nào đó, trở nên đơn giản hơn bởi sự có mặt của những công cụ hệ thống có khả năng tự động thu thập các dữ liệu cần thiết. Ví dụ, nếu các thực thể của mô hình đang giao dịch trực tuyến, thì bộ giám sát giao dịch có thể giữ các biên bản giao dịch nhằm sử dụng để xây dựng một đặc tính dòng giao dịch đầu vào. Một cách tương tự, trong một mạng máy tính, đó là các biên bản thông điệp của các nút mạng để xây dựng nên các bản trích ngang của những luồng thông điệp trong mạng.

Như với hầu hết các mô hình mạng, việc có được một đặc tính chính xác về tải làm việc ứng với các nhu cầu cho các nguồn tài nguyên của hệ thống là cần thiết. Với các hệ thống máy tính, điều này có thể gặp phải một số những khó khăn. Ví dụ, một đầu vào phân tích cho một mô hình có thể là sự phân bổ thời gian dịch vụ tại một ổ đĩa, nhưng gói tính toán hệ thống có thể báo cáo các thời điểm đáp ứng tại ổ này (và thời điểm đáp ứng hữu ích tại ổ đĩa sẽ có thể là một đầu ra của mô hình). Tương tự, gói tính toán có thể báo cáo các ký tự trên hướng truyền đến một ổ đĩa, nhưng cũng khó để tìm được sự tương quan giữa số lượng các ký tự đã truyền với thời gian đáp ứng.

Một cách điển hình, những gì được yêu cầu đối với một mô hình của hệ thống máy tính là một bản mô tả sơ lược các kiểu công việc hay các nhiệm vụ được mô hình hoá. Bản mô tả này sẽ bao gồm một sự phân tầng của các nhiệm vụ theo các lớp khác nhau, và sau đó ứng với từng lớp là một bản tóm tắt các yêu cầu dịch vụ đối với các nguồn tài nguyên khác nhau của hệ thống. Ví dụ, một tải làm việc của một hệ thống xử lý giao dịch trực tuyến có thể được phân loại theo các kiểu giao dịch khác nhau đã và sẽ được đệ trình, và sau đó ứng với mỗi kiểu giao dịch, sẽ lựa chọn các thông tin sau:

Số lượng các giao dịch của mỗi kiểu

Lượng thời gian xử lý trên một giao dịch

Số lượng các truy cập ổ đĩa trên một giao dịch

Lượng dữ liệu đã được gởi lại cho người yêu cầu trên một giao dịch

Với một mạng truyền thông, đặc tính tải làm việc có thể bao gồm các kiểu thông tin sau:

Số lượng các thông điệp đã tạo ra tại mỗi nút mạng

Sự phân bổ chiều dài thông điệp

Thông tin về điểm đến của mỗi thông điệp (ví dụ, khoảng cách đến đích)

Tỷ lệ các thông điệp yêu cầu một sự hồi âm Kết quả cuối cùng của đặc tính tải làm việc này là một tập các giá trị tham số mà có thể được yêu cầu để mô hình hoá một cách chính xác tải làm việc trong mô hình.

Đầu ra: Sự đo lường khả năng đáp ứng

Như đã đề cập ở trên, những mô hình hệ thống thường được sử dụng để đạt được các đánh giá về thời gian đáp ứng trung bình của hệ thống ứng với các thành phần của tải làm việc. Một cách tương tự, trong các mô hình mạng, những đánh giá về độ trễ (latency) trung bình của thông điệp và/ hoặc băng thông đã được phân phối đều được quan tâm. Ở đây, thời gian đáp ứng là thời gian khi một yêu cầu dịch vụ được tạo ra cho đến khi yêu cầu được thực hiện . Độ trễ(latency) ở đây được dùng cho thời gian đáp ứng trong một hệ thống phụ xuất nhập, một hệ thống bộ nhớ phụ, hoặc trong một mạng truyền thông. Những thời gian đáp ứng (latencies) có đơn vị là thời gian trên yêu cầu. Nghịch đảo của thời gian đáp ứng là tỷ lệ dung lượng (ví dụ như các giao dịch trên một giây), nghịch đảo của độ trễ(latency) là băng thông (ví dụ Mbytes/s). Tất cả các tham số trên thường là những đầu ra của các mô hình mô phỏng.

Nếu một mô hình đang được dùng để có được cái nhìn tường tận về những vấn đề hiệu suất (nơi mà những vấn đề hiệu suất thường được thể hiện bởi những khoảng thời gian đáp ứng hoặc độ trễ dài không thể chấp nhận được), càng nhiều dữ liệu đầu ra được yêu cầu để xác định chính xác nguyên nhân của vấn đề. Những dữ liệu thêm vào này thường chứa các bảng thống kê về thời gian được dùng tại các nguồn tài nguyên độc lập của mô hình hệ thống hoặc là thời gian được dùng trong các hoạt động độc lập để hoàn thành một thành phần tải làm việc. Trong một số trường hợp, việc chèn thêm các thành phần đặc biệt là cần thiết để thu được các dữ liệu cần thiết để xác định nguyên nhân của các vấn đề hiệu suất.

4.2.5 Tính 2 mặt của các mô hình

Các mô hình được định hướng theo tiến trình của các hệ thống truyền thông và máy tính có sự phân công các tiến trình riêng biệt cho các thực thể mô phỏng. Đối với việc mô phỏng hệ thống máy tính, các quá trình được giao việc cho các tải làm việc (ví dụ để đặc trưng cho các quá trình của người dùng và các ứng dụng), và các quá trình này yêu cầu và giải phóng tài nguyên hệ thống khi nó được hoàn thành. Trong mô phỏng hệ thống truyền thông, các quá trình lại được giao việc cho các nguồn tài nguyên (ví dụ như các chuyển mạch hoặc là các kênh), và các quá trình này nắm giữ các thông điệp tải làm việc trong thời gian còn hoạt động. Những sự phân công quá trình này nhằm giữ cho số lượng quá trình trong một phép mô phỏng ở mức hợp lý, kể từ khi hệ thống mô phỏng gặp phải bối cảnh chuyển mạch quá tải với quá nhiều quá trình. Một lẽ thông thường, nó sẽ giới hạn mô hình về mỗi thông điệp như là một quá trình cạnh tranh về nguồn tài nguyên hệ thống truyền thông, do số lượng quá lớn của chúng.

Những khía cạnh khác nhau của các mô hình nhận thức làm nên tính 2 mặt của mô hình giữa các mô hình hệ thống máy tính và các mô hình hệ thống truyền thông.

Thực thể mô phỏng

Hệ thống máy tính

Hệ thống truyền thông

Mục tải làm việc

Quá trình

Token (cấu trúc)

Mục nguồn tài nguyên

Cấu trúc

Quá trình

Tính hai mặt này có thể dẫn đến một sự khác nhau trong tiến độ giữa mô phỏng hệ thống máy tính và hệ thống truyền thông, và có lẽ khác nhau về cả các công cụ mô phỏng.

Các dịch vụ hàng đợi tương thích với sự giành lấy các nguồn tài nguyên cạnh tranh trong một mô phỏng hệ thống máy tính có thể hoặc không thoả mãn những yêu cầu của thông điệp tải làm việc thực hiện trong một mô phỏng hệ thống truyền thông.FCFS (First come, first served) là một quy luật dịch vụ chung cho cả hệ thống máy tính và truyền thông, trong khi quy luật lên lịch của bộ xử lý Round-Robin sẽ gần như chắc chắn không ứng dụng được cho các mô phỏng hệ thống truyền thông. Việc mô phỏng hệ thống truyền thông có thể cần đến một dải rộng các trình tự quản lý bộ đệm khác nhau mà có thể không được phản ảnh trong việc lựa chọn những trình tự cấp phát nguồn tài nguyên hiện hữu trong các tiện ích mô phỏng của hệ thống máy tính. Ví dụ, trình tự quản lý bộ đệm “leaky bucket” (Bae và Suda, 1991) được dùng cho bộ điều khiển nguồn tài nguyên mạng ATM là duy nhất trong truyền thông, trong khi những phương pháp kết hợp thời hạn và sắp đặt các thông điệp tế bào theo trình tự ưu tiên dùng cho việc giảm thiểu tắc nghẽn trong mạng ATM.

4.2.6 Những mô hình hướng đối tượng của các hệ thống

Chúng ta có thể cho rằng việc thiết kế phần mềm hướng đối tượng dựa trên các quy tắc sau:

Sự tóm lược(Encapsulation): khả năng kết nối dữ liệu và các hàm để tối ưu dữ liệu về những dạng tóm lược

Sự kế thừa(Inheritance): khả năng rút ra các kiểu phụ từ các kiểu tóm lược đang tồn tại

Sự đa dạng(Polymorphism): khả năng cho phép các hàm kết hợp khéo léo các đối tượng từ các kiểu khác nhau mà chắc chắn có chia xẻ mối quan hệ tương quan cùng kiểu.

Những ưu điểm của phương pháp này cung cấp tất cả các kiểu ứng dụng phát triển phần mềm cũng như phát triển việc mô phỏng. Các thực thể mô phỏng có thể được gói gọn trong các đối tượng, các lớp của chúng có thể được nhóm thành các lớp đối tượng cơ bản và được phân biệt việc sử dụng tính kế thừa vào bên trong các lớp con tuỳ biến, và các hàm hình thái có thể được định nghĩa một cách hợp lý như các phương pháp của các lớp đối tượng. Tất cả những kỹ thuật hướng đối tượng đều nhằm phục vụ cho việc tổ chức và đơn giản hoá công tác phát triển mô hình mô phỏng.

Các hệ thống phát triển mô phỏng và các ngôn ngữ lập trình cung cấp các lớp cơ bản được định nghĩa trước cho các kiểu chung của các quy trình và nguồn tài nguyên mô phỏng. Chúng có thể được kế thừa bởi các lớp con được định nghĩa mới trong một sự nỗ lực mô phỏng đặc biệt. Các hàm đa dạng có thể được định nghĩa trước tạo nên sự kết hợp khéo léo đúng chuẩn trên các đối tượng người dùng, mà cụ thể là các ví dụ về các lớp xuất phát từ nguồn lớp cơ bản.

4.2.7 Trạng thái giả song song trong các mô hình hệ thống

Mô phỏng hướng theo quá trình sử dụng đa quá trình để mô phỏng các hoạt động song song trong hệ thống được mô phỏng. Tuy nhiên, việc thực thi phép mô phỏng này có thể được chèn một cách tuần tự vào một bộ xử lý đơn lẻ. Việc chèn liên kết nhìn chung được thực hiện một cách tiền định để mà các kết quả được lặp lại từ phép mô phỏng này sang phép mô phỏng khác. Ví như các dạng trạng thái song song đã được đề cập đến như trạng thái giả song song, để phân biệt chúng với trạng thái song song thật, là không tuần tự và thường không tiền định. Trạng thái song song thật có thể được khai thác phía dưới môi trường mô phỏng giả song song, để tăng tốc mô phỏng, nhưng điều này rõ ràng trong việc thiết kế mô phỏng. Trạng thái giả song song không rõ ràng trong việc thiết kế mô phỏng nhưng cũng là một thành phần không thể thiếu. Lưu ý, một vài ứng dụng thành công của các kỹ thuật mô phỏng song song đã bao gồm các mô hình của các hệ thống truyền thông lớn.

Trạng thái giả song song phải cung cấp các tiện ích cho các quá trình mô phỏng ở dạng khối (tức là việc chờ đợi các phép mô phỏng xong, các nguồn tài nguyên sẵn sàng trở lại, hoặc một sự kiện mô phỏng xuất hiện). Tại một thời điểm hợp lý trong thời gian mô phỏng rời rạc, các quá trình phải được tháo rời và tái lập lại việc mô phỏng. Các đa quá trình cần một vài dạng truyền thông liên quá trình được đồng bộ, mà có thể được cung cấp bởi các sự kiện bổ sung các lớp đồng bộ, các tín hiệu, các hộp thư, các bản mã morse.v.v.

4.3 Các hệ thống máy tính

Một mô hình mô phỏng của hệ thống máy tính (MacDougall, 1987) phải có được các thành phần cần thiết của hệ thống thực. Chúng bao gồm (1) các thành phần tải làm việc, (2) các nguồn tài nguyên hệ thống và (3) các luật hệ thống ( có thể chi phối việc cung cấp các nguồn tài nguyên cho các thành phần của tải làm việc). Trong phần này chúng ta sẽ thảo luận về các mục liên quan đến việc mô hình hoá các thành phần trên (Jain, 1991).

4.3.1 Tải làm việc là gì?

Các hệ thống máy tính tồn tại các thành phần xử lý của tải làm việc, nơi mà phụ thuộc cách hệ thống được mô hình hoá, một thành phần tải làm việc có thể là: (1) công việc, chương trình, hay nhiệm vụ; (2) giao dịch hoặc nghi vấn; hay (3) các yêu cầu vào/ra hoặc các yêu cầu về một thứ gì đó trong bộ nhớ chính. Mỗi một loại là một chuỗi các yêu cầu về các dịch vụ sử dụng tài nguyên của hệ thống. Ví dụ, cho rằng một công việc hay nhiệm vụ là thành phần của tải làm việc. Một công việc (một chương trình) là một chuỗi lần lượt các yêu cầu về thời gian của một CPU (sự bùng lên của CPU) và các tác vụ vào/ra (sự chuyển giao các khối dữ liệu vào và ra từ các thiết bị I/O như các ổ đĩa). Thêm vào đó, công việc sẽ yêu cầu việc sử dụng các khối của bộ nhớ chính. Trong một số hệ thống hiện đại, nhiều công việc sẽ thực hiện cùng một lúc, vì thế có sự tranh chấp về nguồn tài nguyên. Đáp ứng hệ thống (các thời gian đáp ứng công việc) phản ảnh khả năng của hệ thống có thể thoả mãn các yêu cầu đối lập cho việc sử dụng nguồn tài nguyên.

4.3.2 Mô hình hoá các thành phần hệ thống

Các hệ thống máy tính bao gồm phần cứng và phần mềm. Ngoài ra còn có hệ điều hành quản lý việc truy cập vào các thành phần này; nó đại diện cho cơ chế điều khiển nhằm đảm bảo sự chính xác và tính hiệu quả trong hoạt động của hệ thống. Trong một mô hình mô phỏng hệ thống như vậy, tất cả các thành phần quan trọng, cũng như các quy luật điều khiển truy cập vào chúng, phải được đặc tả chính xác nếu muốn đạt được sự đánh giá đúng về đáp ứng của hệ thống.

Các thành phần phần cứng. Phần cứng quan trọng nhất của một hệ thống máy tính là CPU và các thiết bị ngoại vi. Bộ nhớ chính là điểm then chốt cho hoạt động của hệ thống, nhưng trong hầu hết các hệ thống hiện đại, bộ nhớ chính không lớn lắm và thường không phải là thành phần chính để xác định khả năng đáp ứng của hệ thống. Tuy nhiên, việc kết hợp hoạt động của bộ nhớ chính ra vào một mô hình thường không phải là một nhiệm vụ khó. Và một phần quan trọng nữa thường hay bị bỏ qua đó là việc liên nối giữa các phần cứng (gọi là bus), thường được dùng để kiên kết CPU và các thiết bị vào/ra với bộ nhớ chính. Việc mô hình hoá các thành phần phần cứng này là hiển nhiên vì chúng đại diện cho các nguồn tài nguyên tĩnh. Vấn đề ở đây là phải mô hình hoá một cách chính xác các loại truy nhập song song và nối tiếp có thể có đối với tất cả các thành phần trên.

Các thành phần phần mềm. Các thành phần phần mềm có thể khó đặc tả hơn. Ví như, một thành phần phần mềm có thể là một chuỗi dài các hành động và các quy luật hoạt động phức tạp. Thêm vào đó, một số thành phần được cấp bởi một nhà cung cấp thứ 3, và hoạt động nội tại của chúng sẽ không được phơi bày trong các bộ mô hình hoá hệ thống.

Có một lớp của thành phần phần mềm được tìm thấy trong các hệ thống bao gồm tất cả các dịch vụ cung cấp cho các chương trình người dùng. Môt ví dụ là hệ thống quản lý cơ sở dữ liệu (DBMS-database management system). Rất nhiều các ứng dụng trong một hệ thống yêu cầu dịch vụ từ DBMS. Tuy nhiên, cũng có những giới hạn về số lượng những yêu cầu mà DBMS có thể nắm giữ một cách đồng thời. Cũng chính vì thế một server có thể bị giới hạn về khả năng đáp ứng các công việc mà phải đòi hỏi truy cập dữ liệu thông qua DBMS. Các thành phần phần mềm khác có thể tác động đến khả năng đáp ứng trong một hệ thống máy tính bao gồm các bộ giám sát quá trình giao dịch, các hệ thống truy cập mạng và các server tập tin từ xa.

Nếu một thành phần mạng được xác định có thể là một nút thắt cổ chai về đáp ứng trong một hệ thống sẽ được mô hình hoá, thì một nổ lực đặc biệt có thể được yêu cầu để đảm bảo rằng một biểu diễn đặc trưng của các thành phần là có giá trị. Ví dụ, nếu một DBMS thương mại là một thành phần quan trọng trong một hệ thống, việc mô hình hệ thống có thể đòi hỏi một mô hình mô phỏng của DBMS. Để kết hợp thành phần này vào hệ thống, bộ mô hình hoá phải thực hiện các bước sau:

Thu thập thông tin thêm từ các nhà cung cấp hoặc từ các nguồn khác

Thực hiện một vài nghiên cứu đo lường hộp đen, để suy ra các đặc tính của DBMS

Đạt được một mô hình mô phỏng tiền tiền cấu trúc của DBMS.

Một khía cạnh khác của các thành phần phần mềm trong một mô hình là sự quan trọng của các tập quy luật về quản lý và điều khiển được cung cấp bởi các thành phần khác. Các quy luật và quy tắc có trong hệ điều hành (có nhiệm vụ điều khiển hoạt động của toàn bộ hệ thống) cũng như có trong các thành phần đã đề cập trên. Chúng đặc tả sự ưu tiên, các quy tắc lên lịch, quản lý các nguồn tài nguyên, và các quy tắc thoả thuận với sự xung đột và quá tải (ví dụ, chiều dài hàng đợi tối đa tại các thiết bị vào/ra). Phụ thuộc vào mức độ chi tiết trong mô hình, các quy luật này có thể là một thành phần quan trọng trong sự phát triển của một mô hình hệ thống chính xác.

4.3.3 Hoạt động không đồng bộ

Nhằm cải tiến việc sử dụng các nguồn tài nguyên của hệ thống, các hệ thống hiện đại thường khuyến khích kiểu không đồng bộ. Nguyên tắc cơ bản là một chương trình có thể nhập vào các hoạt động vào/ra một cách song song với các ứng dụng liên tục của CPU. Một mô hình hệ thống phải đạt được kiểu hoạt động song song không đồng bộ này. Một bộ mô phỏng hướng quá trình cung cấp một nền tảng cho các mô hình thực thi mà trong đó các thành phần chính có thể hoạt động một cách không đồng bộ.

4.3.4 Những sự cân bằng: Chi tiết so với giá cả

Mục đích của một mô hình hệ thống, nói một cách đơn giản nhất, là để tạo ra các khoảng thời gian đáp ứng cho các thành phần của tải làm việc. Những khoảng thời gian này có thể sau đó được sử dụng để cung cấp sự ước tính cần thiết để tạo ra những sự phán đoán về đáp ứng của hệ thống.

Một khoảng thời gian đáp ứng tiêu biểu bao gồm một hay nhiều khoảng con, mà trong đó mỗi khoảng con đều có một khoảng trễ và một khoảng phục vụ tại một vài nguồn tài nguyên. Một hệ thống ở mức cao chỉ có một vài nguồn tài nguyên, và kết quả là khoảng thời gian đáp ứng chỉ có một vài khoảng con. Ví như một mô hình có thể thực thi rất nhanh , nhưng kết quả ước lượng của các khoảng thời gian đáp ứng lại không chính xác.

Nhằm nâng cao tính chính xác, các nguồn tài nguyên ở mức cao có thể được định nghĩa lại cho phù hợp với những sự lựa chọn các nguồn tài nguyên mức thấp hơn. Khi làm được điều này, những gì trước đây là một khoảng thời gian phục vụ đơn lẻ tại một nguồn tài nguyên nay là một chuỗi các khoảng thời gian phục vụ và trễ cho những nguồn tài nguyên thấp hơn. Điều thu được là một đặc trưng chính xác hơn về tài nguyên; giá trị ở đây là sự gia tăng về số lượng các sự kiện được mô phỏng, mà sẽ chạy lâu hơn với mô hình cũ.

Một ví dụ, trong một mô hình cấp cao, một hoạt động vào_ra có thể được mô hình hoá như là một khoảng thời gian phục vụ đơn lẻ. Trong mô hình này nó có thể là một tài nguyên vào/ra đơn lẻ, và là các chương trình lấy chúng, một cách liên tiếp, phục vụ tại tài nguyên. Thiết bị đầu vào/đầu ra thực tế và các thành phần kết nối hỗ trợ thì phức tạp hơn; việc nắm được rõ hơn sự phức tạp này trong một mô hình có thể cho ta một sự ước lượng tốt hơn về thời gian được yêu cầu bởi một chương trình để hoàn thành các yêu cầu vào/ra của nó. Một mô hình phức tạp hơn nữa có thể có 1 bus, một bộ điều khiển, và rất nhiều ổ đĩa. Mô hình này có thể xử lý nhiều yêu cầu song song và có thể cho những ước lượng chính xác về thời gian đáp ứng tại nguồn tài nguyên vào/ra.

Tất cả các mô hình hệ thống đặc trưng cho sự cân bằng giữa sự gia tăng các mức độ chi tiết và sự gia tăng tính thực thi. Các hệ thống tốt hướng đến một sự cân bằng giữa những mục đích trái ngược nhau.

4.3.5 Những kết quả của mô hình

Một mô hình của một hệ thống có thể được dùng theo 2 cách riêng biệt [LaKe91]: (1) cung cấp các ước lượng về các giá trị đầu ra cho hoạt động của hệ thống trong “trạng thái vững vàng” và (2) cung cấp các ước lượng về các giá trị đầu ra cho hoạt động của hệ thống thông qua một khoảng thời gian được đặc tả ( ví dụ cho một phép dịch 8 giờ). Những vấn đề về việc cung cấp các ước lương chính xác trong cả hai trường hợp đều như nhau, cũng như là các kỹ thuật để thoả mãn những vấn đề đó (Law and Kelton, 1991).

Các mô hình của những hệ thống máy tính có thể đưa ra thêm một vài vấn đề về nhiệm vụ cung cấp các ước lượng đáng tin về các biến đầu ra. Những điều này xuất phát từ thực tế rằng các hệ thống máy tính thật có thể lớn hơn và phức tạp hơn rất nhiều. Thêm vào đó, một vài thành phần quan trọng là không có thể nhìn thấy sẵn, và việc tạo ra các đặc trưng chính xác cho những cách hoạt động là rất khó. Vì thế việc xác nhận về cấu trúc và hoạt động được đặc tả trong một mô hình có thể là một tín hiệu ý nghĩa về sự phát triển của nó.

Trong một số trường hợp có thể đạt được những kết quả đầu ra cho việc kiểm tra tải làm việc thường dùng để tham số hoá mô hình của tải làm việc. Trong những trường hợp này, các kết quả từ mô hình có thể được xác nhận hoàn toàn. Trong những trường hợp khác, các nhà phát triển mô hình có thể bị bắt buộc phải xem lại thiết kế và việc bổ sung lại mô hình, nhằm kiểm tra tính xác thực của các kết quả.

4.4. Hệ thống truyền thông

Mọi dự án nhằm phát triển mô hình mô phỏng hệ thống truyền thông có thể được phân chia theo hai loại hình công việc chính: (1) xây dựng mô hình tải làm việc và (2) xây dựng mô hình hệ thống mạng.

4.4.1 Tải làm việc là gì?

Về cơ bản, mô hình tải làm việc của hệ thống truyền thông là sự mô tả về lưu lượng truyền tin trong một hệ thống truyền thông. Việc mô tả này có thể rõ ràng nếu dựa vào những nghiên cứu thông qua việc theo dõi một hệ thống thực bằng thiết bị đo, hoặc có khi chỉ mang tính thống kê nếu ngẫu nhiên đưa ra kết quả từ một nhóm các hàm phân phối xác suất. Dù ở dạng nào thì việc mô tả tải làm việc cũng phải biểu thị chính xác lưu lượng truyền tin trong một hệ thống xác định.

Việc xác nhận tải làm việc là quá trình đảm bảo được tính chính xác hợp lí trong việc lập phần mô tả tải. Thậm chí, những mô hình hệ thống mạng tin cậy nhất cũng không đem lại kết quả gì nếu chúng được thực hiện với tải làm việc không hợp lệ “nạp vào, đưa ra”. Việc xây dựng và xác nhận tải làm việc là một phần rất quan trọng trong việc xây dựng mô hình mô phỏng bất kì hệ thống truyền thông nào.

Mô hình trình điều khiên tải làm việc đưa thông tin tới hệ thống truyền thông nhằm phân phối chúng trong hệ thống mạng. Vấn đề cần quan tâm là lưu lượng thông tin được truyền như thế nào trong không gian và thời gian mạng. Một lượng thông tin có thể là một phần của luồng thông tin lớn hơn với một điểm nguồn được xác định trước và một hay nhiều điểm đích. Thông tin được truyền tới chỉ 1 điểm đích được gọi “ unicast traffic” trong khi thông tin được truyền tới nhiều điểm đích được gọi “ multicast traffic”, còn nếu truyền tới tất cả các điểm đích thì gọi là “broadcast traffic”. Khi được gửi tới một hay nhiều điểm đích, một thông tin có thể ở hình thức là 1 mẩu thông tin, có thể được chia nhỏ hay được kết hợp thêm với các thông tin khác, cũng có thể những mẩu thông tin khác nhau được kết hợp hay phân tách nhiều lần trong quá trình truyền tin trong hệ thống.

Những gì xảy ra với 1 thông tin sau khi nó được truyền vào trong một hệ thống chính là công việc của mô hình hệ thống. Mô hình hệ thống mô tả loại hình thông tin cũng như thời gian tại thời điểm chúng đi vào hệ thống. Với cách hiểu như vậy, tải làm việc sẽ chịu trách nhiệm cung cấp sự kích thích, và hệ thống sẽ đưa ra phản hồi. Một phần của thiết kế quá trình mô phỏng là xác định loại hình kích thích phù hợp nhất, qua đó sẽ tạo tra sự phản hồi tương ứng.

Bởi vì các hệ thống mạng thực tế thường được cấu tạo theo các lớp cho nên đặc điểm của tải làm việc sẽ bị ảnh hưởng nhiều bởi lớp được chọn cho quá trình mô phỏng trực tiếp. Ví dụ, nếu chỉ nghiên cứu các mối liên kết vật lý thì việc kích thích sẽ được biểu hiện ở mức rất thấp của từng phân lớp (ví dụ như đơn vị dữ liệu vật lí) , trong khi đó, nếu nghiên cứu việc hoạt động của một cơ sở dữ liệu phân bố hoạt động trong hệ thống đó, thì việc kích thích sẽ ở mức cao (truy vấn cơ sở dữ liệu). Nếu lớp được chọn cho việc mô phỏng càng cao, ta càng phải biểu diễn nhiều phân lớp trong mô hình mạng, do đó, việc lựa chọn phân lớp sẽ ảnh hưởng lớn tới việc thực hiện toàn bộ mô hình. Nếu ta chỉ tính toán đến các phân lớp thấp hơn trên lý thuyết, cần phải có kinh nghiệm để đưa ra quyết định chi tiết nào nên bỏ và phần nào nên xuất hiện trong mô hình.

Đơn vị dữ liệu logic có thể lớn hơn nhiều so với đơn vị dữ liệu vật lý được truyền qua đường liên kết, tuy nhiên cũng có thể xảy ra điều ngược lại. Lấy ví dụ về việc dữ liệu được truyền qua Ethernet và ATM: gói dữ liệu được truyền qua Ethernet có thể đạt kích thước hàng Kilobytes trong khi dữ liệu qua ATM chỉ một vài chục bytes. Mặt khác, khi so sánh lượng dữ liệu qua ATM và SONET ta thấy rằng cấu trúc SONET có thể lưu được một số lượng lớn các tế bào ATM. Nếu số lượng thông tin có thể giảm được 2 bậc về độ lớn thì điều đó rất được mong chờ nếu biết rằng việc giảm độ lớn như vậy có thể được thực hiện mà không làm mất đi sự chính xác trong quá trình mô phỏng. Việc xác định sự điều chỉnh này có thể phụ thuộc vào thuộc tính hoạt động nào của mạng là quan trọng để tính toán, do đó thật khó để đưa ra những quy luật cụ thể.

Mô hình tải làm việc tiếp nhận thông tin vào hệ thống mạng và mỗi thông tin đều phải có các thuộc tính chủ yếu sau:

Thời gian bắt đầu

Điểm bắt đầu

Điểm kết thúc

Đặc điểm thông tin (kích thước, quyền ưu tiên.v.v.v)

Thông thường, thời gian xuất phát ( và cung có thể là địa chỉ của điểm kết thúc) của lượng thông tin tiếp nhận được tính toán từ các hàm phân phối xác suất. Đúng hơn là khoảng thời gian giữa các điểm xuất phát thông tin này tại một thời điểm xác định trước được tính toán bằng các hàm phân phối xác suất. Việc lựa chọn chính xác sự phân bố giữa các khoảng thời gian xuất phát là một mặt quan trọng của việc xác nhận tải làm việc.

Bởi vì hệ thống truyền thông thường được phân tích như là các hệ thống chờ mà hầu hết đều được xử lý toán học với khoảng thời gian phân phối được tính theo hàm mũ. Việc phân phối theo hàm mũ thường được lựa chọn dù nó không hẳn là một sự lựa chọn đúng đắn. Điều này có thể ứng dụng được đối với địa điểm xuất phát thông tin là quá trình Poisson (không có nhớ) tuy nhiên lưu lượng thông tin đa phương tiện đa dạng như giọng nói và chuỗi video được nén lại sẽ chỉ ra các đặc điểm của quá trình Markov ( Theo Bae và Suda 1991). Một quá trình Poisson và quá trình Markov phi Poisson với khoảng thời gian chuyển tiếp trung bình giữa các thông tin có thể mang lại các kết quả rất khác nhau về hoạt động của hệ thống mạng do lưu thông bị nghẽn tại các nút mạng.

4.4.2 Mạng và giao thức mạng

Mô hình mạng là nửa còn lại của vấn đề, nó cùng với mô hình tải cấu tạo nên mô hình của cả hệ thống truyền thông. Mạng thường được thể hiện là các biểu đồ với các nút, và liên kết. các liên kết nhiều điểm hay các bus có thể coi là các liên kết trong các mạng siêu biểu đồ. Thông thường, các nút đầu cuối là các nút nguồn và các nút đích, còn các nút khác là các nút chuyển mạch và nút định tuyến. cấu trúc biểu đồ này trở nên phức tạp hơn khi tính đến cả các giao thức mạng, đăc biệt khi tính đến việc phân lớp phần mềm như trong các cấu trúc mạng ngày nay.

Figure 4.1: Các topology thông thường của mạng lưới

Mô hình tương kết của các nút mạng và liên kết mạng cấu tạo nên topo mạng. viêc thiết kế các topo mạng phức tạp và đặc biệt bao gồm thời gian thiết kế và thời gian mô phỏng có thể sẽ rất đắt, nhưng không phải lúc nào cũng tránh đươc. Các topo mạng đơn giản và bình thường thường thấy được thể hiện trong hình 20.1.

Không cần thiết có sự phân biệt giữa topo mạng logic và topo mạng vật lý. Như ví dụ trong hình 20.2a, một mạng logic vòng có thể được thiết kế như một mạng vật lý vòng, chuỗi tuần tự ( xen kẽ hoặc không xen kẽ) hay mạng sao. Mạng token ring phổ biến thường được xem là mạng hình sao, vì thiết kế vật lý mạng này theo kiểu vòng sẽ cồng kềnh và dễ sai sót.

Sự khác nhau giữa topo vật lý và topo logic có thể có hoặc không có ý nghĩa. Nếu sự trì hoãn tín hiệu truyền là quan trọng thì topo vật lý cần phải được chú ý trong mô hình mạng. ví dụ trong mạng ethernet thiết kế theo kiểu bus, sự tác động của các va chạm nhóm bị ảnh hưởng bởi vị trí tương đối và sự phân tách các nút trên đường truyền và bởi cả quá trì hoãn tín hiệu giữa các đầu nút.

4.4.3 Quy định dịch vụ đối với các bộ nhớ đệm, các kênh và bộ chuyển mạch.

Hoạt động của hệ thống truyền thông có thể bị ảnh hưởng rất lớn bởi việc lựa chọn các quy định dịch vụ. các quy định dịch vụ có thể thay đổi về mức độ đơn giản của việc thực hiện ( phụ thuộc vào việc lựa chọn các công cụ và thư viện) và trong hoạt động tính toán trong thời gian mô phỏng. Việc cân bằng các yếu tố kỹ thuật có thể chống lại việc áp dụng các quy định dịch vụ tối ưu về mặt lý thuyết, hoặc trong thời gian mô phỏng hoặc trong việc thiết kế mạng thực tế.

Figure 4.2: Các topology logic vàtopology vật lý của mạng lưới

Một số quy định dịch vụ phổ biến có thể áp dụng cho các bộ nhớ đệm truyền thông:

First come, first served (FCFS), cũng gọi là First in, first out (FIFO)

Thứ tự ưu tiên, dựa trên việc ưu tiên thông điệp đơn giản hoạc trên các thuộc tính của thông điệp (vd thời gian hình thành hay một số tham số chất lượng dịch vụ (QoS)liên quan đến thông điệp, kênh hay đích)

Thứ tự ngẫu nhiên, có thể là hoàn toàn ngẫu nhiên(phân phối đồng bộ) hoặc thiên về các thuộc tính của thông điệp hoặc thời gian chờ)

Điều quan trọng là FCFS là một trường hợp đặc biệt của thứ tự ưu tiên, quy định này ưu tiên thời gian chờ. Tương tự, thứ tự ưu tiện cũng có thể coi là một trường hợp đăc biệt của thứ tự tiền định, ngược lại với thứ tự ngẫu nhiên. Các kiến trúc sư của hệ thống truyền thông cũng quan tâm đến việc lựa chọn các thứ tự dịch vụ làm tối ưu các trị số mạng. do cả hoạt động của mạng và các chi phí cho mạng đều là các lượng đa chiều, thông số kỹ thuật của một trị số phù hợp không phải đơn giản ( đơn chiều)

Trong một số trường hợp, có một số thứ tự dịch vụ được chứng minh là tối ưu cho một mục tiêu thiết kế nhất định, và thường thì người ta mong muốn mô phỏng được hoạt động của các thứ tự tối ưu và không tối ưu. Điều này đặc biệt đúng nếu như chi phí hay mức độ phức tạp của việc áp dụng thứ tự tối ưu là cao.

Đối với việc quản lý bộ nhớ đệm, chúng ta cần xem xét (1) gửi thông điệp tới bộ nhớ đệm, (2) sự ghi nhớ thông điệp tại bộ nhớ đệm, và (3) sự chuyển thông điệp ra khỏi bộ nhớ đệm (một cách bình thường hoặc không bình thường)

Việc chuyển thông điệp tới bộ nhớ đệm có thể phụ thuộc vào trạng thái hiện tại của bộ nhớ đệm (ví dụ.trọn vẹn hay không chọn vẹn, việc ưu tiên các thông điệp đang trong vùng đêm hay các thông điệp sắp được chuyển đến bộ nhớ đệm, vv) và các thuộc tính của các thông điệp sắp chuyển đến bộ nhớ đệm. Việc ghi nhớ các thông điệp có thể bao gồm việc sắp xếp lại nội dung bộ nhớ đệm dựa trên các tham số động, bao gồm thời gian chờ của các thông điệp đang trong bộ nhớ đệm. việc chuyển thông điệp ra khỏi bộ nhớ đệm có thể xuất hiện một các bình thường như khi thông điệp được thực hiện hoặc bất bình thường như khi thông điệp bị từ chối do quá hạn dịch vụ, quyền ưu tiên của thông điệp, hay bất cứ yếu tố gì.

Thông thường, các bộ nhớ đệm được sử dụng kết hợp với các bộ chuyển mạch để lưu trữ các thông điệp trong quá trình chuyển các thông điệp này từ một kênh đến tới một hoặc nhiều kênh đi. Những điều cản trở và sự phức tạp liên quan đến việc chuyển mạch thông điệp có thể có ảnh hưởng lớn đến chiến lược quản lý bộ nhớ đệm. các bộ nhớ đệm có thể được sử dụng ở các cổng đầu vào(input-bufered switch), các cổng đầu ra( output-bufered switch), cả đầu vào và đầu ra của bộ chuyển mạch, hay ở bất cứ giai đoạn trung gian nào trong chuyển mạch nhiều giai đoạn.

Phụ lục 1: So sánh, đánh giá và lựa chọn chương trình mô phỏng mạng

Tác giả: Tổng hợp từ nhiều nguồn

Dịch thuật: Tô Thành Công, Hà Tất Thành

Biên tập: Vũ Thúy Vân

1. Các tiêu chí đánh giá chương trình mô phỏng mạng.

Cần xem xét các đặc điểm sau đây của các chương trình mô phỏng mạng để lựa chọn được chương trình mô phỏng mạng thích hợp nhất cho các dự án nghiên cứu cá nhân.

Loại mô phỏng được hỗ trợ

Có 3 loại mô phỏng phổ biến: mô phỏng sự kiện rời rạc, mô phỏng theo vết (trace driven) và mô phỏng Monte. Một loại khác là đưa lưu lượng trực tiếp vào chương trình mô phỏng và/hoặc đưa lưu lượng từ một chương trình mô phỏng vào mạng thật. Trên thực tế, các đặc điểm này giống bộ giả lập hơn là mô phỏng.

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ợ trong việc tạo các topo mạng.

Hai loại tạo topo mạng chính là dùng các tập lệnh đặc biệt, hoặc các ngôn ngữ lập cấu hình và giao diện đồ họa. 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.

Hỗ trợ việc tạo và quản lí các profile lưu lượng.

Các chương trình mô phỏng cần các bộ phát dữ liệu tuân theo một vài phân bố cụ thể (ví dụ Poisson hay các phân bố nhận được từ các quan sát thực tế vể lưu lượng ). Một chương trình mô phỏng tốt thường có một hệ thống các bộ phát lưu lượng như vậy.

Mặt khác, cũng cần phải có các công cụ nhằm mô tả sơ lược lưu lượng đã phát và tính toán các con số thống kê cần thiết để đưa ra kết luận

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.

Module cho các giao thức OSI, các mô hình di động và truyền lan sóng vô tuyến

Các module OSI rất đáng chú ý: Các giao thức định tuyến ở lớp mạng, hoạt động ổn định của lớp MAC, lới vật lí và lớp đường truyền (link). Tại lớp ứng dụng hay lớp phiên, có lẽ chỉ cần ứng dụng kiểu FTP là đủ. Tại lớp vận chuyển, cẩn hỗ trợ TCP và UDP.

Sẽ có lợi nếu chương trình mô phỏng có module di động bởi nghiên cứu so sánh sẽ dễ hơn do các nhà nghiên cứu khác hiện cũng đang có xu hướng sử dụng module này. Truyền lan sóng vô tuyến trong các chương trình mô phỏng thường được thực hiện trực tiếp dựa trên các kết quả chuẩn từ các nghiên cứu về điện từ. Một mô hình truyền lan sóng vô tuyến chính xác cần xem xét đến yếu tố hình thái và những đặc tính vật lý của môi trường.

Các vấn đề về 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 thực sự mở mà trong đó, các thành phần có thể dễ dàng chuyển đổi giữa hai trạng thái bật tắt, các mô hình hiện thời có thể được thay thế hay chỉnh sửa, và kiến trúc module này có thể bổ sung cả các mô hình mới.

Khả năng mở rộng cũng là một vấn đề quan trọng. Về nguyên lí, tất cả các chương trình mô phỏng đều cho phép thêm nhiều nút mạng để tăng tải tính toán của các mẫu lưu lượng và các mặt động của mạng (các thành phần di động, các nút mạng đang xuất hiện/ biến mất, các đường bị lỗi vân vân).

Tuy nhiên, trong thực tế, chỉ một vài chương trình mô phỏng là cân đối tốt giữa các chỉ tiêu trên, do đó, cần nhận ra các hạn chế của các chương trình mô phỏng này.

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à do đó được coi là một ưu điểm.

Cuối cùng, 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.

Loại bản quyền phần mềm

Rõ ràng là theo lí thuyết thì các chương trình mô phỏng miễn phí luôn tiện lợi hơn. Tuy nhiên cũng cần xem xét, lựa chọn các chương trình mô phỏng thương mại nếu chúng có nhiều ưu điểm chiến lược hơn các chương trình mô phỏng miễn phí.

OPNET, GloMoSim/QualNet, NS-2 và OMNeT++ được xem như các ứng cử viên sáng giá nhất. Tiếp theo đây, chúng ta sẽ thảo luận về các đặc điểm chính của mỗi phần mềm trên ở cả mức độ tổng quát và trên từng quan điểm về các tiêu chí lựa chọn ở bảng 1.

2- Giới thiệu các chương trình mô phỏng mạng

2.1 OPNET

OPNET (Optimized Network Engineering Tools) là công cụ "có phí" của tập đoàn công nghệ OPNET [2] dùng cho việc mô hình hóa và mô phỏng các mạng thông tin, các thiết bị và các giao thức.

OPNET là chương trình mô phỏng trên nền Windows được sử dụng rộng rãi. Nó được xây dựng dựa trên ngôn ngữ C++ và cung cấp môi trường ảo cho việc mô hình hóa, phân tích và dự đoán hiệu năng mạng, giúp mô hình hóa chính xác các ứng dụng, các máy chủ và nhiều công nghệ mạng.. Các giao thức và thiết bị mới thường xuyên được cập nhật nhằm theo kịp xu hướng phát triển nhanh chóng của công nghệ mạng.

OPNET được sử dụng bơi nhiều các tổ chức thương mại, các tổ chức chính phủ và các trường đại học trên toàn thế giới. Có nhiều các tính năng đa dạng cho người dùng OPNET. Bao gồm:

- Tạo và chỉnh sửa các mạng và các nút mạng.

- Tạo và chỉnh sửa các quá trình đang chạy trên các nút đó.

- Phân tích kết quả mô phỏng và tạo biểu đồ hiệu năng.

- Định nghĩa các quá trình toán học trong việc dùng các công cụ phân tích.

Các tính năng này làm cho OPNET rất linh hoạt và cung cấp khả năng mô phỏng hầu như mọi loại hình mạng truyền thông. Tạo mô phỏng topo mạng đơn giản là dễ dàng với việc sử dụng các thành phần kéo & thả và các cài đặt được định trước. Có thể quản lí được một mạng với hàng trăm nút mang. Tuy nhiên, với người mới bắt đầu, học để sử dụng triệt để OPNET nhằm triển khai một giao thức mới có đôi chút khó khăn; người dùng cần làm quen với phương pháp và ngôn ngữ hướng đối tượng như C++, cũng như là kiến thức cơ bản về mạng.

Phương pháp mô hình hóa trong OPNET được tổ chức theo cấu trúc phân cấp. Ở mức thấp nhất, là mức độ hoàn toàn có thể điều chỉnh được, các mô hình Process được xây dựng như các FSM (Finite State Machine - cơ cấu có số trạng thái giới hạn ). Trạng thái và các chuyển dịch có thể được cụ thể hóa một cách sinh động bằng cách sử dụng hình vẽ các lưu đồ chuyển dịch trạng thái, trong khi các điều kiện xác định diễn biến trong mỗi trạng thái được lập trình bởi Proto-C, một ngôn ngữ tương tự C.

Các mô hình Process, và các module đi kèm trong OPNET (các module nguồn và đích, các bộ phát lưu lượng, các hàng đợi, các module vô tuyến...) sau đó được cấu hình với các bảng lựa chọn và được tổ chức thành các lưu đồ dòng dữ liệu thể hiện các nút mạng bằng cách dùng bộ biên tập nút kiểu đồ họa (graphical Node Editor). Trình biên tập mạng đồ họa, các nút và link được lựa chọn để xây dựng topo mạng truyền thông.

The Modeling libraries are included with OPNET Modeler and OPNET Planner and contain protocols and environments (e.g., ATM, TCP, IP, Frame Relay, FDDI, Ethernet, IEEE 802.11, support for wireless), link models such as point-to-point and bus, queuing service disciplines such as First-in-First-Out (FIFO), Last-In-First-Out (LIFO), priority non-preemptive queuing, shortest first job, round-robin or preempt and resume.

Các thư viện mô hình hóa được kèm trong OPNET Modeler và OPNET Planner, có chứa các giao thức và môi trường (Ví dụ: ATM, TCP,IP Frame Relay, FDDI, Ethernet, IEEE 820.11 trong thông tin không dây), các mô hình đường truyền như điểm - điểm, bus, các quy tắc dịch vụ hàng đợi như FIFO, LIFO, Ưu tiền không chèn, round robin v…v

2.2 GloMoSim/QuaNet

GloMoSim [3] là một thư viện mô phỏng có khả năng mở rộng được thiết kế tại phòng thí nghiệm máy tính UCLA để hỗ trợ việc nghiên cứu các mô hình mạng quy mô lớn có thể lớn tới hàng triệu nút, bằng cách sử dụng đồng thời quá trình thực hiện phân phối and/or trên một tập hợp các máy tính song song khác nha (có nghĩa là cả 2 cùng phân phối hoặc chia sẻ bộ nhớ). Nó được thiết kế cho các mạng vô tuyến và hệ thống mạng diện rộng. Nhưng tại thời điểm này nó chỉ hỗ trợ cho các giao thức trong mạng vô tuyến. GloMoSim là một thư viện cho ngôn ngữ mô phỏng theo sự kiện rời rạc song song dựa trên C – gọi là PARSEC [4]. Một đặc trưng quan trọng và nổi bật nhất của PARSEC là khả năng thực hiện một mô hình mô phỏng sự kiện rời rạc bằng cách mô phỏng một vài giao thức không đồng bộ khác nhau trên một loạt các kiến trúc song song.

GloMoSim được xây dựng theo hướng tiếp cận các tầng đã được phân chia trong mô hình OSI. Thông thường, API giữa hai mô hình thuộc chồng giao thức gần nhau đã được định nghĩa trước để hỗ trợ cho thành phần cấu trúc của chúng. Các API chỉ rõ việc trao đổi và cung cấp các thông số giữa các tầng liền kề nhau. Nó cho phép tích hợp một cách nhanh chóng các mô hình đã được phát triển tại các tầng khác nhau bởi những người khác nhau. Hiện nay, các mã hoạt động thực tế có thể được tích hợp một các dễ dàng vào GloMoSim.. Nếu tất các các mô hình giao thức đều tuân thủ một cách chặt chẽ theo các API đã được định nghĩa cho từng tầng thì nó có thể hoán đổi các mô hình giao thức trong một tần nào đó mà không phải chỉnh sửa các mô hình còn lại trong ngăn xếp. Đó là việc thực hiện các modul có khả năng so sánh tính nhất quán của các giao thức và mức độ khác nhau chi tiết tại một tầng nào đó.

Để thực hiện một chương trình GloMoSim, cần phải có trình biên dịch PARSEC. Để phát triển các giao thức mới trong GloMoSim, người sử dụng nên có những hiểu biết rõ ràng về PARSEC, nhưng người dùng cũng không cần phải hiểu biết ở mức độ chuyên môn sâu. Đối với đa số các giao thức nó khả năng thêm vào một vài hàm PARSEC được viết hoàn toàn bằng mã C. Một số các giao thức đã được phát triểncho từng lớp, các giao thức này hoặc các tầng có thể được triển khai với mức độ chi tiết khác nhau và đặc điểm này là có thể thực hiện được trong GloMoSim. Telnet ftp, CBR, HTTP đã sao chép các file hệ thống có liên quan đến các úng dụng . Trong khi đó các mô hình được đề cập đến trong tầng truyền tải (transport layer) là có khả năng thực hiện được, ví dụ như: TCP (FreeBSD), UDP, TCP (tahoe). Đối với định tuyến theo kiểu unicast thì các thuật toán có thể sử dụng được là: AODV, Bellman-ford, DSR, Fisheye, Flooding, LAR, NS DSDV, OSPF, WRP/ Các mô hình có thể sử dụng được cho tầng MAC là CSMA, IEEE 802.11, FAMA, MACA. Sóng vô tuyến chung sử dụng ăng ten đa hướng có hoặc không có khả năng chiếm giữ. Sự truyền sóng vô tuyến có thể được mô phỏng thông qua các vùng trống, mô hình Rayleigh, mô hình Ricean hoặc mô hình SIRCIM (bao gồm các vật cản, các tình huống trong nhà).. Mô hình di động bao gồm nhiều loại hình như basic Random waypoint, Random drunken, ECRV, BBN, Pathloss matrix, và di động nhóm.

GloMoSim có kiến trúc phân lớp. Quá trình mô phỏng là sự tập hợp các nút mạng, với mỗi nút mạng là các tham số giao thức và số liệu thống kê. Đổi lại, mỗi lớp là một đối tượng với các biến và cấu trúc của chúng. Các bản tin có thể trao đổi chéo gữa các nút và các tầng với bất kỳ mức yêu cầu nào của nhóm và mức độ chi tiết. Sự đồng bộ giữa các sự kiện được đảm bảo bởi việc tự lập lịch (bộ định thời – timer) của các bản tin. Thư viện với tập hợp các hàm đơn giản được xây dựng trên các API chuẩn, dùng để tạo ra, truyền tải và thao tác thông tin. Các kiểu sự kiện mới như là : các bản tin. Các nút, các lớp có thể được tạo ra một cách khác dễ dàng.

Kiến trúc bên trong của GloMoSim đã được thiết kế để phát triển môi trường mô phỏng theo modul có khả năng mở rộng mạng với hàng nghìn/hàng triệu nút khác nhau và dễ dàng chuyển đổi giữa môi trường tính toán song song/phân phối. Các yêu cầu đối với tính chất mở rộng và tính modul hóa làm cho việc thiết kế thư viện gặp khó khăn. GloMoSim cho rằng hệ thống mạng được phân tách thành các nhóm phân vùng, một thực thể đơn được định nghĩa để mô phỏng một lớp đơn trong toàn bộ chồng giao thức của tất cả các nút trong hệ thống mạng thuộc cùng một phân vùng. Sự tương tác giữa các thực thể tuân theo các API tương ứng.

QualNet: Phiên bản thương mại của GloMoSim

GloMoSim không phải là miễn phí, nhưng nó được sử dụng tự do mà không cần trả phí cho mục đích giáo dục, nghiên cứu hoặc các tổ chức phi lợi nhuận. Tuy nhiên các tài liệu được gửi cùng với GloMoSim là khá ít (thậm chí không có một tài liệu hướng dẫn cho người sử dụng). Tập hợp các công cụ có khả năng tăng tốc để tạo ra các topo, để giám sát hoạt động hệ thống, để phân tích kết quả mô phỏng bổ xung hay tổng quát hơn là để thiết kế các đặc đặc điểm cho sự tương tác đối với các môi trường mô phỏng cũng rất hạn chế.

QualNet bổ sung phần nào thiếu sót của GloMoSim. QualNet[5] là một sản phẩm thương mại có nguồn gốc từ Scalable Network Technologies, cũng là nơi bắt nguồn của GloMoSim. Tuy nhiên, QualNet được nạp thêm vào nhiều tính năng được đánh giá cao hơn so với GloMoSim. QualNet có một bộ mở rộng các mô hình và các giao thức thực thi chính xác cho cả mạng hữu tuyến và mạng vô tuyến/ không dây (nội hạt, vệ tinh, mạng ad hoc, mạng cellular) , cũng như số lượng lớn các tư liệu và hỗ trợ kỹ thuật. Ba thư viện có thể dùng được là:

+) Một thư viện chuẩn cung cấp hầu hết các mô hình và các giao thức cần thiết giành cho cả hai hướng nghiên cứu và hướng thương mại, hoạt động trong mạng hữu tuyến và mạng không dây.

+) Một thư viện MANET cung cấp thêm các thành phần rất cụ thể cho các mạng ad hoc khác nhau hơn là các thư viện chuẩn đã tồn tại khác .

+) Môt thư viện QoS bao gồm các giao thức chuyên dùng cho chất lượng dịch vụ. QualNet cũng bao gồm mô hình độ cao số hoá - DEM (Digital Elevation Model) để tạo các nút và các sóng vô tuyến chuyển động trong những địa hình không bằng phẳng với các đặc tính bức xạ radio. Mô phỏng, hay bản thân chương trình mô phỏng được thiết kế để cung cấp các mô hình mạng có độ trung thực cao với hàng vạn nút có lưu lượng và tính di động cao. Thêm vào đó QualNet đưa ra những phát triển song song đối với việc quản lý và thực thi song song.

2.3 OMNeT++

OMNet++ là một mã nguồn mở, thành phần cơ bản của chương trình mô phỏng này được xây dựng trên nền tảng C++. Nó cung cấp một thư viện mô phỏng C++ và hỗ trợ giao diện đồ hoạ (cho phép chỉnh sửa mạng bằng hình vẽ, hỗ trợ hình ảnh động).

Chương trình mô phỏng này có thể được sử dụng để: thực hiện mô phỏng lưu lượng trong mạng viễn thông, tạo mô hình các giao thức, xây dựng mô hình các hàng đợi trong mạng, xây dựng các bộ vi xử lý đa nhiệm và các hệ thống phân tán khác, kiểm tra lại kiến trúc phần cứng, đánh giá khía cạnh về hiệu suất của các hệ thống phần mềm phúc tạp , và nói chung là việc tạo mô hình bất kì một hệ thống nào khác đều gắn với các thành phần tích cực mà chúng giao tiếp với nhau bằng việc gửi các bản tin. Về môt số mặt thì OMNet++ khác so với các phần mềm mô phỏng đã nói trên. OMNet++ không được thiết kế chuyên cho mạng viễn thông, mà nó tổng quát hơn nhiều. Thực tế là OMNet++ vẫn là một phần mềm mới (được phát triển từ năm 1998), điều đó cho thấy OMNet++ có ít các modul và các giao thức (về mạng ) đi kèm hơn các chương trình mô phỏng đã nói trước đây khá nhiều

Trên một khía cạnh khác, OMNeT++ đã được thiết kế cẩn trên phương diện phần mềm, kết quả là được một sản phẩm được tổ chức tốt hơn, mêm dẻo và dễ dàng sử dụng hơn so với các phần mềm mô phỏng khác, mà các phần mềm này đều dựa trên các sản phẩm phần mềm và các khái niệm thiết kế cũ.

Một mô hình OMNeT++ của một hệ thống (vd: một mạng…) bao gồm các modul phân cấp lồng nhau. Độ sâu của việc lồng ghép các modul này là không có giới hạn, nó cho phép người sử dụng ánh xạ đế cấu trúc logic trong thực tế bằng các mô hình cấu trúc trong mô phỏng. Các modul giao tiếp với nhau thông qua việc truyền những thông báo. Các thông báo có thể chứa các cấu trúc dữ liệu phức tạp tùy ý. Các modul có thể gửi các thông báo trực tiếp đến đích hoặc dọc theo một đường dẫn đã được định trước thông qua các cổng hoặc các kết nối, mà các đường này đã được gán cho các đặc tính như băng thông, độ trễ và tỉ lệ lỗi. Các module có thể có các thông số mà được dùng để tùy chỉnh hoạt động của nó, điều này tạo nên tính linh hoạt trong các topo mạng và khi đó các module giao tiếp với nhau giống như việc chia sẻ giữa các biến.

Các modul thấp nhất trong module phân cấp thì được cung cấp bởi người sử dụng, các modul đó chứa các thuật toán. Trong quá trình thực hiện mô phỏng, các modul đơn này sẽ chạy song song với các modul khác, bởi vì chúng đã được thi hành như các thường trình phụ (đôi khi gọi là quá trình nhẹ tải)

Để viết một vài module đơn, đòi hỏi người sử dụng phải biết lập trình C++. OMNeT++ có định hướng thiết kế hướng đối tượng chặt chẽ. Người dùng có thể dùng các khái niệm của việc lập trình hướng đối tượng một cách tự do để mở rộng chức năng của chương trình mô phỏng

Các chương trình mô phỏng trong OMNeT++ có thể có đặc tính khác nhau về giao diện người người dùng cho các mục đích khác nhau như: gỡ rối, thể hiện và thực thi các khối công việc. Giao diện đồ họa giúp cho người sử dụng có thể nhìn thấy được bên trong của mô hình, cho phép họ có thể bắt đầu/ ngừng thực hiện mô phỏng và can thiệp vào bên trong mô hình bằng cách thay đổi các biến hoặc các đối tượng. Thư viện đồ họa được liên kết với các chương trình gỡ rối/bám vết trở thành các chương trình mô phỏng có thể thực thi được. Lựa chọn này cho phép tất cả người dùng –người đã tạo ra đối tượng đó có thể nhìn thấy được đối tượng ( và có thể sửa đổi nó) trong giao diện đồ họa thông qua cửa sổ kiểm soát.

OMNeT++ cũng hỗ trợ mô phỏng song song thông qua việc sử dụng các thư viện giao tiếp MPI hoặc PVM3. Trong trường hợp tổng quát, OMNeT++ giống với PARSEC (Parallel Simulation Environment for Complex Systems ), nhưng nó mềm dẻo hơn, linh hoạt hơn và môi trường phong phú hơn.

OMNeT++ cùng với một tập hợp rộng lớn các lớp bao hàm đại diện cho cấu trúc dữ liệu (vd: hàng đợi, mảng… ), các lớp thu thập dữ liệu, lớp xác xuất và lớp thống kê (vd: Các biểu đồ cột, các phân phối theo luật số mũ), các lớp phát hiện nhanh và các lớp phát hiện kết quả chính xác. Các file đầu ra là các file text mà sau một vài quá trình xử lí đơn giản, có thể được chuyển thành các tập tin mang tính thống kê và toán học chuẩn.

OMNeT++ cùng với bộ giao thức internet bao gồm: IP, TCP, UDP, RTP và một vài giao thức hỗ trợ cho chất lượng dịch vụ cơ bản, trong khi đó đề liên quan đến mạng vô tuyến, đây là một modul mô phỏng các tầng thấp hơn của mạng GSM, một vài modul mở đầu dành cho các nút có tính chuyển động, sự lan truyền sóng vô tuyến, các thuật toán định tuyến (AODV) và sự truyền thông vô tuyến nói chung.

2.4 NS-2

Chương trình mô phỏng mạng NS [7] có nguồn gốc từ U.C.Berkely/LBNL, NS là một chương trình mô phỏng sự kiện rời rạc hướng đối tượng có mục tiêu tiến hành nghiên cứu hoạt động mạng và là một phần mềm miễn phí. NS-2 được sử dụng rộng rãi trong cộng đồng nghiên cứu hoạt động mạng, dựa trên sự thừa nhận rộng rãi NS-2 như là một công cụ thử nghiệm cho các ý tưởng mới, các giao thức, và các thuật toán phân phối. NS2 luôn luôn nhận được bao gồm sự đóng góp quan trọng từ các nhà nghiên cứu.

Ngày nay, NS-2 thích hợp với mạng chuyển mạch gói và mạng vô tuyến (ad hoc, local and satellite), và được sử dụng chủ yếu cho các việc mô phỏng quy mô nhỏ của hàng đợi, thuật toán định tuyến, các giao thức truyền tải, điều khiển tắc nghẽn và một vài các công việc có liên qua đến đa đường (multicast). Nó cung cấp các hỗ trợ quan trọng dành cho mô phỏng TCP, định tuyến và các giao thức đa đường (multicast) thông qua các mạng hữu tuyến và mạng vô tuyến

NS-2 thích hợp không chỉ hợp cho việc mô phỏng mà cho cả sự giả lập, điều này có nghĩa là nó có thể đưa chương trình mô phỏng vào trong mạng thực tế. Những đối tượng trong chương trình mô phỏng có khả năng đưa các lưu lượng thực vào trong chương trình mô phỏng và đưa một phần lưu lượng trong chương trình mô phỏng vào trong mạng thực tế.

Nhưng tiếc rằng, với kiến trúc phần mềm của nó thì việc thêm các thành phần mới hoặc chỉnh sửa những điểm hạn chế không dễ dàng. Điều này có nghĩa là về khả năng thực hiện kiểm tra thuật toán hay các kịch bản mô phỏng mới thì NS-2 yếu thế so với các phần mềm mô phỏng khác. Ngoài ra NS-2 không cân đối (scale) tốt đối với số lượng nút mạng và theo như các báo cáo thì NS-2 tính toán khá chậm.

Kiến trúc của NS-2 bám sát mô hình OSI. Mô hình mạng này đặc trung cho quan hệ của các yếu tố mạng. Bao gồm các nút và các liên kết. Các bộ phát lưu lượng loại đơn lưu lượng hay đa lưu lượng bao gồm các bộ phát kiểu thống kê và cá kiểu điển hình khác như FTP và telnet có thể được gán cho mọi nút. Thêm vào đó, hoạt động mạng và giao thức truyền tải được mô phỏng bởi thao tác gán các tác nhân thích hợp vào các nút có liên quan. Mã nguồn của ns 2 được phân chia thành C++(đóng vai trò lõi chương trình) và OTcL, đối tượng mở rộng của MIT với TcL, dành cho việc cấu hình và các đoạn mãmô phỏng

Sự kết hợp của hai ngôn ngữ này tạo ra sự thỏa hiệp giữa tính hiệu quả và tính dễ dàng sử dụng. Gói phần mềm này cung cấp một trình biên dịch lớp phân cấp của các đối tượng viết bằng C++ và việc dịch các lớp phân cấp của các đối tượng này được viết bằng TCL, sau đó được thống nhất thành một trình biên dịch duy nhất. Người sử dụng tạo ra các đối tượng mới này bằng bộ biên dịch TCL. Các đối tương mới này được ánh xạ bằng quá trình trao đổi các đối tương trong trình biên dịch phân cấp. Các chỉ thị TCL được cung cấp một cách linh hoạt và có quyền hạn mạnh mẽ thông qua việc mô phỏng( bắt đầu và dừng các sự kiện, sự cố trong mạng, quá trình tập hợp số liệu và cấu hình mạng). Bộ biên dịch Tcl còn cung cấp các câu lệnh để tạo các liên kết và các nút trong các topo mạng, và kết hợp các agents với các nút.

Việc thực hiện và mô phỏng NS2 bao gồm 4 bước:

Thực hiện các giao thức bằng cách thêm một tổ hợp giữa mã C++ và mã Tcl vào trong mã nguồn của NS-2.

Mô tả việc mô phỏng bằng kịch bản OTcl;

chạy chương trình mô phỏng và

phân tích các tệp tin bám vết đã được sinh ra. Việc thực hiện một giao thức mới đòi hỏi phải bổ xung thêm mã C++ cho chức năng của các giao thức này, điều này tương tự như việc cập nhật thêm các từ khóa cho các file cấu hình NS-2 Otcl một cách hợp lệ dành cho NS-2, điều này giúp nhận biết ra các giao thức mới và các tham số mặc định của nó. Mã C++ cũng miêu tả các tham số và các phương thức, điều này tạo nên tính sẵn sàng thực thi được khi thực hiện kịch bản OTcl.

Quá trình mô phỏng được cấu hình, điều khiển và vận hành thông qua việc sử dụng giao diện đồ họa được cung cấp bởi lớp mô phỏng OTcl. Lớp này cung cấp các thủ tục để tạo và quản lý các topo, khởi tạo định dạng các gói và lựa chọn lịch làm việc. Nó lưu trữ các chỉ dẫn bên trong mỗi phần tử của topo. Người sử dụng tạo ra topo bằng các sử dụng OTcl thông qua việc sử dụng nút các lớp độc lập và liên kết, các lớp độc lập và liên kết này đưa ra một vài bước khởi đầu đơn giản.

Các topo mạng tùy ý, gồm có các bộ định tuyến, các liên kết và kênh truyền chung, có thể được xác định bằng cách liệt kê các nút mạng và các đường nối các nút trong một tập tin topo hoặc sử dụng một vài bộ phát/tạo nút sinh của mạng đã được xây dựng cho NS-2. (Tiers và GT-ITM)

Để thu thập dữ liệu đầu ra hay dữ liệu vết trong một chương trình mô phỏng, NS-2 sử dụng, cả hai loại thông tin vết là các bản ghi của mỗi gói tin khi nó tới, đi, hoặc bị loại khỏi đường truyền hoặc hàng đợi, và thông tin giám sát - là các số đếm bản ghi của nhiều chỉ số đáng chú ý như số gói tin và byte tới, đi v…v.. Chúng có thể được kết hợp lại với cả gói tin và luồng. Chương trình NAM là một Tcl/Tk được dựa trên công cụ hoạt hình động, nó có thể sử dụng cho việc quan sát các tập tin ghi sự kiện của quá trình xử lý bổ xung, phân tích và thực hiện lại của các quá trình mô phỏng (thậm chí NAM có thể sử dụng với mọi chương trình mô phỏng miễn là các định dạng dữ liệu c được quan tâm).

NS-2 là phần mềm mô phỏng phổ biến nhất được sử dụng cho việc nghiên cứu trong các lĩnh vực về mạng Ad hoc. NS-2 có đầy đủ các trang thiết bị cho các giao thức, các mô hình, các thuật toán, các công cụ thêm vào, và nó còn miễn phí. Bởi vậy, xét về tính chấp nhận khoa học, về số lượng các công cụ/ modul và về giá thành thì NS2 có lẽ là một lựa chọn lý tưởng.

3. Các gợi ý cho sự lựa chọn chương trình mô phỏng mạng thích hợp

Có một điều chắc chắn rằng, không có chương trình mô phỏng nào đã được xem xét ở trên là thực sự đáp ứng được toàn bộ các yêu cầu đặc trưng phù hợp với các kế hoạch và các mục tiêu riêng lẻ. Tuy nhiên, chương trình mô phỏng tốt nhất là chương trình có khả năng hài hòa các khía cạnh như số các thành phần được xây dựng từ trước, khả năng modul hóa, khả năng mở rộng, và khả năng chỉnh sửa, giá thành ...vv.

Cụ thể, một chương trình mô phỏng tốt thường đi kèm với:

Một tập hợp lớn các mô hình, giao thức và thuật toán được xây dựng từ trước

Một mức độ thừa nhận cao từ cộng đồng khoa học

Có khả năng cân đối (scaleability) tốt

Thiết kế phần mềm cũng phải tốt và có tính modul cao

Mức độ thỏa đáng của tính tiện lợi, tính có thể sửa đổi được và tính mở rộng

Sự tiên tiến về đồ hoạ và các công cụ toán học dành cho việc xây dựng thử nghiệm, giám sát và xử lý bổ xung

Tài liệu hướng dẫn cụ thể

Khả năng thực hiện song song và/hoặc phân tán

Khả năng xác định một mô hình 3D thực tế cho môi trường

Chi phí hợp lí trong các trường hợp ngân sách bị giới hạn

Bạn đang đọc truyện trên: Truyen2U.Pro