Tải bản đầy đủ (.pdf) (50 trang)

Nghiên cứu và thực hiện giao thức định tuyến proactive hữu hiệu ở link layer cho mạng ad hoc không dây

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.42 MB, 50 trang )

ĐẠI HỌC QUỐC GIA TP HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
FOG

BÁO CÁO TỔNG KẾT KẾT QUẢ
ĐỀ TÀI KHCN CẤP TRƯỜNG

Tên đề tài:

Nghiên cứu và hiện thực giao thức định tuyến proactive hữu hiệu
ở link layer cho mạng ad hoc không dây

Mã số đề tài:

T-KHMT-2011-29

Thời gian thực hiện:

15/3/2011 đến 15/3/2012 và được gia hạn 6 tháng

Chủ nhiệm đề tài:

TS Lê Ngọc Minh

Cán bộ tham gia đề tài:
1. TS Lê Ngọc Minh
2. ThS Trịnh Minh Đức
3. KS Phạm Sỹ Nam

Thành phố Hồ Chí Minh – Tháng 10/2012


1


Danh sách các cán bộ tham gia thực hiện đề tài
(Ghi rõ học hàm, học vị, đơn vị công tác gồm bộ môn, Khoa/Trung tâm)
1.
2.
3.

TS Lê Ngọc Minh, BM Hệ thống và Mạng máy tính, Khoa KH&KT MT
ThS Trịnh Minh Đức
KS Phạm Sỹ Nam, BM Hệ thống và Mạng máy tính, Khoa KH&KT MT

2


Mục Lục


Phát biểu vấn đề ............................................................................................................5 
1.1  Giới thiệu wireless mesh network (WMN).............................................................5 
1.2  Hướng thực hiện......................................................................................................6 
2  Chuẩn IEEE 802.11s .....................................................................................................7 
2.1  Draft IEEE 802.11s .................................................................................................7 
2.2  Dự án OLPC (One Laptop Per Child)...................................................................10 
2.3  Dự án open80211s.................................................................................................10 
3  Kỹ thuật flooding trong định tuyến proactive .............................................................11 
4  Giải thuật XL...............................................................................................................13 
4.1  Giới thiệu giải thuật XL ........................................................................................13 
4.2  Ý tưởng của giải thuật XL.....................................................................................14 

4.3  Các khái niệm........................................................................................................14 
4.4  Hiện thực giải thuật XL.........................................................................................16 
4.4.1  Chi phí kết nối ................................................................................................16 
4.4.2  Chi tiết ............................................................................................................16 
4.5  Các tính chất của giải thuật XL.............................................................................18 
5  Thiết kế giao thức định tuyến DLL-XL ......................................................................19 
Các kỹ thuật.................................................................................................................19 
5.1  Định dạng và chuyển tiếp gói ...............................................................................20 
5.2  Cơ sở dữ liệu .........................................................................................................20 
5.2.1  Tập hợp kết nối...............................................................................................20 
5.2.2  Tập hợp các nút kề .........................................................................................21 
5.2.3  Tập hợp thông tin mạng của một nút chia sẻ với một nút kề .........................21 
5.2.4  Tập hợp thông tin mạng của nút.....................................................................22 
5.2.5  Bảng định tuyến..............................................................................................22 
5.2.6  Định dạng thông điệp TC ...............................................................................23 
5.3  Định dạng, gửi và xử lý thông điệp HELLO ........................................................23 
5.3.1  Định dạng thông điệp HELLO .......................................................................23 
5.3.2  Gửi thông điệp HELLO..................................................................................23 
5.3.3  Xử lý thông điệp HELLO...............................................................................23 
5.4  Định dạng, gửi và xử lý thông điệp TC ................................................................24 
5.4.1  Định dạng thông điệp TC ...............................................................................24 
5.4.2  Gửi thông điệp TC..........................................................................................24 
5.4.3  Xử lý thông điệp TC.......................................................................................25 
5.5  Tính tốn bảng định tuyến.....................................................................................26 
5.6  Số thứ tự ................................................................................................................26 
5.7  Quá trình khởi động một nút .................................................................................27 
6  Hiện thực DLL-XL trong link layer............................................................................27 
6.1  Driver khơng dây ngun thủy..............................................................................27 
6.2  Tích hợp routing protocol machine vào trình điều khiển RT2570 .......................29 
6.3  Thiết kế và hiện thực giao diện người dùng..........................................................31 

7  Đo đạc đánh giá hiệu năng của DLL-XL ....................................................................34 
3




Kết luận .......................................................................................................................35 
8.1  Đóng góp của đề tài...............................................................................................35 
8.2  Hướng phát triển ...................................................................................................36 
9  Các bài báo ..................................................................................................................37 
Tài liệu tham khảo ..............................................................................................................39 

4


1

Phát biểu vấn đề

Mục tiêu của đề tài là
• Nghiên cứu thiết kế và hiện thực một giao thức proactive định tuyến hữu hiệu ở
link layer cho mạng khơng dây.
• Tiếp tục khảo sát nắm bắt các hướng nghiên cứu và phát triển tương lai trong lĩnh
vực mạng không dây, nhất là các nội dung liên quan đến định tuyến trong link
layer của mơ hình OSI. Đề tài này tiếp tục nghiên cứu công nghệ đã bắt đầu từ một
đề tài NC cấp trường trong lĩnh vực định tuyến cho mạng ad-hoc không dây. Tuy
nhiên trong đề tài trước đây trọng tâm đặt ở các giao thức thuộc họ on-demand.
• Phát triển phần mềm mạng không dây gần với phần cứng: giao thức định tuyến
proactive nhúng trong trình điều khiển thiết bị (thiết bị ở đây là usb wireless card)
của lõi hệ điều hành Linux.


1.1

Giới thiệu wireless mesh network (WMN)

Mạng ad-hoc là mạng khơng dây khơng có sự điều khiển tập trung mà các nút sẽ thực
hiện việc chuyển tiếp dữ liệu cho các nút khác. Việc xác định nút nào sẽ chuyển tiếp dữ
liệu được xác định động dựa vào cấu trúc mạng lúc đó. Mỗi nút cũng sẽ đóng vai trị một
router và việc định tuyến cho nó là rất quan trọng.
WMN [9] là một mạng không dây ad-hoc kết nối với nhau bằng sóng radio trong đó các
nút tương đối ít di chuyển như mạng mobile ad-hoc [8]. WMN có thể được ứng dụng cho
nhiều kiểu hạ tầng mạng không dây khác nhau và một trong số đó là mạng khơng dây cục
bộ WLAN. WMN có khả năng thiết lập nhanh, phủ sóng trong những khu vực khó thực
hiện việc đi dây, có khả năng mở rộng và tự cấu hình để đảm bảo hiệu suất. Ngồi ra
WMN cịn có khả năng tăng tầm phủ sóng nhờ dùng nhiều nút để chuyển tiếp dữ liệu,
giảm năng lượng sử dụng nhờ truyền với năng lượng thấp
Do đó WMN thường được dùng trong những trường hợp khẩn cấp như thiên tai, chữa
cháy, chống khủng bố và trong quân đội. WMN cũng được dùng trong những trường hợp
cần tiết kiệm chi phí như cơng ty, trường đại học.
Các loại giải thuật định tuyến chính cho mạng WMN gồm có:
• Định tuyến proactive
Định tuyến proactive thực hiện định tuyến bằng cách định kỳ gửi thơng điệp định
tuyến và bảo trì đường đi trong mạng. Mỗi nút luôn giữ một danh sách các đích
đến cũng như các đường đi hợp lệ. Giải thuật cần một lượng lớn thơng điệp để bảo
trì đường đi và tốn nhiều thời gian để tính tốn lại bảng đường đi khi mạng có biến
động. Các giao thức định tuyến proactive tiêu biểu cho WMN là OLSR (Optimized
Link State Routing Protocol) [3], BATMAN (The Better Approach To Mobile Adhoc Networking) [20] và DSDV (Destination Sequenced Distance Vector Routing)
[16].

