“NS (Network Simulator) là gói phần mềm mô phỏng mạng theo mô hình hƣớng sự kiện đa dụng chạy trên nền của UNIX, đƣợc phát triển bởi UC Berkeley”[3] .Nó mô phỏng mạng IP, các giao thức mạng nhƣ UDP và TCP, các nguồn ứng dụng nhƣ FTP, Telnet, Web, CBR và VBR, các cơ chế quản lý hàng đợi router nhƣ Drop Tail, RED, CBQ, các giao thức định tuyến nhƣ Dijkstra …
Hình sau biểu diễn kiến trúc thƣ mục NS-2 và NAM trong môi trƣờng Linux. NS-2 và NAM đều là các thƣ mục con của ns-allinone-2.28. NS-2 bao gồm các thực thi mô phỏng (bằng mã C++ và mã OTcl), các kịch bản Otcl kiểm tra tính hiệu lực và các kịch bản OTcl minh họa.
Hình 3-15 Cấu trúc thư mục của NS-allinone
Một nút bao gồm các ngõ vào nút và các bộ phân loại. Có hai loại nút là unicast và multicast
Hình 3-16 Cấu trúc node Unicast và node Multicast
DiffServ
DiffServ đƣợc hỗ trợ trong NS2 bao gồm các đặc tính nhƣ gán DSCP cho các IP header, điều hòa các đối ứng với các hiện trạng, và lập lịch các đối xử đó. Các hiện trạng có thể đƣợc định nghĩa ứng với các dạng lƣu lƣợng nhƣ EF hay AF. Các hiện trạng này sẽ đƣợc thêm vào trong bộ điều hòa. Khi một gói tin đi qua bộ điều hòa, các hiện trạng sẽ ứng với các DSCP đã chọn. Các gói tin sẽ đƣợc kiểm tra khi chúng phù hợp với các đặc tính tốc độ lƣu lƣợng đã đƣợc chọn trong hiện trạng. Nếu gói tin ko phù hợp, tùy theo dạng lƣu lƣợng mà nó xử lý, ví dụ nhƣ đối với dạng lƣu lƣợng EF, nếu ko phù hợp chúng sẽ bị loại bỏ, còn đối với AF chúng sẽ đƣợc đánh dấu lại với độ ƣu tiên loại bỏ gói cao hơn. Bộ lập lịch trong trƣờng hợp này sẽ nhiều lớp lƣu lƣợng EF, AF và BE xen kẽ nhau.
MNS
MNS là chƣơng trình mô phỏng mạng MPLS đƣợc mở rộng từ NS, MNS-2.0 chạy trên nền của NS phiên bản ns-2.1b6a trở lên.
MNS hỗ trợ các chức năng sau cho MPLS [4]:
Chuyển mạch nhãn – gồm chuyển đổi /xếp chồng nhãn, giảm TTL, bỏ nhãn tại
chặng áp cuối (penultimate hop poping), kết hợp các luồng nhỏ thành một luồng lớn, phát sinh và xử lý các thông điệp LDP (yêu cầu nhãn, ánh xạ nhãn, rút lại nhãn, giải phóng nhãn và thông báo).
Giao thức CR-LDP xử lý các thông điệp CR-LDP, thiết lập ER-LSP bằng CR-
LDP dựa vào thông tin của các con đƣờng đã đƣợc định nghĩa trƣớc bởi các thông số ngƣời dùng nhƣ tốc độ luồng, kích thƣớc bộ đệm…
MNS còn hỗ trợ việc tái định tuyến (path restoration) theo mô hình thƣơng
lƣợng trƣớc (nhƣ Haskin, Makam) hoặc mô hình động (dạng đơn giản và dạng dựa trên đƣờng đi ngắn nhất). MNS cũng hỗ trợ việc chiếm giữ tài nguyên, một con đƣờng mới đƣợc yêu cầu có thể chiếm giữ tài nguyên của một con đƣờng đang tồn tại dựa vào mức yêu tiên thiết lập và mức yêu tiên nắm giữ.
Hình 3-17 Mô hình của MNS trên NS2
MNS gồm các thành phần sau:
Service Classifier: phân loại dịch vụ bằng nhãn hoặc trƣờng CoS trong tiêu đề MPLS chèn thêm và liên hệ gói tin với dịch vụ thích hợp.
Admission Control: xem xét thông số lƣu lƣợng của CR-LDP để xác định xem
nút MPLS có đủ tài nguyên đáp ứng cho chất lƣợng dịch vụ không.
CR-LDP: phát sinh và xử lý các thông điệp CR-LDP.
Resource Manager: quản lý thông tin tài nguyên, tạo và xóa các hàng đợi theo
yêu cầu.
Hình 3-18 Cấu trúc node MPLS
Cấu trúc node MPLS dựa trên node IP và thêm vào “MPLS Classifier” và “LDP Agent”. Trong mô hình này bộ phân loại MPLS xác định gói tin nhận đƣợc là có nhãn hay không. Nếu có nhãn nó sẽ thực hiện chuyển mạch nhãn ở L2 và gửi gói tin trực tiếp đến node tiếp theo. Nếu không có nhãn nhƣng tồn tại LSP, bộ phân loại MPLS sẽ xử lý nhƣ một gói tin có nhãn. Nếu không, bộ phân loại MPLS sẽ gửi gói tin đến bộ phân loại địa chỉ sẽ thực hiện chuyển tiếp L3 cho gói tin.