Đây là lệnh ns có thể được chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS
CHƯƠNG TRÌNH:
TÊN
ns - trình mô phỏng mạng (phiên bản 2)
SYNOPSIS
ns [ hồ sơ [ arg arg ... ]]
MÔ TẢ
ns là một trình mô phỏng mạng hướng sự kiện. Một công cụ mô phỏng có thể mở rộng được thực hiện
trong C ++ sử dụng Ngôn ngữ lệnh công cụ đối tượng của MIT, OTcl (một phiên bản hướng đối tượng của
Tcl) làm giao diện lệnh và cấu hình. Một phiên bản trước của trình mô phỏng, tức là
ns phiên bản 1 sử dụng Ngôn ngữ Lệnh của Công cụ, Tcl làm ngôn ngữ cấu hình. Các
phiên bản hiện tại vẫn hỗ trợ các tập lệnh mô phỏng được viết bằng Tcl dành cho phiên bản ns
1 trình mô phỏng.
Trang hướng dẫn sử dụng này tài liệu một số giao diện cho ns. Để hoàn thiện hơn nhiều
tài liệu, vui lòng xem "ns Ghi chú và Tài liệu" [13], có sẵn trong bản phân phối
và trên web.
Trình mô phỏng được gọi thông qua ns thông dịch viên, một phần mở rộng của vani otclsh
vỏ lệnh. Một mô phỏng được xác định bởi một tập lệnh OTcl. Các tập lệnh sử dụng Trình mô phỏng
Lớp làm giao diện chính cho công cụ mô phỏng. Sử dụng các phương pháp được xác định trong
lớp này, cấu trúc liên kết mạng được xác định, nguồn lưu lượng và phần chìm được định cấu hình,
mô phỏng được gọi và số liệu thống kê được thu thập. Bằng cách xây dựng dựa trên một
ngôn ngữ chức năng, các hành động tùy ý có thể được lập trình vào cấu hình.
Bước đầu tiên trong mô phỏng là lấy một thể hiện của lớp Simulator.
Các thể hiện của các đối tượng trong các lớp được tạo và hủy trong ns bằng cách sử dụng người mới và xóa
các phương pháp. Ví dụ: một phiên bản của đối tượng Simulator được tạo ra bằng cách sau
chỉ huy:
ví dụ: set ns [new Simulator]
Cấu trúc liên kết mạng được thực hiện bằng cách sử dụng ba khối xây dựng nguyên thủy: nút, liên kết và
các đại lý. Lớp Simulator có các phương thức để tạo / cấu hình từng tòa nhà này
các khối. Các nút được tạo bằng nút Phương thức trình mô phỏng tự động chỉ định một
địa chỉ duy nhất cho mỗi nút. Các liên kết được tạo giữa các nút để tạo thành cấu trúc liên kết mạng
với liên kết đơn giản và liên kết song công các phương pháp thiết lập một chiều và hai chiều
các liên kết tương ứng. Tác nhân là đối tượng tích cực điều khiển mô phỏng. Đại lý
có thể được coi là các quy trình và / hoặc các thực thể vận chuyển chạy trên các nút đó có thể là
máy chủ cuối hoặc bộ định tuyến. Nguồn và lưu lượng truy cập, mô-đun định tuyến động và các
mô-đun giao thức là tất cả các ví dụ về tác nhân. Tác nhân được tạo ra bởi các đối tượng khởi tạo
trong lớp con của lớp Agent, tức là, Đại lý / loại trong đó loại chỉ định bản chất của
đại lý. Ví dụ, một tác nhân TCP được tạo bằng lệnh:
đặt tcp [new Agent / TCP]
Sau khi các tác nhân được tạo, chúng được gắn vào các nút có đại lý đính kèm Simulator
phương pháp. Mỗi tác nhân được tự động gán một số cổng duy nhất trên tất cả các tác nhân trên một
nút đã cho (tương tự như cổng tcp hoặc udp). Một số loại đại lý có thể có nguồn
gắn liền với chúng trong khi những người khác có thể tạo dữ liệu của riêng họ. Ví dụ, bạn có thể đính kèm
Các nguồn `` ftp '' và `` telnet '' đến các tác nhân `` tcp '' nhưng các tác nhân `` tốc độ bit không đổi '' tạo ra
dữ liệu của riêng họ. Các ứng dụng được đính kèm với các đại lý bằng cách sử dụng ứng dụng đính kèm phương pháp.
Mỗi đối tượng có một số tham số cấu hình được liên kết với nó có thể được sửa đổi.
Tham số cấu hình là các biến thể hiện của đối tượng. Các thông số này là
được khởi tạo trong quá trình khởi động thành các giá trị mặc định có thể đơn giản được đọc từ phiên bản
các biến của đối tượng. Ví dụ, $ tcp định cửa sổ_ trả về kích thước cửa sổ mặc định
cho đối tượng tcp. Các giá trị mặc định cho đối tượng đó có thể được ghi đè rõ ràng bởi
chỉ định đơn giản trước khi bắt đầu mô phỏng hoặc động, trong khi mô phỏng
đang được tiến hành. Ví dụ, kích thước cửa sổ cho một phiên TCP cụ thể có thể được thay đổi
theo cách sau đây.
$ tcp đặt window_ 25
Các giá trị mặc định cho các tham số cấu hình của tất cả các đối tượng lớp sau đó
đã tạo cũng có thể được thay đổi bằng cách gán đơn giản. Ví dụ, chúng ta có thể nói
Agent / TCP set window_ 30
để đặt tất cả các tác phẩm tcp trong tương lai thành mặc định ở kích thước cửa sổ là 30.
Các sự kiện được lên lịch trong ns bằng cách sử dụng at Phương pháp mô phỏng cho phép các thủ tục OTcl
được gọi tại các điểm tùy ý trong thời gian mô phỏng. Các lệnh gọi lại OTcl này cung cấp một
cơ chế mô phỏng - chúng có thể được sử dụng để bắt đầu hoặc dừng các nguồn, kết xuất số liệu thống kê,
khởi tạo các lỗi liên kết, cấu hình lại cấu trúc liên kết mạng, v.v. Mô phỏng là
bắt đầu thông qua chạy và tiếp tục cho đến khi không còn sự kiện nào được xử lý.
Tại thời điểm này, lời gọi ban đầu của chạy lệnh trả về và tập lệnh Tcl có thể
thoát hoặc gọi một mô phỏng khác chạy sau khi có thể cấu hình lại. Ngoài ra,
mô phỏng có thể bị tạm dừng sớm bằng cách gọi dừng lại lệnh hoặc bằng cách thoát khỏi tập lệnh
với tiêu chuẩn của Tcl ra chỉ huy.
Các gói được chuyển tiếp dọc theo con đường ngắn nhất từ nguồn đến đích, trong đó
chỉ số khoảng cách là tổng chi phí của các liên kết được truyền từ nguồn đến
điểm đến. Chi phí của một liên kết là 1 theo mặc định; chỉ số khoảng cách chỉ đơn giản là bước nhảy
tính trong trường hợp này. Chi phí của một liên kết có thể được thay đổi với chi phí Phương pháp giả lập. MỘT
mô hình cấu trúc liên kết tĩnh được sử dụng làm mô hình mặc định trong ns, trong đó trạng thái của các nút / liên kết
không thay đổi trong quá trình mô phỏng. Network Dynamics có thể được chỉ định bằng cách sử dụng
các phương pháp được mô tả trong phần PHƯƠNG PHÁP ĐỘNG HỌC MẠNG. Ngoài ra, định tuyến unicast tĩnh là
mặc định trong đó các tuyến được tính toán trước trên toàn bộ cấu trúc liên kết một lần trước khi
bắt đầu mô phỏng. Các phương pháp để kích hoạt và cấu hình unicast động và multicast
định tuyến được mô tả trong PHƯƠNG PHÁP ĐỊNH TUYẾN UNICAST và PHƯƠNG PHÁP ĐỊNH TUYẾN ĐA PHƯƠNG THỨC
các phần tương ứng.
NS HÀNG
Phần này mô tả các lệnh cơ bản để tạo các khối xây dựng của mô phỏng
(tức là các đối tượng nút, liên kết và tác nhân) và để chạy mô phỏng.
Bước đầu tiên trong việc chạy một mô phỏng như đã nêu trước đây là lấy một phiên bản của
Lớp mô phỏng có các phương thức để cấu hình và chạy mô phỏng. Trong suốt này
phần tên biến đối tượng $ ns được sử dụng để ngụ ý một đối tượng Simulator.
$ ns nút
Tạo một đối tượng nút mới và trả về một chốt cho nó.
$ ns danh sách tất cả các nút
Trả về danh sách tất cả các đối tượng nút được xác định trong mô phỏng.
$ ns liên kết đơn giản node1 node2 bw chậm trễ kiểu
Tạo một liên kết đơn hướng mới giữa node1 và node2 với băng thông bw Trong các bit
mỗi giây và độ trễ lan truyền liên kết chậm trễ trong vài giây. node1 và node2 phải có
đã được tạo với nút phương pháp. bw và chậm trễ mặc định là 1.5 Mbits / giây
và 100 ms tương ứng. Các giá trị mặc định có thể được thay đổi bằng cách sửa đổi
tham số cấu hình của Đối tượng DelayLink (xem phần ĐỐI TƯỢNG DELAYLINK).
node1 và node2 phải đã được tạo với nút phương pháp. Xếp hàng
kỷ luật của liên kết được chỉ định bởi kiểu, có thể là đuôi thả, Câu hỏi thường gặp, SFQ, DRR,
ĐỎ, CBQ, or CBQ / WRR. Một liên kết DropTail là một hàng đợi FIFO đơn giản, xếp hàng cuối cùng
gói trong hàng đợi khi hàng đợi tràn. Liên kết FQ dành cho Xếp hàng Công bằng (dành cho
chi tiết xem [?]). Liên kết SFQ dành cho Xếp hàng Công bằng Stochastic (chi tiết xem [?]).
Một liên kết DRR dành cho việc lập lịch trình vòng quay thâm hụt (để biết thêm chi tiết, xem [9]). Một liên kết ĐỎ
là một hàng đợi thả sớm ngẫu nhiên (chi tiết xem [2]). Liên kết CBQ dành cho dựa trên lớp học
xếp hàng bằng cách sử dụng bộ lập lịch trình vòng lặp từng gói (để biết thêm chi tiết, xem [3]). MỘT
Liên kết CBQ / WRR dành cho việc xếp hàng dựa trên lớp học với một bộ lập lịch vòng tròn có trọng số. Nếu như
định tuyến đa hướng được sử dụng liên kết với các nhãn giao diện được yêu cầu. Các liên kết như vậy là
được tạo bằng cách đặt biến Simulator NumberInterfaces_ thành 1. Tất cả sau đó
các liên kết được tạo sẽ có nhãn giao diện. Để vô hiệu hóa việc tạo giao diện, đơn giản
đặt lại NumberInterfaces_ thành 0 (đây là mặc định).
$ ns liên kết song công node1 node2 bw chậm trễ kiểu
Tạo một liên kết hai chiều mới giữa node1 và node2 với băng thông bw Trong các bit
mỗi giây và độ trễ lan truyền liên kết chậm trễ trong vài giây. node1 và node2 phải có
đã được tạo với nút phương pháp. bw và chậm trễ mặc định là 1.5 Mbits / giây
và 100 ms tương ứng. Các giá trị mặc định có thể được thay đổi bằng cách sửa đổi
tham số cấu hình của Đối tượng DelayLink (xem phần ĐỐI TƯỢNG DELAYLINK).
Kỷ luật xếp hàng của liên kết được chỉ định bởi kiểu, có thể là đuôi thả, FQ
SFQ, DRR, ĐỎ, CBQ, or CBQ / WRR. Liên kết DropTail là một hàng đợi FIFO đơn giản, giảm
gói cuối cùng trong hàng đợi khi hàng đợi tràn. Liên kết FQ dành cho Công bằng
Xếp hàng (chi tiết xem [?]). Liên kết SFQ dành cho Xếp hàng Công bằng Stochastic (dành cho
chi tiết xem [?]). Một liên kết DRR dành cho việc lập lịch quay vòng thâm hụt (để biết thêm chi tiết
xem [9]). Liên kết ĐỎ là một hàng đợi thả sớm ngẫu nhiên (chi tiết xem [2]). A CBQ
liên kết dành cho việc xếp hàng dựa trên lớp bằng cách sử dụng bộ lập lịch vòng lặp từng gói (đối với
chi tiết xem [3]). Liên kết CBQ / WRR dành cho xếp hàng dựa trên lớp học với một vòng có trọng số
bộ lập lịch robin. Nếu định tuyến đa hướng được sử dụng, các liên kết có nhãn giao diện sẽ
yêu cầu. Các liên kết như vậy được tạo bằng cách đặt biến Simulator NumberInterfaces_
đến 1. Tất cả các liên kết được tạo sau đó sẽ có nhãn giao diện. Để vô hiệu hóa
tạo giao diện chỉ cần đặt lại NumberInterfaces_ về 0 (đây là mặc định).
$ ns liên kết này node1 node2
Trả về một tham chiếu đến liên kết kết nối các nút node1 và nút2. Cái này hữu ích
để thiết lập các thông số cấu hình liên kết và gọi các phương pháp theo dõi (xem LIÊN KẾT
Phần ĐỐI TƯỢNG).
$ ns giới hạn hàng đợi node1 node2 giới hạn hàng đợi
Đặt số lượng gói tối đa có thể xếp hàng đợi trên liên kết theo hướng
từ node1 đến node2 đến giới hạn hàng đợi. Liên kết giữa node1 và node2 phải có
đã được tạo.
$ ns chậm trễ node1 node2 Khoảng thời gian
Đặt độ trễ của liên kết theo hướng từ node1 đến node2 đến Khoảng thời gian
giây. Liên kết giữa node1 và node2 đã được tạo.
$ ns chi phí node1 node2 giá thành
Ấn định chi phí giá thành liên kết giữa các nút node1 và nút2. các chi phí
được gán cho các liên kết được sử dụng trong tính toán tuyến đường unicast. Tất cả các liên kết được mặc định là
chi phí 1.
$ ns đa liên kết danh sách nút bw chậm trễ kiểu
Kết nối các nút được chỉ định trong danh sách nút bởi một lưới các liên kết song công (để mô phỏng một
phát sóng mạng LAN) với băng thông bw tính bằng bit trên giây và độ trễ lan truyền liên kết
chậm trễ trong vài giây. danh sách nút là danh sách các xử lý đối tượng nút đã
được tạo ra với nút phương pháp. bw và chậm trễ mặc định là 1.5 Mbits / giây và 100
ms tương ứng. Các giá trị mặc định có thể được thay đổi bằng cách sửa đổi
tham số cấu hình của Đối tượng DelayLink (xem phần ĐỐI TƯỢNG DELAYLINK).
Kỷ luật xếp hàng của liên kết được chỉ định bởi kiểu, có thể là đuôi thả, FQ
SFQ, DRR, ĐỎ, CBQ, or CBQ / WRR. Liên kết DropTail là một hàng đợi FIFO đơn giản, giảm
gói cuối cùng trong hàng đợi khi hàng đợi tràn. Liên kết FQ dành cho Công bằng
Xếp hàng (chi tiết xem [?]). Liên kết SFQ dành cho Xếp hàng Công bằng Stochastic (dành cho
chi tiết xem [?]). Một liên kết DRR dành cho việc lập lịch quay vòng thâm hụt (để biết thêm chi tiết
xem [9]). Liên kết ĐỎ là một hàng đợi thả sớm ngẫu nhiên (chi tiết xem [2]). A CBQ
liên kết dành cho việc xếp hàng dựa trên lớp bằng cách sử dụng bộ lập lịch vòng lặp từng gói (đối với
chi tiết xem [3]). Liên kết CBQ / WRR dành cho xếp hàng dựa trên lớp học với một vòng có trọng số
bộ lập lịch robin.
$ ns đa liên kết của các giao diện danh sách nút bw chậm trễ kiểu
Kết nối các nút được chỉ định trong danh sách nút bởi một lưới các liên kết song công với các giao diện
(để mô phỏng một mạng LAN quảng bá) với băng thông bw tính bằng bit trên giây và liên kết
sự chậm trễ truyền bá chậm trễ trong vài giây. danh sách nút là một danh sách các xử lý đối tượng nút
đã được tạo với nút phương pháp. bw và chậm trễ mặc định là 1.5
Mbits / giây và 100 ms tương ứng. Các giá trị mặc định có thể được thay đổi bằng cách sửa đổi
các tham số cấu hình có liên quan của Đối tượng DelayLink (xem ĐỐI TƯỢNG DELAYLINK
phần). Kỷ luật xếp hàng của liên kết được chỉ định bởi kiểu, có thể là
đuôi thả, FQ SFQ, DRR, ĐỎ, CBQ, or CBQ / WRR. Liên kết DropTail là một FIFO đơn giản
hàng đợi làm rơi gói cuối cùng trong hàng đợi khi hàng đợi tràn. Một liên kết FQ
dành cho Xếp hàng Công bằng (chi tiết xem [?]). Một liên kết SFQ dành cho Hội chợ Stochastic
Xếp hàng (chi tiết xem [?]). Một liên kết DRR dành cho việc lập lịch quay vòng thâm hụt
(chi tiết xem [9]). Liên kết ĐỎ là một hàng đợi thả sớm ngẫu nhiên (để biết chi tiết xem
[2]). Liên kết CBQ dành cho việc xếp hàng dựa trên lớp học bằng cách sử dụng vòng lặp từng gói
lập lịch (chi tiết xem [3]). Liên kết CBQ / WRR dành cho xếp hàng dựa trên lớp với
bộ lập lịch vòng tròn có trọng số.
người mới Đại lý/kiểu
Tạo một loại đại lý kiểu có thể là:
Null - Lưu lượng truy cập
LossMonitor - Lưu lượng truy cập theo dõi các thông số tổn thất
TCP - BSD Tahoe TCP
TCP / FullTcp - Full Reno TCP với kết nối hai chiều [11]
TCP / Reno - BSD Reno TCP
TCP / Newreno - phiên bản sửa đổi của BSD Reno TCP
TCP / Vegas - Vegas TCP (từ U. Arizonia qua USC)
TCP / Sack1 - BSD Reno TCP với ACK chọn lọc
TCP / Fack - BSD Reno TCP với ACK chuyển tiếp
TCPSink - bồn rửa TCP tiêu chuẩn
TCPSink / DelAck - TCP chìm tạo ACK bị trễ
TCPSink / Sack1 - Bộ chìm TCP tạo ra ACK có chọn lọc
TCPSink / Sack1 / DelAck - bộ chìm TCP chậm với ACK chọn lọc
UDP - Truyền tải UDP
RTP - Tác nhân RTP
Phiên / RTP -
RTCP - đại lý RTCP
IVS / Nguồn -
IVS / Bộ thu -
SRM -
Các phương pháp, tham số cấu hình và các biến trạng thái có liên quan được liên kết
với những đối tượng này sẽ được thảo luận chi tiết trong các phần sau. Lưu ý rằng một số
các tác nhân như TCP hoặc SRM không tạo ra dữ liệu của riêng chúng. Những tác nhân như vậy cần nguồn
được đính kèm với chúng để tạo dữ liệu (xem phương thức lưu lượng đính kèm và nguồn đính kèm trong
Mục ĐỐI TƯỢNG ĐẠI LÝ).
$ ns đại lý đính kèm nút đại lý
Đính kèm đối tượng tác nhân đại lý đến nút. đại lý và nút đối tượng nên có
đã được tạo.
$ ns đặc vụ tách rời nút đại lý
Tách đối tượng tác nhân đại lý từ nút.
$ ns kết nối src dst
Thiết lập kết nối hai chiều giữa đại lý src và đại lý dst. Hoàn trả
tay cầm để src đại lý. Một phương thức trợ giúp đã được xác định để tạo điều kiện thuận lợi cho việc tạo
và gắn một tác nhân vào mỗi trong số hai nút và thiết lập kết nối hai chiều
giữa họ. (xem phần BUILTINS).
$ ns lập lịch sử dụng kiểu
Sử dụng một bộ lập lịch sự kiện loại kiểu trong các mô phỏng. kiểu là một trong List, Heap,
Lịch, Thời gian thực. Bộ lập lịch danh sách là mặc định. Bộ lập lịch Heap sử dụng
đống để xếp hàng sự kiện. Bộ lập lịch sử dụng hàng đợi lịch để theo dõi
của các sự kiện. Bộ lập lịch RealTime được sử dụng trong chế độ mô phỏng khi trình mô phỏng
tương tác với một tác nhân bên ngoài.
$ ns at thời gian thủ tục
Đánh giá thủ tục tại thời điểm mô phỏng thời gian. Thủ tục có thể là một toàn cầu
chức năng có thể truy cập (proc) hoặc một phương thức đối tượng (instproc). Lệnh này có thể được
được sử dụng để bắt đầu và dừng các nguồn, tự động cấu hình lại trình mô phỏng, kết xuất
thống kê tại các khoảng thời gian được chỉ định, v.v. Trả về một id sự kiện.
$ ns hủy bỏ eid
Xóa sự kiện được chỉ định bởi id sự kiện eid từ hàng đợi sự kiện.
$ ns tại
Trả lại thời gian mô phỏng hiện tại.
$ ns bản đồ gen
Đi qua cấu trúc liên kết mô phỏng và liệt kê tất cả các đối tượng đã được
được tạo ra và cách chúng được kết nối với nhau. Điều này rất hữu ích để gỡ lỗi
các tập lệnh mô phỏng.
ns-phiên bản
Trả về một chuỗi xác định phiên bản của ns hiện đang chạy. Phương pháp này là
được thực thi trong ngữ cảnh toàn cục bởi trình thông dịch.
ns-ngẫu nhiên [ hạt giống ]
If hạt giống không hiện diện, trả về một số nguyên giả ngẫu nhiên từ 0 đến 2 ^ 31-1.
Nếu không, hãy khởi tạo trình tạo số giả ngẫu nhiên với hạt giống và trả lại hạt giống
đã sử dụng. Nếu như hạt giống là 0, hãy chọn hạt giống ban đầu theo phương pháp phỏng đoán (thay đổi trên
lời kêu gọi liên tiếp). Phương thức này được thực thi trong bối cảnh chung bởi
thông dịch viên.
Ns có các phương tiện khác để tạo số ngẫu nhiên; vui lòng xem tài liệu để biết chi tiết
[13.
VẬT HỆ THỐNG CẤP BẬC
Mô tả ngắn gọn về hệ thống phân cấp đối tượng trong ns được trình bày trong phần này. Cái này
mô tả không phải là hoàn chỉnh. Nó đã được cung cấp để mô tả cách
các phương thức và tham số cấu hình liên quan đến các đối tượng khác nhau được kế thừa.
Để biết thêm thông tin đầy đủ, hãy xem "ghi chú & tài liệu ns" và tự động
đã tạo thông tin thư viện lớp trên trang web ns.
Các đối tượng được liên kết với các thông số cấu hình có thể được đặt động và
được truy vấn và các biến trạng thái có thể được truy vấn (thường chỉ được sửa đổi khi trạng thái
các biến cần được đặt lại cho một lần chạy mô phỏng khác).
Các tham số cấu hình đại diện cho các tham số mô phỏng thường được cố định trong quá trình
toàn bộ mô phỏng (như băng thông liên kết), nhưng có thể được thay đổi động nếu muốn.
Các biến trạng thái đại diện cho các giá trị cụ thể cho một đối tượng nhất định và của đối tượng đó
thực hiện.
Sơ đồ sau mô tả một phần của hệ thống phân cấp đối tượng:
Simulator
đa sim
Node
liên kết
Liên kết đơn giản
CBQLink
liên kết giả
liên kết trễ
Hàng đợi
thả đuôi
FQ
SFQ
DRR
RED
CBQ
CBQ / WRR
Màn hình xếp hàng
ED
lưu lượng
Dòng chảy
đối tượng rt
Lộ trìnhLogic
Đại lý
rtProto
tĩnh
Phiên
DV
trực tiếp
Null
MấtMàn Hình
TCP
FullTcp
Reno
Newreno
bao1
Fack
TCP Chìm
DelAck
bao1
DelAck
UDP
RTP
RTCP
IVS
nguồn
Người nhận
SRM
Phiên
RTP [điều này khác với Agent / CBR / RTP như thế nào]
Ứng dụng
FTP
Telnet
Giao thông
Hội chợ triển lãm
Pareto
CBR
Dấu vết
Tích hợp
Mẫu
Để có cấu trúc phân cấp đối tượng hoàn chỉnh, được tạo tự động, hãy xem liên kết "cấu trúc phân cấp lớp"
(chỉ đến http://www-sop.inria.fr/rodeo/personnel/Antoine.Clerget/ns/) trên ns
trang web. (Cảm ơn Antoine Clerget đã duy trì điều này!)
Ví dụ: bất kỳ phương pháp nào được hỗ trợ bởi TCP đại lý cũng được hỗ trợ bởi Reno hoặc một
bao1 đại lý. Các thông số cấu hình mặc định cũng được kế thừa. Ví dụ, $ tcp định
cửa sổ_ 20 trong đó $ tcp là một tác nhân TCP xác định kích thước cửa sổ TCP mặc định cho cả hai TCP và
Reno các đối tượng.
VẬT PHƯƠNG PHÁP
Các phần sau ghi lại các phương thức, tham số cấu hình và biến trạng thái
được liên kết với các đối tượng khác nhau cũng như những đối tượng để kích hoạt động lực Mạng, Unicast
định tuyến, định tuyến Multicast và hỗ trợ theo dõi và giám sát. Lớp đối tượng là
được chỉ định ngầm bởi tên biến đối tượng trong mô tả. Ví dụ, $ tcp
ngụ ý lớp đối tượng tcp và tất cả các lớp con của nó.
NÚT CÁC ĐỐI TƯỢNG
[LƯU Ý: Phần này chưa được xác minh là cập nhật với bản phát hành.]
$ node id
Trả về id nút.
$ node người hàng xóm
Trả về danh sách các đối tượng nút lân cận.
$ node đính kèm đại lý
Đính kèm một đại lý loại đại lý đến nút này.
$ node tách ra đại lý
Tách một tác nhân loại đại lý từ nút này.
$ node đại lý cổng
Trả lại một tay cầm cho đại lý được gắn vào cổng cổng trên nút này. Trả về một sản phẩm trống
chuỗi nếu cổng không được sử dụng.
$ node thiết lập lại
Đặt lại tất cả các tác nhân được gắn vào nút này. Điều này sẽ khởi tạo lại trạng thái
các biến được liên kết với các tác nhân khác nhau tại nút này.
$ node rtObject?
Trả về một xử lý cho rtObject nếu tồn tại một phiên bản của đối tượng tại đó
nút. Chỉ các nút tham gia vào giao thức định tuyến unicast động mới có
đối tượng này (xem phần UNICAST ROUTING METHODS và RTOBJECT OBJECTS).
$ node tham gia nhóm đại lý nhóm
Thêm tác nhân được chỉ định bởi xử lý đối tượng đại lý vào nhóm máy chủ đa hướng
được xác định bởi địa chỉ nhóm. Điều này làm cho giao thức thành viên nhóm
sắp xếp để lưu lượng truy cập đa hướng thích hợp đến được tác nhân này. Nhóm Multicast
địa chỉ phải nằm trong khoảng 0x8000 - 0xFFFF.
$ node phân bổ
Trả về địa chỉ nhóm phát đa hướng theo thứ tự tăng dần trên mỗi lệnh gọi bắt đầu từ
0x8000 và kết thúc ở 0xFFFF.
$ node định hình định hình
Đặt hình dạng của nút thành "định hình". Khi được gọi trước khi trình mô phỏng bắt đầu
chạy, nó thay đổi hình dạng mặc định của nút trong tệp dấu vết nam. Mặc định
hình dạng của một nút là "" "vòng tròn" ""
$ node màu sắc màu sắc
Đặt màu của nút thành màu sắc. Nó có thể được gọi bất cứ lúc nào để thay đổi hiện tại
màu của nút trong tệp dấu vết nam, nếu có.
$ node get-thuộc tính tên
Nhận thuộc tính được chỉ định tên của nút. Hiện tại một đối tượng Node có hai
thuộc tính: COLOR và Khuôn. Lưu ý: các chữ cái này phải viết hoa.
$ node dấu cộng tên màu sắc định hình
Thêm dấu (trong tệp dấu vết nam) với màu sắc và định hình xung quanh nút. Hình dạng có thể
là "" "hình tròn" "", "" "lục giác" "" và "" "hình vuông" "" (phân biệt chữ hoa chữ thường). Dấu đã thêm
sẽ được xác định bởi tên.
$ node xóa dấu tên
Xóa nhãn hiệu bằng tên trong nút đã cho.
Không có biến trạng thái hoặc tham số cấu hình cụ thể cho lớp nút.
LINK CÁC ĐỐI TƯỢNG
[LƯU Ý: Phần này chưa được xác minh là cập nhật với bản phát hành.]
$ liên kết động lực học dấu vết ns tệpID
Theo dõi động lực của liên kết này và ghi đầu ra vào tệpID hồ sơ. ns is
một phiên bản của đối tượng Simulator hoặc MultiSim đã được tạo để gọi ra
mô phỏng (xem phần TRACE VÀ CÁC PHƯƠNG PHÁP THEO DÕI để biết định dạng theo dõi đầu ra).
$ liên kết theo dõi gọi lại ns cmd
Theo dõi tất cả các gói trên liên kết với cuộc gọi lại cmd. Cmd được gọi cho mỗi dấu vết
sự kiện (enqueue, dequeue, drop) với văn bản sẽ được ghi lại dưới dạng tham số.
(Xem mô tả của tệp nhật ký để biết thông tin này.) Bản giới thiệu dấu vết
callbacks nằm trong chương trình tcl / ex / callback_demo.tcl trong bản phân phối.
$ liên kết màu sắc màu sắc
Đặt màu của đối tượng Liên kết. Nó có thể được gọi bất cứ lúc nào để thay đổi hiện tại
màu của liên kết trong tập tin dấu vết nam, nếu có.
$ liên kết get-thuộc tính tên
Nhận thuộc tính được chỉ định tên của Liên kết. Hiện tại một đối tượng Liên kết có ba
thuộc tính: COLOR, HƯỚNG DANvà QUEUE_POS.
Hiện tại hai hàm sau không nên được gọi trực tiếp. Sử dụng $ ns song công-liên kết-
op thay thế. Tham khảo phần tương ứng trong trang người đàn ông này.
$ liên kết định hướng ori
Đặt hướng của liên kết thành ori. Khi được gọi trước khi trình mô phỏng bắt đầu
chạy, nó thay đổi hướng mặc định của liên kết trong tệp theo dõi nam, nếu có
một. Nếu hướng không được chỉ định cho bất kỳ (các) liên kết nào, nam sẽ sử dụng bố cục tự động.
Hướng mặc định của đối tượng Liên kết là không xác định.
$ liên kết hàng đợiPos gửi
Đặt vị trí hàng đợi của liên kết thành gửi. Khi được gọi trước khi trình mô phỏng bắt đầu
để chạy, nó thay đổi vị trí hàng đợi mặc định của liên kết simplex trong nam trace
nếu có. gửi chỉ định góc giữa đường ngang và
dòng dọc theo đó các gói được xếp hàng đợi sẽ được hiển thị.
LIÊN KẾT ĐƠN GIẢN CÁC ĐỐI TƯỢNG
[LƯU Ý: Phần này chưa được xác minh là cập nhật với bản phát hành.]
$ liên kết chi phí giá thành
Hãy giá thành chi phí của liên kết này.
$ liên kết Giá cả?
Trả lại chi phí của liên kết này.
Bất kỳ tham số cấu hình hoặc biến trạng thái?
LIÊN KẾT TRỄ CÁC ĐỐI TƯỢNG
[LƯU Ý: Phần này chưa được xác minh là cập nhật với bản phát hành.]
Đối tượng DelayLink xác định khoảng thời gian cần thiết để một gói đi qua một liên kết.
Điều này được định nghĩa là size / bw + delay trong đó size là kích thước gói, bw là liên kết
băng thông và độ trễ là độ trễ lan truyền liên kết. Không có phương pháp hoặc trạng thái
các biến liên quan đến đối tượng này.
Cấu hình Thông số Kỹ thuật
băng thông_
Liên kết băng thông tính bằng bit trên giây.
chậm trễ_ Độ trễ lan truyền liên kết tính bằng giây.
Không có biến trạng thái nào được liên kết với đối tượng này.
MẠNG ĐỘNG HỌC PHƯƠNG PHÁP
Phần này mô tả các phương pháp để làm cho các liên kết và nút trong cấu trúc liên kết đi lên và đi xuống
theo các phân phối khác nhau. Thường nên sử dụng một giao thức định tuyến động
bất cứ khi nào một mô phỏng được thực hiện với động lực mạng. Lưu ý rằng cấu trúc liên kết tĩnh
mô hình là mặc định trong ns.
$ ns người mẫu kiểu mẫu thông số mô hình node1 [nút2]
Tạo liên kết giữa node1 và node2 thay đổi giữa các trạng thái lên và xuống theo
đến mô hình mô hình. Trong trường hợp chỉ node1 được chỉ định tất cả các sự cố liên kết trên
nút sẽ được đưa lên và xuống theo mô hình. thông số mô hình
chứa các tham số cần thiết cho mô hình có liên quan và phải được chỉ định là
danh sách tức là các tham số được đặt trong dấu ngoặc nhọn. kiểu mẫu có thể là một trong số
Xác định, Số mũ, Hướng dẫn sử dụng, Dấu vết. Trả về một xử lý cho một đối tượng mô hình
tương ứng với mô hình.
Trong mô hình Xác định thông số mô hình is [thời gian bắt đầu] khoảng thời gian lên khoảng thời gian giảm
[thời gian kết thúc]. Bắt đầu từ thời gian bắt đầu liên kết được tạo thành cho khoảng thời gian lên và
xuống cho khoảng thời gian giảm để thời gian kết thúc đạt được. Các giá trị mặc định cho start-
thời gian, khoảng thời gian tăng, khoảng thời gian giảm xuống lần lượt là 0.5 giây, 2.0 giây, 1.0 giây. thời gian kết thúc
mặc định ở cuối mô phỏng. Thời gian bắt đầu mặc định là 0.5 giây để
để giao thức định tuyến yên tĩnh.
Nếu mô hình Hàm mũ được sử dụng thông số mô hình có dạng khoảng thời gian lên xuống-
khoảng thời gian trong đó thời gian hoạt động của liên kết là một phân phối hàm mũ xung quanh giá trị trung bình lên-
khoảng thời gian và thời gian ngừng hoạt động của liên kết là một phân phối hàm mũ xung quanh giá trị trung bình
khoảng thời gian giảm xuống. Giá trị mặc định cho khoảng thời gian lên và khoảng thời gian giảm là 10s và 1s
tương ứng.
Nếu phân phối Thủ công được sử dụng thông số mô hình is at op Ở đâu at chỉ định
thời gian mà hoạt động op nên xuất hiện. op là một trong những lên, xuống. Hướng dẫn
phân phối có thể được chỉ định luân phiên bằng cách sử dụng rtmodel-at phương pháp được mô tả
ở phần sau.
Nếu Trace được chỉ định là kiểu mẫu động lực liên kết / nút được đọc từ Tracefile.
thông số mô hình trong trường hợp này đối số sẽ là tệp xử lý của Tracefile
có thông tin động lực học. Định dạng tệp theo dõi giống hệt với dấu vết
đầu ra được tạo ra bởi phương pháp liên kết động lực theo dõi (xem TRACE VÀ THEO DÕI
PHẦN PHƯƠNG PHÁP).
$ ns rtmodel-xóa tay cầm mô hình
Xóa phiên bản của mô hình tuyến đường được chỉ định bởi mô hình-tay cầm.
$ ns rtmodel-at at op node1 [nút2]
Được sử dụng để chỉ định thời gian lên và xuống của liên kết giữa các nút node1 và nút2.
giá như node1 được đưa ra tất cả các sự cố liên kết trên node1 sẽ được đưa lên và xuống.
at là thời gian mà hoạt động op đó có thể là một trong hai up or xuống là được
được thực hiện trên (các) liên kết được chỉ định.
XẾP HÀNG CÁC ĐỐI TƯỢNG
Đối tượng hàng đợi là một lớp đối tượng chung có khả năng giữ và có thể đánh dấu hoặc
loại bỏ các gói khi chúng di chuyển qua cấu trúc liên kết mô phỏng.
Cấu hình Thông số Kỹ thuật
hạn chế_ Kích thước hàng đợi trong gói.
bị chặn_
Đặt thành false theo mặc định, điều này đúng nếu hàng đợi bị chặn (không thể
gửi một gói tin đến hàng xóm hạ lưu của nó).
bỏ chặn_on_resume_
Được đặt thành true theo mặc định, cho biết hàng đợi sẽ tự bỏ chặn tại thời điểm đó
gói gói tin cuối cùng được gửi đã được truyền đi (nhưng không nhất thiết
nhận).
THẢ ĐUÔI CÁC ĐỐI TƯỢNG
Đối tượng đuôi thả là một lớp con của các đối tượng Hàng đợi triển khai hàng đợi FIFO đơn giản. Ở đó
không phải là phương thức cụ thể cho các đối tượng drop-tail. Tham số cấu hình duy nhất
is thả trước_, khi được đặt thành true sẽ khiến hàng đợi hoạt động như một tập tin thả từ phía trước
kỷ luật xếp hàng. Biến này được đặt thành false theo mặc định.
FQ CÁC ĐỐI TƯỢNG
Đối tượng FQ là một lớp con của các đối tượng Hàng đợi thực hiện xếp hàng Công bằng. Không có
các phương pháp dành riêng cho các đối tượng FQ.
Cấu hình Thông số Kỹ thuật
giây mỗi byte_
Không có biến trạng thái nào được liên kết với đối tượng này.
SFQ CÁC ĐỐI TƯỢNG
Các đối tượng SFQ là một lớp con của các đối tượng Hàng đợi thực hiện xếp hàng Stochastic Fair. Ở đó
không phải là phương thức cụ thể cho các đối tượng SFQ.
Cấu hình Thông số Kỹ thuật
hàng đợi tối đa_
Xô_
Không có biến trạng thái nào được liên kết với đối tượng này.
DRR CÁC ĐỐI TƯỢNG
Các đối tượng DRR là một lớp con của các đối tượng Hàng đợi thực hiện lập lịch vòng lặp thâm hụt.
Các đối tượng này thực hiện lập lịch trình vòng lặp thâm hụt giữa các luồng khác nhau (A
luồng cụ thể là luồng có các gói có cùng nút và id cổng HOẶC các gói
có cùng một id nút). Cũng không giống như các đối tượng nhiều hàng đợi khác, đối tượng hàng đợi này
triển khai một không gian đệm chia sẻ duy nhất cho các luồng khác nhau của nó.
Cấu hình Thông số Kỹ thuật
Xô_
Cho biết tổng số nhóm được sử dụng để băm mỗi
chảy.
chói lọi_
Cho biết kích thước bộ đệm được chia sẻ tính bằng byte.
lượng tử_
Cho biết (tính bằng byte) mỗi luồng có thể gửi bao nhiêu trong lượt của nó.
mặt nạ_ mask_, khi được đặt thành 1, có nghĩa là một luồng cụ thể bao gồm các gói
có cùng id nút (và có thể là id cổng khác nhau), nếu không thì một luồng
bao gồm các gói có cùng nút và id cổng.
RED CÁC ĐỐI TƯỢNG
Đối tượng RED là một lớp con của các đối tượng Hàng đợi thực hiện phát hiện sớm ngẫu nhiên
các cửa ngõ. Đối tượng có thể được cấu hình thành gói thả hoặc `` đánh dấu ''. Không có
các phương pháp dành riêng cho các đối tượng RED.
Cấu hình Thông số Kỹ thuật
byte_ Đặt thành "true" để bật `` byte-mode '' RED, ở đó kích thước đến
gói ảnh hưởng đến khả năng đánh dấu (bỏ) gói.
hàng đợi trong byte_
Đặt thành "true" để đo kích thước hàng đợi trung bình tính bằng byte thay vì
gói tin. Kích hoạt tùy chọn này cũng gây ra đập mạnh_ và maxthresh_ được
tự động thu nhỏ theo trung bình_pktsize_ (xem bên dưới).
đập mạnh_
Ngưỡng tối thiểu cho kích thước hàng đợi trung bình trong gói.
maxthresh_
Ngưỡng tối đa cho kích thước hàng đợi trung bình trong các gói.
trung bình_pktsize_
Ước tính sơ bộ về kích thước gói trung bình tính bằng byte. Được sử dụng để cập nhật
kích thước hàng đợi trung bình được tính toán sau một khoảng thời gian không hoạt động.
q_trọng lượng_
Trọng lượng hàng đợi, được sử dụng trong đường trung bình động theo cấp số nhân cho
tính toán kích thước hàng đợi trung bình.
chờ đợi_ Đặt thành true để duy trì khoảng thời gian giữa các gói bị bỏ.
kỳ hạn_
Vì kích thước hàng đợi trung bình thay đổi giữa "thresh_" và "maxthresh_",
xác suất rơi gói thay đổi giữa 0 và "1 / linterm".
bit cài đặt_
Đặt thành "true" để đánh dấu các gói bằng cách đặt bit chỉ báo tắc nghẽn trong
tiêu đề gói chứ không phải thả gói.
đuôi thả_
Đặt thành true để sử dụng drop-tail thay vì drop-tail ngẫu nhiên hoặc drop-from-front khi
hàng đợi tràn hoặc kích thước hàng đợi trung bình vượt quá "maxthresh_". Đây là
hành vi mặc định. Để được giải thích thêm về các biến này, hãy xem
[2.
thả-rand_
Đặt thành true để sử dụng thả xuống ngẫu nhiên thay vì thả từ đuôi hoặc thả từ trước khi
hàng đợi tràn hoặc kích thước hàng đợi trung bình vượt quá "maxthresh_".
thả trước_
Đặt thành true để sử dụng thả từ trước thay vì thả sau hoặc thả ngẫu nhiên khi
hàng đợi tràn hoặc kích thước hàng đợi trung bình vượt quá "maxthresh_".
ns1-tương thích_
Đặt thành true để tránh đặt lại số lượng kể từ lần thả gói cuối cùng, sau một
gói bắt buộc bị loại bỏ. Điều này mang lại khả năng tương thích với hành vi trước đó
của RED. Giá trị mặc định được đặt thành false.
entle_ Đặt thành true để tăng tỷ lệ rơi gói từ từ từ max_p lên 1 vì
kích thước hàng đợi trung bình dao động từ maxthresh đến hai lần maxthresh. Mặc định là
được đặt thành false và max_p tăng đột ngột từ max_p lên 1 khi giá trị trung bình
kích thước hàng đợi vượt quá maxthresh.
Tiểu bang Biến
Không có biến trạng thái nào của việc thực hiện RED có thể truy cập được.
CBQ CÁC ĐỐI TƯỢNG
Đối tượng CBQ là một lớp con của các đối tượng Queue thực hiện xếp hàng dựa trên lớp.
$ cbq chèn $ lớp
Chèn lớp lưu lượng tốt nghiệp lớp XNUMX vào cấu trúc chia sẻ liên kết được liên kết với liên kết
vật cbq.
$ cbq ràng buộc $ cbqclass $ id1 [$ id2]
Nguyên nhân các gói chứa id luồng $ id1 (hoặc những người trong phạm vi $ id1 đến $ id2
bao gồm) được liên kết với loại lưu lượng truy cập $ cbqclass.
$ cbq thuật toán $ alg
Chọn thuật toán bên trong CBQ. $ alg có thể được đặt thành một trong: "chỉ tổ tiên",
"cấp cao nhất" hoặc "chính thức".
CBQ / WRR CÁC ĐỐI TƯỢNG
Các đối tượng CBQ / WRR là một lớp con của các đối tượng CBQ triển khai quy tắc xoay vòng có trọng số
lập lịch giữa các lớp có cùng mức độ ưu tiên. Ngược lại, các đối tượng CBQ thực hiện
lập lịch theo vòng từng gói giữa các lớp có cùng mức độ ưu tiên.
Cấu hình Thông số Kỹ thuật
maxpkt_
Kích thước tối đa của một gói tính bằng byte. Điều này chỉ được sử dụng bởi các đối tượng CBQ / WRR
trong tính toán phân bổ băng thông tối đa cho vòng lặp có trọng số
Người lập kế hoạch.
CBQCLASS CÁC ĐỐI TƯỢNG
Các đối tượng CBQClass thực hiện các lớp lưu lượng liên kết với các đối tượng CBQ.
$ cbqclass thông số thiết lập cha mẹ đồng ý phân bổ hàm trên ưu tiên cấp dẫn độ
Đặt một số tham số cấu hình cho lớp lưu lượng CBQ (xem bên dưới).
$ cbqclass cha mẹ [$ cbqcl | none]
chỉ định lớp cha của lớp này trong cây chia sẻ liên kết. Cha mẹ có thể là
được chỉ định là `` không '' để chỉ ra rằng lớp này là một cơ sở.
$ cbqclass phân bổ mới $a
Thay đổi phân bổ liên kết của lớp này thành số lượng được chỉ định (trong phạm vi từ 0.0 đến
1.0). Lưu ý rằng chỉ lớp được chỉ định bị ảnh hưởng.
$ cbqclass hàng đợi cài đặt $q
Cài đặt một đối tượng Queue vào cấu trúc liên kết CBQ hoặc CBQ / WRR. Khi một CBQ
đối tượng được tạo ban đầu, nó không bao gồm hàng đợi nội bộ (chỉ một gói
bộ phân loại và bộ lập lịch).
Cấu hình Thông số Kỹ thuật
được rồi_
là một boolean cho biết lớp được phép mượn băng thông từ
cha mẹ.
phân bổ_ là phần lớn nhất của băng thông liên kết được phân bổ cho lớp được biểu thị
dưới dạng một số thực từ 0.0 đến 1.0.
hàm trên_
là lượng thời gian tối đa mà một lớp có thể cần để có các gói của nó
xếp hàng trước khi chúng được phép chuyển tiếp
sự ưu tiên_
là mức độ ưu tiên của lớp đối với các lớp khác. Giá trị này có thể
từ 0 đến 10 và có thể tồn tại nhiều hơn một lớp ở cùng mức độ ưu tiên.
Mức độ ưu tiên 0 là mức độ ưu tiên cao nhất.
cấp độ_ là mức của lớp này trong cây chia sẻ liên kết. Các nút lá trên cây
được coi là ở mức 1; bố mẹ chúng học cấp 2, v.v.
chậm trễ_
tăng độ trễ do một lớp bị trì hoãn trải qua số lượng đã chỉ định
giây.
QUUEMONITOR Đối tượng
Đối tượng QueueMonitor được sử dụng để giám sát một tập hợp các gói và byte đến, khởi hành và
quầy rơi. Nó cũng bao gồm hỗ trợ cho thống kê tổng hợp chẳng hạn như hàng đợi trung bình
kích thước, v.v. [xem TRACE VÀ PHƯƠNG PHÁP THEO DÕI].
$ queuemonitor thiết lập lại
đặt lại tất cả các quầy tích lũy được mô tả bên dưới (lượt đến, lượt đi và lượt xuống)
về không. Ngoài ra, hãy đặt lại bộ tích hợp và bộ lấy mẫu trì hoãn, nếu được xác định.
$ queuemonitor thiết lập-độ trễ-mẫu độ trễSamp_
Thiết lập đối tượng Mẫu độ trễSamp_ để ghi lại số liệu thống kê về sự chậm trễ của hàng đợi.
độ trễSamp_ là một xử lý đối với một đối tượng Mẫu, tức là đối tượng Mẫu phải có
đã được tạo.
$ queuemonitor get-bytes-integration
Trả về một đối tượng Tích phân có thể được sử dụng để tìm tích phân của hàng đợi
kích thước tính bằng byte. (xem phần Đối tượng Tích hợp).
$ queuemonitor get-pkts-integration
Trả về một đối tượng Tích phân có thể được sử dụng để tìm tích phân của hàng đợi
kích thước trong gói. (xem phần Đối tượng Tích hợp).
$ queuemonitor lấy-trễ-mẫu
Trả về một đối tượng Mẫu độ trễSamp_ để ghi lại thống kê về sự chậm trễ của hàng đợi (xem
Phần Đối tượng Mẫu).
Không có thông số cấu hình cụ thể cho đối tượng này.
Tiểu bang Biến
kích thước_ Kích thước hàng đợi tức thời tính bằng byte.
gói_ Kích thước hàng đợi tức thời trong các gói.
khoảng cách_
Đang chạy tổng số gói đã đến.
hàng rào_
Đang chạy tổng số byte có trong các gói đã đến.
pkhởi hành_
Đang chạy tổng số gói đã khởi hành (không bị rớt).
bkhởi hành_
Đang chạy tổng số byte có trong các gói đã khởi hành (không phải
giảm).
giọt nước_
Tổng số gói bị giảm.
giọt nước mắt_
Tổng số byte bị giảm.
byteInt_
Đối tượng tích phân tính tích phân của kích thước hàng đợi theo byte.
tổng hợp_ biến của đối tượng này có tổng đang chạy (tích phân) của hàng đợi
kích thước tính bằng byte.
pktsInt_
Đối tượng tích phân tính tích phân của kích thước hàng đợi trong gói.
tổng hợp_ biến của đối tượng này có tổng đang chạy (tích phân) của hàng đợi
kích thước trong gói.
QUEUEMONITOR / ED Đối tượng
Đối tượng dẫn xuất này có khả năng phân biệt các giọt gói thông thường với đầu giọt.
Một số hàng đợi phân biệt giọt thông thường (ví dụ: giọt do cạn bộ đệm) với
giảm (ví dụ: rơi ngẫu nhiên trong hàng đợi ĐỎ). Trong một số trường hợp, nó rất hữu ích để
phân biệt hai loại giọt này.
Tiểu bang Biến
giọt nước_
Số lượng gói tin đã bị loại bỏ `` sớm ''.
giọt nước mắt_
Số byte bao gồm các gói đã bị loại bỏ `` sớm ''
Lưu ý: bởi vì lớp này là một lớp con của QueueMonitor, các đối tượng kiểu này cũng có
các trường như pdrops_ và bdrops_. Các trường này mô tả Tổng số số lượng giảm
gói và byte, bao gồm cả giọt sớm và không sớm.
QUEUEMONITOR / ED / FLOWMON Đối tượng
Các đối tượng này có thể được sử dụng thay cho đối tượng QueueMonitor thông thường khi muốn
để thu thập số lượng và thống kê trên mỗi luồng bên cạnh các số lượng tổng hợp và
thống kê được cung cấp bởi QueueMonitor cơ bản.
$ fmon phân loại [$ cl]
chèn (đọc) bộ phân loại đã chỉ định vào (từ) đối tượng giám sát luồng. Cái này
được sử dụng để ánh xạ các gói đến mà chúng được liên kết với.
$ fmon đổ
Đưa bộ đếm và thống kê trên mỗi luồng hiện tại vào kênh I / O được chỉ định trong
hoạt động đính kèm trước đó.
$ fmon chảy
Trả về một chuỗi ký tự chứa tên của tất cả các đối tượng luồng được biết đến bởi điều này
giám sát lưu lượng. Mỗi đối tượng này có kiểu QueueMonitor / ED / Flow.
$ fmon đính kèm $ chan
Gắn kênh I / O tcl vào bộ theo dõi luồng. Thống kê luồng được ghi vào
kênh khi hoạt động kết xuất được thực hiện.
Cấu hình Thông số Kỹ thuật
kích hoạt_in_
Được đặt thành true theo mặc định, cho biết rằng trạng thái đến của mỗi luồng phải được giữ
bằng bộ theo dõi lưu lượng. Nếu được đặt thành false, chỉ tổng hợp
thông tin được lưu giữ.
kích hoạt_out_
Được đặt thành true theo mặc định, cho biết rằng trạng thái khởi hành theo luồng phải là
được lưu giữ bởi bộ theo dõi lưu lượng. Nếu được đặt thành false, chỉ khởi hành tổng hợp
thông tin được lưu giữ.
kích hoạt_drop_
Được đặt thành true theo mặc định, cho biết rằng trạng thái thả trên mỗi luồng phải được giữ bằng
giám sát dòng chảy. Nếu được đặt thành false, chỉ thông tin tổng hợp giảm xuống là
đã giữ.
enable_edro_
Được đặt thành true theo mặc định, cho biết rằng trạng thái giảm sớm trên mỗi luồng phải là
được lưu giữ bởi bộ theo dõi lưu lượng. Nếu được đặt thành false, chỉ giảm tổng hợp sớm
thông tin được lưu giữ.
QUEUEMONITOR / ED / FLOW Đối tượng
Các đối tượng này chứa số lượng mỗi luồng và thống kê được quản lý bởi QUEUEMONITOR / ED / FLOWMON
sự vật. Chúng thường được tạo trong một thủ tục gọi lại OTcl khi một bộ theo dõi luồng
cho một gói nó không thể ánh xạ vào một luồng đã biết. Lưu ý rằng trình phân loại của bộ giám sát luồng
chịu trách nhiệm ánh xạ các gói tới các luồng theo một số cách tùy ý. Do đó, tùy thuộc vào
loại trình phân loại được sử dụng, không phải tất cả các biến trạng thái đều có thể phù hợp (ví dụ: một có thể
phân loại các gói chỉ dựa trên id luồng, trong trường hợp đó là địa chỉ nguồn và địa chỉ đích
có thể không đáng kể).
Tiểu bang Biến
src_ Địa chỉ nguồn của các gói thuộc luồng này.
dst_ Địa chỉ đích của các gói thuộc luồng này.
chảy_
Id luồng của các gói thuộc luồng này.
UNICAST ĐỊNH TUYẾN PHƯƠNG PHÁP
Một giao thức định tuyến unicast động có thể được chỉ định để chạy trên một tập hợp con các nút trong
cấu trúc liên kết. Lưu ý rằng giao thức định tuyến động thường được sử dụng bất cứ khi nào
mô phỏng được thực hiện với động lực mạng.
$ ns rtproto do đó danh sách nút
Chỉ định giao thức định tuyến unicast động do đó được chạy trên các nút
theo quy định của danh sách nút. Hiện nay do đó có thể là một trong các Static, Session, DV. Tĩnh
định tuyến là mặc định. Phiên ngụ ý rằng các tuyến unicast trên toàn bộ
cấu trúc liên kết được tính toán lại ngay lập tức bất cứ khi nào một liên kết đi lên hoặc đi xuống. DV
ngụ ý rằng một giao thức định tuyến véc tơ khoảng cách đơn giản sẽ được mô phỏng. nút-
mặc định cho tất cả các nút trong cấu trúc liên kết.
$ ns các tuyến đường máy tính
Tính toán các tuyến đường giữa tất cả các nút trong cấu trúc liên kết. Điều này có thể được sử dụng nếu tĩnh
định tuyến được thực hiện và các tuyến phải được tính toán lại như trạng thái của một liên kết có
đã thay đổi. Lưu ý rằng Định tuyến phiên (xem rtproto phương pháp trên) sẽ tính toán lại
tự động định tuyến bất cứ khi nào trạng thái của bất kỳ liên kết nào trong cấu trúc liên kết thay đổi.
$ ns get-routelogic
Trả về một xử lý cho một đối tượng RouteLogic có các phương thức để tra cứu bảng tuyến đường
và vv
ĐƯỜNG HỌC CÁC ĐỐI TƯỢNG
$ routelogic tra cứu lạnh lùng định mệnh
Trả về id của nút là bước tiếp theo từ nút có id lạnh lùng đến
nút có id định mệnh.
$ routelogic đổ gật đầu
Kết xuất bảng định tuyến của tất cả các nút có id nhỏ hơn có nút. Id nút là
thường được gán cho các nút theo kiểu tăng dần bắt đầu từ 0 theo thứ tự của chúng
sự sáng tạo.
ĐỐI TƯỢNG CÁC ĐỐI TƯỢNG
Mỗi nút tham gia vào giao thức định tuyến unicast động sẽ có một phiên bản của
rtObject (xem phần ĐỐI TƯỢNG NODE để biết phương thức nhận xử lý đối tượng này tại
nút cụ thể). Lưu ý rằng các nút sẽ không có phiên bản của đối tượng này nếu Phiên
định tuyến được thực hiện như một giao thức định tuyến chi tiết không được mô phỏng trong trường hợp này.
$ rtobject các tuyến đường tệpID
Đưa bảng định tuyến vào kênh đầu ra được chỉ định bởi ID tệp. tệpID phải là một
xử lý tệp do Tcl trả về mở lệnh và nó phải được mở cho
văn bản.
$ rtobject rtProto? do đó
Trả về một xử lý cho tác nhân giao thức định tuyến được chỉ định bởi do đó nếu nó tồn tại ở
nút đó. Trả về một chuỗi rỗng nếu không.
$ rtobject tiếp theoHop? định danh
Trả về id của nút là bước tiếp theo đến đích được chỉ định bởi
id nút, đích.
$ rtobject rtpref? định danh
$ rtobject Hệ mét? định danh
ĐA NĂNG ĐỊNH TUYẾN PHƯƠNG PHÁP
Định tuyến đa hướng được bật bằng cách đặt biến Simulator EnableMcast_ thành 1 tại
đầu mô phỏng. Lưu ý rằng biến này phải được đặt trước bất kỳ nút, liên kết hoặc
các đối tượng tác nhân được tạo trong mô phỏng. Ngoài ra, các liên kết phải được tạo bằng
nhãn giao diện (xem các phương pháp liên kết đơn giản và liên kết song công trong phần NS COMMANDS).
$ ns mrtproto do đó danh sách nút
Chỉ định giao thức định tuyến đa hướng do đó được chạy trên các nút được chỉ định bởi
danh sách nút. Hiện nay do đó có thể là một trong CtrMcast, DM, detailDM, dynamicDM,
pimDM. danh sách nút mặc định cho tất cả các nút trong cấu trúc liên kết. Trả về một chốt cho
một đối tượng cụ thể theo giao thức có các phương thức, thông số cấu hình cụ thể cho
giao thức đó. Lưu ý rằng hiện tại đối tượng CtrMcastComp được trả về nếu CtrMcast
được sử dụng nhưng một chuỗi rỗng được trả về nếu DM, detailDM, dynamicDM hoặc pimDM được sử dụng.
Nếu proto là 'CtrMcast', cây chia sẻ gốc Điểm hẹn (RP) được xây dựng cho
nhóm đa hướng. Thực tế gửi tin nhắn tỉa, nối, v.v. để thiết lập trạng thái
tại các nút không được mô phỏng. Một tác nhân tính toán tập trung được sử dụng để tính toán
cây chuyển tiếp và thiết lập trạng thái chuyển tiếp đa hướng, (*, G) tại
các nút khi người nhận mới tham gia vào một nhóm. Các gói dữ liệu từ người gửi đến một nhóm là
unicast tới RP. Các phương thức được cung cấp trong đối tượng CtrMcastComp (xem
Phần CTRMCASTCOMP OBJECTS) được trả về bởi mrtproto để chuyển sang nguồn-
cây cụ thể, chọn một số nút làm RP ứng viên, v.v. Khi một nút / liên kết trên
cây phân phối đa hướng đi xuống, cây được tính toán lại ngay lập tức.
Nếu proto là 'DM', chế độ dày đặc giống như DVMRP được mô phỏng. Danh sách cha mẹ con được sử dụng
để giảm số lượng liên kết mà các gói dữ liệu được phát. Tỉa
các thông điệp được gửi bởi các nút để loại bỏ các nhánh khỏi cây chuyển tiếp đa hướng
điều đó không dẫn đến bất kỳ thành viên nào trong nhóm. Giá trị thời gian chờ sơ lược là 0.5 giây theo mặc định
(xem phần ĐỐI TƯỢNG DM để thay đổi mặc định). Điều này không thích ứng với mạng
những thay đổi. Hiện tại cũng không có hỗ trợ cho hoạt động bình thường trong cấu trúc liên kết
với mạng LAN.
Nếu proto là 'detailDM', một giao thức chế độ dày đặc dựa trên Giao thức độc lập
Đa hướng - Chế độ dày đặc (PIM-DM) được mô phỏng. Điều này hiện là hoàn chỉnh nhất
phiên bản của giao thức chế độ dày đặc trong trình mô phỏng và được khuyến nghị sử dụng hơn
các giao thức chế độ dày đặc khác. Nó thích ứng với động lực và chức năng mạng
chính xác trong cấu trúc liên kết với mạng LAN (trong đó mạng LAN được tạo bằng cách sử dụng đa liên kết của-
phương pháp giao diện - xem NS COMMANDS). Trong trường hợp có nhiều tiềm năng
bộ chuyển tiếp cho mạng LAN, nút có id cao nhất được chọn làm bộ chuyển tiếp (cái này
được thực hiện thông qua cơ chế Assert). Các giá trị mặc định cho thời gian chờ sơ lược,
thời gian chờ xóa giao diện (được sử dụng cho mạng LAN) và thời gian chờ truyền lại ghép là
Lần lượt là 0.5s, 0.1s và 0.05s. (xem Prune / Iface / Hẹn giờ, Xóa / Iface / Hẹn giờ
và các đối tượng GraftRtx / Timer tương ứng để thay đổi các giá trị mặc định và để biết thêm
thông tin về bộ hẹn giờ).
Nếu proto là giao thức chế độ dày đặc giống như DVMRP 'dynamicDM' thích ứng với mạng
các thay đổi được mô phỏng. Thông tin 'đảo ngược chất độc' (tức là thông tin mà một
nút lân cận cụ thể sử dụng nút này để tiếp cận một mạng cụ thể) được đọc
từ bảng định tuyến của các nút lân cận để thích ứng với động lực mạng
(DVMRP chạy giao thức định tuyến unicast của riêng nó để trao đổi thông tin này). Các
triển khai hiện tại không hỗ trợ hoạt động bình thường trong cấu trúc liên kết với mạng LAN.
Giá trị thời gian chờ sơ lược là 0.5 giây theo mặc định (xem phần ĐỐI TƯỢNG DM để thay đổi
mặc định).
Nếu proto là 'pimDM' Giao thức Đa hướng độc lập - Chế độ dày đặc được mô phỏng. Trong
trường hợp này các gói dữ liệu được phát trên tất cả các liên kết đi ngoại trừ
liên kết đến. Các thông điệp sơ lược được gửi bởi các nút để loại bỏ các nhánh của
cây chuyển tiếp đa hướng không dẫn đến bất kỳ thành viên nhóm nào. Hiện tại
triển khai không thích ứng với động lực mạng và không hỗ trợ thích hợp
hoạt động trong cấu trúc liên kết với mạng LAN. Giá trị thời gian chờ sơ lược là 0.5 giây theo mặc định
(xem phần ĐỐI TƯỢNG DM để thay đổi mặc định).
CTRMCASTCOMP CÁC ĐỐI TƯỢNG
Xử lý đối tượng CtrMcastComp được trả về khi giao thức được chỉ định là
'CtrMcast' trong mrtproto.
$ ctrmcastcomp switch-treetype nhóm-addr
Chuyển từ cây chia sẻ gốc của Điểm hẹn sang cây dành riêng cho nguồn dành cho
nhóm được chỉ định bởi nhóm-addr. Lưu ý rằng không thể sử dụng phương pháp này để chuyển đổi
từ cây dành riêng cho nguồn trở lại cây dùng chung cho một nhóm đa hướng.
$ ctrmcastcomp set_c_rp danh sách nút
Làm cho tất cả các nút được chỉ định trong danh sách nút làm RP ứng viên và thay đổi trạng thái
tất cả các nút khác không phải là RP ứng viên. Lưu ý rằng tất cả các nút đều là RP ứng viên
theo mặc định. Hiện tại, nút có id nút cao nhất đóng vai trò là RP cho tất cả
nhóm đa hướng. Phương thức này phải được gọi trước khi bất kỳ nguồn nào bắt đầu gửi
gói đến nhóm hoặc bất kỳ người nhận nào tham gia vào nhóm.
$ ctrmcastcomp get_rp nút nhóm
Trả về RP cho nhóm như được nhìn thấy bởi nút nút cho nhóm phát đa hướng với
địa chỉ nhóm-addr. Lưu ý rằng các nút khác nhau có thể thấy các RP khác nhau cho nhóm
nếu mạng được phân vùng vì các nút có thể nằm trong các phân vùng khác nhau.
DM CÁC ĐỐI TƯỢNG
Đối tượng DM triển khai mã hóa đa hướng theo kiểu DVMRP nơi danh sách mẹ-con được sử dụng để
giảm số lượng liên kết mà các gói dữ liệu ban đầu được phát đi. Không có
các phương thức hoặc biến trạng thái cụ thể cho đối tượng này.
Cấu hình thông số
PruneHết giờ
Giá trị thời gian chờ cho trạng thái sơ lược tại các nút.
PRUNE / IFACE / TIMER CÁC ĐỐI TƯỢNG
Các đối tượng Prune / Iface / Timer được sử dụng để triển khai bộ đếm thời gian cắt tỉa cho chi tiếtDM. Ở đó
không có phương thức hoặc biến trạng thái cụ thể cho đối tượng này.
Cấu hình thông số
thời gian chờ
Giá trị thời gian chờ cho trạng thái sơ lược tại các nút.
DELETION / IFACE / TIMER CÁC ĐỐI TƯỢNG
Các đối tượng Xóa / Iface / Bộ hẹn giờ được sử dụng để triển khai bộ hẹn giờ xóa giao diện
được yêu cầu để hoạt động chính xác tại các nút là một phần của mạng LAN. Nếu một nút có mạng LAN
như giao diện đến của nó cho các gói từ một nguồn nhất định và nó không có bất kỳ
các thành viên hạ lưu nó sẽ gửi một thông báo sơ lược vào mạng LAN. Bất kỳ nút nào có mạng LAN
như giao diện đến của nó cho cùng một nguồn và có các thành viên phía dưới nghe thấy
lược bớt tin nhắn được gửi trên mạng LAN. sẽ gửi một tin nhắn tham gia vào mạng LAN. Khi nút đó
đang hoạt động như người chuyển tiếp cho mạng LAN nghe thấy thông báo sơ lược từ mạng LAN, nó không
ngay lập tức loại bỏ mạng LAN làm giao diện đi của nó. Thay vào đó, nó bắt đầu một giao diện
hẹn giờ xóa cho giao diện gửi đi. Người giao nhận sẽ xóa mạng LAN làm
giao diện gửi đi chỉ khi nó không nhận được bất kỳ thông báo tham gia nào từ mạng LAN trước
thời gian xóa hết hạn. Không có phương thức hoặc biến trạng thái cụ thể cho đối tượng này.
Cấu hình thông số
thời gian chờ
Giá trị thời gian chờ cho bộ hẹn giờ xóa giao diện.
GRAFTRTX / HẸN GIỜ CÁC ĐỐI TƯỢNG
Các đối tượng GraftRtx / Timer được sử dụng để triển khai bộ đếm thời gian truyền lại ghép tại các nút.
Điều này là để đảm bảo độ tin cậy của các đoạn ghép được gửi ngược dòng bởi một nút.
Cấu hình thông số
thời gian chờ
Giá trị thời gian chờ cho bộ đếm thời gian truyền lại đoạn ghép.
ĐẶC VỤ CÁC ĐỐI TƯỢNG
[LƯU Ý: Phần này chưa được xác minh là cập nhật với bản phát hành.]
đại lý $ cổng
Trả lại cổng cấp vận chuyển của đại lý. Các cổng được sử dụng để xác định các tác nhân
trong một nút.
đại lý $ dst-addr
Trả lại địa chỉ của nút đích mà tác nhân này được kết nối với.
đại lý $ cổng dst
Trả lại cổng tại nút đích mà tác nhân này được kết nối.
đại lý $ nguồn đính kèm kiểu
Cài đặt loại nguồn dữ liệu kiểu trong đại lý này. kiểu là một trong FTP hoặc
khát [???]. Xem các phương thức đối tượng tương ứng để biết thông tin về cấu hình
thông số. Trả về một xử lý cho đối tượng nguồn.
đại lý $ lưu lượng đính kèm lưu lượng-đối tượng
Đính kèm lưu lượng-đối tượng đến đại lý này lưu lượng-đối tượng là một ví dụ của Traffic / Expoo,
Traffic / Pareto hoặc Traffic / Trace. Traffic / Expoo tạo ra lưu lượng truy cập dựa trên
Phân phối Bật / Tắt theo cấp số nhân. Traffic / Pareto tạo ra lưu lượng truy cập dựa trên
Pareto On / Off phân phối. Traffic / Trace tạo ra lưu lượng truy cập từ một tập tin theo dõi.
Các tham số cấu hình liên quan cho từng đối tượng trên có thể được tìm thấy trong
phần PHƯƠNG PHÁP GIAO THÔNG.
đại lý $ kết nối địa chỉ cổng
Kết nối đại lý này với đại lý được xác định bằng địa chỉ địa chỉ và cảng Hải cảng. T
khiến các gói được truyền từ tác nhân này chứa địa chỉ và cổng
được chỉ ra, để các gói như vậy được chuyển đến tác nhân dự định. Hai đặc vụ
phải tương thích (ví dụ: cặp tcp-source / tcp-chìm thay vì cbr / tcp-chìm
đôi). Nếu không, kết quả của mô phỏng là không thể đoán trước.
Cấu hình Thông số Kỹ thuật
dst_ Địa chỉ của điểm đến mà đại lý được kết nối. Hiện tại 32 bit
với 24 bit cao hơn là ID nút đích và 8 bit thấp hơn là
số cổng.
Không có biến trạng thái cụ thể cho lớp tác nhân chung.
NULL CÁC ĐỐI TƯỢNG
[LƯU Ý: Phần này chưa được xác minh là cập nhật với bản phát hành.] Null
các đối tượng là một lớp con của các đối tượng tác nhân thực hiện một lưu lượng truy cập. Họ thừa hưởng tất cả
của chức năng đối tượng tác nhân chung. Không có phương thức, tham số cấu hình
hoặc các biến trạng thái cụ thể cho đối tượng này.
NGƯỜI THAM GIA CÁC ĐỐI TƯỢNG
[LƯU Ý: Phần này chưa được xác minh là cập nhật với bản phát hành.] LossMonitor
các đối tượng là một lớp con của các đối tượng tác nhân triển khai một lưu lượng truy cập cũng duy trì
một số thống kê về dữ liệu đã nhận, ví dụ: số byte nhận được, số gói
bị mất, v.v. Chúng kế thừa tất cả các chức năng của đối tượng tác nhân chung.
$ lossmonitor trong sáng
Đặt lại số thứ tự mong đợi thành -1.
Cấu hình Thông số Kỹ thuật
Không có thông số cấu hình cụ thể cho đối tượng này.
Tiểu bang Biến
mất tích_ Số lượng gói bị mất.
npkt_ Số lượng gói nhận được.
byte_ Số byte nhận được.
lần trướcPktTime_
Thời gian nhận được gói tin cuối cùng.
dự kiến_
Số thứ tự dự kiến của gói tiếp theo.
TCP CÁC ĐỐI TƯỢNG
Các đối tượng TCP là một lớp con của các đối tượng tác nhân thực hiện truyền tải TCP BSD Tahoe
giao thức như được mô tả trong [7]. Chúng kế thừa tất cả các chức năng tác nhân chung.
Để theo dõi các tham số TCP, hãy đánh dấu từng tham số bằng `` $ tcp trace window_ '' và sau đó gửi
xuất ra tệp theo dõi với `` $ tcp đính kèm [open trace.tr w] ''.
Các phân đoạn tcp có thể được gửi bằng lệnh trước và lệnh advanaceby. Khi tất cả dữ liệu được gửi,
phương thức done sẽ được gọi (có thể được ghi đè trong OTcl).
$ tcp tiến n
Gửi đến gói thứ n.
$ tcp trước n
Gửi thêm n gói tin.
$ tcp thực hiện
Chức năng được gọi khi tất cả các gói (được chỉ định bởi Advance / Advance / maxpkts_) có
đã được gửi. Có thể được ghi đè trên cơ sở từng đối tượng.
Cấu hình Thông số Kỹ thuật
cửa sổ_
Giới hạn trên trên cửa sổ được quảng cáo cho kết nối TCP (trong
gói tin).
maxcwnd_
Giới hạn trên trên cửa sổ tắc nghẽn cho kết nối TCP. Đặt thành
không để bỏ qua. (Đây là mặc định.) Được đo bằng gói.
cửa sổInit_
Kích thước ban đầu của cửa sổ tắc nghẽn khi khởi động chậm. (ở dạng gói).
wnd_init_option_
Thuật toán được sử dụng để xác định kích thước ban đầu của tắc nghẽn
cửa sổ. Đặt thành 1 cho một thuật toán tĩnh sử dụng giá trị trong cửa sổInit_.
Đặt thành 2 cho một thuật toán động bằng cách sử dụng hàm của packSize_.
syn_ Đặt thành true để lập mô hình trao đổi SYN / ACK ban đầu trong TCP một chiều. Đặt thành
false làm mặc định.
độ trễ_tăng trưởng_
Đặt thành true để trì hoãn cửa sổ tắc nghẽn ban đầu cho đến sau một gói
đã được gửi và đánh dấu. Đặt thành false làm mặc định.
cửa sổTùy chọn_
Thuật toán sử dụng để quản lý cửa sổ tắc nghẽn trong pha tuyến tính.
Thuật toán tiêu chuẩn là 1 (mặc định). Các thuật toán thử nghiệm khác
được ghi lại trong mã nguồn.
cửa sổThresh_
Đạt được hằng số đến bộ lọc trung bình theo cấp số nhân được sử dụng để tính toán chờ đợi (xem
phía dưới). Để điều tra các thuật toán tăng cửa sổ khác nhau.
trên không_
Phạm vi (tính bằng giây) của một biến ngẫu nhiên thống nhất được sử dụng để trì hoãn mỗi
gói đầu ra. Ý tưởng là chèn các độ trễ ngẫu nhiên tại nguồn theo thứ tự
để tránh hiệu ứng pha, khi muốn [4]. Điều này chỉ mới được thực hiện
cho phiên bản Tahoe ("tcp") của tcp, không cho tcp-Reno. Đây không phải là
nhằm trở thành một mô hình thực tế về chi phí xử lý CPU.
ecn_ Đặt thành true để sử dụng thông báo tắc nghẽn rõ ràng ngoài gói
giảm xuống để báo hiệu tắc nghẽn. Điều này cho phép Truyền lại nhanh sau khi dập tắt ()
do một bit ECN (thông báo tắc nghẽn rõ ràng).
packSize_
Kích thước tính bằng byte để sử dụng cho tất cả các gói từ nguồn này.
tcpip_base_hdr_size_
Kích thước tính bằng byte của tiêu đề TCP / IP cơ sở.
tcpTick_
Mức độ chi tiết của đồng hồ TCP để đo thời gian một vòng. Lưu ý rằng nó là
được đặt theo mặc định thành giá trị không chuẩn là 100ms. Tính bằng giây.
vá lỗi_
Đặt thành true để xóa lỗi khi cho phép nhiều lần truyền lại nhanh
gói dữ liệu bị giảm trong một cửa sổ dữ liệu.
cực đại_
Đặt thành XNUMX để bỏ qua. Nếu không, số lượng gói tối đa mà
nguồn có thể gửi phản hồi đến một ACK đến.
chậm_start_restart_
Boolean; đặt thành 1 để khởi động chậm sau khi kết nối không hoạt động. Trên bởi
mặc định.
srtt_init_
Giá trị ban đầu cho ước tính thời gian khứ hồi được làm mịn. Mặc định là 0
giây.
t_rttvar_
Giá trị ban đầu cho phương sai trong thời gian khứ hồi. Mặc định là 3 giây.
rtxcur_init_
Giá trị ban đầu cho giá trị truyền lại. Mặc định là 6 giây.
T_SRTT_BITS
Số mũ của trọng số để cập nhật thời gian khứ hồi được làm mịn t_srtt_.
Mặc định là 3, đối với trọng lượng 1/2 ^ T_SRTT_BITS hoặc 1/8.
T_RTTVAR_BITS
Số mũ của trọng số để cập nhật phương sai trong thời gian khứ hồi, t_rttvar_.
Mặc định là 2, đối với trọng lượng 1/2 ^ T_RTTVAR_BITS hoặc 1/4.
rttvar_exp_
Số mũ của bội số của độ lệch trung bình trong tính toán dòng điện
truyền lại giá trị t_rtxcur_. Mặc định là 2, cho bội số của 2 ^ rttvar_exp_
hoặc 4.
Xác định Hằng số
MWS Kích thước cửa sổ tối đa trong gói cho kết nối TCP. MWS xác định
kích thước của một mảng trong tcp-sink.cc. Mặc định cho MWS là 1024 gói. Vì
Tahoe TCP, tham số "cửa sổ", đại diện cho người nhận được quảng cáo
cửa sổ, phải nhỏ hơn MWS-1. Đối với Reno TCP, tham số "cửa sổ"
phải nhỏ hơn (MWS-1) / 2.
Tiểu bang Biến
gói du lịch_
Số lượng bản sao trùng lặp được nhìn thấy kể từ khi bất kỳ dữ liệu mới nào được thừa nhận.
mục số_ Số thứ tự cao nhất cho dữ liệu từ nguồn dữ liệu đến TCP.
t_seqno_
Số thứ tự truyền hiện tại.
ack_ Xác nhận cao nhất được nhìn thấy từ người nhận.
cwnd_ Giá trị hiện tại của cửa sổ tắc nghẽn (trong các gói).
chờ đợi_ Giá trị hiện tại của phiên bản được lọc thông thấp của cửa sổ tắc nghẽn. Vì
điều tra các thuật toán tăng cửa sổ khác nhau.
ssthresh_
Giá trị hiện tại của ngưỡng khởi động chậm (trong gói).
rtt_ Ước tính thời gian khứ hồi. Tính bằng giây (được biểu thị bằng bội số của tcpTick_).
srtt_ Ước tính thời gian cho chuyến đi khứ hồi mượt mà. Tính bằng giây (theo bội số của tcpTick_ / 8).
rttvar_
Ước tính độ lệch trung bình thời gian khứ hồi.
t_rtxcur_
Giá trị truyền lại hiện tại. Trong vài giây.
rút lui_
Hằng số lùi thời gian khứ hồi theo cấp số nhân.
TCP / RENO CÁC ĐỐI TƯỢNG
Các đối tượng TCP / Reno là một lớp con của các đối tượng TCP thực hiện truyền tải TCP Reno
giao thức như được mô tả trong [7]. Không có phương thức, tham số cấu hình hoặc trạng thái
các biến cụ thể cho đối tượng này.
TCP / NEWRENO CÁC ĐỐI TƯỢNG
Các đối tượng TCP / Newreno là một lớp con của các đối tượng TCP triển khai một phiên bản sửa đổi của
Giao thức truyền tải BSD Reno TCP.
Không có phương thức hoặc biến trạng thái cụ thể cho đối tượng này.
Cấu hình Thông số Kỹ thuật
newreno_changes_
Đặt thành 7 cho NewReno mặc định được mô tả trong [1]. Đặt thành XNUMX cho
các thuật toán NewReno bổ sung như được đề xuất trong [10]; điều này bao gồm
ước tính tham số ssthresh trong quá trình khởi động chậm.
TCP / VEGAS CÁC ĐỐI TƯỢNG
Phần này của trang người đàn ông vẫn chưa được viết.
TCP / SACK1 CÁC ĐỐI TƯỢNG
Các đối tượng TCP / Sack1 là một lớp con của các đối tượng TCP thực hiện truyền tải TCP Reno BSD
giao thức với Phần mở rộng xác nhận có chọn lọc như được mô tả trong [7].
Chúng kế thừa tất cả các chức năng của đối tượng TCP. Không có phương pháp, cấu hình
tham số hoặc biến trạng thái cụ thể cho đối tượng này.
TCP / FACK CÁC ĐỐI TƯỢNG
Các đối tượng TCP / Fack là một lớp con của các đối tượng TCP thực hiện truyền tải TCP Reno BSD
giao thức với kiểm soát tắc nghẽn Forward Acknowledgement.
Chúng kế thừa tất cả các chức năng của đối tượng TCP. Không có phương thức hoặc biến trạng thái
cụ thể cho đối tượng này.
Cấu hình Thông số Kỹ thuật
ss-div4
Giải thuật overdamping. Chia ssthresh cho 4 (thay vì 2) nếu tắc nghẽn
được phát hiện trong vòng 1/2 RTT khi khởi động chậm. (1 = Bật, 0 = Tắt)
đoạn đường xuống dốc
Thuật toán làm mịn dữ liệu Rampdown. Làm giảm từ từ cửa sổ tắc nghẽn thay vì
hơn là giảm một nửa ngay lập tức. (1 = Bật, 0 = Tắt)
TCP / FULLTCP CÁC ĐỐI TƯỢNG
Phần này vẫn chưa được thêm vào trang người đàn ông. Việc thực hiện và
tham số cấu hình được mô tả trong [11].
TCPSINK CÁC ĐỐI TƯỢNG
Đối tượng TCPSink là một lớp con của các đối tượng tác nhân thực hiện bộ thu cho các gói TCP.
Trình mô phỏng chỉ thực hiện các kết nối TCP "một chiều", nơi nguồn TCP gửi dữ liệu
gói tin và bộ lưu TCP sẽ gửi các gói ACK. Đối tượng TCPSink kế thừa tất cả các đối tượng chung
chức năng đại lý. Không có phương pháp hoặc biến trạng thái cụ thể cho TCPSink
vật.
Cấu hình Thông số Kỹ thuật
packSize_
Kích thước tính bằng byte để sử dụng cho tất cả các gói thông báo.
maxSackBlocks_
Số khối dữ liệu tối đa có thể được thừa nhận trong một SACK
lựa chọn. Đối với bộ thu cũng đang sử dụng tùy chọn tem thời gian [RFC 1323],
tùy chọn SACK được chỉ định trong RFC 2018 có chỗ để bao gồm ba khối SACK.
Điều này chỉ được sử dụng bởi lớp con TCPSink / Sack1. Giá trị này có thể không
tăng trong bất kỳ đối tượng TCPSink cụ thể nào sau khi đối tượng đó đã được
được phân bổ. (Sau khi đối tượng TCPSink đã được cấp phát, giá trị của
tham số có thể giảm nhưng không tăng).
TCPSINK / DELACK CÁC ĐỐI TƯỢNG
Đối tượng DelAck là một lớp con của TCPSink triển khai bộ thu ACK bị trì hoãn cho TCP
gói tin. Chúng kế thừa tất cả các chức năng của đối tượng TCPSink. Không có phương pháp hoặc
các biến trạng thái cụ thể cho đối tượng DelAck.
Cấu hình Thông số Kỹ thuật
khoảng thời gian_
Khoảng thời gian để trì hoãn trước khi tạo một xác nhận cho một
gói tin. Nếu một gói khác đến trước khi thời gian này hết hạn, hãy tạo một
sự thừa nhận ngay lập tức.
TCPSINK / SACK1 CÁC ĐỐI TƯỢNG
Đối tượng TCPSink / Sack1 là một lớp con của TCPSink triển khai bộ thu SACK cho TCP
gói tin. Chúng kế thừa tất cả các chức năng của đối tượng TCPSink. Không có phương pháp nào,
tham số cấu hình hoặc biến trạng thái cụ thể cho đối tượng này.
TCPSINK / SACK1 / DELACK CÁC ĐỐI TƯỢNG
Đối tượng TCPSink / Sack1 / DelAck là một lớp con của TCPSink / Sack1 triển khai một SACK trì hoãn
bộ thu cho các gói TCP. Chúng kế thừa tất cả các chức năng của đối tượng TCPSink / Sack1.
Không có phương thức hoặc biến trạng thái cụ thể cho đối tượng này.
Cấu hình Thông số Kỹ thuật
khoảng thời gian_
Khoảng thời gian để trì hoãn trước khi tạo một xác nhận cho một
gói tin. Nếu một gói khác đến trước khi thời gian này hết hạn, hãy tạo một
sự thừa nhận ngay lập tức.
SRM CÁC ĐỐI TƯỢNG
Đối tượng SRM là một lớp con của các đối tượng tác nhân triển khai đa hướng đáng tin cậy SRM
giao thức vận tải. Chúng kế thừa tất cả các chức năng tác nhân chung.
$ srm nguồn lưu lượng nguồn
Đính kèm nguồn lưu lượng, ví dụ: Ứng dụng / Lưu lượng / CBR, vào tác nhân SRM.
$ srm Bắt đầu
Tham gia nhóm phát đa hướng, khởi động tác nhân SRM và nguồn lưu lượng kèm theo của nó.
$ srm xóa
Dừng tác nhân SRM, xóa tất cả trạng thái của nó và tách nguồn lưu lượng.
$ srm theo dõi tập tin theo dõi
Viết các dấu vết được tạo bởi tác nhân SRM vào tập tin theo dõi. Các dấu vết bao gồm
cài đặt hẹn giờ, yêu cầu và sửa chữa gửi và biên nhận, v.v. Hai tệp liên quan
không được tích hợp vào ns là tcl / mcast / srm-debug.tcl điều đó cho phép chi tiết hơn
truy tìm các chức năng tính toán độ trễ, và tcl / mcast / srm-nam.tcl việc này
đánh dấu riêng biệt các thông báo kiểm soát srm từ dữ liệu. Cái sau rất hữu ích để nâng cao
hình dung nam.
$ srm đăng nhập tệp nhật ký
Viết thống kê khôi phục trong mỗi lần yêu cầu hoặc sửa chữa để tệp nhật ký. Các
thống kê bao gồm thời gian bắt đầu, thời lượng, id tin nhắn, tổng số bản sao
yêu cầu và sửa chữa.
$ srm khoảng cách? nút
Trả lại ước tính khoảng cách cho nút trong đại lý SRM này.
$ srm khoảng cách? nút
Trả về danh sách bộ số khoảng cách cho tất cả các nhóm
các thành viên mà nút này biết. Thành viên nhóm được xác định là địa chỉ
của đại lý từ xa. Tuple đầu tiên là mã thông báo của đại lý này. Danh sách có thể là
được tải trực tiếp vào một mảng Tcl.
Cấu hình Thông số Kỹ thuật
packSize_
Kích thước gói dữ liệu tính bằng byte sẽ được sử dụng cho các thông báo sửa chữa. Các
giá trị mặc định là 1024.
chức năng yêu cầu_
Thuật toán được sử dụng để tạo ra một yêu cầu truyền lại, ví dụ: thiết lập
yêu cầu bộ hẹn giờ. Giá trị mặc định là SRM / request. Yêu cầu có thể khác
các chức năng là SRM / yêu cầu / Thích ứng, được sử dụng bởi mã SRM Thích ứng.
sửa chữa_
Thuật toán được sử dụng để tạo ra một sửa chữa, ví dụ, tính toán bộ hẹn giờ sửa chữa. Các
giá trị mặc định là SRM / sửa chữa. Các chức năng yêu cầu có thể có khác là
SRM / sửa chữa / Thích ứng, được sử dụng bởi mã SRM Thích ứng.
phiênChức năng_
Thuật toán được sử dụng để tạo thông báo phiên. Mặc định là SRM / phiên
phiên trì hoãn_
Khoảng thời gian cơ bản của thông báo phiên. Biến thể ngẫu nhiên nhẹ được thêm vào
khoảng thời gian này để tránh đồng bộ hóa toàn cầu của các thông báo phiên. Người dùng có thể
muốn điều chỉnh biến này theo mô phỏng cụ thể của chúng.
Tính bằng giây; giá trị mặc định là 1.0 giây.
C1_, C2_
Các tham số điều khiển bộ hẹn giờ yêu cầu. Tham khảo [8] để biết thêm chi tiết. Các
giá trị mặc định là C1_ = C2_ = 2.0.
D1_, D2_
Các thông số điều khiển bộ hẹn giờ sửa chữa. Tham khảo [8] để biết thêm chi tiết. Các
giá trị mặc định là D1_ = D2_ = 1.0.
yêu cầuBackoffGiới hạn_
Số lượng dự phòng theo cấp số nhân tối đa. Giá trị mặc định là 5.
Tiểu bang Biến
số liệu thống kê_ Một mảng chứa nhiều thống kê cần thiết bởi tác nhân SRM thích ứng.
Bao gồm: các yêu cầu trùng lặp và sửa chữa trong thời gian yêu cầu / sửa chữa hiện tại,
số lượng trung bình các yêu cầu và sửa chữa trùng lặp, yêu cầu và sửa chữa chậm trễ
trong thời gian yêu cầu / sửa chữa hiện tại, yêu cầu trung bình và độ trễ sửa chữa.
SRM / Thích ứng CÁC ĐỐI TƯỢNG
SRM / Đối tượng thích ứng là một lớp con của các đối tượng SRM triển khai SRM thích ứng
giao thức truyền tải đa hướng đáng tin cậy. Chúng kế thừa tất cả các chức năng của đối tượng SRM.
Tiểu bang Biến Tham khảo bài báo SRM của Sally và cộng sự ([11]) để biết thêm chi tiết.
khoảng cách_
Biến này được sử dụng để vượt qua ước tính khoảng cách do điều khiển từ xa cung cấp
đại lý trong một yêu cầu hoặc tin nhắn sửa chữa.
D1_, D2_
Tương tự như trong các tác nhân SRM, ngoại trừ việc chúng được khởi tạo để
log10 (kích thước nhóm) khi tạo lần sửa chữa đầu tiên.
tối thiểuC1_, Tối đaC1_, tối thiểuC2_, Tối đaC2_
Giá trị nhỏ nhất / lớn nhất của C1_ và C2_. Giá trị ban đầu mặc định là
được định nghĩa trong [8]. Các giá trị này xác định phạm vi động của C1_ và C2_.
phútD1_, Tối đaD1_, phútD2_, Tối đaD2_
Giá trị nhỏ nhất / lớn nhất của D1_ và D2_. Giá trị ban đầu mặc định là
được định nghĩa trong [8]. Các giá trị này xác định phạm vi động của D1_ và D2_.
AveDups
Giới hạn cao hơn cho các bản sao trung bình.
Đại LộTrì hoãn
Giới hạn cao hơn cho độ trễ trung bình.
eps AveDups - lừa gạt xác định giới hạn dưới của số lượng bản sao, khi
chúng ta nên điều chỉnh các thông số để giảm độ trễ.
ỨNG DỤNG CÁC ĐỐI TƯỢNG
Các đối tượng ứng dụng tạo ra dữ liệu cho các đại lý vận tải để gửi.
FTP ỨNG DỤNG CÁC ĐỐI TƯỢNG
Các đối tượng Application / FTP tạo ra dữ liệu hàng loạt cho một đối tượng TCP để gửi.
$ ftp Bắt đầu
Khiến FTP tạo ra các gói vô thời hạn.
$ ftp sản xuất n
Khiến đối tượng FTP tạo ra n gói tin tức thời.
$ ftp dừng lại
Làm cho đối tượng TCP được đính kèm ngừng gửi dữ liệu.
$ ftp đính kèm đại lý
Đính kèm một ứng dụng / đối tượng FTP vào đại lý.
$ ftp sản xuất nhiều hơn tính
Khiến đối tượng Application / FTP tạo ra tính nhiều gói hơn.
Cấu hình Thông số Kỹ thuật
maxpkt
Số lượng gói tối đa được tạo.
TELNET ỨNG DỤNG CÁC ĐỐI TƯỢNG
Các đối tượng Application / Telnet tạo ra các gói riêng lẻ với thời gian giữa các điểm đến như sau.
If khoảng thời gian_ khác XNUMX, khi đó thời gian giữa các chuyến đến được chọn theo cấp số nhân
phân phối với mức trung bình khoảng thời gian_. Nếu khoảng thời gian_ bằng XNUMX, thì thời gian giữa các chuyến bay đến là
được chọn bằng cách sử dụng phân phối telnet "tcplib".
$ telnet Bắt đầu
Khiến đối tượng Application / Telnet bắt đầu tạo gói.
$ telnet dừng lại
Khiến đối tượng Application / Telnet ngừng tạo gói.
$ telnet đính kèm đại lý
Đính kèm một đối tượng Ứng dụng / Telnet vào đại lý.
Cấu hình Thông số Kỹ thuật
khoảng thời gian_
Thời gian trung bình giữa các lần đến tính bằng giây đối với các gói được tạo bởi
Đối tượng Application / Telnet.
GIAO THÔNG CÁC ĐỐI TƯỢNG
Các đối tượng lưu lượng tạo ra dữ liệu cho một giao thức truyền tải để gửi. Một đối tượng Traffic được tạo
bằng cách khởi tạo một đối tượng của lớp Application / Traffic /kiểu Ở đâu kiểu là một trong những
Hàm mũ, Pareto, CBR, Dấu vết.
SỐ MŨ GIAO THÔNG CÁC ĐỐI TƯỢNG
Ứng dụng / Lưu lượng / Đối tượng theo cấp số nhân tạo ra lưu lượng Bật / Tắt. Trong khoảng thời gian "bật",
các gói được tạo với tốc độ bùng nổ không đổi. Trong thời gian "tắt", không có lưu lượng truy cập
được tạo ra. Thời gian hoạt động liên tục và thời gian không hoạt động được lấy từ các phân phối theo cấp số nhân.
Cấu hình Thông số Kỹ thuật
pack_size_
Kích thước gói tính bằng byte.
thời gian bùng nổ_
Thời gian nổ tính bằng giây.
thời gian rỗi_
Thời gian không hoạt động tính bằng giây.
tỷ lệ_ Tốc độ đỉnh tính bằng bit trên giây.
TƯỜNG GIAO THÔNG CÁC ĐỐI TƯỢNG
Các đối tượng Ứng dụng / Lưu lượng / Pareto tạo ra lưu lượng Bật / Tắt với thời gian liên tục và thời gian nhàn rỗi
lấy từ các bản phân phối pareto.
Cấu hình Thông số Kỹ thuật
pack_size_
Kích thước gói tính bằng byte.
thời gian bùng nổ_
Thời gian trung bình tính bằng giây.
thời gian rỗi_
Thời gian tắt trung bình tính bằng giây.
tỷ lệ_ Tốc độ đỉnh tính bằng bit trên giây.
định hình_ Tham số hình dạng Pareto.
CBR (HẰNG SỐ BIT TỶ LỆ) GIAO THÔNG CÁC ĐỐI TƯỢNG
Các đối tượng Application / Traffic / CBR tạo ra các gói với tốc độ không đổi. Dither có thể được thêm vào
đến thời gian giữa các khoảng thời gian bằng cách bật cờ "ngẫu nhiên".
Cấu hình Thông số Kỹ thuật
tỷ lệ_ Tốc độ đỉnh tính bằng bit trên giây.
pack_size_
Kích thước gói tính bằng byte.
ngẫu nhiên_
Cờ bật và tắt phối màu (mặc định là tắt).
maxpkt_
Số lượng gói tối đa để gửi.
TRACE GIAO THÔNG CÁC ĐỐI TƯỢNG
Các đối tượng Application / Traffic / Trace được sử dụng để tạo lưu lượng truy cập từ một tập tin theo dõi.
$ dấu vết tập tin đính kèm tập tin
Đính kèm đối tượng Tracefile tập tin đến dấu vết này. Đối tượng Tracefile chỉ định
tệp theo dõi mà từ đó dữ liệu lưu lượng sẽ được đọc (xem ĐỐI TƯỢNG TRACEFILE
tiết diện). Nhiều đối tượng Ứng dụng / Lưu lượng / Theo dõi có thể được gắn vào cùng một
Đối tượng tracefile. Một nơi bắt đầu ngẫu nhiên trong Tracefile được chọn cho mỗi
Ứng dụng / Lưu lượng / Đối tượng theo dõi.
Không có tham số cấu hình cho đối tượng này.
TẬP TIN THEO DÕI CÁC ĐỐI TƯỢNG
Các đối tượng tệp theo dõi được sử dụng để chỉ định tệp theo dõi sẽ được sử dụng để tạo
giao thông (xem phần ĐỐI TƯỢNG GIAO THÔNG / GIAO THÔNG). $ tracefile là một phiên bản của Tracefile
Sự vật.
$ tracefile tên tập tin đầu vào theo dõi
Đặt tên tệp mà từ đó dữ liệu theo dõi lưu lượng sẽ được đọc tới đầu vào theo dõi.
Không có tham số cấu hình cho đối tượng này. Một tệp theo dõi bao gồm bất kỳ
số lượng bản ghi có độ dài cố định. Mỗi bản ghi bao gồm 2 trường 32 bit. Người đầu tiên
cho biết khoảng thời gian cho đến khi gói tin tiếp theo được tạo ra tính bằng micro giây. Thư hai
cho biết độ dài của gói tiếp theo tính bằng byte.
TRACE VÀ GIÁM SÁT PHƯƠNG PHÁP
[LƯU Ý: Phần này chưa được xác minh là cập nhật với bản phát hành.] Theo dõi
các đối tượng được sử dụng để tạo nhật ký chụp mức sự kiện thường cho một tệp đầu ra.
Trong suốt phần này, $ ns đề cập đến một đối tượng Simulator, $ agent đề cập đến một Agent
vật.
$ ns tạo dấu vết kiểu tệpID node1 node2 [Lựa chọn]
Tạo một loại đối tượng Trace kiểu và đính kèm tập tin tệpID với nó để
giám sát hàng đợi giữa các nút node1 và nút2. kiểu có thể là một trong Enque, Deque,
Làm rơi. Enque giám sát việc gói tin đến hàng đợi. Deque giám sát việc khởi hành gói tin
tại một hàng đợi. Gói giám sát thả rơi tại một hàng đợi. tệpID phải là một tay cầm tập tin
trả lại bởi Tcl mở lệnh và nó phải được mở để viết. Nếu như
tùy chọn không được chỉ định, lệnh sẽ hướng dẫn đối tượng theo dõi đã tạo
tạo dấu vết ns. Nếu như tùy chọn là "" "nam" "" đối tượng mới sẽ tạo ra dấu vết nam.
Trả về một xử lý cho đối tượng theo dõi.
$ ns dấu vết node1 node2 theo dõi
Xóa đối tượng theo dõi được gắn vào liên kết giữa các nút node1 và node2 với theo dõi
như đối tượng xử lý.
$ ns hàng đợi theo dõi node1 node2 tệpID
Bật theo dõi Enque, Deque và Drop trên liên kết giữa node1 và nút2.
$ ns hàng đợi namtrace node1 node2 tệpID
Chức năng tương tự như $ ns hàng đợi theo dõi, ngoại trừ nó tạo ra dấu vết nam.
$ ns theo dõi tất cả tệpID
Bật Enque, Deque, Drop Tracing trên tất cả các liên kết trong cấu trúc liên kết được tạo sau
phương thức này được gọi. Cũng cho phép truy tìm các động lực mạng. tệpID phải
là một trình xử lý tệp được trả về bởi Tcl mở lệnh và nó phải được mở cho
văn bản.
$ ns namtrace-tất cả tệpID
Chức năng tương tự như $ ns theo dõi tất cả, ngoại trừ nó sẽ tạo ra tất cả các dấu vết tương đương trong nam
định dạng. Ngoài ra, việc gọi lệnh này trước trình mô phỏng bắt đầu chạy sẽ
tạo cấu hình màu (nếu có) và thông tin cấu trúc liên kết theo yêu cầu của nam
(nút, liên kết, hàng đợi). Bạn có thể tìm thấy một ví dụ tại ns-2 / tcl / ex / nam-example.tcl.
$ ns namtrace-config tệpID
Gán một tệp để lưu trữ thông tin cấu hình tên, ví dụ: nút / liên kết / tác nhân và
một số dấu vết liên quan đến Trình mô phỏng chẳng hạn như chú thích. Khi bạn không muốn theo dõi
mọi đối tượng. gọi hàm này và sau đó sử dụng $ ns hàng đợi namtrace, rtMô hình theo dõi,
vv, để chèn các dấu vết riêng lẻ. Lưu ý rằng bạn nên sử dụng cùng một tệp cho
dấu vết cá nhân và cấu hình nam. Một ví dụ cho điều này có sẵn tại
ns-2 / tcl / ex / nam-own-trace.tcl.
$ ns hàng đợi giám sát node1 node2
Sắp xếp độ dài hàng đợi liên kết giữa các nút node1 và node2 để được theo dõi.
Trả về đối tượng QueueMonitor có thể được truy vấn để tìm hiểu kích thước hàng đợi trung bình, v.v.
[xem phần Đối tượng QueueMonitor]
$ ns dấu vết
Xả các kênh đầu ra được gắn vào tất cả các đối tượng theo dõi.
$ liên kết động lực học dấu vết ns tệpID [Lựa chọn]
Theo dõi động lực của liên kết này và ghi đầu ra vào tệpID hồ sơ. ns is
một phiên bản của đối tượng Simulator hoặc MultiSim đã được tạo để gọi ra
mô phỏng.
$ ns màu sắc id tên
Tạo chỉ mục màu, liên kết số id đến tên màu tên. Đủ màu sắc
tạo ra trước trình mô phỏng bắt đầu chạy sẽ được ghi vào tệp nam trace, nếu
Có bất kỳ.
$ ns chú thích dấu vết chuỗi
Viết chú thích cho tệp dấu vết ns và nam, nếu có. Chuỗi nên
được đặt trong dấu ngoặc kép để làm cho nó trở thành một đối số duy nhất.
dấu vết_annotate chuỗi
Một phiên bản khác của $ ns chú thích dấu vết, là một chức năng toàn cục và không
yêu cầu người gọi phải biết ns.
$ ns song công-liên kết-op $ node1 $ node2 $ op $ args
Thực hiện một hoạt động nhất định $ op trên liên kết song công đã cho ($ node1, $ node2). Các
hai thao tác sau có thể được sử dụng:
định hướng - Chỉ định hướng nam của liên kết song công. Giá trị có thể là
trái, phải, lên, xuống, hỗn hợp của chúng được kết hợp bởi '-' (ví dụ:
từ trái xuống) và một số chỉ định góc giữa
liên kết và đường ngang.
queuePos - Tạo một hàng đợi của liên kết simplex ($ node1,
$ node2) ở nam và chỉ định góc giữa
đường ngang và đường dọc theo đó các gói được xếp hàng đợi
sẽ được hiển thị.
$ ns thêm-tác nhân-dấu vết đại lý tên [ID tệp]
Viết một dòng theo dõi nam, sẽ tạo ra một chất theo dõi cho đại lý khi được giải thích
bởi nam. Tên của tác nhân theo dõi sẽ là tên. Chất theo dõi nam này được sử dụng để hiển thị
Vị trí của đại lý và có thể được sử dụng để viết dấu vết nam của các biến được liên kết
với đại lý. Theo mặc định, dấu vết sẽ được ghi vào tệp được chỉ định bởi
namtrace-tất cả. tệpID có thể được sử dụng để ghi dấu vết vào một tệp khác.
đại lý $ dấu vết tên
Nhãn biến OTcl tên of đại lý $ để được truy tìm. Sau đó, bất cứ khi nào biến tên
thay đổi giá trị, một dòng dấu vết nam sẽ được ghi vào tệp dấu vết nam, nếu có.
Lưu ý rằng tên phải giống với tên OTcl thực của biến.
$ ns xóa-tác nhân-dấu vết đại lý
Viết một dòng dấu vết nam, dòng này sẽ xóa dấu vết nam được liên kết với đại lý khi nào
do nam diễn giải.
đại lý $ thêm-var-trace tên giá trị [thể loại]
Viết một dòng dấu vết nam, dòng này tạo ra một dấu vết biến với tên tên và giá trị
giá trị, khi được giải thích bởi nam. kiểu cho biết loại của biến, ví dụ, là
nó là một danh sách, mảng hoặc một biến đơn giản. Hiện tại, chỉ có biến đơn giản được hỗ trợ,
mà kiểu = 'v'.
2 hàm sau đây sẽ được gọi là sau khi trình mô phỏng bắt đầu chạy. Điều này có thể là
sử dụng xong $ ns at.
đại lý $ xóa-var-trace tên
Viết một dòng dấu vết nam, dòng này sẽ xóa dấu vết biến tên khi được giải thích bởi
nam.
đại lý $ cập nhật-var-trace tên giá trị [thể loại]
Viết một dòng theo dõi nam, dòng này sẽ thay đổi giá trị của biến được truy tìm tên khi nào
do nam diễn giải. không giống đại lý $ dấu vết, 3 chức năng trên cung cấp 'hướng dẫn sử dụng'
theo dõi biến, trong đó truy tìm biến được thực hiện bằng cách đặt đại lý $ cập nhật-var-
theo dõi trong mã OTcl, trong khi dấu vết tự động tạo dấu vết nam khi
biến truy vết thay đổi giá trị.
Định dạng tệp theo dõi tương thích ngược với các tệp đầu ra trong phiên bản ns 1
trình mô phỏng để các tập lệnh xử lý hậu kỳ ns-1 vẫn có thể được sử dụng. Theo dõi hồ sơ của
lưu lượng truy cập cho các đối tượng liên kết với Enque, Deque hoặc Drop Tracing có dạng sau:
Ở đâu
:= [hd+-r] h=hop d=drop +=enque -=deque r=receive
: = thời gian mô phỏng tính bằng giây
: = địa chỉ nút đầu tiên của liên kết hop / xếp hàng
: = địa chỉ nút thứ hai của liên kết hop / xếp hàng
: =
: = tcp | telnet | cbr | ack, v.v.
: = kích thước gói tính bằng byte
: = [CP] C = tắc nghẽn, P = ưu tiên
: = trường nhận dạng luồng như được xác định cho IPv6
: = địa chỉ vận chuyển (src = node, sport = agent)
: = địa chỉ vận chuyển (dst = nút, dport = đại lý)
: = số thứ tự gói
: = số nhận dạng duy nhất cho mọi gói tin mới
Chỉ những đại lý quan tâm đến việc cung cấp trình tự sẽ tạo ra số thứ tự
và do đó trường này có thể không hữu ích cho các gói được tạo bởi một số tác nhân.
Đối với các liên kết sử dụng cổng RED, có các hồ sơ theo dõi bổ sung như sau:
Ở đâu
:= [Qap] Q=queue size, a=average queue size,
p = xác suất rơi gói
: = thời gian mô phỏng tính bằng giây
: = giá trị
Bản ghi theo dõi động lực liên kết có dạng:
Ở đâu
:= [v]
: = thời gian mô phỏng tính bằng giây
: = [liên kết lên | liên kết xuống]
: = địa chỉ nút đầu tiên của liên kết
: = địa chỉ nút thứ hai của liên kết
TÍCH HỢP Đối tượng
Các đối tượng tích phân hỗ trợ tính toán gần đúng các tích phân liên tục bằng cách sử dụng
tổng rời rạc. Tổng đang chạy (tích phân) được tính là: sum_ + = [lasty_ * (x - lastx_)]
trong đó (x, y) là phần tử cuối cùng được nhập và (lastx_, lasty_) là phần tử trước đó
đã thêm vào tổng. lastx_ và lasty_ được cập nhật khi các phần tử mới được thêm vào. Các
điểm mẫu đầu tiên mặc định là (0,0) có thể được thay đổi bằng cách thay đổi các giá trị của
(lastx_, lasty_).
$ tích phân điểm mới x y
Cộng điểm (x, y) vào tổng. Lưu ý rằng nó không có nghĩa là x nhỏ hơn
hơn lastx_.
Không có thông số cấu hình cụ thể cho đối tượng này.
Tiểu bang Biến
cuối cùng_ tọa độ x của điểm mẫu cuối cùng.
cuối cùng_ tọa độ y của điểm mẫu cuối cùng.
tổng hợp_ Tổng chạy (tức là tích phân) của các điểm mẫu.
MẪU Đối tượng
Đối tượng Mẫu hỗ trợ tính toán thống kê trung bình và phương sai cho một
mẫu vật.
$ mẫu nghĩa là
Trả về giá trị trung bình của mẫu.
$ mẫu không đúng
Trả về phương sai của mẫu.
$ mẫu cnt
Trả về tổng số điểm mẫu được xem xét.
$ mẫu thiết lập lại
Đặt lại đối tượng Mẫu để theo dõi tập mẫu mới.
Không có tham số cấu hình hoặc biến trạng thái cụ thể cho đối tượng này.
BUILTIN
[LƯU Ý: Phần này chưa được xác minh là cập nhật với bản phát hành.] Bởi vì
OTcl là một ngôn ngữ lập trình chính thức, rất dễ dàng để xây dựng mô phỏng cấp cao
cấu trúc từ các nguyên thủy ns. Một số quy trình thư viện đã được xây dựng theo cách này,
và được nhúng vào trình thông dịch ns dưới dạng các phương thức của lớp Simulator. Khắp
phần này $ ns đại diện cho một đối tượng Simulator.
$ ns tạo kết nối srcType srcNode loại dst dstNode tốt nghiệp lớp XNUMX
Tạo một tác nhân nguồn thuộc loại srcType tại nút srcNode và kết nối nó với một
đại lý đích của loại loại dst tại nút dstNode. Ngoài ra, kết nối điểm đến
đại lý đến đại lý nguồn. Loại lưu lượng của cả hai tác nhân được đặt thành lớp học. T
phương thức trả về tác nhân nguồn.
THÍ DỤ
đặt ns [Trình mô phỏng mới]
#
# Tạo hai nút
#
đặt n0 [nút $ ns]
đặt n1 [nút $ ns]
#
# Tạo dấu vết và sắp xếp cho tất cả các sự kiện theo dõi của
# liên kết được tạo sau đó được chuyển thành "out.tr"
#
đặt f [mở ra.tr w]
$ ns theo dõi tất cả $ f
#
# Kết nối hai nút bằng liên kết 1.5Mb với đường truyền
# độ trễ 10ms bằng cách sử dụng xếp hàng đuôi thả FIFO
#
$ ns duplex-link $ n0 $ n1 1.5Mb 10ms DropTail
#
# Thiết lập các kết nối TCP BSD Tahoe theo các hướng ngược nhau.
#
đặt tcp_src1 [Tác nhân mới / TCP]
đặt tcp_snk1 [Tác nhân mới / Liên kết TCPS]
đặt tcp_src2 [Tác nhân mới / TCP]
đặt tcp_snk2 [Tác nhân mới / Liên kết TCPS]
$ ns tác nhân đính kèm $ n0 $ tcp_src1
$ ns tác nhân đính kèm $ n1 $ tcp_snk1
$ ns tác nhân đính kèm $ n1 $ tcp_src2
$ ns tác nhân đính kèm $ n0 $ tcp_snk2
$ ns kết nối $ tcp_src1 $ tcp_snk1
$ ns kết nối $ tcp_src2 $ tcp_snk2
#
# Tạo nguồn ftp tại mỗi nút
#
đặt ftp1 [$ tcp_src1 FTP nguồn đính kèm]
đặt ftp2 [$ tcp_src2 FTP nguồn đính kèm]
#
# Khởi động ftp đầu tiên tại thời điểm 0 và
# ftp thứ hai so le 1 giây sau đó
#
$ ns ở 0.0 "$ ftp1 start"
$ ns ở 1.0 "$ ftp2 start"
#
# chạy mô phỏng trong 10 giây mô phỏng
#
$ ns ở 10.0 "thoát 0"
$ ns chạy
NỢ
Để bật gỡ lỗi khi xây dựng ns từ nguồn:
% ./configure --enable-debug
% chế tạo
Để biết thêm chi tiết về gỡ lỗi ns, vui lòng xemhttp://www-mash.cs.berkeley.edu/ns/ns-
debugging.html>.
KHÁC BIỆT TỪ NS-1
Nói chung, các đối tượng phức tạp hơn trong ns-1 đã được chia nhỏ thành các thành phần đơn giản hơn để
tính linh hoạt và khả năng kết hợp cao hơn. Chi tiết về sự khác biệt giữa ns-1 và ns-2 có thể
được tìm thấy tạihttp://www-mash.cs.berkeley.edu/ns/ns.html>.
LỊCH SỬ
Công việc trên Trình mô phỏng mạng LBL bắt đầu vào tháng 1990 năm XNUMX với những sửa đổi đối với S. Keshav's
(keshav@research.att.com) Trình mô phỏng mạng THỰC, mà ông đã phát triển cho bằng Tiến sĩ của mình. làm việc ở
UC Berkeley. Vào mùa hè năm 1991, ngôn ngữ mô tả mô phỏng đã được cải tiến, và
sau đó, mô hình luồng NEST đã được thay thế bằng một khung điều khiển sự kiện và một
Người lập kế hoạch. Trong số những đóng góp khác, Sugih Jamin (jamin@usc.edu) đã đóng góp
mã lập lịch dựa trên hàng đợi lịch cho phiên bản này của chương trình, được gọi là
tcpsim. Vào tháng 1994 năm XNUMX, McCanne đã chuyển tcpsim sang C ++ và thay thế dựa trên yacc
ngôn ngữ mô tả mô phỏng với giao diện Tcl và bổ sung đa hướng sơ bộ
hỗ trợ. Cũng tại thời điểm này, tên đã thay đổi từ tcpsim chung chung hơn ns.
Xuyên suốt, Floyd đã thực hiện các sửa đổi đối với mã TCP và thêm nguồn bổ sung
mô hình cho các cuộc điều tra của cô ấy về các cổng RED, quản lý tài nguyên, xếp hàng dựa trên lớp học,
thông báo tắc nghẽn rõ ràng và các hiệu ứng giai đoạn giao thông. Nhiều giấy tờ
thảo luận về những vấn đề này có sẵn thông qua URL http://www-nrg.ee.lbl.gov/.
Sử dụng ns trực tuyến bằng các dịch vụ onworks.net