Hoàng Đăng Hải Học Viên: Lê Đăng Phong [1-22] Vũ Anh Tuấn



tải về 0.59 Mb.
trang15/19
Chuyển đổi dữ liệu13.08.2016
Kích0.59 Mb.
#17954
1   ...   11   12   13   14   15   16   17   18   19

8.3 Cấu hình


Số lượng các hàng đợi vật lý và hàng đợi ảo có thể được thiết lập như sau:

$dsredq set numQueues_ 1

$dsredq setNumPrec 2

$dsredq configQ 0 1 10 20 0.10

Ví dụ trên xác định đặc tính RED cho một hàng đợi ảo (hàng đợi vật lý 0/ hàng đợi ảo 1)

$dsredq addPHBEntry 11 0 1

Lệnh addPHBEntry đưa một cổng vào tới bảng PHB. Trong ví dụ này, mã con trỏ 11 được ghép vào hàng đợi vật lý 0 và hàng đợi ảo 1. Trong ns, giá trị mặc định của mã con trỏ là 0, bởi vậy để điều khiển một lưu lượng ở mức có thể cần thiết trèn một PHB đầu vào cho giá trị 0 của mã con trỏ.

$dsredq meanPktSize 1500

Lệnh này thiết lập kích cỡ gói mean theo byte được sử dụng cho tính toán độ dài hàng đợi RED.

Thêm nữa, lệnh này cho phép người dùng có khả năng lựa chọn các kiểu định trình giữa các hàng đợi.


9. Agents


Các agent đóng vai trò các điểm cuối (endpoint) nơi các gói dữ liệu lớp mạng được hình thành hoặc sử dụng, chúng thường được dùng để thực hiện các giao thức ở nhiều lớp khác nhau. Lớp Agent được thực hiện một phần bằng ngôn ngữ OTcl và một phần bằng C++. Phần thực hiện bằng C++ nằm trong ~ns/agent.cc và ~ns/agent.h, còn phần thực hiện bằng ngôn ngữ hỗ trợ OTcl nằm trong ~ns/tcl/lib/ns-agent.tcl.

9.1. Trạng thái Agent


Lớp agent có trạng thái bên trong được dùng để ấn định nhiều trường khác nhau cho gói tin được mô phỏng trước khi gửi nó đi. Trạng thái này bao gồm:

addr_ địa chỉ nút của chính tôi (địa chỉ nguồn trong gói)

dst_ nơi tôi được gửi đến

size_ kích thước gói (đặt vào phần header của gói chung)

type_ dạng gói (trong phần header chung, xem packet.h)

fid_ định danh dòng IP (class trước đây trong ns-1)

prio_ trường ưu tiên IP

flags_ các cờ gói (tương tự như ns-1)

defttl_ giá trị ttl IP mặc định

Các biến này có thể bị thay đổi bởi các class xuất từ Agent.


9.2. Các phương thức của Agent


Lớp Agent hỗ trợ việc tạo và nhận các gói. Các hàm bộ phận sau đây được thực hiện nhờ lớp Agent, lớp này thường không bị chiếm dụng (override) bởi các lớp dẫn xuất:

Packet* allocpkt() cấp gói mới và ấn định trường của nó

Packet* allocpkt(int) cấp gói mới với tải tin n bytes và ấn định trường của nó.

Các hàm bộ phận sau đây cũng được định nghĩa bởi lớp Agent nhưng sẽ bị chiếm dụng bởi các lớp dẫn xuất từ Agent:

void timeout(timeout number) phương thức quá hạn lớp con

void recv(Packet*, Handler*) nhận đường dẫn nhận chính của agent

Phương thức allocpkt() được dùng nhờ các lớp dẫn xuất để tạo ra các gói. Hàm này điền vào tất cả các trường trong phần header gói chung (Section 12): uid, ptype, size và các trường trong phần header IP: src, dst, flowid, prio, ttl. Nó cũng điền 0 vào các trường của header của các cờ (flag): ecn, pri, usr1, usr2. Thông tin header của gói bất kỳ không nằm trong danh sách này thì phải được bao hàm trong lớp dẫn xuất từ Agent.

Phương thức recv() là điểm đầu vào chính của một Agent, nó nhận các gói và liên hệ với nút phía trên khi gửi gói. Trong hầu hết các trường hợp, các Agent không sử dụng đối số thứ hai (điều khiển được định nghĩa bởi nút phía trên).


9.3. Protocol Agents


Sau đây là một số agent được hỗ trợ trong bộ mô phỏng (tên của chúng trong OTcl):

TCP “Tahoe” TCP sender (cwnd = 1 on any loss)

TCP/Reno “Reno” TCP sender (with fast recovery)

TCP/Newreno sửa đổi Reno TCP sender (khôi phục nhanh sự thay đổi)

TCP/Sack1 SACK TCP sender

TCP/Fack “forward” SACK sender TCP

TCP/FullTcp more full-functioned TCP with 2-way traffic

TCP/Vegas “Vegas” TCP sender

TCP/Vegas/RBP Vegas TCP with “rate based pacing”

TCP/Vegas/RBP Reno TCP with “rate based pacing”

