Tải bản đầy đủ (.docx) (19 trang)

các giao thức định tuyến dựa trên cơ sở của cây khung nhỏ nhất để định tuyến multicast

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 (647.69 KB, 19 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
----------

Báo cáo
Môn: Giao thức định tuyến
Đề tài: Thiết kế giao thức định tuyến dựa trên cơ sở
của cây khung nhỏ nhất để định tuyến multicast
Giảng viên hướng dẫn: TS Trương Diệu Linh
Sinh viên thực hiện:
Lưu Thanh Tùng
Nguyễn Bảo Khánh
Thân Văn Hải
Mai Văn Minh
Phạm Việt Anh

Hà Nội – 2014
1

MSSV
20102475
20101704
20101486
20101883
20101112


Mục lục

2



I.

Giới thiệu về multicast, giải thuật tìm đường đi ngắn
nhất
1. Giới thiệu về multicast
Địa chỉ multicast ra đời nhằm để giải quyết vấn đề khi một nguồn muốn gửi gói
tin cho một số đích khác nhau khi mà 2 kiểu truyền thông unicast và broadcast không
hoàn toàn đặt được hiểu quả triệt để, ảnh hưởng đến băng thông chung của mạng.
IP multicast dùng để truyền gói tin từ một nguồn đến nhiều đích khác nhau trong
mạng LAN hay WAN. Những thành viên nào muốn nhận các gói tin này thì phải
tham gia vào một nhóm Multicast. Với địa chỉ Multicast thì địa chỉ nguồn chỉ cần gửi
một gói tin đến nhóm, gói tin này sẽ được chuyển đến tất cả thành viên trong nhóm
đó.
a. Địa chỉ multicast

Các router hay switch phải có phương thức để phân biệt gói tin dạng multicast với
dạng unicast hay broadcast. Điều này được thông qua việc gán địa chỉ IP, bằng
cách sử dụng địa chỉ lớp D từ 224.0.0.0 đến 239.255.255.255 dành cho multicast.

Các thiết bị mạng có thể nhanh chóng lọc ra các địa chỉ multicast bằng cách đọc 4
bit bên trái của một địa chỉ. Bốn bit này của một địa chỉ multicast luôn bằng 1110.
Vậy làm thế nào để một router và switch kết hợp được địa chỉ multicast với một
địa chỉ MAC. Do không có cơ chế hoạt động tương đương như cơ chế ARP, một
dạng giá trị đặc biệt dành riêng cho địa chỉ MAC của multicast sẽ được dùng. Các
địa chỉ này sẽ bắt đầu bằng 0100.5e. Phần 28 bit sau của địa chỉ multicast sẽ được
ánh xạ vào 23 bit thấp của địa chỉ MAC.

3



Hình trên cho ta thấy cơ chế ánh xạ địa chỉ, chỉ có 23 bit cuối của địa chỉ là được
chép từ địa chỉ IP sang địa chỉ MAC. Tuy nhiên vẫn còn 5 bit của địa chỉ IP
không được chuyển sang địa chỉ MAC, điều này làm nảy sinh một vấn đề là có
thể có 32 địa chỉ IP khác nhau được ánh xạ vào chung một địa chỉ MAC. Do sự
nhập nhằng này, một host multicast có một vấn đề nhỏ khi nó nhận frame của một
địa chỉ multicast. Một MAC có thể ứng với 32 địa chỉ multicast khác nhau, vì vậy
nó có thể nhận được những gói tin của nhóm khác không phải nhóm của mình.
Không gian địa chỉ multicast :






Toàn bộ không gian địa chỉ multicast : 224.0.0.0 – 239.255.255.255.
Địa chỉ link-local : 224.0.0.0 – 224.0.0.255 được dùng bởi các giao
thức định tuyến. Đây là địa chỉ các nhóm cố định vì các địa chỉ này đã
được định nghĩa trước. Một số địa chỉ bao gồm như :
- 224.0.0.1 : tất cả các host.
- 224.0.0.2 : tất cả các router.
- 224.0.0.5 : tất cả các OSPF router.
Dải địa chỉ dành cho quản trị : 239.0.0.0.0 – 239.255.255.255 được
dùng trong các vùng multicast riêng.
Địa chỉ toàn cục : 224.0.1.0 – 238.255.255.255 được dùng bởi bất cứ
đối tượng nào.

b. Cây phân phối multicast

Để phân phối dữ liệu multicast tới tất cả các máy nhận, cây phân phối multicast

được sử dụng, nó có tác dụng điều khiển đường đi của dữ liệu truyền trên mạng.
Có 2 loại cây phân phối cơ bản :


Cây nguồn : là cây với gốc của nó chính là nguồn dữ liệu multicast
và các nhánh của nó dẫn tới các đầu cuối nhận dữ liệu trên mạng.
Do vậy cây này sử dụng đường đi ngắn nhất nên gọi là cây đường
đi ngắn nhất (Shortest Path Tree – SPT)

4




Cây chia sẻ : là cây sử dụng chung một gốc duy nhất tại một điểm
đã chọn trên mạng. Gốc này còn được gọi là điểm hẹn
(Rendezvous Point – RP). Khi sử dụng cây chia sẻ, nguồn phải gửi
lưu lượng của nó tới gốc sau đó lưu lượng này được chuyển tiếp
theo các nhánh của cây đến các đầu cuối nhận dữ liệu.

2. Giải thuật tìm đường đi ngắn nhất
a. Bài toán

Cho đồ thị G(V,E) : với V là tập các đỉnh của đồ thị, E là tập các cạnh của đồ thị.
Kí hiệu c(u,v) là độ dài của cạnh nối giữa 2 đỉnh u và v. Cho s,t là 2 đỉnh của đồ
thị. Bài toán đặt ra là tìm đường đi ngắn nhất từ đỉnh s đến đỉnh t.
b. Ý tưởng để giải quyết bài toán
• Dò tìm bằng cách thử đi qua các đỉnh trung gian.
• Nếu phát hiện đường đi qua đỉnh trung gian ngắn hơn đường đi hiện tại thì



sẽ cập nhật đường đi mới đồng thời chỉnh sửa lại các thông số liên quan.
Thường sử dụng 2 mảng để lưu trữ :
- D(v) : độ dài đường đi ngắn nhất từ đỉnh s đến đỉnh v.
- T(v) : đỉnh nằm trước v trên đường đi ngắn nhất từ s đến v.

c. Thuật toán Dijkstra
• Khởi tạo



For (all v V) do
Begin
D[v] := c[s,v];
T[v] := s;
End;
T = V – {s}; // Tập đánh dấu các đỉnh đã chọn
Vòng lặp
While T <> do
Begin
Tìm đỉnh u T thỏa mãn D[u] nhỏ nhất
T=T-{u};
For all v là lân cận của u và v T do
if D[v] > D[u] + c[u,v] then
Begin
D[v]:=D[u] + c[u,v];
T[v]:=u;
End;
End;


5


d. Các kiểu giải thuật tìm đường
 Định tuyến Distance Vector
• Phương pháp này chỉ định một con số, gọi là chi phí (hay trọng số),








cho mỗi một liên kết giữa các node trong mạng. Các node sẽ gửi thông
tin từ điểm A đến điểm B qua đường đi mang lại tổng chi phí thấp nhất
(là tổng các chi phí của các kết nối giữa các node được dùng)
Khi một node khởi động lần đầu, nó chỉ biết các node kề trực tiếp với
nó và chi phí trực tiếp để đi đến nó ( danh sách các đích, tổng chi phí
từng node, bước kế tiếp để gửi dữ liệu đến đó tạo nên bảng định tuyến
…)
Mỗi node trong tiến trình gửi đến từng “ hàng xóm” tổng chi phí của
nó để đi đến đích mà nó biết
Các node “ hàng xóm” phân tích và so sánh với thông tin mà chúng
biết. Bất kì điều gì cải thiện những thông tin chúng có sẽ được đưa vào
bảng định tuyến của chúng
Đến khi kết thúc, các node trên mạng sẽ tìm ra bước truyền kế tiếp tối
ưu đến tất cả mọi đích và tổng chi phí thấp nhất

 Định tuyến Link – State

• Giao thức định tuyến Link State thu thập thông tin về đường đi từ tất






II.

cả các Router khác trong cùng hệ thồng mạng
Khi tất cả các thông tin thu thập đầy đủ mỗi Router sẽ tự tính toán để
chọn đường đi tốt nhất cho nó đến các mạng đích trong hệ thống
Mỗi Router trong mạng sẽ có chung một cơ sở dữ liệu về trạng thái
của mạng
Sử dụng thông tin gói tin Hello và LSA nhận được từ Router hàng
xóm để xây dựng cơ sở dữ liệu về cấu trúc hệ thống mạng
Sử dụng thuật toán Dijkstra để tìm đường ngắn nhất đến từng mạng
Lưu kết quả chọn đường trong bảng định tuyến

Định tuyến multicast
1. IGMP
Làm thế nào để các router có thể biết được máy nào cần nhận gói tin multicast? Để
thực hiện việc này, cả nguồn gửi và máy nhận đều phải gia nhập vào một nhóm
6


multicast. Nhóm này được xác định thông qua địa chỉ multicast, một host có thể tham
gia vào một nhóm multicast bằng cách gửi yêu cầu đến router gần nhất. Tác vụ này
được thực hiện thông qua giao thức IGMP (Internet Group Management Protocol)
a. IGMPv1

 Khuôn dạng thông điệp :







Version : Xác định phiên bản của IGMP
Type : Loại thông điệp, trong IGMPv1 thì có 2 loại thông điệp được sử
dụng giữa host và router :
- Membership Report : thông điệp đăng ký tham gia vào nhóm
multicast được gửi từ host đến router.
- Membership Query : thông điệp truy vấn được gửi từ router đến
các host để kiểm tra xem các host có muốn nhận multicast traffic
hay không.
Checksum : dùng để kiểm tra lỗi.
Group Address : chứa địa chỉ nhóm multicast khi thông điệp Membership
Report được gửi, bằng 0 khi dùng trong thông điệp Membership Query

IGMP sử dụng mô hình truy vấn – trả lời (Query – Response) cho phép các router
multicast xác định nhóm multicast hoạt động (có tham gia vào nhóm multicast)
trên nhánh mạng.

Trong mô hình này, host H1, H2 đăng ký vào nhóm multicast 224.1.1.1, host H3
đăng ký vào nhóm multicast 224.2.2.2 . Router A gửi thông điệp Membership
Query đến tất cả các host trong nhánh mạng. Router B chỉ lắng nghe và ghi nhận
việc trả lời từ các host.
7











Router A gửi thông điệp Membership Query đến tất cả các host trên nhánh
mạng.
Tất cả các router sẽ nhận được thông điệp này, và các host đã đăng ký vào
nhóm multicast phải trả lời lại bằng thông điệp Membership Report, thông
báo cho router biết trên nhánh mạng có host muốn nhận gói tin từ nhóm
224.1.1.1
Host H1 cũng lắng nghe đến nhóm 224.1.1.1, do đó nó biết được H2 đã
gửi thông điệp Membership Report đến router, và hủy thông điệp của nó.
Cơ chế này (Report Suppression) làm giảm được lưu lượng trên nhánh
mạng.
Host H3 cũng nhận được thông điệp và trả lời lại nhóm mà nó đã đăng ký
là 224.2.2.2
Kết quả của quá trình Query-Respone là Router A biết được các máy
muốn nhận được gói tin từ nhóm 224.1.1.1 và 224.2.2.2 trên nhánh mạng.
Ngoài ra Router B cũng lắng nghe được toàn bộ quá trình và cũng biết
được thông tin như router A.

b. IGMPv2
 Giao thức IGMP v2 là sự mở rộng các chức năng của IGMP v1 bao gồm:
- Một phương thức để xác định router nào sẽ gửi thông điệp truy vấn
-


multicast khi có nhiều router cùng kết nối vào một mạng con.
Một thông điệp mới được sử dụng khi một host muốn rời nhóm.
Một thông điệp mới cho phép router truy vấn cho từng nhóm cụ thể thay
vì tất cả nhóm.

 Khuôn dạng thông điệp



Type : trong IGMPv2 có 4 loại thông điệp được sử dụng :
- Membership Query : thông điệp truy vấn được gửi từ router đến
các host để kiểm tra xem các host có muốn nhận multicast traffic
hay không.
- IGMPv1 Membership Report : thông điệp đăng ký tham gia vào
nhóm multicast được gửi từ host đến router.
- IGMPv2 Membership Report
- Leave Group : thông điệp khi một host muốn rời khỏi nhóm
multicast.

8







Maximum Response Time : Chỉ dùng trong thông điệp Membership
Query, nó chỉ định thời gian tối đa mà 1 host có thể chờ để trả lời 1 thông

điệp truy vấn. Giá trị mặc định là 100 (10 giây).
Checksum : trường dùng để kiểm tra lỗi.
Group Address: khi một thông điệp General Query được gửi đi, trường
này được gán về giá trị 0 để phân biệt với thông điệp Group – Specific
Query. Khi thông điệp Membership Report hoặc Leave Group gửi đi thì
trường này chứa giá trị của nhóm multicast.

 Quá trình rời nhóm (Leave Group)







Trong mô hình trên, host H2 là thành viên của nhóm 224.1.1.1, host H2
muốn rời khỏi nhóm
H2 gửi thông điệp Leave Group đến địa chỉ all-router (224.0.0.2) thông
báo cho tất cả các router trên nhánh mạng biết nó muốn rời khỏi nhóm.
Router A lắng nghe thông điệp Leave Group từ host H2. Router A gửi
thông điệp Group – Specific Query đến nhóm 224.1.1.1 để xác định xem
còn host nào trong nhóm nữa không.
Do không còn host nào trong nhóm 224.1.1.1 trả lời thông điệp Group –
Specific Query. Router A đợi 1 giây, sau đó lại gửi tiếp một thông điệp
khác mà vẫn không nhận được thông điệp trả lời thì lúc nào Router A sẽ
ngừng chuyển gói tin multicast đến nhánh mạng này.

2. Giải thuật định tuyến multicast
 Cây đường đi ngắn nhất (Shortest Path Fisrt Tree)


Cây ngắn nhất từ một nguồn là một cây có gốc là nguồn đó và các đường đi ngắn
nhất đến tất cả các đỉnh còn lại
9


Hình trên mô tả các đường đi ngắn nhất đến các router khác với gốc là router R1.

 Xây dựng SPF tree


Router R1 sẽ gửi gói tin Hello đến tất cổng có kết nối để biết thông tin tất
cả các hàng xóm của mình

10




Khi các router khác nhận được gói tin Hello nó sẽ trả lời cũng bằng gói
Hello

11




Sau khi có thông tin của các hàng xóm của mình, Router R1 sẽ xây dựng
một gói tin Link-State (LS) chứa thông tin của các hàng xóm của mình
xong đó nó sẽ gửi gói tin này đến toàn bộ Router trên mạng để các Router
khác biết được


12




Lúc này, tất cả các Router đều đã biết được hết cấu trúc của mạng, lúc này
mỗi Router sẽ dùng giải thuật Dijkstra để xây dựng nên cây đường đi ngắn
nhất của mình

13


14


15


3. Định tuyến multicast
 Quy trình hoạt động
• Khi router hoạt động nó sẽ gửi gói tin “hello” đến tất cả các router khác để

xây dựng cây đường đi ngắn nhất của riêng mình.
Khi có một luồng dữ liệu muốn gửi multicast từ một nguồn nào đó, router
sẽ gửi thông điệp “request” đến tất cả các router để hỏi xem ở router đó có
host nào muốn nhận dữ liệu không?
Nếu ở đó có host muốn nhận (thông qua giao thức IGMP) thì router sẽ đáp
trả thông điệp “request” bằng thông điệp “join” để thông báo nó có muốn
nhận dữ liệu của nhóm multicast này.

Trong trường hợp không có host nào muốn nhận (cũng thông qua giao
thức IGMP) thì router sẽ đáp trả bằng thông điệp “deny” để thông báo
không muốn nhận dữ liệu.
Từ đó router nguồn biết những router nào muốn nhận dữ liệu và sau đó
dựa vào cây đường đi ngắn nhất của mình để xây dựng được bảng định
tuyến cho nhóm multicast đó.









 Định dạng gói tin
0

7
Version

8

15

16

Type

31

Packet Length

Source Router ID
Destination Router ID
Group Address
Checksum
Data
.............................
.............................
.............................
Data






Version (1 byte) : chứa phiên bản giao thức.
Type (1 byte) : dạng thông điệp
- Giá trị 1 : “Hello”.
- Giá trị 2 : “LS”.
- Giá trị 3 : “Request”.
- Giá trị 4 : “Join”.
- Giá trị 5 : “Deny”.
Packet Length (2 byte) : kích thước gói tin.
Source Router ID (4 byte) : địa chỉ router ID nguồn (Router ID là địa chỉ
IP cao nhất trong các cổng đang hoạt động của router).
16







Destination Router ID (4 byte) : địa chỉ router ID đích.
Group Address (4 byte) : chứa địa chỉ IP của nhóm multicast.
Checksum (4 byte) : mã kiểm tra lỗi.

 Một số hình ảnh mô phỏng quá trình



Cấu trúc mạng có 2 nhóm :
- Nhóm 224.1.1.1 : PC1, PC2.
- Nhóm 224.2.2.2 : PC2, PC3.

17




Cây multicast cho nhóm 224.1.1.1
18




Cây multicast cho nhóm 224.2.2.2

Bảng định tuyến multicast của Router R1

Group Address
224.1.1.1

Routing
R1 to R2
R1 to R2 to R5

224.2.2.2

R1 to R2
R1 to R3 to R4

19



×