Xây dựng chương trình mô phỏng một số hoạt động báo hiệu trên cơ sở giao thức SIP.
Trang 1Chơng IV Xây dựng chơng trình mô phỏng một số hoạt động báo hiệu trên cơ sở giao thức sip
4.1 Các phơng pháp mô phỏng ứng dụng trong nghiên cứu mạng viễn thông
Hiệ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 từ 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ể
Trang 2- 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
4.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
So với các phần mềm mô phỏng mạng khác, NS - 2 có những u thế sau:
- NS - 2 có mã nguồn mở miễn phí
- NS - 2 có kiến trúc mở, tạo điều kiện thuận lợi cho việc mở rộng
- 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 3Nhì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 và 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 t-ợ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
Tập lệnh
Otcl ( mã
nguồn )
Ch ơng trình biên dịch Otcl
Kết quả mô
phỏng
Các th viện C++
NS-2
Trang 4Hì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 trờ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
Thời biểu các sự kiện NS-2
Các thành phần mạng
Tcl 8.0
Otcl
tclcl
Trang 5mô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