TCP/Asym an experimental Tahoe TCP for asymmetric links

TCP/Reno/Asym an experimental Reno TCP for asymmetric links

TCP/Newreno/Asym an experimental Newreno TCP for asymmetric links

TCPSink Reno or Tahoe TCP receiver (not used for FullTcp)

TCPSink/DelAck TCP delayed-ACK receiver

TCPSink/Asym an experimental TCP sink for asymmetric links

TCPSink/Sack1 SACK TCP receiver

TCPSink/Sack1/DelAck a delayed-ACK SACK TCP receiver

UDP basic UDP agent

RTP RTP sender and receiver

RTCP RTCP sender and receiver

LossMonitor packet sink which checks for losses

IVS/Source IVS source

IVS/Receiver IVS receiver

CtrMcast/Encap “centralised multicast” encapsulator

CtrMcast/Decap “centralised multicast” de-encapsulator

Message protocol to carry textual messages

Message/Prune processes multicast routing prune messages

SRM SRM agent with non-adaptive timers

SRM/Adaptive SRM agent with adaptive timers

Tap interfaces the simulator to a live network

Null a degenerate agent which discards packets

rtProto/DV distance-vector routing protocol agent

Các Agent được dùng để thực hiện các giao thức ở nhiều lớp khác nhau. Vì vậy, đối với một số giao thức vận chuyển (ví dụ, UDP) việc phân phối kích thước gói và/hoặc các thời gian khởi hành có thể được điều khiển bởi một số đối tượng riêng rẽ đặc trưng cho yêu cầu của ứng dụng. Như vậy, các agent biểu hiện là một API đối với ứng dụng. Đối với các agent được sử dụng để thực hiện các giao thức ở các lớp thấp (ví dụ, các agent định tuyến) thì kích thước và định thời đi thường được điều khiển bởi việc xử lý bản tin giao thức của chính agent đó.


9.4. Liên kết trong OTcl


Các Agent có thể được tạo ra trong OTcl, trạng thái bên trong của agent có thể thay đổi bằng cách sử dụng hàm set của Tcl và các hàm Tcl của Agent (hoặc các lớp cơ sở của nó). Chú ý rằng, một số trạng thái bên trong của Agent có thể chỉ tồn tại trong OTcl và như vậy không thể truy nhập trực tiếp từ C++.

9.4.1 Tạo và sửa đổi các Agent


Ví dụ sau đây mô tả việc tạo và sửa đổi một Agent trong OTcl:

set newtcp [new Agent/TCP] ;# create new object (and C++ shadow object)

$newtcp set window_ 20 ;# sets the tcp agent’s window to 20

$newtcp target $dest ;# target is implemented in Connector class

$newtcp set portID_ 1 ;# exists only in OTcl, not in C++

9.4.2. Các giá trị mặc định


Các giá trị mặc định của các biến bộ phận, các biến này chỉ thấy trong OTcl dùng để liên kết OTcl và C++ được khởi tạo trong file ~ns/tcl/lib/ns-default.tcl. Ví dụ, Agent được khởi tạo như sau:

Agent set fid_ 0

Agent set prio_ 0

Agent set addr_ 0

Agent set dst_ 0

Agent set flags_ 0

Thông thường, việc khởi tạo các biến này được thực hiện trong OTcl trước khi các đối tượng của chúng được tạo. Như vậy, khi một đối tượng Agent được tạo, lệnh liên kết các đối tượng sẽ dẫn đến việc các biến bộ phận tương ứng được gán giá trị mặc định.

9.4.3. Các phương thức trong OTcl


Các thủ tục được định nghĩa cho lớp Agent trong OTcl nằm trong ~ns/tcl/lib/ns-agent.tcl. Chúng bao gồm:

port định danh cổng của agent

dst-port định danh cổng đích

attach-source tạo, gắn một đối tượng vào Agent



Каталог: Hoc%20Tap -> Cong%20Nghe%20Wan
Hoc%20Tap -> Point to Point Protocol (ppp) ppp được xây dựng dựa trên nền tảng giao thức điều khiển truyền dữ liệu lớp cao (High-Level Data link Control (hdlc)) nó định ra các chuẩn cho việc truyền dữ liệu các giao diện dte và dce của mạng wan như V
Hoc%20Tap -> Cấu hình Application Port-Mapping với cbac mục tiêu: Cấu hình để router nhận ra các ứng dụng không sử dụng port chuẩn. Mô hình
Hoc%20Tap -> ĐẢng cộng sản việt nam đẢng ủy phưỜng 04
Hoc%20Tap -> CiR = Bc / Tc
Hoc%20Tap -> Mean command : ip ospf mtu-ignore Diagram : Problems
Hoc%20Tap -> R1# ip route 0 0 0 0 FastEthernet0/0 R2# show run
Cong%20Nghe%20Wan -> Câu hỏi về kết nối chi nhánh về Head Office dùng wan
Cong%20Nghe%20Wan -> 1/ Cáp đồng gshdsl
Cong%20Nghe%20Wan -> 1. xu hưỚng chuẩn hoá VÀ CẤu trúc giao thứC

tải về 0.59 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   11   12   13   14   15   16   17   18   19




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương