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

dynamic source routing (dsr) giao thức định tuyến nguồn động

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 (780.35 KB, 50 trang )

1
Lời Mở Đầu
Ngày nay với sự phát triển nhanh chóng của công nghệ, các thiết bị di động trởi
nên vô cùng phổ biến, hỗ trợ tối đa mọi tiện ích cho con người. Điều này chính là động
lực phát triển nhiều loại hình mạng và dịch vụ. Trong số các loại hình mạng đó thì Ad
hoc được sự quan tâm đặc biệt vì các tính năng nổi bật như:
- Không sử dụng cơ sở hạ tầng.
- Các nút mạng có thể di chuyển tùy ý.
- Đáp ứng các yêu cầu trong điều kiện môi trường đặc biệt như chiến tranh,
thám hiểm, nơi thiên tai, hỏa hoạn…
Nhưng chính các đặc điểm đó đã tạo nên nhiều thách thức cho Ad hoc trong
môi trường truyền thông. Việc đảm bảo chất lượng truyền tin trong mạng Ad hoc là
vấn đề cần được quan tâm. Trong các mạng cố định, định tuyến là vấn đề không thể
thiếu thì Ad hoc là 1 mạng không dây, định tuyến động là cơ chế quan trọng ảnh
hưởng trực tiếp tới chất lượng dịch vụ. Ở đây ta tìm hiểu chính là cơ chế định tuyến
nguồn động không dây(Dynamic Source Routing:DSR) 1 giao thức được sử dụng
trong mạng Ad hoc. Cụ thể là tìm hiểu các cơ chế hoạt động của DSR.
2
Chương 1: Tìm hiểu Định tuyến
1.1. Tổng quan định tuyến
Định tuyến đơn giản chỉ là tìm đường đi từ mạng này đến mạng khác. Thông tin
về những con đường này có thể là được cập nhật tự động từ các bộ định tuyến khác
hoặc là do người quản trị mạng chỉ định cho bộ định tuyến.
Người quản trị mạng khi chọn lựa một giao thức định tuyến động cần cân nhắc một số
yếu tố như: độ lớn của hệ thống mạng, băng thông các đường truyền, khả năng của bộ
định tuyến, loại bộ định tuyến và phiên bản bộ định tuyến, các giao thức đang chạy
trong hệ thống mạng.
Bộ định tuyến là thiết bị trong mạng có vai trò kết nối, định tuyến và vận chuyển dữ
liệu từ net này sang net khác. Bộ định tuyến còn có chức năng ngăn chặn các gói tin
Broadcast giữa các NetWork.
• Bộ định tuyến có hai loại:


o Bộ định tuyến phần cứng: Thiết bị phần cứng chuyên dụng dùng làm bộ
định tuyến. Hiện có các hãng nổi tiếng như Cisco, Juniper…
o Bộ định tuyến phần mềm: là phần mềm cài thêm vào PC để PC thành bộ
định tuyến. Chẳng hạn như Định tuyến and Remote Access trên
Windows Server.
1.2. Nguyên lý dẫn đường của Bộ định tuyến
Tuyến đường trên bộ định tuyến gồm các yếu tố sau:
• Interface: Gói tin đi ra bằng cổng nào (card mạng nào trên bộ định tuyến)
• Destination, Network mask: Gói tin sẽ đi tới network nào.
• GateWay: Địa chỉ IP của bộ định tuyến kế tiếp trên đường đi.
3
• Thước đo: độ ưu tiên
1.3. Các thuật ngữ
Giao thức định tuyến
Giao thức định tuyến: là ngôn ngữ để một bộ định tuyến trao đổi với bộ
định tuyến khác để chia sẻ thông tin định tuyến về khả năng đến được cũng như
trạng thái của mạng.
Được cài đặt tại các Bộ định tuyến, chúng được sử dụng để: xây dựng
nên bảng định tuyến để đảm bảo rằng tất cả các Bộ định tuyến đều có bảng gọi
là bảng định tuyến (Bảng định tuyến) tương thích nhau cũng như đường đi đến
các mạng phải được xác định trong bảng định tuyến.
Vùng tự trị AS (Autonomous System)
Mạng Internet được chia thành các vùng nhỏ hơn gọi là các vùng tự trị
(Autonomous System – AS ). AS bao gồm một tập hợp các mạng con được kết
nối với nhau bởi Bộ định tuyến. Một hệ thống AS thông thường thuộc quyền sử
hữu của một công ty hay nhà cung cấp dịch vụ Internet (ISP). Và để các hệ
thống AS này kết nối được với nhau, nhà quản lý phải đăng ký với cơ quan
quản trị mạng trên Internet (Inter NIC) để lấy được một số nhận dạng AS cho
riêng mình. Bên trong mỗi AS, các nhà quản lý có quyền quyết định loại Bộ
định tuyến cũng như giao thức định tuyến cho hệ thống của mình.

Bảng định tuyến
Một host hay một Bộ định tuyến phải xem xét bảng định tuyến của mình
trước khi chuyển gói tin đến địa chỉ ở xa. Bảng này được gán tương ứng mỗi
địa chỉ đích với một địa chỉ Bộ định tuyến cần đến ở chặng tiếp theo.Bảng địa
chỉ đích trong bảng có thể bao gồm các địa chỉ mạng, mạng con, các hệ thống
4
độc lập. Trong bảng định tuyến có thể bao gồm một tuyến mặc định, được biểu
diễn bằng địa chỉ 0.0.0.0.
Bảng định tuyến của mỗi giao thức định tuyến là khác nhau, nhưng có
thể bao gồm nhữnh thông tin sau :
• Địa chỉ đích của mạng, mạng con hoặc hệ thống.
• Địa chỉ IP của Bộ định tuyến chặng kế tiếp phải đến.
• Giao tiếp vật lý phải sử dụng để đi đến Bộ định tuyến kế tiếp.
• Mặt nạ mạng của địa chỉ đích.
• Khoảng cách đến đích (thí dụ : số lượng chặng để đến đích).
• Thời gian (tính theo giây) từ khi Bộ định tuyến cập nhật lần cuối.
Khoảng cách quản lý (Administrative Distance (AD))
Administrative Distance được sử dụng để đánh giá độ tin cậy của thông
tin định tuyến mà Bộ định tuyến nhận từ Bộ định tuyến hàng xóm. AD là một
số nguyên biến đổi từ : 0 đến 255; 0 tương ứng với độ tin cậy cao nhất và 255
có nghĩa là không có lưu lượng đi qua tuyến này (tức là tuyến này không được
sử dụng để vận chuyển thông tin của người sử dụng). Tức là khi một Bộ định
tuyến nhận được một thông tin định tuyến, thông tin này được đánh giá và một
tuyến hợp lệ được đưa vào bảng định tuyến của Bộ định tuyến. Thông tin định
tuyến được đánh giá dựa vào AD, giả sử Bộ định tuyến được cài đặt nhiều hơn
một giao thức định tuyến thì giao thức định tuyến nào có AD nhỏ hơn sẽ được
Bộ định tuyến sử dụng.
Mối giao thức định tuyến có tưng ứng một giá trị AD:
• Directly 0
• Định tuyến tĩnh1

5
• RIP 120
• OSPF 110
• IGRP 100
1.4. Các thành phần của định tuyến
Định tuyến là quá trình chuyển tiếp packet từ một mạng này sang mạng khác.
Chúng chuyển tiếp packet như thế nào?
Thứ nhất: bạn cần phải biết logical address là gì? Địa chỉ logic được sử dụng để
xác định host thuộc mạng nào.
Thứ hai: Sau khi nhận gói tin từ một interface nó sẽ quyết định đẩy gói tin ra
interface tương ứng, để chuyển tiếp gói tin đi.
Để đưa ra quyết định chính xác bộ định tuyến phải thực hiện được 3 nhiệm vụ
sau:
Bộ định tuyến xác định xem lưu lượng mà nhận hoặc gửi chạy giao thức lớp
mạng nao? IP, IPX hay AppleTalk.
Tiếp theo sẽ kiểm tra xem địa chỉ mạng đích có trong bảng định tuyến hay
không. Nếu không tìm thấy đường đến mạng đích đó trong bảng định tuyến, bộ định
tuyến sẽ discard gói tin đó và gửi một gói ICMP network unreachable về host nguồn
đã gửi gói tin.
Nếu tìm thấy trong bảng định tuyến tuyến đường tới mạng đích bộ định tuyến
sẽ forward gói tin ra interface tưng ứng. Bộ định tuyến sẽ đẩy gói tin đó ra buffer của
interface đó. Tiếp theo kiểu encapsulation (đóng gói) của frame lớp 2 của interface đó.
Nếu là Ethernet thì chạy ARP để lấy địa chỉ lớp 2 là MAC, còn nếu là Frame-Relay thì
chạy Inverse ARP hoặc static map để tìm DLCI. Cuối cùng Outbound interface sẽ đưa
frame xuống phương tiện truyền dẫn và forward thông tin đến next hop.
Gói tin sẽ tiếp tục được sử lý cho đến đích cuối cùng.
6
Bảng định tuyến
Bảng định tuyến là một bảng chứa các tuyến đường đến các mạng mà người
quản trị cấu hình. Các bảng này được tạo ra bằng tay theo ý muốn của người quản trị

hay bằng cách trao đổi thông tin định tuyến với các bộ định tuyến khác.
Xây dựng bảng định tuyến (Populating the Bảng định tuyến)
Trước khi tuyến đường được đưa vào bảng định tuyến, bộ định tuyến phải học
về những tuyến đường đó. Có hai cách để học tuyến đường:
• Statically defining a route
• Dynamically learning a route
Quyết định tuyến đường nào sẽ được lưu vào bảng định
tuyến(The Final Decision on What Routes Populate the Routing
Table)
Administrative distance và thước đo là hai nhân tố quyết định tuyến đường nào
sẽ được lưu vào bảng định tuyến. Nhân tố đầu tiên xét đến là AD, AD là độ tin cậy của
giao thức định tuyến mà tìm ra tuyến đường. Nếu có nhiều hơn tuyến đường tới đích
thì tuyến đường nào có AD nhỏ hơn sẽ được đưa vào bảng định tuyến. Nếu các tuyến
đường đó có cùng AD thì nhân tố thứ 2 được xét đến chình là thước đo.
Thước đo là giá trị của tuyến đường cụ thể của một giao thức định tuyến nào
đó. Nếu có nhiều hơn một tuyến đường đến đích có cùng AD (cùng giao thức định
tuyến) thì tuyến nào có thước đo tốt hơn sẽ được đưa vào bảng định tuyến. Nếu chúng
có cùng AD và thước đo thì tuỳ từng giao thức định tuyến cụ thể mà số lượng tuyến
đường được đưa vào bảng định tuyến là khác nhau.
1.5. Định tuyến Tĩnh
Giới thiệu về định tuyến tĩnh
7
Định tuyến là quá trình mà bộ định tuyến thực hiện để chuyển gói dữ liệu tới
mạng đích. Tất cả các bộ định tuyến dọc theo đường đi đều dựa vào địa chỉ IP đích của
gói dữ liệu đểchuyển gói theo đúng hướng đến đích cuối cùng. Để thực hiện được điều
này ,bộ định tuyến phải học thông tin về đường đi tới các mạng khác. Nếu bộ định
tuyến chạy định tuyến động thì bộ định tuyến tự động học những thông tin này từ các
bộ định tuyến khác. Còn nếu bộ định tuyến chạy định tuyến tĩnh thì người quản trị
mạng phải cấu hình các thông tin đến các mạng khác cho bộ định tuyến.
Đối với định tuyến tĩnh, các thông tin về đường đi phải do người quản trị mạng

nhập cho bộ định tuyến. Khi cấu trúc mạng có bất kỳ thay đổi nào thì chính người
quản trị mạng phải xoá hoặc thêm các thông tin về đường đi cho bộ định tuyến. Những
loại đường đi như vậy gọi là đường đi cố định. Đối với hệ thống mạng lớn thì công
việc bảo trì mạng định tuyến cho bộ định tuyến như trên tốn rất nhiều thời gian. Còn
đối với hệ thống mạng nhỏ, ít có thay đổi thì công việc này đỡ mất công hơn. Chính vì
định tuyến tĩnh đòi hỏi người quản trị mạng phải cấu hình mọi thông tin về đường đi
cho bộ định tuyến nên nó không có được tính linh hoạt như định tuyến động .Trong
những hệ thống mạng lớn, định tuyến tĩnh thường được sử dụng kết hợp với giao thức
định tuyến động cho một số mục đích đặc biệt.
Hoạt động của định tuyến tĩnh
Hoạt động của định tuyến tĩnh có thể chia ra làm 3 bước như sau:
• Đầu tiên, người quản trị mạng cấu hình các đường cố định cho bộ định
tuyến.
• Bộ định tuyến cài đặt các đường đi này vào bảng định tuyến.
• Gói dữ liệu được định tuyến theo các đường cố định này.
Người quản trị mạng cấu hình đường cố định cho bộ định tuyến bằng lệnh ip
route. Cú pháp của lệnh iproute
8
Cấu hình đường cố định
Sau đây là các bước để cấu hình đường cố định :
• Xác định tất cả các mạng đích cần cấu hình, subnet mask tương ứng và
gateway tương ứng. Gateway có thể là địa chỉ của trạm kế tiếp để đến
được mạng đích .
• Vào chế độ cấu hình toàn cục của bộ định tuyến.
• Nhập lệnh ip route với địa chỉ mạng đích, subnet mask tương ứng và
gateway tương ứng mà bạn đã xác định ở bước 1.
• Lặp lại bước 3 cho những mạng đích khác
• Thoát khỏi chế độ cấu hình toàn cục
1.6. Định tuyến Động
Giới thiệu về định tuyến động

Giao thức định tuyến khác với giao thức được định tuyến cả về chức năng và
nhiệm vụ. Giao thức định tuyến được sử dụng để giao tiếp giữa các bộ định tuyến với
nhau. Giao thức định tuyến cho phép bộ định tuyến này chia sẻ các thông tin định
tuyến mà nó biết cho các bộ định tuyến khác. Từ đó, các bộ định tuyến có thể xây
dựng và bảo trì bảng định tuyến của nó.
Sau đây là một số giao thức định tuyến :
• Định tuyến information Protocol(RIP)
• Interior Gateway Routing Protocol (IGRP)
• Enhanced Inteior Gateway Routing Protocol(EIGRP)
9
• Open Shortest Path First(OSPF)
Đặc điểm chính của RIP
• Là giao thức định tuyến theo vectơ khoảng cách
• Sử dụng số lượng hop để làm thông số chọn đường đi
• Nếu số lượng hop để tới đích lớn hơn 15 thì gói dữ liệu sẽ bị huỷ bỏ
• Cập nhật theo định kỳ mặc định là 30 giây
Cấu hình RIP
Để cấu hình giao thức định tuyến RIP, cần cấu hình trong chế độ cấu hình toàn
cục và cài đặt các đặc điểm định tuyến.
Đầu tiên, tại chế độ cấu hình toàn cục, cần khởi động giao thức định tuyến RIP
bằng lệnh
Bộ định tuyến(config)#bộ định tuyến rip
Sau đó, trong chế độ cấu hình định tuyến, công việc chính là khai báo địa chỉ
IP. Định tuyến động thường sử dụng broadcast và multicast để trao đổi thông tin giữa
các bộ định tuyến. Bộ định tuyến sẽ dựa vào thông số định tuyến để chọn đường tốt
nhất tới từng mạng đích.
Lệnh bộ định tuyến dùng để khởi động giao thức định tuyến .
Lệnh network dùng để khai báo các cổng giao tiếp trên bộ định tuyến mà ta
muốn giao thức định tuyến gửi và nhận các thông tin cập nhật về định tuyến. Cụ thể
Bộ định tuyến(config-bộ định tuyến)#network địa_chỉ_mạng

Trong đó địa chỉ mạng khai báo trong câu lệnh network là địa chỉ mạng theo
lớp A, B, hoặc C chứ không phải là địa chỉ mạng con (subnet) hay địa chỉ host riêng lẻ
.
10
Chương 2: Định Tuyến Nguồn Động (Dynamic Soucre
Routing: DSR)
11
2.1. Tổng quan về DSR
Giao thức định tuyến nguồn động DSR là một giao thức định tuyến đơn giản và
hiệu quả, được thiết kế đặc biệt để sử dụng mạng tùy biến không dây multi-hop của
các nút di động. DSR giúp mạng có khả năng tự cấu hình và tự tổ chức mà không yêu
cầu sự tồn tại của cơ sở hạ tầng mạng hoặc quản trị mạng. Các nút mạng phối hợp với
nhau để chuyển tiếp các gói dữ liệu cho nút khác. Khi các nút trong mạng di chuyển,
tham gia vào mạng, rời khỏi mạng, hay môi trường mạng không dây bị nhiễu thì tất cả
các tuyến đường trong mạng tự động được xác định và duy trì bằng giao thức DSR
Giao thứ DSR gồm 2 cơ chế chủ yếu làm việc với nhau cho phép phát hiện và
duy trì định tuyến nguồn trong mạng tùy biến:
• Phát hiện đường đi Route Discovery (RD): Là cơ chế tìm đường khi nút gốc
1 muốn gửi gói dữ liệu tới nút đích 9 nhưng chưa biết đường đi
• Duy trì đường đi Route Maintenance (RM): Là cơ chế trong đó nút S có khả
năng tìm đường đi mới khi đường truyền đang sử dụng bị gián đoạn do cấu
hình mạng bị thay đổi hoặc kết nối giữa các nút trong đường truyền không
hoạt động. Khi phát hiện đường truyền cũ bị đứt, 1 có thể tìm một đường
truyền khác đến 9 mà nó biết hoặc thực hiện cơ chế RD để tìm ra đường đi
mới
Trong DSR, mỗi cơ chế duy trì và phát hiện đường truyền hoạt động hoàn toàn
“theo yêu cầu” (on demand). Đặc biệt không giống giao thức khác, DSR không yêu
cầu các gói gửi theo định kỳ dưới bất kỳ hình thức và tầng nào trong mang. Ví dụ:
DSR không sử dụng sự quảng bá định tuyến nào theo định kỳ, khả năng phán đoán
trạng thái liên kết, hoặc các gói dò tìm lân cận nào, và không phụ thuộc vào các chức

năng từ bất gì giao thức cơ sở nào trong mang. Cách hoạt động hoàn tào theo yêu cầu
này và không có sự hoạt động theo dịnh kỳ cho phép số cá gói dữ liệu xuống mức
không, khi tất cả các nút dường như đứng một chỗ đối với nahu và tất cả các tuyến
đường cần cho truyền thông hiện tại đã được phát hiện.
Khi một nút nguồn A cần gửi một gói tin tới nút đích E, A ghi thứ tự các bước
đi trong cả đường đi tới E vào phần thông tin header của gói tin. Thông thường, S sẽ
12
lấy thông tin về đường đi thích hợp tới D bằng cách tìm trong bộ nhớ các đường đi
được lưu lại từ những lẫn đi trước (Route Cache) các nút. Nếu không tìm thấy, S khởi
tạo cơ chế RD để tìm đường đi. Trong trường hợp này, S được gọi là gốc (initiator) và
D là đích (target) của cơ chế RD.
Để bắt đầu cơ chế RD, nút A truyền một yêu cầu định tuyến (Route Request:
RReq) như một gói tin dạng quảng bá, thông tin được nhận bởi hầu hết các nút trong
phạm vi truyền thông không dây hiện tại nút A.
Mỗi yêu cầu định tuyến chứa nhận dạng gốc và đích duy nhất của cơ chế RD.
Mỗi yêu cầu định tuyến cũng chứa một bản ghi địa chỉ các nút trung gian gọi là
bản ghi định tuyến (route record).
Khi nút khác nhận yêu cầu định tuyến này (như nút B trong ví dụ), nếu nó là
đích của quá trình RD, nó sẽ trả về một định hồi định tuyến (Route Reply: RRep) tới
nút gốc của quá trình RD, kèm theo một bản sao chép của bản ghi định tuyến thu thập
được từ yêu cầu định tuyến, khi nút gốc nhận phản hồi định tuyến này, nó lưu trữ
tuyến đường trong bộ nhớ đệm định tuyến (Route Cache) để sử dụng gửi những gói
giữ liệu sau tới đích này.
Nếu nút này nhận yêu cầu định tuyến mà nó đã thấy thông điệp định tuyến này
gần đây từ cùng một gốc mang cùng yêu cầu và địa chỉ đích (cùng một nhận dạng
trong header), nút này sẽ loại bỏ yêu cầu định tuyến đó. Mặt khác, nút này sẽ viết thêm
vào bản ghi định tuyến (route record) trong yêu cầu định tuyến (RReq) địa chỉ của
chính nó và truyền yêu cầu định tuyến này đi như một gói quảng bá cục bộ (với cùng
một yêu cầu).
13

Quá trình tìm đường của ROUTE REQUEST
Quá trình gửi trả lại phản hồi định tuyến tới nút gốc của quá trình RD, như
trong ví dụ, nút E trả lời lại nút A, nút E sẽ kiểm tra bộ lưu trữ định tuyến của nó để
tìm một tuyến đường trở về A, và nếu tìm thấy, nó sẽ sử dụng định tuyến nguồn đó để
truyền gói dữ liệu chứa bản phản hồi định tuyến. Mặt khác, E có thể thực thi cơ chế
RD của nó với đích là A, nhưng để tránh sự đệ qui vô hạn của cơ chế RD, nó phải
mang phản hồi định tuyến này trong gói chứa yêu cầu định tuyến của chính nó tới A.
Nếu A có trong bảng lưu trữ định tuyến của nó tuyến đường khác tới E (ví dụ từ
những phản hồi định tuyến được thêm vào từ cơ chế RD trước đó của nó, hoặc từ
thông tin định tuyến đầy đủ lắng nghe được từ các gói tin khác), nó có thể thi hành
một cơ chế RD mới tới đích này.
14
Quá trình tìm đường của ROUTE REPLY
2.2. Đặc điểm mở rộng của DSR
Những đặc điểm mở rộng của cơ chế phát hiện đường truyền RD
Lưu trữ thông tin định tuyến lắng nghe được.
• Một nút chuyển tiếp hoặc lắng nghe được bất kỳ gói tin nào có thể thêm tất
cả những thông tin định tuyến hữu ích từ gói tin đó vào bộ lưu trữ định
tuyến của nó.
Phản hồi lại những yêu cầu định tuyến sử dụng bảng lưu trữ các định tuyến.
• Một nút nhận một yêu cầu định tuyến mà nó không phải là đích đến, nó sẽ
tìm trong bảng lưu trữ định tuyến của nó một tuyến đường tới đích của yêu
cầu. Nếu tìm thấy, nút sẽ trả về một phản hồi định tuyến tới nút nguồn chứ
không chuyển tiếp yêu cầu định tuyến.
15
Cơ chế ngăn chặn những cơn bão phản hồi định tuyến.
• Việc các nút phản hồi lại một yêu cầu định tuyến dựa trên thông tin trong
các bảng lưu trữ định tuyến của chúng, có thể dẫn đến kết quả là một cơn
“bão” phản hồi định tuyến trong một số trường hợp. Như ví dụ ở dưới, các
nút B,C,D,E và F tất cả đều nhận yêu cầu định tuyến từ nút A để tìm đến

đích G, và mỗi nút này đều có tuyến đường được lưu trữ chỉ đích này: các
nút sẽ cố gắng gửi trả về một RRep do đó làm lãng phí băng thông và có thể
có thể là nguyên nhân gây ra tắc nghẽn cục bộ trong mạng không dây và có
thể tạo ra các xung đột gói tin giữa một số hoặc toàn bộ các sự phản hồi này
nếu giao thức tầng MAC đang sử dụng không cung cấp các biện pháp tránh
xung đột đủ mạnh cho các gói tin này.
• Ngoài ra, nó sẽ thường bị rơi vào trường hợp các sự phản hồi khác nhau sẽ
chỉ ra các tuyến đường có chiều dài khác nhau.
• Các nút có thể trì hoãn việc gửi các phản hồi định tuyến của chính nó theo
một chu kỳ ngắn, trong khi đang lắng nghe để phát hiện nếu nút nguồn bắt
16
đầu sử dụng một tuyến đường ngắn hơn. Đặt biệt, nút này có thể trì hoãn
việc gửi phản hồi định tuyến của nó theo một chu kỳ ngẫu nhiên: d=H*(h-
1+r)
• Trong đó h là chiều dài tính theo số hop trong mạng của tuyến đường được
trả về trong phản hồi định tuyến của nút này, r là một số thực ngẫu nhiên
giữa 0 và 1, và H là một hằng số trì hoãn nhỏ
Giới hạn số hop yêu cầu định tuyến
• Mỗi thông điệp định tuyến chứa “một giới hạn số hop” là số mà có thể
được sử dụng để giới hạn số các nút trung gian cho phép chuyển tiếp bản
sao chép của yêu cầu định tuyến. Giới hạn số hop này được thực hiện bằng
cách sử dụng vùng thời gian sống (Time-to-Live:TTL) trong tiều đề của gói
tin mang yêu cầu định tuyến. Khi yêu cầu định tuyến được chuyển tiếp giới
hạn này bị giảm bớt đi, và gói tin mang yêu cầu định tuyến sẽ bị loại bỏ nếu
giới hạn này giảm xuống 0 trước khi tìm thấy đích đến.
Những đặc điểm mở rộng của cơ chế duy trì đường truyền MD
Cứu các gói tin
• Khi một nút trung gian chuyển tiếp một gói tin thông qua cơ chế duy trì
đường truyền (Route Maintenance: RM) dò ra hop tiếp theo dọc theo tuyến
đường của gói tin bị gián đoạn, nếu nút có tuyến đường khác để đến đích

của gói tin trong bảng lưu trữ định tuyến của nó, nút có thể “cứu” gói tin
hơn là loại bỏ chúng. Để cứu một gói tin, nút thay thế tuyến đường nguồn
ban đầu trong gói bằng một tuyến đường trong bảng lưu trữ định tuyến của
nó.
• Khi cứu một gói tin, một số đếm được duy trì trong gói tin để cho biết số lần
gói tin được cứu, để ngăn cản một gói tin đơn khỏi trường hợp được cứu vô
tận (vĩnh viễn). Ngoài ra khi nút thông qua cớ chế RM dò tìm ra hop tiếp
17
theo dọc theo tuyến đường truyền một gói tin mà nó đang chuyển tiếp bị
gián đoạn, nút cũng có thể trả về một lỗi định tuyến tới nơi gửi ban đầu của
gói tin. Nếu nút gửi lỗi định tuyến này, nó có thể khởi tạo lỗi định tuyến
trước khi cứu gói tin.
Sự truyền các gói tin qua một liên kết bị gián đoạn.
• Khi một nút đang chuyển tiếp một gói tin thông qua cơ chế RM dò tìm ra
liên kết của hop tiếp theo dọc theo tuyến đường truyền một gói tin bị gián
đoạn, nút có thể xử lý gói tin theo các cách sau:
o Xóa gói tin khỏi bộ nhớ đệm duy trì định tuyến và hàng đợi trên giao
diện mang.
o Khởi tao việc truyền một lỗi định tuyến cho gói tin này tới nơi gửi
ban đầu (khởi nguồn) của gói tin, nếu khi số lần truyền lại gói tin đó
cảu nút đã đạt đến số lần cực đại.
o Nếu nút có tuyên đường khác tới địa chỉ đích của gói tin trong bộ lưu
trữ định tuyến của nó, nút có thể cứu gói tin. Mặc khác, nút cũng có
thể loại bỏ gói tin.
Cơ chế rút ngắn đường truyền động.
• Các tuyến đường nguồn đang sử dụng có thể được rút ngắn một cách tự
động nếu một hoặc nhiều nút trung gian trong tuyến đường trở nên không
cần thiết nữa. Ví dụ, hình bên dưới minh họa một ví dụ trong đó nút D đã
lắng nghe được một gói dữ liệu đang truyền từ B tới C, để chuyển tiếp sau
này tới D và E:

18
• Trong trường hợp này, nút này (nút D) có thể trả về một phản hồi định tuyến
“không có lí do” tới nơi gửi ban đầu của gói tin (nút A). Sự phản hồi định
tuyến mang đến tuyến đường ngắn hơn tuyến đường nguồn ban đầu: (A-B-
D-E)
Sự truyền các thông điệp lỗi định tuyến.
• Khi một nút nguồn nhận một lỗi định tuyến về gói dữ liệu mà nó đã khởi
tạo, nút nguồn này truyền lỗi định tuyến này tới các nút lân cận của nó bằng
chèn (piggybacking) nó vào yêu cầu định tuyến tiếp theo của nó. Bằng cách
này, thông tin cũ trong bộ lưu trữ của các nút xung quanh nút nguồn này sẽ
không phát sinh các phản hồi định tuyến chứa cùng liên kết không hợp lệ về
tuyến đường mà nút nguồn này đã nhận được lỗi định tuyến.
Tùy chọn DSR trạng thái dòng chảy mở rộng
Phần này mô tả những tùy chọn mở rộng tương thích với giao thức DSR, được
gọi là “flow state” tạm dịch là trạng thái dòng chảy, cho phép định tuyến hầu hết các
gói tin không có tiêu đề lộ trình nguồn, đích rõ ràng. Các tùy chọn này đã giảm một số
chức năng của giao thức nhưng vẫn đảm bảo sự hoạt động của DSR. Khi một nút gửi
phát hiện ra đường đi bằng cơ chế RD, thì tùy chọn trạng thái dòng chảy cho phép nút
gửi thiết lập chuyển tiếp bằng hop-by-hop trong mạng. Các nút dọc trên tuyến đường
sẽ chuyển tiếp gói tin cho nhau. Trạng thái dòng chảy tự động khởi tạo bởi các gói tin
đầu tiên được chuyển tiếp và sau đó các gói tiếp theo di chuyển trên con đường đó
thàng dòng mà không cần biết tiêu đề lộ trình của gói tin.
Tùy chọn định dạng header DSR
Giao thức định tuyến nguồn động DSR sử dụng một header đặc biệt mang
thông tin điều khiển mà có thể chứa trong nó bất kì gói IP hiện tại nào. Header các lựa
chọn DSR này trong một gói bao gồm một kích thước nhỏ cố định, theo sau là một
chuỗi các số 0 hoặc nhiều lựa chọn DSR mang thông tin tùy ý. Kết thúc của chuỗi các
lựa chọn DSR trong header các lựa chọn DSR được mặc định bởi tổng độ dài của
header các lựa chọn DSR.
19

