Professional Documents
Culture Documents
IT005 - Chương 4
IT005 - Chương 4
IT005 - Chương 4
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
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
5
theo đường dẫn end-end
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 Tương tự: tham gia một chuyến đi
chuyển các gói dữ liệu từ cổng ▪ Chuyển tiếp: quá trình chuyển qua
đầu vào của router đến cổng đầu một nhánh đường xác định
ra phù hợp của router ▪ Định tuyến: quá trình lập kế hoạch
chuyến đi từ nguồn đến đích
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
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
datagram:
o Đảm bảo truyền
o Truyền datagram theo thứ tự
o Độ trễ dưới 40 mili giây
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
Internet i. Truyền
Đảm thành công
bảo dịch vụ Đúngdatagram tới
Đúngđích Đúng Đúng
ii. 1633
(RFC Thời) gian hoặc thứ tự truyền
Internet phân tán (RFC
iii. Băng 2475 ) sẵnkhả
thông có thi có khả
cho luồng đầu năng
cuối có khả năng
KHÔ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)
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)
16
Bảng forwarding của kết nối ảo
12 22 32
1 3
2
VC number
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 link
address-range 1 3
address-range 2 2
address-range 3 2
address-range 4 1
20
Mạng datagram hoặc mạch ảo: tại sao?
Internet (datagram) ATM (mạch ảo)
o Dữ liệu trao đổi giữa các máy tính o Được phát triển từ hệ thống điện
thoại
▪ Dịch vụ “mềm dẻo, không định thì chặt
o Đàm thoại của con người:
chẽ.
▪ Định thì chặt chẽ, yêu cầu về độ
o Nhiều kiểu link tin cậy
▪ Các đặc tính khác nhau ▪ Cần cho các dịch vụ bảo đảm
▪ Khó đồng nhất dịch vụ o Các hệ thống đầu cuối “ít thông
minh”
o Các hệ thống đầu cuối “thông minh” (các ▪ Điện thoại
máy tính)
▪ Bên trong mạng phức tạp
▪ 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”
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
Termination Protocol fabric
(receive)
queueing
24
Chức năng cổng đầu vào
Lookup,
Link
Layer Forwarding
Line Switch
Termination Protocol fabric
(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
Tiền tố phù hợp 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
Ngược lại 3
match! 00011
11001000 00010111 *** ******** 2
...
...
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)
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)
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 Độ ưu tiên o Ví dụ thế giới thực?
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
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 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
giao thức IP
Thuật toán lựa chọn •định dạng datagram
đường: được triển •địa chỉ
Tầng khai trong •quy ước xử lý gói tin
• giao thức định bảng
Network tuyến (OSPF, BGP) forwarding giao thức ICMP
• bộ điều khiển SDN •báo cáo lỗi
•router " báo hiệu"
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
“loại” dịch vụ: flgs
fragment sự phân mảnh/
16-bit identifier
▪ 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!yiaddrr:
Đây 223.1.2.4
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ảng255.255.255.255,
đích: bá: OK. Bạn 68 đã có
yiaddrr: 223.1.2.4
địa
ID 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ụ
phò
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
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
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
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
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ẻ (.com, (phản ánh quyết định tạo địa chỉ
.edu, …) IPv4 dài 32 bit)
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)
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
nhãn luồng: xác định các
priority: xác định mức
32 bits datagram trong cùng
độ ưu tiên giữa các ver pri flow label một " luồng. (khái niệm
datagram trong luồng
payload len next hdr hop limit về “ dòng chảy” không
source address được định nghĩa rõ
128-bit (128 bits)
ràng)
địa chỉ IPv6 destination address
(128 bits)
payload (data)
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 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
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 Mức dữ liệu và
o Định tuyến: xác định tuyến đường được thực Mức điều khiển
hiện bởi các gói từ nguồn đến đích
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
5 ví dụ: c w,z = 5, c u,z = ∞
2
u z
2
3
1 chi phí do nhà điều hành mạng xác
1
2 định: có thể luôn bằng 1 hoặc tỷ lệ
x y
nghịch với băng thông hoặc tỷ lệ
1
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”
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ụ
v 3 w
2 5
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 u đến v trực tiếp
x (u,x)
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
95
o Mối quan hệ có thể tồn tại (có thể bị phá vỡ tùy ý)
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 a 2+e a
1 1+e 0 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:
Chờ đợi (thay đổi chi phí liên kết o Thay đổi chi phí liên kết cục bộ
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,
xóm không 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
Da(d) = 1 8 1
Da(e) = ∞
t=0 Da(f) = ∞
Da(g) = ∞ 1 1
Da(h) = ∞
o Tất cả các nút
Da(i) = ∞
có ước tính
khoảng cách Một vài bất đối xứng
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 1
e
compute
1
compute
f
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:
Db(a) = 8 Db(f) = ∞ Dc(a) = ∞
Db(c) = 1 Db(g) = ∞ Dc(b) = 1
DV in a: Db(d) = ∞ Db(h) = ∞ Dc(c) = 0
Db(e) = 1 Db(i) = ∞ Dc(d) = ∞
Da(a)=0
Dc(e) = ∞
Da(b) = 8
Dc(f) = ∞
Da(c) = ∞ a b c
8 1 Dc(g) = ∞
Da(d) = 1
Dc(h) = ∞
Da(e) = ∞
Dc(i) = ∞
t=1 Da(f) = ∞
Da(g) = ∞ 1 1
▪ b nhận DVs từ Da(h) = ∞ DV in e:
a, c, e Da(i) = ∞ De(a) = ∞
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:
Db(a) = 8 Db(f) = ∞ Dc(a) = ∞
Db(c) = 1 Db(g) = ∞ Dc(b) = 1
DV in a: Db(d) = ∞ Db(h) = ∞ Dc(c) = 0
Db(e) = 1 Db(i) = ∞ Dc(d) = ∞
Da(a)=0
Dc(e) = ∞
Da(b) = 8
Dc(f) = ∞
Da(c) = ∞ a b c
8 compute 1 Dc(g) = ∞
Da(d) = 1
Dc(h) = ∞
Da(e) = ∞
Dc(i) = ∞
t=1 Da(f) = ∞
Da(g) = ∞ 1 1
▪ b nhận DVs từ Da(h) = ∞ DV in e:
a, c, e, tính toán: Da(i) = ∞ De(a) = ∞
e
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 De(f) = 1
1 1 1 De(g) = ∞
Db(e) = min{cb,a+Da(e), cb,c +Dc(e), c b,e +De(e)} = min{∞,∞,1} = 1
De(h) = 1
Db(f) = min{cb,a+Da(f), cb,c +Dc(f), c b,e +De(f)} = min{∞,∞,2} = 2 DV in b:
De(i) = ∞
Db(g) = min{cb,a+Da(g), cb,c +Dc(g), c b,e+De(g)} = min{∞, ∞, ∞} = ∞ Db(a) = 8 Db(f) =2
g 1 ∞, 2} = 2
Db(h) = min{cb,a+Da(h), cb,c +Dc(h), c b,e+De(h)} = min{∞, h D (c) = 1
1Db(d) = 2 i =∞
Db(g)
b 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:
Db(a) = 8 Db(f) = ∞ Dc(a) = ∞
Db(c) = 1 Db(g) = ∞ Dc(b) = 1
DV in a: Db(d) = ∞ Db(h) = ∞ Dc(c) = 0
Db(e) = 1 Db(i) = ∞ Dc(d) = ∞
Da(a)=0
Dc(e) = ∞
Da(b) = 8
Dc(f) = ∞
Da(c) = ∞ a b c
8 1 Dc(g) = ∞
Da(d) = 1
Dc(h) = ∞
Da(e) = ∞
Dc(i) = ∞
t=1 Da(f) = ∞
Da(g) = ∞ 1 1
▪ c nhận DVs từ b Da(h) = ∞ DV in e:
Da(i) = ∞ De(a) = ∞
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) = ∞
Dc(f) = ∞
a b compute
c Dc(g) = ∞
8 1
Dc(h) = ∞
Dc(i) = ∞
t=1 1 1
▪ c nhận DVs từ b,
tính toán:
d+Db(a}} = 1 + 8 = 9 e
DV in c: f
Dc(a) = min{cc,b
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(d) = 2
Dc(f) = min{cc,b+Db(f)} = 1+ ∞ = ∞
Dc(e) = ∞
Dc(g) = min{cc,b+Db(g)} = 1+ ∞ = * Check out the online interactive
Dc(f) = ∞ exercises for more examples:
∞ (h) = min{c g +D (h)} = 1+ ∞ = ∞
D Dc(g) = ∞ i
c bc,b b h http://gaia.cs.umass.edu/kurose_ross/interactive/
Dc(i) = min{cc,b+Db(i)} = 1+ ∞ = ∞ Dc(h) = ∞
Dc(i) = ∞
113
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 De(c) = ∞
b c
Dc(c) = ∞ 8 1 De(d) = 1
Dc(d) = 0 De(e) = 0
t=1 Dc(e) = 1
Dc(f) = ∞
Q: DV mới được tính ra trong e De(f) = 1
1 tại thời1điểm t=1? De(g) = ∞
▪ e nhận DVs từ Dc(g) = 1 De(h) = 1
b, d, f, h Dc(h) = ∞ De(i) = ∞
Dc(i) = ∞
d compute
e f DV in f:
DV in h: 1 1
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) = ∞ Dc(g) = ∞
Dc(g) = 1 g h i Dc(h) = ∞
1 1
Dc(h) = 0 Dc(i) = 1
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
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
4.7 Broadcast và Multicast routing
o IPv4 addressing
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ế
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
122
Định tuyến giữa các AS: vai trò trong chuyển tiếp nội miền
3c
3a other
2c networks
3b 2a
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
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
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 1
3 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 1
3 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 1
3 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 applications
Ứng dụng điều khiển mạng:
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
o Hoạt động giữa bộ điều khiển, bộ chuyển đổi Bộ điều khiển OpenFlow
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
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 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
1 S1, thông báo trạng thái cổng
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
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
mgr.
Stats
mgr.
▪ Kết nối các ứng
y
AAA
processin dụng và dịch vụ bên
gForwardin Host
… g rules Tracker trong, bên ngoài
mgr.
config. and
operational data messaging Service
store Abstraction Layer
(SAL)
OpenFlow NETCONF SNMP OVSDB … Southbound API
152
Bộ điều khiển ONOS
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
Quản lý máy chủ:
ứng dụng, điển hình Thiết bị được quản lý:
với người quản lý thiết bị có các thành
mạng trong vòng lặp agent data phần phần mềm, phần
managing cứng có thể quản lý,
server/controller
data managed device có thể định cấu hình
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
o Ngôn ngữ mô hình hóa dữ liệu dùng
để chỉ định cấu trúc, cú pháp, ngữ quản lý dữ
máy chủ/bộ
nghĩa của dữ liệu quản lý mạng điều khiển
liệu
NETCONF
▪ Các kiểu dữ liệu tích hợp, như SMI Thông báo
NETCONF
<sửa-cấu RPC
hình>
o Tài liệu XML mô tả thiết bị, các khả XML do YANG tạo
</sửa-cấu hình> YANG
năng có thể được tạo từ mô tả YANG được tạo ra
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ệ đại lý dữ liệu
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