Các giao thức định tuyến

24
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: MSSV Lưu Thanh Tùng 20102475 Nguyễn Bảo Khánh 20101704

description

Tổng quan về các giao thức định tuyến RIP, OSPF, BGP

Transcript of Các giao thức định tuyến

Page 1: Các giao thức định tuyến

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áoMô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: MSSV

Lưu Thanh Tùng 20102475Nguyễn Bảo Khánh 20101704Thân Văn Hải 20101486Mai Văn Minh 20101883Phạm Việt Anh 20101112

Hà Nội – 2014

Page 2: Các giao thức định tuyến

Mục lụcI. Giới thiệu về multicast, giải thuật tìm đường đi ngắn nhất......................................................3

1. Giới thiệu về multicast..........................................................................................................3

a. Địa chỉ multicast...............................................................................................................3

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

2. Giải thuật tìm đường đi ngắn nhất........................................................................................5

a. Bài toán.............................................................................................................................5

b. Ý tưởng để giải quyết bài toán..........................................................................................5

c. Thuật toán Dijkstra............................................................................................................5

d. Các kiểu giải thuật tìm đường...........................................................................................5

II. Định tuyến multicast................................................................................................................6

1. IGMP....................................................................................................................................6

a. IGMPv1.............................................................................................................................7

b. IGMPv2.............................................................................................................................8

2. Giải thuật định tuyến multicast...........................................................................................10

3. Định tuyến multicast...........................................................................................................16

Page 3: Các giao thức định tuyến

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.

Page 4: Các giao thức định tuyến

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)

Page 5: Các giao thức định tuyến

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ánCho đồ 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) doBegin

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ặpWhile T <> ∅ do

BeginTìm đỉnh u ∈T thỏa mãn D[u] nhỏ nhấtT=T-{u};For all v là lân cận của u và v ∈T doif D[v] > D[u] + c[u,v] then

BeginD[v]:=D[u] + c[u,v];T[v]:=u;

End;End;

Page 6: Các giao thức định tuyến

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

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

Page 7: Các giao thức định tuyến

II. Đ 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 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.

Page 8: Các giao thức định tuyến

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.

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.

Page 9: Các giao thức định tuyến

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. 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

Page 10: Các giao thức định tuyến

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

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.

Page 11: Các giao thức định tuyến

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

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

Page 12: Các giao thức định tuyến

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

Page 13: Các giao thức định tuyến

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

Page 14: Các giao thức định tuyến
Page 15: Các giao thức định tuyến
Page 16: Các giao thức định tuyến

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 8 15 16 31Version Type Packet Length

Source Router IDDestination Router ID

Group AddressChecksum

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.

Page 17: Các giao thức định tuyến

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).

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.

Page 18: Các giao thức định tuyến

Cây multicast cho nhóm 224.1.1.1

Page 19: Các giao thức định tuyến

Cây multicast cho nhóm 224.2.2.2

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

Group Address Routing

224.1.1.1 R1 to R2

R1 to R2 to R5

224.2.2.2 R1 to R2

R1 to R3 to R4