You are on page 1of 690

Hong Bang International University

Department of Information Technology

COMPUTER
NETWORKING
mobile network

national or global ISP

local or
Introduction
Internet
regional ISP

home network content Instructor: MSc. Hoang Ngoc Long


provider
network datacenter
network

enterprise
network
Chương1: Giới thiệu
Mục tiêu: Overview:
!  Làm quen với thuật !  Internet là gì?
ngữ !  Giao thức là gì?
!  Mạng biên; hosts, mạng truy
!  Tìm hiểu sâu hơn
nhập, phương tiện truyền dẫn
trong khóa học này vật lý
!  Cách tiếp cận: !  Mạng lõi: chuyển mạch gói/
chuyển mạch kênh, cấu trúc
"  Sử dụng Internet Internet
làm ví dụ !  Hiệu suất: sự mất mát, độ trễ,
thông lượng
!  Bảo mật
!  Các lớp giao thức, các mô hình
dịch vụ
!  Lịch sử Introduction 1-2
Chương 1: Nội dung
1.1 Internet là gì?
1.2 Mạng biên
" Các hệ thống đầu cuối, mạng truy nhập, các liên
kết
1.3 Mạng lõi
"  Chuyển mạch gói, chuyển mạch kênh, cấu trúc
mạng
1.4 Độ trễ, độ trễ, thông lượng trong mạng
1.5 Các lớp giao thức, các mô hình dịch vụ
1.6 Mạng bị tấn công: bảo mật
1.7 Lịch sử
Giới thiệu 1-3
Internet là gì: nuts and bolts
! Hàng triệu các thiết bị
PC
máy tính được kết nối: mạng di động

"  hosts = hệ thống ầu


server

wireless
laptop cuối ISP toàn cầu

smartphone "  chạy ứng dụng mạng


! Các liên kết truyền mạng
gia đình
thông ISP vùng
liên kết
không dây
"  cáp quang, cáp
liên kết đồng, radio, vệ tinh
có dây
"  tốc độ truyền: b ng
thông
! Chuyển mạch gói: chuyển
tiếp gói tin (khối dữ liệu)
thuyết bị "  Thiết bị ịnh tuyến mạng tổ chức
chuyên mạch (router)
(routers ) và thiêt bị
chuyển mạch Giới thiệu 1-4
Các thiết bị internet “Giải trí”

Máy nướng bánh mì được


tích hợp web+ dự báo thời tiết

Khung hình IP
http://www.ceiva.com/

Tweet-a-watt:
Máy giám sát
sử dụng năng lượng

Slingbox: đồng hồ,


điều khiển tivi từ xa
Tủ lạnh internet
Điện thoại internet
Giới thiệu 1-5
Internet là gì: nuts and bolts
Mạng di động
!  Internet: mạng của các
mạng
ISP toàn cầu
"  Các nhà cung cấp dịch vụ mạng
(ISPs) được kết nối với nhau.
!  Các giao thức điều khiển gửi, Mạng
nhận thông tin gia đình
ISP vùng
"  Ví dụ: TCP, IP, HTTP, Skype,
802.11
!  Các chuẩn Internet
"  RFC: Request for comments
"  IETF: Internet Engineering
Task Force

mạng tổ chức

Giới thiệu 1-6


Internet là gì: service
!  Cơsở hạ tầng cung cấp các
dịch vụ cho các ứng dụng: mạng di động

"  Web, VoIP, email, games,


thương mại điện tử, mạng xã ISP toàn cầu
hội, …
!  Cung c ấ p giao di ệ n l ậ p mạng gia đình
trình cho các ứng dụng ISP vùng
"  Cho phép gửi và nhận các
chương trình ứng dụng để
“kết nối” với Internet
"  Cung cấp các lựa chọn dịch
vụ, tương tự như dịch vụ
bưu chính.
mạng tổ chức

Giới thiệu 1-7


Giao thức là gì?
Giao thức con người: Giao thức mạng:
!  Bây giờ là mấy giờ? !  Máy móc chứ không
!  Tôi có một câu hỏi phải là con người
!  Giới thiệu !  tất cả các hoạt động
truyền thông trên
… thông điệp cụ thể đã Internet bị chi phối
bởi các giao thức.
được gửi
… các hành động cụ thể Giao thức ịnh ngh a ịnh
được thực hiện khi dạng, thứ tự các thông iệp
các thông điệp được
nhận, hoặc các sự ược gởi và nhận giữa các
kiện khác thực thể mạng, và các hành
ộng ược thực hiện trên
việc truyền và nhận thông
i ệp Giới thiệu 1-8
Giao thức là gì?
Giao thức con người và giao thức mạng máy
tính:

Xin chào Yêu cầu


kết nối TCP
Xin chào
Trả lời
kết nối TCP
Rãnh không?
Get http://www.awl.com/kurose-ross
2:00
<file>
time

Hỏi: các giao thức khác của con người?


Giới thiệu 1-9
Chương1: Nội dung
1.1 Internet là gì?
1.2 Mạng biên
"  hệ thống đầu cuối, mạng truy nhập, các liên kết
1.3 Mạng lõi
"  chuyển mạch gói, chuyển mạch kênh, cấu trúc
mạng
1.4 Độ trễ, sự mất mát, thông lượng trong
mạng
1.5 Các lớp giao thức, mô hình dịch vụ
1.6 Mạng bị tấn công: bảo mật
1.7 Lịch sử
Giới thiệu 1-10
Cái nhìn gần hơn về cấu trúc mạng:
!  Mạng biên: mạng di động
"  Hosts: máy khách và
máy chủ ISP toàn cầu
"  Máy chủ thường đặt
trong trung tâm dữ
liệu mạng gia đình
!  Mạng truy cập, ISP vùng
phương tiện truyền
thông vật lý: kết nối
truyền thông có dây,
và không dây
!  Mạng lõi:
" Các thiết bị định tuyến mạng tổ chức
được liên kết
" Mạng của các mạng
Giới thiệu 1-11
Mạng truy cập và phương tiện truyền thông
vật lý
Q: Làm thế nào ể kết
nối các hệ thống ầu
cuối với thiết bị ịnh
tuyến biên?
!  mạng truy cập khu dân

!  mạng truy cập tổ chức
(trường học, công ty)
!  mạng truy cập di động
Ghi nhớ:
!  băng thông (bits per
second) của mạng truy
cập?
!  Chia sẽ hoặc dành
riêng? Giới thiệu 1-12
Mạng truy cập: đường dây thuê bao
kỹ thuật số
văn phòng mạng điện thoại
trung tâm

DSL splitter
modem DSLAM

ISP
Thoại, dữ liệu được truyền ở
các tần số khác nhau DSL access
qua đường dây dành riêng multiplexer
đến văn phòng trung tâm

!  Dùng đường dây điện thoại kết nối đến các DSLAM của
văn phòng trung tâm
"  dữ liệu qua đường dây điện thoại DSL đi ra Internet
"  tín hiệu thoại trên đường dây điện thoại DSL đi đến
mạng điện thoại
!  < 2.5 Mbps tốc độ truyền dữ liệu lên (thường < 1 Mbps)
!  < 24 Mbps tốc độ truyền dữ liệu xuống (thường< Giới
10thiệu 1-13
Mạng truy cập: mạng cáp
cable headend

cable splitter
modem

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

frequency division multiplexing: các kênh truyền khác nhau


được truyền trong các dải tần số khác nhạu.
Giới thiệu 1-14
Mạng truy cập: mạng cáp
đầu cuối cáp
(cable headend)

cable splitter cable modem


modem CMTS termination system

dữ liệu, TV được truyền ở


những tần số khác nhau qua ISP
mạng phân tán cáp được chia sẽ

!  HFC: hybrid fiber coax


"  Bất đồng bộ: tốc độ tải xuống lên đến 30Mbps, tải lện
với 2 Mbps
!  Mạng cáp và sợi quang kết nối hộ gia đình đến bộ định tuyến
của ISP (ISP router)
"  Các hộ gia đình chia sẽ mạng truy nhập đến đầu cuối cáp
"  Không giống DSL, có truy cập được dành riêng đến văn
phòng trung tâm Giới thiệu 1-15
Mạng truy cập: mạng gia đình
Thiết bị
không dây

Đến/từ thiết bị đầu cuối


hoặc văn phòng trung tâm
Thường được
tích hợp
trong một hộp
duy nhất
cable or DSL modem

wireless access router, firewall, NAT


point (54 Mbps)
wired Ethernet (100 Mbps)

Giới thiệu 1-16


Mạng truy cập Enterprise (Ethernet)

institutional link to
ISP (Internet)
institutional router

Ethernet institutional mail,


switch web servers

!  Thường được sử dụng trong công ty, trường đại


học…typically used in companies, universities, etc
!  Tốc độ truyền 10 Mbps, 100Mbps, 1Gbps, 10Gbps
!  Ngày nay, các hệ thống đầu cuối thường kết nối đến
chuyển mạch Ethernet (Ethernet switch)
Giới thiệu 1-17
Mạng truy cập không dây
!  Mạng truy cập không dây được chia sẽ kết nối hệ
thống đầu cuối đến thiết bị định tuyến
"  Thông qua base station còn được gọi là access point
Mạng cục bộ không dây: wide-area wireless access
"  Trong tòa nhà (100 ft) "  Được cung cấp bởi công ty
"  802.11b/g/n/ac (WiFi): điện thoại (di động), 10 s km
tốc độ truyền 11, 54, 600, "  Từ 1 đến 10 Mbps
1200 Mbps "  3G, 4G: LTE

to Internet

to Internet

Giới thiệu 1-18


Host: gởi các gói dữ liệu
Chức năng host sending:
! Lấy thông tin tầng ứng dụng
! Chia nhỏ thành những phần
2 packets,
nhỏ hơn, được biết như là L bits mỗi cái
packets, chiều dài L bits
! Truyền packet trong mạng
truy cập với tốc độ truyền R
2 1
"  Tốc độ truyền của
đường link, còn được gọi R: tốc độ truyền của đường link
là khả năng/công suất host
của đường link, còn được
gọi là băng thông của
đường link
Thời gian cần để L (bits)
Độ trễ truyền gói = Truyền L-bit packet =
đến đường link R (bits/sec)
1-19
Đường truyền vật lý
!  bit: lan truyền giữa các
cặp truyền/nhận
!  Liên kết vật lý: những gì Cặp xoắn (STP)
nằm giữa thiết bị truyền !  Hai dây cáp đồng độc
và nhận lập
!  Phương tiện truyền thông "  Loại 5: 100 Mbps, 1
định hướng: Gpbs Ethernet
"  Các tín hiệu lan truyền "  Loại 6: 10Gbps
trên các phương tiện
truyền thông rắn: cáp
đồng, cáp quang, cáp
đồng trục
!  Phương tiện truyền thông
vô hướng:
"  Tín hiệu lan truyền tự
do, ví dụ radio Giới thiệu 1-20
Đường truyền vật lý: cáp đồng trục,
cáp quang
Cáp ồng trục: Cáp quang:
!  Hai dây dẫn đồng đồng !  Sợi thủy tinh mạng xung
tâm ánh sáng, mỗi xung là một
bit
!  Hai hướng
!  Hoạt động tốc độ cao:
!  Băng thông rộng:
"  Truyền point-to-point với
"  nhiều kênh trên cáp tốc độ cao (ví dụ., tốc độ
"  HFC truyền 10 s-100 s Gpbs)
!  Tỷ lệ lỗi thấp:
"  Bộ lặp (repeaters) cách xa
phần còn lại
"  Không bị nhiễu điện từ

Giới thiệu 1-21


Đường truyền vật lý: sóng radio
!  Tín hiệu được mang Các loại liên kết radia:
dưới dạng phổ điện từ !  Vi sóng mặt đất
!  Không có dây dẫn vật lý "  Các kênh đến 45 Mbps
!  Truyền hai chiều !  LAN (như WiFi)
!  Các tác động môi "  11Mbps, 54 Mbps
trường lan truyền: !  Diện rộng (như cellular)
"  Phản xạ, khúc xạ "  3G cellular: ~ vài Mbps
"  Bị cản trở bởi vật !  Vệ tinh
cản "  Kênh từ Kbps đến 45Mbps
( hoặc chia nhiều kênh nhỏ)
"  Bị nhiễu "  Độ trễ giữa 2 thiết bị đầu
cuối 270 msec
!  giữ khoảng cách cố định với
mặt đất, độ cao thấp

Introduction 1-22
Chương 1: nội dung
1.1 Internet là gì?
1.2 Mạng biên
"  hệ thống đầu cuối, mạng truy cập, các liên kết
1.3 Mạng lõi
"  Chuyển mạch gói, chuyển mạch kênh, cấu trúc
mạng
1.4 Độ trễ, sự mất mát, thông lượng trong
mạng
1.5 Các lớp giao thức, các mô hình dịch vụ
1.6 Mạng bị tấn công: bảo mật
1.7 Lịch sử
Giới thiệu 1-23
Mạng lõi
!  Lưới các bộ định tuyến
được kết nối với nhau
!  Chuyển mạch gói: hosts
chia nhỏ dữ liệu từ tầng
ứng dụng (application-
layer messages) thành
các packets
"  Chuyển tiếp các gói từ
một bộ định tuyến này
đến bộ định tuyến tiếp
theo qua các đường link
trên đường đi từ nguồn
tới đích.
"  Mỗi packet được truyền
tải với công suất lớn nhất
của đường link
Giới thiệu 1-24
Chuyển mạch gói: store-and-forward

L&bits&
mỗi&packet&

3& 2& 1&


Nguồn& đích&
R&bps& R&bps&

!  Mất L/R giây để truyền tải


L-bit packet trong đường Ví dụ số về one-hop :
link tại tốc độ R bps "  L = 7.5 Mbits
!  store and forward: toàn "  R = 1.5 Mbps
bộ packet phải ến bộ ịnh
tuyến trước khi nó có thể "  Độ trễ truyền tải one-hop
ược truyền tải trên = 5 sec
đường link tiếp theo
!  end-end delay = 2L/R (giả sử Thêm về độ trễ ngắn …
không có độ trễ lan truyền)
Giới thiệu 1-25
Chuyển mạch gói: độ trễ hàng đợi, sự
mất mát
R = 100 Mb/s C
A
D
R = 1.5 Mb/s
B
Các gói xếp hàng E
chờ đến lượt xuất
trên đường link

Xếp hàng và sự mất mát:


!  Nếu tốc độ đến (theo bit) đường link vượt quá tốc độ
truyền dẫn của đường link trong một khoảng thời
gian:
"  Các packet sẽ xếp hàng và đợi để được truyền tải
trên đường link
"  Các packet có thể bị bỏ (bị mất) nếu bộ nhớ (bộ
đệm) bị đầy
Giới thiệu 1-26
Hai chức năng chính của mạng lõi
routing: xác định đường forwarding: chuyển các
đi từ nguồn đến đích được packet từ đầu vào của bộ
thực hiện bởi các packet định tuyến đến đầu ra thích
"  Thuật toán routing hợp của bộ định tuyết đó

routing algorithm

local forwarding table


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

Địa chỉ đến trong header


của packet đến
Giới thiệu 1-27
Alternative core: chuyển mạch kênh
Tài nguyên giữa 2 điểm cuối được
phân bổ, được dành cho cuộc
gọi giữa nguồn và đích:
!  Trong sơ đồ, mỗi đường link có
bốn kênh.
"  Cuộc gọi dùng kênh thứ 2nd
trong đường link trên cùng và
kênh thứ trong đường link bên
phải.
!  Tài nguyên được dành riêng :
không chia sẽ
"  circuit-like (được đảm bảo)
performance
!  Kênh được cấp phát sẽ rãnh rỗi
nếu không được sử dụng bởi cuộc
gọi (không chia sẽ)
!  Thường được sử dụng trong các
mạng điện thoại truyền thống
Giới thiệu 1-28
Chuyển mạch kênh: FDM với TDM
Ví dụ:
FDM
4 users

frequency

time
TDM

frequency

time
Giới thiệu 1-29
So sách chuyển mạch gói với
chuyển mạch kênh
Chuyển mạch gói cho phép nhiều người dùng ược
sử dụng mạng!
Ví dụ:
"  Đường link 1 Mb/s
N

…..
"  Mỗi user: users
•  100 kb/s khi kích hoạt Đường liên kết
•  Thời gian kích hoạt 10% 1 Mbps

! Chuyển mạch kênh:


"  10 users
Q: làm thế nào có được giá trị 0.0004?
! Chuyển mạch gói: Q: cái gì sẽ xảy ra nếu > 35 users ?
"  Với 35 user,
"  with 35 users, xác suất
kích hoạt > 10 sẽ nhỏ hơn
0.0004
* Check out the online interactive exercises for more examples Giới thiệu 1-30
So sách chuyển mạch gói với chuyển
mạch kênh
Liệu chuyển mạch gói có phải là người chiến
thắng tất cả ?
!  Tốt cho trường hợp bursty data
"  Chia sẽ tài nguên
"  Đơn giản, không cần thiết lập cuộc gọi
!  Trong trường hợp tắt nghẽn quá mức: packet bị trễ và
thất lạc
"  Các giáo thức cần thiết cho việc truyền dữ liệu một
cách tin cậy và điều khiển tắc nghẽn
!  Q: Làm thế nào để hổ trợ cho hành vi chuyển mạch
kênh?
"  Bảo đảm băng thông cần thiết cho các ứng dụng
audio/video
"  Xem thêm chapter 7
Q: so sánh với con người trong việc cấp tài nguyên dành riêng
(chuyển mạch) và cấp phát tài nguyên theo yêu cầu (chuyển gói)?
Giới thiệu 1-31
Kiến trúc Internet: mạng của các mạng
!  Các hệ thống đầu cuối kết nối đến Internet thông qua
access ISPs (Internet Service Providers)
"  Các ISP khu dân cư, công ty và trường đại học
!  Các Access ISP lần lượt phải được kết nối với nhau
!  Vì vậy, bất cứ hai host nào cũng có thể gởi được
dữ liệu lẫn nhau.
!  Vì vậy, mạng của các mạng rất là phức tạp
!  Sự phát triển được thúc đẩy bởi kinh tế và chính
sách quốc gia
!  Chúng ta hãy từng bước khám phá cấu trúc Internet
hiện tại
Kiến trúc Internet: mạng của các mạng
Câu hỏi: có hàng triệu access ISPs, làm thế nào để chúng
kết nối được với nhau?

access
… access
net
access
net …
net
access
access net
net
access
access net
net

access access
net net

access
net
access
net

access
net
access
net
… access
net
access
net

access
net
Kiến trúc Internet: mạng của các
mạng*
Tùy chọn: kết nối từng access ISP ến các access ISP
khác?
access
… access
net
access
net …
net
access
access net
net
… access
access net
net

Kết nối trực tiếp từng access


access
ISP đến từng access ISP access

net
khác sẽ không phát triển net

access được: O(N2) số kết nối.


net
access
net

access
net
access
net
… access
net
access
net

access
net
Kiến trúc Internet: mạng của các mạng
Tùy chọn: kết nối từng access ISP ến một ISP chuyển
tiếp toàn cầu? Khách hàng và nhà cung cấp dịch vụ ISP phải
thoải thuận về kinh tế.
access
… access
net
access
net …
net
access
access net
net
access
access net
net

ISP
access
net
toàn cầu access
net

access
net
access
net

access
net
access
net
… access
net
access
net

access
net
Kiến trúc Internet: mạng của các mạng
Nhưng nếu một IPS toàn cầu là khả thì, thì sẽ có nhiều
đối thủ cạnh tranh

access
… access
net
access
net …
net
access
access net
net
access
access net
net
ISP A

access access
net ISP B net

access
ISP C
net
access
net

access
net
access
net
… access
net
access
net

access
net
Kiến trúc Internet: mạng của các mạng
Nhưng nếu một ISP toàn cầu là khả thi, thì sẽ có các đối
thủ cạnh tranh được kết nối với nhau
Internet exchange point
access
access

access
net net …
net
access
access net
net

access
IXP access
net
net
ISP A

access IXP access


net ISP B net

access
ISP C
net
access
net

access
net
peering link
access
net
… access
net
access
net

access
net
Kiến trúc Internet: mạng của các mạng
… và các mạng khu vực có thể phát sinh để kết nối các
mạng lưới truy cập này đến các ISP

access
… access
net
access
net …
net
access
access net
net

access
IXP access
net
net
ISP A

access IXP access


net ISP B net

access
ISP C
net
access
net

access
net Mạng khu vực
access
net
… access
net
access
net

access
net
Kiến trúc Internet: mạng của các
mạng
… và các mạng cung cấp nội dung (như là Google,
Microsoft, Akamai ) có thể chạy mạng riêng của họ để
mạng lại các dịch vụ và nội dung gần sát với người dùng
cuối … access
net
access
net …
access
net
access
access net
net

access
IXP access
net
net
ISP A

Content provider network


access IXP access
net ISP B net

access
ISP B
net
access
net

access
net Mạng khu vực
access
net
… access
net
access
net

access
net
Kiến trúc Internet: mạng của các mạng
ISP cấp 1 ISP cấp 1 Google

IXP IXP IXP

Regional ISP Regional ISP

access access access access access access access access


ISP ISP ISP ISP ISP ISP ISP ISP

!  Tại trung tâm: một số lượng nhỏ các mạng lớn được kết nối với
nhau
"  ISPs thương mại lớp-1 (như là Level 3, Sprint, AT&T, NTT), bao
trùm các quốc gia và toàn thế giới
"  content provider network (như là Google): mạng riêng kết nối các
trung tâm dữ liệu của nó với Internet, thường bỏ qua các IPS vùng
Giới thiệu 1-40 và
ISP cấp 1: như là Sprint
POP: point-of-presence

đến/từbackbone

peering
… … …

Đến/từ khách hàng

Giới thiệu 1-41


Chương 1: nội dung
1.1 Internet là gì?
1.2 Mạng biên
"  các hệ thống đầu cuối, mạng truy nhập, các liên
kết
1.3 Mạng lõi
"  Chuyển mạch gói, chuyển mạch kênh, cấu trúc
mạng
1.4 Độ trễ và thông lượng trong mạng
1.5 Các lớp giao thức, các mô hình dịch vụ
1.6 Mạng bị tấn công: bảo mật
1.7 Lịch sử
Giới thiệu 1-42
Sự mất mát và độ trễ xảy ra như
thế nào?
Các gói tin (packet) ợi trong bộ êm của bộ ịnh
tuyến (router)
!  Tốc độ đến của các gói tin đến đường link (tạm thời) vượt
quá cả năng của đường liên kết đầu ra
!  Các gói tin đợi và chờ đến lượt
packet đang được truyền (trễ)

B
packets đang đợi (trễ)
Bộ đêm rãnh rỗi (sẵn sàng): các gói tin đến sẽ bị bỏ (mất mát)
nếu không có bộ đệm còn trống

Giới thiệu 1-43


Bốn nguồn gây ra chậm trễ gói tin
truyền
A lan truyền

B
xử lý
tai nút xếp hàng

dnodal = dproc + dqueue + dtrans + dprop

dproc: xử lý tại nút dqueue: độ trễ xếp hàng


"  Kiểm tra các bit lỗi "  Thời gian đợi tại đường
"  Xác định đường ra ra cho việc truyền dữ
"  Thông thường < msec liệu
"  Phụ thuộc vào mức độ
tắt nghẽn của bộ định
Giới thiệu 1-44
tuyến
Bốn nguồn gây ra chậm trễ gói tin
truyền
A lan truyền

B
xử lý
tại nút xếp hàng

dnodal = dproc + dqueue + dtrans + dprop

dtrans: trễ do truyền: dprop: trễ do lan truyền:


"  L: chiều dài gói (bits) "  d: độ dài của đường link vật lý
"  R: băng thông đường link (bps) "  s: tốc độ lan truyền trong môi
"  dtrans = L/R trường (thiết bị, dây dẫn)
dtrans and dprop (~2x108 m/sec)
rất khác nhau "  dprop = d/s
* Check out the Java applet for an interactive animation on trans vs. prop delay Giới thiệu 1-45
So sánh với đoàn xe
100 km 100 km
Đoàn 10 xe Trạm thu phí Trạm thu phí

!  Các xe lan truyền với "  Thời gian để đẩy


tốc độ 100 km/hr toàn bộ đoàn xe qua
!  Trạm thu phí xử lý mỗi xe trạm thu phí qua
là 12 giây ( thời gian đường cao tốc =
truyền bit) 12*10 = 120 sec
!  xe~bit; đoàn xe~ packet "  Thời gian để xe cuối
!  Q: Mất bao lâu thì đoàn cùng lan truyền từ
xe tới trạm thu phí thứ trạm thu phí số 1
đến trạm thu phí số
2?
2 là 100km/(100km/
hr)= 1 hr
"  A: 62 phút
Giới thiệu 1-46
So sánh với đoàn xe (tt)
100 km 100 km
Đoàn 10 xe Trạm thu phí Trạm thu phí

!  Bây giờ, giả sử xe lan truyền với tốc độ 1000 km/hr


!  và trạm thu phí mất một phút để phục vụ một xe
!  Câu hỏi: có xe nào sẽ đến được trạm thu phí thứ 2
trước khi cả đoàn xe đã được phục vụ tại trạm thu phí
thứ 1?
"  áp án: Có! Sau 7 phút, xe thứ 1 sẽ đến trạm thu
phí thứ 2; và 3 xe cuối đoàn vẫn còn ở trạm thu phí
thứ 1.

Giới thiệu 1-47


Trễ do xếp hàng (nhắc lại)

average queueing
!  R: băng thông đường link (bps)

delay
!  L: độ dài gói tin (bits)
!  a: tỷ lệ trung bình gói tin đến

cường độ lưu thông = La/R

!  La/R ~ 0: trễ trung bình nhỏ La/R ~ 0


!  La/R -> 1: trễ trung bình lớn
!  La/R > 1: nhiều việc đến hơn khả năng phục
vụ, trễ trung bình vô hạn!

* Check out the Java applet for an interactive animation on queuing and loss La/R -> 1
Giới thiệu 1-48
Độ trễ và định tuyến trên Internet
“thực tế”
!  Độ trễ và sự mất mát trên Internet thực
tế trông như thế nào
!  Chương trình traceroute: giúp đo lường độ
trễ từ nguồn tới thiết bị định tuyến cái mà
dọc theo con đường Internet từ đầu cuối
này đến đầu cuối kia đến đích. Với tất cả i:
"  Gởi 3 gói tin sẽ đến bộ định tuyến I trên đường
tới đích
"  Router i sẽ trả về các gói tin cho người gởi
"  Khoảng thời gian lần gửi giữa truyền và trả lời
3 probes 3 probes

3 probes
Giới thiệu 1-49
Độ trễ và định tuyến trên
Internet “thực tế”
traceroute: gaia.cs.umass.edu đến www.eurecom.fr
3 giá trị trễ từ
gaia.cs.umass.edu đến 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 * * * * Không có phản hồi (thăm dò bị mất, router không trả lời)
19 fantasia.eurecom.fr (193.55.113.142) 132 ms 128 ms 136 ms
* Do some traceroutes from exotic countries at www.traceroute.org
Giới thiệu 1-50
Sự mất gói
!  Hàng đợi (còn gọi là bộ đệm) trước đường link
trong bộ đệm có khả năng hữu hạn.
!  Gói tin đến hàng đợi đầy thì sẽ bị bỏ (còn gọi là
sự mất mát)
!  Gói tin bị mất có thể được truyền lại bởi nút
mạng trước đó, hay bởi hệ thống đầu cuối
nguồn hoặc không truyền gì cả
Bộ đệm
A (vùng đang đợi) gói tin đang được truyền lại

B
Gói tin đến hàng đợi đầy thì sẽ bị bỏ

* Check out the Java applet for an interactive animation on queuing and loss Giới thiệu 1-51
Thông lượng
!  Thông lượng: tốc độ(bits/time unit) mà các
bit được truyền giữa người gởi và nhận
"  tức thời: tốc độ tại thời điểm được cho
"  trung bình: tốc độ trong thời gian dài hơn

Máyserver,
chủ with
gởi các link capacity
đường ống có thể link capacity
Đường ống có thể mang
bit (chấtbits
file of F lỏng) Rs bits/sec
mang chất lỏng với R
chấtbits/sec
c lỏng với tốc độ
to send to
vào đường ốngclient tốc độ Rc bits/sec
Rs bits/sec

Giới thiệu 1-52


Thông lượng (tt)
!  Rs < Rc thông lượng trung bình giữa 2 đầu cuối là gì?

Rs bits/sec Rc bits/sec

Rs > Rc thông lượng trung bình giữa 2 đầu cuối là gì?

Rs bits/sec Rc bits/sec

Đường link nút cổ chai


Đường link trên con đường từ điểm cuối này đến điểm cuối
kia hạn chế thông lượng từ điểm cuối này đến điểm cuối
kia
Giới thiệu 1-53
Thông lượng: Ngữ cảnh
Internet
!  Thông lượng điểm
cuối-cuối cho mỗi Rs
kết nối : Rs Rs
min(Rc,Rs,R/10)
!  Trong thực tế: Rc
R
hoặc Rs thường bị
thắt nút cổ chai Rc Rc

Rc

10 kết nối (công bằng) chia sẽ đường


trục thắt nút cổ chai R bits/sec
Giới thiệu 1-54
Chương 1: Nội dung
1.1 Internet là gì?
1.2 mạng biên
"  các hệ thống đầu cuối, mạng truy nhập, các liên
kết
1.3 mạng lõi
"  Chuyển mạch gói, chuyển mạch kênh, cấu trúc mạng
1.4 độ trễ, độ trễ, thông lượng trong mạng
1.5 Các lớp giao thức, các mô hình dịch vụ
1.6 Mạng bị tấn công: bảo mật
1.7 lịch sử

Giới thiệu 1-55


Tầng” giao thức
Mạng rất phức tạp,
với nhiều thành
phần
"  hosts Câu hỏi:
"  Bộ định tuyến Có hy vọng nào để tổ
(routers) chức cấu trúc của
mạng hay không?
"  Các đường link
của phương
tiện truyền …. Hoặc là ít nhất
thông khác chúng ta thảo luận về
nhau mạng
"  Các ứng dụng
"  Các giao thức
"  Phần cứng, phần Giới thiệu 1-56
Tổ chức du lịch hàng không
vé (mua) Vé (khiếu nại)

hành lý (kiểm tra) hành lý (lấy lại)

cổng (tải) cổng (không tải)

đường băng cất cánh đường băng hạ cánh

lộ trình bay lộ trình bay


lộ trình bay

!  Các bước

Giới thiệu 1-57


Sự phân lớp của chức năng
hàng không
ticket (purchase) ticket (complain) vé

baggage (check) baggage (claim Hành lý

gates (load) gates (unload) Cổng

runway (takeoff) runway (land) Cất cánh/hạ cánh

airplane routing airplane routing airplane routing airplane routing Lộ trình bay

Sân bay Trung tâm điều hành trung chuyển Sân bay đến
khởi hành

Các lớp: mỗi lớp thực hiện một dịch vụ


"  Qua những hoạt động lớp – bên trong của

"  Dựa trên các dịch vụ được cung cấp bởi lớp
bên dưới
Giới thiệu 1-58
Tại sao phải phân lớp?
Nhằm xử lý các hệ thống phức tạp
!  Cấutrúc rõ ràng cho phép xác định quan hệ
của các mảnh của hệ thống phức tạp
"  Thảo luận mô hình tham chiếu được phân
!  Mô-dun hóa làm dễ dàng việc bảo trì và cập
nhật hệ thống
"  Thay đổi việc thực hiện dịch vụ của các lớp là
trong suốt với phần còn lại của hệ thống
"  Ví dụ: thay đổi thủ tục ở cổng sẽ không ảnh
hướng đến phần còn lại của hệ thống
!  Xem xét những bất lợi của việc phân lớp

Giới thiệu 1-59


Chồng giao thức Internet
!  application: hổ trợ các ứng
dụng mạng
"  FTP, SMTP, HTTP application
!  transport: chuyển dữ liệu từ
tiến trình này đến tiến trình transport
kia (process-process)
"  TCP, UDP network
!  network: định tuyến những gói
dữ liệu từ nguồn tới đích link
"  IP, các giao thức định tuyến
!  link:
chuyển dữ liệu giữa các physical
thành phần mạng lân cận
"  Ethernet, 802.111 (WiFi), PPP
!  physical: bits trên đường
dây Giới thiệu 1-60
Mô hình tham chiếu ISO/OSI
!  presentation: cho phép các
ứng dụng giải thích ý nghĩa
của dữ liệu, ví dụ mã hóa, application
nén, những quy ước chuyên presentation
biệt session
!  session: sự đồng bộ hóa,
transport
khả năng chịu lỗi, phục hồi
sự trao đổi dữ liệu network
!  Chồng giao thức Internet link
thiếu những lớp này!
physical
"  Những dịch vụ này, nếu được
cần, phải được thực hiện
trong tầng ứng dụng
(application)
"  Cần hay không? ứng dụng 1-61
message M
nguồn
application
Đóng gói
segment Ht M transport
datagram Hn Ht M network
frame Hl Hn Ht M link
physical
link
physical

Bộ
Chuyển mạch

đích Hn Ht M network
M application
Hl Hn Ht M link Hn Ht M
Ht M transport physical
Hn Ht M network
Hl Hn Ht M link Bộ
định tuyến
physical

Giới thiệu 1-62


Chương 1: nội dung
1.1 Internet là gì?
1.2 mạng biên
"  các hệ thống đầu cuối, mạng truy nhập, các liên
kết
1.3 mạng lõi
"  Chuyển mạch gói, chuyển mạch kênh, cấu trúc
mạng
1.4 độ trễ, độ trễ, thông lượng trong mạng
1.5 các lớp giao thức, các mô hình dịch vụ
1.6 Mạng bị tấn công: bảo mật
1.7 lịch sử
Giới thiệu 1-63
An toàn mạng
!  Lĩnh vực an ninh mạng
"  Cách mà kẻ xấu có thể tấn công mạng máy tính
"  Cách mà chúng ta có thể bảo vệ mạng khỏi các cuộc
tấn công
"  làm thế nào để thiết kế những kiến trúc có thể
miễn dịch khỏi các cuộc tấn công
!  Internet ban đầu không được thiết kết với
bảo mật
"  Tầm nhìn ban đầu: một nhóm người dùng tin tưởng
lẫn nhau được kết nối đến một mạng trong suốt #
"  Nhà thiết kế giao thức Internet đang chơi “bắt kịp”
"  An toàn được cân nhắc trong tất cả các tầng

Giới thiệu 1-64


Kẻ xấu: đặt phần mềm có hại (malware ) vào
trong hosts thông qua Internet
!  Phầnmềm có hại có thể xâm nhập vào trong
host từ:
"  virus: sự truyền nhiềm tự sao chép bằng việc nhận
hoặc là thực thi đối tượng (như là e-mail
attachment)
"  worm: sự truyền nhiễm tự sao chép bằng việc thụ
động tiếp nhập đối tượng mà tự nó được thực hiện
!  Phầnmềm gián điệp có thể ghi lại các phím
nhấn, các trang wed đã vào, tải thông tin đến
đến trang tập hợp
!  Hostbị nhiễm có thể được dùng trong mạng
botnet, sử dụng cho thư rác. Tấn công DDoS
Giới thiệu 1-65
kẻ xấu: tấn công máy chủ, hạ tầng mạng
Denial of Service (DoS): kể tấn công làm cho tài
nguyên (máy chủ, băng thông) không sẵn sàng
cho lưu lượng hợp pháp bằng cách trôn vùi tài
nguyên bởi các lưu lượng giả.
1. chọn mục tiêu
2. đột nhập vào các hosts
xung quanh mạng (xem
botnet)
3. gởi các gói tin đến mục
tiêu từ các host đã bị mục tiêu
chiếm

Giới thiệu 1-66


Kẻ xấu có thể đánh hơi các gói
tin
" ánh hơi" gói tin:
"  phương tiện truyền quảng bá (broadcast media)
(mạng chia sẽ ethernet, mạng không dây)
"  giao diên mạng hỗn tạp đọc/ghi tất cả các gói tin
(ví dụ password!) đi qua
A C

src:B dest:A payload


B

!  phần mềm wireshark được sử dụng cho thực


hành chương cuối là một phần mềm đánh hơi gói
tin miễn phí Giới thiệu 1-67
Kẻ xấu có thể dùng những địa
chỉ giả mạo
giả mạo IP: gởi gói tin với ịa chỉ nguồn giả
A C

src:B dest:A payload

… tìm hiểu nhiều hơn về bảo mật(toàn chương 8 )


Giới thiệu 1-68
Chương 1: Nội dung
1.1 Internet là gì?
1.2 mạng biên
"  các hệ thống đầu cuối, mạng truy nhập, các liên
kết
1.3 mạng lõi
"  Chuyển mạch gói, chuyển mạch kênh, cấu trúc
mạng
1.4 độ trễ, độ trễ, thông lượng trong mạng
1.5 các lớp giao thức, các mô hình dịch vụ
1.6 Mạng bị tấn công: bảo mật
1.7 lịch sử
Giới thiệu 1-69
Lịch sử Intenet
1961-1972: những nguyên lý chuyển mạch gói
!  1961: Kleinrock - lý !  1972:
thuyết hàng đợi cho "  bản ARPAnet công cộng
thấy hiệu quả của "  NCP (Network Control
chuyển mạch gói Protocol) first host-host
!  1964: Baran - chuyển protocol
mạch gói trong mạng "  chương trình email đầu
quân sự tiên
!  1967: ARPAnet được "  ARPAnet có 15 nút
hình thành bởi
Advanced Research
Projects Agency
!  1969: nút ARPAnet
đầu tiên hoạt động

Giới thiệu 1-70


Lịch sử Internet
1972-1980: Internetworking, new and proprietary nets
!  1970: ALOHAnet satellite
network in Hawaii Cerf and Kahn s
!  1974: Cerf and Kahn - internetworking principles:
architecture for interconnecting "  minimalism, autonomy - no
networks internal changes required to
!  1976: Ethernet at Xerox PARC interconnect networks
"  best effort service model
!  late70 s: proprietary
"  stateless routers
architectures: DECnet, SNA,
XNA "  decentralized control
!  late 70 s: switching fixed length define today s Internet
packets (ATM precursor) architecture
!  1979: ARPAnet has 200 nodes

Introduction 1-71
Lịch sử Internet
1980-1990: new protocols, a proliferation of networks

!  1983: triển khai TCP/ !  mạng quốc gia mới:


IP Csnet, BITnet,
!  1982: giao thức email NSFnet, Minitel
smtp được định nghĩa !  100,000 hosts được
!  1983: DNS được định kết nối đến liên mạng
nghĩa cho chuyển đổi
từ tên miền sang địa
chỉ IP
!  1985: giao thức ftp
được định nghĩa
!  1988: điều khiển tắc
nghẻn TCP

Giới thiệu 1-72


Lịch sử Internet
1990, 2000 s: thương mại hóa, the Web, các
ứng dụng mới
! đầu những năm 1990: cuối những năm1990 –
ARPAnet ngừng hoạt động 2000:
! 1991: NSF gỡ bỏ các giới !  nhiều ứng dụng killer
hạn về việc sử dụng thương hơn: instant messaging,
mại của NSFnet (ngừng hoạt P2P file sharing
động, 1995) !  an ninh mạng lên hàng
! đầu những năm 1990: Web đầu
"  hypertext [Bush 1945, !  ước tính 50 triệu host,
Nelson 1960 s] hơn 100 triệu người
"  HTML, HTTP: Berners-Lee dùng
"  1994: Mosaic, later !  đường trục hoạt động ở
Netscape tốc độ Gbps
"  cuối những năm 1990:
thương mại hóa của web
Giới thiệu 1-73
Lịch sử Internet
2005-hiện tại
!  ~750 triệu host
"  điện thoại thông minh và máy tính bảng
!  tích cực triển khai truy cập băng thông rộng
!  truy cập không dây tốc độ cao khắp mọi nơi ngày
càng tăng cao
!  Sự xuất hiện của cá mạng xã hội trực tuyến:
"  Facebook: sớm đạt 1 tỷ người sử dụng
!  Nhà cung cấp dịch vụ (Google, Microsoft) tạo
mạng riêng của mình
"  Vượt qua Internet, cung cấp truy câp "tức
thời" để tìm kiếm, email....
!  Thương mại điện tử, trường đại học, các doanh
nghiệp chạy các dịch vụ của họ trong công nghệ
"đám mây" (như là Amazon EC2)
Giới thiệu 1-74
Giới thiệu: tóm tắt
!  Tổng quan Internet ạt ược:
!  Giao thức là gì? !  bối cảnh, tổng quan,
!  Mạng biên, mạng lõi, mạng truy hiểu về mạng
cập
!  hiểu sâu hơn, chi tiết
"  so sánh chuyển chuyển để thực hiện!
mạch gói và chuyển mạch
kênh
"  kiến trúc Internet
!  Hiệu xuất: sự mất mát, độ trễ,
thông lượng
!  Mô hình dịch vụ và sự phân lớp
!  An ninh mạng
!  Lịch sử Internet

Giới thiệu 1-75


Hong Bang International University
Department of Information Technology

END OF LECTURE
mobile network

national or global ISP

local or regional ISP


Internet
home network content
provider
network
datacenter
network

enterprise
network
Hong Bang International University
Department of Information Technology

COMPUTER
NETWORKING
mobile network

national or global ISP

local or
Application Layer
Internet
regional ISP

home network content


provider
Instructor: MSc. Hoang Ngoc Long
network datacenter
network

enterprise
network
Chương 2: Nội dung
2.1 Các nguyên lý của 2.6 Các ứng dụng P2P
các ứng dụng mạng 2.7 Lập trình socket
2.2 Web và HTTP với UDP và TCP
2.3 FTP
2.4 E-Mail
"  SMTP, POP3,IMAP
2.5 DNS

Tầng Application 2-2


Chương 2: tầng application
Mục tiêu: !  Tìm hiểu các giao
!  Khái niệm và các khía thức phổ biến của
cạnh thực hiện của tầng application
các giao thức ở ứng "  HTTP
dụng mạng "  FTP
"  Mô hình client- "  SMTP / POP3 / IMAP
server "  DNS
"  Mô hình peer-to- !  Lập trình ứng dụng
peer mạng
"  socket API

Tầng Application 2-3


Một số ứng dụng mạng
!  E-mail !  Thoại trên nền IP (e.g.,
!  Web Skype)
!  Remote access !  Hội thảo video thời
!  Chia sẽ file P2P gian thực
Mạng xã hội
Trò chơi nhiều người ! 
! 
trên mạng !  Mạng tìm kiếm
!  Streaming stored !  …
video (YouTube, Hulu, !  …
Netflix)

Tầng Application 2-4


Tạo một ứng dụng mạng application
transport
network
data link

Viết chương trình để: physical

!  Chạy trên các hệ thống đầu


cuối khác nhau
!  Truyền thông qua mạng
!  Ví du: phần mềm web
server giao tiếp với trình
duyệt
application
Không cần viết phần mềm cho transport
network

các thiết bị mạng lõi data link


physical
application
transport

!  Các thiết bị mạng lõi không


network
data link

chạy các ứng dụng của


physical

người dùng
!  Các ứng dụng trên các hệ
thống đầu cuối cho phép
quảng bá và phát triển ứng
dụng nhanh chóng Tầng Application 2-5
Các kiến trúc ứng dụng
Cấu trúc có thể của các ứng dụng:
!  Client-Server
!  peer-to-peer (P2P) (Mạng ngang hàng)
!  Lai giữa Client-Server và P2P

Tầng Application 2-6


Kiến trúc Client-server
server:
!  Luôn luôn hoạt động
!  Địa chỉ IP cố định
!  Trung tâm phục vụ và lưu
trữ dữ liệu

clients:
client/server !  Giao tiếp với server
!  Có thể kết nối không liên
tục
!  Có thể dùng địa chỉ IP
động
!  Không giao tiếp trực tiếp
với các client khác
Tầng Application 2-7
Kiến trúc P2P (ngang hàng)
!  Không có server peer-peer
!  Các hệ thống đầu cuối bất kỳ
truyền thông trực tiếp với
nhau
!  Các peer yêu cầu dịch vụ từ
các peer khác và cung cấp
dịch vụ ngược lại cho các
peer khác
"  Có khả n ng tự mở rộng –
các peer mới mang lại
năng lực dịch vụ mới, cũng
như các nhu cầu về dịch
vụ mới
!  Các peer được kết nối không
liên tục và có thể thay đổi
địa chỉ IP
"  Quản lý phức tạp Tầng Application 2-8
Các tiến trình liên lạc
Tiến trình (process):
chương trình chạy clients, servers
trong một host. Tiến trình client: tiến
!  Trong cùng một host, trình khởi tạo
hai tiến trình giao tiếp truyền thông
với nhau bằng cách sử Tiến trình server: tiến
dụng truyền thông liên
tiến trình (inter- trình chờ đợi để
process communication) được liên lạc
được định nghĩa bởi hệ
điều hành. !  Chú ý: các ứng dụng với
!  Các tiến trình trong các kiến trúc P2P có cả các
host khác nhau truyền tiến trình client và
thông với nhau bởi trao server
đổi các thông điệp
(message) Tầng Application 2-9
Sockets
!  Tiến trình gửi/nhận thông điệp đến/ từ socket của nó
!  Socket tương tự như cổng ra vào
"  Tiến trình gởi đẩy thông điệp ra khỏi cửa
"  Tiến trình gởi dựa trên cổng của hạ tầng truyền
thông bên kia để phân phối thông điệp đến socket
tại tiến trình nhận

application application
socket Được kiểm soát
process process Bởi nhà phát triển
ứng dụng
transport transport
network network Được điều khiển
link
bởi hệ điều hành
link Internet
physical physical

Tầng Application 2-10


Tiến trình định địa chỉ
!  Để nhận thông điệp, tiến !  inh danh (identifier)
trình phải có định danh bao gồm cả địa chỉ IP và
!  Thiết bị host device có địa số cổng (port numbers)
chỉ IP 32-bit duy nhất được liên kết với tiến
trình trên host.
!  Q: dựa vào địa chỉ IP của
host mà tiến trình đang !  Ví dụ về số port:
chạy trên đó thì có đủ để "  HTTP server: 80
xác định tiến trình đó hay "  mail server: 25
không? !  Để gởi thông điệp HTTP
"  A: không, có nhiều đến web server
tiến trình có thể gaia.cs.umass.edu :
đang được chạy trên "  IP address: 128.119.245.12
cùng một host "  port number: 80
!  Còn nữa…

Tầng Application 2-11


Định nghĩa giao thức tầng
Application
!  Các loại thông điệp được Các giao thức mở:
trao đổi !  Được định nghĩa trong
"  e.g., yêu cầu (request), RFCs
đáp ứng (response) !  Cho phép khả năng
!  Cú pháp thông điệp: tương tác
"  Các trường trong thông !  e.g., HTTP, SMTP
điệp và cách mà các
trường được định nghĩa Các giao thức độc quyền:
!  e.g., Skype
!  Ngữ nghĩa của thông điệp
"  Ý nghĩa của thông tin
trong các trường
!  Các quy tắc (rules) khi nào
và cách nào mà các tiến
trình gởi và đáp ứng các
thông điệp
Tầng Application 2-12
Dịch vụ vận chuyển nào mà ứng dụng
cần?
Khả năng mất mát dữ liệu Thông lượng (throughput)
(data loss)
!  Một số ứng dụng (như
!  Một số ứng dụng (ví dụ
là, đa phương tiện) yêu
truyền file, web cầu số lượng thông
transactions) yêu cầu độ lượng tối thiếu để đạt
tin cậy 100% khi truyền được hiệu quả
dữ liệu.
!  Các ứng dụng khác
!  Các ứng dụng khác (ví dụ
( ứng dụng mềm dẻo )
audio) có thể chịu được có thể dùng bất kỳ
một số mất mát. thông lượng nào cũng
Thời gian (timing) được
!  Một số ứng dụng (ví An ninh
dụ, thoại Internet, !  Mã hóa, toàn vẹn dữ
game tương tác) yêu liệu, …
cầu độ trễ thấp để đạt
được hiệu quả Tầng Application 2-13
Các yêu cầu dịch vụ vận chuyển: các ứng dụng
phổ biến

ứng dụng mất dữ liệu thông lượng time sensitive

Truyền file không mềm dẻo không


e-mail không mềm dẻo không
Web documents không mềm dẻo không
audio/video chịu lỗi audio: 5kbps-1Mbps có, 100 s msec
thời gian thực video:10kbps-5Mbps
audio/video đã lưu chịu lỗi như trên có, vài giây
Game tương tác chịu lỗi Trên một vài kbps Có , 100 s msec
text messaging không mềm dẻo Có và không

Tầng Application 2-14


Các dịch vụ giao thức Transport
Internet
Dịch vụ TCP: Dịch vụ UDP:
!  reliable transport giữa !  Truyền dữ liệu không
tiến trình gởi và nhận tin cậy giữa tiến trình
!  flow control: người gởi gởi và nhận
sẽ không áp đảo người !  Không hổ trợ: độ tin
nhận
cậy, điều khiển luồng,
!  congestion control: điều điều khiển tắt nghẽn,
tiết người gởi khi mạng
quá tải bảo đảm thông lượng,
!  connection-oriented: bảo mật, và thiết lập
thiết lập được yêu cầu kết nối.
giữa tiến trình client và
server Q: tại sao phải quan
tâm? Tại sao có UDP?

Tầng Application 2-15


Ứng dụng Internet: Các giao thức tầng
application, transport
Giao thức tầng Giao thức dưới tầng
application application transport

e-mail SMTP [RFC 2821] TCP


remote terminal access Telnet [RFC 854] TCP
Web HTTP [RFC 2616] TCP
Truyền file FTP [RFC 959] TCP
streaming multimedia HTTP (e.g., YouTube), TCP or UDP
RTP [RFC 1889]
Thoại Internet SIP, RTP, độc quyền
(e.g., Skype) TCP or UDP

Tầng Application 2-16


Bảo mật TCP
TCP & UDP SSL là giao thức ở
!  Không mã hóa tầng Application
!  Mật mã chưa mã hóa !  Các ứng dụng dùng

được gởi đến socket thư viện SSL, cái


để đi qua Internet mà nói chuyên với
trong dạng nguyên bản TCP
SSL SSL socket API
!  Mật mã dạng
!  Hổ trợ kết nối TCP
được mã hóa cleartext được gởi
vào trong socket đi
!  Toàn vẹn dữ liệu
qua Internet được
!  Chứng thực điểm cuối mã hóa
!  Xem chương 7
Tầng Application 2-17
Chương 2: Nội dung

2.1 Các nguyên lý của 2.6 các ứng dụng P2P


các ứng dụng mạng 2.7 lập trình socket
2.2 Web và HTTP với UDP và TCP
2.3 FTP
2.4 thư điện tử
"  SMTP, POP3,
IMAP
2.5 DNS

Tầng Application 2-18


Web và HTTP
Ôn lại…
!  web page bao gồm các đối tượng (objects)
!  Đối tượng có thể là file HTML, hình ảnh
JPEG, Java applet, file audio,…
!  Web page bao gồm file HTML cơ bản cái
mà bao gồm một số đối tượng được tham
chiếu
!  Mỗi đối tượng có thể được định địa chỉ bởi
một URL, ví dụ
www.someschool.edu/someDept/pic.gif

host name path name

Tầng Application 2-19


Tổng quan HTTP
HTTP: hypertext
transfer protocol
"  Giao thức web ở tầng
Application PC chạy
!  Mô hình client/server trình duyệt
"  client: trình duyệt Firefox

yêu cầu, nhận (dùng


giao thức HTTP) và
hiện thị các đối server
tượng Web Chạy web server
Apache
"  server: Web server
gởi (dùng giao thức
HTTP) các đối
tượng để đáp ứng iphone chạy
trình duyệt
yêu cầu Safari

Tầng Application 2-20


Tổng quan HTTP (tt)
Dùng TCP: HTTP là stateless
!  Client khởi tạo kết nối !  server không duy trì
TCP (tạo socket) đến thông tin về các yêu
server, port 80. cầu trước đó của
client.
!  server chấp nhận kết
nối TCP từ client. Vấn đề liên quan
!  Các thông điệp HTTP Các giao thức nào mà duy
(thông điệp giao thức trì trạng thái là
tầng application) được phức tạp!
trao đổi giữa trình !  Lịch sử trước đó (trạng
duyệt (HTTP client) và thái) phải được duy trì
web server (HTTP !  Nếu server/client bị sự cố,
server). cách nhìn về trạng thái
của nó có thể bị mâu thuẩn,
!  Kết nối TCP được đóng. phải được điều chỉnh
Tầng Application 2-21
Các kết nối HTTP
Nonpersistent HTTP Persistent HTTP
!  Chỉ tối đa một đối !  Nhiều đối tượng có
tượng được gởi qua thể được gởi qua
kết nối TCP. một kết nối TCP
"  Kết nối sau đó sẽ giữa client và
bị đóng. server.
!  HTTP/1.0. !  HTTP/1.1.

Tầng Application 2-22


HTTP không bền vững
Giả sử người dùng vào URL như sau: (chứa text,
www.someSchool.edu/someDepartment/home.index tham chiếu đến 10
hình jpeg)
1a. HTTP client khởi tạo kết
nối TCP đến HTTP server
(tiến trình) tại 1b. HTTP server tại host
www.someSchool.edu trên www.someSchool.edu chờ
port 80 kết nối TCP tại port 80.
chấp nhận kết nối, thông
2. HTTP client gởi thông điệp báo cho client
yêu cầu HTTP (chứa URL) vào
trong socket kết nối TCP. 3. HTTP server nhận thông
Thông điệp chỉ ra rằng client điệp yêu cầu, định dạng
muốn đối tượng thông iệp phản hồi chứa
someDepartment/home.index đối tượng được yêu cầu, và
gởi thông điệp đến socket
Thời gian của nó
Tầng Application 2-23
HTTP không bền vững(tt)
4. HTTP server đóng kết nối TCP.

5. HTTP client nhận thông


điệp phản hồi chứa file
html, hiển thị html. Phân
tích cú pháp file html, tìm
ra các đối tượng jpeg được
time tham chiếu
6. Các bước 1-5 được lặp lại
cho mỗi đối tượng trong 10
đối tượng jpeg

Tầng Application 2-24


HTTP không bền vững: thời gian đáp ứng

RTT (định nghĩa): thời gian


để cho một gói tin nhỏ đi
từ client đến server và
quay ngược lại Khởi tạo
Thời gian đáp ứng HTTP: Kết nối TCP

!  Một RTT để khởi tạo RTT


kết nối TCP yêu cầu
file
!  Một RTT cho yêu cầu thời gian
RTT
HTTP và vài byte dầu truyền file
tiên của đáp ứng HTTP file
được trả về được nhận

!  Thời gian truyền file


!  Thời gian đáp ứng HTTP Thời gian Thời gian
không bền vững = 2RTT
+ thời gian truyền file
Tầng Application 2-25
Persistent HTTP

Nonpersistent HTTP: Persistent without pipelining:


!  Yêu cầu 2 RTTs cho một đối !  Client chỉ gởi request khi đã
tượng. nhận được response trước.
!  Một TCP connection làm việc !  1 RTT cho 1 đối tượng được
với 1 đối tượng quan tâm.
!  Trình duyệt thường mở song Persistent with pipelining:
song nhiều TCP connections !  Client gởi request liên tục đến
đến các đối tượng được quan các đối tượng được quan tâm
tâm. !  Có thể 1 RTT cho tất cả các
Persistent HTTP đối tượng được quân tâm
!  Server giữ lại trạng thái mở của
kết nối sau khi gởi response
!  Nhiều HTTP messages giữa
client/server được gởi qua kết
nối đang mở

2: Application Layer 26
Thông điệp yêu cầu HTTP

!  hai loại thông điệp HTTP: yêu cầu (request), đáp


ứng (response)
!  Thông điệp yêu cầu HTTP:
"  ASCII (dạng thức con người có thể đọc đượcKý
) tự xuống dòng
line-feed character
Dòng yêu cầu
(các lệnh GET, POST, GET /index.html HTTP/1.1\r\n
HEAD) Host: www-net.cs.umass.edu\r\n
User-Agent: Firefox/3.6.10\r\n
Accept: text/html,application/xhtml+xml\r\n
Các dòng Accept-Language: en-us,en;q=0.5\r\n
header Accept-Encoding: gzip,deflate\r\n
Accept-Charset: ISO-8859-1,utf-8;q=0.7\r\n
ký tự xuống dòng, Keep-Alive: 115\r\n
về đầu dòng mới chỉ Connection: keep-alive\r\n
\r\n
điểm cuối cùng
của thông điệp
Tầng Application 2-27
Thông điệp yêu cầu HTTP: định dạng
tổng quát

method sp URL sp version cr lf dòng


Yêu cầu
header field name value cr lf
các dòng
~
~ ~
~ header

header field name value cr lf


cr lf

~
~ entity body ~
~ thân

Tầng Application 2-28


Tải lên form input
Phương pháp POST:
!  web page thường bao
gồm form input
!  input được tải lên
server trong body
thực thể
Phương pháp URL:
!  Dùng phương thức
GET
!  input được tải trong
trường URL của dòng
yêu cầu:
www.somesite.com/animalsearch?monkeys&banana

Tầng Application 2-29


Các phương thức
HTTP/1.0: HTTP/1.1:
!  GET !  GET, POST, HEAD
!  POST !  PUT
!  HEAD "  Tải file trong body
"  Yêu cầu server để thực thể đến đường
lại đối tượng được dẫn được xác định
yêu cầu ra khỏi sự trong trường URL
đáp ứng !  DELETE
"  Xóa file được chỉ
định trong trường
URL

Tầng Application 2-30


Thông điệp đáp ứng HTTP
dòng trạng thái
(giao thức
mã trạng thái HTTP/1.1 200 OK\r\n
cụm từ trạng thái) Date: Sun, 26 Sep 2010 20:09:20 GMT\r\n
Server: Apache/2.0.52 (CentOS)\r\n
Last-Modified: Tue, 30 Oct 2007 17:00:02 GMT
\r\n
các dòng ETag: "17dc6-a5c-bf716880"\r\n
Accept-Ranges: bytes\r\n
header
Content-Length: 2652\r\n
Keep-Alive: timeout=10, max=100\r\n
Connection: Keep-Alive\r\n
Content-Type: text/html;
charset=ISO-8859-1\r\n
\r\n
Dữ liệu, ví dụ, data data data data data ...
file HTML
được yêu cầu
Tầng Application 2-31
Các mã trạng thái đáp ứng HTTP
!  Mã trạng thái xuất hiện trong dòng đầu tiên
trong thông điệp đáp ứng từ server tới client
!  Một số code mẫu:
200 OK
"  Yêu cầu thành công, đối tượng được yêu cầu sau ở trong
thông điệp này
301 Moved Permanently
"  Đối tượng được yêu cầu được di chuyển, vị trí mới được xác
định sau trong thông điệp này (Location:)
400 Bad Request
"  Thông điệp yêu cầu không được hiểu bởi server
404 Not Found
"  Tài liệu được yêu cầu không tìm thấy trên server này
505 HTTP Version Not Supported
Tầng Application 2-32
Kiểm tra HTTP (phía client)
1. Telnet đến Web server yêu thích của bạn:

Mở kết nối TCP ở port 80


(port server HTTP mặc định) tại cis.poly.edu.
telnet cis.poly.edu 80
Mọi thứ nhập vào được gởi đến
port 80 tại cis.poly.edu

2. Nhập vào yêu cầu trong lệnh GET HTTP:


Bằng cách gõ những dòng này
GET /~ross/ HTTP/1.1 (enter 2 lần), bạn đã gửi yêu cầu
Host: cis.poly.edu GET tối thiểu (nhưng đầy đủ)
đến HTTP server

3. Xem thông điệp đáp ứng được gửi bởi HTTP server!
(hoặc dùng Wireshark để xem thông điệp
yêu cầu và đáp ứng của HTTP được bắt lại) Tầng Application 2-33
Trạng thái User-server: cookies
Nhiều Web site dùng cookies Ví dụ:
4 thành phần: !  Susan thường truy cập
1) cookie header line của Internet từ một PC
thông điệp đáp ứng !  Vào trang thương mại
HTTP điện tử cho lần đầu tiên
2) cookie header line !  Khi yêu cầu khởi tạo
trong thông điệp đáp HTTP đến trang web đó,
ứng HTTP kế tiếp thì trang đó tạo:
3) File cookie được lưu "  ID duy nhất
trữ trên host của người "  Một entry trong cơ
dùng, được quản lý mởi sở dữ liệu backend
trình duyệt của người cho ID đó
sử dụng
4) Cở sở dữ liệu back-end
tại Web site
Tầng Application 2-34
Cookies: lưu trữ trạng thái (tt.)
client server

ebay 8734 usual http request msg server Amazon


file cookie tạo ID
usual http response cho user 1678 create backend
ebay 8734
set-cookie: 1678 entry database
amazon 1678

usual http request msg


cookie: 1678 cookie- truy cập
specific
usual http response msg action

một tuần sau:


truy cập
ebay 8734 usual http request msg
amazon 1678 cookie: 1678 cookie-
specific
usual http response msg action
Tầng Application 2-35
Cookies (tt)
Ngoài ra
Cookie có thể ược cookies và sự riêng tư:
sử dụng cho: !  cookie cho phép các
!  Sự cấp phép site biết nhiều hơn về
!  Giỏ mua hàng bạn
Các khuyến cáo
!  Bạn có thể cung cấp
! 
!  Trạng thái phiên làm tên và email cho site
việc của user (Web e-
mail)
Làm thế nào ể giữa trạng thái”:
!  các thời điểm kết thúc giao thức:
duy trì trạng thái tại người gởi/
nhận thông qua nhiều giao dịch
!  cookies: các thông điệp http mang
trạng thái
Tầng Application 2-36
Web caches (proxy server)
Mục tiêu: đáp ứng yêu cầu của client không cần liên
quan đến server gốc (server chứa đối tượng mà
client cần)
!  User thiết lập trình
duyệt: truy cập Web proxy
thông qua cache server
client
!  Trình duyệt gởi tất cả Server
gốc
yêu cầu HTTP đến cache
"  Đối tượng cache:
cache trả về đối
tượng
"  Ngược lại cache yêu client Server
cầu đối tượng từ gốc
server gốc, sau đó
trả đối tượng đó cho
client Tầng Application 2-37
Thông tin thêm về Web caching
!  Cache hoạt động ở Tại sao dùng Web caching?
cả client và server !  Giảm thời gian đáp ứng
"  server cho client yêu cho yêu cầu của client
cầu ban đầu !  Giảm lưu lượng trên
"  client đến server ban đường link truy cập của
đầu một tổ chức
!  Thông thường !  Caches dày đặc trên
cache được cài đặt Internet: cho phép
bởi ISP (trường những nhà cung cấp dịch
đại học, công ty, vụ có thể cung cấp nội
ISP riêng) dung một cách hiệu quả
hơn. (chia sẽ file P2P
cũng vậy).

Tầng Application 2-38


Ví dụ Caching:
Giả sử:
!  Kích thước trung bình của đối tượng: 1
Mb. origin
!  Tốc độ gởi yêu cầu trung bình từ trình servers
duyệt đến server gốc: 15/giây Internet
công cộng
!  Từ bộ định tuyến của tổ chức đến bất
kỳ server gốc: 2 giây
!  Tốc độ truy cập Link truy cập: 15 Mbps
!  Tốc độ truy cập trong LAN: 100 Mbps 15 Mbps
Link truy cập
Kết quả: Vấn đề!
Mạng tổ chức
!  Độ khả dụng của LAN: 15%
!  Độ khả dụng của link truy cập = 99% 100 Mbps LAN
!  Tổng thời gian trễ = trễ Internet +
trễ truy cập + trễ LAN
= 2 giây + minutes + usecs

Tầng Application 2-39


Ví dụ Caching: đường link truy cập lớn hơn
Giả sử:
!  Kích thước trung bình của đối tượng: 1
Mb origin
!  tốc độ trung bình yêu cầu từ trình duyệt servers
đến server = 15/s public
!  Tốc độ trung bình dữ liệu đến trình Internet
duyệt: 1.50 Mbps
!  RTT từ bộ định tuyến của tổ chức đến
bất kỳ server gốc: 2 giây
!  Tốc độ link truy cập: 15 Mbps 15 Mbps
150 Mbps
access link
Kết quả: 150 Mbps
!  độ khả dụng của LAN = 15%
Network
!  độ khả dụng trên liên kết truy cập= 99% 100 Mbps LAN
tổ chức
!  Tổng độ trễ= trễ Internet + trễ truy
cập + trễ LAN
= 2 sec + minutes + usecs 9.9%
msecs
Chi phí: tốc độ link truy cập được tăng lên (không rẻ!)
Tầng Application 2-40
Ví dụ Caching: install local cache
Giả sử:
!  Kích thước trung bình của đối tượng: 1
Mbits origin
!  tốc độ trung bình yêu cầu từ trình duyệt servers
đến server = 15/s public
!  RTT từ bộ định tuyến của tổ chức đến Internet
bất kỳ server gốc: 2 giây
!  Tốc độ link truy cập: 15 Mbps

Kết quả: 15 Mbps


!  Độ khả dụng LAN: 15% access link
!  access link utilization = 100%
Network
!  total delay = Internet delay + access tổ chức
delay + LAN delay 100 Mbps LAN
= 2 sec + minutes? + usecs?
local web
Làm cách nào ể tính cache
ộ khả dụng ường link, ộ trễ?
Chi phí: web cache (rẻ!)
Tầng Application 2-41
Ví dụ Caching: install local cache
Tính ộ khả dụng của ường
link truy cập, ộ trễ với
cache: origin
servers
!  Giả sử tốc độ cache là 0.4 public
"  40% yêu cầu được hài lòng ở Internet
cache, 60% yêu cầu được hài lòng
ở server gốc
!  Độ hiệu dụng access link:
15 Mbps
"  60% yêu cầu dùng link truy cập access link
"  Lưu lượng cần dùng: 0.6*15Mbps=9Mpbs
"  Độ khả dụng: 9/15=0.6 Network
tổ chức
!  Tổng độ trễ 100 Mbps LAN
"  = 0.6 * (độ trễ từ server gốc) +0.4 *
(độ trễ khi được hài lòng tại cache) local web
"  = 0.6 (2) + 0.4 (~msecs) cache
"  = ~ 1.2 secs
"  Ít hơn với link 100 Mbps (và cũng rẻ
hơn!)
Tầng Application 2-42
GET có điều kiện
cache server
!  Mục tiêu: không gửi đối
tượng nếu cache đã được
cập nhật HTTP request msg
Đối tượng
"  Không có độ trễ truyền If-modified-since: <date>
không được
dữ liệu sửa chữa
"  Sự sử dụng đường link HTTP response trước
thấp hơn HTTP/1.0 <ngày>
304 Not Modified
!  Cache: xác định ngày của
bản sao được cache trong
yêu cầu HTTP
If-modified-since:
<date> HTTP request msg
If-modified-since: <date> Đối tượng
!  Server: đáp ứng không được sửa
chứa đối tượng nếu bản chữa
HTTP response
copy trong cache đã được HTTP/1.0 200 OK
sau
cập nhật: <ngày>
<data>
HTTP/1.0 304 Not
Modified Tầng Application 2-43
Chương 2: Nội dung

2.1 Các nguyên lý của 2.6 các ứng dụng P2P


các ứng dụng mạng 2.7 lập trình socket
2.2 Web và HTTP với UDP và TCP
2.3 FTP
2.4 electronic mail
"  SMTP, POP3,
IMAP
2.5 DNS

Tầng Application 2-44


FTP: giao thức truyền file
truyền file
FTP FTP FTP
user client server
interface
user
tại host hệ thống file
hệ thống từ xa
file cục bộ

!  Truyền file đến/từ host từ xa


!  Mô hình client/server
"  client: phía khởi tạo truyền (đến/từ host từ xa)
"  server: host ở xa
!  Ftp: RFC 959
!  Ftp server: port 21

Tầng Application 2-45


FTP: điều khiển riêng biệt, kết nối dữ liệu

!  FTP client liên hệ với FTP Kết nối điều khiển TCP,
server port 21
server tại port 21, dùng
TCP
Kết nối dữ liệuTCP,
!  client được cấp phép trên FTP server port 20 FTP
kết nối điều khiển client server

!  client duyệt thư mục từ xa, !  Server mở kết nối dữ


gởi các lệnh trên kết nối liệu TCP khác để truyền
điều khiển file khác
!  Khi server nhận lệnh truyền !  Kết nối điều khiển: out
file, server mở kết nối dữ of band
liệu TCP thứ 2 (truyền file)
ến client !  F T P s e r v e r d u y t r ì
trạng thái : thư mục
!  Sau khi truyền một file, hiện tại, xác thực trước
server đóng kết nối dữ liệu đó
Tầng Application 2-46
Các lệnh và phản hồi FTP
Các lệnh mẫu: Ví dụ code trả về
!  Gởi văn bản ASCII !  Mã trạng thái và cụm
trên kênh điều khiển (như HTTP)
!  USER username !  331 Username OK,
!  PASS password password required
!  LIST trả về danh !  125 data connection
already open;
sách file trên thư transfer starting
mục hiện tại !  425 Can t open data
!  RETR filename lấy file connection
!  STOR filename lưu !  452 Error writing file
trữ (đặt) file vào
trong host ở xa

Tầng Application 2-47


Chương 2: Nội dung

2.1 Các nguyên lý của 2.6 các ứng dụng P2P


các ứng dụng mạng 2.7 lập trình socket
2.2 Web và HTTP với UDP và TCP
2.3 FTP
2.4 Thư điện tử
"  SMTP, POP3,
IMAP
2.5 DNS

Tầng Application 2-48


Thư điện tử Hàng đợi
thông điệp đi

Ba thành phần chính: user


Hộp thư user

!  user agents agent

!  mail servers mail user


server
!  simple mail transfer agent
protocol: SMTP SMTP mail user
server agent
User Agent SMTP
!  Còn gọi là mail reader SMTP user
!  Soạn thảo, sửa đổi, đọc các mail
agent

thông điệp email server


user
!  Ví dụ Outlook, Thunderbird, agent
iPhone mail client user
!  Các thông điệp đi và đến agent
được lưu trên server
Tầng Application 2-49
Thư điện tử: mail servers
Mail servers: user
agent
!  Hộp thư (mailbox) chứa
thông điệp đến user mail user
server
!  Hàng thông iệp agent

(message queue) của SMTP mail user


các thông điệp mail ra server agent
ngoài (chuẩn bị gửi) SMTP
!  Giao thức SMTP giữa user
các mail server để gửi SMTP agent
các thông điệp email mail
server
"  client: gởi mail đến user
server. agent

"  server : nhận mail user


agent
từ server.
Tầng Application 2-50
Thư điện tử: SMTP [RFC 2821]
!  Sử dụng TCP để truyền thông điệp email một
cách tin cậy từ client đến server, port 25
!  Truyền trực tiếp: server gửi đến server
nhận
!  3 giai đoạn truyền
"  Thiết lập kết nối.
"  Truyền thông điệp.
"  Đóng kết nối.
!  Tương tác lệnh/phản hồi (như HTTP, FTP)
"  Lệnh: văn bản ASCII
"  Phản hồi: mã và cụm trạng thái
!  Thông điệp phải ở dạng mã ASCI 7 bit
Tầng Application 2-51
Tình huống: Alice gởi thông điệp đến
Bob
1) Alice dùng một máy trạm 4) SMTP client gửi thông
để soạn thảo thông điệp điệp của Alice trên kết
gởi đến” nối TCP
bob@someschool.edu 5) Mail server của Bob đặt
2) Máy trạm của Alice gởi thông điệp đó trong hộp
thông điệp đến mail thư của Bob
server của cô ta; thông 6) Bob kích hoạt user agent
điệp được đặt trong hàng của anh ta để đọc thông
đợi điệp
3) phía client của SMTP mở
kết nối TCP với mail
server của Bob
1 user mail user
mail agent
agent server server
2 3 6
4
5
mail server của Alice mail server của Bob Tầng Application 2-52
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

Tầng Application 2-53


Thử nghiệm tương tác SMNP:
!  telnet servername 25
!  see 220 reply from server
!  enter HELO, MAIL FROM, RCPT TO, DATA, QUIT
commands

Lệnh ở trên cho phép bạn gửi email không cần dùng
email client (reader)

Tầng Application 2-54


SMTP: kết luận
!  SMTP dùng kết nối So sánh với HTTP:
bền vững
!  HTTP: kéo
!  SMTP yêu cầu thông
điệp (header & body) !  SMTP: đẩy
phải ở dạng ASCII 7- !  Cả hai đều có tương tác
bit lệnh/phản hồi, các mã
!  SMTP server dùng trạng thái dạng ASCII
uses CRLF.CRLF để xác
định kết thúc thông !  HTTP: mỗi đối tượng
điệp được đóng gói trong
thông điệp phản hồi của

!  SMTP: nhiều đối tượng
được gửi trong thông
điệp nhiều phần
Tầng Application 2-55
Định dạng thông điệp Mail

SMTP: giao thức dùng


cho trao đổi thông header
điệp email dòng
trống
RFC 822: chuẩn cho định
dạng thông điệp văn
bản:
body
!  Các dòng header, ví dụ
"  To:
"  From:
"  Subject:
Khác với các lệnh
SMTP MAIL FROM,
RCPT TO!
!  Body: thông điệp”
"  Chỉ có các ký tự ASCII Tầng Application 2-56
Các giao thức truy cập Mail
user giao thức user
SMTP SMTP truy cập mail agent
agent
(e.g., POP,
IMAP)

mail server mail server


của người gởi của người nhận

!  SMTP: truyền/lưu trữ vào server của người nhận


!  Giao thức truy cập mail: từ server của người nhận
"  POP: Post Office Protocol [RFC 1939]: ủy quyền,
download
"  IMAP: Internet Mail Access Protocol [RFC 1730]:
nhiều tính năng hơn, bao gồm cả thao tác các thông
điệp đã được lưu trên server
"  HTTP: gmail, Hotmail, Yahoo! Mail…

Tầng Application 2-57


Giao thức POP3
S: +OK POP3 server ready
C: user bob
giai đoạn ủy quyền S: +OK

(authorization)
C: pass hungry
S: +OK user successfully logged on
!  Các lệnh phía client:
C: list
"  user: khai báo username
S: 1 498
"  pass: password S: 2 912
!  Đáp ứng phía server S: .
"  +OK C: retr 1
"  -ERR S: <message 1 contents>

Giai đoạn giao dịch, client:


S: .
C: dele 1
!  list: liệt kê các số thông điệp C: retr 2
!  retr: trích xuất thông điệp theo S: <message 1 contents>
số S: .
!  dele: xóa C: dele 2
!  quit C: quit
S: +OK POP3 server signing off
Tầng Application 2-58
POP3 và IMAP
Tìm hiểu thêm về POP3 IMAP
!  Sử dụng chế độ tải !  Giữ tất cả các thông
xuống và xóa . điệp ở một nơi: tại
"  Bob không thể đọc lại server.
e-mail nếu anh ta !  Cho phép người dùng tổ
thay đổi client chức các thông điệp
!  POP3 tải xuống-và- trong các thư mục.
giữ : sao chép các thông !  Giữ trạng thái của người
điệp trên các client dùng trong suốt phiên
khác nhau. làm việc:
!  POP3 không giữa trạng "  Các tên của các thư
thái của các phiên làm mục và ánh xạ giữa
việc. các ID của thông
điệp và tên của thư
mục
Tầng Application 2-59
Chương 2: Nội dung

2.1 Các nguyên lý của 2.6 các ứng dụng P2P


các ứng dụng mạng 2.7 lập trình socket
2.2 Web và HTTP với UDP và TCP
2.3 FTP
2.4 thư điện tử
"  SMTP, POP3,
IMAP
2.5 DNS

Tầng Application 2-60


DNS: domain name system
Con người: nhiều cách Domain Name System:
nhận dạng: !  Cơ sở dữ liệu phân tán
"  Số an sinh xã hội, được thực hiện theo tổ
tên, số hộ chiếu chức phân cấp của nhiều
Internet hosts, routers: name server
"  Địa chỉ IP (32 bit) – !  Giao thức tầng
được dùng cho định application: các host, các
danh datagrams name server truyền thông
"  t ê n , v í d ụ để phân giải tên (địa chỉ/
www.yahoo.com – dịch tên)
được dùng bởi con "  Lưu ý: chức năng lõi
người Internet, được thực hiện
như là giao thức tầng
Q: làm cách nào để ánh application
xạ giữa địa chỉ IP và
tên, và ngược lại? "  Sự phức tạp ở biên của
mạng Tầng Application 2-61
DNS: các dịch vụ, cấu trúc
Các dịch vụ DNS Tại sao không tập trung
!  Dịch tên host ra địa hóa DNS?
chỉ IP !  Một điểm chịu lỗi
!  Bí danh host !  Lưu lượng
"  Các tên đúng, bí danh !  Cơ sở dữ liệu tập trung
!  Bí danh mail server !  Bảo trì
!  Phân phối tải
"  Các web server:
nhiều địa chỉ IP A: không có khả năng
tương ứng cho 1 tên
đúng chuẩn mở rộng!

Tầng Application 2-62


DNS: cơ sở dữ liệu phân cấp, phân tán

… …

client muốn ịa chỉ IP của www.amazon.com:


!  client truy vấn server gốc (root) để tìm DNS server com
!  client truy vấn DNS server .com tìm DNS server
amazon.com
!  client truy vấn DNS server amazon.com để lấy địa chỉ IP
của www.amazon.com

Tầng Application 2-63


TLD, server có thẩm quyền
Các top-level domain (TLD) server :
"  Chịu trách nhiệm cho tên miền com, org, net, edu,
aero, jobs, museums, và tất cả các tên miền cao
nhất của quốc gia, như là: uk, fr, ca, jp
"  Network Solutions duy trì máy chủ cho .com TLD
"  Lĩnh vực giáo dục cho .edu TLD
Các DNS server có thẩm quyền:
"  DNS server của riêng tổ chức cung cấp các tên
host có thẩm quyền để ánh xạ địa chỉ IP cho các
host được đặt tên của tổ chức đó.
"  Có thể được duy trì bởi tổ chức hoặc nhà cung cấp
dịch vụ.

Tầng Application 2-64


DNS name server cục bộ

!  Không hoàn toàn theo cấu trúc phân cấp


!  Mỗi ISP (ISP cá nhân, công ty, trường đại
học) có một server cục bộ.
"  Còn được gọi là name server mặc định
!  Khi một host tạo một truy vấn DNS, truy
vấn được gởi đến DNS server cục bộ của

"  Truy vấn vào bộ nhớ đệm (nhưng có thể hết hạn
sử dụng).
"  Chuyển truy vấn vào trong tổ chức phân cấp.

Tầng Application 2-65


Ví dụ phân giải tên DNS server gốc
miền DNS
2
!  host tại cis.poly.edu 3
TLD DNS server
muốn địa chỉ IP của 4
gaia.cs.umass.edu
5

Truy vấn lặp: DNS server cục bộ


dns.poly.edu
!  Server được liên 7 6
1 8
lạc sẽ trả lời với tên
của server để liên
lạc. DNS server có thẩm quyền
dns.cs.umass.edu
!  tôi không biết tên Host yêu cầu
này, nhưng yêu cầu cis.poly.edu

máy chủ này


gaia.cs.umass.edu

Tầng Application 2-66


Ví dụ phân giải tên DNS server gốc
DNS
2 3
Truy vấn ệ quy: 7
6
!  Đẩy trách nhiệm TLD DNS
server
phân giải tên cho
name server đã DNS server cục bộ
được tiếp xúc dns.poly.edu 5 4

!  Tải nặng tại các 1 8


tầng trên của hệ
thống phân cấp? DNS server có thẩm quyền
dns.cs.umass.edu
Host yêu cầu
cis.poly.edu

gaia.cs.umass.edu

Tầng Application 2-67


DNS: caching, cập nhật các record
!  Một khi name server học cách ánh xạ, nó sẽ
caches ánh xạ đó
"  Các mục cache sẽ biến mất sau một vài lần TTL.
"  TLD servers thường được cache trong các name
server cục bộ
•  Do đó các name server gốc không thường xuyên được
truy cập
!  Các mục được cache có thể hết hạn sử dụng
(chuyển đổi tên-đến-địa chỉ nổ lực nhất!)
"  Nếu tên host thay đổi địa chỉ IP, có thể không
được biết đến trên Internet cho đến khi tất cả
TTL hết hạn.
!  Cơ chế cập nhật/thông báo được đề xuất bởi
chuẩn IETF
"  RFC 2136
Tầng Application 2-68
Các DNS record
DNS: cơ sở dũ liệu phân tán lưu trữ các record tài nguyên (RR)
Định dạng RR: (name, value, type, ttl)

type=A type=CNAME
"  Name là tên host "  Name là bí danh của một số
"  Value là địa chỉ IP tên chuẩn (tên thực)
www.ibm.com is really
type=NS servereast.backup2.ibm.com
"  Name là tên miền "  Value là tên chuẩn (tên thật)
(e.g., foo.com)
"  Value là tên host của
name server có thẩm type=MX
quyền cho tên miền "  Value là tên của mail server
này được liên kết với name

Tầng Application 2-69


Giao thức và các thông điệp DNS
!  Các thông iệp truy vấn (query) và trả lời
(reply), đều có cùng ịnh dạng thông iệp
2 bytes 2 bytes

msg header identification flags

!  identification: 16 bit # # questions # answer RRs


cho truy vấn, trả lời cho # authority RRs # additional RRs
truy vấn dùng cùng #
!  flags: questions (variable # of questions)
"  Truy vấn hoặc trả lời
"  Đệ quy mong muốn answers (variable # of RRs)

"  Đệ quy sẵn sàng


authority (variable # of RRs)
"  Trả lời có thẩm quyền

additional info (variable # of RRs)

Tầng Application 2-70


Giao thức và các thông điệp DNS

2 bytes 2 bytes

identification flags

# questions # answer RRs

# authority RRs # additional RRs

Các trường name, questions (variable # of questions)


type cho một truy vấn
Các RRs để trả answers (variable # of RRs)
lời truy vấn
Các record cho các authority (variable # of RRs)
server có thẩm quyền
thông tin hữu ích additional info (variable # of RRs)
bổ sung có thể sẽ dùng
Tầng Application 2-71
Chèn các record vào trong DNS
!  Ví dụ: khởi động mới Network Utopia
!  Đăng ký tên miền networkuptopia.com tại một
DNS registrar (như là Network Solutions)
"  Cung cấp tên, địa chỉ IP của server có thẩm quyền
(primary and secondary)
"  Registrar chèn hai RR vào trong server .com TLD :
(networkutopia.com, dns1.networkutopia.com, NS)
(dns1.networkutopia.com, 212.212.212.1, A)
!  Tạo record type A trong server có thẩm quyền
cho www.networkuptopia.com; type MX record
cho networkutopia.com

Tầng Application 2-72


Tấn công DNS
Tấn công DDoS Tấn công chuyển hướng
!  C á c s e r v e r g ố c !  Man-in-middle
Bombard với lưu "  Ngăn chặn các truy vấn
lượng !  Đầu độc DNS
"  Không thành cho đến "  Gửi các trả lời giả tạo
nay đến DNS server
"  Lọc lưu lượng Khai thác DNS cho tấn
"  Các DNS server cục công DDoS
bộ cache các địa chỉ IP !  Gởi các truy vấn với địa
của TLD servers, cho chỉ nguồn giả tạo: địa chỉ
phép bỏ qua server IP mục tiêu
gốc
Yêu cầu khuếch đại
Các server Bombard
! 
! 
TLD
"  Nguy hiểm hơn Application Layer 2-73
Chương 2: Nội dung

2.1 Các nguyên lý của 2.6 các ứng dụng P2P


các ứng dụng mạng 2.7 lập trình socket
2.2 Web và HTTP với UDP và TCP
2.3 FTP
2.4 thư điện tử
"  SMTP, POP3,
IMAP
2.5 DNS

Tầng Application 2-74


Kiến trúc P2P thuần túy
!  Server không hoạt động
liên tục
!  Các hệ thống đầu cuối
bất kỳ giao tiếp trực tiếp
với nhau
!  Các peer được kết nối
liên tục và thay đổi địa
chỉ IP

Ví dụ:
"  P h â n p h ố i f i l e
(BitTorrent)
"  Streaming (KanKan)
"  VoIP (Skype)

Tầng Application 2-75


Phân phối file: so sánh giữa
client-server và P2P
Câu hỏi: mất bao lâu để phân phối file (how much time to
distribute file) (kích thước F) từ một server đến N peer?
"  Khả năng tải lên/tải xuống của peer bị giới hạn

us: khả năng


upload của server

di: khả năng download


file, size F u1 d1 của peer i
us u2 d2
server
di
uN network (với băng thông
phong phú) ui
dN
ui: khả năng upload
peer i

Tầng Application 2-76


Thời gian phân phối file: client-server
!  Truyền máy chủ: phải gửi (tải
lên) tuần tự N bản sao file:
"  Thời gian để gởi một bản sao: F
us
F/us
di
"  Thời gian để gởi N bản sao: network
NF/us ui
!  client: mỗi client phải tải
xuống bản sao của file
"  dmin = tốc độ tối thiêu client
download
"  Thời gian thối thiểu client
download: F/dmin
Thời gian để phân phối
F đến N client
dùng phương pháp
Dc-s > max{NF/us,,F/dmin}
client-server
Tăng tuyến tính trong N
Tầng Application 2-77
Thời gian phân phối file: P2P
!  Truyền server: phải upload ít
nhất một bản sao
"  Thời gian gởi một bản sao: F/us F
us
!  client: mỗi client phải di
download bản sao file network
"  Thời gian tối thiếu client tải ui
xuống: F/dmin
!  clients: trong khi tổng thể cần phải tải về NF
bit
"  Tốc độ upload tối đa (tốc độ tải về giới hạn tối
đa) là us + Sui
Thời gian phân phối
F đến N client D
P2P > max{F/us,,F/dmin,,NF/(us + Σui)}
dùng phương pháp
P2P
Tăng tuyến tính trong N …
… nhưng để thực hiện điều này, mỗi khi mỗi peer mang lại năng lực dịch vụ
Tầng Application 2-78
So sánh Client-server với P2P: ví dụ
Tốc độ client upload = u, F/u = 1 hour, us = 10u, dmin ≥ us

3.5
P2P
Minimum Distribution Time

3
Client-Server
2.5

1.5

0.5

0
0 5 10 15 20 25 30 35

N
Tầng Application 2-79
Phân phối file P2P: BitTorrent
!  File được chia thành các khối 256Kb
!  Các peer trong in torrent gởi/nhận các khối file

tracker: theo dõi các peers torrent: nhóm các peer


tham gia trong torrent trao đổi các khối file

Alice đến…
… có được danh sách
của các peer từ tracker
… và bắt đầu trao đổi các
khối fileexchanging với
các peer trong torrent
Tầng Application 2-80
Phân phối file P2P: BitTorrent
!  Peer tham gia torrent:
"  Không có các khối, nhưng
sẽ tích lũy chúng theo thời
gian từ các peer khác
"  Đăng ký với tracker để lấy
danh sách các peer, kết nối
với tập hợp của các peer
( các láng giềng )
!  Trong khi tải xuống, peer tải lên các khối dữ liệum mà
mình đang có tới các peer khác
!  Peer có thể thay đổi các peer mà nó đang trao đổi các
khối dữ liệu
!  churn: peers có thể đến và đi
!  Một khi peer có toàn bộ file, nó có thể rời khỏi hoặc ở
lại trong torrent
Tầng Application 2-81
BitTorrent: yêu cầu, gởi các khối file

Yêu cầu các khối: Gởi các khối: tit-for-tat


!  Tại bất kỳ thời điểm, !  Alice gởi các khối cho bốn
các peer khác nhau có peer mà hiện tại đang gởi các
các tập con khác nhau khối của cô ở tốc độ cao nhất
của các khối file "  Các peer khác bị thắt lại bởi Alice
!  Định kỳ, Alice yêu cầu (không nhận khối từ cô ta)
mỗi peer cho danh sách "  Đánh giá lại top 4 mỗi 10 giây
các khối mà các peer có !  Mỗi 30 giây: chọn ngẫu nhiên
!  Alice yêu cầu các khối một peer khác, bắt đầu gởi các
đang thiếu từ các peer, khối
hiếm trước "  optimistically unchokes peer này
"  Peer mới được chọn có thể tham
gia và top 4

Tầng Application 2-82


BitTorrent: tit-for-tat
(1) Alice optimistically unchokes Bob
(2) Alice trở thành một trong bốn nhà cung cấp hàng đầu
của Bob s top-four providers; Bob đáp lại
(3) Bob trở thành một trong bốn nhà cung cấp hàng đầu của Alice

Tốc ộ tải lên cao hơn: tìm


đối tác tốc hơn, lấy file
nhanh hơn!
Tầng Application 2-83
Distributed Hash Table (DHT)
!  Bảng Hash

!  Mô hình DHT

!  Circular DHT and overlay networks

!  Peer churn
Cơ sở dữ liệu đơn giản
Cơ sở dữ liệu đơn giản với cặp(key, value):
•  key: tên người: số an sinh xã hội
Key Value
John Washington 132-54-3570
Diana Louise Jones 761-55-3791
Xiaoming Liu 385-41-0902
Rakesh Gopal 441-89-1956
Linda Cohen 217-66-5609
……. ………
Lisa Kobayashi 177-23-0199

•  key: tên phim; value: địa chỉ IP


Bảng Hash
•  thuận tiện hơn để lưu trữ và tìm kiếm
trên đại diện số của key
•  key = hash(original key)
Original Key Key Value
John Washington 8962458 132-54-3570
Diana Louise Jones 7800356 761-55-3791
Xiaoming Liu 1567109 385-41-0902
Rakesh Gopal 2360012 441-89-1956
Linda Cohen 5430938 217-66-5609
……. ………
Lisa Kobayashi 9290124 177-23-0199
Distributed Hash Table (DHT)
!  Phân phối các cặp (key, value) qua hàng triệu các
peer
"  Các cặp được phân bố đều trên các peer
!  Bất kỳ peer nào cũng có thể truy vấn cơ sở dữ
liệu của một key
"  Cơ sở dữ liệu trả về giá trị cho key đó
"  Để giải quyết truy vấn, số lượng nhỏ các thông điệp
được trao đổi giữa các peer
!  Mỗi peer chỉ biết một số nhỏ các peer khác
Chỉ định các cặp key-value cho
các peer
!  Quy tắc: chỉ định cặp key-value đến peer
mà có ID gần nhất (closest).
!  Quy ước: gần nhất(closest) is sự kế thừa
ngay lặp tức (immediate successor ) của
khóa (key) đó.
!  Ví dụ: không gian ID {0,1,2,3,…,63}
!  Giả sử 8 peer: 1,12,13,25,32,40,48,60
"  Nếu key = 51, thì được chỉ định cho peer 60
"  Nếu key = 60, thì được chỉ định cho peer 60
"  Nếu key = 61, thì được chỉ định cho peer 1
DHT vòng tròn
• Mỗi peer chỉ nhận thức ược
người lập tức kế nhiệm và
người tiền nhiệk
1"

12"
60"

13"
48"
25"
40"
32" overlay network
Giải quyết một truy vấn

1" Giá"trị"nào"được""
kết"hợp"với"key"53"?"
value" 12"

60"

13"
48"
O(N) các thông điệp 25"
trung bình để giải quyết
truy vấn, khi có N peer 40"
32"
DHT vòng tròn với đường tắt
1" Giá"trị"nào"cho"
value"
key"53"
12"
60"

13"
48"
25"
40"
32"
•  Mỗi peer theo dõi đại chỉ IP của người tiền nhiệm,
người kế nhiệm, đường tắt.
•  Giảm từ 6 còn 3 thông điệp.
•  Có thể thiết kế các đường tắt với O(log N) láng giềng,
O(log N) thông điệp trong truy vấn
Peer churn Xử lý peer churn:
1"
! Các peer có thể đến và đi
(churn)
3" ! Mỗi peer biết địa chỉ của hai
15"
kế nhiệm của nó
4" !  Mỗi peer định kỳ ping hai
kế nhiệm của nó để kiểm tra
12" sự tồn tại
5"
! Nếu người vừa kế nhiệm bỏ
10" đi, thì chọn kế nhiệm kế tiếp
8"
Ví dụ: peer 5 ột ngột rời khỏinhư là người kế nhiệm tức
thời mới
Peer churn Xử lý peer churn:
! Các peer có thể đến và đi
1"
(churn)
! Mỗi peer biết địa chỉ của hai
3" kế nhiệm của nó
15"
!  Mỗi peer định kỳ ping hai
4" kế nhiệm của nó để kiểm tra
sự tồn tại
12"
! Nếu người vừa kế nhiệm bỏ
đi, thì chọn kế nhiệm kế tiếp
10" như là người kế nhiệm tức
8"
thời mới
Ví dụ: peer 5 ột ngột rời khỏi
! peer 4 phát hiện sự rời khỏi của peer 5; peer 8
trở thành người kế nhiệm ngay lập tức của nó
!  4 yêu cầu 8 là người kế nhiệm tức thời của nó;
người kế nhiệm tức thời của 8 trở thành người kế
nhiệm thứ 2 của 4.
Chương 2: Nội dung

2.1 Các nguyên lý của 2.6 các ứng dụng P2P


các ứng dụng mạng 2.7 lập trình socket
2.2 Web và HTTP với UDP và TCP
2.3 FTP
2.4 electronic mail
"  SMTP, POP3,
IMAP
2.5 DNS

Tầng Application 2-94


Lập trình Socket
Mục tiêu: tìm hiểu cách xây dựng các ứng dụng
client/server cái mà truyền thông dùng
sockets
socket: một cánh cửa giữa tiến trình ứng dụng
và giao thức transport end-end
application
application
socket Được điều khiển bởi
process process Nhà phát triển
ứng dụng
transport transport
network network Được điều khiển bởi
link
hệ điều hành
link Internet
physical physical

Tầng Application 2-95


Lập trình Socket
Hai loại socket cho hai dịch vụ transport:
"  UDP: datagram không tin cậy
"  TCP: tin cậy, byte được định hướng dòng
(stream-oriented)
Ví dụ ứng dụng:
1.  Client đọc một dòng các ký tự (dữ liệu) từ
bàn phím của nó và gởi dữ liêu đó đến
server.
2.  server nhận được dữ liệu đó và chuyển đổi
các ký tự sang chữ hoa.
3.  server gởi dữ liệu đã được sửa đổi cho
client ở trên.
4.  client này nhận được dữ liệu đã bị sửa đổi
và hiển thị dòng đó lên màn hình của nó.Tầng Application 2-96
Lập trình Socket với with UDP
UDP: không kết nối giữa client và
server
!  Không bắt tay trước khi gởi dữ liệu
!  Bên gửi chỉ rõ địa chỉ IP đích và số port cho
mỗi packet
!  Bên nhận lấy địa chỉ IP và số port của người gởi
từ packet được nhận
UDP: dữ liệu được truyền có thể bị mất
hoặc được nhận không thứ tự
Quan điểm ứng dụng:
! UDP cung cấp truyền không tin cậy của các
nhóm byte ( dâtgrams ) giữa client và server
Tầng Application 2-97
Sự tương tác socket Client/server:
UDP
server (chạy trên địa chỉ IP server) client
Tạo socket:
Tạo socket, port= x: clientSocket =
serverSocket = socket(AF_INET,SOCK_DGRAM)
socket(AF_INET,SOCK_DGRAM)
Tạo datagram với địa chỉ IP server
Và port=x; gởi datagram thông qua
Đọc datagram từ clientSocket
serverSocket

Viết trả lời đến


serverSocket Đọc datagram từ
chỉ định địa chỉ clientSocket
client,
port number đóng
clientSocket

Application 2-98
Ví dụ ứng dụng: UDP client
Python UDPClient
Bao gồm thư viện socket
của Python’ from socket import *
serverName = ‘hostname’
serverPort = 12000
Tạo socket UDP cho
server
clientSocket = socket(socket.AF_INET,

Nhận thông điệp từ bàn phím


socket.SOCK_DGRAM)
người dùng message = raw_input(’Input lowercase sentence:’)
Đính kèm tên server, port
đến thông điệp; gởi vào clientSocket.sendto(message,(serverName, serverPort))
tron socket
Đọc các ký tự trả lời từ modifiedMessage, serverAddress =
socket vào chuỗi
clientSocket.recvfrom(2048)
In ra chuỗi được nhận và print modifiedMessage
đóng socket
clientSocket.close()

Tầng Application 2-99


Ví dụ ứng dung: UDP server
Python UDPServer
from socket import *
serverPort = 12000
Tạo UDP socket serverSocket = socket(AF_INET, SOCK_DGRAM)
Đính kèm socket đến số
port cục bộ12000
serverSocket.bind(('', serverPort))
print The server is ready to receive”
Lặp mãi mãi while 1:
Đọc từ UDP socket vào message, clientAddress = serverSocket.recvfrom(2048)
trong thông điệp, lấy địa
chỉ IP của client(địa chỉ IP modifiedMessage = message.upper()
client và port)
Gởi chuỗi chữ hoa trở lại serverSocket.sendto(modifiedMessage, clientAddress)
cho client này

Tầng Application 2-100


Lập trình Socket với TCP
client phải tiếp xúc với server !  Khi đã tiếp xúc với client,
!  Tiến trình server phải được server TCP tạo socket mới
chạy trước cho tiến trình serverđể
!  server phải tạo socket (cửa) truyền thông với client đó
để mời client đến liên lạc "  Cho phép server nói
chuyện với nhiều client
client tiếp xúc server bằng: "  Số source port được
!  Tạo socket TCP, xác định địa dùng để phân biệt các
chỉ IP, số port của tiến trình client (xem tiếp chương
server 3)
!  Khi client tạo socket: client
TCP thiết lập kết nối đến Nhìn dưới góc độ ứng dụng:
server TCP TCP cung cấp việc truyền các byte
tin cậy và theo thứ tự giữa client
và server

Tầng Application 2-101


Tương tác socket Client/server: TCP
server (chạy trên hostid) client
create socket,
port=x, for incoming
request:
serverSocket = socket()

wait for incoming create socket,


connection request TCP connect to hostid, port=x
connectionSocket = connection setup clientSocket = socket()
serverSocket.accept()

send request using


read request from clientSocket
connectionSocket

write reply to
connectionSocket read reply from
clientSocket
close
connectionSocket close
clientSocket

Tầng Application 2-102


Ví dụ ứng dụng: TCP client
Python TCPClient
from socket import *
serverName = ’servername’
Tạo TCP socket cho serverPort = 12000
server, port 12000 ở xa
clientSocket = socket(AF_INET, SOCK_STREAM)
clientSocket.connect((serverName,serverPort))
sentence = raw_input(‘Input lowercase sentence:’)
Không cần đính kèm tên
server, port
clientSocket.send(sentence)
modifiedSentence = clientSocket.recv(1024)
print ‘From Server:’, modifiedSentence
clientSocket.close()

Tầng Application 2-103


Ví dụ ứng dụng: TCP server
Python TCPServer
from socket import *
Tạo socket TCP chào đón serverPort = 12000
serverSocket = socket(AF_INET,SOCK_STREAM)
serverSocket.bind((‘’,serverPort))
server bắt đầu lắng nghe
các yêu cầu TCP đến serverSocket.listen(1)
print ‘The server is ready to receive’
Lặp mãi mãi
while 1:
server đợi accept() cho yêu
cầu đến, socket mới được tạo connectionSocket, addr = serverSocket.accept()
trở về

Đọc các byte từ socket sentence = connectionSocket.recv(1024)


nhưng không đọc địa chỉ
như UDP)
capitalizedSentence = sentence.upper()
Đóng kết nối đến client connectionSocket.send(capitalizedSentence)
này(nhưng không đóng
socket chào đón) connectionSocket.close()
Tầng Application 2-104
Chương 2: tóm tắt

!  Các kiến trúc ứng dụng !  Các giao thức:


"  client-server "  HTTP
"  P2P "  FTP
!  Các yêu cầu dịch vụ ứng
"  SMTP, POP, IMAP
dụng:
"  Độ tin cậy, băng thông, "  DNS
độ trễ "  P2P: BitTorrent,
!  Mô hình dịch vụ vận DHT
chuyển Internet !  Lập trình socket : TCP,
"  Kết nối định hướng, tin UDP sockets
cậy: TCP
"  Không tin c, datagrams:
UDP
Tầng Application 2-105
Chương 2: tóm tắt
Quan trọng: tìm hiểu về các giao thức!
!  trao đổi thông điệp Các chủ ề quan trọng:
yêu cầu /trả lời điển
hình: !  Điều khiển với các thông
"  client yêu cầu thông điệp dữ liệu
tin hoặc dịch vụ "  in-band, out-of-band
"  server đáp ứng với !  Tập trung và không tập
dữ liệu, mã trạng trung
thái
!  Không trạng thái và có
!  Các định dạng thông
điệp: trạng thái
"  headers: các !  Truyền tin cậy và không tin
trường cho biết cậy
thông tin về dữ liệu !  sự phức tạp tại mạng biên
"  data: thông tin để Tầng Application 2-106
Hong Bang International University
Department of Information Technology

END OF LECTURE
mobile network

national or global ISP

local or regional ISP


Internet
home network content
provider
network
datacenter
network

enterprise
network
Socket Programming

2: Application Layer 1
Socket-programming using TCP
Socket: a door between application process and end-
end-transport protocol (UCP or TCP)
TCP service: reliable transfer of bytes from one
process to another

controlled by
controlled by process application
application process
developer
developer socket socket
controlled by TCP with TCP with controlled by
buffers, operating
operating buffers, internet variables system
system variables

host or host or
server server

2: Application Layer 2
Socket programming with TCP
Client must contact server r When contacted by client,
r server process must first server TCP creates new
be running socket for server process to
r server must have created communicate with client
socket (door) that m allows server to talk with
welcomes client’s contact multiple clients
m source port numbers
Client contacts server by:
used to distinguish
r creating client-local TCP
clients (more in Chap 3)
socket
r specifying IP address, port application viewpoint
number of server process
TCP provides reliable, in-order
r When client creates
transfer of bytes (“pipe”)
socket: client TCP
between client and server
establishes connection to
server TCP
2: Application Layer 3
Stream jargon
keyboard monitor
r A stream is a sequence
of characters that flow

inFromUser
into or out of a process. input
stream

r An input stream is Client


Process
attached to some input process
source for the process,
eg, keyboard or socket.
r An output stream is

inFromServer
outToServer
output input

attached to an output
stream stream

source, eg, monitor or client TCP


socket.
clientSocket
socket TCP
socket

to network from network

2: Application Layer 4
Socket programming with TCP
keyboard monitor
Example client-server app:
1) client reads line from

inFromUser
standard input (inFromUser input
stream
stream) , sends to server via Client
socket (outToServer Process
process
stream)
2) server reads line from socket
3) server converts line to
uppercase, sends back to

inFromServer
outToServer
output input
client stream stream

4) client reads, prints modified


line from socket client TCP
clientSocket

(inFromServer stream) socket TCP


socket

to network from network

2: Application Layer 5
Client/server socket interaction: TCP
Server (running on hostid) Client
create socket,
port=x, for
incoming request:
welcomeSocket =
ServerSocket()

TCP create socket,


wait for incoming
connection request connection setup connect to hostid, port=x
connectionSocket = clientSocket =
welcomeSocket.accept() Socket()

send request using


read request from clientSocket
connectionSocket

write reply to
connectionSocket read reply from
clientSocket
close
connectionSocket close
clientSocket
2: Application Layer 6
Example: Java client (TCP)
import java.io.*;
import java.net.*;
class TCPClient {

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


{
String sentence;
String modifiedSentence;
Create
input stream BufferedReader inFromUser =
new BufferedReader(new InputStreamReader(System.in));
Create
client socket, Socket clientSocket = new Socket("hostname", 6789);
connect to server
Create DataOutputStream outToServer =
output stream new DataOutputStream(clientSocket.getOutputStream());
attached to socket
2: Application Layer 7
Example: Java client (TCP), cont.

Create BufferedReader inFromServer =


input stream new BufferedReader(new
attached to socket InputStreamReader(clientSocket.getInputStream()));

sentence = inFromUser.readLine();
Send line
to server outToServer.writeBytes(sentence + '\n');

Read line modifiedSentence = inFromServer.readLine();


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

clientSocket.close();

}
}
2: Application Layer 8
Example: Java server (TCP)
import java.io.*;
import java.net.*;

class TCPServer {

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


{
String clientSentence;
Create String capitalizedSentence;
welcoming socket
ServerSocket welcomeSocket = new ServerSocket(6789);
at port 6789
while(true) {
Wait, on welcoming
socket for contact Socket connectionSocket = welcomeSocket.accept();
by client
BufferedReader inFromClient =
Create input new BufferedReader(new
stream, attached InputStreamReader(connectionSocket.getInputStream()));
to socket

2: Application Layer 9
Example: Java server (TCP), cont

Create output
stream, attached DataOutputStream outToClient =
to socket new DataOutputStream(connectionSocket.getOutputStream());
Read in line
from socket clientSentence = inFromClient.readLine();

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


Write out line
outToClient.writeBytes(capitalizedSentence);
to socket
}
}
} End of while loop,
loop back and wait for
another client connection

2: Application Layer 10
Socket programming with UDP

UDP: no “connection” between


client and server
r no handshaking
r sender explicitly attaches application viewpoint
IP address and port of
destination to each packet UDP provides unreliable transfer
of groups of bytes (“datagrams”)
r server must extract IP
between client and server
address, port of sender
from received packet
UDP: transmitted data may be
received out of order, or
lost

2: Application Layer 11
Client/server socket interaction: UDP
Server (running on hostid) Client

create socket, create socket,


port=x, for clientSocket =
incoming request: DatagramSocket()
serverSocket =
DatagramSocket()
Create, address (hostid, port=x,
send datagram request
using clientSocket
read request from
serverSocket

write reply to
serverSocket
specifying client read reply from
clientSocket
host address,
port number close
clientSocket

2: Application Layer 12
Example: Java client (UDP)
keyboard monitor

inFromUser
input
stream

Client
Process
Input: receives
process
packet (TCP
Output: sends
received “byte
packet (TCP sent stream”)

receivePacket
sendPacket
“byte stream”) UDP UDP
packet packet

client UDP
clientSocket
socket UDP
socket

to network from network

2: Application Layer 13
Example: Java client (UDP)
import java.io.*;
import java.net.*;

class UDPClient {
public static void main(String args[]) throws Exception
{
Create
input stream BufferedReader inFromUser =
new BufferedReader(new InputStreamReader(System.in));
Create
client socket DatagramSocket clientSocket = new DatagramSocket();
Translate
InetAddress IPAddress = InetAddress.getByName("hostname");
hostname to IP
address using DNS byte[] sendData = new byte[1024];
byte[] receiveData = new byte[1024];

String sentence = inFromUser.readLine();


sendData = sentence.getBytes();
2: Application Layer 14
Example: Java client (UDP), cont.
Create datagram
with data-to-send, DatagramPacket sendPacket =
length, IP addr, port new DatagramPacket(sendData, sendData.length, IPAddress, 9876);

Send datagram clientSocket.send(sendPacket);


to server
DatagramPacket receivePacket =
new DatagramPacket(receiveData, receiveData.length);
Read datagram
clientSocket.receive(receivePacket);
from server
String modifiedSentence =
new String(receivePacket.getData());

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


clientSocket.close();
}
}

2: Application Layer 15
Example: Java server (UDP)
import java.io.*;
import java.net.*;

class UDPServer {
public static void main(String args[]) throws Exception
Create {
datagram socket
DatagramSocket serverSocket = new DatagramSocket(9876);
at port 9876
byte[] receiveData = new byte[1024];
byte[] sendData = new byte[1024];

while(true)
{
Create space for
DatagramPacket receivePacket =
received datagram
new DatagramPacket(receiveData, receiveData.length);
Receive serverSocket.receive(receivePacket);
datagram
2: Application Layer 16
Example: Java server (UDP), cont
String sentence = new String(receivePacket.getData());
Get IP addr
InetAddress IPAddress = receivePacket.getAddress();
port #, of
sender int port = receivePacket.getPort();

String capitalizedSentence = sentence.toUpperCase();

sendData = capitalizedSentence.getBytes();
Create datagram
DatagramPacket sendPacket =
to send to client new DatagramPacket(sendData, sendData.length, IPAddress,
port);
Write out
datagram serverSocket.send(sendPacket);
to socket }
}
} End of while loop,
loop back and wait for
another datagram
2: Application Layer 17
Building a simple Web server
r handles one HTTP r after creating server,
request you can request file
r accepts the request using a browser (eg IE
explorer)
r parses header
r see text for details
r obtains requested file
from server’s file
system
r creates HTTP response
message:
m header lines + file
r sends response to client

2: Application Layer 18
Hong Bang International University
Department of Information Technology

COMPUTER
NETWORKING
mobile network

national or global ISP

local or
Transport Layer
Internet
regional ISP

home network content


provider
Instructor: MSc. Hoang Ngoc Long
network datacenter
network

enterprise
network
Chương 3: Tầng Transport
Mục tiêu:
!  Hiểu về các nguyên lý !  Tìm hiểu về các giao
đằng sau các dịch vụ thức tầng transport
tầng transport: trên Internet:
"  multiplexing/ "  UDP: vận chuyển phi
demultiplexing kết nối
"  Truyền dữ liệu tin cậy "  TCP: vận chuyển tin cậy
"  Điều khiển luồng (flow hướng kết nối
control) (connection-oriented
"  Điều khiển tắt nghẽn reliable transport)
(congestion control) "  Điều khiển tắt nghẽn
TCP

Tầng Transport 3-2


Chương 3: Nội dung
3.1 các dịch vụ tầng 3.5 vận chuyển hướng
Transport kết nối: TCP
3.2 multiplexing và "  Cấu trúc segment
demultiplexing "  Truyền dữ liệu tin cậy
3.3 vận chuyển phi "  Điều khiển luồng (flow
control)
kết nối: UDP
"  Quản lý kết nối
3.4 các nguyên lý
truyền dữ liệu tin 3.6 các nguyên lý về
cậy điều khiển tắc nghẽn
3.7 điều khiển tắc nghẽn
TCP

Tầng Transport 3-3


Các giao thức và dịch vụ
tầng Transport
!  Quản lý truyền thông logic giữa application

các tiến trình ứng dụng đang chạy


transport
network

trên có host khác nhau


data link
physical

!  Các giao thức protocols chạy trên


các hệ thống đầu cuối
"  Phía gửi: chia nhỏ các thông
điệp (message) ứng dụng thành
các segments, sau đó chuyển
các segments này cho tầng
network
"  Phía nhận: tái kết hợp các application
segments thành các thông điệp transport
network
(message), các thông điệp này data link

được chuyển lên tầng


physical

Application
!  Có nhiều hơn 1 giao thức tầng
transport dành cho các ứng dụng
"  Internet: TCP và UDP
Tầng Transport 3-4
Tầng Transport với tầng network
!  Tầng network: Tình huống tương tự:
truyền thông 12 ứa trẻ ở nhà Ann gửi
logic giữa các những bức thư ến 12
host ứa trẻ ở nhà Bill:
!  hosts = nhà
!  Tầng transport : !  Các tiến trình
truyền thông (processes) = những
logic giữa các đứa trẻ
tiến trình !  Thông điệp tầng ứng
dụng = các bức thư
" Dựa vào và tăng trong các phong bì
cường các dịch !  Giao thức tầng
vụ tầng network transport = Ann and Bill
!  Giao thức tầng
network= dịch vụ bưu
điện
Tầng Transport 3-5
Các giao thức tầng transport trên
Internet
Tin cậy, truyền theo
application
transport
!  network

thứ tự (TCP) data link


physical
network

"  Điền khiển tắt nghẽn network


data link
data link
physical

"  Điều khiển luồng


physical
network
data link

"  Thiết lập kết nối


physical

network

!  Không tin cậy, truyền data link


physical

không theo thứ tự: network


data link

UDP
physical
network
data link application

"  Không rườm rà, mở rộng


physical transport
network
data link network

nổ lực tốt nhất (best- physical data link


physical

effort) của IP
!  Không có các dịch vụ:
"  Bảo đảm độ trễ
"  Bảo đảm băng thông Tầng Transport 3-6
Chương 3 Nội dung
3.1 các dịch vụ tầng 3.5 vận chuyển hướng
Transport kết nối: TCP
3.2 multiplexing và "  Cấu trúc segment
demultiplexing "  Truyền dữ liệu tin cậy
3.3 vận chuyển phi "  Điều khiển luồng (flow
control)
kết nối: UDP
"  Quản lý kết nối
3.4 các nguyên lý
truyền dữ liệu tin 3.6 các nguyên lý về
cậy điều khiển tắc nghẽn
3.7 điều khiển tắc nghẽn
TCP

Tầng Transport 3-7


Multiplexing/demultiplexing
multiplexingtại bên gửi:
xử lý dữ liệu từ nhiều demultiplexing tại bên nhận:
socket, thêm thông tin
header về tầng transport sử dụng thông tin trong
vào segment (được sử header để chuyển segment
dụng sau cho vừa nhận vào đúng socket
demultiplexing)
application

application P1 P2 application socket


P3 transport P4
tiến trình
transport network transport
network link network
link physical link
physical physical

Tầng Transport 3-8


demultiplexing làm việc như thế nào
!  host nhận các khung dữ 32 bits
liệu (datagram) IP Số port nguồn Số port ích
"  Mỗi khung dữ liệu có địa
chỉ IP nguồn và đích other header fields
"  Mỗi khung dữ liệu mang
một segment tầng
transport application
"  Mỗi segment có số port data
nguồn và đích (payload)
!  host dùng các địa chỉ IP
và số port để gởi
segment đến socket Định dạng segment TCP/UDP
thích hợp
Tầng Transport 3-9
Demultiplexing không kết nối
!  Ônlại: socket đã tạo có số!  Ôn lại: khi tạo khung
port của host cục bộ dữ liệu (datagram) để
(host-local port #) : gởi vào đến socket UDP
DatagramSocket mySocket1 socket, phải xác định
= new DatagramSocket(12534);
"  Địa chỉ IP đích
"  Số port đích

!  Khi host nhận Các khung dữ liệu IP


segment UDP : với số cùng số port
đích, nhưng khác địa
"  Kiểm tra số port đích chỉ IP nguồn và/hoặc
trong segment khác số port nguồn sẽ
"  Đưa segment UDP đến được chuyển đến cùng
socket có số port đó socket tại máy đích
Tầng Transport 3-10
Demultiplexing không kết nối:
ví dụ
DatagramSocket
DatagramSocket serverSocket = new
DatagramSocket DatagramSocket
mySocket2 = new mySocket1 = new
DatagramSocket (6428); DatagramSocket
(9157); application (5775);
application P1 application
P3 P4
transport
transport transport
network
network link network
link physical link
physical physical

Port nguồn: 6428 Port nguồn: ?


Port đích: 9157 Port đích: ?

Port nguồn: 9157 Port nguồn: ?


Port đích: 6428 Port đích: ?
Tầng Transport 3-11
Demux hướng kết nối
!  Socket TCP được !  host server có thể
xác định bởi 4 yếu hổ trợ nhiều socket
tố: TCP đồng thời:
"  Địa chỉ ip nguồn "  Mỗi socket được xác
"  Số port nguồn định bởi bộ 4 của nó
"  Địa chỉ IP đích !  Các web server có
"  Số port đích các socket khác nhau
!  demux: nơi nhận cho mỗi kết nối từ
dùng tất cả 4 giá trị client
trên để điều hướng "  Kết nối HTTP không
bền vững sẽ có socket
segment đến socket khác nhau cho mỗi yêu
thích hợp cầu
Tầng Transport 3-12
Demultiplexing hướng kết nối: ví dụ

application
application P4 P5 P6 application
P3 P2 P3
transport
transport transport
network
network link network
link physical link
physical server: physical
địa chỉ IP
B

host: địa Địa chỉ IP nguồn,port: B,80 host: địa


chỉ IP A Địa chỉ IP ích,port: A,9157 IP nguồn,port: C,5775 chỉ IP C
IP ích,port: B,80
IP nguồn,port: A,9157
IP ích, port: B,80
IP nguồn,port: C,9157
IP ích,port: B,80
Ba segment, tất cả được đưa đến địa chỉ IP: B,
Port ích: 80 được demultiplex đến các socket khác nhau Tầng Transport 3-13
Demultiplexing hướng kết nối: ví dụ
threaded server
application
application application
P4
P3 P2 P3
transport
transport transport
network
network link network
link physical link
physical server: physical
địa chỉ IP
B

host: địa IP nguồn,port: B,80 host: địa


chỉ IP A IP ích,port: A,9157 IP nguồn,port: C,5775 chỉ IP C
IP ích,port: B,80
IP nguồn,port: A,9157
IP ích, port: B,80
IP nguồn,port: C,9157
IP ích,port: B,80

Tầng Transport 3-14


Chương 3 Nội dung
3.1 các dịch vụ tầng 3.5 vận chuyển hướng
Transport kết nối: TCP
3.2 multiplexing và "  Cấu trúc segment
demultiplexing "  Truyền dữ liệu tin cậy
3.3 vận chuyển phi "  Điều khiển luồng (flow
control)
kết nối: UDP
"  Quản lý kết nối
3.4 các nguyên lý
truyền dữ liệu tin 3.6 các nguyên lý về
cậy điều khiển tắc nghẽn
3.7 điều khiển tắc nghẽn
TCP

Tầng Transport 3-15


UDP: User Datagram Protocol [RFC 768]
!  Connectionless (phi kết nối): !  Ứng dụng UDP:
"  Không bắt tay giữa bên "  C á c ứ n g d ụ n g đ a
nhận và bên gửi phương tiện trực
"  Mỗi segment UDP được tuyến (chịu mất
xử lý độc lập mát(loss tolerant),
"  Không có cơ chế khôi phục (cần tốc độ) (rate
sensitive) )
các segment bị mất
"  Các segment có thể đến "  DNS
bên nhận không đúng thứ "  SNMP
tự do các segment không !  Truyền tin cậy trên
được đánh số thứ tự UDP:
trước khi gởi
"  Thêm độ tin cậy tại
"  Không có khả năng điều tầng application
khiền luồng dữ liệu gởi
(flow control) "  Phục hồi lỗi tại các
ứng dụng cụ thể!
Tầng Transport 3-16
UDP: segment header
Độ dài được tính
32 bits bằng byte của
Số port nguồn Số port ích segment UDP, bao
gồm cả header
length checksum
Tại sao có UDP?
!  Không thiết lập kết nối (cái
Dữ liệu mà có thể gây ra độ trễ)
ứng dụng !  Đơn giản: không trạng thái
(payload) kết nối tại nơi gửi và nhận
!  Kích thước header nhỏ
!  Không điều khiển tắt nghẽn:
UDP có thể gửi dữ liệu
Định dạng segment UDP nhanh như mong muốn

Tầng Transport 3-17


UDP checksum
Mục tiêu: dò tìm các lỗi (các bit cờ được
bật) trong các segment đã được truyền
bên gửi: bên nhận:
!  Xét nội dung của !  Tính toán checksum của
segment, bao gồm các segment đã nhận
trường của header, là Kiểm tra giá trị trên có bằng
chuỗi các số nguyên ! 

16-bit với giá trị trong trường


checksum hay không:
!  checksum: bổ sung
(tổng bù 1) của các "  NO – có lỗi xãy ra
nội dung segment "  YES – không có lỗi. Nhưng
!  Bên gửi đặt giá trị có thể còn lỗi khác nữa
checksum vào trường không? Xem phần sau….
checksum UDP
Tầng Transport 3-18
Internet checksum: ví dụ
Ví dụ: cộng 2 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

bit dư 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

tổng 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

Lưu ý: khi cộng các số, bit nhớ ở phía cao nhất cần
được thêm vào kết quả

Tầng Transport 3-19


Chương 3 Nội dung
3.1 các dịch vụ tầng 3.5 vận chuyển hướng
Transport kết nối: TCP
3.2 multiplexing và "  Cấu trúc segment
demultiplexing "  Truyền dữ liệu tin cậy
3.3 vận chuyển phi "  Điều khiển luồng (flow
control)
kết nối: UDP
"  Quản lý kết nối
3.4 các nguyên lý
truyền dữ liệu tin 3.6 các nguyên lý về
cậy điều khiển tắc nghẽn
3.7 điều khiển tắc nghẽn
TCP

Tầng Transport 3-20


Các nguyên lý truyền dữ liệu tin cậy
!  Quan trọng trong các tầng application,
transport và link
"  Top 10 danh sách các chủ đề mạng quan trọng

!  Các đặc điểm của kênh truyền không tin cậy sẽ xác
định sự phức tạp của giao thức truyền dữ liệu
(data transfer protocol) (rdt) Tầng Transport 3-21
Các nguyên lý truyền dữ liệu tin
cậy
!  quan trọng trong các tầng application,
transport và link
"  Top 10 danh sách các chủ đề mạng quan trọng

!  Các đặc điểm của kênh truyền không tin cậy sẽ xác
định sự phức tạp của giao thức truyền dữ liệu
(data transfer protocol) (rdt) Tầng Transport 3-22
Các nguyên lý truyền dữ liệu tin
cậy
!  quan trọng trong các tầng application,
transport và link
"  Top 10 danh sách các chủ đề mạng quan trọng

!  Các đặc điểm của kênh truyền không tin cậy sẽ xác
định sự phức tạp của giao thức truyền dữ liệu data
transfer protocol (rdt) Transport Layer 3-23
Truyền dữ liệu tin cậy: bắt đầu
rdt_send(): được gọi bởi tầng trên, deliver_data(): được gọi bởi rdt
(tầng applicaiton). Chuyển dữ liệu để chuyển dữ liệu đến tầng cao
cần truyền đến lớp cao hơn ở bên hơn
nhận

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

udt_send(): được gọi bởi rdt, rdt_rcv(): được gọi khi gói dữ liệu
để truyền các gói trên kênh đến kênh của bên nhận
không tin cậy đến nơi nhận

Tầng Transport 3-24


Truyền dữ liệu tin cậy: bắt đầu
Chúng ta sẽ:
!  Từng bước phát triển truyền dữ liệu tin cậy
(rdt) bên phía người gửi và nhận
!  Chỉ xem xét chuyển dữ liệu theo 1 hướng
"  Nhưng điều khiển thông tin sẽ theo cả 2 hướng!
!  Sử dụng finite state machines (FSM) để xác
định bên gửi và nhậnSự kiện gây ra trạng thái truyền
Các hành động được thực hiện trên
chuyển trạng thái
Trạng thái: khi ở trạng
thái này thì trạng trạng
trạng
thái kế tiếp được xác thái Sự kiện thái 2
định duy nhất bởi sự 1
Các hành động
kiện kế tiếp

Tầng Transport 3-25


rdt1.0: truyền tin cậy trên 1 kênh tin cậy
!  Kênh cơ bản tin cậy hoàn toàn (underlying channel
perfectly reliable)
"  không có bit lỗi
"  không mất mát gói
!  Các FSMs riêng biệt cho bên gửi và nhận:
"  Bên gửi gửi dữ liệu vào kênh cơ bản (underlying channel)
"  Bên nhận đọc dữ liệu từ kênh cơ bản (underlying
channel)
chờ gọi rdt_send(data) chờ gọi rdt_rcv(packet)
từ tầng từ tầng extract (packet,data)
trên packet = make_pkt(data) dưới deliver_data(data)
udt_send(packet)

bên gửi bên nhận

Tầng Transport 3-26


rdt2.0: kênh với các lỗi
!  Kênh cơ bản có thể đảo các bit trong packet
"  checksum để kiểm tra các lỗi
!  Câu hỏi: làm sao khôi phục các lỗi:
"  acknowledgements (ACKs): receiver explicitly
tells sender that pkt received OK
"  negative acknowledgements (NAKs): receiver
explicitly tells sender that pkt had errors
"  sender
Làm retransmits
thế nào pktđể on receipt
con ngườiof NAK
phục hồi
!  new mechanisms in rdt2.0 (beyond rdt1.0):
lỗi trong cuộc trò chuyện?
"  error detection
"  receiver feedback: control msgs (ACK,NAK)
rcvr->sender

Tầng Transport 3-27


rdt2.0: kênh với các lỗi
!  Kênh cơ bản có thể đảo các bit trong packet
"  checksum để kiểm tra các lỗi
!  Câu hỏi: làm sao khôi phục các lỗi:
"  acknowledgements (ACKs): bên nhận thông báo rõ
ràng cho bên gửi rằng packet được nhận thành
công (OK)
"  negative acknowledgements (NAKs): bên nhận
thông báo rõ ràng cho bên gửi rằng packet đã bị
lỗi
•  Bên gửi truyền lại gói nào được xác nhận là NAK
!  Các cơ chế mới trong rdt2.0 (sau rdt1.0):
"  Phát hiện lỗi
"  Phản hồi: các thông điệp điều khiển (ACK,NAK)
từ bên nhận đến bên gửi
Tầng Transport 3-28
rdt2.0: đặc điểm kỹ thuật FSM
rdt_send(data)
sndpkt = make_pkt(data, checksum) Bên nhận
udt_send(sndpkt)
rdt_rcv(rcvpkt) &&
isNAK(rcvpkt)
Chờ gọi Chờ ACK rdt_rcv(rcvpkt) &&
từ tầng hoặc udt_send(sndpkt) corrupt(rcvpkt)
trên NAK
udt_send(NAK)

rdt_rcv(rcvpkt) && isACK(rcvpkt)


Chờ gọi
Λ
từ tầng
Bên gửi dưới

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

Tầng Transport 3-29


rdt2.0: hoạt động khi không lỗi
rdt_send(data)
sndpkt = make_pkt(data, checksum)
udt_send(sndpkt)
rdt_rcv(rcvpkt) &&
isNAK(rcvpkt)
Chờ gọi Chờ ACK rdt_rcv(rcvpkt) &&
từ tầng hoặc udt_send(sndpkt) corrupt(rcvpkt)
trên NAK
udt_send(NAK)

rdt_rcv(rcvpkt) && isACK(rcvpkt)


Chờ gọi
Λ từ tầng
dưới

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

Tầng Transport 3-30


rdt2.0: hoạt động khi có lỗi
rdt_send(data)
snkpkt = make_pkt(data, checksum)
udt_send(sndpkt)
rdt_rcv(rcvpkt) &&
isNAK(rcvpkt)
Chờ gọi Chờ ACK rdt_rcv(rcvpkt) &&
từ tầng hoặc udt_send(sndpkt) corrupt(rcvpkt)
trên NAK
udt_send(NAK)

rdt_rcv(rcvpkt) && isACK(rcvpkt)


Chờ gọi
Λ từ tầng
dưới

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

Tầng Transport 3-31


rdt2.0 có lỗ hỏng nghiêm trọng!
Điều gì xảy ra nếu Xử lý trùng lặp:
ACK/NAK bị hỏng? !  Bên gửi truyền lại packet
!  Bên gửi sẽ không biết hiện thời nếu ACK/NAK bị
điều gì đã xảy ra ở bên hỏng
nhận!
!  Bên gửi thêm số thứ tự
!  Không thể đơn phương vào trong mỗi packet
truyền lại: có thể (sequence number)
trùng lặp
!  Bên nhận hủy packet bị
trùng lặp
dừng và chờ
Bên gửi gửi một
packet, sau đó chờ
phản hồi từ bên nhận
Tầng Transport 3-32
rdt2.1: bên gửi, xử lý các ACK/NAK
bị hỏng
rdt_send(data)
sndpkt = make_pkt(0, data, checksum)
udt_send(sndpkt) rdt_rcv(rcvpkt) &&
( corrupt(rcvpkt) ||
Wait for Wait for
ACK or
isNAK(rcvpkt) )
call 0 from
NAK 0 udt_send(sndpkt)
above
rdt_rcv(rcvpkt)
&& notcorrupt(rcvpkt) rdt_rcv(rcvpkt)
&& isACK(rcvpkt) && notcorrupt(rcvpkt)
&& isACK(rcvpkt)
Λ
Λ
Wait for Wait for
ACK or call 1 from
rdt_rcv(rcvpkt) && NAK 1 above
( corrupt(rcvpkt) ||
isNAK(rcvpkt) ) rdt_send(data)

udt_send(sndpkt) sndpkt = make_pkt(1, data, checksum)


udt_send(sndpkt)

Tầng Transport 3-33


rdt2.1: bên nhận, xử lý các ACK/NAK
bị hỏng
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)

Tầng Transport 3-34


rdt2.1: thảo luận
Bên gửi: Bên nhận:
!  Số thứ tự (seq #) !  Phải kiểm tra có
được thêm vào hay không gói vừa
packet nhận trị trùng
!  2 số thứ tự (0,1) là "  Trạng thái chỉ rõ có
đủ. Tại sao? hay không 0 hoặc 1
là số thứ tự của gói
!  Phải kiểm tra có hay
được mong chờ
không ACK/NAK vừa
nhận bị hỏng !  Chú ý: bên nhận có
thể không biết
!  Số trạng thái tăng ACK/NAK vừa rồi
lên 2 lần có được bên gửi
"  Trạng thái phải nhớ nhận tốt hay không
xem packet mong
đợi có số thứ tự là 0
hay 1 Tầng Transport 3-35
rdt2.2: một giao thức không cần NAK
!  Chức năng giống như rdt2.1, chỉ dùng các ACK
!  Thay cho NAK, bên nhận gởi ACK cho gói cuối
cùng được nhận thành công
"  Bên nhận phải rõ ràng chèn số thứ tự của gói vừa
được ACK
!  ACK bị trùng tại bên gửi dẫn tới kết quả
giống như hành động của NAK: truyền lại gói
vừa rồi

Tầng Transport 3-36


rdt2.2: các fragment bên nhận và gửi
rdt_send(data)
sndpkt = make_pkt(0, data, checksum)
udt_send(sndpkt)
rdt_rcv(rcvpkt) &&
( corrupt(rcvpkt) ||
Wait for Wait for
ACK isACK(rcvpkt,1) )
call 0 from
above 0 udt_send(sndpkt)
sender FSM
fragment rdt_rcv(rcvpkt)
&& notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) && && isACK(rcvpkt,0)
(corrupt(rcvpkt) || Λ
has_seq1(rcvpkt)) Wait for receiver FSM
0 from
udt_send(sndpkt) below fragment
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)
&& has_seq1(rcvpkt)
extract(rcvpkt,data)
deliver_data(data)
sndpkt = make_pkt(ACK1, chksum)
udt_send(sndpkt) Tầng Transport 3-37
rdt3.0: các kênh với lỗi và mất mát
Giả định mới: kênh ưu Cách tiếp cận: bên gửi
tiên cũng có thể chờ ACK trong khoảng
làm mất gói (dữ thời gian hợp lý
liệu, các ACK) !  Truyền lại nếu không có
"  checksum, số thứ ACK được nhận trong
tự, các ACK, việc khoảng thời gian này
truyền lại sẽ hổ !  Nếu gói (hoặc ACK) chỉ trễ
(không mất):
trợ…nhưng không đủ
"  Việc truyền lại sẽ gây
trùng, nhưng số thứ tự
đã xử lý trường hợp này
"  Bên nhận phải xác định
số thứ tự của gói vừa
gửi ACK
!  Yêu cầu bộ định thì đếm lùi
Tầng Transport 3-38
rdt3.0 bên gửi
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 Λ
Λ Wait for Wait
for timeout
call 0from
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) Λ
rdt_rcv(rcvpkt) &&
( corrupt(rcvpkt) || sndpkt = make_pkt(1, data, checksum)
isACK(rcvpkt,0) ) udt_send(sndpkt)
start_timer
Λ

Tầng Transport 3-39


Hành động của rdt3.0
bên gửi bên nhận bên gửi bên nhận
Gửi pkt0 pkt0 Gửi pkt0 pkt0
Nhận pkt0 Nhận pkt0
ack0 Gửi ack0 ack0 Gửi ack0
Nhận ack0 Nhận ack0
Gửi pkt1 pkt1 Gửi pkt1 pkt1
Nhận pkt1 X
ack1 Nhận ack1 loss
Nhận ack1
Nhận pkt0 pkt0
Gửi pkt0 timeout
ack0 Nhận ack0 Gửi lại pkt1 pkt1
Nhận pkt1
ack1 Gửi ack1
Nhận ack1
Gửi pkt0 pkt0
(a) Không mất mát Nhận pkt0
ack0 Gửi ack0

(b) Mất gói


Tầng Transport 3-40
Hành động của rdt3.0
bên gửi bên nhận
bên gửi bên nhận Gửi pkt0 pkt0
Gửi pkt0 pkt0 Nhận pkt0
ack0 Gửi ack0
Nhận pkt0
Gửi ack0 Nhận ack0
ack0 Gửi pkt1 pkt1
Nhận ack0 Nhận pkt1
Gửi pkt1 pkt1
Nhận pkt1 Gửi ack1
ack1 ack1
Gửi ack1
X
loss timeout
resend pkt1 pkt1
Nhận pkt1
timeout
Gửi lại pkt1 pkt1 rcv ack1 pkt0 (phát hiện trùng)
Nhận pkt1 send pkt0 Gửi ack1
(phát hiện trùng gói) ack1
ack1 Gửi ack1 rcv ack1 Nhận pkt0
Nhận ack1 ack0 Gửi ack0
pkt0 send pkt0 pkt0
Gửi pkt0 Nhận pkt0
Nhận pkt0 ack0 (phát hiệ trùng)
ack0 Gửi ack0 Gửi ack0

(c) Mất ACK (d) premature timeout/ delayed ACK

Tầng Transport 3-41


Hiệu suất của rdt3.0
!  rdt3.0 làm việc được, nhưng đánh giá hiệu xuất hơi
rắc rối
!  Ví dụ: đường link 1 Gbps, trễ lan truyền giữa 2 đầu
cuối là 15 ms, gói 8000 bit:
L 8000 bits
Dtruyền = R = = 8 microsecs
10 bits/sec
9

"  U sender: utilization – fraction of time sender busy sending

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

"  Nếu RTT=30 msec, gói 1KB mỗi 30 msec: thông


lượng 33kB/sec trên đường link1 Gbps
!  Giao thức network hạn chế việc sử dụng các tài
nguyên vật lý!
Tầng Transport 3-42
rdt3.0: hoạt động dừng-và-chờ
sender receiver
bit đầu tiên của gói được truyền, t = 0
bit cuối cùng gói được truyền, t = L / R

Bit đầu tiên của gói đến


RTT Bit cuối cùng của gói đến, gửi ACK

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


t = RTT + L / R

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

Tầng Transport 3-43


Các giao thức Pipelined
pipelining: bên gửi cho phép gửi nhiều gói
đồng thời, không cần chờ báo nhận được
"  Nhóm các số thứ tự phải được tăng dần
"  Phải có bộ nhớ đêm tại nơi gửi và/hoặc nhận

!  hai dạng phổ biến của các giao thức pipelined :


go-Back-N, lặp có lựa chọn
Tầng Transport 3-44
Pipelining: độ khả dụng tăng
bên gửi bên nhận
bit đầu tiên của gói được truyền, t = 0
bit cuối cùng của gói được truyền,
t=L/R

bit đầu tiên của packet đến


RTT bit cuối cùng của packet đến, gửi ACK
bit cuối cùng của packet thứ 2 đến, gửi ACK
bit cuối cùng của packet thứ 3 đến, gửi ACK
ACK arrives, send next
packet, t = RTT + L / R
3-packet pipelining tăng
độ khả dung lên gấp 3 lần!

U 3L / R .0024
sender = = = 0.00081
RTT + L / R 30.008

Tầng Transport 3-45


Pipelined protocols: tổng quan
Go-back-N: Lặp có lựa chọn (Selective
!  Bên gửi có thể có đến N Repeat):
packet không cần ACK trong !  Bên gửi có thể có đến N
đường ống ( pipeline) packet không cần ACK
!  Bên nhận chỉ gởi cumulative trong đường ống
ack (pipeline)
"  Sẽ không thông báo nhận !  Bên nhận gửi rcvr ack
packet thành công nếu có rieeng biệt (individual
một gián đoạn ack) cho mỗi packet
!  bên gửi có bộ định thì cho !  Bên nhận duy trì bộ định
packet sớm nhất mà không thì cho mỗi packet
cần ACK (oldest unacked không được ACK
packet) "  Khi bộ định thì của
"  Khi bộ định thì hết, truyền packet nào hết hạn, thì
lại thất cả các packet mà chỉ truyền lại packet
không được ACK không được ACK đó
Tầng Transport 3-46
Go-Back-N: bên gửi
!  Số thứ tự k-bit trong header của packet
!  “cửa sổ”( window ) lên đến N packet liên tiếp không cần
ACK được cho phép

!  ACK(n): thông báo nhận tất cả các packet lên đến n,


bao gồm n số thứ tự - ACK tích l y ( cumulative
ACK )
"  Có thể nhận ACK trùng (xem bên nhận)
!  Định thì cho packet sớm nhất đang trong tiến trình xử
lý (oldest in-flight pkt)
!  timeout(n): truyền lại packet n và tất cả các packet có
số thứ tự cao hơn trong cửa sổ (window) Tầng Transport 3-47
GBN: sender extended FSM
rdt_send(data)
if (nextseqnum < base+N) {
sndpkt[nextseqnum] = make_pkt(nextseqnum,data,chksum)
udt_send(sndpkt[nextseqnum])
if (base == nextseqnum)
start_timer
nextseqnum++
}
Λ 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
Tầng Transport 3-48
GBN: receiver extended FSM
default
udt_send(sndpkt) rdt_rcv(rcvpkt)
&& notcurrupt(rcvpkt)
Λ && 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++

ACK-duy nhất: luôn luôn gửi ACK cho gói đã nhận


chính xác, với số thứ tự xếp hạng cao nhất
(highest in-order seq #)
"  Có thể sinh ra các ACK trùng nhau
"  Chỉ cần nhớ expectedseqnum
!  Packet không theo thứ tự(out-of-order pkt):
"  hủy discard (không đệm): không bộ nhớ ệm bên
nhận!
Tầng Transport 3-49
"  Gửi lại với số thứ tự xếp hạng cao nhất
Hoạt động GBN
sender window (N=4) bên gửi bên nhận
012345678 send pkt0
012345678 send pkt1
send pkt2 receive pkt0, send ack0
012345678
send pkt3 Xloss receive pkt1, send ack1
012345678
(wait)
receive pkt3, discard,
012345678 rcv ack0, send pkt4 (re)send ack1
012345678 rcv ack1, send pkt5 receive pkt4, discard,
(re)send ack1
ignore duplicate ACK receive pkt5, discard,
(re)send ack1
pkt 2 timeout
012345678 send pkt2
012345678 send pkt3
012345678 send pkt4 rcv pkt2, deliver, send ack2
012345678 send pkt5 rcv pkt3, deliver, send ack3
rcv pkt4, deliver, send ack4
rcv pkt5, deliver, send ack5

Tầng Transport 3-50


Lặp có lựa chọn (Selective repeat)
!  Bên nhận thông báo đã nhận đúng tất cả
từng gói một
"  Đệm các gói, khi cần thiết, cho sự vận chuyển
trong thứ tự ngẫu nhiên đến tầng cao hơn
!  Bên gửi chỉ gửi lại các packet nào mà ACK
không được nhận
"  Bên gửi định thời cho mỗi packet không có gửi
ACK
!  Cửa sổ bên gửi (sender window)
"  N số thứ tự liên tục
"  Hạn chế số thứ tự các gói không gửi ACK

Tầng Transport 3-51


Lặp có lựa chọn: cửa sổ bên gửi và
nhận

Tầng Transport 3-52


Lặp có lựa chọn
Bên gửi Bên nhận
Dữ liệu từ tầng trên: Packet n trong [rcvbase,
!  Nếu số thứ tự kế tiếp sẵn sàng rcvbase+N-1]
trong cửa sổ, gởi packet !  Gửi ACK(n)

timeout(n): !  Không thứ tự: đệm

!  Gửi lại packet n, khởi độnglại !  Thứ tự: truyền (cũng truyền
bộ định thì các gói đã đệm, có thứ tự),
ACK(n) trong [sendbase,sendbase dịch chuyển cửa sổ đến gói
+N]: chưa nhận kế tiếp
!  Đánh dấu packet n là đã được Packet n trong [rcvbase-
nhận N,rcvbase-1]
!  Nếu gói không ACK có n nhỏ !  ACK(n)

nhất, thì dịch chuyển cửa sổ Ngược lại:


base đến số thứ tự không ACK !  Bỏ qua
kế tiếp

Tầng Transport 3-53


Hành động của lặp lại có lựa chọn
sender window (N=4) Bên gửi Bên nhận
012345678 gửi pkt0
012345678 gửi pkt1
gửi pkt2 nhận pkt0, gửi ack0
012345678
gửi pkt3 Xloss nhận pkt1, gửi ack1
012345678
(đợi)
nhận pkt3, buffer,
012345678 nhận ack0, gửi pkt4 gửi ack3
012345678 nhận ack1, gửi pkt5 nhận pkt4, buffer,
gửi ack4
Ghi nhận ack3 ã đến nhận pkt5, buffer,
gửi ack5
pkt 2 timeout
012345678 gửi pkt2
012345678 Ghi nhận ack4 ã đến
012345678 nhận pkt2; chuyển pkt2,
Ghi nhận ack4 ã đến
012345678 pkt3, pkt4, pkt5; gửi ack2

Q: việc gì xảy ra khi ack2 đến?

Tầng Transport 3-54


Lặp có lựa chọn: sender window receiver window

tình huống
(sau khi nhận) (sau khi nhận)

khó giải quyết


0123012 pkt0
0123012 pkt1 0123012
pkt2
Ví dụ:
0123012 0123012
0123012
pkt3
Số thứ tự: 0, 1, 2, 3
0123012
!  X
0123012
!  Kích thước cửa sổ=3 pkt0 Sẽ chấp nhận packet với
số thứ tự 0
(a) no problem
!  Bên nhận không thấy
sự khác nhau trong 2 Bên nhận không thể thấy phía bên gửi.
tình huống! Hành vi bên nhận như nhau trong cả
2 trường hợp!
!  Dữ liệu trùng lặp Có iều gì ó (rất) sai lầm!
được chấp nhận như 0123012 pkt0
dữ liệu mới (b) 0123012 pkt1 0123012
0123012 pkt2 0123012
X
Q: quan hệ giữa dãy số
0123012
X
thứ tự và kích timeout
Truyền lại pkt0 X
thước cửa sổ để 0123012 pkt0
tránh vấn đề (b)?
Sẽ chấp nhận packet
với số thứ tự 0
(b) oops!
Tầng Transport 3-55
Chương 3 Nội dung
3.1 các dịch vụ tầng 3.5 vận chuyển hướng
Transport kết nối: TCP
3.2 multiplexing và "  Cấu trúc segment
demultiplexing "  Truyền dữ liệu tin cậy
3.3 vận chuyển phi "  Điều khiển luồng (flow
control)
kết nối: UDP
"  Quản lý kết nối
3.4 các nguyên lý
truyền dữ liệu tin 3.6 các nguyên lý về
cậy điều khiển tắc nghẽn
3.7 điều khiển tắc nghẽn
TCP

Tầng Transport 3-56


TCP: tổng quan RFCs: 793,1122,1323, 2018, 2581
!  point-to-point: !  Dữ liệu full duplex:
"  Một bên gửi, một bên "  Luồng dữ liệu đi 2 chiều
nhận trong cùng 1 kết nối
!  Tin cậy, dòng byte "  MSS: kích thước tối đa
theo thứ tự (in-order của segment (maximum
byte stream): segment size)
"  Không ranh giới thông !  Hướng kết nối:
điệp ( message "  Bắt tay (trao đổi các
boundaries ) thông điệp điều khiển)
!  pipelined: khởi tạo trạng thái bên
gửi và nhận trước khi
"  Điều khiển luồng và tắt trao đổi dữ liệu
nghẽn của TCP thiết lập
kích thước cửa sổ !  Luồng được điều khiển:
(window size) "  Bên gửi sẽ không áp đảo
bên nhận
Tầng Transport 3-57
Cấu trúc segment TCP segment
32 bits
URG: dữ liệu khẩn cấp Đếm bằng
(thường không dùng) port nguồn port đích
bytes dữ liệu
Số thứ tự (không bằng
ACK: ACK #
hợp lệ Số ACK segment!)
head Không
PSH: push data now len dùng U A P R S F receive window
(thường không dùng) Số byte
checksum Urg data pointer bên nhận
RST, SYN, FIN: sẵn sàng
Tùy chọn (độ dài thay đổi)
thiết lập kết nối chấp nhận
(setup, teardown
commands)
Dữ liệu ứng dụng
Internet (độ dài thay đổi)
checksum
(giống như UDP)

Tầng Transport 3-58


Số thứ tự TCP và ACK
Segment i ra từ bên gửi
Các số thứ tự: port nguồn port đích
số thứ tự
" Dòng byte đánh số số ACK

byte đầu tiên trong rwnd

dữ liệu của segment


checksum urg pointer

kích thước cửa sổ


Các ACK: N

"  số thứ tự của byte


kế tiếp được mong đợi sender sequence number space
từ phía bên kia
" ACK tích lũy sent
ACKed
sent, not-
yet ACKed
usable not
but not usable
Hỏi: làm thế nào để bên ( in-
flight )
yet sent

nhận xử lý các segment Segment vào, đến bên gửi


không theo thứ tự port nguồn port đích

" Trả lời: TCP không đề


số thứ tự
số ACK
cập, tùy thuộc người A rwnd

thực hiện checksum urg pointer

Tầng Transport 3-59


Số thứ tự TCP và ACK
Host A Host B

User
Nhập
C Seq=42, ACK=79, data = C
host báo nhận thành công C ,
phản hồi ngược lại C

Seq=79, ACK=43, data = C


host báo nhận
thành công C
được phản hồi
Seq=43, ACK=80

Tình huống telnet đơn giản

Tầng Transport 3-60


TCP round trip time và timeout
Hỏi: làm cách nào để Q: làm cách nào để ước
thiết lập giá trị lượng RTT?
TCP timeout? !  SampleRTT: thời gian
được đo từ khi truyền
!  Dài hơn RTT segment đến khi báo nhận
"  Nhưng RTT thay đổi ACK
!  Quá ngắn: timeout "  Lờ đi việc truyền lại
sớm, không cần thiết !  SampleRTT sẽ thay đổi,
muốn RTT được ước
truyền lại lượng mượt hơn
!  Quá dài: phản ứng "  Đo lường trung bình
chập đối với việc mất của một số giá trị vừa
segment xảy ra, không chỉ
SampleRTT hiện tại
Tầng Transport 3-61
TCP round trip time và timeout
EstimatedRTT = (1- α)*EstimatedRTT + α*SampleRTT
!  Đường trung bình dịch chuyển hàm mũ
(exponential weighted moving average)
!  ảnh hưởng của mẫu đã xảy ra sẽ làm giảm tốc
độ theo cấp số nhân
typical value: α = 0.125
RTT: gaia.cs.umass.edu to fantasia.eurecom.fr
! 
350

RTT: gaia.cs.umass.edu to fantasia.eurecom.fr


(milliseconds)

300

250
RTT (milliseconds)
RTT

200

sampleRTT
150
EstimatedRTT

100
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
Tầng Transport 3-62
time (seconds)
SampleRTT Estimated RTT
TCP round trip time và timeout
!  Khoảng thời gian timeout (timeout interval):
EstimatedRTT cộng với biên an toàn
"  Sự thay đổi lớn trong EstimatedRTT -> an toàn biên lớn hơn
!  Ước lượng độ lệch SampleRTT từ EstimatedRTT:
DevRTT = (1-β)*DevRTT +
β*|SampleRTT-EstimatedRTT|
(typically, β = 0.25)

TimeoutInterval = EstimatedRTT + 4*DevRTT

estimated RTT biên an toàn

Tầng Transport 3-63


Chương 3 Nội dung
3.1 các dịch vụ tầng 3.5 vận chuyển hướng
Transport kết nối: TCP
3.2 multiplexing và "  Cấu trúc segment
demultiplexing "  Truyền dữ liệu tin cậy
3.3 vận chuyển phi "  Điều khiển luồng (flow
control)
kết nối: UDP
"  Quản lý kết nối
3.4 các nguyên lý
truyền dữ liệu tin 3.6 các nguyên lý về
cậy điều khiển tắc nghẽn
3.7 điều khiển tắc nghẽn
TCP

Tầng Transport 3-64


TCP truyền dữ liệu tin cậy
!  TCP tạo dịch vụ rdt
trên dịch vụ không
tin cậy của IP
"  Các segment pipelined
"  Các ack tích lũy Lúc đầu khảo sát TCP
"  Truyền lại đơn giản ở bên gửi:
"  Lờ đi các ack bị trùng
!  Việc truyền lại được
kích hoạt bởi: "  Lờ đi điều khiển
luồng và điều khiển
"  Sự kiện timeout tắt nghẽn
"  Các ack bị trùng

Tầng Transport 3-65


TCP các sự kiện bên gửi:
Dữ liệu ược nhận từ timeout:
ứng dụng:
!  Gửi lại segment nào gây
!  Tạo segment với số ra timeout
thứ tự
!  Khởi động lại bộ định thì
!  Số thứ tự là số byte-
ack ược nhận:
stream của byte dữ
liệu đầu tiên trong !  Nếu ack thông báo các

segment segments không được


!  Khởi động bộ định thì
ACK trước đó
nếu chưa chạy "  Cập nhật những gì được
biết là đã được nhận thành
"  Xem bộ định thì như là công
đối với segment sớm
"  Khởi động lại bộ định thì
nhất không được ACK nếu có các segment vẫn
"  Khoảng thời gian hết chưa được thông báo nhận
hạn: TimeOutInterval thành công Tầng Transport 3-66
TCP bên gửi (đơn giản)
Dữ liệu được nhận từ tầng application trên
create segment, seq. #: NextSeqNum
pass segment to IP (i.e., send )
NextSeqNum = NextSeqNum + length(data)
if (bộ định thì hiện thời không chạy)
Λ khởi động bộ định thì
NextSeqNum = InitialSeqNum wait
SendBase = InitialSeqNum for
event timeout
Truyền lại segment nào chưa
được báo ã nhận thành công với
số thứ tự nhỏ nhất.
ACK received, with ACK field value y Khởi động bộ định thì

if (y > SendBase) {
SendBase = y
/* SendBase–1: last cumulatively ACKed byte */
if (there are currently not-yet-acked segments)
start timer
else stop timer
} Tầng Transport 3-67
TCP: tình huống truyền lại
Host A Host B Host A Host B

SendBase=92
Seq=92, 8 bytes of data Seq=92, 8 bytes of data

Seq=100, 20 bytes of data


timeout

timeout
ACK=100
X
ACK=100
ACK=120

Seq=92, 8 bytes of data Seq=92, 8


SendBase=100 bytes of data
SendBase=120
ACK=100
ACK=120

SendBase=120

Tình huống mất ACK Timeout sớm


Tầng Transport 3-68
TCP: tình huống truyền lại
Host A Host B

Seq=92, 8 bytes of data

Seq=100, 20 bytes of data


ACK=100
timeout

X
ACK=120

Seq=120, 15 bytes of data

ACK tích l y
Tầng Transport 3-69
Sự phát sinh TCP ACK [RFC 1122, RFC 2581]
Sự kiện tại bên nhận Hành động bên nhận TCP
segment đến theo thứ tự với số ACK bị trễ. Đợi đến 500ms cho segment
thứ tự được mong đợi. Tất cả kế tiếp. Nếu không có segment kế tiếp, gửi
dữ liệu đến đã được ACK ACK

segment đến theo thứ tự với số Lập tức gởi lại một ACK tích lũy, thông báo
thứ tự mong muốn. 1 segment nhận thành công cho cả segment theo thứ
khác có ACK đang treo tự

Segment đến không theo thứ tự Lập tức gởi lại ACK trùng, chỉ ra số thứ tự
với số thứ tự lớn hơn số được của byte được mong đợi kế tiếp
mong đợi. Có khoảng trống

segment đến lắp đầy từng phần Lập tức gửi ACK, với điều kiện là segment
hoặc toàn bộ khoảng trống đó bắt đầu ngay điểm có khoảng trống

Tầng Transport 3-70


TCP truyền lại nhanh
!  Chu kỳ time-out
thường tương đối TCP truyền lại nhanh
dài: Nếu bên gửi nhận 3
"  Độ trễ dài trước khi ACK của cùng 1 dữ liệu
gởi lại packet bị mất ( 3 ACK trùng ), thì gửi
lại segment chưa được
!  Phát hiện các ACK với số thứ tự nhỏ
segment bị mất nhất
thông qua các ACKs "  Có khả năng
trùng. segment không
"  Bên gửi thường gửi được ACK đã bị mất,
nhiều segment song vì thế không đợi đến
song thời gian timeout
"  Nếu segment bị mất,
thì sẽ có khả năng có
nhiều ACK trùng. Tầng Transport 3-71
TCP truyền lại nhanh

Tầng Transport 3-72


Chương 3 Nội dung
3.1 các dịch vụ tầng 3.5 vận chuyển hướng
Transport kết nối: TCP
3.2 multiplexing và "  Cấu trúc segment
demultiplexing "  Truyền dữ liệu tin cậy
3.3 vận chuyển phi "  Điều khiển luồng (flow
control)
kết nối: UDP
"  Quản lý kết nối
3.4 các nguyên lý
truyền dữ liệu tin 3.6 các nguyên lý về
cậy điều khiển tắc nghẽn
3.7 điều khiển tắc nghẽn
TCP

Tầng Transport 3-73


TCP điều khiển luồng
application
application có thể loại bỏ dữ liệu process
từ các bộ nhớ đệm socket TCP application
….
TCP socket OS
receiver buffers
… chậm hơn TCP bên
nhận ang cung cấp
(bên gửi ang gửi) TCP
code

IP
iều khiển luồng code

bên nhận kiểm soát bên gửi, để


bên gửi sẽ không làm tràn bộ
nhớ đệm của bên nhận bởi từ bên gửi
truyền quá nhiều và quá nhanh Chòng giao thức bên nhận

Tầng Transport 3-74


TCP điều khiển luồng
!  Bên nhận quảng cáo không
gian bộ nhớ đệm còn trống to application process
bằng cách thêm giá trị rwnd
trong TCP header của các
segment từ bên nhận đến RcvBuffer buffered data
bên gửi
"  Kích thước của RcvBuffer
được thiết đặt thông qua các
rwnd free buffer space
tùy chọn của socket (thông
thường mặc định là 4096 byte)
"  Nhiều hệ điều hành tự động TCP segment payloads
điều chỉnh RcvBuffer
!  Bên gửi giới hạn số lượng Bộ êm phía bên nhận
dữ liệu không cần ACK tới
giá trị rwnd của bên nhận
!  Bảo đảm bộ đệm bên nhận
sẽ không bị tràn Tầng Transport 3-75
Chương 3 Nội dung
3.1 các dịch vụ tầng 3.5 vận chuyển hướng
Transport kết nối: TCP
3.2 multiplexing và "  Cấu trúc segment
demultiplexing "  Truyền dữ liệu tin cậy
3.3 vận chuyển phi "  Điều khiển luồng (flow
control)
kết nối: UDP
"  Quản lý kết nối
3.4 các nguyên lý
truyền dữ liệu tin 3.6 các nguyên lý về
cậy điều khiển tắc nghẽn
3.7 điều khiển tắc nghẽn
TCP

Tầng Transport 3-76


Quản lý kết nối
(Connection Management)
Trước khi trao đổi dữ liệu, bên gửi và nhận bắt tay
nhau :
!  Đồng ý thiết lập kết nối (mỗi bên biết bên kia sẵn sàng
để thiết lập kết nối)
!  Đồng ý các thông số kết nối
application application

connection state: ESTAB connection state: ESTAB


connection variables: connection Variables:
seq # client-to-server seq # client-to-server
server-to-client server-to-client
rcvBuffer size rcvBuffer size
at server,client at server,client

network network

Socket clientSocket = Socket connectionSocket =


newSocket("hostname","port welcomeSocket.accept();
number");
Tầng Transport 3-77
Đồng ý thiết lập kết nối

Bắt tay 2-way:


Hỏi: bắt tay 2-way sẽ
luôn luôn hoạt động
Let s talk
trong mạng hay không?
ESTAB !  Độ chậm trễ biến thiên
OK
ESTAB !  Các thông điệp được
truyền lại (như
req_conn(x)) vì mất thông
điệp
choose x !  Sắp xếp lại thông điệp
req_conn(x)
ESTAB !  Không thể thấy phía bên
ESTAB
acc_conn(x) kia

Tầng Transport 3-78


Đồng ý thiết lặp kết nối
Các tình huống thất bại khi bắt tay 2-way:

choose x choose x
req_conn(x) req_conn(x)
ESTAB ESTAB
retransmit acc_conn(x) retransmit acc_conn(x)
req_conn(x) req_conn(x)

ESTAB ESTAB
data(x+1) accept
req_conn(x)
retransmit data(x+1)
data(x+1)
connection connection
client x completes server x completes server
client
terminates forgets x terminates forgets x
req_conn(x)

ESTAB ESTAB
data(x+1) accept
Kết nối mở một nữa! data(x+1)
(không có client!)
Tầng Transport 3-79
TCP bắt tay 3-way

Trạng thái client Trạng thái server


LISTEN LISTEN
Chọn số thứ tự ban đầu, x
Gửi TCP SYN msg
SYNSENT SYNbit=1, Seq=x
Chọn số thứ tự ban đầu, y
gửi TCP SYNACK
msg, acking SYN SYN RCVD
SYNbit=1, Seq=y
ACKbit=1; ACKnum=x+1
SYNACK(x) vừa được nhận
ESTABcho hay server vẫn còn sống;
send ACK for SYNACK;
this segment may contain ACKbit=1, ACKnum=y+1
client-to-server data
ACK(y) vừa được nhận
cho hay client vẫn sống
ESTAB

Tầng Transport 3-80


TCP bắt tay 3-way: FSM

closed

Socket connectionSocket =
welcomeSocket.accept();

Λ Socket clientSocket =
SYN(x) newSocket("hostname","port
number");
SYNACK(seq=y,ACKnum=x+1)
Tạo socket mới để giao tiếp SYN(seq=x)
ngược lại với client listen

SYN SYN
rcvd sent

SYNACK(seq=y,ACKnum=x+1)
ESTAB ACK(ACKnum=y+1)
ACK(ACKnum=y+1)
Λ

Tầng Transport 3-81


TCP: đóng kết nối
!  Mỗi bên client và server sẽ đóng kết nối
bên phía của nó
"  Gởi TCP segment với FIN bit = 1
!  Phản hồi bằng ACK cho FIN vừa được nhận
"  Khi nhận FIN, ACK có thể được kết hợp với
FIN của nó
!  Các trao đổi FIN đồng thời có thể được
vận dụng

Tầng Transport 3-82


TCP: đóng kết nối
Trạng thái client Trạng thái server
ESTAB ESTAB
clientSocket.close()
FIN_WAIT_1 Có thể không FINbit=1, seq=x
còn gửi nhưng
vẫn còn nhận CLOSE_WAIT
dữ liệu ACKbit=1; ACKnum=x+1
Vẫn có thể
FIN_WAIT_2 Chờ server gửi dữ liệu
óng

LAST_ACK
FINbit=1, seq=y
TIMED_WAIT Có thể không còn
gửi dữ liệu
ACKbit=1; ACKnum=y+1
timed wait
for 2*max CLOSED
segment lifetime

CLOSED

Tầng Transport 3-83


Chương 3 Nội dung
3.1 các dịch vụ tầng 3.5 vận chuyển hướng
Transport kết nối: TCP
3.2 multiplexing và "  Cấu trúc segment
demultiplexing "  Truyền dữ liệu tin cậy
3.3 vận chuyển phi "  Điều khiển luồng (flow
control)
kết nối: UDP
"  Quản lý kết nối
3.4 các nguyên lý
truyền dữ liệu tin 3.6 các nguyên lý về
cậy điều khiển tắc nghẽn
3.7 điều khiển tắc nghẽn
TCP

Tầng Transport 3-84


Các nguyên lý điều khiển tắt
nghẽn (congestion control)
Tắt nghẽn:
!  nguồn gửi quá nhiều dữ liệu với tốc độ quá
nhanh đến mạng để được xử lý
!  Khác với điều khiển luồng (flow control)!
!  Các biểu hiện:
" Mất gói (tràn bộ đệm tại các router)
" Độ trễ lớn (xếp hàng trong các bộ đệm
của router)
!  1 trong 10 vấn đề khó khăn!

Tầng Transport 3-85


Nguyên nhân/Chi phí của tắc nghẽn:
tình huống 1
dữ liệu gốc: λin thông lượng: λout
!  2 gửi, 2 nhận
!  1 router, các bộ đệm Host A
Bộ đệm của đường
không giới hạn link đầu ra được chia

Khả năng của đường


sẽ không giới hạn
! 
link đầu ra: R
!  Không truyền lại
Host B

R/2

delay
λout

λin R/2 λin R/2


!  Thông lượng lớn nhất !  Độ trễ lớn khi tốc độ
của mỗi kết nối: R/2 đến, λin, vượt tới capacity
Tầng Transport 3-86
Nguyên nhân/Chi phí của tắc nghẽn:
tình huống 2
!  1 router, các bộ đệm có giới hạn
!  bên gửi truyền lại các packet bị time-out
"  application-layer input = application-layer output: λin = λout
"  transport-layer input bao gồm việc truyền lại: λ'in λin

λin : data gốc


λout
λ'in: data gốc, cộng với
dữ liệu được truyền lại

Host A

Bộ đệm đường link


Host B đầu ra được chia sẽ
giới hạn Tầng Transport 3-87
Nguyên nhân/Chi phí của tắc nghẽn:
tình huống 2
R/2
Lý tưởng hóa: kiến thức
hoàn hảo

λout
!  Bên gửi chỉ gửi khi bộ
nhớ đệm của router sẵn
sàng λin R/2

λin : data gốc


copy λout
λ'in: data gốc, cộng với
dữ liệu được truyền lại

A free buffer space!

Bộ nhớ đệm đường


Host B link đầu ra được chia
sẽ giới hạn Tầng Transport 3-88
Nguyên nhân/Chi phí của tắc nghẽn:
tình huống 2
Lý tưởng hóa: các packet bị mất
được biết đến có thể bị mất
hoặc bị loại bỏ tại router bởi vì
bộ nhớ đệm bị đầy
!  Bên gửi chỉ gởi lại packet được
biết đến (known packet) đã bị
mất
λin : data gốc
copy λout
λ'in: data gốc, cộng với
dữ liệu được truyền lại

A Không còn bộ nhớ đệm!

Host B
Tầng Transport 3-89
Nguyên nhân/Chi phí của tắc nghẽn:
tình huống 2
Lý tưởng hóa: các packet bị R/2
mất được biết đến có thể bị
mất hoặc bị loại bỏ tại Khi gửi tại R/2, một
số packet được
router bởi vì bộ nhớ đệm bị

λout
truyền lại, nhưng
đầy tiệm cân goodput vẫn
là R/2 (tại sao?)
!  Bên gửi chỉ gởi lại packet
được biết đến (known λin R/2

packet) đã bị mất
λin : data gốc
λout
λ'in: data gốc, cộng với
dữ liệu được truyền lại

A còn bộ nhớ đệm!

Host B
Tầng Transport 3-90
Nguyên nhân/Chi phí của tắc nghẽn:
tình huống 2
Thực tế: trùng lặp R/2
!  Các packet có thể bị mất , bị bỏ
Khi gửi tại R/2, một
tại router bởi vì bộ nhớ đệm số packet được

λout
đầy truyền lại, bao gồm
packet bị trùng mà
!  Thời gian time out bên gửi hết đã được gửi đi!
sớm, gởi 2 bản giống nhau, cả 2 R/2
đều được gửi đi λin

λin
timeout
copy λout
λ'in

A Còn bộ nhớ đệm!

Host B
Tầng Transport 3-91
Nguyên nhân/Chi phí của tắc nghẽn:
tình huống 2
Thực tế: trùng lặp R/2
!  Các packet có thể bị mất , bị bỏ
tại router bởi vì bộ nhớ đệm Khi gửi tại R/2, một
số packet được
đầy

λout
truyền lại, bao gồm
!  Thời gian time out bên gửi hết
packet bị trùng mà
đã được gửi đi!
sớm, gởi 2 bản giống nhau, cả 2
đều được gởi đi λin R/2

chi phí của tắc nghẽn:


!  Cần nhiều băng thông cho việc truyền lại
!  Truyền lại không cần thiết: đường link mang nhiều
bản sao của packet
"  Giảm goodput

Tầng Transport 3-92


Nguyên nhân/Chi phí của tắc nghẽn:
tình huống 3
!  4 người gởi Hỏi: cái gì xảy ra khi λin và
λ'in tăng?
!  Các đường qua nhều hop
A: khi λ'in màu đỏ tăng, tất cả
!  timeout/truyền lại packet màu xanh đến tại hàng đợi
phía trên bị loại bỏ, thông lượng
Host A màu xanh -> 0λ
λin : data gốc out Host B
λ'in: data gốc, cộng với
dữ liệu được truyền lại
finite shared output
link buffers

Host D
Host C

Tầng Transport 3-93


Nguyên nhân/Chi phí của tắc nghẽn:
tình huống 3
C/2
λout

λin C/2

Chi phí khác của tắt nghẽn


!  Khi packet bị loại bỏ, bất kỳ khả năng
truyền upstream được sủ dụng cho packet
đó đều bị lãng phí!”

Tầng Transport 3-94


Các phương pháp tiếp cận đối với
điều khiển tắt nghẽn
2 phương pháp tiếp cận:
Điều khiển tắt Điều khiển tắt
nghẽn end-end : nghẽn có sự hổ
!  Không phản hồi rõ trợ của mạng
ràng từ mạng (network-
!  Tắt nghẽn được suy assisted) :
ra từ việc quan sát hệ !  Các router cung cấp
thống đầu cuối có phản hồi đến các hệ
mất mát hoặc bị trễ thống đầu cuối
!  Tiếp cận được thực " Bit đơn chỉ ra tắt
hiện bởi TCP nghẽn (SNA, DECbit,
TCP/IP ECN, ATM)
" Tốc độ sẽ gửi của
người gửi được xác
định rõ ràng Tầng Transport
3-95
Case study: điều khiển tắt nghẽn
ATM ABR
ABR: available bit Các cell RM (resource
rate: management):
!  dịch vụ mềm dẻo !  Được gởi bởi bên gửi,
!  Nếu đường đi của được xen kẽ với các cell
bên gửi chưa hết: dữ liệu
"  Bên gửi sẽ dùng !  Các bit trong RM cell
băng thông sẵn được thiết lập bởi các by
sàng switch ( network-
!  Nếu đường đi của assisted )
bên gửi bị tắt nghẽn: "  NI bit: không tăng tốc
"  Bên gửi sẽ điều độ (tắt nghẽn nhẹ)
tiết với tốc độ tối "  CI bit: tắt nghẽn rõ rệt
thiểu được bảo !  Các cell RM được trả về
đảm bên gửi từ bên nhận với
nguyên vẹn các bit Tầng Transport 3-96
Case study: điều khiển tắt nghẽn
ATM ABR
RM cell data cell

!  Trường 2 byte ER (tốc độ tường minh) trong cell


RM
"  Switch bị tắt nghẽn có thể có giá trị ER thấp hơn trong
cell
"  Do đó, tốc độ gửi của bên gửi được hổ trợ tối đa trên
đường đi
!  Bit EFCI bit trong cell dữ liệu: được thiết lặp đến 1
trong switch bị tắt nghẽn Tầng Transport 3-97
Chương 3 Nội dung
3.1 các dịch vụ tầng 3.5 vận chuyển hướng
Transport kết nối: TCP
3.2 multiplexing và "  Cấu trúc segment
demultiplexing "  Truyền dữ liệu tin cậy
3.3 vận chuyển phi "  Điều khiển luồng (flow
control)
kết nối: UDP
"  Quản lý kết nối
3.4 các nguyên lý
truyền dữ liệu tin 3.6 các nguyên lý về
cậy điều khiển tắc nghẽn
3.7 điều khiển tắc nghẽn
TCP

Tầng Transport 3-98


TCP điều khiển tắt nghẽn: additive increase,
multiplicative decrease
!  Hướng tiếp cận: bên gửi tăng tốc độ truyền (kích
thước cửa sổ), thăm dò băng thông có thể sử dụng,
cho đến khi mất mát gói xảy ra
"  additive increase: tăng cwnd bởi 1 MSS mỗi RTT cho
đến khi mất gói xảy ra
"  multiplicative decrease: giảm một nữa cwnd sau khi
mất gói xảy ra
additively increase window size …
…. Cho đến khi mất gói xảy ra
congestion window size

(thì giảm một nữa kích thước cửa sổ)


cwnd: TCP sender

AIMD saw tooth


behavior: thăm dò
băng thông

time
Tầng Transport 3-99
TCP điều khiển tắt nghẽn: chi
tiết
sender sequence number space
cwnd
TCP tốc ộ gửi:
!  Ước lượng: gửi các
byte cwnd, đợi ACK
trong khoảng thời
last byte
ACKed
last byte
sent, not- sent gian RTT, sau đó gởi
yet ACKed
( in- thêm các byte
flight ) cwnd
!  Bên gửi giới hạn truyền rate ~
~
RTT
bytes/sec
tải:
LastByteSent- < cwnd
LastByteAcked

!  cwnd thay đổi, chức năng


nhận biết tắt nghẽn trên
mạng Tầng Transport 3-100
TCP Slow Start
Host A Host B
!  Khi kết nối bắt đầu,
tăng tốc độ theo cấp số
nhân cho đến sự kiện one segm
ent
mất gói đầu tiên xảy ra:

RTT
"  initially cwnd = 1 MSS two segm
ents
"  Gấp đôi cwnd mỗi RTT
"  Được thực hiện bằng
cách tăng cwnd cho mỗi four segm
ents
ACK nhận được
!  Tóm lại: tốc độ ban đầu
chậm, nhưng nó sẽ tăng
lên theo cấp số nhân time

Tầng Transport 3-101


TCP: phát hiện, phản ứng khi
mất gói
!  Mất gói được chỉ ra bởi timeout:
" cwnd được thiết lặp 1 MSS;
" Sau đó kích thước cửa sổ sẽ tăng theo cấp số
nhân (như trong slow start) đến ngưỡng, sau đó
sẽ tăng tuyến tính
!  Mất gói được xác định bởi 3 ACK trùng nhau: TCP
RENO
" Các ACK trùng lặp chỉ ra khả năng truyền của
mạng
" cwnd bị cắt một nữa sau đó tăng theo tuyến tính
!  TCP luôn luôn thiết lặp cwnd bằng 1 (timeout hoặc
3 ack trùng nhau)
Tầng Transport 3-102
TCP: chuyển từ slow start qua
CA
Hỏi: khi nào tăng cấp
số nhân nên
chuyển qua tuyến
tính?
Trả lời: khi cwnd
được 1/2 giá trị
của nó trước thời
gian timeout.
Thực hiện:
!  ssthresh thay đổi
!  Khi mất gói, ssthresh
được thiết lặp về chỉ
1/2 của cwnd trước
khi mất gói

Tầng Transport 3-103


Tóm tắt: TCP điều khiển tắt nghẽn
New
New ACK!
ACK!
ACK trùng
dupACKcount++ new ACK
new ACK
.
cwnd = cwnd + MSS (MSS/cwnd)
dupACKcount = 0
cwnd = cwnd+MSS Truyền segment(s) mới, khi được phép
dupACKcount = 0
Λ Truyền segment(s) mới, khi được phép
cwnd = 1 MSS
ssthresh = 64 KB cwnd > ssthresh
dupACKcount = 0 slow Λ congestion
start timeout avoidance
ssthresh = cwnd/2
cwnd = 1 MSS duplicate ACK
timeout dupACKcount = 0 dupACKcount++
Truyền lại segmentt thiếu
ssthresh = cwnd/2
cwnd = 1 MSS
dupACKcount = 0
Truyền lại segmentt thiếu
timeout New
ACK!
ssthresh = cwnd/2
cwnd = 1 New ACK
dupACKcount = 0
Truyền lại segmentt thiếu cwnd = ssthresh dupACKcount == 3
dupACKcount == 3 dupACKcount = 0
ssthresh= cwnd/2 ssthresh= cwnd/2
cwnd = ssthresh + 3 cwnd = ssthresh + 3
Truyền lại segmentt thiếu Truyền lại segmentt thiếu
fast
recovery
duplicate ACK
cwnd = cwnd + MSS
Truyền segment(s) mới, khi được phép

Tầng Transport 3-104


TCP thông lượng (throughtput)
!  Thông lượng trung bình của TCP như là chức năng
của kích thước cửa sổ và RTT?
"  Bỏ qua slow start, giả sử dữ liệu luôn luôn được gởi
!  W: kích thước cửa sổ (được đo bằng byte) khi mất gói xảy
ra
"  Kích thước cửa sổ trung bình (# in-flight bytes) là ¾ W
"  Thông lượng trung bình là 3/4W mỗi RTT
3 W
avg TCP thruput = bytes/sec
4 RTT
W

W/2

Tầng Transport 3-105


TCP tương lai: TCP qua ống lớn và dài”
!  Ví dụ: segment 1500 byte, 100ms RTT,
muốn thông lượng 10 Gbps
!  Kích thước cửa sổ yêu cầu W = 83,333
segment trên đường truyền
!  Thông lượng trong các trường hợp mất gói,
L [Mathis 1997]:
1.22 . MSS
TCP throughput =
RTT L

để đạt thông lượng 10 Gbps, cần thì lệ mất gói


là L = 2·10-10 – một tỷ lệ mất gói rất nhỏ!
!  Phiên bản mới của TCP cho tốc độ cao

Tầng Transport 3-106


TCP Công bằng
Mục tiêu công bằng: nếu có K session TCP
chia sẽ cùng đường link bị bóp cổ chai của
băng thông R, thì mỗi phiên nên có tốc độ
trung bình là R/K
Kết nối TCP 1

Router cổ chai
Khả năng R
Kết nối TCP 2

Tầng Transport 3-107


Tại sao TCP là công bằng?
2 session cạnh tranh nhau:
!  additive increase cho độ dốc tăng 1, khi thông lượng tăng
!  multiplicative decrease giảm thông lượng tương úng

R Chia sẽ băng thông bằng nhau


Connection 2 throughput

Mất gói: giảm một nữa kích thước cửa sổ


Tránh tắt nghẽn: additive increase
Mất gói: giảm một nữa kích thước cửa sổ
Tránh tắt nghẽn: additive increase

Connection 1 throughput R

Tầng Transport 3-108


Công bằng (tt)
TCP và UDP Các kết nối TCP song song
!  Nhiều ứng dụng !  ứng dụng có thể mở
thường không dùng nhiều kết nối song song
TCP giữa 2 host
"  Không muốn tốc độ !  Trình duyệt web làm
bị điều tiết do điều
khiển tắt nghẽn điều này
!  Thay bằng dùng !  Ví dụ: đường link với
UDP: tốc độ R hỗ trợ 9 kết
"  Truyền audio/video nối:
với tốc độ ổn định, "  ứng dụng mới yêu cầu 1 TCP, có
chịu được mất gói tốc độ R/10
"  ứng dụng mới yêu cầu 11 TCPs,
có tốc độ R/2

Tầng Transport 3-109


Chương 3: Tóm tắt
!  Các nguyên lý của các dịch vụ
tầng transport layer :
" multiplexing, demultiplexing
Kế tiếp:
" Truyền dữ liệu tin cậy
!  Tìm hiểu xong
" Điều khiển luồng (flow các vấn đề mạng
control) biên (các tầng
" Điều khiển tắt nghẽn application,
(congestion control) transport)
!  Khởi tạo và thực hiện trên !  Chuẩn bị vào
Internet phần mạng lõi
"  UDP
"  TCP
Tầng Transport 3-110
Hong Bang International University
Department of Information Technology

END OF LECTURE
mobile network

national or global ISP

local or regional ISP


Internet
home network content
provider
network
datacenter
network

enterprise
network
Hong Bang International University
Department of Information Technology

COMPUTER
NETWORKING
mobile network

national or global ISP

local or
Network Layer
Internet
regional ISP

home network content


provider
Instructor: MSc. Hoang Ngoc Long
network datacenter
network

enterprise
network
Ch ng 4: t ng network
M c tiêu:
Hi u các nguyên lý n n t ng c a các d nh v
t ng network:
Các mô hình d ch v t ng network
forwarding so v i routing
Cách mà router ho t ng
routing (ch n ng)
broadcast, multicast
Hi n th c trong Internet

4-2
Ch ng 4: N i dung
4.1 Gi i thi u 4.5 các thu t toán routing
4.2 virtual circuit link state
network (M ng m ch distance vector
o) và datagram hierarchical routing
network 4.6 routing trong Internet
4.3 C u trúc bên trong RIP
router OSPF
4.4 IP: Internet Protocol BGP
nh d ng datagram 4.7 broadcast và multicast
IPv4 addressing routing
ICMP
IPv6

4-3
T ng Network
V n chuy n Segment t
application
transport
network

host g n host nh n data link


physical
network network

Bên phía g i s network


data link
physical
data link
physical

(encapsulate) các segment


data link
physical network network
data link

vào trong các datagram


data link
physical physical

Bên phía nh n, chuy n các network


data link
network
data link

segment lên t ng transport physical physical


network
data link

Các giao th c t ng network


physical
application
network

trong m i host, m i router


transport
data link network network
network physical data link data link

router s xem xét các


data link physical physical
physical

tr ng c a header trong
t tc
qua nó
4-4
2 ch c chính c a t ng network
forwarding: di chuy n T ng t :
các packet t u vào
u ra thích h p routing: ti n trình l p
c a router k ho ch cho chuy n
a packet t
routing: nh ngu n t

t ngu forwarding: ti n trình


v n chuy n qua 1 giao
Các thu nh m
tuy n

4-5
ng qua l i gi a routing và forwarding

thông qua network


local forwarding table
header value output link
0100 3
0101 2
0111 2
1001 1

trong header

0111 1

3 2

4-6
Thi t l p k t n i
Ch ng th 3 trong m t s ki n
trúc m ng:
ATM, frame relay, X.25
Tr c khi các datagram di chuy u
cu i và router trung gian (intervening routers)
thi t l p k t n i o

D ch v k t n i t ng transport so v i t ng
network :
network: gi bao g m các
router trung gian trong tr ng h p k t n i o)
transport: gi a 2 ti n trình

4-7
Mô hình d ch v Network
H i: mô hình d ch v n
các datagram t bên g n bên nh n?

Ví d các d ch v cho Ví d các d ch v cho


các datagram riêng 1 lu ng các
bi t: datagram:
Giao nh n b o m Giao nh n datagram
Giao nh n b o mv i theo th t
tr < 40ms cb o
m t i thi u cho lu ng
H n ch i
trong kho ng tr ng
gi a các packet

4-8
Các mô hình d ch v t ng Network:
B m?
Ki n trúc Mô hình Ph n h i
Network d ch v M t Th t nh thì t t ngh n

Internet best effort không không không không no (inferred


via loss)
ATM CBR T có có có Không
i t t ngh n
ATM VBR T có có có Không
b m t t ngh n
ATM ABR T no có không có
b m
ATM UBR không no có không không

T ng Network 4-9
Ch ng 4: N i dung
4.1 Gi i thi u 4.5 các thu t toán routing
4.2 virtual circuit link state
network (M ng m ch distance vector
o) và datagram hierarchical routing
network 4.6 routing trong Internet
4.3 C u trúc bên trong RIP
router OSPF
4.4 IP: Internet Protocol BGP
nh d ng datagram 4.7 broadcast và multicast
IPv4 addressing routing
ICMP
IPv6

4-10
D ch v connection (h ng k t n i) và
connection-less (phi k t n i)
M ng datagram cung c p d ch v
connectionless t i t ng network
M ng m ch o (virtual-circuit network)
cung c p dich v connection t i t ng
network
T ng t nh các d ch v k t n i nh
h ng và không nh h ng c a t ng
transport, nh ng:
D ch v : host-to-host
Không l a ch n: network ch cung c p 1
d ch v
Th c hi n: trong m ng lõi
4-11
Các m ch o (Virtual circuits)
ng t ngu i t i t ng t nh
m ng n tho i (telephone circuit)
Hi u qu
Các ho t ng c a m ng d c theo ng t
ngu n t i
Thi t l p cu c g i, chia nh m i cu c g i tr c khi
d li u có th truy n
M nh d ng c a k t n i o (VC
identifier) (không ph a ch c
M i ngu n t
trì tr ng thái cho m i k t n

nh m) có th c c p phát cho k t n i o

4-12
S th c hi n k t n i o (VC)
M t k t n i o bao g m:
1. ng (path) t ngu n t i
2. S hi u k t n i o (VC numbers), m t s cho
m t k t n i d c theo ng
3. Các m c trong các b ng forwarding trong các
router d c theo ng
packet thu c v k t n i o mang s hi u
(ch không ph i là m n)
S hi u c a k t n i o có th c thay
i trên m i k t n i.
S hi u m i c a k t n i o c c p phát t
b ng forwarding

4-13
B ng forwarding c a k t n i o
12 22 32

1 3
2
VC number
interface
B ng forwarding trong router number
góc trái trên cùng:

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

Các router k t n i o duy trì thông tin tr ng thái k t n i!

4-14
Các m ch o: các giao th c g i tín hi u
thi t l p, duy trì k t n i o
c dùng trong ATM, frame-relay, X.25
c s d ng trong Internet ngày
nay

application
5. B u dòng d li u 6. Nh n d li u application
transport transport
network 4. Cu c g ck tn i 3. Ch p nh n cu c g i
1. Kh i t o cu c g i network
data link 2. Cu c g n
data link
physical physical

4-15
M ng Datagram
Không thi t l p cu c g i t i t ng network
Các router: không có tr ng thái v các k t n i
gi m cu i
Không có khái ni m v m c network c a k t n i
c chuy a ch c a host

application application
transport transport
network network
data link data link
physical physical

4-16
B ng Datagram forwarding
4t a ch IP, vì li t
a ch
h n là li t kê ra t ng
local forwarding table
a ch (các m c t ng
dest address output link
h p)
address-range 1 3
address-range 2 2
address-range 3 2
address-range 4 1

1
3 2

4-17
B ng Datagram forwarding

Dãy Link Interface

11001000 00010111 00010000 00000000


n 0
11001000 00010111 00010111 11111111

11001000 00010111 00011000 00000000


n 1
11001000 00010111 00011000 11111111

11001000 00010111 00011001 00000000


n 2
11001000 00010111 00011111 11111111
3
khác

Q: nh ng cái gì s x y ra n a ch này
c chia h p lý? 4-18
So trùng prefix dài nh t
So trùng prefix dài nh t
Khi tìm ki m 1 m c trong b ng forwarding
a ch t
c a ch cái mà trùng v a ch

Dãy Link interface

11001000 00010111 00010*** ********* 0

11001000 00010111 00011000 ********* 1

11001000 00010111 00011*** ********* 2

otherwise 3

4-19
M ng datagram ho c m ch o:
t i sao?
Internet (datagram) ATM (m ch o)
D li i gi a các c phát tri n t h
máy tính th n tho i
D ch v m m d o, không i c a con
nh thì ch t ch . ng i:
nh ch t ch , yêu
Nhi u ki u link c uv tin c y
c tính khác nhau C n cho các d ch v có
ng nh t d ch v yêu c u b m cao
Các h th u cu i Các h th u cu i
thông minh (các máy
n tho i
tính) Bên trong m ng ph c
Có th thích u t p
khi n và s a l i
M n
gi n, ph c t p t ng
4-20
Ch ng 4: N i dung
4.1 Gi i thi u 4.5 các thu t toán routing
4.2 virtual circuit link state
network (m ng m ch distance vector
o) và datagram hierarchical routing
network 4.6 routing trong Internet
4.3 C u trúc bên trong RIP
router OSPF
4.4 IP: Internet Protocol BGP
nh d ng datagram 4.7 broadcast và multicast
IPv4 addressing routing
ICMP
IPv6

4-21
T ng quan ki n trúc Router
2 ch c chính c a router:
Ch y các giao th c/thu t toán routing (RIP, OSPF, BGP)
Chuy n ti p các datagram t ng link vào t i ng
link ra
forwarding tables computed, routing
pushed to input ports routing, management
processor
control plane (software)

forwarding data
plane (hardware)

high-seed
switching
fabric

router input ports router output ports


4-22
Các ch a c ng Input
lookup,
link forwarding
line layer switch
termination protocol fabric
(receive)
queueing

decentralized switching:
V a datagram bi t tr c., tìm
output port (c ng ra) b ng cách dùng
b ng forwarding trong b nh c a input
port (c ng vào) ( match plus action )
M c tiêu: hoàn t t x lý input port t i
line speed )
X p hàng: n n nhanh h n
t chuy n ti p bên trong switch
4-23
Switching fabrics

(outputs)
N inputs: switching rate N times line rate desirable

memory

memory bus crossbar

4-24
Switching thông qua b nh (memory)
Các router th h u tiên:
Các máy tính c n v i switching d is u
khi n c a CPU
n b nh c a h th ng
T b gi i h n b a b nh (2 bus
qua m i datagram)

input output
port memory port

Ethernet) Ethernet)

4-25
Switching thông qua 1 bus
datagram t b nh c a port
vào n b nh c a port ra
thông qua m t bus c chia
s
S tranh ch p bus: t c
switching b gi i h b i
thông c a bus bus
32 Gbps bus, Cisco 5600: t c
cho truy c p và các
enterprise router

4-26
Switching thông qua interconnection
network
V t qua các gi i h n c a
thông bus
m ng, crossbar, các m ng k t
n i n i b khác lúc u c
phát tri n k t n i các b vi
x lý trong b x lý
Thi t k c nâng cao: phân crossbar
m nh datagram vào các ô có
dài c nh, chuy n các ô thông
qua fabric.
Cisco 12000: chuy n 60 Gbps
thông qua interconnection
network
4-27
Các c ng ra (Output)

datagram
switch buffer link
fabric layer line
protocol termination
(send)
queueing

m (buffering) c yêu c u khi các


datagram n t fabric nhanh h n t c
truy n
scheduling discipline ch n trong s các
datagram x p hàng truy n

4-28
S p hàng t i c ng ra

switch
switch
fabric
fabric

at t, one packet time later

m khi t n qua switch v t quá t c


dòng ra (output line)
S p hàng (tr ) và m t gói vì b nh mt i
c ng ra b tràn (overflow)!
4-29
Bao nhiêu m?
RFC 3439 quy t m trung
bình b ng v i th
(250 msec) nhân v i dung l ng link
C
Ví d C = 10 Gpbs link: 2.5 Gbit buffer
Khuy n ngh g i N lu m b ng
v i RTT . C
N

4-30
S p hàng t i c ng vào
fabric ch m h n s ph i h p c a các c ng vào -> s p hàng
có th x y ra t i các hàng vào
S p hàng ch m tr vào m t gói do tràn b u
vào!
Head-of-the-Line (HOL) blocking: cs p
hàng t i phía tr n các datagram khác
i di chuy n lên tr c

switch switch
fabric fabric

S c nh tranh t i c ng ra: one packet time


Ch có m later: packet màu
có th c truy n. xanh lá tr i qua
th p h n b HOL blocking
ch n l i
4-31
Ch ng 4: N i dung
4.1 Gi i thi u 4.5 các thu t toán routing
4.2 virtual circuit link state
network và datagram distance vector
network hierarchical routing
4.3 C u trúc bên trong 4.6 routing trong Internet
router RIP
4.4 IP: Internet Protocol OSPF
nh d ng datagram BGP
IPv4 addressing 4.7 broadcast và multicast
ICMP routing
IPv6

4-32
T ng Internet network
Các ch c t ng network c a host và router:

transport layer: TCP, UDP

Các giao th c routing Giao th c IP


ch các quy a ch
RIP, OSPF, BGP nh d ng datagram
các quy c qu n lý gói
network forwarding
table
Giao th c ICMP
Thông báo l i

4-33
nh d ng IP datagram
32 bits
datagram(byte)
ver head. type of length
(bytes) len service Dành cho
fragment
16-bit identifier flgs
offset
time to upper header
live layer checksum
32 bit source IP address
32 bit destination IP address

how much overhead?


20 bytes of TCP
20 bytes of IP
segment TCP
= 40 bytes + app
layer overhead

4-34
Phân m nh và t ng h p IP
ng link m ng có MTU
(max.transfer size) frame
l n nh t có th m ck t
n i
Các ki ng link khác vào:
nhau, các MTU khác nhau ra:

IP datagram l c chia
( fragmented ) bên trong
m ng reassembly
1 datagram thành 1 vài
datagram
t ng h p ch c th c
hi n i cùng
Các bit c a IP header
cs d xác
nh, s t các
fragment liên quan 4-35
Phân m nh và t ng h p IP
length ID fragflag offset
Ví d : =4000 =x =0 =0
4000 byte datagram
MTU = 1500 bytes

1480 bytes length ID fragflag offset


=1500 =x =1 =0

offset = length ID fragflag offset


1480/8 =1500 =x =1 =185

length ID fragflag offset


=1040 =x =0 =370

4-36
Ch ng 4: N i dung
4.1 Gi i thi u 4.5 các thu t toán routing
4.2 virtual circuit link state
network và datagram distance vector
network hierarchical routing
4.3 C u trúc bên trong 4.6 routing trong Internet
router RIP
4.4 IP: Internet Protocol OSPF
nh d ng datagram BGP
IPv4 addressing 4.7 broadcast và multicast
ICMP routing
IPv6

4-37
a ch IP: gi i thi u
223.1.1.1
a ch IP: 32-bit
nh n d ng cho host,
223.1.2.1

router interface 223.1.1.2


223.1.1.4 223.1.2.9
interface: k t n i
gi a host/router và
ng link v t lý
223.1.3.27
223.1.1.3
223.1.2.2
Router th ng có nhi u
interface
host th ng có 1 ho c
2 interface (ví d 223.1.3.1 223.1.3.2

wired Ethernet,
wireless 802.11)
M a ch c 223.1.1.1 = 11011111 00000001 00000001 00000001
liên k t v i m i
interface 223 1 1 1

4-38
a ch IP: gi i thi u
223.1.1.1
H i: các interface
th t s ck tn i
223.1.2.1

nh th nào? 223.1.1.2
223.1.1.4 223.1.2.9

s tìm hi u
trong ch ng 5, 6. 223.1.1.3
223.1.3.27
223.1.2.2

các interface Ethernet có dây

223.1.3.1 223.1.3.2

(không có router trung gian))

4-39
Các Subnet (m ng con)
ch IP: 223.1.1.1
Ph n subnet các bit
có tr ng s cao 223.1.1.2 223.1.2.1
223.1.1.4 223.1.2.9
Ph n host các bit
có tr ng s th p 223.1.2.2
subnet là gì? 223.1.1.3 223.1.3.27

Các interface c a subnet


thi t b có ph n
subnet c a a ch IP 223.1.3.1 223.1.3.2

gi ng nhau
Có th giao ti p v t
lý v i nhau mà không M ng g m 3 subnet
c n router trung gian
can thi p
T ng Network 4-40
Các m ng con (subnet)
223.1.1.0/24
223.1.2.0/24
Ph ng pháp 223.1.1.1

xác nh các 223.1.1.2 223.1.2.1


subnet, tách m i 223.1.1.4 223.1.2.9

interface t host 223.1.2.2


ho c router c a nó, 223.1.1.3 223.1.3.27

t o vùng các m ng subnet


cl p
M i m ng c l p 223.1.3.1 223.1.3.2

c g i là m t
subnet 223.1.3.0/24

subnet mask: /24


T ng Network 4-41
Subnets 223.1.1.2

Có 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

4-42
nh a ch IP: CIDR
CIDR: Classless InterDomain Routing
Ph n subnet c a a ch có dài b t
nh d ng a ch : a.b.c.d/x, trong x là
s các bits trong ph n subnet c a a ch

subnet host
11001000 00010111 00010000 00000000
200.23.16.0/23

4-43
a ch l ym t
a ch ?
H i: làm th nào m t host l a ch IP?

Mã hóa c ng b i ng i qu n tr h th ng
trong 1 file
Windows: control-panel->network->configuration-
>tcp/ip->properties
UNIX: /etc/rc.config
DHCP: Dynamic Host Configuration Protocol:
t ng l a ch IP t server
plug-and-play

T ng Network 4-44
DHCP: Dynamic Host Configuration Protocol
M c tiêu: cho phép host t ng l a ch IP c a nó t
server trong m ng
Có th gia h a ch cc p
Cho phép tái s d a ch IP (ch gi a ch
ck tn
H tr cho ng ng mu n tham gia vào m ng
(trong th i gian ng n)
T ng quan DHCP :
host qu p DHCP discover
[tùy ch n]
ng b p DHCP offer [tùy
ch n]
host yêu c a ch IP: DHCP request msg
DHCP server g a ch : DHCP ack msg
4-45
Ng c nh DHCP client-server

DHCP
223.1.1.0/24
server
223.1.1.1 223.1.2.1

223.1.1.2 Máy DHCP client


223.1.1.4 223.1.2.9

223.1.2.2
223.1.1.3 223.1.3.27

223.1.2.0/24

223.1.3.1 223.1.3.2

223.1.3.0/24

4-46
Ng c nh DHCP client-server
DHCP server: 223.1.2.5 DHCP discover arriving
client
src : 0.0.0.0, 68
dest.: 255.255.255.255,67
yiaddr: 0.0.0.0
transaction ID: 654

DHCP offer
src: 223.1.2.5, 67
dest: 255.255.255.255, 68
yiaddrr: 223.1.2.4
transaction ID: 654
lifetime: 3600 secs
DHCP request
src: 0.0.0.0, 68
dest:: 255.255.255.255, 67
yiaddrr: 223.1.2.4
transaction ID: 655
lifetime: 3600 secs

DHCP ACK
src: 223.1.2.5, 67
dest: 255.255.255.255, 68
yiaddrr: 223.1.2.4
transaction ID: 655
lifetime: 3600 secs

T ng Network 4-47
DHCP: nhi u thông tin
DHCP không ch tr v a ch IP c ch
nh trên subnet, mà nó còn có th tr v
nhi u thông tin nh sau:
a ch c a router first-hop c a client
Tên và a ch IP c a DNS sever
network mask (cho bi t ph n c a m ng so v i
ph n ph n host c a a ch IP)

4-48
DHCP: ví d
laptop tham gia vào
DHCP DHCP m ng c n a ch IP
UDP
c a nó, a ch c a
DHCP
DHCP IP
DHCP Eth router first-hop, a
Phy ch c a : dùng DHCP
DHCP

DHCP DHCP 168.1.1.1


DHCP UDP gói trong 802.1 Ethernet
IP
Ethernet frame broadcast
DHCP

DHCP Eth
Phy (dest: FFFFFFFFFFFF) trên
vào trong router c nh n t i router
y DHCP server
Ethernet demuxed to IP
demuxed, UDP demuxed to
DHCP

4-49
DHCP: ví d
DHCP DHCP DHCP server l a ch
DHCP UDP IP c a client ch a DHCP
DHCP IP a ch IP c a
DHCP Eth router first-hop cho
Phy a ch IP
c a DNS server

DHCP
a DHCP
c
DHCP
DHCP UDP
DHCP IP chuy n cho client, tách
DHCP Eth DHCP t i client
Phy
Bây gi , client bi a
DHCP
vào router
ch IP c a
ch IP c a DSN server,
a ch IP c a router
first-hop c a nó

4-50
DHCP: Wireshark Message type: Boot Reply (2)

output (home LAN) Hardware type: Ethernet


Hardware address length: 6
Hops: 0
Transaction ID: 0x6b3a11b7
Seconds elapsed: 0
Message type: Boot Request (1) Bootp flags: 0x0000 (Unicast)
Hardware type: Ethernet Client IP address: 192.168.1.101 (192.168.1.101)
Hardware address length: 6 Your (client) IP address: 0.0.0.0 (0.0.0.0)
Hops: 0 Next server IP address: 192.168.1.1 (192.168.1.1)
Transaction ID: 0x6b3a11b7 Relay agent IP address: 0.0.0.0 (0.0.0.0)
Seconds elapsed: 0 Client MAC address: Wistron_23:68:8a (00:16:d3:23:68:8a)
Bootp flags: 0x0000 (Unicast) Server host name not given
Client IP address: 0.0.0.0 (0.0.0.0) Boot file name not given
Your (client) IP address: 0.0.0.0 (0.0.0.0) Magic cookie: (OK)
Next server IP address: 0.0.0.0 (0.0.0.0) Option: (t=53,l=1) DHCP Message Type = DHCP ACK
Relay agent IP address: 0.0.0.0 (0.0.0.0) Option: (t=54,l=4) Server Identifier = 192.168.1.1
Client MAC address: Wistron_23:68:8a (00:16:d3:23:68:8a) Option: (t=1,l=4) Subnet Mask = 255.255.255.0
Server host name not given Option: (t=3,l=4) Router = 192.168.1.1
Boot file name not given Option: (6) Domain Name Server
Magic cookie: (OK) Length: 12; Value: 445747E2445749F244574092;
Option: (t=53,l=1) DHCP Message Type = DHCP Request IP Address: 68.87.71.226;
Option: (61) Client identifier IP Address: 68.87.73.242;
Length: 7; Value: 010016D323688A; IP Address: 68.87.64.146
Hardware type: Ethernet Option: (t=15,l=20) Domain Name = "hsd1.ma.comcast.net."
Client MAC address: Wistron_23:68:8a (00:16:d3:23:68:8a)
Option: (t=50,l=4) Requested IP Address = 192.168.1.101
Option: (t=12,l=5) Host Name = "nomad"
Option: (55) Parameter Request List
Length: 11; Value: 010F03062C2E2F1F21F92B
1 = Subnet Mask; 15 = Domain Name
3 = Router; 6 = Domain Name Server
44 = NetBIOS over TCP/IP Name Server

4-51
a ch l c
a ch IP?
H i: làm sao m ng l c ph n subnet c a
ch IP?
l y ph c c p phát c a không gian
a ch IP do ISP cung c p

a ch c a ISP 11001000 00010111 00010000 00000000


200.23.16.0/20

T ch c 0 11001000 00010111 00010000 00000000 200.23.16.0/23


T ch c 1 11001000 00010111 00010010 00000000 200.23.18.0/23
T ch c 2 11001000 00010111 00010100 00000000 200.23.20.0/23

T ch c 7 11001000 00010111 00011110 00000000 200.23.30.0/23

T ng Network 4-52
a ch phân c p: route tích h p
a ch phân c p cho phép qu ng cáo hi u qu
nh tuy n

200.23.16.0/23

200.23.18.0/23
200.23.16.0/20
200.23.20.0/23 . Fly-By-Night-ISP
.
. . Internet
.
.
200.23.30.0/23

ISPs-R-Us
199.31.0.0/16

4-53
nh a ch phân c p: các route c th h n

ISPs-R-Us có 1 route c th h n t i t ch c 1

T ch c 0
200.23.16.0/23

g i cho tôi b t c thông tin gì


V a ch b u
T ch c 2 200.23.16.0/20
200.23.20.0/23 . Fly-By-Night-ISP
.
. .
. Internet
T ch c 7 .
200.23.30.0/23
g i cho tôi b t c thông tin
ISPs-R-Us
gì v a ch b u
T ch c 1 199.31.0.0/16
ho c 200.23.18.0/23
200.23.18.0/23

T ng Network 4-54
a ch IP: the last word...

Q: làm cách nào mà m t ISP l y c kh i a


ch ?
A: ICANN: Internet Corporation for Assigned
Names and Numbers http://www.icann.org/
C p phát a ch
Qu n lý DNS
Gán các tên mi n, gi i quy t tranh ch p

4-55
NAT: network address translation

Internet
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 tc Các datagram v i ngu n ho


kh i m ng c c b có trong m a ch
cùng m a ch IP NAT 10.0.0.0/24 cho ngu
là: 138.76.29.7, (nh thông th ng)
v i các s hi u c ng
ngu n khác nhau 4-56
NAT: network address translation
Trình bày: m ng c c b ch a ch i
v i th gi i bên ngoài:
Không c n thi a ch t ISP:
ch c a ch IP cho t t c các thi t b
Có th a ch IP c a các thi t
b trong m ng c c b mà không c n thông báo
cho th gi i bên ngoài
Có th i ISP mà không c i
a ch IP c a các thi t b trong m ng n i b
Các thi t b bên trong m ng c c b không
nhìn th a ch rõ ràng t
ng b o m t)
4-57
NAT: network address translation
th c hi n: NAT router ph i:

thay th a ch IP ngu n, s hi u
c ng ngu n) m a
ch IP NAT, s hi u port m i)
. . . Các client/server xa s a ch a
ch IP NAT, s hi u port m i) nh a ch

Ghi nh (trong b ng chuy i NAT) m i c p chuy n


a ch IP ngu n, s hi a ch IP
NAT, s hi u port m i)

n: thay th a ch IP NAT, s hi u
port m i) trong các tr a m i datagram
n v i giá tr t ng a ch IP và s hi u c ng
ngu n) trong b ng NAT
4-58
NAT: network address translation
2: NAT router 1: host 10.0.0.1
WAN side addr LAN side addr
138.76.29.7, 5001 10.0.0.1, 3345 128.119.40.186, 80
138.76.29.7, 5001,

S: 10.0.0.1, 3345
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:
138.76.29.7, 5001

4-59
NAT: network address translation
Tr ng s hi u port 16-bit:
60,000 k t n ng th i v i m a ch
phía LAN!
NAT gây ra tranh lu n:
Các router ch nên x n t ng 3
Vi ph m th a thu n end-to-end
Nh ng nhà thi t k ng d ng ph n
kh a NAT, ví d ng d ng P2P
Vi c thi a ch IP s c gi i quy t
khi dùng IPv6

4-60
V n NAT traversal
Các client mu n k t n i t i
a ch 10.0.0.1
a ch 10.0.0.1 c a server là client
10.0.0.1
trong m ng LAN (client không
th dùng nó nh a ch IP ?
) 10.0.0.4
Ch a ch có th c
nhìn th y t a ch 138.76.29.7 NAT
c NAT: 138.76.29.7 router
Gi i pháp 1: c u hình NAT
chuy n các yêu c u
k tn nt c
cho tr c t i server
Ví d (123.76.29.7, port 2500)
c chuy n t i
10.0.0.1 port 25000

4-61
V n NAT traversal
Gi i pháp 2: Giao th c
Universal Plug and Play (UPnP)
Internet Gateway Device 10.0.0.1
c IGD
NAT:
H a ch IP public
(138.76.29.7)
thêm/g b các port NAT
router
mapping (th i gian thuê)

4-62
Các v n NAT traversal
Gi i pháp 3: chuy n ti c s d ng
trong Skype)
c NAT thi t l p k t n chuy n
ti p
client bên ngoài k t n chuy n ti p
S chuy n ti p này b c c u các packet gi a các
2. Kk t tn ni i
chuy n ti p 1. K t n i 10.0.0.1
c kh i t o chuy n ti p
b i client c kh i t o
3. Chuy n ti p t c
client c thi t l p NAT
138.76.29.7 NAT
router

4-63
Ch ng 4: N i dung
4.1 Gi i thi u 4.5 các thu t toán routing
4.2 virtual circuit link state
network và datagram distance vector
network hierarchical routing
4.3 C u trúc bên trong 4.6 routing trong Internet
router RIP
4.4 IP: Internet Protocol OSPF
nh d ng datagram BGP
IPv4 addressing 4.7 broadcast và multicast
ICMP routing
IPv6

4-64
ICMP: internet control message protocol
c s d ng b i các
truy n

thông thông tin t ng 0 0 echo reply (ping)
network 3 0 dest. network unreachable
Thông báo: host, network, 3 1 dest host unreachable
port, giao th c không có 3 2 dest protocol unreachable
th c 3 3 dest port unreachable
Ph n h i request/reply 3 6 dest network unknown
c dùng b i ping) 3 7 dest host unknown
T ng network trên IP: 4 0 source quench (congestion
control - not used)
c
mang trong các IP 8 0 echo request (ping)
datagram 9 0 route advertisement
10 0 router discovery
p ICMP: lo i, 11 0 TTL expired
mã c u 12 0 bad IP header
tiên c a IP datagram gây
ra l i
4-65
Traceroute và ICMP
Ngu n g i m t chu i các Khi thông p ICMP
segment UDP n n, ngu n ghi l i RTTs
Cái u tiên có TTL =1
Cái th 2 có TTL=2, t ng
t . Tiêu chu n d ng:
Không gi ng s port Segment UDP l n l t
Khi datagram th n n nt
router th n: v p
router h y datagram ICMP port không có
Và g i n ngu n m t thông th c (lo i 3, mã 3)
p ICMP (lo i 11, mã 0)
Thông p ICMP bao g m Ngu n d ng
tên và a ch IP c a router

3 probes 3 probes

3 probes
4-66
IPv6: ng l c
ng l u: a ch
32-bit s c c p phát c n ki t.
ng l c khác:
nh d ng c c x lý/chuy n
gói
t u ki n thu n l i cho QoS

nh d ng datagram IPv6 :
dài c nh 40 byte
Không cho phép phân m nh

4-67
nh d ng datagram IPv6
u tiên (priority): u tiên c a các
datagram trong lu ng
Nhãn lu ng (flow Label): nh các datagram

(khái ni ).
Header k ti p (next header): nh giao th c
T ng trên cho d li u.
ver pri flow label
payload len next hdr hop limit
source address
(128 bits)
destination address
(128 bits)

data

32 bits 4-68
Nh ng thay i khác so v i IPv4
checksum: c b toàn b gi m th i gian
x lý t i m i hop
options: c cho phép, nh ng n m ngoài
c ch ra b i tr ng Next
Header
ICMPv6: phiên b n m i c a ICMP
Các ki p b sung. Ví d Packet Too Big
Các ch n lý nhóm multicast

4-69
Chuy n t IPv4 sang IPv6
Không ph i t t c u có th c nâng
c ng th i
Không có flag days
M ng s ho ng nh th nào v i các
router dùng c IPv4 và IPv6?
tunneling: c mang nh là
payload trong datagram c a IPv4 gi a các
router IPv4
IPv4 payload

UDP/TCP payload

IPv6 datagram
IPv4 datagram
4-70
Tunneling
A B IPv4 tunnel E F
Cách nhìn logic:
IPv6 IPv6 IPv6 IPv6

A B C D E F

IPv6 IPv6 IPv4 IPv4 IPv6 IPv6

4-71
Tunneling
A B IPv4 tunnel E F
Cách nhìn logic:
IPv6 IPv6 IPv6 IPv6

A B C D E F

IPv6 IPv6 IPv4 IPv4 IPv6 IPv6

flow: X src:B src:B flow: X


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

data data

A- -B: E- -F:
IPv6 B- -C: B- -C: IPv6
IPv6 bên trong IPv6 bên trong
IPv4 IPv4 4-72
Ch ng 4: N i dung
4.1 Gi i thi u 4.5 các thu t toán routing
4.2 virtual circuit link state
network và datagram distance vector
network hierarchical routing
4.3 C u trúc bên trong 4.6 routing trong Internet
router RIP
4.4 IP: Internet Protocol OSPF
nh d ng datagram BGP
IPv4 addressing 4.7 broadcast và multicast
ICMP routing
IPv6

4-73
Tác ng l n nhau gi a routing và
forwarding

local forwarding table


output link
address-range 1 3
address-range 2 2
address-range 3 2
address-range 4 1

1
3 2

4-74
Mô hình th
5

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

Ghi chú:
N E

4-75
Mô hình th : Chi phí
5
c(x,x )
3 e.g., c(w,z) = 5
v w 5
2
u Chi phí có th luôn luôn là 1, ho c
2
3
1 z ng c l
1 2 ho n t c ngh n
x 1
y

1, x2, x3 p) = c(x1,x2) + c(x2,x3 p-1,xp)

H i: p nh t t u t i z?
Thu t toán routing: thu ng
có chi phí th p nh t
4-76
Phân lo i thu t toán Routing
Q: thông tin toàn c c hay phân Q: hay ng?
c p (global or decentralized)?
:
Toàn c c: Các route thay i
T t c các router có toàn b ch m theo th i gian
thông tin v chi phí k t n i, ng:
c u trúc m ng
Các route thay i
Thu t toán link state nhanh
Phân c p: C p nh t theo chu
router bi c
k t n i v t lý v i nó, và chi phí Ph n ng v i nh ng
k tn thay i v chi phí
L p l i qua trình tính toán, k tn i
i thông tin v i các
neighbor
Thu t toán distance vector
4-77
Ch ng 4: N i dung
4.1 Gi i thi u 4.5 các thu t toán routing
4.2 virtual circuit link state
network và datagram distance vector
network hierarchical routing
4.3 C u trúc bên trong 4.6 routing trong Internet
router RIP
4.4 IP: Internet Protocol OSPF
nh d ng datagram BGP
IPv4 addressing 4.7 broadcast và multicast
ICMP routing
IPv6

4-78
Thu t toán routing Link-State
Thu t toán Dijkstra Ký hi u:
Bi t chi phí k t n i, c u c(x,y): chi phí k t n i
trúc m ng c a t t c các t
node n u không k t n i tr c
c th c hi u thông qua ti n neighbor
link state broadcast D(v): giá tr ch phí
T t c các nodes có cùng hi n t i c
thông tin v i nhau t ngu n t
p(v): node tr c n m
phí th p nh t t 1 node ngu n
n t t c các t iv
node khác N': t p các node mà
Cho tr c b ng forwarding p
c nh nh
L p l i: sau k l n l p l i,
bi
phí th p nh t c 4-79
Thu t toán Dijsktra
1 :
2 N' = {u}
3 for all nodes v
4 if v adjacent to u
5 then D(v) = c(u,v)
6 else D(v) =
7
8
9 find w not in N' such that D(w) is a minimum
10 add w to N'
11 update D(v) for all v adjacent to w and not in N' :
12 D(v) = min( D(v), D(w) + c(w,v) )
13 /* chi phí v là chính nó chi phí
14 chi phí w v*/
15 until all nodes in N'

4-80
Thu t toán Dijkstra : ví d
D(v) D(w) D(x) D(y) D(z)
N' p(v) p(w) p(x) p(y) p(z)
0 u 7,u 3,u 5,u
1 uw 6,w 5,u 11,w
2 uwx 6,w 11,w 14,x
3 uwxv 10,v 14,x
4 uwxvy 12,y
5 uwxvyz x
9

Ghi chú: 5 7
4
Xây d n
nh t b ng cách l n theo các 8
predecessor node 3
u w y z
ng có chi phí b ng 2
nhau có th t n t i (có th
3
b chia tùy ti n) 4
7
v
4-81
Thu t toán Dijkstra: ví d

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

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

4-82
Thu t toán Dijkstra: ví d (2)
K t qu n nh t t u:

v w
u z
x y

K t qu b ng forwarding trong u:
link
v (u,v)
x (u,x)
y (u,x)
w (u,x)
z (u,x)
4-83
Thu t toán Dijkstra, th o lu n
ph c t p c a thu t toán: n nodes
M i l n duy t: c n ki m tra t t c các node, w, không có
trong N
n(n+1)/2 phép so sánh: O(n2)
Có nhi u cách th c hi n hi u qu h n: O(nlogn)
Có th dao ng:
Ví d : chi phí k t n i b ng v i s l ng l u thông c
mang
1
A 1+e A A A
2+e 0 0 2+e 2+e 0
D 0 0 B D 1+e 1 B D B D 1+e 1 B
0 0
0 e 0 0
1
C C 0 1
C 1+e C 0
1
e
Cho các chi phí, Cho các chi phí, Cho các chi phí,
nh tuy n m nh tuy t m nh tuy t m
K t qu trong chi phí K t qu trong chi K t qu trong chi
m i phí m i phí m 4-84
i
Ch ng 4: N i dung
4.1 Gi i thi u 4.5 các thu t toán routing
4.2 virtual circuit link state
network và datagram distance vector
network hierarchical routing
4.3 C u trúc bên trong 4.6 routing trong Internet
router RIP
4.4 IP: Internet Protocol OSPF
nh d ng datagram BGP
IPv4 addressing 4.7 broadcast và multicast
ICMP routing
IPv6

4-85
Thu t toán Distance vector
Công th c Bellman-Ford (dynamic programming)

cho
dx(y) := chi phí c tt
xt iy
thì
dx(y) = minv{c(x,v) + dv(y) }
v
min
Chi phí t neighbor v t
Chi phí t i neighbor v

min c th c hi n trên t t c các neighbor v c a x


4-86
Bellman-Ford ví d
5
3
Rõ ràng, dv(z) = 5, dx(z) = 3, dw(z) = 3
v w 5
2
u 2 1 z -F cho:
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
c t i thi u là hop k ti
ng n nh c s d ng trong b ng forwarding
4-87
Thu t toán Distance vector
Dx(y) = cl ng chi phí th p nh t t n
y
x duy trì distance vector Dx = [Dx(y): y N]
node x:
Bi n m i neighbor v: c(x,v)
Duy trì distance vectors c a các neighbor
c a nó . Cho m i duy trì neighbor v, x
Dv = [Dv(y): y N ]

4-88
Thu t toán Distance vector
Ýt ng chính:
M i node nh g i c l ng distance
vector c a nó cho các neighbor
Khi x nh n c l ng DV m i t neighbor,
nó c p nh t DV c a nó dùng công th c B-
F:
Dx v{c(x,v) + Dv N

D i nh u khi
kiệnn t nhiên, c l ng
Dx(y) h i t t i chi phí dx th c s nh nh t
dx(y)

4-89
Thu t toán Distance vector
L ng b : M i node:
m il pc cb c
gây ra b i:
Chi phí k t n i c c b
i
neighbor)
p c p nh t
DV t neighbor
Phân b :
M i node thông báo
n các neighbor ch
khi DV c i
n các
neighbor c a nó n u c n
thi t
4-90
Dx(z) = min{c(x,y) +
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)}
= min{2+0 , 7+1} = 2 Dy(z), c(x,z) + Dz(z)}
= min{2+1 , 7+0} = 3

node x x y z x y z
x 0 2 7 x 0 2 3
y y 2 0 1
z z 7 1 0

node y x y z y
2 1
x
x z
y 2 0 1 7
z

node z x y z
x
y
z 7 1 0
4-91
Dx(z) = min{c(x,y) +
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)}
= min{2+0 , 7+1} = 2 Dy(z), c(x,z) + Dz(z)}
= min{2+1 , 7+0} = 3

node x x y z x y z x y z
x 0 2 7 x 0 2 3 x 0 2 3
y y 2 0 1 y 2 0 1
z z 7 1 0 z 3 1 0

node y x y z x y z x y z y
2 1
x x 0 2 7 x 0 2 3 x z
y 2 0 1 y 2 0 1 y 2 0 1 7
z z 7 1 0 z 3 1 0

node z x y z x y z x y z
x x 0 2 7 x 0 2 3
y y 2 0 1 y 2 0 1
z 7 1 z 3 1 0 z 3 1 0
0
4-92
Distance vector: chi phí k t n i
Chi phí k t n i:
node phát hi n s i chi phí 1
k tn ic cb y
4 1
C p nh nh tuy n, tính x z
toán l i distance vector 50

N i, thì thông báo cho


neighbor

tin t0 : y
t t
t1 : z
nhanh
t2 : y z
y không y
z.
4-93
Distance vector: Chi phí k t n i

Chi phí k t n i: 60
node phát hi n s i chi 4
y
1
phí k t n i c c b
x z
Tin x m- n vô 50
cùng v !
44 l n duy t tr c khi thu t
toán nh

ng x u ng c l i:
N t iX:
Z nói v i Y kho ng cách c n X là không xác
nh (vì v y Y s i X thông qua Z)
u này s gi i quy cv n vô
t n hay không?
4-94
So sánh gi a thu t toán LS va DV
ph c t p c a thông S linh ho t: u gì x y ra
p n u router g p s c ?
LS: v i n nodes, E k t n i, thì có LS:
cg i node có th qu ng cáo sai
DV: ch i gi a các neighbor chi phí k t n i
Th i gian h i t khác nhau M i node ch tính toán
b ng riêng c a nó
T h it DV:
LS: thu t toán O(n2) yêu c u DV node có th qu ng cáo
p sai v chi phí
Có th ng B ng c a m c
DV: th i gian h i t khác nhau s d ng b i các node
Có th là routing loop khác
V n vô h n (count- L c lan truy n
to-infinity) thông qua m ng

T ng Network 4-95
Ch ng 4: N i dung
4.1 Gi i thi u 4.5 các thu t toán routing
4.2 virtual circuit link state
network và datagram distance vector
network hierarchical routing
4.3 C u trúc bên trong 4.6 routing trong Internet
router RIP
4.4 IP: Internet Protocol OSPF
nh d ng datagram BGP
IPv4 addressing 4.7 broadcast và multicast
ICMP routing
IPv6

4-96
nh tuy n có c u trúc
(Hierarchical routing)
Cho t u v routing c a chúng ta
th c hi n trong môi tr ng lý t ng hóa
T tc ng nh t
M ng ph ng
ct
Quy mô: v i 600 tri u Qu n tr
n: internet = m ng c a các
Không th l u tr t t m ng
c n trong M i qu n tr m ng có th
các b nh tuy n mu n u hành nh
Vi ib nh tuy n trong m ng c a
s làm tràn ng p các riêng h
liên k t!
T ng Network 4-97
nh tuy n có c u trúc

c gom vào gateway router:


các vùng, autonomous T edge ) c a
systems (AS) AS c a nó
Các router trong cùng Có liên k n router
AS ch y cùng giao th c trong AS khác
nh tuy n v i nhau
giao th c nh tuy n
intra-AS
Các router trong các AS
khác nhau có th ch y các
giao th nh tuy n intra-
AS khác nhau

4-98
K t n i các AS

3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b AS1
1d B ng forwarding c
c u hình b i c thu t
toán nh tuy n intra- và
inter-AS
Intra-AS Inter-AS
intra-AS thi t l p các
m c cho các n
Forwarding
n i m ng
inter-AS & intra-AS
thi t l p các m c cho
các n ngo i
4-99
Tác v Inter-AS
Gi s router trong AS1 ph i:
AS1 nh n c 1. H c các n nào
datagram v i n có th t i c thông
n m ngoài AS1: qua AS2 và AS3
router nên chuy n 2. Lan truy n thông tin
packet n router này n t t c các
gateway , nh ng là router trong AS1
cái nào? Công vi c c a nh tuy n
inter-AS!
3c
3a
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d

4-100
Ví d : thi t l p b ng forwarding trong router
1d
Gi s AS1 h c (thông qua giao th c inter-AS) mà
subnet x có th ch m t i thông qua AS3 (gateway 1c),
nh ng không qua AS2
Giao th c inter-AS lan truy nt t
c các router n i m ng
nh t nh tuy n intra-AS mà
interface I c a nó n p
nh t t i 1c
a giá tr (x,I) vào b ng forwarding

3c
x
3a
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d

4-101
Ví d : ch n gi a nhi u AS
Bây gi , gi s AS1 h c t giao th c inter-AS mà
subnet x có th ch m t i t AS3 và t AS2.
c u hình b ng forwarding, router 1d ph nh
chuy n các packet
x
c c a giao th nh tuy n
inter-AS!

3c
x
3a
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d
?
4-102
Ví d : ch n gi a nhi u AS
Bây gi , gi s AS1 h c t giao th c inter-AS mà
subnet x có th ch m t c t AS3 và t AS2.
c u hình b ng forwarding, router 1d ph nh
chuy n packet t
c c a giao th nh tuy n
inter-AS!
hot potato routing: g i packet t i 2 router g n nh t

I
hot potato routing:
inter-AS mà subnet
intra- gateway có chi
x

gateway (x,I)
forwarding

4-103
Ch ng 4: N i dung
4.1 Gi i thi u 4.5 các thu t toán routing
4.2 virtual circuit link state
network và datagram distance vector
network hierarchical routing
4.3 C u trúc bên trong 4.6 routing trong Internet
router RIP
4.4 IP: Internet Protocol OSPF
nh d ng datagram BGP
IPv4 addressing 4.7 broadcast và multicast
ICMP routing
IPv6

4-104
nh tuy n Intra-AS
Còn g i là interior gateway protocols (IGP)
Các giao th c nh tuy n intra-AS ph bi n:
RIP: Routing Information Protocol
OSPF: Open Shortest Path First
IGRP: Interior Gateway Routing Protocol
( c quy n c a Cisco)

4-105
RIP ( Routing Information Protocol)
Công b -UNIX
Thu t toán distance vector
Metric kho ng cách: s l ng hop (max = 15 hops), m i link có
giá tr là 1
i gi a các neighbors m i 30 giây trong
p ph n h i (còn g i là advertisement)
M n 25 subnet

subnet :
u v subnet hops
w u 1
A B
v 2
w 2
x x 3
z C D y 3
y z 2
4-106
RIP: ví d

z
w x y
A D B

w A 2
y B 2
z B 7
x -- 1
....
4-107
RIP: ví d
- -D

w - 1
x - 1
z C 4
z
w x y
A D B

w A 2
y B 2
A 5
z B 7
x -- 1
....
4-108
RIP: l i ng k t n i và ph c h i

N u không có qu ng cáo nào sau 180 giây -->


neighbor/k t n i c xem nh ch t
Nh ng ng qua neighbor b vô hi u
Các qu ng cáo m i c g i t i các neighbor
Các neighbor ti p t c g i ra nh ng qu ng cáo
m i (n u các b ng b thay i)
Thông tin v l i ng k t n i nhanh chóng (?) lan
truy n trên toàn m ng
poison reverse c dùng ch n vòng l p
ping-pong (kho ng cách vô h n = 16 hops)

4-109
RIP: x lý b ng
Các b ng nh tuy n c qu n lý b i ti n
trình m c application c g i là route-d
(daemon)
Các qu ng cáo c g i trong các packet UDP,
c l p l i theo chu
routed routed

transport transprt
(UDP) (UDP)
network forwarding forwarding network
(IP) table table (IP)
link link
physical physical

4-110
OSPF (Open Shortest Path First)
open : s n sàng công khai
Dùng thu t toán link state
Ph bi n packet LS
B c u trúc m ng t i m i node
t toán Dijkstra
Qu ng cáo OSPF mang 1 entry cho m i
neighbor
Các qu n toàn b AS
p OSPF tr c ti p trên
IP (ch không ph i là TCP ho c UDP)
Giao th c nh tuy n IS-IS : g n gi ng v i
OSPF
4-111
c tính ti n b c a OSPF
(không có trong RIP)
B o m t: t t c c ch ng
th ch ng l i s xâm nh p có h i)
Cho phép có nhi có chi phí nh nhau
(RIP ch cho 1)
V im ng k t n i, nhi u s li u chi phí (cost
metrics) cho TOS khác nhau (ví d ng
k tn iv c thi t l
l c t t nh t; cao cho ToS th i gian th c)
H tr uni- và multicast tích h p:
Multicast OSPF (MOSPF) dùng cùng c s d
li u c u trúc m ng nh OSPF
OSPF phân c p trong các mi n l n (large domains).
4-112
OSPF phân c p
Router biên (boundary )
backbone router

backbone
area
border
routers

area 3

internal
routers
area 1
area 2

4-113
OSPF phân c p
Phân c p m c 2: vùng c c b (local area), backbone.
Các qu ng cáo link-state ch trong vùng
M i node có chi ti t c u trúc c a vùng; ch bi t
h ng ng n nh n các m ng trong các
vùng khác.
Các router area border: tóm t t các kho ng cách
n các m ng trong vùng c a nó, qu n các
router Area Border c a các vùng khác.
Các backbone router: ch nh tuy c
gi i h n backbone.
boundary routers: k t n n các AS khác.

4-114
nh tuy n Internet inter-AS : BGP
BGP (Border Gateway Protocol): giao th c
nh tuy n liên mi n (inter-domain ) trên th c
t
g n k t Internet l i v i nhau
p cho m i AS m t ph ng ti :
eBGP: l y thông tin có th ch m t i subnet t các
AS neighbor.
iBGP: lan truy n t t c các router
bên trong AS.
t t n các m ng khác d a
trên thông tin kh m t i và chính sách.
Cho phép subnet qu ng cáo s t n t i c a nó
n ph n còn l i c a Internet: I am here
4-115
BGP c b n
BGP session: 2 router BGP ( c p i các thông
p BGP:
Qu ng cáo n các ti n t (prefixes) m
khác nhau (Giao th c path vector )
i trên các k t n i semi-permanent TCP

Khi AS3 qu ng cáo 1 prefix t i AS1:


AS3 h a là nó s chuy n các datagram t
AS3 có th t ng h p các prefixe trong qu ng cáo c a nó

3c
3a BGP
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d

4-116
BGP c b n: phân ph i thông tin ng
S d ng phiên eBGP gi a 3a và 1c, AS3 g i prefix
v thông tin kh ch m (prefix reachability
info) t i AS1.
1c sau có th dùng iBGP phân ph i thông tin prefix m i
t i t t c các router trong AS1
1b sau có th qu ng cáo l i thông tin v kh ch m
m i t i AS2 trên phiên eBGP t 1b-t i-2a
Khi router h c prefix m i, thì nó s t o m c cho
prefix trong b ng forwarding c a nó.

Phiên eBGP
3a Phiên iBGP
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d

4-117
Các thu c tính ng và các
route BGP
c qu ng cáo bao g m các thu c tính
BGP
prefix + attributes = route
2 thu c tính quan tr ng:
AS-PATH: ch ng cáo
prefix v : AS 67, AS 17
NEXT-HOP: ch ra router bên trong AS c th t i AS
hop k ti p. (có th có nhi ng k t n i t AS hi n
t i t i AS hop k ti p)
router gateway mà nh n qu ng cáo route s d ng
chính sách quan tr ng (import policy) ch p
nh n/t ch i
Ví d : không bao gi
nh tuy n d a trên chính (sách policy-based routing)
4-118
S l a ch n BGP route
router có th h c h n 1 route t i AS ,
ch n route d a trên:
1. Thu c tính giá tr u tiên c c b : quy t nh
chính sách
2. AS-PATH ng n nh t
3. NEXT-HOP router g n nh t: nh tuy n hot
potato
4. Tiêu chu n b sung

4-119
p BGP
i gi a các peer trên k t
n i TCP
p BGP:
OPEN: m k t n n peer và ch ng th c ng i
g i
UPDATE: qu i(ho c là l y l i cái

KEEPALIVE: gi k t n i s ng khi các UPDATES không


c c p nh t; còn g i là yêu c u OPEN các ACK
NOTIFICATION: thông báo các l p
tr cs d tn i

4-120
t các giao th c nh tuy n
l i v i nhau:
Làm th nào m t entry a vào
trong b ng forwarding c a 1
router?
Câu tr l i r t ph c t p!

Bu nh tuy n phân c p (m c 4.5.3) l i


v i nhau v i BGP (4.6.3) và OSPF (4.6.2).

Cung c p t ng quan v BGP!


Làm th nào entry c a vào
b ng forwarding?

prefix
là trong AS khác.
entry prefix output port
138.16.64/22 3
124.12/16 2
212/8 4

Dest IP
1

3 2
Làm th nào entry c a vào
b ng forwarding?

1. Router nh n th c prefix
2. nh port ra (output port) cho
prefix
3. ac
b ng forwarding
Router nh n th c c prefix

3c
3a BGP
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d

p BGP ch
c tính: AS-PATH,
NEXT-
Ví d : route:
Prefix:138.16.64/22 ; AS-PATH: AS3 AS131 ;
NEXT-HOP: 201.44.13.125
Router có th nh n c nhi u
route
3c
p
3a BGP
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d

Router có th nh c nhi u route cho


cùng prefix
Ph i ch n 1 route
Ch n route BGP t t nh t t i prefix
Router ch n route d a trên AS-PATH ng n
nh t

Ví d :

AS2 AS17 to 138.16.64/22


AS3 AS131 AS201 to 138.16.64/22

u gì s x y ra n u có m i ràng bu c?
Chúng ta s bàn sau!
Tìm route n i b t t nh t n
route BGP
Dùng thu c tính NEXT-HOP c cl a
ch n
Thu c tính NEXT-HOP c a ch IP c a
interface c
Ví d :
AS-PATH: AS2 AS17 ; NEXT-HOP: 111.99.86.55
Router s d n nh t
t 1c t i 111.99.86.55
3c 111.99.86.55
3a
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d
Router xác nh port cho route

Xác nh port theo ng OSPF ng n nh t


Thêm prefix-port entry vào b ng forwarding
c a nó:
(138.16.64/22 , port 4)

3c router
3a port
3b
AS3 1 2c other
1c 4 2a networks
2 3
other 1a 2b
networks 1b AS2
AS1 1d
nh tuy n Hot Potato
Gi s có 2 ho c nhi u route liên tuy n t t
nh t (best inter-routes).
Sau ch n route v i NEXT-HOP g n nh t
Dùng OSPF xác nh c ng nào là g n nh t
H i: t 1c, ch n AS3 AS131 ho c AS2 AS17?
: route AS3 AS201 vì nó g n h n

3c
3a
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d
Làm th nào entry c a vào
b ng forwarding?
Tóm t t
1. Router có nh n th c v prefix
Thông qua các qu ng cáo route BGP t các router khác
2. Xác nh port ra c a router cho prefix
Dùng route BGP v a ch n tìm ra route liên AS
(inter-AS ) t t nh t
Dùng OSPF tìm ra route t t nh t trong n i b AS
(intra-AS ) cái mà d n n route liên AS t t nh t
(inter-AS route)
Router xác nh port c a router cho route t t nh t
3. a prefix-port entry vào trong b ng forwarding
Chính sách BGP routing
:
B
X
W A
C khách hàng
Y

A,B,C là các nhà cung c p m ng


X,W,Y là khách hàng (c a nhà cung c p m ng)
X là dual-homed: c k t n i vào 2 m ng
X không mu n có tuy ng t B thông qua X t i C
.. Vì v y X s không qu ng cáo cho B tuy ng t i
C

4-131
Chính sách BGP routing (2)
:
B
X
W A
C khách hàng

A qu
B qu
B có nên qu
Không nên! B không nh nh tuy n
CBAW vì c W và C không ph i là khách hàng c a B
B mu n b t bu i w thông A
B ch mu n d n các khách hàng c a nó!

4-132
T i sao ph i nh tuy n Intra-,
Inter-AS khác nhau?
Chính sách:
inter-AS: ng i qu n tr mu n ki m soát cách
mà traffic c nh tuy nh
tuy n thông qua m ng c a nó .
intra-AS: 1 ng i qu n tr , vì v y không c n
các quy nh chính sách
Linh ho t:
nh tuy n phân c p làm gi m kích th c b ng
nh tuy n, gi m l u l ng c p nh t
Hi u su t:
intra-AS: có th t p trung vào hi u su t
inter-AS: chính sách quan tr ng h n hi u su t
4-133
Ch ng 4: N i dung
4.1 Gi i thi u 4.5 các thu t toán routing
4.2 virtual circuit link state
network và datagram distance vector
network hierarchical routing
4.3 C u trúc bên trong 4.6 routing trong Internet
router RIP
4.4 IP: Internet Protocol OSPF
nh d ng datagram BGP
IPv4 addressing 4.7 broadcast và multicast
ICMP routing
IPv6

4-134
Broadcast routing
Chuy n các packet t ngu n t i t t c các node
khác
Ngu n trùng l p thì không có hi u qu :
duplicate
duplicate R1 creation/transmission R1
duplicate
R2 R2

R3 R4 R3 R4

Ngu n trùng l a
ch ng i nh n?
4-135
Trùng l p trong m ng
flooding: khi node nh c packet
broadcast, nó g i b n t t c các
neighbor
V : l p l i & bão broadcast
u khi n: node ch broadcast
packet n u nó không g i broadcast gi ng
nh v y tr

Ho c reverse path forwarding (RPF): ch chuy n


các packet n n
nh t gi a node và ngu n
spanning tree:
Không có các packet d th c nh n t i b t
c node nào
4-136
Spanning tree
u tiên xây d ng m t spanning tree
Sau các node chuy n ti p/t o các b n
sao ch d c theo spanning tree

A A

B B
c c

D D
F E F E

G G

4-137
Spanning tree: t o
Node trung tâm
M i node g i thông p gia nh p unicast
(unicast join message) n node trung tâm
Thông p này c chuy n ti p cho n khi nó
n t i m t node n m trên spanning tree

A A
3
B B
c c
4
2
D D
F E F E
1 5
G G
(a)
spanning tree (center: E)
4-138
Multicast routing: phát bi u v n
M c tiêu: tìm m t cây (ho c các cây) k t n i các router
có các thành viên trong nhóm multicast
Cây (tree): không ph i t t c các ng gi a các
router u c s d ng
Cây chia s (shared-tree): cây gi ng nhau c s d ng b i
các thành viên trong nhóm
Cây d a trên ngu n(source-based): cây
khác nhau t n i g i t i n i nh n group
member
not group
member
router
with a
group
member
router
without
group
member
4-139
Các cách ti p c n x y d ng các
cây multicast
Các h ng ti p c n:
Cây d a trên ngu n (source-based tree): m t
cây cho m i ngu n
Các cây ng ng n nh t
Cây ng ng c
Cây chia s nhóm: nhóm dùng 1 cây
M r ng t i thi u (Steiner)
Các cây d a trên trung tâm (center-based trees)

4-140
Cây ng ng n nh t
Cây chuy n ti p multicast (mcast forwarding
n nh t d ng t
ngu n t i t t c các n i nh n
Thu t toán Dijkstra

R1 2
1 R4

R2 5 router không có các thành viên


3 4
R5
6 i
R3 cho forwarding,
R6 R7

4-141
Reverse path forwarding
D a vào ki n th c c a router c
ng n nh t unicast t nn ig i
M i router có cách x n gi n:

if (datagram multicast c nh n trên ng


k t n i n trên ng ng n nh t k t
trung tâm)
then flood datagram lên t t c các k t n i ra
else b qua datagram

4-142
Reverse path forwarding: ví d

R1
R4

R2
router không có các thành
R5
R3
R6 R7

K t qu là m o ng c
Có th là m t l a ch n không t t v i các
k tn ng b
4-143
Reverse path forwarding:
c t gi m (pruning)
Cây forwarding ch a các cây con không có các thành
viên trong nhóm multicast
Không c n forward các datagram xu ng cây con
c t gi m c g i lên trên b i
router không có các thành viên nhóm downstream

R1
R4

R2
P
router không có các
R5
P
R3 P
R6
R7 forward

4-144
Cây chia s (Shared-tree): cây steiner

Cây steiner : cây có chi phí th p nh t k t


n i n t t c các router v i các thành viên
nhóm c g n vào
V n là NP-complete
Các heuristics r t t t t n t i
Không s d ng trong th c t :
ph c t p tính toán
C n thông tin v v toàn b m ng
monolithic: ch y l i m i khi router c n gia
nh p/r i kh i

4-145
Cây d a vào trung tâm
(Center-based trees)
M t cây truy n nh c chia s cho t t
c
M nh nh là trung
tâm c a cây
gia nh p:
router biên (edge ) g p gia nh p
n router trung tâm
p gia nh p (join-msg ) cx i
các router trung gian và chuy n các router
trung tâm
p gia nh p, ho n nhánh cây c a
trung tâm này, ho n ngay trung tâm
c th c hi u b i p gia nh p
tr thành nhánh cây m i c a router này 4-146
Cây d a vào trung tâm: ví d

LEGEND

R1
R4
3
R2 router không có các
2
1
R5
R3
1 sinh ra
R6
R7

4-147
Internet Multicasting Routing: DVMRP

DVMRP: distance vector multicast routing


protocol, RFC1075
flood và prune: c
(reverse path forwarding), cây d a vào
ngu n (source-based tree)
Cây RPF d a trên các b nh tuy n c a
DVMRP c c xây d ng b i truy n thông
các router DVMRP
Không có các gi thuy t v unicast bên d i
c
flood m i n i thông qua RPF
Các router không ph i nhóm: g pc t
gi m lên trên
4-148
DVMRP: ti p t
Tr ng thái m m:
phút) quên các nhánh cây b c t gi m:
D li u mcast m t l n n xu ng các nhánh
c c t gi m
Router phía d i: c t gi m l n n a ho c ti p t c
nh n d li u
Các router có th nhanh chóng tái c t gi m
Gia nh p IGMP t i các lá
Còn l i
Th c th c hi n trong router th ng m i

4-149
Tunneling
Q: k tn a các
router muticast trong m a các
router unicast?

(không có multicast)
datagram IP thông th cg ng
h tunnel ) n router muticast
nh n (xem l ng h m IPv4)
router mcast nh n m l y datagram multicast
4-150
PIM: Protocol Independent Multicast
Không ph thu c vào b t thu t toán nh
tuy n unicast bên d i nào (underlying
unicast routing algorithm) (làm vi c v i t t
c )
2 ng c nh phân ph i multicast khác nhau:
D c: Th a th t:
Các thành viên nhóm S l ng các m ng v i các
c, thành viên nhóm ít
trong kho ng cách Các thành viên nhóm
. c phân b th a th
th a th a

4-151
K t qu c a s phân chia th a th t-dày
c:
c Th a th t:
Nhóm các thành viên b i Không có thành viên cho
c gi nh n khi các router th c
n khi các router s gia nh p
c t gi m th c s Ki n trúc receiver- driven
Ki n trúc data-driven c a cây mcast (ví d cây
trên cây mcast (ví d d a vào trung tâm)
RPF) thông và router
không thu c nhóm x lý
không thu c nhóm x lý v a ph i
phung phí

T ng Network 4-152
PIM- ki u dày c
flood-and-prune RPF: t ng t nh
DVMRP nh
Giao th c bên d i cung c p thông tin RPF
n
flood xu ng d i (downstream) ít ph c
t p (ít hi u qu ) h n so v i DVMRP gi m s
ph thu c vào thu nh tuy n c
b n
Có c ch giao th phát
hi n có ph i là router node lá (leaf-
node)

4-153
PIM ki u th a th t
Ti p c n d a vào trung
tâm (center-based)
router g p gia R1
R4
nh p (join n join
rendezvous point (RP) R2
join
Các router trung gian
c p nh t tr ng thái và R5
p gia join
R3
nh p R6
Sau khi gia nh p thông qua T t c d li u R7
RP, router có th chuy n rendezvous
nt point
nh ngu n rendezvous
(source-specific tree) point
Hi u xu p

ng n h n T ng Network 4-154
PIM ki u th a th t
(Các) Bên g i:
R1
D li n RP, R4
join
RP phân ph i xu ng cây
có nút g c là RP R2
join
RP có th m r ng cây R5
nR3 join

ngu n R6
RP có th g i thông T t c d li u R7
rendezvous
p d ng (stop msg) rendezvous
nt point
n u không có bên nh n point
c ng n vào
ng
nghe! T ng Network 4-155
Chapter 4: Hoàn thành!
4.1 Gi i thi u
4.2 M ng m ch o và 4.5 các thu nh tuy n
m ng datagram (virtual link state, distance vector,
circuit and datagram nh tuy n phân c p
networks) nh tuy n trong Internet
4.3 bên trong router RIP, OSPF, BGP
4.4 IP: Internet Protocol 4.7 broadcast and multicast
nh d ng, routing
a ch IPv4, ICMP,
IPv6
Hi u v các nguyên t ng sau các d ch v t ng
network:
Các mô hình d ch v t ng network, so sánh cách
mà router forwarding và routing d li nh
tuy n(ch
Hi n th c trên Internet
T ng Network 4-156
Hong Bang International University
Department of Information Technology

END OF LECTURE
mobile network

national or global ISP

local or regional ISP


Internet
home network content
provider
network
datacenter
network

enterprise
network
Hong Bang International University
Department of Information Technology

COMPUTER
NETWORKING
mobile network

national or global ISP

local or
Link Layer
Internet
regional ISP

home network content


provider
Instructor: MSc. Hoang Ngoc Long
network datacenter
network

enterprise
network
Chương 5: tầng Link
Mục tiêu:
!  Hiểu về các nguyên tắc của các dịch vụ
tầng link:
"  Phát hiện lỗi và sửa lỗi
"  Chia sẽ kênh broadcast: đa truy cập
"  Định địa chỉ tầng link
"  local area networks: Ethernet, VLANs
!  Khởi tạo và hiện thực một số công nghệ
tầng link

Tầng Link 5-2


Tầng Link và mạng LAN: Nội dung
5.1 Giới thiệu và các 5.5 link virtualization:
dịch vụ MPLS
5.2 phát hiện lỗi và 5.6 mạng trung tâm dữ
sửa lỗi liệu
5.3 các giao thức đa 5.7 một ngày trong
truy cập cuộc sống của một
5.4 mạng LAN yêu cầu web
"  Định địa chỉ, ARP
"  Ethernet
"  switches
"  VLANS

Tầng Link 5-3


Tầng Link: Giới thiệu
Thuật ngữ:
!  host và router: node
!  Các kênh truyền thông kết nối
global ISP
các node lân cận (adjacent
nodes) dọc theo đường truyền
thông: links
"  Kết nối có dây (wired links)
"  Kết nối không đây (wireless
links)
"  LANs
!  Gói tin lớp 2: frame, đóng gói
datagram
Tầng data-link có nhiệm vụ truyền
datagram từ 1 node đến node
lân cận vật lý (physically adjacent node )
trên một đường liên kết Tầng Link 5-4
Tầng Link: Ngữ cảnh
!  datagram được truyền bởi So sánh:
các giao thức tầng link !  Hành trình từ Princeton đến
khác nhau trên các đường Lausanne
kết nối khác nhau: "  limo: Princeton đến JFK
"  Ví dụ: Ethernet trên "  Máy bay: JFK đến Geneva
đường kết nối thứ 1, "  Xe lửa: Geneva đến Lausanne
frame relay trên các !  Khách du lịch = datagram
đường kết nối trung !  segment tầng transport =
gian, 802.11 trên đường liên kết truyền thông
kết nối cuối cùng (communication link)
!  Mỗi giao thức tầng link !  Kiểu vận chuyển = giao thức
cung cấp các dịch vụ khác tầng link
nhau !  Đại lý du lịch = thuật toán
"  Ví dụ: có thể hoặc định tuyến
không có thể cung cấp
rdt trên đường kết nối
Tầng Link 5-5
Các dịch vụ tầng Link
!  Truy cập liên kết, framing:
"  Đóng gói datagram vào trong frame, thêm header
và trailer
"  Truy cập kênh truyền nếu môi trường được chia sẽ
"  Các địa chỉ MAC được sử dụng trong các header
để xác định nguồn và đích
•  Khác với địa chỉ IP!
!  Truyền tin cậy giữa cac node lân cận(adjacent
nodes)
"  Chúng ta đã tìm hiểu làm thế nào để thực hiện điều
này ở chương 3!
"  Ít khi được sử dụng trên đường kết nối lỗi thấp
(cáp quang, một số loại cáp xoắn)
"  Kết nối không dây: tỷ lệ lỗi cao
•  Hỏi: lý do độ tin cậy ở cả 2 cấp độ đường liên
kết và end-end?? Tầng Link 5-6
Các dịch vụ tầng Link (tt)
!  iều khiển luồng (flow control):
"  Điều khiển tốc độ truyền giữa các node gửi và nhận liền
kề nhau
!  Phát hiện lỗi (error detection):
"  Lỗi gây ra bởi suy giảm tín hiệu.
"  Bên nhận phát hiện lỗi:
•  Gởi tín hiệu để bên gởi truyền lại hoặc hủy bỏ frame
bị lỗi
!  Sửa lỗi (error correction):
"  Bên nhận xác định và sửa các bít lỗi mà không cần phải
truyền lại
!  half-duplex và full-duplex
"  Với half duplex, các node tại các đầu cuối của kết nối có
thể truyền, nhưng không đồng thời
Tầng Link 5-7
Tầng link được thực hiện ở đâu?
!  Trong mỗi và mọi host
!  Tầng link được thực
hiện trong
adaptor (còn gọi là
network interface card application
NIC) hoặc trên con chip transport
network cpu memory
"  Ethernet card, 802.11 link

card; Ethernet
chipset
host
bus
controller (e.g., PCI)
"  Thực hiện tầng link
physical
physical và tầng link physical
transmission

!  Gắn vào trong các bus hệ


thống của host network adapter
card
!  Sự kết hợp của phần
cứng, phần mềm và
firmware Tầng Link 5-8
Các Adaptor trong truyền thông

datagram datagram

controller controller

Host gửi Host nhận


datagram

frame

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


"  Đóng gói datagram "  Tìm lỗi, rdt và điều
trong frame khiển luồng…
"  Thêm các bit kiểm tra "  Lấy ra các datagram,
lỗi, rdt và điều khiển chuyển lên lớp trên
luồng... tại nơi nhận
Tầng Link 5-9
Tầng Link và mạng LAN: Nội dung
5.1 Giới thiệu và các 5.5 link virtualization:
dịch vụ MPLS
5.2 phát hiện lỗi và 5.6 mạng trung tâm dữ
sửa lỗi liệu
5.3 các giao thức đa 5.7 một ngày trong
truy cập cuộc sống của một
5.4 mạng LAN yêu cầu web
"  Định địa chỉ, ARP
"  Ethernet
"  switches
"  VLANS

Tầng Link 5-10


Phát hiện lỗi
EDC= Error Detection and Correction bits (redundancy)
D = dữ liệu được bảo vệ bởi kiểm tra lỗi, có thể chứa các trường
header

•  Việc phát hiện lỗi không bảo đảm 100%!


•  giao thức có thể bỏ qua một số lỗi, nhưng hiếm khi
•  trường EDC càng lớn sẽ giúp việc phát hiện và sửa lỗi tốt hơn

otherwise

Tầng Link 5-11


Kiểm tra chẵn lẻ (Parity checking)
bit parity ơn: bit parity 2 chiều:
!  Phát hiện các lỗi bit ơn !  phát hiện và sửa lỗi các bit đơn

0 0

Tầng Link 5-12


Internet checksum
Mục tiêu: phát hiện các lỗi (ví dụ, các bit bị lộn)
trong packet được truyền (chú ý: chỉ được dùng tại
tầng transport)
Bên gửi: Bên nhận:
!  Xử lý các nội dung !  Tính toán checksum của
của segment như một segment vừa nhận
chuỗi các số nguyên !  Kiểm tra xem có hay
16-bit không giá trị của
!  checksum: thêm(tổng checksum vừa được tính
bù 1) vào các nội dung có bằng với giá trị trong
của segment trường checksum:
!  Bên gửi đặt các giá "  không – phát hiện lỗi
trị checksum vào "  có – không có lỗi
trong trường được phát hiệ. Nhưng
checksum của UDP có thể còn có lỗi khác
không?
Tầng Link 5-13
Cyclic redundancy check

Tầng Link 5-14


Cyclic redundancy check

Tầng Link 5-15


Cyclic redundancy check

Tầng Link 5-16


Cyclic redundancy check
!  Phát hiện lỗi coding mạnh hơn
!  Xem các bit dữ liệu, D, như một số nhị phân
!  Chọn mẫu r+1 bit (máy phát), G
!  Mục tiêu: chọn r bit CRC, R, như thế
"  <D,R> chính xác chia hết cho G (theo cơ số 2)
"  Bên nhận biết G, chia <D,R> cho G. Nếu phần như khác
không: lỗi được phát hiện!
"  Có thể phát hiện tất cả các lỗi nhỏ hơn r+1 bits
!  Được sử dụng rộng rãi trong thực tế (Ethernet,
802.11 WiFi, ATM)

<D,R> =
Tầng Link 5-17
Cyclic Redundancy Check (CRC): example
Sender wants to compute R G
such that: 1 0 0 1 1 0 1 1 1 0
D . 2r XOR R = nG
D
... or equivalently (XOR R both sides):
D . 2r = nG XOR R
... which says:
if we divide D . 2r by G, we
want remainder R to satisfy:

R = remainder [ D . 2r
] algorithm for
G computing R
Cyclic Redundancy Check (CRC): example
Sender wants to compute R G 1 0 1 0 1 1
such that: 1 0 0 1 1 0 1 1 1 0 0 0 0
D . 2r XOR R = nG 1 0 0 1
1 0 1 D * 2r (here, r=3)
0 0 0
... or equivalently (XOR R both sides): 1 0 1 0
D . 2r = nG XOR R 1 0 0 1
1 1 0
... which says: 0 0 0
1 1 0 0
if we divide D . 2r by G, we 1 0 0 1
want remainder R to satisfy: 1 0 1 0
D . 2r 1 0 0 1
R = remainder [ ] algorithm for 0 1 1
G computing R
R
Tầng Link và mạng LAN: Nội dung
5.1 Giới thiệu và các 5.5 link virtualization:
dịch vụ MPLS
5.2 phát hiện lỗi và 5.6 mạng trung tâm dữ
sửa lỗi liệu
5.3 các giao thức đa 5.7 một ngày trong
truy cập cuộc sống của một
5.4 mạng LAN yêu cầu web
"  Định địa chỉ, ARP
"  Ethernet
"  switches
"  VLANS

Tầng Link 5-19


Các giao thức và kết nối đa truy cập
2 kiểu kết nối :
!  Điểm-điểm (point-to-point)
"  PPP cho truy cập dial-up
"  Kết nối point-to-point giữa Ethernet switch và host
!  Broadcast (dây hoặc ường truyền ược chia
sẽ)
"  Ethernet mô hình cũ
"  upstream HFC
"  802.11 wireless LAN

shared wire (e.g., shared RF shared RF Trong buổi tiệc coctail


cabled Ethernet) (e.g., 802.11 WiFi) (satellite) (không khí và âm thanh
được chia sẽ)
Tầng Link 5-20
Các giao thức đa truy cập
!  Kênh broadcast được chia sẽ
!  2 hoặc nhiều việc truyền đồng thời bởi các node: giao
thoa
"  collision (đụng độ) xảy ra nếu node nhận được 2
hoặc nhiều tín hiệu tại cùng thời điểm

Giao thức a truy cập


!  Thuật toán phân phối (distributed algorithm) xác định
cách các node chia sẽ kênh truyền, nghĩa là xác định khi
nào node có thể truyền
!  Truyền thông về kênh truyền chia sẽ phải sử dụng
chính kênh đó!
"  Không có kênh khác để phối hợp

Tầng Link 5-21


Giao thức đa truy cập lý tưởng
Cho trước: kênh broadcast với tốc độ R bps
Mong muốn:
1. Khi 1 node muốn truyền, nó có thể gửi dữ liệu với
tốc độ R.
2. Khi M node muốn truyền, mỗi node có thể gửi với
tốc độ trung bình R/M
3. Phân cấp hoàn toàn:
•  Không có node đặc biệt để các quá trình truyền
phối hợp
•  Không đồng bộ các đồng hồ, slots
4. Đơn giản

Tầng Link 5-22


Các giao thức MAC: phân loại
3 loại chính:
!  Phân hoạch kênh (channel partitioning)
"  Chia kênh truyền thành các mảnh nhỏ hơn (các slot thời
gian, tần số, mã)
"  Cấp phát mảnh này cho node để sử dụng độc quyền
!  Truy cập ngẫu nhiên (random access)
"  Kênh truyền không được chia, cho phép đụng độ
"  phục hồi đụng độ
!  xoay vòng
"  Các node thay phiên nhau, nhưng các node có quyền nhiều
hơn có thể giữ phiên truyền lâu hơn

Tầng Link 5-23


Các giao thức MAC phân hoạch kênh:TDMA
TDMA: time division multiple access
!  Truy cập đến kênh truyền theo hình thức
xoay vòng
!  Mỗi trạm (station) có slot với độ dài cố
định (độ dài = thời gian truyền packet)
trong mỗi vòng (round)
!  Các slot không sử dụng sẽ nhàn rỗi
!  Ví dụ: LAN có 6 trạm, 1,3,4 có gói được
gửi, các slot 2,5,6 sẽ nhàn 6-slot
rỗi
6-slot
frame frame
1 3 4 1 3 4

Tầng Link 5-24


Các giao thức MAC phân hoạch kênh: FDMA
FDMA: frequency division multiple access
!  Phổ kênh truyền được chia thành các dải tần số
!  Mỗi trạm được gán một dải tần số cố định
!  Thời gian truyền không được sử dụng trong dải tần số
sẽ nhàn rỗi
!  Ví dụ: LAN có 6 station, 1,3,4 có packet truyền, các
dải tần số 2,5,6 nhàn rỗi
time

frequency bands

FDM cable

Tầng Link 5-25


Các giao thức truy cập ngẫu nhiên
!  Khi node có packet cần gởi
"  Truyền dữ liệu với trọn tốc độ của kênh dữ liệu R.
"  Không có sự ưu tiên giữa các node
!  2 hoặc nhiều node truyền đụng độ ,
!  Giao thức MAC truy cập ngẫu nhiên xác định:
"  Cách để phát hiện đụng độ
"  Cách để giải quyết đụng độ (ví dụ: truyền lại sau
đó)
!  Ví dụ các giao thức MAC truy cập ngẫu nhiên:
"  slotted ALOHA
"  ALOHA
"  CSMA, CSMA/CD, CSMA/CA

Tầng Link 5-26


Slotted ALOHA
Giả thuyết: Hoạt ộng:
!  Tất cả các frame có cùng !  Khi node có được frame
kích thước mới, nó sẽ truyền trong
!  Thời gian được chia thành slot kế tiếp
các slot có kích thước "  Nếu không có ụng ộ:
bằng nhau ( thời gian để
truyền 1 frame) node có thể gửi frame
mới trong slot kế tiếp
!  Các node bắt đầu truyền
chỉ ngay tại lúc bắt đầu "  Nếu có ụng ộ: node
slot truyền lại frame trong
!  Các node được đồng bộ mỗi slot tiếp theo với
hóa xác suất p cho đến khi
thành công
!  Nếu 2 hoặc nhiều node
truyền trong slot, thì tất
cả các node đều phát hiện
đụng độ Tầng Link 5-27
Slotted ALOHA
node 1 1 1 1 1
C: Collision
node 2 2 2 2 S: Success
E: Empty
node 3 3 3 3

C E C S E C E S S

Ưu iểm: Nhược iểm:


!  Node đơn kích hoạt có !  Đụng độ, lãng phí slot
thể truyền liên tục với !  Các slot nhàn rỗi
tốc độ tối đa của kênh
!  Các node có thể phát
!  Phân cấp cao: chỉ có hiện đụng độ trong
các slot trong các node
cần được đồng bộ thời gian ít hơn để
truyền packet
!  Đơn giản
!  Đồng bộ hóa
Tầng Link 5-28
Slotted ALOHA: hiệu suất
Hiệu suất: là phần slot !  Hiệu suất cực đại: tìm p*
truyền thành công trong làm cực đại hóa
số nhiều frame dự định Np(1-p)N-1
truyền của nhiều node !  Với nhiều node, tìm giới hạn
của Np*(1-p*)N-1 khi N tiến
!  Giả sử: có N node với tới vô cùng, cho:
nhiều frame để truyền, hiệu suất cực ại = 1/e = .
mỗi cái truyền trong 37
slot với xác suất là p
Tốt nhất: kênh

!
!  Xác suất để node
truyền thành công hữu dụng trong
trong 1 slot = p(1-p)N-1 khoảng 37%
!  Xác suất mà bất kỳ thời gian!
node nào truyền thành
công = Np(1-p)N-1 Tầng Link 5-29
Pure (unslotted) ALOHA
!  unslotted Aloha: đơn giản, không đồng bộ
!  Khi frame đến đầu tiên
"  truyền lập tức
!  Khả năng đụng độ tăng:
"  frame được truyền tại thời điểm t0 đụng độ với các
frame khác được truyền trong thời điểm [t0-1,t0+1]

Tầng Link 5-30


Pure ALOHA: hiệu suất
P(thành công với given node) = P(node truyền) .
P(không có node khác truyền trong
[t0-1,t0] .
P(không có node khác truyền trong [t0-1,t0]

= p . (1-p)N-1 . (1-p)N-1
= p . (1-p)2(N-1)

… chọn p tối ưu và sau đó cho n -> ∞

= 1/(2e) = .18

Thậm chí không tốt bằng slotted Aloha!

Tầng Link 5-31


CSMA (carrier sense multiple access)

CSMA: lắng nghe trước khi truyền:


Nếu kênh nhàn rỗi: truyền toàn bộ frame
!  Nếu kênh truyền bận, trì hoãn truyền

!  So sánh với con người: đừng ngắt lời người khác!

Tầng Link 5-32


CSMA: đụng độ (collision)
!  Đụng độ có thể vẫn
xảy ra: trễ lan truyền
nghĩa là 2 node không
thể nghe thấy quá
trình truyền lẫn nhau
!  Đụng độ: toàn bộ
thời gian truyền
packet bị lãng phí
"  Khoảng cách và trễ lan
truyền có vai trò
trong việc xác định
xác suất đụng độ

Tầng Link 5-33


CSMA/CD (collision detection)
CSMA/CD: carrier sensing, trì hoãn như trong
CSMA
"  Đụng độ được phát hiện trong thời gian ngắn
"  Việc truyền đụng độ được bỏ qua, giảm lãng phí
kênh truyền.
!  Phát hiện đụng độ:
"  Dễ dàng trong các mạng LAN hữu tuyến: đo cường
độ tín hiệu, so sánh với các tín hiệu đã được truyền
và nhận
"  Khó thực hiện trong mạng LAN vô tuyến: cường độ
tín hiệu được nhận bị áp đảo bởi cường độ truyền
cục bộ
!  Tương tự như hành vi của con người: đàm
thoại lịch sự Tầng Link 5-34
CSMA/CD (collision detection)
Bố trí của các node

Tầng Link 5-35


Thuật toán Ethernet CSMA/CD
1. NIC nhận datagram từ 4. nếu NIC phát hiện có sự
tầng network, tạo truyền khác trong khi đang
frame truyền, thì nó sẽ hủy bỏ
2. Nếu NIC cảm nhận truyền và phát tín hiệu tắt
được kênh rỗi, nó sẽ nghẽn
bắt đầu việc truyền 5. Sau khi hủy bỏ truyền, NIC
frame. Nếu NIC cảm thực hiện binary
nhận kênh bận, đợi cho (exponential) backoff:
đến khi kênh rãnh, sau "  Sau lần đụng độ thứ m, NIC
đó mới truyền. chọn ngẫu nhiên số K trong
3. Nếu NIC truyền toàn khoảng {0,1,2, …, 2m-1}. NIC
bộ frame mà không sẽ đợi K·512 bit lần, sau đó
phát hiện việc truyền trở lại bước 2
khác, NIC được truyền "  Đụng độ nhiều thì sẽ có
toàn bộ frame đó! khoảng thời gian backoff
dài hơn
Tầng Link 5-36
CSMA/CD hiệu suất
!  Tprop = độ trễ lan truyền lớn nhất (max prop delay) giữa
2 node trong mạng LAN
!  ttrans = thời gian để truyền frame có kích thước lớn
nhất
1
efficiency =
1 + 5t prop /ttrans

!  Hiệu suất tiến tới 1


"  khi tprop tiến tới 0
"  khi ttrans tiến tới vô cùng
!  Hiệu suất tốt hơn ALOHA: đơn giản, rẻ và phân cấp!

Tầng Link 5-37


Các giao thức MAC Xoay vòng
Các giao thức phân hoạch kênh MAC (channel
partitioning MAC protocols):
"  Chia sẽ kênh hiệu quả và công bằng với tải lớn
"  Không hiệu quả ở tải thấp: trễ khi truy cập
kênh, 1/N bandwidth được cấp phát thậm chí
khi chỉ có 1 node hoạt động!
Các giao thức MAC truy cập nhẫu nhiên
(random access MAC protocols)
"  Hiệu quả tại tải thấp: node đơn có thể dùng hết
khả năng của kênh
"  Tải cao: đụng độ cao
Các giao thức “Xoay vòng” ( taking turns
protocols)
Tìm kiếm giải pháp tốt nhất!
Tầng Link 5-38
Các giao thức MAC “Xoay vòng”
polling:
!  Node chủ (master
node) mời các node data
con (slave node) truyền poll
lần lượt
!  Thường được sử dụng master
với các thiết bị con data

đần độn
!  Quan tâm:
"  polling overhead slaves
"  latency
"  Chỉ có 1 điểm chịu lỗi
(master)

Tầng Link 5-39


Các giao thức MAC “Xoay vòng”
Chuyển token:
T
!  Điều hànhtoken được
chuyển từ 1 node đến
node kế tiếp theo tuần
tự.
(không có
!  Thông điệp token gì để gởi)
!  Quan tâm: T
"  token overhead
"  latency
Chỉ có 1 iểm chịu lỗi
(master)

data
Tầng Link 5-40
Mạng truy cập cáp (Cable access network)
Các frame Internet và kênh TV ược truyền xuống với các tầng
số khác nhau

cable headend

CMTS

splitter cable
cable modem … modem
termination system

ISP Các frame Internet của luồng dữ liệu lên, tín hiệu iều khiển TV,
ược truyền lên tại các tầng số khác nhau trong các slot thời
gian

!  Nhiều kênh (broadcast) luồng dữ liệu xuống 40Mbps


"  CMTS đơn truyền vào trong các kênh
!  Nhiều kênh luồng dữ liệu lên 30 Mbps
"  a truy cập: tất cả các user tranh dành các slot
thời gian nhất ịnh của kênh luồng dữ liệu lên
Mạng truy cập cáp
cable headend MAP frame for
Interval [t1, t2]

Downstream channel i
CMTS
Upstream channel j

t1 t2 Hộ gia đình với modem có cáp

Minislots containing Assigned minislots containing cable modem


minislots request frames upstream data frames

DOCSIS: data over cable service interface spec


!  FDM trên các kênh tầng số luồng dữ liệu lên và xuống
!  TDM luồng dữ liệu lên (upstream): một số slot được gán, một
số slot có tranh chấp
"  MAP frame luồng dữ liệu xuống: gán các slot luồng dữ liệu
lên
"  Yêu cầu cho các slot luồng dữ liệu lên (và dữ liệu) được
truyền truy cập ngẫu nhiên (binary backoff) trong các slot
được lựa chọn Tầng Link 5-42
Tổng kết các giao thức MAC
!  Phân hoạch kênh, theo thời gian, tần số hoặc mã
"  Phân chia theo thời gian, phân chia theo tần số
!  Truy cập ngẫu nhiên(động),
"  ALOHA, S-ALOHA, CSMA, CSMA/CD
"  Cảm nhận sóng mang (carrier sensing): dễ dàng
trong một số kỹ thuật (có dây), khó thực hiện
trong các công nghệ khác (không dây)
"  CSMA/CD được dùng trong Ethernet
"  CSMA/CA được dùng trong 802.11
!  Xoay vòng
"  polling từ site trung tâm, truyền token
"  bluetooth, FDDI, token ring

Tầng Link 5-43


Tầng Link và mạng LAN: Nội dung
5.1 Giới thiệu và các 5.5 link virtualization:
dịch vụ MPLS
5.2 phát hiện lỗi và 5.6 mạng trung tâm dữ
sửa lỗi liệu
5.3 các giao thức đa 5.7 một ngày trong
truy cập cuộc sống của một
5.4 mạng LAN yêu cầu web
"  Định địa chỉ, ARP
"  Ethernet
"  switches
"  VLANS

Tầng Link 5-44


Địa chỉ MAC và ARP
!  Địa chỉ IP 32-bit:
"  ịa chỉ tầng network cho interface
"  Được sử dụng cho tầng 3 (tầng network) chuyển dữ
liệu
!  Địa chỉ MAC (hoặc LAN hoặc physical hoặc
Ethernet) :
"  Chức năng: được sử dụng cục bộ để chuyển frame
từ 1 interface này đến 1 interface được kết nối vật lý
với nhau (cùng mạng, trong ý nghĩa địa chỉ IP)
"  Địa chỉ MAC 48 bit (cho hầu hết các mạng LAN) được
ghi vào trong NIC ROM, đôi khi cũng trong phần mềm
"  Ví dụ: 1A-2F-BB-76-09-AD
hexadecimal (base 16) notation
(mỗi số đại diện 4 bit)
Tầng Link 5-45
Địa chỉ MAC và ARP
Mỗi adapter trên mạng LAN có địa chỉ LAN duy nhất

1A-2F-BB-76-09-AD

LAN
(wired or adapter
wireless)
71-65-F7-2B-08-53
58-23-D7-FA-20-B0

0C-C4-11-6F-E3-98

Tầng Link 5-46


Địa chỉ LAN(tt)
!  Sự phân bổ địa chỉ MAC được quản lý bởi
IEEE
!  Nhà sản xuất mua phần không gian địa chỉ
MAC (bảo đảm duy nhất)
!  So sánh:
"  Địa chỉ MAC: như là số chứng minh nhân dân
"  Địa chỉ IP: như là địa chỉ bưu điện
!  địa chỉ MAC phẳng tính di động
"  Có thể di chuyển card LAN từ 1 mạng LAN này tới
mạng LAN khác
!  Địa chỉ IP phân cấp không di động
"  địa chỉ phụ thuộc vào subnet IP mà node đó gắn
vào Tầng Link 5-47
ARP: address resolution protocol
Hỏi: làm cách nào để xác định
địa chỉ MAC của interface khi
biết được địa chỉ IP của nó? Bảng ARP: mỗi node IP
(host, router) trên mạng
LAN có bảng ARP
137.196.7.78
"  Địa chỉ IP/MAC ánh
1A-2F-BB-76-09-AD
xạ cho các node
trong mạng LAN:
137.196.7.23
137.196.7.14
< địa chỉ IP; địa chỉ MAC;
TTL>
LAN
71-65-F7-2B-08-53 "  TTL (Time To Live):
58-23-D7-FA-20-B0 thời gian sau đó địa
chỉ ánh xạ sẽ bị lãng
0C-C4-11-6F-E3-98 quên (thông thường
137.196.7.88
là 20 phút)
Tầng Link 5-48
Giao thức ARP: cùng mạng LAN
!  A muốn gởi datagram tới
B
"  Địa chỉ MAC của B không có !  A sẽ lưu lại cặp địa chỉ
trong bảng ARP của A. IP-tới-MAC trong
!  A sẽ quảng bá bảng ARP của nó cho
(broadcasts) ARP query tới khi thông tin này
packet có chứa địa chỉ IP trở nên cũ (hết hạn
của B sử dụng)
"  Địa chỉ MAC đích = FF-FF- "  soft state: thông tin
FF-FF-FF-FF hết hạn (bỏ đi) trừ khi
"  Tất cả các node trên mạng được làm mới
LAN sẽ nhận ARP query này !  ARP là plug-and-play :
!  B nhận ARP packet, trả lời "  Các nodes tạo bảng ARP
tới A với địa chỉ MAC của của nó không cần sự can
thiệt của người quản trị
B mạng
"  frame được gởi gởi tới địa
chỉ MAC của A (unicast)
Tầng Link 5-49
Addressing: định tuyến tới
mạng LAN khác
walkthrough: gởi datagram từ A tới B thông qua R
"  tập trung vào addressing – tại tầng IP (datagram) và MAC
(frame)
"  giả sử A biết địa chỉ IP của B
"  giả sử A biết địa chỉ IP của router first hop, R (cách
nào?)
"  giả sử A biết địa chỉ MAC của R (cách nào?)

A B
R
111.111.111.111
222.222.222.222
74-29-9C-E8-FF-55
49-BD-D2-C7-56-2A
222.222.222.220
1A-23-F9-CD-06-9B

111.111.111.112 111.111.111.110 222.222.222.221


CC-49-DE-D0-AB-7D E6-E9-00-17-BB-4B 88-B2-2F-54-1A-0F
Tầng Link 5-50
Addressing: định tuyến tới
mạng LAN khác
!  A tạo IP datagram với IP nguồn A, đích B
!  A tạo frame tầng link với địa chỉ MAC của R như là địa chỉ
đích, frame này chứa IP datagram từ A tới B
MAC nguồn: 74-29-9C-E8-FF-55
MAC đích: E6-E9-00-17-BB-4B
IP nguồn: 111.111.111.111
IP đích: 222.222.222.222

IP
Eth
Phy

A B
R
111.111.111.111
222.222.222.222
74-29-9C-E8-FF-55
49-BD-D2-C7-56-2A
222.222.222.220
1A-23-F9-CD-06-9B

111.111.111.112 111.111.111.110 222.222.222.221


CC-49-DE-D0-AB-7D E6-E9-00-17-BB-4B 88-B2-2F-54-1A-0F
Tầng Link 5-51
Addressing: định tuyến tới
mạng LAN khác
!  frame được gởi từ A tới R
!  frame được nhận tại R, datagram được gỡ bỏ, được chuyển tới
IP
MAC nguồn: 74-29-9C-E8-FF-55
MAC đích: E6-E9-00-17-BB-4B
IP src: 111.111.111.111
IP dest: 222.222.222.222

IP IP
Eth Eth
Phy Phy

A B
R
111.111.111.111
222.222.222.222
74-29-9C-E8-FF-55
49-BD-D2-C7-56-2A
222.222.222.220
1A-23-F9-CD-06-9B

111.111.111.112 111.111.111.110 222.222.222.221


CC-49-DE-D0-AB-7D E6-E9-00-17-BB-4B 88-B2-2F-54-1A-0F

Tầng Link 5-52


Addressing: định tuyến tới
mạng LAN khác
!  R sẽ chuyển tiếp datagram với IP nguồn A, đích B
!  R tạo frame tầng link với địa chỉ MAC của B như là địa chỉ
đích, frame này chứa IP datagram từ A tới B
MAC nguồn: 1A-23-F9-CD-06-9B
MAC đích: 49-BD-D2-C7-56-2A
IP nguồn: 111.111.111.111
IP đích: 222.222.222.222
IP
IP Eth
Eth Phy
Phy

A B
R
111.111.111.111
222.222.222.222
74-29-9C-E8-FF-55
49-BD-D2-C7-56-2A
222.222.222.220
1A-23-F9-CD-06-9B

111.111.111.112 111.111.111.110 222.222.222.221


CC-49-DE-D0-AB-7D E6-E9-00-17-BB-4B 88-B2-2F-54-1A-0F

Tầng Link 5-53


Addressing: định tuyến tới
mạng LAN khác
!  R chuyển tiếp datagram với IP nguồn A, đích B
!  R tạo frame tầng link với địa chỉ MAC của B như là địa chỉ
đích, frame này chứa IP datagram từ A-tới-B
MAC nguồn: 1A-23-F9-CD-06-9B
MAC đích: 49-BD-D2-C7-56-2A
IP nguồn: 111.111.111.111
IP đích: 222.222.222.222
IP
IP Eth
Eth Phy
Phy

A B
R
111.111.111.111
222.222.222.222
74-29-9C-E8-FF-55
49-BD-D2-C7-56-2A
222.222.222.220
1A-23-F9-CD-06-9B

111.111.111.112 111.111.111.110 222.222.222.221


CC-49-DE-D0-AB-7D E6-E9-00-17-BB-4B 88-B2-2F-54-1A-0F

Tầng Link 5-54


Addressing: định tuyến tới
mạng LAN khác
!  R chuyển tiếp datagram với IP nguồn A, đích B
!  R tạo frame tầng link với địa chỉ MAC của B như là địa chỉ
đích, frame chứa IP datagram từ A-tới-B MAC nguồn: 1A-23-F9-CD-06-9B
MAC đích: 49-BD-D2-C7-56-2A
IP nguồn: 111.111.111.111
IP đích: 222.222.222.222

IP
Eth
Phy

A B
R
111.111.111.111
222.222.222.222
74-29-9C-E8-FF-55
49-BD-D2-C7-56-2A
222.222.222.220
1A-23-F9-CD-06-9B

111.111.111.112 111.111.111.110 222.222.222.221


CC-49-DE-D0-AB-7D E6-E9-00-17-BB-4B 88-B2-2F-54-1A-0F

Tầng Link 5-55


Tầng Link và mạng LAN: Nội dung
5.1 Giới thiệu và các 5.5 link virtualization:
dịch vụ MPLS
5.2 phát hiện lỗi và 5.6 mạng trung tâm dữ
sửa lỗi liệu
5.3 các giao thức đa 5.7 một ngày trong
truy cập cuộc sống của một
5.4 mạng LAN yêu cầu web
"  Định địa chỉ, ARP
"  Ethernet
"  switches
"  VLANS

Tầng Link 5-56


Ethernet
Công nghệ mạng LAN hữu tuyến chiếm ưu thế :
!  $20 cho NIC
!  Công nghệ mạng LAN được sử dụng rộng rãi lần
đầu tiên
!  Đơn giản hơn, rẻ hơn mạng LAN token và ATM
!  Giữ tốc độ trung bình từ: 10 Mbps – 10 Gbps

Phác thảo Ethernet của Metcalfe


Tầng Link 5-57
Ethernet: cấu trúc vật lý
!  bus: phổ biến trong giữa thập niên 90
"  Tất cả các node trong cùng collision domain (có thể
đụng độ lẫn nhau)
!  star: chiếm ưu thế ngày nay
"  switch hoạt động ở trung tâm
"  Mỗi spoke chạy một (riêng biệt) giao thức
Ethernet (các node không đụng độ lẫn nhau)

switch
star
bus: cáp đồng trục
Tầng Link 5-58
Cấu trúc frame Ethernet
adapter gửi sẽ đóng gói IP datagram (hoặc
packet giao thức khác của tầng mạng)
trong Ethernet frame
type
dest. source
preamble address address data CRC
(payload)

preamble:
!  7 byte với mẫu 10101010 được theo sau bởi
1 byte với mẫu 10101011
!  được sử dụng để đồng bộ tốc độ đồng hồ
của người gửi và nhận

Tầng Link 5-59


Cấu trúc frame Ethernet (tt)
!  addresses: 6 byte địa chỉ MAC nguồn, đích
"  Nếu adapter nhận frame với địa chỉ đích đúng là
của nó, hoặc với địa chỉ broadcast (như là ARP
packet), thì nó sẽ chuyển dữ liệu trong frame tới
giao thức tầng network
"  Ngược lại, adapter sẽ hủy frame
!  type: chỉ ra giao thức tầng cao hơn (thường là
IP nhưng cũng có thể là những cái khác như là
Novell IPX, AppleTalk)
!  CRC: cyclic redundancy check tại bên nhận
"  Lỗi được phát hiện: frame bị bỏ
type
dest. source
preamble address address data CRC
(payload)

Tầng Link 5-60


Data Link Layer 5-61
Ethernet: không tin cậy,không kết nối
!  Connectionless (không kết nối): không bắt tay
giữa các NIC gửi và nhận
!  Unreliable(không tin cậy): NIC nhận sẽ không
gửi thông báo nhận thành công (acks) hoặc
không thành công (nacks) đến các NIC gửi
"  Dữ liệu bị trong các frame bị bỏ sẽ được
khôi phục lại chỉ khi nếu bên gửi dùng dịch
vụ tin cậy của tầng cao hơn (như là TCP) còn
không thì dữ liệu mà đã bị bỏ sẽ mất luôn
!  Giao thức MAC của Ethernet: CSMA/CD với
binary backoff

Tầng Link 5-62


Chuẩn Ethernet 802.3 : tầng link & physical

!  Nhiều chuẩn Ethernet khác nhau


"  Giao thức MAC thông dụng và định dạng frame
"  Tốc độ khác nhau: 2 Mbps, 10 Mbps, 100 Mbps,
1Gbps, 10G bps
"  Môi trường truyền tầng vật lý khác nhau: fiber,
copper và wireless

Giao thức MAC và định


application dạng frame
transport
network 100BASE-TX 100BASE-T2 100BASE-FX
link 100BASE-T4 100BASE-SX 100BASE-BX
physical

copper (twister fiber physical layer


pair) physical layer
Tầng Link 5-63
Tầng Link và mạng LAN: Nội dung
5.1 Giới thiệu và các 5.5 link virtualization:
dịch vụ MPLS
5.2 phát hiện lỗi và 5.6 mạng trung tâm dữ
sửa lỗi liệu
5.3 các giao thức đa 5.7 một ngày trong
truy cập cuộc sống của một
5.4 mạng LAN yêu cầu web
"  Định địa chỉ, ARP
"  Ethernet
"  switches
"  VLANS

Tầng Link 5-64


Ethernet switch
!  Thiết bị tầng link: giữa vai trò tích cực
"  Lưu (store) và chuyển tiếp (forward ) các
frame Ethernet
"  Xem xét địa chỉ MAC của frame đến, chọn
lựa chuyển tiếp frame tới 1 hay nhiều
đường link đi ra khi frame được chuyển
tiếp vào segment, dùng CSMA/CD để truy
nhập segment
!  Transparent (trong suốt)
"  Các host không nhận thức được sự hiện
diện của các switch
!  plug-and-play, tự học
"  Các switch không cần được cấu hình
Tầng Link 5-65
Switch: nhiều sự truyền đồng thời
!  Các host kết nối trực tiếp A
tới swich
C B
!  Switch lưu tạm (buffer )
các packet
6 1 2
!  Giao thức Ethernet được
sử dụng trên mỗi đường 5 4 3
kết nối vào, nhưng không có
đụng độ; full duplex B C

"  Mỗi đường kết nối là 1


miền collision (đụng độ) A
của riêng nó
switch với 6 interface
!  switching: A-tới-A và B- (1,2,3,4,5,6)
tới-B có thể truyền đồng
thời mà không có đụng độ
xảy ra Tầng Link 5-66
Bảng switch forwarding
Hỏi: làm thế nào để switch biết
A
tới A thì sẽ thông qua
interface 4 và tới B thì thông C B
interface 5?
!  áp: mỗi switch có một bảng 6 1 2

switch, mỗi entry: 5 4 3


"  ( ịa chỉ MAC của host,
B C
interface ể tới ược host
ó, time stamp)
A
"  Giống như bảng ịnh tuyến!
switch với 6 interface
Q:những entry ược tạo và ược (1,2,3,4,5,6)
duy trì như thế nào trong bảng
switch?
"  Có giống như giao thức ịnh
tuyến hay không? Tầng Link 5-67
Switch: tự học Nguồn: A
đích: A

A AA
!  switch học các host có
thể tới được thông qua B
C
các interface kết nối
với các host đó
6 1 2
"  Khi frame được
nhận, switch học vị 5 4 3
trí của bên gửi:
incoming LAN B C
segment
"  Ghi lại cặp bên gửi/vị A
trí trong bảng switch
MAC addr interface TTL
A 1 60 Bảng Switch
(ban ầu trống)

Tầng Link 5-68


Switch: lọc/chuyển tiếp frame
Khi frame được nhận tại switch:

1. Ghi lại đường kết nối vào, địa chỉ MAC của host gửi
2. Ghi vào mục lục bảng switch với địa chỉ MAC đích
3. Nếu entry được thì thấy cho đích đến đó
thì {
nếu đích đến nằm trên phân đoạn mạng từ cái mà
frame đã đến
thì bỏ frame
ngược lại chuyển tiếp frame trên interface
được chỉ định bởi entry
}
ngược lại flood /* chuyển tiếp trên tất cả
interface ngoại trừ interface mà dữ liệu đó đã đến
từ đó*/
Tầng Link 5-69
Tự học, chuyển tiếp: ví dụ Nguồn: A
đích: A

A AA
!  frame có đích đến là
B
A’, vị trí của A C

khôngflood
biết: 6 1 2
AA
!  Đích A có vị trí đã 5 4 3
được biết trước: B C
gửi chọn lọc chỉ trên 1 A A
ường kết nối duy nhất A

MAC addr interface TTL


A 1 60 Bảng switch
A 4 60 (ban ầu trống)

Tầng Link 5-70


Kết nối các switch với nhau
(Interconnecting switches)
!  Các switch có thể được kết nối với nhau
S4

S1
S3
A S2
F
D I
B C
G H
E

Hỏi: gửi từ A tới G – làm cách nào S1 biết đề


chuyển tiếp frame tới F thông qua S4 và S3?
! Trả: tự học! (làm việc giống y chang như
trong trường hợp chỉ có 1 switch!)
Tầng Link 5-71
Ví dụ nhiều switch tự học
Giả sử C gửi frame tới I, I trả lời cho C

S4

S1
S3
A S2
F
D I
B C
G H
E

!  Hỏi: trình bày các bảng của các switch và cách


packet được chuyển đi tại các switch S1, S2, S3, S4

Tầng Link 5-72


Mạng của tổ chức
mail server
Đến mạng
bên ngoài
router web server

IP subnet

Tầng Link 5-73


So sánh Switch và router
application
transport
Cả 2 đều lưu và chuyển tiếp datagram network
(store-and-forward): frame link
" router: thiết bị tầng network physical link frame
(khảo sát header của tầng physical
network)
" switch: thiết bị tầng link (khảo switch
sát header của tầng link)
network datagram
Cả 2 đều có bảng forwarding: link frame
physical
" router: tính toán bảng dùng các
thuật toán định tuyến, địa chỉ IP application
" switch: học bảng forwarding transport
dùng flooding, học, địa chỉ MAC network
link
physical

Tầng Link 5-74


VLANs: trình bày
Xem xét:
!  Người dùng bên CS di
chuyển văn phòng sang
EE, nhưng vẫn muốn
kết nối CS switch?
!  Miền broadcast đơn:
"  Tất cả lưu lượng
Computer
broadcast tầng 2
Science Electrical
Computer
Engineering (ARP, DHCP, địa chỉ
Engineering MAC không biết vị
trí đích đến ở đâu)
phải đi qua toàn
mạng LAN
"  An ninh/riêng tư,
các vấn đề về hiệu
suất Tầng Link 5-75
port-based VLAN: các port của
VLANs switch được nhóm lại (bởi phần
mềm quản lý switch) để trở thành
một swich vật lý duy nhất…
Virtual Local
1 7 9 15
Area Network 2 8 10 16

Các switch hỗ trợ khả


năng VLAN có thể … …
được cấu hình để Electrical Engineering Computer Science
định nghĩa nhiều (VLAN ports 1-8) (VLAN ports 9-15)

mạng LAN ảo …hoạt động như là nhiều switch ảo


(multiple virtual
LANS) trên một hạ 1 7 9 15

tầng vật lý của mạng 2 8 10 16

LAN.
… …

Electrical Engineering Computer Science


(VLAN ports 1-8) (VLAN ports 9-16)

Tầng Link 5-76


Port-based VLAN
!  traffic isolation (cô lập router
traffic): các frame đến/
từ các port 1-8 chỉ có thể
tới được các port 1-8
"  Cũng có thể định nghĩa VLAN
dưa trên địa chỉ MAC của thiết 1 7 9 15

bị đầu cuối, hơn là dựa trên 2 8 10 16

port của switch


!  dynamic membership: … …
các port có thể được
gán động giữa các VLAN
Electrical Engineering Computer Science
(VLAN ports 1-8) (VLAN ports 9-15)

!  Chuyển tiếp giữa các VLAN:


được thực hiện thông qua định
tuyến (cũng giống như các
switch riêng biệt)
"  Trên thực tế, các nhà cung cấp
bán các thiết bị switch kết hợp
với các router Tầng Link 5-77
VLANS kéo dài qua nhiều switch
1 7 9 15 1 3 5 7
2 8 10 16 2 4 6 8

… …

Electrical Engineering Computer Science Ports 2,3,5 thuộc về EE VLAN


(VLAN ports 1-8) (VLAN ports 9-15) Ports 4,6,7,8 thuộc về CS VLAN

!  trunk port: mang các frame giữa các VLAN được định
nghĩa trên nhiều switch vật lý
"  Các frame được chuyển tiếp bên trong VLAN giữa các switch
không thể là các frame 802.1 (phải mang thông tin VLAN ID)
"  Giao thức 802.1q thêm/gỡ bỏ các trường header được thêm
vô cho các frame được chuyển tiếp giữa các trunk port

Tầng Link 5-78


Định dạng frame VLAN 802.1Q
type

preamble dest. source data (payload) CRC


address address 802.1 frame

type
dest. source
preamble
address address
data (payload) CRC 802.1Q frame

2-byte Tag Protocol Identifier Recomputed


(value: 81-00) CRC

Tag Control Information (12 bit VLAN ID field,


3 bit priority field like IP TOS)

Tầng Link 5-79


Tầng Link và mạng LAN: Nội dung
5.1 Giới thiệu và các 5.5 link virtualization:
dịch vụ MPLS
5.2 phát hiện lỗi và 5.6 mạng trung tâm dữ
sửa lỗi liệu
5.3 các giao thức đa 5.7 một ngày trong
truy cập cuộc sống của một
5.4 mạng LAN yêu cầu web
"  Định địa chỉ, ARP
"  Ethernet
"  switches
"  VLANS

Tầng Link 5-80


Multiprotocol label switching (MPLS)
!  Mục tiêu ban đầu: chuyển tiếp IP tốc độ cao
dùng nhãn có độ dài cố định (fixed length label)
(thay thế cho địa chỉ IP)
"  Tra cứu nhanh dùng định dang có chiều dài cố định
(fixed length identifier) (chứ không dùng sự phù hợp
với prefix ngắn nhất)
"  Lấy ý tưởng từ hướng tiếp cận của Virtual Circuit
(VC)
"  Tuy nhiên 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
Tầng Link 5-81
Router có khả năng MPLS
!  Còn gọi là Router chuyển mạch nhẵn (label-
switched router)
!  Chuyển tiếp các packet tới interface đầu ra
chỉ dựa trên giá trị nhãn (label value) (không
kiểm tra ịa chỉ IP)
"  Bảng chuyển tiếp MPLS (MPLS forwarding table)
khác với bảng chuyển tiếp IP (IP forwarding tables)
!  Linh hoạt: các quyết định chuyển tiếp MPLS có
thể khác với IP của chúng
"  Dùng địa chỉ đích và nguồn để định tuyến các luồng
dữ liệu tới cùng đích đến một cách khác nhau (same
destination differently) (traffic engineering)
"  Định tuyến lại các luồng dữ liệu nhanh chóng nếu
đường liên kết hỏng: các đường dẫn dự phòng được
tính toán trước (hữu dụng cho VoIP)
Tầng Link 5-82
So sánh đường đi MPLS và IP

R6
D
R4 R3
R5
A
R2

!  ịnh tuyến IP: ường tới ích ến


ược xác ịnh bởi 1 ịa chỉ ích
IP router

Tầng Link 5-83


So sánh đường đi MPLS và
IP
entry router (R4) có thể sử dụng các đường
đi MPLS khác nhau tới A được dựa trên địa
R6 chỉ nguồn
D
R4 R3
R5
A
R2
!  Định tuyến IP: ịnh tuyến IP: ường tới ích
ến ược xác ịnh bởi chỉ cần ịa chỉ ích IP-only
router
!  ịnh tuyến MPLS: đường tới đích đến có
thể được dựa trên địa chỉ nguồn và đích MPLS và
IP router
"  ịnh tuyến lại nhanh chóng (fast
reroute): tính toán lại các đường đi dự
phòng trong trường hợp đường kết nối
bị hỏng Tầng Link 5-84
Tín hiệu MPLS
!  Chỉnh sửa các giao thức flooding IS-IS link-state,
OSPF để mang thông tin được sử dụng bởi định
tuyến MPLS,
"  Ví dụ: link bandwidth, số lượng băng thông đường link
được dành riêng
!  entry của router MPLS sử dụng giao thức tín hiệu
RSVP-TE ể thiết lập chuyển tiếp MPLS tại các
router luồng dưới

RSVP-TE
R6
D
R4
R5
modified
link state A
flooding
Tầng Link 5-85
Bảng chuyển tiếp MPLS
in out out
label label dest interface
10 A 0 in out out
label label dest interface
12 D 0
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
Tầng Link 5-86
Tầng Link và mạng LAN: Nội dung
5.1 Giới thiệu và các 5.5 link virtualization:
dịch vụ MPLS
5.2 phát hiện lỗi và 5.6 mạng trung tâm dữ
sửa lỗi liệu
5.3 các giao thức đa 5.7 một ngày trong
truy cập cuộc sống của một
5.4 mạng LAN yêu cầu web
"  Định địa chỉ, ARP
"  Ethernet
"  switches
"  VLANS

Tầng Link 5-87


Mạng trung tâm dữ liệu
!  10 đến 100 ngàn host:
"  e-business (e.g. Amazon)
"  content-servers (như là YouTube, Akamai, Apple,
Microsoft)
"  search engines, data mining (như là Google)

!  Thách thức:
"  Nhiều ứng dụng, mỗi cái
phục vụ số lượng lớn
client
"  Quản lý/cân bằng tải,
tránh tắc nghẽn dữ liệu,
mạng và tiến trình
Inside a 40-ft Microsoft container,
Chicago data center
Tầng Link 5-88
Mạng trung tâm dữ liệu
Cân bằng tải: ịnh tuyến tầng application
" Nhận các yêu cầu client bên ngoài
" Hướng dẫn khối lượng công việc trong
trung tâm dữ liệu
" Trả về kết quả cho client bên ngoài
Internet%
(trung tâm dữ liệu ẩn bên trong đối với
client)
Border%router%
Load%% Load%%
balancer% Access%router% balancer%

Tier11%switches%
B%

A% C% Tier12%switches%

TOR%switches%

Server%racks%

1% 2% 3% 4% 5% 6% 7% 8%
Tầng Link 5-89
Mạng trung tâm dữ liệu
!  Rất nhiều kết nối giữa các switch và rack:
"  Thông lượng được tăng lên giữa các rack (nhiều
đường định tuyến có thể dùng được)
"  Độ tin cậy và khả năng dự phòng tăng lên

Tier11%switches%

Tier12%switches%

TOR%switches%

Server%racks%

1% 2% 3% 4% 5% 6% 7% 8%
Tầng Link và mạng LAN: Nội dung
5.1 Giới thiệu và các 5.5 link virtualization:
dịch vụ MPLS
5.2 phát hiện lỗi và 5.6 mạng trung tâm dữ
sửa lỗi liệu
5.3 các giao thức đa 5.7 một ngày trong
truy cập cuộc sống của một
5.4 mạng LAN yêu cầu web
"  Định địa chỉ, ARP
"  Ethernet
"  switches
"  VLANS

Tầng Link 5-91


Synthesis: một ngày trong cuộc sống của
một truy vấn web

!  Tìm hiểu ầy ủ chồng giao thức từ trên


xuống dưới!
"  application, transport, network, link
!  putting-it-all-together: synthesis!
"  Mục tiêu: xác định, xem xét, hiểu các giao thức
(tại tất cả các tầng) được tham gia vào tình
huống đơn giản: truy vấn trang www
"  Ngữ cảnh: sinh viên kết nối máy tính xách tay
vào mạng của tòa nhà trường học, yêu cầu/nhận
www.google.com

Tầng Link 5-92


Một ngày trong cuộc sống: ngữ cảnh

browser DNS server


Comcast network
68.80.0.0/13

Mạng trường học


68.80.2.0/24

web page

web server Mạng của Google


64.233.169.105 64.233.160.0/19

Tầng Link 5-93


Một ngày trong cuộc sống … kết nối tới Internet
DHCP DHCP !  Kết nối máy tính xách tay
UDP
DHCP
IP
cần có địa chỉ IP của riêng
nó, địa chỉ của router
DHCP

DHCP Eth
Phy first-hop, địa chỉ của DNS
DHCP server: dùng DHCP
!  Yêu cầu DHCP được đóng
gói trong UDP, được đóng
DHCP
DHCP
DHCP UDP
gói trong IP, được đóng gói
DHCP IP trong 802.3 Ethernet
DHCP Eth router
Phy (chạy DHCP) !  Ethernet frame broadcast
(dest: FFFFFFFFFFFF) trên
LAN, được nhận tại router
chạy DHCP server
!  Ethernet demuxed to IP
demuxed, UDP demuxed to
DHCP
Tầng Link 5-94
Một ngày trong cuộc sống … kết nối tới Internet
DHCP DHCP !  DHCP server lập DHCP
DHCP UDP ACK chứa địa chỉ IP của
DHCP IP client, địa chỉ IP của
DHCP Eth router first-hop cho
Phy client đó, tên và địa chỉ
IP của DNS server
!  Đóng gói tại DHCP server,
DHCP DHCP frame được chuyển tiếp
DHCP UDP (sự học của switch) thông
DHCP IP qua mạng LAN, tách ra tại
DHCP Eth router client
Phy (chạy DHCP)
DHCP !  DHCP client nhận DHCP
ACK reply

Bây giờ, Client có ịa chỉ address, biết tên và ịa chỉ


của DNS server, ịa chỉ IP của router first-hop

Tầng Link 5-95


Một ngày trong cuộc sống… ARP (trước DNS,
trước HTTP)
!  Trước khi gửi HTTP request,
DNS DNS cần địa chỉ IP của
UDP
DNS
DNS IP
www.google.com: DNS
ARP
ARP query Eth !  DNS query được tạo, đóng gói
Phy trong UDP, được đóng gói trong
IP, được đóng gói trong Eth. Gửi
frame tới router, cần địa chỉ
ARP reply
ARP
Eth
MAC của interface của router
Phy interface: ARP
!  ARP query broadcast, được
router
(chạy DHCP) nhận bởi router, router này sẽ
trả lời lại với ARP reply cung
cấp địa chỉ MAC của interface
của router này
!  Hiện tại, client biết địa chỉ
MAC của router first hop , vì
vậy nó có thể gửi frame chứa
DNS query
Tầng Link 5-96
Một ngày trong cuộc sống… using
DNS DNS
DNS UDP DNS server
DNS IP
DNS DNS DNS Eth
DNS UDP DNS Phy
DNS IP
DNS Eth
Phy
DNS
Comcast network
68.80.0.0/13

!  IP datagram được chuyển tiếp


router từ mạng campus tới mạng
(chạy DHCP) Comcast, được định tuyến (các
!  IP datagram chứa DNS bảng được tạo bởi các giao
query được chuyển tiếp thức định tuyến RIP, OSPF, IS-
thông qua switch của IS và/hoặc BGP) tới DNS
mạng LAN từ client tới !  server
Được tách/ghép tới DNS server
router hop thứ nhất !  DNS server trả lời cho client
với địa chỉ IP address của
www.google.com Tầng Link 5-97
Một ngày trong cuộc sống…kết nối TCP mang
HTTP
HTTP
HTTP
SYNACK
SYN TCP
SYNACK
SYN IP
SYNACK
SYN Eth
Phy

!  Gửi HTTP request, đầu


tiên client mở TCP
socket tới web server
router !  TCP SYN segment (bước 1
(chạy DHCP)
SYNACK
SYN TCP trong 3-bước bắt tay)
SYNACK
SYN IP được định tuyến liên
SYNACK
SYN Eth miềntới web server
Phy !  web server đáp ứng với
TCP SYNACK (bước 2
web server trong 3-bước bắt tay)
64.233.169.105 !  Kết nối TCP ược thiết lập!
Tầng Link 5-98
Một ngày trong cuộc sống…
HTTP yêu cầu/trả lời (request/reply)
HTTP
HTTP HTTP !  Trang web cuối cùng cũng
HTTP
HTTP TCP được thể hiện ra(!!!)
HTTP
HTTP IP
HTTP
HTTP Eth
Phy

!  HTTP request được gửi


vào trong TCP socket
!  IP datagram chứa HTTP
router request được định tuyến
HTTP HTTP (chạy DHCP)
HTTP TCP tới www.google.com
HTTP IP
HTTP Eth !  web server đáp ứng với
Phy HTTP reply (chứa trang
web)
web server !  IP datagram chứa HTTP
64.233.169.105 reply được định tuyến trờ
về client Tầng Link 5-99
Chương 5: Tổng kết
!  các nguyên lý của các dịch vụ tầng data link:
"  Phát hiện và sửa chữa lỗi
"  Chia sẽ kênh broadcast: đa truy cập
"  Định địa chỉ tầng link
!  Thực hiện các công nghệ khác nhau của tầng
link
"  Ethernet
"  Mạng LAN và VLAN chuyển mạch
"  Mạng ảo hóa như là một lớp tầng link: MPLS
!  Tổng hợp: một ngày trong cuộc sống của
truy vấn web

Tầng Link5-100
Chương 5: let s take a breath
!  Tìm hiểu ầy ủ chồng giao thức từ trên
xuống dưới (ngoại trừ PHY)
!  Hiểu về các nguyên tắt mạng và hiện thực
!  ….. Có thể dừng tại đây …. Nhưng có một số
chủ đề thú vị!
"  wireless
"  multimedia
"  security
"  network management

Tầng Link5-101
Hong Bang International University
Department of Information Technology

END OF LECTURE
mobile network

national or global ISP

local or regional ISP


Internet
home network content
provider
network
datacenter
network

enterprise
network
Hong Bang International University
Department of Information Technology

COMPUTER
NETWORKING
mobile network

national or global ISP

Wireless and
local or
Internet
regional ISP Mobile Networks
home network content
provider
Instructor: MSc. Hoang Ngoc Long
network datacenter
network

enterprise
network
Wireless and Mobile Networks: context
§ more wireless (mobile) phone subscribers than fixed (wired) phone
subscribers (10-to-1 in 2019)!
§ more mobile-broadband-connected devices than fixed-broadband-
connected devices devices (5-1 in 2019)!
• 4G/5G cellular networks now embracing Internet protocol stack,
including SDN
§ two important (but different) challenges
• wireless: communication over wireless link
• mobility: handling the mobile user who changes point of attachment to
network

Wireless and Mobile Networks: 7-2


Chapter 7 outline

§ Introduction

Wireless Mobility
§ Wireless Links and network § Mobility management: principles
characteristics § Mobility management: practice
§ WiFi: 802.11 wireless LANs • 4G/5G networks
§ Cellular networks: 4G and 5G • Mobile IP
§ Mobility: impact on higher-layer
protocols
Wireless and Mobile Networks: 7- 3
Elements of a wireless network

wired network
infrastructure

Wireless and Mobile Networks: 7- 4


Elements of a wireless network
wireless hosts
§ laptop, smartphone, IoT
§ run applications
§ may be stationary (non-mobile) or mobile
wired network • wireless does not always mean mobility!
infrastructure

Wireless and Mobile Networks: 7- 5


Elements of a wireless network
base station
§ typically connected to wired network
§ relay - responsible for sending packets
between wired network and wireless
wired network host(s) in its “area”
infrastructure • e.g., cell towers, 802.11 access points

Wireless and Mobile Networks: 7- 6


Elements of a wireless network
wireless link
§ typically used to connect mobile(s) to
base station, also used as backbone link
§ multiple access protocol coordinates link
access
wired network § various transmission rates and distances,
infrastructure frequency bands

Wireless and Mobile Networks: 7- 7


Characteristics of selected wireless links

14 Gbps 802.11ax
10 Gbps 5G

3.5 Gbps 802.11ac


802.11 af,ah
600 Mbps 802.11n
4G LTE
54 Mbps 802.11g
11 Mbps 802.11b
2 Mbps Bluetooth
Indoor Outdoor Midrange Long range
outdoor outdoor
10-30m 50-200m 200m-4Km 4Km-15Km

Wireless and Mobile Networks: 7- 8


Elements of a wireless network
infrastructure mode
§ base station connects mobiles into
wired network
§ handoff: mobile changes base station
wired network
providing connection into wired
infrastructure network

Wireless and Mobile Networks: 7- 9


Elements of a wireless network
ad hoc mode
§ no base stations
§ nodes can only transmit to
other nodes within link
coverage
§ nodes organize themselves
into a network: route among
themselves

Wireless and Mobile Networks: 7- 10


Wireless network taxonomy
single hop multiple hops
host connects to base host may have to relay
infrastructure station (WiFi, cellular) through several wireless
(e.g., APs) which connects to nodes to connect to larger
larger Internet Internet: mesh net

no base station, no no base station, no connection


no connection to larger to larger Internet. May have
infrastructure Internet (Bluetooth, ad to relay to reach other a given
hoc nets) wireless node MANET, VANET

Wireless and Mobile Networks: 7- 11


Chapter 7 outline

§ Introduction

Wireless Mobility
§ Wireless links and network § Mobility management: principles
characteristics § Mobility management: practice
§ WiFi: 802.11 wireless LANs • 4G/5G networks
§ Cellular networks: 4G and 5G • Mobile IP
§ Mobility: impact on higher-layer
protocols
Link Layer: 6-12
Wireless link characteristics (1)
important differences from wired link ….
§ decreased signal strength: radio signal attenuates
as it propagates through matter (path loss)
§ interference from other sources: wireless network
frequencies (e.g., 2.4 GHz) shared by many devices
(e.g., WiFi, cellular, motors): interference
§ multipath propagation: radio signal reflects off
objects ground, arriving at destination at slightly
different times
…. make communication across (even a point to point) wireless link
much more “difficult”
Wireless and Mobile Networks: 7- 13
Wireless link characteristics (2)
§ SNR: signal-to-noise ratio 10-1

• larger SNR – easier to extract signal 10-2

from noise (a “good thing”) 10-3

§ SNR versus BER tradeoffs

BER
10-4

• given physical layer: increase power -> 10-5

increase SNR->decrease BER 10-6

• given SNR: choose physical layer that 10-7


meets BER requirement, giving 10 20
SNR(dB)
30 40

highest throughput
QAM256 (8 Mbps)
• SNR may change with mobility:
QAM16 (4 Mbps)
dynamically adapt physical layer
(modulation technique, rate) BPSK (1 Mbps)

Wireless and Mobile Networks: 7- 14


Wireless link characteristics (3)
Multiple wireless senders, receivers create additional problems (beyond
multiple access):
A B C
C
A’s signal C’s signal
strength strength
B
A

space

Hidden terminal problem Signal attenuation:


§ B, A hear each other § B, A hear each other
§ B, C hear each other § B, C hear each other
§ A, C can not hear each other means A, § A, C can not hear each other
C unaware of their interference at B interfering at B
Wireless and Mobile Networks: 7- 15
Code Division Multiple Access (CDMA)
§ unique “code” assigned to each user; i.e., code set
partitioning
• all users share same frequency, but each user has own “chipping”
sequence (i.e., code) to encode data
• allows multiple users to “coexist” and transmit simultaneously with
minimal interference (if codes are “orthogonal”)
§ encoding: inner product: (original data) X (chipping sequence)
§ decoding: summed inner-product: (encoded data) X (chipping
sequence)

Wireless and Mobile Networks: 7- 16


CDMA encode/decode
channel output Zi,m
Zi,m= di.cm
data d0 = 1
1 1 1 1 1 1 1 1
d1 = -1
bits -1 -1 -1 -1 -1 -1 -1 -1
sender 1 1 1 1 1 1 1 1 slot 1 slot 0
code channel channel
-1 -1 -1 -1 -1 -1 -1 -1
output output
slot 1 slot 0

M
Di = S Zi,m.cm
m=1
M
receiver received 1 1 1 1 1 1 1 1
d0 = 1
input -1 -1 -1 -1 -1 -1 -1 -1 d1 = -1

1 1 1 1 1 1 1 1 slot 1 slot 0
code channel channel
-1 -1 -1 -1 -1 -1 -1 -1
output output
slot 1 slot 0

… but this isn’t really useful yet!


Wireless and Mobile Networks: 7- 17
CDMA: two-sender interference
channel sums together
transmissions by sender
Sender 1 1 and 2

Sender 2

using same code as sender


1, receiver recovers sender
1’s original data from
summed channel data!
… now that’s useful!
Wireless and Mobile Networks: 7- 18
Chapter 7 outline

§ Introduction

Wireless Mobility
§ Wireless links and network § Mobility management: principles
characteristics § Mobility management: practice
§ WiFi: 802.11 wireless LANs • 4G/5G networks
§ Cellular networks: 4G and 5G • Mobile IP
§ Mobility: impact on higher-layer
protocols
Link Layer: 6-19
IEEE 802.11 Wireless LAN
IEEE 802.11 Year Max data rate Range Frequency
standard
802.11b 1999 11 Mbps 30 m 2.4 Ghz
802.11g 2003 54 Mbps 30m 2.4 Ghz
802.11n (WiFi 4) 2009 600 70m 2.4, 5 Ghz
802.11ac (WiFi 5) 2013 3.47Gpbs 70m 5 Ghz
802.11ax (WiFi 6) 2020 (exp.) 14 Gbps 70m 2.4, 5 Ghz
802.11af 2014 35 – 560 Mbps 1 Km unused TV bands
(54-790 MHz)
802.11ah 2017 347Mbps 1 Km 900 Mhz

§ all use CSMA/CA for multiple access, and have base-station and ad-hoc
network versions
Wireless and Mobile Networks: 7- 20
802.11 LAN architecture

Internet
§ wireless host communicates with
base station
• base station = access point (AP)
switch § Basic Service Set (BSS) (aka “cell”)
or router in infrastructure mode contains:
• wireless hosts
BSS 1
• access point (AP): base station
• ad hoc mode: hosts only

BSS 2
Wireless and Mobile Networks: 7- 21
802.11: Channels, association
§ spectrum divided into channels at different frequencies
• AP admin chooses frequency for AP
• interference possible: channel can be same as that chosen by
neighboring AP!
§ arriving host: must associate with an AP
• scans channels, listening for beacon frames
containing AP’s name (SSID) and MAC address
• selects AP to associate with
• then may perform authentication [Chapter 8] BSS
• then typically run DHCP to get IP address in
AP’s subnet

Wireless and Mobile Networks: 7- 22


802.11: passive/active scanning
BBS 1 BBS 2 BBS 1 BBS 2

1
AP 1
1 1 AP 2 2 2 AP 2
2
AP 1
3 3
4

H1 H1

passive scanning: active scanning:


(1) beacon frames sent from APs (1) Probe Request frame broadcast from H1
(2) association Request frame sent: H1 (2) Probe Response frames sent from APs
to selected AP (3) Association Request frame sent: H1 to
(3) association Response frame sent selected AP
from selected AP to H1 (4) Association Response frame sent from
selected AP to H1

Wireless and Mobile Networks: 7- 23


IEEE 802.11: multiple access
§ avoid collisions: 2+ nodes transmitting at same time
§ 802.11: CSMA - sense before transmitting
• don’t collide with detected ongoing transmission by another node
§ 802.11: no collision detection!
• difficult to sense collisions: high transmitting signal, weak received signal
due to fading
• can’t sense all collisions in any case: hidden terminal, fading
• goal: avoid collisions: CSMA/CollisionAvoidance

A B C
C

A’s signal C’s signal


B strength
A strength

space
Wireless and Mobile Networks: 7- 24
IEEE 802.11 MAC Protocol: CSMA/CA
802.11 sender
sender receiver
1 if sense channel idle for DIFS then
transmit entire frame (no CD)
DIFS
2 if sense channel busy then
start random backoff time
timer counts down while channel idle data
transmit when timer expires
if no ACK, increase random backoff interval, repeat 2
SIFS

802.11 receiver ACK


if frame received OK
return ACK after SIFS (ACK needed due to hidden
terminal problem)

Wireless and Mobile Networks: 7- 25


Avoiding collisions (more)
idea: sender “reserves” channel use for data frames using small
reservation packets
§ sender first transmits small request-to-send (RTS) packet to BS using
CSMA
• RTSs may still collide with each other (but they’re short)
§ BS broadcasts clear-to-send CTS in response to RTS
§ CTS heard by all nodes
• sender transmits data frame
• other stations defer transmissions

Wireless and Mobile Networks: 7- 26


Collision Avoidance: RTS-CTS exchange
A B
AP

RTS(A) RTS(B)
reservation collision
RTS(A)

CTS(A) CTS(A)

time
DATA (A)
defer

ACK(A) ACK(A)

Wireless and Mobile Networks: 7- 27


802.11 frame: addressing
2 2 6 6 6 2 6 0 - 2312 4
frame duration address address address seq address payload CRC
control 1 2 3 control 4

Address 1: MAC address Address 4: used only in


of wireless host or AP to ad hoc mode
receive this frame
Address 3: MAC address of
Address 2: MAC address router interface to which AP
of wireless host or AP is attached
transmitting this frame

Wireless and Mobile Networks: 7- 28


802.11 frame: addressing

Internet
H1 R1

802.3 Ethernet frame

R1 MAC addr H1 MAC addr


MAC dest addr MAC source addr

AP MAC addr H1 MAC addr R1 MAC addr


address 1 address 2 address 3

802.11 WiFi frame


Wireless and Mobile Networks: 7- 29
802.11 frame: addressing
duration of reserved frame sequence # (for reliable data
transmission time (RTS/CTS) transfer)

2 2 6 6 6 2 6 0 - 2312 4
frame duration address address address seq address payload CRC
control 1 2 3 control 4

2 2 4 1 1 1 1 1 1 1 1
protocol to from more power more
type subtype retry WEP rsvd
version AP AP frag mgt data

frame type (RTS, CTS, ACK, data)

Wireless and Mobile Networks: 7- 30


802.11: mobility within same subnet

§ H1 remains in same IP subnet: IP


address can remain same
§ switch: which AP is associated
with H1?
• self-learning (Ch. 6): switch
will see frame from H1 and
“remember” which switch
port can be used to reach H1
H1 BBS 2
BBS 1

Wireless and Mobile Networks: 7- 31


802.11: advanced capabilities
Rate adaptation
§ base station, mobile dynamically 10-1

change transmission rate (physical


10-2
10-3
layer modulation technique) as

BER
10-4

mobile moves, SNR varies 10-5


10-6

1. SNR decreases, BER increase as node moves 10-7


10 20 30 40
away from base station SNR(dB)

2. When BER becomes too high, switch to lower QAM256 (8 Mbps)


QAM16 (4 Mbps)
transmission rate but with lower BER BPSK (1 Mbps)
operating point

Wireless and Mobile Networks: 7- 32


802.11: advanced capabilities
power management
§ node-to-AP: “I am going to sleep until next beacon frame”
• AP knows not to transmit frames to this node
• node wakes up before next beacon frame
§ beacon frame: contains list of mobiles with AP-to-mobile
frames waiting to be sent
• node will stay awake if AP-to-mobile frames to be sent;
otherwise sleep again until next beacon frame

Wireless and Mobile Networks: 7- 33


Personal area networks: Bluetooth
§ less than 10 m diameter
§ replacement for cables (mouse, C P

keyboard, headphones) P
M
radius of
coverage
§ ad hoc: no infrastructure P
C C
§ 2.4-2.5 GHz ISM radio band, up to 3 P

Mbps
§ master controller / clients devices: M master device
• master polls clients, grants requests for C client device
client transmissions P parked device (inactive)

Wireless and Mobile Networks: 7- 34


Personal area networks: Bluetooth
§ TDM, 625 µsec sec. slot
§ FDM: sender uses 79 frequency C P

channels in known, pseudo-random P


radius of
M
order slot-to-slot (spread spectrum) coverage

• other devices/equipment not in piconet only C P


C
interfere in some slots P

§ parked mode: clients can “go to sleep”


(park) and later wakeup (to preserve
M master device
battery)
C client device
§ bootstrapping: nodes self-assemble P parked device (inactive)
(plug and play) into piconet
Wireless and Mobile Networks: 7- 35
Chapter 7 outline

§ Introduction

Wireless Mobility
§ Wireless links and network § Mobility management: principles
characteristics § Mobility management: practice
§ WiFi: 802.11 wireless LANs • 4G/5G networks
§ Cellular networks: 4G and 5G • Mobile IP
§ Mobility: impact on higher-layer
protocols
Link Layer: 6-36
4G/5G cellular networks
§ the solution for wide-area mobile Internet
§ widespread deployment/use:
• more mobile-broadband-connected devices than fixed-
broadband-connected devices devices (5-1 in 2019)!
• 4G availability: 97% of time in Korea (90% in US)
§ transmission rates up to 100’s Mbps
§ technical standards: 3rd Generation Partnership Project (3GPP)
• wwww.3gpp.org
• 4G: Long-Term Evolution (LTE)standard

Wireless and Mobile Networks: 7- 37


4G/5G cellular networks
similarities to wired Internet differences from wired Internet
§ edge/core distinction, but both § different wireless link layer
below to same carrier § mobility as a 1st class service
§ global cellular network: a § user “identity” (via SIM card)
network of networks § business model: users
§ widespread use of protocols subscribe to a cellular provider
we’ve studied: HTTP, DNS, TCP, • strong notion of “home network”
UDP, IP, NAT, separation of versus roaming on visited nets
data/control planes, SDN, • global access, with authentication
Ethernet, tunneling infrastructure, and inter-carrier
§ interconnected to wired settlements
Internet
Wireless and Mobile Networks: 7- 38
Elements of 4G LTE architecture

Mobile device:
Mobility
§ smartphone, tablet, laptop, Mobile device
(UE)
Management
Entity (MME)
Home Subscriber
Service (HSS)

IoT, ... with 4G LTE radio Base station


(eNode-B)

§ 64-bit International Mobile to


Internet
Subscriber Identity (IMSI),
stored on SIM (Subscriber PDN gateway (P-GW)

Identity Module) card Serving Gateway (S-GW)



§ LTE jargon: User Equipment
(UE)
radio access
network all-IP Enhanced Packet Core (EPC)

Wireless and Mobile Networks: 7- 39


Elements of 4G LTE architecture
Base station:
§ at “edge” of carrier’s network
§ manages wireless radio Mobile device
Mobility
Management Home Subscriber
Service (HSS)
resources, mobile devices in its (UE)
Base station
Entity (MME)

coverage area (“cell”) (eNode-B)

to
§ coordinates device Internet
authentication with other PDN gateway (P-GW)
elements
§ similar to WiFi AP but: …
Serving Gateway (S-GW)

• active role in user mobility


• coordinates with nearly base
stations to optimize radio use
§ LTE jargon: eNode-B
Wireless and Mobile Networks: 7- 40
Elements of 4G LTE architecture
Home Subscriber Service
§ stores info about mobile Mobility
Management Home Subscriber
devices for which the HSS’s Mobile device
(UE) Entity (MME) Service (HSS)
Base station
network is their “home (eNode-B)

network” to
Internet
§ works with MME in device PDN gateway (P-GW)
authentication
Serving Gateway (S-GW)

Wireless and Mobile Networks: 7- 41


Elements of 4G LTE architecture
Serving Gateway (S-GW),
PDN Gateway (P-GW) Mobility
Management Home Subscriber
Mobile device
§ lie on data path from mobile (UE)
Base station
Entity (MME) Service (HSS)

to/from Internet (eNode-B)

to
§ P-GW Internet
• gateway to mobile cellular PDN gateway (P-GW)
network
• Looks like any other …
Serving Gateway (S-GW)

internet gateway router


• provides NAT services
§ other routers:
• extensive use of tunneling
Wireless and Mobile Networks: 7- 42
Elements of 4G LTE architecture
Mobility Management
Entity Mobility
Management Home Subscriber
Mobile device Service (HSS)
Entity (MME)
§ device authentication (UE)
Base station
(eNode-B)
(device-to-network, network-
to
to-device) coordinated with Internet
mobile home network HSS PDN gateway (P-GW)

§ mobile device management: Serving Gateway (S-GW)



• device handover between cells
• tracking/paging device location
§ path (tunneling) setup from mobile
device to P-GW
Wireless and Mobile Networks: 7- 43
LTE: data plane control plane separation
HSS control plane
§ new protocols for mobility
management , security,
base station
MME
P-GW authentication (later)
S-GW

data plane
§ new protocols at link, physical
base station S-GW P-GW
layers
§ extensive use of tunneling to
IP tunnels facilitate mobility

Wireless and Mobile Networks: 7- 44


LTE data plane protocol stack: first hop
Application
LTE link layer protocols:
Transport § Packet Data Convergence: header
IP IP compression, encryption
Packet Data Packet Data
Convergence Convergence § Radio Link Control (RLC) Protocol:
fragmentation/reassembly, reliable data
Link

Radio Link Radio Link


Medium Access Medium Access transfer
Physical Physical § Medium Access: requesting, use of radio
transmission slots

data
plane
base station S-GW P-GW

Wireless and Mobile Networks: 7- 45


LTE data plane protocol stack: first hop
Application
LTE radio access network:
Transport § downstream channel: FDM, TDM within
IP IP frequency channel (OFDM - orthogonal
Packet Data
Convergence
Packet Data frequency division multiplexing)
Convergence
• “orthogonal”: minimal interference
Link

Radio Link Radio Link


Medium Access Medium Access between channels
Physical Physical • upstream: FDM, TDM similar to OFDM
§ each active mobile device allocated two or
more 0.5 ms time slots over 12 frequencies
• scheduling algorithm not standardized – up
base station
to operator
• 100’s Mbps per device possible
Wireless and Mobile Networks: 7- 46
LTE data plane protocol stack: packet core
tunneling:
GTP-U
§ mobile datagram
GTP-U GTP-U
UDP UDP UDP encapsulated using GPRS
IP IP IP IP Tunneling Protocol (GTP),
Packet Data
Convergence sent inside UDP
Radio Link link link link
Medium Access datagram to S-GW
Physical Physical Physical Physical § S-GW re-tunnels
datagrams to P-GW
§ supporting mobility: only
\ tunneling endpoints
base station S-GW P-GW change when mobile
user moves
Wireless and Mobile Networks: 7- 47
LTE data plane: associating with a BS
1
2
3 data
plane
base station S-GW P-GW

1 BS broadcasts primary synch signal every 5 ms on all frequencies


§ BSs from multiple carriers may be broadcasting synch signals
2 mobile finds a primary synch signal, then locates 2nd synch signal on this freq.
§ mobile then finds info broadcast by BS: channel bandwidth, configurations;
BS’s cellular carrier info
§ mobile may get info from multiple base stations, multiple cellular networks
3 mobile selects which BS to associate with (e.g., preference for home carrier)
4 more steps still needed to authenticate, establish state, set up data plane
Wireless and Mobile Networks: 7- 48
LTE mobiles: sleep modes
ZZZZ...

data
plane

as in WiFi, Bluetooth: LTE mobile may put radio to “sleep” to conserve


battery:
§ light sleep: after 100’s msec of inactivity
§ wake up periodically (100’s msec) to check for downstream transmissions
§ deep sleep: after 5-10 secs of inactivity
§ mobile may change cells while deep sleeping – need to re-establish association

Wireless and Mobile Networks: 7- 49


Global cellular network: a network of IP networks
home network HSS:
Home
Subscriber
Server
§ identify & services info,
while in home network
home mobile and roaming
carrier network P-GW
public Internet
and
inter-carrier IPX
all IP:

in home network § carriers interconnect


with each other, and
public internet at
exchange points
P-GW
SIM card: global visited mobile § legacy 2G, 3G: not all IP,
identify info in carrier network handled otherwise
home network

roaming in
visited network
Wireless and Mobile Networks: 7- 50
On to 5G!
§ goal: 10x increase in peak bitrate, 10x decrease in latency, 100x increase
in traffic capacity over 4G
§ 5G NR (new radio):
§ two frequency bands: FR1 (450 MHz–6 GHz) and FR2 (24 GHz–52 GHz): millimeter wave
frequencies
§ not backwards-compatible with 4G
§ MIMO: multiple directional antennae
§ millimeter wave frequencies: much higher data rates, but over shorter
distances
§ pico-cells: cells diameters: 10-100 m
§ massive, dense deployment of new base stations required
Wireless and Mobile Networks: 7- 51
Chapter 7 outline

§ Introduction

Wireless Mobility
§ Wireless links and network § Mobility management: principles
characteristics § Mobility management: practice
§ WiFi: 802.11 wireless LANs • 4G/5G networks
§ Cellular networks: 4G and 5G • Mobile IP
§ Mobility: impact on higher-layer
protocols
Link Layer: 6-52
What is mobility?
§ spectrum of mobility, from the network perspective:
no mobility high mobility

device moves device moves device moves device moves


between within same AP in among APs in among multiple
networks, but one provider one provider provider networks,
powers down network network while maintaining
while moving ongoing
We’re interested in these!
connections
Wireless and Mobile Networks: 7- 53
Mobility approaches
§ let network (routers) handle it:
• routers advertise well-known name, address (e.g., permanent 32-
bit IP address), or number (e.g., cell #) of visiting mobile node via
usual routing table exchange
• Internet routing could do this already with no changes! Routing
tables indicate where each mobile located via longest prefix match!

Wireless and Mobile Networks: 7- 54


Mobility approaches
§ let network (routers) handle it:
• routers advertise well-known notname, address (e.g., permanent 32-
bit IP address), or number (e.g., cell #) of visiting mobile node via
scalable
to billions of
usual routing table exchange
mobiles
• Internet routing could do this already with no changes! Routing
tables indicate where each mobile located via longest prefix match!
§ let end-systems handle it: functionality at the “edge”
• indirect routing: communication from correspondent to mobile
goes through home network, then forwarded to remote mobile
• direct routing: correspondent gets foreign address of mobile, send
directly to mobile
Wireless and Mobile Networks: 7- 55
Contacting a mobile friend: I wonder where
Alice moved to?
Consider friend frequently changing
locations, how do you find him/her?
§ search all phone books?
§ expect her to let you know
where he/she is?
§ call his/her parents?
§ Facebook!

The importance of having a “home”:


§ a definitive source of information about you
§ a place where people can find out where you are
Wireless and Mobile Networks: 7- 56
Home network, visited network: 4G/5G
Home
home network:
Subscriber
Server
§ (paid) service plan with
cellular provider, e.g.,
home mobile
carrier network P-GW
Verizon, Orange
public Internet § home network HSS stores
and
inter-carrier IPX identify & services info

in home network

… visited network:
§ any network other than
P-GW your home network
SIM card: global visited mobile
identify info carrier network § service agreement with
including home other networks: to provide

network roaming in
visited network access to visiting mobile
Wireless and Mobile Networks: 7- 57
Home network, visited network: ISP/WiFi
ISP/WiFi: no notion of global “home”
authentication § credentials from ISP (e.g.,
access
server
username, password) stored
on device or with user
public § ISPs may have national,
Internet
international presence

attach


§ different networks: different
credentials
• some exceptions (e.g.,
authentication
eduroam)
access
server
• architectures exist (mobile
IP) for 4G-like mobility, but

attach
not used
Wireless and Mobile Networks: 7- 58
Home network, visited network: generic
Home Network Visited Network
e.g.,: 128.119/16 e.g.,: 79.129/16

Permanent IP: Home NAT IP:


128.119.40.186 Subscriber 10.0.0.99
IMSI Server IMSI Mobility
78:4f:43:98:d9:27 manager
78:4f:43:98:d9:27

Mobility Visited
manager Home network
network
Home gateway gateway
gateway
public or private
Internet

Correspondent

Wireless and Mobile Networks: 7- 59


Registration: home needs to know where you are!
Home Network Visited Network
e.g.,: 128.119/16 e.g.,: 79.129/16
1 mobile associates
Home
Permanent IP:
128.119.40.186
IMSI
Subscriber
2
NAT IP:
10.0.0.99
Mobility
with visited
78:4f:43:98:d9:27
Server IMSI
78:4f:43:98:d9:27 manager mobility manager
Mobility
Home
Visited visited mobility
manager network
network
Home gateway
gateway
gateway manager registers
public or private mobile’s location
Internet with home HSS
end result:
§ visited mobility manager knows about mobile
§ home HSS knows location of mobile

Wireless and Mobile Networks: 7- 60


Mobility with indirect routing
Home Network Visited Network
e.g.,: 128.119/16 e.g.,: 79.129/16

Permanent IP: Home NAT IP:


128.119.40.186 Subscriber 10.0.0.99 3
IMSI Server IMSI Mobility
78:4f:43:98:d9:27 manager
78:4f:43:98:d9:27
visited gateway router
2
Mobility
Home 4a
Visited forwards to mobile
manager network
network
Home gateway gateway
gateway
home gateway receives public or private
Internet
datagram, forwards (tunnels) 1
visited gateway router forwards
to remote gateway 4b
reply to correspondent via home
correspondent uses home network (4a) or directly (4b)
address as datagram Correspondent
destination address
Wireless and Mobile Networks: 7- 61
Mobility with indirect routing: comments
§ triangle routing:
• inefficient when correspondent
and mobile are in same network
§ mobile moves among visited networks: transparent to correspondent!
• registers in new visited network
• new visited network registers with home HSS
• datagrams continue to be forwarded from home network to mobile
in new network
• on-going (e.g., TCP) connections between correspondent and mobile
can be maintained!
Wireless and Mobile Networks: 7- 62
Mobility with direct routing
Home Network Visited Network
e.g.,: 128.119/16 e.g.,: 79.129/16

Permanent IP: Home NAT IP:


128.119.40.186 Subscriber 10.0.0.99 4
IMSI Server IMSI Mobility
78:4f:43:98:d9:27 manager
78:4f:43:98:d9:27
visited gateway router
Mobility Visited forwards to mobile
manager network
gateway
Home gateway
2
public or private 3
Internet
correspondent contacts 1
home HSS, gets mobile’s Correspondent
visited network addresses datagram to
visited network
Correspondent
address

Wireless and Mobile Networks: 7- 63


Mobility with direct routing: comments
§ overcomes triangle routing inefficiencies
§ non-transparent to correspondent: correspondent must get care-of-
address from home agent
§ what if mobile changes visited network?
• can be handled, but with additional complexity

Wireless and Mobile Networks: 7- 64


Chapter 7 outline

§ Introduction

Wireless Mobility
§ Wireless links and network § Mobility management: principles
characteristics § Mobility management: practice
§ WiFi: 802.11 wireless LANs • 4G/5G networks
§ Cellular networks: 4G and 5G • Mobile IP
§ Mobility: impact on higher-layer
protocols
Link Layer: 6-65
Mobility in 4G networks: major mobility tasks
Mobility 1 base station association:
manager
Home § covered earlier
Subscriber 2 1
Server
MME § mobile provides IMSI –
Home 3 base station identifying itself, home network
network P-GW S-GW 4
2 control-plane configuration:
Internet § MME, home HSS establish
P-GW
Visited network control-plane state - mobile
is in visited network
Streaming
server 3 data-plane configuration:
§ MME configures forwarding tunnels for mobile
§ visited, home network establish tunnels from
home P-GW to mobile
4 mobile handover:
§ mobile device changes its point of attachment to visited network
Wireless and Mobile Networks: 7- 66
Configuring LTE control-plane elements
Mobility
manager
Home
Subscriber MME
2
Server
Home base station
network P-GW P-GW S-GW
Visited network

§ Mobile communicates with local MME via BS control-plane channel


§ MME uses mobile’s IMSI info to contact mobile’s home HSS
• retrieve authentication, encryption, network service information
• home HHS knows mobile now resident in visited network
§ BS, mobile select parameters for BS-mobile data-plane radio channel
Wireless and Mobile Networks: 7- 67
Configuring data-plane tunnels for mobile
Mobility
§ S-GW to BS tunnel: when Home
manager
Subscriber
mobile changes base Server
MME

stations, simply change Home


network S-GW
base station

P-GW
endpoint IP address of
tunnel Internet
P-GW Visited network
§ S-GW to home P-GW
tunnel: implementation of Streaming
indirect routing server

§ tunneling via GTP (GPRS tunneling protocol): mobile’s datagram to


streaming server encapsulated using GTP inside UDP, inside datagram

Wireless and Mobile Networks: 7- 68


Handover between BSs in same cellular network

data path before handover


source BS
1 current (source) BS selects
S-GW 3 target BS, sends Handover
1 4 Request message to target BS
2
P-GW
2 target BS pre-allocates radio
data path after
time slots, responds with HR
handover MME target BS
ACK with info for mobile

3 source BS informs mobile of new BS


§ mobile can now send via new BS - handover
looks complete to mobile
4 source BS stops sending datagrams to mobile, instead forwards to new BS
(who forwards to mobile over radio channel)
Wireless and Mobile Networks: 7- 69
Handover between BSs in same cellular network
source BS

S-GW 3
1 4 5 target BS informs MME that it is
2 6
P-GW new BS for mobile
5 7 § MME instructs S-GW to
5
change tunnel endpoint to be
MME target BS (new) target BS

6 target BS ACKs back to source BS: handover complete, source BS can


release resources
7 mobile’s datagrams now flow through new tunnel from target BS to S-GW

Wireless and Mobile Networks: 7- 70


Mobile IP
§ mobile IP architecture standardized ~20 years ago [RFC 5944]
• long before ubiquitous smartphones, 4G support for Internet protocols
• did not see wide deployment/use
• perhaps WiFi for Internet, and 2G/3G phones for voice were “good enough” at
the time
§ mobile IP architecture:
• indirect routing to node (via home network) using tunnels
• mobile IP home agent: combined roles of 4G HSS and home P-GW
• mobile IP foreign agent: combined roles of 4G MME and S-GW
• protocols for agent discovery in visited network, registration of visited location in
home network via ICMP extensions

Wireless and Mobile Networks: 7- 71


Wireless, mobility: impact on higher layer protocols

§ logically, impact should be minimal …


• best effort service model remains unchanged
• TCP and UDP can (and do) run over wireless, mobile
§ … but performance-wise:
• packet loss/delay due to bit-errors (discarded packets, delays for link-layer
retransmissions), and handover loss
• TCP interprets loss as congestion, will decrease congestion window un-
necessarily
• delay impairments for real-time traffic
• bandwidth a scare resource for wireless links

Wireless and Mobile Networks: 7- 72


Chapter 7 summary
Wireless
§ Wireless Links and network characteristics
§ WiFi: 802.11 wireless LANs
§ Cellular networks: 4G and 5G
Mobility
§ Mobility management: principles
§ Mobility management: practice
• 4G/5G networks
• Mobile IP
§ Mobility: impact on higher-layer protocols
Wireless and Mobile Networks: 7- 73
Hong Bang International University
Department of Information Technology

END OF LECTURE
mobile network

national or global ISP

local or regional ISP


Internet
home network content
provider
network
datacenter
network

enterprise
network

You might also like