You are on page 1of 528

Chương 1

Giới thiệu

Ghi chú
Slides này dựa trên sildes của J.F Kurose and K.W. Ross .
Computer Networking:
A Top Down Approach
Featuring the Internet,
3rd edition.
Jim Kurose, Keith Ross
Addison-Wesley, July
2004.

Lê Đình Thanh, MMT-Giới thiệu 1-1


Chương 1: Giới thiệu
Mục đích: Tổng quan:
• Hiểu các thuật ngữ và • Internet là gì?
bắt đầu có “cảm nhận” • Thế nào là một giao thức?
về mạng • Biên của mạng
• Hiểu sâu hơn các chi tiết • Lõi của mạng
về mạng ở phần sau của • Truy cập môi trường vật lý
khóa học • Cấu trúc Internet/ISP
• Tiếp cận: • Hiệu năng: mất gói, trễ
– Sử dụng Internet làm • Các tầng giao thức, các mô hình
ví dụ dịch vụ
• Mô hình hóa mạng

Lê Đình Thanh, MMT-Giới thiệu 1-2


Chương 1: Nội dung
1.1 Internet là gì?
1.2 Biên của mạng
1.3 Lõi của mạng
1.4 Truy cập mạng và môi trường vật lý
1.5 Cấu trúc Internet và ISPs
1.6 Trễ & mất gói trong các mạng chuyển gói
1.7 Các tầng giao thức, các mô hình dịch vụ
1.8 Lịch sử về mạng

Lê Đình Thanh, MMT-Giới thiệu 1-3


Internet là gì: cách nhìn theo thành phần
• Hàng triệu thiết bị tính toán router
workstation
được kết nối với nhau: hosts
= các hệ thống cuối chạy các server
mobile
ứng dụng mạng local ISP
• Các liên kết truyền thông
– Sợi, đồng, radio, vệ tinh
– Tốc độ truyền = băng thông regional ISP
• Bộ định tuyến: chuyển tiếp
các gói tin (các đoạn dữ liệu)

company
network
Lê Đình Thanh, MMT-Giới thiệu 1-4
Internet là gì: cách nhìn theo thành phần
• Các giao thức điều khiển gửi, router workstation
nhận các thông báo server
– Ví dụ TCP, IP, HTTP, FTP, PPP mobile
• Internet: “mạng của các mạng” local ISP
– Phân cấp lỏng
– Internet công cộng khác mạng
intranet riêng regional ISP
• Các chuẩn Internet
– RFC: Request for comments
– IETF: Internet Engineering Task
Force
company
network
Lê Đình Thanh, MMT-Giới thiệu 1-5
Internet là gì: cách nhìn theo dịch vụ
• Hạ tầng truyền thông cho
phép các ứng dụng phân tán:
– Web, email, games, thương mại
điện tử, chia sẻ tệp, chat, …
• Các dịch vụ truyền thông
được cung cấp cho ứng dụng
– Hướng kết nối, tin cậy
– Phi kết nối, không tin cậy

Lê Đình Thanh, MMT-Giới thiệu 1-6


Giao thức là gì?
Giao thức mạng:
• Tất cả hoạt động truyền thông trên Internet được kiểm
soát bởi các giao thức

Các giao thức định nghĩa định dạng, thứ tự các thông báo
được gửi và nhận giữa các thực thể mạng, và hành vi của
các thực thể khi gửi, nhận được thông báo

Lê Đình Thanh, MMT-Giới thiệu 1-7


Giao thức là gì?
Một giao thức của con người và một giao thức mạng máy tính:

Chào
Yêu cầu kết
nối TCP
Chào
Đáp ứng kết
Có thời gian không? nối TCP
Get http://www.awl.com/kurose-ross
2:00
<tệp>
thời gian

H: Cho ví dụ khác về giao thức của con người?


Lê Đình Thanh, MMT-Giới thiệu 1-8
Chương 1: Nội dung
1.1 Internet là gì?
1.2 Biên của mạng
1.3 Lõi của mạng
1.4 Truy cập mạng và đường truyền vật lý
1.5 Cấu trúc Internet và các ISPs
1.6 Trễ & mất mát trong các mạng chuyển gói
1.7 Các tầng giao thức, các mô hình dịch vụ
1.8 Lịch sử về mạng

Lê Đình Thanh, MMT-Giới thiệu 1-9


Một cái nhìn gần hơn đến cấu trúc mạng:
• Biên:
– các ứng dụng + các hệ
thống cuối
• Lõi:
– routers
– Mạng của các mạng
• Truy cập mạng, môi
trường vật lý: các liên kết

Lê Đình Thanh, MMT-Giới thiệu 1-10


Biên của mạng:
• Các hệ thống cuối:
– Chạy các chương trình ứng dụng
vd. Web, email
– ở “biên của mạng”
• Mô hình khách/phục vụ
– Trình khách yêu cầu và nhận dịch
vụ từ trình phục vụ
– vd. Web browser/server; email
client/server
• Mô hình ngang hàng:
– tối thiểu (hoặc không) sử dụng
máy chủ chuyên biệt
– vd. Gnutella, KaZaA

Lê Đình Thanh, MMT-Giới thiệu 1-11


Biên của mạng: dịch vụ hướng kết nối
Mục đích: truyền dữ liệu giữa TCP service [RFC 793]
các hệ thống cuối
• Tin cậy, chuyển dòng byte
• Bắt tay (handshaking): thiết theo thứ tự
lập kết nối trước khi chuyển
– Mất mát: báo và phát lại
dữ liệu
– Hai đầu cuối đồng ý truyền • Điều khiển luồng:
dữ liệu cho nhau – Nút gửi không áp đảo nút nhận
– Thiết lập “trạng thái” giữa • Điều khiển tắc nghẽn:
hai đầu cuối
– Nút gửi “giảm tốc độ gửi” khi
• TCP - Transmission Control mạng tắc nghẽn
Protocol
– Giao thức hướng kết nối của
Internet

Lê Đình Thanh, MMT-Giới thiệu 1-12


Biên của mạng: dịch vụ phi kết nối

Mục đích: truyền dữ liệu giữa Ứng dụng sử dụng TCP:


các hệ thống cuối • HTTP (Web), FTP (file
– Giống trước! transfer), Telnet (remote
• UDP - User Datagram login), SMTP (email)
Protocol [RFC 768]: Ứng dụng sử dụng UDP:
– Phi kết nối • streaming media, hội nghị
– Không tin cậy trực tuyến, DNS, điện
– Không điều khiển luồng thoại Internet
– Không điều khiển tắc
nghẽn

Lê Đình Thanh, MMT-Giới thiệu 1-13


Chương 1: Nội dung
1.1 Internet là gì?
1.2 Biên của mạng
1.3 Lõi của mạng
1.4 Truy cập mạng và đường truyền vật lý
1.5 Cấu trúc Internet và ISPs
1.6 Trễ & mất mát trong các mạng chuyển gói
1.7 Các tầng giao thức, các mô hình dịch vụ
1.8 Lịch sử về mạng

Lê Đình Thanh, MMT-Giới thiệu 1-14


Lõi mạng
• (Mạng) lưới các bộ định tuyến
được kết nối với nhau
• Câu hỏi cơ bản: dữ liệu được
truyền qua mạng như thế nào?
– Chuyển mạch (circuit
switching): một đường
truyền chuyên biệt cho mỗi
cuộc gọi: mạng điện thoại
– Chuyển gói (packet-
switching): dữ liệu được
truyền qua mạng dưới các
“khối” rời

Lê Đình Thanh, MMT-Giới thiệu 1-15


Lõi mạng: Chuyển mạch

Các tài nguyên từ đầu cuối


đến đầu cuối được
dành cho “cuộc gọi”
• Băng thông của các liên kết,
năng lực truyền
• Các tài nguyên được dành
riêng: không chia sẻ
• Hoạt động như mạch
• Cần có thiết lập cuộc gọi
(cuộc gọi <> kết nối)

Lê Đình Thanh, MMT-Giới thiệu 1-16


Lõi mạng: Chuyển mạch
Tài nguyên mạng (ví dụ ❑ Chia băng thông thành các mẫu

băng thông) được chia  Chia theo tần số


 Chia theo thời gian
thành các “mẫu”
• Các mẫu được cấp phát cho
cuộc gọi
• Mẫu tài nguyên "rỗi” nếu
không được sử dụng bởi
cuộc gọi nào

Lê Đình Thanh, MMT-Giới thiệu 1-17


Chuyển mạch: FDM và TDM
Ví dụ:
FDM
4 người dùng

Tần số

Thời gian

TDM

Tần số

Thời gian
Lê Đình Thanh, MMT-Giới thiệu 1-18
Lõi mạng: Chuyển gói
Mỗi dòng dữ liệu đầu cuối – đầu Cạnh tranh tài nguyên:
cuối được chia thành các gói ❑ Tổng tài nguyên được yêu cầu
(packets) có thể vượt tổng hiện có
❑ Tắc nghẽn: xếp hàng các gói,
• Các gói chia sẻ tài nguyên đợi để sử dụng liên kết
mạng ❑ Lưu và chuyển tiếp: tại mỗi thời
• Mỗi gói sử dụng toàn bộ băng điểm, các gói chuyển một chặng
thông của liên kết  Nút nhận toàn bộ gói trước

• Tài nguyên được sử dụng khi khi chuyển tiếp


cần

Băng thông được chia thành các


“mẫu”
Cấp phát chuyên biệt
Dành tài nguyên Lê Đình Thanh, MMT-Giới thiệu 1-19
Chuyển gói: Hợp kênh thống kê
10 Mb/s C
A Ethernet statistical multiplexing

1.5 Mb/s
B
Hàng đợi các gói
đợi liên kết ra

D E

Dãy các gói của A & B không có mẫu cố định hợp kênh
thống kê.
TrongTDM mỗi nút nhận cùng một khe khi xử lý khung
TDM.
Lê Đình Thanh, MMT-Giới thiệu 1-20
Chuyển gói <> chuyển mạch
Chuyển gói cho phép nhiều người hơn sử dụng mạng!
• Liên kết 1 Mb/s
• Mỗi người dùng:
– 100 kb/s khi “hoạt động”
– Hoạt động 10% thời gian
N
người dùng
• Chuyển mạch: Liên kết
– 10 người dùng 1 Mbps

• Chuyển gói:
– Với 35 người dùng, xác suất
> 10 người dùng hoạt động
nhỏ hơn 0.0004

Lê Đình Thanh, MMT-Giới thiệu 1-21


Chuyển gói <> chuyển mạch
Chuyển gói có hơn chuyển mạch về mọi mặt không?

• Lý tưởng cho dữ liệu bùng nổ


– Chia sẻ tài nguyên
– Đơn giản hơn, không thiết lập cuộc gọi
• Tắc nghẽn: trễ và mất gói
– Cần các giao thức cho truyền tin cậy, điều khiển tắc
nghẽn
• H: Làm thế nào để cung cấp hành vi tựa chuyển mạch?
– Băng thông đảm bảo cần cho ứng dụng audio/video
– Vẫn là bài toán chưa giải được (Chương 6)

Lê Đình Thanh, MMT-Giới thiệu 1-22


Chuyển gói: lưu và chuyển tiếp
L
R R R

• Cần L/R giây để chuyển Ví dụ:


(đẩy) gói L bits ra liên kết • L = 7.5 Mbits
có tốc độ R bps • R = 1.5 Mbps
• Toàn bộ gói phải đến bộ • delay = 15 giây
định tuyến trước khi nó có
thể được chuyển trên liên
kết tiếp theo: lưu và
chuyển tiếp

Lê Đình Thanh, MMT-Giới thiệu 1-23


Mạng chuyển gói: chuyển tiếp
• Mục đích: chuyển gói qua các bộ định tuyến từ nguồn đến
đích
– Chúng ta sẽ nghiên cứu nghiều giải thuật chọn đường (định tuyến) ở
Chương 4
• Mạng datagram:
– Địa chỉ đích của gói xác định chặng kế tiếp
– Các đường có thể thay đổi
– Tương tự: lái xe, hỏi đường
• Mạng mạch ảo:
– mỗi gói mang định danh mạch ảo xác định chặng kế tiếp
– Đường đi cố định được xác định tại thời gian thiết lập cuộc gọi
– Các bộ định tuyến duy trì trạng thái từng cuộc gọi

Lê Đình Thanh, MMT-Giới thiệu 1-24


Phân loại
Telecommunication
networks

Circuit-switched Packet-switched
networks networks

FDM Networks Datagram


TDM
with VCs Networks

Lê Đình Thanh, MMT-Giới thiệu 1-25


Chương 1: Nội dung
1.1 Internet là gì?
1.2 Biên của mạng
1.3 Lõi của mạng
1.4 Truy cập mạng và môi trường truyền vật lý
1.5 Cấu trúc Internet và ISPs
1.6 Trễ & mất gói trong các mạng chuyển gói
1.7 Các tầng giao thức, các mô hình dịch vụ
1.8 Lịch sử về mạng

Lê Đình Thanh, MMT-Giới thiệu 1-26


Truy cập mạng và môi trường vật lý
H: Kết nối các hệ thống cuối
với bộ định tuyến biên như
thế nào?
• Truy cập tại nhà
• Truy cập ở công sở
• Truy cập mạng di động
Ghi nhớ:
• Băng thông (bits/s) của
mạng?
• Chia sẻ hay dành riêng?

Lê Đình Thanh, MMT-Giới thiệu 1-27


Truy cập tại nhà: truy cập điểm-điểm

• Quay số qua modem


– Tới 56Kbps truy cập trực tiếp router
– Không thể vừa gọi điện thoại vừa lướt
mạng: không thể “luôn chạy”

❑ ADSL: asymmetric digital subscriber line


 Tới 1 Mbps upstream (ngày nay chủ yếu < 256 kbps)
 Tới 8 Mbps downstream (ngày nay chủ yếu < 1 Mbps)
 FDM: 50 kHz - 1 MHz cho downstream
4 kHz - 50 kHz cho upstream
0 kHz - 4 kHz cho telephone thứ cấp

Lê Đình Thanh, MMT-Giới thiệu 1-28


Truy cập tại nhà: modem cáp

• HFC: hybrid fiber coax


– Bất đối xứng: tới 30Mbps downstream, 2 Mbps
upstream
• Mạng của cáp và sợi kết nối các máy tại nhà đến ISP
router
– Các máy tại nhà chia sẻ router
• Triển khai: các công ty truyền hình cáp

Lê Đình Thanh, MMT-Giới thiệu 1-29


Truy cập tại nhà: modem cáp

Lê Đình Thanh, MMT-Giới thiệu


Diagram: http://www.cabledatacomnews.com/cmic/diagram.html 1-30
Kiến trúc mạng cáp: Tổng quan

Typically 500 to 5,000 homes

cable headend

home
cable distribution
network (simplified)
Lê Đình Thanh, MMT-Giới thiệu 1-31
Kiến trúc mạng cáp: Tổng quan

cable headend

home
cable distribution
network (simplified)
Lê Đình Thanh, MMT-Giới thiệu 1-32
Kiến trúc mạng cáp: Tổng quan

server(s)

cable headend

home
cable distribution
network
Lê Đình Thanh, MMT-Giới thiệu 1-33
Kiến trúc mạng cáp: Tổng quan

FDM:

C
O
V V V V V V N
I I I I I I D D T
D D D D D D A A R
E E E E E E T T O
O O O O O O A A L

1 2 3 4 5 6 7 8 9

Channels

cable headend

home
cable distribution
network
Lê Đình Thanh, MMT-Giới thiệu 1-34
Truy cập từ công sở: local area networks
• Mạng LAN của cơ quan kết nối
hệ thống cuối với bộ định
tuyến biên
• Ethernet:
– Các liên kết được chia sẻ
hoặc dành riêng kết nối hệ
thống cuối và bộ định tuyến
– 10 Mbs, 100Mbps, Gigabit
Ethernet
• LANs: Chương 5

Lê Đình Thanh, MMT-Giới thiệu 1-35


Mạng truy cập không dây
• Mạng truy cập không dây chia sẻ
kết nối hệ thống cuối với bộ định
tuyến router
– Thông qua các trạm cơ sở, gọi là điểm
truy cập (access point) base
• wireless LANs: station

– 802.11b (WiFi): 11 Mbps


• wider-area wireless access
– Được cung cấp bởi các công ty viễn
thông
mobile
– 3G ~ 384 kbps hosts
– WAP/GPRS ở Châu Âu

Lê Đình Thanh, MMT-Giới thiệu 1-36


Mạng tại nhà
Các thành phần điển hình:
• ADSL hoặc modem cáp
• router/firewall/NAT
• Ethernet
• Điểm truy cập không dây

wireless
to/from laptops
cable router/
cable
modem firewall
headend
wireless
access
Ethernet point

Lê Đình Thanh, MMT-Giới thiệu 1-37


Môi trường vật lý
Xoắn đôi (Twisted Pair-TP)
• Bit: lan truyền giữa các cặp • Hai dây đồng bọc cách
thiết bị gửi/nhận điện
• Liên kết vật lý: nối giữa thiết bị – Cat 3: dây điện thoại, 10
gửi và thiết bị nhận Mbps Ethernet
• Truyền có hướng: – Cat 5:
100Mbps Ethernet
– Tín hiệu lan truyền trong đường
truyền đặc: đồng, sợi, đồng trục
• Truyền không hướng:
– Tín hiệu lan truyền tự do, ví dụ
radio

Lê Đình Thanh, MMT-Giới thiệu 1-38


Đường truyền vật lý: đồng trục, sợi
Cáp đồng trục: Cáp sợi quang:
❑ Sợi thủy tinh dẫn các xung ánh
• Một sợt lõi và một lưới trụ sáng, mỗi xung là một bít
• Hai chiều ❑ Tốc độ cao:
 Truyền điểm-điểm tốc độ
• Băng thông cơ sở: cao (vd., 5 Gps)
– Một kênh trên cáp ❑ Tỉ lệ lỗi thấp: các repeaters đặt
– legacy Ethernet cách xa nhau; không chịu tác động
của nhiễm điện từ
• Băng thông rộng:
– nhiều kênh trên cáp
– HFC

Lê Đình Thanh, MMT-Giới thiệu 1-39


Đường truyền mật lý: radio
• Tín hiệu được mang trong Các loại liên kết radio:
các phổ điện từ ❑ Vi sóng mặt đất
 Vd. Các kênh tới 45 Mbps
• Không có “dây” vật lý
❑ LAN (vd., Wifi)
• Lưỡng hướng  2Mbps, 11Mbps
• Các hiệu ứng môi trường ❑ Diện rộng (vd. tế bào)
truyền:  Vd. 3G: hàng trăm kbps
– Phản xạ ❑ Vệ tinh

– Bị chặn bởi các vật  Kênh tới 50Mbps (hoặc


nhiều kênh nhỏ hơn)
– Nhiễu
 270 msec trễ cuối-cuối
 Địa tĩnh khác độ cao

Lê Đình Thanh, MMT-Giới thiệu 1-40


Chương 1: Nội dung
1.1 Internet là gì?
1.2 Biên của mạng
1.3 Lõi của mạng
1.4 Truy cập mạng và môi trường vật lý
1.5 Cấu trúc Internet và ISPs
1.6 Trễ & mất mát trong các mạng chuyển gói
1.7 Các tầng giao thức, các mô hình dịch vụ
1.8 Lịch sử về mạng

Lê Đình Thanh, MMT-Giới thiệu 1-41


Cấu trúc Internet: mạng của các mạng

• Phân tầng thô


• ở giữa: “tier-1” ISPs (vd., UUNet, BBN/Genuity, Sprint, AT&T),
phủ phạm vi quốc gia và quốc tế
– Các ISP bình đẳng với nhau
Các ISP tầng 1
cũng kết nối với
Các ISP tầng Tier 1 ISP điểm truy cập
1 kết nối mạng (NAP) công
NAP
riêng với cộng
nhau (ngang
hàng)
Tier 1 ISP Tier 1 ISP

Lê Đình Thanh, MMT-Giới thiệu 1-42


Tier-1 ISP: vd., Sprint
Sprint US backbone network

Lê Đình Thanh, MMT-Giới thiệu 1-43


Cấu trúc Internet: mạng của các mạng

• “Tier-2” ISPs: nhỏ hơn (thường ở phạm vi khu vực) ISPs


– Kết nối đến một hoặc nhiều tier-1 ISPs, có thể đến các tier-2 ISPs khác

Các tier-2
Tier-2 ISP trả Tier-2 ISP ISPs cũng kết
Tier-2 ISP
tiền cho tier-1 nối riêng với
ISP để kết nối Tier 1 ISP nhau, hoặc kết
với phần còn lại NAP nối NAP
của Internet
❑ tier-2 ISP là
khách hàng của Tier 1 ISP Tier 1 ISP Tier-2 ISP
tier-1 ISP
Tier-2 ISP Tier-2 ISP

Lê Đình Thanh, MMT-Giới thiệu 1-44


Cấu trúc Internet: mạng của các mạng

• “Tier-3” ISPs và ISPs địa phương


– Mạng truy cập chặng cuối (gần hệ thống cuối nhất)

local
ISP Tier 3 local
local local
ISP ISP
ISP ISP
tier- 3 ISPs là Tier-2 ISP Tier-2 ISP
khách hàng của
tier-2 ISPs Tier 1 ISP
NAP

Tier 1 ISP Tier 1 ISP Tier-2 ISP


local
Tier-2 ISP Tier-2 ISP
ISP
local local local
ISP ISP Lê Đình Thanh, MMT-Giới
ISPthiệu 1-45
Cấu trúc Internet: mạng của các mạng

• Một gói đi qua nhiều mạng!

local
ISP Tier 3 local
local local
ISP ISP
ISP ISP
Tier-2 ISP Tier-2 ISP
Tier 1 ISP
NAP

Tier 1 ISP Tier 1 ISP Tier-2 ISP


local
Tier-2 ISP Tier-2 ISP
ISP
local local local
ISP ISP Lê Đình Thanh, MMT-Giới
ISPthiệu 1-46
Chương 1: Nội dung
1.1 Internet là gì?
1.2 Biên của mạng
1.3 Lõi của mạng
1.4 Truy cập mạng và môi trường vật lý
1.5 Cấu trúc Internet và ISPs
1.6 Trễ & mất gói trong các mạng chuyển gói
1.7 Các tầng giao thức, các mô hình dịch vụ
1.8 Lịch sử về mạng

Lê Đình Thanh, MMT-Giới thiệu 1-47


Trễ và mất gói xảy ra như thế
nào?
Các gói xếp hàng ở bộ đệm của router
• Tốc độ gói đến lớn hơn năng lực liên kết ra
• Các gói xếp hàng, đợi để đi tiếp

Gói đang được truyền (>> trễ)

B
Gói đang xếp hàng (>> trễ)
Vùng đệm còn rỗi: các gói đến bị loại bỏ
(>> mất) nếu không còn vùng đệm rỗi
Lê Đình Thanh, MMT-Giới thiệu 1-48
Bốn nguyên nhân gây trễ
• 1. xử lý ở nút: ❑ 2. xếp hàng

– Kiểm tra lỗi  đợi ở liên kết ra để


được truyền
– Xác định liên kết ra
 Phụ thuộc vào mức độ
tắc nghẽn của router

transmission
A
propagation

B
nodal
processing queueing

Lê Đình Thanh, MMT-Giới thiệu 1-49


Trễ ở mạng chuyển gói
3. Phát: 4. Lan truyền:
• R=băng thông liên kết • d = độ dài của liên kết (m)
(bps) • s = tốc độ lan truyền (~2x108
• L=độ dài gói (bits) m/sec)
• Thời gian để gửi các bits • Trễ lan truyền = d/s
ra liên kết = L/R
Lưu ý: s và R là các đại lượng rất
khác nhau!
transmission
A
propagation

B
nodal
processing queueing
Lê Đình Thanh, MMT-Giới thiệu 1-50
Tương tự Đoàn xe
100 km 100 km
Đoàn 10 xe Trạm Trạm
soát vé soát vé
• Các xe “lan truyền” với tốc độ • Thời gian để “đẩy” toàn bộ
100 km/hr đoàn xe qua trạm soát vé ra
• Trạm soát vé cần 12 s để đường cao tốc = 12*10 = 120
phục vụ một xe (transmission s
time) • Thời gian để xe cuối đi từ
• xe~bit; đoàn xe ~ gói trạm thứ nhất đến trạm thứ
hai: 100km/(100km/hr)= 1 hr
• H: Cần bao lâu để đoàn xe
đậu trước trạm soát vé thứ • A: 62 phút
hai?
Lê Đình Thanh, MMT-Giới thiệu 1-51
Tương tự Đoàn xe (tiếp)
100 km 100 km
Đoàn Trạm soát vé Trạm soát vé
10 xe

• Có! Sau 7 phút, xe thứ nhất


• Các xe “lan truyền” với tốc đến trạm thứ hai và 3 xe còn ở
độ 1000 km/hr trạm thứ nhất
• Trạm soát vé cần 1 phút để • Bit thứ nhất có thể đến router
phục vụ một xe thứ hai trước khi toàn bộ gói
• H: Có xe đến trạm thứ hai được truyền tại router thứ
trước khi tất cả các xe nhất!
được phục vụ ở trạm thứ – Xem Ethernet applet tại AWL
nhất? Website

Lê Đình Thanh, MMT-Giới thiệu 1-52


Trễ nút
d nodal = d proc + d queue + d trans + d prop

• dproc = trễ xử lý
– Thường vài microsecs hoặc ít hơn
• dqueue = trễ xếp hàng
– Phụ thuộc vào tắc nghẽn
• dtrans = trễ phát
– = L/R, đáng kể với các liên kết tốc độ thấp
• dprop = trễ lan truyền
– Một vài microsecs đến hàng trăm msecs

Lê Đình Thanh, MMT-Giới thiệu 1-53


Trễ xếp hàng (chi tiết hơn)

• R=băng thông liên kết


(bps)
• L=độ dài gói (bits)
• a=tốc độ trung bình gói
đến
Cường độ dữ liệu = La/R

❑ La/R ~ 0: trễ xếp hàng trung bình thấp


❑ La/R -> 1: trễ lớn
❑ La/R > 1: nhiều “việc” đến hơn khả năng phục vụ, trễ không
giới hạn!

Lê Đình Thanh, MMT-Giới thiệu 1-54


Trễ Internet

• Trễ và mất gói ở Internet thực như thế nào?


• Traceroute program: đo trễ từ nút nguồn đến router
trên đường định tuyến đến đích. Cho mỗi i:
– Gửi ba gói tin đến router thứ i trên đường định tuyến đến đích
– router i trả lời nút gửi ghi nhận được gói gửi cho nó
– Nút tính thời gian từ lúc gửi đến lúc nhận được trả lời.

3 probes 3 probes

3 probes

Lê Đình Thanh, MMT-Giới thiệu 1-55


Trễ Internet
traceroute: gaia.cs.umass.edu to www.eurecom.fr
Three delay measements from
gaia.cs.umass.edu to cs-gw.cs.umass.edu
1 cs-gw (128.119.240.254) 1 ms 1 ms 2 ms
2 border1-rt-fa5-1-0.gw.umass.edu (128.119.3.145) 1 ms 1 ms 2 ms
3 cht-vbns.gw.umass.edu (128.119.3.130) 6 ms 5 ms 5 ms
4 jn1-at1-0-0-19.wor.vbns.net (204.147.132.129) 16 ms 11 ms 13 ms
5 jn1-so7-0-0-0.wae.vbns.net (204.147.136.136) 21 ms 18 ms 18 ms
6 abilene-vbns.abilene.ucaid.edu (198.32.11.9) 22 ms 18 ms 22 ms
7 nycm-wash.abilene.ucaid.edu (198.32.8.46) 22 ms 22 ms 22 ms trans-oceanic
8 62.40.103.253 (62.40.103.253) 104 ms 109 ms 106 ms
9 de2-1.de1.de.geant.net (62.40.96.129) 109 ms 102 ms 104 ms link
10 de.fr1.fr.geant.net (62.40.96.50) 113 ms 121 ms 114 ms
11 renater-gw.fr1.fr.geant.net (62.40.103.54) 112 ms 114 ms 112 ms
12 nio-n2.cssi.renater.fr (193.51.206.13) 111 ms 114 ms 116 ms
13 nice.cssi.renater.fr (195.220.98.102) 123 ms 125 ms 124 ms
14 r3t2-nice.cssi.renater.fr (195.220.98.110) 126 ms 126 ms 124 ms
15 eurecom-valbonne.r3t2.ft.net (193.48.50.54) 135 ms 128 ms 133 ms
16 194.214.211.25 (194.214.211.25) 126 ms 128 ms 126 ms
17 * * *
18 * * * * means no reponse (probe lost, router not replying)
19 fantasia.eurecom.fr (193.55.113.142) 132 ms 128 ms 136 ms

Lê Đình Thanh, MMT-Giới thiệu 1-56


Mất gói
• Dung lượng bộ đệm (hàng đợi) của router có
hạn
• Khi gói đến hàng đợi đã đầy, gói bị loại bỏ
(mất)
• Gói bị mất có thể được phát lại bởi nút liền
trước, bởi nút nguồn hoặc không được phát
lại

Lê Đình Thanh, MMT-Giới thiệu 1-57


Chương 1: Nội dung
1.1 Internet là gì?
1.2 Biên của mạng
1.3 Lõi của mạng
1.4 Truy cập mạng và môi trường vật lý
1.5 Cấu trúc Internet và ISPs
1.6 Trễ & mất gói trong các mạng chuyển gói
1.7 Các tầng giao thức, các mô hình dịch vụ
1.8 Lịch sử về mạng

Lê Đình Thanh, MMT-Giới thiệu 1-58


Các tầng giao thức
Mạng phức tạp!
• Nhiều “phần”:
– Hệ thống cuối Câu hỏi:
– Bộ định tuyến Có thể tổ chức cấu trúc mạng
– Liên kết với nhiều được không?
loại đường truyền
– Ứng dụng
– Giao thức
– Phần cứng, phần
mềm

Lê Đình Thanh, MMT-Giới thiệu 1-59


Tổ chức vận chuyển hàng không
(Mua) vé (Soát) vé

(Gửi) hành lý (Nhận) hành lý

(Kiểm tra) cổng vào (Kiểm tra) cổng ra

(Cất) cánh (Hạ) cánh

(Bay theo) hành trình (Bay theo) hành trình


(Bay theo) hành trình

• Một chuỗi các bước


Lê Đình Thanh, MMT-Giới thiệu 1-60
Phân tầng chức năng hàng không

ticket (purchase) ticket (complain) ticket

