Chương 4. Giao thức tầng mạng
1-6/2006
Chương 4.
Giao thức tầng mạng (network layer)
Đặng Xuân Hà
Computer Networking 2006
Dept. of CS, HAU1.
Ch4. The Network Layer
4.1 - Giới thiệu và chức năng của tầng mạng.
4.2 - Network service model (VC and Datagram).
4.3 - Thiết bị tầng mạng - Bộ định tuyến (router).
4.4 - Giao thức IP (Internet Protocol).
4.5 - Giải thuật chọn đường (Routing Algorithms).
4.6 - Chọn đường trong mạng Internet.
1-6/2006
2
Chương 4. Giao thức tầng mạng
Chức năng của tầng mạng
Truyền các gói tin (packets) từ sending
application
host tới receiving host.
transport
segment Æ packets (datagrams).
network
data link
physical
Network layer được cài đặt tại router
và cả end system.
Chức năng:
1-6/2006
chọn đường (path selection): có nhiều
đường đi, gói tin sẽ đi theo đường nào?
chuyển mạch (switching, forwarding):
chuyển gói tin từ cổng vào tới cổng ra của
router một cách thích hợp.
thiết lập liên kết (call setup): một số kiến
trúc mạng cần thiết lập kênh truyền trước
khi truyền.
Chương 4. Giao thức tầng mạng
<dxha at hau1.edu.vn>
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
application
transport
network
data link
physical
3
1
Chương 4. Giao thức tầng mạng
1-6/2006
Routing & switching in routers
routing algorithm
local forwarding table
header value output link
0100
0101
0111
1001
3
2
2
1
value in arriving
packet’s header
1
0111
3 2
1-6/2006
Chương 4. Giao thức tầng mạng
4
Ch4. The Network Layer
4.1 - Giới thiệu và chức năng của tầng mạng.
4.2 - Network service model (VC and Datagram).
4.3 - Thiết bị tầng mạng - Bộ định tuyến (router).
4.4 - Giao thức IP (Internet Protocol).
4.5 - Giải thuật chọn đường (Routing Algorithms).
4.6 - Chọn đường trong mạng Internet.
1-6/2006
Chương 4. Giao thức tầng mạng
5
Network service model
Tầng mạng cung cấp dịch vụ cho tầng Transport:
tin
cậy vào tầng network?
gói tin có đến đích đúng thứ tự đã gửi?
thời gian truyền có được đảm bảo?
có phản hồi về tình trạng nghẽn mạng?
các
Hai model cơ bản của tầng mạng:
kênh
lược
1-6/2006
ảo (virtual circuit)
đồ (gam) dữ liệu (datagram)
Chương 4. Giao thức tầng mạng
<dxha at hau1.edu.vn>
6
2
Chương 4. Giao thức tầng mạng
1-6/2006
Virtual Circuit
Thiết lập liên kết trước khi truyền dữ liệu và huỷ bỏ liên
kết sau khi truyền xong.
VC
setup: trước khi truyền, tầng mạng phải thiết lập một kênh
truyền ảo (VC) từ sender tới receiver (đã biết địa chỉ).
Data transfer: dữ liệu được truyền qua VC.
VC teardown: một khi sender hoặc receiver muốn ngắt VC, nó
thông báo cho network layer biết, network layer sẽ huỷ bỏ VC.
Æ Còn được gọi là connection-oriented
Mỗi gói tin chứa thêm thông tin về kênh mà nó sẽ đi qua
(VC identifier number).
Các routers/packet switches trên kênh ảo (VC) luôn nắm
giữ trạng thái của kênh đi qua nó.
1-6/2006
7
Chương 4. Giao thức tầng mạng
Virtual Circuit: Signaling protocol
Giao thức truyền các thông điệp giữa end system và
network layer để yêu cầu thiết lập, huỷ bỏ VC; giữa các
thiết bị chuyển mạch (switches) để thiết lập VC.
Được sử dụng trong mạng ATM, Frame Relay, X.25.
application
transport 5. Data flow begins
network 4. Call connected
data link 1. Initiate call
physical
1-6/2006
application
transport
network
data link
physical
host A
6. Receive data application
3. Accept call transport
2. incoming call network
data link
physical
8
Chương 4. Giao thức tầng mạng
application
transport
network
data link
physical
server B
Sự khác biệt giữa liên kết tại tầng Transport và Network?
application
transport
network
data link
physical
1-6/2006
application
transport
network
data link
physical
Chương 4. Giao thức tầng mạng
<dxha at hau1.edu.vn>
9
3
Chương 4. Giao thức tầng mạng
1-6/2006
Datagram network
Không thiết lập kênh truyền.
Các thiết bị chuyển mạch không cần nắm giữ trạng thái các
kênh.
Gói tin được truyền dựa trên địa chỉ của receiving host.
Đường đi của các gói tin giữa hai host có thể khác nhau.
application
transport
network
data link 1. Send data
physical
application
transport
2. Receive data network
data link
physical
10
Chương 4. Giao thức tầng mạng
1-6/2006
Network taxonomy (review)
communication
networks
switched
networks
circuit-switched
networks
(vd. telephone)
FDM
1-6/2006
TDM
broadcast
networks
(vd. Radio,
Broadcast TV)
packet-switched
networks
virtual circuitswitched
networks
(vd. ATM)
datagram
networks
(vd. Internet)
Chương 4. Giao thức tầng mạng
11
Datagram or VC network: why?
Internet
ATM
Mạng máy tính:
dịch vụ nhạy cảm.
không giới hạn thời gian.
Các hệ thống cuối “thông minh”
(computer):
có khả năng thích nghi, kiểm
soát, khôi phục lỗi.
kiến trúc bên trong mạng đơn
giản nhưng kết nối các mạng
phức tạp.
Nhiều dạng liên kết mạng dẫn đến
một dịch vụ thuần nhất (kênh) là
không thích hợp.
1-6/2006
Mạng điện thoại (chuyển mạch kênh).
Tương tác người-người đòi hỏi:
thời gian truyền.
độ tin cậy.
dịch vụ phải được đảm bảo.
Các thiết bị cuối đơn giản, dường như
cố định:
điện thoại.
mức độ phức tạp nằm bên trong
mạng.
Chương 4. Giao thức tầng mạng
<dxha at hau1.edu.vn>
12
4
Chương 4. Giao thức tầng mạng
1-6/2006
Ch4. The Network Layer
4.1 - Giới thiệu và chức năng của tầng mạng.
4.2 - Network service model (VC and Datagram).
4.3 - Thiết bị tầng mạng - Bộ định tuyến (router).
4.4 - Giao thức IP (Internet Protocol).
4.5 - Giải thuật chọn đường (Routing Algorithms).
4.6 - Chọn đường trong mạng Internet.
Chương 4. Giao thức tầng mạng
1-6/2006
13
Bộ định tuyến – router
Thực thi các giải thuật chọn đường (routing algorithms).
Chuyển tiếp (forwarding) các gói tin từ cổng vào tới cổng
ra thích hợp.
Chương 4. Giao thức tầng mạng
1-6/2006
14
Input ports
Physical layer:
bit-level reception
Data link layer:
e.g., Ethernet
Decentralized switching:
1-6/2006
sử dụng forwarding table có trong input
port memory để tra cứu output port
queuing: nếu các gam dữ liệu
(datagram) đến nhanh quá, cần phải xếp
hàng chờ xử lý.
Chương 4. Giao thức tầng mạng
<dxha at hau1.edu.vn>
15
5
Chương 4. Giao thức tầng mạng
1-6/2006
Các cơ cấu chuyển mạch (switching fabrics)
1-6/2006
Chương 4. Giao thức tầng mạng
16
Output ports
Buffering: khi datagram được gửi ra nhanh hơn tốc độ xử
lý, cần đưa vào bộ đệm.
Scheduling discipline: cơ chế lựa chọn datagram từ bộ đệm
để tiếp tục gửi đi.
1-6/2006
Chương 4. Giao thức tầng mạng
17
Ch4. The Network Layer
4.1 - Giới thiệu và chức năng của tầng mạng.
4.2 - Network service model (VC and Datagram).
4.3 - Thiết bị tầng mạng - Bộ định tuyến (router).
4.4 - Giao thức IP (Internet Protocol).
4.5 - Giải thuật chọn đường (Routing Algorithms).
4.6 - Chọn đường trong mạng Internet.
1-6/2006
Chương 4. Giao thức tầng mạng
<dxha at hau1.edu.vn>
18
6
Chương 4. Giao thức tầng mạng
1-6/2006
The Internet (TCP/IP) network layer
Network layer được thực thi tại end system cũng như tại router!
Transport layer: TCP, UDP
Network
layer
IP protocol
•addressing conventions
•datagram format
•packet handling conventions
Routing protocols
•path selection
•RIP, OSPF, BGP
routing
table
ICMP protocol
•error reporting
•router “signaling”
Link layer
physical layer
19
Chương 4. Giao thức tầng mạng
1-6/2006
IP datagram format
IP protocol version
number
header length
(bytes)
“type” of data
max number
remaining hops
(decremented at
each router)
upper layer protocol
to deliver payload to
6 = TCP; 17 = UDP
32 bits
ver head. type of
len service
length
fragment
16-bit identifier flgs
offset
time to upper
Internet
layer
live
checksum
total datagram
length (bytes)
for
fragmentation/
reassembly
32 bit source IP address
32 bit destination IP address
Options (if any)
data
(variable length,
typically a TCP
or UDP segment)
Chương 4. Giao thức tầng mạng
1-6/2006
E.g. timestamp,
record route
taken, specify
list of routers
to visit.
20
IP Fragmentation & Reassembly
Fragmentation: gam dữ liệu
(datagram) lớn được chia
thành nhiều gam dữ liệu
nhỏ.
Do mỗi đường truyền giữa
các nút (link) có tốc độ giới
hạn, chỉ cho phép truyền đơn
vị dữ liệu có kích thước tối đa
là MTU (Max Transfer Unit)
fragmentation:
in: one large datagram
out: 3 smaller datagrams
reassembly
Reassembly: Các gam dữ
liệu nhỏ được hợp nhất
thành gam dữ liệu lớn
(ngược lại) tại điểm đến
cuối cùng
1-6/2006
Chương 4. Giao thức tầng mạng
<dxha at hau1.edu.vn>
21
7
Chương 4. Giao thức tầng mạng
1-6/2006
length ID fragflag offset
=4000 =x
=0
=0
Example
4000 byte datagram
MTU = 1500 bytes
gam dữ liệu lớn được chia thành
nhiều gam dữ liệu nhỏ hơn
length ID fragflag offset
=1500 =x
=1
=0
1480 bytes in
data field
length ID fragflag offset
=1500 =x
=1
=185
offset =
1480/8
length ID fragflag offset
=1040 =x
=0
=370
22
Chương 4. Giao thức tầng mạng
1-6/2006
IPv4 Addressing: introduction
IP address: Số 32-bit định danh giao diện mạng (interface).
Interface (NIC - Network Interface Card): giao diện kết nối mạng
từ nút mạng tới mạng.
host interface: mỗi máy tính thường có một NIC, cho phép nối vào một đường
liên kết.
router interface: router thường có nhiều giao diện mạng.
223.1.1.1
223.1.1.2
223.1.1.4
32-bit = 4 số 8-bit Æ dạng thập phân dễ nhớ:
223.1.1.3
223.1.1.1 = 11011111 00000001 00000001 00000001
223
1
1
223.1.2.1
223.1.2.9
223.1.2.2
223.1.3.27
223.1.3.2
223.1.3.1
1
23
Chương 4. Giao thức tầng mạng
1-6/2006
Mạng & mạng con (subnet)
Internet = network of networks.
Địa chỉ IP bao gồm 2 phần:
Các bit cao dành cho network.
Các bit thấp dành cho host.
223.1.1.1
223.1.1.2
223.1.1.4
223.1.1.3
223.1.3.27
223.1.2.2
LAN
Network:
Mạng
tạo bởi các interface có
phần network trong IP addr
giống nhau.
Các host cùng network có thể
trao đổi dữ liệu không cần
thông qua router.
1-6/2006
223.1.2.1
223.1.2.9
223.1.3.1
network = 3 IP networks
Chương 4. Giao thức tầng mạng
<dxha at hau1.edu.vn>
223.1.3.2
24
8
Chương 4. Giao thức tầng mạng
1-6/2006
IP addressing: Class-full
Chương 4. Giao thức tầng mạng
1-6/2006
25
Subnet
Đôi khi cần chia nhỏ một mạng thành các mạng
nhỏ hơn (subnet)
Ví dụ:
Chương 4. Giao thức tầng mạng
1-6/2006
26
Subnet mask
Một interface trong mạng cần có:
IP
address
nạ mạng con (subnet mask):
Mặt
Là một số 32 bit bao gồm các bit cao = 1 và các bit thấp = 0. Các bit 1
quy định subnet, các bit 0 quy định địa chỉ host.
từ subnet mask có thể xác định ranh giới giữa địa chỉ mạng và địa chỉ của
interface (host).
Ví dụ: Subnet gồm các host 192.168.10.x, một host có thể
có thông số như sau:
IP
= 192.168.10.1
= 255.255.255.0
(111111111.11111111.11111111.00000000)
SM
Kiểm tra xem hai IP có cùng một subnet không?
(IP1
1-6/2006
XOR IP2) AND SM = 0?
Chương 4. Giao thức tầng mạng
<dxha at hau1.edu.vn>
27
9
Chương 4. Giao thức tầng mạng
1-6/2006
Network addr, Broadcast và loopback
Để ám chỉ một mạng, thay địa chỉ host bằng các bit
0, ví dụ: 192.168.10.0
Broadcast:
Địa
chỉ host thay bằng các bit 1, vd: 192.168.10.255
gói tin có ip đích dạng broadcast sẽ được gửi cho
mọi host trong mạng.
Các
Loopback ip: 127.x.x.x
các
gói tin được coi như được gửi tới từ nút khác.
dùng 127.0.0.1
thường
28
Chương 4. Giao thức tầng mạng
1-6/2006
IP addressing: CIDR
Class-full addressing: sự phân lớp cứng nhắc,
không còn thích hợp nữa.
CIDR (Classless InterDomain Routing):
Vị
trí ngăn cách giữa net addr và host addr tuỳ ý.
format: a.b.c.d/x, với x là số lượng bit dành cho net
addr.
addr
network
part
host
part
11001000 00010111 00010000 00000000
200.23.16.0/23
Chương 4. Giao thức tầng mạng
1-6/2006
29
IP addresses: how to get one?
Làm thế nào để có địa chỉ IP cho host?
Người
quản trị hệ thống thiết lập (TCP/IP properties trong
Windows 2000/XP).
RARP (Reverse Address Resolution Protocol):
RARP server cung cấp IP cho client dựa trên bảng cấu hình sẵn có (từ địa
chỉ vật lý (MAC) Æ IP).
BOOTP
DHCP
1-6/2006
(BOOTstrap Protocol):
BOOTP server cung cấp IP cho client dựa trên bảng cấu hình sẵn có.
(Dynamic Host Configuration Protocol):
Giao thức cấp phát địa chỉ IP động.
DHCP server phụ trách việc cấp phát/thu hồi IP cho/từ các DHCP client.
Client có thể nhận IP khác nhau tuỳ thời điểm kết nối.
Chương 4. Giao thức tầng mạng
<dxha at hau1.edu.vn>
30
10
Chương 4. Giao thức tầng mạng
1-6/2006
Phân cấp địa chỉ Internet - ISP
ICANN: Internet
Corporation for
Assigned Names
and Numbers
ISP's block
11001000 00010111 00010000 00000000
200.23.16.0/20
Organization 0
Organization 1
Organization 2
...
Organization 7
11001000 00010111 00010000 00000000
11001000 00010111 00010010 00000000
11001000 00010111 00010100 00000000
…..
….
11001000 00010111 00011110 00000000
200.23.16.0/23
200.23.18.0/23
200.23.20.0/23
….
200.23.30.0/23
Organization 0
200.23.16.0/23
Organization 1
200.23.18.0/23
Organization 2
200.23.20.0/23
Organization 7
.
.
.
.
.
.
Fly-By-Night-ISP
“Send me anything
with addresses
beginning
200.23.16.0/20”
Internet
200.23.30.0/23
“Send me anything
with addresses
beginning
199.31.0.0/16”
ISPs-R-Us
31
Chương 4. Giao thức tầng mạng
1-6/2006
NAT: Network Address Translation
rest of
Internet
local network
(e.g., home network)
10.0.0/24
10.0.0.4
10.0.0.1
10.0.0.2
138.76.29.7
10.0.0.3
All datagrams leaving local
network have same single source
NAT IP address: 138.76.29.7,
different source port numbers
1-6/2006
Datagrams with source or
destination in this network
have 10.0.0/24 address for
source, destination (as usual)
Chương 4. Giao thức tầng mạng
32
NAT: Network Address Translation (cont)
Giả sử một LAN chỉ sử dụng một IP duy nhất khi
giao tiếp với mạng ngoài.
Lợi điểm:
Không
cần tìm dải IP từ ISP để cấp phát cho các thiết bị
mạng trong (máy trạm) vì chỉ dùng 1 IP.
Thay đổi IP của máy trạm nội bộ mà không ảnh hưởng
tới mạng ngoài.
Thay đổi ISP mà không cần thay đổi địa chỉ các thiết bị
mạng trong.
Các thiết bị mạng trong không “nhìn thấy” được từ
mạng ngoài.
1-6/2006
Chương 4. Giao thức tầng mạng
<dxha at hau1.edu.vn>
33
11
Chương 4. Giao thức tầng mạng
1-6/2006
NAT: Implementation
NAT router:
outgoing datagrams: replace (source IP address, port #) of every
outgoing datagram to (NAT IP address, new port #)
. . . remote clients/servers will respond using (NAT IP address, new
port #) as destination addr.
remember (in NAT translation table) every (source IP address, port
#) to (NAT IP address, new port #) translation pair
incoming datagrams: replace (NAT IP address, new port #) in dest
fields of every incoming datagram with corresponding (source IP
address, port #) stored in NAT table
34
Chương 4. Giao thức tầng mạng
1-6/2006
NAT example
2: NAT router
changes datagram
source addr from
10.0.0.1, 3345 to
138.76.29.7, 5001,
updates table
2
NAT translation table
WAN side addr
LAN side addr
1: host 10.0.0.1
sends datagram to
128.119.40, 80
138.76.29.7, 5001 10.0.0.1, 3345
……
……
S: 10.0.0.1, 3345
D: 128.119.40.186, 80
S: 138.76.29.7, 5001
D: 128.119.40.186, 80
138.76.29.7
S: 128.119.40.186, 80
D: 138.76.29.7, 5001
3
1
10.0.0.4
10.0.0.2
S: 128.119.40.186, 80
D: 10.0.0.1, 3345
4
10.0.0.3
4: NAT router
changes datagram
dest addr from
138.76.29.7, 5001 to 10.0.0.1, 3345
3: Reply arrives
dest. address:
138.76.29.7, 5001
35
Chương 4. Giao thức tầng mạng
1-6/2006
10.0.0.1
ICMP (Internet Control Message Protocol)
Giao tiếp ở mức mạng giữa các
hosts, routers
ICMP có thể coi là một thành
phần của IP
thông báo lỗi (vd: không tìm được
đường đi, không gửi tin được tới
host, port…).
echo request/reply.
về mặt kiến trúc, ICMP thuộc về
tầng ứng dụng.
sử dụng UDP.
ICMP msg
1-6/2006
được đóng gói trong IP
datagrams/packet.
type + code + 8 bytes of IP
datagram.
Type
0
3
3
3
3
3
3
4
Code
0
0
1
2
3
6
7
0
8
9
10
11
12
0
0
0
0
0
Chương 4. Giao thức tầng mạng
<dxha at hau1.edu.vn>
description
echo reply (ping)
dest. network unreachable
dest host unreachable
dest protocol unreachable
dest port unreachable
dest network unknown
dest host unknown
source quench (congestion
control - not used)
echo request (ping)
route advertisement
router discovery
TTL expired
bad IP header
36
12
Chương 4. Giao thức tầng mạng
1-6/2006
IPv6
IPv4: sử dụng 32-bit địa chỉ IP sẽ là không đủ???
IPv6:
sử
dụng 128-bit địa chỉ.
tiêu đề (header) cung cấp khả năng xử lý nhanh
hơn, chất lượng hơn (QoS).
40 bytes header.
không cho phép phân mảnh (fragmentation).
ICMP v6.
phần
1-6/2006
Chương 4. Giao thức tầng mạng
37
IPv6: datagram format
ver: phiên bản (6=v6, 4#v4!!).
priority: thứ tự các gói tin
trong cùng flow.
flow: nhãn của luồng mà gói
tin thuộc về
các
ứng dụng đòi hỏi chất lượng
cao Æ flow.
ứng dụng không đòi hỏi chất
lượng Æ không được coi là flow.
next header: giao thức tầng
trên.
1-6/2006
Chương 4. Giao thức tầng mạng
38
IPv6: chuyển đổi IPv4 Æ IPv6
Chuyển đổi tất cả các hosts, routers sang sử dụng
IPv6: không thể!!!
Chuyển đổi dần dần:
tồn
tại các nút mạng IPv4 và IPv6.
có khả năng xử lý gói tin IPv4.
Tunneling: gói tin IPv6 được coi như phần data
(payload) của IPv4 khi đi qua các nút mạng IPv4.
IPv6
1-6/2006
Chương 4. Giao thức tầng mạng
<dxha at hau1.edu.vn>
39
13
Chương 4. Giao thức tầng mạng
1-6/2006
Tunneling
Logical view:
Physical view:
A
B
IPv6
IPv6
A
B
IPv6
IPv6
Flow: X
Src: A
Dest: F
F
C
D
IPv6
IPv6
E
F
IPv4
IPv4
IPv6
Src:B
Dest: E
Src:B
Dest: E
Flow: X
Src: A
Dest: F
Flow: X
Src: A
Dest: F
data
data
data
A-to-B:
IPv6
E
tunnel
B-to-C:
IPv6 inside
IPv4
B-to-C:
IPv6 inside
IPv4
IPv6
Flow: X
Src: A
Dest: F
data
E-to-F:
IPv6
Chương 4. Giao thức tầng mạng
1-6/2006
40
Ch4. The Network Layer
4.1 - Giới thiệu và chức năng của tầng mạng.
4.2 - Network service model (VC and Datagram).
4.3 - Thiết bị tầng mạng - Bộ định tuyến (router).
4.4 - Giao thức IP (Internet Protocol).
4.5 - Giải thuật chọn đường (Routing Algorithms).
4.6 - Chọn đường trong mạng Internet.
Chương 4. Giao thức tầng mạng
1-6/2006
41
Forwarding & routing
routing algorithm
local forwarding table
header value output link
0100
0101
0111
1001
3
2
2
1
value in arriving
packet’s header
1
0111
3 2
1-6/2006
Chương 4. Giao thức tầng mạng
<dxha at hau1.edu.vn>
42
14
Chương 4. Giao thức tầng mạng
1-6/2006
Network: graph abstraction
5
v
2
u
2
1
3
x
w
3
5
z
1
y
2
1
Network = Graph = G(N,E).
N = tập hợp các routers = { u, v, w, x, y, z }.
E = tập các đường nối giữa các routers.
= { (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }
Trọng số = chi phí (cost): độ trễ, độ nghẽn mạng, cước
phí…
Đường đi tốt = đường đi có “chi phí” thấp nhất.
Chương 4. Giao thức tầng mạng
1-6/2006
43
Routing Algorithm classification
Thông tin tập trung hay phân tán?
Tĩnh hay động?
Tập trung:
Tĩnh:
mỗi router phải nắm giữ thông tin toàn
đường đi ít thay đổi
bộ mạng (topology, link cost…)
Động:
“link state” algorithms
đường đi thay đổi
Phân tán:
thường xuyên
router nắm được chi phí truyền tin tới các
các thông tin dẫn
router được nối trực tiếp với mình (hàng
đường được cập
xóm)
nhật định kỳ.
quá trình tính toán mang tính chất lặp đi
lặp lại, trao đổi thông tin giữa các
link cost thay đổi.
routers.
“distance vector” algorithms
Chương 4. Giao thức tầng mạng
1-6/2006
44
A Link-State Routing Algorithm
Giải thuật Dijkstra:
tất
cả các nút mạng có thông tin như nhau về các liên kết của toàn
bộ mạng.
cho phép tìm đường đi từ một nút tới tất cả các nút còn lại.
Ký hiệu:
c(i,j): chi phí phải trả để đi từ i tới j (trực tiếp)
D(v): giá trị hiện tại của chi phí phải trả để đi từ đỉnh xuất phát
tới đỉnh v.
p(v): đỉnh trước đỉnh v trên đường đi ngắn nhất
N: tập hợp đỉnh mà đường đi ngắn nhất đã được xác định.
1-6/2006
Chương 4. Giao thức tầng mạng
<dxha at hau1.edu.vn>
45
15
Chương 4. Giao thức tầng mạng
1-6/2006
Dijsktra’s Algorithm
1 Initialization:
2 N = {A}
3 for all nodes v
4
if v kề với A
5
then D(v) = c(A,v)
6
else D(v) = ∞
7
8 Loop
9 Tìm w không thuộc N sao cho D(w) nhỏ nhất
10 N = N + w
11 for all v kề với w và không thuộc N:
12
D(v) = min( D(v), D(w) + c(w,v) )
13 until tất cả nút thuộc N
Chương 4. Giao thức tầng mạng
1-6/2006
46
Dijkstra’s algorithm: example
Step
0
1
2
3
4
5
N
A
AD
ADE
ADEB
ADEBC
ADEBCF
D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F)
1,A
2,A
∞
5,A
∞
2,A
2,D
4,D
∞
2,A
3,E
4,E
3,E
4,E
4,E
5
2
A
3
B
2
1
C
3
D
1
5
F
1
E
2
Chương 4. Giao thức tầng mạng
1-6/2006
47
Distance Vector Routing Algorithm
Distance Table data structure
mỗi nút mạng có một bảng khoảng cách.
hàng: các nút có thể đến được.
cột: các nút có thể đến trực tiếp (hàng xóm)
Ví dụ: tại nút X, với đích Y đến qua nút Z:
X
D (Y,Z)
chi phí cho đường đi (XÆZÆ…ÆY)
= Z là nút kế tiếp cần đi tới
Z
= c(X,Z) + minw{D (Y,w)}
1-6/2006
Chương 4. Giao thức tầng mạng
<dxha at hau1.edu.vn>
48
16
Chương 4. Giao thức tầng mạng
1-6/2006
Distance Table: example
C
E
E
D
= 2+2 = 4
D
D (A,D)
B
D
A
1
14
5
B
7
8
5
C
6
9
4
D
4
11
2
D
2
D (C,D) = c(E,D) + minw {D (C,w)}
E
A
2
8
1
= c(E,D) + minw {D (A,w)}
= 2+3 = 5 loop!
E
cost to destination via
E
D ()
destination
A
1
B
7
B
D (A,B) = c(E,B) + minw{D (A,w)}
= 8+6 = 14
loop!
49
Chương 4. Giao thức tầng mạng
1-6/2006
Distance table Æ routing table
E
cost to destination via
Outgoing link
to use, cost
B
D
A
1
14
5
A
A,1
B
7
8
5
B
D,5
C
6
9
4
C
D,4
D
4
11
2
D
D,4
Distance table
destination
A
destination
D ()
Routing table
Chương 4. Giao thức tầng mạng
1-6/2006
50
DV Algorithm: Initialization
At all nodes, X:
1 Initialization:
2 for all adjacent nodes v:
3
D X(*,v) = infinity
/* the * operator means "for all rows" */
X
4
D (v,v) = c(X,v)
5 for all destinations, y
X
6
send min D (y,w) to each neighbor /* w over all X's neighbors */
w
1-6/2006
Chương 4. Giao thức tầng mạng
<dxha at hau1.edu.vn>
51
17
Chương 4. Giao thức tầng mạng
1-6/2006
DV Algorithm: Loop
8 loop
9 wait (until I see a link cost change to neighbor V
10
or until I receive update from neighbor V)
11
12 if (c(X,V) changes by d)
13 /* change cost to all dest's via neighbor v by d */
14 /* note: d could be positive or negative */
15 for all destinations y: D X(y,V) = DX(y,V) + d
16
17 else if (update received from V wrt destination Y)
18 /* shortest path from V to some Y has changed */
19 /* V has sent a new value for its min w DV(Y,w) */
20 /* call this received new value is "newval" */
21 for the single destination y: D X(Y,V) = c(X,V) + newval
22
23 if we have a new minw DX(Y,w)for any destination Y
24
send new value of min D X(Y,w) to all neighbors
w
26 forever
52
Chương 4. Giao thức tầng mạng
1-6/2006
DV Algorithm: example
X
2
Y
1
Z
7
Y
X
D (Z,Y) = c(X,Y) + minw {D (Z,w)}
= 2+1 = 3
Z
X
D (Y,Z) = c(X,Z) + minw{D (Y,w)}
= 7+1 = 8
Chương 4. Giao thức tầng mạng
1-6/2006
53
DV Algorithm: example
X
1-6/2006
2
Y
7
1
Z
Chương 4. Giao thức tầng mạng
<dxha at hau1.edu.vn>
54
18
Chương 4. Giao thức tầng mạng
1-6/2006
Một vài so sánh (LS và DV)
Link-State
Distance Vector
Cần nắm được thông tin toàn
bộ mạng
n nút, E links, nE msgs được
gửi mỗi lần
O(n2), nE msgs
Mỗi nút chỉ tính toán bảng dẫn
đường cho riêng mình.
Chỉ nắm giữ thông tin liên
quan tới các nút “hàng xóm”
msgs chỉ được gửi cho các nút
“hàng xóm”.
tốc độ hội tụ có thể khác nhau
tuỳ từng tình huống, đôi khi rơi
vào trạng thái lặp vô hạn.
Thông tin dẫn đường của nút
này được sử dụng bởi nút khác.
Một nút gặp sự cố có thể gây ảnh
hưởng tới các nút khác.
Chương 4. Giao thức tầng mạng
1-6/2006
55
Hierarchical Routing
Dẫn đường theo từng mức mạng, do:
Quy mô mạng Internet là rất lớn:
một
việc
Nhu
nút không thể chứa tất cả các bản ghi cho mọi đích!
cập nhật bảng dẫn đường tốn kém!
cầu mạng tự trị
Internet
= network of networks
quản trị mạng muốn điều khiển việc dẫn đường
(routing) trong mạng họ quản lý.
người
Chương 4. Giao thức tầng mạng
1-6/2006
56
Hierarchical Routing (cont)
Phân vùng routers, tạo thành các “autonomous systems”
(AS)
routers trong cùng AS sử dụng chung giao thức tìm đường,
gọi là “intra-AS” routing protocol.
routers
tại các AS khác nhau có thể sử dụng intra-AS routing
protocol khác nhau.
Gateway router:
router
sử
đặc biệt trong AS
dụng intra-AS routing protocol với các routers khác trong AS
sử
dụng inter-AS routing protocol với các gateway
routers khác.
1-6/2006
Chương 4. Giao thức tầng mạng
<dxha at hau1.edu.vn>
57
19
Chương 4. Giao thức tầng mạng
1-6/2006
Hierarchical Routing (cont)
C.b
a
C
Gateways:
B.a
A.a
b
A.c
d
A
a
a
c
B
•perform inter-AS
routing amongst
themselves
•perform intra-AS
routers with other
routers in their
AS
b
c
b
network layer
inter-AS, intra-AS
routing in
gateway A.c
link layer
physical layer
58
Chương 4. Giao thức tầng mạng
1-6/2006
Hierarchical Routing (cont)
Inter-AS
routing
between
A and B
C.b
a
Host
h1
1-6/2006
C
b
A.a
A.c
a
d
c
b
A
Intra-AS routing
within AS A
B.a
a
c
B
Host
h2
b
Intra-AS routing
within AS B
Chương 4. Giao thức tầng mạng
59
Ch4. The Network Layer
4.1 - Giới thiệu và chức năng của tầng mạng.
4.2 - Network service model (VC and Datagram).
4.3 - Thiết bị tầng mạng - Bộ định tuyến (router).
4.4 - Giao thức IP (Internet Protocol).
4.5 - Giải thuật chọn đường (Routing Algorithms).
4.6 - Chọn đường trong mạng Internet.
1-6/2006
Chương 4. Giao thức tầng mạng
<dxha at hau1.edu.vn>
60
20
Chương 4. Giao thức tầng mạng
1-6/2006
Routing in the Internet
Internet = nhiều Autonomous Systems (AS) :
Stub
AS: các công ty nhỏ: có một liên kết với AS khác.
AS: công ty lớn: nhiều liên kết tới AS
Multihomed
khác.
Transit AS: nhà cung cấp (móc nối các AS với nhau).
Two-level routing:
Intra-AS:
người quản trị có quyền chọn giải thuật cho
riêng mạng của mình
Inter-AS: giải thuật duy nhất (inter-AS routing: BGP)
Chương 4. Giao thức tầng mạng
1-6/2006
61
Internet AS Hierarchy
Intra-AS border (exterior gateway) routers
Inter-AS interior (gateway) routers
Chương 4. Giao thức tầng mạng
1-6/2006
62
Intra-AS Routing
Tên gọi khác: Interior Gateway Protocols (IGP)
Một số giao thức:
RIP:
Routing Information Protocol
OSPF:
Open Shortest Path First
IGRP:
Interior Gateway Routing Protocol (Cisco
proprietary)
1-6/2006
Chương 4. Giao thức tầng mạng
<dxha at hau1.edu.vn>
63
21
Chương 4. Giao thức tầng mạng
1-6/2006
RIP ( Routing Information Protocol)
Sử dụng Distance vector algorithm
Included in BSD-UNIX Distribution in 1982
Đơn vị đo khoảng cách: số lượng chặng (hop, tối đa = 15 hops)
Routing table được trao đổi 30 giây một lần thông qua RIP response
msg (RIP advertisement), mỗi msg chứa tối đa 25 bản ghi.
v1: RFC 1058; v2: RFC 1723
u
z
destination hops
u
1
v
2
w
2
x
3
y
3
z
2
v
A
B
C
D
w
x
y
64
Chương 4. Giao thức tầng mạng
1-6/2006
RIP: Example
z
w
A
x
D
y
B
C
Destination Network
w
y
z
x
Next Router
Num. of hops to dest.
….
....
A
B
B
--
….
2
2
7
1
Routing table in D
1-6/2006
Chương 4. Giao thức tầng mạng
65
RIP Table processing
RIP routing tables managed by application-level
process called route-d (daemon)
advertisements được gửi định kỳ, qua UDP
packets.
1-6/2006
Chương 4. Giao thức tầng mạng
<dxha at hau1.edu.vn>
66
22
Chương 4. Giao thức tầng mạng
1-6/2006
RIP Table example
Destination
-------------------127.0.0.1
192.168.2.
193.55.114.
192.168.3.
224.0.0.0
default
Gateway
Flags Ref
Use
Interface
-------------------- ----- ----- ------ --------127.0.0.1
UH
0 26492 lo0
192.168.2.5
U
2
13 fa0
193.55.114.6
U
3 58503 le0
192.168.3.5
U
2
25 qaa0
193.55.114.6
U
3
0 le0
193.55.114.129
UG
0 143454
Three attached class C networks (LANs)
Router only knows routes to attached LANs
Default router used to “go up”
Route multicast address: 224.0.0.0
Loopback interface (for debugging)
Chương 4. Giao thức tầng mạng
1-6/2006
67
OSPF (Open Shortest Path First)
“open”: publicly available; RFC 2178
Uses Link State algorithm
LS
packet dissemination
map at each node
Route computation using Dijkstra’s algorithm
Topology
OSPF advertisement carries one entry per neighbor router
Advertisements disseminated to entire AS (via flooding)
Carried
in OSPF messages directly over IP (rather than TCP or
UDP
1-6/2006
Chương 4. Giao thức tầng mạng
68
OSPF “advanced” features (not in RIP)
Security: các OSPF msgs đều chứa thông tin chứng thực
(authenticated).
Multiple same-cost paths: Cho phép truyền tin theo nhiều
đường có cùng chi phí với cùng một phiên truyền tin.
Diff. cost metrics for diff. TOS: Cho phép nhiều đơn vị đo
khác nhau cho từng loại dịch vụ (e.g., satellite link cost set
“low” for best effort; high for real time)
Integrated unicast and multicast support:
Multicast OSPF (MOSPF) uses same topology data
base as OSPF
Hierarchical OSPF in large domains.
1-6/2006
Chương 4. Giao thức tầng mạng
<dxha at hau1.edu.vn>
69
23
Chương 4. Giao thức tầng mạng
1-6/2006
Hierarchical OSPF
Two-level hierarchy: local area, backbone.
Link-state advertisements only in area
each nodes has detailed area topology; only know direction
(shortest path) to nets in other areas.
Area border routers: “summarize” distances to nets in own area,
advertise to other Area Border routers.
Backbone routers: run OSPF routing limited to backbone.
Boundary routers: connect to other AS’s.
70
Chương 4. Giao thức tầng mạng
1-6/2006
Internet inter-AS routing: BGP
BGP (Border Gateway Protocol): RFC 1771; RFC
1772; RFC 1773
R4
R5
R3
AS1
AS2
(RIP intra-AS
routing)
BGP
R2
R1
1-6/2006
BGP
(OSPF
intra-AS
routing)
Chương 4. Giao thức tầng mạng
<dxha at hau1.edu.vn>
AS3
(OSPF intra-AS
routing)
71
24