SlideShare a Scribd company logo
1 of 172
Download to read offline
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
NHẬP MÔN MẠNG MÁY TÍNH
Chương 4: Tầng Network
1
Computer Networking:
A Top-Down Approach
8th edition
Jim Kurose, Keith Ross
Pearson, 2020
A note on the use of these PowerPoint slides:
We’re making these slides freely available to all (faculty,
students, readers). They’re in PowerPoint form so you see the
animations; and can add, modify, and delete slides (including
this one) and slide content to suit your needs. They obviously
represent a lot of work on our part. In return for use, we only
ask the following:
▪ If you use these slides (e.g., in a class) that you mention
their source (after all, we’d like people to use our book!)
▪ If you post any slides on a www site, that you note that
they are adapted from (or perhaps identical to) our slides,
and note our copyright of this material.
For a revision history, see the slide note for this page.
Thanks and enjoy! JFK/KWR
All material copyright 1996-2020
J.F Kurose and K.W. Ross, All Rights Reserved
Chương 4: Tầng Network
2
Chương 4: Tầng Network (tầng Mạng)
Mục tiêu:
o Hiểu các nguyên lý nền tảng của
các dịnh vụ tầng Network
▪ Các mô hình dịch vụ của tầng
Network
▪ Forwarding và routing
▪ Cách router hoạt động
▪ Routing
▪ Broadcast, multicast
o Hiện thực trong Internet
▪ Giao thức IP
▪ NAT
▪ SDN
3
Chương 4: Nội dung
4.1 Tổng quan
o Mức dữ liệu
o Mức điều khiển
4.2 Virtual circuit network và datagram
network
o Các mạch ảo
o Mạng datagram
4.3 Cấu trúc bên trong router
o Cổng đầu vào, chuyển đổi, cổng đầu ra
o Quản lý bộ đệm, lập kế hoạch
4.4 IP: Internet Protocol
o Định dạng datagram
o IPv4 addressing
o DHCP
o NAT
o ICMP
o IPV6
4.5 Các thuật toán routing
o Link state
o Distance vector
4.6 Routing trong Internet
o Hierarchical routing
o RIP, OSPF, BGP
o SDN
o Quản lý mạng
4.7 Broadcast và Multicast routing
4
Các dịch vụ và giao thức tầng Network
o Truyền các segment từ máy gửi đến máy
nhận
▪ Máy gửi: đóng gói các segment thành các
datagram, chuyển đến tầng liên kết
▪ Máy nhận: phân phối các segment đến
giao thức tầng vận chuyển
o Giao thức tầng network trong thiết bị
Internet: máy tính, router
o Router:
▪ Kiểm tra các trường trong phần header
của tất cả các datagram đi qua nó
▪ Di chuyển các datagram từ cổng đầu vào
sang cổng đầu ra để truyền datagram dọc
theo đường dẫn end-end
5
Hai chức năng chính của tầng network
Chức năng tầng network:
o Forwarding (chuyển tiếp): di
chuyển các gói dữ liệu từ cổng
đầu vào của router đến cổng đầu
ra phù hợp của router
o Routing (định tuyến): xác định
tuyến đường di chuyển cho các
gói dữ liệu từ nguồn đến đích
▪ Các thuật toán định tuyến
Tương tự: tham gia một chuyến đi
▪ Chuyển tiếp: quá trình chuyển qua
một nhánh đường xác định
chuyển tiếp
định tuyến (lộ trình)
▪ Định tuyến: quá trình lập kế hoạch
chuyến đi từ nguồn đến đích
6
Tầng network: mức dữ liệu (data plane) và mức điều khiển (control plane)
Mức dữ liệu:
o Cục bộ, trên mỗi router
o Xác định cách datagram đến cổng
đầu vào của router được chuyển
tiếp đến cổng đầu ra của router
Mức điều khiển:
o Toàn mạng, logic
o Xác định cách datagram được định
tuyến giữa các router dọc theo
đường dẫn đầu cuối từ máy nguồn
đến máy đích
1
2
3
0111
giá trị địa chỉ đích trong
header của gói tin
o Hai cách tiếp cận mức điều khiển:
▪ Thuật toán định tuyến truyền
thống: được thực hiện trong
router
▪ Mạng được xác định bằng phần
mềm (SDN) : được triển khai
trong các máy chủ (từ xa)
7
Mức điều khiển ở mỗi router
Các thành phần thuật toán định tuyến riêng lẻ trong mỗi và mọi router
tương tác trong mức điều khiển
thuật toán
định tuyến
Mức dữ liệu
Mức điều khiển
1
2
0111
3
giá trị địa chỉ đích trong
header của gói tin
8
Mức điều khiển được xác định bằng phần mềm (SDN – Software-Defined-
Networking)
Mức dữ liệu
Mức điều khiển
Điều khiển từ xa
CA
CA CA CA CA
1
2
0111
3
giá trị địa chỉ đích trong
header của gói tin
9
Mô hình dịch vụ mạng
Các dịch vụ cho datagram riêng lẻ :
o Đảm bảo truyền
o Độ trễ dưới 40 mili giây
Các dịch vụ cho một luồng
datagram:
o Truyền datagram theo thứ tự
o Đảm bảo băng thông tối thiểu
để truyền
o Hạn chế các thay đổi trong
khoảng trống giữa các gói tin
Hỏi: Mô hình dịch vụ nào cho
“kênh” truyền datagram từ
máy gửi đến máy nhận?
10
Mô hình dịch vụ tầng mạng
Kiến trúc
Mạng
Internet
ATM
ATM
Internet
Internet
Mô hình
dịch vụ
nỗ lực tốt nhất
Tốc độ không đổi
Tốc độ bit khả dụng
Đảm bảo dịch vụ
(RFC 1633 )
phân tán (RFC 2475 )
Băng thông
không có
tỷ lệ không đổi
đảm bảo tối thiểu
Đúng
khả thi
Mất mát
KHÔNG
Đúng
KHÔNG
Đúng
có khả năng
Thứ tự
KHÔNG
Đúng
Đúng
Đúng
có khả năng
thời gian
KHÔNG
Đúng
KHÔNG
Đúng
KHÔNG
Không đảm bảo về :
i. Truyền thành công datagram tới đích
ii. Thời gian hoặc thứ tự truyền
iii. Băng thông sẵn có cho luồng đầu cuối
Mô hình dịch vụ Internet “nỗ lực tốt nhất”
Đảm bảo chất lượng dịch vụ (QoS)?
11
Mô hình dịch vụ tầng mạng
Kiến trúc
Mạng
Internet
ATM
ATM
Internet
Internet
Mô hình
Dịch vụ
nỗ lực tốt nhất
tốc độ không đổi
tốc độ bit khả dụng
đảm bảo dịch vụ
(RFC 1633 )
phân tán (RFC 2475 )
Băng thông
không có
tỷ lệ không đổi
đảm bảo tối thiểu
có
khả thi
Mất mát
không
có
không
có
khả thi
Thứ tự
không
có
có
có
khả thi
Thời gian
không
có
không
có
có
Đảm bảo chất lượng dịch vụ (QoS)?
12
Chương 4: Nội dung
4.1 Tổng quan
o Mức dữ liệu
o Mức điều khiển
4.2 Virtual circuit network và datagram
network
o Các mạch ảo
o Mạng datagram
4.3 Cấu trúc bên trong router
o Cổng đầu vào, chuyển đổi, cổng đầu ra
o Quản lý bộ đệm, lập kế hoạch
4.4 IP: Internet Protocol
o Định dạng datagram
o IPv4 addressing
o DHCP
o NAT
o ICMP
o IPV6
4.5 Các thuật toán routing
o Link state
o Distance vector
4.6 Routing trong Internet
o Hierarchical routing
o RIP, OSPF, BGP
o SDN
o Quản lý mạng
4.7 Broadcast và Multicast routing
13
Dịch vụ connection (hướng kết nối) và connection-less (phi kết nối)
o Mạng datagram cung cấp dịch vụ connectionless tại tầng network
o Mạng mạch ảo (virtual-circuit network) cung cấp dich vụ connection tại
tầng network
o Tương tự như các dịch vụ kết nối định hướng và không định hướng
của tầng transport, nhưng:
▪ Dịch vụ: từ host này đến host kia (host-to-host)
▪ Không lựa chọn: network chỉ cung cấp 1 dịch vụ
▪ Thực hiện: trong mạng lõi
14
Các mạch ảo (Virtual circuits)
o Thiết lập cuộc gọi, chia nhỏ mỗi cuộc gọi trước khi dữ liệu có thể truyền
o Mỗi packet mang định dạng của kết nối ảo (VC identifier) (không phải là
địa chỉ của host đích)
o Mỗi router trên đường đi từ nguồn tới đích duy trì trạng thái cho mỗi kết
nối mà gói đi qua.
o Đường link, các tài nguyên router (băng thông, bộ nhớ đệm) có thể
được cấp phát cho kết nối ảo (các tài nguyên dành riêng= dịch vụ có
thể dự đoán trước)
“Đường đi từ nguồn tới đích tương tự như mạng điện thoại
(telephone circuit)”
▪ Hiệu quả
▪ Các hoạt động của mạng dọc theo đường đi từ nguồn tới đích
15
Sự thực hiện kết nối ảo (VC)
Một kết nối ảo bao gồm:
1. Đường đi (path) từ nguồn tới đích
2. Số hiệu kết nối ảo (VC numbers), một số cho một kết nối dọc theo đường đi
3. Các mục trong các bảng forwarding ở trong các router dọc theo đường đi
o Packet thuộc về kết nối ảo mang số hiệu (chứ không phải là điểm đến)
o Số hiệu của kết nối ảo có thể được thay đổi trên mỗi kết nối
▪ Số hiệu mới của kết nối ảo được cấp phát từ bảng forwarding
16
Bảng forwarding của kết nối ảo
12 22 32
1
2
3
VC number
interface
number
Cổng vào
1 12 3 22
2 63 1 18
3 7 2 17
1 97 3 87
… … … …
Bảng forwarding trong router
ở góc trái trên cùng:
Các router kết nối ảo duy trì thông tin trạng thái kết nối!
số hiệu của
kết nối ảo vào Cổng ra
số hiệu của
kết nối ảo ra
17
application
transport
network
data link
physical
Các mạch ảo: các giao thức gửi tín hiệu
o Được dùng để thiết lập, duy trì kết nối ảo
o Được dùng trong ATM, frame-relay, X.25
o Không được sử dụng trong Internet ngày nay
1. Khởi tạo cuộc gọi 2. Cuộc gọi đến
3. Chấp nhận cuộc gọi
4. Cuộc gọi được kết nối
5. Bắt đầu dòng dữ liệu 6. Nhận dữ liệu
application
transport
network
data link
physical
18
Mạng Datagram
o Không thiết lập cuộc gọi tại tầng network
o Các router: không có trạng thái về các kết nối giữa 2 điểm cuối
▪ Không có khái niệm về mức network của “kết nối”
o Các packet được chuyển dùng địa chỉ của host đích
1. Gởi các datagram
application
transport
network
data link
physical
application
transport
network
data link
physical
2. Nhận datagram
19
1
2
3
Bảng Datagram forwarding
Địa chỉ IP đích trong
header của packet đến
Thuật toán routing
local forwarding table
dest address output link
address-range 1
address-range 2
address-range 3
address-range 4
3
2
2
1
4 tỉ địa chỉ IP, vì liệt kê
ra 1 dãy các địa chỉ hơn
là liệt kê ra từng địa chỉ
(các mục tổng hợp)
20
Mạng datagram hoặc mạch ảo: tại sao?
Internet (datagram)
o Dữ liệu trao đổi giữa các máy tính
▪ Dịch vụ “mềm dẻo, không định thì chặt
chẽ.
o Nhiều kiểu link
▪ Các đặc tính khác nhau
▪ Khó đồng nhất dịch vụ
o Các hệ thống đầu cuối “thông minh” (các
máy tính)
▪ Có thể thích ứng, điều khiển và sửa lỗi
▪ Mạng bên trong đơn giản, phức tạp tại
“mạng bên ngoài”
ATM (mạch ảo)
o Được phát triển từ hệ thống điện
thoại
o Đàm thoại của con người:
▪ Định thì chặt chẽ, yêu cầu về độ
tin cậy
▪ Cần cho các dịch vụ bảo đảm
o Các hệ thống đầu cuối “ít thông
minh”
▪ Điện thoại
▪ Bên trong mạng phức tạp
21
Chương 4: Nội dung
4.1 Tổng quan
o Mức dữ liệu
o Mức điều khiển
4.2 Virtual circuit network và datagram
network
o Các mạch ảo
o Mạng datagram
4.3 Cấu trúc bên trong router
o Cổng đầu vào, chuyển đổi, cổng đầu
ra
o Quản lý bộ đệm, lập kế hoạch
4.4 IP: Internet Protocol
o Định dạng datagram
o IPv4 addressing
o DHCP
o NAT
o ICMP
o IPV6
4.5 Các thuật toán routing
o Link state
o Distance vector
4.6 Routing trong Internet
o Hierarchical routing
o RIP, OSPF, BGP
o SDN
o Quản lý mạng
4.7 Broadcast và Multicast routing
22
Tổng quan kiến trúc Router
Hai chức năng chính của router:
o Chạy các giao thức/thuật toán routing (RIP, OSPF, BGP)
o Chuyển tiếp các datagram từ đường link vào tới đường link ra
high-seed
switching
fabric
routing
processor
router input ports router output ports
forwarding data plane
(hardware) operates in
nanosecond time frame
routing, management
control plane (software)
operates in millisecond time frame
23
Chức năng cổng đầu vào
Switch
fabric
Line
Termination
Tầng vật lý:
tiếp nhận mức bit
Link
Layer
Protocol
(receive)
Tầng liên kết:
ví dụ: Ethernet
(Chương 5)
Lookup,
Forwarding
queueing
Chuyển mạch phi tập trung:
o Sử dụng các giá trị trong header, tra cứu cổng đầu ra bằng cách sử
dụng bảng chuyển tiếp trong bộ nhớ cổng đầu vào (“match plus
action”)
o Mục tiêu: hoàn thành xử lý cổng đầu vào ở 'tốc độ đường truyền’
o Hàng đợi cổng đầu vào: nếu datagram đến nhanh hơn tốc độ
chuyển tiếp vào
24
Chức năng cổng đầu vào
Switch
fabric
Line
Termination
Tầng vật lý:
tiếp nhận mức bit
Link
Layer
Protocol
(receive)
Tầng liên kết:
ví dụ: Ethernet
(Chương 5)
Lookup,
Forwarding
queueing
Chuyển mạch phi tập trung :
o Sử dụng các giá trị trong header, tra cứu cổng đầu ra bằng cách sử
dụng bảng chuyển tiếp trong bộ nhớ cổng đầu vào (“match plus
action”)
o Chuyển tiếp dựa trên đích: chỉ chuyển tiếp dựa trên địa chỉ IP đích
(truyền thống)
o Chuyển tiếp tổng quát: chuyển tiếp dựa trên bất kỳ tập hợp giá trị
nào trong trong header
25
Hỏi: điều gì sẽ xảy ra nếu các phạm vi không được phân chia hợp lý?
Chuyển tiếp dựa trên địa chỉ đích đến
3
26
Kết hợp tiền tố dài nhất
Khi tìm mục nhập bảng chuyển tiếp cho địa chỉ đích nhất định, hãy
sử dụng tiền tố địa chỉ dài nhất khớp với địa chỉ đích
Tiền tố phù hợp dài nhất
Phạm vi địa chỉ đích
11001000 00010111 00010
11001000 00010111 00011000
11001000 00010111 00011
Ngược lại
Cổng kết nối
0
1
2
3
********
***
********
***
********
11001000 00010111 00011000 10101010
ví dụ :
Cổng nào?
Cổng nào?
11001000 00010111 00010110 10100001
27
Kết hợp tiền tố dài nhất
Khi tìm mục nhập bảng chuyển tiếp cho địa chỉ đích nhất định, hãy
sử dụng tiền tố địa chỉ dài nhất khớp với địa chỉ đích.
Tiền tố phù hợp dài nhất
Phạm vi địa chỉ đích
11001000 00010111 00010
11001000 00010111 00011000
11001000 00010111 00011
nếu không thì
Cổng kết nối
0
1
2
3
11001000 00010111 00011000 10101010
ví dụ :
Cổng nào?
Cổng nào?
********
***
********
***
********
11001000 00010111 00010110 10100001
match!
28
Kết hợp tiền tố dài nhất
Thi tìm mục nhập bảng chuyển tiếp cho địa chỉ đích nhất định, hãy
sử dụng tiền tố địa chỉ dài nhất khớp với địa chỉ đích.
Tiền tố phù hợp dài nhất
Phạm vi địa chỉ đích
11001000 00010111 00010
11001000 00010111 00011000
11001000 00010111 00011
nếu không thì
Cổng kết nối
0
1
2
3
11001000 00010111 00011000 10101010
ví dụ :
Cổng nào?
Cổng nào?
********
***
********
***
********
11001000 00010111 00010110 10100001
match!
29
Kết hợp tiền tố dài nhất
Khi tìm mục nhập bảng chuyển tiếp cho địa chỉ đích nhất định, hãy
sử dụng tiền tố địa chỉ dài nhất khớp với địa chỉ đích.
Tiền tố phù hợp dài nhất
Phạm vi địa chỉ đích
11001000 00010111 00010
11001000 00010111 00011000
11001000 00010111 00011
nếu không thì
Cổng kết nối
0
1
2
3
11001000 00010111 00011000 10101010
ví dụ :
Cổng nào?
Cổng nào?
********
***
********
***
********
11001000 00010111 00010110 10100001
match!
30
Switching fabrics
o Chuyển packet từ cổng đầu vào đến cổng đầu ra thích hợp
High-speed
switching
fabric
N cổng đầu vào N cổng đầu ra
.
.
.
.
.
.
o Tốc độ chuyển đổi: tốc độ mà các packet có thể được chuyển từ
đầu vào sang đầu ra
▪ Thường được đo bằng bội số của tốc độ dòng đầu vào/đầu ra
▪ N đầu vào: tốc độ chuyển đổi N lần tốc độ dòng mong muốn
r
r
r
r
(tỷ lệ: NR, lý
tưởng)
31
Switching fabrics
o Chuyển packet từ cổng đầu vào đến cổng đầu ra thích hợp
bus
memory
memory
crossbar
o Ba loại switching fabric chính:
o Tốc độ chuyển đổi: tốc độ mà các packet có thể được chuyển từ
đầu vào sang đầu ra
▪ Thường được đo bằng bội số của tốc độ dòng đầu vào/đầu ra
▪ N đầu vào: tốc độ chuyển đổi N lần tốc độ dòng mong muốn
32
Switching thông qua bộ nhớ (memory)
Các router thế hệ đầu tiên:
o Các máy tính cổ điển với switching dưới sự kiểm soát trực tiếp của CPU
o Packet được sao chép vào bộ nhớ của hệ thống
o Tốc độ bị giới hạn bởi băng thông của bộ nhớ (2 bus qua mỗi datagram)
Cổng vào
(ví dụ,
Ethernet)
Memory
Cổng ra
(ví dụ,
Ethernet)
Bus hệ thống
33
Switching thông qua bus
o Datagram từ bộ nhớ cổng đầu vào đến bộ nhớ cổng đầu ra thông qua
một bus chia sẻ
o Tranh chấp bus: tốc độ chuyển mạch bị giới hạn bởi băng thông của bus
o Bus 32 Gbps trên Cisco 5600: đủ tốc độ cho các router truy cập
34
Switching thông qua interconnectiong network
o Mạng Crossbar, Clos, các mạng kết nối khác ban đầu được phát triển để
kết nối các bộ vi xử lý trong bộ đa xử lý
Switch đa tầng 8x8
được xây dựng từ các switch có kích thước nhỏ hơn
Crossbar 3x3
o Switch đa tầng: switch nxn được tạo thành
từ nhiều switch nhỏ hơn
o Khai thác song song:
▪ Phân mảnh datagram vào các ô có độ
dài cố định khi đi vào
▪ Chuyển các ô thông qua fabric, tập hợp
lại datagram khi đi ra
35
Switching thông qua interconnectiong network
o Chia tỷ lệ, sử dụng song song nhiều “mặt phẳng” switching:
o Tăng tốc, mở rộng quy mô thông qua song song
o Router CRS của Cisco:
▪ Đơn vị cơ bản: 8
switching planes
▪ Mỗi mặt phẳng: mạng
kết nối 3 tầng
▪ Khả năng switching lên
đến 100 Tbps
36
Hàng đợi tại cổng đầu vào
o Nếu việc switching chậm hơn so với các cổng đầu vào kết hợp -> hàng
đợi có thể xảy ra ở đầu vào
o Chậm trễ và mất dữ liệu do tràn bộ đệm đầu vào!
tranh chấp tại cổng đầu ra: chỉ có thể
truyền một packet màu đỏ, packet màu
đỏ thấp hơn sẽ bị chặn
Switch
fabric
One packet time later: packet
màu xanh lá cây bị chặn HOL
Switch
fabric
o Chặn Head-of-the-Line (HOL): datagram xếp hàng ở phía trước hàng đợi
ngăn những datagram khác trong hàng đợi di chuyển về phía trước
37
Hàng đợi cổng đầu ra
o Bộ đệm khi các datagram đến từ
fabric nhanh hơn tốc độ truyền của
liên kết. Chính sách loại bỏ:
datagram nào sẽ bị loại bỏ nếu
không có bộ đệm trống?
o Nguyên tắc lập lịch chọn trong số
các datagram được xếp hàng đợi
để truyền
Datagram có thể bị mất
do tắc nghẽn, thiếu bộ
đệm
Lập kế hoạch ưu tiên – có
hiệu suất tốt nhất, tính
trung lập của mạng
Đây là một slide thực sự quan trọng
line
termination
Link layer
Protocol
(send)
Switch
fabric
(rate: NR)
datagram
buffer
queueing R
38
Hàng đợi cổng đầu ra
tại t, các packet nhiều
hơn từ đầu vào đến
đầu ra
one packet time later
Switch
fabric
Switch
fabric
o Đệm khi tốc độ đến vượt quá tốc độ dòng đầu ra
o Xếp hàng (trễ) và mất gói do tràn bộ đệm tại cổng đầu ra!
39
Bao nhiêu bộ đệm?
o Quy tắc ngón tay cái RFC 3439: bộ đệm trung bình bằng “typical” RTT
(giả sử 250 mili giây) lần dung lượng đường link C
▪ Ví dụ: liên kết C = 10 Gbps: bộ đệm 2,5 Gbit
o Nhưng quá nhiều bộ đệm có thể làm tăng độ trễ (đặc biệt là trong các
router gia đình)
▪ RTT dài: hiệu suất kém cho các ứng dụng thời gian thực, phản hồi
TCP chậm chạp
▪ kiểm soát tắc nghẽn dựa trên độ trễ: “giữ liên kết cổ chai vừa đủ đầy
(bận)”
RTTxC
N
o Đề xuất gần đây hơn: với N luồng, bộ đệm bằng
40
Quản lý bộ đệm
Quản lý bộ đệm:
o Drop: packet nào được thêm
vào, drop khi bộ đệm đầy
• Drop ở cuối: drop packet đến
▪ Ưu tiên: drop/remove trên cơ
sở độ ưu tiên
line
termination
link
layer
protocol
(send)
switch
fabric
datagram
buffer
queueing
scheduling
o Đánh dấu: đánh dấu packet để
báo hiệu tắc nghẽn (ECN, RED)
R
queue
(waiting area)
packet
arrivals
packet
departures
link
(server)
Abstraction: queue
R
41
Lập lịch truyền packet: FCFS
Lập lịch truyền packet: quyết định
packet nào sẽ gửi tiếp theo trên liên
kết
o Đến trước được phục vụ trước
o Độ ưu tiên
o Thi đấu vòng tròn
o Xếp hàng công bằng có trọng số
FCFS: các packet được truyền
theo thứ tự đến cổng ra
o Còn được gọi là: Nhập trước
xuất trước (FIFO)
o Ví dụ thế giới thực?
queue
(waiting area)
packet
arrivals
packet
departures
link
(server)
Abstraction: queue
R
42
Chính sách lập kế hoạch: priority
Lập kế hoạch ưu tiên:
o Traffic đến được phân loại, xếp hàng
theo lớp
▪ Bất kỳ trường header nào cũng có
thể được sử dụng để phân loại
hàng đợi ưu tiên cao
hàng đợi ưu tiên thấp
lượt đến
phân loại khởi hành
liên kết
1 3 2 4 5
lượt đến
khởi hành
packet
trong
dịch vụ
o Gửi packet từ hàng đợi ưu tiên cao
nhất có packet đệm
• FCFS trong lớp ưu tiên
1 3 4
2
5
1 3 2 4 5
43
Chính sách lập kế hoạch: round robin
Lịch Round Robin (RR):
o Traffic đến được phân loại, xếp hàng theo lớp
▪ Bất kỳ trường header nào cũng có thể được sử dụng để phân loại
phân loại
lượt đến
khởi hành
liên kết
r
o Máy chủ theo chu kỳ, liên tục
quét hàng đợi, lần lượt gửi một
packet hoàn chỉnh từ mỗi lớp
(nếu có)
44
Chính sách lập kế hoạch: hàng đợi công bằng có trọng số
Xếp hàng công bằng có trọng số (WFQ):
o Round Robin tổng quát
phân loại
lượt đến
khởi hành
liên kết
r
w 1
w 2
w 3
w i
S j w j
▪ Đảm bảo băng thông tối thiểu
(per-traffic-class)
▪ Mỗi lớp i , có trọng số w i , và
được trọng số lượng dịch vụ
trong mỗi chu kỳ:
45
Sidebar: Tính trung lập của mạng
Tính trung lập của mạng là gì?
o Kỹ thuật: cách một ISP nên chia sẻ/phân bổ tài nguyên của mình
▪ Lập lịch packet, quản lý bộ đệm là các cơ chế
o Nguyên tắc kinh tế, xã hội
▪ Bảo vệ tự do ngôn luận
▪ Khuyến khích đổi mới, cạnh tranh
o Thi hành hợp pháp các quy tắc và chính sách
Các quốc gia khác nhau có “quan điểm” khác nhau về tính trung lập của mạng
46
Chương 4: Nội dung
4.1 Tổng quan
o Mức dữ liệu
o Mức điều khiển
4.2 Virtual circuit network và datagram
network
o Các mạch ảo
o Mạng datagram
4.3 Cấu trúc bên trong router
o Cổng đầu vào, chuyển đổi, cổng đầu ra
o Quản lý bộ đệm, lập kế hoạch
4.4 IP: Internet Protocol
o Định dạng datagram
o IPv4 addressing
o DHCP
o NAT
o ICMP
o IPV6
4.5 Các thuật toán routing
o Link state
o Distance vector
4.6 Routing trong Internet
o Hierarchical routing
o RIP, OSPF, BGP
o SDN
o Quản lý mạng
4.7 Broadcast và Multicast routing
47
Tầng Network: Internet
Chức năng tầng mạng của host, router:
giao thức IP
•định dạng datagram
•địa chỉ
•quy ước xử lý gói tin
giao thức ICMP
•báo cáo lỗi
•router " báo hiệu"
Tầng Transport: TCP, UDP
Tầng Link
Tầng Physical
Tầng
Network
bảng
forwarding
Thuật toán lựa chọn
đường: được triển
khai trong
• giao thức định
tuyến (OSPF, BGP)
• bộ điều khiển SDN
48
ver length
32 bits
payload data
(variable length,
typically a TCP
or UDP segment)
16-bit identifier
header
checksum
time to
live
source IP address
head.
len
type of
service
flgs
fragment
offset
upper
layer
destination IP address
options (if any)
Định dạng của IP datagram
Số phiên bản giao thức IP
Kích thước header (byte)
giao thức tầng trên (ví dụ: TCP hoặc
UDP)
Tổng độ dài datagram
(byte)
“loại” dịch vụ:
▪ Diffserv (0:5)
▪ ECN (6:7)
sự phân mảnh/
tổng hợp
TTL: số hop tối đa còn lại
(giảm ở mỗi router)
▪ 20 byte TCP
▪ 20 byte IP
▪ = 40 byte + app
layer overhead for
TCP+IP
overhead
tuỳ chọn
Địa chỉ IP nguồn 32 bit
Địa chỉ IP đích 32-bit
kiểm tra tính toàn vẹn
Độ dài tối đa: 64K byte
Thông thường: 1500 byte trở lại
49
Phân mảnh và tổng hợp IP
o Các đường link mạng có MTU (max
transfer size - kích thước truyền tối đa)
- frame lớn nhất có thể ở mức kết nối
▪ Loại liên kết khác nhau, MTU khác
nhau
o Datagram lớn được chia (“phân mảnh”)
trong mạng
▪ Một datagram trở thành một số
datagram
▪ Chỉ “tổng hợp” tại điểm đến
▪ Các bit của IP header được sử dụng
để xác định, sắp xếp các fragment liên
quan
phân mảnh:
vào: một datagram lớn
ra: 3 datagram nhỏ hơn
tổng hợp lại
…
…
50
Phân mảnh và tổng hợp IP
ID
=x
offset
=0
fragflag
=0
length
=4000
ID
=x
offset
=0
fragflag
=1
length
=1500
ID
= x
offset
=185
fragflag
=1
length
=1500
ID
=x
offset
=370
fragflag
=0
length
=1040
một datagram lớn trở thành
một số datagram nhỏ hơn
Ví dụ:
▪ Gói tin 4000 byte
▪ MTU = 1500 byte
1480 byte trong
trường dữ liệu
offset =
1480/8
51
Địa chỉ IP: giới thiệu
o Địa chỉ IP: Mã định danh 32 bit
được liên kết với từng interface
của host hoặc router
o Interface: kết nối giữa host/router
và liên kết vật lý
▪ Router thường có nhiều interface
▪ Host thường có một hoặc hai
interface (ví dụ: Ethernet có dây,
802.11 không dây)
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2
223.1.3.1
223.1.3.27
223.1.1.1 = 11011111 00000001 00000001 00000001
223 1 1
1
ký hiệu địa chỉ IP dạng thập phân:
52
Địa chỉ IP: giới thiệu
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2
223.1.3.1
223.1.3.27
Hỏi: các interface thực sự được
kết nối như thế nào?
1: có dây
Interface được kết
nối bằng bộ chuyển
mạch Ethernet
2: Interface không dây được kết
nối bởi trạm phát WiFi
Hiện tại: không cần lo lắng về
cách một interface được kết
nối với interface khác (không
có router can thiệp)
Đáp: chúng ta sẽ tìm
hiểu về điều đó trong
phần sau
53
Mạng con
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2
223.1.3.1
223.1.3.27
o Mạng con là gì ?
▪ Interface của thiết bị có thể tiếp
cận vật lý với nhau mà không cần
thông qua router can thiệp
mạng gồm 3 mạng con
o Địa chỉ IP có cấu trúc:
▪ Phần mạng con: các thiết bị trong
cùng một mạng con có chung các
bit bậc cao
▪ Phần host: các bit thứ tự thấp
còn lại
54
Mạng con
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2
223.1.3.1
223.1.3.27
o Công thức xác định mạng
con:
▪ Tách từng interface khỏi host
hoặc router của nó, tạo ra các
“đảo” của các mạng bị cô lập
▪ Mỗi mạng bị cô lập được gọi
là mạng con
mặt nạ mạng con: /24
(24 bit bậc cao: phần mạng con của địa chỉ IP)
mạng con
223.1.3.0/24
mạng con 223.1.1.0/24
mạng con 223.1.2.0/24
55
Mạng con
o Các mạng con ở đâu?
o /24 địa chỉ mạng con
là gì?
223.1.1.1
223.1.1.3
223.1.1.4
223.1.2.2
223.1.2.6
223.1.3.2
223.1.3.1
223.1.3.27
223.1.1.2
223.1.7.0
223.1.7.1
223.1.8.0
223.1.8.1
223.1.9.1
223.1.9.2
223.1.2.1
mạng con 223.1.1/24
mạng con 223.1.7/24
mạng con 223.1.3/24
mạng con 223.1.2/24
mạng con 223.1.9/24
mạng con 223.1.8/24
56
Địa chỉ IP: CIDR
CIDR: C lassless I nter D omain R outing (phát âm là “cider”)
o Phần mạng con của địa chỉ có độ dài tùy ý
o Định dạng địa chỉ: abcd/x , trong đó x là # bit trong phần mạng con
của địa chỉ
11001000 00010111 0001000 0 00000000
mạng con
phần
host
phần
200.23.16.0/23
57
Địa chỉ IP: làm thế nào để có được một địa chỉ?
Đó thực sự là hai câu hỏi:
1. Hỏi: Làm cách nào để host nhận được địa chỉ IP trong mạng của nó
(phần địa chỉ host)?
2. Hỏi: Làm thế nào để một mạng có được địa chỉ IP cho chính nó (phần
mạng của địa chỉ)
Làm thế nào để host có được địa chỉ IP?
o Được mã hóa cứng bởi sysadmin trong file cấu hình (ví dụ:
/etc/rc.config trong UNIX)
o DHCP: Dynamic Host Configuration Protocol: tự động lấy địa chỉ từ
máy chủ DHCP
• “cắm là chạy”
58
DHCP: Giao thức cấu hình host động
Mục tiêu: host tự động lấy địa chỉ IP từ máy chủ mạng khi nó “tham
gia” mạng
o Có thể gia hạn việc thuê địa chỉ đang sử dụng
o Cho phép sử dụng lại địa chỉ (chỉ giữ địa chỉ khi kết nối/ bật)
o Hỗ trợ cho người dùng di động tham gia/rời khỏi mạng
Tổng quan về DHCP:
o Host gởi quảng bá thông điệp DHCP discover [tùy chọn]
o Máy chủ DHCP phản hồi với thông điệp DHCP offer [tùy chọn]
o Host yêu cầu địa chỉ IP: thông điệp DHCP request
o Máy chủ DHCP gửi địa chỉ: thông điệp DHCP ack
59
Kịch bản DHCP client-server
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2
223.1.3.1
223.1.3.27
DHCP server
223.1.2.5
máy khách DHCP cần địa
chỉ trong mạng này
Thông thường, máy chủ DHCP sẽ
được đặt chung với router, phục
vụ tất cả các mạng con mà router
được gắn vào.
60
Kịch bản DHCP client-server
Máy chủ DHCP: 223.1.2.5
Client vào mạng
DHCP discover
src : 0.0.0.0, 68
đích: 255.255.255.255,67
yiaddr: 0.0.0.0
ID giao dịch: 654
DHCP offer
src: 223.1.2.5, 67
đích: 255.255.255.255, 68
yiaddrr: 223.1.2.4
ID giao dịch: 654
trọn đời: 3600 giây
DHCP request
src: 0.0.0.0, 68
đích:: 255.255.255.255, 67
yiaddrr: 223.1.2.4
ID giao dịch: 655
trọn đời: 3600 giây
DHCP ACK
src: 223.1.2.5, 67
đích: 255.255.255.255, 68
yiaddrr: 223.1.2.4
ID giao dịch: 655
trọn đời: 3600 giây
Quảng bả: có máy chủ
DHCP ngoài đó không?
Quảng bá: Tôi là máy chủ
DHCP! Đây là một địa chỉ
IP bạn có thể sử dụng
Quảng bá: OK. Tôi muốn
sử dụng địa chỉ IP này!
Quảng bá: OK. Bạn đã có
địa chỉ IP đó!
Hai bước trên có thể được
bỏ qua “nếu client nhớ và
muốn sử dụng lại địa chỉ
mạng đã cấp phát trước
đó” [RFC 2131]
61
DHCP: nhiều hơn địa chỉ IP
DHCP có thể cung cấp nhiều hơn địa chỉ IP được phân bổ trên
mạng con:
o Địa chỉ first-hop của router (địa chỉ default gateway) cho
client
o Tên và địa chỉ IP của máy chủ DNS
o Mặt nạ mạng (chỉ ra phần mạng so với phần địa chỉ máy chủ)
62
DHCP: ví dụ
o Laptop kết nối sẽ sử dụng DHCP
để lấy địa chỉ IP, địa chỉ first-hop
của router, địa chỉ của máy chủ
DNS.
o Thông điệp DHCP REQUEST
được đóng gói trong UDP, được
đóng gói trong IP, được đóng gói
trong Ethernet.
o Quảng bá frame Ethernet (đích:
FFFFFFFFFFFF ) trên mạng LAN,
được nhận tại router chạy máy chủ
DHCP.
o Ethernet được giải mã thành IP,
giải mã UDP thành DHCP.
63
DHCP: ví dụ
o Máy chủ DHCP tạo DHCP ACK
chứa địa chỉ IP của client, địa chỉ
IP first-hop của router cho client,
tên & địa chỉ IP của máy chủ
DNS
o Phản hồi của máy chủ DHCP
được đóng gói và được chuyển
tiếp tới client, giải mã thành
DHCP tại client
router với DHCP
máy chủ tích hợp vào
router
DHCP
DHCP
DHCP
DHCP
DHCP
UDP
địa chỉ IP
Eth
phò
DHCP
DHCP
UDP
địa chỉ IP
Eth
phò
DHCP
DHCP
DHCP
DHCP
o Client bây giờ biết địa chỉ IP, tên
và địa chỉ IP của máy chủ DNS,
địa chỉ IP first-hop của router
64
Địa chỉ IP: làm thế nào để có được một địa chỉ?
Hỏi: Làm thế nào để mạng nhận được phần mạng con của địa chỉ IP?
Đáp: Được phân bổ một phần không gian địa chỉ của nhà cung cấp ISP
ISP’s block 11001000 00010111 0001 0000 00000000 200.23.16.0/20
Sau đó, ISP có thể phân bổ không gian địa chỉ của mình thành 8 khối:
Tổ chức 0 11001000 00010111 0001000 0 00000000 200.23.16.0/23
Tổ chức 1 11001000 00010111 0001001 0 00000000 200.23.18.0/23
Tổ chức 2 11001000 00010111 0001010 0 00000000 200.23.20.0/23
… ….. …. ….
Tổ chức 7 11001000 00010111 0001111 0 00000000 200.23.30.0/23
65
Địa chỉ phân cấp: tập hợp tuyến đường
“ Gửi cho tôi bất cứ thứ gì
có địa chỉ
bắt đầu
200.23.16.0/20 ”
200.23.16.0/23
200.23.18.0/23
200.23.30.0/23
Fly-By-Night-ISP
Tổ chức 0
tổ chức 7
Internet
tổ chức 1
ISPs-R-Us
“ Gửi cho tôi bất cứ thứ gì
có địa chỉ
bắt đầu
199.31.0.0/16 ”
200.23.20.0/23
tổ chức 2
.
.
.
.
.
.
Địa chỉ phân cấp cho phép quảng cáo thông tin định tuyến hiệu quả:
66
Địa chỉ phân cấp : các tuyến cụ thể hơn
“ Gửi cho tôi bất cứ thứ gì
có địa chỉ
bắt đầu
200.23.16.0/20 ”
200.23.16.0/23
200.23.30.0/23
Fly-By-Night-ISP
Tổ chức 0
tổ chức 7
Internet
200.23.18.0/23
tổ chức 1
ISPs-R-Us
“ Gửi cho tôi bất cứ thứ gì
có địa chỉ
bắt đầu
199.31.0.0/16 ”
200.23.20.0/23
tổ chức 2
.
.
.
.
.
.
o Tổ chức 1 chuyển từ Fly-By-Night-ISP sang ISPs-R-Us
o Các ISP-R-U hiện quảng cáo một lộ trình cụ thể hơn tới Tổ chức 1
200.23.18.0/23
tổ chức 1
“hoặc 200.23.18.0/23 ”
67
Địa chỉ phân cấp : các tuyến cụ thể hơn
“ Gửi cho tôi bất cứ thứ gì
có địa chỉ
bắt đầu
200.23.16.0/20 ”
200.23.16.0/23
200.23.30.0/23
Fly-By-Night-ISP
Tổ chức 0
tổ chức 7
Internet
ISP-R-U
“ Gửi cho tôi bất cứ thứ gì
có địa chỉ
bắt đầu
199.31.0.0/16 ”
200.23.20.0/23
tổ chức 2
.
.
.
.
.
.
o Tổ chức 1 chuyển từ Fly-By-Night-ISP sang ISPs-R-Us
o Các ISP-R-U hiện quảng cáo một lộ trình cụ thể hơn tới Tổ chức 1
200.23.18.0/23
tổ chức 1
“hoặc 200.23.18.0/23 ”
68
Địa chỉ IP: cuối cùng ...
Hỏi: làm cách nào để một ISP có được
khối địa chỉ?
Đáp: ICANN : Internet Corporation for
Assigned Names and Numbers
http://www.icann.org/
o phân bổ địa chỉ IP, thông qua 5 cơ
quan đăng ký khu vực (RRs) (những
người sau đó có thể phân bổ cho các
cơ quan đăng ký địa phương)
o quản lý vùng gốc DNS, bao gồm ủy
quyền quản lý TLD riêng lẻ (.com,
.edu, …)
Hỏi: có đủ địa chỉ IP 32 bit không?
o ICANN đã phân bổ đoạn địa chỉ
IPv4 cuối cùng cho các RRs vào
năm 2011
o NAT (tiếp theo) giúp cạn kiệt
không gian địa chỉ IPv4
o IPv6 có không gian địa chỉ 128-
bit
"Ai biết chúng ta cần bao nhiêu
không gian địa chỉ?" Vint Cerf
(phản ánh quyết định tạo địa chỉ
IPv4 dài 32 bit)
69
10.0.0.1
10.0.0.2
10.0.0.3
10.0.0.4
mạng cục bộ (ví dụ: mạng
gia đình) 10.0.0/24
138.76.29.7
phần còn lại của
Internet
NAT: Network Address Translation (chuyển dịch địa chỉ mạng)
datagram có nguồn hoặc đích trong mạng
này có địa chỉ 10.0.0/24 cho nguồn, đích
(như thường lệ)
tất cả các datagram rời khỏi mạng cục bộ
có cùng địa chỉ IP NAT nguồn: 138.76.29.7,
nhưng số cổng nguồn khác nhau
NAT: tất cả các thiết bị trong mạng cục bộ chia sẻ một địa chỉ IPv4 khi có
liên quan đến thế giới bên ngoài
70
o Tất cả các thiết bị trong mạng cục bộ đều có địa chỉ 32 bit trong
không gian địa chỉ IP “riêng tư” (tiền tố 10/8, 172.16/12, 192.168/16)
chỉ có thể được sử dụng trong mạng cục bộ
o Thuận lợi:
▪ Chỉ cần một địa chỉ IP từ ISP của nhà cung cấp cho tất cả các
thiết bị
▪ Có thể thay đổi địa chỉ của host trong mạng cục bộ mà không cần
thông báo cho thế giới bên ngoài
▪ Có thể thay đổi ISP mà không cần thay đổi địa chỉ của các thiết bị
trong mạng nội bộ
▪ Bảo mật: các thiết bị bên trong mạng cục bộ không thể định địa
chỉ trực tiếp mà thế giới bên ngoài có thể nhìn thấy
NAT: Network Address Translation (chuyển dịch địa chỉ mạng)
71
Triển khai: router NAT phải (trong suốt):
o Các datagram gửi đi: thay thế (địa chỉ IP nguồn, cổng #) của mọi
datagram gửi đi thành (địa chỉ NAT IP, cổng # mới)
▪ Máy khách/máy chủ từ xa sẽ phản hồi bằng cách sử dụng (địa chỉ
NAT IP, số cổng mới) làm địa chỉ đích
o Ghi nhớ (trong bảng dịch NAT) mọi cặp dịch (địa chỉ IP nguồn, cổng
#) sang (địa chỉ NAT IP, cổng # mới)
o Các gói dữ liệu đến: thay thế (địa chỉ IP NAT, số cổng mới) trong các
trường đích của mọi gói dữ liệu đến bằng (địa chỉ IP nguồn, cổng #)
tương ứng được lưu trữ trong bảng NAT
NAT: Network Address Translation (chuyển dịch địa chỉ mạng)
72
NAT: network address translation (chuyển dịch địa chỉ mạng)
S: 10.0.0.1, 3345
D: 128.119.40.186, 80
1
10.0.0.4
138.76.29.7
1: host 10.0.0.1 gửi
datagram tới
128.119.40.186, 80
NAT translation table
Địa chỉ WAN Địa chỉ LAN
138.76.29.7, 5001 10.0.0.1, 3345
… ……
S: 128.119.40.186, 80
D: 10.0.0.1, 3345
4
S: 138.76.29.7, 5001
D: 128.119.40.186, 80
2
2: router NAT thay đổi địa
chỉ nguồn datagram từ
10.0.0.1, 3345 thành
138.76.29.7, 5001,
cập nhật bảng
S: 128.119.40.186, 80
D: 138.76.29.7, 5001 3
3: trả lời đến, địa chỉ đích:
138.76.29.7, 5001
10.0.0.1
10.0.0.2
10.0.0.3
73
o NAT đã gây tranh cãi:
▪ Router “nên” chỉ xử lý tối đa lớp 3
▪ Địa chỉ “thiếu” cần được giải quyết bằng IPv6
▪ Vi phạm đối số end-to-end (thao tác cổng # bởi thiết bị lớp mạng)
▪ Truyền tải NAT: nếu máy khách muốn kết nối với máy chủ sau NAT
thì sao?
o Nhưng NAT vẫn ở đây:
▪ Được sử dụng rộng rãi trong mạng gia đình và tổ chức, mạng di
động 4G/5G
NAT: Network Address Translation (chuyển dịch địa chỉ mạng)
74
ICMP (Internet Control Message Protocol)
o Được sử dụng bởi các host và router
để truyền thông thông tin tầng network
▪ Thông báo: host, mạng, cổng, giao
thức không thể truy cập
▪ Phản hồi Request/Reply (được sử
dụng bởi lệnh Ping)
o Tầng network “ở trên”:
▪ Các thông điệp ICMP được mang
trong các IP datagram
o Thông báo ICMP: loại, mã cộng với 8
byte đầu tiên của IP datagram gây ra lỗi
Loại mã Mô tả
0 0 echo reply (ping)
3 0 dest. network unreachable
3 1 dest host unreachable
3 2 dest protocol unreachable
3 3 dest port unreachable
3 6 dest network unknown
3 7 dest host unknown
4 0 source quench (congestion
control - not used)
8 0 echo request (ping)
9 0 route advertisement
10 0 router discovery
11 0 TTL expired
12 0 bad IP header
75
Traceroute và ICMP
o Tiêu chí dừng:
▪ Segment UDP lần
lượt đến tới host đích
▪ Đích trả về thông điệp
ICMP “port
unreachable” (loại 3,
mã 3)
▪ Nguồn dừng lại
3 probes
3 probes
3 probes
o Nguồn gửi một chuỗi các segment UDP đến đích
▪ Segment thứ nhất có giá trị TTL =1,
▪ Segment thứ hai có giá trị TTL=2,
▪ v.v.
o Khi datagram thứ n đến router thứ n:
▪ Router huỷ datagram và gửi thông điệp ICMP đến
nguồn (loại 11, mã 0)
▪ Thông điệp ICMP có thể bao gồm tên và địa chỉ
IP của router
o Khi thông điệp ICMP đến, nguồn ghi lại giá trị RTTs
76
o Động lực ban đầu: Không gian địa chỉ IPv4 32 bit sẽ được
phân bổ hoàn toàn
o Động lực bổ sung:
▪ Tốc độ xử lý/chuyển tiếp: header có độ dài cố định 40 byte
▪ Cho phép xử lý các “luồng” ở tầng mạng khác nhau
IPv6: động lực
77
payload (data)
destination address
(128 bits)
source address
(128 bits)
payload len next hdr hop limit
flow label
pri
ver
32 bits
Định dạng datagram IPv6
priority: xác định mức
độ ưu tiên giữa các
datagram trong luồng
nhãn luồng: xác định các
datagram trong cùng
một " luồng. (khái niệm
về “ dòng chảy” không
được định nghĩa rõ
ràng)
128-bit
địa chỉ IPv6
Những gì còn thiếu (so sánh với IPv4):
o Không có tính checksum (để tăng tốc độ xử lý tại các router)
o Không phân mảnh/tổng hợp
o Không có tùy chọn (có sẵn dưới dạng giao thức lớp trên, header kế tiếp tại
router)
78
Chuyển đổi từ IPv4 sang IPv6
o Không phải tất cả các router đều có thể được nâng cấp đồng thời
▪ Mạng sẽ hoạt động như thế nào với các router IPv4 và IPv6 hỗn hợp?
Địa chỉ nguồn đích IPv4
Các trường header IPv4
IPv4 datagram
IPv6 datagram
IPv4 payload
Tải trọng UDP/TCP
Địa chỉ nguồn đích IPv6
Các trường header IPv6
o Đường hầm: gói dữ liệu IPv6 được mang dưới dạng payload trong gói
dữ liệu IPv4 giữa các router IPv4 (“packet trong packet")
▪ Đường hầm được sử dụng rộng rãi trong các ngữ cảnh khác (4G/5G)
79
Đường hầm và đóng gói
Ethernet kết nối hai
router IPv6:
Ethernet kết nối hai
router IPv6
A B
IPv6 IPv6
E F
IPv6 IPv6
Link-layer frame
IPv6 datagram
Thông thường: datagram à payload trong frame tầng Link
A B
IPv6 IPv6/ v4
E F
IPv6/ v4 IPv6
mạng IPv4
Mạng IPv4 kết nối
hai router IPv6
80
Đường hầm và đóng gói
IPv4 datagram
Gói dữ liệu IPv6
đường hầm: IPv6 datagram là payload trong IPv4 datagram
Ethernet kết nối hai
router IPv6:
Ethernet kết nối hai
router IPv6
A B
IPv6 IPv6
E F
IPv6 IPv6
Link-layer frame
IPv6 datagram
Thông thường: datagram à payload trong frame tầng Link
Mạng IPv4 kết nối
hai router IPv6
IPv4 tunnel kết nối đến
router IPv6
A B
IPv6 IPv6
E F
IPv6 IPv6
81
từ B đến C:
IPv6 trong
IPv4
flow: X
Src: A
dest: F
data
src:B
dest: E
Đường hầm
Physical view:
IPv4 IPv4
E
IPv6/ v4 IPv6
F
C Đ
A B
IPv6 IPv6/ v4
Logical view:
IPv4 tunnel
kết nối router IPv6
A B
IPv6 IPv6/ v4
E F
IPv6/ v4 IPv6
flow: X
src: A
dest: F
data
A đến B:
IPv6
E đến F:
IPv6
flow: X
src: A
dest: F
data
từ B đến C:
IPv6 trong
IPv4
flow: X
Src: A
dest: F
data
src:B
dest: E
Lưu ý địa chỉ
nguồn và đích!
từ B đến C:
IPv6 trong
IPv4
flow: X
Src: A
dest: F
data
src:B
dest: E
82
Chương 4: Nội dung
4.1 Tổng quan
o Mức dữ liệu
o Mức điều khiển
4.2 Virtual circuit network và datagram
network
o Các mạch ảo
o Mạng datagram
4.3 Cấu trúc bên trong router
o Cổng đầu vào, chuyển đổi, cổng
đầu ra
o Quản lý bộ đệm, lập kế hoạch
4.4 IP: Internet Protocol
o Định dạng datagram
o IPv4 addressing
o DHCP
o NAT
o ICMP
o IPV6
4.5 Các thuật toán routing
o Link state
o Distance vector
4.6 Routing trong Internet
o Hierarchical routing
o RIP, OSPF, BGP
o SDN
o Quản lý mạng
4.7 Broadcast và Multicast routing
83
Giới thiệu
o Giao thức định tuyến
▪ Link state
▪ Distance vector
o Định tuyến nội bộ ISP: OSPF
o Định tuyến giữa các ISP: BGP
o Mức điều khiển SDN
o Quản lý mạng, cấu hình
▪ SNMP
▪ NETCONF/YANG
84
Chức năng tầng mạng
Hai cách tiếp cận để cấu trúc việc điều khiển mạng:
o Điều khiển trên mỗi router (truyền thống)
o Điều khiển tập trung hợp lý (mạng được xác định bằng phần mềm)
o Chuyển tiếp: di chuyển các gói từ đầu vào
của router đến đầu ra router thích hợp
o Định tuyến: xác định tuyến đường được thực
hiện bởi các gói từ nguồn đến đích
85
Mức dữ liệu và
Mức điều khiển
Mức điều khiển mạng tại mỗi router
Các thành phần thuật toán định tuyến riêng lẻ trong mỗi và mọi router
tương tác trong mức điều khiển
Giải thuật
Định tuyến
Mức
dữ liệu
Mức
điều khiển
1
2
0111
giá trị trong header
trong gói tin đến
3
86
Mức điều khiển mạng được xác định bằng phần mềm (SDN)
Bộ điều khiển từ xa tính toán, cài đặt bảng chuyển tiếp trong router
Mức
dữ liệu
Mức
điều khiển
Điều khiển từ xa
CA
CA CA CA CA
1
2
0111
3
giá trị trong header
của gói tin đến
87
Giao thức định tuyến
Định tuyến: xác định các đường dẫn
“tốt” từ host gửi đến host nhận, thông
qua mạng các router
o Đường dẫn: chuỗi các router đi từ
host nguồn ban đầu đi đến host
đích cuối cùng
o “tốt”: “chi phí” thấp nhất, “nhanh
nhất”, “ít tắc nghẽn nhất”
o Định tuyến: thách thức kết nối
mạng “top 10”!
mobile network
enterprise
network
national or global ISP
datacenter
network
application
transport
network
link
physical
application
transport
network
link
physical
network
link
physical
network
link
physical
network
link
physical
network
link
physical network
link
physical
88
Trừu tượng hóa đồ thị: chi phí liên kết
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
đồ thị: G = (N,E)
c a,b : chi phí liên kết trực tiếp kết nối a và b
ví dụ: c w,z = 5, c u,z = ∞
chi phí do nhà điều hành mạng xác
định: có thể luôn bằng 1 hoặc tỷ lệ
nghịch với băng thông hoặc tỷ lệ
nghịch với tắc nghẽn
N: router = { u, v, w, x, y, z }
E: tập hợp các liên kết = { ( u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y , z ) }
89
Phân loại thuật toán định tuyến
thông tin toàn cầu hay phi tập trung?
toàn cầu: tất cả các router có cấu trúc
liên kết hoàn chỉnh , thông tin chi phí
liên kết
• thuật toán “Link state”
phi tập trung: quá trình tính toán lặp đi lặp lại, trao đổi
thông tin với hàng xóm
• router ban đầu chỉ biết chi phí liên kết đến các hàng
xóm được đính kèm
• thuật toán “Distance vector”
nhanh
như thế
nào ?
động : tuyến đường thay đổi
nhanh hơn
• cập nhật định kỳ hoặc để
đáp ứng với thay đổi chi phí
liên kết
tĩnh: tuyến đường thay
đổi chậm theo thời gian
90
Thuật toán định tuyến Dijkstra’s link-state
o Tập trung: tất cả các nút đều biết cấu
trúc liên kết mạng và chi phí liên kết
▪ Được thực hiện thông qua gói tin “link
state broadcast”
▪ Tất cả các nút có cùng thông tin
o Tính toán các đường dẫn có chi phí
thấp nhất từ một nút (“ nguồn”) đến tất
cả các nút khác
▪ Cung cấp bảng chuyển tiếp cho nút đó
o Lặp đi lặp lại: sau k lần lặp lại, biết
đường dẫn chi phí thấp nhất đến k đích
▪ cx ,y : chi phí liên kết trực
tiếp từ nút x đến y; = ∞ nếu
không phải hàng xóm trực
tiếp
▪ D(v): ước tính chi phí hiện
tại của đường đi có chi phí
thấp nhất từ nguồn đến
đích v
▪ p(v): nút trước dọc theo
đường dẫn từ nguồn đến v
▪ N ' : tập hợp các nút có
đường dẫn chi phí thấp
nhất được biết
ký hiệu
91
Thuật toán định tuyến Dijkstra’s link-state
1 Initialization:
2 N' = {u} /* compute least cost path from u to all other nodes */
3 for all nodes v
4 if v adjacent to u /* u initially knows direct-path-cost only to direct
neighbors */
5 then D(v) = cu,v /* but may not be minimum cost!
*/
6 else D(v) = ∞
7
8 Loop
9
10
11
12
13
14
15 until all nodes in N'
find w not in N' such that D(w) is a minimum
add w to N'
update D(v) for all v adjacent to w and not in N' :
D(v) = min ( D(v), D(w) + cw,v )
/* new least-path-cost to v is either old least-cost-path to v or known
least-cost-path to w plus direct-cost from w to v */
92
Thuật toán Dijkstra: ví dụ
Step
0
1
2
3
4
5
N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z)
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
4,y
D(w),p(w)
4,y
3,y
5,u ∞
∞
1,u
2,u
∞
2,x
4,x
2,u
4,y
3,y
2,u
uxyvwz
uxyvw
uxyv
uxy
ux
u
v w x y z
find a not in N' such that D(a) is a minimum
add a to N'
update D(b) for all b adjacent to a and not in N' :
D(b) = min ( D(b), D(a) + ca,b )
Initialization (step 0): For all a: if a adjacent to then D(a) = cu,a
93
Thuật toán Dijkstra: ví dụ
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5
u
y
x
w
v
z
Kết quả cây đường dẫn chi
phí thấp nhất từ u:
Bảng chuyển tiếp kết quả trong u:
v
x
y
w
x
(u,v)
(u,x)
(u,x)
(u,x)
(u,x)
điểm đến liên kết đi
tuyến đường từ
u đến v trực tiếp
định tuyến từ u
đến tất cả các
đích khác qua x
94
Thuật toán Dijkstra: một ví dụ khác
Ghi chú:
o Xây dựng cây đường đi chi phí thấp nhất bằng cách truy tìm các
nút trước
o Mối quan hệ có thể tồn tại (có thể bị phá vỡ tùy ý)
w
3
4
v
x
u
5
3
7 4
y
8
z
2
7
9
Step N'
D(v),
p(v)
0
1
2
3
4
5
D(w),
p(w)
D(x),
p(x)
D(y),
p(y)
D(z),
p(z)
u ∞
∞
7,u 3,u 5,u
uw ∞
11,w
6,w 5,u
14,x
11,w
6,w
uwx
uwxv 14,x
10,v
uwxvy 12,y
uwxvyz
v w x y z
95
Thuật toán Dijkstra: thảo luận
Độ phức tạp của thuật toán: n nút
o Mỗi lần lặp n: cần kiểm tra tất cả các nút w không có trong N
o n(n +1)/2: độ phức tạp O(n2)
o Triển khai hiệu quả hơn có thể: O(nlogn)
Độ phức tạp của thông điệp:
o Mỗi router phải phát thông tin trạng thái liên kết của nó tới n router
khác
o Các thuật toán quảng bá hiệu quả (và thú vị!): O(n) liên kết chéo
để phổ biến một thông điệp quảng bá từ một nguồn
o Mỗi thông báo của router đi qua các liên kết O(n): độ phức tạp của
thông báo tổng thể: O(n2)
96
Thuật toán Dijkstra: khả năng dao động
o Khi chi phí liên kết phụ thuộc vào lưu lượng giao thông, việc định tuyến có
thể thay đổi
o Kịch bản mẫu:
▪ Định tuyến đến đích a, lưu lượng đi vào tại d, c, e với tốc độ 1, e (<1), 1
▪ Chi phí liên kết là định hướng và phụ thuộc vào khối lượng
a
d
c
b
1 1+e
e
0
e
1
1
0 0
ban đầu
a
d
c
b
với những chi phí
này,
tìm định tuyến mới….
dẫn đến chi phí mới
2+e 0
0
0
1+e 1
a
d
c
b
với những chi phí này,
tìm định tuyến mới….
dẫn đến chi phí mới
0 2+e
1+e
1
0 0
a
d
c
b
với những chi phí này,
tìm định tuyến mới….
dẫn đến chi phí mới
2+e 0
0
0
1+e 1
e
1 1
e
1 1
e
1 1
97
Thuật toán vectơ khoảng cách
Dựa trên công thức Bellman-Ford (BF) (lập trình động):
Đặt D x (y): chi phí của đường đi có chi phí thấp nhất từ x đến y .
Sau đó:
D x (y) = min v { c x,v + D v (y) }
Công thức Bellman-Ford
min bao gồm tất cả
các lân cận v của x
v 's ước tính chi phí đường đi chi phí thấp nhất đến y
chi phí trực tiếp của liên kết từ x đến v
98
Ví dụ Bellman-Ford
u
y
z
2
2
1
3
1
1
2
5
3
5
Giả sử rằng nút lân cận của u s, x,v,w, biết rằng đối với đích z :
D u (z) = min { c u,v + D v (z),
c u,x + D x (z),
c u,w + D w (z) }
Công thức Bellman-Ford nói:
Dv(z) = 5
v
Dw(z) = 3
w
Dx(z) = 3
x
= min { 2 + 5,
1 + 3,
5 + 3} = 4
nút đạt được giá trị cực tiểu (x) là
bước nhảy tiếp theo trên đường
ước tính có chi phí thấp nhất tới
đích (z)
99
Thuật toán vectơ khoảng cách
Ý tưởng chính:
o Theo thời gian, mỗi nút sẽ gửi ước tính vectơ khoảng cách của nó cho
các nút lân cận
o Trong các điều kiện bình thường, ước tính Dx (y) hội tụ đến chi phí
thực tế thấp nhất dx(y)
Dx (y) ← min v {cx,v + Dv (y)} cho mỗi nút y ∊ N
o Khi x nhận được ước tính DV mới từ bất kỳ hàng xóm nào, nó sẽ cập
nhật DV của chính nó bằng phương trình BF:
100
Thuật toán vectơ khoảng cách:
Lặp đi lặp lại, không đồng bộ: mỗi lần
lặp cục bộ gây ra bởi:
o Thay đổi chi phí liên kết cục bộ
o Tin nhắn cập nhật DV từ hàng xóm
Chờ đợi (thay đổi chi phí liên kết
cục bộ hoặc tin nhắn từ hàng xóm)
Mỗi nút:
Phân phối, tự dừng: mỗi nút chỉ thông
báo cho các nút lân cận khi DV của nó
thay đổi
o Hàng xóm sau đó thông báo cho
hàng xóm của nó – chỉ khi cần thiết
o Không nhận được thông báo,
không có hành động nào được thực
hiện!
tính toán lại các ước tính DV sử
dụng DV nhận được từ hàng xóm
nếu DV từ bất kỳ điểm đến nào đã
thay đổi, hãy thông báo cho hàng
xóm
101
Vectơ khoảng cách: ví dụ
DV in a:
Da(a)=0
Da(b) = 8
Da(c) = ∞
Da(d) = 1
Da(e) = ∞
Da(f) = ∞
Da(g) = ∞
Da(h) = ∞
Da(i) = ∞
g h i
1 1
1 1 1
1 1
1 1
8 1
t=0
o Tất cả các nút
có ước tính
khoảng cách
đến hàng xóm
gần nhất
Một vài bất đối xứng
o Liên kết bị thiếu
o Chi phí lớn hơn
d e f
a b c
o Tất cả các nút
gửi vectơ
khoảng cách cục
bộ của chúng tới
các nút lân cận
102
Ví dụ về vectơ khoảng cách: phép lặp
Tất cả các nút:
o Nhận vectơ khoảng
cách từ hàng xóm
o Tính toán vectơ
khoảng cách cục bộ
mới của nó
o Gửi vectơ khoảng
cách cục bộ mới của
nó cho hàng xóm
t=1
g h u
1 1
1 1 1
1 1
1 1
8 1
d e f
a b c
103
Ví dụ về vectơ khoảng cách: phép lặp
g h i
1 1
1 1 1
1 1
1 1
8 1
d e f
a b c
compute compute compute
compute compute compute
compute compute compute
Tất cả các nút:
o Nhận vectơ khoảng
cách từ hàng xóm
o Tính toán vectơ
khoảng cách cục bộ
mới của nó
o Gửi vectơ khoảng
cách cục bộ mới của
nó cho hàng xóm
t=1
104
Ví dụ về vectơ khoảng cách: phép lặp
g h i
1 1
1 1 1
1 1
1 1
8 1
d e f
a b c
Tất cả các nút:
o Nhận vectơ khoảng
cách từ hàng xóm
o Tính toán vectơ
khoảng cách cục bộ
mới của nó
o Gửi vectơ khoảng
cách cục bộ mới của
nó cho hàng xóm
t=1
105
Ví dụ về vectơ khoảng cách: phép lặp
g h u
1 1
1 1 1
1 1
1 1
8 1
đ e f
a b c
Tất cả các nút:
o Nhận vectơ khoảng
cách từ hàng xóm
o Tính toán vectơ
khoảng cách cục bộ
mới của nó
o Gửi vectơ khoảng
cách cục bộ mới của
nó cho hàng xóm
t=2
106
Ví dụ về vectơ khoảng cách: phép lặp
g h i
1 1
1 1 1
1 1
8 1
2 1
d e f
a b c
compute compute compute
compute compute compute
compute compute compute
Tất cả các nút:
o Nhận vectơ khoảng
cách từ hàng xóm
o Tính toán vectơ
khoảng cách cục bộ
mới của nó
o Gửi vectơ khoảng
cách cục bộ mới của
nó cho hàng xóm
t=2
107
Ví dụ về vectơ khoảng cách: phép lặp
g h u
1 1
1 1 1
1 1
1 1
8 1
đ e f
a b c
Tất cả các nút:
o Nhận vectơ khoảng
cách từ hàng xóm
o Tính toán vectơ
khoảng cách cục bộ
mới của nó
o Gửi vectơ khoảng
cách cục bộ mới của
nó cho hàng xóm
t=2
108
Ví dụ về vectơ khoảng cách: phép lặp
…. và như thế
Tiếp theo chúng ta hãy xem các phép tính lặp tại các nút
109
Ví dụ về vectơ khoảng cách: tính toán
DV in a:
Da(a)=0
Da(b) = 8
Da(c) = ∞
Da(d) = 1
Da(e) = ∞
Da(f) = ∞
Da(g) = ∞
Da(h) = ∞
Da(i) = ∞
g h i
1 1
1 1 1
1 1
1 1
8 1
t=1
DV in b:
Db(f) = ∞
Db(g) = ∞
Db(h) = ∞
Db(i) = ∞
Db(a) = 8
Db(c) = 1
Db(d) = ∞
Db(e) = 1
▪ b nhận DVs từ
a, c, e
a b c
d e f
DV in c:
Dc(a) = ∞
Dc(b) = 1
Dc(c) = 0
Dc(d) = ∞
Dc(e) = ∞
Dc(f) = ∞
Dc(g) = ∞
Dc(h) = ∞
Dc(i) = ∞
DV in e:
De(a) = ∞
De(b) = 1
De(c) = ∞
De(d) = 1
De(e) = 0
De(f) = 1
De(g) = ∞
De(h) = 1
De(i) = ∞
110
DV in a:
Da(a)=0
Da(b) = 8
Da(c) = ∞
Da(d) = 1
Da(e) = ∞
Da(f) = ∞
Da(g) = ∞
Da(h) = ∞
Da(i) = ∞
DV in b:
Db(f) = ∞
Db(g) = ∞
Db(h) = ∞
Db(i) = ∞
Db(a) = 8
Db(c) = 1
Db(d) = ∞
Db(e) = 1
DV in c:
Dc(a) = ∞
Dc(b) = 1
Dc(c) = 0
Dc(d) = ∞
Dc(e) = ∞
Dc(f) = ∞
Dc(g) = ∞
Dc(h) = ∞
Dc(i) = ∞
DV in e:
De(a) = ∞
De(b) = 1
De(c) = ∞
De(d) = 1
De(e) = 0
De(f) = 1
De(g) = ∞
De(h) = 1
De(i) = ∞
Ví dụ về vectơ khoảng cách: tính toán
g h i
1 1
1 1 1
1 1
1 1
8 1
t=1
▪ b nhận DVs từ
a, c, e, tính toán:
a b c
d e f
DV in b:
Db(f) =2
Db(g) = ∞
Db(h) = 2
Db(i) = ∞
Db(a) = 8
Db(c) = 1
Db(d) = 2
Db(e) = 1
e
compute
b
Db(a) = min{cb,a+Da(a), cb,c +Dc(a), cb,e+De(a)} = min{8,∞,∞} = 8
Db(c) = min{cb,a+Da(c), cb,c +Dc(c), c b,e +De(c)} = min{∞,1,∞} = 1
Db(d) = min{cb,a+Da(d), cb,c +Dc(d), c b,e +De(d)} = min{9,2,∞} = 2
Db(f) = min{cb,a+Da(f), cb,c +Dc(f), c b,e +De(f)} = min{∞,∞,2} = 2
Db(i) = min{cb,a+Da(i), cb,c +Dc(i), c b,e+De(i)} = min{∞, ∞, ∞} = ∞
Db(h) = min{cb,a+Da(h), cb,c +Dc(h), c b,e+De(h)} = min{∞, ∞, 2} = 2
Db(e) = min{cb,a+Da(e), cb,c +Dc(e), c b,e +De(e)} = min{∞,∞,1} = 1
Db(g) = min{cb,a+Da(g), cb,c +Dc(g), c b,e+De(g)} = min{∞, ∞, ∞} = ∞
111
DV in a:
Da(a)=0
Da(b) = 8
Da(c) = ∞
Da(d) = 1
Da(e) = ∞
Da(f) = ∞
Da(g) = ∞
Da(h) = ∞
Da(i) = ∞
Ví dụ về vectơ khoảng cách: tính toán
g h i
1 1
1 1 1
1 1
1 1
8 1
t=1
DV in b:
Db(f) = ∞
Db(g) = ∞
Db(h) = ∞
Db(i) = ∞
Db(a) = 8
Db(c) = 1
Db(d) = ∞
Db(e) = 1
▪ c nhận DVs từ b
a b c
d e f
DV in c:
Dc(a) = ∞
Dc(b) = 1
Dc(c) = 0
Dc(d) = ∞
Dc(e) = ∞
Dc(f) = ∞
Dc(g) = ∞
Dc(h) = ∞
Dc(i) = ∞
DV in e:
De(a) = ∞
De(b) = 1
De(c) = ∞
De(d) = 1
De(e) = 0
De(f) = 1
De(g) = ∞
De(h) = 1
De(i) = ∞
112
Ví dụ về vectơ khoảng cách: tính toán
g h i
1 1
8 1
t=1
DV in b:
Db(f) = ∞
Db(g) = ∞
Db(h) = ∞
Db(i) = ∞
Db(a) = 8
Db(c) = 1
Db(d) = ∞
Db(e) = 1
▪ c nhận DVs từ b,
tính toán:
a b c
d e f
DV in c:
Dc(a) = ∞
Dc(b) = 1
Dc(c) = 0
Dc(d) = ∞
Dc(e) = ∞
Dc(f) = ∞
Dc(g) = ∞
Dc(h) = ∞
Dc(i) = ∞
Dc(a) = min{cc,b+Db(a}} = 1 + 8 = 9
Dc(b) = min{cc,b+Db(b)} = 1 + 0 = 1
Dc(d) = min{cc,b+Db(d)} = 1+ ∞ = ∞
Dc(e) = min{cc,b+Db(e)} = 1 + 1 = 2
Dc(f) = min{cc,b+Db(f)} = 1+ ∞ = ∞
Dc(g) = min{cc,b+Db(g)} = 1+ ∞ =
∞
Dc(i) = min{cc,b+Db(i)} = 1+ ∞ = ∞
Dc(h) = min{cbc,b+Db(h)} = 1+ ∞ = ∞
DV in c:
Dc(a) = 9
Dc(b) = 1
Dc(c) = 0
Dc(d) = 2
Dc(e) = ∞
Dc(f) = ∞
Dc(g) = ∞
Dc(h) = ∞
Dc(i) = ∞
compute
* Check out the online interactive
exercises for more examples:
http://gaia.cs.umass.edu/kurose_ross/interactive/
113
Ví dụ về vectơ khoảng cách: tính toán
1 1
1 1 1
1 1
1 1
8 1
t=1
DV in b:
Db(f) = ∞
Db(g) = ∞
Db(h) = ∞
Db(i) = ∞
Db(a) = 8
Db(c) = 1
Db(d) = ∞
Db(e) = 1
▪ e nhận DVs từ
b, d, f, h
a b c
DV in f:
Dc(a) = ∞
Dc(b) = ∞
Dc(c) = ∞
Dc(d) = ∞
Dc(e) = 1
Dc(f) = 0
Dc(g) = ∞
Dc(h) = ∞
Dc(i) = 1
DV in e:
De(a) = ∞
De(b) = 1
De(c) = ∞
De(d) = 1
De(e) = 0
De(f) = 1
De(g) = ∞
De(h) = 1
De(i) = ∞
DV in h:
Dc(a) = ∞
Dc(b) = ∞
Dc(c) = ∞
Dc(d) = ∞
Dc(e) = 1
Dc(f) = ∞
Dc(g) = 1
Dc(h) = 0
Dc(i) = 1
DV in d:
Dc(a) = 1
Dc(b) = ∞
Dc(c) = ∞
Dc(d) = 0
Dc(e) = 1
Dc(f) = ∞
Dc(g) = 1
Dc(h) = ∞
Dc(i) = ∞
d e f
g h i
Q: DV mới được tính ra trong e
tại thời điểm t=1?
compute
114
Vectơ khoảng cách: khuếch tán thông tin trạng thái
t=0 trạng thái của c tại t=0 chỉ tại c
g h u
1 1
1 1 1
1 1
1 1
8 1
d e f
a b c
trạng thái của c tại t=0 đã lan truyền tới b và có
thể ảnh hưởng đến việc tính toán vectơ khoảng
cách cách xa tới 1 bước nhảy, tức là tại b
t=1
trạng thái của c tại t=0 bây giờ có thể ảnh hưởng
đến việc tính toán vectơ khoảng cách cách xa tới
2 bước nhảy, nghĩa là tại b và bây giờ tại a, e cũng
vậy
t=2
trạng thái của c tại t=0 có thể ảnh hưởng đến việc
tính toán vectơ khoảng cách cách xa tới 3 bước
nhảy, tức là tại b,a,e và bây giờ tại c,f,h
t=3
trạng thái của c tại t=0 có thể ảnh hưởng đến việc
tính toán vectơ khoảng cách cách xa tới 4 bước
nhảy, nghĩa là tại b,a,e, c, f, h và bây giờ là cả g,i
t=4
Giao tiếp lặp, các bước tính toán khuếch tán thông tin qua mạng:
t=1
t=2
t=3
t=4
115
Vectơ khoảng cách: thay đổi chi phí liên kết
“ tin tốt
đi nhanh”
t 0 : y phát hiện thay đổi chi phí liên kết, cập nhật DV của nó,
thông báo cho các láng giềng của nó.
t 1 : z nhận cập nhật từ y , cập nhật bảng của nó, tính toán
chi phí nhỏ nhất mới cho x , gửi DV của nó cho các lân
cận.
t 2 : y nhận cập nhật của z, cập nhật bảng DV của nó. Chi phí
nhỏ nhất của y không thay đổi, vì vậy y không gửi tin
nhắn đến z.
Thay đổi chi phí liên kết:
o Nút phát hiện thay đổi chi phí liên kết cục bộ
o Cập nhật thông tin định tuyến, tính toán lại DV cục bộ
o Nếu DV thay đổi, thông báo cho hàng xóm
x z
1
4
50
y
1
116
Vectơ khoảng cách: thay đổi chi phí liên kết
Thay đổi chi phí liên kết:
o Nút phát hiện thay đổi chi phí liên kết cục bộ
o “Tin xấu lan truyền chậm” – bài toán đếm đến vô cùng:
x z
1
4
5
y
6 0
▪ y thấy liên kết trực tiếp tới x có chi phí mới là 60, nhưng z đã nói rằng nó có
một đường dẫn với chi phí là 5. Vì vậy, y tính toán “chi phí mới của tôi tới x sẽ
là 6, thông qua z); thông báo cho z về chi phí mới từ 6 đến x.
▪ z biết rằng đường dẫn đến x qua y có chi phí mới là 6, vì vậy z tính toán “chi
phí mới của tôi tới x sẽ là 7 qua y), thông báo cho y về chi phí mới từ 7 đến x.
▪ y biết rằng đường dẫn đến x qua z có chi phí mới là 7, vì vậy y tính toán “chi
phí mới của tôi tới x sẽ là 8 qua y), thông báo cho z về chi phí mới từ 8 đến x.
▪ z biết rằng đường dẫn đến x qua y có chi phí mới là 8, vì vậy z tính toán “chi
phí mới của tôi tới x sẽ là 9 qua y), thông báo cho y về chi phí mới từ 9 đến x.
o Xem tài liệu cho các giải pháp. Các thuật toán phân tán rất phức tạp!
117
So sánh thuật toán LS và DV
Độ phức tạp của thông điệp
LS: n router, gửi tin nhắn O(n2)
DV: trao đổi hàng xóm với nhau; thời
gian hội tụ thay đổi
Tốc độ hội tụ
LS: Thuật toán O(n2), tin nhắn O(n2)
o Có thể có dao động
DV: thời gian hội tụ thay đổi
o Có thể có các vòng lặp định tuyến
o Bài toán đếm đến vô cực
Điều gì xảy ra nếu router gặp trục trặc hoặc bị
xâm phạm?
LS:
o Router có thể quảng cáo chi phí liên kết
không chính xác
o Mỗi router chỉ tính toán bảng riêng của nó
DV:
o Router DV có thể quảng cáo chi phí đường
dẫn không chính xác (“Tôi có một đường
dẫn chi phí thực sự thấp đến mọi nơi”):
black-holing
o Mỗi bảng của router được sử dụng bởi
những router khác: lỗi lan truyền qua mạng
118
Chương 4: Nội dung
4.1 Tổng quan
o Mức dữ liệu
o Mức điều khiển
4.2 Virtual circuit network và datagram
network
o Các mạch ảo
o Mạng datagram
4.3 Cấu trúc bên trong router
o Cổng đầu vào, chuyển đổi, cổng đầu
ra
o Quản lý bộ đệm, lập kế hoạch
4.4 IP: Internet Protocol
o Định dạng datagram
o IPv4 addressing
o DHCP
o NAT
o ICMP
o IPV6
4.5 Các thuật toán routing
o Link state
o Distance vector
4.6 Routing trong Internet
o Hierarchical routing
o RIP, OSPF, BGP
o SDN
o Quản lý mạng
4.7 Broadcast và Multicast routing
119
Giúp cho việc định tuyến có thể mở rộng
Nghiên cứu định tuyến cho đến nay - lý tưởng hóa
o Tất cả các router giống hệt nhau
o Mạng “phẳng”
… không đúng trong thực tế
Quy mô: hàng tỷ điểm đến:
o Không thể lưu trữ tất cả các
điểm đến trong bảng định
tuyến!
o Trao đổi bảng định tuyến sẽ
tràn ngập các liên kết!
Quản trị vùng tự quản:
o Internet: mạng của các mạng
o Mỗi quản trị viên mạng có thể
muốn kiểm soát định tuyến
trong mạng riêng của mình
120
Cách tiếp cận Internet để định tuyến có thể mở rộng
Tổng hợp các router thành các vùng được gọi là “hệ thống tự quản” (AS)
(còn gọi là “miền”)
intra-AS (hay còn gọi là “nội miền”):
định tuyến giữa các router cùng AS
(“mạng”)
o Tất cả các router trong AS phải
chạy cùng một giao thức nội
miền
o Các router trong AS khác nhau
có thể chạy các giao thức định
tuyến nội miền khác nhau
o Router cổng: ở “cạnh” của AS
của chính nó, có (các) liên kết
đến (các) router trong các AS
khác
inter-AS (còn gọi là “liên miền”):
Định tuyến giữa các AS
o Cổng thực hiện định tuyến liên
miền (cũng như định tuyến nội
miền)
121
forwarding
table
Các AS được kết nối với nhau
Bảng chuyển tiếp được định cấu hình
bởi các thuật toán định tuyến trong
và ngoài AS
o Định tuyến trong AS xác định
mục nhập cho các đích trong
AS
o Inter-AS & intra-AS xác định
mục nhập cho các điểm đến
bên ngoài
3b
1d
3a
1c
2a
AS3
AS1
AS2
1a
2c
2b
1b
3c
intra-AS
routing
intra-AS
routing
intra-AS
routing
inter-AS
routing
Intra-AS
Routing
Inter-AS
Routing
122
Định tuyến giữa các AS: vai trò trong chuyển tiếp nội miền
o Giả sử router trong AS 1 nhận
được gói dữ liệu được định
sẵn bên ngoài AS 1 :
Định tuyến liên miền AS 1 phải:
1. Tìm hiểu điểm đến nào có thể truy
cập thông qua AS2, điểm đến nào
thông qua AS3
2. Truyền bá thông tin khả năng tiếp
cận này đến tất cả các router trong
AS 1
Router nên chuyển tiếp gói
đến router cổng trong AS1,
nhưng cái nào?
3b
1d
3a
1c
2a
AS3
AS1
AS2
1a
2c
2b
1b
3c
other
networks
other
networks
123
Định tuyến trong một AS
Các giao thức định tuyến nội bộ AS phổ biến nhất:
o RIP: Routing Information Protocol [RFC 1723]
▪ DV cổ điển: DV được trao đổi cứ sau 30 giây
▪ Không còn được sử dụng rộng rãi
o EIGRP: Enhanced Interior Gateway Routing Protocol
▪ Dựa trên DV
▪ Trước đây là độc quyền của Cisco trong nhiều thập kỷ (được mở vào năm
2013 [RFC 7868])
o OSPF: Open Shortest Path First[RFC 2328]
▪ Định tuyến trạng thái liên kết
▪ Giao thức IS-IS (tiêu chuẩn ISO, không phải tiêu chuẩn RFC) về cơ bản
giống như OSPF
124
Định tuyến RIP ( Routing Information Protocol)
o Công bố vào năm 1982 trong BSD-UNIX
o Thuật toán distance vector
▪ Metric khoảng cách: số lượng hop (max = 15 hops), mỗi link có giá trị là 1
▪ Các DV được trao đổi giữa các neighbors mỗi 30 giây trong thông điệp
phản hồi (còn gọi là advertisement)
▪ Mỗi advertisement: danh sách lên đến 25 subnet đích
D
C
B
A
u v
w
x
y
z
subnet hops
u 1
v 2
w 2
x 3
y 3
z 2
Từ router A đến các subnet đích:
125
Định tuyến RIP: ví dụ
Subnet đích router kế tiếp số lượng hop đến đích
w A 2
y B 2
z B 7
x -- 1
…. …. ....
Bảng định tuyến trong router D
w x y
z
A
C
D B
126
w x y
z
A
C
D B
Subnet đích router kế tiếp số lượng hop tới đích
w A 2
y B 2
z B 7
x -- 1
…. …. ....
Bảng định tuyến trong router D
A 5
đích kế hops
w - 1
x - 1
z C 4
…. … ...
Quảng cáo từ A-tới-D
Định tuyến RIP: ví dụ
127
Định tuyến RIP: lỗi đường kết nối và phục hồi
Nếu không có quảng cáo nào sau 180 giây --> neighbor/kết nối được
xem như đã chết
o Những đường đi qua neighbor bị vô hiệu
o Các quảng cáo mới được gởi tới các neighbor
o Các neighbor đó tiếp tục gởi ra những quảng cáo mới đó (nếu các
bảng bị thay đổi)
o Thông tin về lỗi đường kết nối nhanh chóng (?) lan truyền trên toàn
mạng
o poison reverse được dùng để ngăn chặn vòng lặp ping-pong (khoảng
cách vô hạn = 16 hops)
128
Định tuyến OSPF
o “Mở”: công khai
o Trạng thái liên kết cổ điển
▪ Mỗi router gởi quảng bá gói tin quảng cáo trạng thái liên kết
OSPF (trực tiếp qua IP thay vì sử dụng TCP/UDP) tới tất cả
các router khác trong toàn bộ AS
▪ Nhiều chỉ số chi phí liên kết có thể: băng thông, độ trễ
▪ Mỗi router có cấu trúc liên kết đầy đủ, sử dụng thuật toán
Dijkstra để tính toán bảng chuyển tiếp
o Bảo mật: tất cả các thông báo OSPF được xác thực (để ngăn
chặn sự xâm nhập độc hại)
129
OSPF phân cấp
o Phân cấp hai cấp: local area, backbone.
• Quảng cáo trạng thái liên kết chỉ tràn ngập trong khu vực hoặc đường trục
• Mỗi nút có cấu trúc liên kết khu vực chi tiết; chỉ biết phương hướng để đạt
được các điểm đến khác
Router ranh giới khu vực:
“tóm tắt” khoảng cách
đến các đích trong khu vực
riêng, quảng cáo trong
đường trục
khu vực 1
khu vực 2
khu vực 3
backbone
Router
cục bộ
router đường trục:
chạy OSPF giới hạn
ở đường trục
Router ranh giới: kết
nối với các AS khác
Router cục bộ:
• Gởi LS chỉ trong khu vực
• Tính toán định tuyến trong
khu vực
• Chuyển tiếp các gói ra bên
ngoài thông qua router
biên giới khu vực
130
Định tuyến giữa các AS: BGP
o BGP (Border Gateway Protocol): giao thức định tuyến liên miền thực tế
• “chất keo kết nối Internet với nhau”
o Cho phép mạng con quảng cáo sự tồn tại của nó và các điểm đến mà nó
có thể tiếp cận với phần còn lại của Internet: “ Tôi ở đây, đây là người tôi
có thể tiếp cận và bằng cách”
o BGP cung cấp cho mỗi AS một phương tiện để:
▪ eBGP: lấy thông tin về khả năng tiếp cận mạng con từ các AS lân cận
▪ iBGP: truyền thông tin về khả năng tiếp cận tới tất cả các router bên
trong AS.
▪ Xác định các tuyến “ tốt” đến các mạng khác dựa trên thông tin và
chính sách về khả năng tiếp cận
131
Kết nối eBGP, iBGP
kết nối eBGP
kết nối iBGP logic
1b
1d
1c
1a
2b
2d
2c
2a
3b
3d
3c
3a
AS 2
AS 3
AS 1
1c
∂
∂
Gateway router chạy cả giao thức eBGP và iBGP
132
Tại sao định tuyến Intra-AS, Inter-AS khác nhau?
Chính sách:
o Inter-AS: quản trị viên muốn kiểm soát cách lưu lượng truy cập
được định tuyến, ai định tuyến qua mạng của nó
o Intra-AS: quản trị viên duy nhất, vì vậy chính sách ít có vấn đề hơn
Tỉ lệ:
o Định tuyến phân cấp giúp tiết kiệm kích thước bảng, giảm lưu
lượng cập nhật
Hiệu suất:
o Intra-AS: có thể tập trung vào hiệu suất
o Inter-AS: chính sách chi phối hiệu suất
133
Mạng được xác định bằng phần mềm (SDN)
o Lớp mạng Internet: được triển khai theo lịch sử thông qua
phương pháp kiểm soát phân tán trên mỗi router:
▪ Nguyên khối chứa phần cứng chuyển mạch, chạy triển khai độc
quyền các giao thức chuẩn Internet (IP, RIP, IS-IS, OSPF, BGP)
trong hệ điều hành router độc quyền (ví dụ: Cisco IOS)
▪ Các “hộp trung gian” khác nhau cho các chức năng lớp mạng
khác nhau: tường lửa, bộ cân bằng tải, hộp NAT, ..
o ~2005: quan tâm mới đến việc xem xét lại mức điều khiển mạng
134
Mức điều khiển ở mỗi router
Các thành phần thuật toán định tuyến riêng lẻ trong mỗi và mọi router
tương tác trong mức điều khiển
thuật toán
định tuyến
Mức dữ liệu
Mức điều khiển
1
2
0111
3
giá trị địa chỉ đích trong
header của gói tin
135
Mức điều khiển được xác định bằng phần mềm (SDN –
Software-Defined-Networking)
Mức dữ liệu
Mức điều khiển
Điều khiển từ xa
CA
CA CA CA CA
1
2
0111
3
giá trị địa chỉ đích trong
header của gói tin
Bộ điều khiển từ xa tính toán, cài đặt bảng chuyển tiếp trong router
136
Mạng được xác định bằng phần mềm (SDN)
Tại sao mức điều khiển tập trung là hợp lý?
o Quản lý mạng dễ dàng hơn: tránh cấu hình sai router, luồng lưu lượng
linh hoạt hơn
o Chuyển tiếp dựa trên bảng (gọi lại OpenFlow API) cho phép các router
“lập trình”
▪ “lập trình” tập trung dễ dàng hơn: tính toán bảng tập trung và phân
phối
▪ “lập trình” phân tán khó hơn: tính toán các bảng do thuật toán
(giao thức) phân tán được triển khai trong từng router
o Triển khai mở (không độc quyền) của mức điều khiển
▪ Thúc đẩy đổi mới: hãy để 1000 bông hoa nở
137
Tương tự SDN: cuộc cách mạng từ máy tính lớn đến PC
Tích hợp theo chiều dọc
Đóng cửa, độc quyền
Chậm đổi mới
Công nghiệp nhỏ
Chuyên
Điều hành
Hệ thống
Chuyên
Phần cứng
Ứn
g
dụ
ng
Ứn
g
dụ
ng
Ứn
g
dụ
ng
Ứn
g
dụ
ng
Ứn
g
dụ
ng
Ứn
g
dụ
ng
Ứn
g
dụ
ng
Ứn
g
dụ
ng
Ứn
g
dụ
ng
Ứn
g
dụ
ng
Ứng
dụng
Chuyên
Các ứng dụng
Tích hợp theo chiều ngang
Giao tiếp mở
Đổi mới nhanh chóng
Ngành công nghiệp khổng lồ
bộ vi xử lý
Giao tiếp mở
hoặc hoặc
Giao tiếp mở
Windows Linux MAC OS
138
2
2
1
3
1
1
2
5
3
5
v w
u z
y
x
Kỹ thuật lưu lượng: khó khăn với định tuyến truyền thống
Hỏi: nếu nhà điều hành mạng muốn lưu lượng truy cập từ u đến z chạy dọc
theo uvwz, thay vì uxyz thì sao?
Trả lời: cần xác định lại trọng số liên kết để thuật toán định tuyến lưu lượng
tính toán các tuyến tương ứng (hoặc cần một thuật toán định tuyến mới)!
Trọng số liên kết chỉ là “nút” điều khiển: không kiểm soát nhiều!
139
2
2
1
3
1
1
2
5
3
5
v w
u z
y
x
Kỹ thuật lưu lượng: khó khăn với định tuyến truyền thống
Hỏi: nếu nhà điều hành mạng muốn phân chia lưu lượng u-to-z dọc theo
uvwz và uxyz (cân bằng tải) thì sao?
Trả lời: không làm được (hoặc cần thuật toán định tuyến mới)
140
Kỹ thuật lưu lượng: khó khăn với định tuyến truyền thống
Hỏi: Nếu w muốn định tuyến lưu lượng màu xanh và đỏ khác nhau từ
w đến z thì sao?
Trả lời: Không thể thực hiện được (với chuyển tiếp dựa trên đích và
định tuyến LS, DV)
2
2
1
3
1
1
2
5
3
5
v w
u z
y
x
Chuyển tiếp tổng quát và SDN có thể được sử dụng để đạt được bất
kỳ định tuyến mong muốn nào
141
Mạng được xác định bằng phần mềm (SDN)
Mức dữ liệu
Mức
điều khiển
Remote Controller
CA
CA CA CA CA
1. Chuyển tiếp “flow-
based” tổng quát (ví
dụ OpenFlow)
2. Tách riêng giữa
mức điều khiển và
mức dữ liệu
3. Các chức năng mức
điều khiển bên ngoài
đến các chuyển
mạch mức dữ liệu
…
routing
access
control
load
balance
4. Các ứng
dụng điều
khiển có thể
lập trình
được
142
Mạng được xác định bằng phần mềm (SDN)
Chuyển mạch ở mức dữ liệu:
o Chuyển mạch nhanh, đơn giản triển khai
chuyển tiếp mức dữ liệu tổng quát trong
phần cứng
o Bảng luồng (chuyển tiếp) được tính toán,
cài đặt dưới sự giám sát của bộ điều
khiển
o API cho điều khiển chuyển đổi dựa trên
bảng (ví dụ: OpenFlow)
• Xác định những gì có thể kiểm soát
được, cái gì không
o Giao thức để giao tiếp với bộ điều khiển
(ví dụ: OpenFlow)
data
plane
control
plane
SDN Controller
(network operating system)
…
routing
access
control
load
balance
southbound API
northbound API
SDN-controlled switches
network-control applications
143
Mạng được xác định bằng phần mềm (SDN)
Bộ điều khiển SDN (hệ điều hành mạng):
o Duy trì thông tin trạng thái mạng
o Tương tác với các ứng dụng điều
khiển mạng “ở trên” thông qua API
hướng northbound
o Tương tác với các thiết bị chuyển
mạch mạng “bên dưới” thông qua API
sounthbound
o Được triển khai dưới dạng hệ thống
phân tán cho hiệu suất, khả năng mở
rộng, khả năng chịu lỗi, độ bền cao data
plane
control
plane
SDN Controller
(network operating system)
…
routing
access
control
load
balance
southbound API
northbound API
SDN-controlled switches
network-control applications
144
Mạng được xác định bằng phần mềm (SDN)
Ứng dụng điều khiển mạng:
o “bộ não” điều khiển: thực hiện
các chức năng điều khiển bằng
các dịch vụ cấp thấp hơn, API
do bộ điều khiển SDN cung cấp
o Không được nhóm: có thể được
cung cấp bởi bên thứ 3: khác
với nhà cung cấp định tuyến
hoặc bộ điều khiển SDN
data
plane
control
plane
SDN Controller
(network operating system)
…
routing
access
control
load
balance
southbound API
northbound API
SDN-controlled switches
network-control applications
145
Các thành phần của bộ điều khiển SDN
Truyền thông: giao tiếp
giữa bộ điều khiển SDN và
các bộ chuyển mạch được
điều khiển
Quản lý trạng thái toàn
mạng : trạng thái của các
liên kết mạng, chuyển
mạch, dịch vụ: cơ sở dữ
liệu phân tán
Lớp giao diện cho các ứng
dụng điều khiển mạng: API
trừu tượng
Network-wide distributed, robust state management
Communication to/from controlled devices
Link-state info switch info
host info
statistics flow tables
…
…
OpenFlow SNMP
…
network
graph intent
RESTful
API
…
Interface, abstractions for network control apps
SDN
controller
routing access
control
load
balance
146
Giao thức OpenFlow
o Hoạt động giữa bộ điều khiển, bộ chuyển đổi
o TCP dùng để trao đổi thông điệp
• Mã hóa tùy chọn
o Ba lớp thông báo OpenFlow:
▪ Bộ điều khiển sang bộ chuyển đổi
▪ Không đồng bộ (chuyển đổi sang bộ điều
khiển)
▪ Đối xứng
o Khác biệt với OpenFlow API
▪ API được sử dụng để chỉ định các hành
động chuyển tiếp tổng quát
Bộ điều khiển OpenFlow
147
OpenFlow: thông điệp từ bộ điều khiển đến bộ chuyển đổi
Tin nhắn từ bộ điều khiển đến bộ chuyển đổi
o Các tính năng: các tính năng chuyển đổi
truy vấn bộ điều khiển, trả lời chuyển đổi
o Cấu hình: các truy vấn điều khiển/thiết
đặt tham số cấu hình chuyển đổi
o Trạng thái sửa đổi: thêm, xóa, sửa đổi
các mục nhập luồng trong các bảng
OpenFlow
o Packet-out: bộ điều khiển có thể gửi gói
tin ra khỏi cổng chuyển đổi cụ thể
Bộ điều khiển OpenFlow
148
OpenFlow: thông điệp từ bộ chuyển đổi sang bộ điều khiển
Thông điệp từ bộ chuyển đổi sang bộ điều
khiển
o Packet-in: chuyển gói (và điều khiển của
nó) tới bộ điều khiển
o Loại bỏ luồng: mục nhập tương ứng bị
xóa tại bộ chuyển đổi
o Trạng thái cổng: thông báo cho bộ điều
khiển về sự thay đổi trên cổng
May mắn thay, các nhà khai thác mạng không "lập trình" chuyển mạch
bằng cách tạo/gửi trực tiếp các tin nhắn OpenFlow. Thay vào đó là sử dụng
trừu tượng hóa ở cấp cao hơn tại bộ điều khiển
Bộ điều khiển OpenFlow
149
SDN: ví dụ tương tác mức điều khiển/mức dữ liệu
S1, thông báo trạng thái cổng
OpenFlow để thông báo cho bộ
điều khiển
1
Bộ điều khiển SDN nhận thông
báo OpenFlow, cập nhật thông
tin trạng thái liên kết
2
Ứng dụng thuật toán định tuyến
của Dijkstra trước đây đã đăng
ký để gọi khi trạng thái liên kết
thay đổi.
3
Thuật toán định tuyến của
Dijkstra truy cập thông tin biểu
đồ mạng, thông tin trạng thái liên
kết trong bộ điều khiển, tính toán
các tuyến mới
4
Link-state info switch info
host info
statistics flow tables
…
…
OpenFlow SNMP
…
network
graph intent
RESTful
API
…
Dijkstra’s link-state
routing
s1
s2
s3
s4
1
2
3
4
150
SDN: ví dụ tương tác mức điều khiển/mức dữ liệu
Ứng dụng định tuyến link
state tương tác với thành
phần tính toán của bảng lưu
lượng trong bộ điều khiển
SDN, tính toán các bảng lưu
lượng mới cần thiết
5
Bộ điều khiển sử dụng
OpenFlow để cài đặt các
bảng mới trong các bộ
chuyển đổi cần cập nhật
6
Link-state info switch info
host info
statistics flow tables
…
…
OpenFlow SNMP
…
network
graph intent
RESTful
API
…
Dijkstra’s link-state
routing
s1
s2
s3
s4
5
1
2
3
4
151
Bộ điều khiển OpenDaylight (ODL)
o Lớp trừu tượng hóa
dịch vụ:
▪ Kết nối các ứng
dụng và dịch vụ bên
trong, bên ngoài
Network Orchestrations and Applications
Southbound API
Service
Abstraction Layer
(SAL)
config. and
operational data
store
REST/RESTCONF/NETCONF
APIs
messaging
OpenFlow NETCONF SNMP OVSDB …
Northbound API
Traffic
Engineering …
Firewalling Load
Balancing
Basic Network Functions
Enhanced
Services
…
…
Forwardin
g rules
mgr.
AAA
Host
Tracker
Stats
mgr.
Switch
mgr.
Topolog
y
processin
g
152
Bộ điều khiển ONOS
o Ứng dụng điều khiển
tách biệt với bộ điều
khiển
o Khung ý tưởng: đặc
điểm kỹ thuật cấp cao
của dịch vụ: cái gì là
hơn và như thế nào
o Nhấn mạnh đáng kể
vào lõi phân tán: độ
tin cậy của dịch vụ,
nhân rộng hiệu suất
sao chép
Network Applications
Southbound API
Northbound API
Traffic
Engineering …
Firewalling Load
Balancing
southbound
abstractions,
protocols
OpenFlow Netconf OVSDB
device link host flow packet
northbound
abstractions,
protocols
REST API Intent
ONOS
distributed
core
statistics
devices
hosts
links
paths flow rules topology
153
SDN: thử thách đã chọn
o Củng cố mức điều khiển: độc lập, đáng tin cậy, có thể mở rộng hiệu
suất, bảo mật cho hệ thống phân tán
▪ Tận dụng lý thuyết về hệ thống phân tán tin cậy cho mức điều khiển
▪ Độ tin cậy, bảo mật
o Mạng, giao thức đáp ứng yêu cầu nhiệm vụ cụ thể
▪ Ví dụ: thời gian thực, cực kỳ đáng tin cậy, cực kỳ an toàn
o Mở rộng quy mô Internet: ngoài một AS
o SDN quan trọng trong mạng di động 5G
154
SDN và tương lai của các giao thức mạng truyền thống
o SDN tính toán các bảng chuyển tiếp router-máy tính:
▪ Chỉ là một ví dụ về tính toán logic-tập trung so với tính toán giao thức
o Người ta có thể tưởng tượng kiểm soát tắc nghẽn được tính toán bằng
SDN:
▪ Bộ điều khiển đặt tốc độ người gửi dựa trên mức tắc nghẽn do router
báo cáo (đến bộ điều khiển)
Việc triển khai chức năng mạng
(SDN so với các giao thức) sẽ
phát triển như thế nào?
155
Quản lý mạng là gì
o Hệ thống tự quản (hay còn gọi là “mạng”): 1000 thành phần phần
cứng/phần mềm tương tác
o Các hệ thống phức tạp khác yêu cầu giám sát, cấu hình, kiểm soát:
▪ Máy bay phản lực, nhà máy điện hạt nhân, những thứ khác?
" Quản lý mạng bao gồm việc triển khai, tích hợp và phối hợp
của phần cứng, phần mềm và con người, các yếu tố để giám sát,
kiểm tra, thăm dò ý kiến, cấu hình, phân tích, đánh giá và kiểm
soát mạng và tài nguyên phần tử để đáp ứng thời gian thực,
hiệu suất hoạt động và chất lượng dịch vụ yêu cầu với chi phí
hợp lý.”
156
Các thành phần quản lý mạng
Quản lý máy chủ:
ứng dụng, điển hình
với người quản lý
mạng trong vòng lặp
Giao thức quản lý
mạng: được sử
dụng bởi máy chủ
quản lý để truy vấn,
định cấu hình, quản
lý thiết bị; được sử
dụng bởi các thiết bị
để thông báo cho
máy chủ quản lý dữ
liệu, sự kiện
Thiết bị được quản lý:
thiết bị có các thành
phần phần mềm, phần
cứng có thể quản lý,
có thể định cấu hình
Dữ liệu: dữ liệu cấu
hình “trạng thái” của
thiết bị, dữ liệu vận
hành, thống kê thiết
bị
managed device
managed device
managed device
managed device
managed device
agent data
agent data
agent data
agent data
agent data
managing
server/controller
data
157
Phương pháp tiếp cận cách quản lý của nhà điều hành mạng
CLI (Giao diện dòng lệnh)
o Các sự cố của nhà điều hành (loại, tập
lệnh) trực tiếp đến từng thiết bị (ví dụ:
vis ssh)
SNMP/MIB
o Người vận hành truy vấn/đặt dữ liệu
thiết bị (MIB) bằng Giao thức quản lý
mạng đơn giản (SNMP)
NETCONF/YANG
o Trừu tượng hơn, rộng hơn, toàn diện hơn
o Nhấn mạnh vào quản lý cấu hình đa thiết bị
o YANG: ngôn ngữ mô hình hóa dữ liệu
o NETCONF: giao tiếp các hành động/dữ liệu
tương thích với YANG đến/từ/giữa các thiết
bị từ xa
managed device
managed device
managed device
managed device
managed device
agent data
agent data
agent data
agent data
agent data
managing
server/controller
data
158
Giao thức SNMP
Hai cách để truyền tải thông tin MIB, lệnh:
managed device
agent data
managing
server/controlle
r
data
request
response trap message
request/response mode
managed device
agent data
managing
server/controlle
r
data
trap mode
159
Giao thức SNMP: các loại thông báo
GetRequest
GetNextRequest
GetBulkRequest
manager-to-agent: “ lấy dữ liệu cho tôi ”
(ví dụ dữ liệu, dữ liệu tiếp theo trong
danh sách, khối dữ liệu).
Loại thông điệp Chức năng
SetRequest manager-to-agent: đặt giá trị MIB
Reponse Agent-to-manager: giá trị, phản hồi Yêu
cầu
Trap Agent-to-manager: thông báo cho người
quản lý sự kiện đặc biệt
160
Giao thức SNMP: định dạng thông điệp
….
PDU
type
(0-3)
Request
ID
Error
Status
(0-5)
Error
Index
Name Value Name Value
Get/set header Variables to get/set
SNMP PDU
Thông điệp type 3
….
PDU
type
4
Enterprise Agent
Addr
Trap
Type
(0-7)
Specific
code
Time
stamp
Name Value
Trap header Trap info
Thông điệp type 4
161
SNMP: Cơ sở quản lý thông tin (MIB)
o Dữ liệu hoạt động (và một số cấu hình) của thiết bị được
quản lý
o Được tập hợp vào mô-đun MIB của thiết bị
▪ 400 mô-đun MIB được xác định trong RFC's; nhiều MIB dành riêng
cho nhà cung cấp hơn
▪ Cấu trúc thông tin quản lý (SMI): ngôn ngữ định nghĩa dữ liệu
agent data
162
Tổng quan về NETCONF
o Mục tiêu: chủ động quản lý/ cấu hình thiết bị trên toàn mạng
o Hoạt động giữa máy chủ quản lý và thiết bị mạng được quản lý
▪ Hành động: truy xuất, đặt, sửa đổi, kích hoạt cấu hình
▪ Hoạt động được cam kết trên nhiều thiết bị
▪ Truy vấn dữ liệu hoạt động và thống kê
▪ Đăng ký nhận thông báo từ các thiết bị
o Mô hình gọi thủ tục từ xa (RPC)
▪ Thông báo giao thức NETCONF được mã hóa bằng XML
▪ Giao thức vận chuyển an toàn, đáng tin cậy (ví dụ: TLS)
163
NETCONF khởi tạo, trao đổi, đóng phiên
Session initiation,
capabilities exchange: <hello>
Session close: <close-session>
<rpc>
<rpc-reply>
<rpc>
<rpc-reply>
<rpc>
<rpc-reply>
<notification>
…
…
…
…
…
…
…
…
…
managing
server/controller
data
agent data
164
YANG
o Ngôn ngữ mô hình hóa dữ liệu dùng
để chỉ định cấu trúc, cú pháp, ngữ
nghĩa của dữ liệu quản lý mạng
NETCONF
▪ Các kiểu dữ liệu tích hợp, như SMI
o Tài liệu XML mô tả thiết bị, các khả
năng có thể được tạo từ mô tả YANG
o Có thể thể hiện các ràng buộc giữa
các dữ liệu phải được thỏa mãn bởi
cấu hình NETCONF hợp lệ
▪ Đảm bảo các cấu hình NETCONF đáp ứng
các ràng buộc về tính chính xác, nhất quán
đại lý dữ liệu
quản lý
máy chủ/bộ
điều khiển
dữ
liệu
Thông báo
NETCONF RPC
<sửa-cấu hình>
XML do YANG tạo
</sửa-cấu hình> YANG
được tạo ra
165
Chương 4: Nội dung
4.1 Tổng quan
o Mức dữ liệu
o Mức điều khiển
4.2 Virtual circuit network và datagram
network
o Các mạch ảo
o Mạng datagram
4.3 Cấu trúc bên trong router
o Cổng đầu vào, chuyển đổi, cổng đầu ra
o Quản lý bộ đệm, lập kế hoạch
4.4 IP: Internet Protocol
o Định dạng datagram
o IPv4 addressing
o DHCP
o NAT
o ICMP
o IPV6
4.5 Các thuật toán routing
o Link state
o Distance vector
4.6 Routing trong Internet
o Hierarchical routing
o RIP, OSPF, BGP
o SDN
o Quản lý mạng
4.7 Broadcast và Multicast routing
166
R1
R2
R3 R4
Nguồn
trùng lặp
R1
R2
R3 R4
Trùng lặp
trong mạng
duplicate
creation/transmission
duplicate
duplicate
Broadcast routing
o Chuyển các packet từ nguồn tới tất cả các node khác
o Nguồn trùng lặp thì không có hiệu quả:
• Nguồn trùng lặp: làm sao xác định được địa chỉ người nhận?
167
Trùng lặp trong mạng
o Flooding: khi node nhận được packet broadcast, nó gởi bản sao đến tất
cả các neighbor
▪ Vấn đề: lặp lại & bão broadcast
o Flooding có điều khiển: node chỉ broadcast packet nếu nó không gửi
broadcast giống như vậy trước đó
▪ Node theo dõi các packet đã broadcast
▪ Hoặc reverse path forwarding (RPF): chỉ chuyển các packet nếu nó đã
đến trên đường đi ngắn nhất giữa node và nguồn
o Spanning tree:
▪ Không có các packet dư thừa được nhận tại bất cứ node nào
168
Multicast routing: phát biểu vấn đề
Mục tiêu: tìm một cây (hoặc các cây) kết nối các router có các thành viên trong
nhóm multicast
o Cây (tree): không phải tất cả các đường đi giữa các router đều được sử dụng
▪ Cây chia sẻ (shared-tree): cây giống nhau được sử dụng bởi các thành viên trong
nhóm
▪ Cây dựa trên nguồn(source-based): cây khác nhau từ nơi gửi tới nơi nhận
Cây chia sẻ Cây dựa trên nguồn
Group member
not group member
Router with a
Group member
Router without
group member
Ký hiệu
169
Hướng tiếp cận để xây dựng các cây multicast
Các hướng tiếp cận:
o Cây dựa trên nguồn (source-based tree): một cây cho mỗi nguồn
▪ Các cây đường đi ngắn nhất
▪ Cây đường đi ngược
o Cây chia sẻ nhóm: nhóm dùng 1 cây
▪ Mở rộng tối thiểu (Steiner)
▪ Các cây dựa trên trung tâm (center-based trees)
… tìm hiểu các cách tiếp cận cơ bản, sau đó các giao thức cụ thể áp
dụng cho các hướng tiếp cận này
170
Lớp mạng: Tóm tắt
Chúng ta đã học được rất nhiều!
o Tiếp cận mức điều khiển mạng
▪ Điều khiển trên mỗi router (truyền thống)
▪ Điều khiển tập trung hợp lý (mạng được xác định bằng phần
mềm)
o Thuật toán định tuyến truyền thống
▪ Triển khai trên Internet: OSPF , BGP
o Bộ điều khiển SDN
▪ Triển khai trong thực tế: ODL, ONOS
o Quản lý mạng
điểm dừng tiếp theo: lớp liên kết!
171
Danh sách từ Anh – Việt trong chương 4
o Broadcast: quảng bá
o Control plane: mức điều khiển
o Datagram: gói tin
o Data plane: mức dữ liệu
o Fabric: cấu tạo, tổ chức
o Forwarding: chuyển tiếp
o Flooding: làm tràn ngập
o Interface: giao tiếp, cổng
o Multicast: đa hướng
o Neighbor: hàng xóm lân cận
o Network layer: tầng mạng
o Packet: gói tin
o Router: bộ định tuyến
o Routing: định tuyến
o Switching: chuyển mạch
o Virtual circuit network: mạng mạch ảo
172

