Luận văn Xây dựng và thử nghiệm một giao thức định tuyến trong môi trường mạng AD-HOC

XÂY DỰNG VÀ THỬ NGHIỆM MỘT GIAO THỨC ĐỊNH TUYẾN TRONG MÔI TRƯỜNG MẠNG AD-HOC TRƯƠNG THỊ MỸ TRANG Trang nhan đề Lời cảm ơn Mục lục Trích yếu luận văn thạc sĩ - Xây dựng và thử nghiệm một giao thức định tuyến trong môi trường mạng AD - HOC Danh sách ký hiệu viết tắt Chương_1: Tổng quan. Chương_2: Một số giao thức định tuyến trong mạng không dây di động ad - hoc. Chương_3: Thuật toán định tuyến Bridge - Virtual Ring Routing. Chương 4: Thử nghiệm. Chương_5: Kết luận và hướng phát triễn. Phụ lục Tài liệu tham khảo MỤC LỤC DANH SÁCH KÝ HIỆU VIẾT TẮT .4 DANH MỤC CÁC BẢNG .5 DANH MỤC HÌNH VẼ ĐỒ THỊ .6 LỜI CẢM ƠN .7 LỜI MỞ ĐẦUU .8 Chương 1. Tổng quan .10 1.1. Giới thiệu .10 1.2. Đặc tính của mạng không dây di động ad-hoc 11 1.2.1. Thay đổi đồ hình mạng liên tục 11 1.2.2. Tính tự thiết lập .12 1.2.3. Môi trường mạng không dây .12 Chương 2. Một số giao thức định tuyến trong mạng không dây di dộng adhoc 14 2.1. Giao thức định tuyến theo chiến lược chủ động (pro-active) .16 2.2. Giao thức định tuyến theo nhu cầu (on-demand) 17 2.3. Giao thức định tuyến theo chiến lược kết hợp (hybrid) 18 2.4. Giao thức định tuyến VRR 20 2.4.2. Giới thiệu giao thức VRR .20 2.4.3. Quá trình tham gia vào mạng của một nút 22 2.4.4. Quản lý liên kết .23 2.4.5. Đánh giá giao thức VRR .24 Chương 3. Thuật toán định tuyến Bridge - Virtual Ring Routing Error! Bookmark not defined. 3.1. Một số thuật ngữ sử dụng trong giao thức BVRRError! Bookmark not defined. 3.2. Mô tả giao thức BVRR .Error! Bookmark not defined. 3.3. Thông tin định tuyến .Error! Bookmark not defined.3.4. Quá trình một nút mạng mới tham gia vào mạngError! Bookmark not defined. 3.5. Quản lý liên kết (link) giữa các nút mạngError! Bookmark not defined. 3.5.1. Quản lý liên kết .Error! Bookmark not defined. 3.5.2. Sửa lỗi .Error! Bookmark not defined. 3.6. Quản lý phân hoạch .Error! Bookmark not defined. 3.7. Thuật toán chuyển tiếp gói tin .Error! Bookmark not defined. Chương 4. Thử nghiệm .Error! Bookmark not defined. 4.1. Môi trường thử nghiệm .Error! Bookmark not defined. 4.2. Kết quả thử nghiệm .Error! Bookmark not defined. 4.2.1. Kết quả thử nghiệm khi thay đổi lưu lượng mạng Error! Bookmark not defined. 4.2.2. Kết quả thử nghiệm khi thay đổi kích thước mạng . Error! Bookmark not defined. 4.2.3. So sánh BVRR và VRR Error! Bookmark not defined. Chương 5. Kết luận và hướng phát triển .Error! Bookmark not defined. 5.1. Kết luận .Error! Bookmark not defined. 5.2. Hướng phát triển .Error! Bookmark not defined. Tài liệu tham khảo .Error! Bookmark not defined. Phụ lục 1 Error! Bookmark not defined. PL 1.1. Thuật toán chuyển tiếp gói tin .Error! Bookmark not defined. PL 1.2. Thuật toán xử lý các thông điệp Error! Bookmark not defined. Phụ lục 2 Ví dụ minh họa thuật toán chuyển tiếp gói tin bằng giao thức BVRR Error! Bookmark not defined. PL 2.1. Định tuyến trong nội bộ một phân hoạchError! Bookmark not defined. PL 2.2. Định tuyến liên phân hoạch .Error! Bookmark not defined.

