Thông tin tài liệu
1
BỘ GIÁO DỤC VÀ ĐÀO TẠ
O
TẬP ĐOÀN BƯU CHÍNH VIỄN
THÔNG VIỆT NAM
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
NGÔ THỊ LAN
MÔ PHỎNG MẠNG IP VÀ LÀM CHỦ PHẦN MỀM NS-3
CHUYÊN NGÀNH : TRUYỀN DỮ LIỆU VÀ MẠNG MÁY TÍNH
MÃ SỐ : 60.48.15
Người hướng dẫn khoa học: TS Đinh Văn Dũng
TÓM TẮT LUẬN VĂN THẠC SĨ
HÀ NỘI - 2011
2
MỞ ĐẦU
I. Đặt vấn đề
Thế giới của mạng viễn thông và mạng máy tính đã trải qua kinh nghiệm trên 2 thập niên trước, một sự
phát triển chưa từng có tiền lệ trong lĩnh vực cung cấp dịch vụ, âm lượng của quá trình truyền tin, các công
nghệ được sử dụng. Các mạng viễn thông, mà trước đây tập trung vào sự truyền tải sử dụng công nghệ
chuyển mạch, đã nhanh chóng phát triển theo hướng chuyển giao kỹ thuật số, dữ liệu, hình ảnh dùng các
công nghệ chuyển mạch gói TCP/IP.
Việc kết hợp các hệ thống làm tăng tính phức tạp trong xử lý là nguyên nhân dẫn đến sự ra đời của các
phương pháp mô hình hóa và các kỹ thuật mô phỏng trong khi quy hoạch, thiết kế mạng với công nghệ nền
IP (Internet, NGN, 3G, MAN-E, ).
Ngay nay, việc mô hình hóa và mô phỏng là một trong hầu hết các kỹ thuật được sử dụng rộng rãi trong
thiết kế các hệ thống phức tạp do nó linh hoạt và hiệu quả. Đồng thời, sử dụng các mô phỏng làm cho việc
học tập, nghiên cứu các hệ thống trong các nhà trường hiệu quả hơn trong khi cơ sở vật chất chưa đáp ứng
được.
II. Mục tiêu nghiên cứu của luận văn
Xuất phát từ sự hiệu quả trong sử dụng, đồng thời cũng xuất phát từ yêu cầu của trường Đại học Công
Nghiệp Việt – Hung: Khuyến khích giáo viên sử dụng các công cụ mô phỏng bài giảng, để học sinh quan sát
trực quan và cũng là để giải quyết vấn đề thiếu phương tiện dạy học. Và từ thực tế dạy học chuyên nghành
“Quản trị mạng” tại trường.
Đề tài “Mô phỏng mạng IP và làm chủ phần mềm NS-3” với mong muốn sau khi hoàn thành sẽ giúp
cho công tác giảng dạy được thuận lợi hơn để truyền đạt tối đa kiến thức đến cho sinh viên chuyên nghành
“Quản trị mạng” nơi em công tác. Do đó, mục tiêu của đề tài cần đạt được là:
- Tìm hiểu các phương pháp mô hình hóa mạng IP: mô phỏng sự kiện rời rạc, mô phỏng theo vết (trace
driven) và phương pháp mô phỏng Monte.
- Làm chủ phần mềm mã nguồn mở ns-3, nắm vững các lớp, mô hình và cách sử dụng của các lớp trong
ns-3
- Thực hiện các minh họa mô phỏng sử dụng ns-3.
III. Bố cục của luận văn
Luận văn gồm 3 nội dung sau:
Chương 1 : Mô phỏng mạng IP
Chương 2 : Kiến trúc hệ thống phần mềm NS-3
Chương 3 : Phát triển và ứng dụng phần mềm mô phỏng NS-3
3
Chương 1
MÔ PHỎNG MẠNG IP
1.1. Các phương pháp mô hình hóa mạng IP
1.1.1. Phương pháp mô phỏng sự kiện rời rạc
Một mô phỏng sử dụng mô hình trạng thái rời rạc của hệ thống được gọi là phương pháp mô phỏng
sự kiện rời rạc. Phương pháp này ngược với các phương pháp mô phỏng sự kiện liên tục ở chỗ trong mô
phỏng sự kiện liên tục trạng thái của hệ thống lấy các giá trị liên tục. Các mô hình trạng thái liên tục được sử
dụng trong các mô phỏng hóa học do trạng thái của hệ thống được mô tả bởi sự tập trung của một chất hóa
học. Trong các hệ thống máy tính, các mô hình sự kiện rời rạc được sử dụng bởi vì trạng thái của hệ thống
được mô tả bởi số lượng công việc ở những thiết bị khác nhau. Lưu ý rằng thuật ngữ “rời rạc” không dùng để
chỉ giá trị thời gian được sử dụng trong mô phỏng. Phương pháp mô phỏng sự kiện rời rạc có thể sử dụng các
giá trị thời gian liên tục hay rởi rạc.
Tất cả phương pháp mô phỏng sự kiện rời rạc đều có chung một cấu trúc. Bất kể hệ thống được mô
hình là gì, thì phương pháp mô phỏng cũng sẽ có một số thành phần như sau: Nếu sử dụng ngôn ngữ lập
trình đa dụng, thì các nhà phân tích phải tự phát triển tất cả các thành phần. Nguôn ngữ lập trình mô phỏng
thì có thể cung cấp một vài thành phần, còn lại các nhà phân tích phải tự phát triển.
1.1.2. Phương pháp mô phỏng theo vết (trace driven)
Mô phỏng sử dụng trace làm đầu vào là phương pháp mô phỏng trace-driven. Trace là một bản ghi
các sự kiện được sắp xếp theo thời gian của một hệ thống thật. Các phương pháp mô phỏng trace-driven này
khá thông dụng trong các phân tích hệ thống máy tính. Chúng thường được sử dụng để phân tích và điều
chỉnh các giải thuật quản lý tài nguyên. Giải thuật paging, phân tích bộ nhớ cache, các giải thuật lập lịch
CPU, các giải thuật ngăn chặn nghẽn và các giải thuật để phân chia động bộ nhớ là các ví dụ về các trường
hợp đã áp dụng thành công phương pháp mô phỏng Trace-driven và được để cập đến trong các tài liệu
Trong những nghiên cứu đó, Trace của tài nguyên yêu cầu được dùng làm đầu vào để thực hiện mô phỏng để
mô hình những giải thuật khác nhau.
1.1.3. Phương pháp mô phỏng Monte
Phương pháp mô phỏng tĩnh hay một phương pháp mô phỏng nào đó không có trục thời gian thì
được gọi là phương pháp mô phỏng Monte Carlo. Những phương pháp thường được dùng để mô hình những
hiện tượng xác suất , những hiện tượng không thay đổi đặc tính theo thời gian. Giống như một phương pháp
mô phỏng động, các phương pháp mô phỏng tĩnh cũng cần phải có một bộ tạo các số giả ngẫu nhiên. Phương
pháp mô phỏng Monte Carlo cũng được sử dụng để tính toán các biểu thức không theo sắc xuất bằng cách sử
dụng các phương pháp theo sắc xuất.
1.2. Đánh giá các phần mềm mô phỏng mạng IP
1.2.1. Các tiêu chí đánh giá một phần mềm mô phỏng mạng
- Phương pháp mô phỏng được hỗ trợ: Các phương pháp mô phỏng phổ biến gồm có 3 phương pháp: mô
phỏng sự kiện rời rạc, mô phỏng theo vết (trace driven) và mô phỏng Monte.
- 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ợ việc tạo các topo mạng: 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.
4
- 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.
- 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 mở trong đó, các mô hình hiện thời có thể được thay thế, chỉnh
sửa, hay bổ sung các mô hình mới.
- 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à 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.
1.2.2. Một số phần mềm mô phỏng mạng IP
1.2.2.1. OPNET
1.2.2.2. OMNeT++
1.2.2.3. NS-2
1.2.2.4. JiST
1.2.2.5. SimPy
1.3. So sánh hiệu suất của các phần mềm mô phỏng
1.3.1. Phương pháp thực hiện
Thực hiện trên một mô hình mạng bất kỳ và chạy trên tất cả các phần mềm mô phỏng ns-2, OMNet++,
ns-3, SimPy và JiST/SWANS. Bởi vì, hiệu suất của quá trình mô phỏng mạng phụ thuộc chủ yếu vào mã của
các mô hình mạng và độ phức tạp tính toán của chúng.
1.3.2. Khả năng tương đương của các mô hình
Thực hiện một mô phỏng trên 5 phần mềm mô phỏng khác nhau ở trên. Trong ví dụ này ta chạy mô
phỏng một mô hình mạng trong tất cả các phần mềm mô phỏng, xác suất mất mát thông tin nằm trong
khoảng giữa 0 và 1, cấu trúc liên kết mạng hình vuông giới hạn kích thước mạng từ 4 tới 1024 nút , thời gian
mô phỏng được đặt là 600s.
Kết quả đạt được cho thấy tỷ lệ mất mát thông tin của SimPy là hơi cao hơn mức trung bình, tuy
nhiên vẫn nằm trong giới hạn chấp nhận được. Từ những kết quả này, ta có thể kết luận rằng việc triển khai
độc lập các mô phỏng trong thực tế cho kết quả tương đương nhau.
1.3.3. So sánh hiệu suất
Với thực tế khả năng mô phỏng của các phần mềm cho kết quả như nhau, bây giờ ta tiến hành so sánh
từng công cụ mô phỏng riêng, đánh giá ở thông số: Thời gian chạy mô phỏng (simulation runtime) và sử
dụng bộ nhớ (memory usage). Để đánh giá khả năng của các phần mềm mô phỏng, chúng ta sẽ thực hiện 2
lượt chạy khác nhau sử dụng một mô phỏng. Trong lượt chạy đầu tiên, xác suất mất thông tin được đặt cố
định là 0.10 với kích thước mạng trong khoảng từ 4 tới 3025 nút.
5
Hình 1.3. Thời gian chạy mô phỏng thời gian so với kích thước mạng
Lượt thứ 2 sử dụng kích thức mạng cố định là 3025 nút, xác suất mất thông tin nằm trong khoảng 0.0
và 1.0. Tất cả các kết quả đưa ra sau đây là trung bình của 5 lần thực hiện đối với mỗi loạt mô phỏng. Trong
cả 2 loạt mô phỏng, thời gian mô phỏng được đặt là 600s.
1.3.3.1. Thời gian chạy mô phỏng
Hình 1.3 cho thấy thời gian chạy mô phỏng được đo ở các kích thước mạng khác nhau đối với các
công cụ mô phỏng được so sánh. Trước hết, những kết quả này cho thấy rằng SimPy không hoạt động tốt và
vì thế không thể áp dụng mô phỏng mạng có quy mô lớn: Đối với một mạng có kích thước 3025 nút, trung
bình nó cần tới 1225 giây để hoàn thành việc chạy mô phỏng. Trái ngược với điều đó, cùng một công việc đó
JiST hoàn thành nhanh hơn khoảng 14 lần, kết quả thời gian thực hiện trung bình là 86s. Nhìn qua thì hiệu
suất thời gian chạy tổng thể của JiST là đáng kinh ngạc.
Thực tế cho thấy là nó được xây dựng dựa trên Java và vẫn còn nhanh hơn so với OMNeT++ và ns-
3, là những công cụ được thực hiện một cách tự nhiên. Điều đó là do giới hạn thành công là từ kiến trúc của
JiST: Bên cạnh việc thực hiện song song trên các thực thể khác nhau, JiST thực hiện tối ưu hóa thời gian
chạy dựa trên sự phân tích của mã byte thực hiện. Theo hiệu suất thời gian chạy của Ns-3, sự cải tiến về kiến
trúc, cụ thể là việc bỏ oTCL/C++, được phản ánh rõ ràng trong kết quả đã thu được ở trên, ns-3 được coi là
nhanh hơn so với phiên bản trước (ns-2) của nó. Trong khi hiệu suất thời gian chạy của OMNeT++ hơi kém
hơn so với ns-3 và JiST, cả 3 công cụ mô phỏng này thể hiện rằng hầu như có cùng một khả năng mở rộng
theo thời gian chạy mô phỏng.
Hình 1.4. Thời gian chạy mô phỏng so với việc giảm xác suất
6
Để hiểu sâu hơn về các cách thức trong thời gian chạy của các công cụ mô phỏng khác nhau ta có thể
được quan sát từ các kết quả trong hình 1.4. Ở đây, có thể hình dung thời gian chạy trung bình từ loạt mô
phỏng thứ 2 đối với một mạng có kích thước cố định là 3025 nút và các xác suất mất mát thông tin khác
nhau. Với việc tăng các xác suất mất mát thông tin, thời gian chạy mô phỏng tự nhiên giảm một cách nhanh
chóng đối với toàn bộ các công cụ mô phỏng, càng ngày càng nhiều gói tin bị loại bỏ từ mô phỏng, do đó
dẫn đến kết quả là ít sự kiện được xử lý hơn. Nói cách khác, xác suất mất mát thông tin trực tiếp phản ánh số
các sự kiện được thực hiện trong các mô phỏng. Ta có thể thấy rằng thời gian chạy mô phỏng SimPy tăng
nhanh hơn nhiều ở xác xuất mất thông tin thấp hơn bất kỳ một công cụ mô phỏng nào khác. Từ các kết quả
đó, ta có thể kết luận rằng thực tế SimPy có một ít sự kiện xử lý hơn các lõi mô phỏng khác.
1.3.3.2. Sử dụng bộ nhớ
Tương tự như phân tích ở trên về thời gian chạy mô phỏng. Hình 1.5 mô tả việc sử dụng bộ nhớ tối
đa của từng công cụ mô phỏng riêng biệt trong hai loạt chạy mô phỏng.
Hình 1.5. Bộ nhớ sử dụng so với kích thước mạng
Từ kết quả trên cho thấy, JiST sử dụng tài nguyên bộ nhớ nhiều hơn so với các công cụ mô phỏng
khác. Ngoài ra, sự khác biệt trong sử dụng bộ nhớ giữa JiST và các công cụ khác tăng lên khi kích thước
mạng lớn hơn. Hiệu suất sử dụng bộ nhớ của ns-2, OMNeT++ và SimPY chia thành các đường tuyến tính
tương tự nhau thể hiện tốc độ tăng dần của việc sử dụng bộ nhớ khi kích thước mạng tăng và ns-3 là công cụ
mô phỏng hiệu quả nhất trong vấn đề này.
7
Chương 2
KIẾN TRÚC HỆ THỐNG PHẦN MỀM NS-3
2.1 Cấu trúc phần mềm NS-3
Ns-3 là một phần mềm mô phỏng mạng các sự kiện rời rạc mà trong đó lõi và các mô hình mô phỏng
được thực hiện trong C++. Ns-3 xây dựng một thư viện có thể là tĩnh hoặc động liên kết với một chương
trình chính của C++, định nghĩa các cấu trúc mô phỏng và bắt đầu mô phỏng. Ns-3 cũng đưa ra hầu như tất
cả các API của nó cho Python, cho phép các chương trình Python sử dụng một module Ns-3 tương tự như
được sử dụng trong C++.
2.2 Lịch trình thời gian thực (RealTime Scheduler)
Mục đích của lịch trình thời gian thực là đồng bộ giữa thời gian mô phỏng với thời gian thực bên
ngoài. Nếu không có sự hiện diện các một thời gian thực bên ngoài (biên của đồng hồ) thời gian của các mô
phỏng tiếp theo sẽ được nhảy ngay lập tức sau khi kết thúc một mô phỏng trước đó.
2.3 Mô phỏng rời rạc với MPI
Mô phỏng sự kiện rời rạc và song song cho phép thực hiện một chương trình mô phỏng trên nhiều bộ
xử lý. Bằng cách chia các mô phỏng thành các xử lý thích hợp, các LP, mỗi LP có thể được thực hiện bởi
một bộ xử lý khác nhau. Phương pháp mô phỏng này cho phép mô phỏng các mô phỏng trong phạm vi rất
lớn bằng cách thúc đẩy làm tăng năng lực xử lý và sự sẵn có của bộ nhớ. Để đảm bảo chắc chắn việc thực
hiện mô phỏng rời rạc là đúng, bắt buộc phải có một thông điệp truyền qua giữa các LP. Để hỗ trợ cho các
mô phỏng rời rạc trong ns-3, một giao diện chuyển thông điệp chuẩn (Message Passing Interface (MPI))
được sử dụng, cùng với một lớp mô phỏng rời rạc mới. Hiện tại, việc phân chia một mô phỏng cho các mục
đích rời rạc trong ns-3 chỉ có thể tập trung ở các liên kết điểm nối điểm (Point-to-Point)
2.4 Node và NetDevices
Node là một thành phần của lớp Node. Một lớp Node bao gồm các NetDevice và những bộ phận cấu
trúc bên trong là các phương thức và các ứng dụng. Đối tượng Node chứa một danh sách các ứng dụng
(Application) (ban đầu là danh sách rỗng), một danh sách các NetDevice (ban đầu là danh sách rỗng), một
danh sách các ProtocolHandlers, và một số nguyên ID duy nhất và một ID của hệ thống (đối với mô phỏng
rời rạc).
2.5 Wifi NetDevice
WifiNetDevice mô hình hóa một điều khiển giao tiếp của mạng không dây dựa trên chuẩn
IEEE802.11. Tập hợp các mô hình của 802.11 trong ns-3 cung cấp một thực thi chính xác mức MAC của
các chi tiết kỹ thuật 802.11 và cung cấp một mô hình mức PHY của các chi tiết kỹ thuật 802.11a. Mã nguồn
của NetDevice Wifi có trong thư mục src/devices/wifi.
2.6 Wimax NetDevice
Khi thêm các đối tượng WimaxNetDevice vào các nút của Ns-3, người ta có thể tạo ra các mô hình
mạng dựa trên chuẩn 802.16. Các tính năng quan trọng nhất của mô hình Wimax trong ns-3 gồm:
- Khả năng mở rộng, lớp vật lý thực tế và mô hình kênh.
- Phân loại gói tin cho các lớp con hội tụ IP
- Hiệu quả trong các kế hoạch liên kết trên và liên kết dưới.
- Hỗ trợ dịch vụ truyền đa điểm và quảng bá (Multicast và Broadcast Service (MBS)) và chức năng truy
tìm gói tin.
8
Mã nguồn của các mô hình WiMAX được đặt trong thư mục src/devices/wimax
2.7 Các API Socket
API của socket đã tồn tại từ lâu được sử dụng bởi các ứng dụng người dùng để truy cập các dịch vụ
mạng trong nhân mạng. “Socket” là một khái niệm trừu tượng, giống như một kênh điều khiển tập tin của
Unix, cho phép các ứng dụng kết nối với các máy tính khác trên Internet và trao đổi dòng dữ liệu tin cậy và
các gói dữ liệu không tin cậy, giữa các dịch vụ với nhau. Ns-3 cung cấp 2 loại API Socket, và điều đó là rất
quan trọng để hiểu được sự khác biệt giữa chúng. Loại đầu tiên là một API ns-3 tự nhiên trong khi loại thứ 2
sử dụng các dịch vụ của API tự nhiên để cung cấp một API giống như POSIX như là một phần của quá trình
xử lý ứng dụng tổng thể. Cả 2 loại này đều cố gắng sao cho gần với các API cơ bản để người viết ứng dụng
trên hệ thống Unix quen với nó, nhưng các biến thể POSIX là rất gần với các API Socket của hệ thống thực.
2.8 Tổng quan về định tuyến
Ns-3 được thiết kế nhằm mục đích hỗ trợ các phương pháp định tuyến và các giao thức truyền thống,
các cổng hỗ trợ thực thi các định tuyến trên mã nguồn mở và tạo điều kiện để nghiên cứu các kỹ thuật định
tuyến không chính thống. Một số vấn đề về định tuyến trong ns-3: Kiến trúc định tuyến, cấu hình các định
tuyến toàn cục đối với cấu trúc mạng có dây, các giao thức định tuyến đơn, định tuyến đa luồng.
2.9 Tạo một mô hình Ns-3 mới
2.9.1 Phương pháp thiết kế
Hãy xem xét việc mô hình muốn tạo làm việc như thế nào; nó nên làm những gì. Hãy suy nghĩ về
những điều này:
+ Chức năng: Nó cần có những chức năng gì ? Những thuộc tính hay những cấu hình nào được người
dùng nhìn thấy ?
+ Sử dụng lại: bao nhiêu người có khả năng sử dụng lại thiết kế của tôi? Tôi có thể sử dụng lại mã từ
ns-2 để bắt đầu? Làm thế nào để người sử dụng tích hợp mô hình với phần còn lại của mô phỏng khác?
+ Phụ thuộc: Làm thế nào tôi có thể làm giảm bớt sự phụ thuộc vào bên ngoài ở trong đoạn mã mới
của tôi càng nhiều càng tốt (để làm cho nó module hóa hơn không)? Ví dụ, tôi muốn sử dụng Ipv6 mà không
phụ thuộc vào IPv4? Tôi có nên tránh bất kỳ sự phụ thuộc vào IP ở tất cả các phiên bản?
2.9.2 Xây dựng khung cho các hàm cần tạo
Khi đã sẵn sàng để bắt đầu thực hiện và đã xác định những gì muốn xây dựng. Một cách để giải quyết
là tạo ra khung cho các hàm cần tạo (scaffolding) và điền các chi tiết như là đã hoàn thành quá trình thiết kế.
Phần này mô tả qua rất nhiều bước nên cần cân nhắc để định nghĩa scaffolding hoặc khung sườn không chứa
nội dung nào của những mô hình gì sẽ được thực thi. Nó thường được thực hành tốt để không phải đợi để có
được những chi tiết này kết hợp với người dùng cuối, nhưng thay vì đưa ngay khung trong mô hình vào hệ
thống và sau đó thêm một số chức năng mới sau khi API và quá trình tích hợp dường như thích hợp
2.9.3 Tạo một mô hình Ns-3 mới
2.9.3.1 Bổ sung thêm các hỗ trợ cơ bản vào lớp
point-to-point-net-device.h
class ErrorModel;
/**
* Mô hình lỗi đối với các sự kiện nhận gói tin
Ptr<ErrorModel> m_receiveErrorModel;
9
2.9.3.2 Bổ sung bộ xử lý truy cập
void
PointToPointNetDevice::SetReceiveErrorModel (Ptr<ErrorModel> em)
NS_LOG_FUNCTION (this << em);
m_receiveErrorModel = em;
.AddAttribute ("ReceiveErrorModel",
"Mô hình lỗi nhận được sử dụng để mô phỏng mất gói tin",
PointerValue (),
MakePointerAccessor (&PointToPointNetDevice::m_receiveErrorModel),
MakePointerChecker<ErrorModel> ())
2.9.3.3 2.9.3.3 Xâm nhập vào hệ thống
void PointToPointNetDevice::Receive (Ptr<Packet> packet)
NS_LOG_FUNCTION (this << packet);
uint16_t protocol = 0;
if (m_receiveErrorModel && m_receiveErrorModel->IsCorrupt (packet) )
/ / Nếu chúng ta có một mô hình thông báo lỗi và nó chỉ ra thời điểm mất một gói dữ liệu bị
hỏng, không chuyển tiếp gói tin này, hãy để cho nó đi.
m_dropTrace (packet);
else
/ / Tìm được dấu vết nhận tiếp theo thì gỡ bỏ tiêu đề của giao thức điểm nối điểm và chuyển tiếp
gói tin này lên ngăn xếp giao thức.
m_rxTrace (packet);
ProcessHeader(packet, protocol);
m_rxCallback (this, packet, protocol, GetRemote ());
if (!m_promiscCallback.IsNull ())
m_promiscCallback (this, packet, protocol, GetRemote (),
GetAddress (), NetDevice::PACKET_HOST);
2.9.3.4 Tạo một đoạn mã không có chức năng
simple-error-model.cc
/ / Mô hình thông báo lỗi
// Chúng tôi muốn bổ sung thêm một mô hình lỗi vào NetDevice của Node 3.
// Chúng tôi có thể có được một xử lý tới NetDevice thông quá kênh và node
// Các con trỏ
Ptr<PointToPointNetDevice> nd3 = PointToPointTopology::GetNetDevice
(n3, channel2);
Ptr<ErrorModel> em = Create<ErrorModel> ();
nd3->SetReceiveErrorModel (em);
bool
ErrorModel::DoCorrupt (Packet& p)
NS_LOG_FUNCTION;
NS_LOG_UNCOND("Corrupt!");
return false;
10
Chương 3
PHÁT TRIỂN VÀ ỨNG DỤNG PHẦN MỀM
3.1 Thực hiện gói tin IPv6 trong NS-3
Ns-3 ra đời nhằm đáp ứng sự phát triển mạnh mẽ của các công nghệ mạng, sự xuất hiện của công nghệ
không dây, trong đó bao gồm hỗ trợ tính di động và multihoming. Hiện nay, NS-3 đáp ứng được các yêu cầu
của một công cụ mô phỏng cơ bản. Tuy nhiên NS-3 chỉ tập trung vào IPv4, trong khi IPv6 đang được triển
khai trên mạng Internet và chắc chắn sẽ là giao thức được sử dụng trên Internet trong năm mươi năm tới, và
vì thế bất kỳ một công cụ mô phỏng mạng nào cũng nên hỗ trợ cho IPv6. Hầu hết các phát triển trong tương
lai của các giao thức cho Internet sẽ hỗ trợ IPv6
3.1.1 Đặc điểm của IPv6
Hiện nay, giao thức được sử dụng là giao thức mạng phiên bản 4 (IPv4). Giao thức này đã được đưa
vào sử dụng rất hiệu quả. Tuy nhiên, sự phát triển ngày càng tăng của mạng Internet gây ra sự thiếu hụt về
địa chỉ và vấn đề bảo trì các tuyến đường. Vấn đề thiếu hụt địa chỉ được khắc phục một phần bằng cách giới
thiệu rộng rãi về công nghệ NAT (Network Address Translators), cho phép kết hợp một địa chỉ IP toàn cục
duy nhất cho nhiều máy trong cùng một mạng riêng. Mặc dù vậy, việc sử dụng NAT gây rắc rối trong quá
trình truyền thông giữa các máy và cũng có thể ảnh hưởng đến hiệu suất của mạng. Để giải quyết vấn đề này
và để nâng cao dịch vụ được cung cấp bởi IP thì phải chấp nhận một phiên bản IP mới, là IP phiên bản 6
(IPv6). IPv6 đã được đưa ra để giải quyết phần lớn các vấn đề đúc kết được trên 30 năm qua trên mạng
Internet. Đầu tiên, nó mở rộng không gian địa chỉ từ 232 tới 2128. Một địa chỉ IPv6 được cấu tạo gồm 128
bit: 64 bit đầu tiên thường được dùng để định danh một mạng (phần đầu của mạng), trong khi đó 64 bit sau
dùng để định vị các máy trong mạng này. Mỗi địa chỉ IPv6 đều có thể hiện phạm vi của chúng: liên kết cục
bộ, trang cục bộ hay toàn cục. Phạm vi có hiệu lực của các địa chỉ liên kết cục bộ bị giới hạn bởi chính tên
của liên kết đó, ví dụ như các địa chỉ loại này chỉ được dùng để truyền thông trực tiếp giữa các máy gần
nhau. Một địa chỉ liên kết cục bộ được cấu hình tự động trên mỗi giao diện mạng bằng cách kết hợp tiền tố
FE80::/64 với IEEE802 E-64 của giao diện đó. Đối với một trang không kết nối được tới mạng Internet hoặc
vẫn là một mạng riêng thì nó có phạm vi cục bộ. Những địa chỉ này tương đương với các địa chỉ IPv4 riêng
(ví dụ 192.168.0.0). Tuy nhiên, những địa chỉ như thế này không được chấp nhận trong suốt quá trình định
tuyến và các vấn đề phân định ranh giới của một trang. Chúng được thay thế bởi địa chỉ cục bộ duy nhất.
Cuối cùng, các địa chỉ IPv6 toàn cục có thể được định tuyến trên toàn bộ mạng IPv6 và do đó được sử dụng
để truyền tải thông tin giữa hai máy IPv6 từ xa bất kỳ.
3.1.1.1 Phát hiện các nút mạng lân cận
IPv6 có một giao thức mới là giao thức phát hiện các nút mạng lân cận (Neighbor Discovery), thực
hiện một vài chức năng như khám phá các tuyến đường, phân giải địa chỉ (ánh xạ các địa chỉ IP với các địa
chỉ lớp liên kết), tự động cấu hình địa chỉ, tìm các nút mạng lân cận, quyết định bước nhảy tiếp theo và
chuyển hướng máy. Tất cả các thông điệp IPv6 (ICMPv6) được giao thức phát hiện các nút mạng lân cận
truyền đi đều được thực hiện bởi Giao thức điều khiển thông báo trên mạng (Internet Control Message
Protocol).
Giao thức phát hiện nút mạng lân cận cung cấp một thủ tục cấu hình địa chỉ mới đó là cơ chế tự động
cấu hình địa chỉ. Một máy tính có thể tự động cấu hình địa chỉ IPv6 có giá trị toàn cục khi nhận được một
thông điệp thông báo của bộ định tuyến (Router Advertisement) rằng bộ định tuyến truy cập cục bộ định kỳ
[...]... pháp mô hình hóa và một số phương pháp mô phỏng được sử dụng hiện nay - Giới thiệu một số phần mềm mô phỏng mạng hiện đang được sử dụng - So sánh hiệu suất của một số phần mềm mô phỏng hiện nay: OPNET, OMNET++, JiST, SimPy và NS- 2 về phương pháp thực hiện mô phỏng, hiệu suất thực hiện, thời gian chạy mô phỏng và nhu cầu sử dụng bộ nhớ khi thực hiện mô phỏng - Tổng quan về cấu trúc của phần mềm mô phỏng. .. phỏng NS- 3 Trình bày các chức năng, cấu trúc của các lớp trong ns- 3 - Ứng dụng phần mềm mô phỏng NS- 3 vào thực hiện một số mô phỏng 19 KIẾN NGHỊ VÀ HƯỚNG NGHIÊN CỨU TIẾP I Kiến nghị Với mong muốn sau khi nghiên cứu, thực hiện đề tài này sẽ góp phần hỗ trợ việc học các môn học về mạng máy tính và truyền thông tại trường Đại học Công Nghiệp Việt Hung Tác giả kiến nghị với ban giám hiệu nhà trường và các... được mô hình như một thiết bị làm nhiễu và làm giảm trong công nghệ lõi của ns- 3 Trong phần này, chúng ta sẽ thực hiện một kịch bản kết hợp với cả 2 loại thách thức Trong kịch bản này, một nút làm nhiễu và làm giảm di chuyển như thể hiện trong hình 3. 15 Người gửi ở tọa độ (30 0,0) người nhận ở vị trí tọa độ (0,0), và nút làm nhiễu ở tọa độ (-100,0) Trong khi mô phỏng nút làm giảm chạy ngang qua mạng. .. mô phỏng bước đầu tiên là cung cấp chi tiết thông tin thách thức bao gồm loại thách thức và chi tiết cụ thể của loại thách thức đó Bước thứ 2 là cung cấp một mô tả về cấu trúc liên kết mạng, bao gồm vị trí địa lý của nút hoặc tọa độ logic và một ma trận kề Bước thứ 3 là tự động sinh mã mô phỏng của ns- 3 dựa trên cấu trúc liên kết mạng và các mô tả thách thức Cuối cùng, tiến hành chạy các mô phỏng và. .. 15 mô phỏng minh họa rằng đường tròn đạt đến NY trong 7 giây ( để hạn chế thời gian mô phỏng) với tuyến đường ước lượng lại mỗi 3 giây (3. 10.1) Sprint suy ra từ cấu trúc liên kết (3. 10.2) Cấu trúc (3. 10 .3) cấu trúc liên kết giả 1 liên kết giả 2 Hình 3. 10: Ví dụ về các cấu trúc liên kết để ước tính các nút và các liên kết lỗi [11] Hình 3. 11:PDR trong suốt các liên kết có hại và không có hại Hình 3. 12:PDR... trong quy mô lớn, và các thách thức của môi trường Nguyên tắc phân loại thách thức mạng được dùng cho các công nghệ nền tảng mô phỏng thể hiện trong hình 3. 7 Hình 3. 7: Nguyên tắc phân loại các thách thức mạng Nguyên tắc này cần thiết để phân biệt những thách thức được đã đưa ra và hiểu hơn về tác động của chúng Các thách thức được chia thành 3 loại: Mục đích, phạm vi và miền hoạt động 3. 2.1 Các mô hình... (từ đây gọi là IP1 và IP2 ), tương ứng với mỗi tiền tố Như vậy, nút mạng này có thể hoặc là giao tiếp chỉ với IP1 hoặc IP2 hoặc là cả IP1 và IP2 3. 1.1 .3 Phương thức truyền đa điểm Phương thức truyền đa điểm IP là cơ chế chuyển các gói tin IP tới nhiều điểm đến cùng một lúc bằng cách thực hiện gửi mỗi gói tin một lần và khi gặp một điểm đến bị chia tách thì tạo một bản sao khác Khác với IPv4, phương thức... hành chạy các mô phỏng và phân tích hiệu suất mạng theo các kịch bản thách thức 3. 4 Các ví dụ mô phỏng Trong phần này, áp dụng nền tảng mô phỏng của các thách thức và phương pháp đánh giá các cấu trúc liên kết mẫu để chứng minh sự hữu ích của phương pháp này Các tham số mô phỏng ns- 3 cho như sau: mạng bao gồm các liên kết hai chiều có dây với băng thông 10Mb/s và thời gian truyền trễ là 2ms Việc định tuyến... quả các vấn đề sau: - Vận dụng các phần mềm mô phỏng vào dạy học chuyên ngành “Quản trị mạng tại trường để nâng cao chất lượng dạy học - Lập kế hoạch tập huấn, bồi dưỡng, tạo điều kiện cho đội ngũ giáo viên tiếp cận và đưa vào nghiên cứu và sử dụng các phần mềm mã nguồn mở - Khuyến khích giáo viên sử dụng các công cụ mô phỏng bài giảng, để học sinh quan sát trực quan và cũng là để giải quyết vấn đề thiếu... Trong một khu vực khi việc suy giảm ảnh hưởng tới nút làm nhiễu, PDR đạt được giữa người gửi và người nhận là 100% Khi suy giảm ảnh hưởng tới người gửi và người nhận, PDR giảm xuống 0% 18 KẾT LUẬN Mô phỏng mạng là lĩnh vực hiện nay đang ngày càng được sử dụng rộng rãi trong thiết kế mạng máy tính và mạng viễn thông Các phần mềm mã nguồn mở, các phần mềm thương mại lần lượt xuất hiện mang đến cho người . phần mềm NS- 3
Chương 3 : Phát triển và ứng dụng phần mềm mô phỏng NS- 3
3
Chương 1
MÔ PHỎNG MẠNG IP
1.1. Các phương pháp mô hình hóa mạng IP
1.1.1 cụ
mô phỏng hiệu quả nhất trong vấn đề này.
7
Chương 2
KIẾN TRÚC HỆ THỐNG PHẦN MỀM NS- 3
2.1 Cấu trúc phần mềm NS- 3
Ns- 3 là một phần mềm mô phỏng
Ngày đăng: 13/02/2014, 12:55
Xem thêm: Mô phỏng mạng IP và làm chủ phần mềm NS 3