5



• Định tuyến reactive
Định tuyến reactive thực hiện định tuyến bằng cách flooding thông điệp yêu cầu
định tuyến (Route Request) trong mạng. Khi một nút cần một đường đi nó sẽ gửi
broadcast thông điệp RREQ đến các nút kề. Các nút kề này sau khi nhận được
thông điệp RREQ sẽ broadcast tiếp thông điệp đến các nút lân cận của nó. Q
trình này tiếp tục cho đến khi nút đích (hoặc nút trung gian có giữ đường đi đến
đích) nhận được RREQ thì sẽ sinh ra thơng điệp RREP trả lời và gửi ngược về cho
nút có yêu cầu. Giải thuật sẽ có thời gian đáp ứng chậm khi mạng lớn và sẽ gây ra
nghẽn khi có quá nhiều yêu cầu định tuyến. Các giao thức định tuyến reactive tiêu
biểu cho WMN là AODV (Ad-hoc Ondemand Distance Vector) [17], và DSR
(Dynamic Source Routing) [10].
• Định tuyến lai
Định tuyến lai là giải thuật định tuyến kết hợp định tuyến reactive và định tuyến
proactive. Giao thức định tuyến lai tiêu biểu là HWMP (Hybrid Wireless Mesh
Protocol), đây là giao tuyến định tuyến mặc định tromg mạng 802.11s và được đặc
tả trong draft 802.11s [11].

1.2

Hướng thực hiện

Định tuyến được hiện thực chủ yếu ở lớp ba của mơ hình mạng OSI. Tuy nhiên hiện thực
định tuyến ở lớp ba có một số điểm hạn chế chưa giải quyết được tốt [2].
Thực hiện định tuyến ở lớp hai của mơ hình OSI có thể giải quyết được những nhược
điểm trên và tăng hiệu quả việc truyền nhận. Việc thực hiện tất cả các dịch vụ của WMN
ở lớp hai cũng sẽ giúp cho WMN có khả năng làm nền cho các dịch vụ ở các lớp cao hơn
và kết nối với các mạng khác dễ dàng mà không cần hiện thực thêm. Hơn nữa, qua việc
hiện thực định tuyến ở lớp hai người ta cịn có thể can thiệp được các thơng số của mạng

không dây (điều này khá quan trọng trong việc quản lý mạng không dây). Tuy nhiên, việc
hiện thực định tuyến ở lớp hai sẽ khó khăn và phức tạp hơn do phải thực hiện trên nền địa
chỉ vật lý và khơng có phân cấp địa chỉ IP như lớp ba. Ta sẽ tiến hành thiết kế một giao
thức định tuyến proactive ở lớp hai của mơ hình OSI cho WMN.
Giải thuật XL (Approximate Link-state) [12] là một giải thuật định tuyến thuộc họ giải
thuật định tuyến link-state. Giải thuật giúp tăng hiệu quả định tuyến bằng cách giới hạn số
lượng thơng điệp cập nhật thơng qua việc flooding có lựa chọn. Qua các kết quả mô
phỏng, tác giả đã cho thấy XL hiệu quả hơn những giải thuật định tuyến thuộc họ định
tuyến link-state hiện tại về thời gian đáp ứng cũng như tổng chi phí định tuyến. Tuy nhiên
việc mô phỏng chỉ mới thực hiện ở mức các nút trao đổi thơng điệp và tính tốn bảng định
tuyến. Theo chúng tơi biết, hiện vẫn chưa có hiện thực nào để kiểm tra tính hiệu quả của
giải thuật XL.
WMN có những tính chất đặc trưng của mạng khơng dây như kết nối khơng ổn định,
chuyển tiếp gói có lỗi đường truyền và các nút có khả năng di chuyển. Ngồi ra mỗi nút
WMN có thể kết nối với nhiều nút khác mà khơng làm tăng chi phí kết nối nhờ sử dụng
6


sóng radio chứ khơng cần phải đi dây. Đây là các tính chất mà khi thiết kế giao thức định
tuyến cho WMN ta cần chú ý đến.
Dựa trên ý tưởng của giải thuật định tuyến XL, đề tài này thiết kế và hiện thực một giao
thức định tuyến proactive hữu hiệu ở lớp hai của mơ hình OSI, gọi là giao thức định tuyến
DLL-XL. Giao thức định tuyến proactive này phải phù hợp với các tính chất đặc trưng
của mạng khơng dây và đảm bảo
• Cung cấp thơng tin về đường đi tối ưu ngay khi có u cầu (proactive).
• Số lượng thơng điệp cũng như kích thước thơng điệp dùng để định tuyến là thấp.
• Thiết kế giao thức ở lớp hai của mơ hình OSI.

2


Chuẩn IEEE 802.11s

2.1

Draft IEEE 802.11s

Draft 802.11s [11] là bản phác thảo của một nhóm nghiên cứu thuộc tổ chức IEEE thành
lập từ tháng 9 năm 2003 nhằm thiết kế một chuẩn giao tiếp cho WMN phát triển trên nền
hardware 802.11a/b/g/n. Bản phác thảo này đã được IEEE phê duyệt vào cuối năm 2011
[22]. Do khơng có sự khác biệt lớn giữa chuẩn chính thức và draft 802.11s, hơn nữa tài
liệu chính thức khơng là miễn phí, nên trong báo cáo này chúng tơi tiếp tục dựa trên draft
802.11s.
WMN được mô tả trong draft 802.11s gồm có các thành phần sau.
• Mesh Point (MP): bất kỳ thiết bị nào của chuẩn 802.11 có lớp MAC và lớp giao
tiếp vật lý trong WMN và hỗ trợ các dịch vụ của WMN.
• Mesh Access Point (MAP): bất kỳ một Mesh Point nào mà nó cũng là một Access
Point theo chuẩn 802.11s.
• Station (STA): các máy trạm có thiết bị giao tiếp theo chuẩn 802.11s
• Mesh Link: một kết nối hai chiều theo chuẩn 802.11 giữa hai Mesh Point.
• Mesh Path: một tập hợp các Mesh Link kết nối từ Mesh Point nguồn đến Mesh
Point đích
• Link Metric: một tiêu chuẩn dùng để đánh giá hiệu suất và chất lượng của một
Mesh Link trong một Mesh Path.
• Mesh Service: tập hợp các dịch vụ được cung cấp bởi WMN nhằm hỗ trợ điều
khiển, quản lý và thao tác trong WMN.
Hình 1 chỉ cho ta thấy các thành phần và tương tác giữa các thành phần trong WMN theo
draft 802.11s .

7



wired infrastructure

MAP

MP

STA

MAP

MAP

STA

MP
STA

STA

STA

STA

radio link
mesh radio link
Hình 1: Các thành phần cơ bản trong WMN theo draft 802.11s
( page 19)

Phạm vi thiết kế của draft 802.11s là tích hợp dịch vụ và giao thức của WMN với chuẩn

