Bordercast Resolution Protocol (BRP)

Một phần của tài liệu Nghiên cứu định tuyến lai trong mạng adhoc (Trang 26 - 49)

Bordercast Resolution Protocol (BRP) là giao thức được sử dụng trong ZRP để gửi những yêu cầu tuyến tới những node biên, như vậy nó có thể loại bỏ những truy vấn thừa và làm tăng hiệu quả một cách cao nhất. Quá trình định tuyến như sau: khi một node nguồn muốn gửi một gói tin tới một đích trước tiên nó kiểm tra đích đó có nằm trong vùng định tuyến của nó hay không dựa vào bảng ghi tuyến. Nếu có, đường dẫn tới đích đã biết và không còn phụ thuộc vào một khám phá tuyến ngoài vùng nào khác. Còn ngược lại node đích không nằm trong phạm vi vùng định tuyến của nguồn thí node nguồn sẽ gửi một yêu cầu tuyến tới những node biên. Và bây giờ, lần lượt tất cả các node biên thi hành thuận toán tương tự: kiểm tra đích có nằm trong vùng của chúng hay không. Và nếu có một hồi âm sẽ được gửi trả lại node nguồn cho biết tuyến tới đích tại thời điểm hiện tại. Còn nếu không, node biên tiếp tục truyển tiếp truy vấn tuyến tới những node biên khác của nó, giống như sự thi hành của một thủ tục được lặp lại. Mặt khác trong những mạng mà chỉ sử dụng một kênh truyền đơn thì một node co thể xác định thông tin bằng cách nghe ngóng sự truyền thông giữa các node khác qua đó có thể loại bỏ những truy vấn không cần thiết.

Truy vấn cơ bản Bordercasting trong BRP

Trong phần này, chúng ta miêu tả hoạt động cơ bản của tìm kiếm đường truyền dựa vào bordercasting. Một node, cần tìm đường đến một địa chỉ, đầu tiên sẽ kiểm tra xem địa chỉ đó có nằm trong hệ thống đường dẫn của nó hay không. Nếu một đường dấn tới địa chỉ đó đã được xác lập trước thì quá trình tìm kiếm sẽ kết thúc. Mặt khác, nếu địa chỉ không có trong routing zone của nguồn, node nguồn sẽ dựng một cây bordercast nối sang các node ở ngoại biên. Nó sau đó gửi tìm truy vấn tới vùng xung quanh của cây.

hình 3.4: cây bordercast.

Lần đầu một node nào đó nhận một bản tìm kiếm đường (route query), node đó sẽ xác định xem nó có thuộc cây bordercast của vùng lân cận đã gửi route query hay không, bởi vì chỉ có các thành viên trong cây bordercast cần thực hiện route query một cách tích cực. Nếu lệnh tìm kiếm được gửi qua lớp thứ hai unicast, một bản biên nhận lệnh thể hiện việc tham gia làm thành viên của tree. Nếu lệnh tìm kiếm được gửi bởi lớp thứ hai broadcast, node sẽ phải dựng lại cây bordercast của vùng lân cận đã gửi lệnh cho nó. Còn nếu node thấy rằng nó không thuộc cây bordercast, nó sẽ chỉ ghi nhận lệnh tìm kiếm và sau đó truyền tiếp đi lệnh.

Nếu node gửi lệnh thuộc vào vùng lân cận của cây bordercast, nó sẽ tiến hành thực hiện lệnh truy vấn tuyến. Nếu địa chỉ tìm kiếm nằm trong vùng của node này (the node’s routing zone), nó sẽ gửi trả lời đường về cho nguồn hỏi, chỉ một đường dẫn tới với địa chỉ. Nếu không, node sẽ tự xây dựng cây bordercast của nó đi vào subset của các node lân cận khác mà chưa covered bởi lệnh tìm kiếm ( khi một node bắt đầu quá trình route query, những node trong vùng lân cận của nó được coi là covered. Mục đích của bordercasting là gửi truy vấn tuyến tời những node ở vùng ngoại biên mà chưa được covered bởi lệnh tìm kiếm). Node sau đó tiếp tục gửi yêu cầu tìm kiếm tới vùng lân cận của nó trong cây border. Sau khi gửi đi lệnh tìm kiếm, những đường của node sẽ được covered, do đó không cần thiết phải gửi thêm các bản yêu cầu khác tới nó nữa.