pdf15 trang | Chia sẻ: maiphuongtl | Lượt xem: 1739 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Luận văn Xây dựng và thử nghiệm một giao thức định tuyến trong môi trường mạng AD-HOC, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
-25- Chương 3. Thuật toán định tuyến Bridge - Virtual Ring Routing Chúng tôi đã khảo sát một số thuật toán định tuyến trong môi trường mạng không dây di động ad-hoc và phân tích những ưu khuyết điểm. Trên cơ sở đó, luận văn đề xuất một giao thức định tuyến mới, Brigde - Virtual Ring Routing (BVRR), mà hạt nhân là giao thức định tuyến VRR [3]. Giao thức BVRR giải quyết vấn đề phân vùng mạng còn tồn tại trong giao thức VRR [3] bằng cách xây dựng các cầu nối giữa các phân vùng giao nhau. Bằng cách này, giao thức BVRR giúp giảm chi phí để xây dựng lại vòng ảo khi đồ hình mạng thay đổi. Đồng thời, BVRR vẫn đảm bảo không xảy ra tràn thông điệp cũng như hạn chế không gian lưu trữ tại mỗi nút mạng. Giao thức BVRR thích hợp cho môi trường mạng có kích thước lớn và các nút mạng phân bố ngẫu nhiên. 1.1. Một số thuật ngữ sử dụng trong giao thức BVRR TN 3.1.1. Phân hoạch chủ (home partition) Home partition của một nút x là phân hoạch đầu tiên mà nút x liên lạc trực tiếp khi mới gia nhập mạng. Một nút mạng x được xem là liên lạc trực tiếp được với một phân hoạch p, nếu x có liên kết với Np nút láng giềng vật lý trong phân hoạch p. TN 3.1.2. Phân hoạch hiện hành Phân hoạch hiện hành của một nút là một phân hoạch mà nút đang liên lạc trực tiếp. Trường hợp nút có thể liên lạc trực tiếp với nhiều phân hoạch, phân hoạch hiện hành của nút là phân hoạch chủ (nếu nút còn liên lạc trực tiếp với phân hoạch chủ) hoặc phân hoạch có định danh nhỏ nhất. Trường hợp, nút không liên lạc được với bất kỳ phân hoạch nào, phân hoạch hiện hành của nút là NULL. -26- TN 3.1.3. Láng giềng ảo (virtual neighbor) Nút y là một láng giềng ảo của nút x nếu khoảng cách vị trí giữa nút x và nút y trên vòng ảo nhỏ hơn hoặc bằng R/2 (với R là một hằng số nguyên dương). Tập các nút láng giềng ảo của một nút được ký hiệu là vset (virtual neighbor set) TN 3.1.4. Láng giềng vật lý (physical neighbor) Nút x và nút y được gọi là láng giềng vật lý của nhau nếu chúng nằm trong phạm vi vùng phủ sóng của nhau. Tập các nút láng giềng vật lý của một nút được ký hiệu là pset (physical neighbor set). Tập các nút láng giềng (vật lý và ảo) của một nút có tính chất đối xứng. Nghĩa là nếu nút x được đánh dấu là láng giềng của nút y thì nút y cũng là một láng giềng của nút x. 1.2. Mô tả giao thức BVRR Trong không gian mạng có kích thước lớn và các nút phân bố ngẫu nhiên, các nút mạng có thể phân tách thành nhiều phân hoạch (partition), như hình 3.1. Mỗi phân hoạch gồm các nút mạng có thể liên lạc với nhau trực tiếp hoặc thông qua các nút mạng trung gian. Mỗi phân hoạch có một định danh, partition identifier - PID, duy nhất. Định danh của phân hoạch được ấn định tự động tại thời điểm ban đầu khi mạng đạt trạng thái ổn định. -27- Hình 1.1. BVRR: mạng gồm 2 phân hoạch. (a) đồ hình mạng vật lý, (b) vòng ảo tương ứng với mỗi phân hoạch Mỗi nút mạng có một định danh, node identifier - NID, duy nhất cố định và độc lập vị trí1. Định danh của một nút bao gồm hai thành phần (xem hình 3.2): định danh của phân hoạch home partition, partition identifier - PID, và định danh của host, host identifier - HID. Đây chính là điểm khác biệt của BVRR so với VRR [3] gốc. Định danh của host là duy nhất, cố định và có thể được ấn định bằng bất kỳ thuật toán nào. Định danh phân hoạch của một nút mạng được xác định khi nút xác định phân hoạch home partition và được gán bằng định danh của phân hoạch home partition. Định danh của nút mạng không thay đổi từ khi nút xác định được phần định danh phân hoạch PID. PID (m bits) HID (n bits) Hình 1.2. BVRR: cấu trúc định danh của một nút mạng Các nút mạng trong cùng một phân hoạch được tổ chức thành một vòng ảo theo thứ tự định danh của host HID. Nghĩa là không giống như giao thức VRR [3], 1định danh của nút mạng không phụ thuộc vào vị trí hiện hành của nút mạng. -28- giao thức BVRR xem mạng có thể tồn tại nhiều vòng ảo. Hình 3.1 minh họa cách tổ chức các nút mạng trên vòng ảo tương ứng với đồ hình vật lý. Mỗi nút mạng quản lý các nút láng giềng vật lý của mình, được gọi là tập láng giềng vật lý pset. Trong hình 3.1, nút mạng 016F có các láng giềng vật lý là 018B và 016C. Ngoài tập láng giềng vật lý pset, mỗi nút mạng còn quản lý R/2 nút mạng lân cận theo chiều kim đồng hồ và R/2 nút mạng lân cận theo chiều ngược chiều kim đồng hồ trên vòng ảo, được gọi là tập láng giềng ảo vset. Để đảm bảo các nút mạng định tuyến gói tin chính xác và hiệu quả, tập các nút láng giềng ảo của một nút mạng phải có tính đối xứng và nhất quán: x là láng giềng ảo của y thì y cũng là một láng giềng ảo của x. Ví dụ theo mô hình mạng hình 3.1, với R=4, nút mạng 016F có các láng giềng ảo là 01FB, 016C, 017F và 0180. Trong trường hợp một nút x liên lạc trực tiếp được với hai phân hoạch trở lên, nút x trở thành một cầu nối (bridge) liên kết các phân hoạch và được gọi là gateway. Ngoài ra, giao thức BVRR cũng chọn nút mạng có định danh của host nhỏ nhất trong mỗi phân hoạch làm nút đại diện (representative). Nhằm tăng hiệu quả thực hiện của giao thức, cũng như lưu thông tin dự phòng, giao thức BVRR chọn các nút láng giềng vật lý với nút đại diện làm nút đại diện dự trữ (bakup representative node). Nút gateway và nút đại diện gọi chung là nút chuyển tiếp (forwarding node). Hình 3.3 minh họa vai trò của các nút mạng trong mỗi phân hoạch. Với môi trường mạng minh họa trong hình 3.1, các nút mạng bắt đầu di chuyển tự do. Tại thời điểm t, đồ hình mạng đạt trạng thái như hình 3.3a. Và nút mạng 016F tạo thêm liên kết mới với một số nút mạng trong phân hoạch 1A, 1A11 và 1A16. Khi đó, nút mạng 016F liên lạc trực tiếp với hai phân hoạch 01 và 1A nên 016F trở thành cầu nối giữa hai phân hoạch và đóng vai trò như một gateway trong mỗi phân hoạch (hình 3.3b). Nút mạng 016C và 1A05 được chọn làm nút đại diện của phân hoạch 01 và 1A theo thứ tự. Tương ứng các nút láng giềng vật lý của nút -29- 016C và 1A05 cũng trở thành nút đại diện dự trữ. Đặc biệt, nút 016F vừa đóng vai trò là nút dại diện dự trữ vừa là một gateway. 016C 016F 0180 0185 018B 01A1 01B0 01F2 01FB 1A05 1A11 1A16 1A61 1A70 1AB9 1AF1017F 1A14 017F01 1A 016C 016F 0180 0185 018B 01A1 01B0 01F2 01FB 1A05 1A11 1A14 1A16 1A61 1A70 1AB9 1AF1 gateway nút mạng 016F Nút đại diện Nút đại diện dự trữ Hình 1.3. BVRR: minh họa vai trò của các nút mạng trong phân hoạch Như vậy, nếu một gói tin có nút nguồn và nút đích thuộc cùng một phân hoạch thì ta chỉ cần định tuyến gói tin dọc theo vòng ảo trong phân hoạch đó tương tự như giao thức VRR [3]; ngược lại gói tin bắt buộc phải đi qua các nút gateway giữa hai phân hoạch chứa nút nguồn và nút đích. Giao thức BVRR thực hiện định tuyến một gói tin dựa trên ý tưởng này. BVRR thực hiện định tuyến gói tin đến nút mạng có phần định danh của host HID gần với định danh của nút đích nhất trong -30- nội bộ phân hoạch nếu nút mạng gởi và nút mạng đích đến thuộc về cùng một phân hoạch. Ngược lại, gói tin được định tuyến đến đích thông qua các nút gateway. 1.3. Thông tin định tuyến Tương tự giao thức VRR [3], mỗi nút mạng thiết lập và duy trì một bảng định tuyến (routing table). Bảng định tuyến lưu thông tin định tuyến của các vset- path giữa nó với các nút mạng trong tập láng giềng vật lý pset và tập láng giềng ảo vset trong mỗi phân hoạch mà nút mạng đang liên lạc trực tiếp cùng các vset-path có đi ngang qua nút đó. Ngoài ra, các nút gateway thiết lập một vset-path giữa nó với nút đại diện trong mỗi phân hoạch mà nút gateway liên lạc trực tiếp. Thông tin này đảm bảo một gói tin có thể chuyển tiếp được đến nút gateway hay nút đại diện khi cần chuyển tiếp liên phân hoạch. Thông tin về vset-path giữa hai nút mạng lưu trong bảng định tuyến tại một nút gồm các trường dữ liệu sau: • Định danh phân hoạch - PID: định danh của phân hoạch chứa vset- path. • Định danh của hai điểm mút (endpoint) của vset-path - Ea, Eb, với Ea là định danh của nút mạng đã khởi tạo vset-path này. • Định danh của nút kế tiếp (next hop) - Na, Nb là định danh của nút láng giềng vật lý mà chúng ta cần chuyển gói tin đến khi muốn chuyển gói tin đến điểm mút tương ứng. • Định danh của vset-path - PathID. Bộ ba dùng để phân định các vset-path khác nhau. Bảng 3.1 minh họa bảng định tuyến của nút mạng 016F với hiện trạng mạng như hình 3.3. Dòng 1 đến 7 là các vset-path thuộc về phân hoạch 1A, dòng 8 đến 16 là các vset-path thuộc về phân hoạch 01. Trong phân hoạch 01, dòng 8 đến dòng 11 là các vset-path giữa nút 016F và các láng giềng vật lý; dòng 12 và dòng 15 là vset- -31- path giữa nút 016F với các láng giềng ảo; và dòng 16 là vset-path giữa nút mạng 016F và nút đại diện của phân hoạch 01, nút 016C, do 016F là nút gateway. Bảng 1.1. BVRR: bảng định tuyến của nút 016F PID Ea Eb Na Nb pathID 1A 1A16 016F 1A16 FFFF FFFF 1 1A 1A11 016F 1A11 FFFF FFFF 2 1A 1A70 016F 1A16 FFFF 7 3 1A 1AB9 016F 1A16 FFFF 9 4 1A 1A16 016F 1A16 FFFF 4 5 1A 1A61 016F 1A11 FFFF 5 6 1A 1A05 016F 1A11 FFFF F02A 7 01 016C 016F 016C FFFF FFFF 8 01 01B0 016F 01B0 FFFF FFFF 9 01 0185 016F 0185 FFFF FFFF 10 01 018B 016F 018B FFFF FFFF 11 01 016F 01FB FFFF 01B0 6 12 01 016F 017F FFFF 018B 7 13 01 016F 0180 FFFF 018B 9 14 01 016F 016C FFFF 016C 17 15 01 016C 016F 016C FFFF F014 16 Để đảm bảo có thể định tuyến được gói tin giữa hai nút mạng thuộc các phân hoạch khác nhau, thì các nút chuyển tiếp (nút đại diện và nút gateway) ngoài việc duy trì bảng định tuyến còn thiết lập và duy trì một bảng chuyển tiếp (forwarding table). Bảng chuyển tiếp tại mỗi nút chuyển tiếp lưu thông tin cần chuyển tiếp gói tin đến nút chuyển tiếp nào tiếp theo khi muốn chuyển gói tin đến một phân hoạch p -32- và số lần cần chuyển tiếp tương ứng. Mỗi dòng dữ liệu trong bảng chuyển tiếp gồm các trường dữ liệu sau: • Định danh của phân hoạch đích đến PID • Danh sách các bộ là danh sách các định danh nút chuyển tiếp NID cần chuyển tiếp gói tin đến khi muốn đến được phân hoạch đích PID với số lần cần phải chuyển tiếp hopcount. Bảng 3.2 minh họa bảng chuyển tiếp tại nút mạng 1A05 trong hiện trạng mạng như hình 3.3. Dòng 1 cho biết nếu muốn định tuyến gói tin sang phân hoạch 01 thì nút 1A05 chuyển tiếp gói tin đến nút chuyển tiếp 016F với một lần chuyển tiếp. Bảng 1.2. BVRR: Bảng chuyển tiếp của nút mạng 1A05 Phân hoạch Thông tin chuyển tiếp 01 1 1.4. Quá trình một nút mạng mới tham gia vào mạng Khi một nút x lần đầu tham gia vào mạng, nút x khởi tạo tập láng giềng vật lý pset, tập láng giềng ảo vset và bảng định tuyến. Đầu tiên nút x bắt đầu tìm các nút láng giềng vật lý pset và dùng các nút mạng này như là một proxy để định tuyến các thông điệp đến các nút mạng khác. Nút x tìm một proxy bằng cách gởi và lắng nghe thông điệp hello. Thông điệp hello được gởi quảng bá (broadcast) đến các nút láng giềng vật lý theo định kỳ. Khi nút x liên lạc trực tiếp được với một phân hoạch mới, nút x thực hiện quá trình tìm các nút láng giềng ảo vset bằng cách gởi một thông điệp vset_setup_req đến chính nó thông qua một proxy trong phân hoạch đó. Thông điệp vset_setup_req -33- được định tuyến cục bộ trong phân hoạch theo thuật toán chuyển tiếp (xem chi tiết trong mục 3.7) đến nút y có định danh của host gần với x nhất. Khi nút y nhận một thông điệp vset_setup_req từ nút x và là nút có định danh host gần với x nhất, nút y phản hồi cho nút x một thông điệp vset_setup nếu nút x là nút láng giềng ảo của nút y vào tập láng giềng ảo vset của nút y. Ngược lại, nút y trả lời nút x bằng một thông điệp vset_setup_fail. Cả hai thông điệp vset_setup và vset_setup_fail đều chứa tập láng giềng ảo vset của nút y và được định tuyến theo hướng proxy trong thông điệp vset_setup_req. Đặc biệt, thông điệp vset_setup thiết lập một vset-path giữa nút x và nút y. Thông tin về vset-path này được thêm vào bảng định tuyến của các nút mà thông điệp đi ngang qua. Khi nút x nhận được thông điệp phản hồi từ nút y, nút x tiếp tục tìm các nút láng giềng ảo khác bằng cách gởi thông điệp vset_setup_req đến các nút trong tập vset của nút y được đính kèm trong thông điệp phản hồi. Đồng thời, nút x thêm nút y vào tập láng giềng ảo vset nếu thông điệp phản hồi là thông điệp vset_setup và nút y là nút láng giềng ảo của nút x. Để xử lý trường hợp các nút tham gia vào mạng đồng thời, ta hủy các vset- path giữa các cặp láng giềng ảo bị lỗi. Ta sẽ hủy thông tin về vset-path bị lỗi ở tất cả các nút mạng có liên quan bằng cách gởi thông điệp teardown cho vset-path đó. Khi một nút x nhận được thông điệp teardown, nút x xóa thông tin định tuyến liên quan đến vset-path trong thông điệp teardown và tiếp tục chuyển thông điệp teardown đến nút kế tiếp còn lại. Trong trường hợp, nút x là một trong hai điểm mút của vset- path (x bằng Ea hay Eb), nút x xóa điểm đầu cuối còn lại ra khỏi tập láng giềng ảo vset nếu đây là một vset-path giữa hai nút láng giềng ảo; ngược lại, nếu đây là vset- path giữa nút đại diện và nút gateway, nút x cập nhật thông tin trong bảng chuyển tiếp. Đồng thời, nút x gởi thông điệp tương ứng để tìm lại nút láng giềng ảo hoặc nút đại diện nếu cần. -34- Khi nút x liên lạc trực tiếp được với hai hay nhiều phân hoạch, nút x trở thành gateway. Khi đó, mỗi khi nút x liên lạc được với một phân hoạch mới, ngoài việc thiết lập tập láng giềng ảo vset và thông tin vset-path liên quan, nút x còn thiết lập vset-path đến các nút mạng đại diện trong mỗi phân hoạch. Để thiết lập vset-path giữa nút gateway và nút đại diện trong một phân hoạch, nút gateway gởi một thông điệp rep_setup_req đến ZERO NODE2 của phân hoạch đó thông qua một proxy. Nút x gởi kèm danh sách các phân hoạch mà nút x có thể liên lạc trong thông điệp rep_setup_req. Thông điệp rep_setup_req được định tuyến cục bộ trong phân hoạch đến nút mạng đại diện r. Khi nút đại diện r nhận được thông điệp rep_setup_req, nút đại diện r cập nhật thông tin bảng chuyển tiếp đồng thời gởi về cho nút x một thông điệp rep_setup theo hướng proxy trong thông điệp rep_setup_req. Cũng như thông điệp rep_setup_req, thông tin các phân hoạch mà nút mạng đại diện có thể liên lạc cũng được gởi kèm trong thông điệp rep_setup. Nút x cập nhật thông tin bảng chuyển tiếp khi nhận được thông điệp rep_setup từ nút mạng đại diện r. Một vset-path cũng được thiết lập dọc theo con đường mà thông điệp rep_setup đi ngang qua. Để đảm bảo tính nhất quán, khi xảy ra thay đổi trong bảng chuyển tiếp tại một nút chuyển tiếp (gateway hay nút đại diện), nút chuyển tiếp gởi thông điệp cập nhật cho các nút chuyển tiếp khác. Khi một nút chuyển tiếp f nhận được thông điệp cập nhật, nút chuyển tiếp f cập nhật thông tin bảng chuyển tiếp của mình. Để tránh trường hợp lặp thông điệp, nút chuyển tiếp f không gởi thông tin cập nhật ngược lại nút nguồn cũng như không xử lý lại thông điệp cập nhật cũ (dựa vào trường sequence number trong thông điệp cập nhật). Trong trường hợp nút mạng không thể tham gia vào bất kỳ một phân hoạch nào, thì nút mạng hoạt động tự do không thuộc vào bất kỳ vòng ảo nào. Thuật toán xử lý các thông điệp đề cập trong mục này được minh họa cụ thể bằng mã giả trong mục PL1.2, phụ lục 1. 2 ZERO NODE trong một phân hoạch là nút mạng có định danh của host bằng 0. -35- 1.5. Quản lý liên kết (link) giữa các nút mạng Nhằm đảm bảo thông tin định tuyến tại mỗi nút mạng một cách chính xác và nhất quán, giao thức BVRR quản lý trạng thái các nút mạng cũng như các liên kết giữa chúng. Đồng thời, giao thức BVRR thực hiện quá trình sửa lỗi khi một nút phát hiện liên kết giữa nó và một nút khác bị lỗi. 1.5.1. Quản lý liên kết Giao thức BVRR sử dụng một cơ chế phát hiện lỗi đồng bộ (symmetric failure detection) tương tự như giao thức VRR [3] để quản lý chất lượng liên kết giữa các nút mạng. Để đảm bảo tính nhất quán, một khi nút x đánh dấu mất liên lạc với nút láng giềng vật lý y trong phân hoạch p thì nút y cũng đánh dấu trạng thái của nút x trong phân hoạch p tương tự và không dùng nút x để chuyển tiếp các gói tin trong phân hoạch p. Mỗi nút mạng quản lý khả năng liên lạc với các nút láng giềng vật lý của mình bằng cách gởi quảng bá thông điệp hello theo định kỳ Th giây. Nút x đánh dấu trạng thái của nút láng giềng vật lý y trong phân hoạch p bằng một trong ba trạng thái: Linked nếu nút x nhận được thông điệp hello từ nút y và ngược lại; Pending nếu nút x nhận được thông điệp hello từ nút y nhưng không biết nút y có nhận được thông điệp hello từ nút x hay không; ngược lại thì nút mạng nhận trạng thái Unknown. Thông điệp hello chứa trạng thái của những nút láng giềng vật lý tại nút y trong mỗi phân hoạch. Khi nút x nhận được thông điệp hello từ nút y, nút x so sánh trạng thái của nó tại nút y và cập nhật trạng thái của nút y trong các phân hoạch theo sơ đồ như mô tả trong hình 3.4. Nếu nút y không tồn tại trong bất kỳ tập láng giềng vật lý của phân hoạch nào, nút x thêm nút y vào tập láng giềng vật lý của phân hoạch mà cả hai cùng active. Nếu không tìm thấy một phân hoạch nào như thế, nút -36- x tạo liên kết mới với nút y trong tất cả các phân hoạch mà nút x và nút y cùng có thể liên lạc3. Trong trường hợp không tìm được phân hoạch mà cả hai cùng active hoặc có thể liên lạc, nút x tạo liên kết với nút y trong phân hoạch hiện hành của mình và phân hoạch hiện hành của nút y4. Khi nút x mới thêm nút y vào tập láng giềng vật lý pset của phân hoạch p thì trạng thái của nút y được khởi tạo là Pending. Pending/Linked Hình 1.4. BVRR: Sơ đồ chuyển trạng thái của một nút mạng Hình 3.4 minh họa quá trình nút x cập nhật trạng thái của nút y tại nút x trong phân hoạch p. Trong đó, cạnh của sơ đồ biểu diễn trạng thái của nút x trong phân hoạch p tại nút y từ thông điệp hello của nút y. Trạng thái hiện hành của nút y trong phân hoạch p tại nút x thể hiện bằng hình oval. Trong trường hợp nút y không biết thông tin về trạng thái của nút x trong phân hoạch p thì trạng thái của nút x trong phân hoạch p tại nút y là Unknown. Nút x xóa nút y ra khỏi tập láng giềng vật lý pset trong tất cả các phân hoạch nếu nút x không nhận được thông điệp hello từ nút y trong kTh giây. Đồng thời, nút x cũng hủy các vset-path có nút y là nút kế tiếp bằng cách gởi thông điệp teardown cho các vset-path tương ứng. Đồng thời, thông điệp hello còn cho biết nút y đã active trong phân hoạch p hay chưa. Nút x xem nút y như một nút láng giềng vật lý tốt (good physical neighbor) trong phân hoạch p nếu nút y có trạng thái là linked và đã active trong phân hoạch p. Khi đó, nút x chèn thêm một vset-path đến nút y vào bảng định Pending Linked Unknown Unknown Unknown Thêm mới y vào tập pset P 3 PNút x có thể liên lạc với phân hoạch p nếu nút x đã active trong phân hoạch p hoặc nút x có ít nhất 1 một liên kết vật lý trong phân hoạch đó. P 4 P Chỉ thêm tạo liên kết khi phân hoạch p khác phân hoạch NULL -37- tuyến của nút x. Và nút x dùng nút y để chuyển tiếp gói tin trong phân hoạch p. Để tối ưu độ dài đường đi chuyển tiếp gói tin, ta thêm các vset-path qua 2 hop vset- path-2-hop thông qua các nút láng giềng vật lý dựa trên thông tin các nút láng giềng của một nút trong thông điệp hello. 1.5.2. Sửa lỗi Khi nút x đánh dấu liên kết với nút y bị hư trong phân hoạch p, nút x xóa tất cả các vset-path thuộc phân hoạch p trong bảng định tuyến có nút y như nút mạng trung gian. Và nút x xóa nút y ra khỏi tập các nút láng giềng vật lý của nó trong phân hoạch p. Để đảm bảo thông tin định tuyến nhất quán trong toàn mạng, nút x khởi tạo thông điệp teardown để xóa thông tin định tuyến về vset-path bị hư dọc theo đường đi của vset-path, chi tiết xem hàm Teardown trong mục PL1.2 trong phụ lục 1. Để hạn chế thông điệp điều khiển cho quá trình sửa lỗi khi phát hiện liên kết hư, mỗi nút mạng dùng cơ chế sửa lỗi cục bộ tương tự giao thức VRR [3]. Để đảm bảo tính nhất quán thông tin trong suốt các quá trình khởi tạo thông tin, nút x phát sinh thông điệp acknownledgment (ack) một hop cho các thông điệp liên quan đến việc xây dựng và duy trì vset-path (vset_setup, rep_setup và teardown) và gởi về cho nút vừa gởi thông điệp. Nếu sau một thời gian TACK giây, nút gởi thông điệp không nhận được thông điệp ack từ nút nhận, nó chủ động gọi teardown cho vset-path tương ứng. 1.6. Quản lý phân hoạch Một nút x được đánh dấu là active trong phân hoạch p nếu nó có từ NP nút láng giềng vật lý có trạng thái linked trong phân hoạch đó. Ngược lại, trạng thái của nút x trong phân hoạch p là un_active. Khi nút x được active trong phân hoạch p, nút x xóa tất cả các liên kết của nút x với nút y trong các phân hoạch chưa active (có trạng thái là un_active) hoặc trong các phân hoạch đã active mà trạng thái liên kết -38- giữa nút x và nút y không tốt. Việc xóa liên kết này nhằm đảm bảo liên kết giữa nút x và nút y chỉ dùng để tạo liên kết với một phân hoạch. Và nút x liên lạc trực tiếp được với phân hoạch p nếu nút x có ít nhất Np liên kết tốt trong phân hoạch p. Khi các nút mạng di duyển tự do, một nút x có thể mất liên lạc với home partition của nó. Khi đó, nút x gởi thông điệp visit để cập nhật thông tin về phân hoạch hiện hành của nút x cho nút mạng đại diện của phân hoạch home partition của nút x, phân hoạch p. Khi nút mạng đại diện r của phân hoạch p nhận được thông điệp visi từ một nút x, nút đại diện r cập nhật thông tin về nút x trong danh sách các nút mạng tạm vắng, absent list. Nút x cập nhật thông tin vị trí của nó cho nút đại diện r theo định kỳ Tvisit giây hoặc khi thay đổi phân hoạch hiện hành. Nếu trong Tvisit giây, nút đại diện r không nhận được thông điệp visit từ nút x, nút đại diện r hủy thông tin về nút x trong danh sách tạm vắng. 1.7. Thuật toán chuyển tiếp gói tin Khi một nút x nhận một gói tin, nút x sẽ chuyển tiếp gói tin qua một nút mạng khác nếu nút x không là nút đích đến. Để chuyển tiếp gói tin, trước tiên nút x chọn một điểm mút y trong bảng định tuyến có định danh của host HID gần với định danh của host đích đến nhất thuộc phân hoạch đích. Nếu nút x không có thông tin về phân hoạch đích đến, nút x chọn nút y thỏa tính chất trên trong phân hoạch mà gói tin đang được định tuyến. Sau đó, nút x chuyển tiếp gói tin theo hướng nút y. Nếu không tìm được nút y như thế và gói tin chưa qua bất kỳ nút chuyển tiếp nào, nút x chuyển tiếp gói tin đến nút đại diện của phân hoạch để tìm một nút chuyển tiếp có thể liên lạc với phân hoạch đích. Trong trường hợp, gói đang được định tuyến trong phân hoạch home partition của nút đích đến, nút x cũng chuyển tiếp gói tin đến nút đại diện nếu gói tin chưa đi ngang qua nút đại diện để tìm thông tin vị trí của nút đích. Các trường hợp còn lại, nút x hủy gói tin vì không có thông tin định tuyến đến đích. -39- Khi một nút x muốn chuyển tiếp một gói tin đến một nút chuyển tiếp, nút x đóng gói lại gói tin với tiêu đề (header) mới và bảo tồn gói tin cũ trong phần dữ liệu của gói tin mới. Khi đó, nút đích đến là định danh của nút chuyển tiếp tương ứng. Tại nút chuyển tiếp cuối cùng, thông tin của gói tin ban đầu được phục hồi và được định tuyến đến nút mạng đích đến. Chi tiết thuật toán chuyển tiếp gói tin tại một nút mạng được minh họa bằng mã giả trong mục PL1.1 của phụ lục 1. Ví dụ cách một gói tin di chuyển từ nút nguồn đến nút đích được thể hiện trong phụ lục 2.

Các file đính kèm theo tài liệu này:

  • pdf7.pdf
  • pdf1.pdf
  • pdf10.pdf
  • pdf11.pdf
  • pdf2.pdf
  • pdf3.pdf
  • pdf4.pdf
  • pdf5.pdf
  • pdf6.pdf
  • pdf8.pdf
  • pdf9.pdf
  • pdfscan0002.pdf
Tài liệu liên quan