không dây 802.11 ở lớp MAC. Hình 2 cho ta thấy kiến trúc các khối chức năng của
802.11s gồm có
• Khối chức năng định tuyến, chuyển tiếp gói: Chứa chức năng phát hiện node lân
cận và chức năng thu thập các tham số đo trạng thái đường liên kết vô tuyến sử
dụng cho định tuyến. Các giao thức định tuyến sử dụng địa chỉ MAC làm địa chỉ
nhận dạng cũng như cho chức năng chuyển tiếp gói. Để sử dụng hiệu quả nguồn tài
ngun vơ tuyến, giao thức định tuyến sử dụng các tham số vô tuyến và các kênh
đa tần số phù hợp với các điều kiện vơ tuyến để định tuyến.
• Khối đo lường và tính tốn: Chứa chức năng tính tốn các tham số vô tuyến được
sử dụng trong giao thức định tuyến và chức năng đo lường các điều kiện vô tuyến
để lựa chọn kênh tần số.
• Khối điều phối truy nhập phương tiện: Bao gồm các chức năng chống suy giảm
hiệu năng do các hiện tượng che dấu nút (“hidden node problem”), các chức năng
thực hiện điều khiển ưu tiên, điều khiển tắc nghẽn, điều khiển quản lý và chức
năng kích hoạt sử dụng lại tần số.
• Khối bảo mật: Chứa các chức năng bảo mật để bảo vệ các khung dữ liệu mang
trên mạng và các khung quản lý được sử dụng bởi các chức năng quản lý như giao
thức định tuyến. Các phương pháp an ninh cho WLAN được định nghĩa trong
chuẩn 802.11i .

8


• Khối liên mạng: IEEE 802.11 là một phần trong cấu trúc IEEE 802 vì thế WMN
thực hiện kết nối với các mạng khác (ví dụ: 802.3) thơng qua chức năng cầu nối
nằm tại MPP (mesh portal).
• Khối chức năng quản lý và cấu hình: Khối này gồm một giao diện WMN được
sử dụng để tự động thiết lập các tham số tần số vơ tuyến MP với mục đích quản lý
chính sách chất lượng dịch vụ.


802.11s

Kết nối liên mạng
Định tuyến
và chuyển
tiếp gói

Quản lý và cấu hình WMN
Đo lường
và tính toán
mạng

Điều phối
truy nhập
phương
tiện

Bảo mật

Lớp MAC thấp (IEEE 802.11 e/n)

Lớp vật lý (IEEE 802.11a/b/g/n)

Hình 2: Kiến trúc các khối chức năng của 802.11s

Mục tiêu của draft 802.11s là nhằm kết nối những nút của WMN với nhau thành một
mạng không dây phân bố khơng cần quản lý tập trung và có thể tự cấu hình nhằm đạt
được các mục tiêu sau
• Tăng phạm vi phủ sóng và tính mềm dẻo của mạng (so với việc dùng access point).
• Tăng độ tin tưởng của mạng (mạng vẫn hoạt động tốt kể cả khi có một số nút

khơng hoạt động).
• Đảm bảo tính bảo mật (tích hợp vào 802.11i).
• Đảm bảo truyền nhận đa phương tiện giữa các thiết bị.
• Tối thiểu năng lượng sử dụng của mạng.
• Tương thích được với các chuẩn trước đó.
• Đảm bảo chính xác giao tiếp giữa các nút mạng.
• Có khả năng tăng tải của mạng.

9


2.2

Dự án OLPC (One Laptop Per Child)

Dự án mỗi trẻ em một máy tính, OLPC, là một dự án phi lợi nhuận nhằm mục đích tạo cơ
hội học tập cho các trẻ em nghèo trên thế giới bằng cách cung cấp cho mỗi em một máy
tính rẻ, bền và tiết kiệm điện cùng với các phần mềm mở cho phép tự học [15].
Chi tiết về dự án có thể tìm thấy ở trang web của dự án, .
Dự án OLPC là dự án đầu tiên hiện thực giao tiếp cho WMN sử dụng thiết kế của draft
802.11s trên máy tính XO. Tuy vậy hiện thực dự án có một số điểm khác so với draft
802.11s dành cho WMN như:
• Hỗ trợ kết nối bất đối xứng
• Hỗ trợ nhiều metric khác nhau
• Chỉ hiện thực một phần của 802.11s
• Sử dụng chip Marvell 88W8388 hỗ trợ chuẩn 802.11b/g và chế độ khơng phân loại
có thể chạy như một bộ định tuyến ngay khi bộ xử lý chính khơng làm việc. Tuy
vậy chip này bị hạn chế về bộ nhớ nên không thể hiện thực một số chức năng như
draft 802.11s đưa ra.
Việc định tuyến giữa các máy XO trong WMN dựa trên giải thuật HWMP mà draft

802.11s đã định nghĩa là giao thức định tuyến mặc định. Việc định tuyến chỉ được thực
hiện khi có u cầu tìm đường đi giữa các máy. Định tuyến trong OLPC được hiện thực ở
lớp hai của mơ hình OSI và dùng địa chỉ MAC thay thế địa chỉ IP để có thể can thiệp
được các thông số của mạng không dây (điều này khá quan trọng trong việc quản lý mạng
không dây).

2.3

Dự án open80211s

Dự án open80211s [21] là một dự án được hình thành dưới sự liên kết của nhiều tổ chức
và công ty lớn nhằm hiện thực draft 802.11s dưới hình thức mã nguồn mở. Phần hiện thực
của dự án open80211s được tiến hành trên hệ điều hành mở Linux với các thiết bị khơng
dây được hỗ trợ. Các dịng chipset được hỗ trợ gồm có Atheros, Broadcom, Marvell,
Intersil's Prism54 và Ralink. Phần hiện thực của dự án thực hiện theo chuẩn 802.11s sử
dụng giao thức định tuyến lai HWMP ở lớp hai, và dùng metric là airtime. Chi tiết về dự
án có thể tìm thấy tại trang web của dự án, .
Mục tiêu của dự án open80211s là hiện thực draft 802.11s và đưa phần mềm này đến
người dùng một cách rộng rãi để cuối cùng có thể kết nối các thiết bị không dây dùng hệ
điều hành Linux thành một mạng rất lớn.
Từ 4/3/2008 dự án đã hiện thực được việc kết nối các máy với nhau trên một số thiết bị
không dây sử dụng chip Atheros, Broadcom và Marvell. Phần định tuyến của dự án
open80211s được thực hiện ở lớp dữ liệu của mơ hình OSI và sử dụng giải thuật HWMP
như draft 802.11s đã đưa ra. Các hỗ trợ mới nhất (trong phiên bản mới nhất 0.2.1) gồm

10


quản lý kết nối, quản lý gửi tràn, định tuyến HWMP sử dụng airtime metric, đáp ứng tần
số cho nút kề, dị tìm WMN, làm sạch card mạng dùng cho beaconing và chuyển tiếp gói.


3

Kỹ thuật flooding trong định tuyến proactive