baggage (check) baggage (claim baggage

gates (load) gates (unload) gate

runway (takeoff) runway (land) takeoff/landing

airplane routing airplane routing airplane routing airplane routing airplane routing

departure intermediate air-traffic arrival


airport control centers airport

Tầng: mỗi tầng thực hiện một dịch vụ


– Thông qua các hoạt động trong nội tầng
– Dựa vào các dịch vụ được cung cấp bởi tầng
dưới
– Cung cấp dịch vụ cho tầng trên
Lê Đình Thanh, MMT-Giới thiệu 1-61
Các tầng giao thức Internet
Ở biên mạng:
• Ứng dụng: hỗ trợ các ứng dụng mạng application
– FTP, SMTP, HTTP
transport
• Giao vận: truyền dữ liệu đầu cuối-đầu cuối
– TCP, UDP network

Ở lõi & biên mạng: link


• Mạng: định tuyến các gói tin từ nguồn đến đích physical
– IP, các giao thức định tuyến
• Liên kết: truyền dữ liệu giữa hai nút láng giềng
– PPP, Ethernet
• Vật lý: bits “trên đường truyền”

Lê Đình Thanh, MMT-Giới thiệu 1-62


source
message M application
Bao gói
segment Ht M transport
datagram Hn Ht M network
frame Hl Hn Ht M link
physical
Hl Hn Ht M link Hl Hn Ht M
physical

switch

destination Hn Ht M network Hn Ht M
M application Hl Hn Ht M link Hl Hn Ht M
Ht M transport physical
Hn Ht M network
Hl Hn Ht M link router
physical

Lê Đình Thanh, MMT-Giới thiệu 1-63


Chương 1: Nội dung
1.1 Internet là gì?
1.2 Biên của mạng
1.3 Lõi của mạng
1.4 Truy cập mạng và môi trường vật lý
1.5 Cấu trúc Internet và ISPs
1.6 Trễ & mất gói trong các mạng chuyển gói
1.7 Các tầng giao thức, các mô hình dịch vụ
1.8 Lịch sử về mạng

Lê Đình Thanh, MMT-Giới thiệu 1-64


Lịch sử Internet
1961-1972: Các nguyên lý chuyển gói ban đầu

• 1961: Kleinrock – lý thuyết • 1972:


hàng đợi cho thấy hiệu quả – ARPAnet công cộng
của chuyển gói
– NCP (Network Control
• 1964: Baran – chuyển gói Protocol) là giao thức đầu
trong mạng quân sự cuối-đầu cuối đầu tiên
• 1967: ARPAnet được triển – Chương trình e-mail đầu
khai bởi Advanced Research tiên
Projects Agency
– ARPAnet có 15 nút
• 1969: nút ARPAnet đầu tiên
được vận hành

Lê Đình Thanh, MMT-Giới thiệu 1-65


Lịch sử Internet
1972-1980: Liên mạng, các mạng đặc quyền mới

• 1970: Mạng vệ tinh ALOHAnet ở Các nguyên lý liên mạng của Cerf
Hawaii và Kahn’s:
• 1973: Metcalfe’ đề xuất Ethernet – Tối thiểu hóa, tự trị - không
trong luận án Tiến sỹ yêu cầu thay đổi bên trong
• 1974: Cerf và Kahn – kiến trúc liên mỗi mạng khi kết nối các
mạng mạng với nhau
• late70’s: kiến trúc mạng đặc – Mô hình dịch vụ nỗ lực tối
quyền: DECnet, SNA, XNA đa
• late 70’s: chuyển gói có độ dài cố – Router phi trạng thái
định (ATM precursor) – Điều khiển phi tập trung
• 1979: ARPAnet có 200 nút xác định kiến trúc Internet ngày
nay

Lê Đình Thanh, MMT-Giới thiệu 1-66


Lịch sử Internet
1990, 2000’s: thương mại hóa, Web, các ứng dụng mới

• Đầu 1990’s: ARPAnet ngừng hoạt Cuối 1990’s – 2000’s:


động
• tin nhắn nhanh, chia sẻ tệp
• 1991: NSF đưa các giới hạn sử dụng ngang hàng
NSFnet trong thương mại (ngừng
• An ninh mạng trở nên nổi bật
hoạt động, 1995)
• Ước tính 50 tỉ host, 100 tỷ người
• Đầu 1990s: Web
dùng
– hypertext [Bush 1945, Nelson
• Các liên kết backbone có tốc độ
1960’s]
Gbps
– HTML, HTTP: Berners-Lee
– 1994: Mosaic, sau đó Netscape
– Cuối 1990’s: thương mại hóa Web

Lê Đình Thanh, MMT-Giới thiệu 1-67


Tại sao lại phân tầng?
Giải quyết các hệ thống phức tạp:
• Cấu trúc rõ ràng cho phép định danh, quan hệ giữa các
phần
• Môđun hóa giúp bảo trì, cập nhật hệ thống dễ dàng hơn
– Thay đổi cài đặt dịch vụ một tầng không ảnh
hưởng đến các tầng còn lại
• Nếu giao diện của tầng không thay đổi

Lê Đình Thanh, MMT-Giới thiệu 1-68


Giới thiệu: Tóm tắt
Bao gồm nhiều nội dung! Bạn có:
• Tổng quan Internet • Ngữ cảnh, tổng quan,
• Giao thức là gì? “cảm nhận” về mạng
• Biên, lõi, truy cập mạng • Chi tiết, sâu hơn trong
– Chuyển gói khác chuyển các bài tiếp theo!
mạch
• Cấu trúc Internet/ISP
• Hiệu năng: mất, trễ
• Phân tầng và các mô hình dịch
vụ
• Lịch sử

Lê Đình Thanh, MMT-Giới thiệu 1-69


Chương 2
Tầng ứng dụng

Ghi chú
Slides này dựa trên sildes của J.F Kurose and K.W. Ross .

Computer Networking: A
Top Down Approach
Featuring the Internet,
3rd edition.
Jim Kurose, Keith Ross
Addison-Wesley, July 2004.

1
Lê Đình Thanh, MMT-Tầng ứng dụng
Chương 2: Tầng ứng dụng
• 2.1 Các nguyên lý của ứng • 2.6 Chia sẻ tệp ngang hàng
dụng mạng • 2.7 Lập trình socket với TCP
• 2.2 Web và HTTP • 2.8 Lập trình socket với
• 2.3 FTP UDP
• 2.4 Thư điện tử • 2.9 Phát triển một Web
– SMTP, POP3, IMAP server
• 2.5 DNS

2
Lê Đình Thanh, MMT-Tầng ứng dụng
Chương 2: Tầng ứng dụng
Mục đích: • Học các giao thức bằng
• Khái niệm, các khía cạnh việc thực hành các giao
cài đặt của các giao thức thức tầng ứng dụng phổ
tầng ứng dụng biến
– Các mô hình dịch vụ – HTTP
tầng giao vận – FTP
– SMTP / POP3 / IMAP
– Mô hình khách-phục
– DNS
vụ
– Mô hình ngang hàng • Lập trình ứng dụng mạng
– socket API

3
Lê Đình Thanh, MMT-Tầng ứng dụng
Một số ứng dụng mạng
• Thư điện tử • Điện thoại Internet
• Web • Hội nghị trực tuyến
• Tin nhắn nhanh • Tính toán song song hiệu
• Đăng nhập từ xa năng cao
• Chia sẻ tệp ngang hàng
• Trò chơi mạng với nhiều
người chơi
• Truyền video theo dòng

4
Lê Đình Thanh, MMT-Tầng ứng dụng
Tạo một ứng dụng mạng
Viết chương trình application
transport
network
– Chạy ở các hệ thống cuối khác data link
physical
nhau
– Giao tiếp qua mạng.
• Sử dụng dịch vụ tầng giao vận
– TCP, UDP
– vd., Web: Phần mềm Web
server giao tiếp với các trình
duyệt
application
Không có phần mềm được viết application
transport
transport
network
network
cho thiết bị trong lõi mạng data link
data link
physical
physical
– Thiết bị lõi mạng không hoạt
động ở tầng ứng dụng

5
Lê Đình Thanh, MMT-Tầng ứng dụng
Chương 2: Tầng ứng dụng
• 2.1 Các nguyên lý của ứng • 2.6 Chia sẻ tệp ngang hàng
dụng mạng • 2.7 Lập trình socket với TCP
• 2.2 Web và HTTP • 2.8 Lập trình socket với
• 2.3 FTP UDP
• 2.4 Thư điện tử • 2.9 Phát triển một Web
– SMTP, POP3, IMAP server
• 2.5 DNS

6
Lê Đình Thanh, MMT-Tầng ứng dụng
Các kiến trúc ứng dụng
• Khách-phục vụ (Client-server)
• Ngang hàng (Peer-to-peer)
• Lai (client-server và P2P)

7
Lê Đình Thanh, MMT-Tầng ứng dụng
Kiến trúc Client-server
server:
– Đầu cuối luôn chạy
– Địa chỉ IP cố định
– server farms cho tính khả
mở rộng
clients:
– Giao tiếp với server
– Lúc kết nối, lúc không
– Có thể có địa chỉ IP động
– Không giao tiếp với client
khác

8
Lê Đình Thanh, MMT-Tầng ứng dụng
Kiến trúc thuần ngang hàng
• Không có server luôn chạy
• Các hệ thống cuối bất kỳ
giao tiếp trực tiếp với nhau
• Các đầu cuối ngang hàng
(peers) kết nối theo thời
điểm và thay đổi địa chỉ IP
giữa các lần kết nối
• vd: Gnutella
Tính khả mở rộng rất cao
Nhưng khó quản trị

9
Lê Đình Thanh, MMT-Tầng ứng dụng
Lai giữa client-server và P2P
Napster
– Truyền tệp P2P
– Tìm tệp tập trung:
• Peers đăng ký nội dung tại server trung tâm
• Peers truy vấn server trung tâm để định vị nội dung
Tin nhắn nhanh
– Chat giữa hai người dùng là P2P
– Phát hiện sự có mặt (online)/xác định vị trí: tập trung:
• Người dùng đăng ký địa chỉ IP của nó với server trung tâm khi online
• Người dùng liên hệ server trung tâm để tìm địa chỉ IP của bạn chat

10
Lê Đình Thanh, MMT-Tầng ứng dụng
Truyền thông tiến trình
Tiến trình (process): chương Tiến trình khách: tiến trình
trình đang chạy ở một host. khởi tạo truyền thông
• Ở trên cùng host, hai tiến Tiến trình phục vụ: tiến trình
trình truyền thông sử dụng đợi được liên hệ
truyền thông liên tiến trình
(được xác định bởi HĐH).
• Các tiến trình ở các host
khác nhau truyền thông  Ghi chú: các ứng dụng với kiến trúc
P2P có cả tiến trình khách và tiến
bằng trao đổi thông báo trình phục vụ

11
Lê Đình Thanh, MMT-Tầng ứng dụng
Sockets
host or host or
• Tiến trình gửi/nhận thông server server
báo với nhau qua socket
Được kiểm soát bởi
• socket tương tự như cửa người phát triển
process process
– Tiến trình gửi chuyển thông
báo ra ngoài cửa socket socket
– Hậ tầng truyền thông bên ngoài TCP with TCP with
buffers, Internet buffers,
cửa chuyển thông báo đến
variables variables
trước cửa của tiến trình nhận

Được kiểm soát bởi HĐH

 API: (1) lựa chọn giao thức giao vận; (2) xác định một số tham số

12
Lê Đình Thanh, MMT-Tầng ứng dụng
Địa chỉ của tiến trình
• Để một tiến trình nhận • Định danh tiến trình bao
được thông báo, nó phải gồm cả địa chỉ IP và số
có một định danh hiệu cổng tương ứng với
• Một host có một địa chỉ IP tiến trình.
duy nhất • Ví dụ số hiệu cổng:
• H: Địa chỉ IP của host mà – HTTP server: 80
tiến trình đang chạy có thể – Mail server: 25
làm định danh tiến trình?
• TL: Không, nhiều tiến trình
có thể cùng chạy trên cùng
host

13
Lê Đình Thanh, MMT-Tầng ứng dụng
Giao thức tầng ứng dụng định nghĩa
• Các loại thông báo được trao Giao thức công cộng:
đổi giữa các tiến trình ứng • Được định nghĩa trong RFCs
dụng • Cho phép liên tác
– Cú pháp/định dạng/cấu trúc
của các thông báo: dãy các • vd, HTTP, SMTP
trường (thông tin) Giao thức đặc quyền:
– Ngữ nghĩa của các trường = • vd, KaZaA
nghĩa của thông tin trong các
trường
• Các luật xử lý (khi nào và
như thế nào) gửi/nhận
thông báo

14
Lê Đình Thanh, MMT-Tầng ứng dụng
Một ứng dụng cần dịch vụ giao vận nào?
Mất dữ liệu Băng thông
 Một số ứng dụng (vd., multimedia)
• Một số ứng dụng (vd., audio) yêu cầu băng thông tối thiểu để có
có thể thứ một số gói mất “hiệu lực”
• Các ứng dụng khác (vd.,  Các ứng dụng khác tận dụng mọi
truyền tệp, telnet) yêu cầu băng thông chúng nhận

100% truyền dữ liệu tin cậy

Định thời
• Một số ứng dụng (vd.,
điện thoại Internet, trò
chơi có tương tác) yêu
cầu trễ thấp để có “hiệu
lực”
15
Lê Đình Thanh, MMT-Tầng ứng dụng
Yêu cầu dịch vụ giao vận của một số ứng dụng phổ biến

Ứng dụng Mất DL Băng thông Định thời

Truyền tệp no loss elastic no


e-mail no loss elastic no
Web no loss elastic no
audio/video loss-tolerant audio: 5kbps-1Mbps yes, 100’s msec
thời gian thực video:10kbps-5Mbps
audio/video lưu trữ loss-tolerant same as above yes, few secs
Games tương tác loss-tolerant few kbps up yes, 100’s msec
Tin nhắn nhanh no loss elastic yes and no

16
Lê Đình Thanh, MMT-Tầng ứng dụng
Các dịch vụ giao vận Internet

TCP: UDP:
• Hướng kết nối: cần có thiết lập kết • Truyền không tin cậy giữa tiến
nối giữa các tiền trình truyền trình gửi và tiến trình nhận
thông với nhau • Không cung cấp: thiết lập kết
• Giao vận tin cậy giữa tiến trình gửi nối, điều khiển luồng, kiểm
và tiến trình nhận soát tắc nghẽn, định thời,
• Điều khiển luồng: tiến trình gửi hoặc đảm bảo băng thông
không gửi quá khả năng nhận của
tiến trình nhận H: Tại sao lại có UDP?
• Điều khiển tắc nghẽn: giảm tốc độ
gửi khi mạng quá tải
• Không cung cấp: định thời, đảm
bảo băng thông tối thiểu

17
Lê Đình Thanh, MMT-Tầng ứng dụng
Các ứng dụng Internet: giao thức tầng ứng dụng và giao
thức giao vận được sử dụng
Giao thức tầng Giao thức giao vận
Ứng dụng ứng dụng được sử dụng

e-mail SMTP [RFC 2821] TCP


Truy cập từ xa Telnet [RFC 854] TCP
Web HTTP [RFC 2616] TCP
Truyền tệp FTP [RFC 959] TCP
streaming multimedia proprietary TCP or UDP
(e.g. RealNetworks)
Điện thoại Internet proprietary
(e.g., Dialpad) typically UDP

18
Lê Đình Thanh, MMT-Tầng ứng dụng
Chương 2: Tầng ứng dụng
• 2.1 Các nguyên lý của ứng • 2.6 Chia sẻ tệp ngang hàng
dụng mạng • 2.7 Lập trình socket với TCP
• 2.2 Web và HTTP • 2.8 Lập trình socket với
• 2.3 FTP UDP
• 2.4 Thư điện tử • 2.9 Phát triển một Web
– SMTP, POP3, IMAP server
• 2.5 DNS

19
Lê Đình Thanh, MMT-Tầng ứng dụng
Web và HTTP
Một số thuật ngữ ban đầu
• Trang web bao gồm các đối tượng
• Đối tượng có thể là tệp HTML, JPEG image, Java applet, audio
file,…
• Trang web bao gồm tệp HTML chứa tham chiếu các các đối
tượng
• Mỗi đối tượng có thể đánh địa chỉ bằng một URL
• Vd. URL:
www.someschool.edu/someDept/pic.gif

Địa chỉ máy Đường dẫn

20
Lê Đình Thanh, MMT-Tầng ứng dụng
Tổng quan HTTP
HTTP: hypertext transfer
protocol
• Giao thức tầng ứng dụng cho PC running
Web Explorer
• Mô hình client/server
– client: trình duyệt yêu cầu,
nhận và hiển thị các đối
tượng Web Server
– server: Web server gửi các đối running
Apache Web
tượng web trong các đáp ứng
server
yêu cầu
• HTTP 1.0: RFC 1945
Mac running
• HTTP 1.1: RFC 2068 Navigator

21
Lê Đình Thanh, MMT-Tầng ứng dụng
Tổng quan HTTP (tiếp)
Sử dụng TCP: HTTP là “phi trạng thái”
• HTTP client/trình duyệt khởi tạo • server không duy trì
kết nối TCP (tạo socket) đến thông tin các yêu cầu
HTTP/Web server trước
• Server chấp nhận kết nối TCP của
Bên lề
client Giao thức duy trì trạng thái phức
• Các thông báo HTTP được trao tạp!
đổi giữa trình duyệt và server  Phải lưu lịch sử (trạng thái)
• Kết nối TCP được đóng  Nếu server/client treo, cái nhìn
về “trạng thái” của hai tiến
trình sẽ không nhất quán

22
Lê Đình Thanh, MMT-Tầng ứng dụng
Kết nối HTTP
Không liên tục Liên tục
• Nhiều nhất một đối tượng • Nhiều đối tượng có thể
được gửi trong một kết nối được gửi trong một kết nối
TCP. TCP.
• HTTP/1.0 sử dụng kết nối • HTTP/1.1 sử dụng kết nối
không liên tục HTTP liên tục ở chế độ mặc định

23
Lê Đình Thanh, MMT-Tầng ứng dụng
HTTP không liên tục
Giử sử người dùng nhập URL www.someSchool.edu/someDepartment/home.index (chứa text,
tham chiếu đến
10 ảnh jpeg)

1a. HTTP client khởi động kết nối TCP


đến HTTP server tại
1b. HTTP server ở
www.someSchool.edu trên cổng
80 www.someSchool.edu đợi kết
nối TCP ở cổng 80. “chấp nhận”
kết nối, báo cho client

2. HTTP client gửi thông báo HTTP


request (chứa URL) vào socket TCP.
Thông báo biểu thị rằng client cần 3. HTTP server nhận thông báo yêu
các đối tượng tại cầu, tạo thông báo response chứa
someDepartment/home.index đối tượng được yêu cầu, và gửi ra
socket của nó

time
24
Lê Đình Thanh, MMT-Tầng ứng dụng
HTTP không liên tục (tiếp)

4. HTTP server đóng kết nối TCP.

5. HTTP client nhận response chứa tệp


html, hiển thị html. Phân tích
html, tìm thấy 10 đối tượng jpeg
được tham chiếu

time
6. Các bước 1-5 được lặp lại cho mỗi
đối tượng ảnh

25
Lê Đình Thanh, MMT-Tầng ứng dụng
Mô hình hóa thời gian đáp ứng
Thời gian quay vòng - RTT: thời
gian để gửi một gói nhỏ từ
client đến server rồi quay
ngược lại từ server đến client. initiate TCP
Thời gian đáp ứng: connection
RTT
• Một RTT để thiết lập kết nối
request
TCP file
• Một RTT để gửi HTTP request RTT
time to
transmit
và nhận một số bytes đầu tiên file
file
của HTTP response received
• Thời gian truyền tệp
total = 2RTT+transmit time time time

26
Lê Đình Thanh, MMT-Tầng ứng dụng
HTTP liên tục

Hạn chế của HTTP không liên tục: Liên tục không đường ống:
• Yêu cầu 2 RTTs / đối tượng • client gửi yêu cầu tiếp theo khi
• HĐH phải làm việc và cấp tài đã nhận được response cho
nguyên cho mỗi kết nối TCP yêu cầu trước
• nhưng các trình duyệt thường • Một RTT/ đối tượng tham chiếu
mở nhiều kết nối TCP song song Liên tục với đường ống:
để yêu cầu các đối tượng tham • Mặc định ở HTTP/1.1
chiếu • client gửi các yêu cầu ngay khi
HTTP liên tục nó bắt gặp đối tượng tham
• server để kết nối mở sau khi gửi chiếu
response • Có thể chỉ cần một RTT cho tất
• Các thông báo HTTP tiếp sau cả các đối tượng tham chiếu
được gửi qua kết nối

27
Lê Đình Thanh, MMT-Tầng ứng dụng
HTTP request

• Hai loại thông báo HTTP: request, response


• HTTP request message:
– ASCII (định dạng người đọc được)

request line
(GET, POST, GET /somedir/page.html HTTP/1.1
HEAD commands) Host: www.someschool.edu
User-agent: Mozilla/4.0
header Connection: close
lines Accept-language:fr

Carriage return, (extra carriage return, line feed)


line feed
indicates end
of message
28
Lê Đình Thanh, MMT-Tầng ứng dụng
HTTP request: cấu trúc

29
Lê Đình Thanh, MMT-Tầng ứng dụng
Upload dữ liệu form
Phương thức Post:
• Web page thường bao gồm
form nhập Phương thức GET:
• Dữ liệu được đẩy lên server • Dữ liệu được đẩy lên theo
trong thân của HTTP URL:
request

www.somesite.com/animalsearch?monkeys&banana

30
Lê Đình Thanh, MMT-Tầng ứng dụng
Phương thức
HTTP/1.0 HTTP/1.1
• GET • GET, POST, HEAD
• POST • PUT
• HEAD – Đẩy tệp trong thân lên thư
mục được xác định bởi URL
– Yêu cầu server bỏ qua đối
tượng được yêu cầu • DELETE
– Xóa tệp được xác định bởi
URL

31
Lê Đình Thanh, MMT-Tầng ứng dụng
HTTP response
Dòng trạng thái
(giao thức
Mã trạng thái HTTP/1.1 200 OK
Mô tả trạng thái) Connection close
Date: Thu, 06 Aug 1998 12:00:15 GMT
Server: Apache/1.3.0 (Unix)
Các dòng tiêu đề
Last-Modified: Mon, 22 Jun 1998 …...
Content-Length: 6821
Content-Type: text/html

Dữ liệu: tệp data data data data data ...


HTML được
yêu cầu

32
Lê Đình Thanh, MMT-Tầng ứng dụng
Các mã trạng thái HTTP response
Dòng đầu tiên của HTTP response.
Một số ví dụ mã trạng thái:

200 OK
– Yêu cầu thành công, đối tượng được yêu cầu chứa ở phần sau của
thông báo
301 Moved Permanently
– Đối tượng được yêu cầu đã bị chuyển, thư mục mới của đối tượng
được xác định phía sau (Location:)
400 Bad Request
– Không hiểu yêu cầu
404 Not Found
– Không tìm thấy đối tượng được yêu cầu
505 HTTP Version Not Supported 33
Lê Đình Thanh, MMT-Tầng ứng dụng
Thử HTTP phía client

1. Telnet đến Web server:


telnet cis.poly.edu 80 Mở kết nối TCP tới cổng 80
(cổng mặc định của HTTP) tại cis.poly.edu.
Mọi thứ được nhập sẽ được gửi đến cổng
80 tại cis.poly.edu

2. Gõ GET HTTP request:

GET /~ross/ HTTP/1.1 Bằng việc nhập nội dung này (hai dấu
Host: cis.poly.edu xuống dòng), bạn gửi yêu cầu
GET request tối thiểu
đến HTTP server

3. Quan sát HTTP response nhận được!

34
Lê Đình Thanh, MMT-Tầng ứng dụng
Trạng thái người dùng-server:
cookies
Nhiều trình duyệt sử dụng Ví dụ:
cookies – Susan luôn truy cập Internet
Bốn thành phần: trên cùng một PC
– Cô vào một trang thương mại
1) Dòng tiêu đề cookie trong
điện tử lần đầu
HTTP response
– Khi các HTTP requests đến
2) Dòng tiêu đề cookie trong
site, site tạo một định danh
HTTP request
duy nhất và tạo một phần tử
3) Tệp cookie được lưu trên máy trong CSDL trên server cho
người dùng và quản trị bởi định danh này
trình duyệt
4) CSDL ở phía server

35
Lê Đình Thanh, MMT-Tầng ứng dụng
Cookies: lưu “trạng thái” (tiếp)
client server

Cookie file usual http request msg server


usual http response + creates ID
ebay: 8734 Set-cookie: 1678 1678 for user

Cookie file
usual http request msg
amazon: 1678 cookie: 1678 cookie-
ebay: 8734 specific
usual http response msg action
one week later:

Cookie file usual http request msg


cookie-
cookie: 1678
amazon: 1678 spectific
ebay: 8734 usual http response msg action

36
Lê Đình Thanh, MMT-Tầng ứng dụng
Cookies (tiếp)
Bên lề
Cookies và tính riêngtư:
cookies có thể mang:  cookies cho sites biết thông tin về
• Xác thực NSD
 NSD có thể cung cấp e-mail cho
• Giỏ hàng sites
• Khuyến cáo  Các máy tìm kiếm sử dụng chuyển
hướng và & cookies để thu thập
• Trạng thái phiên của thông tin
người dùng (Web e-mail)  Các công ty quảng cáo nhận thông
tin từ các sites

37
Lê Đình Thanh, MMT-Tầng ứng dụng
Web caches (proxy server)
Mục đích: đáp ứng yêu cầu của client mà không cần server gốc làm
việc
• Trình duyệt gửi HTTP đến origin
cache server

– Nếu đối tượng được yêu Proxy


cầu ở trong cache: cache server
gửi đối tượng cho trình client
duyệt
– Ngược lại cache yêu cầu đối
tượng từ server gốc, rồi gửi
đối tượng cho client

client
origin
server

38
Lê Đình Thanh, MMT-Tầng ứng dụng
Web caching (tiếp)
• Cache đóng vai trò cả client và Tại sao Web caching?
server • Giảm thời gian đáp ứng đến yêu
• Thường cache được cài đặt bởi cầu của client.
ISP (trường ĐH, công ty, ISP địa • Giảm lưu lượng trên các liên kết
phương) bên trong tổ chức.
• Internet với nhiều caches cho
phép các nhà cung cấp nội dung
chuyển tải nội dung hiệu quả

39
Lê Đình Thanh, MMT-Tầng ứng dụng
Ví dụ Caching
origin
Giả thiết
servers
• Kích thước trung bình các đối
tượng = 100,000 bits public
Internet
• Trung bình tần suất yêu cầu từ các
trình duyệt bên trong tổ chức đến
server gốc = 15/sec
1.5 Mbps
• Trễ vòng từ router của tổ chức đến
access link
server gốc = 2 sec
institutional
Hệ quả network
10 Mbps LAN
• Sử dụng LAN = 15%
• Sử dụng access link = 100%
• Tổng trễ = trễ Internet + trễ truy cập
+ trễ LAN institutional
= 2 sec + minutes + milliseconds cache

40
Lê Đình Thanh, MMT-Tầng ứng dụng
Ví dụ Caching (tiếp)
origin
Giải pháp có thể
servers
• Tăng băng thông của access link, ví
dụ lên 10 Mbps public
Internet
Hệ quả
• Sử dụng LAN = 15%
• Sử dụng access link = 15%
10 Mbps
• Tổng trễ = trễ Internet + trễ truy cập + access link
trễ LAN
institutional
= 2 sec + msecs + msecs
network
• Thường tốn kém để nâng cấp 10 Mbps LAN

institutional
cache

41
Lê Đình Thanh, MMT-Tầng ứng dụng
Ví dụ Caching (tiếp)
origin
Cài đặt cache servers
• Giả sử tần suất tìm thấy là .4 public
Hệ quả Internet
• 40% yêu cầu được đáp ứng ngay
lập tức
• 60% yêu cầu được đáp ứng bởi
server gốc 1.5 Mbps
access link
• Sử dụng access link còn 60%,
giảm được trễ (10 msec) institutional
• Tổng trễ = trễ Internet + trễ truy network
10 Mbps LAN
cập + trễ LAN = .6*(2.01) secs +
milliseconds < 1.4 secs

institutional
cache

42
Lê Đình Thanh, MMT-Tầng ứng dụng
GET có điều kiện
cache server
• Mục đích: không gửi đối tượng
nếu cache đang có phiên bản cập HTTP request msg
nhật If-modified-since:
<date> object
• cache: đưa thông tin thời điểm not
cập nhật cuối của bản copy trên modified
cache vào HTTP request HTTP response
HTTP/1.0
If-modified-since: 304 Not Modified
<date>
• server: response không chứa đối
HTTP request msg
tượng nếu bản copy trên cache là If-modified-since:
cập nhật: <date> object
HTTP/1.0 304 Not modified
Modified HTTP response
HTTP/1.0 200 OK
<data>
43
Lê Đình Thanh, MMT-Tầng ứng dụng
Chương 2: Tầng ứng dụng
• 2.1 Các nguyên lý của ứng • 2.6 Chia sẻ tệp ngang hàng
dụng mạng • 2.7 Lập trình socket với TCP
• 2.2 Web và HTTP • 2.8 Lập trình socket với
• 2.3 FTP UDP
• 2.4 Thư điện tử • 2.9 Phát triển một Web
– SMTP, POP3, IMAP server
• 2.5 DNS

44
Lê Đình Thanh, MMT-Tầng ứng dụng
FTP: file transfer protocol

FTP file transfer


FTP FTP
user client server
interface
user
at host local file remote file
system system

• Chuyển tệp từ/đến máy ở xa


• Mô hình client/server
– client: bên khởi tạo truyền (hoặc từ/đến máy ở xa)
– server: máy ở xa
• ftp: RFC 959
• ftp server: port 21

45
Lê Đình Thanh, MMT-Tầng ứng dụng
FTP: phân biệt hai kết nối điều khiển/dữ liệu
TCP control connection
• FTP client liên lạc FTP server ở port 21
cổng 21, sử dụng TCP ở tầng giao
vận
TCP data connection
• Client xác nhận xác thực trên kết FTP port 20 FTP
nối điều khiển client server
• Client gửi lệnh qua kết nối điều
khiển.  Server mở kết nối TCP thứ hai để
truyền tệp thứ hai.
• Khi nhận được lệnh chuyển tệp,
 Kết nối điều khiển: “out of band”
server mở kết nối TCP trên cổng
 FTP server duy trì “trạng thái”:
20 đến client để truyền tệp
thư mục hiện tại, xác thực trước
• Sau khi truyền xong một tệp, đây
server đóng kết nối dữ liệu.

46
Lê Đình Thanh, MMT-Tầng ứng dụng
Lệnh FTP, đáp ứng

Ví dụ lệnh: Ví dụ mã trả về
• Được gửi văn bản mã ASCII qua • Mã trạng thái và diễn giải
kênh điều khiển • 331 Username OK,
• USER username password required
• PASS password • 125 data connection
already open; transfer
• LIST trả về danh sách tệp trong
starting
thư mục hiện tại
• 425 Can’t open data
• RETR filename nhận tệp connection
• STOR filename lưu (đẩy) tệp • 452 Error writing file
lên máy ở xa

47
Lê Đình Thanh, MMT-Tầng ứng dụng
Chương 2: Tầng ứng dụng
• 2.1 Các nguyên lý của ứng • 2.6 Chia sẻ tệp ngang hàng
dụng mạng • 2.7 Lập trình socket với TCP
• 2.2 Web và HTTP • 2.8 Lập trình socket với
• 2.3 FTP UDP
• 2.4 Thư điện tử • 2.9 Phát triển một Web
– SMTP, POP3, IMAP server
• 2.5 DNS

48
Lê Đình Thanh, MMT-Tầng ứng dụng
outgoing
Thư điện tử message queue
user mailbox
user
Ba thành phần chính: agent
• user agents mail
user
server
• mail servers agent
• simple mail transfer protocol: SMTP
mail
SMTP server user
SMTP agent
User Agent
• “mail reader” SMTP
mail user
• Biên soạn, gửi, nhận và đọc mail agent
server
• vd., Eudora, Outlook, elm,
Netscape Messenger user
agent
• Thư được lưu trên server
user
agent

49
Lê Đình Thanh, MMT-Tầng ứng dụng
Mail servers
user
Mail Servers agent
• mailbox chứa thư của người mail
user
dùng server
agent
• message queue chứa các thư SMTP
chuẩn bị gửi mail
server user
• Giao thức SMTP giữa các mail SMTP agent
servers để chuyển thư
– client: mail server gửi SMTP
user
– “server”: mail server nhận mail
agent
server

user
agent
user
agent

50
Lê Đình Thanh, MMT-Tầng ứng dụng
E-Mail: SMTP [RFC 2821]
• Sử dụng TCP để truyền email tin cậy từ client đến server, cổng 25
• Truyền trực tiếp: từ server gửi đến server nhận
• ba pha truyền
– Bắt tay (chào hỏi)
– Truyền thư
– Đóng
• Tương tác command/response
– commands: ASCII text
– response: mã và miêu tả trạng thái
• Thư phải ở dạng 7-bit ASCII

51
Lê Đình Thanh, MMT-Tầng ứng dụng
Kịch bản: Alice gửi thư cho Bob
1) Alice sử dụng UA để soạn thư 4) SMTP client gửi thư của Alice’s
với “to” qua kết nối TCP
bob@someschool.edu 5) Mail server của Bob lưu thư
2) UA của Alice gửi thư đến mail trong mailbox của Bob
server của cô ta; thư được lưu 6) Bob chạy UA của anh ta và đọc
ở message queue thư
3) SMTP client của trên mail server
của Alice mở kết nối TCP với
mail server của Bob

1 mail
mail
server user
user server
2 agent
agent 3 6
4 5

52
Lê Đình Thanh, MMT-Tầng ứng dụng
Ví dụ tương tác SMTP
S: 220 hamburger.edu
C: HELO crepes.fr
S: 250 Hello crepes.fr, pleased to meet you
C: MAIL FROM: <alice@crepes.fr>
S: 250 alice@crepes.fr... Sender ok
C: RCPT TO: <bob@hamburger.edu>
S: 250 bob@hamburger.edu ... Recipient ok
C: DATA
S: 354 Enter mail, end with "." on a line by itself
C: Do you like ketchup?
C: How about pickles?
C: .
S: 250 Message accepted for delivery
C: QUIT
S: 221 hamburger.edu closing connection

53
Lê Đình Thanh, MMT-Tầng ứng dụng
Ví dụ khác

54
Lê Đình Thanh, MMT-Tầng ứng dụng
Tự thử tương tác SMTP:

• telnet servername 25
• Xem trả lời 220 từ server
• Nhập các lệnh HELO, MAIL FROM, RCPT TO, DATA, QUIT

55
Lê Đình Thanh, MMT-Tầng ứng dụng
SMTP
• SMTP sử dụng kết nối bền vững So sánh với HTTP:
• SMTP yêu cầu thư (header &
• HTTP: kéo (pull)
body) ở dạng 7-bit ASCII
• SMTP: đẩy (push)
• SMTP server sử dụng
CRLF.CRLF để xác định kết thúc • Cả hai đều có tương tác
thư command/response với mã ASCII,
các mã trạng thái

• HTTP: mỗi đối tượng được chứa


bên trong một thông báo trả lời
• SMTP: nhiều đối tượng được gửi
trong thông báo có nhiều phần

56
Lê Đình Thanh, MMT-Tầng ứng dụng
Định dạng thư
SMTP: giao thức dùng cho trao đổi
email header
dòng
RFC 822: chuẩn cho format thông
trắng
báo bằng văn bản:
• Các dòng tiêu đề, vd.
– To: body
– From:
– Subject:
khác các lệnh SMTP!
• Thân
– “thông báo”, chỉ bao gồm các ký
tự ASCII

57
Lê Đình Thanh, MMT-Tầng ứng dụng
Định dạng thư: các mở rộng multimedia
• MIME: multimedia mail extension, RFC 2045, 2056
• Các dòng được thêm vào tiêu đề thư khai báo các dạng nội dung
MIME

From: alice@crepes.fr
MIME version To: bob@hamburger.edu
Subject: Picture of yummy crepe.
Phương thức được dùng MIME-Version: 1.0
để mã hóa dữ liệu Content-Transfer-Encoding: base64
Content-Type: image/jpeg
Khai báo các dạng
dữ liệu đa phương tiện base64 encoded data .....
.........................
......base64 encoded data
Dữ liệu được mã hóa

Lê Đình Thanh, MMT-Tầng ứng dụng 58


Các giao thức truy cập email
SMTP SMTP access
user
user protocol
agent
agent

sender’s mail receiver’s mail


server server

• SMTP: truyền email đến server nhận


• Giao thức truy cập email: nhận email từ server
– POP: Post Office Protocol [RFC 1939]
• Xác thực (agent <-->server) và download
– IMAP: Internet Mail Access Protocol [RFC 1730]
• Nhiều tính năng hơn (phức tạp hơn)
• Quản lý các thư được lưu trên server
– HTTP: Hotmail , Yahoo! Mail, Gmail, …

59
Lê Đình Thanh, MMT-Tầng ứng dụng
POP3 protocol
S: +OK POP3 server ready
C: user bob
Pha xác thực S: +OK
C: pass hungry
• Lệnh từ client: S: +OK user successfully logged on
– user: username C: list
– pass: password S: 1 498
S: 2 912
• Đáp ứng của server
S: .
– +OK C: retr 1
– -ERR S: <message 1 contents>
S: .
Pha giao dịch, client: C: dele 1
• list: liệt kê các số hiệu thư C: retr 2
• retr: nhận thư theo số hiệu S: <message 1 contents>
S: .
• dele: delete C: dele 2
• quit C: quit
S: +OK POP3 server signing off

60
Lê Đình Thanh, MMT-Tầng ứng dụng
POP3 (tiếp) và IMAP
Tiếp về POP3 IMAP
• Ví dụ trước sử dụng chế • Giữ mọi thư trên server
độ “download and • Cho phép người dùng sắp
delete”. xếp thư theo thư mục
• Bob không thể đọc lại e- • IMAP giữ trạng thái người
mail nếu anh ta thay đổi dùng qua các phiên:
client – Tên của các thư mục và ánh
• “Download-and-keep”: xạ giữa định danh thư và
bản sao của thư được lưu tên thư mục
ở các client khác nhau
• POP3 phi trạng thái

61
Lê Đình Thanh, MMT-Tầng ứng dụng
Chương 2: Tầng ứng dụng
• 2.1 Các nguyên lý của ứng • 2.6 Chia sẻ tệp ngang hàng
dụng mạng • 2.7 Lập trình socket với TCP
• 2.2 Web và HTTP • 2.8 Lập trình socket với
• 2.3 FTP UDP
• 2.4 Thư điện tử • 2.9 Phát triển một Web
– SMTP, POP3, IMAP server
• 2.5 DNS

