Professional Documents
Culture Documents
1
Chương 4: Tầng Network
For a revision history, see the slide note for this page.
Mục tiêu:
o Hiểu các nguyên lý nền tảng của o Hiện thực trong Internet
các dịnh vụ tầng Network Giao thức IP
Các mô hình dịch vụ của tầng NAT
Network
SDN
Forwarding và routing
Cách router hoạt động
Routing
Broadcast, multicast
3
Chương 4: Nội dung
4.1 Tổng quan o DHCP
o Mức dữ liệu o NAT
o Mức điều khiển o ICMP
4.2 Virtual circuit network và datagram o IPV6
network 4.5 Các thuật toán routing
o Các mạch ảo o Link state
o Mạng datagram o Distance vector
4.3 Cấu trúc bên trong router 4.6 Routing trong Internet
o Cổng đầu vào, chuyển đổi, cổng đầu ra o Hierarchical routing
o Quản lý bộ đệm, lập kế hoạch o RIP, OSPF, BGP
4.4 IP: Internet Protocol o SDN
o Định dạng datagram o Quản lý mạng
o IPv4 addressing 4.7 Broadcast và Multicast routing
4
Các dịch vụ và giao thức tầng Network
chuyển tiếp
6
Tầng network: mức dữ liệu (data plane) và mức điều khiển (control
plane)
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 điều khiển
Mức dữ liệu
8
Mức điều khiển được xác định bằng phần mềm (SDN – Software-
Defined-Networking)
Điều khiển từ xa
Mức dữ liệu
CA
CA CA CA CA
giá trị địa chỉ đích trong
header của gói tin
0111 1
2
3
9
Mô hình dịch vụ mạng
Các dịch vụ cho datagram riêng lẻ : Các dịch vụ cho một luồng
o Đảm bảo truyền datagram:
o Độ trễ dưới 40 mili giây 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
Hỏi: Mô hình dịch vụ nào cho khoảng trống giữa các gói tin
“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
11
Mô hình dịch vụ tầng mạng
ATM tốc độ bit khả dụng đảm bảo tối thiểu không có không
Internet phân tán (RFC 2475 ) khả thi khả thi khả thi có
12
Chương 4: Nội dung
4.1 Tổng quan
o DHCP
o Mức dữ liệu
o NAT
o Mức điều khiển o ICMP
4.2 Virtual circuit network và datagram o IPV6
network
4.5 Các thuật toán routing
o Các mạch ảo
o Link state
o Mạng datagram
o Distance vector
4.3 Cấu trúc bên trong router
4.6 Routing trong Internet
o Cổng đầu vào, chuyển đổi, cổng đầu ra o Hierarchical routing
o Quản lý bộ đệm, lập kế hoạch o RIP, OSPF, BGP
4.4 IP: Internet Protocol o SDN
o Định dạng datagram o Quản lý mạng
o IPv4 addressing 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)
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 3
2
VC number
interface
Bảng forwarding trong routernumber
ở góc trái trên cùng:
số hiệu của số hiệu của
Cổng vào kết nối ảo vào Cổng ra kết nối ảo ra
1 12 3 22
2 63 1 18
3 7 2 17
1 97 3 87
… … … …
Các router kết nối ảo duy trì thông tin trạng thái kết nối!
17
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
application
5. Bắt đầu dòng dữ liệu 6. Nhận dữ liệu application
transport transport
network 4. Cuộc gọi được kết nối 3. Chấp nhận cuộc gọi
1. Khởi tạo cuộc gọi network
data link 2. Cuộc gọi đến
data link
physical 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
application application
transport transport
network 1. Gởi các datagram 2. Nhận datagram network
data link data link
physical physical
19
Bảng Datagram forwarding
4 tỉ địa chỉ IP, vì liệt kê
Thuật toán routing ra 1 dãy các địa chỉ hơn
là liệt kê ra từng địa chỉ
local forwarding table
(các mục tổng hợp)
dest address output
address-range 1 3 link
address-range 2 2
address-range 3 2
address-range 4 1
20
Mạng datagram hoặc mạch ảo: tại sao?
21
Chương 4: Nội dung
4.1 Tổng quan
o Mức dữ liệu o DHCP
o Mức điều khiển o NAT
4.2 Virtual circuit network và datagram o ICMP
network o IPV6
o Các mạch ảo 4.5 Các thuật toán routing
o Mạng datagram o Link state
4.3 Cấu trúc bên trong router o Distance vector
o Cổng đầu vào, chuyển đổi, cổng đầu 4.6 Routing trong Internet
ra o Hierarchical routing
o Quản lý bộ đệm, lập kế hoạch o RIP, OSPF, BGP
4.4 IP: Internet Protocol o SDN
o Định dạng datagram o Quản lý mạng
o IPv4 addressing 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
routing routing, management
processor control plane (software)
operates in millisecond time frame
high-seed
switching
fabric
Lookup,
Link
Layer Forwarding
Line Switch
Protocol fabric
Termination
(receive)
queueing
24
Chức năng cổng đầu vào
Lookup,
Link
Layer Forwarding
Line Switch
Protocol fabric
Termination
(receive)
queueing
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ý?
Kết hợp tiền tố dài nhất
o Chuyển packet từ cổng đầu vào đến cổng đầu ra thích hợp
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
31
Switching fabrics
o Chuyển packet từ cổng đầu vào đến cổng đầu ra thích hợp
memory
32
Switching thông qua bộ nhớ (memory)
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ý
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!
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
Switch Switch
fabric fabric
tranh chấp tại cổng đầu ra: chỉ có thể One packet time later: packet
truyền một packet màu đỏ, packet màu màu xanh lá cây bị chặn HOL
đỏ thấp hơn sẽ bị chặn
37
Hàng đợi cổng đầu ra
Switch
Switch
fabric
fabric
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
Quản lý bộ đệm:
datagram o Drop: packet nào được thêm
switch buffer link vào, drop khi bộ đệm đầy
fabric layer line R
protocol termination
• Drop ở cuối: drop packet đến
queueing (send) Ưu tiên: drop/remove trên cơ
scheduling sở độ ưu tiên
41
Lập lịch truyền packet: FCFS
Lập lịch truyền packet: quyết định FCFS: các packet được truyền
packet nào sẽ gửi tiếp theo trên liên theo thứ tự đến cổng ra
kết o Còn được gọi là: Nhập trước
o Đến trước được phục vụ trước xuất trước (FIFO)
o o Ví dụ thế giới thực?
Độ ưu tiên
o Thi đấu vòng tròn
o Xếp hàng công bằng có trọng số
Abstraction: queue
R packet
departures
packet
arrivals
queue link
(waiting area) (server)
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 hàng đợi ưu tiên cao
2
1 3 4 5
lượt đến
o Gửi packet từ hàng đợi ưu tiên cao
packet
nhất có packet đệm trong 1 3 2 4 5
dịch vụ
• FCFS trong lớp ưu tiên
khởi hành
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
khởi hành
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 phân loại liên kết
lượt đến
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ố
wi w2 r
S jw j phân loại liên kết
lượt đến w3
45
Sidebar: Tính trung lập của mạng
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 DHCP
o Mức dữ liệu o NAT
o Mức điều khiển o ICMP
4.2 Virtual circuit network và datagram o IPV6
network
4.5 Các thuật toán routing
o Các mạch ảo
o Link state
o Mạng datagram
o Distance vector
4.3 Cấu trúc bên trong router
4.6 Routing trong Internet
o Cổng đầu vào, chuyển đổi, cổng đầu ra o Hierarchical routing
o Quản lý bộ đệm, lập kế hoạch o RIP, OSPF, BGP
4.4 IP: Internet Protocol o SDN
o Định dạng datagram o Quản lý mạng
o IPv4 addressing 4.7 Broadcast và Multicast routing
47
Tầng Network: Internet
Tầng Link
Tầng Physical
48
Định dạng của IP datagram
32 bits
Số phiên bản giao thức IP Tổng độ dài datagram
ver head. type of length (byte)
Kích thước header (byte) len service
fragment sự phân mảnh/
“loại” dịch vụ: 16-bit identifier flgs
Diffserv (0:5) offset tổng hợp
time to upper header
ECN (6:7) kiểm tra tính toàn vẹn
live layer checksum
TTL: số hop tối đa còn lại source IP address Địa chỉ IP nguồn 32 bit
(giảm ở mỗi router)
Độ dài tối đa: 64K byte
destination IP address Địa chỉ IP đích 32-bit
giao thức tầng trên (ví dụ: TCP hoặc Thông thường: 1500 byte trở lại
UDP) options (if any) tuỳ chọn
overhead
20 byte TCP payload data
20 byte IP (variable length,
= 40 byte + app typically a TCP
layer overhead for or UDP segment)
TCP+IP
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
phân mảnh:
…
Loại liên kết khác nhau, MTU khác vào: một datagram lớn
nhau ra: 3 datagram nhỏ hơ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
50
Phân mảnh và tổng hợp IP
51
Địa chỉ IP: giới thiệu
o Địa chỉ IP: Mã định danh 32 bit 223.1.1.1
223.1.1.2
o Interface: kết nối giữa host/router 223.1.1.4 223.1.2.9
223 1 1 1
52
Địa chỉ IP: giới thiệu
223.1.1.1
223.1.3.1 223.1.3.2
53
Mạng con
223.1.1.1
54
Mạng con
mạng con 223.1.1.0/24
223.1.1.1 mạng con 223.1.2.0/24
55
Mạng con 223.1.1.2
223.1.9.1 223.1.7.1
223.1.8.1 223.1.8.0
56
Địa chỉ IP: CIDR
57
Địa chỉ IP: làm thế nào để có được một địa chỉ?
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.3
223.1.3.27 máy khách DHCP cần địa
223.1.2.2 chỉ trong mạng này
223.1.3.1 223.1.3.2
60
Kịch bản DHCP client-server
DHCP offer
src: 223.1.2.5, 67
Quảng bá: Tôi là máy
đích: 255.255.255.255, 68 chủ
DHCP! Đây 223.1.2.4
yiaddrr: là một địa chỉ
IP bạnID giao
có dịch:
thể 654
sử dụng
trọn đời: 3600 giây
Hai bước trên có thể được
DHCP request bỏ qua “nếu client nhớ và
src: 0.0.0.0, 68 muốn sử dụng lại địa chỉ
đích:: 255.255.255.255, 67
Quảng bá: OK. Tôi muốn mạng đã cấp phát trước
yiaddrr: 223.1.2.4 đó” [RFC 2131]
sử dụng
ID giaođịadịch:
chỉ655
IP này!
trọn đời: 3600 giây
DHCP ACK
src: 223.1.2.5, 67
Quảng bá: OK. Bạn 68
đích: 255.255.255.255, đã có
yiaddrr: 223.1.2.4
IDđịa
giaochỉ IP655
dịch: đó!
trọn đời: 3600 giây
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ụ
DHCP
địa chỉ IP
Eth
IP first-hop của router cho client,
phò tên & địa chỉ IP của máy chủ
DNS
o Phản hồi của máy chủ DHCP
DHCP
được đóng gói và được chuyển
DHCP
DHCP UDP tiếp tới client, giải mã thành
DHCP địa chỉ IP DHCP tại client
DHCP Eth router với DHCP
DHCP
phò máy chủ tích hợp vào o Client bây giờ biết địa chỉ IP, tên
router 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
Sau đó, ISP có thể phân bổ không gian địa chỉ của mình thành 8 khối:
Địa chỉ phân cấp cho phép quảng cáo thông tin định tuyến hiệu quả:
Tổ chức 0
200.23.16.0/23
tổ chức 1
“ Gửi cho tôi bất cứ thứ gì
200.23.18.0/23 có địa chỉ
tổ chức 2 bắt đầu
200.23.20.0/23 . Fly-By-Night-ISP 200.23.16.0/20 ”
.
. . Internet
.
tổ chức 7 .
200.23.30.0/23
“ Gửi cho tôi bất cứ thứ gì
ISPs-R-Us
có địa chỉ
bắt đầu
199.31.0.0/16 ”
66
Địa chỉ phân cấp : các tuyến cụ thể hơn
Tổ chức 0
200.23.16.0/23
tổ chức 1
“ Gửi cho tôi bất cứ thứ gì
200.23.18.0/23 có địa chỉ
tổ chức 2 bắt đầu
200.23.20.0/23 . Fly-By-Night-ISP 200.23.16.0/20 ”
.
. . Internet
.
tổ chức 7 .
200.23.30.0/23
“ Gửi cho tôi bất cứ thứ gì
ISPs-R-Us
có địa chỉ
tổ chức 1 bắt đầu
199.31.0.0/16 ”
200.23.18.0/23 “hoặc 200.23.18.0/23 ”
67
Địa chỉ phân cấp : các tuyến cụ thể hơn
Tổ chức 0
200.23.16.0/23
68
Địa chỉ IP: cuối cùng ...
Hỏi: làm cách nào để một ISP có được Hỏi: có đủ địa chỉ IP 32 bit không?
khối địa chỉ? o ICANN đã phân bổ đoạn địa chỉ
Đáp: ICANN : Internet Corporation for IPv4 cuối cùng cho các RRs vào
Assigned Names and Numbers năm 2011
http://www.icann.org/ o NAT (tiếp theo) giúp cạn kiệt
o phân bổ địa chỉ IP, thông qua 5 cơ không gian địa chỉ IPv4
quan đăng ký khu vực (RRs) (những o IPv6 có không gian địa chỉ 128-
người sau đó có thể phân bổ cho các bit
cơ quan đăng ký địa phương) "Ai biết chúng ta cần bao nhiêu
o quản lý vùng gốc DNS, bao gồm ủy không gian địa chỉ?" Vint Cerf
quyền quản lý TLD riêng lẻ (phản ánh quyết định tạo địa chỉ
IPv4 dài 32 bit)
(.com, .edu, …)
69
NAT: Network Address Translation (chuyển dịch địa chỉ
mạng)
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
phần còn lại của mạng cục bộ (ví dụ: mạng
Internet gia đình) 10.0.0/24
10.0.0.1
138.76.29.7 10.0.0.4
10.0.0.2
10.0.0.3
tất cả các datagram rời khỏi mạng cục bộ datagram có nguồn hoặc đích trong mạng
có cùng địa chỉ IP NAT nguồn: 138.76.29.7, này có địa chỉ 10.0.0/24 cho nguồn, đích
nhưng số cổng nguồn khác nhau (như thường lệ)
70
NAT: Network Address Translation (chuyển dịch địa chỉ
mạng)
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
71
NAT: Network Address Translation (chuyển dịch địa chỉ
mạng)
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
72
NAT: network address translation (chuyển dịch địa chỉ
mạng)
73
NAT: Network Address Translation (chuyển dịch địa chỉ
mạng)
74
ICMP (Internet Control Message Protocol)
75
Traceroute và ICMP
3 probes 3 probes
3 probes
o Động lực ban đầu: Không gian địa chỉ IPv4 32 bit sẽ được
phân bổ hoàn toàn
77
Định dạng datagram IPv6
payload (data)
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?
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)
IPv6 datagram
IPv4 datagram
79
Đường hầm và đóng gói
IPv6 datagram
Link-layer frame Thông thường: datagram à payload trong frame tầng Link
mạng IPv4
80
Đường hầm và đóng gói
IPv6 datagram
Link-layer frame Thông thường: datagram à payload trong frame tầng Link
A B IPv4 tunnel E F
kết nối router IPv6
Logical view:
IPv6 IPv6/ v4 IPv6/ v4 IPv6
A B C Đ E F
Physical view:
IPv6 IPv6/ v4 IPv4 IPv4 IPv6/ v4 IPv6
A đến B: E đến F:
IPv6 từ B đến C: từ B đến C: từ B đến C: IPv6
IPv6 trong IPv6 trong IPv6 trong
IPv4 IPv4 IPv4
82
Chương 4: Nội dung
4.1 Tổng quan o DHCP
o Mức dữ liệu o NAT
o Mức điều khiển o ICMP
4.2 Virtual circuit network và datagram o IPV6
network 4.5 Các thuật toán routing
o Các mạch ảo o Link state
o Mạng datagram o Distance vector
4.3 Cấu trúc bên trong router 4.6 Routing trong Internet
o Cổng đầu vào, chuyển đổi, cổng o Hierarchical routing
đầu ra o RIP, OSPF, BGP
o Quản lý bộ đệm, lập kế hoạch o SDN
4.4 IP: Internet Protocol o Quản lý mạng
o Định dạng datagram 4.7 Broadcast và Multicast routing
o IPv4 addressing
83
Giới thiệu
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)
85
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
điều khiển
Mức
dữ liệu
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
Điều khiển từ xa
Mức
điều khiển
Mức
dữ liệu
CA
CA CA CA CA
giá trị trong header
của gói tin đến
0111 1
2
3
87
Giao thức định tuyến
mobile network
national or global ISP
Đị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 application
transport
network
88
Trừu tượng hóa đồ thị: chi phí liên kết
5
c a,b : chi phí liên kết trực tiếp kết nối a và b
3
v w ví dụ: c w,z = 5, c u,z = ∞
2 5
u 2 1 z
3 chi phí do nhà điều hành mạng xác
1
x y
2 định: có thể luôn bằng 1 hoặc tỷ lệ
1 nghịch với băng thông hoặc tỷ lệ
nghịch với tắc nghẽn
đồ thị: G = (N,E)
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
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”
ký hiệu
o Tập trung: tất cả các nút đều biết cấu
cx ,y : chi phí liên kết trực
trúc liên kết mạng và chi phí liên kết tiếp từ nút x đến y; = ∞ nếu
Được thực hiện thông qua gói tin “link không phải hàng xóm trực
state broadcast” tiếp
Tất cả các nút có cùng thông tin D(v): ước tính chi phí hiện
o Tính toán các đường dẫn có chi phí tại của đường đi có chi phí
thấp nhất từ một nút (“ nguồn”) đến tất thấp nhất từ nguồn đến
cả các nút khác đích v
Cung cấp bảng chuyển tiếp cho nút đó p(v): nút trước dọc theo
đường dẫn từ nguồn đến v
o Lặp đi lặp lại: sau k lần lặp lại, biết N ' : tập hợp các nút có
đường dẫn chi phí thấp nhất đến k đích đường dẫn chi phí thấp
nhất được biết
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 find w not in N' such that D(w) is a minimum
10 add w to N'
11 update D(v) for all v adjacent to w and not in N' :
12 D(v) = min ( D(v), D(w) + cw,v )
13 /* new least-path-cost to v is either old least-cost-path to v or known
14 least-cost-path to w plus direct-cost from w to v */
15 until all nodes in N'
92
Thuật toán Dijkstra: ví dụ
v w x y z
Step N' D(v),p(v) D(w),p(w) D(x),p(x) D(y),p(y) D(z),p(z)
0 u 2,u 5,u 1,u ∞ ∞
1 ux 2,u 4,x 2,x ∞
2 uxy 2,u 3,y 4,y
3 uxyv 3,y 4,y
4 uxyvw 4,y
5 uxyvwz
Initialization (step 0): For all a: if a adjacent to then D(a) = cu,a
5
3 find a not in N' such that D(a) is a minimum
v w 5 add a to N'
2
u 2 1 z update D(b) for all b adjacent to a and not in N' :
3 D(b) = min ( D(b), D(a) + ca,b )
1 2
x 1
y
93
Thuật toán Dijkstra: ví dụ
5
3
v w 5
2
u 2 1 z
3
1 2
x 1
y
Kết quả cây đường dẫn chi Bảng chuyển tiếp kết quả trong u:
phí thấp nhất từ u: điểm đến liên kết đi
v (u,v) tuyến đường từ
v w
x (u,x) u đến v trực tiếp
u z y (u,x) định tuyến từ u
w (u,x) đến tất cả các
x y x (u,x) đích khác qua x
94
Thuật toán Dijkstra: một ví dụ khác
v w x y z
D(v), D(w), D(x), D(y), D(z), x
9
Step N' p(v) p(w) p(x) p(y) p(z)
5 uwxvyz v
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 ý)
95
Thuật toán Dijkstra: thảo luận
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 2+e
a 0
a 2+e a
1 1+e 0 2+e 0
d b d 1+e 1 b d 0 0 b d 1+e 1 b
0 0
e 1 0 1 1 0
1 0
c 0 1 c 1+e 1 1 0 1
c 1 c
e e e
e
với những chi phí với những chi phí này, với những chi phí này,
ban đầu này, tìm định tuyến mới…. tìm định tuyến mới….
tìm định tuyến mới…. dẫn đến chi phí mới dẫn đến chi phí mới
dẫn đến chi phí mới
97
Thuật toán vectơ khoảng cách
v 's ước tính chi phí đường đi chi phí thấp nhất đến y
min bao gồm tất cả chi phí trực tiếp của liên kết từ x đến v
các lân cận v của x
98
Ví dụ Bellman-Ford
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 :
Ý 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 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:
Dx (y) ← min v {cx,v + Dv (y)} cho mỗi nút y ∊ 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)
100
Thuật toán vectơ khoảng cách:
Mỗi nút: 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ộ
Chờ đợi (thay đổi chi phí liên kết cục
bộ hoặc tin nhắn từ hàng xóm) o Tin nhắn cập nhật DV từ hàng xóm
tính toán lại các ước tính DV sử Phân phối, tự dừng: mỗi nút chỉ thông
dụng DV nhận được từ hàng xóm 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
nếu DV từ bất kỳ điểm đến nào đã hàng xóm của nó – chỉ khi cần thiết
thay đổi, hãy thông báo cho hàng o Không nhận được thông báo, không
xóm có hành động nào được thực hiện!
101
Vectơ khoảng cách: ví dụ
DV in a:
Da(a)=0
Da(b) = 8
Da(c) = ∞ a b c
8 1
Da(d) = 1
t=0 Da(e) = ∞
Da(f) = ∞ 1 1
Da(g) = ∞
o Tất cả các nút
Da(h) = ∞
có ước tính
Da(i) = ∞ Một vài bất đối xứng
khoảng cách d e f o Liên kết bị thiếu
đến hàng xóm 1 1
gần nhất o Chi phí lớn hơn
102
Ví dụ về vectơ khoảng cách: phép lặp
a b c
t=1 8 1
103
Ví dụ về vectơ khoảng cách: phép lặp
a
compute compute
b compute
c
8 1
t=1
Tất cả các nút: 1 1
o Nhận vectơ khoảng
cách từ hàng xóm
o Tính toán vectơ d
compute e
compute compute
f
1 1
khoảng cách cục bộ
mới của nó
1 1 1
o Gửi vectơ khoảng
cách cục bộ mới của
nó cho hàng xóm g
compute h
compute i
compute
1 1
104
Ví dụ về vectơ khoảng cách: phép lặp
t=1 a
8
b
1
c
105
Ví dụ về vectơ khoảng cách: phép lặp
t=2 a
8
b
1
c
106
Ví dụ về vectơ khoảng cách: phép lặp
compute
a compute
b compute
c
2 1
t=2
1 1
Tất cả các nút:
o Nhận vectơ khoảng
cách từ hàng xóm d
compute compute
e compute
f
o Tính toán vectơ 1 1
107
Ví dụ về vectơ khoảng cách: phép lặp
a b c
8 1
t=2
1 1
Tất cả các nút:
o Nhận vectơ khoảng
cách từ hàng xóm đ e f
1 1
o Tính toán vectơ
khoảng cách cục bộ
mới của nó 1 1 1
o Gửi vectơ khoảng
cách cục bộ mới của
g h u
nó cho hàng xóm 1 1
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 b: DV in c:
Dc(a) = ∞
Db(a) = 8 Db(f) = ∞
Db(c) = 1 Db(g) = ∞ Dc(b) = 1
DV in a: Db(d) = ∞ Db(h) = ∞ Dc(c) = 0
Da(a)=0 Db(e) = 1 Db(i) = ∞ Dc(d) = ∞
Da(b) = 8 Dc(e) = ∞
Da(c) = ∞ a b c Dc(f) = ∞
8 1
Da(d) = 1 Dc(g) = ∞
Dc(h) = ∞
t=1 Da(e) = ∞
Da(f) = ∞ 1 1 Dc(i) = ∞
b nhận DVs từ a, Da(g) = ∞ DV in e:
c, e Da(h) = ∞ De(a) = ∞
Da(i) = ∞ De(b) = 1
d e f De(c) = ∞
1 1
De(d) = 1
De(e) = 0
De(f) = 1
1 1 1
De(g) = ∞
De(h) = 1
De(i) = ∞
110
g h i
1 1
Ví dụ về vectơ khoảng cách: tính toán DV in b: DV in c:
Dc(a) = ∞
Db(a) = 8 Db(f) = ∞
Db(c) = 1 Db(g) = ∞ Dc(b) = 1
DV in a: Db(d) = ∞ Db(h) = ∞ Dc(c) = 0
Da(a)=0 Db(e) = 1 Db(i) = ∞ Dc(d) = ∞
Da(b) = 8 Dc(e) = ∞
Da(c) = ∞ a b c Dc(f) = ∞
8 compute 1
Da(d) = 1 Dc(g) = ∞
Dc(h) = ∞
t=1 Da(e) = ∞
Da(f) = ∞ 1 1 Dc(i) = ∞
b nhận DVs từ a, Da(g) = ∞ DV in e:
c, e, tính toán: Da(h) = ∞ De(a) = ∞
e
Da(i) = ∞ De(b) = 1
d e f De(c) = ∞
1
Db(a) = min{cb,a+Da(a), cb,c +Dc(a), cb,e+De(a)} = min{8,∞,∞} =8 1
De(d) = 1
Db(c) = min{cb,a+Da(c), cb,c +Dc(c), c b,e +De(c)} = min{∞,1,∞} = 1
De(e) = 0
Db(d) = min{cb,a+Da(d), cb,c +Dc(d), c b,e +De(d)} = min{9,2,∞} = 2
1 1 De(f) = 1
Db(e) = min{cb,a+Da(e), cb,c +Dc(e), c b,e +De(e)} = min{∞,∞,1} = 1 1
De(g) = ∞
Db(f) = min{cb,a+Da(f), cb,c +Dc(f), c b,e +De(f)} = min{∞,∞,2} = 2 DV in b: De(h) = 1
Db(g) = min{cb,a+Da(g), cb,c +Dc(g), c b,e+De(g)} = min{∞, ∞, ∞} = ∞ Db(a) = 8 Db(f) =2 De(i) = ∞
g h 1Db(c) = 1 i =∞
Db(g)
Db(h) = min{cb,a+Da(h), cb,c +Dc(h), c b,e+De(h)} = min{∞,1 ∞, 2} = 2
Db(d) = 2 Db(h) = 2
Db(i) = min{cb,a+Da(i), cb,c +Dc(i), c b,e+De(i)} = min{∞, ∞, ∞} = ∞
Db(e) = 1 Db(i) = ∞
111
Ví dụ về vectơ khoảng cách: tính toán DV in b: DV in c:
Dc(a) = ∞
Db(a) = 8 Db(f) = ∞
Db(c) = 1 Db(g) = ∞ Dc(b) = 1
DV in a: Db(d) = ∞ Db(h) = ∞ Dc(c) = 0
Da(a)=0 Db(e) = 1 Db(i) = ∞ Dc(d) = ∞
Da(b) = 8 Dc(e) = ∞
Da(c) = ∞ a b c Dc(f) = ∞
8 1
Da(d) = 1 Dc(g) = ∞
Dc(h) = ∞
t=1 Da(e) = ∞
Da(f) = ∞ 1 1 Dc(i) = ∞
c nhận DVs từ b Da(g) = ∞ DV in e:
Da(h) = ∞ De(a) = ∞
Da(i) = ∞ De(b) = 1
d e f De(c) = ∞
1 1
De(d) = 1
De(e) = 0
De(f) = 1
1 1 1
De(g) = ∞
De(h) = 1
De(i) = ∞
g h i
1 1
112
Ví dụ về vectơ khoảng cách: tính toán DV in b: DV in c:
Dc(a) = ∞
Db(a) = 8 Db(f) = ∞
Dc(b) = 1
Db(c) = 1 Db(g) = ∞
Db(d) = ∞ Db(h) = ∞ Dc(c) = 0
Db(e) = 1 Db(i) = ∞ Dc(d) = ∞
Dc(e) = ∞
a b compute
c Dc(f) = ∞
8 1 Dc(g) = ∞
Dc(h) = ∞
t=1 1 1
Dc(i) = ∞
c nhận DVs từ b,
tính toán:
Dc(a) = min{cc,bd+Db(a}} = 1 + 8 = 9 e f
DV in c:
Dc(b) = min{cc,b+Db(b)} = 1 + 0 = 1
Dc(a) = 9
Dc(d) = min{cc,b+Db(d)} = 1+ ∞ = ∞ Dc(b) = 1
Dc(e) = min{cc,b+Db(e)} = 1 + 1 = 2 Dc(c) = 0
Dc(f) = min{cc,b+Db(f)} = 1+ ∞ = ∞ Dc(d) = 2
Dc(g) = min{cc,b+Db(g)} = 1+ ∞ = ∞ Dc(e) = ∞ * Check out the online interactive
Dc(f) = ∞ exercises for more examples:
g +Db(h)} = 1+ ∞ = ∞ h
Dc(h) = min{cbc,b i http://gaia.cs.umass.edu/kurose_ross/interactive/
Dc(g) = ∞
Dc(i) = min{cc,b+Db(i)} = 1+ ∞ = ∞
Dc(h) = ∞
113 Dc(i) = ∞
Ví dụ về vectơ khoảng cách: tính toán DV in b:
Db(a) = 8 Db(f) = ∞
Db(c) = 1 Db(g) = ∞
Db(d) = ∞ Db(h) = ∞ DV in e:
DV in d:
Db(e) = 1 Db(i) = ∞ De(a) = ∞
Dc(a) = 1
De(b) = 1
Dc(b) = ∞ a b c De(c) = ∞
Dc(c) = ∞ 8 1
De(d) = 1
Dc(d) = 0
t=1 Dc(e) = 1 Q: DV mới được tính ra trong e De(e) = 0
De(f) = 1
Dc(f) = ∞
1 tại thời1điểm t=1?
e nhận DVs từ b, De(g) = ∞
d, f, h Dc(g) = 1
De(h) = 1
Dc(h) = ∞
De(i) = ∞
Dc(i) = ∞ d compute
e f DV in f:
1 1
DV in h: Dc(a) = ∞
Dc(a) = ∞ Dc(b) = ∞
Dc(b) = ∞ Dc(c) = ∞
Dc(c) = ∞ 1 1 1
Dc(d) = ∞
Dc(d) = ∞ Dc(e) = 1
Dc(e) = 1 Dc(f) = 0
Dc(f) = ∞ g h i Dc(g) = ∞
1 1
Dc(g) = 1 Dc(h) = ∞
Dc(h) = 0 Dc(i) = 1
114
Vectơ khoảng cách: khuếch tán thông tin trạng thái
Giao tiếp lặp, các bước tính toán khuếch tán thông tin qua mạng:
trạng thái của c tại t=0 có thể ảnh hưởng đến việc
t=4 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 g h u
1 1
t=4
115
Vectơ khoảng cách: thay đổi chi phí liên kết
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
“ tin tốt
đi nhanh” 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.
116
Vectơ khoảng cách: thay đổi chi phí liên kết
60
Thay đổi chi phí liên kết: y
4 1
o Nút phát hiện thay đổi chi phí liên kết cục bộ
x z
o “Tin xấu lan truyền chậm” – bài toán đếm đến vô cùng: 5
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 Điều gì xảy ra nếu router gặp trục trặc hoặc bị
LS: n router, gửi tin nhắn O(n2) xâm phạm?
DV: trao đổi hàng xóm với nhau; thời LS:
gian hội tụ thay đổi o Router có thể quảng cáo chi phí liên kết
không chính xác
Tốc độ hội tụ o Mỗi router chỉ tính toán bảng riêng của nó
LS: Thuật toán O(n2), tin nhắn O(n2) DV:
o Có thể có dao động o Router DV có thể quảng cáo chi phí đường
DV: thời gian hội tụ thay đổi dẫn không chính xác (“Tôi có một đường
o Có thể có các vòng lặp định tuyến dẫn chi phí thực sự thấp đến mọi nơi”):
o Bài toán đếm đến vô cực 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 DHCP
o NAT
o Mức điều khiển
o ICMP
4.2 Virtual circuit network và datagram
o IPV6
network
o Các mạch ảo 4.5 Các thuật toán routing
o Link state
o Mạng datagram
o Distance vector
4.3 Cấu trúc bên trong router
o Cổng đầu vào, chuyển đổi, cổng đầu 4.6 Routing trong Internet
o Hierarchical routing
ra
o Quản lý bộ đệm, lập kế hoạch o RIP, OSPF, BGP
o SDN
4.4 IP: Internet Protocol
o Định dạng datagram o Quản lý mạng
o IPv4 addressing 4.7 Broadcast và Multicast routing
119
Giúp cho việc định tuyến có thể mở rộng
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”): inter-AS (còn gọi là “liên miền”):
định tuyến giữa các router cùng AS Định tuyến giữa các AS
(“mạng”) o Cổng thực hiện định tuyến liên
o Tất cả các router trong AS phải miền (cũng như định tuyến nội
chạy cùng một giao thức nội miền)
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
121
Các AS được kết nối với nhau
forwarding
o Định tuyến trong AS xác định
table mục nhập cho các đích trong
AS
o Inter-AS & intra-AS xác định
intra-AS
mục nhập cho các điểm đến
3c bên ngoài
routing3a inter-AS intra-AS
2c
3b 2arouting
routing
1c
2b
AS3 intra-AS
1a routing 1b AS2
1d
AS1
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 Định tuyến liên miền AS 1 phải:
được gói dữ liệu được định 1. Tìm hiểu điểm đến nào có thể truy
sẵn bên ngoài AS 1 : cập thông qua AS2, điểm đến nào
Router nên chuyển tiếp gói thông qua AS3
đến router cổng trong AS1, 2. Truyền bá thông tin khả năng tiếp
nhưng cái nào? cận này đến tất cả các router trong
AS 1
3c
3a other
2c
3b 2a networks
2b
1c
AS3
other 1a 1b AS2
networks
1d
AS1
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
Từ router A đến các subnet đích:
u v subnet hops
w u 1
A B
v 2
w 2
x x 3
z C D y 3
y z 2
125
Định tuyến RIP: ví dụ
z
w x y
A D B
C
Bảng định tuyến trong router D
Subnet đích router kế tiếp số lượng hop đến đích
w A 2
y B 2
z B 7
x -- 1
…. …. ....
126
Định tuyến RIP: ví dụ
Quảng cáo từ A-tới-D
đích kế hops
w - 1
x - 1
z C 4
…. … ... z
w x y
A D B
C
Bảng định tuyến trong router D
Subnet đích router kế tiếp số lượng hop tới đích
w A 2
y B 2
A 5
z B 7
x -- 1
…. …. ....
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
129
OSPF phân cấp
131
Kết nối eBGP, iBGP
2b
2a 2c
∂
1b 3b
2d
1a 1c 3a
∂ 3c
AS 2
1d 3d
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 điều khiển
Mức dữ liệu
135
Mức điều khiển được xác định bằng phần mềm (SDN –
Software-Defined-Networking)
Bộ điều khiển từ xa tính toán, cài đặt bảng chuyển tiếp trong router
Điều khiển từ xa
Mức dữ liệu
CA
CA CA CA CA
giá trị địa chỉ đích trong
header của gói tin
0111 1
2
3
136
Mạng được xác định bằng phần mềm (SDN)
137
Tương tự SDN: cuộc cách mạng từ máy tính lớn đến PC
ỨnỨnỨnỨnỨnỨnỨnỨnỨnỨn
Ứngg g g g g g g g g g
Chuyên dụng
dụ dụ dụ dụ dụ dụ dụ dụ dụ dụ
ng ng ng ng ng ng ng ng ng ng
Các ứng dụng Giao tiếp mở
Chuyên
Điều hành hoặc hoặc
Hệ thống
Windows Linux MAC OS
Chuyên Giao tiếp mở
Phần cứng
bộ vi xử lý
Tích hợp theo chiều dọc Tích hợp theo chiều ngang
Đóng cửa, độc quyền Giao tiếp mở
Chậm đổi mới Đổi mới nhanh chóng
Công nghiệp nhỏ Ngành công nghiệp khổng lồ
138
Kỹ thuật lưu lượng: khó khăn với định tuyến truyền thống
5
3
2 v w 5
u 2
3
1 z
1
2
x 1 y
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
Kỹ thuật lưu lượng: khó khăn với định tuyến truyền thống
5
3
2 v w 5
u 2
3
1 z
1
2
x 1 y
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
5
3
2 v w 5
u 2
3
1 z
1
2
x 1 y
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)
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
SDN-controlled switches
144
Mạng được xác định bằng phần mềm (SDN)
network-control
Ứng dụng điều khiển mạng: applications
routing
…
o “bộ não” điều khiển: thực hiện
access load
các chức năng điều khiển bằng control balance
các dịch vụ cấp thấp hơn, API control
do bộ điều khiển SDN cung cấp northbound API plane
data
plane
SDN-controlled switches
145
Các thành phần của bộ điều khiển SDN
Tin nhắn từ bộ điều khiển đến bộ chuyển đổi Bộ điều khiển OpenFlow
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ể
148
OpenFlow: thông điệp từ bộ chuyển đổi sang bộ điều khiển
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
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
1
Dijkstra’s link-state
routing
OpenFlow để thông báo cho bộ
điều khiển
4
network
graph
RESTful
API
… intent 2 Bộ điều khiển SDN nhận thông
báo OpenFlow, cập nhật thông
statistics
3 … flow tables tin trạng thái liên kết
Link-state info host info … switch info 3 Ứng dụng thuật toán định tuyến
2 của Dijkstra trước đây đã đăng
OpenFlow … SNMP ký để gọi khi trạng thái liên kết
thay đổi.
1 4 Thuật toán định tuyến của
s2 Dijkstra truy cập thông tin biểu
s1 đồ mạng, thông tin trạng thái liên
s4 kết trong bộ điều khiển, tính toán
s3 các tuyến mới
150
SDN: ví dụ tương tác mức điều khiển/mức dữ
liệu
Dijkstra’s link-state
routing
5
5 Ứng dụng định tuyến link
4 state tương tác với thành
network RESTful … intent
graph API phần tính toán của bảng lưu
statistics
3 … flow tables
lượng trong bộ điều khiển
SDN, tính toán các bảng lưu
Link-state info host info … switch info lượng mới cần thiết
2
OpenFlow … SNMP
6 Bộ điều khiển sử dụng
6
OpenFlow để cài đặt các
1 bảng mới trong các bộ
s2 chuyển đổi cần cập nhật
s1
s4
s3
151
Bộ điều khiển OpenDaylight (ODL)
Traffic
Engineering Firewalling Load
Balancing
… Network Orchestrations and Applications
Northbound API
REST/RESTCONF/NETCONF
APIs o Lớp trừu tượng hóa
Enhanced Basic Network Functions dịch vụ:
Services
Topolog Switch Stats Kết nối các ứng
AAA … y mgr. mgr.
processin dụng và dịch vụ bên
…
gForwardin
g rules
Host
Tracker
trong, bên ngoài
mgr.
config. and
operational data messaging Service
store Abstraction Layer
(SAL)
Southbound API
OpenFlow NETCONF SNMP OVSDB …
152
Bộ điều khiển ONOS
o Ứng dụng điều khiển
Traffic
Engineering Firewalling Load
Balancing
… Network Applications tách biệt với bộ điều
Northbound API khiển
northbound
REST API Intent abstractions, o Khung ý tưởng: đặc
protocols
điểm kỹ thuật cấp cao
hosts paths flow rules topology của dịch vụ: cái gì là
ONOS
hơn và như thế nào
devices links statistics distributed o Nhấn mạnh đáng kể
core
vào lõi phân tán: độ
packet southbound
device link host flow
abstractions, tin cậy của dịch vụ,
OpenFlow Netconf OVSDB protocols nhân rộng hiệu suất
Southbound API
sao chép
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)
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
request
160
Giao thức SNMP: định dạng thông điệp
PDU Trap
Thông điệp type 4 type Enterprise Agent Type
Specific Time
Name Value ….
Addr code stamp
4 (0-7)
SNMP PDU
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ý 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
…
<rpc>
<rpc-reply>
…
…
<rpc>
<rpc-reply>
…
… …
<notification>
…
<rpc>
<rpc-reply>
…
…
Session close: <close-session>
164
YANG
165
Chương 4: Nội dung
4.1 Tổng quan
o DHCP
o Mức dữ liệu
o NAT
o Mức điều khiển o ICMP
4.2 Virtual circuit network và datagram o IPV6
network
4.5 Các thuật toán routing
o Các mạch ảo
o Link state
o Mạng datagram
o Distance vector
4.3 Cấu trúc bên trong router
4.6 Routing trong Internet
o Cổng đầu vào, chuyển đổi, cổng đầu ra o Hierarchical routing
o Quản lý bộ đệm, lập kế hoạch o RIP, OSPF, BGP
4.4 IP: Internet Protocol o SDN
o Định dạng datagram o Quản lý mạng
o IPv4 addressing 4.7 Broadcast và Multicast routing
166
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ả:
duplicate
duplicate R1 creation/transmission R1
duplicate
R2 R2
R3 R4 R3 R4
• 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
Ký hiệu
Group member
Router with a
Group member
Router without
Cây chia sẻ Cây dựa trên nguồn group member
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
172