More Related Content

Similar to IT005 - Chương 4.pdf

Đề cương ôn tập mạng máy tính
Đề cương ôn tập mạng máy tínhĐề cương ôn tập mạng máy tính
Đề cương ôn tập mạng máy tínhHưởng Nguyễn
 
Chuong 5 - PPP ATM MPLS-PPP ATM MPLS.pdf
Chuong 5 - PPP ATM MPLS-PPP ATM MPLS.pdfChuong 5 - PPP ATM MPLS-PPP ATM MPLS.pdf
Chuong 5 - PPP ATM MPLS-PPP ATM MPLS.pdfDucpham796316
 
7314_L13_Slides_VN.pdf
7314_L13_Slides_VN.pdf7314_L13_Slides_VN.pdf
7314_L13_Slides_VN.pdfTâm Long Võ
 
chương 4 - TCP/IP - mạng máy tính
chương 4 - TCP/IP - mạng máy tínhchương 4 - TCP/IP - mạng máy tính
chương 4 - TCP/IP - mạng máy tínhQuyên Nguyễn Tố
 
C10 - Routing Remote Access -2020.pdf
C10 - Routing Remote Access -2020.pdfC10 - Routing Remote Access -2020.pdf
C10 - Routing Remote Access -2020.pdfTrnMinhT9
 