62
Lê Đình Thanh, MMT-Tầng ứng dụng
DNS: Hệ thống tên miền

Người: có nhiều định danh: Domain Name System:


– CMT, tên, passport # • Cơ sở dữ liệu phân tán được cài
Internet hosts, routers: đặt theo kiến trúc phân cấp các
name servers
– Địa chỉ IP (32 bit) – sử dụng
• Giao thức tầng ứng dụng host,
để xác định nguồn, đích các
routers, name servers giao tiếp để
datagrams
phân giải tên (dịch địa chỉ/tên)
– “tên”, vd., ww.yahoo.com –
– Ghi chú: chức năng lõi
được sử dụng bởi con người
Internet, được cài đặt như giao
H: ánh xạ giữa IP và tên như thức tầng ứng dụng
thế nào? – Phức tạp ở biên mạng

63
Lê Đình Thanh, MMT-Tầng ứng dụng
DNS
Các dịch vụ DNS Tại sao không tập trung DNS?
• Dịch từ Hostname sang IP • Một điểm lỗi
• Đặt bí danh cho Host • Lưu lượng
– Tên gốc và các bí danh • CSDL tập trung ở xa
• Đặt bí danh cho Mail • Bảo trì
server
• Phân tải Không khả mở rộng!
– Các Web servers nhân bản:
tập địa chỉ IP cho một tên
gốc

64
Lê Đình Thanh, MMT-Tầng ứng dụng
CSDL phân cấp, phân tán
Root DNS Servers

com DNS servers org DNS servers edu DNS servers

pbs.org poly.edu umass.edu


yahoo.com amazon.com
DNS servers DNS serversDNS servers
DNS servers DNS servers

Client muốn biết địa chỉ IP của www.amazon.com:


• Client yêu cầu root server tìm com DNS server
• Client truy vấn com DNS server để biết amazon.com DNS
server
• Client truy vấn amazon.com DNS server để lấy địa chỉ IP
của www.amazon.com

65
Lê Đình Thanh, MMT-Tầng ứng dụng
DNS: Root name servers
• Được liên lạc bởi name server địa phương nếu name server không biết địa
chỉ IP tương ứng tên
• root name server:
– Liên lạc name server có thẩm quyền nếu không biết ánh xạ tên
– Lấy ánh xạ tên
– Trả ánh xạ tên cho name server địa phương
a Verisign, Dulles, VA
c Cogent, Herndon, VA (also Los Angeles)
d U Maryland College Park, MD
k RIPE London (also Amsterdam,
g US DoD Vienna, VA
Frankfurt) Stockholm (plus 3
i Autonomica,
h ARL Aberdeen, MD
j Verisign, ( 11 locations) other locations)

m WIDE Tokyo
e NASA Mt View, CA
f Internet Software C. Palo Alto,
CA (and 17 other locations)
13 root name servers
worldwide
b USC-ISI Marina del Rey, CA
l ICANN Los Angeles, CA

66
Lê Đình Thanh, MMT-Tầng ứng dụng
TLD Server và Servers thẩm quyền
• Top-level domain (TLD) servers: chịu trách
nhiệm cho com, org, net, edu, …, và tất cả các
tên miền cấp một các quốc gia như uk, fr, ca,
jp.
– Network solutions duy trì các servers cho com
TLD
– Educause duy trì các servers cho edu TLD
• DNS servers thẩm quyền: là DNS servers của
các tổ chức, cung cấp ánh xạ tên miền sang
địa chỉ IP cho các servers của tổ chức (vd.,
Web mail). 67
Lê Đình Thanh, MMT-Tầng ứng dụng
Local Name Server
• Không nhất thiết phải thuộc hệ thống phân
cấp
• Mỗi ISP (ISP địa phương, công ty, trường học)
có một LNS.
– Còn được gọi là “default name server”
• Khi một host tạo một truy vấn DNS, truy vấn
được gửi đến DNS địa phương
– Hoạt động như một proxy, chuyển truy vấn đến hệ
thống phân cấp.
68
Lê Đình Thanh, MMT-Tầng ứng dụng
root DNS server
Ví dụ
2
• Host ở cis.poly.edu cần 3
TLD DNS server
địa chỉ IP của 4
gaia.cs.umass.edu
5

local DNS server


dns.poly.edu
7 6
1 8

authoritative DNS server


dns.cs.umass.edu
requesting host
cis.poly.edu

gaia.cs.umass.edu

69
Lê Đình Thanh, MMT-Tầng ứng dụng
Ví dụ

70
Lê Đình Thanh, MMT-Tầng ứng dụng
Truy vấn đệ quy
root DNS server

Truy vấn đệ quy:


 Đặt quá tải lên name 2 3
server được hỏi
7 6
Truy vấn lặp:
TLD DNS server
 Server được hỏi trả lời
với tên của server cần
liên hệ local DNS server
4
 “Tôi không biết, anh có dns.poly.edu 5
thể hỏi server này” 1 8

authoritative DNS server


dns.cs.umass.edu
requesting host
cis.poly.edu

gaia.cs.umass.edu
71
Lê Đình Thanh, MMT-Tầng ứng dụng
DNS: lưu đệm và cập nhật bản ghi
• Một khi name server học được ánh xạ, nó lưu đệm ánh
xạ
– Các phần tử trong cache được đặt timeout
– TLD servers thường được lưu đệm tại các local name
servers
• Do vậy root name servers không thường xuyên được thăm
• Cơ chế cập nhật/thông báo được thiết kế bởi IETF
– RFC 2136
– http://www.ietf.org/html.charters/dnsind-charter.html

72
Lê Đình Thanh, MMT-Tầng ứng dụng
Các bản ghi DNS
DNS: CSDL phân tán lưu trữ các bản ghi tài nguyên (RR)
RR format: (name, value, type, ttl)

 Type=A  Type=CNAME
 name là hostname  name là bí danh cho tên thực
 value là IP address www.ibm.com thực tế là
servereast.backup2.ibm.com
• Type=NS  value là tên thực
– name là domain (vd.
foo.com)
– value là IP address của  Type=MX
name server thẩm quyền cho  value là tên mailserver tương
domain ứng với name

73
Lê Đình Thanh, MMT-Tầng ứng dụng
Giao thức DNS
DNS protocol : query và reply có cùng format

Tiêu đề thông báo


 identification: số thứ tự (16
bit) của query, reply cho
query có cùng số thứ tự
 flags:
 query hay reply
 Có mong đệ quy hay
không
 Có thể thực hiện đệ quy
không
 reply có thẩm quyền hay
không

74
Lê Đình Thanh, MMT-Tầng ứng dụng
Giao thức DNS

Tên, kiểu trường


cho try vấn

RRs trong trả lời


truy vấn

Các bản ghi


servers thẩm quyền

Các thông tin mở rộng


có thể được dùng

75
Lê Đình Thanh, MMT-Tầng ứng dụng
Chèn bản ghi vào DNS
• Ví dụ: Khởi động “Network Utopia”
• Đăng ký tên networkuptopia.com tại registrar (vd., Network
Solutions)
– Cần cung cấp cho registrar tên và địa chỉ IP addresses của name
server thẩm quyền (chính và thứ cấp)
– Registrar chèn hai RRs vào com TLD server:

(networkutopia.com, dns1.networkutopia.com, NS)


(dns1.networkutopia.com, 212.212.212.1, A)

• Đưa vào server thẩm quyền bản ghi Type A cho


www.networkuptopia.com và Type MX cho
networkutopia.com

76
Lê Đình Thanh, MMT-Tầng ứng dụng
Chương 2: Tầng ứng dụng
• 2.1 Các nguyên lý của ứng • 2.6 Chia sẻ tệp ngang hàng
dụng mạng • 2.7 Lập trình socket với TCP
• 2.2 Web và HTTP • 2.8 Lập trình socket với
• 2.3 FTP UDP
• 2.4 Thư điện tử • 2.9 Phát triển một Web
– SMTP, POP3, IMAP server
• 2.5 DNS

77
Lê Đình Thanh, MMT-Tầng ứng dụng
Chia sẻ tệp ngang hàng
• Alice chọn một trong các
Ví dụ peers, Bob.
• Alice chạy ứng dụng P2P • Tệp được copy từ máy của
client trên notebook của cô Bob đến notebook của
Alice: HTTP
• Kết nối Internet không liên
tục; nhận địa chỉ IP mới với • Trong khi Alice
mỗi kết nối downloads, người dùng
khác upload từ máy của
• Yêu cầu “Hey Jude”
Alice.
• Ứng dụng hiển thị các peers
• Máy của Alice vừa là HTTP
có bản sao của Hey Jude.
client vừa là HTTP server.
Mọi peers là servers = khả
mở rộng cao!
78
Lê Đình Thanh, MMT-Tầng ứng dụng
P2P: thư mục tập trung
Bob
Thiết kế “Napster” ban đầu centralized
directory server
1) Khi peer kết nối, nó thông 1
báo server trung tâm: peers

– Địa chỉ IP 1

– Nội dung (thư mục và tệp)


1 3
2) Alice truy vấn để tìm “Hey
2 1
Jude”
3) Alice yêu cầu tệp từ Bob

Alice

79
Lê Đình Thanh, MMT-Tầng ứng dụng
P2P: vấn đề với thư mục tập trung

• Một điểm lỗi làm tê liệt hệ truyền tệp được thực


thống hiện phân tán, nhưng
• Tắc nghẽn nút cổ chai định vị nội dung tập
• Vi phạm bản quyền trung

80
Lê Đình Thanh, MMT-Tầng ứng dụng
Phát tràn truy vấn: Gnutella
• Hoàn toàn phân tán Mạng chồng: đồ thị
– Không có server trung tâm • Cạnh giữa X và Y nếu có kết
• Giao thức được công bố nối TCP giữa hai peers
công cộng • Tất cả peers đang hoạt động
• Nhiều Gnutella clients cài và các cạnh tạo thành mạng
đặt giao thức overlay net
• Cạnh không phải là một liên
kết vật lý
• Một peer thường kết nối
với < 10 láng giềng

81
Lê Đình Thanh, MMT-Tầng ứng dụng
Gnutella: giao thức
File transfer:
Truy vấn được gửi
HTTP
qua các kết nối
TCP hiện tại
 peers chuyển tiếp
truy vấn Query
 QueryHit QueryHit
được gửi ngược
trên đường
đi

Query
QueryHit

Tính khả mở rộng:


Phát tràn có giới hạn

82
Lê Đình Thanh, MMT-Tầng ứng dụng
Gnutella: Peer tham gia mạng
1. Peer X muốn tham gia mạng phải tìm được peer khác trong
mạng Gnutella: sử dụng danh sách các peer ứng viên
2. X lần lượt thử kết nối TCP với các peers trong danh sách cho
đến khi tìm được peer Y kết nối được
3. X gửi thông báo Ping đến Y; Y chuyển tiếp Ping.
4. Tất cả các peers nhận được Ping trả lời bằng thông báo Pong
5. X nhận được nhiều thông báo trả lời Pong. Sau đó, nó có thể
tìm kết nối TCP khác
Peer rời mạng: bài tập

83
Lê Đình Thanh, MMT-Tầng ứng dụng
Khai thác sự hỗn tạp: KaZaA

• Mỗi peer hoặc là một


trưởng nhóm hoặc một
thành viên nhóm.
– Kết nối TCP giữa thành viên
nhóm và trưởng nhóm.
– Kết nối TCP giữa các trưởng
nhóm.
• Trưởng nhóm theo dõi nội
dung của các thành viên
thuộc nhóm. ordinary peer

group-leader peer

neighoring relationships
in overlay network

84
Lê Đình Thanh, MMT-Tầng ứng dụng
KaZaA: Truy vấn
• Mỗi tệp có một giá trị băm và một miêu tả
• Client gửi từ khóa truy vấn đến trưởng nhóm
của nó
• Trưởng nhóm trả lời bằng các bộ:
– Mỗi bộ: metadata, hash, IP address
• Nếu trưởng nhóm chuyến tiếp truy vấn đến
các trưởng nhóm khác, các trưởng nhóm khác
trả lời bằng các bộ
• Client chọn tệp download
– HTTP requests sử dụng hash làm định danh được
85
gửi đến peer có tệp cần download
Lê Đình Thanh, MMT-Tầng ứng dụng
Thủ thuật cho KazaA
• Hạn chế trong các upload đồng thời
• Xếp hàng request
• Sử dụng ưu tiên
• Download song song

86
Lê Đình Thanh, MMT-Tầng ứng dụng
Chương 2: Tầng ứng dụng
• 2.1 Các nguyên lý của ứng • 2.6 Chia sẻ tệp ngang hàng
dụng mạng • 2.7 Lập trình socket với TCP
• 2.2 Web và HTTP • 2.8 Lập trình socket với
• 2.3 FTP UDP
• 2.4 Thư điện tử • 2.9 Phát triển một Web
– SMTP, POP3, IMAP server
• 2.5 DNS

87
Lê Đình Thanh, MMT-Tầng ứng dụng
Lập trình Socket
Mục đích: học cách phát triển ứng dụng client/server sử dụng sockets

Socket API socket


• Được giới thiệu trong BSD4.1 Một giao diện ở host, được
UNIX, 1981 tạo bởi ứng dụng và quản lý
• Được tạo, sử dụng và giải phóng bởi HĐH (một “cửa”) qua đó
rõ ràng bởi các ứng dụng tiến trình có thể gửi và nhận
• Mô hình client/server thông báo đến/từ tiến trình
• Hai dịch vụ giao vận qua socket khác
API:
– datagram không tin cậy
– Dòng byte tin cậy

88
Lê Đình Thanh, MMT-Tầng ứng dụng
LT Socket sử dụng TCP
Socket: Một cửa giữa tiến trình ứng dụng và giao thức giao
thức giao vận (UCP hoặc TCP)
Dịch vụ TCP : truyền tin cậy dãy các bytes từ một tiến trình
đến tiến trình khác

Được điều khiển


Được điều khiển process bởi người
bởi người process
phát triển
phát triển socket socket
TCP với TCP với Được điều khiển
Được điều khiển đệm, bởi HĐH
bởi HĐH đệm, internet
biến biến

Host/ Host/
server server
89
Lê Đình Thanh, MMT-Tầng ứng dụng
LT Socket với TCP
Client phải liên lạc server • Khi được kết nối bởi client,
• Tiến trình server phải chạy server TCP tạo socket mới để
trước server giao tiếp với client
• Server phải tạo một socket – Cho phép server có thể nói
(cửa) chào đón client kết nối chuyện với nhiều clients
tới – source port được sử dụng để
Client kết nối server bằng: phân biệt (chi tiết ở Chương
3)
• Tạo TCP socket trên client
• Xác định socket của server
• Khi client tạo socket: client TCP góc nhìn ứng dụng
thiết lập kết nối đến server TCP
TCP cung cấp dịch vụ truyền
dãy bytes đến đích
đúng thứ tự và tin cậy

90
Lê Đình Thanh, MMT-Tầng ứng dụng
Thuật ngữ Stream
• Một dòng là một dãy ký tự chạy
ra/vào một tiến trình.
• Một dòng vào được đính vào một
nguồn vào của tiến trình như bàn
phím, tệp hoặc socket.
• Một dòng ra được gắn vào một
đích ra như màn hình, tệp,
socket.

91
Lê Đình Thanh, MMT-Tầng ứng dụng
LT Socket với TCP
keyboard monitor
Ví dụ ứng dụng client-server:
1) client đọc các dòng từ bộ đệm bàn

inFromUser
phím (inFromUser stream) , gửi input
stream
cho server qua socket Tiến trình
(outToServer stream) Process
client
2) server đọc các dòng từ socket
3) server chuyển các dòng sang chữ
hoa, gửi cho client

inFromServer
outToServer
4) client đọc và in nội dung được output input
server sửa đổi và trả về stream stream

(inFromServer stream)
client TCP
clientSocket
socket TCP
socket

to network from network

92
Lê Đình Thanh, MMT-Tầng ứng dụng
Tương tác client/server qua socket
Server (chạy trên hostid) Client

Tạo socket,
port=x, lắng nghe
yêu cầu:
welcomeSocket =
ServerSocket()

TCP Tạo socket,


Đợi yêu cầu
kết nối connection setup kết nối đến hostid, port=x
connectionSocket = clientSocket =
welcomeSocket.accept() Socket()

Gửi yêu cầu kết nối sử dụng


Đọc yêu cầu từ clientSocket
connectionSocket

Ghi trả lời tới


connectionSocket Đọc trả lời từ
clientSocket
Đóng
connectionSocket Đóng
clientSocket
93
Lê Đình Thanh, MMT-Tầng ứng dụng
Ví dụ: Java client (TCP)
import java.io.*;
import java.net.*;
class TCPClient {

public static void main(String argv[]) throws Exception


{
String sentence;
String modifiedSentence;
Tạo dòng vào
từ bàn phím BufferedReader inFromUser =
new BufferedReader(new InputStreamReader(System.in));
Tạo
client socket, Socket clientSocket = new Socket("hostname", 6789);
kết nối đến server
Tạo DataOutputStream outToServer =
dòng ra new DataOutputStream(clientSocket.getOutputStream());
đính vào scoket
94
Lê Đình Thanh, MMT-Tầng ứng dụng
Ví dụ: Java client (TCP), cont.

Tạo BufferedReader inFromServer =


dòng vào new BufferedReader(new
gắn vào socket InputStreamReader(clientSocket.getInputStream()));

sentence = inFromUser.readLine();
Gửi một dòng
đến server outToServer.writeBytes(sentence + '\n');

Đọc dòng modifiedSentence = inFromServer.readLine();


từ server
System.out.println("FROM SERVER: " + modifiedSentence);

clientSocket.close();

}
}
95
Lê Đình Thanh, MMT-Tầng ứng dụng
Ví dụ: Java server (TCP)
import java.io.*;
import java.net.*;

class TCPServer {

public static void main(String argv[]) throws Exception


{
String clientSentence;
Tạo String capitalizedSentence;
server socket
ServerSocket welcomeSocket = new ServerSocket(6789);
đợi ở cổng 6789
while(true) {
Đợi
liên lạc Socket connectionSocket = welcomeSocket.accept();
từ client
BufferedReader inFromClient =
Tạo new BufferedReader(new
dòng vào InputStreamReader(connectionSocket.getInputStream()));
gắn vào socket

96
Lê Đình Thanh, MMT-Tầng ứng dụng
Ví dụ: Java server (TCP), cont

Tạo
dòng ra, gắn vào
DataOutputStream outToClient =
socket
new DataOutputStream(connectionSocket.getOutputStream());
Đọc dòng
từ socket clientSentence = inFromClient.readLine();

capitalizedSentence = clientSentence.toUpperCase() + '\n';


Ghi dòng
ra socket outToClient.writeBytes(capitalizedSentence);
}
}
} Kết thúc vòng lặp,
quay lại và đợi
client khác kết nối

97
Lê Đình Thanh, MMT-Tầng ứng dụng
Chương 2: Tầng ứng dụng
• 2.1 Các nguyên lý của ứng • 2.6 Chia sẻ tệp ngang hàng
dụng mạng • 2.7 Lập trình socket với TCP
• 2.2 Web và HTTP • 2.8 Lập trình socket với
• 2.3 FTP UDP
• 2.4 Thư điện tử • 2.9 Phát triển một Web
– SMTP, POP3, IMAP server
• 2.5 DNS

98
Lê Đình Thanh, MMT-Tầng ứng dụng
LT Socket với UDP
UDP: không có “kết nối” giữa client
và server
• Không bắt tay
• Bên gửi chủ động ghi địa chỉ IP và Góc nhìn ứng dụng
port của đích vào mỗi gói tin
UDP cung cấp dịch vụtruyền
• Bên nhận phải đọc địa chỉ IP, port
không tin cậy các nhóm bytes
của bên gửi từ gói nhận được
từ nút gửi đến nút nhận
UDP: dữ liệu được truyền có thể
nhận được không đúng thứ tự, có
thể mất

99
Lê Đình Thanh, MMT-Tầng ứng dụng
Tương tác client/server: UDP
Server (chạy trên hostid) Client

Tạo socket,
Tạo socket,
port=x, lắng nghe clientSocket =
yêu cầu: DatagramSocket()
serverSocket =
DatagramSocket()
Tạo và gửi (hostid, port=x)
datagram request sử dụng
Nhận được yêu clientSocket
cầu kết nối
serverSocket

Ghi trả lời ra


serverSocket
Đọc trả lời từ
xác định
clientSocket
host, port
của client Đóng
clientSocket

100
Lê Đình Thanh, MMT-Tầng ứng dụng
Ví dụ: Java client (UDP)
keyboard monitor

inFromUser
input
stream

Tiến trình
Process
client Input: nhận gói (TCP
nhận “dòng byte”)
Output: gửi gói (TCP
gửi “dòng byte”)

receivePacket
sendPacket
UDP UDP
packet packet

client UDP
clientSocket
socket UDP
socket

to network from network

101
Lê Đình Thanh, MMT-Tầng ứng dụng
Ví dụ: Java client (UDP)
import java.io.*;
import java.net.*;

class UDPClient {
public static void main(String args[]) throws Exception
Tạo {
dòng vào BufferedReader inFromUser =
Tạo new BufferedReader(new InputStreamReader(System.in));
client socket
DatagramSocket clientSocket = new DatagramSocket();
Dịch
hostname sang IP InetAddress IPAddress = InetAddress.getByName("hostname");
sử dụng DNS
byte[] sendData = new byte[1024];
byte[] receiveData = new byte[1024];

String sentence = inFromUser.readLine();


sendData = sentence.getBytes();
102
Lê Đình Thanh, MMT-Tầng ứng dụng
Ví dụ: Java client (UDP), cont.
Tạo datagram với
độ dài dữ liệu, IP, DatagramPacket sendPacket =
port new DatagramPacket(sendData, sendData.length, IPAddress, 9876);

Gửi datagram clientSocket.send(sendPacket);


đến server
DatagramPacket receivePacket =
new DatagramPacket(receiveData, receiveData.length);
Đọc datagram
từ server clientSocket.receive(receivePacket);

String modifiedSentence =
new String(receivePacket.getData());

System.out.println("FROM SERVER:" + modifiedSentence);


clientSocket.close();
}
}

103
Lê Đình Thanh, MMT-Tầng ứng dụng
Ví dụ: Java server (UDP)
import java.io.*;
import java.net.*;

class UDPServer {
public static void main(String args[]) throws Exception
Tạo {
datagram socket
ở cổng 9876 DatagramSocket serverSocket = new DatagramSocket(9876);

byte[] receiveData = new byte[1024];


byte[] sendData = new byte[1024];

while(true)
{
Tạo không gian cho
gói nhận được DatagramPacket receivePacket =
new DatagramPacket(receiveData, receiveData.length);
Nhận serverSocket.receive(receivePacket);
datagram
104
Lê Đình Thanh, MMT-Tầng ứng dụng
Ví dụ: Java server (UDP), cont
String sentence = new String(receivePacket.getData());
Nhận đc IP
port # của InetAddress IPAddress = receivePacket.getAddress();
bên gửi
int port = receivePacket.getPort();

String capitalizedSentence = sentence.toUpperCase();

sendData = capitalizedSentence.getBytes();
Tạo datagram
để gửi cho client DatagramPacket sendPacket =
new DatagramPacket(sendData, sendData.length, IPAddress,
port);
Ghi
Datagram serverSocket.send(sendPacket);
từ socket }
}
} Kết thúc vòng lặp,
quay lại và đợi
datagram khác
105
Lê Đình Thanh, MMT-Tầng ứng dụng
Chương 2: Tầng ứng dụng
• 2.1 Các nguyên lý của ứng • 2.6 Chia sẻ tệp ngang hàng
dụng mạng • 2.7 Lập trình socket với TCP
• 2.2 Web và HTTP • 2.8 Lập trình socket với
• 2.3 FTP UDP
• 2.4 Thư điện tử • 2.9 Phát triển một Web
– SMTP, POP3, IMAP server
• 2.5 DNS

106
Lê Đình Thanh, MMT-Tầng ứng dụng
Xây dựng Web server đơn giản
• Xử lý các HTTP request • Sau khi tạo server, bạn có
• Chấp nhận request thể yêu cầu tệp từ trình
duyệt (vd. IE, FF)
• Phân tích header
• Nhận tệp được yêu cầu từ
hệ thống tệp
• Tạo HTTP response:
– Header + file
• Gửi response cho client

107
Lê Đình Thanh, MMT-Tầng ứng dụng
Chương 2: Tóm tắt
Chúng ta đã nghiên cứu về các ứng dụng mạng
 Các giao thức:
• Các kiến trúc ứng dụng
 HTTP
– client-server  FTP
– P2P  SMTP, POP, IMAP
– hybrid  DNS
 Lập trình socket
• Các yêu cầu dịch vụ:
– tin cậy, băng thông, trễ
• Mô hình dịch vụ giao vận
Internet
– Hướng kết nối, tin cậy: TCP
– Không tin cậy, datagrams: UDP

108
Lê Đình Thanh, MMT-Tầng ứng dụng
Chương 2: Tóm tắt
Quan trọng nhất: các giao thức

• Trao đổi request/reply:


 Thông báo điều khiển <> thông
– client yêu cầu thông tin báo dữ liệu
hoặc dịch vụ  in-band, out-of-band
– server trả lời với dữ liệu,  Tập trung <> phi tập trung
mã trạng thái  Phi trạng thái <> có trạng thái
• Định dạng thông báo:  Tin cậy <> không tin cậy
 “sự phức tạp của biên mạng”
– Tiêu đề: các trường cung
cấp thông tin về dữ liệu
– data: thông tin cần truyền
tải

109
Lê Đình Thanh, MMT-Tầng ứng dụng
Chương 3
Tầng giao vận

Ghi chú
Slides này dựa trên sildes của J.F Kurose and K.W. Ross .

Computer Networking: A
Top Down Approach
Featuring the Internet,

Jim Kurose, Keith Ross

Lê Đình Thanh, MMT-Tầng giao vận 3-1


Chương 3: Tầng giao vận
Mục đích:
• Hiểu được các nguyên lý • Học về các giao thức giao vận
của các dịch vụ tầng trong Internet:
giao vận: – UDP: phi kết nối
– Ghép/tách kênh – TCP: hướng kết nối
– Truyền tin cậy – Kiểm soát tắc nghẽn TCP
– Kiểm soát luồng
– Kiểm soát tắc nghẽn

3-2
Lê Đình Thanh, MMT-Tầng giao vận
Chương 3. Nội dung
• 3.1 Các dịch vụ tầng giao • 3.5 Truyền hướng kết nối:
vận TCP
• 3.2 Ghép và tách kênh – Cấu trúc đoạn
– Truyền tin cậy
• 3.3 Truyền phi kết nối: UDP
– Kiểm soát luồng
• 3.4 Các nguyên lý truyền tin
– Quản trị kết nối
cậy
• 3.6 Các nguyên lý kiểm soát
tắc nghẽn
• 3.7 Kiểm soát tắc nghẽn
trong TCP

3-3
Lê Đình Thanh, MMT-Tầng giao vận
Các dịch vụ và giao thức giao vận
• Cung cấp truyền thông logic giữa application
transport
các tiến trình chạy trên các hosts network
data link
khác nhau physical
network
data link
network physical
• Các giao thức giao vận chạy trên data link
physical
các hệ thống cuối network
data link
– Bên gửi: cắt thông báo từ ứng physical network
data link
dụng gửi xuống thành nhiều physical

đoạn, chuyển từng đoạn network


data link
xuống tầng mạng physical

– Bên nhận: lắp ghép các đoạn application


transport
thành thông báo, chuyển network
data link
thông báo cho tầng ứng dụng physical

• Nhiều giao thức


– Internet: TCP and UDP

3-4
Lê Đình Thanh, MMT-Tầng giao vận
Tầng giao vận <> Tầng mạng
• Tầng mạng: truyền thông
logic giữa các hosts
• transport layer: truyền
thông logic giữa các tiến
trình
– Dựa vào các dịch vụ tầng
mạng

3-5
Lê Đình Thanh, MMT-Tầng giao vận
Các giao thức giao vận Internet
• Tin cậy, đúng thứ tự (TCP) application
transport

– Kiểm soát tắc nghẽn network


data link network
physical
– Kiểm soát luồng network
data link
physical
data link
– Thiết lập kết nối physical
network

• Không tin cậy, không đúng data link


physical network
data link
thứ tự: UDP physical

network
– no-frills extension of “best- data link
physical
effort” IP
• Dịch vụ:
application
transport
network
– Đảm bảo giới hạn trễ data link
physical

– Đảm bảo băng thông

3-6
Lê Đình Thanh, MMT-Tầng giao vận
Chương 3. Nội dung
• 3.1 Các dịch vụ tầng giao • 3.5 Truyền hướng kết nối:
vận TCP
• 3.2 Ghép và tách kênh – Cấu trúc đoạn
– Truyền tin cậy
• 3.3 Truyền phi kết nối: UDP
– Kiểm soát luồng
• 3.4 Các nguyên lý truyền tin
– Quản trị kết nối
cậy
• 3.6 Các nguyên lý kiểm soát
tắc nghẽn
• 3.7 Kiểm soát tắc nghẽn
trong TCP

3-7
Lê Đình Thanh, MMT-Tầng giao vận
Ghép/tách kênh
Tách kênh ở nút nhận: Ghép kênh ở nút gửi:
Nhận dữ liệu từ nhiều sockets,
Chuyển các gói vào đúng socket Đóng gói bằng tiêu đề
(để sau sử dụng cho tách
kênh)
= socket = process

application P3 P1
P1
application P2 P4 application

transport transport transport

network network network

link link link

physical physical physical

host 2 host 3
host 1
3-8
Lê Đình Thanh, MMT-Tầng giao vận
Tách kênh như thế nào
• host nhận IP datagrams
– Mỗi datagram có địa chỉ IP
nguồn, IP đích 32 bits
– Mỗi datagram mang một đoạn
dữ liệu từ tầng giao vận source port # dest port #
– Mỗi đoạn có số hiệu cổng
nguồn, đích
other header fields
• host sử dụng địa chỉ IP và số hiệu
cổng để chuyển đoạn đến cổng
thích hợp
application
data
(message)

TCP/UDP segment format

3-9
Lê Đình Thanh, MMT-Tầng giao vận
Tách kênh phi kết nối
• Khi host nhận UDP segment:
• Tạo socket với số hiệu cổng:
DatagramSocket mySocket1 = new – Kiểm tra số hiệu cổng đích
DatagramSocket(99111); trong segment
DatagramSocket mySocket2 = new – Chuyển UDP segment đến
DatagramSocket(99222); socket có số hiệu cổng đích
• UDP socket được xác định bằng
bộ đôi:
(dest IP address, dest port number)

3-10
Lê Đình Thanh, MMT-Tầng giao vận
Tách kênh phi kết nối (tiếp)
DatagramSocket serverSocket = new DatagramSocket(6428);

P2 P3 P1
P1

SP: 6428 SP: 6428


DP: 9157 DP: 5775

SP: 9157 SP: 5775


client DP: 6428 DP: 6428 Client
server
IP: A IP: C IP:B

SP cung cấp “địa chỉ quay về”

3-11
Lê Đình Thanh, MMT-Tầng giao vận
Tách kênh hướng kết nối
• TCP socket được xác định • Server có thể hỗ trợ nhiều
bằng bộ tứ: TCP sockets đồng thời:
– IP nguồn – Mỗi socket được xác định bởi
– port nguồn bộ 4 của nó
– IP đích – Web server có nhiều socket
– port đích cho mỗi client đang kết nối
• non-persistent HTTP sẽ có socket
• Host nhận sử dụng cả 4 giá khác nhau cho các requests
trị để chuyển đoạn socket
tương ứng

3-12
Lê Đình Thanh, MMT-Tầng giao vận
Tách kênh hướng kết nối (tiếp)

P1 P4 P5 P6 P2 P1P3

SP: 5775
DP: 80
S-IP: B
D-IP:C

SP: 9157 SP: 9157


client DP: 80 DP: 80 Client
server
IP: A S-IP: A IP: C S-IP: B IP:B
D-IP:C D-IP:C

3-13
Lê Đình Thanh, MMT-Tầng giao vận
Tách kênh hướng kết nối: Web Server
đa luồng

P1 P4 P2 P1P3

SP: 5775
DP: 80
S-IP: B
D-IP:C

SP: 9157 SP: 9157


client DP: 80 DP: 80 Client
server
IP: A S-IP: A IP: C S-IP: B IP:B
D-IP:C D-IP:C

3-14
Lê Đình Thanh, MMT-Tầng giao vận
Chương 3. Nội dung
• 3.1 Các dịch vụ tầng giao • 3.5 Truyền hướng kết nối:
vận TCP
• 3.2 Ghép và tách kênh – Cấu trúc đoạn
– Truyền tin cậy
• 3.3 Truyền phi kết nối: UDP
– Kiểm soát luồng
• 3.4 Các nguyên lý truyền tin
– Quản trị kết nối
cậy
• 3.6 Các nguyên lý kiểm soát
tắc nghẽn
• 3.7 Kiểm soát tắc nghẽn
trong TCP

3-15
Lê Đình Thanh, MMT-Tầng giao vận
UDP: User Datagram Protocol [RFC 768]
• Dịch vụ “nỗ lực tối đa”, các
đoạn UDP có thể: Tại sao lại dùng UDP?
– Mất • Không thiết lập kết nối (trễ)
– Đến sai thứ tự • Đơn giản: không trạng thái kết
• Phi kết nối: nối ở cả bên gửi và bên nhận
– Không bắt tay giữa bên gửi • Tiêu đề đoạn nhỏ
và bên nhận • Không kiểm soát tắc nghẽn:
– Mỗi đoạn được xử lý độc UDP có thể truyền nhanh như
lập với các đoạn khác mong muốn

3-16
Lê Đình Thanh, MMT-Tầng giao vận
UDP
• Thường được sử dụng cho
streaming multimedia 32 bits

– Chấp nhận lỗi Số bytes source port # dest port #


– Cảm tốc độ của đoạn UDP, length checksum
bao gồm
• Các ud khác dùng UDP cả tiêu đề
– DNS
– SNMP
• Truyền tin cậy trên UDP: thêm Application
tính tin cậy ở tầng ứng dụng data
(message)
– Khắc phục lỗi theo ứng
dụng cụ thể!

UDP segment format

3-17
Lê Đình Thanh, MMT-Tầng giao vận
UDP checksum
Mục đích: phát hiện “lỗi” (vd., lộn bit) trong đoạn được truyền

Bên gửi: Bên nhận:


