BÁO CÁO NGHIÊN CỨU KHOA HỌC: TÌM HIỂU NS (NETWORK SIMULATOR) VÀ ỨNG DỤNG MÔ PHỎNG MẠNG MÁY TÍNH

  • Mã số đề tài: T2014-156
  • Cơ quan chủ trì: Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh
  • Chủ nhiệm đề tài: GVC. ThS. Nguyễn Đăng Quang
  • Thời gian thực hiện: 01/2014 – 11/2014
  • Lĩnh vực: Mạng máy tính & Truyền thông dữ liệu / Kỹ thuật phần mềm

1. Tóm tắt nghiên cứu (Executive Summary)

Nghiên cứu tập trung giải quyết bài toán cốt lõi trong phân tích, thiết kế và tối ưu hóa hệ thống mạng máy tính: Làm thế nào để đánh giá chính xác hành vi của các giao thức và cấu trúc mạng phức tạp mà không phải đầu tư chi phí tốn kém trên hệ thống phần cứng thực tế? Đề tài tiến hành khảo sát toàn diện nền tảng mô phỏng mạng hiện đại ns-3 (Network Simulator 3), dựa trên nền tảng lý thuyết Mô phỏng biến cố rời rạc (Discrete-Event Simulation - DES).

Về mặt phương pháp luận, nghiên cứu phân tích sâu cấu trúc phần mềm hướng đối tượng của ns-3, cơ chế quản lý bộ nhớ an toàn thông qua con trỏ thông minh (Smart Pointers), cấu trúc gói tin (Packet Byte Buffer & Metadata), và giao diện lập trình Socket không đồng bộ (Asynchronous Callback). Trên cơ sở đó, đề tài xây dựng và thực thi các mô hình thực nghiệm từ cơ bản đến phức tạp: mạng điểm - điểm (Point-to-Point), mạng cục bộ Ethernet (CSMA/CD) và mạng không dây (Wi-Fi), đồng thời phát triển các tập lệnh mô phỏng bằng cả C++ và Python.

Kết quả nghiên cứu khẳng định ns-3 là một bước tiến vượt bậc so với thế hệ ns-2 tiền nhiệm nhờ loại bỏ cấu trúc phân mảnh C++/OTcl, nâng cao độ trung thực của mô hình so với hệ thống thực, và hỗ trợ xuất dữ liệu vết (trace file) định dạng chuẩn PCAP tương thích hoàn toàn với các công cụ phân tích công nghiệp như Wiresharktcpdump. Đề tài cung cấp tài liệu kỹ thuật và khung thực nghiệm chuẩn hóa, phục vụ trực tiếp cho công tác đào tạo kỹ sư và nghiên cứu chuyên sâu về giao thức mạng.


2. Bối cảnh và tầm quan trọng (Context & Significance)

Trong kỷ nguyên phát triển bùng nổ của mạng máy tính và truyền thông vô tuyến, việc thẩm định và tối ưu hóa hiệu năng mạng đóng vai trò sống còn. Có ba phương pháp tiếp cận kinh điển để đánh giá một hệ thống mạng: phân tích toán học (Mathematical Analysis), đo lường trên hệ thống thực (Measurement) và mô phỏng trên máy tính (Computer Simulation).

Trong khi phân tích toán học gặp hạn chế lớn khi mô hình hóa các trạng thái động phi tuyến, và đo lường thực tế đòi hỏi hạ tầng thiết bị đắt đỏ, dễ gây gián đoạn dịch vụ, thì mô phỏng biến cố rời rạc nổi lên như một giải pháp tối ưu về cả chi phí lẫn tính linh hoạt.

+-------------------------------------------------------------------------+
|                  CÁC PHƯƠNG PHÁP ĐÁNH GIÁ HỆ THỐNG MẠNG                 |
+------------------------------------+------------------------------------+
| 1. Phân tích toán học (Math)       | Trừu tượng hóa cao, khó áp dụng    |
|                                    | cho hệ thống phi tuyến phức tạp.   |
+------------------------------------+------------------------------------+
| 2. Đo lường thực tế (Measurement)  | Chính xác nhưng chi phí phần cứng  |
|                                    | đắt đỏ, khó tái lập kịch bản lỗi.  |
+------------------------------------+------------------------------------+
| 3. Mô phỏng máy tính (Simulation)  | Cân bằng tối ưu: Chi phí thấp, độ  |
|    [Trọng tâm của đề tài]          | trung thực cao, kiểm soát 100%.    |
+------------------------------------+------------------------------------+