Đối với IPv4, header các lựa chọn DSR phải theo ngay sau header IP trong gói.
Để thêm một header các lựa chọn DSR vào một gói, header các lựa chọn được gài vào
sau header gói tin IP, trước khi bất kì header nào theo như một header lớp vận chuyển
truyền thống ( ví dụ TCP hoặc UDP). Trường giao thức trong header IP được sử dụng
để chỉ ra rằng một header các lựa chọn DSR theo sau header IP, và trường header tiếp
theo trong header các lựa chọn DSR được sử dụng để chỉ ra kiểu header giao thức theo
sau header các lựa chọn DSR này ( như header lớp vận chuyển).
Nếu bất kì header nào theo sau header các lựa chọn DSR trong một gói, tổng độ
dài của header các lựa chọn DSR phải là một bội số của 4 octet. Luật lệ này bảo vệ sự
liên kết của các header theo sau trong gói.
2.3. Hoạt động của DSR
Quá trình xử lý gói tin thông thường
Phát động một gói tin
Khi phát động bất kì một gói tin nào, một nút sử dụng định tuyến DSR phải
thực hiện theo các bước sau:
• Tìm kiếm trong bộ nhớ tuyến của nút một tuyến tới địa chỉ được ghi trong
trường Destination IP Address trong header của gói tin.
• Nếu như không có tuyến được tìm thấy trong bộ nhớ tuyến, thì thực hiện một
Khám phá tuyến cho địa chỉ đích cần đến. Phát động một khám phá tuyến mới
cho nút đích này kết quả là nút thêm lựa chọn RREQ vào trong header các lựa
chọn DSR trong gói hiện nay này, hoặc nhớ gói này vào bộ đệm gửi và khởi
đầu khám phá tuyến bằng việc gửi một gói tin chứa lựa chọn RREQ. Nếu nút
chọn khởi đầu khám phá tuyến bằng việc thêm vào lựa chọn RREQ trong gói
hiện tại, nó sẽ thay thế trường Destination IP Address bằng địa chỉ “limited
broadcast” (255.255.255.255), sao chép địa chỉ IP đích vào trường Target
Address của lựa chọn RREQ mới được thêm vào gói tin.
• Nếu gói tin hiện tại không chứa một lựa chọn RREQ, thì nút này phải có một
tuyến tới địa chỉ đích của gói tin; nếu nút có nhiều có nhiều hơn một tuyến tới
đích, nút sẽ lựa chọn một tuyến để sử dụng cho gói tin. Nếu chiều dài của tuyến
này lớn hơn 1 chặng, hoặc nếu nút xác định yêu cầu một Acknowledgment

20
DSR từ nút chặng đầu tin trong tuyến, thì nó sẽ lựa chọn một header các lựa
chọn DSR vào trong gói, và lồng vào một lựa chọn tuyến nguồn DSR. Tuyến
nguồn trong gói tin được khởi đầu từ tuyến được chọn tới đích của gói tin.
• Truyền dẫn một gói in tới địa chỉ nút chặng sau được lưu trong tuyến nguồn lựa
chọn, sử dụng duy trì tuyến để xác định chặng sau có thể tới được
Thêm header các lựa chọn DSR vào gói tin
Một nút khởi đầu gói tin thêm vào gói tin một header các lựa chọn DSR (nếu cần
thiết), để mang thông tin cần thiết bằng giao thức định tuyến. Một gói không được
chứa nhiều hơn một header các lựa chọn DSR. Một header các lựa chọn được thêm
vào trong gói tin theo các bước sau:
• Lồng vào một header các lựa chọn DSR vào sau header IP nhưng trước bất kì
một header nào khác mà có thể có mặt.
• Thiết lập trường Next Header của header các lựa chọn DSR vào trường số hiệu
giao thức của header gói tin IP.
• Thiết lập trường giao thức của header gói tin IP vào số hiệu giao thức được
phân cho DSR.
Thêm lựa chọn tuyến nguồn DSR vào một gói
Một nút khởi đầu gói tin thêm lựa chọn tuyến nguồn DSR vào gói tin (nếu cần
thiết), để mà mang tuyến nguồn từ nút khởi đầu đến địa chỉ đích cuối cùng của gói tin.
Cụ thể, nút này xây dựng một lựa chọn tuyến nguồn DSR và sửa đổi gói IP theo các
bước sau:
• Nút khởi tạo một lựa chọn tuyến nguồn DSR và thêm nó vào trong header các
lựa chọn DSR trong gói tin.
• Số lượng các trường địa chỉ Address[i] bao gồm trong lựa chọn tuyến nguồn
DSR (n) là số lượng các nút trung gian trong tuyến nguồn cho gói tin (ngoại trừ
nút khởi đầu và nút đích của gói tin). Trường Segments Left trong lựac chọn
tuyến nguồn DSR được thiết lập bằng n.
• Các địa chỉ trong tuyến nguồn cho gói tin được sao chép vào sau các trường
Address[i] trong lựa chọn tuyến nguồng DSR, i = 1, 2, …., n.