• Xem đoạn cần gửi như dãy • Tính checksum của đoạn nhận
các số nguyên 16-bit được
• checksum: tổng các số nguyên • Kiểm tra checksum tính được có
trong dãy bằng giá trị trường checksum:
• Đưa checksum vào trường – NO – có lỗi được phát hiện
UDP checksum – YES – không phát hiện lỗi.
Nhưng có thể có lỗi.

3-18
Lê Đình Thanh, MMT-Tầng giao vận
Ví dụ Internet Checksum
• Ghi chú
– Khi cộng các số, nhớ ở bít quan trọng nhất phải
được cộng vào kết quả
• Ví dụ: cộng hai số nguyên 16-bit

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0
1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

wraparound 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

sum 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0
checksum 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
3-19
Lê Đình Thanh, MMT-Tầng giao vận
Chương 3. Nội dung
• 3.1 Các dịch vụ tầng giao • 3.5 Truyền hướng kết nối:
vận TCP
• 3.2 Ghép và tách kênh – Cấu trúc đoạn
– Truyền tin cậy
• 3.3 Truyền phi kết nối: UDP
– Kiểm soát luồng
• 3.4 Các nguyên lý truyền tin
– Quản trị kết nối
cậy
• 3.6 Các nguyên lý kiểm soát
tắc nghẽn
• 3.7 Kiểm soát tắc nghẽn
trong TCP

3-20
Lê Đình Thanh, MMT-Tầng giao vận
Các nguyên lý truyền tin cậy
• Quan trọng trong các tầng ứng dụng, giao vận, liên kết
• top-10 các chủ đề quan trọng của networking!

• Các đặc tính của kênh truyền không tin cậy sẽ quyết định độ phức tạp của giao thức truyền tin cậy
(rdt)

3-21
Lê Đình Thanh, MMT-Tầng giao vận
Truyền tin cậy: bắt đầu
rdt_send(): được gọi từ tầng trên. deliver_data(): được gọi
bởi rdt để chuyển dữ liệu lên
tầng trên

send receive
side side

udt_send(): được gọi bởi rdt, rdt_rcv(): được gọi khi gói đến đầu
để truyền gói qua kênh không tin bên nhận của kênh
cậy đến bên nhận
3-22
Lê Đình Thanh, MMT-Tầng giao vận
Truyền tin cậy: bắt đầu
Chúng ta sẽ:
• Phát triển tăng trưởng các bên gửi, nhận trong giao
thức truyền tin cậy (rdt)
• Chỉ xem xét truyền một chiều
– Nhưng thông tin điều khiển sẽ được truyền theo cả hai
chiều!
• Sử dụng máy hữu hạn trạng thái (FSM) để đặc tả bên
gửi, bên nhận event causing state transition
actions taken on state transition
state: when in this “state”
next state uniquely state state
1 event
determined by next 2
event actions

3-23
Lê Đình Thanh, MMT-Tầng giao vận
Rdt1.0: truyền tin cậy trên kênh tin cậy
• Kênh truyền ở dưới hoàn toàn tin cậy
– Không lỗi bít
– Không mất gói
• FSMs của bên gửi, bên nhận:
– Bên gửi gửi dữ liệu xuống kênh bên dưới
– Bên nhận nhận dữ liệu từ kênh bên dưới

Wait for rdt_send(data) Wait for rdt_rcv(packet)


call from call from extract (packet,data)
packet = below
above deliver_data(data)
make_pkt(data)
udt_send(packet)
sender receiver

3-24
Lê Đình Thanh, MMT-Tầng giao vận
Rdt2.0: kênh truyền có lỗi bit
• Kênh truyền bên dưới có thể làm đảo một số bít trong gói
– checksum để phát hiện lỗi
• Câu hỏi: khắc phục lỗi như thế nào:
– acknowledgements (ACKs): bên nhận thông báo cho bên gửi rằng
đã nhận được gói không phát hiện lỗi
– negative acknowledgements (NAKs): bên nhận thông báo cho bên
gửi rằng đã nhận được gói CÓ lỗi
– Bên gửi phát lại gói khi nhận được NAK
• Các cơ chế trong rdt2.0 (ngoài rdt1.0):
– Phát hiện lỗi
– Phản hồi từ bên nhận: các thông báo điều khiển (ACK,NAK) từ bên
nhận sang bên gửi

3-25
Lê Đình Thanh, MMT-Tầng giao vận
rdt2.0: FSM
rdt_send(data)
snkpkt = make_pkt(data, receiver
checksum)
udt_send(sndpkt) rdt_rcv(rcvpkt) &&
Wait for Wait for isNAK(rcvpkt)
rdt_rcv(rcvpkt)
call from ACK or udt_send(sndp &&
above NAK kt) corrupt(rcvpkt)
udt_send(NAK)

rdt_rcv(rcvpkt) && isACK(rcvpkt)


Wait for
L
call from
sender below

rdt_rcv(rcvpkt) &&

extract(rcvpkt,data)
notcorrupt(rcvpkt)
deliver_data(data)
udt_send(ACK)

3-26
Lê Đình Thanh, MMT-Tầng giao vận
rdt2.0: hoạt động khi không có lỗi
rdt_send(data)
snkpkt = make_pkt(data,
checksum)
udt_send(sndpkt) rdt_rcv(rcvpkt) &&
Wait for Wait for isNAK(rcvpkt)
rdt_rcv(rcvpkt)
call from ACK or udt_send(sndp &&
above NAK kt) corrupt(rcvpkt)
udt_send(NAK)

rdt_rcv(rcvpkt) && isACK(rcvpkt)


Wait for
L call from
below

rdt_rcv(rcvpkt) &&

extract(rcvpkt,data)
notcorrupt(rcvpkt)
deliver_data(data)
udt_send(ACK)

3-27
Lê Đình Thanh, MMT-Tầng giao vận
rdt2.0: hoạt động khi có lỗi
rdt_send(data)
snkpkt = make_pkt(data,
checksum)
udt_send(sndpkt) rdt_rcv(rcvpkt) &&
Wait for Wait for isNAK(rcvpkt)
rdt_rcv(rcvpkt)
call from ACK or udt_send(sndp &&
above NAK kt) corrupt(rcvpkt)
udt_send(NAK)

rdt_rcv(rcvpkt) && isACK(rcvpkt)


Wait for
L call from
below

rdt_rcv(rcvpkt) &&

extract(rcvpkt,data)
notcorrupt(rcvpkt)
deliver_data(data)
udt_send(ACK)

3-28
Lê Đình Thanh, MMT-Tầng giao vận
rdt2.0 có lỗ hổng không tránh khỏi!
Điều gì xảy ra nếu ACK/NAK Xử lý nhận lặp:
hỏng? • Bên gửi thêm số thứ tự vào mỗi
• Bên gửi không biết việc gì đã xảy gói
ra ở bên nhận! • Bên gửi phát lại nếu không
• Không đơn giản chỉ phát lại: có nhận được ACK/NAK
thể tạo nhận lặp • Bên nhận bỏ (không chuyển lên
trên) gói lặp

stop and wait


Bên gửi gửi một gói,
sau đó đợi trả lời của
bên nhận

3-29
Lê Đình Thanh, MMT-Tầng giao vận
rdt2.1: bên gửi, xử lý mất ACK/NAKs
rdt_send(data)
sndpkt = make_pkt(0, data,
checksum) rdt_rcv(rcvpkt) &&
udt_send(sndpkt) ( corrupt(rcvpkt) ||
Wait for Wait for
call 0 from ACK or isNAK(rcvpkt) )
above NAK 0 udt_send(sndpkt)
rdt_rcv(rcvpkt)
rdt_rcv(rcvpkt)
&&
&& notcorrupt(rcvpkt)
notcorrupt(rcvpkt)
&& isACK(rcvpkt)
L
&& isACK(rcvpkt)
L
Wait for Wait for
ACK or call 1 from
rdt_rcv(rcvpkt) NAK 1 above
&&
rdt_send(data)
( corrupt(rcvpkt) ||
udt_send(sndpk
isNAK(rcvpkt) ) sndpkt = make_pkt(1, data,
t) checksum)
udt_send(sndpkt)
3-30
Lê Đình Thanh, MMT-Tầng giao vận
rdt2.1: bên nhận, xử lý mất ACK/NAKs
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)
&& has_seq0(rcvpkt)
extract(rcvpkt,data)
deliver_data(data)
sndpkt = make_pkt(ACK, chksum)
udt_send(sndpkt)
rdt_rcv(rcvpkt) && (corrupt(rcvpkt) rdt_rcv(rcvpkt) && (corrupt(rcvpkt)
sndpkt = make_pkt(NAK, chksum) sndpkt = make_pkt(NAK, chksum)
udt_send(sndpkt) udt_send(sndpkt)
Wait for Wait for
rdt_rcv(rcvpkt) && 0 from 1 from rdt_rcv(rcvpkt) &&
not corrupt(rcvpkt) && below below not corrupt(rcvpkt) &&
has_seq1(rcvpkt) has_seq0(rcvpkt)
sndpkt = make_pkt(ACK, chksum) sndpkt = make_pkt(ACK, chksum)
udt_send(sndpkt) udt_send(sndpkt)
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)
&& has_seq1(rcvpkt)
extract(rcvpkt,data)
deliver_data(data)
sndpkt = make_pkt(ACK, chksum)
udt_send(sndpkt)

3-31
Lê Đình Thanh, MMT-Tầng giao vận
rdt2.1: thảo luận
Bên gửi: Bên nhận:
• seq # được thêm vào pkt • Phải kiểm tra nếu gói nhận
– two seq. #’s (0,1) là đủ. Tại được lặp
sao? – Trạng thái biểu thị gói đang
• Phải kiểm tra nếu nhận đợi có seq.# là 0 hay 1
được ACK/NAK hỏng • Ghi chú: bên nhận không
• Trạng thái thể biết ACK/NAK được
– Trạng thái phải “nhớ” xem nhận như thế nào ở bên gửi
gói “hiện tại” có seq.# là 0 hay
1.

3-32
Lê Đình Thanh, MMT-Tầng giao vận
rdt2.2: giao thức không NAK
• Có chức năng như rdt2.1, chỉ sử dụng ACK
• Thay vì gửi NAK, bên nhận gửi ACK cho gói cuối cùng nhận
được OK
– Bên nhận phải bao gồm seq. # của gói được ACKed
• ACK lặp tương đương NAK: bên gửi phát lại gói hiện tại

3-33
Lê Đình Thanh, MMT-Tầng giao vận
rdt2.2: vỡ bên gửi, bên nhận
rdt_send(data)
sndpkt = make_pkt(0, data,
checksum) rdt_rcv(rcvpkt) &&
udt_send(sndpkt) ( corrupt(rcvpkt) ||
Wait for Wait for
call 0 from ACK isACK(rcvpkt,1) )
above 0 udt_send(sndpkt)
sender FSM
fragment rdt_rcv(rcvpkt)
&& notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) && && isACK(rcvpkt,0)
(corrupt(rcvpkt) || L
Wait for receiver FSM
0 from
has_seq1(rcvpkt))
udt_send(sndpkt below fragment
)
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)
&& has_seq1(rcvpkt)
extract(rcvpkt,data)
deliver_data(data)
sndpkt = make_pkt(ACK1, chksum) 3-34
udt_send(sndpkt) Lê Đình Thanh, MMT-Tầng giao vận
rdt3.0: kênh truyền có lỗi và mất gói

Giả thiết mới: kênh truyền bên Tiếp cận: bên gửi đợi ACK trong
dưới có thể làm mất gói khoảng thời gian “hợp lý”
(data or ACKs) • Phát lại nếu không nhận được ACK
– checksum, seq. #, ACKs, phát sau thời gian đợi
lại có ích, nhưng chưa đủ • Nếu pkt (hoặc ACK) trễ (không
mất):
– Phát lại sẽ gây lặp, nhưng sử
dụng seq. # đã xử lý được lặp
– Bên nhận phải xác định seq. #
của gói được ACKed
• Yêu cầu đồng hồ đếm lùi

3-35
Lê Đình Thanh, MMT-Tầng giao vận
rdt3.0 sender
rdt_send(data)
rdt_rcv(rcvpkt) &&
sndpkt = make_pkt(0, data, checksum) ( corrupt(rcvpkt) ||
udt_send(sndpkt) isACK(rcvpkt,1) )
rdt_rcv(rcvpkt) start_timer
L
L Wait for Wait
timeout
call 0from for
ACK0 udt_send(sndpkt)
above
start_timer
rdt_rcv(rcvpkt)
&& notcorrupt(rcvpkt) rdt_rcv(rcvpkt)
&& isACK(rcvpkt,1) && notcorrupt(rcvpkt)
stop_timer && isACK(rcvpkt,0)
stop_timer
Wait Wait for
timeout for call 1 from
udt_send(sndpkt) ACK1 above
start_timer rdt_rcv(rcvpkt)
rdt_send(data) L
rdt_rcv(rcvpkt) &&
( corrupt(rcvpkt) || sndpkt = make_pkt(1, data, checksum)
isACK(rcvpkt,0) ) udt_send(sndpkt)
start_timer
L

3-36
Lê Đình Thanh, MMT-Tầng giao vận
rdt3.0 – hoạt động

3-37
Lê Đình Thanh, MMT-Tầng giao vận
rdt3.0 – hoạt động

3-38
Lê Đình Thanh, MMT-Tầng giao vận
Hiệu năng của rdt3.0

• rdt3.0 tin cậy, nhưng hiệu năng thấp


• Ví dụ: liên kết 1 Gbps, trễ lan truyền end-end 15 ms, gói 1KB:

T transmit = L (packet length in bits) 8kb/pkt


= = 8 microsec
R (transmission rate, bps) 10**9 b/sec

U L/R .008
= = = 0.00027
sender 30.008
RTT + L / R microsec
onds
 U sender: sử dụng – tỉ lệ thời gian bên gửi bận gửi
 1KB pkt / 30 msec -> thông lượng 33kB/sec / 1 Gbps link
 Giao thức mạng khai thác tài nguyên vật lý hạn chế!

3-39
Lê Đình Thanh, MMT-Tầng giao vận
rdt3.0: stop-and-wait
sender receive
Bít đầu tiên được truyền, t = 0 r
Bít cuối cùng được truyền, t = L
/R
Bít đầu tiên đến
RTT Bít cuối cùng đến, gửi ACK

ACK đến, gửi gói tiếp


theo
t = RTT + L / R

U L/R .008
= = = 0.00027
sender 30.008
RTT + L / R microsec
onds

3-40
Lê Đình Thanh, MMT-Tầng giao vận
Các giao thức Pipelined
Pipelining: bên gửi gửi nhiều gói liên tiếp
– Phạm vi seq.# phải được tăng lên
– Sử dụng đệm ở bên gửi và bên nhận

• Hai dạng chung của các giao thức pipelined: go-Back-N,


selective repeat
3-41
Lê Đình Thanh, MMT-Tầng giao vận
Pipelining: tăng hiệu quả khai thác mạng
sender receiver
first packet bit transmitted, t
last bit transmitted, t ==L0/
R
first packet bit arrives
RTT last packet bit arrives, send ACK
last bit of 2nd packet arrives, send
ACKbit of 3rd packet arrives, send
last
ACK arrives, send next ACK
packet, t = RTT + L / R

Hiệu quả tăng gấp 3!

U 3*L/R .024
= = = 0.0008
sender 30.008
RTT + L / R microsecon
ds
3-42
Lê Đình Thanh, MMT-Tầng giao vận
Go-Back-N
Bên gửi:
• k-bit seq # trong tiêu đề gói tin
• “cửa sổ” của N gói liên tiếp chưa được ack

 ACK(n): ACKs mọi gói đến gói có seq # n – “ACK tích kũy”
có thể làm giả ACK lặp (xem bên nhận)
 Đồng hồ cho mỗi gói đang gửi
 timeout(n): phát lại các gói trong cửa sổ có seq.# từ n trở lên

3-43
Lê Đình Thanh, MMT-Tầng giao vận
GBN: FSM của bên gửi
rdt_send(data)
if (nextseqnum < base+N) {
sndpkt[nextseqnum] = make_pkt(nextseqnum,data,chksum)
udt_send(sndpkt[nextseqnum])
if (base == nextseqnum)
start_timer
nextseqnum++
}
L else
refuse_data(data)
base=1
nextseqnum=1
timeout
start_timer
Wait udt_send(sndpkt[base])
rdt_rcv(rcvpkt) udt_send(sndpkt[base+1])
&& corrupt(rcvpkt) …
udt_send(sndpkt[nextseqnum-1])
rdt_rcv(rcvpkt) &&
notcorrupt(rcvpkt)
base = getacknum(rcvpkt)+1
If (base == nextseqnum)
stop_timer
else
start_timer 3-44
Lê Đình Thanh, MMT-Tầng giao vận
GBN: FSM của bên gửi
default
udt_send(sndpkt) rdt_rcv(rcvpkt)
&& notcurrupt(rcvpkt)
L && hasseqnum(rcvpkt,expectedseqnum)
expectedseqnum=1 Wait extract(rcvpkt,data)
sndpkt = deliver_data(data)
make_pkt(expectedseqnum,ACK,chksum) sndpkt = make_pkt(expectedseqnum,ACK,chksum)
udt_send(sndpkt)
expectedseqnum++

Chỉ ACK: luôn gửi ACK cho gói nhận đúng và đúng thứ tự có seq.
# lớn nhất
– Có thể sinh lặp ACKs
– Chỉ cần nhớ seq.# mong đợi expectedseqnum
• Gói đến không đúng thứ tự:
– Loại bỏ -> không đệm bên nhận!
– ACK lại với seq.# lớn nhất đúng thứ tự
3-45
Lê Đình Thanh, MMT-Tầng giao vận
GBN

3-46
Lê Đình Thanh, MMT-Tầng giao vận
Lặp lại có lựa chọn (Selective Repeat)
• Bên nhận biên nhận từng gói nhận đúng
– Lưu đệm các gói, nếu cần, để chuyển lên tầng trên đúng thứ tự
• Bên gửi chỉ gửi lại các gói không nhận được ACK
– Mỗi gói chưa ack có một đồng hồ
• Cửa sổ gửi
– N gói liên tiếp
– Giới hạn các gói được gửi, chưa ACK

3-47
Lê Đình Thanh, MMT-Tầng giao vận
Selective repeat: cửa sổ gửi/nhận

3-48
Lê Đình Thanh, MMT-Tầng giao vận
Selective repeat
Bên gửi Bên nhận
data từ trên: pkt n trong [rcvbase, rcvbase+N-1]
• Nếu có seq # tiếp theo trong cửa  Gửi ACK(n)
sổ, gửi pkt  Không đúng thứ tự: lưu đệm
timeout(n):  Đúng thứ tự: chuyển (cả các gói
• gửi lại pkt n, đặt lại timer trong đệm trở thành đúng thứ
tự), dịch cửa sổ đến gói chưa
ACK(n) trong [sendbase,sendbase+N]: nhận tiếp theo
• Đánh dấu đã nhận pkt n
pkt n trong [rcvbase-N,rcvbase-1]
• Nếu n là gói chưa ack bé nhất,
 ACK(n)
chuyển cửa sổ sendbase đến gói
chưa ack tiếp theo Ngược lại:
 Bỏ qua

3-49
Lê Đình Thanh, MMT-Tầng giao vận
Selective repeat – hoạt động

3-50
Lê Đình Thanh, MMT-Tầng giao vận
Selective repeat:
dilemma
Ví dụ:
• seq #’s: 0, 1, 2, 3
• window size=3

• Bên nhận không thấy sự


khác nhau trong hai kịch
bản!
• Gửi lặp trong (a)

H: quan hệ giữa kích thước


seq.# và kích thước cửa
sổ?

3-51
Lê Đình Thanh, MMT-Tầng giao vận
Chương 3. Nội dung
• 3.1 Các dịch vụ tầng giao • 3.5 Truyền hướng kết nối:
vận TCP
• 3.2 Ghép và tách kênh – Cấu trúc đoạn
– Truyền tin cậy
• 3.3 Truyền phi kết nối: UDP
– Kiểm soát luồng
• 3.4 Các nguyên lý truyền tin
– Quản trị kết nối
cậy
• 3.6 Các nguyên lý kiểm soát
tắc nghẽn
• 3.7 Kiểm soát tắc nghẽn
trong TCP

3-52
Lê Đình Thanh, MMT-Tầng giao vận
TCP: Tổng quan RFCs: 793, 1122, 1323, 2018, 2581
• Điểm-điểm: • Song công:
– Một gửi, một nhận – Hai luồng dữ liệu theo hai
• Tin cậy, đúng thứ tự: hướng trên cùng một kết nối
– Không “thông báo biên” – MSS (maximum segment
size): Kích thước đoạn lớn
• pipelined: nhất
– TCP kiểm soát tắc nghẽn và • Hướng kết nối:
điều khiển luồng đặt kích
thước cửa sổ – Bắt tay (trao đổi thông báo
điều khiển) khởi tạo trạng
• Đệm gửi/nhận thái bên gửi/nhận trước khi
trao đổi dữ liệu

socket
application
writes data
application
reads data • Luồng được điều khiển bên
socket
door
TCP TCP
door gửi không áp đảo bên nhận
send buffer receive buffer
segment

3-53
Lê Đình Thanh, MMT-Tầng giao vận
Cấu trúc đoạn TCP
32 bits
URG: khẩn Đếm theo bytes
hường không được dùng) source port # dest port #
dữ liệu
sequence number (không đoạn!)
ACK: ACK #
valid acknowledgement number
head not
PSH: push data now len used U A P R S F Receive window
hường không được dùng) # bytes
checksum Urg data pnter
bên nhận
RST, SYN, FIN: sẽ chấp nhận
Options (variable length)
Thiết lập kết nối
(setup, teardown
commands)
application
Internet data
checksum (variable length)
(as in UDP)

3-54
Lê Đình Thanh, MMT-Tầng giao vận
Thiết lập kết nối: Bắt tay ba bước

3-55
Lê Đình Thanh, MMT-Tầng giao vận
TCP seq. #’s và ACKs
Seq. #’s:
Host A Host B
– Số thứ tự trong dòng
của byte đầu tiên của User
đoạn types
ACKs: ‘C’ host ACKs
– seq # của byte kế tiếp receipt of
đợi nhận ‘C’, echoes
– ACK tích lũy back ‘C’
H: Bên nhận xử lý đoạn đến
không đúng thứ tự như host ACKs
thế nào receipt
– TL: Đặc tả TCP không of echoed
đề cập, - tùy thuộc ‘C’
người cài đặt
time
simple telnet scenario

3-56
Lê Đình Thanh, MMT-Tầng giao vận
TCP Round Trip Time vàTimeout
H: Thiết lập giá trị TCP H: Ước lượng RTT như thế nào?
timeout như thế nào? • SampleRTT: thời gian từ khi gửi
• Lớn hơn RTT đoạn đến khi nhận được ACK
– Nhưng RTT thay đổi – Không tính phát lại
• Quá ngắn: timeout sớm • SampleRTT sẽ thay đổi, muốn tính
– Phát lại không cần thiết RTT “trơn hơn”
• Quá dài: phản ứng chậm – Trung bình các SampleRTT gần
với mất đoạn nhất

3-57
Lê Đình Thanh, MMT-Tầng giao vận
TCP Round Trip Time vàTimeout
EstimatedRTT = (1-)*EstimatedRTT + *SampleRTT

 Trung bình trọng số


 Tác động của các mẫu quá khứ giảm nhanh theo cấp số nhân
 Thường đặt:  = 0.125

3-58
Lê Đình Thanh, MMT-Tầng giao vận
Ví dụ ước lượng RTT:
RTT: gaia.cs.umass.edu to fantasia.eurecom.fr

350

300

250
RTT (milliseconds)

200

150

100
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)

SampleRTT Estimated RTT

3-59
Lê Đình Thanh, MMT-Tầng giao vận
TCP Round Trip Time vàTimeout
Đặt timeout
• EstimtedRTT cộng “biên an toàn”
– Biến đổi EstimatedRTT càng lớn -> biên an toàn càng cao
• Đầu tiên ước lượng lượng chênh lệch của SampleRTT so với EstimatedRTT:

DevRTT = (1-)*DevRTT +
*|SampleRTT-EstimatedRTT|

(thường đặt  = 0.25)

Tiếp đó đặt timeout:

TimeoutInterval = EstimatedRTT + 4*DevRTT

3-60
Lê Đình Thanh, MMT-Tầng giao vận
Chương 3. Nội dung
• 3.1 Các dịch vụ tầng giao • 3.5 Truyền hướng kết nối:
vận TCP
• 3.2 Ghép và tách kênh – Cấu trúc đoạn
– Truyền tin cậy
• 3.3 Truyền phi kết nối: UDP
– Kiểm soát luồng
• 3.4 Các nguyên lý truyền tin
– Quản trị kết nối
cậy
• 3.6 Các nguyên lý kiểm soát
tắc nghẽn
• 3.7 Kiểm soát tắc nghẽn
trong TCP

3-61
Lê Đình Thanh, MMT-Tầng giao vận
TCP - Truyền tin cậy
• TCP tạo dịch vụ rdt trên dịch • Phát lại được kích hoạt bởi:
vụ IP không tin cậy – Sự kiện timeout
• Gửi đường ống các đoạn – Biên nhận lặp
• Biên nhận tích lũy • Đầu tiên xem xét bên gửi
• TCP sử dụng một đồng hồ TCP được đơn giản hóa:
– Bỏ qua biên nhận lặp
phát lại
– Bỏ qua điều khiển luồng và
tắc nghẽn

3-62
Lê Đình Thanh, MMT-Tầng giao vận
Các sự kiện bên gửi TCP:
Nhận dữ liệu từ ứng dụng: timeout:
• Tạo đoạn với seq # • Phát lại đoạn gây timeout
• seq # là số thứ tự trong • Đặt lại đồng hồ
dòng của byte đầu tiên Nhận ack:
của đoạn • Nếu biên nhận các đoạn
• Khởi động đồng hồ nếu chưa được biên nhận
chưa chạy (xem đồng hồ trước đó
là đoạn cũ nhất chưa – Cập nhật thông tin các
được biên nhận) đoạn đã được biên nhận
• Thời gian hết hạn: – Bắt đầu đồng hồ nếu có
TimeOutInterval đoạn dôi ra

3-63
Lê Đình Thanh, MMT-Tầng giao vận
NextSeqNum = InitialSeqNum
SendBase = InitialSeqNum