Trong nhiều thập kỷ, phần mềm ns-2 đã giữ vị trí thống trị trong cộng đồng học thuật toàn cầu. Tuy nhiên, ns-2 bộc lộ nhiều điểm nghẽn nghiêm trọng:

  • Sự kết hợp phức tạp giữa C++ (xử lý logic) và OTcl (cấu hình kịch bản) gây khó khăn lớn trong việc gỡ lỗi (debugging) và phát triển mô hình mới.
  • Cấu trúc gói tin và chồng giao thức trong ns-2 mang tính trừu tượng quá mức, không phản ánh đúng cấu trúc dữ liệu và lời gọi hệ thống (system calls) của các hệ điều hành thực tế.

Sự ra đời của ns-3 đánh dấu cuộc tái cấu trúc toàn diện, xây dựng hoàn toàn trên nền tảng C++ hiện đại và tích hợp liên kết Python. Đề tài KH&CN mã số T2014-156 được triển khai kịp thời nhằm nắm bắt công nghệ cốt lõi của ns-3, hệ thống hóa kiến trúc phần mềm, và chuyển giao các kịch bản thực nghiệm chuẩn hóa cho môi trường giáo dục đại học và nghiên cứu tại Việt Nam.


3. Phương pháp nghiên cứu và Kiến trúc hệ thống (Methodology & Architecture)

Nghiên cứu tiếp cận vấn đề theo hướng kết hợp giữa phân tích lý thuyết phần mềm và thực nghiệm mô phỏng có kiểm chứng:

3.1. Nguyên lý mô phỏng biến cố rời rạc (DES) và Danh sách sự kiện tương lai (FEL)

Hệ thống mạng được trừu tượng hóa thành các thực thể (Entity) với các trạng thái biến đổi tại các mốc thời gian rời rạc $t_1, t_2, \dots, t_k$. Giải thuật lõi của bộ mô phỏng vận hành xoay quanh Danh sách các biến cố tương lai (Future Event List - FEL):

$$\text{FEL} = [t_1, t_2, \dots, t_k] \quad \text{với} \quad t_1 \le t_2 \le \dots \le t_k$$

Bộ định thời (Timing Routine) liên tục rút các sự kiện có mốc thời gian nhỏ nhất từ FEL, chuyển đồng hồ mô phỏng đến mốc đó, và gọi các hàm xử lý sự kiện (Event Handler) tương ứng để cập nhật trạng thái hệ thống.

       +-------------------+
       |     Bắt đầu       |
       +---------+---------+
                 |
                 v
       +-------------------+
       |   Khởi tạo FEL    |
       +---------+---------+
                 |
+--------------->v---------------+
|     Lấy biến cố kế tiếp        |
|       t_i từ danh sách         |
+----------------+---------------+
                 |
                 v
       +-------------------+
       | Thực thi Event    |<------- Cập nhật Trạng thái Hệ thống
       | Routine tương ứng |-------> Phát sinh Biến cố mới vào FEL
       +---------+---------+
                 |
                 v
       +-------------------+      Có
       | Điều kiện dừng?   |-------------> [Xuất kết quả Trace/Log] -> (Kết thúc)
       +---------+---------+
                 | Không
                 +-----------------------+