hình 3.5: mô hình node mạng.

Trong ví dụ topo mạng trên, node A đã gửi dữ liệu đến node L. Giả sử rằng mỗi node có vùng bán kính là 2hop, node L không nằmg trong vùng của node A (trong đó chỉ bao gồm B, C, D, E, F, G). Do đó, node A dựng một cây bodercast đi đến các node

A B C D E F G H I K L J M

lân cận trong cây multicast này: B và C. Mỗi cái này lại kiểm tra xem L có thuộc vùng của nó hay không. Vì node L không được tìm thấy trong vùng của cả 2 node này, các node lại tiếp tục xây dựng cây bordercast của nó xâm nhập vào các node ngoại biên mà chưa covered và gửi tiếp lệnh tìm kiếm tới các vùng lân cận khác trong cây border của nó. Đặc biệt, node B sẽ xây dựng cây bordercast của nó xâm nhập tới vùng ngoại biên chưa covered của F, H và J, Node C và M bị loại tại vì nó thuộc vào vùng của A ( node đã gửi lệnh tới B). Node B gửi lệnh tới vùng lân cận của cây bordercast của nó: D và G. Tương tự, node C cũng xác định các node ngoại biên của nó mà chưa covered và gửi tiếp lệnh tới vùng lân cận: node F.

Bản tìm kiếm bordercast route ví dụ được tóm tắt lại dưới bảng này:

Rcv’d

From Node

Peripheral Nodes Relays to

(Tree Neighbors) Covered Uncovered ... A E, D, F, G B, C A B C, M F, H, J E, G A C B, M E F B E A, G I, C H, F

B G Destination discoveredaareply sent

C F A, D B, H E

E H F, B ... ...

E F A, D, B, H ... ...

F E A, G, C, I ... ...

Bảng 3.6: Bảng tìm kiếm bordercasting route.

Cuối cùng, lệnh tìm kiếm được gửi tới node G, node có địa điểm L nằm trong vùng của nó. Node G không tiếp tục gửi đi lệnh tìm kiếm mà gửi trả lời đường về cho A, cho thấy đường tìm thấy : AaBaGaJaL.

Ví dụ cho thấy sự hiệu quả việc tìm kiếm dạng bordercasting so với tìm kiếm flood. Nếu mạng bao gồm các link từ điểma tớia điểm, bordercast thực hiện 8 chuyển lệnh. Nếu mạng bao gồm các kênh đơn lẻ, chia sẻ, bordercast thực hiện 5 thông báo lệnh (query bordercast). Ngược lại, tìm kiếm flood sẽ thực hiện 13 chuyển lệnh ở điểma tớia điểm và 12 thông báo lệnh ( query bordercast).

Khi mà BRP của một node nào đó nhận được gói lệnh tìm kiếm bordercast, nó đánh dấu các vùng của các bordercasting node trước nó là đã covered. Nếu node là một đối tượng nhận cố định trước của lệnh tìm kiếm, nó thực hiện việc chuyển lệnh lên các ứng dụng tìm kiếm (querying application) (VD:IERP). Để nâng cao hiểu quả của bordercast, việc chuyển được lên lịch với một vài delay một cách ngẫu nhiên.Việc này tạo cơ hội tìm cho node đạt được query coverage information trước khi gửi đi hết các lệnh. Nếu node không phải là một đối tượng định trước của lệnh tìm kiểm, nó nó ám