Đối với những mạng nhỏ thì việc định tuyến được thực hiện tĩnh, mỗi nút sẽ có một bảng
định tuyến được cấu hình tĩnh. Tuy nhiên với các mạng lớn và có nhiều biến động, thì
việc thực hiện định tuyến tĩnh là khó khả thi. Định tuyến cần được thực hiện động tùy vào
hiện trạng mạng lúc đó. Để thực hiện được điều này, mỗi nút cần phải có được thơng tin
về hiện trạng của mạng lúc đó. Người ta dùng kỹ thuật flooding để thực hiện điều này.
Khi một nút nhận biết được một sự thay đổi cần cập nhật thì nó sẽ gửi thơng tin này đến
tất cả các nút khác trong mạng. Nhờ vậy mỗi nút đều có thơng tin về hiện trạng của tồn
mạng, và có thể thực hiện việc định tuyến chính xác.
Kỹ thuật flooding có nhiều hạn chế. Khi dùng flooding thì thơng tin gửi đi tăng lên một
cách nhanh chóng theo số lượng kết nối và số lượng nút làm cho mạng không dễ dàng đáp
ứng được. Mặt khác không phải bất kỳ sự thay đổi nào cũng cần phải truyền cho tất cả các
nút. Ta có thể xem ví dụ ở Hình 3, các đường liền nét là cây đường đi ngắn nhất của nút
được tô đậm. Những kết nối đứt quãng cho dù có thay đổi cũng khơng cần truyền cho nút
được tơ đậm.

Hình 3: Sự dư thừa trong flooding

Để khắc phục những hạn chế của flooding, người ta sử dụng nhiều phương pháp khác
nhau. Các phương pháp này đều nhằm vào việc hạn chế flooding, thực hiện việc gửi có
giới hạn. Các phương pháp này chính là xương sống quyết định tính hiệu quả cho giải
thuật định tuyến. Một số phương pháp chủ yếu dùng để khắc phục những hạn chế của
flooding gồm có
• Phân cấp nhân tạo
Ý tưởng phân cấp nhân tạo là chia mạng lớn thành các vùng nhỏ. Mỗi vùng có bao
đóng và việc flooding chỉ thực hiện trong từng vùng mà khơng truyền ra bên ngồi

vùng này. Việc định tuyến giữa các vùng được thực hiện bởi các nút biên.
Ý tưởng này được thực hiện trong giao thức định tuyến OSPF (Open Shortest Path
First) trình bày trong RFC 3228 (IPv4) [13] và RFC 5340 (IPv6) [4].

11


A
AB

B

BC

C

Hình 4: Giới hạn flooding bằng phân cấp nhân tạo

Việc phân cấp nhân tạo sẽ khó khăn trong việc mở rộng mạng. Hơn nữa đường đi chỉ
tối ưu trong từng vùng, cịn đường đi giữa các vùng khác nhau thơng qua nút biên
khơng nhất thiết là đường đi tối ưu.
• Giới hạn bán kính truyền
Ý tưởng giới hạn bán kính truyền là chỉ thực hiện flooding với một bán kính xác định
(bán kính này có đơn vị là số nút tối đa mà flooding được truyền qua tính từ nút khởi
động flooding). Việc giới hạn bán kính truyền được thực hiện bằng cách khởi tạo giá
trị TTL trong gói tin bằng với bán kính truyền cần giới hạn.
Ý tưởng giới hạn bán kính truyền được thực hiện trong các giao thức định tuyến như
là định tuyến OLSR [3] và định tuyến Fish-Eye [20].
Hình 5 trình bày một ví dụ giới hạn bán kính flooding tại nút 11 lần lượt bằng 1, 2 và
lớn hơn 2.


12