Bai giang thiet ke mang lan wan
Bai giang thiet ke mang lan wanBai giang thiet ke mang lan wan
Bai giang thiet ke mang lan wanisland2101
 
Bai giang-Lap trinh he thong-Ch2-Lap trinh Socket.pdf
Bai giang-Lap trinh he thong-Ch2-Lap trinh Socket.pdfBai giang-Lap trinh he thong-Ch2-Lap trinh Socket.pdf
Bai giang-Lap trinh he thong-Ch2-Lap trinh Socket.pdfCanhPhuongVan
 
Bai giang mon_mang_may_tinh_can_ban_7045
Bai giang mon_mang_may_tinh_can_ban_7045Bai giang mon_mang_may_tinh_can_ban_7045
Bai giang mon_mang_may_tinh_can_ban_7045ssuser6f354d
 
thi tốt nghiệp môn chính trị
thi tốt nghiệp môn chính trịthi tốt nghiệp môn chính trị
thi tốt nghiệp môn chính trịchauminhtricntt
 
Tổng quan về định tuyến tĩnh và
Tổng quan về định tuyến tĩnh vàTổng quan về định tuyến tĩnh và
Tổng quan về định tuyến tĩnh vàshinibi
 

Similar to IT005 - Chương 4.pdf (20)

Chap5
Chap5Chap5
Chap5
 