21
• Bit L trong lựa chọn tuyến nguồn DSR được sao chép từ bit cờ External của
chặng cuối cùng trong tuyến nguồn của gói tin, như được chỉ ra trong bộ nhớ
tuyến.
• Trường Salvage trong lựa chọn tuyến nguồn DSR được khởi đầu từ 0.
Xử lý một gói được nhận
Khi một nút nhận bất kì gói tin nào, nết gói tin đó chứa một header các lựa chọn
DSR, thì nút đó phải xử lý bất kì lựa chọn nào được chứa trong header các lựa chọn
DSR đó.
Sau khi có thể cập nhật bộ nhớ tuyến của nút từ thông tin định tuyến trong lựa
chọn tuyến nguồn DSR, nút phải xử lý lựa chọn tuyến nguồn DSR này.
Bất kì lựa chọn Pad1 hoặc PadN nào trong header các lựa chọn DSR đều được
bỏ qua
Cuối cùng, nếu địa chỉ đích trong header gói tin IP phù hợp với một trong số
các địa chỉ IP của các nút nhận, nó hủy bỏ header các lựa chọn DSR và tất cả các lựa
chọn DSR được bao gồm trong header và chuyển phần còn lại của gói tin tới lớp
mạng.
Xử lý một lựa chọn tuyến nguồn DSR nhận được
Khi một nút nhận được gói chứa một lựa chọn tuyến nguồn DSR, nút đó nên
kiểm tra gói tin đó để xác định biên lai của gói có chỉ ra một tuyến tự động rút ngắn
thích hợp hay không. Cụ thể, nếu nút này không mong đợi đích chặng tiếp theo cho
gói nhưng nó được ghi tên trong phần không dùng đến sau đó của tuyến nguồn trong
lựa chọn tuyến nguồn DSR của gói, thì gói này xác định một tuyến được tự động làm
ngắn thích hợp: Các nút trung gian sau nút mà từ đó nút này có thể nghe gói tin và
trước nút này mà bản thân nó không cần thiết nữa trong tuyến nguồn. Trong trường
hợp này, nút này nên thực hiện các bước sau như một phần của quá trình làm ngắn
tuyến tự động:
Nút kiểm tra trong bản RREP chặng trước của nó để tìm một mục mô tả một
RREP chặng trước được gửi gần mới đây bởi nút này, cho cả nút khởi đầu và nút
truyền phù hợp với địa chỉ nút tương ứng cho gới mới nhận này. Nếu như một mục

22
được tìm thấy trong bảng RREP chặng trước của nút, nút không nên thực hiện tự động
rút ngắn tuyến được hồi đáp từ biên lai của gói này.
Nếu không, nút tạo một mục cho gói nghe được này trong bản RREP chặng
trước của nó. Giá trị timeout cho mục mới này nên được khởi đầu bằng giáo trị
GratReplyHoldoff. Sau khi time out này hết hạn, nút nên xóa mục này khỏi bảng
RREP chặng trước của nó.
Sau khi tại một mục mới trong bảng RREP chặng trước ở trên, nút khởi đầu
một RREP chặng trước tới địa chỉ IP nguồn của gói nghe được này.
Nếu giao thức MAC đang được dùng trong mạng không có khả năng truyền
unicast các gói qua các liên kết đơn hướng, thì trong sự khởi đầu RREP này, nút phải
sử dụng một tuyến nguồn để định tuyến gói RREP mà được nhận bởi sự đảo chiều
chuỗi các chặng qua đó gói tin mang RREP chặng trước được định tuyến trong khả
năng có thể tới và nghe được bởi nút này. Tuyến ngược sử dụng RREP chặng trước để
kiểm tra chuỗi các chặng có phải là song hướng hay không, ngăn chặn RREP chặng
trước được nhận bởi khởi đầu khám phá tuyến trừ khi mỗi chặng qua RREP chặng
trước được hồi đáp là song hướng.
Địa chỉ multicast không được xuất hiện trong lựa chọn tuyến nguồn DSR hoặc
trong trường Destination IP Address của gói tin mang lựa chọn tuyến nguồn DSR
trong một header các lựa chọn DSR.
Sự điều khiển một lựa chọn DSR chưa biết
Trong DSR, các mã Option Type mã hóa hành vi được yêu cầu cho các nút
không thực hiện được kiểu lựa chọn đó. Các hành vi này được chứa trong 3 bit quan
trọng nhất của Option Type.
Nếu bit quan trọng nhất của Option Type được thiết lập (đó là Option Type &
0x80 khác 0) và gói này không chứa một lựa chọn RREQ, một nút nên hổi đáp một
RERR tới địa chỉ IP nguồn, không kể đến kiểu lỗi đó phải được thiết lập là
OPTION_NOT_SUPPORTED và trường Unsupported Opt phải được thiết lập là kiểu
lựa chọn gây ra RERR.
23

Dù một RERR có được gửi hay không trong sự hồi đáp tới lựa chọn DSR này,
như được mô tả ở trên, nút cũng phải kiểm tra 2 bit quan trọng nhất tiếp theo (đó là
Option Type và 0x60):
• Khi 2 bit này là 00 (túc là Option Type & 0x60 = = 0), một nút không thực hiện
xử lý đối với kiểu lựa chọn đó phải sử dụng trường Opt Data Len để bỏ qua lựa
chọn và tiếp tục xử lý.
• Khi 2 bit này là 01 (tức là, Option Type & 0x60 = = 0x20), một nút không thực
hiện xử lý với kiểu lựa chọn đó phải sử dụng trường Opt Data Len để hủy bỏ
lựa chọn từ gói và tiếp tục xử lý nếu nhu lựa chọn chưa được bao gồm trong gói
nhận.
• Khi 2 bit này là 10 (tức là, Option Type & 0x60 = = 0x40), một nút không thực
hiện xử lý với kiểu lựa chọn đó phải thiết lâpk bit quan trọng nhất theo sau
trường Opt Data Len. Trong sự thêm vào, nút phải từ chối và bỏ qua nội dung
của lựa chọn sử dụng trường Opt Data Len và phải tiếp tục xử lý gói tin.
• Cuối cùng, khi 2 bit này là 11 ( đó là, Option Type & 0x60 = = 0x60), một nút
không tiếp tục xử lý kiểu lựa chọn đó mà phải hủy bỏ gói tin.
Xử lý khám phá tuyến
Khám phá tuyến là một cơ chế mà nhờ nó khi một nút nguồn muốn gửi một gói
tin tới nút đích thu được một tuyến nguồn tới đích. Khám phá tuyến nên được sử dụng
chỉ khi nút nguồn cố gắng gửi một gói tin tới đích mà không biết một tuyến nào đến
đích. Nút khởi đầu một khám phá tuyến được coi như “nguồn” của khám phá tuyến và
nút đích được xác định bởi khám phá tuyến được coi như “đích” của khám phá tuyến.
Thủ tục khám phá tuyến sử dụng hai loại bản tin là Route Request và Route
Reply, để tích cự tìm kiếm trong mạng ad hoc một tuyến tới đích mong muốn. Các bản
tin DSR này có thể được mang trong gói tin IP, thông qua việc sử dụng header các lựa
chọn DSR. Một khám phá tuyến tới địa chỉ đích không nên được khởi đầu trừ khi nút
nguồn có một gói tin trong bộ nhớ đệm gửi của nó được yêu cầu phân phát tới đích.
Một khám phá tuyến tới một nút đích xác định không được phát động trừ khi được sự
cho phép của thông tinh tốc độ giới hạn được chứa trong bảng RREQ. Sau khi mỗi
khám phá tuyến được thử, khoảng thời gian giữa các khám phá tuyến liên tiếp cho đích