Hình 5: Giới hạn flooding theo bán kính ( />
Việc giới hạn flooding sử dụng bán kính truyền chỉ chính xác khi bán kính giới hạn
này bằng với đường kính (tính bằng số lượng nút) của mạng. Do vậy khi đường kính
của mạng tăng thì thời gian hội tụ lâu và số lượng flooding vẫn tăng.

4
4.1

Giải thuật XL
Giới thiệu giải thuật XL

Điểm nổi bật của giải thuật định tuyến XL do Levchenko et al. đề xuất [12] so với các giải
thuật định tuyến khác là nó có khả năng thực hiện định tuyến xấp xỉ với một thơng số
thiết kế, cịn được gọi là thông số lỗi, ε ≥ 0. Giải thuật định tuyến XL có thơng số thiết kế
ε nghĩa là đường đi giữa hai nút do giải thuật tìm được có chi phí nhỏ hơn hoặc bằng (1 +
ε) lần đường đi tối ưu. Giải thuật định tuyến XL thực hiện với thơng số ε càng lớn thì chi
phí định tuyến (tính bằng tổng số lượng thơng điệp dùng để định tuyến) càng nhỏ và đáp
ứng định tuyến càng nhanh. Giải thuật định tuyến XL thực hiện với thông số ε = 0 sẽ có
kết quả định tuyến giống như các giải thuật định tuyến link-state khác.
Thông qua mô phỏng, Levchenko et al. cho thấy giải thuật định tuyến XL hiệu quả hơn
những giải thuật định tuyến thuộc họ giải thuật định tuyến link-state hiện tại về thời gian
đáp ứng cũng như tổng chi phí định tuyến (tính bằng tổng số lượng thông điệp dùng để
định tuyến).

13



4.2

Ý tưởng của giải thuật XL

Phần chính của giải thuật XL là ba quy tắc mơ tả khi nào thì một cập nhật cần được truyền
trong mạng, gồm
• S1: Khi chi phí một kết nối tăng lên.
Khi một kết nối có chi phí tăng thì nó sẽ gây ra sự tăng chi phí của mọi đường đi
chứa nó. Giải thuật sẽ gửi cập nhật này cho tất cả các nút cịn lại. Quy tắc S1 có thể
dư thừa nhưng đảm bảo rằng các chi phí nhận được là hữu hạn, do đó đường đi tính
được sẽ khơng bị lặp vịng.
• S2: Khi một kết nối được dùng trong cây đường đi ngắn nhất của nút thì phải
truyền cho nút kề trong cây đường đi đó.
Luật S2 đảm bảo rằng cây đường đi được truyền theo đường đi ngắn nhất, và chi
phí được tính giảm dần theo cây đường đi.
Kết hợp hai quy tắc S1 và S2 sẽ đảm bảo tính hồn hão của giải thuật. Mọi đường đi tính
được đều hữu hạn và khơng xảy ra tình trạng lặp vịng.
• C1: Tồn tại một nút đích mà chi phí của kết nối làm cho chi phí đến nút đích tăng
hơn (1 + ε) lần, ε là thông số lỗi của giải thuật.
Giải thuật có thơng số lỗi ε sẽ có độ giãn là (1 + ε). Nghĩa là sau khi mạng tĩnh thì chi phí
đường đi tìm thấy bởi giải thuật khơng vượt q (1 + ε) lần chi phí đường đi tối ưu.
Theo chúng tôi biết, đến nay vẫn chưa có một giao thức định tuyến nào hiện thực định
tuyến dựa theo giải thuật XL. Tác giả giải thuật chỉ mới thực hiện việc mô phỏng giải
thuật ở mức các đối tượng nút trao đổi thông điệp với nhau và tính tốn bảng định tuyến.
Kết quả mơ phỏng của tác giả rất khả quan, lượng cập nhật giảm gần 10 lần so với các
giải thuật định tuyến thuộc họ định tuyến link-state cơ bản trong khi thời gian đáp ứng
đường đi mới vẫn tương đương.

4.3


Các khái niệm

Các ký hiệu sử dụng để mơ tả các tính chất của giải thuật XL gồm có:
• Biểu diễn mạng bởi đồ thị G = (V, E, e) trong đó V là tập đỉnh, E là tập cạnh và e
là hàm chi phí trên tập các cạnh của đồ thị.
• n = |V| là số đỉnh, m = |E| là số cạnh của đồ thị G.
• N(u) là tập hợp các đỉnh kề với đỉnh u.


δ (u, v) là chi phí nhỏ nhất của đường đi từ u đến v. Nếu không tồn tại đường đi từ
u đến v thì ta viết δ (u, v) = ∞ .



π (u, v) là đường đi từ u đến v mà có chi phí nhỏ nhất, δ (u , v) .



φ (u , v) là đường đi từ u đến v tìm ra bởi giải thuật, chi phí của đường đi này là
|| φ (u , v) ||.

14




f u là bảng định tuyến ánh xạ mỗi thành phần tương ứng với nút w một nút f u (w) ,

đó là nút kề của u mà các gói tin đi từ u đến w phải thông qua nút f u (w) .

• τ là thời điểm hiện tại khi thực hiện tính tốn.


ε u (w) là thơng số thiết kế của giải thuật. Nó chỉ độ sai số tối đa giữa đường đi tìm

được so với đường đi ngắn nhất từ u đến w.
• e(x, y) là chi phí của cạnh (x, y) của đồ thị G.


Du (w) là chặn dưới của chi phí đường đi tối ưu từ u đến w. Trong giải thuật thì chỉ

cần chọn 0 ≤ Du ( w) ≤ δ (u, w) là được. Tuy nhiên nếu giá trị Du (w) càng nhỏ thì
càng có nhiều cạnh vi phạm luật C1 nên thời gian và số lượng truyền cập nhật tăng
lên. Giá trị Du (w) càng tiến đến gần δ (u, w) thì mạng hội tụ càng mau. Ta sử dụng
thông số Du (w) thay cho δ (u, v) để tránh phải tính cây đường đi ngắn nhất mà sẽ
ước lượng đường đi ngắn nhất bằng các phương pháp xấp xỉ, nhờ đó giảm tổng
thời gian tính tốn của giải thuật.
• Bởi vì một số cập nhật được truyền đi trong khi một số cập nhật bị ngăn lại nên các
nút sẽ không có cùng cái nhìn về mạng. Do vậy ta gói những thơng tin chi phí kết
nối mà mỗi nút biết về mạng trong một khung nhìn (view). Mỗi nút sẽ có một
khung nhìn nội tại (internal view), ký hiệu Tu , gồm những thơng tin chi phí kết nối
mà nó biết được về mạng. Đồng thời với mỗi nút kề v của u sẽ có một khung nhìn
bên ngồi (external view) tương ứng, ký hiệu Tuv , là thông tin chi phí kết nối mà nó
muốn chia sẻ với nút v. Hình 6 thể hiện khung nhìn bên trong và bên ngồi của một
cặp nút u và v.
Nút u
Tu

Nút v
Tuv


Tvu

Tv

Hình 6: Khung nhìn bên trong và bên ngồi của một cặp nút

Ý tưởng của giải thuật là chỉ truyền thông tin chi phí kết nối của (x, y) cho các nút kề
(“thông qua bảng Tuv, v là một nút kề”) chỉ khi chi phí này thỏa một trong ba điều kiện
sau


euv ( x, y ) < eu ( x, y )



f u ( y ) = v và ( x, y ) ∈ π u (u , y )

15




∃w : (( x, y ) ∈ π u (u, w) ∧ d uv ( w) > (1 + ε u ( w)) × Du ( w))

Sau khi truyền hết các cập nhật này thì chi phí kết nối tại tất cả các nút sẽ thỏa mãn các
ràng buộc sau:
• Ràng buộc S1: ∀( x, y ) ∈ E euv ( x, y ) ≥ eu ( x, y )
• Ràng buộc S2: ∀w ( f u ( w) = v ) ⇒ ∀( x, y ) ∈ π u (u, w) euv ( x, y ) = eu ( x, y )
• Ràng buộc C1: ∀w d uv ( w) ≤ (1 + ε u ( w)) × Du ( w)


4.4

Hiện thực giải thuật XL

Trong phần này chúng tôi sẽ giới thiệu các loại chi phí kết nối dùng trong định tuyến cho
WMN có thể áp dụng vào giao thức định tuyến DLL-XL và giới thiệu phương pháp hiện
thực giải thuật XL vào trong thiết kế giao thức định tuyến DLL-XL.
4.4.1 Chi phí kết nối
Mỗi một giải thuật định tuyến sẽ thực hiện tối ưu chi phí đường đi dựa trên một loại chi
phí kết nối nhất định (link cost). Đối với giải thuật định tuyến cần được xây dựng, ta có
thể hiện thực sử dụng bất kỳ phương pháp tính chi phí kết nối nào. Các loại chi phí kết nối
thường được dùng trong WMN là:
• Hop-count
Một nút khi có kết nối với một nút khác thì chi phí của kết nối giữa chúng sẽ là 1,
ngược lại chi phí sẽ là ∞ . Đường đi tìm được tối ưu là đường đi có số nút trung
gian nhỏ nhất.
• Thời gian đáp ứng
Chi phí kết nối tính bằng thời gian gửi một gói tin cho đến khi nút nhận nhận được
nó. Thời gian càng nhỏ xem như chi phí càng thấp.
• Năng lượng
Chi phí kết nối tính bằng năng lượng cần để gửi một gói tin từ nút gửi đến nút
nhận. Năng lượng càng nhỏ xem như chi phí càng thấp. Chi phí này thường được
dùng trong mạng khơng dây có năng lượng giới hạn.
4.4.2 Chi tiết
Phần hiện thực sẽ dùng lại các ký hiệu đã được sử dụng ở trên để mô tả một số ý tưởng
của giải thuật XL.
Phần giải thuật cập nhật chạy ở mỗi nút sẽ thực hiện thiết lập các giá trị ban đầu, tính tốn
và cập nhật bảng đường đi cho từng nút cũng như thực hiện gửi thông điệp cập nhật
đường đi (thông điệp TC) cho các nút kề. Các thông số đầu vào cũng như các thông số

đầu ra của giải thuật tại mỗi nút được thể hiện trong Hình 7.

16


e(u, v1 ),..., e(u, v k )

Tv1u ,..., Tv k u

Giải thuật
cập nhật
tại mỗi nút

fu

Tuv1 ,..., Tuvk

thời gian hiện tại

Hình 7: Giải thuật cập nhật đường đi

Ở thời điểm ban đầu khi nút khởi động, vì nút chưa có thơng tin gì về trạng thái của mạng
nên ta sẽ gán chi phí của kết nối giữa hai nút bất kỳ là ∞ . Tức là ta gán Tu ( x, y ) = ∞ và
Tuv ( x, y ) = ∞ , với mọi cạnh (x, y).

Giải thuật cập nhật sẽ tính bảng định tuyến (Bảng 6) cũng như cập nhật cơ sở dữ liệu
thơng tin mạng của mình (Bảng 4 và Bảng 5) và gửi thông tin dùng để tính tốn đường đi
cho các nút kề. Q trình này bao gồm ba bước chính sau
• Bước 1: Cập nhật thông tin khởi đầu
Nút u phải cập nhật lại thông tin mà nút u muốn chia sẻ với nút v từ thơng tin có

sẵn và thơng tin nhận được do nút v gửi cho nút u. Thông tin này phải là thơng tin
mới nhất có thể có. Định dạng thơng tin chia sẻ cho nút kề xem trong Bảng 4. Sau
khi cập nhật thì thơng tin nút u chia sẻ với nút v sẽ giống như thông tin nút v chia
sẻ với nút u.
Tuv ( x, y ) = rec{Tuv ( x, y ), Tvu ( x, y )} , rec là “most recent”

Nút u phải cập nhật lại thông tin mà nó biết về mạng, thơng tin này nhận được
trong q trình khám phá nút kề và thơng tin mà các nút kề chia sẻ với nó. Định
dạng thơng tin mà một nút nắm giữ xem trong Bảng 4.
Tu (u, v) = e(u , v) nếu e(u,v) có thay đổi, nếu e(u,v) khơng có thay đổi thi giữ lại giá

trị cũ.
Đồng thời nút u cũng phải cập nhật lại các thông tin mà các nút kề gửi tới
Tu ( x, y ) = Tuv ( x, y ), y ≠ v .

• Bước 2: Tính tốn bảng định tuyến
Sử dụng thông tin của Tu vừa mới cập nhật ở bước trên để tính bảng định tuyến.
Việc tính tốn dựa trên giải thuật tính cây đường đi ngắn nhất của Dijkstra như các
giải thuật định tuyến khác. Gọi khoảng cách từ u đến w trong cây đường đi ngắn
nhất là d u (w) , nếu d u (w) < ∞ thì gán f u ( w) = v trong đó v là nút kề của u dùng để
đi đến nút w. Ngược lại, d u (w) = ∞ thì gán f u ( w) = NONE .

17


• Bước 3: Truyền thông tin cho các nút kề
Đây là q trình cập nhật Tuv (gửi thơng điệp TC). Việc cập nhật này là có lựa chọn
theo các luật của giải thuật XL. Giao thức chỉ cập nhật (gửi thơng điệp TC) cho
những nút mà chi phí kết nối nó nắm giữ thuộc một trong ba điều kiện sau:
o Nếu chi phí của một cạnh bất kỳ tăng lên, tức là euv ( x, y ) < eu ( x, y ) .

o Nếu nút đó nằm trên cây đường đi ngắn nhất đến một nút bất kỳ khác, hay
f u ( y ) = v và ( x, y ) ∈ π u (u, y ) .
o Nếu một cạnh nằm trên một đường đi ngắn nhất đến w và làm cho chi phí
đường đi đến nút đó tăng lên (1 + ε) lần chi phí đường đi tốt nhất, hay
∃w (( x, y ) ∈ π u (u , w) ∧ d uv ( w) > (1 + ε u ( w)) × d u ( w)) .

Ở đây ta thay chặn dưới của đường đi tối ưu Du (w) bằng chính chi phí
đường đi tối ưu d u (w) . Bởi vì số nút khơng nhiều nên việc tính tốn đường
đi tối ưu khơng mất q nhiều thời gian trong toàn bộ giải thuật. Khi số nút
lớn thì phải thực hiện ước lượng giá trị chặn dưới của đường đi tối ưu
Du (w) bằng các phương pháp xấp xỉ để giảm thời gian thực thi của tồn giải
thuật.
Bước 3 có thể được diễn tả bởi giải thuật sau [12]
1. for all ( x, y ) ∈ E do
Tuv ( x, y ) ← Tuv* ( x, y )

2.
3.

if euv ( x, y ) < eu ( x, y ) then
Tuv ( x, y ) ← Tu ( x, y )

4.
5.
6.

end if
if f u ( y ) = v and ( x, y ) ∈ π u (u, y ) then

Tuv ( x, y ) ← Tu ( x, y )

7.
8.
end if
9. end for
10. for all ( x, y ) ∈ E do
11.
if ∃w : (( x, y ) ∈ π u (u, w) ∧ d uv ( w) > (1 + ε u ( w)) × d u ( w)) then
Tuv ( x, y ) ← Tu ( x, y )
12.
13.
end if
14. end for

4.5

Các tính chất của giải thuật XL

Sau khi chạy giải thuật XL đến khi mạng tĩnh ở một thời điểm nào đó sẽ đảm bảo các tính
chất sau [12, Theorem 1].
• Tính hồn hão (soundness): giải thuật hoàn hão (sound) nghĩa là, với mọi nút u và
v, khi f u (v) ≠ NONE thì tồn tại đường đi φ (u , v) từ u đến v.
18


• Tính đầy đủ: giải thuật đầy đủ khi với mọi nút u và v mà đường đi ngắn nhất
π (u, v) tồn tại thì giá trị f u (v) ≠ NONE .
• Có độ giãn giới hạn (bounded stretch): Một giải thuật có độ giãn 1 + ε khi với mọi
nút khác nhau u và v thì chi phí đường đi giữa u và v trả về bởi giải thuật khơng
vượt q (1 + ε) lần chi phí đường đi tối ưu giữa u và v. Giải thuật XL có độ giãn
là 1 + ε.


5

Thiết kế giao thức định tuyến DLL-XL

Thực hiện giao thức định tuyến ở lớp ba của mơ hình OSI cho WMN có thể gặp một số
vấn đề mà hiện nay có lẽ chưa có phương pháp giải quyết tốt được như [1] đã nêu ra. Tuy
nhiên khi thực hiện định tuyến ở lớp hai của mơ hình OSI thì khơng gặp các vấn đề này.
Hơn nữa thực hiện các dịch vụ của WMN ở lớp hai sẽ giúp cho WMN có khả năng làm
nền cho các dịch vụ cấp cao và kết nối với các mạng khác (như mạng LAN) dễ dàng mà
không cần hiện thực thêm.
Lớp MAC theo draft 802.11s [11, trang 24] được xem như là chuẩn giao tiếp dành cho
WMN trên nền hardware 802.11a/b/g/n. Ta sẽ sử dụng lại lớp MAC thấp của 802.11s và
thiết kế thêm khối chức năng định tuyến mới (Xem Hình 2).
Các kỹ thuật
Ngồi phương pháp hạn chế flooding ở cấp độ giải thuật định tuyến như trong giải thuật
XL, ta còn thực hiện giải pháp đánh dấu độ mới của liên kết (link) để hạn chế thêm những
flooding không cần thiết. Giao thức định tuyến DLL-XL thực hiện đánh dấu chi phí kết
nối (link cost) bằng một số thứ tự để đảm bảo cho các chi phí kết nối nhận được là mới
nhất và ngăn chặn việc truyền những chi phí kết nối cũ hơn.
Trong WMN, việc broadcast khơng tốn nhiều chi phí nhờ sử dụng sóng radio mà khơng
cần đi dây. Do đó, trong giao thức định tuyến DLL-XL các nút sẽ gói các thơng điệp cần
gửi cho từng nút kề vào cùng một thông điệp, rồi thực hiện gửi broadcast để giảm tổng
lượng thông điệp và tiết kiệm tài nguyên kênh truyền. Mỗi nút kề khi nhận được thông
điệp TC sẽ thực hiện thêm công việc lọc ra những thơng tin chi phí kết nối mình cần sử
dụng. Vì các nút chỉ gửi broadcast với TTL = 1 nên sẽ khơng xảy ra tình trạng nghẽn hay
xung đột trong mạng.
Trong mạng không dây, lỗi đường truyền khi gửi/nhận thông điệp tùy thuộc vào mức
năng lượng nhận được và tín hiệu nhiễu của thiết bị khơng dây. Cách thức ước lượng lỗi
đường truyền (tính bằng bit error rate) trong mạng khơng dây có thể xem [18, công thức

5.17]. Để lỗi đường truyền không ảnh hưởng đến giao thức định tuyến DLL-XL, các nút
sẽ gửi lại thông điệp tùy vào thông số lỗi đường truyền của mạng. Khi lỗi đường truyền
lớn thì số lần gửi lại tăng lên, khi lỗi đường truyền thấp thì số lần gửi lại giảm xuống.
Để thực hiện được những yêu cầu trên, mỗi nút phải có cơ sở dữ liệu chia sẻ với từng nút
kề. Thông tin chia sẻ này bao gồm các chi phí kết nối của mạng ở những thời điểm nhất

19


định và được lưu trong một bảng thông tin mạng chia sẻ với nút kề đó (Xem Bảng 4). Mỗi
kết nối đều được đánh số thứ tự để phân biệt độ mới của kết nối (Xem Bảng 2). Mỗi khi
một nút nhận thơng điệp định tuyến thì cần tính tốn bảng định tuyến và thực hiện gửi
thơng điệp nếu cần.
Nhìn chung, so với những giao thức định tuyến proactive khác, thì giao thức định tuyến
DLL-XL cần dung lượng bộ nhớ lớn hơn để lưu trữ thông tin chia sẻ với tất cả nút kề
(một bảng thông tin chia sẻ riêng biệt cho từng nút kề) và phải tính tốn nhiều lần để kiểm
tra điều kiện truyền. Bù lại, giao thức định tuyến DLL-XL giúp giảm bớt tổng lượng
thông điệp cần cập nhật dùng trong định tuyến và có hiện thực đơn giản hơn OLSR.

5.1

Định dạng và chuyển tiếp gói

Các định dạng MAC Frame, gửi broadcast, gửi unicast, và kiểm lỗi đường truyền được
lấy theo thiết kế của draft 802.11s. Phần chi tiết định dạng và chuyển tiếp gói xem Phần 5
trang 24 của draft 802.11s [11].
Ta chỉ thêm vào phần Frame Control hai loại thông điệp là HELLO và TC. Bảng 1 là định
dạng chung của một MAC Frame theo draft 802.11s sử dụng chuẩn 801.11-1999 và mở
rộng thêm trường QoS header của chuẩn 802.11e.
octets:

2
Frame
Control

2
Dur.

6

6

6

2

6

2

3

02312

4

Addr1

Addr2

Addr3


Seq
Control

Addr4

QoS
Control

Mesh
Forwarding
Control

Body

FCS

MAC Header

Bảng 1: Định dạng frame theo draft 802.11s

5.2

Cơ sở dữ liệu

5.2.1 Tập hợp kết nối
Mỗi nút sẽ lưu một tập hợp các kết nối đến các nút kề của nó cũng như tập hợp các con
trỏ đến các bảng thơng tin nó chia sẽ với từng nút kề (Bảng 4).
Mỗi một kết nối đến một nút kề sẽ có một thời gian timeout (L_time). Thời gian timeout
sẽ được cập nhật lại mỗi khi nhận được thông điệp HELLO. Nếu hết thời gian timeout mà

nút không nhận được bất kỳ một thơng điệp HELLO nào thì xem như là kết nối bị đứt;
các thông tin về nút kề này sẽ bị xóa ra khỏi cơ sở dữ liệu.

20


Trường

Mơ tả

L_local_addr

Địa chỉ MAC của chính bản thân nút

L_neighb_addr

Địa chỉ MAC của nút kề có kết nối đến bản thân nút

L_seq

Số thứ tự đánh dấu độ mới của thông điệp

L_neighb_topo

Con trỏ chỉ đến một bảng thông tin mạng chia sẻ với nút kề
L_neighb_addr (Bảng 4)

L_type

Loại kết nối (đối xứng, bất đối xứng hoặc đã mất kết nối)


L_time

Thời gian hiệu lực của thông tin về kết nối (thời gian timeout)

L_link_metric

Giá trị biểu thị cho chi phí của kết nối
Bảng 2: Tập hợp các kết nối đến các nút kề

5.2.2 Tập hợp các nút kề
Mỗi nút sẽ lưu một tập các nút kề có kết nối với nó.
Trường

Mơ tả

N_neighb_addr

Địa chỉ MAC của nút kề

N_willingness

Một số nguyên có giá trị từ 0 đến 7 chỉ độ sẵn sàng làm nút
trung chuyển trong mạng cho các nút khác, dùng trong chế độ
tiết kiệm năng lượng
Bảng 3: Tập hợp các nút kề

5.2.3 Tập hợp thông tin mạng của một nút chia sẻ với một nút kề
Đây là một tập hợp thơng tin chi phí kết nối trong mạng mà một nút muốn chia sẻ với một
nút kề. Ứng với mỗi nút kề phải có một bảng thông tin chia sẻ tương ứng. Thông tin mà

nút u chia sẻ với nút v phải đảm bảo giống với thông tin mà nút v chia sẻ với nút u. Các
nút đảm bảo được điều này bằng cách trao đổi thông điệp TC với nhau. Dựa vào bảng này
và bảng thông tin mạng của bản thân nút mà nút xác định được những thơng tin chi phí
kết nối nào cần cập nhật cho nút kề (gửi thông điệp TC).

21


Trường

Mô tả

N_source_addr

Địa chỉ MAC nút nguồn của một kết nối

N_dest_addr

Địa chỉ MAC nút đích của một kết nối

N_seq

Số thứ tự đánh dấu độ mới của chi phí kết nối

N_link_metric

Giá trị biểu thị cho chi phí của kết nối
Bảng 4: Tập hợp thông tin mạng chia sẻ với một nút kề

5.2.4 Tập hợp thông tin mạng của nút

Mỗi nút sẽ lưu những hiểu biết của nó về chi phí kết nối của mạng. Thông tin này được
cập nhật thông qua quá trình khám phá nút kề và gửi thơng điệp TC. Thơng tin này được
dùng để tính tốn bảng định tuyến và sẽ gửi cho các nút kề nếu cần thiết. Dựa vào bảng
này và bảng thông tin chia sẻ với nút kề (Bảng 4) mà nút xác định được những thông tin
nào cần cập nhật cho từng nút kề.
Trường

Mô tả

L_source_addr

Địa chỉ MAC nút nguồn của một kết nối.

L_dest_addr

Địa chỉ MAC nút đích của một kết nối.

L_seq

Số thứ tự đánh dấu độ mới của chi phí kết nối.

L_link_metric

Giá trị biểu thị cho chi phí của kết nối
Bảng 5: Tập hợp thơng tin mạng của bản thân nút

5.2.5 Bảng định tuyến
Mỗi nút sẽ tính tốn và lưu giữ một bảng định tuyến giữ đường đi đến các nút khác trong
mạng. Bảng định tuyến được cập nhật lại khi nhận được thông điệp TC và được dùng
trong q trình chuyển tiếp gói.

Trường

Mơ tả

R_dest_addr

Địa chỉ MAC nút đích

N_next_addr

Địa chỉ MAC nút kề dùng để đi đến nút đích

R_last_addr

Địa chỉ MAC nút cuối cùng trong đường đi dùng để đi đến nút
đích

R_dist

Số lượng nút cần đi qua để đến đích

R_metric

Giá trị biểu thị cho chi phí của đường đi đến đích
Bảng 6: Bảng thơng tin đường đi
22


5.2.6 Định dạng thông điệp TC
Thông điệp TC dùng để truyền các chi phí kết nối mà nút nắm giữ cho các nút kề của nó.

Định dạng thơng điệp TC được mô tả trong Bảng 7.
List of (T_begin_addr, T_endaddr, T_neigh, T_metric, T_seq)
Bảng 7: Định dạng thông điệp TC

T_source_addr: địa chỉ MAC của nút gửi thông điệp TC.
List of (T_begin_addr, T_endaddr, T_neigh, T_metric, T_seq): là một danh sách bộ năm
gồm giá trị địa chỉ MAC bắt đầu của một cạnh, địa chỉ MAC kết thúc một cạnh, địa chỉ
MAC của nút kề sẽ sử dụng thơng tin này để tính tốn đường đi, chi phí kết nối và số thứ
tự đánh dấu độ mới chi phí của kết nối.

5.3

Định dạng, gửi và xử lý thông điệp HELLO

Thông điệp HELLO được gửi broadcast định kỳ trong mạng với TTL = 1 nhằm mục đích
khám phá nút kề, bảo trì bảng kết nối đến các nút kề cũng như thực hiện tính chi phí kết
nối từ bản thân nút đến các nút kề.
5.3.1 Định dạng thông điệp HELLO
Thông điệp HELLO được gửi trong các gói (packet) điều khiển định dạng như ở Bảng 1.
Phần dữ liệu (body) của gói này chính là thơng điệp HELLO gồm có một danh sách các
địa chỉ MAC của các nút kề kèm theo giá trị Willingness của nó như trong Bảng 3.
Neighbor address là địa chỉ của nút kề của nó, Willingness là giá trị dùng trong tiết kiệm
năng lượng cho biết nút kề đó có “vui lịng” chuyển tiếp dữ liệu cho nó hay khơng.
Message Header
1 byte
Message
Type

2 bytes
Message

Length

Message Body
6 bytes

1 byte

6 bytes

1 byte

Neighbor
Neighbor
Willingness
Willingness
address
address




Bảng 8: Định dạng thông điệp HELLO

5.3.2 Gửi thông điệp HELLO
Thông điệp HELLO được gửi định kỳ lặp lại sau một khoảng thời gian
HELLO_INTERVAL. Thông điệp HELLO được gửi broadcast với TTL = 1.
5.3.3 Xử lý thông điệp HELLO
Khi nút nhận được thông điệp với trường loại thơng điệp (Message Type) là HELLO thì
nút phải xử lý thông điệp này.
23



Nếu bảng danh sách nút kề (Bảng 3) chưa có thơng tin về nút gửi thơng điệp HELLO thì
nút này phải thêm nút đã gửi thông điệp HELLO vào bảng danh sách nút kề (Bảng 3)
cũng như bảng kết nối đến các nút kề (Bảng 2).
Nếu mà trong phần nội dung thơng điệp HELLO có một trường Neighbor address bằng
với địa chỉ của bản thân nút thì nút tạo kết nối đối xứng SYMMETRIC đến nút gửi thông
điệp HELLO. Ngược lại nút này sẽ tạo kết nối bất đối xứng ASYMMETRIC đến nút đó.
Mỗi lần nhận được thơng điệp HELLO nút cũng phải cập nhật lại giá trị của L_time và
dùng giá trị này để kiểm tra giá trị timeout của liên kết đến các nút kề. L_time =
CURRENT_TIME + 4 × HELLO_INTERVAL. Nghĩa là sau khoảng thời gian timeout
bằng 4 chu kỳ gửi thông điệp HELLO nếu như nút khơng nhận được thơng điệp HELLO
từ nút kề này thì sẽ xóa thơng tin về nút kề này cũng như liên kết đến nút kề này.

5.4

Định dạng, gửi và xử lý thông điệp TC

Thông điệp TC dùng để truyền các hiểu biết về mạng của một nút cho các nút khác trong
mạng dùng trong việc tính tốn bảng định tuyến. Tất cả các thông điệp TC đều sử dụng
phương thức gửi broadcast.
5.4.1 Định dạng thông điệp TC
Thông điệp TC được gửi trong các gói (packet) điều khiển định dạng như ở Bảng 1. Phần
dữ liệu (body) của gói này chính là thông điệp TC. Dữ liệu của thông điệp TC gồm có
một danh sách các bộ giá trị như trong Bảng 7.
Begin address là địa chỉ MAC nút bắt đầu của kết nối, End address là địa chỉ nút kết thúc
của kết nối, Neighbor address là địa chỉ nút kề sẽ sử dụng thơng tin này, Metric là chi phí
của kết nối và Seq là số thứ tự chỉ độ mới của kết nối.
Message Header


Message Body

1 byte

2 bytes

6 bytes

6 bytes

6 bytes

4 bytes

2 bytes

Message
type

Message
length

Begin
address

End
address

Neighbor
address


Metric

Seq



Bảng 9: Định dạng thông điệp TC

Nếu số lượng kết nối quá lớn, vượt hơn MAX_LINK_PER_MESSAGE thì phải chia nhỏ
nội dung thông điệp TC ra và gửi nhiều lần.
5.4.2 Gửi thơng điệp TC
Khi có bất kỳ sự thay đổi nào trong bảng thông tin dành cho nút hoặc bảng thơng tin chia
sẻ với nút kề thì nút phải thực hiện tính tốn và gửi thơng điệp TC. Việc tính tốn và gửi
thơng điệp TC như sau.

24


Ứng với từng nút kề trong bảng nút kề (Bảng 3) nút quét lần lượt tất cả các liên kết trong
bảng thông tin mạng của nút (Bảng 5), so sánh với bảng thơng tin chia sẻ với nút kề đó
(Bảng 4) và kiểm tra theo ba ràng buộc S1, S2 và C1. Nếu có bất kỳ một kết nối nào vi
phạm một trong ba ràng buộc trên thì thêm một trường vào thơng điệp TC dành cho nút
kề đó.
Sau khi kiểm tra hết các kết nối trong bảng thông tin mạng của nút (Bảng 5) nếu TC chứa
nhiều hơn một liên kết thì gửi broadcast thơng điệp TC với TTL = 1.
Việc gửi thơng điệp TC có thể được mơ tả như sau
for all v in Neighbour Table
for all (x, y) in Internal Table
if external_metric(x, y) < internal_metric(x, y)

add internal_metric(x, y) to TC message for v
end if
if (x, y) in shortest_path to y and next_node(y) = v
add internal_metric(x, y) to TC message for v
end if
if (x, y) in shortest_path from u to v
and external_metric(u, v) > (1 + ε) × internal_metric(u, v)
add internal_metric(x, y) to TC message for v
end if
end for
end for
send_broadcast TC message
Để đảm bảo thông điệp TC được gửi đến tất cả các nút kề, ta sẽ thực hiện gửi
TC_NUM_RETRY lần tùy vào giá trị lỗi đường truyền lớn hay nhỏ.
5.4.3 Xử lý thông điệp TC
Mỗi nút khi nhận được thơng điệp có trường loại thơng điệp (Message Type) là TC thì nút
phải xử lý thơng điệp TC.
Nút nhận được thông điệp TC trước tiên lọc ra những trường dành cho mình (có Neighbor
address của TC = địa chỉ MAC của nút) và sau đó xử lý theo các bước sau
• Bước 1: Cập nhật lại bảng thơng tin mạng dành cho nút kề
Nút sẽ cập nhật lại bảng thông tin dành cho nút kề (Bảng 4) tương ứng với nút đã
gởi thơng điệp TC. Q trình này là nhằm đồng bộ thông tin mà hai nút chia sẻ với
nhau, đảm bảo cho thông tin nút u chia sẻ cho nút v giống như thông tin nút v chia
sẻ cho nút u.
o Nếu như kết nối (Begin address, End address) chưa có trong bảng thơng tin
dành cho nút kề thì nút sẽ thêm trường (Begin address, End address, Metric,
Seq) vào trong bảng thông tin dành cho nút kề.

25



×