chỉ rằng vùng của riêng node đã covered bởi một bordercasting node khác. Như thế, node đó sẽ đánh dấu toàn bộ vùng của mình là covered và loại bỏ lệnh.

Sau quá trình thực hiện lệnh, querying application có thể trả lại lệnh tới BRP. Nếu node biết đường tới địa điểm, nó sẽ gửi lệnh tới địa điểm. Nếu không, node sẽ gửi lệnh tới vùng lân cận nơi xâm nhập vào các node ngoại biên chưa covered trong cây bordercast của nó. Trong cả hai trường hợp, sau khi gửi đi lệnh, node đánh dấu tất cả các node trong vùng của nó là covered.

A. Khuôn dạng gói tin (Packet Format)

Query Source Address

Query Destination Address

Query ID Query Extension RESERVED

Prev Bordercast Address

E N C A P S U L A T E D P A C K E T

Bảng 3.7: Khuôn dạng gói tin BRP.

Trong đó:

a Query Source Address (node_id) (32 bits) Địa chỉ IP của node bắt đầu truy vấn.

a Query Destination Address (node_id) (32 bits) Địa chỉ IP của node mà nsá là đích truy vấn cuối cùng.

a Query ID (unsigned int) (16 bits)

Chuỗi số mà kết hợp với Query Source Address duy nhật định dạng mỗi truy vấn BRP trong mạng.

a Query Extension (char) (8 bits)

Indicates whether query should be forwarded to query destination. a Prev Bordercast Address (node_id) (32 bits)

Địa chỉ IP củ tất cả các node bordercasting đã thực hiện. a Encapsulated Packet (packet)

kết thúc gói

Chú ý:

Trong điều kiện của BRP, Query Source Address, Query Destination Address and Query ID có thể cùng chung một giá trị là các trường tương đương trong encapsulated query packet.

Những trường BRP có thể bị loại trừ với điều kiện là: BRP đọc đường vào nội dung của encapsulated packet.

B. Đặc tả dữ liệu

B.1: IARP Routing Table (bảng 3.1) B.2: IARP Link State Table (bảng 3.2) B.3 Query Coverage Query Source (node_id) QueryID (unsigned int) BRP_cache_ID (unsigned int) Graph (net graph)* Bảng 3.8: Bảng Query Coverage.

(* Sơ đồ mạng (net_ grap) là cấu trúc dữ liệu cho thấy các mối liên hệ trong các vùng và các thành viên trong vùng đã covered bởi lệnh hay chưa).

C. Giao diện

C.1 Higher Layer (IERP)

C.1.1 Send (packet, BRP_cache_ID) Sử dụng IERP để chuyển gói yêu cầu. C.2 Lower Layer (IP)

C.2.1 Deliver (packet)

Sử dụng IP để phân phát gói tới BRP. D. Trạng thái tổ chức (State Machine)

BRP protocol bao gồm duy nhất một state (IDLE). Do đó, các quá trình chuyển trong state cần phải được cụ thể hoá. BRP ngay lập tức thực hiện một hoạt động và rồi quay trở lại IDLE.

Chú ý: X được sử dụng là kí hiệu cho node chạy State Machine này). D1:

Sự kiện: Một lệnh được nhận từ lớp trên (higher layer) (IERP). Một đường trong vùng tới địa chỉ tìm kiểm tồn tại.

Hành động: Nếu X chưa chuyển lệnh tới địa chỉ, X sẽ gửi một gói lệnh tới hop sau tới địa chỉ tìm kiếm

D2:

Sự kiện: Một lệnh tìm kiếm từ higher layer (IERP). Một đường trong vùng tới địa chỉ tìm kiểm không tồn tại.

Hành động: X dựng cây bordercast xâm nhập vào các node chưa covered ở vùng ngoại biên. Gói lệnh được chuyển tới các cây trong vùng lân cận. Khi lệnh đã được chuyển đi, node sẽ đánh đấu tất cả các node trong vùng của mình là covered.