Mạng máy tính
Mạng máy tínhMạng máy tính
Mạng máy tính
 
Network
NetworkNetwork
Network
 
Mạnh (1)
Mạnh (1)Mạnh (1)
Mạnh (1)
 
Đề cương ôn tập mạng máy tính
Đề cương ôn tập mạng máy tínhĐề cương ôn tập mạng máy tính
Đề cương ôn tập mạng máy tính
 
Chuong 5 - PPP ATM MPLS-PPP ATM MPLS.pdf
Chuong 5 - PPP ATM MPLS-PPP ATM MPLS.pdfChuong 5 - PPP ATM MPLS-PPP ATM MPLS.pdf
Chuong 5 - PPP ATM MPLS-PPP ATM MPLS.pdf
 
7314_L13_Slides_VN.pdf
7314_L13_Slides_VN.pdf7314_L13_Slides_VN.pdf
7314_L13_Slides_VN.pdf
 
chương 4 - TCP/IP - mạng máy tính
chương 4 - TCP/IP - mạng máy tínhchương 4 - TCP/IP - mạng máy tính
chương 4 - TCP/IP - mạng máy tính
 
C10 - Routing Remote Access -2020.pdf
C10 - Routing Remote Access -2020.pdfC10 - Routing Remote Access -2020.pdf
C10 - Routing Remote Access -2020.pdf
 
