Chương 4 trình bày về Giao thức tầng mạng. Nội dung cụ thể của chương này gồm có: Network service model (VC and Datagram), thiết bị tầng mạng - Bộ định tuyến (router), giao thức IP (Internet Protocol), giải thuật chọn đường (Routing Algorithms), chọn đường trong mạng Internet.
Trang 1Chương 4.
Giao thức tầng mạng (network layer)
Quang Dieu Tran, PhD Faculty of Information Technology University of Communication and Transport (Branch in Ho Chi Minh City)
Email: dieutq@gmail.com Website: sites.google.com/sites/tranlectures
Trang 2Chương 4 Giao thức tầng mạng 2
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.
Trang 3Chức năng của tầng mạng
Truyền các gói tin (packets) từ sending
host tới receiving host.
segment packets (datagrams).
Network layer được cài đặt tại router
và cả end system.
Chức năng:
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.
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
application transport
network
data link physical
Trang 4Chương 4 Giao thức tầng mạng 4
Routing & switching in routers
1
2 3
0111
value in arriving packet’s header
routing algorithm
local forwarding table header value output link
0100 0101 0111 1001
3 2 2 1
Trang 5Ch4 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.
Trang 6Chương 4 Giao thức tầng mạng 6
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?
các 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?
kênh ảo (virtual circuit)
lược đồ (gam) dữ liệu (datagram)
Trang 7Virtual Circuit
kết sau khi truyền xong
truyền ảo (VC) từ sender tới receiver (đã biết địa chỉ).
thông báo cho network layer biết, network layer sẽ huỷ bỏ VC.
Còn được gọi là connection-oriented
(VC identifier number)
giữ trạng thái của kênh đi qua nó
Trang 8Chương 4 Giao thức tầng mạng 8
Virtual Circuit: Signaling protocol
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
network
data link physical
3 Accept call
4 Call connected
5 Data flow begins 6 Receive data
Trang 9Sự khác biệt giữa liên kết tại tầng Transport và Network?
network
data link physical
Trang 10Chương 4 Giao thức tầng mạng 10
Datagram network
kênh
network
data link physical
Trang 11Network taxonomy (review)
circuit-switched
networks (vd telephone)
communication networks
switched
(vd Radio, Broadcast TV) packet-switched
networks
datagram networks (vd Internet)
virtual switched networks (vd ATM)
Trang 12 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
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.
Trang 13Ch4 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.
Trang 14Chương 4 Giao thức tầng mạng 14
Bộ định tuyến – router
ra thích hợp
Trang 15Physical layer:
bit-level reception
Data link layer:
e.g., Ethernet
Trang 16Chương 4 Giao thức tầng mạng 16
Các cơ cấu chuyển mạch (switching fabrics)
Trang 17Output 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
Trang 18Chương 4 Giao thức tầng mạng 18
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.
Trang 20or UDP segment)
16-bit identifier
Internet checksum
time to live
32 bit source IP address
IP protocol version
number header length
(bytes)
max number remaining hops
(decremented at
each router)
for fragmentation/ reassembly
total datagram length (bytes)
upper layer protocol
offset upper
layer
32 bit destination IP address
Options (if any) E.g timestamp,
record route taken, specify list of routers
to visit.
Trang 21IP datagram - example
Receiver’s MAC address
Sender’s MAC address
Type of upper layer’s protocol
( 0x0800 = IP )
Trang 22Chương 4 Giao thức tầng mạng 22
IP’s Header
IP version: 4 Header length: 20 bytes
TOS Total length:
72 bytes
Id
Flags & Fragment’s offset
TTL Transport’s protocol: UDP Checksum Source’s IP: 192.168.1.10
Trang 23IP’s Header
Dest’s IP: 203.162.4.190
Trang 24Chương 4 Giao thức tầng mạng 24
Phân tích gói tin tầng Internet - Transport
Địa chỉ MAC của sender & receiver ?
Địa chỉ IP của sender và receiver ?
Trang 25IP 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)
Trang 27IPv4 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
223.1.3.2 223.1.3.1
223.1.3.27 223.1.1.1 = 11011111 00000001 00000001 00000001
32-bit = 4 số 8-bit dạng thập phân dễ nhớ:
Trang 28Chương 4 Giao thức tầng mạng 28
bangtqh@utc2.edu.vn
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.
phần network trong IP addr
giống nhau.
trao đổi dữ liệu không cần
thông qua router.
223.1.1.1 223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2 223.1.2.1
223.1.3.2 223.1.3.1
223.1.3.27
network = 3 IP networks
LAN
Trang 29IP addressing: Class-full
Trang 31Subnet mask
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).
có thông số như sau:
Trang 32Chương 4 Giao thức tầng mạng 32
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
Các gói tin có ip đích dạng broadcast sẽ được gửi cho mọi host trong mạng
Loopback ip: 127.x.x.x
các gói tin được coi như được gửi tới từ nút khác
thường dùng 127.0.0.1
Trang 33IP addressing: CIDR
Class-full addressing: sự phân lớp cứng nhắc,
không còn thích hợp nữa.
Vị trí ngăn cách giữa net addr và host addr tuỳ ý
addr format: a.b.c.d/x, với x là số lượng bit dành cho net addr
network part
host part
200.23.16.0/23
Trang 34Chương 4 Giao thức tầng mạng 34
IP addresses: how to get one?
Windows 2000/XP).
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 server cung cấp IP cho client dựa trên bảng cấu hình sẵn có.
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.
Trang 35Phân cấp địa chỉ Internet - ISP
“Send me anything with addresses beginning
200.23.16.0/20”
200.23.16.0/23 200.23.18.0/23
200.23.30.0/23
Fly-By-Night-ISP Organization 0
Organization 1
ISPs-R-Us “Send me anything
with addresses beginning
199.31.0.0/16”
200.23.20.0/23
Organization 2
ISP's block 11001000 00010111 00010000 00000000 200.23.16.0/20
Organization 0 11001000 00010111 00010000 00000000 200.23.16.0/23 Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23 Organization 2 11001000 00010111 00010100 00000000 200.23.20.0/23 … … ….
Trang 36local network (e.g., home network)
10.0.0/24
rest of Internet
Datagrams with source or destination in this network have 10.0.0/24 address for source, destination (as usual)
All datagrams leaving local
network have same single source
NAT IP address: 138.76.29.7,
different source port numbers
Trang 37NAT: Network Address Translation (cont)
Một LAN chỉ sử dụng một IP duy nhất khi giao
tiếp với mạng ngoài.
Trang 38Chương 4 Giao thức tầng mạng 38
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
Trang 3910.0.0.4 138.76.29.7
1: host 10.0.0.1 sends datagram to 128.119.40, 80
NAT translation table WAN side addr LAN side addr 138.76.29.7, 5001 10.0.0.1, 3345
…… ……
S: 128.119.40.186, 80 D: 10.0.0.1, 3345 4
S: 138.76.29.7, 5001 D: 128.119.40.186, 80 2
dest address:
138.76.29.7, 5001
4: NAT router changes datagram dest addr from 138.76.29.7, 5001 to 10.0.0.1, 3345
Trang 40Chương 4 Giao thức tầng mạng 40
ICMP (Internet Control Message Protocol)
Giao tiếp ở mức mạng giữa các
hosts, routers
thông báo lỗi (vd: không tìm được
đường đi, không gửi tin được tới
Type Code description
0 0 echo reply (ping)
3 0 dest network unreachable
3 1 dest host unreachable
3 2 dest protocol unreachable
3 3 dest port unreachable
3 6 dest network unknown
3 7 dest host unknown
4 0 source quench (congestion
control - not used)
8 0 echo request (ping)
9 0 route advertisement
10 0 router discovery
11 0 TTL expired
12 0 bad IP header
Trang 42lượng không được coi là flow.
trên
Trang 43IPv6 datagram analysis (example)
0090: 67 3A 20 6E 6F 20 4B 65 72 62 65 72 6F 73 20 74 g: no Kerberos t 00A0: 69 63 6B 65 74 73 20 69 73 73 75 65 64 2E 0D 0A ickets issued
Trang 440090: 67 3A 20 6E 6F 20 4B 65 72 62 65 72 6F 73 20 74 g: no Kerberos t 00A0: 69 63 6B 65 74 73 20 69 73 73 75 65 64 2E 0D 0A ickets issued
Trang 45IPv6 – Analysis (example 2)
0000: 33 33 00 00 00 09 08 00 2B B5 A7 A8 86 DD 67 00 33 + g 0010: 00 00 00 20 11 FF FE 80 00 00 00 00 00 00 00 00 0020: 08 00 2B B5 A7 A8 FF 02 00 00 00 00 00 00 00 00 + 0030: 00 00 00 00 00 09 02 09 02 09 00 20 21 A1 01 01 ! 0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0050: 00 00 00 00 00 10 F2 9B F3 73
Địa chỉ IPv6 của máy gửi và máy nhận ?
Payload length của IPv6 datagram ?
Hops limit value ?
Transport protocol ?
Source port # and Dest port # at transport layer ?
What are your answers ?
Trang 46Chương 4 Giao thức tầng mạng 46
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
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
Trang 47Flow: X Src: A Dest: F
data
Flow: X Src: A Dest: F
data
Src:B Dest: E
Flow: X Src: A Dest: F
data
Src:B Dest: E
B-to-C:
IPv6 inside IPv4
Trang 48Chương 4 Giao thức tầng mạng 48
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.
Trang 49Forwarding & routing
1
2 3
0111
value in arriving packet’s header
routing algorithm
local forwarding table header value output link
0100 0101 0111 1001
3 2 2 1
Trang 50Chương 4 Giao thức tầng mạng 50
Network: graph abstraction
= { (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }
5
Trang 51Routing Algorithm classification
Thông tin tập trung hay phân tán?
Tập trung:
mỗi router phải nắm giữ thông tin toàn
bộ mạng (topology, link cost…)
“link state” algorithms
Phân tán:
router nắm được chi phí truyền tin tới các
router được nối trực tiếp với mình (hàng
xóm)
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
Trang 52Chương 4 Giao thức tầng mạng 52
A Link-State Routing Algorithm
bộ mạng.
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
Trang 54D(B),p(B) 2,A 2,A 2,A
D(C),p(C) 5,A 4,D 3,E 3,E
D(D),p(D) 1,A
D(E),p(E)
∞ 2,D
D(F),p(F)
∞
∞ 4,E 4,E 4,E
A
E D
C B
5
Trang 55Distance Vector Routing Algorithm
Distance Table data structure
chi phí cho đường đi (XZ…Y)
Z là nút kế tiếp cần đi tới
c(X,Z) + min {D (Y,w)}Z
w
=
=
Trang 57Distance table routing table
Trang 58Chương 4 Giao thức tầng mạng 58
DV Algorithm: Initialization
1 Initialization:
2 for all adjacent nodes v:
3 D (*,v) = infinity /* the * operator means "for all rows" */
4 D (v,v) = c(X,v)
5 for all destinations, y
6 send min D (y,w) to each neighbor /* w over all X's neighbors */
X X
X w
At all nodes, X:
Trang 59DV 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 (y,V) = D (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 DV(Y,w) */
20 /* call this received new value is "newval" */
21 for the single destination y: D (Y,V) = c(X,V) + newval
22
23 if we have a new min D (Y,w)for any destination Y
24 send new value of min D (Y,w) to all neighbors
w
X X
Trang 60Chương 4 Giao thức tầng mạng 60
DV Algorithm: example
1 2
Trang 61DV Algorithm: example
1 2
7
Y
Trang 62 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.
Trang 63Hierarchical Routing
Dẫn đường theo từng mức mạng, do:
Quy mô mạng Internet là rất lớn:
một nút không thể chứa tất cả các bản ghi cho mọi đích!
việc cập nhật bảng dẫn đường tốn kém!
Nhu cầu mạng tự trị
Internet = network of networks
người quản trị mạng muốn điều khiển việc dẫn đường (routing) trong mạng họ quản lý