3.2. Cấu trúc nội tại và Quản lý tài nguyên trong ns-3

  • Quản lý bộ nhớ với Smart Pointers (Ptr<T>): Để loại bỏ hoàn toàn nguy cơ rò rỉ bộ nhớ (memory leaks) khi cấp phát động, ns-3 triển khai kỹ thuật đếm tham chiếu (Reference Counting) thông qua lớp giao diện mẫu Ptr. Khi đối tượng gói tin di chuyển qua các tầng mạng, bộ đếm tham chiếu tự động tăng/giảm và giải phóng bộ nhớ khi giá trị đếm trở về 0.
  • Biểu diễn Packet và Cơ chế Copy-on-Write: Mỗi đối tượng Packet trong ns-3 bao gồm một bộ đệm byte (Buffer), danh sách ByteTag, PacketTag, và siêu dữ liệu PacketMetadata. ns-3 áp dụng kỹ thuật Copy-on-Write: nhiều con trỏ có thể chia sẻ cùng một vùng đệm dữ liệu; việc sao chép vùng nhớ vật lý chỉ diễn ra khi có thao tác ghi hoặc chỉnh sửa header/trailer, tối ưu hóa đáng kể tốc độ thực thi.
  • Mô hình Native Socket API không đồng bộ: Giao diện lập trình Socket trong ns-3 không sử dụng cơ chế chặn (blocking I/O) như Unix truyền thống mà triển khai cơ chế Asynchronous I/O dựa trên Callbacks (SetSendCallback, SetRecvCallback), phản ánh chính xác kiến trúc xử lý sự kiện hướng ngắt của nhân hệ điều hành.
+-------------------------------------------------------------------------+
|                        CẤU TRÚC GÓI TIN TRONG NS-3                      |
+-------------------------------------------------------------------------+
|  +-------------------------------------------------------------------+  |
|  |                           Packet (Object)                         |  |
|  |                                                                   |  |
|  |  [ PacketMetadata ] : Lưu vết UID, cấu trúc phân mảnh, debug      |  |
|  |  [ PacketTag List ] : Lưu thông tin điều khiển tầng (Layer Tags)  |  |
|  |  [ ByteTag List ]   : Đánh dấu metadata trên từng byte dữ liệu    |  |
|  |                                                                   |  |
|  |  +-------------------------------------------------------------+  |  |
|  |  |                 Byte Buffer (Dữ liệu thực tế)               |  |  |
|  |  |  [ Header (IP/TCP) ] + [ Payload Buffer ] + [ Trailer ]     |  |  |
|  |  +-------------------------------------------------------------+  |  |
|  +-------------------------------------------------------------------+  |
+-------------------------------------------------------------------------+

3.3. Quy trình 4 bước xây dựng kịch bản mô phỏng

  1. Thiết lập sơ đồ mạng (Topology Generation): Sử dụng các NodeContainer, NetDeviceContainer và Helper Objects (PointToPointHelper, CsmaHelper).
  2. Cấu hình giao thức & Ứng dụng (Protocol & Traffic): Cài đặt chồng giao thức Internet (InternetStackHelper), gán dải địa chỉ IPv4/IPv6, và thiết lập ứng dụng truyền thông (như UdpEchoClient, UdpEchoServer).
  3. Thực thi vòng lặp mô phỏng (Simulation Run): Lập lịch thời gian khởi chạy/kết thúc ứng dụng và kích hoạt Simulator::Run().
  4. Trích xuất & Phân tích dữ liệu vết (Trace Analysis): Ghi nhận dữ liệu ở định dạng PCAP để khảo sát trực quan bằng công cụ bên thứ ba.

4. Các phát hiện chính và Kết quả thực nghiệm (Key Findings)

Đề tài đã thiết kế và thực thi kiểm chứng nhiều kịch bản mô phỏng mạng trên hệ điều hành Linux sử dụng hệ thống biên dịch Waf và công cụ phân tích tcpdump/Wireshark:

