Bài giảng Mạng máy tính - Chương 4: Giao thức tầng mạng (network layer) cung cấp cho người học các kiến thức: Giới thiệu và chức năng của tầng mạng, Network service model, thiết bị tầng mạng - Bộ định tuyến, giao thức IP, giải thuật chọn đường, chọn đường trong mạng Internet. Mời các bạn cùng tham khảo nội dung chi tiết.
Trang 1Chương 4.
Giao thức tầng mạng (network layer)
Trần Quang Hải BằngFaculty of Information TechnologyUniversity of Communication and Transport (Branch 2)Office location: Administration building, Block D3, Room 6Office phone: 38962018
Cell phone: N/AEmail: tqhbang@utc2.edu.vn
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 2Chương 4 Giao thức tầng mạng 3
23/08 - 10/10/2010
Chứ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ọ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
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 3Chương 4 Giao thức tầng mạng 5
23/08 - 10/10/2010
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.
Network service model
Tầng mạng cung cấp dịch vụ cho tầng Transport:
Hai model cơ bản của tầng mạng:
Trang 4Chương 4 Giao thức tầng mạng 7
23/08 - 10/10/2010
Virtual Circuit
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.
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ó.
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.
1 Initiate call 2 incoming call
3 Accept call
4 Call connected
5 Data flow begins 6 Receive data
Trang 5Datagram network
kênh.
1 Send data 2 Receive data
Trang 6switched networks broadcastnetworks
(vd Radio, Broadcast TV) packet-switched
networks
datagram networks (vd Internet)
virtual switched networks (vd ATM) FDM TDM
circuit-Datagram or VC network: why?
Internet
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
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 trongmạng
Trang 7Chương 4 Giao thức tầng mạng 13
23/08 - 10/10/2010
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.
Bộ định tuyến – router
ra thích hợp.
Trang 8(datagram) đến nhanh quá, cần phải xếp hàng chờ xử lý.
Trang 9Scheduling discipline: cơ chế lựa chọn datagram từ bộ đệm
để tiếp tục gửi đi.
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 10Chương 4 Giao thức tầng mạng 19
23/08 - 10/10/2010
The Internet (TCP/IP) network layer
routing table
Network layer được thực thi tại end system cũng như tại router!
or UDP segment)
16-bit identifier
Internet checksum
time to live
32 bit source IP address
IP protocol version
number header length
total datagram length (bytes)
upper layer protocol
“type” of data flgs fragment
offset upper
layer
32 bit destination IP address
Options (if any) E.g timestamp,
record route taken, specify list of routers
to visit.
Trang 11Chương 4 Giao thức tầng mạng 21
23/08 - 10/10/2010
IP datagram - example
Receiver’s MAC address
Sender’s MAC address
Type of upper layer’s protocol
( 0x0800 = IP )
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 12Chương 4 Giao thức tầng mạng 23
23/08 - 10/10/2010
IP’s Header
Dest’s IP: 203.162.4.190
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 ?
Độ dài tổng của IP datagram ?
Trang 13Chương 4 Giao thức tầng mạng 25
23/08 - 10/10/2010
IP Fragmentation & Reassembly
(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 14Chương 4 Giao thức tầng mạng 27
23/08 - 10/10/2010
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
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ớ:
Mạng & mạng con (subnet)
Các bit cao dành cho network
Các bit thấp dành cho host
Mạng tạo bởi các interface có
phần network trong IP addr
giống nhau.
trao đổi dữ liệu không cần
thông qua router.
223.1.3.2 223.1.3.1
223.1.3.27
network = 3 IP networks
LAN
Trang 16Là 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ủainterface (host)
có thông số như sau:
(111111111.11111111.11111111.00000000)
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:
mọi host trong mạng.
Loopback ip: 127.x.x.x
Trang 17CIDR (Classless InterDomain Routing):
addr.
11001000 00010111 00010000 00000000
network part
host part
200.23.16.0/23
IP addresses: how to get one?
Người quản trị hệ thống thiết lập (TCP/IP properties trong
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ừ địachỉ 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 18Chương 4 Giao thức tầng mạng 35
23/08 - 10/10/2010
Phâ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”
local network (e.g., home network) 10.0.0/24
rest of Internet
Datagrams with source or destination in this networkhave 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 19Chương 4 Giao thức tầng mạng 37
23/08 - 10/10/2010
NAT: 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.
Từ đó:
mạng trong (máy trạm) vì chỉ dùng 1 IP.
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 2010.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
138.76.29.7, 5001
4: NAT router changes datagram dest addr from 138.76.29.7, 5001 to 10.0.0.1, 3345
ICMP (Internet Control Message Protocol)
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 21hơn, chất lượng hơn (QoS).
trên.
Trang 22Chương 4 Giao thức tầng mạng 43
23/08 - 10/10/2010
IPv6 datagram analysis (example)
0000: 00 A0 24 6F B6 A3 00 A0 24 6F B7 02 86 DD 60 00 $o $o ` 0010: 00 00 00 CB 06 40 5F 15 50 00 82 C0 0E 00 00 BD .@_.P 0020: 00 A0 24 6F B7 02 5F 15 50 00 82 C0 0E 00 00 BD $o _.P 0030: 00 A0 24 6F B6 A3 23 3F 04 06 63 A9 BC 4A 1E 41 $o #? c J.A 0040: B0 80 80 18 43 80 74 8A 00 00 01 01 08 0A 00 0A C.t 0050: 96 D9 00 00 14 D5 4C 61 73 74 20 6C 6F 67 69 6E .Last login 0060: 3A 20 54 75 65 20 4A 61 6E 20 20 37 20 31 37 3A : Tue Jan 7 17: 0070: 30 33 3A 34 36 20 66 72 6F 6D 20 61 6C 69 63 65 03:46 from alice 0080: 2D 76 36 2E 69 70 76 36 0D 0A 57 61 72 6E 69 6E -v6.ipv6 Warnin 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 00B0: 4F 70 65 6E 42 53 44 20 31 2E 32 20 28 49 50 4E OpenBSD 1.2 (IPN 00C0: 47 4B 45 52 29 20 23 31 3A 20 46 72 69 20 4E 6F GKER) #1: Fri No
00D0: 76 20 31 35 20 30 38 3A 30 33 3A 34 32 20 50 53 v 15 08:03:42 PS 00E0: 54 20 31 39 39 36 0D 0A 0D 0A 57 65 6C 63 6F 6D T 1996 Welcom 00F0: 65 20 74 6F 20 4F 70 65 6E 42 53 44 2E 0D 0A 0D e to OpenBSD 0100: 0A A3 5F 44 A9 _D.
Receiver’s MAC Sender’s MAC Type: 0x86DD (IPv6)
IPv6 datagram analysis (example) cnt.
0000: 00 A0 24 6F B6 A3 00 A0 24 6F B7 02 86 DD 60 00 $o $o ` 0010: 00 00 00 CB 06 40 5F 15 50 00 82 C0 0E 00 00 BD .@_.P 0020: 00 A0 24 6F B7 02 5F 15 50 00 82 C0 0E 00 00 BD $o _.P 0030: 00 A0 24 6F B6 A3 23 3F 04 06 63 A9 BC 4A 1E 41 $o #? c J.A 0040: B0 80 80 18 43 80 74 8A 00 00 01 01 08 0A 00 0A C.t 0050: 96 D9 00 00 14 D5 4C 61 73 74 20 6C 6F 67 69 6E .Last login 0060: 3A 20 54 75 65 20 4A 61 6E 20 20 37 20 31 37 3A : Tue Jan 7 17: 0070: 30 33 3A 34 36 20 66 72 6F 6D 20 61 6C 69 63 65 03:46 from alice 0080: 2D 76 36 2E 69 70 76 36 0D 0A 57 61 72 6E 69 6E -v6.ipv6 Warnin 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 00B0: 4F 70 65 6E 42 53 44 20 31 2E 32 20 28 49 50 4E OpenBSD 1.2 (IPN 00C0: 47 4B 45 52 29 20 23 31 3A 20 46 72 69 20 4E 6F GKER) #1: Fri No
00D0: 76 20 31 35 20 30 38 3A 30 33 3A 34 32 20 50 53 v 15 08:03:42 PS 00E0: 54 20 31 39 39 36 0D 0A 0D 0A 57 65 6C 63 6F 6D T 1996 Welcom 00F0: 65 20 74 6F 20 4F 70 65 6E 42 53 44 2E 0D 0A 0D e to OpenBSD 0100: 0A A3 5F 44 A9 _D.
TCP at upper layer Payload length: 203 (bytes) Hops Limit: 64 Flow label
Trang 23Chương 4 Giao thức tầng mạng 45
23/08 - 10/10/2010
IPv6 – 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
Source port # and Dest port # at transport layer ?
What are your answers ?
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:
(payload) của IPv4 khi đi qua các nút mạng IPv4.
Trang 24Flow: 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
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 25value in arriving packet’s header
routing algorithm
local forwarding table header value output link
0100 0101 0111 1001
3 2 2 1
Network: graph abstraction
= { (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }
z
2 2
1
1 2
5 3
5
Trang 26Chương 4 Giao thức tầng mạng 51
23/08 - 10/10/2010
Routing 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
link cost thay đổi.
A Link-State Routing Algorithm
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:
tới đỉnh v.
Trang 27D(D),p(D)1,A
D(E),p(E)
∞2,D
D(F),p(F)
∞
∞4,E4,E4,E
A
CB
F
2 2
1 2
5 3
5
Trang 28Chương 4 Giao thức tầng mạng 55
23/08 - 10/10/2010
Distance 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ớic(X,Z) + min {D (Y,w)}Z
7 8 1
2
1
2
D () A B C D
A 1 7 6 4
B 14 8 9 11
D 5 5 4 2
E cost to destination via
Trang 29A 1 7 6 4
B 14 8 9 11
D 5 5 4 2
E cost to destination via
A,1 D,5 D,4 D,4
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 30Chương 4 Giao thức tầng mạng 59
23/08 - 10/10/2010
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 (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
26 forever
w
X X
X X
X
w w
DV Algorithm: example
1 2