24
này nên được nhân đôi, cho đến một giá trị lớn nhất là MaxRequestPeriod, cho đến khi
một RREP được nhận đối với đích này.
Khởi đầu một Route Request
Một nút khời đầu một khám phá tuyến cho một vài đích tạo và khời đầu một lựa
chọn RREQ trong một header các lựa chọn DSR trong một vài gói IP. Nó có thể là gói
IP riêng biệt, chỉ được sử dụng để mang lựa chọn RREQ này, hoặc nút có thể chèn một
lựa chọn RREQ vào một vài gói hiện tại mà nó cần để gửi tới nút đích (ví dụ, gói tin
IP được khởi đầu bởi nút này mà nguyên nhân là do nút cố gắng thực hiện khám phá
tuyến tới địa chỉ đích trong gói tin). Lựa chọn RREQ phải được chứa trong một header
các lựa chọn DSR trong gói tin. Để cho giá trịn vào lựa chọn RREQ, nút thực hiện các
bước sau:
• Trường Option Type trong lựa chọn phải được đặt giá trị là 2.
• Trường Opt Data Len trong lựa chọn phải được thiết lập giá trị là 6. Tổng kích
thước của lựa chọn RREQ khi được khởi tạo là 8 octet; trường Opt Data Len trừ
ra kích thước của bản thân các trường Option Type và Opt Data Len.
• Trường Identification trong lựa chọn phải được thiết lập một giá trị mới, khác
với giá trị mà được sử dụng đối với các RREQ hiện tại được phát động bởi nút
này cho cùng một địa chỉ đích. Ví dụ, mỗi nút có thể duy trì một bộ đếm giá trị
riêng cho việc khởi tạo một giá trị Identification mới cho mỗi RREQ mà nó
khởi tạo.
• Trường Address Target trong lựa chọn phải được thiết lập một địa chỉ IP là đích
của khám phá tuyến.
• Địa chỉ nguồn trong header IP của gói tin phải là địa chỉ của chính nút này. Địa
chỉ đích trong header IP của gói tin phải là địa chỉ broadcast (255.255.255.255).
Một nút phải duy trì trong bảng RREQ của nó thông tin về các RREQ mà nó
phát động. Khi phát động một RREQ mới, nút phải dùng thông tin được ghi trong mục
bảng RREQ này cho đích của RREQ đó và nó phải cập nhận thông tin đó trong mục
bảng để sử dụng trong việc khởi tạo một RREQ tiếp theo cho đích này. Cụ thể:
25

• Mục bảng RREQ đối với một nút đích ghi trường TTL được sử dụng trong
header IP của RREQ cho khám phá tuyến cuối cùng được khởi tạo bởi nút này
tới đích đó. Giá trị này cho phép nút thực hiện các thuật toán các nhau để điều
khiển sự trải rộng các RREQ trong mỗi khám phá tuyến được phát động tới một
đích.
• Mục bảng RREQ đối với nút đích ghi số lượng các RREQ liên tiếp được phát
động tới nút này từ khi nhận một một RREP hợp lệ mang một tuyến tới nút đích
và lượng thời gian còn lại trước khi nút này có thể phát động một khám phá
tuyến tiếp theo cho nút đích đó.
Đến khi một RREP hợp lệ được nhận đối với địa chỉ đích này, khoảng thời gian
timeout giữa các khám phá tuyến liên tiếp được phát động cho nút đích này với cùng
số chặng giới hạn nên tăng lên bằng cách nhân đôi giá trị timeout cho mỗi phát động
mới.
Trạng thái của nút xử lý một gói tin chứa header các lựa chọn DSR với cả lựa chọn
tuyến nguồn DSR và lựa chọn RREQ là không rõ ràng. Các gói tin không nên chứa cả
hai lựa chọn tuyến nguồn DSR và RREQ.
Các gói chứa một lựa chọn RREQ không nên chứa một lựa chọn Acknowledgment
Request, không nên mong đợi sự báo nhận của lớp liên kết và không nên được truyền
lại.
Xử lý một lựa chọn RREQ được nhận
Khi một nút nhận được một gói tin chứa một lựa chọn RREQ, thì nút phải xử lý
lựa chọn đó theo các bước sau:
• Nếu trường Target Address trong RREQ phù hợp với địa chỉ IP của chính nút
này, thì nút hồi đáp một RREP tới nút nguồn của RREQ này (địa chỉ nguồn
trong header IP của gói tin).
• Ngược lại, nút phải khảo sát tuyến được ghi trong lựa chọn RREQ (trường
Source IP Address và chuỗi các trường Address[i]) để xác định địa chỉ IP của
nút này có mặt trong danh sách địa chỉ hay không. Nếu có mặt, nó phải hủy bỏ
hoàn toàn gói tin mang lựa chọn RREQ này.

×