+---------------------------------------------------------------------------+
|               CÁC KỊCH BẢN THỰC NGHIỆM VÀ KẾT QUẢ ĐẠT ĐƯỢC               |
+------------------+-----------------------+--------------------------------+
| Kịch bản         | Cấu hình kỹ thuật     | Kết quả kiểm chứng             |
+------------------+-----------------------+--------------------------------+
| 1. Point-to-Point| Delay: 2ms -> 1ms     | - RTT giảm chính xác từ        |
|    (Điểm - Điểm) | DataRate: 5 -> 10Mbps |   4.7ms xuống 2.3ms.           |
|                  | Port: 9 (Echo), 11    | - Đổi port sang 11: Client     |
|                  |                       |   hủy gói chính xác, không lỗi.|
+------------------+-----------------------+--------------------------------+
| 2. CSMA/CD       | Băng thông: 100Mbps   | - PCAP ghi nhận cơ chế đa truy |
|    (Ethernet Bus)| Delay: 6560ns/100m    |   cập thành công.              |
|                  | Node: 3 trạm CSMA     | - Trích xuất trace riêng biệt  |
|                  |                       |   cho từng NetDevice chuẩn xác.|
+------------------+-----------------------+--------------------------------+
| 3. Wireless Link | Băng thông: Chuẩn b/g | - Thu thập trace ở chế độ      |
|    (Mạng Wi-Fi)  | Mô hình MAC: 802.11   |   Promiscuous mode trực quan   |
|                  | Kênh vô tuyến động    |   trên Wireshark không mất gói.|
+------------------+-----------------------+--------------------------------+

4.1. Thực nghiệm mạng Point-to-Point (Liên kết Điểm - Điểm)

  • Khảo sát tham số trễ và băng thông: Khi thiết lập đường truyền Point-to-Point giữa Node 0 (Server) và Node 1 (Client) với gói tin UDP payload 1024 bytes:
    • Ở cấu hình mặc định (Delay 2ms, Data Rate 5Mbps), thời gian Round-Trip Time (RTT) đo được tại tầng ứng dụng phản ánh chính xác tổng trễ lan truyền, trễ truyền dẫn và thời gian xử lý stack giao thức.
    • Khi hiệu chỉnh độ trễ đường truyền xuống 1ms và tăng tốc độ lên 10Mbps, khoảng cách thời gian giữa các gói tin gửi/nhận giảm tuyến tính một cách chuẩn xác.
  • Xác thực kiểm soát lỗi cổng (Port Mismatch): Khi cố tình chuyển cổng đích của Client từ 9 (cổng hoạt động của UdpEchoServer) sang cổng 11, mô hình ns-3 ghi nhận hiện tượng không có gói tin phản hồi từ Server, gói tin bị drop hợp lệ mà không làm phát sinh lỗi phân đoạn bộ nhớ (Segmentation Fault).

4.2. Thực nghiệm mạng Ethernet sử dụng mô hình CSMA/CD

  • Xây dựng liên mạng gồm 1 mạng Point-to-Point kết nối với một mạng Bus đa điểm (CSMA) gồm 3 nút mạng trạm.
  • Bằng cách kích hoạt đối tượng Ipv4GlobalRoutingHelper, hệ thống định tuyến tĩnh toàn cục được thiết lập tự động giữa các subnet khác nhau.
  • Sử dụng chế độ Promiscuous Tracing trên kênh truyền CSMA, tập tin trace thu được cho phép quan sát toàn bộ các khung dữ liệu broadcast (như gói tin phân giải địa chỉ ARP) và các khung dữ liệu unicast đi qua đường truyền chung.

4.3. Phân tích gói tin chuẩn PCAP

Một phát hiện mang tính thực tiễn cao của nghiên cứu là khả năng tương thích 100% của tệp vết ns-3 với các phần mềm chuẩn công nghiệp:

  • Tệp myfirst-0-0.pcapmyfirst-1-0.pcap sinh ra từ các giao tiếp mạng được đọc và mổ xẻ trực tiếp bằng tcpdumpWireshark.
  • Cấu trúc tiêu đề IPv4, độ dài gói tin, trường TTL, số hiệu chuỗi UDP và thời gian dấu ấn (timestamp) hiển thị chi tiết đến cấp độ microsecond, tạo điều kiện thuận lợi cho việc kiểm tra chéo (cross-validation) tính đúng đắn của mô hình.

5. Đóng góp khoa học và Giá trị ứng dụng (Scientific & Practical Value)