7314 l13 slides_vn
7314 l13 slides_vn7314 l13 slides_vn
7314 l13 slides_vn
 
Bai giang thiet ke mang lan wan
Bai giang thiet ke mang lan wanBai giang thiet ke mang lan wan
Bai giang thiet ke mang lan wan
 
Bai giang-Lap trinh he thong-Ch2-Lap trinh Socket.pdf
Bai giang-Lap trinh he thong-Ch2-Lap trinh Socket.pdfBai giang-Lap trinh he thong-Ch2-Lap trinh Socket.pdf
Bai giang-Lap trinh he thong-Ch2-Lap trinh Socket.pdf
 
Bai giang mon_mang_may_tinh_can_ban_7045
Bai giang mon_mang_may_tinh_can_ban_7045Bai giang mon_mang_may_tinh_can_ban_7045
Bai giang mon_mang_may_tinh_can_ban_7045
 
thi tốt nghiệp môn chính trị
thi tốt nghiệp môn chính trịthi tốt nghiệp môn chính trị
thi tốt nghiệp môn chính trị
 
Tổng quan về định tuyến tĩnh và
Tổng quan về định tuyến tĩnh vàTổng quan về định tuyến tĩnh và
Tổng quan về định tuyến tĩnh và
 
Dsd05 01-rpca
Dsd05 01-rpcaDsd05 01-rpca
Dsd05 01-rpca
 
Slide mang may tinh
Slide mang may tinhSlide mang may tinh
Slide mang may tinh
 
Bai 7
Bai 7Bai 7
Bai 7
 
bai1chuong1.pptx
bai1chuong1.pptxbai1chuong1.pptx
bai1chuong1.pptx
 
Chapter4
Chapter4Chapter4
Chapter4
 

