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


Module định tuyến và sự tổ chức bộ phân lớp



tải về 0.59 Mb.
trang9/19
Chuyển đổi dữ liệu13.08.2016
Kích0.59 Mb.
#17954
1   ...   5   6   7   8   9   10   11   12   ...   19

4.5 Module định tuyến và sự tổ chức bộ phân lớp


Như đã thấy, một nút ns là sự thu thập cần thiết của các bộ phân lớp, một nút đơn giải nhất (đơn hướng) chứa chỉ một bộ phân lớp địa chỉ và một bộ phân lớp cổng như trong hình 5.1. Khi mở rộng chức năng của nút, nhiều bộ phân lớp hơn được htêm vào nút cơ sở, ví dụ. nút đa hướng trong hình 5.2. Nhiều khối chức năng hơn được thêm vào và mỗi khối đó yêu cầu cho nó một hoặc nhiều bộ phân lớp, nó trở thành điều quan trọng cho nút cung cấp một giao diện đồng bộ để tổ chức các bộ phân lớp này và nối chúng với các khối tính toán tuyến. Phương pháp cơ bản xử lý trường hợp này là thông qua lớp kế thừa, ví dụ, nếu một muốn nút hỗ trợ phân cấp định tuyến, một dẫn xuất Node/Hier từ nút cơ sở và xếp chồng các phương thức thiết lập bộ phân lớp và chèn bộ phân lớp phân cấp. Phương thức này hoạt động tốt khi các khối chức năng mới là độc lập và không thể tùy ý pha trộn..

Hình 4.3 Tương tác giữa nút, module định tuyến, và định tuyến. Đường gạch ngang chỉ ra chi tiết của một module định tuyến.

Chỉ một phương pháp giải quyết vấn đề này đó là kết cấu đối tượng. Nút cơ sở cần định nghĩa một tập các giao diện cho việc truy nhập và tổ chức bộ phân lớp. Các giao diện có thể là:

Cho phép các module định tuyến riêng biệt thực thi các bộ phân lớp của chúng và đưa các bộ phân lớp này vào nút.

Cho phép các khối tính toán tuyến đưa các tuyến tới bộ phân lớp trong tất cả các module định tuyến cần các thông tin này.

Cung cấp một điểm quản lý đơn cho các module định tuyến đã có.

Thêm nữa, chúng ta cũng định nghĩa một giao diện đồng bộ cho các module định tuyến kết nối với các giao diện của nút. Trong phần này chúng ta sẽ mô tả thiết kế của module định tuyến cũng như các giao diện nút tương ứng.

4.5.1 Module định tuyến


Nói chung, mỗi một sự thực thi định tuyến trong ns gồm có 3 khối chức năng:

- Tác tử định tuyến chuyển gói tin định tuyến tới phần tử bên cạnh.

- Logic tuyến sử dụng thông tin thu nhặt bởi tác tử định tuyến (hoặc từ cở sở dữ liệu kiến trúc mạng chung trong trường hợp định tuyến tĩnh) thực hiện tính toán tuyến thực tế.

- Bộ phân lớp bên trong một Nút. Chúng sử dụng bảng định tuyến đã được tính toán thực hiện việc chuyển gói tin đi.

Chú ý rằng khi thực thi một giao thức định tuyến mới, không cần nhất thiết phải thực thi cả 3 khối trên. Ví dụ, khi thực thi một giao thức định tuyến theo trạng thái của kết nối, sự thực thi đơn giản là một tác tử định tuyến theo cách chuyển thông tin về trạng thái của kết nối, và một logic tuyến như là thuật toán tìm đường Dijkstra dựa trên kết quả cơ sở dữ liệu kiến trúc mạng. Nó có thể sau đó sử dụng cùng bộ phân lớp như các giao thức định tuyến đơn hướng khác.

