a. Công thức áp dụng:
Liên quan đến số mạng con cần tạo, áp dụng công thức 2𝑛 ≥ số mạng con cần tạo ra. Ở đây n là số bit cần phải mượn (chuyển đổi từ bit hostID sang netID) từ phần hostID. Nếu mượn n bit thì sẽ tạo được 2𝑛 mạng con (subnet) mới, mỗi subnet mới này sẽcó 2ℎ- 2 địa chỉ host có thể đem gán: và địa chỉ Subnet mới của tất cả mạng con = Subnet mask của IP đang chia + số bit mượn n.
Liên quan đến số địa chỉ host yêu cầu, áp dụng công thức 2ℎ-2 ≥ số host yêu cầu của từng mạng. Ởđây h là số bit thuộc phần hostID và cũng là sốbit còn lại khi ta mượn
110 đi n bit.
b. VÍ DỤ:
Cho giải địa chỉ IP 50.68.16.0/20
Sử dụng kỹ thuật VLSM, hãy phân chia địa chỉ trên cho các mạng sau: - Mạng 1 yêu cầu 60 host
- Mạng 2 yêu cầu 632 host - Mạng 3 yêu cầu 2 host - Mạng 4 yêu cầu 1200 host - Mạng 5 yêu cầu 315 host
c. HƯỚNG DẪN CÁCH GIẢI THEO PHƯƠNG PHÁP VLSM:
Theo kỹ thuật VSLM, ta phải sắp sếp các mạng có số host từ cao nhất xuống thấp nhất như sau:
- Mạng 4 yêu cầu 1200 host - Mạng 2 yêu cầu 632 host - Mạng 5 yêu cầu 315 host - Mạng 1 yêu cầu 60 host - Mạng 3 yêu cầu 2 host
BƯỚC 1: : Lấy địa chỉ IP ban đầu 50.68.16.0/20 phân chia cho Mạng 4 yêu cầu
1200 host. Áp dụng công thức: 2ℎ - 2 1200 -> h = 11.
Điều đó có nghĩa là, muốn phân chia địa chỉ ban đầu cho mạng yêu cầu số host là 1200 thì lời khuyên theo VLSM đưa ra là ta nên mượn tối thiểu:
n = tổng số bit nhị phân của địa chỉ Ipv4 - số bít phần Net_id của địa chỉ mạng cần chia nhỏ - sốbit h còn lại (sau khi bịmượn n bit).
=> n = 32 - 20 - 11 = 1 bit, từđó tính được số mạng con mới được sinh ra là 2^1 = 2 mạng con (subnet), new Subnet Mask của tất cả các mạng con mới này chính là 20 + 1= /21; mỗi mạng con này sẽ có 2ℎ- 2 = 211 - 2 = 2046 địa chỉ IP có thể đem gán cho host.
111
Các địa chỉ mạng con chi tiết:
Để tính được tất cả các mạng con mới, ta đổi địa chỉ đang đem chia ra dạng nhị phân:
50.68.16.0/20:
IP: 00110010.01000100.0001 0 000.00000000 Subnet Mask: 11111111.11111111.1111 0 000.00000000
Dựa vào số bit của địa chỉ Subnet Mask (ở đây đề bài cho là /20), ta xác định được số bit phần Net_ID = 20, và tính được số bit cần mượn là n = 1 (bit gạch chân). Muốn tìm mạng thứ bao nhiêu trong tổng số các mạng con mới, ta chỉ việc đem đổi số đó ra dạng nhị phân, sau đó đem chuỗi bit này thay thế cho toàn bộ các bit bị gạch chân bên trên, trong trường hợp khi đổi các số (mạng thứ i ) ra nhị phân mà không vừa đủ bằng số
bit gạch chân, ta chỉ việc thêm các bit 0 vào đầu dãy sốđã đổi sao cho đủ vừa khít các bit gạch chân để có thể thay thế. Điển hình, ở đây ta sẽ tính được:
Mạng con thứ 0:
Đổi 0 hệ 10 sang hệ nhị phân = 0, vì ở đây phần gạch chân chỉ có 1 bit, do đó ta không cần thêm bit 0 nữa; bê nguyên bit này thay thế cho phần gạch chân bên trên. Kết quả khi thay thế và đổi sang thập phân, mạng thứ 0 cần tính là:
50.68.16.0/21
Trong tất cả các trường hợp chia theo kỹ thuật VLSM, mạng con thứ 0 luôn trùng với địa chỉ mạng đang đem chia, chỉ có điều địa chỉ Subnet Mask mới đã được thay đổi
112 (tăng lên).
Mạng con thứ 1:
Đổi số 1 ở hệ 10 sang nhị phân = 1, tương tự trên, vì trường hợp này số bit gạch chân chỉ có 1 bit, ta không cần thêm bit 0 nữa; sử dụng chuỗi vừa được đổi ở dạng nhị phân là bit 1 , đem thay thế cho phần bit gạch chân trên, sau đó đổi ra hệ thập phân, kết quả mạng thứ1 là:
Mạng ban đầu đem chia: 50.68.16.0/20
00110010.01000100.0001 0 000.00000000 , sau khi được thay thế là: 00110010.01000100.0001 1 000.00000000 , đổi ra thập phân được:
50.68.24.0/21
Kết luận tại bước 1:
Lấy địa chỉ mạng thứ 0 là 50.68.16.0/21 đem cấp cho mạng yêu cầu 1200 host; Và lấy mạng thứ 1 là 50.68.24.0/21 đem chia tiếp (ở bước tiếp theo).
BƯỚC 2: Lấy địa chỉ 50.68.24.0/21 đem chia cho mạng yêu cầu 632 host. Tương tự bước 1, đầu tiên ta áp dụng công thức: 2ℎ- 2 632 -> h = 10 => cần mượn số bit là n = 32 - 21 - 10 = 1
=> số mạng con mới là 21 = 2 mạng con, địa chỉ Subnet Mask mới của 2 mạng con này là 21 + 1 = /22; mỗi mạng con này sẽ có 2ℎ - 2 = 210 - 2 = 1022 địa chỉ host.
Chi tiết các mạng con mới là:
Mạng con thứ 0: Tiến hành như bước 1, ta có kết quả là: 50.68.24.0/22
Mạng con thứ 1:
Đổi số 1 ở hệ 10 sang nhị phân = 1, tương tự trên, vì trường hợp này số bit gạch chân chỉ có 1 bit, ta không cần thêm bit 0 nữa; sử dụng chuỗi vừa được đổi ở dạng nhị phân là bit 1 , đem thay thế cho phần bit gạch chân trên, sau đó đổi ra hệ thập phân, kết quả mạng thứ 1 là:
Mạng ban đầu đem chia: 50.68.24.0/21
00110010.01000100.00011 0 00.00000000 , sau khi được thay thế là: 00110010.01000100.00011 1 00.00000000 , đổi ra thập phân được:
113
Kết luận tại bước 2:
Lấy địa chỉ mạng thứ 0 là 50.68.24.0/22 đem cấp cho mạng yêu cầu 632 host; Và lấy mạng thứ 1 là 50.68.28.0/22 đem chia tiếp (ở bước tiếp theo).
BƯỚC 3: Lấy địa chỉ 50.68.28.0/22 đem chia cho mạng yêu cầu 315 host
Tương tựtrên, đầu tiên ta áp dụng công thức: 2ℎ - 2 315 -> h = 9 => cần mượn số bit là n = 32 - 22 - 9 = 1
=> số mạng con mới là 21 = 2 mạng con, địa chỉ Subnet Mask mới của 2 mạng con này là 22 + 1 = /23; mỗi mạng con này sẽ có 2ℎ - 2 = 29 - 2 = 510 địa chỉ host
Chi tiết các mạng con mới là:
Mạng thứ 0: tương tựbước trên, ta có ngay kết quảlà 50.68.28.0/23
Mạng thứ 1:
Đổi số 1 ở hệ 10 sang nhị phân = 1, tương tự trên, vì trường hợp này số bit gạch chân chỉ có 1 bit, ta không cần thêm bit 0 nữa; sử dụng chuỗi vừa được đổi ở dạng nhị phân là bit 1 , đem thay thế cho phần bit gạch chân trên, sau đó đổi ra hệ thập phân, kết quả mạng thứ 1 là:
Mạng ban đầu đem chia: 50.68.28.0/22
00110010.01000100.000111 0 0.00000000 , sau khi được thay thế là: 00110010.01000100.000111 1 0.00000000 , đổi ra thập phân được:
50.68.30.0/23
Kết luận tại bước 3:
Lấy địa chỉ mạng thứ0 là 50.68.28.0/23 đem cấp cho mạng yêu cầu 315 host; Và lấy mạng thứ 1 là 50.68.30.0/23 đem chia tiếp (ở bước tiếp theo).
BƯỚC 4: Lấy địa chỉ 50.68.30.0/23 đem chia cho mạng yêu cầu 60 host
Tương tự trên, đầu tiên ta áp dụng công thức: 2ℎ - 2 60 -> h = 6 => cần mượn số bit là n = 32 - 23 - 6 = 3
=> số mạng con mới là 23 = 8 mạng con, địa chỉ Subnet Mask mới của 2 mạng con này là 23 + 3 = /26; mỗi mạng con này sẽ có 2ℎ - 2 = 26 - 2 = 62 địa chỉ host
Chi tiết các mạng con mới là:
114
Mạng thứ 1:
Đổi số 1 ở hệ 10 sang nhị phân = 1, tương tự trên, vì trường hợp này số bit gạch chân chỉ có 1 bit, ta không cần thêm bit 0 nữa; sử dụng chuỗi vừa được đổi ở dạng nhị phân là bit 1 , đem thay thế cho phần bit gạch chân trên, sau đó đổi ra hệ thập phân, kết quả mạng thứ 1 là:
Mạng ban đầu đem chia: 50.68.30.0/23
00110010.01000100.0001111 0.00 000000, sau khi được thay thế là: 0110010.01000100.0001111 0.01 000000 , đổi ra thập phân được:
50.68.30.64/26
..
Ở đây ta sẽ tính thêm một mạng bất kỳ để giải thích rõ hơn việc đổi ra nhị phân sau đó thay thế chuỗi bit gạch chân. Ví dụ, ta cần tìm mạng thứ 2 trong tổng số 8 mạng con là bao nhiêu, ta làm như sau:
Mạng thứ 2 tương đương với việc đổi số 3 ở dạng thập phân (vì ta có tổng số 8 mạng, bắt đầu từ mạng thứ0 đến mạng thứ7 cho nên Mạng thứ2 thì đồng nghĩa với số 3 trong tổng 8 mạng), đổi 3 (ở hệ 10) sang hệ nhị phân được: 11 (có 2 bit), vì số bit gạch chân là 3 nên ta phải thêm vào một bit 0 thành 011, bê nguyên chuỗi bit này thay thế hết các bit bị gạch chân trong mạng ban đầu:
00110010.01000100.0001111 0.00 000000, sau khi được thay thế là: 000110010.01000100.0001111 0.11 000000 , đổi ra thập phân được:
50.68.30.192/26 (là địa chỉ của mạng thứ 2) Kết luận tại bước 4:
Lấy địa chỉ mạng thứ 0 là 50.68.30.0/26 đem cấp cho mạng yêu cầu 60 host; Và lấy mạng thứ 1 là 50.68.30.64/26 đem chia tiếp (ở bước tiếp theo)
BƯỚC 5: Lấy địa chỉ 50.68.30.64/26 đem chia cho mạng yêu cầu 2 host
Tương tự trên, đầu tiên ta áp dụng công thức: 2ℎ - 2 2 -> h = 2 => cần mượn sốbit là n = 32 - 26 - 2 = 4
=> số mạng con mới là 24 = 16 mạng con, địa chỉ Subnet Mask mới của 16 mạng con này là 26 + 4 = /30; mỗi mạng con này sẽ có 2ℎ - 2 = 22 - 2 = 2 địa chỉ host
115
Chi tiết các mạng con mới là:
Mạng thứ 0: tương tự bước trên, ta có ngay kết quả là 50.68.30.64/30 Các mạng tiếp theo, nếu cần có thể tính tương tự trên.
Kết luận tại bước 5:
116
CHƯƠNG 5. CƠ SỞ GIAO THỨC ĐỊNH TUYẾN 5.1 Các khái niệm cơ bản trong định tuyến
5.1.1. Khái niệm định tuyến, bảng định tuyến
5.1.1.1. Định tuyến:
Là phương pháp xác định đường đi cho việc vận chuyển các gói tin từ nguồn đến đích hiệu quả nhất trong mạng Intranet và Internet. Chức năng này do các thiết bị ở lớp 3 (network) của mô hình OSI đảm nhiệm, thường là bộ định tuyến Router.
Để thực hiện được nhiệm vụ này mỗi Router trong mạng phải xây dựng cho mình một bảng chứa các thông tin cần thiết để từ đó tìm được con đường tối ưu nhất đến đích, bảng này gọi là bảng định tuyến (routing table).
Khi Router nhận được một packet, nó sẽ gỡ bỏ phần header của lớp 2 để tìm địa chỉ đích lớp 3. Sau khi có được địa chỉ đích của lớp 3, nó tìm kiếm tuyến đường trong bảng định tuyến:
- Nếu có tuyến đường tới đích, Router sẽ chuyển packet ra cổng tương ứng. Tiếp đó packet được đóng gói xuống lớp 2 tương ứng với loại đường truyền rồi đưa xuống môi trường truyền dẫn dưới dạng bit Quá trình này được tiếp tục cho tới khi packet được đưa tới đích thì thôi.
- Trong trường hợp không tìm thấy đường đến mạng đích, Router sẽ huỷ packet đó và gửi một gói ICMP network unreachable về nơi đã gửi packet.
5.1.1.2. Bảng định tuyến (routing table)
Là một bảng chứa thông tin về các tuyến đường trên mạng. Bảng định tuyến được lưu trữ trong RAM của router và được xây dựng thủ công bởi người quản trị mạng (định tuyến tính) hoặc bằng các giao thức định tuyến (định tuyến động).
Bảng định tuyến của mỗi giao thức khác nhau là khác nhau, nhưng đều có thể bao gồm những thông tin sau:
- Địa chỉ đích của mạng, mạng con của hệ thống. - Địa chỉ IP của Router chặng kế tiếp phải đến. - Cổng đi đến Router kế tiếp.
117 - Mặt nạ mạng của địa chỉ đích.
- Khoảng cách để đến đích.
- Thời gian từ khi Router cập nhật lần cuối.
5.1.1.3. Metric
Là một số đo mà giao thức định tuyến sử dụng để từ đó chọn ra con đường tối ưu nhất. Một giao thức định tuyến có thể sử dụng nhiều metric khác nhau. Các metric được kết hợp với nhau để tạo thành một metric tổng quát, đăt trưng cho liên kết. Các metric thường được sử dụng là:
+ Path Length (chiều dài tuyến đường): là metric cơ bản, thường dùng nhất. Path length trong Router được xác định bằng số Hop giữa nguồn và đích. Mỗi Hop được hiểu là một liên kết giữa 2 router.
+ Reliability (độ tin cậy): là khái niệm chỉ độ tin cậy của một liên kết. Ví dụ độ tin cậy thể hiện qua tần số bit lỗi Khái niệm này nhằm chỉ khẳ năng hoạt động ổn định của liên kết.
+ Delay (độ trễ): khái niệm này dùng để chỉ thời gian cần để chuyển một packet từ nguồn tới đích. Delay phục thuộc vào nhiều yếu tố: khoảng cách vật lý, băng thông của liên kết, đụng độ, tranh chấp đường truyền. Chính ví thế yếu tố này là một metric quan trọng trong thuật toán routing.
+ Bandwith (băng thông): là một metric quan trọng để đánh giá đường truyền. Băng thông chỉ lưu lượng dữ liệu tối đa có thể truyền trên liên kết.
5.1.2. Giao thức định tuyến và giao thức được định tuyến
5.1.2.1. Giao thức định tuyến:
Là các giao thức để các Router sử dụng để trao đổi thông tin định tuyến với các Router khác. Giao thức định tuyến được cài đặt tại các Router, 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ả đều có bảng Routing table tương thích nhau cũng như đường đi đến các mạng phải được xác định trong Routing table.
Các giao thức định tuyến được chia làm 2 loại:
118 - Giao thức định tuyến ngoại vùng: BGP.
Các chức năng của giao thức định tuyến:
- Học thông tin định tuyến về các mạng từ Router kế cận.
- Quảng bá thông tin định tuyến về các mạng đến các Router kế cận.
- Nếu có nhiều hơn một tuyến đường đến một mạng, chọn tuyến đường tốt nhất dựa vào metric.
- Khi sơ đồ mạng có sự thay đổi như một tuyến đường bị hỏng hoặc bổ sung thêm mạng mới, các router phân tích để xác định điều gì đã xảy ra, quảng bá thông tin về những thay đổi cho tất cảcác router khác, và tất cảcác router sau đó chọn con đường tốt nhất hiện tại cho mỗi mạng. Chức năng này gọi là hội tụ định tuyến. Khả năng hội tụ nhanh mà không gây ra vòng lặp là một trong những nhân tốt quan trọng khi lựa chọn giao thức định tuyến.
5.1.2.2. Giao thức được định tuyến:
Là giao thức được sử dụng để định hướng cho gói dữ liệu của người dùng. Một giao thức được định tuyến sẽ cung cấp đầy đủ thông tin về địa chỉ lớp mạng để gói dữ liệu có thể truyền từ host này tới host khác dựa trên cấu trúc địa chỉ đó.
Các giao thức được định tuyến gồm có: + Internet Protocol (IP).
+ Internetwork Packet Exchange (EPX).
5.1.3. Khoảng cách địa lý (Administrative Distance (AD))
AD là thông số được sử dụng để đánh giá độ tin cậy của thông tin định tuyến mà Router nhận được từ Router hàng xóm. AD là một số nguyên có giá trị từ 0 đến 255. Giá trị 0 tương ứng với độ tin cậy cao nhất và giá trị255 có nghĩa và tuyến đường này không được sử dụng để vận chuyển thông tin.
Khi một Router 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 Router. Thông tin định tuyến được đánh giá dựa vào AD, giả sử Router cài đặt nhiều hơn 1 giao thức định tuyến thì tuyến đường nào có AD nhỏ hơn sẽ được Router sử dụng
119 Mỗi giao thức định tuyến có một giá trị AD tương ứng:
+ Kết nối trực tiếp: 0 + Tuyến đường tĩnh: 1 + Rip: 120
+ OSPF: 110 + IGRP: 100
5.2 Các thuật toán định tuyến
5.2.1. Thuật toán tìm đường đi ngắn nhất
5.2.1.1. Thuật toán Bellman- Ford
Bài toán: cho đồ thị G với các đỉnh A,B,C,D có độ dài và đường đi như hình dưới, tìm đường đi ngắn nhất từ B đến D.