D3:

Sự kiện: Một lệnh nhận từ IP

Nếu X là một đối tượng nhận định trước, nó sẽ ghi BRP state của nó cho lệnh và lên lịch (với các delay ngẫu nhiên) việc chuyển các gói lệnh (encapsulated query ) tới higher layer. ( VD: IERP).

Nếu X không phải là một đối tượng nhận định trước, nó ám chỉ rằng vùng của X đã được covered bởi các vùng của các node truyền đi khác. Do đó, X đánh dấu nó vùng của nó là covered và từ chối gói lệnh [10].

3.3.4. So sánh Flooding based query với Bordercasting query

Hình dưới đây thể hiện vì sao BRP có thể giảm tối đa số truy vấn tuyến. Với hình 6a, sử dụng thuật toán floodingabased query, 8 node liên kết với một node ở trung tâm đuợc coi là những node biên và 8 node ngoài cùng là những node ngoại biên mở rộng của vùng. Và chúng ta có thể dễ dàng nhận thấy nếu không sử dùng BRP thì số truy vấn tổng cộng được gửi là 40. Nhưng cũng topo mạng như thế sủ dụng BRP số truy vấn phải gửi chỉ còn 16 như vậy đã giảm được hơn 50% [7].

hình 3.6: FloodingLquery hình 3.7: BordercastingLquery.

CHƯƠNG 4. ĐÁNH GIÁ GIAO THỨC ZRP

4.1. So sánh ZRP với DSR

4.1.1. Tất cả các node gửi một gói tin tới một node cụ thể: a Node đích nằm tận cùng topo mạng:

Biểu đồ (hình 4.1) cho thấy với topo mạng có số node trong khoảng 33 node thì hai giao thức định tuyến ZRP và DSR có thời gian xử lý gần như tương đương. Với số node từ 35 đến 40 thời gian xử lý của DSR cao hơn hẳn ZRP.

hình 4.1: Node đích nằm tận cùng topo mạng.

a Node đích nằm khoảng giữa topo mạng:

hình 4.2: Node đích nằm khoảng giữa topo mạng.

4.1.2. Một node cụ thể gửi một gói tin tới tất cả các node a Node nguồn ở tận cùng topo mạng:

a Node nguồn nằm khoảng giữa topo mạng:

4.2. Đánh giá sự phụ thuộc của ZRP vào mật độ node mạng

Trong cấu trúc mạng mobile adahoc mật độ các phần tử mạng (node mạng) thấp có tốc độ truyền gói tin trong mạng cao hơn mạng có mật độ các phần tử lớn (hình 4.2).

hình 4.5 :biểu đồ phụ thuộc ZRP với mật độ node.

4.3. So Sánh Flooding và Zone Routing

Trong mạng adahoc, khả năng định tuyến của giao thức cũng được thể hiện thông qua số gói tin truy vấn tuyến được gửi, nhận khi có một node nào đó yêu cầu tuyến. Với ZRP sử dụng thuật toán BordercastingaQuery tỏ ra chiếm ưu thế hơn hẳn những giao thức khác sử dụng thuật toán floodingaQuery (hình 4.3)

hình 4.7: 30 node mạng.

CHƯƠNG 5. XÂY DỰNG CHƯƠNG TRÌNH MÔ PHỎNG ZRP TRONG NS 2 5.1. Tổng quan NS 2

Ns là chữ viết tắt của Network Simulator, là một biến thể của Real Network simulator, và có lịch sử phát triển khá dài và trong rất nhiều những dự án khác nhau (dự án VINTaVirtual Internet Testbed...). Đây là phần mềm mã nguồn mở được phát triển trên nền tảng của hệ điều hành Unix xây dựng nhằm mô phỏng mạng với mục đích nghiên cứu, giảng dạy, học tập...Chính vì vậy khả dụng cho nhiều đối tượng người nghiên cứu, người phát triển và học viên...Nsa2 là một phiên bản hướng đối tượng dùng trong mô phỏng mạng với nhiều tính năng và đặc biệt có những thư viện lớn sẵn có bao gồm các giao thức mạng như TCP, UDP...giao thức nguồn lưu lượng như FTP, Tenet Web, CBR, VBR, cơ cấu Droptail, Red, ...