loop (forever) {
TCP
switch(event)
sender
event: data received from application above (simplified)
create TCP segment with sequence number NextSeqNum
if (timer currently not running)
start timer Comment:
pass segment to IP • SendBase-1: last
NextSeqNum = NextSeqNum + length(data) cumulatively
ack’ed byte
event: timer timeout Example:
retransmit not-yet-acknowledged segment with • SendBase-1 = 71;
smallest sequence number y= 73, so the rcvr
start timer wants 73+ ;
y > SendBase, so
event: ACK received, with ACK field value of y that new data is
if (y > SendBase) { acked
SendBase = y
if (there are currently not-yet-acknowledged segments)
start timer
3-64
} Lê Đình Thanh, MMT-Tầng giao vận
TCP: kịch bản phát lại
Host A Host B Host A Host B

Seq=92 timeout
timeout

X
loss

Sendbase
= 100

Seq=92 timeout
SendBase
= 120

SendBase
SendBase
= 100
= 120 Timeout sớm
time time
Mất ACK 3-65
Lê Đình Thanh, MMT-Tầng giao vận
TCP: kịch bản phát lại (tiếp)
timeout Host A Host B

X
loss

SendBase
= 120

time
ACK tích lũy

3-66
Lê Đình Thanh, MMT-Tầng giao vận
Sinh TCP ACK [RFC 1122, RFC 2581]
Sự kiện bên Nhận Hành động bên Nhận
Đoạn đến đúng thứ tự với ACK trễ. Đợi 500ms để nhận đoạn tiếp
seq # mong đợi. Tất cả bytes theo. Nếu không nhận được đoạn tiếp theo,
đến seq # mong đợi đã được ACKed gửi ACK

Đoạn đến đúng thứ tự với Ngay lập tức gửi ACK tích lũy,
seq # mong đợi. Một đoạn khác biên nhận cả hai đoạn đến đúng thứ tự
Có ACK đang chờ

Đoạn đến sai thứ tự với seq.# lớn Ngay lập tức gửi ACK lặp,
hơn seq. # mong đợi chứa seq. # mong đợi
Phát hiện đoạn trống

Đoạn đến nằm trong/lấp Ngay lập tức gửi ACK, chỉ đoạn nằm
đoạn trống đầu đoạn trống

3-67
Lê Đình Thanh, MMT-Tầng giao vận
Phát lại sớm
• Khoảng time-out thường • Nếu bên gửi nhận được 3
tương đối dài: ACKs lặp, nó cho rằng đoạn
– Trễ lớn trước khi phát lại sau dữ liệu đã biên nhận đã
đoạn bị mất bị mất:
• Phát hiện các đoạn mất qua – Phát lại sớm: gửi lại đoạn
ACKs lặp. trước khi đồng hồ hết hạn
– Bên gửi thường gửi nhiều
đoạn lặp đi lặp lại
– Nếu đoạn mất, có thể có
nhiều ACKs lặp.

3-68
Lê Đình Thanh, MMT-Tầng giao vận
Giải thuật phát lại sớm:
event: ACK received, with ACK field value of y
if (y > SendBase) {
SendBase = y
if (there are currently not-yet-acknowledged segments)
start timer
}
else {
increment count of dup ACKs received for y
if (count of dup ACKs received for y = 3) {
resend segment with sequence number y
}

Một ACK lặp cho Phát lại sớm


đoạn đã dược biên nhận

3-69
Lê Đình Thanh, MMT-Tầng giao vận
Chương 3. Nội dung
• 3.1 Các dịch vụ tầng giao • 3.5 Truyền hướng kết nối:
vận TCP
• 3.2 Ghép và tách kênh – Cấu trúc đoạn
– Truyền tin cậy
• 3.3 Truyền phi kết nối: UDP
– Điều khiển luồng
• 3.4 Các nguyên lý truyền tin
– Quản trị kết nối
cậy
• 3.6 Các nguyên lý kiểm soát
tắc nghẽn
• 3.7 Kiểm soát tắc nghẽn
trong TCP

3-70
Lê Đình Thanh, MMT-Tầng giao vận
TCP – Điều khiên luồng
Điều khiển luồng
Biên gửi không làm tràn
• Bên nhận có đệm nhận: đệm bên nhận do gửi quá
nhanh, quá nhiều

• Dịch vụ đối sánh tốc độ:


đối sánh tốc độ gửi với tốc
độ tiêu thụ của ứng dụng
bên nhận
 Tiến trình ứng dụng có
thể chậm trong việc đọc
dữ liệu từ đệm TCP
3-71
Lê Đình Thanh, MMT-Tầng giao vận
TCP- Điều khiển luồng
• Bên nhận thông báo cho
bên nhận giá trị của
RcvWindow
• Bên gửi giới hạn dữ liệu đã
gửi nhưng chưa biên nhận
(Giả sử bên nhận bỏ các đoạn trong RcvWindow
đến sai thứ tự) – Đảm bảo không tràn đệm
• Vùng đệm rỗi nhận
= RcvWindow
= RcvBuffer-[LastByteRcvd -
LastByteRead]

3-72
Lê Đình Thanh, MMT-Tầng giao vận
Chương 3. Nội dung
• 3.1 Các dịch vụ tầng giao • 3.5 Truyền hướng kết nối:
vận TCP
• 3.2 Ghép và tách kênh – Cấu trúc đoạn
– Truyền tin cậy
• 3.3 Truyền phi kết nối: UDP
– Điều khiển luồng
• 3.4 Các nguyên lý truyền tin
– Quản trị kết nối
cậy
• 3.6 Các nguyên lý kiểm soát
tắc nghẽn
• 3.7 Kiểm soát tắc nghẽn
trong TCP

Lê Đình Thanh, MMT-Tầng giao vận 3-73


Quản lý kết nối TCP
Nhắc lại: Bên gửi và bên Bắt tay ba bước:
nhận TCP thiết lập kết nối
trước khi trao đổi dữ liệu B1: client gửi TCP SYN đến server
• Khởi tạo các biến TCP: – Xác định seq # xuất phát
– seq. # – Không có dữ liệu
– Đệm, thông tin điều khiển
luồng (vd. RcvWindow) B2: server nhận SYN, trả lời bằng
SYNACK
• client: bên khởi tạo kết nối
Socket clientSocket = new – server cấp phát đệm
Socket("hostname","port
– Xác định server seq. # xuất
number");
phát
• server: đáp ứng client
Socket connectionSocket =
B3: client nhận SYNACK, trả lời bằng
welcomeSocket.accept(); ACK, có thể chứa dữ liệu

Lê Đình Thanh, MMT-Tầng giao vận 3-74


Quản lý kết nối TCP (tiếp)

Đóng kết nối: client server


close
client đóng kết nối:
clientSocket.close();

b1: client gửi TCP FIN đến server close

b2: server nhận FIN, trả lời bằng


ACK. Đóng kết nối, gửi FIN.

timed wait

closed

Lê Đình Thanh, MMT-Tầng giao vận 3-75


Quản lý kết nối TCP (tiếp)

b3: client nhận FIN, trả lời bằng client server


ACK. closing
– Vào trạng thái “timed wait”

Step 4: server, nhận ACK. Kết nối


closing
đã đóng.

Ghi chú: có thể sửa đổi nhỏ để


xử lý các FINs đồng thời
timed wait closed

closed

Lê Đình Thanh, MMT-Tầng giao vận 3-76


Quản lý kết nối TCP (tiếp)

TCP server
lifecycle

TCP client
lifecycle

Lê Đình Thanh, MMT-Tầng giao vận 3-77


Chương 3. Nội dung
• 3.1 Các dịch vụ tầng giao • 3.5 Truyền hướng kết nối:
vận TCP
• 3.2 Ghép và tách kênh – Cấu trúc đoạn
– Truyền tin cậy
• 3.3 Truyền phi kết nối: UDP
– Điều khiển luồng
• 3.4 Các nguyên lý truyền tin
– Quản trị kết nối
cậy
• 3.6 Các nguyên lý kiểm soát
tắc nghẽn
• 3.7 Kiểm soát tắc nghẽn
trong TCP

Lê Đình Thanh, MMT-Tầng giao vận 3-78


Các nguyên lý điều khiển tắc nghẽn

Tắc nghẽn:
• Không hình thức: “quá nhiều nguồn gửi quá nhiều dữ liệu
quá nhanh để mạng xử lý”
• Khác điều khiển lưu lượng!
• Biểu hiện:
– Mất gói (tràn đệm ở các routers)
– Trễ lớn (xếp hàng ở các routers)
• Một trong top-10 vấn đề!

Lê Đình Thanh, MMT-Tầng giao vận 3-79


Nguyên nhân/cái giá của tắc nghẽn: k.bản 1
Host A
lin : original data lout
• Hai nút gửi, hai nút
nhận
Host B unlimited shared
• Một router, đệm output link buffers

không có gới hạn


• Không phát lại

• Trễ lớn khi có tắc


nghẽn
• Thông lượng đạt
được cao nhất

Lê Đình Thanh, MMT-Tầng giao vận 3-80


Nguyên nhân/cái giá của tắc nghẽn: k.bản 2

• Một router, đệm có hạn


• Bên gửi phát lại các gói mất

Host lin : original lout


A data
l'in : original data, plus
retransmitted data

Host B finite shared output


link buffers

Lê Đình Thanh, MMT-Tầng giao vận 3-81


Nguyên nhân/cái giá của tắc nghẽn: k.bản 2
• Luôn : = l(tốt)
l
in out
• Phát lại “hoàn hảo” chỉ khi mất gói: l > lout
in
• Phát lại gói trễ (không mất) làm l hơn (trường hợp hoàn hảo) với
lớn
in
cùng lout
R/2 R/2 R/2

R/3
lout

lout

lout
R/4

R/2 R/2 R/2


lin lin lin

a. b. c.
“cái giá” của tắc nghẽn:
 Nhiều việc hơn (phát lại)
 Phát lại không cần thiết
Lê Đình Thanh, MMT-Tầng giao vận 3-82
Nguyên nhân/cái giá của tắc nghẽn: k.bản 3
• Bốn nút gửi H: Điều gì xảy ra khi và l
in
• Đường đi nhiều chặng l
tăng?
• timeout/phát lại in
Host A lout
lin : original data
l'in : original data, plus
retransmitted data

finite shared
output link
buffers
Host B

Lê Đình Thanh, MMT-Tầng giao vận 3-83


Nguyên nhân/cái giá của tắc nghẽn: k.bản 3
H l
o
o
s
u
t
A t

H
o
s
t
B

“Cái giá” khác của tắc nghẽn:


 Khi gói bị loại bỏ, mọi năng lực truyền upstream được sử
dụng cho gói đó đều lãng phí!

Lê Đình Thanh, MMT-Tầng giao vận 3-84


Các tiếp cận điều khiển tắc nghẽn
Hai cách tiếp cận tổng quát:

End-end: Network-assisted:
• Không có phản hồi rõ ràng từ • Các routers cung cấp phản hồi
mạng về end-systems
• Tắc nghẽn được suy luận từ – Một bit biểu thị tắc nghẽn
mất và trễ do end-system quan (SNA, DECbit, TCP/IP ECN,
sát ATM)
• Vd. TCP – Tốc độ gửi bên gửi nên áp
dụng

Lê Đình Thanh, MMT-Tầng giao vận 3-85


Case study: ATM ABR

ABR: available bit rate: RM (resource management)


• “dịch vụ đàn hồi” cells:
• Nếu đường đi “chưa đạt tải”: • Được gửi bởi bên gửi, xen kẽ với
các cell dữ liệu
– Bên gửi nên sử dụng băng
• bits trong RM cell được thiết lập
thông sẵn sàng bởi các switches (“network-
• Nếu đường đi tắc nghẽn: assisted”)
– Bên gửi giảm xuống tốc – NI bit: không tăng tốc độ
độ đảm bảo (nghẽn nhẹ)
– CI bit: biểu thị tắc nghẽn
• RM cells được trả về bên gửi, với
các bits không thay đổi

Lê Đình Thanh, MMT-Tầng giao vận 3-86


Case study: ATM ABR

• Trường ER (explicit rate) dài 2 bytes trong RM cell


– Switch bị tắc nghẽn có thể giảm giá trị ER value trong cell
– Bên gửi gửi với tốc độ hỗ trợ nhỏ nhất trên đường đi
• EFCI bit trong data cells: được đặt về 1 tại switch tắc nghẽn
– Nếu data cell trước RM cell có EFCI bật, bên gửi bật CI bit trong RM
cell được trả về

Lê Đình Thanh, MMT-Tầng giao vận 3-87


Chương 3. Nội dung
• 3.1 Các dịch vụ tầng giao • 3.5 Truyền hướng kết nối:
vận TCP
• 3.2 Ghép và tách kênh – Cấu trúc đoạn
– Truyền tin cậy
• 3.3 Truyền phi kết nối: UDP
– Điều khiển luồng
• 3.4 Các nguyên lý truyền tin
– Quản trị kết nối
cậy
• 3.6 Các nguyên lý kiểm soát
tắc nghẽn
• 3.7 Kiểm soát tắc nghẽn
trong TCP

Lê Đình Thanh, MMT-Tầng giao vận 3-88


Kiểm soát tắc nghẽn trong TCP
• end-end (không có hỗ trợ của mạng) Bên gửi cảm nhận tắc nghẽn
• Bên gửi giới hạn phát: như thế nào?
LastByteSent-LastByteAcked • Mất đoạn = timeout hoặc
 CongWin 3 acks lặp
• Thô, • Bên gửi giảm tốc độ gửi
khi phát hiện mất
CongWin Ba cơ chế:
rate =
• CongWin động,RTT
hàm củaBytes/sec
nghẽn mạng – AIMD
cảm nhận được
– Bắt đầu chậm
– Thận trọng sau timeout

Lê Đình Thanh, MMT-Tầng giao vận 3-89


TCP AIMD
Giảm cấp số nhân Tăng cấp số cộng
multiplicative decrease: giảm additive increase: tăng
CongWin một nửa sau phát
hiện mất đoạn
CongWin 1 MSS / RTT khi
không phát hiện mất:
congestion
window thăm dò
24 Kbytes

16 Kbytes

8 Kbytes

time

Long-lived TCP connection


Lê Đình Thanh, MMT-Tầng giao vận 3-90
TCP Bắt đầu chậm
• Khi mới kết nối, CongWin =  Tăng nhanh tốc độ phát
theo cấp số nhân cho đến
1 MSS
khi phát hiện mất gói đầu
– Ví dụ: MSS = 500 bytes & RTT
= 200 msec tiên
– Tốc độ xuất phát rate = 20
kbps
• Băng thông sẵn sàng có thể
>> MSS/RTT
– Mong muốn tăng tốc nhanh
đến tốc độ tối đa

Lê Đình Thanh, MMT-Tầng giao vận 3-91


TCP Bắt đầu chậm (tiếp)
• Tăng nhanh tốc độ phát Host A Host B
theo cấp số nhân cho đến
khi phát hiện mất gói đầu

RTT
tiên:
– Gấp đối CongWin sau mỗi
RTT
– Tăng CongWin sau mỗi ACK
nhận được
• Tóm tắt: tốc độ xuất phát
chậm và tăng nhanh theo
cấp số nhân
time

Lê Đình Thanh, MMT-Tầng giao vận 3-92


Mịn hơn
Triết lý:
• Sau 3 ACKs lặp:
– CongWin được giảm một nửa • 3 ACKs lặp biểu thị mạng có
– Sau đó được tăng tuyến tính thể truyền một số đoạn
• Nhưng sau timeout:
• timeout trước 3
– CongWin được đặt về 1 MSS;
– Sau đó được tăng theo cấp số ACKs lặp “cảnh báo hơn”
nhân đến một ngưỡng, rồi tăng
tuyến tính

Lê Đình Thanh, MMT-Tầng giao vận 3-93


Mịn hơn (tiếp)
H: Khi nào chuyển từ tăng
theo cấp số nhân sang
tăng tuyến tính?
TL: Khi CongWin đạt 1/2
giá trị của nó trước
timeout.

Cài đặt:
• BiếnThreshold
• Khi mất đoạn, Threshold được
đặt bằng 1/2 CongWin trước
khi mất

Lê Đình Thanh, MMT-Tầng giao vận 3-94


Tóm tắt: Điều khiển tắc nghẽn TCP

• Khi CongWin dưới Threshold, bên gửi ở pha slow-


start, cửa sổ tăng theo cấp số nhân.
• Khi CongWin vượt Threshold, bên gửi ở pha
congestion-avoidance, cửa sổ tăng tuyến tính.
• Khi 3 ACK lặp xuất hiện, Threshold được đặt bằng
CongWin/2 và CongWin được đặt về Threshold.

• Khi timeout xuất hiện, Threshold được đặt về


CongWin/2 và CongWin được đặt về 1 MSS.

Lê Đình Thanh, MMT-Tầng giao vận 3-95


Điều khiển tắc nghẽn bên gửi TCP
Sự kiện Trạng thái Hành động bên gửi TCP Ghi chú
Nhận ACK Slow Start CongWin = CongWin + MSS, Gấp đôi CongWin sau mỗi
cho dữ liệu (SS) If (CongWin > Threshold) RTT
chưa biên set state to “Congestion
nhận Avoidance”
Nhận ACK Congestion CongWin = CongWin+MSS * Tăng CongWin 1 MSS sau
cho dữ liệu Avoidance (MSS/CongWin) mỗi
chưa biên (CA)
nhận
Phát hiện SS or CA Threshold = CongWin/2, Khôi phục nhanh, giảm theo
mất khi nhận CongWin = Threshold, cấp số nhân. CongWin sẽ
3 ACK lặp Set state to “Congestion không nhỏ hơn 1 MSS.
Avoidance”
Timeout SS or CA Threshold = CongWin/2, Vào slow start
CongWin = 1 MSS,
Set state to “Slow Start”
Duplicate SS or CA Tăng bộ đếm lặp ACK cho đoạn CongWin và Threshold
ACK được biên nhận không thay đổi

Lê Đình Thanh, MMT-Tầng giao vận 3-96


Thông lượng TCP
• Thông lượng trung bình là hàm của kích thước
cửa sổ và RTT?
– Bỏ qua slow start
• Đặt W là kích thước cửa sổ khi phát hiện mất
đoạn.
• Khi k.th. cửa sổ là W, thông lượng là W/RTT
• Sau khi phát hiện mất đoạn, k.th. cửa sổ còn
W/2, thông lượng còn W/2RTT.
• Thông lượng trung bình: .75 W/RTT
Lê Đình Thanh, MMT-Tầng giao vận 3-97
TCP - Tính công bằng
Mục đích của tính công bằng: Nếu K phiên TCP chia sẻ cùng
một liên kết cổ chai có băng thông R, mỗi phiên có tốc độ
trung bình là R/K

TCP connection 1

bottleneck
TCP
router
connection 2
capacity R

Lê Đình Thanh, MMT-Tầng giao vận 3-98


Tại sao TCP có tính công bằng?
Hai phiên cạnh tranh nhau:
• Tăng theo cấp số cộng tạo dốc nghiêng 1, khi thông lượng tăng
• Giảm theo cấp số nhân giảm thông lượng theo tỉ lệ

R equal bandwidth share

loss: decrease window by factor of 2


congestion avoidance: additive increase
loss: decrease window by factor of 2
congestion avoidance: additive increase

Connection 1 throughput R
Lê Đình Thanh, MMT-Tầng giao vận 3-99
Tính công bằng (tiếp)
Công bằng và UDP Công bằng và các kết nối TCP
• Các ứng dụng đa phương song song
tiện thường không sử • Hai hosts có thể mở hai kết nối
dụng TCP song song, vd. Web browsers
– do not want rate throttled • Ví dụ: liên kết có bằng thông R
bởi điều khiển tắc nghẽn hỗ trợ 9 kết nối;
• Mà dùng UDP: – ứng dụng mới yêu cầu 1 kết nối
– Bơm dữ liệu audio/video ở TCP, nhận tốc độ R/10
tốc độ cố định, khứ gói mất – ứng dụng mới yêu cầu 11 kết
nối, nhận R/2 !
• Lĩnh vực nghiên cứu: TCP
friendly

Lê Đình Thanh, MMT-Tầng giao vận 3-100


Mô hình hóa trễ
Ký hiệu, giả thiết:
H: Sau bao lâu sẽ nhận được đối • Giả sử một liên kết giữa client
tượng từ Web server kể từ và server có tốc độ R
khi gửi request? • S: MSS (bits)
• O: object size (bits)
Bỏ qua tắc nghẽn, trễ chịu tác
• Không phát lại (không mất,
dụng bởi: không hỏng)
• Thiết lập kết nối TCP Kích thước cửa sổ:
• Trễ truyền dữ liệu • Ban đầu giả sử: K.th. cửa sổ cố
• slow start định, W đoạn
• Sau đó động, theo slow start

Lê Đình Thanh, MMT-Tầng giao vận 3-101


Cửa sổ tắc nghẽn cố định (1)

Trường hợp thứ nhất:


WS/R > RTT + S/R: ACK cho đoạn
đầu tiên trong cửa sổ trước
khi window’s worth of data
sent

delay = 2RTT + O/R

Lê Đình Thanh, MMT-Tầng giao vận 3-102


Cửa sổ tắc nghẽn cố định (2)

Trường hợp thứ hai:


• WS/R < RTT + S/R: đợi ACK
sau khi gửi window’s worth
of data sent

delay = 2RTT + O/R


+ (K-1)[S/R + RTT - WS/R]

Lê Đình Thanh, MMT-Tầng giao vận 3-103


Mô hình hóa trễ TCP: Slow Start (1)
Giả sử cửa sổ tăng theo slow start

Trễ cho một đối tượng là:


O  S S
Latency = 2 RTT + + P  RTT +  − ( 2 P − 1)
R  R R
trong đó P là số lần TCP rỗi ở server:

P = min{Q, K − 1}

- trong đó Q là số lần server rỗi nếu đối tượng có kích thước không giới hạn.

- và K là số cửa sổ phủ kín đối tượng.

Lê Đình Thanh, MMT-Tầng giao vận 3-104


Mô hình hóa trễ TCP: Slow Start (2)
Các thành phần trễ: initiate TCP
connection
• 2 RTT thiết lập kết nối và
yêu cầu request
object
• O/R để truyền đối tượng first window
= S/R
• thời gian server rỗi do
slow start RTT
second window
= 2S/R

Server rỗi:
P = min{K-1,Q} times third window
= 4S/R

fourth window
Ví dụ: = 8S/R
• O/S = 15 đoạn
• K = 4 cửa sổ
•Q=2
• P = min{K-1,Q} = 2 object
complete
transmission
delivered
time at
Server rỗi P=2 lần time at server
client

Lê Đình Thanh, MMT-Tầng giao vận 3-105


Mô hình hóa trễ TCP (3)
S
+ RTT = time from when server starts to send segment
R
until server receives acknowledgement
initiate TCP
connection
S
2k −1 = time to transmit the kth window request
R object
first window
= S/R
+
S k −1 S 
RTT

R + RTT − 2 = idle time after the kth window second window

R 
= 2S/R

third window
= 4S/R

P
O
delay = + 2 RTT +  idleTime p fourth window
= 8S/R
R p =1
P
O S S
= + 2 RTT +  [ + RTT − 2 k −1 ]
R k =1 R R object
complete
transmission
delivered
O S S
= + 2 RTT + P[ RTT + ] − (2 P − 1) time at
R R R time at
client
server

Lê Đình Thanh, MMT-Tầng giao vận 3-106


Mô hình hóa trễ (4)
Nhắc lại K = số cửa sổ phủ kín đối tượng

Tính K như thế nào ?

K = min{k : 20 S + 21 S +  + 2 k −1 S  O}
= min{k : 20 + 21 +  + 2 k −1  O / S }
O
= min{k : 2 − 1  }
k

S
O
= min{k : k  log 2 ( + 1)}
S
 O 
= log 2 ( + 1)
 S 
Tính Q, số lần server rỗi với đối tượng có kích thước không giới hạn,
tương tự (see HW).

Lê Đình Thanh, MMT-Tầng giao vận 3-107


Mô hình hóa HTTP
• Giửa sử trang Web bao gồm:
– 1 trang HTML (k.th. O bits)
– M tệp ảnh (k.th. O bits)
• Non-persistent HTTP:
– M+1 TCP kết nối liên tiếp
– Response time = (M+1)O/R + (M+1)2RTT + sum of idle times
• Persistent HTTP:
– 2 RTT để yêu cầu và nhận trang HTML
– 1 RTT để yêu cầu và nhận M tệp ảnh
– Response time = (M+1)O/R + 3RTT + sum of idle times
• Non-persistent HTTP với X kết nối song song
– Giử sử M/X nguyên
– 1 kết nối TCP cho tệp HTML
– M/X tập kết nối song song cho các tệp ảnh.
– Response time = (M+1)O/R + (M/X + 1)2RTT + sum of idle times

Lê Đình Thanh, MMT-Tầng giao vận 3-108


HTTP Response time (giây)
RTT = 100 msec, O = 5 Kbytes, M=10 and X=5
20
18
16
14
non-persistent
12
10
persistent
8
6
parallel non-
4
persistent
2
0
28 100 1 Mbps 10
Kbps Kbps Mbps
Với băng thông thấp, thời gian kết nối và thời gian đáp ứng chiếm phần lớn
thời gian truyền.
Kết nối bền vững chỉ cho cải thiện nhỏ so với nhiều kết nối song song.

Lê Đình Thanh, MMT-Tầng giao vận 3-109


HTTP Response time (giây)
RTT =1 sec, O = 5 Kbytes, M=10 and X=5
70
60
50
non-persistent
40
30 persistent

20 parallel non-
10 persistent
0
28 100 1 Mbps 10
Kbps Kbps Mbps
Với RTT lớn, thời gian đáp ứng chủ yếu do thiết lập TCP
& slow start. Kết nối bền vững cho cải thiện đáng kể
improvement: đặc biệt khi tích trễ*thông lớn.
Lê Đình Thanh, MMT-Tầng giao vận 3-110
Chương 3: Tóm tắt
• Các nguyên lý đằng sau các
dịch vụ tầng giao vận:
– ghép, tách kênh
– Truyền tin cậy
– Điều khiển luồng
– Điều khiển tắc nghẽn
Tiếp theo:
• Thể hiện và cài đặt trong
Internet • Rời biên mạng (tầng
– UDP ứng dụng và giao vận)
– TCP • Đi vào lõi mạng

Lê Đình Thanh, MMT-Tầng giao vận 3-111


Chương 4
Tầng mạng

Ghi chú
Slides này dựa trên sildes của J.F Kurose and K.W. Ross .

Computer Networking: A
Top Down Approach
Featuring the Internet,
3rd edition.
Jim Kurose, Keith Ross
Addison-Wesley, July 2004.

Lê Đình Thanh, MMT-Tầng mạng 4-1


Chương 4: Tầng mạng
Mục đích:
• Hiểu các nguyên lý đằng sau các dịch vụ tầng
mạng:
– Định tuyến (chọn đường)
– Giải quyết tính khả mở rộng
– Router làm việc như thế nào
– Các chủ đề tiên tiến: IPv6, di động
• Thể hiện và cài đặt trong Internet

Lê Đình Thanh, MMT-Tầng mạng 4-2


Chương 4: Tầng mạng
• 4. 1 Giới thiệu • 4.5 Giải thuật định tuyến
• 4.2 Mạng mạch ảo và mạng – Trạng thái liên kết
chuyển gói – Véctơ khoảng cách
– Phân cấp
• 4.3 Cái gì bên trong router
• 4.4 IP: Internet Protocol • 4.6 Định tuyến trong
Internet
– Định dạng gói
– RIP
– Địa chỉ IPv4
– OSPF
– ICMP
– BGP
– IPv6
• 4.7 Phát tỏa và đa phát

Lê Đình Thanh, MMT-Tầng mạng 4-3


Tầng mạng
• Chuyển đoạn dữ liệu tầng
giao vận từ nút gửi đến nút application
transport
nhận network
data link network
• Bên gửi gói đoạn trong gói physical
network
data link
data link
physical
network
data link
(datagram/packet) physical physical

• Bên nhận bóc đoạn trong


network
data link
physical network
gói và chuyển cho tầng giao data link
physical
vận network
network
• Các giao thức tầng mạng có
data link
data link physical
physical
ở mọi host, router network
data link application

• Router kiểm tra mọi trường physical transport


network
data link
tiêu đề của mọi IP packet đi physical

qua nó

Lê Đình Thanh, MMT-Tầng mạng 4-4


Các chức năng chính của tầng mạng
• Định tuyến: xác định Tương tự:
đường đi của gói từ
 Định tuyến: lập hành
nguồn đến đích.
trình từ nguồn đến đích
– Giải thuật định tuyến
(Routing algorithm)  Chuyển tiếp: đi qua mỗi
giao điểm (ngã hai, ba,
• Chuyển tiếp: chuyển
tư …) trên hành trình
gói từ cổng vào sang
cổng ra thích hợp ở
từng router
Lê Đình Thanh, MMT-Tầng mạng 4-5
Hoạt động luân phiên giữa định tuyến
và chuyển tiếp
Giải thuật định tuyến

Bảng định tuyến


Giá trị tiêu đề Liên kết ra
0100 3
0101 2
0111 2
1001 1

Giá trị trong tiêu đề


của gói đến
0111 1

3 2

Lê Đình Thanh, MMT-Tầng mạng 4-6


Thiết lập kết nối
• Chức năng quan trọng thứ 3 trong một vài
kiến trúc mạng:
– ATM, frame relay, X.25
• Trước khi chuyển gói, hai hosts và các routers
liên quan thiết lập kết nối ảo
– Routers tham gia
• Kết nối:
– Tầng mạng: giữa hai hosts
– Tầng giao vận: giữa hai tiến trình

Lê Đình Thanh, MMT-Tầng mạng 4-7


Mô hình dịch vụ mạng
H: Mô hình dịch vụ nào cho “kênh” vận chuyển gói từ nút
gửi đến nút nhận?

Ví dụ dịch vụ cho từng gói: Ví dụ dịch vụ cho luồng gói:


• Chuyển đảm bảo • Chuyển các gói đến đúng
• Chuyển đảm bảo với trễ thứ tự
tối đa 40 msec • Đảm bảo băng thông tối
thiểu cho luồng
• Ràng buộc về thay đổi
khoảng cách giữa các gói

Lê Đình Thanh, MMT-Tầng mạng 4-8


Các mô hình dịch vụ tầng mạng:
Guarantees ?
Network Service Congestion
Architecture Model Bandwidth Loss Order Timing feedback

Internet best effort none no no no no (inferred


via loss)
ATM CBR constant yes yes yes no
rate congestion
ATM VBR guaranteed yes yes yes no
rate congestion
ATM ABR guaranteed no yes no yes
minimum
ATM UBR none no yes no no

Lê Đình Thanh, MMT-Tầng mạng 4-9


Chương 4: Tầng mạng
• 4. 1 Giới thiệu • 4.5 Giải thuật định tuyến
• 4.2 Mạng mạch ảo và mạng – Trạng thái liên kết
chuyển gói – Véctơ khoảng cách
– Phân cấp
• 4.3 Cái gì bên trong router
• 4.4 IP: Internet Protocol • 4.6 Định tuyến trong
Internet
– Định dạng gói
– RIP
– IPv4
– OSPF
– ICMP
– BGP
– IPv6
• 4.7 Phát tỏa và đa phát

Lê Đình Thanh, MMT-Tầng mạng 4-10


Kết nối tầng mạng và dịch vụ phi kết nối

• Mạng chuyển gói cung cấp dịch vụ phi kết nối


• Mạng mạch ảo cung cấp dịch vụ kết nối
• Tương tự các dịch vụ tầng giao vận, nhưng:
– Dịch vụ: host-to-host
– Không có lựa chọn: mạng chỉ cung cấp một dịch vụ
– Cài đặt: trong lõi mạng

Lê Đình Thanh, MMT-Tầng mạng 4-11


Mạch ảo
“Đường đi từ nguồn đến đích ứng xử như mạch điện thoại”
– performance-wise
– Các hoạt động của mạng dọc theo đường từ nguồn đến đích

• Thiết lập/ngắt cuộc gọi cho mỗi cuộc gọi trước khi dữ liệu có thể
chảy
• Mỗi gói mang định danh VC (không phải địa chỉ nút đích)
• Mỗi router trên đường từ nguồn đến đích duy trì “trạng thái” của
mỗi kết nối đi qua
• Tài nguyên của liên kết, của router (băng thông, đệm) được cấp phát
cho VC

Lê Đình Thanh, MMT-Tầng mạng 4-12


Cài đặt VC
Một VC bao gồm:
1. Đường đi từ nguồn đến đích
2. Các số VC, mỗi số cho một liên kết dọc đường
định tuyến
3. Bảng định tuyến tại mỗi routers dọc đường định
tuyến
• Gói thuộc VC mang một số VC.
• Số VC phải được thay đổi trên mỗi liên kết.
– Số VC mới được lấy từ bảng định tuyến

Lê Đình Thanh, MMT-Tầng mạng 4-13


Bảng định tuyến
VC #

12 22 32

1 3
2

Bảng định tuyến ở interface


#
router góc tây bắc:
Giao diện vào VC # vào Giao diện ra VC # ra

1 12 2 22
2 63 1 18
3 7 2 17
1 97 3 87
… … … …

Routers duy trì thông tin trạng thái kết nối!


Lê Đình Thanh, MMT-Tầng mạng 4-14
Mạch ảo: Các giao thức báo hiệu

• Được sử dụng để thiết lập, duy trì, ngắt VC


• Được sử dụng trong ATM, frame-relay, X.25
• Không được sử dụng trong Internet

application
6. Nhận dữ liệu application
transport 5. Luồng dữ liệu bắt đầu
network 4. Cuộc gọi được kết nối 3. Chấp nhận cuộctransport
gọi
1. Khởi tạo cuộc gọi 2. Cuộc gọi đến network
data link
data link
physical
physical

Lê Đình Thanh, MMT-Tầng mạng 4-15


Mạng chuyển gói
• Không thiết lập cuộc gọi ở tầng mạng
• routers: không lưu trạng thái các kết nối
– Không có khái niệm kết nối tầng mạng
• Gói được chuyển tiếp sử dụng địa chỉ nút đích
– Các gói cung nguồn-đích có thể đi theo các đường khác nhau

application
application
transport
transport
network
1. Gửi dữ liệu 2. Nhận dữ liệu network
data link
data link
physical
physical

Lê Đình Thanh, MMT-Tầng mạng 4-16


Có thể đến 4 tỷ
Bảng định tuyến

Dải địa chỉ đích Giao diện liên kết

11001000 00010111 00010000 00000000


through 0
11001000 00010111 00010111 11111111

11001000 00010111 00011000 00000000


through 1
11001000 00010111 00011000 11111111

11001000 00010111 00011001 00000000


through 2
11001000 00010111 00011111 11111111

otherwise 3
Lê Đình Thanh, MMT-Tầng mạng 4-17
Đối sánh theo đoạn đầu dài nhất
Prefix Match Link Interface
11001000 00010111 00010 0
11001000 00010111 00011000 1
11001000 00010111 00011 2
otherwise 3

Ví dụ

DA: 11001000 00010111 00010110 10100001 Giao diện nào?

DA: 11001000 00010111 00011000 10101010 Giao diện nào?

Lê Đình Thanh, MMT-Tầng mạng 4-18


Datagram <> VC : tại sao?

Internet ATM
• Dữ liệu được trao đổi giữa các • Hội thoại của con người:
máy tính
– Ràng buộc thời gian, tin cậy
– Dịch vụ “đàn hồi”, không ràng
– Cần cho các dịch vụ đảm
buộc thời gian.
bảo
• Hệ thống cuối “thông minh”
• Hệ thống cuối “dumb”
– Có thể điều chỉnh, điều khiển
– telephones
hoạt động, khôi phục lỗi
– Phức tạp trong lõi
– Đơn giản trong lõi, phức tạp
ngoài biên
• Nhiều loại liên kết
– Các đặc tính khác nhau
– Khó có dịch vụ đồng nhất

Lê Đình Thanh, MMT-Tầng mạng 4-19


Chương 4: Tầng mạng
• 4. 1 Giới thiệu • 4.5 Giải thuật định tuyến
• 4.2 Mạng mạch ảo và mạng – Trạng thái liên kết
chuyển gói – Véctơ khoảng cách
– Phân cấp
• 4.3 Cái gì bên trong router
• 4.4 IP: Internet Protocol • 4.6 Định tuyến trong
Internet
– Định dạng gói
– RIP
– IPv4
– OSPF
– ICMP
– BGP
– IPv6
• 4.7 Phát tỏa và đa phát

Lê Đình Thanh, MMT-Tầng mạng 4-20


Tổng quan kiến trúc router
Hai chức năng chính của router:
• Định tuyến (RIP, OSPF, BGP)
• Chuyển tiếp datagrams từ liên kết vào sang liên kết ra

Lê Đình Thanh, MMT-Tầng mạng 4-21


Chức năng của cổng vào

Tầng vật lý:


bit-level reception
Tầng liên kết: Chuyển mạch phi tập trung:
vd., Ethernet • Cho đích của datagram, tìm cổng ra sử dụng
bảng định tuyến ở bộ nhớ cổng vào
• Mục đích: hoàn thành xử lý ở cổng vào với tốc
độ ‘line speed’
• Xếp hàng: nếu datagrams đến nhanh hơn tốc
độ chuyển tiếp của switch fabric

Lê Đình Thanh, MMT-Tầng mạng 4-22


Ba dạng của switching fabrics

Lê Đình Thanh, MMT-Tầng mạng 4-23


Chuyển mạch qua bộ nhớ
Router thế hệ 1:
• máy tính truyền thống với chuyển mạch dưới điều khiển của CPU
• Các gói được copy vào bộ nhớ hệ thống
• tốc độ bị giới hạn (2 bus)

Input Memory Output


Port Port

System Bus

Lê Đình Thanh, MMT-Tầng mạng 4-24


Chuyển mạch qua tuyến

• datagram từ bộ nhớ cổng vào sang bộ


nhớ cổng ra qua tuyến được chia sẻ
• cạnh tranh tuyến: tốc độ chuyển mạch
bị giới hạn bởi băng thông tuyến
• 1 Gbps bus, Cisco 1900: tốc độ đủ cho
truy cập và router dùng cho cơ quan
(không phải khu vực hoặc backbone)

Lê Đình Thanh, MMT-Tầng mạng 4-25


Chuyển mạch qua một mạng liên kết nối

• Khắc phục các giới hạn của băng thông tuyến


• Các mạng Banyan, các mạng liên kết nối ban đầu được
phát triển để kết nối các bộ vi xử lý trong bộ đa xử lý
• Thiết kế nâng cao: phân mảnh datagram thành các cell có
độ dài cố định, chuyển cells qua fabric.
• Cisco 12000: chuyển mạch Gbps qua mạng liên kết nối

Lê Đình Thanh, MMT-Tầng mạng 4-26


Cổng ra

• Đệm các datagrams đến từ fabric nhanh hơn tốc độ phát


• Lập lịch chọn datagrams trong hàng đợi để phát

Lê Đình Thanh, MMT-Tầng mạng 4-27


Hàng đợi cổng ra

• Lưu đệm khi tốc độ đến qua switch vượt tốc độ đường ra
• Xếp hàng (trễ) và tràn đệm (mất)!

Lê Đình Thanh, MMT-Tầng mạng 4-28


Hàng đợi cổng vào
• Fabric chậm hơn các cổng vào kết hợp -> xếp hàng ở cổng
vào
• Chặn ở đầu tuyến (HOL): datagram đang xếp hàng ở vị trí đầu
tiên ngăn các datagrams khác trong hàng đợi đi tiếp
• Trễ do xếp hàng và mất do tràn đệm!

Lê Đình Thanh, MMT-Tầng mạng 4-29


Chương 4: Tầng mạng
• 4. 1 Giới thiệu • 4.5 Giải thuật định tuyến
• 4.2 Mạng mạch ảo và mạng – Trạng thái liên kết
datagram – Véctơ khoảng cách
– Định tuyến phân cấp
• 4.3 Cái gì bên trong router
• 4.4 IP: Internet Protocol • 4.6 Định tuyến trong
Internet
– Định dạng gói tin
– RIP
– IPv4
– OSPF
– ICMP
– BGP
– IPv6
• 4.7 Phát tỏa và đa phát

Lê Đình Thanh, MMT-Tầng mạng 4-30


Tầng mạng của Internet
Các chức năng tầng mạng của host, router:

Tầng giao vận: TCP, UDP

GT định tuyến Giao thức IP


•Chọn đường •Đánh địa chỉ
•RIP, OSPF, BGP •Định dạng gói tin
Network •Xử lý gói tin
layer Bảng định
Giao thức ICMP
tuyến
•Báo lỗi
•Báo hiệu bởi router

Tầng liên kết

Tầng vật lý

Lê Đình Thanh, MMT-Tầng mạng 4-31


Chương 4: Tầng mạng
• 4. 1 Giới thiệu • 4.5 Giải thuật định tuyến
• 4.2 Mạng mạch ảo và mạng – Trạng thái liên kết
datagram – Véctơ khoảng cách
– Phân cấp
• 4.3 Cái gì bên trong router
• 4.4 IP: Internet Protocol • 4.6 Định tuyến trong
Internet
– Định dạng gói tin
– RIP
– IPv4
– OSPF
– ICMP
– BGP
– IPv6
• 4.7 Phát tỏa và đa phát

Lê Đình Thanh, MMT-Tầng mạng 4-32


Định dạng gói
Số phiên bản 32 bits
giao thức IP Độ dài gói
Độ dài tiêu đề type of (bytes)
ver head. length
(bytes) len service cho
“loại” dữ liệu fragment Phân mảnh/
16-bit identifier flgs
offset Ghép hợp
Số chặng còn time to upper Internet
lại tối đa live layer checksum
(bị giảm ở mỗi
32 bit source IP address
router)
32 bit destination IP address
Giao thức
tầng giao vận Options (if any) Vd. timestamp,
Ghi lại đường
data đã đi qua.
(variable length,
typically a TCP
or UDP segment)

Lê Đình Thanh, MMT-Tầng mạng 4-33


Phân mảnh & Ghép hợp
• Các liên kết có MTU (max.transfer
size) – khung lớn nhất có thể
chuyển được qua liên kết.
– Các dạng liên kết khác nhau, Phân mảnh:
MTU khác nhau vào: một gói lớn
• Gói IP lớn hơn MTU được chia ra: 3 gói nhỏ hơn
(“phân mảnh”) trong mạng
– Một gói trở thành nhiều gói
– “ghép hợp” ở đích cuối cùng Ghép hợp
– Các bít tiêu đề IP được sử
dụng để nhận diện, sắp thứ tự
các mảnh

Lê Đình Thanh, MMT-Tầng mạng 4-34


Phân mảnh & Ghép hợp
length ID fragflag offset
Ví dụ =4000 =x =0 =0
 4000 byte datagram
Một gói lớn trở thành
 MTU = 1500 bytes nhiều gói 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

Lê Đình Thanh, MMT-Tầng mạng 4-35


Chương 4: Tầng mạng
• 4. 1 Giới thiệu • 4.5 Giải thuật định tuyến
• 4.2 Mạng mạch ảo và mạng – Trạng thái liên kết
chuyển gói – Véctơ khoảng cách
– Phân cấp
• 4.3 Cái gì bên trong router
• 4.4 IP: Internet Protocol • 4.6 Định tuyến trong
Internet
– Định dạng gói
– RIP
– IPv4
– OSPF
– ICMP
– BGP
– IPv6
• 4.7 Phát tỏa và đa phát

Lê Đình Thanh, MMT-Tầng mạng 4-36


IP Addressing: giới thiệu
• Địa chỉ IP: định danh giao 223.1.1.1

diện của host và router, 223.1.2.1


223.1.1.2
dài 32-bit 223.1.1.4 223.1.2.9
• Giao diện (interface): kết 223.1.2.2
nối giữa host/router và 223.1.1.3 223.1.3.27

liên kết vật lý


– Router thường có nhiều
giao diện 223.1.3.1 223.1.3.2
– host có thể có nhiều giao
diện
– Một địa chỉ IP/giao diện
223.1.1.1 = 11011111 00000001 00000001 00000001

223 1 1 1

Lê Đình Thanh, MMT-Tầng mạng 4-37


Mạng con
• IP address: 223.1.1.1

– Phần địa chỉ mạng con 223.1.2.1


223.1.1.2
(các bít cao) 223.1.1.4 223.1.2.9
– Phần địa chỉ host (các bít
thấp) 223.1.1.3
223.1.2.2
223.1.3.27
• Mạng con là gì?
LAN
– Các giao diện thiết bị có
cùng phần địa chỉ mạng 223.1.3.1 223.1.3.2
con
– Có thể đến được nhau
không qua router
Mạng bao gồm 3 mạng con

Lê Đình Thanh, MMT-Tầng mạng 4-38


Mạng con 223.1.1.0/24
223.1.2.0/24

Cách xác định


• Để xác định các mạng con,
tách mỗi giao diện ra khỏi
host hoặc router, tạo ra
đảo của mạng cô lập. Mỗi
mạng cô lập được gọi là
một mạng con.

223.1.3.0/24

Subnet mask: /24

Lê Đình Thanh, MMT-Tầng mạng 4-39


Mạng con 223.1.1.2

Bao nhiêu? 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.3.27

223.1.2.1 223.1.2.2 223.1.3.1 223.1.3.2

Lê Đình Thanh, MMT-Tầng mạng 4-40


Địa chỉ IP: CIDR
CIDR: Classless InterDomain Routing
– Phần cho địa chỉ mạng con có độ dài bất kỳ
– Định dạng địa chỉ: a.b.c.d/x, trong đó x là # bits
cho phần địa chỉ mạng con

Phần địa chỉ Phần địa


mạng con chỉ host
11001000 00010111 00010 000 00000000
200.23.16.0/23
Lê Đình Thanh, MMT-Tầng mạng 4-41
Địa chỉ IP: đặt như thế nào?

H: Host nhận địa chỉ IP như thế nào?

• Đặt cứng bởi quản trị hệ thống trong một tệp


– Win: control-panel->network->configuration->tcp/ip-
>properties
– UNIX: /etc/rc.config
• DHCP: Dynamic Host Configuration Protocol: tự động nhận địa chỉ IP từ
server
– Cắm-và-chạy: plug-and-play
(xem chương tiếp theo)

Lê Đình Thanh, MMT-Tầng mạng 4-42


Địa chỉ IP: đặt như thế nào?
H: Mạng nhận phần địa chỉ mạng con như thế
nào?
T: Nhận phần được cấp phát từ ISP

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
... ….. …. ….
Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23

Lê Đình Thanh, MMT-Tầng mạng 4-43


Địa chỉ phân cấp: kết hợp đường
Địa chỉ phân cấp cho phép quảng bá thông tin định tuyến hiệu quả:

Organization 0
200.23.16.0/23
Organization 1
“Send me anything
200.23.18.0/23 with addresses
Organization 2 beginning
200.23.20.0/23 . Fly-By-Night-ISP 200.23.16.0/20”
.
. . Internet
.
Organization 7 .
200.23.30.0/23
“Send me anything
ISPs-R-Us
with addresses
beginning
199.31.0.0/16”

Lê Đình Thanh, MMT-Tầng mạng 4-44


Địa chỉ phân cấp: Đường cụ thể hơn

ISPs-R-Us có đường đi cụ thể hơn đến Organization 1


Organization 0
200.23.16.0/23

“Send me anything
with addresses
Organization 2 beginning
200.23.20.0/23 . Fly-By-Night-ISP 200.23.16.0/20”
.
. . Internet
.
Organization 7 .
200.23.30.0/23
“Send me anything
ISPs-R-Us
with addresses
Organization 1 beginning 199.31.0.0/16
or 200.23.18.0/23”
200.23.18.0/23

Lê Đình Thanh, MMT-Tầng mạng 4-45


Địa chỉ IP

H: ISP nhận khối/dải địa chỉ như thế nào?


Đ: ICANN: Internet Corporation for Assigned
Names and Numbers
– Cấp địa chỉ
– Quản trị DNS
– Gán tên miền, giải quyết tranh chấp

Lê Đình Thanh, MMT-Tầng mạng 4-46


NAT: Network Address Translation

Phần còn lại của Mạng cục bộ


Internet (vd., home network)
10.0.0/24 10.0.0.1

10.0.0.4
10.0.0.2
138.76.29.7

10.0.0.3

Tất cả gói rời mạng cục bộ Gói với nguồn hoặc


có cùng một địa chỉ nguồn là NAT IP đích trong mạng này
138.76.29.7, có địa chỉ nguồn, đích
có cổng nguồn khác nhau là 10.0.0/24
(như thông thường)

Lê Đình Thanh, MMT-Tầng mạng 4-47


NAT: Network Address Translation

• Động lực: mạng cục bộ sử dụng chỉ một địa chỉ IP nhìn từ
Internet:
– Không cần cấp phát cả dải địa chỉ từ ISP: - một địa
chỉ IP dùng cho tất cả thiết bị
– Có thể thay đổi các địa chỉ của các thiết bị bên trong
mạng cục bộ mà không cần phải báo cho bên ngoài
– Có thể thay đổi ISP mà không phải thay đổi địa chỉ
các thiết bị bên trong mạng cục bộ
– Các thiết bị bên trong mạng cục bộ không lộ địa chỉ
ra bên ngoài (tăng an ninh).
– Chỉ cần mua một IP Internet (kinh tế)
Lê Đình Thanh, MMT-Tầng mạng 4-48
NAT: Network Address Translation
Cài đặt: NAT router phải:

– Gói đi ra: thay (source IP address, port #) của gói ra


bằng (NAT IP address, new port #)
. . . Host ở xa sẽ đáp ứng sử dụng địa chỉ (NAT IP address,
new port #) như địa chỉ đích.

– Nhớ (in NAT translation table) mọi cặp ánh xạ


(source IP address, port #) - (NAT IP address, new
port #)
– Gói đi vào: thay (NAT IP address, new port #) trong
trường dest của gói đi vào bằng (source IP address,
port #) tương ứng lưu trong bảng NAT

Lê Đình Thanh, MMT-Tầng mạng 4-49


NAT: Network Address Translation
NAT translation table
2: NAT router 1: host 10.0.0.1
WAN side addr LAN side addr
thay địa chỉ nguồn gửi gói đến
138.76.29.7, 5001 10.0.0.1, 3345 128.119.40, 80
trong gói
…… ……
từ 10.0.0.1, 3345
sang 138.76.29.7, 5001, S: 10.0.0.1, 3345
cập nhật bảng D: 128.119.40.186, 80
10.0.0.1
1
S: 138.76.29.7, 5001
2 D: 128.119.40.186, 80 10.0.0.4
10.0.0.2
138.76.29.7 S: 128.119.40.186, 80
D: 10.0.0.1, 3345
4
S: 128.119.40.186, 80
D: 138.76.29.7, 5001 3 10.0.0.3
4: NAT router
3: trả lời đến thay địa chỉ đích
dest. address: của gói từ
138.76.29.7, 5001 138.76.29.7, 5001 sang 10.0.0.1, 3345

Lê Đình Thanh, MMT-Tầng mạng 4-50


NAT: Network Address Translation

• Trường số hiệu cổng dài 16 bít:


– 60,000 kết nối đồng thời với một địa chỉ!
• NAT gây tranh cãi:
– routers chỉ nên xử lý đến tầng 3
– Đụng độ tham số end-to-end
• Có thể phải quan tâm đến NAT khi thiết kế ứng dụng,
vd. ứng dụng ngang hàng
– Sự thiếu hụt địa chỉ nên được giải quyết bằng
IPv6
Lê Đình Thanh, MMT-Tầng mạng 4-51
Chương 4: Tầng mạng
• 4. 1 Giới thiệu • 4.5 Giải thuật định tuyến
• 4.2 Mạng mạch ảo và mạng – Trạng thái liên kết
datagram – Véctơ khoảng cách
– Phân cấp
• 4.3 Cái gì bên trong router
• 4.4 IP: Internet Protocol • 4.6 Định tuyến trong
Internet
– Datagram format
– RIP
– IPv4 addressing
– OSPF
– ICMP
– BGP
– IPv6
• 4.7 Phát tỏa và đa phát

Lê Đình Thanh, MMT-Tầng mạng 4-52


ICMP: Internet Control Message Protocol

• Được sử dụng bởi các hosts & routers


để trao đổi thông tin tầng mạng Type Code description
0 0 echo reply (ping)
– Báo lỗi
3 0 dest. network unreachable
– echo request/reply (used by 3 1 dest host unreachable
ping) 3 2 dest protocol unreachable
• Tầng mạng “trên” IP: 3 3 dest port unreachable
– Thông báo ICMP được mang 3 6 dest network unknown
trong gói IP 3 7 dest host unknown
• Thông báo ICMP: kiểu, mã và 8 bytes 4 0 source quench (congestion
đầu của gói IP gây lỗi 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

Lê Đình Thanh, MMT-Tầng mạng 4-53


Traceroute và ICMP
• Nguồn gửi loạt các đoạn UDP • Khi thông báo ICMP đến nguồn,
không có số hiệu cổng đến đích nguồn tính RTT
– Đoạn đầu có TTL =1 • Traceroute thực hiện thủ tục này
– Đoạn hai có TTL=2, … 3 lần
• Khi datagram thứ n đến router Các điều kiện dừng
thứ n: • Đoạn UDP đến đích
– Router loại bỏ datagram • Đích trả thông báo ICMP “host
– Và gửi về nguồn một thông báo unreachable” (type 3, code 3)
ICMP (type 11, code 0) chứa tên
và IP của router • Khi nguồn nhận được thông báo
ICMP này, dừng.

Lê Đình Thanh, MMT-Tầng mạng 4-54


Chương 4: Tầng mạng
• 4. 1 Giới thiệu • 4.5 Giải thuật định tuyến
• 4.2 Mạng mạch ảo và mạng – Trạng thái liên kết
datagram – Véctơ khoảng cách
– Phân cấp
• 4.3 Cái gì bên trong router
• 4.4 IP: Internet Protocol • 4.6 Định tuyến trong
Internet
– Datagram format
– RIP
– IPv4 addressing
– OSPF
– ICMP
– BGP
– IPv6
• 4.7 Phát tỏa và đa phát

Lê Đình Thanh, MMT-Tầng mạng 4-55


IPv6
• Động lực ban đầu: không gian địa chỉ 32-bit
sớm được cấp phát hết.
• Động lực khác:
– Định dạng tiêu đề giúp tăng tốc độ xử lý/chuyển
tiếp
– Thay đổi tiêu đề để hỗ trợ QoS
Đinh dạng IPv6 datagram:
– Tiêu đề có độ dài cố định 40 bytes
– Không cho phân mảnh
Lê Đình Thanh, MMT-Tầng mạng 4-56
Tiêu đề IPv6 (tiếp)
Ưu tin: độ ưu tin của datagram trong luồng
Gán nhãn luồng: các datagrams trong cùng “luồng”.
(khái niệm “luồng” không được định nghĩa tốt).
Next header: giao thức tầng trên

Lê Đình Thanh, MMT-Tầng mạng 4-57


Những thay đổi từ IPv4
• Checksum: được loại bỏ hoàn toàn nhằm giảm
thời gian xử lý ở mỗi chặng
• Options: cho phép, nhưng ngoài tiêu đề, được
biểu thị bằng trường “Next Header”
• ICMPv6: phiên bản ICMP mới
– Các loại thông báo mới, vd. “Packet Too Big”
– Các chức năng quản lý nhóm đa phát

Lê Đình Thanh, MMT-Tầng mạng 4-58


Dịch từ IPv4 sang IPv6
• Không phải tất cả routers đều có thể nâng cấp
đồng thời
– no “flag days”
– Mạng hoạt động như thế nào với cả IPv4 router và
IPv6 router?
• Tunneling: IPv6 được mang trong payload của
IPv4 datagram giữa các IPv4 routers

Lê Đình Thanh, MMT-Tầng mạng 4-59


Tunneling
A B E F
Logical view: tunnel

IPv6 IPv6 IPv6 IPv6

A B C D E F
Physical view:
IPv6 IPv6 IPv4 IPv4 IPv6 IPv6

Flow: X Src:B Src:B Flow: X


Src: A Dest: E Dest: E Src: A
Dest: F Dest: F
Flow: X Flow: X
Src: A Src: A
data Dest: F Dest: F data

data data

A-to-B: E-to-F:
B-to-C: B-to-C:
IPv6 IPv6
IPv6 inside IPv6 inside
IPv4 IPv4
Lê Đình Thanh, MMT-Tầng mạng 4-60
Chương 4: Tầng mạng
• 4. 1 Giới thiệu • 4.5 Giải thuật định tuyến
• 4.2 Mạng mạch ảo và mạng – Trạng thái liên kết
datagram – Véctơ khoảng cách
– Phân cấp
• 4.3 Cái gì bên trong router
• 4.4 IP: Internet Protocol • 4.6 Định tuyến trong
Internet
– Datagram format
– RIP
– IPv4 addressing
– OSPF
– ICMP
– BGP
– IPv6
• 4.7 Phát tỏa và đa phát

Lê Đình Thanh, MMT-Tầng mạng 4-61


Luân phiên giữa routing và forwarding

routing algorithm

local forwarding table


header value output link
0100 3
0101 2
0111 2
1001 1

value in arriving
packet’s header
0111 1

3 2

Lê Đình Thanh, MMT-Tầng mạng 4-62


Trừu tượng hóa bằng đồ thị
5
3
v w 5
2
u 2 1 z
3
1 2
x 1
y
G = (N,E)

N = tập routers = { u, v, w, x, y, z }

E = tập liên kết ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }

Lê Đình Thanh, MMT-Tầng mạng 4-63


Trừu tượng hóa …: chi phí
5
• c(x,x’) = chi phí của liên kết (x,x’)
3
v w 5
2 - vd., c(w,z) = 5
u 2 1 z
3 • chi phí có thể luôn là 1, hoặc
1 2 quan hệ ngược với băng thông,
x 1
y
hoặc quan hệ ngược với tắc nghẽn

Chi phí đường đi (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp)

H: Đường đi có chi phí nhỏ nhất giữa u và z ?

Giải thuật định tuyến: tìm đường đi có chi phí thấp nhất

Lê Đình Thanh, MMT-Tầng mạng 4-64


Phân lớp giải thuật định tuyến
Thông tin toàn cục hay phi Tĩnh hay động?
tập trung? Tĩnh:
Toàn cục:
• Các đường ít biến đổi
• Mỗi router có thông tin topo, chi
phí các liên kết toàn mạng Động:
• “link state” algorithms • Các đường thay đổi nhanh
Phi tập trung: – Cập nhật theo chu kỳ
• router biết các nút láng giềng,
chi phí liên kết đến láng giềng – Đáp ứng với thay đổi
• Tiến trình lặp của tính toán, trao chi phí liên kết
đổi thông tin với các láng giềng
• “distance vector” algorithms

Lê Đình Thanh, MMT-Tầng mạng 4-65


Chương 4: Tầng mạng
• 4. 1 Giới thiệu • 4.5 Giải thuật định tuyến
• 4.2 Mạng mạch ảo và mạng – Trạng thái liên kết
datagram – Véctơ khoảng cách
– Phân cấp
• 4.3 Cái gì bên trong router
• 4.4 IP: Internet Protocol • 4.6 Định tuyến trong
Internet
– Datagram format
– RIP
– IPv4 addressing
– OSPF
– ICMP
– BGP
– IPv6
• 4.7 Phát tỏa và đa phát

Lê Đình Thanh, MMT-Tầng mạng 4-66


Giải thuật Trạng thái Liên kết (LS)

Giải thuật Dijkstra’s Ký hiệu:


• Các nút biết toàn bộ topo mạng, • c(x,y): chi phí của liên kết từ x
chi phí của các liên kết đến y; = ∞
– Được thực hiện bằng việc
• D(v): chi phí hiện tại của đường
“quảng bá trạng thái liên kết”
đi từ mình đến v.
– Các nút có cùng thông tin
• Mỗi nút tính các đường đi có chi
• p(v): nút liền sau mình trên
đường đi từ mình đến đích v
phí nhỏ nhất từ nó đến tất cả các
nút còn lại • N': tập các nút đã biết đường đi
– Tạo ra bảng định tuyến cho tới có chi phí ngắn nhất
nút

Lê Đình Thanh, MMT-Tầng mạng 4-67


Giải thuật Dijsktra’s
1 Khởi tạo:
2 N' = {u}
3 Với mỗi nút v v
4 Nếu v liền kề u
5 D(v) = c(u,v)
6 Ngược lại D(v) = ∞
7
8 Lặp
9 Tìm w không thuộc N' có D(w) nhỏ nhất
10 Thêm w vào N'
11 Cập nhật D(v) cho tất cả v liền kề w và không thuộc N' :
12 D(v) = min( D(v), D(w) + c(w,v) )
13 /* chi phí mới đến v là min của giá trị cũ và
14 chi phí đường đến w cộng chi phí liên kết (w, v)*/
15 Đến khi tất cả các nút thuộc N'

Lê Đình Thanh, MMT-Tầng mạng 4-68


Giải thuật Dijkstra’s : ví dụ
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

5
3
v w 5
2
u 2 1 z
3
1 2
x 1
y

Lê Đình Thanh, MMT-Tầng mạng 4-69


Giải thuật Dijkstra’s, thảo luận
Độ phức tạp: n nút
• Mỗi lần lặp: cần kiểm tra tất cả nút, w, không thuộc N’
• n(n+1)/2 phép so sánh: O(n2)
• Các cài đặt hiệu quả hơn có độ phức tạp: O(nlogn)
Oscillations Có thể dao động:
• vd., chi phí liên kết = lưu lượng qua liên kết

1 A A A A
1+e 2+e 0 0 2+e 2+e 0
D 0 0 B D B D B D B
1+e 1 0 0 1+e 1
0 e 0 0 1 1+e 0 e
1
C C C C
1
e
… tính lại … tính lại … tính lại
Khởi tạo
Lê Đình Thanh, MMT-Tầng mạng 4-70
Chương 4: Tầng mạng
• 4. 1 Giới thiệu • 4.5 Giải thuật định tuyến
• 4.2 Mạng mạch ảo và mạng – Trạng thái liên kết
datagram – Véctơ khoảng cách
– Phân cấp
• 4.3 Cái gì bên trong router
• 4.4 IP: Internet Protocol • 4.6 Định tuyến trong
Internet
– Datagram format
– RIP
– IPv4 addressing
– OSPF
– ICMP
– BGP
– IPv6
• 4.7 Phát tỏa và đa phát

Lê Đình Thanh, MMT-Tầng mạng 4-71


Giải thuật véctơ khoảng cách (1)
Công thức Bellman-Ford (quy hoạch động)
Định nghĩa
dx(y) := chi phí đường đi ngắn nhất từ x đến y

Thì

dx(y) = min {c(x,v) + dv(y) }

Trong đó min được tính trên tất cả láng giềng của


x
Lê Đình Thanh, MMT-Tầng mạng 4-72
Bellman-Ford: Ví dụ (2)
5
3
Rõ ràng, dv(z) = 5, dx(z) = 3, dw(z) = 3
v w 5
2
u 2 1 z Công thức B-F phát biểu:
3
1 2 du(z) = min { c(u,v) + dv(z),
x y
1 c(u,x) + dx(z),
c(u,w) + dw(z) }
= min {2 + 5,
1 + 3,
5 + 3} = 4

Lê Đình Thanh, MMT-Tầng mạng 4-73


Giải thuật véctơ khoảng cách (3)
• Dx(y) = ước tính chi phí nhỏ nhất từ x đến y
• Véctơ khoảng cách: Dx = [Dx(y): y є N ]
• Nút x biết chi phí đến mỗi láng giềng v: c(x,v)
• Nút x duy trì véctơ khoảng cách của nó Dx
• Nút x cũng duy trì các véctơ khoảng cách của
các láng giềng
– Với mỗi láng giềng v, x duy trì
Dv = [Dv(y): y є N ]

Lê Đình Thanh, MMT-Tầng mạng 4-74


Giải thuật véctơ khoảng cách (4)
Ý tưởng:
• Mỗi nút định kỳ gửi véctơ khoảng cách của nó đến các
láng giềng
• Khi nút x nhận được DV từ láng giềng, nó cập nhật DV của
nó sử dụng công thức B-F:

Dx(y) ← minv{c(x,v) + Dv(y)} cho mỗi nút y ∊ N

 Ở điều kiện tự nhiên, Dx(y) hội tụ về chi phí nhỏ nhất


dx(y)

Lê Đình Thanh, MMT-Tầng mạng 4-75


Giải thuật véctơ khoảng cách (5)
Lặp, không đồng bộ: mỗi lần Mỗi nút:
lặp địa phương được thực hiện
khi:
• Liên kết liền kề thay đổi Đợi đến khi (chi phí liên kết
• Nhận được DV từ láng giềng liền kề thay đổi hoặc nhận
được thông báo từ láng
Phân tán: giềng)
• Mỗi nút thông báo cho các láng
giềng chỉ khi DV của nó thay
đổi Tính lại các ước lượng
– Các láng giềng sau đó lại
thông báo cho các láng giềng
của chúng nếu cần Nếu DV thay đổi, thông
báo các láng giềng

Lê Đình Thanh, MMT-Tầng mạng 4-76


Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} Dx(z) = min{c(x,y) +
= min{2+0 , 7+1} = 2 Dy(z), c(x,z) + Dz(z)}
node x table = min{2+1 , 7+0} = 3
cost to cost to cost to
x y z x y z x y z
x 0 2 7 x 0 2 3 x 0 2 3

from
from

y ∞∞ ∞ y 2 0 1

from
y 2 0 1
z ∞∞ ∞ z 7 1 0 z 3 1 0
node y table
cost to cost to cost to
x y z x y z x y z y
2 1
x ∞ ∞ ∞ x 0 2 7 x 0 2 3 x z
from

y 2 0 1 y 2 0 1 7
from

from
y 2 0 1
z ∞∞ ∞ z 7 1 0 z 3 1 0
node z table
cost to cost to cost to
x y z x y z x y z

x ∞∞ ∞ x 0 2 7 x 0 2 3
from

from

y 2 0 1 y 2 0 1
from

y ∞∞ ∞
z 7 1 0 z 3 1 0 z 3 1 0
time
Lê Đình Thanh, MMT-Tầng mạng 4-77
DV: chi phí liên kết thay đổi
Chi phí liên kết thay đổi: 1
 Nút phát hiện chi phí của liên kết liền kề y
4 1
thay đổi
x z
 Cập nhật thông tin, tính lại DV của nó 50
 Nếu DV thay đổi, thông báo các láng
giềng
Ở thời điểm t0, y phát hiện chi phí liên kết thay đổi, cập nhật
DV của nó và thông báo cho các láng liền của nó.
“Tin tốt
đi nhanh” Ở thời điểmt1, z nhận thông tin cập nhật từ y và cập nhật DV.
Nó tính chi phí nhỏ nhất mới đến x và gửi DV cho các láng giềng.

Ở thời điểm t2, y nhận thông báo từ z và cập nhật DV của nó. DV
không thay đổi nên y không gửi thông báo cho z.
“Tin xấu
đi chậm”
Lê Đình Thanh, MMT-Tầng mạng 4-78
DV: chi phí liên kết thay đổi
Chi phí thay đổi:
60
 Tin tốt đi nhanh y
4 1
 Tin xấu đi chậm – vấn đề “đếm
đến vô hạn”! x z
50
 44 lần lặp để ổn định: xem sách

Lê Đình Thanh, MMT-Tầng mạng 4-79


So sánh các giải thuật LS và DV
Độ phức tạp thông báo Tính mạnh mẽ: điều gì sẽ xảy ra
• LS: với n nút, E liên kết, O(nE) nếu router không làm việc
thông báo được gửi đúng?
• DV: chỉ trao đổi giữa các láng LS:
giềng – Nút có thể quảng bá chi phí
– Thời gian hội tụ thay đổi liên kết sai
– Mỗi nút tính lại bảng định
Tốc độ hội tụ tuyến
• LS: O(n2) DV:
– Có thể biến động – Nút có thể quảng bá chi phí
• DV: tốc độ hội tụ thay đổi đường đi sai
– Có thể tạo vòng lặp định – Bảng định tuyến của mỗi nút
tuyến được sử dụng bởi các nút khác
– Đếm đến vô hạn • Lan truyền lỗi trong mạng

Lê Đình Thanh, MMT-Tầng mạng 4-80


Chương 4: Tầng mạng
• 4. 1 Giới thiệu • 4.5 Giải thuật định tuyến
• 4.2 Mạng mạch ảo và mạng – Trạng thái liên kết
datagram – Véctơ khoảng cách
– Phân cấp
• 4.3 Cái gì bên trong router
• 4.4 IP: Internet Protocol • 4.6 Định tuyến trong
Internet
– Datagram format
– RIP
– IPv4 addressing
– OSPF
– ICMP
– BGP
– IPv6
• 4.7 Phát tỏa và đa phát

Lê Đình Thanh, MMT-Tầng mạng 4-81


Đinh tuyến phân cấp
Các giải thuật định tuyến trên yêu cầu điều kiện lý
tưởng
 Tất cả router giống nhau
 Mạng “phẳng”
… không đúng trong thực tế
Quy mô: khoảng 200 triệu Tự trị trong quản trị
nút: • internet = mạng của các mạng
• Không thể lưu tất cả các đích • Quản trị mạng có thể điều khiển
trong các bảng định tuyến! định tuyến trong mạng riêng của
• Trao đổi bảng định tuyến có thể họ
làm ngập liên kết!

Lê Đình Thanh, MMT-Tầng mạng 4-82


Định tuyến phân cấp

3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
1d AS1 • Kết hợp các routers thành
các “hệ thống tự trị” (AS)
– Định tuyến liên-AS
Intra-AS Inter-AS – Định tuyến nội-AS
Routing Routing
algorithm algorithm – routers ở các AS khác nhau
Forwarding
có có thể chạy các giao
Gateway router table thức nội-AS khác nhau
• Có liên kết trực tiếp đến
router thuộc AS khác
Lê Đình Thanh, MMT-Tầng mạng 4-83
Các AS liên kết nối
3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b AS1
1d • Bảng định tuyến được cấu
hình bởi cả giải thuật định
tuyến Nội-AS và Liên-AS
Intra-AS Inter-AS
Routing Routing – GT Nội-AS cập nhật các
algorithm algorithm
phần tử cho đích bên trong
Forwarding – GT Liên-AS & Nội-AS cập
table nhật các phần tử cho đích
bên ngoài

Lê Đình Thanh, MMT-Tầng mạng 4-84


Nhiệm vụ Liên-AS
• Giả sử router trong AS1 AS1 cần:
nhận được gói có đích 1. Biết đích nào đến được
bên ngoài AS1 qua AS2, đích nào qua
– Router cần chuyển gói AS3
hướng về gateway routers, 2. Lan truyền thông tin đến
nhưng cái nào?
được này đến tất cả
router trong AS1
Công việc của định tuyến
Liên-AS!
3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
1d AS1
Lê Đình Thanh, MMT-Tầng mạng 4-85
Ví dụ: Thiết lập bảng định tuyến cho router
1d

• Giả sử AS1 học được từ giao thức liên-AS là


tập con x đến được từ AS3 (gateway 1c)
nhưng không đến được từ AS2.
• Giao thức liên-AS lan truyền thông tin về tính
đến được đến tất cả router bên trong AS1.
• Router 1d xác định từ thông tin định tuyến
nội-AS là giao diện I trên đường có chi phí
nhỏ nhất đến 1c.
• Thêm phần tử (x,I) vào bảng định tuyến.
Lê Đình Thanh, MMT-Tầng mạng 4-86
Ví dụ: Chọn từ nhiều ASes
• Bây giờ giả sử AS1 học được từ giao thức liên-AS là tập con
x đến được từ AS3 và AS2.
• Để cấu hình bảng định tuyến, router 1d phải xác định
gateway để chuyển gói đến đích thuộc x.
• Đây cũng là công việc của giao thức định tuyến liên-AS!
• Hot potato routing: gửi gói tin hướng về gateway router gần
nhất.

Sử dụng thông tin Xác định từ bảng


Học từ giao thức Hot potato routing: định tuyến giao diện
định tuyến nội-AS:
liên-AS: Tập con x Chọn gateway I là dẫn đến gateway
xác định chi phí nhỏ
đến được qua gần nhất gần nhất:
nhất đến mỗi
nhiều gateway Thêm (x,I) vào
gateway
bảng định tuyến

Lê Đình Thanh, MMT-Tầng mạng 4-87


Chương 4: Tầng mạng
• 4. 1 Giới thiệu • 4.5 Giải thuật định tuyến
• 4.2 Mạng mạch ảo và mạng – Trạng thái liên kết
datagram – Véctơ khoảng cách
– Phân cấp
• 4.3 Cái gì bên trong router
• 4.4 IP: Internet Protocol • 4.6 Định tuyến trong
Internet
– Datagram format
– RIP (nội-AS)
– IPv4 addressing
– OSPF (nội-AS)
– ICMP
– BGP (liên-AS)
– IPv6
• 4.7 Phát tỏa và đa phát

Lê Đình Thanh, MMT-Tầng mạng 4-88


Định tuyến nội-AS

• Còn được biết đến với tên Interior Gateway Protocols (IGP)
• Các giao thức định tuyến nội-AS phổ biến nhất:

– RIP: Routing Information Protocol


– OSPF: Open Shortest Path First
– IGRP: Interior Gateway Routing Protocol (đặc
quyền của Cisco)

Lê Đình Thanh, MMT-Tầng mạng 4-89


Chương 4: Tầng mạng
• 4. 1 Giới thiệu • 4.5 Giải thuật định tuyến
• 4.2 Mạng mạch ảo và mạng – Trạng thái liên kết
datagram – Véctơ khoảng cách
– Phân cấp
• 4.3 Cái gì bên trong router
• 4.4 IP: Internet Protocol • 4.6 Định tuyến trong
Internet
– Datagram format
– RIP (nội-AS)
– IPv4 addressing
– OSPF (nội-AS)
– ICMP
– BGP (liên-AS)
– IPv6
• 4.7 Phát tỏa và đa phát

Lê Đình Thanh, MMT-Tầng mạng 4-90


RIP ( Routing Information Protocol)

• Giải thuật véctơ khoảng cách


• Có trong phát hành BSD-UNIX năm 1982
• Độ đo khoảng cách: # chặng (max = 15 chặng)

u Đích số chặng
v
u 1
A B w v 2
w 2
x 3
x y 3
z C D z 2
y

Lê Đình Thanh, MMT-Tầng mạng 4-91


Quảng bá RIP
• Véctơ khoảng cách: được trao đổi giữa các
láng giềng sau mỗi 30 giây qua thông báo
Response (còn gọi là quảng bá)
• Mỗi quảng bá: danh sách tối đa 25 mạng đích
trong AS

Lê Đình Thanh, MMT-Tầng mạng 4-92


RIP: Ví dụ
z
w x y
A D B

C
Mạng đích Router kế tiếp Số chặng đến đích.
w A 2
y B 2
z B 7
x -- 1
…. …. ....
Bảng định tuyến của D

Lê Đình Thanh, MMT-Tầng mạng 4-93


RIP: Ví dụ
Dest Next hops
w - - Quảng bá
x - - từ A đến D
z C 4
…. … ...
z
w x y
A D B

C
Mạng đích Router kế tiếp Số chặng đến đích. w
A 2
y B 2
z BA 75
x -- 1
…. …. ....
Bảng định
Lê Đình Thanh,tuyến củamạng
MMT-Tầng D 4-94
RIP: Lỗi liên kết và khôi phục
Nếu không nghe thông tin quảng bá sau 180 giây --> láng
giềng/liên kết đã hỏng
– Các đường đi qua láng giềng không hợp lệ
– Gửi các quảng bá mới đến các láng giềng
– Các láng giềng lần lượt gửi thông tin quảng bá
(nếu bảng định tuyến thay đổi)
– Thông tin liên kết hỏng nhanh chóng lan truyền
trong toàn mạng
– poison reverse được sử dụng để tránh lặp ping-
pong (khoảng cách vô hạn = 16 chặng)
Lê Đình Thanh, MMT-Tầng mạng 4-95
Xử lý bảng RIP

• Các bảng định tuyến RIP được quản lý bởi tiến trình tầng ứng
dụng, route-d (daemon)
• Quảng bá gửi trong gói UDP, được lặp theo chu kỳ

routed routed

Transprt Transprt
(UDP) (UDP)
network forwarding forwarding network
(IP) table table (IP)
link link
physical physical

Lê Đình Thanh, MMT-Tầng mạng 4-96


Chương 4: Tầng mạng
• 4. 1 Giới thiệu • 4.5 Giải thuật định tuyến
• 4.2 Mạng mạch ảo và mạng – Trạng thái liên kết
datagram – Véctơ khoảng cách
– Phân cấp
• 4.3 Cái gì bên trong router
• 4.4 IP: Internet Protocol • 4.6 Định tuyến trong
Internet
– Datagram format
– RIP (nội-AS)
– IPv4 addressing
– OSPF (nội-AS)
– ICMP
– BGP (liên-AS)
– IPv6
• 4.7 Phát tỏa và đa phát

Lê Đình Thanh, MMT-Tầng mạng 4-97


OSPF (Open Shortest Path First)
• “open”: sử dụng công cộng
• Sử dụng giải thuật Link State
– Phán tán gói LS
– Thông tin topo ở mỗi nút
– Các đường được tính bằng giải thuật Dijkstra

• Quảng bá OSPF chứa một phần tử cho mỗi láng giềng


• LS được phát tán trong toàn bộ AS (thông qua phát tràn-
flooding)
– Được mang trong thông báo OSPF trực tiếp tầng IP (không phải TCP
hoặc UDP)

Lê Đình Thanh, MMT-Tầng mạng 4-98


OSPF: Những đặc điểm (RIP không có)

• An ninh: tất cả thông báo OSPF đều được xác thực (để tránh
xâm nhập độc hại)
• Cho phép nhiều đường cùng chi phí (RIP chỉ cho 1 đường)
• Với mỗi liên kết, nhiều độ đo chi phí cho các TOS khác nhau
(vd., chi phí liên kết vệ tinh được đặt “thấp” với nỗ lực tối đa,
đặt “cao” cho thời gian thực)
• Hỗ trợ tích hợp đơn phát và đa phát:
– Multicast OSPF (MOSPF) sử dụng cùng dữ liệu
topo như OSPF
• OSPF phân cấp trong các mạng lớn.

Lê Đình Thanh, MMT-Tầng mạng 4-99


OSPF phân cấp

Lê Đình Thanh, MMT-Tầng mạng 4-100


OSPF phân cấp
• Kiến trúc hai cấp: local area, backbone.
– Chỉ quảng bá LS trong vùng
– Mỗi nút có thông tin topo vùng chứa nó; chỉ biết
đường đi ngắn nhất đến các mạng thuộc các vùng
khác.
• Các router biên vùng: “tóm tắt” khoảng cách đến các mạng
trong vùng trực thuộc, quảng bá đến các router biên vùng
khác.
• Backbone routers: chạy OSPF giới hạn trong backbone.
• Router biên: kết nối đến các AS khác.

Lê Đình Thanh, MMT-Tầng mạng 4-101


Chương 4: Tầng mạng
• 4. 1 Giới thiệu • 4.5 Giải thuật định tuyến
• 4.2 Mạng mạch ảo và mạng – Link state
datagram – Distance Vector
– Hierarchical routing
• 4.3 Cái gì bên trong router
• 4.4 IP: Internet Protocol • 4.6 Định tuyến trong
Internet
– Datagram format
– RIP
– IPv4 addressing
– OSPF
– ICMP
– BGP
– IPv6
• 4.7 Phát tỏa và đa phát

Lê Đình Thanh, MMT-Tầng mạng 4-102


BGP: Border Gateway Protocol

• BGP: chuẩn de facto


• BGP cung cấp cho AS công cụ để:
1. Nhận thông tin đến được từ các AS láng giềng
2. Lan truyền thông tin đến được các AS láng giềng
đến tất cả router bên trong AS.
3. Xác định đường định tuyến “tốt” đến các mạng
con dựa trên thông tin đến được và chính sách.
• Cho phép một mạng con quảng bá sự có mặt
của nó đến phần còn lại của Internet: “Tôi ở
đây”

Lê Đình Thanh, MMT-Tầng mạng 4-103


Cơ bản về BGP
• Các cặp routers (BGP peers) trao đổi thông tin định tuyến qua các kết
nối TCP bán-cố định: phiên BGP
• Nhớ rằng các phiên BGP không liên quan các liên kết vật lý.
• Khi AS2 quảng bá đoạn đầu đường đi đến AS1, AS2 hứa hẹn nó sẽ
chuyển tiếp mọi gói có đoạn đầu đường đi là đoạn đầu đường đi đến
Á1.
– AS2 có thể tổng hợp prefixes trong quảng bá của nó

3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
AS1 1d
eBGP session
iBGP session
Lê Đình Thanh, MMT-Tầng mạng 4-104
Phân tán thông tin đến được
• Với phiên eBGP giữa 3a và 1c, AS3 gửi prefix thông tin đến được đến
AS1.
• 1c sau đó có thể sử dụng iBGP để phân tán thông tin mới này đến tất
cả router trong AS1
• 1b sau đó có thể tái-quảng bá thông tin đến được đến AS2 thông qua
phiên 1b-2a eBGP
• Khi router học được prefix mới, nó tạo một phần tử cho prefix trong
bảng định tuyến của nó.

3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
AS1 1d
eBGP session
iBGP session
Lê Đình Thanh, MMT-Tầng mạng 4-105
Các thuộc tính đường định tuyến &
Đường định tuyến BGP
• Khi quảng bá một prefix, thông tin quảng bá bao gồm các
thuộc tính BGP.
– prefix + các thuộc tính= “đường định tuyến”
• Hai thuộc tính quan trọng:
– AS-PATH: chứa các ASs trên đường đi của thông tin quảng bá
– NEXT-HOP: Chỉ router nội-AS đến AS tiếp theo. (Có thể có nhiều liên
kết từ AS hiện tại đến AS tiếp theo)
• Khi router gateway nhận được thông tin quảng bá, sử dụng
import policy để chấp nhận/từ chối.

Lê Đình Thanh, MMT-Tầng mạng 4-106


BGP – lựa chọn đường
• Router có thể biết nhiều đường đến một
prefix. Router phải lựa chọn một đường.
• Các luật loại trừ:
1. Giá trị ưu tiên địa phương: quyết định chính sách
2. AS-PATH ngắn nhất
3. Router tiếp theo gần nhất: hot potato routing
4. Các tiêu chí khác

Lê Đình Thanh, MMT-Tầng mạng 4-107


Thông báo BGP
• Được trao đổi qua TCP.
• Các thông báo:
– OPEN: mở kết nối TCP đến nút nhận và xác thực
nút gửi
– UPDATE: quảng bá đường định tuyến mới (hoặc
rút /bỏ đường cũ)
– KEEPALIVE: giữ kết nối khi không có UPDATES;
đồng thời được sử dụng để trả lời (ACKs) OPEN
– NOTIFICATION: báo lỗi trong thông báo trước;
đồng thời được sử dụng để đóng kết nối
Lê Đình Thanh, MMT-Tầng mạng 4-108
Chính sách BGP
legend: provider
B network
X
W A
customer
C network:

Figure 4.5-BGPnew: a simple BGP scenario


 A,B,C là các nhà cung cấp mạng
 X,W,Y là khách hàng (của các nhà cung cấp)
 X là dual-homed: kết nối đến hai mạng
 X không muốn định tuyến từ B qua X đến C
 .. do đó X không quảng bá với B đường đi đến C

Lê Đình Thanh, MMT-Tầng mạng 4-109


Chính sách BGP (2)
legend: provider
B network
X
W A
customer
C network:

Figure 4.5-BGPnew: a simple BGP scenario


 A quảng bá với B đường đi AW
 B quảng bá với X đường đi BAW
 B có nên quảng bá với C đường đi BAW?
 Không! B không nhận được “lợi ích” từ định tuyến CBAW vì cả W và C
không là khách hàng của B
 B muốn buộc C phải định tuyến đến W quan A
 B muốn chỉ định tuyến đến/từ khách hàng của nó!
Lê Đình Thanh, MMT-Tầng mạng 4-110
Tại sao lại phân biệt định tuyến nội-AS và liên-AS?

Chính sách:
• Liên-AS: các admin muốn điều khiển đường đi của lưu lượng
đi qua mạng của mình.
• Nội-AS: một admin, không cần chính sách
Quy mô:
• Định tuyến phân cấp tiết kiệm kích thước bảng định tuyến,
giảm lưu lượng cập nhật
Hiệu năng:
• Nội-AS: có thể tập trung vào hiệu năng
• Liên-AS: chính sách có thể thống trị hiệu năng

Lê Đình Thanh, MMT-Tầng mạng 4-111


Chương 4: Tầng mạng
• 4. 1 Giới thiệu • 4.5 Giải thuật định tuyến
• 4.2 Mạng mạch ảo và mạng – Link state
datagram – Distance Vector
– Hierarchical routing
• 4.3 Cái gì bên trong router
• 4.4 IP: Internet Protocol • 4.6 Định tuyến trong
Internet
– Datagram format
– RIP
– IPv4 addressing
– OSPF
– ICMP
– BGP
– IPv6
• 4.7 Phát tỏa và đa phát

Lê Đình Thanh, MMT-Tầng mạng 4-112


Tạo/phát lặp
lặp R1 R1
lặp
R2 R2

R3 R4 R3 R4

(a) (b)

Figure 4.39 Lặp ở nguồn khác lặp trong mạng.


(a) Lặp ở nguồn, (b) lặp trong mạng

Lê Đình Thanh, MMT-Tầng mạng 4-113


A A

B B
c c

D D
F E F E

G G
(a) Phát tỏa được khởi tạo ở A (b) Phát tỏa được khởi tạo ở D

Figure 4.41: Phát tỏa theo cây bao trùm

Lê Đình Thanh, MMT-Tầng mạng 4-114


A A
3
B B
c c
4
2
D D
F E F E
1 5
G G
(a) Các bước xây dựng (b) Cây bao trùm được
cây bao trùm xây dựng

Figure 4.42: Xây dựng cây bao trùm dựa vào tâm

Lê Đình Thanh, MMT-Tầng mạng 4-115


Xây dựng cây đa phát: Phát biểu bài toán
• Mục đích: tìm một cây (hoặc nhiều cây) kết
nối các routers có các thành viên nhóm đa
phát
– cây: không phải tất cả các đường giữa các router đều được sử dụng
– Dựa trên nguồn: cây riêng cho mỗi nút gửi và nhóm nút nhận
– Cây dùng chung: cùng một cây cho tất cả nhóm thành viên

Cây dùng chung Các cây theo nút nguồn


Lê Đình Thanh, MMT-Tầng mạng 4-116
Các tiếp cận xây dựng cây đa phát
Các tiếp cận:
• Cây dựa trên nguồn: một cây/một nút nguồn
– Các cây đường đi ngắn nhất
– Chuyển tiếp theo chiều ngược lại
• Cây dùng chung: cả nhóm sử dụng một cây
– Cây bao trùm nhỏ nhất (Steiner)
– Các cây dựa trên tâm

…chúng ta sẽ xem xét các tiếp cận cơ bản trước, sau đó các giao
thức cụ thể theo từng tiếp cận

Lê Đình Thanh, MMT-Tầng mạng 4-117


Cây đường đi ngắn nhất
• Cây chuyển tiếp đa phát: cây với các đường đi
ngắn nhất từ nút gửi đến tất cả các nút nhận
– Giải thuật Dijkstra

S: source Ký hiệu
R1 2
1 R4 router với
thành viên nhóm
R2 5
Router không có
3 4
R5 thành viên nhóm
R3 6 i Liên kết được sử dụng
R6 R7 cho chuyển tiếp,
i chỉ thứ tự liên kết được
thêm theo giải thuật
Lê Đình Thanh, MMT-Tầng mạng 4-118
Chuyển tiếp theo đường ngược lại

❑ Dựa vào thông tin của router về đường định tuyến


đơn phát ngắn nhất từ nó đến nút gửi
❑ Mỗi router có hành vi chuyển tiếp đơn giản:

if (gói đa phát nhận được trên liên kết đến trên


đường ngắn nhất quay về tâm)
then phát tràn gói đến tất cả liên kết ra
else bỏ qua gói

Lê Đình Thanh, MMT-Tầng mạng 4-119


Chuyển tiếp theo đường ngược lại: Ví dụ
S: source
LEGEND
R1
R4 router có thành viên
nhóm
R2
router không có thành
R5 viên nhóm
R3 datagram sẽ được chuyển tiếp
R6 R7
datagram sẽ không
được chuyển tiếp

• Kết quả là một SPT ngược theo nút nguồn


– Có thể là lựa chọn tồi với các liên kết bất đối xứng

Lê Đình Thanh, MMT-Tầng mạng 4-120


Chuyển tiếp theo đường ngược lại: Cắt tỉa
• Cây chuyển tiếp chứa các cây con không chứa thành viên
nhóm đa phát
– Không cần chuyển tiếp xuống cây con
– Thông báo “prune” được gửi ngược lên bởi
router không có thành viên phía dưới
S: source Ký hiệu

R1 Router có
R4
thành viên nhóm

R2 router không có
P thành viên nhóm
P
R5 Thông báo prune
R3 P Các liên kết đa phát
R6 R7

Lê Đình Thanh, MMT-Tầng mạng 4-121


Cây dùng chung: Cây Steiner

• Cây Steiner: cây chi phí nhỏ nhất kết nối tất cả
routers có thành viên nhóm
• Bài toán NP-đầy đủ
• Các heuristics
• Không được sử dụng trong thực hành:
– Tính toán phức tạp
– Cần thông tin về toàn bộ mạng
– Cứng nhắc: chạy lại mỗi khi một router tham
gia/rời

Lê Đình Thanh, MMT-Tầng mạng 4-122


Xây dựng cây dùng chung dựa trên
tâm
• Một cây được dùng chung bởi tất cả nhóm
• Một router được xác định như “tâm” của cây
• Để tham gia:
– Router biên gửi đơn phátjoin-msg đến router tâm
– join-msg “được xử lý” bởi các router trung gian và
chuyển tiếp về tâm
– join-msg có thể gặp nhánh cây, hoặc đến tâm
– Đường đi của join-msg trở thành nhánh mới của
cây

Lê Đình Thanh, MMT-Tầng mạng 4-123


Cây dựa trên tâm: ví dụ
Giử sử R6 được chọn làm tâm:

Ký hiệu

R1 router có thành viên nhóm


R4
3
R2 router không có
2 thành viên nhóm
1
R5 Thứ tự các thông báo tham
gia cây được tạo
R3
1 R6 R7

Lê Đình Thanh, MMT-Tầng mạng 4-124


Định tuyến đa phát Internet: DVMRP

• DVMRP: distance vector multicast routing


protocol, RFC1075
• Phát tràn và cắt tỉa: cây chuyển tiếp ngược, cây
dựa trên nguồn
– Cây RPF dựa trên bảng định tuyến DVMRP được xây
dựng bởi các router DVMRP
– Không có giả thiết về đơn phát phía dưới
– Datagram đầu được phát tràn qua RPF
– routers không muốn tham gia nhóm: gửi lên trên
thông báo prune

Lê Đình Thanh, MMT-Tầng mạng 4-125


DVMRP: tiếp…
• Trạng thái mềm: DVMRP router theo chu kỳ (1
min.) “quên” các nhánh bị cắt tỉa:
– Dữ liệu đa phát theo các nhánh chưa bị cắt tỉa
– downstream router: cắt tỉa hoặc tiếp tục nhận dữ liệu
• routers có thể nhanh chóng ghép lại cây
– Theo IGMP join ở lá
• odds and ends
– Thường được cài đặt ở router
– Định tuyến Mbone được thực hiện sử dụng DVMRP

Lê Đình Thanh, MMT-Tầng mạng 4-126


Đường hầm
H: Kết nối các “đảo” của các router đa phát ở
”biển” các router đơn phát?

Topo vật lý Tôp logic

❑ datagram đa phát gói bên trong datagram “thường”


❑ IP datagram thường được gửi qua “đường hầm” đơn phát IP thông
thường đến các router đa phát nhận
❑ Router đa phát nhận mở gói để nhận datagram đa phát

Lê Đình Thanh, MMT-Tầng mạng 4-127


PIM: Đa phát độc lập giao thức
• Không phụ thuộc vào giải thuật đơn phát được sử dụng ở
dưới
• Hai kịch bản phân phối đa phát:

Dày: Thưa:
❑ Các thành viên được gói ❑ # mạng có thành viên nhóm
dày, gần nhau. nhỏ hơn # các mạng kết nối
❑ Băng thông nhiều hơn ❑ Thành viên nhóm “được phân
tán rộng”
❑ Băng thông không nhiều

Lê Đình Thanh, MMT-Tầng mạng 4-128


Hệ quả của việc chia đôi Dày-Thưa:

Dày Thưa:
• Tư cách thành viên nhóm • Không phải thành viên cho
bởi các routers được giả đến khi router tham gia rõ
thiết đến khi router bị cắt rõ ràng
ràng • Xây dựng cây đa phát theo
• Xây dựng cây đa phát theo nút nhận-điều khiển (vd.,
dữ liệu-điều khiển (vd., RPF) center-based)
• Băng thông và xử lý của • Băng thông và xử lý của
router không thành viên: router: thận trọng
phung phí

Lê Đình Thanh, MMT-Tầng mạng 4-129


PIM- Dense Mode

Phát tràn-và-cắt tỉa RPF, tương tự DVMRP nhưng


❑ Giao thức đơn phát ở dưới cung cấp thông tin RPF cho
datagram đến
❑ Ít phức tạp hơn (ít hiệu quả) phát tràn downstream so
với DVMRP giảm phụ thuộc vào giải thuật định tuyến ở
dưới
❑ Có cơ chế để router phát hiện nó có phải là router lá
không

Lê Đình Thanh, MMT-Tầng mạng 4-130


PIM - Sparse Mode
• Tiếp cận dựa trên tâm
• router gửi thông báo join
đến điểm hẹn (RP) R1
R4
– Router trung gian cập nhật join
trạng thái và chuyển tiếp R2
join join

• Sau khi gia nhập qua RP, R5


join
router có thể chuyển sang R3 R7
cây theo nguồn R6

– Hiệu năng được tăng lên: Tất cả dữ liệu đa rendezvous


bớt tập trung, đường ngắn phát từ điểm hẹn point
hơn

Lê Đình Thanh, MMT-Tầng mạng 4-131


PIM - Sparse Mode
Nút gửi:
• Đơn phát dữ liệu đến RP,
RP phân phát dữ liệu R1
R4
xuống cây có gốc là RP join

• RP có thể mở rộng cây đa R2


join
phát lên đến nguồn R5
• RP có thể gửi thông báo R3
join
R7
stop nếu không có nút R6
nhận
Tất cả dữ liệu đa rendezvous
– “không nút nào lắng nghe!” phát từ điểm hẹn point

Lê Đình Thanh, MMT-Tầng mạng 4-132


Tầng mạng: tóm tắt
• Các dịch vụ tầng mạng
• Các nguyên lý định tuyến: link state và
distance vector
• Định tuyến phân cấp
• IP
• Các giao thức định tuyến Internet RIP,
OSPF, BGP
• Bên trong router Tiếp theo:
• IPv6 Tầng liên kết dữ liệu!

Lê Đình Thanh, MMT-Tầng mạng 4-133


Chương 5
Tầng liên kết

Ghi chú
Slides này dựa trên sildes của J.F Kurose and K.W. Ross .

Computer Networking: A
Top Down Approach
Featuring the Internet,
3rd edition.
Jim Kurose, Keith Ross
Addison-Wesley, July 2004.

Lê Đình Thanh, MMT-Tầng liên kết 5-1


Chương 5: Tầng liên kết
Mục đích:
• Hiểu các nguyên lý đằng sau dịch vụ tầng liên kết:
– Phát hiện lỗi, sửa lỗi
– Chia sẻ kênh phát: đa truy cập
– Địa chỉ tầng liên kết
– Truyền tin cậy, kiểm soát luồng: done!
• Thể hiện và cài đặt nhiều công nghệ tầng liên kết

Lê Đình Thanh, MMT-Tầng liên kết 5-2


Tầng liên kết
• 5.1 Giới thiệu • 5.6 Hubs và switches
• 5.2 Phát hiện và sửa lỗi • 5.7 PPP
• 5.3 Các giao thức đa truy • 5.8 Ảo hóa liên kết: ATM và
cập MPLS
• 5.4 Địa chỉ tầng liên kết
• 5.5 Ethernet

Lê Đình Thanh, MMT-Tầng liên kết 5-3


Tầng liên kết: Giới thiệu“link”
Một số thuật ngữ:
• hosts và routers là nút
• Kênh kết nối giữa hai nút liền kề
được gọi là liên kết
– Liên kết có dây
– Liên kết không dây
– LANs
• Gói tin tầng liên kết được gọi là
frame, gói datagram ở bên trong

Tầng liên kết dữ liệu có nhiệm vụ


chuyển datagram từ một nút sang
nút liền kề đi qua liên kết
Lê Đình Thanh, MMT-Tầng liên kết 5-4
Tầng liên kết: ngữ cảnh
• Datagram được truyền bởi nhiều giao thức tầng liên kết qua
nhiều liên kết khác nhau:
– vd., Ethernet qua liên kết thứ nhất, frame relay ở các liên kết trung
gian, 802.11 ở liên kết cuối
• Mỗi giao thức liên kết cung cấp các dịch vụ khác nhau
– vd., có thể cung cấp rdt qua liên kết hoặc không

Lê Đình Thanh, MMT-Tầng liên kết 5-5


Các dịch vụ tầng liên kết
• Chia khung, truy cập liên kết:
– Gói datagram trong frame, thêm header, trailer
– Truy cập kênh nếu môi trường được dùng chung
– Địa chỉ “MAC” được dùng trong frame headers để xác định
nguồn, đích
• Khác địa chỉ IP!
• Chuyển tin cậy giữa hai nút liền kề
– Chúng ta đã học trong Chương 3!
– Ít được dùng trên liên kết có lỗi bit thấp (sợi quang, một số cáp
soắn đôi)
– Liên kết không dây: tỉ suất lỗi cao
• H: tại sao tính tin cậy trên cả tầng liên kết và cả end-
end?

Lê Đình Thanh, MMT-Tầng liên kết 5-6


Các dịch vụ tầng liên kết (tiếp)
• Điều khiển luồng:
– pacing giữa nút gửi và nút nhận liền kề

• Phát hiện lỗi:


– Lỗi do méo tín hiệu, nhiễu.
– Nút nhận phát hiện lỗi:
• Báo cho nút gửi gửi lại hoặc bỏ frame
• Sửa lỗi:
– Nút gửi xác định và sửa bit lỗi mà không yêu cầu phát lại
• Song công và bán song công
– Với bán song công, hai nút ở hai đầu liên kết không thể phát đồng thời

Lê Đình Thanh, MMT-Tầng liên kết 5-7


Giao tiếp Adaptors
datagram
Giao thức tầng liên kết Nút nhận
Nút gửi

frame frame
adapter adapter

• Tầng liên kết được cài đặt ở • Bên nhận


“adaptor” (NIC) – Xem lỗi, rdt, điều khiển luồng,
– Ethernet card, PCMCI card, …
802.11 card – Bóc datagram, chuyển cho nút
nhận
• Bên gửi:
– Gói datagram trong frame • adapter là bán tự trị
– Thêm các bit kiểm tra lỗi, rdt, • Các tầng liên kết & vật lý
điều khiển luồng, …

Lê Đình Thanh, MMT-Tầng liên kết 5-8


Tầng liên kết
• 5.1 Giới thiệu • 5.6 Hubs và switches
• 5.2 Phát hiện và sửa lỗi • 5.7 PPP
• 5.3 Các giao thức đa truy • 5.8 Ảo hóa liên kết: ATM và
cập MPLS
• 5.4 Địa chỉ tầng liên kết
• 5.5 Ethernet

Lê Đình Thanh, MMT-Tầng liên kết 5-9


Phát hiện lỗi
EDC= Các bít phát hiện và sửa lỗi (dư thừa)
D = Dữ liệu được bảo vệ bởi kiểm tra lỗi, có thể bao gồm các trường tiêu đề

• Không tin cậy 100%!


• giao thức có thể không phát hiện được một số lỗi, nhưng hiếm khi
• trường EDC lớn hơn cho phát hiện và sửa lỗi tốt hơn

Lê Đình Thanh, MMT-Tầng liên kết 5-10


Kiểm tra chẵn lẻ
Một bít chẵn lẻ: Hai chiều Bit Parity:
Phát hiện các lỗi bit đơn Phát hiện và sửa các lỗi bít đơn

0 0

Lê Đình Thanh, MMT-Tầng liên kết 5-11


Kiểm tra tổng
Mục đích: phát hiện “lỗi” ở đoạn được truyền (ghi chú: chỉ
được sử dụng ở tầng giao vận)

Bên gửi: Bên nhận:


• Tính checksum của đoạn nhận được
• Xem nội dung đoạn như một
• Kiểm tra xem checksum tính được có
dãy các số nguyên 16-bit
bằng giá trị trường checksum không:
• checksum: tổng (bù 1) của các – NO – có lỗi được phát hiện
số
– YES – không phát hiện được lỗi.
• Nút gửi đưa giá trị checksum Nhưng có thể có.
vào trường UDP checksum

Lê Đình Thanh, MMT-Tầng liên kết 5-12


Kiểm tra dư vòng - Cyclic Redundancy Check
• Xem các bít dữ liệu, D, như một số nhị phân
• Chọn mẫu r+1 bit (generator), G
• Mục đích: chọn r CRC bits, R, sao cho
– <D,R> chia hết cho G (mod 2)
– Bên nhận biết G, chia <D,R> cho G. Nếu dư khác 0, có lỗi được phát hiện!
– Có thể phát hiện các lỗi burst nhỏ hơn r+1 bits
• Được sử dụng rộng rãi trong thực tế (ATM, HDCL)

Lê Đình Thanh, MMT-Tầng liên kết 5-13


Ví dụ CRC
Mong muốn:
D.2r XOR R = nG
Tương đương:
D.2r = nG XOR R
Tương đương:
nếu chia D.2r cho G,
mong muốn dư là R

D.2r
R = remainder[ ]
G

Lê Đình Thanh, MMT-Tầng liên kết 5-14


Tầng liên kết
• 5.1 Giới thiệu • 5.6 Hubs và switches
• 5.2 Phát hiện và sửa lỗi • 5.7 PPP
• 5.3 Các giao thức đa truy • 5.8 Ảo hóa liên kết: ATM và
cập MPLS
• 5.4 Địa chỉ tầng liên kết
• 5.5 Ethernet

Lê Đình Thanh, MMT-Tầng liên kết 5-15


Liên kết và giao thức đa truy cập
Hai loại liên kết:
• Điểm-điểm
– PPP cho truy cập dial-up
– Liên kết điểm-điểm giữa Ethernet switch và host
• Phát tỏa (dây và môi trường truyền dùng chung)
– Ethernet truyền thống
– upstream HFC
– 802.11 wireless LAN

Lê Đình Thanh, MMT-Tầng liên kết 5-16


Giao thức đa truy cập
• Một kênh phát tỏa dùng chung
• Nhiều nút phát đồng thời: nhiễu (interference)
– Đụng độ nếu nút nhận nhiều tín hiệu cùng lúc
Giao thức đa truy cập
• Giải thuật phân tán xác định cách thức các nút chia sẻ kênh
truyền, nghĩa là xác định khi nào nút có thể phát
• Truyền thông về chia sẻ kênh sử dụng chính kênh!
– Không có kênh bên ngoài cho việc điều phối

Lê Đình Thanh, MMT-Tầng liên kết 5-17


Giao thức đa truy cập lý tưởng
Kênh phát tỏa với tốc độ R bps
1. Khi một nút muốn phát, nó có thể phát với tốc độ R.
2. Khi M nút muốn phát, mỗi nút có thể gửi ở tốc độ trung bình
R/M
3. Hoàn toàn phi tập trung:
– Không có nút đặc biệt cho việc điều phối phát
– Không có sự đồng bộ đồng hồ, khe thời gian
4. Đơn giản

Lê Đình Thanh, MMT-Tầng liên kết 5-18


Các giao thức MAC: phân loại
Ba lớp rộng:
• Phân hoạch kênh
– Chia kênh thành các “phần” nhỏ hơn (khe thời gian, dải tần, mã)
– Cấp phát “phần” cho nút để dùng riêng
• Truy cập ngẫu nhiên
– Kênh không được chia, cho phép đụng độ
– “khôi phục” sau đụng độ
• Luân phiên
– Các nút luân phiên được quyền phát, nút cần phát nhiều hơn có
thể được cấp phiên dài hơn

Lê Đình Thanh, MMT-Tầng liên kết 5-19


Các giao thức MAC phân hoạch kênh

TDMA: đa truy cập phân chia thời gian


• Truy cập kênh theo “vòng"
• Mỗi trạm nhận được một khe có độ dài cố định (= thời
gian phát gói) trong mỗi vòng
• Khe không được dùng trở thành khe rỗi
• VD: 6-trạm LAN, 1,3,4 có gói, các 2,5,6 rỗi

Lê Đình Thanh, MMT-Tầng liên kết 5-20


Các giao thức MAC phân hoạch kênh

FDMA: Đa truy cập phân chia tần số


• Phổ tần của kênh được chia thành các dải tần
• Mỗi trạm được sử dụng một dải tần cố định
• Khi nút không phát, dải tần dành cho nó rỗi
• vd: 6-trạm LAN, 1,3,4 có gói, các dải tần 2,5,6 rỗi
frequency bands

Lê Đình Thanh, MMT-Tầng liên kết 5-21


Các giao thức truy cập ngẫu nhiên
• Khi nút có gói cần gửi
– Phát ở tốc độ kênh R.
– Không có sự điều phối trước giữa các nút
• Nhiều nút cùng phát ➜ “đụng độ”,
• Giao thức truy cập ngẫu nhiên MAC xác định:
– Cách thức phát hiện đụng độ
– Cách thức khôi phục sau đụng độ (vd., hoãn rồi phát lại)
• Một số giao thức:
– slotted ALOHA
– ALOHA
– CSMA, CSMA/CD, CSMA/CA

Lê Đình Thanh, MMT-Tầng liên kết 5-22


Slotted ALOHA
Giả thiết Hoạt động
• Các frames có cùng kích thước • Khi nút nhận frame mới, nó
• Thời gian được chia thành các phát trong khe tiếp theo
khe bằng nhau, bằng thời gian • Nếu đụng độ, nút phát lại
phát 1 frame
frame trong các khe tiếp theo
• Nút chỉ bắt đầu phát tại đầu với xác suất p cho đến khi
khe
thành công
• Các nút được đồng bộ
• Nếu 2 hoặc nhiều nút phát
trong cùng khe, tất cả các nút
phát hiện được đụng độ

Lê Đình Thanh, MMT-Tầng liên kết 5-23


Slotted ALOHA

Pros Cons
• Một nút hoạt động có thể • Đụng độ, lãng phí khe
phát liên tục ở toàn bộ tốc • Khe rỗi
độ kênh • Nút có thể phát hiện đụng
• Phi tập trung cao: chỉ các độ ít hơn thời gian phát
khe cần phải đồng bộ giữa • Đồng bộ đồng hồ
các nút
• Đơn giản
Lê Đình Thanh, MMT-Tầng liên kết 5-24
Slotted Aloha – tính hiệu quả
Hiệu quả là tỉ lệ các khe thành công • Để có hiệu quả cao nhất
trong thời gian chạy dài khi có với N nút, tìm p* sao cho
nhiều nút, mỗi nút có nhiều khung Np(1-p)N-1 lớn nhất
để gửi • Với nhiều nút, lấy giới hạn
của Np*(1-p*)N-1 khi N
• Giả sử N nút có nhiều tiến đến vô cùng, với 1/e
frames cần gửi, mỗi nút phát
trong khe với xác suất p = .37
• Xác suất nút 1 thành công ở
một khe là = p(1-p)N-1
• Xác suất có nút thành công ở
một khe là = Np(1-p)N-1 Tốt nhất: kênh được sử
dụng với phát hữu ích
37% thời gian!

Lê Đình Thanh, MMT-Tầng liên kết 5-25


Thuần (unslotted) ALOHA
• Aloha không khe: đơn giản hơn, không đồng bộ
• Khi frame đến đầu tiên
– phát ngay lập tức
• Xác suất đụng độ tăng:
– frame được gửi tại thời điểm t0 đụng độ với các frames khác được gửi ở
[t0-1,t0+1]

Lê Đình Thanh, MMT-Tầng liên kết 5-26


Hiệu quả của Pure Aloha
P(nút thành công) = P(nút phát) .

P(không có nút phát trong [p0-1,p0] .


P(không có nút phát trong [p0,p0+1]
= p . (1-p)N-1 . (1-p)N-1

= p . (1-p)2(N-1)

… chọn p tối ưu và cho n -> vô cùng

= 1/(2e) = .18

Lê Đình Thanh, MMT-Tầng liên kết 5-27


CSMA (Carrier Sense Multiple Access)

CSMA: nghe trước khi phát:


Nếu kênh rỗi: phát toàn bộ frame
• Nếu kênh bận, không phát

• Tương tự con người: không làm gián đoạn người khác!

Lê Đình Thanh, MMT-Tầng liên kết 5-28


Đụng độ CSMA Bố trí không gian các nút

Đụng độ có thể xảy ra:


Trễ lan truyền -> nút này không
nghe phát của nút kia

Đụng độ:
Thời gian phát toàn bộ gói bị
lãng phí
Lưu ý:
Vai trò của khoảng cách & trễ lan
truyền trong xác định xác suất đụng
độ

Lê Đình Thanh, MMT-Tầng liên kết 5-29


CSMA/CD (Collision Detection)
CSMA/CD: cảm nhận kênh, trì hoãn như CSMA
– Đụng độ được phát hiện trong thời gian ngắn
– Hủy phát gây đụng độ, giảm lãng phí kênh
• Phát hiện đụng độ:
– Dễ trong LAN có dây: đo mức tín hiệu, so sánh tín
hiệu phát và tín hiệu nhận
– Khó trong LAN không dây: nút nhận tắt khi nút
phát đang phát

Lê Đình Thanh, MMT-Tầng liên kết 5-30


CSMA/CD phát hiện đụng độ

Lê Đình Thanh, MMT-Tầng liên kết 5-31


Các giao thức MAC “Luân phiên”
Các giao thức MAC phân hoạch:
– Chia sẻ kênh hiệu quả và công bằng ở tải cao
– Không hiệu quả ở tải thấp: trễ trong truy cập kênh,
1/N băng thông được cấp phát dù chỉ có 1 nút hoạt
động!
Các giao thức MAC truy cập ngẫu nhiên
– Hiệu quả ở tải thấp: một nút có thể dùng toàn bộ
kênh
– ở tải cao: đụng độ
Các giao thức MAC “luân phiên”
Kết hợp ưu điểm của cả hai!

Lê Đình Thanh, MMT-Tầng liên kết 5-32


Các giao thức MAC “Luân phiên”
Bỏ phiếu (Polling): Chuyển thẻ bài (token passing):
• Nút chủ “mời” nút phụ  Thẻ điều khiển được chuyển từ
phát theo lượt nút này sang nút khác theo trình
tự.
• Quan tâm:
– Chi phí bỏ phiếu  Thông báo thẻ
– Trễ  Quan tâm:
– Một điểm lỗi (nút chủ)  Chi phí thẻ
 Trễ
 Một điểm lỗi (thẻ)

Lê Đình Thanh, MMT-Tầng liên kết 5-33


Tóm tắt các giao thức MAC
• Làm gì với kênh dùng chung?
– Phân hoạch kênh theo thời gian, tần số hoặc mã
• Time Division, Frequency Division
– Truy cập ngẫu nhiên,
• ALOHA, S-ALOHA, CSMA, CSMA/CD
• Cảm nhận kênh: dễ ở một số công nghệ (có dây), khó ở
những công nghệ khác (không dây)
• CSMA/CD được sử dụng trong Ethernet
• CSMA/CA được sử dụng trong 802.11
– Luân phiên
• Bỏ phiếu, chuyển thẻ

Lê Đình Thanh, MMT-Tầng liên kết 5-34


Các công nghệ LAN
Các vấn đề đã được đề cập ở tầng liên kết:
– Dịch vụ, phát hiện/sửa lỗi, đa truy cập
Tiếp theo: Công nghệ LAN
– Địa chỉ
– Ethernet
– hubs, switches
– PPP

Lê Đình Thanh, MMT-Tầng liên kết 5-35


Tầng liên kết
• 5.1 Giới thiệu • 5.6 Hubs và switches
• 5.2 Phát hiện và sửa lỗi • 5.7 PPP
• 5.3 Các giao thức đa truy • 5.8 Ảo hóa liên kết: ATM và
cập MPLS
• 5.4 Địa chỉ tầng liên kết
• 5.5 Ethernet

Lê Đình Thanh, MMT-Tầng liên kết 5-36


Địa chỉ MAC
• Địa chỉ IP:
– Địa chỉ tầng mạng
– Được sử dụng để chuyển datagram đến mạng IP
đích
• Địa chỉ MAC (địa chỉ LAN/vật lý/Ethernet):
– Được sử dụng để chuyển datagram từ một giao
diện đến giao diện khác được kết nối vật lý với
nhau (cùng mạng)
– Địa chỉ MAC dài 48 bit (hầu hết các LANs)
được ghi cứng trong adapter ROM
Lê Đình Thanh, MMT-Tầng liên kết 5-37
ARP – Giao thức phân giải địa chỉ
Mỗi adapter trong LAN có địa chỉ LAN/MAC duy nhất

1A-2F-BB-76-09-AD Địa chỉ phát tỏa =


FF-FF-FF-FF-FF-FF

LAN
(có dây hoặc = adapter
không dây)
71-65-F7-2B-08-53
58-23-D7-FA-20-B0

0C-C4-11-6F-E3-98

Lê Đình Thanh, MMT-Tầng liên kết 5-38


Địa chỉ LAN (tiếp)
• Cấp phát địa chỉ MAC được quản trị bởi IEEE
• Các nhà sản xuất mua các dải địa chỉ MAC (để đảm bảo tính
duy nhất)
• Địa chỉ MAC phẳng ➜ di chuyển được
– Có thể chuyển card từ LAN này sang LAN khác
• Địa chỉ IP phân tầng KHÔNG THỂ di chuyển
– phụ thuộc mạng IP con chứa nút

Lê Đình Thanh, MMT-Tầng liên kết 5-39


ARP: Address Resolution Protocol

H: Xác định địa chỉ • Mỗi nút IP (Host, Router)


MAC của B khi biết địa chỉ trong LAN có bảng ARP
IP của B? • Bảng ARP: Các ánh xạ
IP/MAC cho một số nút
237.196.7.78
trong LAN
1A-2F-BB-76-09-AD
< IP address; MAC address; TTL>
237.196.7.23
237.196.7.14 – TTL (Time To Live): thời gian
ánh xạ được dùng (thường
LAN 20 giây)
71-65-F7-2B-08-53
58-23-D7-FA-20-B0

0C-C4-11-6F-E3-98
237.196.7.88

Lê Đình Thanh, MMT-Tầng liên kết 5-40


ARP: Cùng LAN (mạng)
• A muốn gửi datagram cho B, và
địa chỉ MAC của B không có • A lưu ánh xạ IP-MAC trong bảng
trong bảng ARP của A. ARP với TTL
• A phát tỏa ARP query, chứa địa – Trạng thái mềm: thông tin hết
chỉ IP của B hạn (biến mất) trừ khi được
– Địa chỉ MAC đích = FF-FF- làm tươi
FF-FF-FF-FF • ARP là “plug-and-play”:
– Mọi nút trong LAN nhận – Nút tự tạo bảng ARP mà
được ARP query không cần sự can thiệp của
• B nhận ARP packet, trả lời A với người quản trị
địa chỉ MAC của B
– frame được gửi đến địa chỉ
MAC của A (đơn phát)

Lê Đình Thanh, MMT-Tầng liên kết 5-41


Định tuyến đến LAN khác
Vấn đề: gửi datagram từ A đến B qua R
giả sử A biết địa chỉ IP của B

R
B
• Hai bảng ARP ở R, mỗi bảng cho một LAN

Lê Đình Thanh, MMT-Tầng liên kết 5-42


• A tạo datagram với nguồn A, đích B
• A sử dụng ARP để nhận địa chỉ MAC của R là 111.111.111.110
• A tạo frame tầng liên kết với địa chỉ MAC của R làm địa chỉ đích, frame
chứa datagram
• A’s adapter gửi frame
• R’s adapter nhận frame
• R lấy IP datagram từ Ethernet frame, thấy đích của datagram là B
• R sử dụng ARP để nhận địa chỉ MAC của B
• R tạo frame chứa datagram gửi cho B

R
B

Lê Đình Thanh, MMT-Tầng liên kết 5-43


Tầng liên kết
• 5.1 Giới thiệu • 5.6 Hubs và switches
• 5.2 Phát hiện và sửa lỗi • 5.7 PPP
• 5.3 Các giao thức đa truy • 5.8 Ảo hóa liên kết: ATM và
cập MPLS
• 5.4 Địa chỉ tầng liên kết
• 5.5 Ethernet

Lê Đình Thanh, MMT-Tầng liên kết 5-44


Ethernet
Công nghệ “thống trị” LAN có dây:
• Rẻ: $20 /100Mbs!
• Công nghệ LAN đầu tiên được sử dụng rộng rãi
• Đơn giản hơn, rẻ hơn token LANs và ATM
• Bắt kịp cuộc đua tốc độ: 10 Mbps – 10 Gbps

Metcalfe’s Ethernet
sketch

Lê Đình Thanh, MMT-Tầng liên kết 5-45


Topo hình sao
• Topo tuyến (bus) phổ biến ở những năm 90s
• Hiện nay topo hình sao chiếm ưu thế
• Các lựa chọn kết nối: hub hoặc switch

hub or
switch

Lê Đình Thanh, MMT-Tầng liên kết 5-46


Cấu trúc Ethernet Frame
Adapter gửi gói IP datagram (hoặc gói khác của giao thức
tầng mạng) trong Ethernet frame

Phần đầu (preamble):


• 7 bytes với giá trị 10101010 theo sau bởi 1 byte với giá trị
10101011
• được sử dụng để đồng bộ tốc độ đồng hồ của nút gửi và
nút nhận

Lê Đình Thanh, MMT-Tầng liên kết 5-47


Cấu trúc Ethernet Frame (tiếp)
• Địa chỉ: 6 bytes
– Nếu adapter nhận được frame với địa chỉ đích của mình, hoặc địa chỉ
phát tỏa (vd. ARP packet), nó chuyển dữ liệu trong frame cho giao
thức tầng mạng
– Ngược lại, adapter bỏ frame
• Type: chỉ giao thức tầng trên (IP, Novell IPX, AppleTalk)
• CRC: được kiểm tra ở nút nhận, nếu lỗi được phát hiện, frame
bị bỏ

Lê Đình Thanh, MMT-Tầng liên kết 5-48


Dịch vụ phi kết nối, không tin cậy
• Phi kết nối: không bắt tay giữa adapter gửi và adapter nhận.
• Không tin cậy: adapter nhận không biên nhận (acks/nacks) tới
adapter gửi
– Dòng datagrams chuyển cho tầng mạng có thể có đoạn rỗng
– Đoạn rỗng sẽ được lấp nếu ứng dụng sử dụng TCP
– Ngược lại, ứng dụng sẽ nhìn thấy đoạn rỗng

Lê Đình Thanh, MMT-Tầng liên kết 5-49


Ethernet sử dụng CSMA/CD
• Không khe • Trước khi phát lại, adapter
• adapter không phát nếu nó đợi một thời gian ngẫu
cảm nhận được adapter khác nhiên, tức truy cập ngẫu
đang phát, tức là cảm nhận nhiên
kênh
• Adapter phát hủy bỏ phát khi
cảm nhận được adapter khác
đang phát, tức là phát hiện
đụng độ

Lê Đình Thanh, MMT-Tầng liên kết 5-50


Giải thuật Ethernet CSMA/CD
1. Adaptor nhận datagram từ 4. Nếu adapter phát hiện phát
tầng mạng & tạo frame khác khi đang phát, nó bỏ và
2. Nếu adapter cảm nhận kênh gửi tín hiệu tắc nghẽn (jam
rỗi, nó bắt đầu phát frame. signal)
Nếu nó cảm nhận kênh bận, 5. Sau khi hủy phát, adapter vào
nó đợi cho đến khi kênh rỗi và exponential backoff: sau đụng
phát độ thứ m, adapter chọn ngẫu
3. Nếu adapter phát toàn bộ nhiên K từ
frame không phát hiện đụng {0,1,2,…,2m-1}. Adapter đợi
độ, adapter đã hoàn thành K·512 thời gian bit và quay lại
nhiệm vụ với frame ! Bước 2

Lê Đình Thanh, MMT-Tầng liên kết 5-51


Ethernet’s CSMA/CD (tiếp)
Jam Signal: để đảm bảo tất cả các Exponential Backoff:
adapter khác biết về đụng độ; • Mục đích: điều chỉnh phát lại
48 bits cho phù hợp với tải hiện tại
Bit time: .1 microsec đối với 10 – Tải lớn: có thể đợi lâu hơn
Mbps Ethernet ; • Đụng độ lần 1: chọn K trong
với K=1023, thời gian đợi {0,1}; trễ là K· đợi 512 thời gian
khoảng 50 msec bit
• Sau đụng độ lần 2: chọn K trong
{0,1,2,3}…
See/interact with Java • Sau đụng độ lần 10, chọn K
applet on AWL Web site: trong {0,1,2,3,4,…,1023}
highly recommended !

Lê Đình Thanh, MMT-Tầng liên kết 5-52


Hiệu quả của CSMA/CD
• Tprop = thời gian tối đa lan truyền giữa hai nút trong LAN
• ttrans = thời gian phát frame lớn nhất

• Hiệu quả tiến về 1 khi tprop tiến về 0


• Tiến về 1 khi ttrans tiến về vô cùng
• Tốt hơn nhiều so với ALOHA, vẫn phi tập trung, đơn giản, và rẻ

1
efficiency =
1 + 5t prop / ttrans

Lê Đình Thanh, MMT-Tầng liên kết 5-53


10BaseT và 100BaseT
• Tốc độ 10/100 Mbps; được gọi “fast ethernet”
• T ký hiệu Twisted Pair
• Các nút kết nối vào hub: “topo hình sao”; tối đa 100m từ
nút đến hub

twisted pair

hub

Lê Đình Thanh, MMT-Tầng liên kết 5-54


Hubs
Hubs là repeaters tầng vật lý:
– bits đến từ một liên kết đi ra tất cả các liên kết còn lại
– ở cùng tốc độ
– Không đệm frame
– Không CSMA/CD ở hub: adapters phát hiện đụng độ
– Cung cấp các chức năng quản trị mạng

twisted pair

hub

Lê Đình Thanh, MMT-Tầng liên kết 5-55


Mã hóa Manchester

• Được sử dụng trong 10BaseT


• Mỗi bít có một chuyển dịch
• Cho phép các đồng hồ ở nút gửi và nút nhận đồng bộ với
nhau
– Không cần đồng hồ tập trung, toàn cục giữa các nút.

Lê Đình Thanh, MMT-Tầng liên kết 5-56


Gbit Ethernet
• Sử dụng định dạng Ethernet frame chuẩn
• cho phép sử dụng ở liên kết điểm-điểm và kênh dùng
chung
• ở chế độ dùng chung, CSMA/CD được sử dụng; yêu cầu
khoảng cách gần giữa các nút để đảm bảo hiệu quả
• Sử dụng hubs, được gọi là “Buffered Distributors”
• Full-Duplex ở tốc độ 1 Gbps trên liên kết điểm-điểm
• Bây giờ 10 Gbps!

Lê Đình Thanh, MMT-Tầng liên kết 5-57


Tầng liên kết
• 5.1 Giới thiệu • 5.6 Hubs và switches
• 5.2 Phát hiện và sửa lỗi • 5.7 PPP
• 5.3 Các giao thức đa truy • 5.8 Ảo hóa liên kết: ATM và
cập MPLS
• 5.4 Địa chỉ tầng liên kết
• 5.5 Ethernet

Lê Đình Thanh, MMT-Tầng liên kết 5-58


Liên kết nối với hubs
• Backbone hub liên kết nối đoạn LAN với nhau
• Mở rộng khoảng cách tối đa giữa các nút
• Nhưng đụng độ trên một đoạn trở thành đụng độ toàn LAN
• Không thể kết nối 10BaseT & 100BaseT

hub

hub
hub hub

Lê Đình Thanh, MMT-Tầng liên kết 5-59


Switch
• Thiết bị tầng liên kết
– Lưu và chuyển tiếp Ethernet frames
– Kiểm tra tiêu đề của frame và chuyển tiếp có lựa
chọn frame dựa vào địa chỉ MAC đích
– Khi frame sẽ được chuyển tiếp trong đoạn, sử
dụng CSMA/CD để truy cập đoạn
• Tính trong suốt
– Nút không biết sự có mặt của switches
• Cắm-và-chạy, tự-học
– Không phải cấu hình switches

Lê Đình Thanh, MMT-Tầng liên kết 5-60


Chuyển tiếp
switch
1
2 3

hub
hub hub

• quyết định chuyển tiếp frame đến đoạn LAN nào?


• như vấn đề định tuyến...

Lê Đình Thanh, MMT-Tầng liên kết 5-61


Tự học
• Switch có một switch table
• Phần tử trong switch table:
– (MAC Address, Interface, Time Stamp)
– Các phần tử cũ bị xóa (TTL có thể 60 min)
• switch học có thể đến hosts nào qua giao diện nào
– Khi nhận được frame, switch “học” vị trí của nút
gửi: đoạn LAN đến
– Ghi các cặp nút gửi/đoạn LAN trong switch table

Lê Đình Thanh, MMT-Tầng liên kết 5-62


Lọc/chuyển tiếp
Khi switch nhận một frame:

Tìm trong switch table với địa chỉ MAC đích của frame
if tìm thấy phần tử cho đích
then{
if nút đích trong cùng đoạn nút gửi
then loại bỏ frame
else chuyển tiếp giao diện được chỉ định
}
else phát tràn

Chuyển tiếp đến tất cả các giao diện khác


giao diện đến của frame

Lê Đình Thanh, MMT-Tầng liên kết 5-63


Switch – ví dụ
Giả sử C gửi frame cho D

switch address interface


1 A 1
2 3
B 1
E 2
hub hub hub G 3
A
I
D F
B C G H
E

 Switch nhận frame từ C


 Ghi vào bảng chuyển mạch là C ở giao diện 1
 Vì không tìm thấy D trong bảng chuyển mạch, switch chuyển tiếp
frame đến các giao diện 2 và 3
 D nhận frame, các Lêhost khác bỏ qua frame
Đình Thanh, MMT-Tầng liên kết 5-64
Switch – ví dụ
Giả sử D trả lời C.

address interface
switch
A 1
B 1
E 2
hub hub hub G 3
A
I C 1

D F
B C G H
E

 Switch nhận frame từ D


 Ghi vào bảng chuyển mạch là D ở giao diện 2
 Tìm thấy C trong bảng chuyển mạch, switch chuyển frame sang
giao diện 1
 C nhận frame Lê Đình Thanh, MMT-Tầng liên kết 5-65
Switch: cô lập lưu lượng
• switch chia mạng con thành các đoạn LAN
• switch lọc gói:
– Frame cùng đoạn LAN thường không được
chuyển tới các đoạn LAN khác
– Các đoạn trở thành các miền đụng độ riêng biệt

switch

collision
domain

hub
hub hub

collision domain collision domain


Lê Đình Thanh, MMT-Tầng liên kết 5-66
Switches: truy cập chuyên dụng
• Switch có nhiều giao diện A
• Hosts có kết nối trực tiếp đến
C’ B
switch
• Không đụng độ; song công
switch

Chuyển mạch: A-đến-A’ và B-đến-


B’ đồng thời, không đụng độ C

B’ A’

Lê Đình Thanh, MMT-Tầng liên kết 5-67


Nhiều hơn về Switches
• Chuyển lập tức: frame được chuyển từ cổng
vào sang cổng ra mà không cần chờ nhận toàn
bộ frame
– Giảm trễ
• Kết hợp dùng chung/chuyên dụng,
10/100/1000 Mbps

Lê Đình Thanh, MMT-Tầng liên kết 5-68


Mạng ở đơn vị
mail server
Đi ngoại mạng

router web server

switch
IP subnet

hub
hub hub

Lê Đình Thanh, MMT-Tầng liên kết 5-69


Switches khác Routers
• Cả hai đều là thiết bị lưu-và-chuyển tiếp
– routers: thiết bị tầng mạng (kiểm tra tiêu đề tầng mạng)
– Switches: thiết bị tầng liên kết
• routers duy trì bảng định tuyến, cài đặt giải thuật định tuyến
• switches duy trì bảng chuyển mạch, cài đặt giải thuật lọc, học

Lê Đình Thanh, MMT-Tầng liên kết 5-70


So sánh tóm tắt

hubs routers switches

traffic no yes yes


isolation
plug & play yes no yes

optimal no yes no
routing
cut yes no yes
through
Lê Đình Thanh, MMT-Tầng liên kết 5-71
Tầng liên kết
• 5.1 Giới thiệu • 5.6 Hubs và switches
• 5.2 Phát hiện và sửa lỗi • 5.7 PPP
• 5.3 Các giao thức đa truy • 5.8 Ảo hóa liên kết: ATM và
cập MPLS
• 5.4 Địa chỉ tầng liên kết
• 5.5 Ethernet

Lê Đình Thanh, MMT-Tầng liên kết 5-72


Điều khiển liên kết dữ liệu điểm-điểm
• Một nút gửi, một nút nhận, một liên kết: dễ hơn liên kết
phát tỏa:
– Không điều khiển truy cập môi trường vật lý
– Không cần địa chỉ MAC
– vd., liên kết dialup, đường ISDN
• Các giao thức điều khiển liên kết dữ liệu điểm-điểm thông
dụng:
– PPP (point-to-point protocol)
– HDLC: High level data link control (Data link
thường được xem là “tầng cao” trong ngăn xếp
giao thức!
Lê Đình Thanh, MMT-Tầng liên kết 5-73
Yêu cầu thiết kế PPP [RFC 1557]

• Đóng khung: đóng gói datagram tầng mạng trong frame tầng
liên kết
– Mang dữ liệu tầng mạng của bất kỳ giao thức tầng
mạng nào (không chỉ IP) đồng thời
– Khả năng tách kênh hướng lên
• Trong suốt bit: phải mang bất kỳ mẫu bit nào ở trường dữ liệu
• Phát hiện lỗi (không sửa lỗi)
• Tính sống động kết nối: phát hiện, báo hiệu lỗi liên kết cho tầng
mạng
• Hiệp thương địa chỉ tầng mạng: điểm cuối có thể học/cấu hình
địa chỉ mạng của điểm cuối khác

Lê Đình Thanh, MMT-Tầng liên kết 5-74


PPP không yêu cầu

• Không sửa/khôi phục lỗi


• Không điều khiển luồng
• Chấp nhận đến sai thứ tự
• Không cần hỗ trợ liên kết đa điểm (vd., bỏ phiếu)

Khôi phục lỗi, điều khiển luồng, sắp lại thứ tự dữ liệu
là nhiệm vụ của các tầng trên!

Lê Đình Thanh, MMT-Tầng liên kết 5-75


PPP Data Frame
• Flag: phân cách (framing)
• Address: không làm gì (chỉ là một lựa chọn)
• Control: không làm gì; có thể dùng làm nhiều trường điều
khiển trong tương tai
• Protocol: giao thức tầng trên (vd., PPP-LCP, IP, IPCP, …)

Lê Đình Thanh, MMT-Tầng liên kết 5-76


PPP Data Frame
• info: dữ liệu tầng trên được mang
• check: CRC để phát hiện lỗi

Lê Đình Thanh, MMT-Tầng liên kết 5-77


Nhồi byte
• yêu cầu “trong suốt dữ liệu”: dữ liệu có thể chứa mẫu
<01111110>
– H: <01111110> là dữ liệu hay flag?

• Nút gửi: thêm (“nhồi”) byte < 01111110> nữa sau byte dữ
liệu < 01111110>
• Nút nhận:
– Hai byte 01111110 liên tiếp: bỏ byte thứ nhất,
tiếp tục nhận dữ liệu
– Một byte 01111110: flag byte

Lê Đình Thanh, MMT-Tầng liên kết 5-78


Nhồi byte

Các byte
cần gửi

Nhồi byte flag

Lê Đình Thanh, MMT-Tầng liên kết 5-79


Giao thức điều khiển dữ liệu PPP
Trước khi trao đổi dữ liệu tầng
mạng, các nút tầng liên kết phải
• Cấu hình liên kết PPP (độ dài
frame lớn nhất, xác thực)
• Học/cấu hình
thông tin tầng mạng
– Cho IP: mang thông báo
giao thức điều khiển IP
(IPCP) (trường giao thức:
8021) để cấu hình/học
địa chỉ IP
Lê Đình Thanh, MMT-Tầng liên kết 5-80
Tầng liên kết
• 5.1 Giới thiệu • 5.6 Hubs và switches
• 5.2 Phát hiện và sửa lỗi • 5.7 PPP
• 5.3 Các giao thức đa truy • 5.8 Ảo hóa liên kết: ATM và
cập MPLS
• 5.4 Địa chỉ tầng liên kết
• 5.5 Ethernet

Lê Đình Thanh, MMT-Tầng liên kết 5-81


Ảo hóa mạng

Ảo hóa tài nguyên: một trừu tượng hóa mạnh mẽ trong kỹ nghệ
hệ thống:
• Ví dụ tính toán: bộ nhớ ảo, thiết bị ảo
– Máy ảo: vd., java
– IBM VM os từ 1960’s/70’s
• Phân tầng các trừu tượng: không quan tâm đến chi tiết tầng
dưới, chỉ quan tâm đến tầng dướiu một cách trừu tượng

Lê Đình Thanh, MMT-Tầng liên kết 5-82


The Internet: ảo hóa mạng
1974: nhiều mạng không được kết … khác nhau ở:
nối  Đánh địa chỉ
– ARPAnet  Định dạng gói
– Mạng dữ liệu-trên-cáp  Khôi phục lỗi
– Mạng vệ tinh (Aloha)  Định tuyến
– Mạng radio

ARPAnet Mạng vệ tinh


"A Protocol for Packet Network Intercommunication",
V. Cerf, R. Kahn, IEEE Transactions on Communications,
Lê Đình Thanh, MMT-Tầng liên kết 5-83
May, 1974, pp. 637-648.
The Internet: ảo hóa mạng
Tầng liên mạng (IP): Gateway:
 Đánh địa chỉ: mạng tham gia được • “nhúng gói liên mạng trong gói cục
xem như một thực thể đồng nhất, bộ hoặc tách chúng”
mặc dù tính hỗn tạp ở mạng cục bộ • Đường đi (ở mức liên mạng) đến
gateway tiếp

gateway

ARPAnet Mạng vệ tinh

Lê Đình Thanh, MMT-Tầng liên kết 5-84


Kiến trúc liên mạng của Cerf & Kahn
Cái gì được ảo hóa?
• Hai tầng địa chỉ: liên mạng và mạng cục bộ
• Tầng mới (IP) làm cho tất cả trở nên đồng nhất ở tầng liên mạng
• Công nghệ mạng cục bộ ở dưới
– cáp
– Vệ tinh
– 56K telephone modem
– Ngày nay: ATM, MPLS
… “không nhìn thấy” ở tầng liên mạng. Như công nghệ tầng liên
kết đối với IP!

Lê Đình Thanh, MMT-Tầng liên kết 5-85


ATM và MPLS
• ATM, MPLS tách biệt các mạng trong quyền
của chúng
– các mô hình dịch vụ khác nhau, địa chỉ khác
nhau, đinh tuyến khác nhau
• Xem Internet như liên kết logic kết nối các IP
routers
– Như liên kết dialup là bộ phận của mạng tách
biệt (telephone network)

Lê Đình Thanh, MMT-Tầng liên kết 5-86


Asynchronous Transfer Mode: ATM
• Chuẩn tốc độ cao trong 1990’s/00 (155Mbps đến 622 Mbps
và lớn hơn) Kiến trúc Broadband Integrated Service Digital
Network
• Mục đích: truyền cuối-cuối, tích hợp voice, video, data
– Đáp ứng các yêu cầu thời gian/QoS của voice,
video (khác mô hình nỗ lực tối đa của Internet)
– Điện thoại “thế hệ kế tiếp”: công nghệ
telephony gốc
– Chuyển gói (các gói có độ dài cố định, được gọi
là “tế bào - cells”) sử dụng mạch ảo

Lê Đình Thanh, MMT-Tầng liên kết 5-87


Kiến trúc ATM

• Tầng chuyển đổi: chỉ ở biên mạng ATM


– Phân đoạn/ghép hợp dữ liệu
– Hơi tương tự tầng giao vận của Internet
• Tầng ATM: tầng “mạng”
– Chuyển cell, định tuyến
• Tầng vật lý
Lê Đình Thanh, MMT-Tầng liên kết 5-88
ATM: tầng mạng hay tầng liên kết?
Tầm nhìn: giao vận đầu cuối-
đầu cuối: “ATM từ desktop
đến desktop” IP
network
– ATM là một công ATM
nghệ mạng network
Thực tế: được sử dụng để kết
nối các IP backbone routers
– “IP trên ATM”
– ATM như tầng liên
kết chuyển mạch, kết
nối các IP routers

Lê Đình Thanh, MMT-Tầng liên kết 5-89


Tầng chuyển đổi ATM (AAL)
• ATM Adaptation Layer (AAL): “chuyển” tầng trên (IP hoặc ứng
dụng ATM) thành tầng ATM dưới
• AAL chỉ có ở các hệ thống cuối, không có ở switches
• Đoạn tầng AAL (header/trailer fields, data) được phân mảnh
thành nhiều ATM cells
– Tương tự: đoạn TCP được cắt và gói trong nhiều
gói IP

Lê Đình Thanh, MMT-Tầng liên kết 5-90


Tầng chuyển đổi ATM (AAL)

Các phiên bản khác nhau tầng AAL, phụ thuộc vào lớp dịch vụ
ATM:
• AAL1: cho dịch vụ CBR (Constant Bit Rate), vd. Giả lập mạch
• AAL2: cho dịch vụ VBR (Variable Bit Rate), vd., MPEG video
• AAL5: cho dữ liệu (vd., IP datagrams)

Dữ liệu người dùng

AAL PDU

ATM cell

Lê Đình Thanh, MMT-Tầng liên kết 5-91


Tầng ATM
Dịch vụ: chuyển cells qua mạng ATM
• Tương tự tầng IP
• Các dịch vụ rất khác nhau
Đảm bảo?
Kiến trúc Mô hình Báo tắc
Mạng Dịch vụ Băng thông Mất TT Th.gian nghẽn

Internet best effort none no no no no (suy ra từ


mất gói)
ATM CBR constant yes yes yes no
rate congestion
ATM VBR guaranteed yes yes yes no
rate congestion
ATM ABR guaranteed no yes no yes
minimum
ATM UBR none no yes no no
Lê Đình Thanh, MMT-Tầng liên kết 5-92
Tầng ATM: Mạch ảo
• Giao vận VC: cells được mang trong VC từ nguồn đến đích
– Thiết lập/hủy cuộc gọi cho mỗi cuộc gọi trước khi dữ liệu được chảy
– Mỗi gói mang định danh VC (không phải ID đích)
– Mọi switch trên đường từ nguồn đến đích duy trì “trạng thái” của kết nối
đi qua
– Các tài nguyên liên kết, switch (băng thông, đệm) được cấp cho VC
• VC bền vững (PVCs)
– Các kết nối kéo dài
– Điển hình: đường “bền vững” giữa các IP routers
• VC chuyển mạch (SVC):
– Được thiết lập động trên từng cuộc gọi

Lê Đình Thanh, MMT-Tầng liên kết 5-93


ATM VCs
• Ưu điểm:
– Đảm bảo QoS cho kết nối được gán cho VC
(băng thông, trễ, biến thiên trễ)
• Hạn chế:
– Hỗ trợ không đầy đủ lưu lượng datagram
– Một PVC cho một cặp nguồn/đích không khả
mở rộng (cần N*2 kết nối)
– SVC tạo trễ thiết lập cuộc gọi, chi phí xử lý cho
các kết nối ngắn thời gian

Lê Đình Thanh, MMT-Tầng liên kết 5-94


Tầng ATM: ATM cell
• Tiêu đề: 5-byte
• Tải: 48-byte
– ?: tải nhỏ -> trễ tạo cell thấp cho voice số hóa
– ở giữa 32 và 64 (hứa hẹn!)

Tiêu đề cell

Định dạng cell

Lê Đình Thanh, MMT-Tầng liên kết 5-95


Tiêu đề ATM cell
• VCI: định danh kênh ảo
– Sẽthay đổi từ liên kết này sang liên kết khác
• PT: Kiểu tải (vd. RM, data)
• CLP: Cell Loss Priority bit
– CLP = 1: cell có độ ưu tiên thấp, có thể bị loại
bỏ nếu tắc nghẽn
• HEC: Header Error Checksum
– CRC

Lê Đình Thanh, MMT-Tầng liên kết 5-96


Tầng vật lý ATM
Hai phần (tầng con) của tầng vật lý:
• Transmission Convergence Sublayer (TCS): chuyển tầng ATM
ở trên thành tầng con PMD ở dưới
• Physical Medium Dependent: phụ thuộc môi trường vật lý
được sử dụng

Các chức năng TCS:


– Sinh header checksum: 8 bits CRC
– Phân định cell
– Với tầng con PMD “phi cấu trúc”, phát idle cells
khi không có cell dữ liệu được gửi
Lê Đình Thanh, MMT-Tầng liên kết 5-97
Tầng vật lý ATM
Physical Medium Dependent (PMD) sublayer
• SONET/SDH: cấu trúc khung phát (như vật chứa mang các
bits);
– Đồng bộ bit;
– Phân hoạch băng thông (TDM);
– Nhiều tốc độ: OC3 = 155.2 Mbps; OC12 = 622.08 Mbps; OC48 =
2.45 Gbps, OC192 = 9.6 Gbps
• TI/T3: cấu trúc khung phát (kiến trúc telephone cũ): 1.5
Mbps/ 45 Mbps
• Phi cấu trúc: chỉ là các cells (bận/rỗi)

Lê Đình Thanh, MMT-Tầng liên kết 5-98


IP-qua-ATM
IP qua ATM
Chỉ IP


3 “mạng” (vd., đoạn LAN )
Địa chỉ MAC (802.3) và địa chỉ IP
 Thay thế “mạng” (vd.,
đoạn LAN) với mạng ATM
 Địa chỉ ATM, địa chỉ IP

ATM
network

Ethernet Ethernet
LANs LANs
Lê Đình Thanh, MMT-Tầng liên kết 5-99
IP-qua-ATM
app
app transport
transport IP IP
IP AAL AAL
Eth Eth ATM
ATM
phy phy phy ATM phy
phy
ATM
phy

Lê Đình Thanh, MMT-Tầng liên kết 5-100


Đường đi của datagram trong mạng IP-qua-ATM
• Ở nguồn:
– Tầng IP ánh xạ giữa địa chỉ IP đích và địa chỉ ATM đích (sử dụng ARP)
– Chuyển datagram cho AAL5
– AAL5 gói dữ liệu, cắt thành các cells, chuyển cho tầng ATM
• Mạng ATM: chuyển cell theo VC đến đích
• Ở đích:
– AAL5 ghép các cells thành datagram ban đầu
– Nếu CRC OK, datagram được chuyển cho IP

Lê Đình Thanh, MMT-Tầng liên kết 5-101


IP-qua-ATM
Vấn đề: ATM
 IP datagrams thành ATM network
AAL5 PDUs
 Từ địa chỉ IP thành địa
chỉ ATM
 Chỉ như địa chỉ IP
sang địc chỉ MAC!
Ethernet
LANs

Lê Đình Thanh, MMT-Tầng liên kết 5-102


Chuyển nhãn đa giao thức (MPLS)

• Mục đích ban đầu: tăng tốc chuyển tiếp IP bằng việc sử dụng
nhãn có độ dài cố định (thay cho địa chỉ IP) trong việc chuyển
tiếp
– Mượn các ý tưởng từ tiếp cận Virtual Circuit (VC)
– Nhưng IP datagram vẫn giữ địa chỉ IP!

PPP or Ethernet
MPLS header IP header remainder of link-layer frame
header

label Exp S TTL

20 3 1 5
Lê Đình Thanh, MMT-Tầng liên kết 5-103
Router có khả năng MPLS
• Là router chuyển nhãn
• Chuyển tiếp gói đến giao diện ra chỉ dựa vào giá
trị nhãn (không xét địa chỉ IP)
– Bảng chuyển tiếp MPLS khác bảng chuyển tiếp IP
• Cần giao thức báo hiệu để thiết lập chuyển tiếp
– RSVP-TE
– Có thể chuyển tiếp theo các đường mà IP không thể!
– Dùng MPLS cho phân tích lưu lượng
• Phải cùng tồn tại với các IP routers

Lê Đình Thanh, MMT-Tầng liên kết 5-104


Bảng chuyển tiếp MPLS
in out out
label label dest interface
10 A 0 in out out
12 D 0 label label dest interface

8 A 1 10 6 A 1
12 9 D 0

R6
0 0
D
1 1
R4 R3
R5
0 0
A
R2 in outR1 out
label label dest interface
in out out
label label dest interface 6 - A 0
8 6 A 0
Lê Đình Thanh, MMT-Tầng liên kết 5-105
Chương 5: Tóm tắt
• Các nguyên lý dịch vụ tầng liên kết dữ liệu:
– Phát hiện/sửa lỗi
– Chia sẻ kênh phát tỏa: đa truy cập
– Địa chỉ tầng liên kết: MAC
• Các công nghệ tầng liên kết
– Ethernet
– LAN chuyển mạch
– PPP
– Mạng ảo như tầng liên kết: ATM, MPLS

Lê Đình Thanh, MMT-Tầng liên kết 5-106

You might also like