MẠNG MÁY TÍNH VÀ INTERNET
Chương 5:
Giao thức tầng network
Nội dung
1.
Các nguyên lý dịch vụ tầng mạng
2.
Bộ định tuyến (router).
3.
Giao thức IP (Internet Protocol).
4.
Giải thuật chọn đường (định tuyến).
5.
Định tuyến trong Internet.
Chương 5 - Giao thức tầng mạng
2
5.1. Nguyên lý & dịch vụ tầng mạng
Sự khác biệt giữa liên kết tại tầng Transport và
Network?
server B
application
transport
network
data link
physical
host A
application
transport
network
data link
physical
application
transport
network
data link
physical
application
transport
network
data link
physical
Chương 5 - Giao thức tầng mạng
3
5.1. Nguyên lý & dịch vụ tầng mạng (tt)
Gửi các phân đoạn dữ liệu
(segment) từ máy gửi tới máy application
transport
network
nhận
data link
physical
Máy gửi (sender) đóng gói các
segment thành các gói tin
(packet) và vận chuyển nó tới
máy đích.
Tại máy đích (receiver) phát
packet lên tầng transport
Giao thức tầng mạng cần phải
triển khai tại mọi node trên mạng
Các bộ định tuyến kiểm tra
header của mọi packet đi qua nó
Chương 5 - Giao thức tầng mạng
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
4
5.1. Nguyên lý & dịch vụ tầng mạng (tt)
Chức năng của tầng mạng
Chuyển tiếp
– Di chuyển các gói tin từ đầu vào của Router tới đầu ra
thích hợp
Định tuyến
– Xác định đường đi cho gói tin từ nguồn tới đích.
Chương 5 - Giao thức tầng mạng
5
Routing & Switching in routers
routing algorithm determines
end-end-path through network
routing algorithm
forwarding table determines
local forwarding at this router
local forwarding table
header value output link
0100
0101
0111
1001
3
2
2
1
value in arriving
packet’s header
0111
1
3 2
Chương 5 - Giao thức tầng mạng
6
5.1. Nguyên lý & dịch vụ tầng mạng (tt)
Tầng vận tải (transport) cần gì ở tầng mạng?
–
–
–
–
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 ?
Hai mơ hình cơ bản của tầng mạng:
– Kênh ảo (virtual circuit)
– Lược đồ (gram) dữ liệu (datagram)
Chương 5 - Giao thức tầng mạng
7
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
cần 3 pha:
– VC setup: Thiết lập kênh truyền ảo (VC) từ sender tới receiver (đã
biết địa chỉ).
– Data transfer: Truyền qua dữ liệu qua VC.
– VC teardown: Hủy bỏ VC (sender hoặc receiver ra thông báo ngắt
VC)
Mỗi packet chứa thông tin về kênh mà nó sẽ đi qua (VC
identifier number).
Các bộ thiết bị định tuyến luôn nắm giữ trạng thái của
kênh ảo (VC) đi qua nó.
Chương 5 - Giao thức tầng mạng
8
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
6. Receive data application
3. Accept call
2. incoming call
transport
network
data link
physical
Chương 5 - Giao thức tầng mạng
9
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
network
2. Receive data
data link
physical
Chương 5 - Giao thức tầng mạng
10
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 số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.
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 5 - Giao thức tầng mạng
11
Nội dung
1.
Các nguyên lý dịch vụ tầng mạng
2.
Bộ định tuyến (router).
3.
Giao thức IP (Internet Protocol).
4.
Giải thuật chọn đường (định tuyến).
5.
Định tuyến trong Internet.
Chương 5 - Giao thức tầng mạng
12
5.2. Bên trong bộ định tuyến
Hai chức năng chính
Chạy giải thuật chọn đường (RIP, OSPF, BGP).
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 5 - Giao thức tầng mạng
13
Cổng vào
Physical layer:
Nhận các bit
Data link layer:
Vd: Ethernet
Chuyển mạch khơng tập trung:
Cho đích của gói tin, tìm cổng ra sử dụng bảng
chuyển mạch trong bộ nhớ của cổng vào
Mục tiêu: hoàn thành xử lý ở cổng vào với ‘tốc
độ đường truyền’
Xếp hàng: nếu gói tin tới nhanh hơn tốc độ
chuyển tiếp vào cơ cấu chuyển mạch
Chương 5 - Giao thức tầng mạng
14
Các cơ cấu chuyển mạch
Ba cơ cấu
memory
bus
memory
crossbar
Chương 5 - Giao thức tầng mạng
15
Chuyển mạch qua bộ nhớ
Một máy tính truyền thống với cài đặt cơ chế chuyển
mạch dưới sự điều khiển trực tiếp của CPU
Gói tin được chép vào bộ nhớ hệ thống
vận tốc bị hạn chế bởi băng thông của bộ nhớ (mỗi
gói đi qua mạch bus 2 hai lần)
input
port
(e.g.,
Ethernet)
memory
output
port
(e.g.,
Ethernet)
system bus
Chương 5 - Giao thức tầng mạng
16
Chuyển gói thơng qua mạch dẫn
Gói tin đi từ bộ nhớ của cổng vào tới
bộ nhớ của cổng ra thông qua một
mạch chia sẻ (shared bus)
Tranh giành bus: tốc độ chuyển
mạch bị hạn chế bởi băng thông của
bus
32 Gbps bus, Cisco 5600: vận tốc
vừa phải cho các BĐT truy cập và xí
nghiệp
bus
Chương 5 - Giao thức tầng mạng
17
Chuyển mạch dùng cross bar
Khắc phục được hạn chế băng
thông của bus
Thiết kế cao cấp: chia gói tin thành
những ơ độ dài xác định, chuyển
crossbar
các ơ đó qua cơ cấu chuyển mạch.
Cisco 12000: chuyển 60 Gbps
thông qua một mạng kết nối lẫn
nhau
Chương 5 - Giao thức tầng mạng
18
Cổng ra
Buffering: gói tin đến từ cổng vào nhanh hơn tốc
độ truyền tải
Cần đưa vào bộ nhớ đệm.
Nguyên tắc lập lịch: Cơ chế lựa chọn các
datagram từ bộ đệm để tiếp tục gửi đi.
Datagram (packets) can be lost
due to congestion, lack of buffers
Priority scheduling – who gets best
performance, network neutrality
Chương 5 - Giao thức tầng mạng
19
5.2. Bên trong bộ định tuyến (tt)
Xếp hàng (queuing ở cổng ra)
switch
fabric
switch
fabric
at t, packets more
from input to output
one packet time later
Nhớ tạm khi mà tốc độ tới vượt quá tốc độ của đường đi
ra
xếp hàng (trễ) và mất gói là do tràn bộ nhớ tạm của cổng
ra!
Chương 5 - Giao thức tầng mạng
20
5.2. Bên trong bộ định tuyến (tt)
Nhớ tạm (buffering) bao nhiêu thì đủ?
RFC 3439: bộ nhớ đệm trung bình bằng RTT “trung
bình” (khoảng 250 msec) nhân với băng thơng của
liên kết C
– Ví dụ: C = 10 Gbps. bộ nhớ tạm 2.5 Gbits
Giá trị khuyến cáo: với N luồng, bộ nhớ tạm bằng
RTT . C
N
Chương 5 - Giao thức tầng mạng
21
5.2. Bên trong bộ định tuyến (tt)
Xếp hàng ở đầu vào
Cơ cấu chuyển mạch chậm hơn tốc độ cổng vào -> xếp hàng có thể xảy ra ở
cổng vào
Khóa đầu-dịng (HOL): Gói tin xếp ở đầu dịng ngăn các gói khác di chuyển
về trước
Độ trễ xếp hàng và mất gói là do tràn bộ nhớ tạm ở cổng vào!
switch
fabric
switch
fabric
Tranh chấp đầu ra:
Chỉ packet đỏ được đi ra
packet đỏ (chậm hơn) bị chặn lại
1 packet đỏ đã được
chuyển tới đầu ra;
Packet xanh iếp tục bị
chặn lại
Chương 5 - Giao thức tầng mạng
22
Nội dung
1.
Các nguyên lý dịch vụ tầng mạng
2.
Bộ định tuyến (router).
3.
Giao thức IP (Internet Protocol).
4.
Giải thuật chọn đường (định tuyến).
5.
Định tuyến trong Internet.
Chương 5 - Giao thức tầng mạng
23
5.3. IP - Giao thức liên mạng
Chức năng tầng mạng của Internet
Transport layer: TCP, UDP
Tầng
mạng
Giao thức IP
•Quy tắc đánh địa chỉ
•Định dạng gói tin
•Quy tắc xử lý gói tin
Giao thức định tuyến
•Chọn đường đi
•RIP, OSPF, BGP
routing
table
Giao thức ICMP
•Báo lỗi
•Gửi tín hiệu tới router
Link layer
physical layer
Chương 5 - Giao thức tầng mạng
24
Nội dung
1.
Các nguyên lý dịch vụ tầng mạng
2.
Bộ định tuyến (router).
3.
Giao thức IP (Internet Protocol).
4.
Giải thuật chọn đường (định tuyến).
5.
Định tuyến trong Internet.
Chương 5 - Giao thức tầng mạng
25
IP datagram format
Số phiên bản
Độ dài header
(bytes)
Loại dữ liệu
Số trạm chuyển
tiếp còn lại được
đi qua
(giảm mỗi khi qua
1 trạm)
Giao thức tầng trên
(Transport)
6 = TCP; 17 = UDP
32 bits
ver
head.
len
type of
service
16-bit identifier
time to
live
Tổng độ dài gói
tin (bytes)
length
flags
upper
layer
fragment
offset
Internet
checksum
32 bit địa chỉ IP máy gửi
32 bit địa chỉ IP máy nhận
Phục vụ việc
phân mảnh /
ghép mảnh
Timestamp, Danh
sách router sẽ đi
qua, Đường đi
Thông tin bổ sung (nếu có)
Dữ liệu
Chi phí cho TCP
20 byte TCP header
(Độ dài bất kỳ, thường là 1
segment TCP hoặc UDP)
Chương 5 - Giao thức tầng mạng
20 bytes IP header
= 40 bytes + Header
tầng ứng dụng
26
IP datagram - example
Sender’s MAC address
Receiver’s MAC address
Type of upper layer’s protocol
( 0x0800 = IP )
Chương 5 - Giao thức tầng mạng
27
IP datagram – example (tt)
Total length:
72 bytes
Id
IP version: 4
Header length: 20 bytes
TOS
IP’s Header
Flags & Fragment’s offset
TTL
Transport’s protocol: UDP
Checksum
Source’s IP: 192.168.1.10
Chương 5 - Giao thức tầng mạng
28
IP datagram - example
IP’s Header
Dest’s IP: 203.162.4.190
Chương 5 - Giao thức tầng mạng
29
IP datagram - example
Địa chỉ MAC của sender & receiver ?
Địa chỉ IP của sender và receiver ?
Độ dài tổng của IP datagram ?
TTL của IP datagram?
What are your
answers ?
Source’s IP, destination’s IP ?
Giao thức sử dụng ở tầng Application ?
Chương 5 - Giao thức tầng mạng
30
Phân mảnh và ghép mảnh IP
Fragment: Đường kết nối trong
mạng có kích thước truyền tải
tối đa (MTU) cho 1 packet.
‡
– Các đường mạng khác nhau sẽ
có MTU khác nhau
Phân mảnh:
vào: 1 datagram lớn
ra: 3 datagrams nhỏ
– Packet lớn phải chia nhỏ thành
các phân đoạn và chuyển đi
Ghép mảnh
Reassembly:
– các bit trong header IP được
dùng để xác định và sắp thứ tự
các đoạn
‡
– Các nhỏ được ghép lại thành
packet ban đầu tại đích.
Chương 5 - Giao thức tầng mạng
31
Phân mảnh và ghép mảnh IP
Ví dụ:
4000 byte datagram
MTU = 1500 bytes
length ID fragflag
=4000 =x
=0
offset
=0
Một datagram lớn được chia thành vài
datagram nhỏ hơn
1480 bytes dữ liệu
length ID fragflag
=1500 =x
=1
offset
=0
offset =1480/8
length ID fragflag
=1500 =x
=1
offset
=185
length ID fragflag
=1040 =x
=0
offset
=370
Chương 5 - Giao thức tầng mạng
32
Địa chỉ IP: Giới thiệu
IP address: số 32-bit định
danh cho host và interface
của router.
223.1.1.1
223.1.2.1
223.1.1.2
Interface: giao diện kết nối
mạng từ host tới mạng.
223.1.1.4
223.1.2.9
223.1.3.27
223.1.1.3
223.1.2.2
– 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
223.1.3.2
223.1.3.1
kết.
– Router thường có nhiều
interface.
– Mỗi interface trên router 223.1.1.1 = 11011111 00000001 00000001 00000001
được gán 1 địa chỉ IP
223
1
1
1
Chương 5 - Giao thức tầng mạng
33
Mạng con (subnet)
Địa chỉ IP 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
Subnet là gì?
– Mạng tạo bởi các interface
có phần network trong địa
chỉ IP giống nhau.
– Các host cùng subnet có
thể trao đổi dữ liệu không
cần thông qua router.
223.1.1.3
223.1.2.1
223.1.2.9
223.1.3.27
223.1.2.2
subnet
223.1.3.1
223.1.3.2
network = 3 IP networks
Chương 5 - Giao thức tầng mạng
34
Mạng con (tt)
223.1.1.2
Có bao nhiêu subnet ?
223.1.1.1
223.1.1.4
223.1.1.3
223.1.9.2
223.1.7.0
223.1.9.1
223.1.7.1
223.1.8.1
223.1.8.0
223.1.2.6
223.1.2.1
223.1.3.27
223.1.2.2
223.1.3.1
Chương 5 - Giao thức tầng mạng
223.1.3.2
35
Đánh địa chỉ IP: Class-Full
Chương 5 - Giao thức tầng mạng
36
Đánh địa chỉ IP: Classless
Class-full: sự phân lớp cứng nhắc, khơng cịn thích
hợp nữa (mạng con q lớn/q nhỏ)
CIDR (Classless InterDomain Routing):
– Số bit dành cho subnet có độ dài bất kỳ (theo ý đồ của
nhà cung cấp hoặc người quản trị mạng)
– Ký hiệu: a.b.c.d/x, với x là số lượng bit dành cho phần
subnet.
host
part
subnet
part
11001000 00010111 00010000 00000000
200.23.16.0/23
Chương 5 - Giao thức tầng mạng
37
Xác định địa chỉ subnet ?
Địa chỉ mạng:
– Tất cả các bit phần host đặt về 0
Ví dụ: Cho địa chỉ IP của host 172.16.5.133/22 hãy
cho biết địa chỉ mạng
Giải:
10101010 00010000 00000101 10000101
172
16
5
133
10101010 00010000 00000100 00000000
172
16
4
Chương 5 - Giao thức tầng mạng
0
38
Xác định 2 địa chỉ IP cùng subnet ?
Mặt nạ mạng (Subnet Mask)
– Các bit phần net đặt = 1
– Các bit phần host đặt = 0
Ví dụ: Cho địa chỉ mạng 172.16.32.0/22 tìm Subnet
Mask của mạng
– Có 22 bit phần net (32 – 22 = 10 bit phần host)
– Subnet mask là:
11111111.111111 .11111100. 0000000 = 255.255.252.0
Chương 5 - Giao thức tầng mạng
39
Xác định 2 địa chỉ IP cùng subnet ?
Kiểm tra công thức
(<ip1> XOR <ip2>) AND <sm> = 0 ?
Ví dụ: hãy cho biết 3 địa chỉ sau địa chỉ nào cùng
nằm trong 1 subnet ?
SM: 255.255.240.0
IP1: 172.16.81.123
IP2: 172.16.85.221
IP3: 172.16.80.57
Tra lời: Cùng thuộc subnet
có địa chỉ 172.16.80.0/20
Chương 5 - Giao thức tầng mạng
40
Địa chỉ quảng bá (broadcast)
Khi một host gửi tin cho tất cả các máy trong cùng
subnet
– Cách 1: Gửi N gói tin tới N máy trong subnet
– Cách 2: Gửi 1 gói tin với địa chỉ quảng bá của subnet
Hai loại địa chỉ quảng bá
– Private broadcast address: 255.255.255.255
– Direct broadcast address: tất các bit phần host = 1
• Mạng 172.16.0.0/16 có đ/c quảng bá là: 172.16.255.255
• Mạng 192.168.10.32/27 có đ/c quảng bá là:
192.168.10.63
Chương 5 - Giao thức tầng mạng
41
Nhận xét – Địa chỉ IP
Trong 1 subnet có 2 địa chỉ không bao giờ được gán
cho các host
– Địa chỉ địa chỉ mạng: các bit phần host = 0
– Địa chỉ broadcast của mạng: các bit phần host =1
Cho mạng có địa chỉ a.b.c.d/x
– Số host tối đa trong mạng = 2(32-x) – 2
– Địa chỉ host đầu tiên = a.b.c.d/x + 1
– Địa chỉ host cuối cùng = đ/c broadcast – 1
Địa chỉ loopback 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
Chương 5 - Giao thức tầng mạng
42
Bài tập
Cho biết những địa chỉ sau địa chỉ nào sau đây có thể
gán cho các host
–
–
–
–
–
–
–
150.100.255.255
175.100.255.18
195.234.253.0
100.0.0.23
188.258.221.176
127.34.5.189
224.156.217.73
Chương 5 - Giao thức tầng mạng
43
Địa chỉ IP: 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
• Windows: control-panel->network->configuration->tcp/ip>properties
• UNIX: /etc/rc.config
– DHCP (Dynamic Host Configuration Protocol):
• Giao thức cấp địa chỉ IP tự động mỗi khi client tham gia
vào mạng
• DHCP server phụ trách việc cấp phát/thu hồi IP
• Client có thể nhận địa chỉ IP khác nhau tuỳ theo thời
điểm kết nối.
Chương 5 - Giao thức tầng mạng
44
DHCP
Mục đích: cho phép máy lấy địa chỉ IP động tự động
từ máy chủ trong mạng khi nó tham gia vào mạng
– Có thể làm mới địa chỉ
– Cho phép sử dụng lại địa chỉ
– Hỗ trợ người dùng di động (laptop) khi họ muốn tham
gia vào mạng
Tổng quan DHCP:
–
–
–
–
Client phát tán thông điệp “DHCP discover”
DHCP server trả lời với thông điệp “DHCP offer”
Client yêu cầu địa chỉ IP: th/điệp “DHCP request”
DHCP server gửi địa chỉ: t/điệp “DHCP ack”
Chương 5 - Giao thức tầng mạng
45
Kịch bản khách-chủ DHCP
DHCP
server
223.1.1.0/24
223.1.2.1
223.1.1.1
223.1.1.2
223.1.1.4
223.1.1.3
223.1.2.9
223.1.3.27
223.1.2.2
arriving DHCP
client needs
address in this
network
223.1.2.0/24
223.1.3.2
223.1.3.1
223.1.3.0/24
Chương 5 - Giao thức tầng mạng
46
Kịch bản khách-chủ DHCP
DHCP server: 223.1.2.5
DHCP discover
src : 0.0.0.0, 68
arriving
client
Broadcast:
is there a
dest.: 255.255.255.255,67
DHCPyiaddr:
server 0.0.0.0
out there?
transaction ID: 654
DHCP offer
src: 223.1.2.5, 67
Broadcast:
I’m a DHCP
dest: 255.255.255.255,
68
yiaddrr:Here’s
223.1.2.4
server!
an IP
transaction ID: 654
address
you can use
lifetime: 3600 secs
DHCP request
src: 0.0.0.0, 68
dest:: 255.255.255.255, 67
Broadcast:
OK. I’ll take
yiaddrr: 223.1.2.4
that
IP address!
transaction
ID: 655
lifetime: 3600 secs
DHCP ACK
src: 223.1.2.5, 67
dest: 255.255.255.255,
68
Broadcast:
OK. You’ve
yiaddrr: 223.1.2.4
got
that IPID:
address!
transaction
655
lifetime: 3600 secs
Chương 5 - Giao thức tầng mạng
47
Địa chỉ IP: Làm sao để có đ/c mạng
Hỏi: Làm sao ISP lấy được một khối địa chỉ?
Đáp: ICANN: Internet Corporation for Assigned
Names and Numbers
– Cấp phát địa chỉ
– Quản lí DNS
– Đăng kí tên miền, giải quyết tranh chấp
Chương 5 - Giao thức tầng mạng
48
Địa chỉ IP: Quản lý địa chỉ phân cấp
ISP's block
11001000 00010111 00010000 00000000
200.23.16.0/20
Organization 0
Organization 1
Organization 2
...
Organization 7
11001000 00010111 00010000 00000000 200.23.16.0/23
11001000 00010111 00010010 00000000 200.23.18.0/23
11001000 00010111 00010100 00000000 200.23.20.0/23
‡..
‡.
‡.
11001000 00010111 00011110 00000000 200.23.30.0/23
Organization 0
200.23.16.0/23
Organization 2
200.23.20.0/23
Organization 7
.
.
.
.
.
.
“Gửi cho tơi các gói
tin với địa chỉ bắt đầu
bằng 200.23.16.0/20”
ISP-X
Internet
200.23.30.0/23
ISP - ABC
Organization 1
200.23.18.0/23
“Gửi cho tơi các gói tin
với địa chỉ bắt đầu bằng
199.31.0.0/16 hoặc
200.23.18.0/23”
Chương 5 - Giao thức tầng mạng
49
Quản lý địa chỉ phân cấp
Đánh địa chỉ phân cấp cho phép quảng bá thông tin định tuyến một cách hiệu
quả:
ISP-ABC có đường đi cụ thể hơn tới ISP-X
Organization 0
200.23.16.0/23
Organization 2
200.23.20.0/23
Organization 7
.
.
.
.
.
.
“Gửi cho tôi các gói
tin với địa chỉ bắt đầu
bằng 200.23.16.0/20”
ISP-X
Internet
200.23.30.0/23
ISP - ABC
Organization 1
200.23.18.0/23
“Gửi cho tơi các gói tin
với địa chỉ bắt đầu bằng
199.31.0.0/16 hoặc
200.23.18.0/23”
Chương 5 - Giao thức tầng mạng
50