Nsa2 là phiên bản thứ hai của Ns, nó được viết bằng ngôn ngữ lập trình C++, và sử dụng bộ ngôn ngữ TCL/TK làm trình biên tập, khởi tạo kịch bản và đồng thời cũng làm giao diện cho người sử dụng .

Trong suốt quá trình lịch sử hình thành và phát triển bộ mô phỏng mạng (Network Simulator) này đã có nhiều phiên bản được sử dụng chỉnh sửa và hoàn thiện dần để trở lên khả dụng và ứng dụng rộng rãi trên nền nhiều hệ điều hành khác nhau và cũng đưa nó vượt ra khỏi phạm vi phòng thí nghiệm. Phần mềm Ns đã trở thành một chuẩn công nghiệp ở trên 50 quốc gia và gần 600 viện nghiên cứu (trong đó bộ ngôn ngữ TCL/TK là một trình khởi tạo và biên dịch kịch bản một cách mạnh mẽ). Từ những phiên bản đầu tiên Ns đã khẳng định tính ưu việt của mình so với nhiều phần mềm mô phỏng mạng khác và là nền tảng cho sự phát triển một số công cụ mô phỏng đơn lẻ. Chúng ta sẽ thấy một số cải tiến, mở rộng đáng kể Ns version 1 và Ns version 2. Nsa2 có ba điểm khác biệt quan trọng so với Nsa1 là :

a Những đối tượng phức tạp của Nsa1 đã được xây dựng lại thành các thành phần đơn giản hơn, mềm dẻo hơn, có giao diện thân thiện với người sử dụng và đặc biệt đã mở rộng thêm nhiều thư viện mới sẵn có cho việc mô phỏng mạng.

a Giao diện sử dụng là ngôn ngữ Otcl, là ngôn ngữ hướng đối tượng được phát triển từ ngôn ngữ Tcl. Với tính năng hướng đối tượng tạo điều kiện dễ dàng để phát triển những dự án lớn hay cấu trúc Topo mạng phức tạp. Các câu lệnh được Otcl thông dịch hoàn toàn độc lập với phần lõi của mô phỏng chính (nhờ có lớp Otclalinkage tạo ánh xạ với không gian C++ để công việc chỉnh sửa và biên tập trở nên đơn giản hơn).

a Tạo điều kiện cho Nsa2 phát triển rộng rãi tong nhiều môi trường khả chuyển hơn và thân thiện hơn để sử dụng những công cụ phần mềm được phát triển bởi các nhà phát triển khác nhau (như perl, tracegraph , ...).

Hiện nay Nsa2 đã phát triển sang phiên bản Nsa2.29 và cùng quá trình phát triển của nó có rất nhiều những bài viết và những bài tham khảo khác nhau, nhưng phần nhiều là của những tác giả đã có rất nhiều kinh nghiệm trong công việc mô phỏng mạng. Do đó hầu hết các tài liệu thường phát triển theo chiều sâu mà ít đề cập đến những vấn đề cơ bản gây ra nhiều khó khăn cho những người mới tiếp cận với việc học tập và nghiên cứu Nsa2. Hơn thế nữa Nsa2 có cấu trúc khá phức tạp gồm có nhiều thành phần khác nhau gây khó khăn cho người sử dụng trong quá trình cài đặt và vận hành.

Và cũng vì đây là phần mềm phát triển trên nền hệ điều hành Unix nên có rất nhiều

Một phần của tài liệu Nghiên cứu định tuyến lai trong mạng adhoc (Trang 26 - 49)

Tải bản đầy đủ (PDF)

(49 trang)