+-------------------------------------------------------------------------+
|                  CÁC TRỤ CỘT ĐÓNG GÓP CỦA ĐỀ TÀI                        |
+------------------------------------+------------------------------------+
| VỀ HỌC THUẬT & LÝ THUYẾT           | VỀ ỨNG DỤNG & ĐÀO TẠO              |
+------------------------------------+------------------------------------+
| - Hệ thống hóa lý thuyết DES cho   | - Xây dựng bộ giáo trình thực hành |
|   mạng máy tính.                   |   chuẩn trên C++ / Python.         |
| - Làm rõ kiến trúc phần mềm        | - Giảm 100% chi phí phần cứng phòng|
|   hướng đối tượng thế hệ mới.      |   lab mạng truyền thông.           |
| - Chuẩn hóa quy trình phân tích    | - Cung cấp nền tảng thẩm định giao |
|   vết dữ liệu qua PCAP/Wireshark.  |   thức cho sinh viên & học viên.   |
+------------------------------------+------------------------------------+

5.1. Đóng góp về mặt học thuật và phương pháp luận

  1. Hệ thống hóa lý thuyết mô phỏng mạng hiện đại: Đề tài đã diễn giải một cách mạch lạc và khoa học các nguyên lý mô phỏng biến cố rời rạc, làm rõ cơ chế quản lý vòng lặp sự kiện của ns-3, giúp các nhà nghiên cứu trong nước tiếp cận nhanh chóng với tiêu chuẩn công nghệ quốc tế.
  2. Phương pháp tiếp cận phần mềm mẫu mực: Minh họa rõ nét việc ứng dụng các mẫu thiết kế (Design Patterns) tiên tiến trong kỹ thuật mạng: cơ chế Smart Pointer để chống Memory Leak, kỹ thuật Factory Pattern để khởi tạo Socket, và kỹ thuật Non-blocking Callback để mô phỏng tương tác hệ điều hành.

5.2. Giá trị ứng dụng thực tiễn và đào tạo

  1. Hiện đại hóa chương trình giảng dạy: Báo cáo tổng kết và các phụ lục mã nguồn (C++ và Python) đóng vai trò là tài liệu tham khảo chuẩn mực cho các môn học như Mạng máy tính, Hệ thống viễn thông, và Mô phỏng mạng tại Đại học Sư phạm Kỹ thuật TP.HCM cũng như các trường đại học khối kỹ thuật.
  2. Tiết kiệm chi phí nghiên cứu và đào tạo: Việc ứng dụng ns-3 cho phép xây dựng các phòng thí nghiệm mạng ảo với chi phí bản quyền và thiết bị bằng 0, nhưng vẫn đảm bảo sinh viên và học viên cao học có được trải nghiệm phân tích gói tin chân thực như trên router/switch vật lý của Cisco hay Juniper.

6. Đối tượng hưởng lợi (Target Audience & Benefits)

Báo cáo nghiên cứu đem lại giá trị thiết thực cho nhiều nhóm đối tượng trong hệ sinh thái khoa học và công nghệ:

  • Giảng viên và Giảng viên hướng dẫn: Sử dụng tài liệu làm khung bài giảng thực hành, thiết kế các bài lab mô phỏng định tuyến, điều khiển luồng, và phân tích hiệu năng mạng cho sinh viên đại học và học viên cao học.
  • Học viên Sau đại học và Nghiên cứu sinh: Tiết kiệm hàng tháng nghiên cứu cơ sở nhờ nắm vững kiến trúc ns-3 để tập trung phát triển các giải thuật định tuyến mới, giao thức MAC cho mạng cảm biến không dây (WSN), mạng Ad-hoc xe cộ (VANET) hoặc mạng 5G.
  • Kỹ sư Hạ tầng Mạng và Quản trị Hệ thống: Tiếp cận công cụ mô phỏng để đánh giá trước các kịch bản thay đổi cấu hình, nâng cấp băng thông, hoặc phân luồng lưu lượng mạng doanh nghiệp trước khi triển khai trực tiếp trên môi trường Production.
  • Sinh viên chuyên ngành CNTT, An toàn thông tin, Điện tử - Viễn thông: Rèn luyện kỹ năng lập trình mạng với C++/Python, nâng cao tư duy phân tích gói tin và hiểu sâu về kiến trúc các tầng giao thức OSI/TCP-IP.

7. Các câu hỏi thường gặp (FAQ)

1. Điểm khác biệt quan trọng nhất giữa ns-2 và ns-3 được chỉ ra trong nghiên cứu là gì?