Khi một giao thức định tuyến mới được thực thi gồm có nhiều hơn một khối chức năng, đặc biệt khi nó chứa bộ phân lớp, nó yêu cầu có đối tượng khác, gọi là module định tuyến, mà quản lý tất các các khối chức năng và giao diện với nút để tổ chức các bộ phân lớp của nó. Hình 5.3 chỉ ra sự liên quan về chức năng của các đối tượng này. Chú ý rằng các module định tuyến có thể có quan hệ trực tiếp với các khối tính toán tuyến ví dụ logic tuyến và/hoặc tác tử định tuyến. Tuy nhiên. tính toán tuyến có thể không cài đặt các tuyến của nó một cách trực tiếp qua module định tuyến, bởi vì có thể tồn tại những module khác tự học về những nút mới. Điều này là không bắt buộc, tuy nhiên bởi vì có thể rằng sự tính toán một vài tuyến được chỉ rõ tới một module định tuyến cụ thể nào đó. Ví dụ, sự cài đặt nhãn trong module MPLS.

Một module định tuyến chứa 3 chức năng chính:

- Module định tuyến khởi tạo sự kết nối của nó tới một nút thông qua register{}, và hủy bỏ thông qua unregister{}. Thông thường, trong register{}. Một module định tuyến nói với nút nó quan tâm đến sự cập nhật tuyến mới biết và sự tham gia của tác tử truyền tải hay không, và tạo ra bộ phân lớp và cài đặt chúng trong nút. trong unregister{}, một module định tuyến thực hiện ngược lại: nó xóa các bộ phân lớp của nó và bỏ móc cập nhật định tuyến trong nút đó.

- Nếu một module định tuyến quan tâm đến sự cập nhật tuyến mới biết, nút này sẽ thông báo cho module qua RtModule::add-route{dst, target} và RtModule::delete-route{dst, nullagent}

- Nếu một module định tuyến quan tâm đến sự gán vào của tác tử truyền tải và sự tách ra trong một nút, nút này sẽ thông báo cho module qua RtModule::attach{agent, port} và RtModule::detach{agent, nullagent}

Có 2 bước để viết riêng module định tuyến:

- Cần phải khai báo phần C++ trong module định tuyến của bạn, cho nhiều module điều này chỉ có ý nghĩa khai báo một phương thức ảo name(), nó trả về bộ mô tả chuỗi của module. Tuy nhiên, bạn tự do thực hiện nhiều chức năng như bạn muốn trong C++, nếu cần thiết bạn có thể sau đó chuyển về mặt chức năng từ OTcl vào C++ cho có hiệu quả hơn.

- Bạn cần nhìn các giao diện phía trên được thực thi trong module định tuyến cơ sở và quyết định cái nào bạn sẽ kế thừa, cái nào bạn sẽ viết chồng và đưa chúng vào các giao diện OTcl của module của bạn.

Có một vài module định tuyến dẫn xuất, nó được dùng như là các mẫu cho module của bạn, có 6 module định tuyến được thực thi trong ns:



Tên module

Chức năng

RtModule/Base

Giao diện cho các giao thức định tuyến đơn hướng, cung cấp chức năng cơ sở cho thêm/xóa tuyến và gán/ tách các tác tử

RtModule/Mcast

Giao diện cho các giao thức định tuyến đa hướng, Nó chỉ có mục đính là thiết lập các bộ phân lớp đa hướng. Các chức năng đa hướng khác được thực thi như là các thủ tục cụ thể của nút.

RtModule/Hier

Định tuyến phân cấp, nó là bộ bọc cho quản lý các bộ phân lớp phân cấp và sự cài đặt tuyến. có thể được kết hợp với các giao thức định tuyến khác, như định tuyến adhoc

RtModule/Manual

Định tuyến nhân công

RtModule/VC

Sử dụng các bộ phân lớp ảo.

RtModule/MPLS

Thực thi các chức năng MPLS.


4.5.2 Giao diện nút


Kết nối tới các giao diện bên trên của module định tuyến, một nút cung cấp một tập các giao diện:

Theo thứ tự các module đăng ký trong khi kiến tạo, lớp Nút giữ một danh sách các module như là một biết lớp. Giá trị mặc định của danh sách này gồm những module định tuyến cơ sở. lớp nút cung cấp 2 thủ tục dưới đây để điều khiển danh sách module:

Node::enable-module{[name]} Nếu module RtModule/[name] tồn tại thì thủ tục này đưa [name] vào trong danh sách module

Node::disable-module{[name]} Nếu module [name] trong danh sách, xóa nó khỏi danh sách đó.

Khi một nút được tạo ra, nó đi qua danh sách module của lớp Nút, tạo tất cả các module chứa trong danh sách và đăng ký những module này với nút đó.

Sau khi nút được tạo ra, chúng có thể sử dụng những thủ tục dưới đây để liệt kê những module đã đăng ký với nút đó, hoặc gọi đến xử lý module:

Node::list-modules{} trả về danh sách điều khiển của tất cả các module đã được đăng ký.

Node::get-module{[name]} trả về điều khiển của module đã đăng ký với tên module đã cho. Chú ý rằng tất cả các module định tuyến chỉ có một đăng ký đơn trong tất cả các nút.

Cho phép các module định tuyến đăng ký sự cập nhật tuyến chúng quan tâm, đối tượng nút cung cấp các thủ tục dưới đây:

Node::route-notify{module} thêm module vào danh sách thông báo cập nhật tuyến.

Node::unreg-route-notify{module} xóa module khỏi danh sách thông báo cập nhật tuyến.

Tương tự, thủ tục dưới đây móc vào sự tham gia của các tác tử truyền tải.

Node::port-notify{module} thêm module vào danh sách thông báo tham gia của tác tử

Node::unreg-port-notify{module} bỏ module ra khỏi danh sách thông báo sự tham gia của tác tử.

Nút cung cấp các thủ tục dưới đây để điều khiển bộ phân lớp địa chỉ và cổng:

Node::insert-entry{module, clsfr, hook}

Chèn bộ phân lớp clsfr vào điểm mục của nút. Nó cũng được kết hợp với bộ phân lớp mới này với module để mà nếu bộ phân lớp này sau đó bị loại bỏ thì module cũng sẽ không được đăng ký nữa. Nếu hook được chỉ rõ như là một số, bộ phân lớp đã có sẽ chèn vào khe hook của bộ phân lớp mới. Theo cách này, có thể thiết lập một "dãy" các bộ phân lớp, xem hình 5.2 là một ví dụ. Chú ý: clsfr không cần phải là một bộ phân lớp. Trong vài trường hợp, có thể muốn đưa vào một tác tử, hoặc nhiều lớp dẫn xuất từ Đầu nối, tại điểm mục của một nút. Trong trường hợp như vậy, cung cấp một cách đơn giản target cho tham số hook.

- Node::install-entry{module, clsfr, hook}

khác với Node::insert-entry{module, clsfr, hook}là nó xóa bộ phân lớp đã có tại điểm mục của nút đó, bỏ đăng ký tất cả kết hợp module định tuyến, và cài đặt bộ phân lớp mới tại điểm này. Nếu hook được chuo, và bộ phân lớp cũ được kết nối đến một chuỗi bộ phân lớp, nó sẽ kết nối chuỗi này vào khe hook của bộ phân lớp mới. Như trên, nếu hook tương đương target, clsfr sẽ được xem như một đối tượng dẫn xuất từ Đầu nối thay vì một bộ phân lớp.

- Node::install-demux{demux, port} đặt bộ phân lớp demux đã cho như là bộ giải ghép mặc định. Nếu port đã cho, nó cắm bộ giải ghép đã có này vào khe port của một bộ mới. Chú ý rằng trong trường hợp này hay trường hợp kia nó không xóa bộ giải ghép đã có.



Каталог: 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   ...   5   6   7   8   9   10   11   12   ...   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