IT005 - Chương 4.pdf

  • 1. ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN NHẬP MÔN MẠNG MÁY TÍNH Chương 4: Tầng Network 1
  • 2. Computer Networking: A Top-Down Approach 8th edition Jim Kurose, Keith Ross Pearson, 2020 A note on the use of these PowerPoint slides: We’re making these slides freely available to all (faculty, students, readers). They’re in PowerPoint form so you see the animations; and can add, modify, and delete slides (including this one) and slide content to suit your needs. They obviously represent a lot of work on our part. In return for use, we only ask the following: ▪ If you use these slides (e.g., in a class) that you mention their source (after all, we’d like people to use our book!) ▪ If you post any slides on a www site, that you note that they are adapted from (or perhaps identical to) our slides, and note our copyright of this material. For a revision history, see the slide note for this page. Thanks and enjoy! JFK/KWR All material copyright 1996-2020 J.F Kurose and K.W. Ross, All Rights Reserved Chương 4: Tầng Network 2
  • 3. Chương 4: Tầng Network (tầng Mạng) Mục tiêu: o Hiểu các nguyên lý nền tảng của các dịnh vụ tầng Network ▪ Các mô hình dịch vụ của tầng Network ▪ Forwarding và routing ▪ Cách router hoạt động ▪ Routing ▪ Broadcast, multicast o Hiện thực trong Internet ▪ Giao thức IP ▪ NAT ▪ SDN 3
  • 4. Chương 4: Nội dung 4.1 Tổng quan o Mức dữ liệu o Mức điều khiển 4.2 Virtual circuit network và datagram network o Các mạch ảo o Mạng datagram 4.3 Cấu trúc bên trong router o Cổng đầu vào, chuyển đổi, cổng đầu ra o Quản lý bộ đệm, lập kế hoạch 4.4 IP: Internet Protocol o Định dạng datagram o IPv4 addressing o DHCP o NAT o ICMP o IPV6 4.5 Các thuật toán routing o Link state o Distance vector 4.6 Routing trong Internet o Hierarchical routing o RIP, OSPF, BGP o SDN o Quản lý mạng 4.7 Broadcast và Multicast routing 4
  • 5. Các dịch vụ và giao thức tầng Network o Truyền các segment từ máy gửi đến máy nhận ▪ Máy gửi: đóng gói các segment thành các datagram, chuyển đến tầng liên kết ▪ Máy nhận: phân phối các segment đến giao thức tầng vận chuyển o Giao thức tầng network trong thiết bị Internet: máy tính, router o Router: ▪ Kiểm tra các trường trong phần header của tất cả các datagram đi qua nó ▪ Di chuyển các datagram từ cổng đầu vào sang cổng đầu ra để truyền datagram dọc theo đường dẫn end-end 5
  • 6. Hai chức năng chính của tầng network Chức năng tầng network: o Forwarding (chuyển tiếp): di chuyển các gói dữ liệu từ cổng đầu vào của router đến cổng đầu ra phù hợp của router o Routing (định tuyến): xác định tuyến đường di chuyển cho các gói dữ liệu từ nguồn đến đích ▪ Các thuật toán định tuyến Tương tự: tham gia một chuyến đi ▪ Chuyển tiếp: quá trình chuyển qua một nhánh đường xác định chuyển tiếp định tuyến (lộ trình) ▪ Định tuyến: quá trình lập kế hoạch chuyến đi từ nguồn đến đích 6
  • 7. Tầng network: mức dữ liệu (data plane) và mức điều khiển (control plane) Mức dữ liệu: o Cục bộ, trên mỗi router o Xác định cách datagram đến cổng đầu vào của router được chuyển tiếp đến cổng đầu ra của router Mức điều khiển: o Toàn mạng, logic o Xác định cách datagram được định tuyến giữa các router dọc theo đường dẫn đầu cuối từ máy nguồn đến máy đích 1 2 3 0111 giá trị địa chỉ đích trong header của gói tin o Hai cách tiếp cận mức điều khiển: ▪ Thuật toán định tuyến truyền thống: được thực hiện trong router ▪ Mạng được xác định bằng phần mềm (SDN) : được triển khai trong các máy chủ (từ xa) 7
  • 8. Mức điều khiển ở mỗi router Các thành phần thuật toán định tuyến riêng lẻ trong mỗi và mọi router tương tác trong mức điều khiển thuật toán định tuyến Mức dữ liệu Mức điều khiển 1 2 0111 3 giá trị địa chỉ đích trong header của gói tin 8
  • 9. Mức điều khiển được xác định bằng phần mềm (SDN – Software-Defined- Networking) Mức dữ liệu Mức điều khiển Điều khiển từ xa CA CA CA CA CA 1 2 0111 3 giá trị địa chỉ đích trong header của gói tin 9
  • 10. Mô hình dịch vụ mạng Các dịch vụ cho datagram riêng lẻ : o Đảm bảo truyền o Độ trễ dưới 40 mili giây Các dịch vụ cho một luồng datagram: o Truyền datagram theo thứ tự o Đảm bảo băng thông tối thiểu để truyền o Hạn chế các thay đổi trong khoảng trống giữa các gói tin Hỏi: Mô hình dịch vụ nào cho “kênh” truyền datagram từ máy gửi đến máy nhận? 10
  • 11. Mô hình dịch vụ tầng mạng Kiến trúc Mạng Internet ATM ATM Internet Internet Mô hình dịch vụ nỗ lực tốt nhất Tốc độ không đổi Tốc độ bit khả dụng Đảm bảo dịch vụ (RFC 1633 ) phân tán (RFC 2475 ) Băng thông không có tỷ lệ không đổi đảm bảo tối thiểu Đúng khả thi Mất mát KHÔNG Đúng KHÔNG Đúng có khả năng Thứ tự KHÔNG Đúng Đúng Đúng có khả năng thời gian KHÔNG Đúng KHÔNG Đúng KHÔNG Không đảm bảo về : i. Truyền thành công datagram tới đích ii. Thời gian hoặc thứ tự truyền iii. Băng thông sẵn có cho luồng đầu cuối Mô hình dịch vụ Internet “nỗ lực tốt nhất” Đảm bảo chất lượng dịch vụ (QoS)? 11
  • 12. Mô hình dịch vụ tầng mạng Kiến trúc Mạng Internet ATM ATM Internet Internet Mô hình Dịch vụ nỗ lực tốt nhất tốc độ không đổi tốc độ bit khả dụng đảm bảo dịch vụ (RFC 1633 ) phân tán (RFC 2475 ) Băng thông không có tỷ lệ không đổi đảm bảo tối thiểu có khả thi Mất mát không có không có khả thi Thứ tự không có có có khả thi Thời gian không có không có có Đảm bảo chất lượng dịch vụ (QoS)? 12
  • 13. Chương 4: Nội dung 4.1 Tổng quan o Mức dữ liệu o Mức điều khiển 4.2 Virtual circuit network và datagram network o Các mạch ảo o Mạng datagram 4.3 Cấu trúc bên trong router o Cổng đầu vào, chuyển đổi, cổng đầu ra o Quản lý bộ đệm, lập kế hoạch 4.4 IP: Internet Protocol o Định dạng datagram o IPv4 addressing o DHCP o NAT o ICMP o IPV6 4.5 Các thuật toán routing o Link state o Distance vector 4.6 Routing trong Internet o Hierarchical routing o RIP, OSPF, BGP o SDN o Quản lý mạng 4.7 Broadcast và Multicast routing 13
  • 14. Dịch vụ connection (hướng kết nối) và connection-less (phi kết nối) o Mạng datagram cung cấp dịch vụ connectionless tại tầng network o Mạng mạch ảo (virtual-circuit network) cung cấp dich vụ connection tại tầng network o Tương tự như các dịch vụ kết nối định hướng và không định hướng của tầng transport, nhưng: ▪ Dịch vụ: từ host này đến host kia (host-to-host) ▪ Không lựa chọn: network chỉ cung cấp 1 dịch vụ ▪ Thực hiện: trong mạng lõi 14
  • 15. Các mạch ảo (Virtual circuits) o Thiết lập cuộc gọi, chia nhỏ mỗi cuộc gọi trước khi dữ liệu có thể truyền o Mỗi packet mang định dạng của kết nối ảo (VC identifier) (không phải là địa chỉ của host đích) o Mỗi router trên đường đi từ nguồn tới đích duy trì trạng thái cho mỗi kết nối mà gói đi qua. o Đường link, các tài nguyên router (băng thông, bộ nhớ đệm) có thể được cấp phát cho kết nối ảo (các tài nguyên dành riêng= dịch vụ có thể dự đoán trước) “Đường đi từ nguồn tới đích tương tự như mạng điện thoại (telephone circuit)” ▪ Hiệu quả ▪ Các hoạt động của mạng dọc theo đường đi từ nguồn tới đích 15
  • 16. Sự thực hiện kết nối ảo (VC) Một kết nối ảo bao gồm: 1. Đường đi (path) từ nguồn tới đích 2. Số hiệu kết nối ảo (VC numbers), một số cho một kết nối dọc theo đường đi 3. Các mục trong các bảng forwarding ở trong các router dọc theo đường đi o Packet thuộc về kết nối ảo mang số hiệu (chứ không phải là điểm đến) o Số hiệu của kết nối ảo có thể được thay đổi trên mỗi kết nối ▪ Số hiệu mới của kết nối ảo được cấp phát từ bảng forwarding 16
  • 17. Bảng forwarding của kết nối ảo 12 22 32 1 2 3 VC number interface number Cổng vào 1 12 3 22 2 63 1 18 3 7 2 17 1 97 3 87 … … … … Bảng forwarding trong router ở góc trái trên cùng: Các router kết nối ảo duy trì thông tin trạng thái kết nối! số hiệu của kết nối ảo vào Cổng ra số hiệu của kết nối ảo ra 17
  • 18. application transport network data link physical Các mạch ảo: các giao thức gửi tín hiệu o Được dùng để thiết lập, duy trì kết nối ảo o Được dùng trong ATM, frame-relay, X.25 o Không được sử dụng trong Internet ngày nay 1. Khởi tạo cuộc gọi 2. Cuộc gọi đến 3. Chấp nhận cuộc gọi 4. Cuộc gọi được kết nối 5. Bắt đầu dòng dữ liệu 6. Nhận dữ liệu application transport network data link physical 18
  • 19. Mạng Datagram o Không thiết lập cuộc gọi tại tầng network o Các router: không có trạng thái về các kết nối giữa 2 điểm cuối ▪ Không có khái niệm về mức network của “kết nối” o Các packet được chuyển dùng địa chỉ của host đích 1. Gởi các datagram application transport network data link physical application transport network data link physical 2. Nhận datagram 19
  • 20. 1 2 3 Bảng Datagram forwarding Địa chỉ IP đích trong header của packet đến Thuật toán routing local forwarding table dest address output link address-range 1 address-range 2 address-range 3 address-range 4 3 2 2 1 4 tỉ địa chỉ IP, vì liệt kê ra 1 dãy các địa chỉ hơn là liệt kê ra từng địa chỉ (các mục tổng hợp) 20
  • 21. Mạng datagram hoặc mạch ảo: tại sao? Internet (datagram) o Dữ liệu trao đổi giữa các máy tính ▪ Dịch vụ “mềm dẻo, không định thì chặt chẽ. o Nhiều kiểu link ▪ Các đặc tính khác nhau ▪ Khó đồng nhất dịch vụ o Các hệ thống đầu cuối “thông minh” (các máy tính) ▪ Có thể thích ứng, điều khiển và sửa lỗi ▪ Mạng bên trong đơn giản, phức tạp tại “mạng bên ngoài” ATM (mạch ảo) o Được phát triển từ hệ thống điện thoại o Đàm thoại của con người: ▪ Định thì chặt chẽ, yêu cầu về độ tin cậy ▪ Cần cho các dịch vụ bảo đảm o Các hệ thống đầu cuối “ít thông minh” ▪ Điện thoại ▪ Bên trong mạng phức tạp 21
  • 22. Chương 4: Nội dung 4.1 Tổng quan o Mức dữ liệu o Mức điều khiển 4.2 Virtual circuit network và datagram network o Các mạch ảo o Mạng datagram 4.3 Cấu trúc bên trong router o Cổng đầu vào, chuyển đổi, cổng đầu ra o Quản lý bộ đệm, lập kế hoạch 4.4 IP: Internet Protocol o Định dạng datagram o IPv4 addressing o DHCP o NAT o ICMP o IPV6 4.5 Các thuật toán routing o Link state o Distance vector 4.6 Routing trong Internet o Hierarchical routing o RIP, OSPF, BGP o SDN o Quản lý mạng 4.7 Broadcast và Multicast routing 22
  • 23. Tổng quan kiến trúc Router Hai chức năng chính của router: o Chạy các giao thức/thuật toán routing (RIP, OSPF, BGP) o Chuyển tiếp các datagram từ đường link vào tới đường link ra high-seed switching fabric routing processor router input ports router output ports forwarding data plane (hardware) operates in nanosecond time frame routing, management control plane (software) operates in millisecond time frame 23
  • 24. Chức năng cổng đầu vào Switch fabric Line Termination Tầng vật lý: tiếp nhận mức bit Link Layer Protocol (receive) Tầng liên kết: ví dụ: Ethernet (Chương 5) Lookup, Forwarding queueing Chuyển mạch phi tập trung: o Sử dụng các giá trị trong header, tra cứu cổng đầu ra bằng cách sử dụng bảng chuyển tiếp trong bộ nhớ cổng đầu vào (“match plus action”) o Mục tiêu: hoàn thành xử lý cổng đầu vào ở 'tốc độ đường truyền’ o Hàng đợi cổng đầu vào: nếu datagram đến nhanh hơn tốc độ chuyển tiếp vào 24
  • 25. Chức năng cổng đầu vào Switch fabric Line Termination Tầng vật lý: tiếp nhận mức bit Link Layer Protocol (receive) Tầng liên kết: ví dụ: Ethernet (Chương 5) Lookup, Forwarding queueing Chuyển mạch phi tập trung : o Sử dụng các giá trị trong header, tra cứu cổng đầu ra bằng cách sử dụng bảng chuyển tiếp trong bộ nhớ cổng đầu vào (“match plus action”) o Chuyển tiếp dựa trên đích: chỉ chuyển tiếp dựa trên địa chỉ IP đích (truyền thống) o Chuyển tiếp tổng quát: chuyển tiếp dựa trên bất kỳ tập hợp giá trị nào trong trong header 25
  • 26. Hỏi: điều gì sẽ xảy ra nếu các phạm vi không được phân chia hợp lý? Chuyển tiếp dựa trên địa chỉ đích đến 3 26
  • 27. Kết hợp tiền tố dài nhất Khi tìm mục nhập bảng chuyển tiếp cho địa chỉ đích nhất định, hãy sử dụng tiền tố địa chỉ dài nhất khớp với địa chỉ đích Tiền tố phù hợp dài nhất Phạm vi địa chỉ đích 11001000 00010111 00010 11001000 00010111 00011000 11001000 00010111 00011 Ngược lại Cổng kết nối 0 1 2 3 ******** *** ******** *** ******** 11001000 00010111 00011000 10101010 ví dụ : Cổng nào? Cổng nào? 11001000 00010111 00010110 10100001 27
  • 28. Kết hợp tiền tố dài nhất Khi tìm mục nhập bảng chuyển tiếp cho địa chỉ đích nhất định, hãy sử dụng tiền tố địa chỉ dài nhất khớp với địa chỉ đích. Tiền tố phù hợp dài nhất Phạm vi địa chỉ đích 11001000 00010111 00010 11001000 00010111 00011000 11001000 00010111 00011 nếu không thì Cổng kết nối 0 1 2 3 11001000 00010111 00011000 10101010 ví dụ : Cổng nào? Cổng nào? ******** *** ******** *** ******** 11001000 00010111 00010110 10100001 match! 28
  • 29. Kết hợp tiền tố dài nhất Thi tìm mục nhập bảng chuyển tiếp cho địa chỉ đích nhất định, hãy sử dụng tiền tố địa chỉ dài nhất khớp với địa chỉ đích. Tiền tố phù hợp dài nhất Phạm vi địa chỉ đích 11001000 00010111 00010 11001000 00010111 00011000 11001000 00010111 00011 nếu không thì Cổng kết nối 0 1 2 3 11001000 00010111 00011000 10101010 ví dụ : Cổng nào? Cổng nào? ******** *** ******** *** ******** 11001000 00010111 00010110 10100001 match! 29
  • 30. Kết hợp tiền tố dài nhất Khi tìm mục nhập bảng chuyển tiếp cho địa chỉ đích nhất định, hãy sử dụng tiền tố địa chỉ dài nhất khớp với địa chỉ đích. Tiền tố phù hợp dài nhất Phạm vi địa chỉ đích 11001000 00010111 00010 11001000 00010111 00011000 11001000 00010111 00011 nếu không thì Cổng kết nối 0 1 2 3 11001000 00010111 00011000 10101010 ví dụ : Cổng nào? Cổng nào? ******** *** ******** *** ******** 11001000 00010111 00010110 10100001 match! 30
  • 31. Switching fabrics o Chuyển packet từ cổng đầu vào đến cổng đầu ra thích hợp High-speed switching fabric N cổng đầu vào N cổng đầu ra . . . . . . o Tốc độ chuyển đổi: tốc độ mà các packet có thể được chuyển từ đầu vào sang đầu ra ▪ Thường được đo bằng bội số của tốc độ dòng đầu vào/đầu ra ▪ N đầu vào: tốc độ chuyển đổi N lần tốc độ dòng mong muốn r r r r (tỷ lệ: NR, lý tưởng) 31
  • 32. Switching fabrics o Chuyển packet từ cổng đầu vào đến cổng đầu ra thích hợp bus memory memory crossbar o Ba loại switching fabric chính: o Tốc độ chuyển đổi: tốc độ mà các packet có thể được chuyển từ đầu vào sang đầu ra ▪ Thường được đo bằng bội số của tốc độ dòng đầu vào/đầu ra ▪ N đầu vào: tốc độ chuyển đổi N lần tốc độ dòng mong muốn 32
  • 33. Switching thông qua bộ nhớ (memory) Các router thế hệ đầu tiên: o Các máy tính cổ điển với switching dưới sự kiểm soát trực tiếp của CPU o Packet được sao chép vào bộ nhớ của hệ thống o Tốc độ bị giới hạn bởi băng thông của bộ nhớ (2 bus qua mỗi datagram) Cổng vào (ví dụ, Ethernet) Memory Cổng ra (ví dụ, Ethernet) Bus hệ thống 33
  • 34. Switching thông qua bus o Datagram từ bộ nhớ cổng đầu vào đến bộ nhớ cổng đầu ra thông qua một bus chia sẻ o Tranh chấp bus: tốc độ chuyển mạch bị giới hạn bởi băng thông của bus o Bus 32 Gbps trên Cisco 5600: đủ tốc độ cho các router truy cập 34
  • 35. Switching thông qua interconnectiong network o Mạng Crossbar, Clos, các mạng kết nối khác ban đầu được phát triển để kết nối các bộ vi xử lý trong bộ đa xử lý Switch đa tầng 8x8 được xây dựng từ các switch có kích thước nhỏ hơn Crossbar 3x3 o Switch đa tầng: switch nxn được tạo thành từ nhiều switch nhỏ hơn o Khai thác song song: ▪ Phân mảnh datagram vào các ô có độ dài cố định khi đi vào ▪ Chuyển các ô thông qua fabric, tập hợp lại datagram khi đi ra 35
  • 36. Switching thông qua interconnectiong network o Chia tỷ lệ, sử dụng song song nhiều “mặt phẳng” switching: o Tăng tốc, mở rộng quy mô thông qua song song o Router CRS của Cisco: ▪ Đơn vị cơ bản: 8 switching planes ▪ Mỗi mặt phẳng: mạng kết nối 3 tầng ▪ Khả năng switching lên đến 100 Tbps 36
  • 37. Hàng đợi tại cổng đầu vào o Nếu việc switching chậm hơn so với các cổng đầu vào kết hợp -> hàng đợi có thể xảy ra ở đầu vào o Chậm trễ và mất dữ liệu do tràn bộ đệm đầu vào! tranh chấp tại cổng đầu ra: chỉ có thể truyền một packet màu đỏ, packet màu đỏ thấp hơn sẽ bị chặn Switch fabric One packet time later: packet màu xanh lá cây bị chặn HOL Switch fabric o Chặn Head-of-the-Line (HOL): datagram xếp hàng ở phía trước hàng đợi ngăn những datagram khác trong hàng đợi di chuyển về phía trước 37
  • 38. Hàng đợi cổng đầu ra o Bộ đệm khi các datagram đến từ fabric nhanh hơn tốc độ truyền của liên kết. Chính sách loại bỏ: datagram nào sẽ bị loại bỏ nếu không có bộ đệm trống? o Nguyên tắc lập lịch chọn trong số các datagram được xếp hàng đợi để truyền Datagram có thể bị mất do tắc nghẽn, thiếu bộ đệm Lập kế hoạch ưu tiên – có hiệu suất tốt nhất, tính trung lập của mạng Đây là một slide thực sự quan trọng line termination Link layer Protocol (send) Switch fabric (rate: NR) datagram buffer queueing R 38
  • 39. Hàng đợi cổng đầu ra tại t, các packet nhiều hơn từ đầu vào đến đầu ra one packet time later Switch fabric Switch fabric o Đệm khi tốc độ đến vượt quá tốc độ dòng đầu ra o Xếp hàng (trễ) và mất gói do tràn bộ đệm tại cổng đầu ra! 39
  • 40. Bao nhiêu bộ đệm? o Quy tắc ngón tay cái RFC 3439: bộ đệm trung bình bằng “typical” RTT (giả sử 250 mili giây) lần dung lượng đường link C ▪ Ví dụ: liên kết C = 10 Gbps: bộ đệm 2,5 Gbit o Nhưng quá nhiều bộ đệm có thể làm tăng độ trễ (đặc biệt là trong các router gia đình) ▪ RTT dài: hiệu suất kém cho các ứng dụng thời gian thực, phản hồi TCP chậm chạp ▪ kiểm soát tắc nghẽn dựa trên độ trễ: “giữ liên kết cổ chai vừa đủ đầy (bận)” RTTxC N o Đề xuất gần đây hơn: với N luồng, bộ đệm bằng 40
  • 41. Quản lý bộ đệm Quản lý bộ đệm: o Drop: packet nào được thêm vào, drop khi bộ đệm đầy • Drop ở cuối: drop packet đến ▪ Ưu tiên: drop/remove trên cơ sở độ ưu tiên line termination link layer protocol (send) switch fabric datagram buffer queueing scheduling o Đánh dấu: đánh dấu packet để báo hiệu tắc nghẽn (ECN, RED) R queue (waiting area) packet arrivals packet departures link (server) Abstraction: queue R 41
  • 42. Lập lịch truyền packet: FCFS Lập lịch truyền packet: quyết định packet nào sẽ gửi tiếp theo trên liên kết o Đến trước được phục vụ trước o Độ ưu tiên o Thi đấu vòng tròn o Xếp hàng công bằng có trọng số FCFS: các packet được truyền theo thứ tự đến cổng ra o Còn được gọi là: Nhập trước xuất trước (FIFO) o Ví dụ thế giới thực? queue (waiting area) packet arrivals packet departures link (server) Abstraction: queue R 42
  • 43. Chính sách lập kế hoạch: priority Lập kế hoạch ưu tiên: o Traffic đến được phân loại, xếp hàng theo lớp ▪ Bất kỳ trường header nào cũng có thể được sử dụng để phân loại hàng đợi ưu tiên cao hàng đợi ưu tiên thấp lượt đến phân loại khởi hành liên kết 1 3 2 4 5 lượt đến khởi hành packet trong dịch vụ o Gửi packet từ hàng đợi ưu tiên cao nhất có packet đệm • FCFS trong lớp ưu tiên 1 3 4 2 5 1 3 2 4 5 43
  • 44. Chính sách lập kế hoạch: round robin Lịch Round Robin (RR): o Traffic đến được phân loại, xếp hàng theo lớp ▪ Bất kỳ trường header nào cũng có thể được sử dụng để phân loại phân loại lượt đến khởi hành liên kết r o Máy chủ theo chu kỳ, liên tục quét hàng đợi, lần lượt gửi một packet hoàn chỉnh từ mỗi lớp (nếu có) 44
  • 45. Chính sách lập kế hoạch: hàng đợi công bằng có trọng số Xếp hàng công bằng có trọng số (WFQ): o Round Robin tổng quát phân loại lượt đến khởi hành liên kết r w 1 w 2 w 3 w i S j w j ▪ Đảm bảo băng thông tối thiểu (per-traffic-class) ▪ Mỗi lớp i , có trọng số w i , và được trọng số lượng dịch vụ trong mỗi chu kỳ: 45
  • 46. Sidebar: Tính trung lập của mạng Tính trung lập của mạng là gì? o Kỹ thuật: cách một ISP nên chia sẻ/phân bổ tài nguyên của mình ▪ Lập lịch packet, quản lý bộ đệm là các cơ chế o Nguyên tắc kinh tế, xã hội ▪ Bảo vệ tự do ngôn luận ▪ Khuyến khích đổi mới, cạnh tranh o Thi hành hợp pháp các quy tắc và chính sách Các quốc gia khác nhau có “quan điểm” khác nhau về tính trung lập của mạng 46
  • 47. Chương 4: Nội dung 4.1 Tổng quan o Mức dữ liệu o Mức điều khiển 4.2 Virtual circuit network và datagram network o Các mạch ảo o Mạng datagram 4.3 Cấu trúc bên trong router o Cổng đầu vào, chuyển đổi, cổng đầu ra o Quản lý bộ đệm, lập kế hoạch 4.4 IP: Internet Protocol o Định dạng datagram o IPv4 addressing o DHCP o NAT o ICMP o IPV6 4.5 Các thuật toán routing o Link state o Distance vector 4.6 Routing trong Internet o Hierarchical routing o RIP, OSPF, BGP o SDN o Quản lý mạng 4.7 Broadcast và Multicast routing 47
  • 48. Tầng Network: Internet Chức năng tầng mạng của host, router: giao thức IP •định dạng datagram •địa chỉ •quy ước xử lý gói tin giao thức ICMP •báo cáo lỗi •router " báo hiệu" Tầng Transport: TCP, UDP Tầng Link Tầng Physical Tầng Network bảng forwarding Thuật toán lựa chọn đường: được triển khai trong • giao thức định tuyến (OSPF, BGP) • bộ điều khiển SDN 48
  • 49. ver length 32 bits payload data (variable length, typically a TCP or UDP segment) 16-bit identifier header checksum time to live source IP address head. len type of service flgs fragment offset upper layer destination IP address options (if any) Định dạng của IP datagram Số phiên bản giao thức IP Kích thước header (byte) giao thức tầng trên (ví dụ: TCP hoặc UDP) Tổng độ dài datagram (byte) “loại” dịch vụ: ▪ Diffserv (0:5) ▪ ECN (6:7) sự phân mảnh/ tổng hợp TTL: số hop tối đa còn lại (giảm ở mỗi router) ▪ 20 byte TCP ▪ 20 byte IP ▪ = 40 byte + app layer overhead for TCP+IP overhead tuỳ chọn Địa chỉ IP nguồn 32 bit Địa chỉ IP đích 32-bit kiểm tra tính toàn vẹn Độ dài tối đa: 64K byte Thông thường: 1500 byte trở lại 49
  • 50. Phân mảnh và tổng hợp IP o Các đường link mạng có MTU (max transfer size - kích thước truyền tối đa) - frame lớn nhất có thể ở mức kết nối ▪ Loại liên kết khác nhau, MTU khác nhau o Datagram lớn được chia (“phân mảnh”) trong mạng ▪ Một datagram trở thành một số datagram ▪ Chỉ “tổng hợp” tại điểm đến ▪ Các bit của IP header được sử dụng để xác định, sắp xếp các fragment liên quan phân mảnh: vào: một datagram lớn ra: 3 datagram nhỏ hơn tổng hợp lại … … 50
  • 51. Phân mảnh và tổng hợp IP ID =x offset =0 fragflag =0 length =4000 ID =x offset =0 fragflag =1 length =1500 ID = x offset =185 fragflag =1 length =1500 ID =x offset =370 fragflag =0 length =1040 một datagram lớn trở thành một số datagram nhỏ hơn Ví dụ: ▪ Gói tin 4000 byte ▪ MTU = 1500 byte 1480 byte trong trường dữ liệu offset = 1480/8 51
  • 52. Địa chỉ IP: giới thiệu o Địa chỉ IP: Mã định danh 32 bit được liên kết với từng interface của host hoặc router o Interface: kết nối giữa host/router và liên kết vật lý ▪ Router thường có nhiều interface ▪ Host thường có một hoặc hai interface (ví dụ: Ethernet có dây, 802.11 không dây) 223.1.1.1 223.1.1.2 223.1.1.3 223.1.1.4 223.1.2.9 223.1.2.2 223.1.2.1 223.1.3.2 223.1.3.1 223.1.3.27 223.1.1.1 = 11011111 00000001 00000001 00000001 223 1 1 1 ký hiệu địa chỉ IP dạng thập phân: 52
  • 53. Địa chỉ IP: giới thiệu 223.1.1.1 223.1.1.2 223.1.1.3 223.1.1.4 223.1.2.9 223.1.2.2 223.1.2.1 223.1.3.2 223.1.3.1 223.1.3.27 Hỏi: các interface thực sự được kết nối như thế nào? 1: có dây Interface được kết nối bằng bộ chuyển mạch Ethernet 2: Interface không dây được kết nối bởi trạm phát WiFi Hiện tại: không cần lo lắng về cách một interface được kết nối với interface khác (không có router can thiệp) Đáp: chúng ta sẽ tìm hiểu về điều đó trong phần sau 53
  • 54. Mạng con 223.1.1.1 223.1.1.2 223.1.1.3 223.1.1.4 223.1.2.9 223.1.2.2 223.1.2.1 223.1.3.2 223.1.3.1 223.1.3.27 o Mạng con là gì ? ▪ Interface của thiết bị có thể tiếp cận vật lý với nhau mà không cần thông qua router can thiệp mạng gồm 3 mạng con o Địa chỉ IP có cấu trúc: ▪ Phần mạng con: các thiết bị trong cùng một mạng con có chung các bit bậc cao ▪ Phần host: các bit thứ tự thấp còn lại 54
  • 55. Mạng con 223.1.1.1 223.1.1.2 223.1.1.3 223.1.1.4 223.1.2.9 223.1.2.2 223.1.2.1 223.1.3.2 223.1.3.1 223.1.3.27 o Công thức xác định mạng con: ▪ Tách từng interface khỏi host hoặc router của nó, tạo ra các “đảo” của các mạng bị cô lập ▪ Mỗi mạng bị cô lập được gọi là mạng con mặt nạ mạng con: /24 (24 bit bậc cao: phần mạng con của địa chỉ IP) mạng con 223.1.3.0/24 mạng con 223.1.1.0/24 mạng con 223.1.2.0/24 55
  • 56. Mạng con o Các mạng con ở đâu? o /24 địa chỉ mạng con là gì? 223.1.1.1 223.1.1.3 223.1.1.4 223.1.2.2 223.1.2.6 223.1.3.2 223.1.3.1 223.1.3.27 223.1.1.2 223.1.7.0 223.1.7.1 223.1.8.0 223.1.8.1 223.1.9.1 223.1.9.2 223.1.2.1 mạng con 223.1.1/24 mạng con 223.1.7/24 mạng con 223.1.3/24 mạng con 223.1.2/24 mạng con 223.1.9/24 mạng con 223.1.8/24 56
  • 57. Địa chỉ IP: CIDR CIDR: C lassless I nter D omain R outing (phát âm là “cider”) o Phần mạng con của địa chỉ có độ dài tùy ý o Định dạng địa chỉ: abcd/x , trong đó x là # bit trong phần mạng con của địa chỉ 11001000 00010111 0001000 0 00000000 mạng con phần host phần 200.23.16.0/23 57
  • 58. Địa chỉ IP: làm thế nào để có được một địa chỉ? Đó thực sự là hai câu hỏi: 1. Hỏi: Làm cách nào để host nhận được địa chỉ IP trong mạng của nó (phần địa chỉ host)? 2. Hỏi: Làm thế nào để một mạng có được địa chỉ IP cho chính nó (phần mạng của địa chỉ) Làm thế nào để host có được địa chỉ IP? o Được mã hóa cứng bởi sysadmin trong file cấu hình (ví dụ: /etc/rc.config trong UNIX) o DHCP: Dynamic Host Configuration Protocol: tự động lấy địa chỉ từ máy chủ DHCP • “cắm là chạy” 58
  • 59. DHCP: Giao thức cấu hình host động Mục tiêu: host tự động lấy địa chỉ IP từ máy chủ mạng khi nó “tham gia” mạng o Có thể gia hạn việc thuê địa chỉ đang sử dụng o Cho phép sử dụng lại địa chỉ (chỉ giữ địa chỉ khi kết nối/ bật) o Hỗ trợ cho người dùng di động tham gia/rời khỏi mạng Tổng quan về DHCP: o Host gởi quảng bá thông điệp DHCP discover [tùy chọn] o Máy chủ DHCP phản hồi với thông điệp DHCP offer [tùy chọn] o Host yêu cầu địa chỉ IP: thông điệp DHCP request o Máy chủ DHCP gửi địa chỉ: thông điệp DHCP ack 59
  • 60. Kịch bản DHCP client-server 223.1.1.1 223.1.1.2 223.1.1.3 223.1.1.4 223.1.2.9 223.1.2.2 223.1.2.1 223.1.3.2 223.1.3.1 223.1.3.27 DHCP server 223.1.2.5 máy khách DHCP cần địa chỉ trong mạng này Thông thường, máy chủ DHCP sẽ được đặt chung với router, phục vụ tất cả các mạng con mà router được gắn vào. 60
  • 61. Kịch bản DHCP client-server Máy chủ DHCP: 223.1.2.5 Client vào mạng DHCP discover src : 0.0.0.0, 68 đích: 255.255.255.255,67 yiaddr: 0.0.0.0 ID giao dịch: 654 DHCP offer src: 223.1.2.5, 67 đích: 255.255.255.255, 68 yiaddrr: 223.1.2.4 ID giao dịch: 654 trọn đời: 3600 giây DHCP request src: 0.0.0.0, 68 đích:: 255.255.255.255, 67 yiaddrr: 223.1.2.4 ID giao dịch: 655 trọn đời: 3600 giây DHCP ACK src: 223.1.2.5, 67 đích: 255.255.255.255, 68 yiaddrr: 223.1.2.4 ID giao dịch: 655 trọn đời: 3600 giây Quảng bả: có máy chủ DHCP ngoài đó không? Quảng bá: Tôi là máy chủ DHCP! Đây là một địa chỉ IP bạn có thể sử dụng Quảng bá: OK. Tôi muốn sử dụng địa chỉ IP này! Quảng bá: OK. Bạn đã có địa chỉ IP đó! Hai bước trên có thể được bỏ qua “nếu client nhớ và muốn sử dụng lại địa chỉ mạng đã cấp phát trước đó” [RFC 2131] 61
  • 62. DHCP: nhiều hơn địa chỉ IP DHCP có thể cung cấp nhiều hơn địa chỉ IP được phân bổ trên mạng con: o Địa chỉ first-hop của router (địa chỉ default gateway) cho client o Tên và địa chỉ IP của máy chủ DNS o Mặt nạ mạng (chỉ ra phần mạng so với phần địa chỉ máy chủ) 62
  • 63. DHCP: ví dụ o Laptop kết nối sẽ sử dụng DHCP để lấy địa chỉ IP, địa chỉ first-hop của router, địa chỉ của máy chủ DNS. o Thông điệp DHCP REQUEST được đóng gói trong UDP, được đóng gói trong IP, được đóng gói trong Ethernet. o Quảng bá frame Ethernet (đích: FFFFFFFFFFFF ) trên mạng LAN, được nhận tại router chạy máy chủ DHCP. o Ethernet được giải mã thành IP, giải mã UDP thành DHCP. 63
  • 64. DHCP: ví dụ o Máy chủ DHCP tạo DHCP ACK chứa địa chỉ IP của client, địa chỉ IP first-hop của router cho client, tên & địa chỉ IP của máy chủ DNS o Phản hồi của máy chủ DHCP được đóng gói và được chuyển tiếp tới client, giải mã thành DHCP tại client router với DHCP máy chủ tích hợp vào router DHCP DHCP DHCP DHCP DHCP UDP địa chỉ IP Eth phò DHCP DHCP UDP địa chỉ IP Eth phò DHCP DHCP DHCP DHCP o Client bây giờ biết địa chỉ IP, tên và địa chỉ IP của máy chủ DNS, địa chỉ IP first-hop của router 64
  • 65. Địa chỉ IP: làm thế nào để có được một địa chỉ? Hỏi: Làm thế nào để mạng nhận được phần mạng con của địa chỉ IP? Đáp: Được phân bổ một phần không gian địa chỉ của nhà cung cấp ISP ISP’s block 11001000 00010111 0001 0000 00000000 200.23.16.0/20 Sau đó, ISP có thể phân bổ không gian địa chỉ của mình thành 8 khối: Tổ chức 0 11001000 00010111 0001000 0 00000000 200.23.16.0/23 Tổ chức 1 11001000 00010111 0001001 0 00000000 200.23.18.0/23 Tổ chức 2 11001000 00010111 0001010 0 00000000 200.23.20.0/23 … ….. …. …. Tổ chức 7 11001000 00010111 0001111 0 00000000 200.23.30.0/23 65
  • 66. Địa chỉ phân cấp: tập hợp tuyến đường “ Gửi cho tôi bất cứ thứ gì có địa chỉ bắt đầu 200.23.16.0/20 ” 200.23.16.0/23 200.23.18.0/23 200.23.30.0/23 Fly-By-Night-ISP Tổ chức 0 tổ chức 7 Internet tổ chức 1 ISPs-R-Us “ Gửi cho tôi bất cứ thứ gì có địa chỉ bắt đầu 199.31.0.0/16 ” 200.23.20.0/23 tổ chức 2 . . . . . . Địa chỉ phân cấp cho phép quảng cáo thông tin định tuyến hiệu quả: 66
  • 67. Địa chỉ phân cấp : các tuyến cụ thể hơn “ Gửi cho tôi bất cứ thứ gì có địa chỉ bắt đầu 200.23.16.0/20 ” 200.23.16.0/23 200.23.30.0/23 Fly-By-Night-ISP Tổ chức 0 tổ chức 7 Internet 200.23.18.0/23 tổ chức 1 ISPs-R-Us “ Gửi cho tôi bất cứ thứ gì có địa chỉ bắt đầu 199.31.0.0/16 ” 200.23.20.0/23 tổ chức 2 . . . . . . o Tổ chức 1 chuyển từ Fly-By-Night-ISP sang ISPs-R-Us o Các ISP-R-U hiện quảng cáo một lộ trình cụ thể hơn tới Tổ chức 1 200.23.18.0/23 tổ chức 1 “hoặc 200.23.18.0/23 ” 67
  • 68. Địa chỉ phân cấp : các tuyến cụ thể hơn “ Gửi cho tôi bất cứ thứ gì có địa chỉ bắt đầu 200.23.16.0/20 ” 200.23.16.0/23 200.23.30.0/23 Fly-By-Night-ISP Tổ chức 0 tổ chức 7 Internet ISP-R-U “ Gửi cho tôi bất cứ thứ gì có địa chỉ bắt đầu 199.31.0.0/16 ” 200.23.20.0/23 tổ chức 2 . . . . . . o Tổ chức 1 chuyển từ Fly-By-Night-ISP sang ISPs-R-Us o Các ISP-R-U hiện quảng cáo một lộ trình cụ thể hơn tới Tổ chức 1 200.23.18.0/23 tổ chức 1 “hoặc 200.23.18.0/23 ” 68
  • 69. Địa chỉ IP: cuối cùng ... Hỏi: làm cách nào để một ISP có được khối địa chỉ? Đáp: ICANN : Internet Corporation for Assigned Names and Numbers http://www.icann.org/ o phân bổ địa chỉ IP, thông qua 5 cơ quan đăng ký khu vực (RRs) (những người sau đó có thể phân bổ cho các cơ quan đăng ký địa phương) o quản lý vùng gốc DNS, bao gồm ủy quyền quản lý TLD riêng lẻ (.com, .edu, …) Hỏi: có đủ địa chỉ IP 32 bit không? o ICANN đã phân bổ đoạn địa chỉ IPv4 cuối cùng cho các RRs vào năm 2011 o NAT (tiếp theo) giúp cạn kiệt không gian địa chỉ IPv4 o IPv6 có không gian địa chỉ 128- bit "Ai biết chúng ta cần bao nhiêu không gian địa chỉ?" Vint Cerf (phản ánh quyết định tạo địa chỉ IPv4 dài 32 bit) 69
  • 70. 10.0.0.1 10.0.0.2 10.0.0.3 10.0.0.4 mạng cục bộ (ví dụ: mạng gia đình) 10.0.0/24 138.76.29.7 phần còn lại của Internet NAT: Network Address Translation (chuyển dịch địa chỉ mạng) datagram có nguồn hoặc đích trong mạng này có địa chỉ 10.0.0/24 cho nguồn, đích (như thường lệ) tất cả các datagram rời khỏi mạng cục bộ có cùng địa chỉ IP NAT nguồn: 138.76.29.7, nhưng số cổng nguồn khác nhau NAT: tất cả các thiết bị trong mạng cục bộ chia sẻ một địa chỉ IPv4 khi có liên quan đến thế giới bên ngoài 70
  • 71. o Tất cả các thiết bị trong mạng cục bộ đều có địa chỉ 32 bit trong không gian địa chỉ IP “riêng tư” (tiền tố 10/8, 172.16/12, 192.168/16) chỉ có thể được sử dụng trong mạng cục bộ o Thuận lợi: ▪ Chỉ cần một địa chỉ IP từ ISP của nhà cung cấp cho tất cả các thiết bị ▪ Có thể thay đổi địa chỉ của host trong mạng cục bộ mà không cần thông báo cho thế giới bên ngoài ▪ Có thể thay đổi ISP mà không cần thay đổi địa chỉ của các thiết bị trong mạng nội bộ ▪ Bảo mật: các thiết bị bên trong mạng cục bộ không thể định địa chỉ trực tiếp mà thế giới bên ngoài có thể nhìn thấy NAT: Network Address Translation (chuyển dịch địa chỉ mạng) 71
  • 72. Triển khai: router NAT phải (trong suốt): o Các datagram gửi đi: thay thế (địa chỉ IP nguồn, cổng #) của mọi datagram gửi đi thành (địa chỉ NAT IP, cổng # mới) ▪ Máy khách/máy chủ từ xa sẽ phản hồi bằng cách sử dụng (địa chỉ NAT IP, số cổng mới) làm địa chỉ đích o Ghi nhớ (trong bảng dịch NAT) mọi cặp dịch (địa chỉ IP nguồn, cổng #) sang (địa chỉ NAT IP, cổng # mới) o Các gói dữ liệu đến: thay thế (địa chỉ IP NAT, số cổng mới) trong các trường đích của mọi gói dữ liệu đến bằng (địa chỉ IP nguồn, cổng #) tương ứng được lưu trữ trong bảng NAT NAT: Network Address Translation (chuyển dịch địa chỉ mạng) 72
  • 73. NAT: network address translation (chuyển dịch địa chỉ mạng) S: 10.0.0.1, 3345 D: 128.119.40.186, 80 1 10.0.0.4 138.76.29.7 1: host 10.0.0.1 gửi datagram tới 128.119.40.186, 80 NAT translation table Địa chỉ WAN Địa chỉ LAN 138.76.29.7, 5001 10.0.0.1, 3345 … …… S: 128.119.40.186, 80 D: 10.0.0.1, 3345 4 S: 138.76.29.7, 5001 D: 128.119.40.186, 80 2 2: router NAT thay đổi địa chỉ nguồn datagram từ 10.0.0.1, 3345 thành 138.76.29.7, 5001, cập nhật bảng S: 128.119.40.186, 80 D: 138.76.29.7, 5001 3 3: trả lời đến, địa chỉ đích: 138.76.29.7, 5001 10.0.0.1 10.0.0.2 10.0.0.3 73
  • 74. o NAT đã gây tranh cãi: ▪ Router “nên” chỉ xử lý tối đa lớp 3 ▪ Địa chỉ “thiếu” cần được giải quyết bằng IPv6 ▪ Vi phạm đối số end-to-end (thao tác cổng # bởi thiết bị lớp mạng) ▪ Truyền tải NAT: nếu máy khách muốn kết nối với máy chủ sau NAT thì sao? o Nhưng NAT vẫn ở đây: ▪ Được sử dụng rộng rãi trong mạng gia đình và tổ chức, mạng di động 4G/5G NAT: Network Address Translation (chuyển dịch địa chỉ mạng) 74
  • 75. ICMP (Internet Control Message Protocol) o Được sử dụng bởi các host và router để truyền thông thông tin tầng network ▪ Thông báo: host, mạng, cổng, giao thức không thể truy cập ▪ Phản hồi Request/Reply (được sử dụng bởi lệnh Ping) o Tầng network “ở trên”: ▪ Các thông điệp ICMP được mang trong các IP datagram o Thông báo ICMP: loại, mã cộng với 8 byte đầu tiên của IP datagram gây ra lỗi Loại mã Mô tả 0 0 echo reply (ping) 3 0 dest. network unreachable 3 1 dest host unreachable 3 2 dest protocol unreachable 3 3 dest port unreachable 3 6 dest network unknown 3 7 dest host unknown 4 0 source quench (congestion control - not used) 8 0 echo request (ping) 9 0 route advertisement 10 0 router discovery 11 0 TTL expired 12 0 bad IP header 75
  • 76. Traceroute và ICMP o Tiêu chí dừng: ▪ Segment UDP lần lượt đến tới host đích ▪ Đích trả về thông điệp ICMP “port unreachable” (loại 3, mã 3) ▪ Nguồn dừng lại 3 probes 3 probes 3 probes o Nguồn gửi một chuỗi các segment UDP đến đích ▪ Segment thứ nhất có giá trị TTL =1, ▪ Segment thứ hai có giá trị TTL=2, ▪ v.v. o Khi datagram thứ n đến router thứ n: ▪ Router huỷ datagram và gửi thông điệp ICMP đến nguồn (loại 11, mã 0) ▪ Thông điệp ICMP có thể bao gồm tên và địa chỉ IP của router o Khi thông điệp ICMP đến, nguồn ghi lại giá trị RTTs 76
  • 77. o Động lực ban đầu: Không gian địa chỉ IPv4 32 bit sẽ được phân bổ hoàn toàn o Động lực bổ sung: ▪ Tốc độ xử lý/chuyển tiếp: header có độ dài cố định 40 byte ▪ Cho phép xử lý các “luồng” ở tầng mạng khác nhau IPv6: động lực 77
  • 78. payload (data) destination address (128 bits) source address (128 bits) payload len next hdr hop limit flow label pri ver 32 bits Định dạng datagram IPv6 priority: xác định mức độ ưu tiên giữa các datagram trong luồng nhãn luồng: xác định các datagram trong cùng một " luồng. (khái niệm về “ dòng chảy” không được định nghĩa rõ ràng) 128-bit địa chỉ IPv6 Những gì còn thiếu (so sánh với IPv4): o Không có tính checksum (để tăng tốc độ xử lý tại các router) o Không phân mảnh/tổng hợp o Không có tùy chọn (có sẵn dưới dạng giao thức lớp trên, header kế tiếp tại router) 78
  • 79. Chuyển đổi từ IPv4 sang IPv6 o Không phải tất cả các router đều có thể được nâng cấp đồng thời ▪ Mạng sẽ hoạt động như thế nào với các router IPv4 và IPv6 hỗn hợp? Địa chỉ nguồn đích IPv4 Các trường header IPv4 IPv4 datagram IPv6 datagram IPv4 payload Tải trọng UDP/TCP Địa chỉ nguồn đích IPv6 Các trường header IPv6 o Đường hầm: gói dữ liệu IPv6 được mang dưới dạng payload trong gói dữ liệu IPv4 giữa các router IPv4 (“packet trong packet") ▪ Đường hầm được sử dụng rộng rãi trong các ngữ cảnh khác (4G/5G) 79
  • 80. Đường hầm và đóng gói Ethernet kết nối hai router IPv6: Ethernet kết nối hai router IPv6 A B IPv6 IPv6 E F IPv6 IPv6 Link-layer frame IPv6 datagram Thông thường: datagram à payload trong frame tầng Link A B IPv6 IPv6/ v4 E F IPv6/ v4 IPv6 mạng IPv4 Mạng IPv4 kết nối hai router IPv6 80
  • 81. Đường hầm và đóng gói IPv4 datagram Gói dữ liệu IPv6 đường hầm: IPv6 datagram là payload trong IPv4 datagram Ethernet kết nối hai router IPv6: Ethernet kết nối hai router IPv6 A B IPv6 IPv6 E F IPv6 IPv6 Link-layer frame IPv6 datagram Thông thường: datagram à payload trong frame tầng Link Mạng IPv4 kết nối hai router IPv6 IPv4 tunnel kết nối đến router IPv6 A B IPv6 IPv6 E F IPv6 IPv6 81
  • 82. từ B đến C: IPv6 trong IPv4 flow: X Src: A dest: F data src:B dest: E Đường hầm Physical view: IPv4 IPv4 E IPv6/ v4 IPv6 F C Đ A B IPv6 IPv6/ v4 Logical view: IPv4 tunnel kết nối router IPv6 A B IPv6 IPv6/ v4 E F IPv6/ v4 IPv6 flow: X src: A dest: F data A đến B: IPv6 E đến F: IPv6 flow: X src: A dest: F data từ B đến C: IPv6 trong IPv4 flow: X Src: A dest: F data src:B dest: E Lưu ý địa chỉ nguồn và đích! từ B đến C: IPv6 trong IPv4 flow: X Src: A dest: F data src:B dest: E 82
  • 83. Chương 4: Nội dung 4.1 Tổng quan o Mức dữ liệu o Mức điều khiển 4.2 Virtual circuit network và datagram network o Các mạch ảo o Mạng datagram 4.3 Cấu trúc bên trong router o Cổng đầu vào, chuyển đổi, cổng đầu ra o Quản lý bộ đệm, lập kế hoạch 4.4 IP: Internet Protocol o Định dạng datagram o IPv4 addressing o DHCP o NAT o ICMP o IPV6 4.5 Các thuật toán routing o Link state o Distance vector 4.6 Routing trong Internet o Hierarchical routing o RIP, OSPF, BGP o SDN o Quản lý mạng 4.7 Broadcast và Multicast routing 83
  • 84. Giới thiệu o Giao thức định tuyến ▪ Link state ▪ Distance vector o Định tuyến nội bộ ISP: OSPF o Định tuyến giữa các ISP: BGP o Mức điều khiển SDN o Quản lý mạng, cấu hình ▪ SNMP ▪ NETCONF/YANG 84
  • 85. Chức năng tầng mạng Hai cách tiếp cận để cấu trúc việc điều khiển mạng: o Điều khiển trên mỗi router (truyền thống) o Điều khiển tập trung hợp lý (mạng được xác định bằng phần mềm) o Chuyển tiếp: di chuyển các gói từ đầu vào của router đến đầu ra router thích hợp o Định tuyến: xác định tuyến đường được thực hiện bởi các gói từ nguồn đến đích 85 Mức dữ liệu và Mức điều khiển
  • 86. Mức điều khiển mạng tại mỗi router Các thành phần thuật toán định tuyến riêng lẻ trong mỗi và mọi router tương tác trong mức điều khiển Giải thuật Định tuyến Mức dữ liệu Mức điều khiển 1 2 0111 giá trị trong header trong gói tin đến 3 86
  • 87. Mức điều khiển mạng được xác định bằng phần mềm (SDN) Bộ điều khiển từ xa tính toán, cài đặt bảng chuyển tiếp trong router Mức dữ liệu Mức điều khiển Điều khiển từ xa CA CA CA CA CA 1 2 0111 3 giá trị trong header của gói tin đến 87
  • 88. Giao thức định tuyến Định tuyến: xác định các đường dẫn “tốt” từ host gửi đến host nhận, thông qua mạng các router o Đường dẫn: chuỗi các router đi từ host nguồn ban đầu đi đến host đích cuối cùng o “tốt”: “chi phí” thấp nhất, “nhanh nhất”, “ít tắc nghẽn nhất” o Định tuyến: thách thức kết nối mạng “top 10”! mobile network enterprise network national or global ISP datacenter network application transport network link physical application transport network link physical network link physical network link physical network link physical network link physical network link physical 88
  • 89. Trừu tượng hóa đồ thị: chi phí liên kết u y x w v z 2 2 1 3 1 1 2 5 3 5 đồ thị: G = (N,E) c a,b : chi phí liên kết trực tiếp kết nối a và b ví dụ: c w,z = 5, c u,z = ∞ chi phí do nhà điều hành mạng xác định: có thể luôn bằng 1 hoặc tỷ lệ nghịch với băng thông hoặc tỷ lệ nghịch với tắc nghẽn N: router = { u, v, w, x, y, z } E: tập hợp các liên kết = { ( u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y , z ) } 89
  • 90. Phân loại thuật toán định tuyến thông tin toàn cầu hay phi tập trung? toàn cầu: tất cả các router có cấu trúc liên kết hoàn chỉnh , thông tin chi phí liên kết • thuật toán “Link state” phi tập trung: quá trình tính toán lặp đi lặp lại, trao đổi thông tin với hàng xóm • router ban đầu chỉ biết chi phí liên kết đến các hàng xóm được đính kèm • thuật toán “Distance vector” nhanh như thế nào ? động : tuyến đường thay đổi nhanh hơn • cập nhật định kỳ hoặc để đáp ứng với thay đổi chi phí liên kết tĩnh: tuyến đường thay đổi chậm theo thời gian 90
  • 91. Thuật toán định tuyến Dijkstra’s link-state o Tập trung: tất cả các nút đều biết cấu trúc liên kết mạng và chi phí liên kết ▪ Được thực hiện thông qua gói tin “link state broadcast” ▪ Tất cả các nút có cùng thông tin o Tính toán các đường dẫn có chi phí thấp nhất từ một nút (“ nguồn”) đến tất cả các nút khác ▪ Cung cấp bảng chuyển tiếp cho nút đó o Lặp đi lặp lại: sau k lần lặp lại, biết đường dẫn chi phí thấp nhất đến k đích ▪ cx ,y : chi phí liên kết trực tiếp từ nút x đến y; = ∞ nếu không phải hàng xóm trực tiếp ▪ D(v): ước tính chi phí hiện tại của đường đi có chi phí thấp nhất từ nguồn đến đích v ▪ p(v): nút trước dọc theo đường dẫn từ nguồn đến v ▪ N ' : tập hợp các nút có đường dẫn chi phí thấp nhất được biết ký hiệu 91
  • 92. Thuật toán định tuyến Dijkstra’s link-state 1 Initialization: 2 N' = {u} /* compute least cost path from u to all other nodes */ 3 for all nodes v 4 if v adjacent to u /* u initially knows direct-path-cost only to direct neighbors */ 5 then D(v) = cu,v /* but may not be minimum cost! */ 6 else D(v) = ∞ 7 8 Loop 9 10 11 12 13 14 15 until all nodes in N' find w not in N' such that D(w) is a minimum add w to N' update D(v) for all v adjacent to w and not in N' : D(v) = min ( D(v), D(w) + cw,v ) /* new least-path-cost to v is either old least-cost-path to v or known least-cost-path to w plus direct-cost from w to v */ 92
  • 93. Thuật toán Dijkstra: ví dụ Step 0 1 2 3 4 5 N' D(v),p(v) D(x),p(x) D(y),p(y) D(z),p(z) u y x w v z 2 2 1 3 1 1 2 5 3 5 4,y D(w),p(w) 4,y 3,y 5,u ∞ ∞ 1,u 2,u ∞ 2,x 4,x 2,u 4,y 3,y 2,u uxyvwz uxyvw uxyv uxy ux u v w x y z find a not in N' such that D(a) is a minimum add a to N' update D(b) for all b adjacent to a and not in N' : D(b) = min ( D(b), D(a) + ca,b ) Initialization (step 0): For all a: if a adjacent to then D(a) = cu,a 93
  • 94. Thuật toán Dijkstra: ví dụ u y x w v z 2 2 1 3 1 1 2 5 3 5 u y x w v z Kết quả cây đường dẫn chi phí thấp nhất từ u: Bảng chuyển tiếp kết quả trong u: v x y w x (u,v) (u,x) (u,x) (u,x) (u,x) điểm đến liên kết đi tuyến đường từ u đến v trực tiếp định tuyến từ u đến tất cả các đích khác qua x 94
  • 95. Thuật toán Dijkstra: một ví dụ khác Ghi chú: o Xây dựng cây đường đi chi phí thấp nhất bằng cách truy tìm các nút trước o Mối quan hệ có thể tồn tại (có thể bị phá vỡ tùy ý) w 3 4 v x u 5 3 7 4 y 8 z 2 7 9 Step N' D(v), p(v) 0 1 2 3 4 5 D(w), p(w) D(x), p(x) D(y), p(y) D(z), p(z) u ∞ ∞ 7,u 3,u 5,u uw ∞ 11,w 6,w 5,u 14,x 11,w 6,w uwx uwxv 14,x 10,v uwxvy 12,y uwxvyz v w x y z 95
  • 96. Thuật toán Dijkstra: thảo luận Độ phức tạp của thuật toán: n nút o Mỗi lần lặp n: cần kiểm tra tất cả các nút w không có trong N o n(n +1)/2: độ phức tạp O(n2) o Triển khai hiệu quả hơn có thể: O(nlogn) Độ phức tạp của thông điệp: o Mỗi router phải phát thông tin trạng thái liên kết của nó tới n router khác o Các thuật toán quảng bá hiệu quả (và thú vị!): O(n) liên kết chéo để phổ biến một thông điệp quảng bá từ một nguồn o Mỗi thông báo của router đi qua các liên kết O(n): độ phức tạp của thông báo tổng thể: O(n2) 96
  • 97. Thuật toán Dijkstra: khả năng dao động o Khi chi phí liên kết phụ thuộc vào lưu lượng giao thông, việc định tuyến có thể thay đổi o Kịch bản mẫu: ▪ Định tuyến đến đích a, lưu lượng đi vào tại d, c, e với tốc độ 1, e (<1), 1 ▪ Chi phí liên kết là định hướng và phụ thuộc vào khối lượng a d c b 1 1+e e 0 e 1 1 0 0 ban đầu a d c b với những chi phí này, tìm định tuyến mới…. dẫn đến chi phí mới 2+e 0 0 0 1+e 1 a d c b với những chi phí này, tìm định tuyến mới…. dẫn đến chi phí mới 0 2+e 1+e 1 0 0 a d c b với những chi phí này, tìm định tuyến mới…. dẫn đến chi phí mới 2+e 0 0 0 1+e 1 e 1 1 e 1 1 e 1 1 97
  • 98. Thuật toán vectơ khoảng cách Dựa trên công thức Bellman-Ford (BF) (lập trình động): Đặt D x (y): chi phí của đường đi có chi phí thấp nhất từ x đến y . Sau đó: D x (y) = min v { c x,v + D v (y) } Công thức Bellman-Ford min bao gồm tất cả các lân cận v của x v 's ước tính chi phí đường đi chi phí thấp nhất đến y chi phí trực tiếp của liên kết từ x đến v 98
  • 99. Ví dụ Bellman-Ford u y z 2 2 1 3 1 1 2 5 3 5 Giả sử rằng nút lân cận của u s, x,v,w, biết rằng đối với đích z : D u (z) = min { c u,v + D v (z), c u,x + D x (z), c u,w + D w (z) } Công thức Bellman-Ford nói: Dv(z) = 5 v Dw(z) = 3 w Dx(z) = 3 x = min { 2 + 5, 1 + 3, 5 + 3} = 4 nút đạt được giá trị cực tiểu (x) là bước nhảy tiếp theo trên đường ước tính có chi phí thấp nhất tới đích (z) 99
  • 100. Thuật toán vectơ khoảng cách Ý tưởng chính: o Theo thời gian, mỗi nút sẽ gửi ước tính vectơ khoảng cách của nó cho các nút lân cận o Trong các điều kiện bình thường, ước tính Dx (y) hội tụ đến chi phí thực tế thấp nhất dx(y) Dx (y) ← min v {cx,v + Dv (y)} cho mỗi nút y ∊ N o Khi x nhận được ước tính DV mới từ bất kỳ hàng xóm nào, nó sẽ cập nhật DV của chính nó bằng phương trình BF: 100
  • 101. Thuật toán vectơ khoảng cách: Lặp đi lặp lại, không đồng bộ: mỗi lần lặp cục bộ gây ra bởi: o Thay đổi chi phí liên kết cục bộ o Tin nhắn cập nhật DV từ hàng xóm Chờ đợi (thay đổi chi phí liên kết cục bộ hoặc tin nhắn từ hàng xóm) Mỗi nút: Phân phối, tự dừng: mỗi nút chỉ thông báo cho các nút lân cận khi DV của nó thay đổi o Hàng xóm sau đó thông báo cho hàng xóm của nó – chỉ khi cần thiết o Không nhận được thông báo, không có hành động nào được thực hiện! tính toán lại các ước tính DV sử dụng DV nhận được từ hàng xóm nếu DV từ bất kỳ điểm đến nào đã thay đổi, hãy thông báo cho hàng xóm 101
  • 102. Vectơ khoảng cách: ví dụ DV in a: Da(a)=0 Da(b) = 8 Da(c) = ∞ Da(d) = 1 Da(e) = ∞ Da(f) = ∞ Da(g) = ∞ Da(h) = ∞ Da(i) = ∞ g h i 1 1 1 1 1 1 1 1 1 8 1 t=0 o Tất cả các nút có ước tính khoảng cách đến hàng xóm gần nhất Một vài bất đối xứng o Liên kết bị thiếu o Chi phí lớn hơn d e f a b c o Tất cả các nút gửi vectơ khoảng cách cục bộ của chúng tới các nút lân cận 102
  • 103. Ví dụ về vectơ khoảng cách: phép lặp Tất cả các nút: o Nhận vectơ khoảng cách từ hàng xóm o Tính toán vectơ khoảng cách cục bộ mới của nó o Gửi vectơ khoảng cách cục bộ mới của nó cho hàng xóm t=1 g h u 1 1 1 1 1 1 1 1 1 8 1 d e f a b c 103
  • 104. Ví dụ về vectơ khoảng cách: phép lặp g h i 1 1 1 1 1 1 1 1 1 8 1 d e f a b c compute compute compute compute compute compute compute compute compute Tất cả các nút: o Nhận vectơ khoảng cách từ hàng xóm o Tính toán vectơ khoảng cách cục bộ mới của nó o Gửi vectơ khoảng cách cục bộ mới của nó cho hàng xóm t=1 104
  • 105. Ví dụ về vectơ khoảng cách: phép lặp g h i 1 1 1 1 1 1 1 1 1 8 1 d e f a b c Tất cả các nút: o Nhận vectơ khoảng cách từ hàng xóm o Tính toán vectơ khoảng cách cục bộ mới của nó o Gửi vectơ khoảng cách cục bộ mới của nó cho hàng xóm t=1 105
  • 106. Ví dụ về vectơ khoảng cách: phép lặp g h u 1 1 1 1 1 1 1 1 1 8 1 đ e f a b c Tất cả các nút: o Nhận vectơ khoảng cách từ hàng xóm o Tính toán vectơ khoảng cách cục bộ mới của nó o Gửi vectơ khoảng cách cục bộ mới của nó cho hàng xóm t=2 106
  • 107. Ví dụ về vectơ khoảng cách: phép lặp g h i 1 1 1 1 1 1 1 8 1 2 1 d e f a b c compute compute compute compute compute compute compute compute compute Tất cả các nút: o Nhận vectơ khoảng cách từ hàng xóm o Tính toán vectơ khoảng cách cục bộ mới của nó o Gửi vectơ khoảng cách cục bộ mới của nó cho hàng xóm t=2 107
  • 108. Ví dụ về vectơ khoảng cách: phép lặp g h u 1 1 1 1 1 1 1 1 1 8 1 đ e f a b c Tất cả các nút: o Nhận vectơ khoảng cách từ hàng xóm o Tính toán vectơ khoảng cách cục bộ mới của nó o Gửi vectơ khoảng cách cục bộ mới của nó cho hàng xóm t=2 108
  • 109. Ví dụ về vectơ khoảng cách: phép lặp …. và như thế Tiếp theo chúng ta hãy xem các phép tính lặp tại các nút 109
  • 110. Ví dụ về vectơ khoảng cách: tính toán DV in a: Da(a)=0 Da(b) = 8 Da(c) = ∞ Da(d) = 1 Da(e) = ∞ Da(f) = ∞ Da(g) = ∞ Da(h) = ∞ Da(i) = ∞ g h i 1 1 1 1 1 1 1 1 1 8 1 t=1 DV in b: Db(f) = ∞ Db(g) = ∞ Db(h) = ∞ Db(i) = ∞ Db(a) = 8 Db(c) = 1 Db(d) = ∞ Db(e) = 1 ▪ b nhận DVs từ a, c, e a b c d e f DV in c: Dc(a) = ∞ Dc(b) = 1 Dc(c) = 0 Dc(d) = ∞ Dc(e) = ∞ Dc(f) = ∞ Dc(g) = ∞ Dc(h) = ∞ Dc(i) = ∞ DV in e: De(a) = ∞ De(b) = 1 De(c) = ∞ De(d) = 1 De(e) = 0 De(f) = 1 De(g) = ∞ De(h) = 1 De(i) = ∞ 110
  • 111. DV in a: Da(a)=0 Da(b) = 8 Da(c) = ∞ Da(d) = 1 Da(e) = ∞ Da(f) = ∞ Da(g) = ∞ Da(h) = ∞ Da(i) = ∞ DV in b: Db(f) = ∞ Db(g) = ∞ Db(h) = ∞ Db(i) = ∞ Db(a) = 8 Db(c) = 1 Db(d) = ∞ Db(e) = 1 DV in c: Dc(a) = ∞ Dc(b) = 1 Dc(c) = 0 Dc(d) = ∞ Dc(e) = ∞ Dc(f) = ∞ Dc(g) = ∞ Dc(h) = ∞ Dc(i) = ∞ DV in e: De(a) = ∞ De(b) = 1 De(c) = ∞ De(d) = 1 De(e) = 0 De(f) = 1 De(g) = ∞ De(h) = 1 De(i) = ∞ Ví dụ về vectơ khoảng cách: tính toán g h i 1 1 1 1 1 1 1 1 1 8 1 t=1 ▪ b nhận DVs từ a, c, e, tính toán: a b c d e f DV in b: Db(f) =2 Db(g) = ∞ Db(h) = 2 Db(i) = ∞ Db(a) = 8 Db(c) = 1 Db(d) = 2 Db(e) = 1 e compute b Db(a) = min{cb,a+Da(a), cb,c +Dc(a), cb,e+De(a)} = min{8,∞,∞} = 8 Db(c) = min{cb,a+Da(c), cb,c +Dc(c), c b,e +De(c)} = min{∞,1,∞} = 1 Db(d) = min{cb,a+Da(d), cb,c +Dc(d), c b,e +De(d)} = min{9,2,∞} = 2 Db(f) = min{cb,a+Da(f), cb,c +Dc(f), c b,e +De(f)} = min{∞,∞,2} = 2 Db(i) = min{cb,a+Da(i), cb,c +Dc(i), c b,e+De(i)} = min{∞, ∞, ∞} = ∞ Db(h) = min{cb,a+Da(h), cb,c +Dc(h), c b,e+De(h)} = min{∞, ∞, 2} = 2 Db(e) = min{cb,a+Da(e), cb,c +Dc(e), c b,e +De(e)} = min{∞,∞,1} = 1 Db(g) = min{cb,a+Da(g), cb,c +Dc(g), c b,e+De(g)} = min{∞, ∞, ∞} = ∞ 111
  • 112. DV in a: Da(a)=0 Da(b) = 8 Da(c) = ∞ Da(d) = 1 Da(e) = ∞ Da(f) = ∞ Da(g) = ∞ Da(h) = ∞ Da(i) = ∞ Ví dụ về vectơ khoảng cách: tính toán g h i 1 1 1 1 1 1 1 1 1 8 1 t=1 DV in b: Db(f) = ∞ Db(g) = ∞ Db(h) = ∞ Db(i) = ∞ Db(a) = 8 Db(c) = 1 Db(d) = ∞ Db(e) = 1 ▪ c nhận DVs từ b a b c d e f DV in c: Dc(a) = ∞ Dc(b) = 1 Dc(c) = 0 Dc(d) = ∞ Dc(e) = ∞ Dc(f) = ∞ Dc(g) = ∞ Dc(h) = ∞ Dc(i) = ∞ DV in e: De(a) = ∞ De(b) = 1 De(c) = ∞ De(d) = 1 De(e) = 0 De(f) = 1 De(g) = ∞ De(h) = 1 De(i) = ∞ 112
  • 113. Ví dụ về vectơ khoảng cách: tính toán g h i 1 1 8 1 t=1 DV in b: Db(f) = ∞ Db(g) = ∞ Db(h) = ∞ Db(i) = ∞ Db(a) = 8 Db(c) = 1 Db(d) = ∞ Db(e) = 1 ▪ c nhận DVs từ b, tính toán: a b c d e f DV in c: Dc(a) = ∞ Dc(b) = 1 Dc(c) = 0 Dc(d) = ∞ Dc(e) = ∞ Dc(f) = ∞ Dc(g) = ∞ Dc(h) = ∞ Dc(i) = ∞ Dc(a) = min{cc,b+Db(a}} = 1 + 8 = 9 Dc(b) = min{cc,b+Db(b)} = 1 + 0 = 1 Dc(d) = min{cc,b+Db(d)} = 1+ ∞ = ∞ Dc(e) = min{cc,b+Db(e)} = 1 + 1 = 2 Dc(f) = min{cc,b+Db(f)} = 1+ ∞ = ∞ Dc(g) = min{cc,b+Db(g)} = 1+ ∞ = ∞ Dc(i) = min{cc,b+Db(i)} = 1+ ∞ = ∞ Dc(h) = min{cbc,b+Db(h)} = 1+ ∞ = ∞ DV in c: Dc(a) = 9 Dc(b) = 1 Dc(c) = 0 Dc(d) = 2 Dc(e) = ∞ Dc(f) = ∞ Dc(g) = ∞ Dc(h) = ∞ Dc(i) = ∞ compute * Check out the online interactive exercises for more examples: http://gaia.cs.umass.edu/kurose_ross/interactive/ 113
  • 114. Ví dụ về vectơ khoảng cách: tính toán 1 1 1 1 1 1 1 1 1 8 1 t=1 DV in b: Db(f) = ∞ Db(g) = ∞ Db(h) = ∞ Db(i) = ∞ Db(a) = 8 Db(c) = 1 Db(d) = ∞ Db(e) = 1 ▪ e nhận DVs từ b, d, f, h a b c DV in f: Dc(a) = ∞ Dc(b) = ∞ Dc(c) = ∞ Dc(d) = ∞ Dc(e) = 1 Dc(f) = 0 Dc(g) = ∞ Dc(h) = ∞ Dc(i) = 1 DV in e: De(a) = ∞ De(b) = 1 De(c) = ∞ De(d) = 1 De(e) = 0 De(f) = 1 De(g) = ∞ De(h) = 1 De(i) = ∞ DV in h: Dc(a) = ∞ Dc(b) = ∞ Dc(c) = ∞ Dc(d) = ∞ Dc(e) = 1 Dc(f) = ∞ Dc(g) = 1 Dc(h) = 0 Dc(i) = 1 DV in d: Dc(a) = 1 Dc(b) = ∞ Dc(c) = ∞ Dc(d) = 0 Dc(e) = 1 Dc(f) = ∞ Dc(g) = 1 Dc(h) = ∞ Dc(i) = ∞ d e f g h i Q: DV mới được tính ra trong e tại thời điểm t=1? compute 114
  • 115. Vectơ khoảng cách: khuếch tán thông tin trạng thái t=0 trạng thái của c tại t=0 chỉ tại c g h u 1 1 1 1 1 1 1 1 1 8 1 d e f a b c trạng thái của c tại t=0 đã lan truyền tới b và có thể ảnh hưởng đến việc tính toán vectơ khoảng cách cách xa tới 1 bước nhảy, tức là tại b t=1 trạng thái của c tại t=0 bây giờ có thể ảnh hưởng đến việc tính toán vectơ khoảng cách cách xa tới 2 bước nhảy, nghĩa là tại b và bây giờ tại a, e cũng vậy t=2 trạng thái của c tại t=0 có thể ảnh hưởng đến việc tính toán vectơ khoảng cách cách xa tới 3 bước nhảy, tức là tại b,a,e và bây giờ tại c,f,h t=3 trạng thái của c tại t=0 có thể ảnh hưởng đến việc tính toán vectơ khoảng cách cách xa tới 4 bước nhảy, nghĩa là tại b,a,e, c, f, h và bây giờ là cả g,i t=4 Giao tiếp lặp, các bước tính toán khuếch tán thông tin qua mạng: t=1 t=2 t=3 t=4 115
  • 116. Vectơ khoảng cách: thay đổi chi phí liên kết “ tin tốt đi nhanh” t 0 : y phát hiện thay đổi chi phí liên kết, cập nhật DV của nó, thông báo cho các láng giềng của nó. t 1 : z nhận cập nhật từ y , cập nhật bảng của nó, tính toán chi phí nhỏ nhất mới cho x , gửi DV của nó cho các lân cận. t 2 : y nhận cập nhật của z, cập nhật bảng DV của nó. Chi phí nhỏ nhất của y không thay đổi, vì vậy y không gửi tin nhắn đến z. Thay đổi chi phí liên kết: o Nút phát hiện thay đổi chi phí liên kết cục bộ o Cập nhật thông tin định tuyến, tính toán lại DV cục bộ o Nếu DV thay đổi, thông báo cho hàng xóm x z 1 4 50 y 1 116
  • 117. Vectơ khoảng cách: thay đổi chi phí liên kết Thay đổi chi phí liên kết: o Nút phát hiện thay đổi chi phí liên kết cục bộ o “Tin xấu lan truyền chậm” – bài toán đếm đến vô cùng: x z 1 4 5 y 6 0 ▪ y thấy liên kết trực tiếp tới x có chi phí mới là 60, nhưng z đã nói rằng nó có một đường dẫn với chi phí là 5. Vì vậy, y tính toán “chi phí mới của tôi tới x sẽ là 6, thông qua z); thông báo cho z về chi phí mới từ 6 đến x. ▪ z biết rằng đường dẫn đến x qua y có chi phí mới là 6, vì vậy z tính toán “chi phí mới của tôi tới x sẽ là 7 qua y), thông báo cho y về chi phí mới từ 7 đến x. ▪ y biết rằng đường dẫn đến x qua z có chi phí mới là 7, vì vậy y tính toán “chi phí mới của tôi tới x sẽ là 8 qua y), thông báo cho z về chi phí mới từ 8 đến x. ▪ z biết rằng đường dẫn đến x qua y có chi phí mới là 8, vì vậy z tính toán “chi phí mới của tôi tới x sẽ là 9 qua y), thông báo cho y về chi phí mới từ 9 đến x. o Xem tài liệu cho các giải pháp. Các thuật toán phân tán rất phức tạp! 117
  • 118. So sánh thuật toán LS và DV Độ phức tạp của thông điệp LS: n router, gửi tin nhắn O(n2) DV: trao đổi hàng xóm với nhau; thời gian hội tụ thay đổi Tốc độ hội tụ LS: Thuật toán O(n2), tin nhắn O(n2) o Có thể có dao động DV: thời gian hội tụ thay đổi o Có thể có các vòng lặp định tuyến o Bài toán đếm đến vô cực Điều gì xảy ra nếu router gặp trục trặc hoặc bị xâm phạm? LS: o Router có thể quảng cáo chi phí liên kết không chính xác o Mỗi router chỉ tính toán bảng riêng của nó DV: o Router DV có thể quảng cáo chi phí đường dẫn không chính xác (“Tôi có một đường dẫn chi phí thực sự thấp đến mọi nơi”): black-holing o Mỗi bảng của router được sử dụng bởi những router khác: lỗi lan truyền qua mạng 118
  • 119. Chương 4: Nội dung 4.1 Tổng quan o Mức dữ liệu o Mức điều khiển 4.2 Virtual circuit network và datagram network o Các mạch ảo o Mạng datagram 4.3 Cấu trúc bên trong router o Cổng đầu vào, chuyển đổi, cổng đầu ra o Quản lý bộ đệm, lập kế hoạch 4.4 IP: Internet Protocol o Định dạng datagram o IPv4 addressing o DHCP o NAT o ICMP o IPV6 4.5 Các thuật toán routing o Link state o Distance vector 4.6 Routing trong Internet o Hierarchical routing o RIP, OSPF, BGP o SDN o Quản lý mạng 4.7 Broadcast và Multicast routing 119
  • 120. Giúp cho việc định tuyến có thể mở rộng Nghiên cứu định tuyến cho đến nay - lý tưởng hóa o Tất cả các router giống hệt nhau o Mạng “phẳng” … không đúng trong thực tế Quy mô: hàng tỷ điểm đến: o Không thể lưu trữ tất cả các điểm đến trong bảng định tuyến! o Trao đổi bảng định tuyến sẽ tràn ngập các liên kết! Quản trị vùng tự quản: o Internet: mạng của các mạng o Mỗi quản trị viên mạng có thể muốn kiểm soát định tuyến trong mạng riêng của mình 120
  • 121. Cách tiếp cận Internet để định tuyến có thể mở rộng Tổng hợp các router thành các vùng được gọi là “hệ thống tự quản” (AS) (còn gọi là “miền”) intra-AS (hay còn gọi là “nội miền”): định tuyến giữa các router cùng AS (“mạng”) o Tất cả các router trong AS phải chạy cùng một giao thức nội miền o Các router trong AS khác nhau có thể chạy các giao thức định tuyến nội miền khác nhau o Router cổng: ở “cạnh” của AS của chính nó, có (các) liên kết đến (các) router trong các AS khác inter-AS (còn gọi là “liên miền”): Định tuyến giữa các AS o Cổng thực hiện định tuyến liên miền (cũng như định tuyến nội miền) 121
  • 122. forwarding table Các AS được kết nối với nhau Bảng chuyển tiếp được định cấu hình bởi các thuật toán định tuyến trong và ngoài AS o Định tuyến trong AS xác định mục nhập cho các đích trong AS o Inter-AS & intra-AS xác định mục nhập cho các điểm đến bên ngoài 3b 1d 3a 1c 2a AS3 AS1 AS2 1a 2c 2b 1b 3c intra-AS routing intra-AS routing intra-AS routing inter-AS routing Intra-AS Routing Inter-AS Routing 122
  • 123. Định tuyến giữa các AS: vai trò trong chuyển tiếp nội miền o Giả sử router trong AS 1 nhận được gói dữ liệu được định sẵn bên ngoài AS 1 : Định tuyến liên miền AS 1 phải: 1. Tìm hiểu điểm đến nào có thể truy cập thông qua AS2, điểm đến nào thông qua AS3 2. Truyền bá thông tin khả năng tiếp cận này đến tất cả các router trong AS 1 Router nên chuyển tiếp gói đến router cổng trong AS1, nhưng cái nào? 3b 1d 3a 1c 2a AS3 AS1 AS2 1a 2c 2b 1b 3c other networks other networks 123
  • 124. Định tuyến trong một AS Các giao thức định tuyến nội bộ AS phổ biến nhất: o RIP: Routing Information Protocol [RFC 1723] ▪ DV cổ điển: DV được trao đổi cứ sau 30 giây ▪ Không còn được sử dụng rộng rãi o EIGRP: Enhanced Interior Gateway Routing Protocol ▪ Dựa trên DV ▪ Trước đây là độc quyền của Cisco trong nhiều thập kỷ (được mở vào năm 2013 [RFC 7868]) o OSPF: Open Shortest Path First[RFC 2328] ▪ Định tuyến trạng thái liên kết ▪ Giao thức IS-IS (tiêu chuẩn ISO, không phải tiêu chuẩn RFC) về cơ bản giống như OSPF 124
  • 125. Định tuyến RIP ( Routing Information Protocol) o Công bố vào năm 1982 trong BSD-UNIX o Thuật toán distance vector ▪ Metric khoảng cách: số lượng hop (max = 15 hops), mỗi link có giá trị là 1 ▪ Các DV được trao đổi giữa các neighbors mỗi 30 giây trong thông điệp phản hồi (còn gọi là advertisement) ▪ Mỗi advertisement: danh sách lên đến 25 subnet đích D C B A u v w x y z subnet hops u 1 v 2 w 2 x 3 y 3 z 2 Từ router A đến các subnet đích: 125
  • 126. Định tuyến RIP: ví dụ Subnet đích router kế tiếp số lượng hop đến đích w A 2 y B 2 z B 7 x -- 1 …. …. .... Bảng định tuyến trong router D w x y z A C D B 126
  • 127. w x y z A C D B Subnet đích router kế tiếp số lượng hop tới đích w A 2 y B 2 z B 7 x -- 1 …. …. .... Bảng định tuyến trong router D A 5 đích kế hops w - 1 x - 1 z C 4 …. … ... Quảng cáo từ A-tới-D Định tuyến RIP: ví dụ 127
  • 128. Định tuyến RIP: lỗi đường kết nối và phục hồi Nếu không có quảng cáo nào sau 180 giây --> neighbor/kết nối được xem như đã chết o Những đường đi qua neighbor bị vô hiệu o Các quảng cáo mới được gởi tới các neighbor o Các neighbor đó tiếp tục gởi ra những quảng cáo mới đó (nếu các bảng bị thay đổi) o Thông tin về lỗi đường kết nối nhanh chóng (?) lan truyền trên toàn mạng o poison reverse được dùng để ngăn chặn vòng lặp ping-pong (khoảng cách vô hạn = 16 hops) 128
  • 129. Định tuyến OSPF o “Mở”: công khai o Trạng thái liên kết cổ điển ▪ Mỗi router gởi quảng bá gói tin quảng cáo trạng thái liên kết OSPF (trực tiếp qua IP thay vì sử dụng TCP/UDP) tới tất cả các router khác trong toàn bộ AS ▪ Nhiều chỉ số chi phí liên kết có thể: băng thông, độ trễ ▪ Mỗi router có cấu trúc liên kết đầy đủ, sử dụng thuật toán Dijkstra để tính toán bảng chuyển tiếp o Bảo mật: tất cả các thông báo OSPF được xác thực (để ngăn chặn sự xâm nhập độc hại) 129
  • 130. OSPF phân cấp o Phân cấp hai cấp: local area, backbone. • Quảng cáo trạng thái liên kết chỉ tràn ngập trong khu vực hoặc đường trục • Mỗi nút có cấu trúc liên kết khu vực chi tiết; chỉ biết phương hướng để đạt được các điểm đến khác Router ranh giới khu vực: “tóm tắt” khoảng cách đến các đích trong khu vực riêng, quảng cáo trong đường trục khu vực 1 khu vực 2 khu vực 3 backbone Router cục bộ router đường trục: chạy OSPF giới hạn ở đường trục Router ranh giới: kết nối với các AS khác Router cục bộ: • Gởi LS chỉ trong khu vực • Tính toán định tuyến trong khu vực • Chuyển tiếp các gói ra bên ngoài thông qua router biên giới khu vực 130
  • 131. Định tuyến giữa các AS: BGP o BGP (Border Gateway Protocol): giao thức định tuyến liên miền thực tế • “chất keo kết nối Internet với nhau” o Cho phép mạng con quảng cáo sự tồn tại của nó và các điểm đến mà nó có thể tiếp cận với phần còn lại của Internet: “ Tôi ở đây, đây là người tôi có thể tiếp cận và bằng cách” o BGP cung cấp cho mỗi AS một phương tiện để: ▪ eBGP: lấy thông tin về khả năng tiếp cận mạng con từ các AS lân cận ▪ iBGP: truyền thông tin về khả năng tiếp cận tới tất cả các router bên trong AS. ▪ Xác định các tuyến “ tốt” đến các mạng khác dựa trên thông tin và chính sách về khả năng tiếp cận 131
  • 132. Kết nối eBGP, iBGP kết nối eBGP kết nối iBGP logic 1b 1d 1c 1a 2b 2d 2c 2a 3b 3d 3c 3a AS 2 AS 3 AS 1 1c ∂ ∂ Gateway router chạy cả giao thức eBGP và iBGP 132
  • 133. Tại sao định tuyến Intra-AS, Inter-AS khác nhau? Chính sách: o Inter-AS: quản trị viên muốn kiểm soát cách lưu lượng truy cập được định tuyến, ai định tuyến qua mạng của nó o Intra-AS: quản trị viên duy nhất, vì vậy chính sách ít có vấn đề hơn Tỉ lệ: o Định tuyến phân cấp giúp tiết kiệm kích thước bảng, giảm lưu lượng cập nhật Hiệu suất: o Intra-AS: có thể tập trung vào hiệu suất o Inter-AS: chính sách chi phối hiệu suất 133
  • 134. Mạng được xác định bằng phần mềm (SDN) o Lớp mạng Internet: được triển khai theo lịch sử thông qua phương pháp kiểm soát phân tán trên mỗi router: ▪ Nguyên khối chứa phần cứng chuyển mạch, chạy triển khai độc quyền các giao thức chuẩn Internet (IP, RIP, IS-IS, OSPF, BGP) trong hệ điều hành router độc quyền (ví dụ: Cisco IOS) ▪ Các “hộp trung gian” khác nhau cho các chức năng lớp mạng khác nhau: tường lửa, bộ cân bằng tải, hộp NAT, .. o ~2005: quan tâm mới đến việc xem xét lại mức điều khiển mạng 134
  • 135. Mức điều khiển ở mỗi router Các thành phần thuật toán định tuyến riêng lẻ trong mỗi và mọi router tương tác trong mức điều khiển thuật toán định tuyến Mức dữ liệu Mức điều khiển 1 2 0111 3 giá trị địa chỉ đích trong header của gói tin 135
  • 136. Mức điều khiển được xác định bằng phần mềm (SDN – Software-Defined-Networking) Mức dữ liệu Mức điều khiển Điều khiển từ xa CA CA CA CA CA 1 2 0111 3 giá trị địa chỉ đích trong header của gói tin Bộ điều khiển từ xa tính toán, cài đặt bảng chuyển tiếp trong router 136
  • 137. Mạng được xác định bằng phần mềm (SDN) Tại sao mức điều khiển tập trung là hợp lý? o Quản lý mạng dễ dàng hơn: tránh cấu hình sai router, luồng lưu lượng linh hoạt hơn o Chuyển tiếp dựa trên bảng (gọi lại OpenFlow API) cho phép các router “lập trình” ▪ “lập trình” tập trung dễ dàng hơn: tính toán bảng tập trung và phân phối ▪ “lập trình” phân tán khó hơn: tính toán các bảng do thuật toán (giao thức) phân tán được triển khai trong từng router o Triển khai mở (không độc quyền) của mức điều khiển ▪ Thúc đẩy đổi mới: hãy để 1000 bông hoa nở 137
  • 138. Tương tự SDN: cuộc cách mạng từ máy tính lớn đến PC Tích hợp theo chiều dọc Đóng cửa, độc quyền Chậm đổi mới Công nghiệp nhỏ Chuyên Điều hành Hệ thống Chuyên Phần cứng Ứn g dụ ng Ứn g dụ ng Ứn g dụ ng Ứn g dụ ng Ứn g dụ ng Ứn g dụ ng Ứn g dụ ng Ứn g dụ ng Ứn g dụ ng Ứn g dụ ng Ứng dụng Chuyên Các ứng dụng Tích hợp theo chiều ngang Giao tiếp mở Đổi mới nhanh chóng Ngành công nghiệp khổng lồ bộ vi xử lý Giao tiếp mở hoặc hoặc Giao tiếp mở Windows Linux MAC OS 138
  • 139. 2 2 1 3 1 1 2 5 3 5 v w u z y x Kỹ thuật lưu lượng: khó khăn với định tuyến truyền thống Hỏi: nếu nhà điều hành mạng muốn lưu lượng truy cập từ u đến z chạy dọc theo uvwz, thay vì uxyz thì sao? Trả lời: cần xác định lại trọng số liên kết để thuật toán định tuyến lưu lượng tính toán các tuyến tương ứng (hoặc cần một thuật toán định tuyến mới)! Trọng số liên kết chỉ là “nút” điều khiển: không kiểm soát nhiều! 139
  • 140. 2 2 1 3 1 1 2 5 3 5 v w u z y x Kỹ thuật lưu lượng: khó khăn với định tuyến truyền thống Hỏi: nếu nhà điều hành mạng muốn phân chia lưu lượng u-to-z dọc theo uvwz và uxyz (cân bằng tải) thì sao? Trả lời: không làm được (hoặc cần thuật toán định tuyến mới) 140
  • 141. Kỹ thuật lưu lượng: khó khăn với định tuyến truyền thống Hỏi: Nếu w muốn định tuyến lưu lượng màu xanh và đỏ khác nhau từ w đến z thì sao? Trả lời: Không thể thực hiện được (với chuyển tiếp dựa trên đích và định tuyến LS, DV) 2 2 1 3 1 1 2 5 3 5 v w u z y x Chuyển tiếp tổng quát và SDN có thể được sử dụng để đạt được bất kỳ định tuyến mong muốn nào 141
  • 142. Mạng được xác định bằng phần mềm (SDN) Mức dữ liệu Mức điều khiển Remote Controller CA CA CA CA CA 1. Chuyển tiếp “flow- based” tổng quát (ví dụ OpenFlow) 2. Tách riêng giữa mức điều khiển và mức dữ liệu 3. Các chức năng mức điều khiển bên ngoài đến các chuyển mạch mức dữ liệu … routing access control load balance 4. Các ứng dụng điều khiển có thể lập trình được 142
  • 143. Mạng được xác định bằng phần mềm (SDN) Chuyển mạch ở mức dữ liệu: o Chuyển mạch nhanh, đơn giản triển khai chuyển tiếp mức dữ liệu tổng quát trong phần cứng o Bảng luồng (chuyển tiếp) được tính toán, cài đặt dưới sự giám sát của bộ điều khiển o API cho điều khiển chuyển đổi dựa trên bảng (ví dụ: OpenFlow) • Xác định những gì có thể kiểm soát được, cái gì không o Giao thức để giao tiếp với bộ điều khiển (ví dụ: OpenFlow) data plane control plane SDN Controller (network operating system) … routing access control load balance southbound API northbound API SDN-controlled switches network-control applications 143
  • 144. Mạng được xác định bằng phần mềm (SDN) Bộ điều khiển SDN (hệ điều hành mạng): o Duy trì thông tin trạng thái mạng o Tương tác với các ứng dụng điều khiển mạng “ở trên” thông qua API hướng northbound o Tương tác với các thiết bị chuyển mạch mạng “bên dưới” thông qua API sounthbound o Được triển khai dưới dạng hệ thống phân tán cho hiệu suất, khả năng mở rộng, khả năng chịu lỗi, độ bền cao data plane control plane SDN Controller (network operating system) … routing access control load balance southbound API northbound API SDN-controlled switches network-control applications 144
  • 145. Mạng được xác định bằng phần mềm (SDN) Ứng dụng điều khiển mạng: o “bộ não” điều khiển: thực hiện các chức năng điều khiển bằng các dịch vụ cấp thấp hơn, API do bộ điều khiển SDN cung cấp o Không được nhóm: có thể được cung cấp bởi bên thứ 3: khác với nhà cung cấp định tuyến hoặc bộ điều khiển SDN data plane control plane SDN Controller (network operating system) … routing access control load balance southbound API northbound API SDN-controlled switches network-control applications 145
  • 146. Các thành phần của bộ điều khiển SDN Truyền thông: giao tiếp giữa bộ điều khiển SDN và các bộ chuyển mạch được điều khiển Quản lý trạng thái toàn mạng : trạng thái của các liên kết mạng, chuyển mạch, dịch vụ: cơ sở dữ liệu phân tán Lớp giao diện cho các ứng dụng điều khiển mạng: API trừu tượng Network-wide distributed, robust state management Communication to/from controlled devices Link-state info switch info host info statistics flow tables … … OpenFlow SNMP … network graph intent RESTful API … Interface, abstractions for network control apps SDN controller routing access control load balance 146
  • 147. Giao thức OpenFlow o Hoạt động giữa bộ điều khiển, bộ chuyển đổi o TCP dùng để trao đổi thông điệp • Mã hóa tùy chọn o Ba lớp thông báo OpenFlow: ▪ Bộ điều khiển sang bộ chuyển đổi ▪ Không đồng bộ (chuyển đổi sang bộ điều khiển) ▪ Đối xứng o Khác biệt với OpenFlow API ▪ API được sử dụng để chỉ định các hành động chuyển tiếp tổng quát Bộ điều khiển OpenFlow 147
  • 148. OpenFlow: thông điệp từ bộ điều khiển đến bộ chuyển đổi Tin nhắn từ bộ điều khiển đến bộ chuyển đổi o Các tính năng: các tính năng chuyển đổi truy vấn bộ điều khiển, trả lời chuyển đổi o Cấu hình: các truy vấn điều khiển/thiết đặt tham số cấu hình chuyển đổi o Trạng thái sửa đổi: thêm, xóa, sửa đổi các mục nhập luồng trong các bảng OpenFlow o Packet-out: bộ điều khiển có thể gửi gói tin ra khỏi cổng chuyển đổi cụ thể Bộ điều khiển OpenFlow 148
  • 149. OpenFlow: thông điệp từ bộ chuyển đổi sang bộ điều khiển Thông điệp từ bộ chuyển đổi sang bộ điều khiển o Packet-in: chuyển gói (và điều khiển của nó) tới bộ điều khiển o Loại bỏ luồng: mục nhập tương ứng bị xóa tại bộ chuyển đổi o Trạng thái cổng: thông báo cho bộ điều khiển về sự thay đổi trên cổng May mắn thay, các nhà khai thác mạng không "lập trình" chuyển mạch bằng cách tạo/gửi trực tiếp các tin nhắn OpenFlow. Thay vào đó là sử dụng trừu tượng hóa ở cấp cao hơn tại bộ điều khiển Bộ điều khiển OpenFlow 149
  • 150. SDN: ví dụ tương tác mức điều khiển/mức dữ liệu S1, thông báo trạng thái cổng OpenFlow để thông báo cho bộ điều khiển 1 Bộ điều khiển SDN nhận thông báo OpenFlow, cập nhật thông tin trạng thái liên kết 2 Ứng dụng thuật toán định tuyến của Dijkstra trước đây đã đăng ký để gọi khi trạng thái liên kết thay đổi. 3 Thuật toán định tuyến của Dijkstra truy cập thông tin biểu đồ mạng, thông tin trạng thái liên kết trong bộ điều khiển, tính toán các tuyến mới 4 Link-state info switch info host info statistics flow tables … … OpenFlow SNMP … network graph intent RESTful API … Dijkstra’s link-state routing s1 s2 s3 s4 1 2 3 4 150
  • 151. SDN: ví dụ tương tác mức điều khiển/mức dữ liệu Ứng dụng định tuyến link state tương tác với thành phần tính toán của bảng lưu lượng trong bộ điều khiển SDN, tính toán các bảng lưu lượng mới cần thiết 5 Bộ điều khiển sử dụng OpenFlow để cài đặt các bảng mới trong các bộ chuyển đổi cần cập nhật 6 Link-state info switch info host info statistics flow tables … … OpenFlow SNMP … network graph intent RESTful API … Dijkstra’s link-state routing s1 s2 s3 s4 5 1 2 3 4 151
  • 152. Bộ điều khiển OpenDaylight (ODL) o Lớp trừu tượng hóa dịch vụ: ▪ Kết nối các ứng dụng và dịch vụ bên trong, bên ngoài Network Orchestrations and Applications Southbound API Service Abstraction Layer (SAL) config. and operational data store REST/RESTCONF/NETCONF APIs messaging OpenFlow NETCONF SNMP OVSDB … Northbound API Traffic Engineering … Firewalling Load Balancing Basic Network Functions Enhanced Services … … Forwardin g rules mgr. AAA Host Tracker Stats mgr. Switch mgr. Topolog y processin g 152
  • 153. Bộ điều khiển ONOS o Ứng dụng điều khiển tách biệt với bộ điều khiển o Khung ý tưởng: đặc điểm kỹ thuật cấp cao của dịch vụ: cái gì là hơn và như thế nào o Nhấn mạnh đáng kể vào lõi phân tán: độ tin cậy của dịch vụ, nhân rộng hiệu suất sao chép Network Applications Southbound API Northbound API Traffic Engineering … Firewalling Load Balancing southbound abstractions, protocols OpenFlow Netconf OVSDB device link host flow packet northbound abstractions, protocols REST API Intent ONOS distributed core statistics devices hosts links paths flow rules topology 153
  • 154. SDN: thử thách đã chọn o Củng cố mức điều khiển: độc lập, đáng tin cậy, có thể mở rộng hiệu suất, bảo mật cho hệ thống phân tán ▪ Tận dụng lý thuyết về hệ thống phân tán tin cậy cho mức điều khiển ▪ Độ tin cậy, bảo mật o Mạng, giao thức đáp ứng yêu cầu nhiệm vụ cụ thể ▪ Ví dụ: thời gian thực, cực kỳ đáng tin cậy, cực kỳ an toàn o Mở rộng quy mô Internet: ngoài một AS o SDN quan trọng trong mạng di động 5G 154
  • 155. SDN và tương lai của các giao thức mạng truyền thống o SDN tính toán các bảng chuyển tiếp router-máy tính: ▪ Chỉ là một ví dụ về tính toán logic-tập trung so với tính toán giao thức o Người ta có thể tưởng tượng kiểm soát tắc nghẽn được tính toán bằng SDN: ▪ Bộ điều khiển đặt tốc độ người gửi dựa trên mức tắc nghẽn do router báo cáo (đến bộ điều khiển) Việc triển khai chức năng mạng (SDN so với các giao thức) sẽ phát triển như thế nào? 155
  • 156. Quản lý mạng là gì o Hệ thống tự quản (hay còn gọi là “mạng”): 1000 thành phần phần cứng/phần mềm tương tác o Các hệ thống phức tạp khác yêu cầu giám sát, cấu hình, kiểm soát: ▪ Máy bay phản lực, nhà máy điện hạt nhân, những thứ khác? " Quản lý mạng bao gồm việc triển khai, tích hợp và phối hợp của phần cứng, phần mềm và con người, các yếu tố để giám sát, kiểm tra, thăm dò ý kiến, cấu hình, phân tích, đánh giá và kiểm soát mạng và tài nguyên phần tử để đáp ứng thời gian thực, hiệu suất hoạt động và chất lượng dịch vụ yêu cầu với chi phí hợp lý.” 156
  • 157. Các thành phần quản lý mạng Quản lý máy chủ: ứng dụng, điển hình với người quản lý mạng trong vòng lặp Giao thức quản lý mạng: được sử dụng bởi máy chủ quản lý để truy vấn, định cấu hình, quản lý thiết bị; được sử dụng bởi các thiết bị để thông báo cho máy chủ quản lý dữ liệu, sự kiện Thiết bị được quản lý: thiết bị có các thành phần phần mềm, phần cứng có thể quản lý, có thể định cấu hình Dữ liệu: dữ liệu cấu hình “trạng thái” của thiết bị, dữ liệu vận hành, thống kê thiết bị managed device managed device managed device managed device managed device agent data agent data agent data agent data agent data managing server/controller data 157
  • 158. Phương pháp tiếp cận cách quản lý của nhà điều hành mạng CLI (Giao diện dòng lệnh) o Các sự cố của nhà điều hành (loại, tập lệnh) trực tiếp đến từng thiết bị (ví dụ: vis ssh) SNMP/MIB o Người vận hành truy vấn/đặt dữ liệu thiết bị (MIB) bằng Giao thức quản lý mạng đơn giản (SNMP) NETCONF/YANG o Trừu tượng hơn, rộng hơn, toàn diện hơn o Nhấn mạnh vào quản lý cấu hình đa thiết bị o YANG: ngôn ngữ mô hình hóa dữ liệu o NETCONF: giao tiếp các hành động/dữ liệu tương thích với YANG đến/từ/giữa các thiết bị từ xa managed device managed device managed device managed device managed device agent data agent data agent data agent data agent data managing server/controller data 158
  • 159. Giao thức SNMP Hai cách để truyền tải thông tin MIB, lệnh: managed device agent data managing server/controlle r data request response trap message request/response mode managed device agent data managing server/controlle r data trap mode 159
  • 160. Giao thức SNMP: các loại thông báo GetRequest GetNextRequest GetBulkRequest manager-to-agent: “ lấy dữ liệu cho tôi ” (ví dụ dữ liệu, dữ liệu tiếp theo trong danh sách, khối dữ liệu). Loại thông điệp Chức năng SetRequest manager-to-agent: đặt giá trị MIB Reponse Agent-to-manager: giá trị, phản hồi Yêu cầu Trap Agent-to-manager: thông báo cho người quản lý sự kiện đặc biệt 160
  • 161. Giao thức SNMP: định dạng thông điệp …. PDU type (0-3) Request ID Error Status (0-5) Error Index Name Value Name Value Get/set header Variables to get/set SNMP PDU Thông điệp type 3 …. PDU type 4 Enterprise Agent Addr Trap Type (0-7) Specific code Time stamp Name Value Trap header Trap info Thông điệp type 4 161
  • 162. SNMP: Cơ sở quản lý thông tin (MIB) o Dữ liệu hoạt động (và một số cấu hình) của thiết bị được quản lý o Được tập hợp vào mô-đun MIB của thiết bị ▪ 400 mô-đun MIB được xác định trong RFC's; nhiều MIB dành riêng cho nhà cung cấp hơn ▪ Cấu trúc thông tin quản lý (SMI): ngôn ngữ định nghĩa dữ liệu agent data 162
  • 163. Tổng quan về NETCONF o Mục tiêu: chủ động quản lý/ cấu hình thiết bị trên toàn mạng o Hoạt động giữa máy chủ quản lý và thiết bị mạng được quản lý ▪ Hành động: truy xuất, đặt, sửa đổi, kích hoạt cấu hình ▪ Hoạt động được cam kết trên nhiều thiết bị ▪ Truy vấn dữ liệu hoạt động và thống kê ▪ Đăng ký nhận thông báo từ các thiết bị o Mô hình gọi thủ tục từ xa (RPC) ▪ Thông báo giao thức NETCONF được mã hóa bằng XML ▪ Giao thức vận chuyển an toàn, đáng tin cậy (ví dụ: TLS) 163
  • 164. NETCONF khởi tạo, trao đổi, đóng phiên Session initiation, capabilities exchange: <hello> Session close: <close-session> <rpc> <rpc-reply> <rpc> <rpc-reply> <rpc> <rpc-reply> <notification> … … … … … … … … … managing server/controller data agent data 164
  • 165. YANG o Ngôn ngữ mô hình hóa dữ liệu dùng để chỉ định cấu trúc, cú pháp, ngữ nghĩa của dữ liệu quản lý mạng NETCONF ▪ Các kiểu dữ liệu tích hợp, như SMI o Tài liệu XML mô tả thiết bị, các khả năng có thể được tạo từ mô tả YANG o Có thể thể hiện các ràng buộc giữa các dữ liệu phải được thỏa mãn bởi cấu hình NETCONF hợp lệ ▪ Đảm bảo các cấu hình NETCONF đáp ứng các ràng buộc về tính chính xác, nhất quán đại lý dữ liệu quản lý máy chủ/bộ điều khiển dữ liệu Thông báo NETCONF RPC <sửa-cấu hình> XML do YANG tạo </sửa-cấu hình> YANG được tạo ra 165
  • 166. Chương 4: Nội dung 4.1 Tổng quan o Mức dữ liệu o Mức điều khiển 4.2 Virtual circuit network và datagram network o Các mạch ảo o Mạng datagram 4.3 Cấu trúc bên trong router o Cổng đầu vào, chuyển đổi, cổng đầu ra o Quản lý bộ đệm, lập kế hoạch 4.4 IP: Internet Protocol o Định dạng datagram o IPv4 addressing o DHCP o NAT o ICMP o IPV6 4.5 Các thuật toán routing o Link state o Distance vector 4.6 Routing trong Internet o Hierarchical routing o RIP, OSPF, BGP o SDN o Quản lý mạng 4.7 Broadcast và Multicast routing 166
  • 167. R1 R2 R3 R4 Nguồn trùng lặp R1 R2 R3 R4 Trùng lặp trong mạng duplicate creation/transmission duplicate duplicate Broadcast routing o Chuyển các packet từ nguồn tới tất cả các node khác o Nguồn trùng lặp thì không có hiệu quả: • Nguồn trùng lặp: làm sao xác định được địa chỉ người nhận? 167
  • 168. Trùng lặp trong mạng o Flooding: khi node nhận được packet broadcast, nó gởi bản sao đến tất cả các neighbor ▪ Vấn đề: lặp lại & bão broadcast o Flooding có điều khiển: node chỉ broadcast packet nếu nó không gửi broadcast giống như vậy trước đó ▪ Node theo dõi các packet đã broadcast ▪ Hoặc reverse path forwarding (RPF): chỉ chuyển các packet nếu nó đã đến trên đường đi ngắn nhất giữa node và nguồn o Spanning tree: ▪ Không có các packet dư thừa được nhận tại bất cứ node nào 168
  • 169. Multicast routing: phát biểu vấn đề Mục tiêu: tìm một cây (hoặc các cây) kết nối các router có các thành viên trong nhóm multicast o Cây (tree): không phải tất cả các đường đi giữa các router đều được sử dụng ▪ Cây chia sẻ (shared-tree): cây giống nhau được sử dụng bởi các thành viên trong nhóm ▪ Cây dựa trên nguồn(source-based): cây khác nhau từ nơi gửi tới nơi nhận Cây chia sẻ Cây dựa trên nguồn Group member not group member Router with a Group member Router without group member Ký hiệu 169
  • 170. Hướng tiếp cận để xây dựng các cây multicast Các hướng tiếp cận: o Cây dựa trên nguồn (source-based tree): một cây cho mỗi nguồn ▪ Các cây đường đi ngắn nhất ▪ Cây đường đi ngược o Cây chia sẻ nhóm: nhóm dùng 1 cây ▪ Mở rộng tối thiểu (Steiner) ▪ Các cây dựa trên trung tâm (center-based trees) … tìm hiểu các cách tiếp cận cơ bản, sau đó các giao thức cụ thể áp dụng cho các hướng tiếp cận này 170
  • 171. Lớp mạng: Tóm tắt Chúng ta đã học được rất nhiều! o Tiếp cận mức điều khiển mạng ▪ Điều khiển trên mỗi router (truyền thống) ▪ Điều khiển tập trung hợp lý (mạng được xác định bằng phần mềm) o Thuật toán định tuyến truyền thống ▪ Triển khai trên Internet: OSPF , BGP o Bộ điều khiển SDN ▪ Triển khai trong thực tế: ODL, ONOS o Quản lý mạng điểm dừng tiếp theo: lớp liên kết! 171
  • 172. Danh sách từ Anh – Việt trong chương 4 o Broadcast: quảng bá o Control plane: mức điều khiển o Datagram: gói tin o Data plane: mức dữ liệu o Fabric: cấu tạo, tổ chức o Forwarding: chuyển tiếp o Flooding: làm tràn ngập o Interface: giao tiếp, cổng o Multicast: đa hướng o Neighbor: hàng xóm lân cận o Network layer: tầng mạng o Packet: gói tin o Router: bộ định tuyến o Routing: định tuyến o Switching: chuyển mạch o Virtual circuit network: mạng mạch ảo 172