Tài liệu tham khảo chuyên ngành viễn thông Nghiên cứu giao thức khởi tạo phiên SIP trong mạng NGN
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áchtrì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ộttạ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 độtngộ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 lutrữ 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ácbiế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êntụ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ệ chotố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úngcó 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ộthà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óaliê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ântí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âydự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ụcvà 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áiliê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ụcthay đổ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ờirạ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) đợcsử 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 ơ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ôngdây, TCP, UDP, các giao thức truyền thông điểm - đa điểm, các phơng pháp địnhtuyế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 ).
ph-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ự ánVINT ( Virtual InterNet Testbed hay nền kiểm thử Internet ảo ) VINT là dự án hợp tácgiữa AT&T Reseach, Lawrence Berkeley National Laboratory, ETH TIK, XeroxPARC, UCB - Berkeley và USC/ISI Hiện nay, Ns đang tiếp tục đợc phát triển trong cácdự á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, NESTnê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ầnmề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ácphầ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áttriể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ớith 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ụngNam ( 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ơnnhiề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 choviệ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ệuquả 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ựngtrong 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à đợcliê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à đợcthiế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ôngcầ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ảingờ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 đợcphâ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 ợngtrong 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 độngtrong 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 giaodiện chơng trình ứng dụng ( API ) giống nh hệ điều hành UNIX trên khuôn dạngWindows 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 trongThời biểu các sự kiện NS-2
Các thành phần mạng
Tcl 8.0
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ỏngmộ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.