Xây dựng chương trình trên cơ sở giao thức SIP
Trang 1Hiện nay có khá nhiều phơng pháp mô phỏng Trong đồ án này giới thiệu một số phơng pháp phổ biến đợc sử dụng khá hiệu quả trong mạng viễn thông
Mô phỏng theo sự kiện rời rạc
Việc mô phỏng sự kiện rời rạc liên quan đễn việc mô hình hóa hệ thống bằng cách trình diễn vì nó phát triển theo thời gian, trong đó các biến trạng thái thay đổi đột ngột tại những điểm rời rạc theo thời gian ( về mặt toán học, chúng ta có thể nói rằng hệ thống chỉ có thể thay đổi tại một số hữu hạn các điểm ) Những điểm này là những điểm tại đó một sự kiện xảy ra, trong đó sự kiện đợc định nghĩa nh là một sự xảy ra đột ngột có thể thay đổi trạng thái của hệ thống Mặc dù việc mô phỏng sự kiện rời rạc về mặt lý thuyết có thể đợc thực hiện bởi các tính toán bằng tay, nhng dữ liệu phải đợc lu trữ và thao tác đối với hầu hết các hệ thống thực tế đợc thực hiện bằng máy tính số.
Mô phỏng liên tục
Việc mô hình hóa theo thời gian một hệ thống bằng cách trình diễn trong đó các biến trạng thái thay đổi liên tục theo thời gian Điển hình, các mô hình mô phỏng liên tục liên quan đến các phơng trình vi sai Phơng trình vi sai đa ra các mối quan hệ cho tốc độ thay đổi của các biến trạng thái Nếu các phơng trình vi sai đơn giản thì chúng có thể đợc giải để có các giá trị biến trạng thái cùng với mọi giá trị thời gian nh một hàm của các biến trạng thái bắt đầu
Trang 2từ thời điểm 0 Đối với hầu hết việc mô hình hóa liên tục, giải pháp mang tính phân tích là không khả thi, tuy nhiên các kỹ thuật phân tích số, ví dụ nh tính tích phân Runge - Kutta đợc sử dụng để tính tích phân số các phơng trình vi sai cho các giá trị cụ thể, với các biến trạng thái tại thời điểm 0.
Mô phỏng liên tục - rời rạc tổ hợp
Vì có những mô hình không hoàn toàn là rời rạc hay liên tục nên một yêu cầu xây dựng một mô hình với các tính chất của cả mô phỏng rời rạc lẫn mô phỏng liên tục, do đó ra đời mô phỏng liên tục - rời rạc tổ hợp Giữa các biến trạng thái thay đổi liên tục và rời rạc thờng xảy ra ba loại tơng tác cơ bản:
- Một sự liện rời rạc có thể tạo ra sự thay đổi rời rạc theo giá trị biến trạng thái liên tục.
- Một sự liện rời rạc có thể làm cho mối liên hệ chi phối biến trạng thái liên tục thay đổi tại một thời điểm cụ thể.
- Một biến trạng thái liên tục khi nhận giá trị ngỡng có thể làm xảy ra sự kiện rời rạc hoặc đợc ghi lại trong chơng trình
Mô phỏng Monte Carlo
Là một sơ đồ sử dụng các số ngẫu nhiên, nghĩa là các biến ngẫu nhiên U(0, 1) đợc sử dụng để giải các bài toán ngẫu nhiên, khi mà ở đây thời gian không đóng vai trò quyết định.
Nói chung đây là phơng pháp mô phỏng tĩnh hơn là động ở đây lu ý rằng mặc dù một số tác giả định nghĩa việc mô phỏng Monte Carlo là cho bất kỳ phơng pháp mô phỏng liên quan đến việc sử dụng các số ngẫu nhiên, nhng định nghĩa ở đây là hẹp hơn.
Trang 34.2 Giới thiệu công cụ mô phỏng mạng NS
4.2.1 Giới thiệu NS - 2
NS - 2 ( Network Simulator phiên bản 2 ) là chơng trình mô phỏng mạng theo phơng pháp mô phỏng các sự kiện rời rạc NS - 2 hỗ trợ mô phỏng mạng có dây và không dây, TCP, UDP, các giao thức truyền thông điểm - đa điểm, các phơng pháp định tuyến, v.v NS 2 đợc viết bằng C++ và ngôn ngữ hớng đối tợng Tcl ( Otcl: Object -Oriented Tool Command Language ).
NS - 2 có một lịch sử khá dài, bắt nguồn từ các phần mềm REAL của UCB (1989) và NEST của Colombia ( 1992 ) Đến năm 1995, NS -2 đợc phát triển trong dự án VINT ( Virtual InterNet Testbed hay nền kiểm thử Internet ảo ) VINT là dự án hợp tác giữa AT&T Reseach, Lawrence Berkeley National Laboratory, ETH TIK, Xerox PARC, UCB -Berkeley và USC/ISI Hiện nay, Ns đang tiếp tục đợc phát triển trong các dự án SAMAN và CONSER, cùng với sự hợp tác của nhiều nhà nghiên cứu và ACIRI Những tổ chức đã đóng góp đáng kể vào NS -2 là UCB Daeledus, UMU Monarch và Sun MicroSystems.
- NS - 2 đợc phát triển từ các phần mềm nổi tiếng trên thế giới nh REAL, NEST nên nó có những điểm mạnh và đã khắc phục đợc những yếu điểm của các phần mềm này.
- NS - 2 hỗ trợ các tính năng cơ bản của mạng IP, từ đó có thể phát triển thêm các phần tử mạng.
- NS - 2 có cấu trúc modul, rất thuận tiện cho việc nghiên cứu tìm hiểu và phát triển.
Trang 4Nhìn từ phía ngời sử dụng, NS - 2 là chơng trình biên dịch mã Otcl đợc liên kết tới th viện C++ Các đối tợng cơ sở nh TCP, CBR, đợc xây dựng trong C++ Đầu vào NS - 2 là tập mã lệnh Otcl, đầu ra là các tập tin mô phỏng tiến trình theo yêu cầu đợc thể hiện trong tập lệnh Otcl.
Hình 4.1 Cấu trúc chơng trình NS -2
Kết quả mô phỏng có thể quan sát bằng hình ảnh mô tả trực quan với ứng dụng Nam ( the Network Animator ), bằng đồ thị ( sử dụng Xgraph ) hoặc có thể đợc xử lý bằng các tập lệnh tuỳ chọn Với cấu trúc này, việc sử dụng NS - 2 trở lên đơn giản hơn nhiều so với sử dụng trực tiếp C++ nhng vẫn có đợc những tính năng của C++ Với những đặc điểm trên, NS - 2 thực sự là một công cụ phần mềm hữu ích cho việc học tập, nghiên cứu mạng thông tin, giúp cho việc thực hành mạng trở lên hiệu quả hơn.
4.2.2 Cơ chế hoạt động của phần mềm NS - 2
Hoạt động của NS - 2 đợc chia thành hai phần là phần dữ liệu ( đợc xây dựng trong C++ ) và phần điều khiển ( đợc xây dựng trong Otcl ) Để giảm thời gian xử lý gói và sự kiện, thời biểu sự kiện và các đối tợng thành phần mạng cơ bản trong phần số liệu đợc viết
Trang 5và biên dịch bằng C++ Các đối tợng đợc biên dịch này đợc tạo sẵn và đợc liên kết tới Otcl qua bộ thông dịch Otcl Mỗi đối tợng C++ này đợc điều khiển và đợc thiết lập các tham số thông qua một đối t-ợng điều khiển tơng ứng trong Otcl Các đối tt-ợng C++ không cần điều khiển hoặc chỉ hoạt động nội tại trong phần C++ thì không cần liên kết đến Otcl Tơng tự, cũng có một số đối tợng ( không nằm trong phần dữ liệu ) có thể hoạt động hoàn toàn chỉ trong Otcl Các đối tợng điều khiển trong Otcl đợc ánh xạ 1 - 1 tới các đối tợng cần điều khiển trong C++ Nh vậy, cấu trúc phân cấp các đối tợng này trong hai phần C++ và Otcl là tơng tự nhau Quan hệ giữa C++ và Otcl đợc minh họa ở hình dới đây.
Hình 4.2 Tính đối ngẫu giữa C++ và Otcl
Hình 4.3 chỉ ra kiến trúc NS - 2 Trong kiến trúc này, ngời sử dụng ( không phải ngời phát triển NS - 2 ) ở vị trí góc dới bên trái Dữ liệu đầu vào là tập lệnh Otcl đợc phân tích bởi lớp Tcl Việc thiết lập và chạy mô phỏng trong Tcl sử dụng các đối tợng trong th viện Otcl Thời biểu các sự kiện và hầu hết các thành phần mạng hoạt động trong C++ và đợc liên kết tới Otcl Việc này đợc thực hiện bởi lớp tclcl.
Chơng trình NS - 2 có nhiều phiên bản chạy trên các hệ điều hành khác nhau và với các yêu cầu cài đặt khác nhau Trong đồ án
này, phiên bản ns - allinone - 2.28, chạy trên Windows trong môi
Trang 6tr-ờng Cygwin /X đợc sử dụng để mô phỏng một số hoạt động báo hiệu trên cơ sở giao thức khởi tạo phiên SIP Cygwin /X cung cấp một giao diện chơng trình ứng dụng ( API ) giống nh hệ điều hành UNIX trên khuôn dạng Windows do NS - 2 không chạy trực tiếp trên Windows.
Hình 4.3 Kiến trúc tổng quan của NS - 2
4.3 Xây dựng chơng trình mô phỏng
Phần này sẽ dùng NS - 2 phiên bản ns - allinone - 2.28 để mô
phỏng một số hoạt động báo hiệu trên cơ sở giao thức SIP Phiên bản này đợc chạy trên Windows trong môi trờng Cygwin /X Trong chơng trình mô phỏng của đồ án này, kết quả mô phỏng một số hoạt động báo hiệu trên cơ sở giao thức SIP đợc quan sát bằng hình ảnh mô tả trực quan với ứng dụng Nam.