Điểm khác biệt cốt lõi nằm ở kiến trúc ngôn ngữ và độ trung thực của mô hình. Trong khi ns-2 sử dụng mô hình kép phức tạp kết hợp giữa C++ và OTcl khiến việc gỡ lỗi rất khó khăn, ns-3 được viết hoàn toàn bằng C++ nguyên bản và hỗ trợ ràng buộc (binding) Python. Hơn nữa, cấu trúc Packet trong ns-3 phản ánh đúng các byte buffer thực tế của hệ điều hành, cho phép tích hợp trực tiếp mã mạng từ thế giới thực.

2. Tại sao ns-3 lại sử dụng cơ chế Con trỏ thông minh (Smart Pointers)?

Các chương trình mô phỏng mạng phải xử lý hàng triệu gói tin được cấp phát động liên tục. Việc sử dụng new/delete thủ công trong C++ rất dễ gây ra hiện tượng rò rỉ bộ nhớ (Memory Leak), làm sụp đổ chương trình khi chạy mô phỏng dài. Cơ chế Ptr<T> của ns-3 tự động đếm tham chiếu (Reference Counting) và giải phóng bộ nhớ an toàn ngay khi đối tượng không còn được sử dụng.

3. Dữ liệu đầu ra từ mô phỏng ns-3 có thể sử dụng cho các công cụ nào khác?

ns-3 hỗ trợ xuất dữ liệu ra định dạng chuẩn PCAP (Packet Capture). Nhờ đó, các tập tin vết này có thể được đọc, lọc và phân tích biểu đồ trực quan bằng các phần mềm phân tích mạng tiêu chuẩn quốc tế như Wireshark, tcpdump, hoặc phân tích định lượng bằng thư viện khoa học GSL (GNU Scientific Library)Python Matplotlib.

4. Kết quả từ các kịch bản mô phỏng trong đề tài có khả năng mở rộng không?

Hoàn toàn có thể mở rộng. Nghiên cứu đã kiểm chứng trên 3 mô hình cơ bản (Point-to-Point, Bus CSMA, Wireless). Trên nền tảng này, các nhà nghiên cứu có thể mở rộng quy mô lên hàng nghìn nút mạng, tích hợp các mô hình di động (Mobility Models), các mô hình mạng không dây phức tạp (LTE, MANET), hoặc mô phỏng phân tán trên các hệ thống tính toán hiệu năng cao.

5. Ứng dụng thực tế nổi bật nhất của đề tài này tại các trường đại học là gì?

Đề tài cung cấp tài liệu kỹ thuật hoàn chỉnh và bộ mã nguồn thực nghiệm mẫu để đưa trực tiếp vào giảng dạy môn Mô phỏng Mạng máy tính. Điều này giúp giải quyết bài toán thiếu hụt thiết bị phần cứng chuyên dụng tại các phòng thí nghiệm, đồng thời nâng cao chất lượng đồ án tốt nghiệp của sinh viên.


8. Kết luận (Conclusion)

Đề tài NCKH cấp trường trọng điểm T2014-156: "Tìm hiểu NS (Network Simulator) ứng dụng mô phỏng mạng máy tính" do ThS. Nguyễn Đăng Quang chủ nhiệm đã hoàn thành xuất sắc các mục tiêu nghiên cứu đặt ra. Đề tài đã hệ thống hóa tường tận lý thuyết mô phỏng biến cố rời rạc, làm sáng tỏ các cơ chế phần mềm cốt lõi của công cụ mô phỏng hiện đại ns-3, và xây dựng thành công các kịch bản thực nghiệm mẫu từ mạng có dây đến không dây.

Trong tương lai, hướng phát triển tự nhiên của nghiên cứu là tiếp tục mở rộng mô phỏng các giao thức định tuyến động trên mạng diện rộng (BGP, OSPF), nghiên cứu đánh giá hiệu năng mạng 4G/5G, và tích hợp các công cụ ảo hóa mạng nhằm kết nối môi trường mô phỏng ns-3 với các thiết bị vật lý thực tế. Đề tài khẳng định vị trí là nguồn tài liệu tham khảo học thuật giá trị cao cho cộng đồng kỹ thuật mạng máy tính và truyền thông.