OneForALL MMT ThanhDanh

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 744

Chương 1

Giới thiệu
A note on the use of these PowerPoint slides:
We’re making these slides freely available to all (faculty, students,
readers). They’re in PowerPoint form so you see the animations; and
can add, modify, and delete slides (including this one) and slide content
to suit your needs. They obviously represent a lot of work on our part.
In return for use, we only ask the following:
▪ If you use these slides (e.g., in a class) that you mention their
source (after all, we’d like people to use our book!)
▪ If you post any slides on a www site, that you note that they are
adapted from (or perhaps identical to) our slides, and note our
copyright of this material. Computer Networking: A
For a revision history, see the slide note for this page. Top-Down Approach
Thanks and enjoy! JFK/KWR 8th edition
Jim Kurose, Keith Ross
All material copyright 1996-2020 Pearson, 2020
J.F Kurose and K.W. Ross, All Rights Reserved
Giới thiệu: 1-1
Chương 1: Giới thiệu
Mục tiêu: Overview/roadmap:
▪ Làm quen với thuật ngữ ▪ What is the Internet?
• Tìm hiểu sâu hơn trong khóa ▪ What is a protocol?
học này ▪ Network edge: hosts, access network,
▪ Cách tiếp cận: physical media
• Sử dụng Internet làm 1 ví dụ ▪ Network core: packet/circuit switching,
internet structure
▪ Performance: loss, delay, throughput
▪ Security
▪ Protocol layers, service models
▪ History

Introduction: 1-2
Internet là gì: “nuts and bolts” view
Hàng triệu các thiết bị máy Mạng di động
tính được kết nối:
▪ hosts = hệ thống đầu cuối
ISP toàn cầu

▪ chạy ứng dụng mạng

Chuyển mạch gói: chuyển tiếp


gói tin (khối dữ liệu)
▪ Thiết bị định tuyến ISP vùng
(routers ) và thiêt bị Internet
chuyển mạch (switches)
mạng Nhà cung
Các liên kết truyền thông gia đình Cấp mạng

▪ cáp quang, cáp đồng, Trung tâm


radio, vệ tinh Mạng lưới
Dữ liệu
▪ tốc độ truyền: băng
thông
Mạng: mạng tổ chức
▪ Tất cả các thiết bị, bộ định
tuyến, liên kết: do một tổ
chức quản lý
Introduction: 1-3
Các thiết bị internet “Giải trí”

Máy tạo nhịp tim


Tweet-a-watt:
và màn hình
Máy giám sát
Amazon Echo sử dụng năng lượng
Khung hình IP
Máy nướng bánh mì được
Tủ lạnh internet tích hợp web+ dự báo thời tiết

Slingbox: đồng hồ,


điều khiển tivi từ xa
Camera an ninh Thiết bị AR
Giường nệm
Cảm biến
Điện thoại internet Others?
Fitbit
Introduction: 1-4
Internet là gì: “nuts and bolts” view
Mạng di động
4G
▪ 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.
Streaming
IP
▪ Các giao thức điều khiển gửi, nhận Skype video
thông tin ISP vùng
• Điều khiển gửi, nhận tin nhắn
• Ví dụ, HTTP (Web), streaming
video, Skype, TCP, IP, WiFi, 4G, Mạng Nhà cung cấp
Ethernet gia đình Mạng

HTTP Trung tâm


Mạng lưới dữ liệu

▪ Các chuẩn Internet Ethernet

• RFC: Request for comments TCP


• IETF: Internet Engineering Task mạng tổ chức
Force
WiFi
Introduction: 1-5
Internet là gì: “nuts and bolts” view
▪ Cơ sở hạ tầng cung cấp các mạng di động

dịch vụ cho các ứng dụng: ISP toàn cầu

• Web, streaming video, hội nghị


từ xa, email, games, thương mại Streaming
điện tử, mạng xã hội, các thiết Skype video
bị kết nối với nhau, … ISP vùng
▪ Cung cấp giao diện lập trình
cho các ứng dụng mạng gia đình Nhà cung

• Cái móc cho phép gửi và nhận


Cấp mạng
HTTP Trung tâm dữ liệu

các chương trình ứng dụng để


Mạng lưới

“kết nối” với Internet


• Cung cấp các lựa chọn dịch vụ, mạng tổ chức
tương tự như dịch vụ bưu chính.
Introduction: 1-6
Giao thức (Protocol) 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 phải là con người
▪ “Tôi có một câu hỏi” ▪ tất cả các hoạt động truyền thông
▪ Giới thiệu trên Internet bị chi phối bởi các giao
thức.
… thông điệp cụ thể đã
được gửi
Giao thức định nghĩa định dạng, thứ tự
… các hành động cụ thể các thông điệp được gởi và nhận giữa
được thực hiện khi
các thông điệp được các thực thể mạng, và các hành động
nhận, hoặc các sự kiện được thực hiện trên việc truyền và
khác nhận thông điệp

Introduction: 1-7
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
Rảnh không? kết nối TCP

2:00
<file>
time

Hỏi: các giao thức khác của con


người? Introduction: 1-8
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ử
Introduction: 1-9
Cái nhìn gần hơn về cấu trúc mạng:
mobile network

▪ Mạng biên (network edge): national or global ISP

• Hệ thống đầu cuối (host): máy


khách và máy chủ
• Máy chủ thường đặt trong trung
tâm dữ liệu local or
regional ISP

home network content


provider
network datacenter
network

enterprise
network

Introduction: 1-10
Cái nhìn gần hơn về cấu trúc mạng:
mobile network

▪ Mạng biên: national or global ISP

• Hệ thống đầu cuối (host): máy


khách và máy chủ
• Máy chủ thường đặt trong trung
tâm dữ liệu local or
regional ISP
▪ Mạng truy nhập, phương tiện
truyền thông vật lý: kết nối home network content
provider
truyền thông có dây, và không network datacenter
network

dây
enterprise
network

Introduction: 1-11
Cái nhìn gần hơn về cấu trúc mạng:
mobile network

▪ Mạng biên: national or global ISP

• Hệ thống đầu cuối (host): máy


khách Máy chủ thường đặt trong
trung tâm dữ liệu
• và máy chủ
▪ Mạng truy nhập, phương tiện
local or
regional ISP

truyền thông vật lý: kết nối


truyền thông có dây, và không
home network content
provider
dây network datacenter
network

▪ Mạng lõi (network core):


• các thiết bị định tuyến được liên
kết enterprise

• mạng của các mạng


network

Introduction: 1-12
Truy cập mạng 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ệ mobile network

thống đầu cuối với thiết bị định national or global ISP

tuyến biên?
▪ mạng truy cập khu dân cư
▪ mạng truy cập tổ chức (trường học, local or
công ty) regional ISP

▪ mạng truy cập di động (WiFi, 4G/5G) home network content


provider
Ghi nhớ: network datacenter
network

▪ băng thông (bits per second) của


mạng truy cập?
▪ Chia sẻ hoặc dành riêng? enterprise
network

Introduction: 1-13
Truy cập mạng: cáp cơ bản (đồng trục)
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 (FDM): các kênh truyền khác nhau


được truyền trong các dải tần số khác nhau.
Introduction: 1-14
Truy cập mạng: cáp cơ bản (đồng trục)
đầ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 40Mbps– , tải lên với 1.2
Mbps, tốc độ truyền tải ngược dòng 30-100 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
Introduction: 1-15
Truy cập mạng: đường dây thuê bao kỹ thuật số
văn phòng
trung tâm mạng điện thoại

DSL splitter
modem DSLAM

Thoại, dữ liệu được truyền ở ISP


các tần số khác nhau DSL access
multiplexer
qua đường dây dành riêng
đến văn phòng trung tâm

❖ Dùng đường dây điện thoại hiệu có đế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
❖ 3.5-16 Mbps tốc độ truyền dữ liệu lên
❖ 24-52 Mbps tốc độ truyền dữ liệu xuống Introduction: 1-16
Truy cập mạng: 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
Thường được tâm
tích hợp
trong một hộp
duy nhất cable or DSL modem

WiFi wireless access router, firewall, NAT


point (54, 450 Mbps)
wired Ethernet (1 Gbps)
Introduction: 1-17
Truy cập mạng 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 trạm gốc (base station) còn được gọi là “điểm
truy cập (access point)”
Truy cập không dây mạng diện rộng
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 điện thoại (di
động), 10’s km
▪ 802.11b/g/n (WiFi): tốc độ Từ 1 đến 10 Mbps
truyền 11, 54, 450 Mbps 4G: LTE (5G đang thử nghiệm)

to Internet
to Internet
Introduction: 1-18
Mạng truy cập doanh nghiệp (Enterprise)
(Ethernet)

Kết nối đến


ISP (Internet)
Thiết bị định tuyến
Thiết bị institutional mail,
chuyển mạch web servers
Ethernet

▪ Thường được sử dụng trong công ty, trường đại học…


▪ Tất cả các công nghệ có dây và không dây, kết nối tất cả các
thiết bị chuyển mạch và bộ định tuyến
▪ Ethernet: truy cập có dây đạt 100Mbps, 1Gbps, 10Gbps
▪ WiFi: điểm truy cập không dây đạt 11, 54, 450 Mbps
Introduction: 1-19
Hệ thống đầu cuối: gởi các gói dữ liệu
Chức năng hệ thống đầu cuối (host) bên gửi:
▪ Lấy thông tin lớp ứng dụng (application
layer)
two packets,
▪ Chia nhỏ thành những phần nhỏ hơn,
L bits each
được biết như là các gói, chiều dài L bits
▪ Truyền các gói trong mạng truy cập với host
tốc độ truyền R 2 1

• Tốc độ truyền của đường liên kết, còn


được gọi là khả năng/công suất của
đường liên kết, còn được gọi là băng R: tốc độ truyền của đường liên kết
thông của đường liên kết (liên kết)

Độ trễ truyền gói


Thời gian cần để L (bits)
= Truyền L-bit các gói
đến đường liên kết
=
R (bits/sec)
Introduction: 1-20
Đường truyền vật lý
▪ bit: lan truyền giữa các cặp Cặp xoắn (TP)
truyền/nhận ▪ Hai dây cáp đồng độc lập
▪ Liên kết vật lý: những gì nằm • Loại 5 (CAT5): 100 Mbps, 1 Gpbs
giữa thiết bị truyền và nhận Ethernet
Loại 6 (CAT6): 10Gbps
▪ Phương tiện truyền thông •

được hướng dẫn:


• Các tín hiệu lan truyền
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
không được hướng dẫn:
• Tín hiệu lan truyền tự do,
ví dụ radio Introduction: 1-21
Đường truyền vật lý: cáp đồng trục, cáp
quang Cáp quang:
Sợi thủy tinh mạng xung ánh
Cáp đồng trục:
sáng, mỗi xung là một bit
▪ Hai dây dẫn đồng đồng tâm
Hoạt động tốc độ cao:
▪ Hai hướng Truyền point-to-point với tốc độ
▪ Băng thông rộng: cao (ví dụ tốc độ truyền 10’s-
100’s Gpbs)
• nhiều kênh trên cáp
Tỷ lệ lỗi thấp:
• Mỗi kênh 100’s Mbps Bộ lặp (repeaters) cách xa phần
còn lại
Không bị nhiễu điện từ

Introduction: 1-22
Đường truyền vật lý: sóng radio
Các loại liên kết radio:
Radio không dây
▪ Vi sóng mặt đất
▪ Tín hiệu được mang dưới • Các kênh đến 45 Mbps
dạng phổ điện từ ▪ Mạng cục bộ (LAN) (như
▪ Không có dây dẫn vật lý WiFi)
▪ Truyền hai chiều • Diện rộng (như cellular)
• 4G cellular: ~ 10’s Mbps
▪ Các tác động môi trường
Vệ tinh
lan truyền: ▪
• Kênh từ Kbps đến 45Mbps
• Phản xạ (hoặc chia nhiều kênh nhỏ)
• Bị cản trở bởi vật cản • Độ trễ giữa 2 thiết bị đầu
• Bị nhiễu cuối 270 msec
❖ Giữ khoảng cách cố định
với mặt đất, độ cao thấp Introduction: 1-23
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ử
Introduction: 1-24
Mạng lõi
▪ Gồm các bộ định tuyến được
kết nối với nhau
mobile network
ISP quốc tế
▪ Chuyển mạch gói: các hệ thống
đầu cuối (host) chia nhỏ dữ liệu
lớp ứng dụng (application-layer
messages) thành các gói ISP địa

• Chuyển tiếp các gói từ một phương

bộ định tuyến này đến bộ home network content


định tuyến tiếp theo qua các provider
network datacenter

đường liên kết trên đường đi network

từ nguồn tới đích.


• Mỗi gói được truyền tải với enterprise

công suất lớn nhất của đường


network

liên kết Introduction: 1-25


Chuyển mạch gói: lưu và chuyển tiếp (store-
and-forward)
L bits
mỗi gói
3 2 1
Nguồn đích
R bps R bps

▪ Mất L/R giây để truyền tải L-bit gói trong


đường liên kết tại tốc độ R bps Ví dụ số về one-hop :
▪ Lưu và chuyển tiếp: toàn bộ các gói phải đến ▪ L = 10 Kbits
bộ định tuyến trước khi nó có thể được ▪ R = 100 Mbps
truyền tải trên đường liên kết tiếp theo
▪ Độ trễ truyền tải one-hop =
▪ Độ trễ giữa 2 đầu cuối (end-end delay) = 2L/R 0.1 msec
(giả sử không có độ trễ lan truyền)
Introduction: 1-26
Chuyển mạch gói: độ trễ xếp hàng, sự mất mát
R = 100 Mb/s
A C

D
B R = 1.5 Mb/s
E
Các gói xếp hàng
chờ đến lượt xuất
trên đường liên kết

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


▪ Nếu tốc độ đến (theo bit) đến đường liên kết vượt quá tốc độ
truyền dẫn của đường liên kết trong một khoảng thời gian:
• Các gói sẽ xếp hàng và đợi để được truyền tải trên đường liên
kết
• Các gói có thể bị bỏ (bị mất) nếu bộ nhớ (bộ đệm) bị đầy.
Introduction: 1-27
Hai chức năng chính của mạng lõi

routing algorithm Định tuyến


(routing): xác
Chuyển tiếp local
local forwarding
forwarding table
table
định đường đi từ
(forwarding): header value output link
nguồn đến đích được
chuyển các gói 0100
0101
3
2
thực hiện bởi các gói
từ đầu vào của
0111 2
1001 1 • Thuật toán định
bộ định tuyến tuyến
đến đầu ra thích
hợp của bộ định 1

tuyết đó 3 2

Địa chỉ đến trong header


của các gói đến
Introduction: 1-28
Thay thế cho chuyển mạch gói: 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 liên kết có bốn
kênh.
• Cuộc gọi dùng kênh thứ 2nd trong
đường liên kết trên cùng và kênh thứ
trong đường liên kết bên phải.
▪ Tài nguyên được dành riêng : không chia
sẻ
• circuit-like (được đảm bảo)
performance
▪ Mảnh 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 Introduction: 1-29
Chuyển mạch kênh: FDM với TDM
Ghép kênh phân chia theo tần số 4 người dùng
(FDM)
▪ tần số quang học, điện từ được

Tần số
chia thành các dải tần số (hẹp)
▪ mỗi cuộc gọi được phân bổ băng
tần riêng của nó, có thể truyền với
tốc độ tối đa của băng tần hẹp đó time
Ghép kênh phân chia theo thời gian
(TDM)

Tần số
▪ Thời gian được chia các khe
▪ mỗi cuộc gọi được phân bổ (các)
khoảng thời gian định kỳ, có thể
truyền ở tốc độ tối đa của dải tần time
(rộng hơn), nhưng chỉ trong (các)
khe thời gian của nó Introduction: 1-30
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 liên kết 1 Mb/s
▪ Với 10 người dùng, TB mỗi người
dùng: N
• 100 kb/s khi “kích hoạt” Người dùng Đường liên kết
• Thời gian kích hoạt 10%
1 Gbps
▪ Chuyển mạch kênh:
• 10 người dùng
Q: làm thế nào có được giá trị 0.0004?
▪ Chuyển mạch gói:
• Với 10 người dùng, Q: cái gì sẽ xảy ra nếu > 35 người dùng ?
• Với 35 người dùng, xác suất kích
hoạt > 10 sẽ nhỏ hơn 0.0004

Introduction: 1-31
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à “kẻ chiến
thắng tất cả”?
▪ Tốt cho trường hợp dữ liệu không được truyền ra với tốc độ đều (bursty
data)
• Chia sẻ tài nguyên
• Đơn giản, không cần thiết lập cuộc gọi
▪ Trong trường hợp tắc nghẽn quá mức: các gói bị trễ và thất lạc
• Các giao 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
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)?
Introduction: 1-32
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 các
ISP truy cập (Internet Service Providers)
• Các ISP khu dân cư, công ty và trường đại học
▪ Các ISP truy cập lần lượt phải được kết nối với nhau
❖Vì vậy, bất cứ hai hệ thống đầu cuối 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
Introduction: 1-33
Kiến trúc Internet: mạng của các mạng
Câu hỏi: có hàng triệu ISPs truy cập, làm thế nào để chúng kết nối được
với nhau?
access access
net net
access
net
access
access net
net
access
access net
net

access access
net net

access
net
access
net

access
net
access
net
access access
net access net
net

Introduction: 1-34
Kiến trúc Internet: mạng của các mạng*
Lựa chọn: kết nối từng ISP truy cập đến các ISP truy cập khác?
access access
net net
access
net
access
access net
net
access
access net
net

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


cập đến từng ISP truy cập
khác sẽ không phát triển
access access
net net

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


access
net
access
net

access
net
access
net
access access
net access net
net

Introduction: 1-35
Kiến trúc Internet: mạng của các mạng
Lựa chọn: kết nối từng ISP truy cập đế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ả thuận về kinh tế.
access access
net net
access
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 access
net access net
net

Introduction: 1-36
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ó nhiều đối thủ cạnh
tranh
access access
net net
access
net
access
access net
net
access
access net
net ISP A

access
net ISP B access
net

access ISP C
net
access
net

access
net
access
net
access access
net access net
net

Introduction: 1-37
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
Điểm trao đổi Internet
access access
net net
access
net
access
access net
net
IXP access
access net
net ISP A

access
net
IXP ISP B access
net

access ISP C
net
access
net

access
net
peering liên kết
access
net
access access
net access net
net

Introduction: 1-38
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 net
access
net
access
access net
net
IXP access
access net
net ISP A

access
net
IXP ISP B access
net

access ISP C
net
access
net

access
net
ISP khu vực access
net
access access
net access net
net

Introduction: 1-39
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
IXP access
access net
net ISP A

Nhà cung cấp mạng


access
net
IXP ISP B access
net

access ISP C
net
access
net

access
net
ISP khu vực access
net
access access
net access net
net

Introduction: 1-40
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 mạng (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 và ISP cấp Introduction:
1. 1-41
ISP cấp 1: như là Sprint
POP: point-of-presence
to/from other Sprint PoPS
links to peering
networks


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

Introduction: 1-42
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ử
Introduction: 1-43
Sự mất mát và độ trễ xảy ra như thế nào?
Các gói tin đợi trong bộ đêm của bộ định tuyến (router)
▪ Các gói tin đợi và chờ đến lượt
▪ Tốc độ đến của các gói tin đến đường liên kết (tạm thời) vượt
quá cả năng của đường liên kết đầu ra
các gói đang được truyền (trễ)

B
các gói đ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òn chỗ trống trong bộ đệm Introduction: 1-44
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 cổng ra cho việc
▪ Xác định đường ra truyền dữ liệu
▪Phụ thuộc vào mức độ tắc nghẽn
▪ Thông thường <
msec của bộ định tuyến Introduction: 1-45
Bốn nguồn gây ra chậm trễ gói tin
Truyền
A Lan truyền

B
Xử ly tai 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 liên kết vật lý
▪R: băng thông đường liên kết ▪s: tốc độ lan truyền trong môi
(bps) trường (thiết bị, dây dẫn) (~2x108
▪dtrans = L/R m/sec)
dtrans and dprop ▪dprop = d/s
very different Introduction: 1-46
So sánh với đoàn xe
100 km 100 km

Đoàn 10 xe Trạm thu phí Trạm thu phí

▪ Thời gian để “đẩy” toàn bộ


▪ Các xe “lan truyền” với tốc đoàn xe qua trạm thu phí
độ 100 km/hr qua đường cao tốc = 12*10
▪ Trạm thu phí xử lý mỗi xe là = 120 sec
12 giây ( thời gian truyền bit) ▪ Thời gian để xe cuối cùng
▪ xe~bit; đoàn xe~ các gói lan truyền từ trạm thu phí
▪ Q: Mất bao lâu thì đoàn xe số 1 đến trạm thu phí số 2
tới trạm thu phí thứ 2? là 100km/(100km/hr)= 1
hr
▪ A: 62 minutes Introduction: 1-47
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 theo sau tiếp theo vẫn còn ở trạm thu phí thứ 1.
Introduction: 1-48
Trễ do xếp hàng (nhắc lại)

average queueing delay


▪ R: băng thông đường liên kết (bps)
▪ L: độ dài gói tin (bits)
▪ a: tỷ lệ trung bình gói tin đến

Cường độ lưu thông= 1


La/R ~ 0: trễ trung bình nhỏ La/R
La/R -> 1: trễ trung bình lớn La/R ~ 0
La/R > 1: nhiều “việc” đến hơn khả
năng phục
vụ, trễ trung bình vô hạn!
La/R -> 1
Introduction: 1-49
Độ 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
Introduction: 1-50
Độ trễ và định tuyến trên Internet “thực tế”
3 3 giá trị trễ từ

1 cs-gw (128.119.240.254) 1 ms 1 ms 2 ms 3 delay measurements


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 to border1-rt-fa5-1-0.gw.umass.edu
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 Liên kết 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
10 de.fr1.fr.geant.net (62.40.96.50) 113 ms 121 ms 114 ms Có vẻ như sự chậm trễ
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 giảm xuống! Tại sao?
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


Introduction: 1-51
Sự mất gói
▪ Hàng đợi (còn gọi là bộ đệm) trước đường liên kết 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ỏ

Introduction: 1-52
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

đường ống có thể


link capacity Đường ống có thể
link capacity
Rs bits/sec Rcchất
bits/sec
Máyserver,
chủ gởiwith mang chất lỏng với mang lỏng với
các file
bitof(chất
F bits ađộ tốc độ
to lỏng) vào
send to client Rs bits/sec Rc bits/sec
đường ống Introduction: 1-53
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 liên kết nút


cổ chai

Đường liên kết 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
Introduction: 1-54
Thông lượng: Ngữ cảnh Internet
▪ Thông lượng điểm
Rs cuối-cuối cho mỗi kết
Rs Rs nối : min(Rc,Rs,R/10)
▪ Trong thực tế: Rc
R hoặc Rs thường bị
Rc thắt nút cổ chai
Rc
Rc
* Check out the online interactive exercises for more
examples: http://gaia.cs.umass.edu/kurose_ross/

10 connections (fairly) share


backbone bottleneck link R bits/sec
Introduction: 1-55
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ử
Introduction: 1-56
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 phải “bắt kịp”
• An toàn được cân nhắc trong tất cả các tầng
Introduction: 1-57
Kẻ xấu: đặt phần mềm có hại (malware ) vào
trong các hệ thống đầu cuối thông qua Internet
▪ Phần mềm có hại có thể xâm nhập vào trong hệ thống đầu
cuối 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ần mề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
▪ hệ thống đầu cuối bị nhiễm có thể được dùng trong mạng
botnet, sử dụng cho thư rác. Tấn công DDoS

Introduction: 1-58
kẻ xấu: tấn công máy chủ, hạ tầng mạng
Từ chối dịch vụ (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 triệt tiêu 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 hệ
thống đầu cuối xung
quanh mạng (xem
botnet) Mục tiêu
3. gởi các gói tin đến mục
tiêu từ các hệ thống
đầu cuối đã bị chiếm
Introduction: 1-59
Kẻ xấu có thể đánh hơi các gói tin
đánh hơi" gói tin (packet sniffing):
• 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ầnmề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í
Introduction: 1-60
Kẻ xấu có thể dùng những địa chỉ giả mạo

giả mạo địa chỉ IP (IP spoofing): gởi gói tin


với địa chỉ nguồn giả
A C

src:B dest:A payload

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


Introduction: 1-61
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ễ, 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ử
Introduction: 1-62
“Lớp” giao thức
Mạng rất phức tạp, với nhiều
“miếng” Câu hỏi:
• Các hệ thống đầu cuối Có hy vọng nào để tổ
• Bộ định tuyến (routers) chức cấu trúc của mạng
• Các đường liên kết của hay không?
phương tiện truyền thông
khác nhau
…. Hoặc là ít nhất chúng
• Các ứng dụng ta thảo luận về mạng
• Các giao thức
• Phần cứng, phần mềm

Introduction: 1-63
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

Dịch vụ hàng không: một loạt các bước, liên quan đến
nhiều dịch vụ Introduction: 1-64
Ví dụ: Sự phân lớp của chức năng
hàng không
ticket (purchase) Vé ticket (complain)
baggage (check) Hành lý baggage (claim)
gates (load) Cổng gates (unload)
runway takeoff Cách cánh runway landing
airplane routing Lộ trình bay
airplane routing airplane routing

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


• Qua những hoạt động lớp – bên trong của nó được cung cấp trong
• Dựa trên các dịch vụ được cung cấp bởi lớp mỗi lớp ở trên
bên dưới
Introduction: 1-65
Tại sao phải phân lớp?
Nhằm xử lý các hệ thống phức tạp
▪ Cấu trú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
▪Phân lớp được coi là có hại?
▪ Phân lớp trong các hệ thống phức tạp khác?
Introduction: 1-66
Chồng giao thức Internet
▪ Ứng dụng (application): hổ trợ các ứng
dụng mạng
• FTP, SMTP, HTTP
Ứng dụng
▪ Vận chuyển (transport): chuyển dữ liệu từ
tiến trình này đến tiến trình kia (process- Vận chuyển
process)
• TCP, UDP Mạng
▪ Mạng (network): định tuyến những gói dữ
liệu từ nguồn tới đích Liên kết
• IP, các giao thức định tuyến
▪ liên kết (data link): chuyển dữ liệu giữa các Vật lý
thành phần mạng lân cận
• Ethernet, 802.111 (WiFi), PPP
▪ Vật lý (physical): các bit “trên đường dây” Introduction: 1-67
Nguồn
message M 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 Mạng
M Ứng dụng Hl Hn Ht M Liên kết Hn Ht M
Ht M Vận chuye physical
Hn Ht M network
Hl Hn Ht M link Bộ định tuyến
physical
Introduction: 1-68
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ử
Introduction: 1-69
Lịch sử Intenet
1961-1972: những nguyên lý chuyển mạch gói
▪ 1961: Kleinrock - lý thuyết ▪ 1972:
hàng đợi cho thấy hiệu quả • bản ARPAnet công cộng
của chuyển mạch gói • NCP (mạng Control Protocol)
▪ 1964: Baran - chuyển mạch first host-host protocol
gói trong mạng quân sự • chương trình email đầu tiên
▪ 1967: ARPAnet được hình • ARPAnet có 15 nút
thành bởi Advanced
Research Projects Agency
▪ 1969: nút ARPAnet đầu
tiên hoạt động
Introduction: 1-70
Lịch sử Internet
1972-1980: Intermạnging, new and proprietary nets
▪ 1970: ALOHAnet satellite mạng tại
Nguyên lý kết nối liên mạng của
Hawaii Cerf và Kahn:
▪ 1974: Cerf and Kahn – kiến trúc kết • Tối giản hóa, tự trị - không yêu
cầu thay đổi nội mạng khi cần kết
nối liên mạng nối với mạng khác.
▪ 1976: Ethernet tại Xerox PARC • Mô hình cung cấp dịch vụ với nỗ
lực cao nhất
▪ Cuối những năm 70: các kiến trúc • Các bộ định tuyến không lưu
trạng thái
độc quyền: DECnet, SNA, XNA • Điều khiển phi tập trung
▪ Cuối những năm 70 : chuyển mạch định hình kiến trúc mạng
với gói tin có kích thước cố định Internet ngày nay
(tiền thân của ATM)
▪ 1979: ARPAnet có 200 nodes Introduction: 1-71
Lịch sử Internet
1980-1990: new protocols, a proliferation of mạngs
▪ 1983: triển khai TCP/IP ▪ Mạng quốc gia mới: Csnet,
▪ 1982: giao thức email BITnet, NSFnet, Minitel
SMTP được định nghĩa ▪ 100,000 hệ thống đầu cuối
▪ 1983: DNS được định được 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
Introduction: 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: ARPAnet Cuối những năm1990 – 2000:
ngừng hoạt động
▪ nhiều ứng dụng thu hút hơn:
1991: NSF gỡ bỏ các giới hạn về việc

sử dụng thương mại của NSFnet
instant messaging, P2P file
(ngừng hoạt động, 1995) sharing
▪ Đầu những năm 1990: Web ▪ an ninh mạng lên hàng đầu
• hypertext [Bush 1945, Nelson ▪ ước tính 50 triệu hệ thống đầu
1960’s]
cuối, hơn 100 triệu người dùng
• HTML, HTTP: Berners-Lee
• 1994: Mosaic, sau đó thành ▪ đường trục hoạt động ở tốc
Netscape độ Gbps
• cuối những năm 1990: thương mại
hóa của web Introduction: 1-73
Lịch sử Internet
2005-hiện tại : nhiều ứng dụng mới hơn, Internet ở “mọi nơi”
▪ ~18B thiết bị kết nối Internet (2017)
• Sự gia tăng của điện thoại thông minh (iPhone: 2007)
▪ Triển khai tích cực truy cập bang thông rộng
▪ Tăng cường truy cập không dây tốc độ cao khắp mọi nơi: 4G/5G, WiFi
▪ Sự xuất hiện của các mạng xã hội trực tuyến:
• Facebook: ~ 2.5 triệu người dùng
▪ Nhà cung cấp dịch vụ (Google, FB, Microsoft) tạo rạ mạng riêng của
mình
• Bỏ qua Internet thương mại để kết nối “gần” với người dùng cuối, cung
cấp quyền truy cập “tức thời” vào nội dung tìm kiếm, video,…
• Doanh nghiệp chạy dịch vụ của họ trên “đám mây” (ví dụ: Amazon
Web Services, Microsoft Azure) Introduction: 1-74
Giới thiệu: tóm tắt
▪ Tổng quan Internet
▪ Giao thức là gì?
▪ Mạng biên, mạng lõi, mạng truy
cập
Đạt được:
• so sánh chuyển chuyển mạch gói ▪ bối cảnh, tổng
và chuyển mạch kênh quan, hiểu về
• kiến trúc Internet mạng
▪ Hiệu xuất: sự mất mát, độ trễ,
thông lượng ▪ hiểu sâu hơn, chi
▪ Mô hình dịch vụ và sự phân lớp
tiết để thực
▪ An ninh mạng
hiện!
▪ Lịch sử Internet
Introduction: 1-75
Additional Chapter 1 slides

Introduction: 1-76
ISO/OSI reference model
Two layers not found in Internet
application
protocol stack!
presentation
▪ presentation: allow applications to
interpret meaning of data, e.g., encryption, session
compression, machine-specific conventions transport
▪ session: synchronization, checkpointing, network
recovery of data exchange link
▪ Internet stack “missing” these layers! physical
• these services, if needed, must be
implemented in application The seven layer OSI/ISO
reference model
• needed?
Introduction: 1-77
Wireshark
application
(www browser,
packet
email client)
analyzer
application

OS
packet Transport (TCP/UDP)
Network (IP)
capture copy of all
Ethernet frames Link (Ethernet)
(pcap) sent/received
Physical

Introduction: 1-78
Chương 2
lớp Ứng dụng
(Application layer)
A note on the use of these PowerPoint slides:
We’re making these slides freely available to all (faculty, students,
readers). They’re in PowerPoint form so you see the animations; and
can add, modify, and delete slides (including this one) and slide content
to suit your needs. They obviously represent a lot of work on our part.
In return for use, we only ask the following:
▪ If you use these slides (e.g., in a class) that you mention their
source (after all, we’d like people to use our book!)
▪ If you post any slides on a www site, that you note that they are
adapted from (or perhaps identical to) our slides, and note our
copyright of this material.
Computer Networking: A
For a revision history, see the slide note for this page.
Top-Down Approach
Thanks and enjoy! JFK/KWR 8th edition n
All material copyright 1996-2020
Jim Kurose, Keith Ross
J.F Kurose and K.W. Ross, All Rights Reserved Pearson, 2020
Application Layer: 2-1
Chương 2: Nội dung
▪ Các ứng dụng P2P
▪ Các nguyên lý của các ▪ video streaming and mạng
ứng dụng mạng phân phối nội dung
▪ Web and HTTP ▪ Lập trình socket với UDP
▪ Thư điện tử, SMTP, and TCP
IMAP
▪ The Domain Name
System DNS

Application Layer: 2-2


Chương 2: lớp Ứng dụng (application layer)
Mục tiêu: ▪Tìm hiểu về các giao thức
▪Khái niệm, các phương thông qua việc xem xét
diện áp dụng của các giao các giao thức phổ biến
thức ứng dụng mạng của lớp ứng dụng
• HTTP
• Các mô hình dịch vụ
tầng transport • SMTP/ IMAP
• DNS
• Mô hình máy khách-
máy chủ ▪Lập trình ứng dụng mạng
• Mô hình peer-to-peer • socket API

Application Layer: 2-3


Một số ứng dụng mạng
▪ Mạng xã hội ▪ Đàm thoại trên mạng
▪ Web IP(e.g., Skype)
▪ Nhắn tin ▪Hội thảo video thời gian
thực
▪ e-mail
▪ Tìm kiếm
▪ Trò chơi trực tuyến với
nhiều người tham gia ▪ Đăng nhập từ xa
▪ Truyền hình trực tuyến ▪…
(YouTube, Hulu, Netflix) Q: yêu thích của bạn?
▪ Chia sẻ tập tin P2P
Application Layer: 2-4
Tạo một ứng dụng mạng
application

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


transport
network
network
data link

▪ Chạy trên các hệ thống đầu cuối physical


national or global ISP

(khác nhau)
▪ Liên lạc qua mạng
▪ Ví du: phần mềm web máy chủ
giao tiếp với trình duyệt local or
regional ISP

Không cần viết phần mềm cho các home network


thiết bị trong lõi của mạng
content
application provider
transport
network datacenter
▪ Các thiết bị trong lõi mạng không
network application
data link network
transport

chạy các ứng dụng của người dùng


physical network
data link
physical

▪ Các ứng dụng trên các hệ thống enterprise


đầu cuối cho phép phát triển ứng network

dụng và quảng bá nhanh chóng


Application Layer: 2-5
Kiến trúc máy khách-máy chủ
Máy chủ (server):
▪ Máy luôn luôn hoạt động mobile network

▪ Địa chỉ IP cố định


national or global ISP

▪ Tổ chức thành các trung tâm dữ


liệu để mở rộng quy mô
Máy khách (client):
local or
regional ISP

▪ Giao tiếp với máy chủ home network content


provider
▪ Có thể kết nối không liên tục network datacenter
network

▪ Có thể thay đổi địa chỉ IP


▪ Không giao tiếp trực tiếp với các enterprise

máy khách khác


network

▪ examples: HTTP, IMAP, FTP Application Layer: 2-6


Kiến trúc P2P (ngang hàng)
▪ không có máy chủ luôn luôn hoạt động
mobile network
▪ Các hệ thống đầu cuối bất kỳ truyền national or global ISP
thông trực tiếp với nhau
▪ Các bên (peer) yêu cầu dịch vụ từ các
bên khác và cung cấp dịch vụ ngược lại
cho các bên khác
• Có khả năng tự mở rộng – các bên local or
regional ISP
(peer) mới cung cấp thêm dịch vụ
mới, cũng như có thêm nhu cầu mới home network content
về dịch vụ provider
network datacenter

▪ Các peer được kết nối không liên tục


network

và có thể thay đổi địa chỉ IP


• Quản lý phức tạp enterprise
network

Application Layer: 2-7


Các tiến trình liên lạc
Tiến trình (process): chương
trình đang chạy trong một
máy máy khách, máy chủ
Tiến trình máy khách:
▪ Trong cùng một máy, hai tiến tiến trình khởi tạo liên
trình giao tiếp với nhau bằng lạc
cách sử dụng cơ chế truyền
Tiến trình máy chủ: tiến
thông liên tiến trình (inter- trình chờ đợi để được
process communication) liên lạc
(được định nghĩa bởi hệ điều
Chú ý: các ứng dụng với
hành)
kiến trúc P2P có cả các
▪ Các tiến trình trong các hệ tiến trình máy khách và
thống đầu cuối khác nhau máy chủ
truyền thông với nhau bằng
cách trao đổi các thông điệp
(message) Application Layer: 2-8
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ửa 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 hạ tầng vận chuyển bên kia của cánh cửa để
phân phối thông điệp đến socket tại tiến trình nhận
• hai ổ cắm liên quan: một ở mỗi bên

application application
socket Được kiểm soát bởi nhà
process process phát triển ứng dụng

transport transport
network network Được điểu khiển bởi hệ điều hành
link Internet link
physical physical

Application Layer: 2-9


Xác định tiến trình
▪ Để nhận thông điệp, tiến trình ▪ Đinh danh (identifier) bao gồm cả địa
phải có định danh chỉ IP và số port (số hiệu cổng) được
liên kết với tiến trình trên hệ thống
▪ Thiết bị hệ thống đầu cuối có đầu cuối.
địa chỉ IP 32-bit duy nhất
▪ Ví dụ về số port:
▪ Q: địa chỉ IP của hệ thống đầu • HTTP máy chủ: 80
cuối mà trên tiến trình đang • máy chủ thư điện tử: 25
chạy trên đó có đủ để xác định
tiến trình đó hay không? ▪ Để gởi thông điệp HTTP đến web máy
chủ gaia.cs.umass.edu :
• Địa chỉ IP : 128.119.245.12
• Số hiệu port (port number): 80
A: không, có nhiều tiến
trình có thể đang được ▪ Còn nữa…
chạy trên cùng một hệ
thống đầu cuối Application Layer: 2-10
Giao thức lớp Ứng dụng: định nghĩa
▪ Các loại thông điệp được trao đổi Các giao thức mở:
• e.g., yêu cầu (request), đáp ứng ▪ Được định nghĩa trong RFCs
(response) (Request for Comments)
▪ Cú pháp thông điệp: ▪ Cung cấp khả năng tương tác
• Các trường trong thông điệp và cho các ứng dụng thuộc các
cách mà các trường được định nhà phát triển khác nhau
nghĩa
▪ Vd: HTTP, SMTP
▪ Ngữ nghĩa của thông điệp
• Ý nghĩa của thông tin trong các Các giao thức độc quyền:
trường ▪ Vd: Skype
▪ Các quy tắc (rules) khi nào và cách
mà các tiến trình gởi và đáp ứng
các thông điệp
Application Layer: 2-11
Dịch vụ vận chuyển nào mà ứng dụng cần?
Toàn vẹn dữ liệu (data integrity) Thông lượng (throughput)
▪ Một số ứng dụng (ví dụ truyền Một số ứng dụng (vd: đa phương
tập tin, web transactions) yêu tiện) yêu cầu thông lượng tối
cầu độ tin cậy 100% khi truyền thiếu để đạt được “hiệu quả”
dữ liệu thực thi
Các ứng dụng khác (“ứng dụng
▪ Các ứng dụng khác (ví dụ audio) mềm dẻo”) có thể dùng bất kỳ
có thể chịu được một số mất thông lượng nào cũng được
mát.
Định thì (timing)
▪ Một số ứng dụng (ví dụ, thoại An ninh
Internet, game tương tác) yêu cầu Mã hóa, toàn vẹn dữ liệu, …
độ trễ thấp để đạt được “hiệu quả”
thực thi
Application Layer: 2-12
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 Độ nhạy thời gian

Truyền tập tin Không Mềm dẻo không


Thư điện tử Không Mềm dẻo không
Web documents Không Mềm dẻo không
audio/video thời gian thực Chịu lỗi audio: 5Kbps-1Mbps có, 10’s msec
video:10Kbps-5Mbps
audio/video đã lưu Chịu lỗi Như trên có, vài giây
Games tương tác Chịu lỗi Kbps+ có, 10’s msec
Nhắn tin không Mềm dẻo Có và không
Application Layer: 2-13
Các dịch vụ thuộc giao thức vận chuyển
trên Internet
Dịch vụ TCP (Transmission Control Dịch vụ UDP (User Datagram
Protocol): Protocol):
▪ Truyền tải có đảm bảo/tin cậy
(reliable transport) giữa tiến trình gửi ▪ Truyền dữ liệu không đảm bảo
và nhận (unreliable data transfer) giữa
▪ Điều khiển luồng thông tin (flow tiến trình gửi và nhận
control): bên gửi sẽ không gửi vượt ▪ Không hỗ trợ: độ tin cậy, điều
khả năng bên nhận khiển luồng, điều khiển tắc
▪ Điều khiển tắc nghẽn (congestion nghẽn, định thì, bảo đảm thông
control): điều tiết bên gửi khi mạng lượng, bảo mật, và thiết lập kết
quá tải
nối.
▪ Không hỗ trợ: định thì, bảo đảm thông
lượng tối thiểu, bảo mật
Q: Tại sao phải quan
▪ Hướng kết nối (connection-oriented): tâm? Tại sao có UDP?
yêu cầu thiết lập kết nối giữa tiến trình
máy khách và máy chủ trước khi
truyền Application Layer: 2-14
Ứng dụng Internet: Các giao thức lớp ứng
dụng, transport
Giao thức lớp
Ứng dụng Ứng dụng GT lớp dưới vận chuyển

Truyền tập tin FTP [RFC 959] TCP


Thư điện tử SMTP [RFC 5321] TCP
Web documents HTTP 1.1 [RFC 7320] TCP
Thoại Internet SIP [RFC 3261], RTP [RFC TCP hoặc UDP
3550], or độc quyền
streaming audio/video HTTP [RFC 7320], DASH TCP
Games tương tác WOW, FPS (độc quyền) UDP hoặc TCP

Application Layer: 2-15


Bảo mật TCP
Vanilla TCP & UDP sockets: TSL là giao thức ở lớp
▪ Không mã hóa ứng dụng
▪ Mật mã chưa mã hóa được gởi ▪ Các ứng dụng dùng thư
đến socket để đi qua Internet viện SSL, thông qua đó
trong dạng nguyên bản để “nói chuyên” với TCP
Transport Layer Security TLS socket API
(TLS) ❖ Mật mã dạng không mã
hóa được gởi vào trong
▪ Hỗ trợ kết nối TCP được mã hóa
socket và chuyển đi qua
▪ Toàn vẹn dữ liệu Internet ở dạng mã hóa
▪ Chứng thực đầu cuối ❖ Xem chương 8
Application Layer: 2-16
Chương 2: nội dung
▪ Các ứng dụng P2P
▪ Các nguyên lý của các ▪ video streaming and mạng
ứng dụng mạng phân phối nội dung
▪ Web and HTTP ▪ Lập trình socket với UDP
▪ Thư điện tử, SMTP, and TCP
IMAP
▪ The Domain Name
System DNS

Application Layer: 2-17


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

host name path name

Application Layer: 2-18


Tổng quan HTTP
HTTP: hypertext transfer
protocol
• Giao thức lớp ứng dụng của Web
PC chạy
▪ Mô hình máy khách/máy chủ trình duyệt
• máy khách: trình duyệt gửi Firefox
yêu cầu, nhận phản hồi (dùng
giao thức HTTP) và “hiển thị” máy chủ
các đối tượng Web Chạy web máy chủ
• máy chủ: Web máy chủ gửi Apache

(dùng giao thức HTTP) các đối


iphone chạy
tượng để trả lời yêu cầu trình duyệt
Safari
Application Layer: 2-19
Tổng quan HTTP (tt)
HTTP dùng TCP: HTTP “không lưu trạng thái”
▪ máy khách khởi tạo kết nối ▪ máy chủ không duy trì
TCP (tạo socket) đến port 80 thông tin về các yêu cầu
trước đó của máy khách
máy chủ
▪ máy chủ chấp nhận kết nối TCP Ngoài lề
từ máy khách Các giao thức nào duy trì
▪ Các thông điệp HTTP (thông “trạng thái” thì phức tạp!
điệp thuộc giao thức lớp ứng Lịch sử trước đó (trạng thái) phải
dụng) được trao đổi giữa trình được duy trì
duyệt (HTTP máy khách) và Nếu máy chủ/máy khách bị sự cố,
web máy chủ (HTTP máy chủ) cách nhìn về “trạng thái” của nó
có thể bị mâu thuẫn, phải được
▪ Kết nối TCP được đóng điều chỉnh
Application Layer: 2-20
Các kết nối HTTP: 2 loại
HTTP không bền vững HTTP bền vững
▪Chỉ tối đa một đối ▪Đã mở kết nối TCP tới
tượng được gởi qua một máy chủ
kết nối TCP ▪Nhiều đối tượng có thể
• Kết nối sau đó sẽ bị được gửi qua TCP duy
nhất
đóng`
▪Kết nối giữa máy khách
▪Tải nhiều đối tượng và máy chủ
yêu cầu nhiều kết nối ▪Kết nối TCP đã đóng
Application Layer: 2-21
HTTP không bền vững
Người dùng vào URL www.someSchool.edu/someDepartment/home.index
:
(chứa text,
tham chiếu đến 10
hình jpeg)
1a. HTTP máy khách khởi tạo
kết nối TCP đến HTTP máy chủ 1b. HTTP máy chủ tại hệ thống đầu
(tiến trình) tại cuối www.someSchool.edu chờ kết
www.someSchool.edu trên nối TCP tại port 80. “chấp nhận”
port 80 kết nối, thông báo cho máy khách
2. HTTP máy khách gởi
thông điệp yêu cầu HTTP
(chứa URL) vào trong 3. HTTP máy chủ nhận thông điệp
socket kết nối TCP. Thông yêu cầu, tạo thông điệp phản hồi
time điệp chỉ ra rằng máy chứa đối tượng được yêu cầu, và
khách muốn đối tượng gởi thông điệp đến socket của nó
someDepartment/home.in Application Layer: 2-22
HTTP không bền vững(tt)
User enters URL: www.someSchool.edu/someDepartment/home.index
(containing text, references to 10 jpeg images)

4. HTTP máy chủ đóng


5. HTTP máy khách nhận thông kết nối TCP.
điệp phản hồi chứa tập tin html,
hiển thị html. Phân tích cú pháp
tập tin html, tìm ra các đối
tượng jpeg được tham chiếu
6. Các bước 1-5 được lặp
lại cho mỗi đối tượng
time trong 10 đối tượng
jpeg
Application Layer: 2-23
HTTP không bền vững: thời gian đáp ứng
RTT (round-trip time): thời gian để
cho một gói tin nhỏ đi từ máy khách
đến máy chủ 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 kết nối TCP RTT

▪ Một RTT cho yêu cầu HTTP và vài yêu cầu


byte đầu tiên của phản hồi HTTP tập tin RTT thời gian
được trả về truyền tập tin
tập tin
▪ Thời gian truyền tập tin được nhận

Thời gian Thời gian


Thời gian đáp ứng HTTP không bền vững
= 2RTT+ thời gian truyền tập tin Application Layer: 2-24
HTTP bền vững
Vấn đề với HTTP không bền HTTP bền vững:
vững: ▪ máy chủ để kết nối mở sau khi
▪ Yêu cầu requires 2 RTTs gởi phản hồi
cho mỗi đối tượng ▪ Các thông điệp HTTP tiếp theo
▪ Tốn tài nguyên khi Hệ điều giữa cùng máy khách/máy chủ
hành xử lý mỗi kết nối TCP được gởi trên kết nối đã mở ở
▪ Các trình duyệt thường mở trên
các kết nối TCP song song ▪ máy khách gởi các yêu cầu ngay
để lấy các đối tượng được khi nó gặp một đối tượng tham
tham chiếu chiếu
▪ Chỉ cần một RTT cho tất cả các
đối tượng được tham chiếu
Application Layer: 2-25
Thông điệp yêu cầu HTTP
▪ hai loại thông điệp HTTP: yêu cầu (request), phản hồi (response)
▪ Thông điệp yêu cầu HTTP:
• ASCII (dạng thức con người có thể đọc được) Ký tự về đầu dòng
Ký tự xuống dòng
Dòng yêu cầu
GET /index.html HTTP/1.1\r\n
(các lệnh GET, POST, Host: www-net.cs.umass.edu\r\n
HEAD) 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
Accept-Encoding: gzip,deflate\r\n
header Accept-Charset: ISO-8859-1,utf-8;q=0.7\r\n
Keep-Alive: 115\r\n
Connection: keep-alive\r\n
ký tự xuống dòng, \r\n
về đầu dòng mới chỉ
điểm cuối cùng * Check out the online interactive exercises for more

của thông điệp


examples: http://gaia.cs.umass.edu/kurose_ross/interactive/ Application Layer: 2-26
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

Application Layer: 2-27


Tải lên biểu mẫu nhập liệu
Phương thức POST: Phương thức HEAD:
▪ web page thường bao ▪ requests headers (only) that
gồm form input would be returned if
specified URL were
▪ dữ liệu nhập được tải lên requested with an HTTP GET
máy chủ trong phần thân method.
đối tượng HTML Phương thức PUT:
▪ tải tệp (đối tượng) mới lên máy
Phương thức GET (để gửi dữ liệu chủ
đến máy chủ): ▪ thay thế hoàn toàn tệp tồn tại
▪ đưa dữ liệu người dùng vào trường tại URL được chỉ định bằng nội
URL của thông báo yêu cầu HTTP dung trong phần thân thực thể
GET (theo sau dấu ‘?’): của thông báo yêu cầu POST
www.somesite.com/animalsearch?monkeys&banana HTTP Application Layer: 2-28
Thông điệp phản hồi HTTP
dòng trạng thái HTTP/1.1 200 OK\r\n
(giao thức Date: Sun, 26 Sep 2010 20:09:20 GMT\r\n
Server: Apache/2.0.52 (CentOS)\r\n
mã trạng thái Last-Modified: Tue, 30 Oct 2007 17:00:02
cụm từ trạng thái) GMT\r\n
ETag: "17dc6-a5c-bf716880"\r\n
các dòng 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 ...
tập tin HTML
được yêu cầu
* Check out the online interactive exercises for more examples: http://gaia.cs.umass.edu/kurose_ross/interactive/
Application Layer: 2-29
Các mã trạng thái phản hồi HTTP
▪ Mã trạng thái xuất hiện trong dòng đầu tiên trong thông điệp đáp ứng từ
máy chủ tới máy khách
▪ Một số mã 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
• máy chủ không hiểu thông điệp yêu cầu
404 Not Found
• Thông tin được yêu cầu không tìm thấy trên máy chủ này
505 HTTP Version Not Supported Application Layer: 2-30
Thử kiểm tra HTTP (phía máy khách)
1. Telnet đến Web máy chủ yêu thích của bạn:
telnet gaia.cs.umass.edu 80 Mở kết nối TCP ở port 80
(port máy chủ HTTP mặc định) tại cis.poly.edu.
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:
GET /kurose_ross/interactive/index.php HTTP/1.1
Host: gaia.cs.umass.edu
Bằng cách gõ những dòng này
(enter 2 lần), bạn đã gửi yêu cầu
GET tối thiểu (nhưng đầy đủ)
đến HTTP máy chủ
3. Xem thông điệp phản hồi được gửi bởi HTTP máy chủ!
(hoặc dùng Wireshark để xem thông điệp
yêu cầu và phản hồi của HTTP được bắt lại) Application Layer: 2-31
Trạng thái người dùng-máy chủ: cookies
Giao thức trạng thái: máy
Nhắc lại: Tương tác HTTP GET / khách thực hiện hai thay đổi
response là không trạng thái đối với X hoặc không thay đổi
gì cả
- không có khái niệm về trao đổi nhiều X
bước các thông điệp HTTP để hoàn
thành một “giao dịch” Web X

- không cần máy khách / máy chủ theo


dõi "trạng thái" của trao đổi nhiều X’
bước t’

- tất cả các yêu cầu HTTP độc lập với X’’

nhau
- không cần máy khách / máy chủ X’’

"phục hồi" từ một giao dịch hoàn time time

thành một phần nhưng không bao giờ Q: điều gì sẽ xảy ra nếu kết nối mạng
hoặc máy khách gặp sự cố lúc t ’ ?
hoàn thành Application Layer: 2-32
Trạng thái người dùng-máy chủ: cookies
Các trang web và trình duyệt của khách Ví dụ:
hàng sử dụng cookie để duy trì một số ▪ Susan sử dụng trình duyệt trên
trạng thái giữa các giao dịch máy tính xách tay, truy cập trang
web thương mại điện tử cụ thể
4 thành phần: lần đầu tiên
1) Dòng đầu cookie (cookie header line) ▪ Khi các yêu cầu HTTP ban đầu
của thông điệp phản hồi HTTP đến trang web, trang web sẽ
2) cookie header line trong thông điệp tạo:
yêu cầu HTTP kế tiếp ▪ ID duy nhất (hay còn gọi là
3) tập tin cookie được lưu trữ trên máy “cookie”)
người dùng, được quản lý bởi trình ▪ Mục nhập trong cơ sở dữ liệu
duyệt của người dùng phụ trợ cho ID
▪ Các yêu cầu HTTP tiếp theo từ
4) Cở sở dữ liệu tại Web site Susan đến trang web này sẽ
chứa giá trị ID cookie, cho
phép trang web "xác định"
Susan Application Layer: 2-33
Cookies: lưu trữ “trạng thái” (tt.)
khách
Máy chủ
ebay 8734 usual HTTP request msg máy chủ Amazon
cookie file 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

one week later:


Truy cập
ebay 8734 usual HTTP request msg
amazon 1678 cookie: 1678 cookie-
specific
usual HTTP response msg action
time time Application Layer: 2-34
Cookies HTTP: Nhận xét
Cookie có thể được sử dụng Ngoài ra
cho: cookies và sự riêng
▪ Cấp phép tư:
▪ Giỏ mua hàng -Cookie cho phép các
▪ Các khuyến cáo trang biết nhiều
▪ Trạng thái phiên làm việc của hơn về bạn
user (Web thư điện tử) ▪ Cookie liên tục của
bên thứ ba (cookie
Làm thế nào để giữa“trạng thái”: theo dõi) cho phép
các thời điểm kết thúc giao thức: duy danh tính chung (giá
trì trạng thái tại người gởi/nhận trị cookie) được theo
thông qua nhiều giao dịch dõi trên nhiều trang
cookies: các thông điệp http mang web
trạng thái Application Layer: 2-35
Web caches (proxy máy chủ)
Mục tiêu: thỏa mãn yêu cầu của máy khách không
cần liên quan đến máy chủ nguồn

▪ user thiết lập trình duyệt: proxy


truy cập Web thông qua Máy chủ
đệm
Máy khách
Máy chủ gốc

▪ Trình duyệt gởi tất cả yêu


cầu HTTP đến đệm
• Đối tượng có trong đệm:
đệm trả về đối tượng
• Ngược lại đệm yêu cầu Máy khách
Máy chủ gốc
đối tượng từ máy chủ
gốc, sau đó trả đối
tượng đó cho máy khách
Application Layer: 2-36
Thông tin thêm về Đệm web (Web caching)
▪ Đệm (đệm) hoạt động như Tại sao dùng đệm Web (web
là cả máy khách và máy caching)?
chủ ▪ Giảm thời gian đáp ứng cho yêu
cầu của máy khách
• máy chủ đối với máy
khách yêu cầu thông ▪ Giảm lưu lượng trên đường liên
kết truy cập ra Internet của một
tin tổ chức
• máy khách đối với máy ▪ Internet có rất nhiều đệms: cho
chủ cung cấp phép những nhà cung cấp nội dung
▪ Thông thường đệm được với lượng tài nguyên “nghèo nàn”
vẫn cung cấp nội dung một cách
cài đặt bởi ISP (trường hiệu quả (chia sẻ tập tin P2P cũng
đại học, công ty, ISP vậy)
riêng)
Application Layer: 2-37
Ví dụ đệm
Giả sử:
Kích thước trung bình của đối tượng:
Máy chủ gốc
100K bits
RTT từ bộ định tuyến của tổ chức đến bất
Internet
kỳ máy chủ gốc: 2 giây Công cộng
Tốc độ truyền dữ liệu trung bình đến trình
duyệt: 1.54 Mbps
Số lượng yêu cầu trung bình từ trình 1.54 Mbps
duyệt đến máy chủ gốc: 15/sec problem: large
Liên kết truy cập

Tốc độ liên kết truy cập: 1.50delays


Mbps at high Mạng tổ chức
utilization!
Kết quả:
1 Gbps LAN

Độ khả dụng của LAN: .0015


Độ khả dụng của liên kết truy cập = .97
Tổng thời gian trễ = trễ Internet + trễ truy cập +
trễ LAN
= 2 giây + minutes + µsecs Application Layer: 2-38
Ví dụ đệm: đường liên kết truy cập lớn hơn
Giả sử: 154 Mbps
▪ Tốc độ liên kết truy cập: 1.54 Mbps Máy chủ
▪ RTT từ bộ đinh tuyến của tổ chức đến bất kỳ Gốc
máy chủ gốc: 2 giây Internet
Công cộng
▪ Kích thước trung bình của đối tượng: 100K
bits
▪ Tốc độ trung bình yêu cầu từ trình duyệt đến 154 Mbps
máy chủ: 15/sec 1.54 Mbps
Kết quả: access link

▪ Độ khả dụng của LAN: .0015 institutional


network
▪ Độ khả dụng trên liên kết truy cập: .09 .0097 1 Gbps LAN

▪ Tổng độ trễ = độ trễ Internet +


trễ truy cập + trễ LAN =
2 sec + minutes + usecs
msecs
Chi phí: tốc độ liên kết truy cập được tăng lên (không rẻ!) Application Layer: 2-39
Ví dụ đệm: thiết lập đệm
Giả sử:
▪ Tốc độ liên kết truy cập: 1.54 Mbps
▪ RTT từ bộ đinh tuyến của tổ chức đến Máy chủ gốc
bất kỳ máy chủ gốc: 2 giây Internet công cộng

▪ Kích thước trung bình của đối tượng:


100K bits
▪ Tốc độ trung bình yêu cầu từ trình
duyệt đến máy chủ: 15/sec 1.54 Mbps
Kết quả: access link

▪ Độ khả dụng của LAN : .? Netword


Tổ chức
▪ Độ khả dụng trên liên kết truy cập= ? 1 Gbps LAN

▪ Tổng độ trễ = ?
Chi phí: web đệm (rẻ!) Làm cách nào để tính local web đệm
độ khả dụng đường liên kết, độ trễ?
Application Layer: 2-40
Ví dụ đệm: thiết lập đệm
Tính độ khả dụng của đường liên kết truy
cập, độ trễ với đệm:
Máy chủ
▪ Giả sử khả năng đáp ứng của đệm là 0.4 Gốc
• 40% yêu cầu được đệm đáp ứng, 60% yêu cầu được Internet công cộng
máy chủ gốc đáp ứng

Độ hiệu dụng của đường kết nối ra ngoài (access


liên kết):
60% yêu cầu dùng access liên kết 1.54 Mbps
Tốc độ truyền dữ liệu đến trình duyệt trên access access liên kết
liên kết = 0.6*1.50 Mbps = 0.9 Mbps
Độ khả dụng = 0.9/1.54 = 0.58 Mạng
tổ chức
Tổng độ trễ 1 Gbps LAN
= 0.6 * (độ trễ từ máy chủ gốc) +0.4 * (độ trễ khi
được đệm đáp ứng)
= 0.6 * (2.01) + 0.4 * (~msecs)
= ~ 1.2 secs local web đệm

Ít hơn với liên kết 154 Mbps (và cũng rẻ hơn!)


Application Layer: 2-41
GET có điều kiện
Máy khách Máy chủ

▪ Mục tiêu: không gửi đối tượng nếu


đối tượng trong đệm đã được cập HTTP request msg
Đối tượng
nhật If-modified-since: <date>
không được
• Không có độ trễ truyền dữ liệu HTTP response
thay đổi
trước
• Mức độ sử dụng đường liên kết HTTP/1.0
<ngày>
thấp hơn 304 Not Modified

▪ đệm: xác định thời gian của bản sao


được đệm trong thông điệp yêu cầu
HTTP HTTP request msg
Đối tượng
If-modified-since: <date>
If-modified-since: <date>
được thay
▪ máy chủ: đáp ứng không chứa đối HTTP response đổi sau
tượng nếu bản sao trong đệm đã HTTP/1.0 200 OK <ngày>
<data>
được cập nhật:
HTTP/1.0 304 Not Modified Application Layer: 2-42
HTTP/2
Mục tiêu chính: giảm độ trễ trong các yêu cầu HTTP nhiều đối tượng
HTTP1.1: đã giới thiệu multiple, pipelined GETs qua kết nội
TCP duy nhất
▪ máy chủ phản hồi theo thứ tự (FCFS: lập lịch đến trước được
phục vụ trước) đối với các yêu cầu GET
▪ với FCFS, đối tượng nhỏ có thể phải đợi truyền (chặn đầu dòng
(HOL)) đằng sau (các) đối tượng lớn
▪ khôi phục mất mát (truyền lại các phân đoạn TCP bị mất) ngăn
chặn quá trình truyền đối tượng

Application Layer: 2-43


HTTP/2
Mục tiêu chính: giảm độ trễ trong các yêu cầu HTTP nhiều đối tượng

HTTP/2: [RFC 7540, 2015] tăng tính linh hoạt tại máy chủ
trong việc gửi các đối tượng đến máy khách:
▪ các phương thức, mã trạng thái, hầu hết các trường tiêu đề
không thay đổi so với HTTP 1.1
▪ thứ tự truyền của các đối tượng được yêu cầu dựa trên mức
độ ưu tiên của đối tượng do máy khách chỉ định (không nhất
thiết là FCFS)
▪ đẩy các đối tượng chưa được yêu cầu đến máy khách
▪ chia các đối tượng thành các khung, lên lịch cho các khung để
giảm thiểu chặn HOL
Application Layer: 2-44
HTTP/2: giảm thiểu chặn HOL
HTTP 1.1: ứng dụng khách yêu cầu 1 đối tượng lớn (ví dụ: tệp video và 3 đối
tượng nhỏ hơn)
Máy chủ

GET O4 GET O3 GET O Dữ liệu đối tượng được


2 GET O1
yêu cầu
Máy khách

O1

O2
O1 O3
O2
O3
O4
O4

Các đối tượng được giao theo thứ tự yêu cầu: O2, O3, O4 sau O1 Application Layer: 2-45
HTTP/2: giảm thiểu chặn HOL
HTTP / 2: các đối tượng được chia thành các khung, truyền khung xen kẽ
Máy chủ

GET O4 GET O3 GET O Dữ liệu đối tượng được


2 GET O1
yêu cầu
Máy khác
O2
O4
O3 O1

O2
O3
O1
O4

O2, O3, O4 nhanh, O1 hơi chậm


Application Layer: 2-46
HTTP/2 to HTTP/3
Mục tiêu chính: giảm độ trễ trong các yêu cầu HTTP nhiều đối tượng

HTTP / 2 qua một kết nối TCP có nghĩa là:


▪ khôi phục sau khi mất gói vẫn ngăn chặn tất cả các
truyền đối tượng
• như trong HTTP 1.1, các trình duyệt có động cơ mở nhiều
kết nối TCP song song để giảm tình trạng ngừng trệ, tăng
thông lượng tổng thể
▪ không có bảo mật qua kết nối TCP vani
▪ HTTP / 3: thêm bảo mật, lỗi cho mỗi đối tượng- và
kiểm soát tắc nghẽn (nhiều đường dẫn hơn) qua UDP
• nhiều hơn về HTTP / 3 trong lớp truyền tải Application Layer: 2-47
Chương 2: nội dung
▪ Các ứng dụng P2P
▪ Các nguyên lý của các ▪ video streaming and mạng
ứng dụng mạng phân phối nội dung
▪ Web and HTTP ▪ Lập trình socket với UDP
▪ Thư điện tử, SMTP, and TCP
IMAP
▪ The Domain Name
System DNS

Application Layer: 2-48


Thư điện tử Hàng đợi
thông điệp đi
Hộp thư user
user
Ba thành phần chính: agent
▪ user agents mail user
▪ máy chủ thư điện tử Máy chủ agent

▪ simple mail transfer protocol: SMTP SMTP mail user


Máy chủ agent
SMTP
User Agent
SMTP user
▪ Còn gọi là “mail reader” mail agent
▪ Soạn thảo, sửa đổi, đọc các thông điệp thư Máy chủ
user
điện tử agent
▪ Ví dụ Outlook, Thunderbird, iPhone mail máy user
khách agent

▪ Các thông điệp đi và đến được lưu trên máy


chủ Application Layer: 2-49
Thư điện tử: máy chủ thư điện tử
outgoing
message queue
user mailbox
user
máy chủ thư điện tử: agent

▪ Hộp thư (mailbox) chứa thông mail user


điệp đến user server agent
▪ Hàng thông điệp (message queue) SMTP mail user
của các thông điệp mail ra ngoài server agent
(chuẩn bị gửi) SMTP
▪ Giao thức SMTP giữa các máy chủ SMTP user
thư điện tử để gửi các thông điệp mail agent
thư điện tử server
user
• máy khách: máy chủ thư điện tử agent
gởi user
• “máy chủ”: máy chủ thư điện tử agent
nhận
Application Layer: 2-50
Thư điện tử: SMTP RFC (5321)
▪ Sử dụng TCP để truyền thông điệp thư điện tử một cách tin
cậy từ máy khách đến port 25 máy chủ
▪ Truyền trực tiếp: máy chủ gửi đến máy chủ nhận
▪ 3 giai đoạn truyền
• bắt tay (chào hỏi)
• truyền thông điệp
• đóng
▪ 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ã ASCII 7 bit
Application Layer: 2-51
Tình huống: Alice gởi thông điệp đến Bob
1) Alice dùng một UA để soạn 4) Phần máy khách của SMTP máy
thảo thông điệp “gởi đến” chủ gửi thông điệp của Alice
bob@someschool.edu trên kết nối TCP
2) UA của Alice gởi thông điệp 5) máy chủ thư điện tử
đến máy chủ thư điện tử của cô của Bob đặt thông điệp
ta; thông điệp được đặt trong đó trong hộp thư của
hàng đợi Bob
3) Phần máy khách của SMTP máy 6) Bob kích hoạt user
chủ mở kết nối TCP với máy chủ agent của anh ta để
thư điện tử của Bob đọc thông điệp
1 user mail user
mail agent
agent Máy chủ Máy chủ
2 3 6
4
5
máy chủ thư điện tử của Alice máy chủ thư điện tử của Bob Application Layer: 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
Application Layer: 2-53
Thử nghiệm tương tác SMNP:
▪ telnet máy chủname 25
▪ Xem trả lời 220 từ máy chủ
▪ Nhập các lệnh HELO, MAIL FROM, RCPT TO, DATA,
QUIT
Lưu ý: điều này sẽ chỉ hoạt động nếu <servername> cho phép
kết nối telnet tới cổng 25 (điều này ngày càng hiếm vì lo ngại
về bảo mật)

Application Layer: 2-54


SMTP: kết luận
So sánh với HTTP: ▪ SMTP dùng kết nối
▪ HTTP: pull (kéo) bền vững
▪ SMTP: push (đẩy) ▪ SMTP yêu cầu thông
điệp (header & body)
▪ Cả hai đều có tương tác lệnh/phản phải ở dạng ASCII 7-
hồi, các mã trạng thái dạng ASCII bit
▪ SMTP máy chủ dùng
▪ HTTP: mỗi đối tượng được đóng uses CRLF.CRLF để
gói trong thông điệp phản hồi của xác định kết thúc
nó thông điệp
▪ SMTP: nhiều đối tượng được gửi
trong thông điệp chứa nhiều phần
Application Layer: 2-55
Định dạng thông điệp Mail
SMTP: giao thức dùng cho trao đổi
thông điệp thư điện tử
RFC 822: chuẩn cho định dạng thông
điệp văn bản:
▪ Các dòng header, ví dụ header
Dòng
• To:
trống
• From:
• Subject:
những dòng này, trong phần nội dung của body
vùng thông báo email khác với lệnh SMTP
MAIL FROM :, RCPT TO:!
▪ Body: “thông điệp” chỉ có các ký tự ASCII
Application Layer: 2-56
Các giao thức truy cập Mail
giao thức
truy cập mail
user SMTP user
SMTP
agent agent
(e.g., IMAP,
HTTP)

máy chủ thư điện tử


của người gởi máy chủ thư điện tử
của người nhận
▪ SMTP: truyền dẫn/lưu trữ thư vào máy chủ của người nhận
▪ Giao thức truy cập thư: trích xuất từ máy chủ
• IMAP: Internet Mail Access Protocol [RFC 3501]: nhiều tính
năng hơn, bao gồm cả các thao tác thay đổi các thông điệp
đang được lưu trên máy chủ
▪ HTTP: gmail, Hotmail, Yahoo! Mail, v.v. cung cấp giao diện dựa
trên web trên STMP (để gửi), IMAP (hoặc POP) để truy xuất các
tin nhắn e-mail Application Layer: 2-57
Chương 2: Nội dung
▪ Các ứng dụng P2P
▪ Các nguyên lý của các ▪ video streaming and mạng
ứng dụng mạng phân phối nội dung
▪ Web and HTTP ▪ Lập trình socket với UDP
▪ Thư điện tử, SMTP, and TCP
IMAP
▪ The Domain Name
System DNS

Application Layer: 2-58


Hệ thống tên miền (DNS: domain name
system)
Con người: nhiều cách nhận dạng: Hệ thống tên miền (Domain Name
• Số an sinh xã hội, tên, số hộ System):
chiếu
▪ Cơ sở dữ liệu phân tán được thực
Các hệ thống đầu cuối Internet, hiện theo tổ chức phân cấp của
bộ định tuyến: nhiều máy chủ tên miền
• Địa chỉ IP (32 bit) – được
dùng cho định địa chỉ gói tin ▪ Giao thức lớp ứng dụng: các hệ
• “tên”, ví dụ cs.umass.edu – thống đầu cuối, các máy chủ tên
được dùng bởi con người miền trao đổi để phân giải tên
Q: làm cách nào để ánh xạ giữa (dịch địa chỉ  tên)
địa chỉ IP và tên, và ngược lại? • Lưu ý: chức năng trong phần lõi
Internet, được thực hiện như là giao
thức lớp ứng dụng
• Sự phức tạp ở “biên” của mạng”
Application Layer: 2-59
DNS: các dịch vụ, cấu trúc
Các dịch vụ DNS Tại sao không tập trung hóa
DNS?
▪ Dịch tên máy ra địa chỉ IP
▪ Một điểm chịu lỗi
▪ Bí danh máy
• Lưu các tên gốc, bí danh tương ▪ Lưu lượng
ứng ▪ Cơ sở dữ liệu tập trung
▪ Bí danh máy chủ thư điện tử cách xa nơi yêu cầu
▪ Cân bằng tải ▪ Bảo trì
• Các bản sao cho web máy A: không biến đổi được
chủ: nhiều địa chỉ IP tương quy mô!
ứng cho 1 tên Riêng máy chủ DNS Comcast:
600B truy vấn DNS mỗi
ngày Application Layer: 2-60
DNS: cơ sở dữ liệu phân cấp, phân tán
máy chủ DNS gốc Gốc
… …
com DNS máy chủ org DNS máy chủ edu DNS máy chủ Tên miền cấp cao
… … … …
yahoo.com amazon.com pbs.org poly.edu umass.edu
DNS máy chủ DNS máy chủ DNS máy chủ DNS máy chủ DNS máy chủ Có thẩm quyền

máy khách muốn địa chỉ IP của www.amazon.com:


▪ máy khách truy vấn máy chủ gốc (root) để tìm DNS máy chủ quản lý vùng “.com”
▪ máy khách truy vấn DNS máy chủ “.com” tìm DNS máy chủ quản lý vùng
“amazon.com”
▪ máy khách truy vấn DNS máy chủ “amazon.com” để lấy địa chỉ IP của
www.amazon.com Application Layer: 2-61
DNS: các máy chủ tên miền gốc
▪ Được máy chủ tên miền cục 13 "máy chủ" tên gốc hợp lý trên
bộ liên lạc để hỏi khi không toàn thế giới mỗi "máy chủ" được
thể phân giải tên sao chép nhiều lần (~ 200 máy chủ
ở Hoa Kỳ)
▪ chức năng Internet cực kỳ
quan trọng
• Internet không thể hoạt động
nếu không có nó!
• DNSSEC - cung cấp bảo mật
(xác thực và tính toàn vẹn của
tin nhắn)
▪ ICANN (Internet Corporation
for Assigned Names and
Numbers) quản lý miền DNS
gốc Application Layer: 2-62
TLD, máy chủ có thẩm quyền
Các máy chủ miền cấp cao nhất (top-level domain (TLD)
servers ):
• 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 cấp cao nhất của quốc gia, như là:
uk, fr, ca, jp
• Công ty Network Solutions quản lý máy chủ chứa các thông tin của
vùng .com TLD
• Tổ chức Educause quản lý .edu TLD
Các DNS máy chủ có thẩm quyền:
• Các tổ chức sở hữu các DNS máy chủ riêng nhằm cung cấp các tên
được cấp phép và ánh xạ địa chỉ IP cho các hệ thống đầu cuối được
đặt tên của tổ chức đó
• Có thể được quản lý bởi tổ chức hoặc nhà cung cấp dịch vụ
Application Layer: 2-63
DNS máy chủ tên miền cục bộ
▪Không hoàn toàn theo cấu trúc phân cấp
▪Mỗi ISP (ISP, công ty, trường đại học) có một máy chủ
cục bộ như vậy
• Còn được gọi là “default máy chủ tên miền”
▪Khi một hệ thống đầu cuối tạo một truy vấn DNS, truy
vấn được gởi đến DNS máy chủ cục bộ của nó
• Có bộ nhớ đệm (đệm) cục bộ chứa thông tin về các cặp tên-
đến-địa chỉ gần đây (nhưng có thể hết hạn!)
• Hoạt động như một proxy, chuyển truy vấn vào trong hệ
thống DNS phân cấp
Application Layer: 2-64
Phân giải tên DNS: truy vấn lặp lại
DNS máy chủ
▪Ví dụ: hệ thống đầu cuối tại gốc

engineering.nyu.edu muốn địa chỉ 2 .edu TLD DNS


IP của gaia.cs.umass.edu 3 máy chủ
Truy vấn tuần tự: 1 4

máy chủ được hỏi sẽ 8 5

trả lời với tên của Host yêu cầu DNS máy chủ cục bộ

máy chủ quản lý vùng


engineering.nyu.edu dns.nyu.edu
gaia.cs.umass.edu
7 6
liên quan
“tôi không biết tên này, DNS máy chủ có thẩm quyền
nhưng hãy hỏi thêm dns.cs.umass.edu

thông tin từ máy chủ


này” Application Layer: 2-65
Phân giải tên DNS: truy vấn đệ quy
DNS máy chủ
▪ Ví dụ: hệ thống đầu cuối tại gốc

engineering.nyu.edu muốn địa 2 3


chỉ IP của gaia.cs.umass.edu 7
Truy vấn đệ quy:
6
1 .edu TLD DNS
Đẩy trách nhiệm 8
máy chủ

phân giải tên cho Host yêu cầu DNS máy chủ cục bộ 4
máy chủ tên miền engineering.nyu.edu dns.nyu.edu 5
gaia.cs.umass.edu

được hỏi
Tải nặng tại các tầng DNS máy chủ có thẩm quyền
trên của hệ thống dns.cs.umass.edu

phân cấp?
Application Layer: 2-66
Đệm (caching), cập nhật các bản ghi
▪ Một khi máy chủ tên miền biết về 1 ánh xạ tên-địa chỉ, nó sẽ lưu tạm
ánh xạ đó
• Các mục đệm hết hạn (sẽ bị xóa) sau một khoảng thời gian (TTL)
• Thông tin trong các TLD máy chủ thường được lưu tạm trong các
máy chủ tên miền cục bộ
• Do đó các máy chủ tên miền gốc không bị truy cập thường xuyên
▪ Các mục được lưu tạm có thể hết hạn
• Nếu cặp thông tin tên-địa chỉ IP thay đổi, có thể các máy khác trên
Internet không biết được cho đến khi tất cả TTL hết hạn.
▪ Cơ chế cập nhật/thông báo được đề xuất trong bộ chuẩn IETF
• RFC 2136

Application Layer: 2-67


Các bản ghi DNS
DNS: cơ sở dũ liệu phân tán lưu trữ các bản ghi thông tin (resource
records - 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 tên “gốc” (tên
▪ value là địa chỉ IP thực)
VD: www.ibm.com tên thực là
máy chủeast.backup2.ibm.com
type=NS value là tên gốc
▪ name là tên miền(e.g., type=MX
foo.com) value là tên của máy chủ thư
▪ value là tên hệ thống đầu điện tử được liên kết với name
cuối của máy chủ tên miền
có thầm quyền quản lý tên
miền này Application Layer: 2-68
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

Phần đầu thông điệp identification flags

identification: số 16 bit xác # questions # answer RRs


định 1 truy vấn, hoặc trả lời cho # authority RRs # additional RRs
truy vấn có cùng số này
flags: questions (variable # of questions)

Truy vấn hoặc trả lời


Mong muốn đệ quy
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)

Application Layer: 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

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ả lời truy vấn answers (variable # of RRs)

Các bản ghi thông tin về authority (variable # of RRs)


các máy chủ có thẩm quyền
thông tin “hữu ích” additional info (variable # of RRs)
bổ sung có thể sẽ dùng
Application Layer: 2-70
Thêm các bản ghi vào trong DNS
▪ Ví dụ: khởi tạo mới công ty “Network Utopia”
▪ Đăng ký tên miền networkuptopia.com tại một DNS
registrar – tổ chức nhận đăng ký tên miền (như là Network
Solutions)
• Cung cấp tên, địa chỉ IP của máy chủ tên miền có thẩm quyền quản
lý tên miền này (primary và secondary)
Tổ chức quản lý tên miền thêm hai bản ghi vào trong máy chủ quản lý
vùng .com:
(networkutopia.com, dns1.networkutopia.com, NS)
(dns1.networkutopia.com, 212.212.212.1, A)
▪ Tạo bản ghi type A trong máy chủ có thẩm quyền quản lý
networkuptopia.com cho www.networkuptopia.com; và bản
ghi type MX cho máy chủ thư điện tử thuộc
networkutopia.com Application Layer: 2-71
Bảo mật DNS
Tấn công DDoS Tấn công chuyển hướng
▪ Đẩy khối lượng dữ liệu lớn ▪ Man-in-middle
tới các máy chủ gốc • Ngăn chặn các truy vấn
• Không thành công cho đến ▪ Đầu đọc DNS
nay • Gửi các trả lời giả tạo đến
• Lọc lưu lượng các DNS máy chủ, (sẽ DNSSEC
được các máy chủ lưu lại) [RFC 4033]
• Các DNS máy chủ cục bộ lưu
tạm các địa chỉ IP của TLD Khai thác DNS cho tấn công
máy chủ, vì thế không cần DDoS
truy cập máy chủ gốc ▪ Gởi các truy vấn với địa chỉ
nguồn giả mạo: địa chỉ IP
▪ Đẩy khối lượng dữ liệu lớn mục tiêu
tới TLD máy chủ ▪ Yêu cầu khuếch đại
• Nguy hiểm hơn Application Layer: 2-72
Chương 2: Nội dung
▪ Các ứng dụng P2P
▪ Các nguyên lý của các ▪ video streaming and mạng
ứng dụng mạng phân phối nội dung
▪ Web and HTTP ▪ Lập trình socket với UDP
▪ Thư điện tử, SMTP, and TCP
IMAP
▪ The Domain Name
System DNS

Application Layer: 2-73


Kiến trúc ngang hàng (P2P)
▪ Không có máy chủ hoạt động liên tục mobile network
▪ Các hệ thống đầu cuối bất kỳ giao tiếp national or global ISP
trực tiếp với nhau
▪ các đồng nghiệp yêu cầu dịch vụ từ các
đồng nghiệp khác, cung cấp dịch vụ để
đổi lại các đồng nghiệp khác
• khả năng tự mở rộng - các đồng nghiệp mới local or
regional ISP
mang lại năng lực dịch vụ mới và nhu cầu dịch
vụ mới home network content
provider
▪ Các máy được kết nối không liên tục và network datacenter
network
thay đổi địa chỉ IP
• quản lý phức tạp
▪ Ví dụ: Phân phối tập tin (BitTorrent), enterprise
streaming (KanKan), VoIP (Skype) network

Application Layer: 2-74


Phân phối tập tin: so sánh giữa mô hình
máy khách-máy chủ và P2P
Câu hỏi: mất bao lâu để phân phối tập tin (kích thước F) từ một máy chủ
đến N máy?
• Lưu lượng tải lên/tải xuống của bên (peer) là tài nguyên giới hạn

us: lưu lượng tải lên


của máy chủ

di: lưu lượng tải xuống


tập tin, size u1 d1 u2 của bên i
us d2
F máy chủ
di
uN network (với băng thông lớn)
ui
dN
ui: lưu lượng tải
lên bên i
Introduction: 1-75
Thời gian phân phối tập tin: máy khách-máy chủ
▪ máy chủ truyền: phải gửi (tải lên) tuần tự N bản
sao tập tin:
• Thời gian để gởi một bản sao: F/us F
• Thời gian để gởi N bản sao: NF/us
us
di
network
ui
máy khách: mỗi máy khách phải tải xuống bản
sao của tập tin
dmin = tốc độ tải xuống của máy khách tải
chậm nhất
Thời gian để máy khách tải chậm nhất tải
xong: F/dmin
Thời gian để phân phối
tập tin F đến N máy khách D > max{NF/us,,F/dmin}
dùng phương pháp c-s
máy khách-máy chủ

Tăng tuyến tính trong N Introduction: 1-76


Thời gian phân phối tập tin: P2P
▪ máy chủ: chỉ cần tải lên ít nhất một bản
sao
• Thời gian gởi một bản sao: F/us F
us

một máy khách: máy khách phải tải xuống di


bản sao tập tin network
ui
Thời gian tối thiếu để máy khách tải xuống:
F/dmin
nhiều máy khách: với N máy thì tổng dung lượng tải về là NF bit
Tốc độ upload tối đa (khống chế tốc độ tải về tối đa) là us + Sui

Thời gian phân phối


F đến N máy khách
dùng phương pháp P2P
DP2P > max{F/us,,F/dmin,,NF/(us + Sui)}
Tăng tuyến tính trong N …
…nhưng mỗi khi thêm bên (peer) tham gia sử dụng dịch vụ,
chính nó lại gia tăng năng lực dịch vụ Application Layer: 2-77
So sánh máy khách-máy chủ với P2P: ví dụ
Tốc độ máy khách upload = u, F/u = 1 hour, us =
10u,
3.5
dmin ≥ us
P2P

Minimum Distribution Time


3
Client-Server
2.5

1.5

0.5

0
0 5 10 15 20 25 30 35

N
Application Layer: 2-78
P2P file distribution: BitTorrent
Tập tin được chia thành các khối 256Kb (chunks)
Các bên (peer) trong in torrent gửi/nhận các khối

tracker: theo dõi các bên (peers) torrent: nhóm các bên trao đổi
tham gia trong torrent các khối

Alice tham gia…


… lấy danh sách
các peer từ tracker
… và bắt đầu trao đổi các
khối với các bên trong torrent

Application Layer: 2-79


Phân phối tập tin P2P: BitTorrent
▪ Bên (peer) tham gia torrent:
• không có các khối, nhưng sẽ lần lượt
tích lũy chúng từ các bên (peer)
khác
• đăng ký với tracker để lấy danh
sách các bên (peer) khác, kết nối
với peer khác và cả “láng giềng” của
các bên (peer) khác
trong khi tải xuống, bên (peer) tải các khối dữ liệu nó đã có tới các bên
(peer) khác
bên (peer) có thể thay đổi các bên (peer) mà nó đang trao đổi các khối dữ
liệu
Các bên (peer) có thể tham gia hay rời bỏ nhóm phân phối
Một khi bên (peer) có toàn bộ tập tin, nó có thể (ích kỷ) rời khỏi hoặc (vị
tha) ở lại trong nhóm Application Layer: 2-80
BitTorrent: yêu cầu, gởi các khối
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 nào, Alice gởi các khối cho bốn bên (peer)
các peer khác nhau có nào hiện tại đang gởi các khối cho cô
các tập con khác nhau ở tốc độ cao nhất
của các khối Alice xiết các yêu cầu từ các peer khác (sẽ
▪ định kỳ, Alice yêu cầu không nhận được khối từ Alice)
mỗi bên (peer) cho danh Đánh giá lại top 4 mỗi 10 giây
sách các khối mà các bên Mỗi 30 giây: chọn ngẫu nhiên một peer
(peer) có khác, bắt đầu gởi các khối
▪ Alice yêu cầu các khối Không xiết các yêu cầu của bên (peer) này
đang thiếu từ các bên bên (peer) mới được chọn có thể tham gia
(peer) , hiếm trước và top 4

Application Layer: 2-81


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

khi tải lên nhanh hơn: dễ tìm


được đối tác tốt hơn, lấy tập tin
nhanh hơn!
Application Layer: 2-82
Chương 2: Nội dung
▪ Các ứng dụng P2P
▪ Các nguyên lý của các ứng ▪ Video streaming và mạng
dụng mạng phân phối nội dung
▪ Web and HTTP ▪ Lập trình socket với UDP and
▪ Thư điện tử, SMTP, IMAP TCP
▪ The Domain Name System
DNS

Application Layer: 2-83


Video Streaming and CDNs: context
▪ phát trực tuyến lưu lượng video: người tiêu dùng chính của
băng thông Internet
• Netflix, YouTube, Amazon Prime: 80% lưu lượng ISP khu
dân cư (2020)
▪ thách thức: quy mô - làm thế nào để tiếp cận ~ 1B người
dùng?
• một máy chủ mega-video sẽ không hoạt động (tại sao?)
▪ thách thức: không đồng nhất
▪ những người dùng khác nhau có các khả năng khác nhau (ví
dụ: có dây so với di động; băng thông nhiều so với băng
thông kém)
▪ giải pháp: phân phối, cơ sở hạ tầng cấp ứng dụng

Application Layer: 2-84


Đa phương tiện: Video ví dụ mã hóa không gian: thay vì
gửi N giá trị cùng màu (tất cả đều
có màu tím), chỉ gửi hai giá trị:
giá trị màu (màu tím) và số giá trị

▪ video: chuỗi hình ảnh được hiển lặp lại (N)

thị với tốc độ không đổi ……………………..


……………….…….
• Ví dụ: 24 hình ảnh/giây
▪ Ảnh kĩ thuật số: mảng pixel
• Mỗi pexel được biểu diễn
bằng các bit
frame i
▪ Coding: sử dụng dự phòng bên
trong và giữa các hình ảnh để
giảm # bit được sử dụng để mã ví dụ mã hóa tạm thời:
hóa hình ảnh thay vì gửi khung hoàn
chỉnh ở i + 1, chỉ gửi
• Không gian (trong hình ảnh) những điểm khác biệt từ
khung i frame i+1
• Tạm thời ( từ hình ảnh này Application Layer: 2-85
Đa phương tiện: Video ví dụ mã hóa không gian: thay vì
gửi N giá trị cùng màu (tất cả đều
có màu tím), chỉ gửi hai giá trị:
giá trị màu (màu tím) và số giá trị

▪ CBR: (tốc độ bit không đổi): lặp lại (N)

tốc độ mã hóa video cố định ……………………..


……………….…….
▪ VBR: (tốc độ bit thay đổi): tốc
độ mã hóa video thay đổi khi
lượng mã hóa không gian,
thời gian thay đổi
▪ ví dụ: frame i
▪ MPEG 1 (CD-ROM) 1,5 Mbps
▪ MPEG2 (DVD) 3-6 Mb / giây
▪ MPEG4 (thường được sử dụng ví dụ mã hóa tạm thời:
trong Internet, 64Kbps - 12 thay vì gửi khung hoàn
chỉnh ở i + 1, chỉ gửi
Mbps) những điểm khác biệt từ
khung i frame i+1

Application Layer: 2-86


Streaming stored video

Internet

video server
Máy khách
(stored video)

▪ Những thách thức chính:


▪ băng thông từ máy chủ đến máy khách sẽ thay đổi theo thời gian,
với mức độ tắc nghẽn mạng thay đổi (trong nhà, trong mạng truy
cập, trong lõi mạng, tại máy chủ video)
▪ mất gói và chậm trễ do tắc nghẽn sẽ làm chậm quá trình phát hoặc
dẫn đến chất lượng video kém
Application Layer: 2-87
Streaming stored video

2. video
Đã gửi
1. video 3. video đã nhận, phát ở khách hàng
2. được ghi (30 khung hình / giây)
lại (ví dụ:
mạng trễ time
30 khung
hình / giây)

phát trực tuyến: tại thời điểm này, máy


khách phát phần đầu của video, trong
khi máy chủ vẫn gửi phần sau của video
Application Layer: 2-88
Streaming stored video: thách thức
▪ hạn chế phát liên tục: khi quá trình chơi của khách
hàng bắt đầu, phát lại phải khớp với thời gian ban
đầu
• … Nhưng độ trễ mạng có thể thay đổi (jitter), do
đó sẽ cần bộ đệm phía máy khách để phù hợp
với yêu cầu phát
▪ những thách thức khác:
▪ tương tác với khách hàng: tạm dừng, tua
nhanh, tua lại, chuyển qua video
▪ các gói video có thể bị mất, truyền lại
Application Layer: 2-89
Streaming stored video: playout buffering
bit không đổi
xếp hạng video tiếp nhận video phát video tốc độ
truyền tải khách hàng bit không đổi ở
Mạng lưới thay máy khách
đổi chậm trễ

buffered
video
Máy khách Thời gian
diễn ra chậm
trễ
▪client-side buffering and playout delay: bù đắp cho độ trễ
do mạng thêm vào, độ trễ chập chờn
Application Layer: 2-90
Truyền phát đa phương tiện: DASH
▪ DASH: Dynamic, Adaptive Streaming over HTTP
▪ Máy chủ:
• Chia tệp video thành nhiều phần
• Mỗi đoạn được lưu trữ, được mã hóa ở các
tỷ lệ khác nhau Internet
• Tệp kê khai: cấp URL cho các phần khác nhau Máy khách
▪ Máy khách:
• Định kỳ đo băng thông từ máy chủ đến máy khách
• Bản kê khai rõ ràng , yêu cầu từng đoạn một
• Chọn tốc độ mã hóa tối đa bền vững cho bang thông hiện tại
• Có thể chọn các tốc độ mã hóa khác nhau tại các thời điểm khác
nhau ( tùy thuộc vào băng thông khả dụng tại thời điểm)
Application Layer: 2-91
Truyền phát đa phương tiện: DASH
▪ “intelligence” ở khách hàng: khách hàng
xác định
• khi nào yêu cầu chunk (để bộ đệm bị
đói hoặc tràn không xảy ra)
• tỷ lệ mã hóa cần yêu cầu (chất lượng cao Internet
hơn khi có nhiều băng thông hơn) Máy khách

• nơi yêu cầu chunk (có thể yêu cầu từ máy chủ URL "gần" với
máy khách hoặc có băng thông khả dụng cao)

Truyền video = mã hóa + DASH + bộ đệm phát


Application Layer: 2-92
Mạng phân phối nội dung (CDN)
▪ thách thức: làm thế nào để truyền nội dung (được chọn từ hàng
triệu video) đến hàng trăm nghìn người dùng đồng thời?

▪ tùy chọn 1: “mega-server” đơn, lớn


• điểm thất bại duy nhất
• điểm nghẽn mạng
• con đường dài đến khách hàng ở xa
• nhiều bản sao của video được gửi qua liên kết gửi đi

…. Khá đơn giản: giải pháp này không mở rộng quy mô

Application Layer: 2-93


Mạng phân phối nội dung (CDN)
▪ thách thức: làm thế nào để truyền nội dung (được chọn từ hàng
triệu video) đến hàng trăm nghìn người dùng đồng thời?
▪ tùy chọn 2: lưu trữ / phân phát nhiều bản sao video tại nhiều
trang web được phân phối theo địa lý (CDN)
• enter deep: đẩy các máy chủ CDN vào sâu trong
nhiều mạng truy cập
• gần gũi với người dùng
• Akamai: 240.000 máy chủ được triển khai tại
hơn 120 quốc gia (2015)
• bring home: số lượng nhỏ hơn (10) cụm lớn
hơn trong POP gần (nhưng không bên trong)
mạng truy cập
• được sử dụng bởi Limelight
Application Layer: 2-94
Mạng phân phối nội dung (CDN)
▪ CDN: lưu trữ các bản sao nội dung tại các nút CDN
ví dụ. Netflix lưu trữ các bản sao của MadMen
▪ người đăng ký yêu cầu nội dung từ CDN
• hướng đến bản sao gần đó, truy xuất nội dung
• có thể chọn bản sao khác nếu đường dẫn mạng bị tắc nghẽn

manifest file
where’s Madmen?

Application Layer: 2-95


Mạng phân phối nội dung (CDN)

OTT: “over the top”

Internet host-host giao tiếp như một dịch vụ

▪ Thách thức của OTT: Đối phó với Internet bị tắc


nghẽn
• từ nút CDN nào để truy xuất nội dung?
• hành vi của người xem khi có tắc nghẽn?
• nội dung cần đặt trong nút CDN nào? Application Layer: 2-96
Quyền truy cập nội dung CDN: xem xét kỹ hơn
Bob (khách hàng) yêu cầu video http://netcinema.com/6Y7B23V
video được lưu trữ trong CDN tại http://KingCDN.com/NetC6y&B23V

1. Bob lấy URL cho video


http://netcinema.com/6Y7B23V
từ trang web netcinema.com 2. giải quyết http://netcinema.com/6Y7B23V
2 qua DNS cục bộ của Bob
1
6. yêu cầu video từ 5 Máy chủ DNS
Máy chủ KINGCDN, cục bộ của Bob
phát trực tuyến qua
HTTP
3. netcinema’s DNS returns CNAME for
netcinema.com 4
http://KingCDN.com/NetC6y&B23V

DNS có thẩm quyền của rạp chiếu phim net


KingCDN.com KingCDN
authoritative DNS
Application Layer: 2-97
Case studacy: Netflix
Amazon cloud upload copies of
multiple versions of
video to CDN servers
CDN
server
Netflix registration,
accounting servers
Bob browses
Netflix video CDN
2 Manifest file, server
requested
1 3 returned for
Bob manages specific video
Netflix account
CDN
4 server

DASH server
selected, contacted,
streaming begins
Application Layer: 2-98
Chương 2: Nội dung
▪ Các ứng dụng P2P
▪ Các nguyên lý của các ứng ▪ Video streaming và mạng
dụng mạng phân phối nội dung
▪ Web and HTTP ▪ Lập trình socket với UDP
▪ Thư điện tử, SMTP, IMAP vàTCP
▪ The Domain Name System
DNS

Application Layer: 2-99


Lập trình Socket
Mục tiêu: tìm hiểu cách xây dựng các ứng dụng máy khách/máy
chủ liên lạc bằng sockets
socket: một cánh cửa giữa tiến trình ứng dụng và giao thức vận
chuyển giữa 2 đầu cuối

application application
socket controlled by
process process app developer

transport transport
network network Được điều khiển bởi
link hệ điều hành
link Internet
physical physical

Application Layer: 2-100


Lập trình Socket
Hai loại socket cho hai dịch vụ transport:
• UDP: chuyển gói tin không đảm bảo
• TCP: chuyển luồng tin có đảm bảo (stream-oriented)

Ứng dụng ví dụ:


1. máy khách nhận 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 máy chủ.
2. máy chủ nhận được dữ liệu đó và chuyển đổi các ký tự sang
chữ hoa.
3. máy chủ gởi dữ liệu đã được sửa đổi cho máy khách ở trên.
4. máy khách 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ó.
Application Layer: 2-101
Lập trình Socket với UDP
UDP: không “kết nối” giữa máy khách và máy chủ
▪ 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ố cổng cho mỗi gói
(packet)
▪ Bên nhận lấy địa chỉ IP và số cổng của bên gửi từ gói nhận
được
UDP: dữ liệu được truyền có thể bị mất hoặc được nhận
không đúng thứ tự
Quan điểm ứng dụng:
▪ UDP cung cấp cơ chế truyền các nhóm bytes (“datagrams”)
không tin cậy giữa máy khách và máy chủ Application Layer: 2-102
Sự tương tác socket máy khách/máy chủ: UDP
máy chủ (chạy với địa chỉ máy chủIP) máy khách

create socket:
create socket, port= x: clientSocket =
serverSocket = socket(AF_INET,SOCK_DGRAM)
socket(AF_INET,SOCK_DGRAM)
create datagram with máy chủIP
and port=x; send datagram via
read datagram from clientsocket
serverSocket

write reply to
read datagram from
serversocket
clientSocket
specifying máy kháchIP,
số hiệu port close
clientSocket
Application Layer: 2-103
Ứng dụng ví dụ: UDP máy khách
Python UDPmáy khách
Bao gồm thư viện socket from socket import *
của Python’
serverName = ‘hostname’
serverPort = 12000
Tạo socket UDP cho máy chủ clientSocket = socket(AF_INET,
SOCK_DGRAM)
Nhận thông điệp từ bàn phím
người dùng
message = raw_input(’Input lowercase sentence:’)
Đính kèm tên máy chủ, cổng đến thông điệp; gởi vào clientSocket.sendto(message.encode(),
socket
(serverName, serverPort))
Đọ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à đóng socket print modifiedMessage.decode()
clientSocket.close()

Application Layer: 2-104


Ứng dụng ví dụ : UDP máy chủ
Python UDPmáy chủ
from socket import *
serverPort = 12000
Tạo UDP socket serverSocket = socket(AF_INET, SOCK_DGRAM)
Gắn kết socket đến số serverSocket.bind(('', serverPort))
port cục bộ12000
print (“The server is ready to receive”)
Lặp mãi mãi while True:
Đọc từ UDP socket vào message, lấy địa chỉ message, clientAddress = serverSocket.recvfrom(2048)
IP của máy khách (địa chỉ IP máy khách và
port) modifiedMessage = message.decode().upper()
Gởi chuỗi chữ hoa trở lại cho máy khách này serverSocket.sendto(modifiedMessage.encode(),
clientAddress)

Application Layer: 2-105


Lập trình Socket với TCP
máy khách phải liên lạc với máy ▪ Khi được máy khách liên lạc, máy
chủ chủ TCP tạo socket mới cho tiến
▪ Tiến trình máy chủ phải được trình máy chủ để trao đổi với máy
chạy trước khách đó
▪ máy chủ phải tạo socket • Cho phép máy chủ nói chuyện với
(cửa) để mời máy khách đến nhiều máy khách
liên lạc
• Số port nguồn được dùng để phân
máy khách tiếp xúc máy chủ biệt các máy khách (xem tiếp
bằng: chương 3)
▪ Tạo socket TCP, xác định địa
chỉ IP, số port của tiến trình Quan điểm ứng dụng:
máy chủ TCP cung cấp việc truyền các byte
▪ Khi máy khách tạo socket: đáng tin cậy và theo thứ tự giữa
máy khách TCP thiết lập kết máy khách và máy chủ
nối đến máy chủ TCP
Application Layer: 2-106
Tương tác socket máy khách/máy chủ: TCP
máy chủ (chạy trên hostid) máy khách

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
Application Layer: 2-107
Ứng dụng ví dụ : TCP máy khách
Python TCPmáy khách
from socket import *
serverName = ’servername’
serverPort = 12000
Tạo TCP socket cho máy clientSocket = socket(AF_INET, SOCK_STREAM)
chủ, port 12000
clientSocket.connect((serverName,serverPort))
sentence = raw_input(‘Input lowercase sentence:’)
clientSocket.send(sentence.encode())
Không cần đính kèm tên máy chủ, port modifiedSentence = clientSocket.recv(1024)
print (‘From Server:’, modifiedSentence.decode())
clientSocket.close()

Application Layer: 2-108


Ví dụ ứng dụng: TCP máy chủ
Python TCPmáy chủ
from socket import *
serverPort = 12000
Tạo socket TCP chào đón serverSocket = socket(AF_INET,SOCK_STREAM)
serverSocket.bind((‘’,serverPort))
máy chủ 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 True:
máy chủ đợi accept() cho yêu cầu đến, connectionSocket, addr = serverSocket.accept()
socket mới được tạo
trở về
Đọc các byte từ socket sentence = connectionSocket.recv(1024).decode()
(nhưng không đọc địa chỉ capitalizedSentence = sentence.upper()
như UDP) connectionSocket.send(capitalizedSentence.
encode())
Đóng kết nối đến máy khách này(nhưng connectionSocket.close()
không đóng socket chào đón)
Application Layer: 2-109
Chương 2: tóm tắt
our study of network application layer is now complete!
❖Các kiến trúc ứng dụng ❖ Các giao thức:
❖máy khách-máy chủ ❖HTTP
❖P2P ❖FTP
❖SMTP, POP, IMAP
❖Các yêu cầu về dịch vụ ứng dụng:
❖DNS
❖Độ tin cậy, băng thông, độ trễ
❖P2P: BitTorrent, DHT
❖Mô hình dịch vụ vận chuyển ❖ Video streaming, CDNs
Internet ❖ Lập trình socket : TCP, UDP
❖Kết nối định hướng, tin cậy: sockets
TCP
❖Không tin cậy, datagrams: UDP

Application Layer: 2-110


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 yêu cầu /trả lời Các chủ đề quan trọng:
điển hình: Điều khiển với các thông điệp
• máy khách yêu cầu thông tin hoặc dữ liệu
dịch vụ in-band, out-of-band
• máy chủ đáp ứng với dữ liệu, mã Tập trung và không tập trung
trạng thái Không trạng thái và có trạng
▪ Các định dạng thông điệp: thái
• Phần đầu (headers): các trường Truyền tin cậy và không tin cậy
cho biết thông tin về dữ liệu “sự phức tạp tại mạng biên”
• Dữ liệu: thông tin để truyền thông

Application Layer: 2-111


Additional Chapter 2 slides

Application Layer: 2-112


Chapter 3
Tầng Transport
A note on the use of these PowerPoint slides:
We’re making these slides freely available to all (faculty, students,
readers). They’re in PowerPoint form so you see the animations; and
can add, modify, and delete slides (including this one) and slide content
to suit your needs. They obviously represent a lot of work on our part.
In return for use, we only ask the following:
▪ If you use these slides (e.g., in a class) that you mention their
source (after all, we’d like people to use our book!)
▪ If you post any slides on a www site, that you note that they are
adapted from (or perhaps identical to) our slides, and note our
copyright of this material.
Computer Networking: A
For a revision history, see the slide note for this page.
Top-Down Approach
Thanks and enjoy! JFK/KWR 8th edition
All material copyright 1996-2020
Jim Kurose, Keith Ross
J.F Kurose and K.W. Ross, All Rights Reserved Pearson, 2020
Transport Layer: 3-1
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 thức tầng
đằng sau các dịch vụ tầng transport trên Internet:
transport: • UDP: vận chuyển phi kết nối
• multiplexing/demultiplexing • TCP: vận chuyển tin cậy hướng kết
• Truyền dữ liệu tin cậy nối (connection-oriented reliable
• Điều khiển luồng (flow transport)
control) • Điều khiển tắc nghẽn TCP
• Điều khiển tắc nghẽn
(congestion control)

Transport Layer: 3-2


Chương 3: Nội dung
▪ Các dịch vụ tầng Transport
▪ Multiplexing và demultiplexing
▪ Vận chuyển phi kết nối: UDP
▪ Các nguyên lý truyền dữ liệu tin
cậy
▪ Vận chuyển hướng kết nối: TCP
▪ các nguyên lý về điều khiển tắc
nghẽn
▪ điều khiển tắc nghẽn TCP
▪ Sự phát triển của chức năng tầng
transport
Transport Layer: 3-3
Các giao thức và dịch vụ
tầng Transport application
transport

Cung cấp truyền thông logic giữa các tiến mobile network
network
data link

trình ứng dụng đang chạy trên có host khác


physical
national or global ISP

nhau
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, local or
regional ISP
sau đó chuyển các segments này cho tầng
network home network content
Phía nhận: tái kết hợp các segments thành
provider
network datacenter
các thông điệp (message), các thông điệp
application
network
transport

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


network
data link
physical
Có nhiều hơn 1 giao thức tầng transport dành
cho các ứng dụng
enterprise
network
Internet: TCP và UDP
Transport Layer: 3-4
Transport vs. network layer services and protocols
household analogy:
12 đứa trẻ nhà Ann gửi thư
cho 12 đứa trẻ nhà Bill:
▪ hosts = nhà
▪ processes = trẻ em
▪ app messages = thư trong
phong bì

Transport Layer: 3-5


Tầng Transport với tầng network
▪Tầng network: truyền Ở hộ gia đình:
thông logic giữa các host 12 đứa trẻ nhà Ann gửi thư cho 12
đứa trẻ nhà Bill:
▪ hosts = nhà
▪Tầng transport : truyền ▪ processes = trẻ em
thông logic giữa các tiến ▪ app messages = thư trong phong bì
trình ▪ transport protocol = Ann và Bill, người
chuyển giao cho anh chị em trong nhà

• Dựa vào và tăng cường ▪ network-layer protocol = giao thức


các dịch vụ tầng network vận chuyển = Ann và Bill, người chuyển
giao cho anh chị em trong nhà
▪ giao thức tầng mạng = dịch vụ bưu chính

Transport Layer: 3-6


Các hành động của lớp truyền tải

Người gửi:
application ▪ được chuyển một thông application
app. msg
báo lớp ứng dụng
transport ▪ xác định giá trị trường tiêu TTtransport
hh app. msg

đề phân đoạn
network (IP) ▪ tạo phân khúc network
▪ chuyển phân đoạn sang (IP)
link
link
IP physical
physical

Transport Layer: 3-7


Các hành động của Tầng Transport

Người nhận:
application ▪ nhận phân đoạn từ IP application
▪ kiểm tra giá trị tiêu đề
app. msg
transport ▪ kiểm tra giá trị tiêu đề transport

▪ phân kênh thông báo network


network (IP) đến ứng dụng qua ổ cắm
(IP)
link
link
physical physical
Th app. msg

Transport Layer: 3-8


Các giao thức tầng transport trên
Internet application

▪ TCP: Giao thức điều khiển truyền


transport
network
mobile network
data link

• giao hàng theo đơn đặt hàng đáng tin cậy physical
national or global ISP

• điều khiển tắc nghẽn


• Kiểm soát lưu lượng
• kết nối cập nhật
▪ UDP: Giao thức Datagram của Người local or
dùng regional ISP

• giao hàng không đáng tin cậy, không


có thứ tự
home network content
provider
• Không rườm rà, mở rộng “nổ lực tốt network datacenter
application

nhất” “best-effort” của IP


network
transport
network

▪ Không có các dịch vụ:


data link
physical

• Bảo đảm độ trễ enterprise


• Bảo đảm băng thông network

Transport Layer: 3-9


Chương 3 Nội dung
▪ Tầng Transport dịch vụ
▪ Multiplexing và demultiplexing
▪ Truyền tải không kết nối: UDP
▪ Nguyên tắc truyền dữ liệu đáng tin
cậy
▪ Vận chuyển hướng kết nối: TCP
▪ Nguyên tắc kiểm soát tắc nghẽn
▪ Kiểm soát tắc nghẽn TCP
▪ Sự phát triển của chức năng lớp
truyền tải
Transport Layer: 3-10
HTTP server
client
application application
HTTP msg
transport

transport network transport


network link network
link physical link
physical physical

Transport Layer: 3-11


HTTP server
client
application application
HTTP msg
transport
Ht HTTP msg

transport network transport


network link network
link physical link
physical physical

Transport Layer: 3-12


HTTP server
client
application application
HTTP msg
transport
Ht HTTP msg

Hnnetwork
Ht HTTP msg transport
transport
network link network
link physical link
physical physical

Transport Layer: 3-13


HTTP server
client
application application

transport

transport network transport


network link network
link physical link
physical physical

Hn Ht HTTP msg

Transport Layer: 3-14


HTTP server
client1 client2
application P-client1 P-client2 application

transport

transport network transport


network link network
link physical link
physical physical

Transport Layer: 3-15


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

application

application P1 P2 application socket


P3 transport P4
process
transport network transport
network link network
link physical link
physical physical

Transport Layer: 3-16


demultiplexing làm việc như thế nào
▪ host nhận các khung dữ liệu 32 bits
(datagram) IP
source port # dest port #
• 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
• Mỗi segment có số port nguồn và application
đích data
▪ host dùng các địa chỉ IP và (payload)
số port để gởi segment đến
socket thích hợp Định dạng segment TCP/UDP

Transport Layer: 3-17


Demultiplexing không kết nối
▪ Ôn lại: socket đã tạo có ▪ Khi host nhận segment
số port của host cục bộ UDP :
(host-local port #) : • Kiểm tra số port đích
DatagramSocket mySocket1 trong segment
= new • Đưa segment UDP đến
DatagramSocket(12534); socket có số port đó
▪ Khi tạo khung dữ liệu
(datagram) để gởi vào đến
socket UDP socket, phải xác IP/UDP datagrams với same dest.
port #, nhưng nguồn khác IP địa
định chỉ và / hoặc nguồn số cổng sẽ
• Địa chỉ IP đích được chuyển đến same socket
• Số port đích lúc nhận máy chủ
Transport Layer: 3-18
Demultiplexing không kết nối:
ví dụ
DatagramSocket
serverSocket = new
DatagramSocket
DatagramSocket mySocket2 = DatagramSocket mySocket1 =
new DatagramSocket (6428); new DatagramSocket (5775);
(9157); application
application application
P1
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: ?
Transport Layer: 3-19
Demux hướng kết nối
▪Socket TCP được xác ▪ máy chủ có thể hỗ trợ
định bởi 4 yếu tố: nhiều ổ cắm TCP đồng
• Địa chỉ ip nguồn thời:
• Số port nguồn ▪ mỗi ổ cắm được xác định
• Địa chỉ IP đích bởi 4 tuple riêng của nó
• Số port đích
▪ mỗi ổ cắm được liên kết
▪demux: nơi nhận dùng với một máy khách kết nối
tất cả 4 giá trị trên khác nhau
để điều hướng
segment đến socket
thích hợp
Transport Layer: 3-20
Demultiplexing hướng kết nối: ví dụ
application
application P4 P5 P6 application
P1 P2 P3
transport
transport transport
network
network link network
link physical link
physical server: IP physical
address B

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


chỉ IP A Địa chỉ IP dịch, port: A,9157 IP nguồn ,port: C,5775 chỉ IP C
IP dịch,port: B,80
IP nguồn,port: A,9157
IP dịch, port: B,80
IP nguồn,port: C,9157
IP dị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
Transport Layer: 3-21
Tóm lược
▪ Ghép kênh, phân kênh: dựa trên phân đoạn, giá trị trường tiêu
đề datagram
▪ UDP: phân kênh sử dụng số cổng đích (only)
▪ TCP: phân kênh bằng cách sử dụng 4-tuple: địa chỉ IP nguồn và
đích, và số cổng
▪ Ghép kênh / phân kênh xảy ra ở tất cả các lớp

Transport Layer: 3-22


Chương 3: Nội Dung
▪ Tầng Transport dịch vụ
▪ Multiplexing and demultiplexing
▪ Truyền tải không kết nối: UDP
▪ Nguyên tắc truyền dữ liệu đáng tin
cậy
▪ Vận chuyển hướng kết nối: TCP
▪ Nguyên tắc kiểm soát tắc nghẽn
▪ Kiểm soát tắc nghẽn TCP
▪ Sự phát triển của chức năng lớp
truyền tải
Transport Layer: 3-23
UDP: Giao thức Datagram của Người dùng
▪ Giao thức truyền tải Internet Tại sao lại có UDP?
“không rườm rà” ▪ không có thiết lập kết nối
▪ Dịch vụ "nỗ lực cao nhất", các (có thể thêm độ trễ RTT)
phân đoạn UDP có thể là: ▪ đơn giản: không có trạng
• mất đi thái kết nối ở người gửi,
người nhận
• giao hàng không đúng thứ tự
cho ứng dụng ▪ kích thước tiêu đề nhỏ
▪ không kết nối: ▪ không kiểm soát tắc nghẽn
• không bắt tay giữa người gửi ▪ UDP có thể phát nổ nhanh
UDP và người nhận như mong muốn!
• từng phân đoạn UDP được xử lý
độc lập với những phân đoạn ▪ có thể hoạt động khi đối
khác mặt với tắc nghẽn
Transport Layer: 3-24
UDP: Giao thức sơ đồ người dùng
▪ Sử dụng UDP:
▪ phát trực tuyến các ứng dụng đa phương tiện (khả năng chịu
mất mát, tỷ lệ nhạy cảm)
▪ DNS
▪ SNMP
▪ HTTP / 3
▪ nếu cần chuyển đáng tin cậy qua UDP (ví dụ: HTTP / 3):
▪ thêm độ tin cậy cần thiết ở lớp ứng dụng
▪ thêm kiểm soát tắc nghẽn ở lớp ứng dụng

Transport Layer: 3-25


UDP: Giao thức Datagram của Người dùng [RFC 768]

Transport Layer: 3-26


UDP: Các hành động của lớp truyền tải

Máy khách SNMP Máy chủ SNMP

application application

transport transport
(UDP) (UDP)

network (IP) network (IP)

link link

physical physical

Transport Layer: 3-27


UDP: Các hành động của lớp truyền tải

SNMP client Máy chủ SNMP


Hành động của người gửi UDP :
application ▪ được chuyển một thông application
SNMP msg
báo lớp ứng dụng
transport transport
▪ xác định giá trị trường tiêu UDP
UDPhh SNMP msg
(UDP) đề phân đoạn UDP (UDP)

network (IP) ▪ tạo phân đoạn UDP network (IP)

link ▪ chuyển phân đoạn sang IP link

physical physical

Transport Layer: 3-28


UDP: Các hành động của lớp truyền tải

SNMP client SNMP server


Các hành động của bộ thu UDP:
application ▪ nhận phân đoạn từ IP application
▪ kiểm tra giá trị tiêu đề
transport transport
SNMP msg tổng kiểm tra UDP
(UDP) (UDP)
▪ trích xuất thông báo lớp
network
UDPh SNMP(IP)
msg ứng dụng network (IP)
▪ phân kênh thông báo đến
link link
ứng dụng qua ổ cắm
physical physical

Transport Layer: 3-29


Tiêu đề phân đoạn UDP
32 bits
source port # dest port #
length checksum

độ dài, tính
application bằng byte của
data phân đoạn UDP,
(payload)
bao gồm cả tiêu
đề
dữ liệu đến / từ
Định dạng phân đoạn UDP lớp ứng dụng

Transport Layer: 3-30


Tổng kiểm tra UDP
Mục tiêu: phát hiện lỗi (tức là các bit bị lật) trong phân đoạn đã
truyền
1st number 2nd number sum

Đã truyền: 5 6 11

Nhận: 4 6 11

sender-computed
receiver-computed
checksum
= checksum (as received)

Transport Layer: 3-31


Tổng kiểm tra UDP
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 đã
segment, bao gồm các nhận
trường của header, là ▪ Kiểm tra giá trị trên có bằng với giá
chuỗi các số nguyên trị trong trường checksum hay
16-bit không:
▪ checksum: bổ sung • NO – có lỗi xãy ra
(tổng bù 1) của các nội • YES – không có lỗi. Nhưng có thể
dung segment còn lỗi khác nữa không? Xem phần
▪ Bên gửi đặt giá trị sau….
checksum vào trường
checksum UD
Transport Layer: 3-32
Internet checksum: ví dụ
Ví dụ: cộng 2 số nguyên 16 bit
1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0
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 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0
checksum 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ả

* Xem các bài tập tương tác trực tuyến để biết thêm ví dụ: http://gaia.cs.umass.edu/kurose_ross/interactive/
Transport Layer: 3-33
Kiểm tra Internet: bảo vệ yếu!
ví dụ: thêm hai số nguyên 16 bit
0 1
1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0
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 Mặc dù các số đã
thay đổi (bit lộn
Tổng 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 xộn), không có
thay đổi trong
checksum 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 tổng kiểm tra!

Transport Layer: 3-34


Tóm tắt: UDP
▪ Giao thức "không rườm rà":
• phân đoạn có thể bị mất, phân phối không theo thứ tự
• dịch vụ nỗ lực tốt nhất: "gửi và hy vọng điều tốt nhất"
▪ UDP có những ưu điểm của nó:
• không cần thiết lập / bắt tay (không phát sinh RTT)
• có thể hoạt động khi dịch vụ mạng bị xâm phạm
• giúp tăng độ tin cậy (checksum)
▪ xây dựng chức năng bổ sung trên đầu UDP trong lớp ứng dụng
(ví dụ: HTTP / 3)
Chapter 3: roadmap
▪ Transport-layer services
▪ Multiplexing and demultiplexing
▪ Connectionless transport: UDP
▪ Principles of reliable data transfer
▪ Connection-oriented transport: TCP
▪ Principles of congestion control
▪ TCP congestion control
▪ Evolution of transport-layer
functionality
Transport Layer: 3-36
Nguyên tắc truyền dữ liệu đáng tin cậy

sending receiving
process process
application data data
transport
reliable channel

dịch vụ trừu tượng đáng tin cậy

Transport Layer: 3-37


Nguyên tắc truyền dữ liệu đáng tin cậy

sending receiving sending receiving


process process process process
application data data application data data
transport transport
reliable channel
sender-side of receiver-side
reliable service abstraction reliable data of reliable data
transfer protocol transfer protocol

transport
network
unreliable channel

thực hiện dịch vụ đáng tin cậy

Transport Layer: 3-38


Nguyên tắc truyền dữ liệu đáng tin cậy

sending receiving
process process
application data data
transport

sender-side of receiver-side
Độ phức tạp của giao thức reliable data
transfer protocol
of reliable data
transfer protocol
truyền dữ liệu đáng tin cậy sẽ
phụ thuộc (mạnh mẽ) vào các transport
network
đặc điểm của kênh không đáng unreliable channel
tin cậy (mất, hỏng, sắp xếp lại
thực hiện dịch vụ đáng tin cậy
dữ liệu?)
Transport Layer: 3-39
Principles of reliable data transfer

sending receiving
process process
application data data
transport

sender-side of receiver-side
reliable data of reliable data
Người gửi và người nhận không transfer protocol transfer protocol
biết “trạng thái” của nhau, ví
dụ: đã nhận được tin nhắn transport
network
chưa? unreliable channel

▪ trừ khi được giao tiếp qua


thực hiện dịch vụ đáng tin cậy
tin nhắn
Transport Layer: 3-40
Giao thức truyền dữ liệu đáng tin cậy (rdt): giao diện
rdt_send(): được gọi từ phía deliver_data(): được gọi bởi rdt
trên, (ví dụ: theo ứng dụng.). để cung cấp dữ liệu cho lớp trên
Dữ liệu được chuyển để phân
phối đến lớp trên của người quá trình quá trình
nhận gửi nhận
rdt_send() data data
deliver_data()

phía người gửi data


phía người nhận
thực hiện giao thực hiện giao
thức truyền dữ liệu packet thức truyền dữ liệu
đáng tin cậy rdt đáng tin cậy rdt
udt_send() Header data Header data rdt_rcv()

kênh không đáng tin cậy

udt_send(): được gọi bởi rdt rdt_rcv(): được gọi khi gói đến
để chuyển gói Giao tiếp hai chiều qua kênh không bên nhận của kênh
kênh không đáng tin cậy cho đáng tin cậy
Transport Layer: 3-41
người nhận
Truyền dữ liệu đáng tin cậy: bắt đầu
Chúng tôi sẽ:
▪ từng bước phát triển bên gửi, bên nhận của reliable data transfer
protocol (rdt)
▪ chỉ xem xét truyền dữ liệu một chiều
• nhưng thông tin kiểm soát sẽ chảy theo cả hai hướng!
▪ sử dụng máy trạng thái hữu hạn (FSM) để chỉ định người gửi, người nhận
sự kiện gây ra chuyển đổi trạng thái
các hành động được thực hiện khi chuyển đổi trạng thái
state : khi ở “trạng thái”
này, trạng thái tiếp state state
theo được xác định duy 1 event
nhất bởi sự kiện tiếp 2
actions
theo

Transport Layer: 3-42


rdt1.0: truyền đáng tin cậy qua một kênh đáng tin
cậy
▪ kênh cơ bản hoàn toàn đáng tin cậy
• không có lỗi bit
• không bị mất gói

▪ tách rời FSM cho người gửi, người nhận:


• người gửi gửi dữ liệu vào kênh cơ bản
• người nhận đọc dữ liệu từ kênh bên dưới

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


người gửi call from packet = make_pkt(data) người nhận call from extract (packet,data)
above udt_send(packet) below deliver_data(data)

Transport Layer: 3-43


rdt2.0: kênh bị lỗi bit
▪ kênh bên dưới có thể lật các bit trong gói
• tổng kiểm tra (ví dụ: tổng kiểm tra Internet) để phát hiện lỗi bit
▪ câu hỏi: làm thế nào để khôi phục từ các lỗi?

Làm thế nào để con người phục hồi sau "lỗi" trong khi trò chuyện?

Transport Layer: 3-44


rdt2.0: kênh bị lỗi bit
▪ kênh bên dưới có thể lật các bit trong gói
• tổng kiểm tra để phát hiện lỗi bit
▪ câu hỏi: làm thế nào để khôi phục từ các lỗi?
• acknowledgements (ACKs): người nhận nói rõ với người gửi rằng pkt
đã nhận được OK
• negative acknowledgements (NAKs): người nhận nói rõ với người gửi
rằng pkt có lỗi
• sender retransmits pkt khi nhận NAK

dừng lại và đợi


người gửi gửi một gói, sau đó chờ phản hồi của người nhận
Transport Layer: 3-45
rdt2.0: Thông số kỹ thuật FSM
rdt_send(data)
snkpkt = make_pkt(data, checksum)
udt_send(sndpkt)
rdt_rcv(rcvpkt) &&
Wait for Wait for isNAK(rcvpkt)
người gửi call from ACK or udt_send(sndpkt) rdt_rcv(rcvpkt) && corrupt(rcvpkt)
above NAK
udt_send(NAK)

rdt_rcv(rcvpkt) && isACK(rcvpkt)


Wait for
L call from receiver
below

rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)


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

Transport Layer: 3-46


rdt2.0: Đặc điểm kỹ thuật FSM
rdt_send(data)
snkpkt = make_pkt(data, checksum)
udt_send(sndpkt)
rdt_rcv(rcvpkt) &&
Wait for Wait for isNAK(rcvpkt)
người gửi call from ACK or udt_send(sndpkt) rdt_rcv(rcvpkt) && corrupt(rcvpkt)
above NAK
udt_send(NAK)

rdt_rcv(rcvpkt) && isACK(rcvpkt)


Wait for
L call from receiver
below

Note: "Trạng thái" của người nhận (người nhận có


nhận được tin nhắn của tôi chính xác không?) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)
extract(rcvpkt,data)
Người gửi không biết trừ khi bằng cách nào đó deliver_data(data)
được giao tiếp từ người nhận đến người gửi udt_send(ACK)
▪ đó là lý do tại sao chúng tôi cần một giao thức!
Transport Layer: 3-47
rdt2.0: hoạt động không có lỗi
rdt_send(data)
snkpkt = make_pkt(data, checksum)
udt_send(sndpkt)
rdt_rcv(rcvpkt) &&
Wait for Wait for isNAK(rcvpkt)
người gửi call from ACK or udt_send(sndpkt) rdt_rcv(rcvpkt) && corrupt(rcvpkt)
above NAK
udt_send(NAK)

rdt_rcv(rcvpkt) && isACK(rcvpkt)


Wait for
L call from người nhận
below

rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)


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

Transport Layer: 3-48


rdt2.0: kịch bản gói bị hỏng
rdt_send(data)
snkpkt = make_pkt(data, checksum)
udt_send(sndpkt)
rdt_rcv(rcvpkt) &&
Wait for Wait for isNAK(rcvpkt)
người gửi call from ACK or udt_send(sndpkt) rdt_rcv(rcvpkt) && corrupt(rcvpkt)
above NAK
udt_send(NAK)

rdt_rcv(rcvpkt) && isACK(rcvpkt)


Wait for
L call from người nhận
below

rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)


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

Transport Layer: 3-49


rdt2.0 có một lỗ hổng nghiêm trọng!
điều gì xảy ra nếu ACK / NAK bị xử lý các bản sao:
hỏng? ▪ người gửi truyền lại pkt hiện tại
▪ người gửi không biết điều gì đã xảy nếu ACK / NAK bị hỏng
ra ở người nhận! ▪ người gửi thêm sequence
▪ không thể chỉ truyền lại: có thể number đến mỗi pkt
trùng lặp ▪ người nhận loại bỏ (không phân
phối) pkt trùng lặp

dừng lại và đợi


người gửi gửi một gói, sau đó
chờ phản hồi của người nhận
Transport Layer: 3-50
rdt2.1: người gửi, xử lý ACK / NAK bị cắt xén
rdt_send(data)
sndpkt = make_pkt(0, data, checksum)
udt_send(sndpkt) rdt_rcv(rcvpkt) &&
(corrupt(rcvpkt) ||
Wait for Wait for isNAK(rcvpkt) )
call 0 from ACK or
NAK 0 udt_send(sndpkt)
above
rdt_rcv(rcvpkt)
rdt_rcv(rcvpkt)
&& notcorrupt(rcvpkt) &&
&& notcorrupt(rcvpkt)
isACK(rcvpkt)
&& isACK(rcvpkt)
L
L
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)

Transport Layer: 3-51


rdt2.1: bộ thu, xử lý ACK / NAK bị cắt xén
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)

Transport Layer: 3-52


rdt2.1: thảo luận
người gửi người nhận :
▪ seq # được thêm vào pkt ▪ phải kiểm tra xem gói nhận
▪ hai seq. #s (0,1) là đủ. Tại sao? được có trùng lặp không
• trạng thái cho biết liệu 0 hay 1
▪ phải kiểm tra xem ACK / NAK được mong đợi pkt seq #
nhận được có bị hỏng không
▪ lưu ý: người nhận không thể
▪ gấp đôi số tiểu bang biết ACK / NAK cuối cùng của
• trạng thái phải "nhớ" liệu pkt mình có nhận được OK ở
"mong đợi" phải có số seq là 0 hay người gửi hay không
1

Transport Layer: 3-53


rdt2.2: một giao thức không có NAK
▪ chức năng tương tự như rdt2.1, chỉ sử dụng ACK
▪ thay vì NAK, người nhận gửi ACK cho pkt cuối cùng nhận được
OK
• người nhận phải bao gồm rõ ràng số seq của pkt đang được ACKed
▪ ACK trùng lặp ở người gửi dẫn đến hành động tương tự như
NAK: truyền lại pkt hiện tại
Như chúng ta sẽ thấy, TCP sử dụng cách tiếp cận này để không có NAK

Transport Layer: 3-54


rdt2.2: phân đoạn người gửi, người nhận
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) || L
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) Transport Layer: 3-55
rdt3.0: các kênh bị lỗi và mất
Giả định kênh mới : kênh cơ bản cũng có thể mất các gói (dữ
liệu, ACK)
• tổng kiểm tra, dãy số #, ACK, truyền lại sẽ hữu ích… nhưng chưa
đủ

Q: Làm thế nào để con người xử lý các từ bị


mất từ người gửi đến người nhận trong
cuộc trò chuyện?
Transport Layer: 3-56
rdt3.0: các kênh bị lỗi và mất
Tiếp cận : người gửi đợi khoảng thời gian "hợp lý" cho ACK
▪ truyền lại nếu không nhận được ACK trong thời gian này
▪ nếu pkt (hoặc ACK) chỉ bị trì hoãn (không bị mất):
• truyền lại sẽ bị trùng lặp, nhưng seq #s đã xử lý điều này!
• người nhận phải chỉ định số seq của gói được ACKed
▪ sử dụng đồng hồ đếm ngược để ngắt sau khoảng thời gian
"hợp lý"
timeout

Transport Layer: 3-57


người gửi rdt3.0
rdt_send(data)
sndpkt = make_pkt(0, data, checksum)
udt_send(sndpkt)
start_timer

Wait for Wait


call 0 from for
above ACK0
rdt_rcv(rcvpkt)
&& notcorrupt(rcvpkt) rdt_rcv(rcvpkt)
&& isACK(rcvpkt,1) && notcorrupt(rcvpkt)
stop_timer && isACK(rcvpkt,0)
stop_timer
Wait Wait for
for call 1 from
ACK1 above

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

Transport Layer: 3-58


người gửi rdt3.0
rdt_send(data)
rdt_rcv(rcvpkt) &&
sndpkt = make_pkt(0, data, checksum) ( corrupt(rcvpkt) ||
udt_send(sndpkt) isACK(rcvpkt,1) )
rdt_rcv(rcvpkt) start_timer L
L Wait for Wait
for timeout
call 0 from
ACK0 udt_send(sndpkt)
above
start_timer
rdt_rcv(rcvpkt)
&& notcorrupt(rcvpkt) rdt_rcv(rcvpkt)
&& isACK(rcvpkt,1) && notcorrupt(rcvpkt)
stop_timer && isACK(rcvpkt,0)
stop_timer
Wait Wait for
timeout for call 1 from
udt_send(sndpkt) ACK1 above
start_timer rdt_rcv(rcvpkt)
rdt_send(data) L
rdt_rcv(rcvpkt) &&
( corrupt(rcvpkt) || sndpkt = make_pkt(1, data, checksum)
isACK(rcvpkt,0) ) udt_send(sndpkt)
start_timer
L

Transport Layer: 3-59


rdt3.0 đang hoạt động
người gửi người nhận người gửi người nhận
send pkt0 pkt0 send pkt0 pkt0
rcv pkt0 rcv pkt0
ack0 send ack0 ack0 send ack0
rcv ack0 rcv ack0
send pkt1 pkt1 send pkt1 pkt1
rcv pkt1 X
loss
ack1 send ack1
rcv ack1
send pkt0 pkt0
rcv pkt0 timeout
ack0 send ack0 resend pkt1 pkt1
rcv pkt1
ack1 send ack1
rcv ack1
send pkt0 pkt0
(a) không mất mát rcv pkt0
ack0 send ack0

(b) mất gói tin


Transport Layer: 3-60
rdt3.0 đang hoạt động
người gửi người nhận
người gửi người nhận send pkt0
pkt0
rcv pkt0
send pkt0 pkt0 send ack0
ack0
rcv pkt0 rcv ack0
ack0 send ack0 send pkt1 pkt1
rcv ack0 rcv pkt1
send pkt1 pkt1 send ack1
rcv pkt1 ack1
ack1 send ack1
X timeout
loss resend pkt1
timeout
pkt1 rcv pkt1
resend pkt1 pkt1
rcv pkt1 rcv ack1 (detect duplicate)
send pkt0 pkt0 send ack1
(detect duplicate)
ack1 send ack1 ack1 rcv pkt0
rcv ack1 rcv ack1 send ack0
send pkt0 pkt0 (ignore) ack0
rcv pkt0
ack0 send ack0 pkt1

(c) Mất ACK (d) hết thời gian sớm / ACK chậm trễ
Transport Layer: 3-61
Hiệu suất của rdt3.0 (dừng và chờ)
▪ U sender: sử dụng – một phần thời gian người gửi bận gửi

▪ ví dụ: liên kết 1 Gbps, hỗ trợ 15 ms. trì hoãn, gói 8000 bit
• thời gian để truyền gói tin vào kênh:
L 8000 bits
Dtrans = R = 9 = 8 microsecs
10 bits/sec

Transport Layer: 3-62


rdt3.0: hoạt động dừng và chờ
người gửi người nhận
bit gói đầu tiên được truyền, t = 0

bit gói đầu tiên đến


RTT bit gói cuối cùng đến, gửi ACK

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


gói, t = RTT + L / R

Transport Layer: 3-63


rdt3.0: hoạt động dừng và chờ
người gửi người nhận

L/R L/R
Usender=
RTT + L / R
.008 RTT
=
30.008
= 0.00027

▪ Hiệu suất của giao thức rdt 3.0 rất tệ!


▪ Giao thức giới hạn hiệu suất của cơ sở hạ tầng bên dưới (kênh)

Transport Layer: 3-64


rdt3.0: hoạt động của giao thức pipelined
pipelining: người gửi cho phép nhiều gói tin "đang bay", chưa được thừa
nhận
• dãy số thứ tự phải được tăng lên
• đệm ở người gửi và / hoặc người nhận

Transport Layer: 3-65


Pipelining: tăng hiệu quả sử dụng
người gửi người nhận
bit gói đầu tiên được truyền, t =
bit cuối cùng được truyền, t = L / R 0

bit gói đầu tiên đến


RTT bit gói cuối cùng đến, gửi ACK
bit cuối cùng của gói thứ 2 đến, gửi ACK
bit cuối cùng của gói thứ 3 đến, gửi ACK
ACK đến, gửi tiếp theo
gói, t = RTT + L / R
Tăng pipelining 3 gói
sử dụng theo hệ số 3!

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

Transport Layer: 3-66


Go-Back-N: người gửi
▪ người gửi: "cửa sổ" lên đến N, pkts được truyền liên tiếp nhưng chưa
được đóng gói
• k-bit seq # trong tiêu đề pkt

▪ ACK tích lũy : ACK (n): ACK tất cả các gói tối đa, bao gồm seq # n
• khi nhận ACK (n): chuyển cửa sổ về phía trước để bắt đầu lúc n+1
▪ chẹn giờ cho gói trên chuyến bay cũ nhất
▪ timeout (n): truyền lại gói n và tất cả các gói seq # cao hơn trong cửa sổ
Transport Layer: 3-67
Go-Back-N: bộ thu
▪ Chỉ ACK: luôn gửi ACK cho gói được nhận chính xác cho đến nay, với
mức cao nhất theo thứ tự seq #
• có thể tạo ACK trùng lặp
• chỉ cần nhớ rcv_base
▪ khi nhận được gói không đúng thứ tự:
• có thể loại bỏ (không đệm) hoặc đệm: một quyết định triển khai
• re-ACK pkt với seq # theo thứ tự cao nhất

Chế độ xem máy thu của không gian số thứ tự:


đã nhận và ACKed

… … Out-of-order: đã nhận nhưng không ACKed

rcv_base
Không nhận
Transport Layer: 3-68
Go-Back-N đang hoạt động
cửa sổ người gửi (N = 4) người gửi người nhận
012345678 gửi pkt0
012345678 gửi pkt1
012345678 gửi pkt2 nhận pkt0, gửi ack0
012345678 gửi pkt3 Xloss nhận pkt1, gửi ack1
(chờ đợi)
nhận pkt3, loại bỏ,
012345678 rcv ack0, gửi pkt4 (lại) gửi ack1
012345678 rcv ack1, gửi pkt5 nhận pkt4, loại bỏ,
(lại) gửi ack1
bỏ qua ACK trùng lặp nhận pkt5, loại bỏ,
(lại) gửi ack1
pkt 2 timeout
012345678 gửi pkt2
012345678 gửi pkt3
012345678 gửi pkt4 rcv pkt2, cung cấp, gửi ack2
012345678 gửi pkt5 rcv pkt3, cung cấp, gửi ack3
rcv pkt4, cung cấp, gửi ack4
rcv pkt5, cung cấp, gửi ack5

Transport Layer: 3-69


Lặp lại có chọn lọc
▪người nhận xác nhận riêng tất cả các gói đã nhận chính xác
• đệm các gói, nếu cần, để cuối cùng phân phối theo thứ tự đến lớp trên
▪người gửi hết thời gian chờ / truyền lại riêng lẻ cho các gói
chưa được đóng gói
• người gửi duy trì bộ đếm thời gian cho mỗi pkt chưa được đóng gói
▪sender window
▪cửa sổ người gửi
• N số seq liên tiếp
• giới hạn số lượng gói tin đã gửi, chưa được đóng gói

Transport Layer: 3-70


Lặp lại có chọn lọc: cửa sổ người gửi, người nhận

Transport Layer: 3-71


Lặp lại có chọn lọc: người gửi và người nhận
người gửi người nhận
dữ liệu từ trên: packet n in [rcvbase, rcvbase+N-1]
▪ nếu seq # có sẵn tiếp theo trong cửa ▪ gửi ACK (n)
sổ, hãy gửi gói tin ▪ out-of-order: bộ đệm
timeout (n): ▪ theo thứ tự: cung cấp (cũng phân
▪ gửi lại gói n, hẹn giờ khởi động lại phối các gói có bộ đệm, theo thứ
tự), cửa sổ chuyển tiếp đến gói tiếp
ACK(n) trong [sendbase, sendbase + N]: theo chưa nhận được
▪ đánh dấu gói n là đã nhận packet n in [rcvbase-N,rcvbase-1]
▪ nếu n gói nhỏ nhất chưa được đóng ▪ ACK(n)
gói, cơ sở cửa sổ nâng cao đến seq #
chưa được đóng gói tiếp theo otherwise:
▪ ignore

Transport Layer: 3-72


Lặp lại có chọn lọc trong hành động
cửa sổ người gửi (N = 4) người gửi người nhận
012345678 gửi pkt0
012345678 gửi pkt1
012345678 gửi pkt2 nhận pkt0, gửi ack0
012345678 gửi pkt3 Xloss nhận pkt1, gửi ack1
(chờ đợi)
nhận pkt3, buffer,
012345678 rcv ack0, gửi pkt4 gửi ack3
012345678 rcv ack1, gửi pkt5
nhận pkt4, buffer,
kỷ lục ack3 đến gửi ack4
nhận pkt5, buffer,
pkt 2 timeout gửi ack5
012345678 gửi pkt2
0 1 2 3 4 5 6 7 8(nhưng không phải 3,4,5)
012345678 rcv pkt2; deliver pkt2,
012345678 pkt3, pkt4, pkt5; send ack2

Q: điều gì sẽ xảy ra khi ack2 đến?

Transport Layer: 3-73


Lặp lại có chọn lọc: sender window
(after receipt)
receiver window
(after receipt)

một tình thế tiến thoái 0123012 pkt0


pkt1

lưỡng nan!
0123012 0123012
0123012 pkt2 0123012
0123012
pkt3
example: 0123012
X
0123012
▪ seq #s: 0, 1, 2, 3 (base 4 counting) pkt0 will accept packet
with seq number 0
▪ window size=3 (a) no problem

0123012 pkt0
0123012 pkt1 0123012
0123012 pkt2 X 0123012
X 0123012
X
timeout
retransmit pkt0
0123012 pkt0
will accept packet
with seq number 0
(b) oops!
Transport Layer: 3-74
Lặp lại có chọn lọc: cửa sổ người gửi
(sau khi nhận)
cửa sổ nhận
(sau khi nhận)

một tình thế tiến thoái 0123012 pkt0


pkt1

lưỡng nan!
0123012 0123012
0123012 pkt2 0123012
0123012
pkt3
example: 0123012
X
▪ người nhậnpkt0
0123012
▪ seq #s: 0, 1, 2, 3 (base 4 counting) không thể nhìn
sẽ chấp nhận gói
với seq số 0
▪ window size=3 (a) no phía
thấy problem
người
gửi
▪ hành vi của
người nhận
0giống
1 2 3 0 1hệt
2 nhau
pkt0
Q: mối quan hệ nào là cần thiết 0trong
1 2 3 0 1cả
2 hai
pkt1 0123012
0trường
1 2 3 0 1 2hợp!
pkt2 X
giữa kích thước chuỗi # và kích ▪ có gì đó (rất) sai! X
0123012
0123012
thước cửa sổ để tránh sự cố X
timeout
trong kịch bản (b)? retransmit pkt0
0123012 pkt0
sẽ chấp nhận gói
với seq số 0
(b) oops!
Transport Layer: 3-75
Chương 3: Lộ trình
▪ Dịch vụ tầng vận chuyển
▪ Ghép kênh và phân kênh
▪ Truyền tải không kết nối: UDP
▪ Nguyên tắc truyền dữ liệu đáng tin cậy
▪ Connection-oriented transport: TCP
▪ Giao thông hướng kết nối: TCP
• cấu trúc phân đoạn
• truyền dữ liệu đáng tin cậy
• Kiểm soát lưu lượng
• quản lý kết nối
▪ Nguyên tắc kiểm soát tắc nghẽn
▪ Kiểm soát tắc nghẽn TCP Transport Layer: 3-76
TCP: Tổng quát RFCs: 793,1122, 2018, 5681, 7323
▪ điểm đến điểm: ▪ ACK tích lũy
• một người gửi, một người
nhận ▪ pipelining:
• Kích thước cửa sổ đặt điều khiển
▪ byte hơi đáng tin cậy, theo luồng và tắc nghẽn TCP
thứ tự :
• không có “ranh giới tin nhắn" ▪ định hướng kết nối :
▪ dữ liệu song công : • bắt tay (trao đổi thông điệp điều
• luồng dữ liệu hai chiều trong khiển) khởi tạo trạng thái người
cùng một kết nối gửi, người nhận trước khi trao đổi
• MSS: kích thước phân đoạn tối dữ liệu
đa ▪ kiểm soát dòng chảy :
• người gửi sẽ không áp đảo người
nhận Transport Layer: 3-77
Cấu trúc phân đoạn TCP
32 bits

cổng nguồn # cổng đích # segment seq #: đếm


ACK: seq # của byte dự kiến byte dữ liệu vào
số thứ tự
tiếp theo; Một chút: đây là bytestream (không phải
số xác nhận
ACK
head not
phân đoạn!)
chiều dài (của tiêu đề len used C EUAP R SF cửa sổ nhận kiểm soát luồng:
TCP)
Tổng kiểm tra Internet checksum Urg data pointer người nhận # byte
sẵn sàng chấp nhận
tùy chọn (độ dài thay đổi)
C, E: thông báo tắc nghẽn
Tùy chọn TCP
ứng dụng dữ liệu được
RST, SYN, FIN: quản lý kết dữ liệu gửi bởi ứng
nối (chiều dài thay đổi) dụng vào TCP
socket

Transport Layer: 3-78


Số thứ tự TCP, ACK
phân đoạn gửi đi từ người gửi
Số thứ tự : source port # dest port #
sequence number
• luồng byte "số" byte đầu tiên acknowledgement number
rwnd
trong dữ liệu của phân đoạn checksum urg pointer

window size
Sự nhìn nhận : N

• seq # byte tiếp theo dự kiến


từ phía bên kia không gian số thứ tự người gửi

• ACK tích lũy gởi đã gửi, dùng được not


ACKed chưa ACKed nhưng
không
usable
(“in-flight”)
Q: cách người nhận xử lý các chưa được
gửi

phân đoạn không theo thứ tự phân đoạn gửi đi từ người nhận

• A: Thông số TCP không nói, -


source port # dest port #
sequence number

tùy thuộc vào người triển acknowledgement number


A rwnd
khai checksum urg pointer
Transport Layer: 3-79
Số thứ tự TCP, ACK
Máy chủ A Máy chủ B

Loại người dùng'C '


Seq=42, ACK=79, data = ‘C’
Máy chủ ACK nhận
được ‘C ’, lặp lại‘ C ’
Seq=79, ACK=43, data = ‘C’
máy chủ ACK nhận
được chữ ‘C’ được
lặp lại Seq=43, ACK=80

kịch bản telnet đơn giản


Transport Layer: 3-80
TCP khứ hồi thời gian, thời gian chờ
Q: làm thế nào để đặt giá trị Q: cách ước tính RTT?
thời gian chờ TCP? ▪ SampleRTT: thời gian đo được
▪ lâu hơn RTT, nhưng RTT thay từ khi truyền phân đoạn cho đến
đổi! khi nhận ACK
• bỏ qua truyền lại
▪ too short: hết thời gian sớm,
truyền lại không cần thiết ▪ SampleRTT sẽ thay đổi, muốn
RTT ước tính "mượt mà hơn”
▪ too long: phản ứng chậm với • trung bình một số phép đo gần đây,
mất phân đoạn không chỉ hiện tại SampleRTT

Transport Layer: 3-81


TCP khứ hồi thời gian, thời gian chờ
EstimatedRTT = (1- )*EstimatedRTT + *SampleRTT
▪ exponential weighted moving average (EWMA)
▪ influence of past sample decreases exponentially fast
RTT: gaia.cs.umass.edu to fantasia.eurecom.fr
▪ typical value:  = 0.125 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)
time (seconds)
SampleRTT Estimated RTT
Transport Layer: 3-82
TCP khứ hồi thời gian, thời gian chờ
▪ khoảng thời gian chờ : EstimatedRTT cộng với “biên độ an toàn”
• biến thể lớn trong EstimatedRTT: muốn có một biên độ an toàn lớn hơn

TimeoutInterval = EstimatedRTT + 4*DevRTT

estimated RTT “safety margin”

▪ DevRTT: EWMA of SampleRTT deviation from EstimatedRTT:


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

* Check out the online interactive exercises for more examples: http://gaia.cs.umass.edu/kurose_ross/interactive/
Transport Layer: 3-83
Người gửi TCP (đơn giản hóa)
sự kiện: dữ liệu nhận được từ ứng sự kiện: hết giờ
dụng
▪ tạo phân đoạn với seq # ▪ truyền lại phân đoạn
▪ seq # là số luồng byte của byte
gây ra thời gian chờ
dữ liệu đầu tiên trong phân ▪ hẹn giờ khởi động lại
đoạn
sự kiện: ACK nhận được
▪ bắt đầu hẹn giờ nếu chưa chạy
▪ nếu ACK thừa nhận các phân
▪ nghĩ về bộ đếm thời gian như đoạn chưa được đóng gói
đối với phân đoạn chưa được trước đó
đóng gói cũ nhất
• cập nhật những gì được biết là
• khoảng thời gian hết hạn : ACKed
TimeOutInterval
• bắt đầu hẹn giờ nếu vẫn còn
phân đoạn chưa được đóng gói
Transport Layer: 3-84
Bộ thu TCP: Thế hệ ACK [RFC 5681]
Sự kiện tại người nhận Hành động của người 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ứ tự
khác có ACK đang treo

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

Transport Layer: 3-85


TCP: kịch bản truyền lại
Máy chủ A Máy chủ B Máy chủ A Máy chủ 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 gửi tích lũy
SendBase=120 ACK cho 120
ACK=100
ACK=120

SendBase=120

kịch bản ACK bị mất hết thời gian sớm

Transport Layer: 3-86


TCP: kịch bản truyền lại
Host A Host B

Seq=92, 8 bytes of data

Seq=100, 20 bytes of data


ACK=100
X
ACK=120

Seq=120, 15 bytes of data

ACK tích lũy bảo hiểm


cho ACK bị mất trước
đó
Transport Layer: 3-87
Truyền lại nhanh TCP
Máy chủ A Máy chủ B
Truyền lại nhanh TCP
nếu người gửi nhận được 3 ACK
bổ sung cho cùng một dữ liệu
(“ba ACK trùng lặp”), hãy gửi lại X
phân đoạn chưa được đóng gói
với seq nhỏ nhất #
▪ có khả năng là phân đoạn chưa

timeout
được đóng gói bị mất, vì vậy đừng
đợi thời gian chờ
Việc nhận ba ACK trùng lặp cho
Seq=100, 20 bytes of data
biết 3 phân đoạn nhận được
sau khi một phân đoạn bị thiếu
- phân đoạn bị mất có thể xảy
ra. Vì vậy, truyền lại!
Transport Layer: 3-88
Chương 3: Lộ trình
▪ Dịch vụ tầng vận chuyển
▪ Ghép kênh và phân kênh
▪ Truyền tải không kết nối: UDP
▪ Nguyên tắc truyền dữ liệu đáng tin
cậy
▪ Vận chuyển hướng kết nối: TCP
• cấu trúc phân đoạn
• truyền dữ liệu đáng tin cậy
• Kiểm soát lưu lượng
• quản lý kết nối
▪ Nguyên tắc kiểm soát tắc nghẽn
▪ Kiểm soát tắc nghẽn TCP
Transport Layer: 3-89
Kiểm soát luồng TCP
ứng dụng
Q: Điều gì xảy ra nếu lớp Ứng dụng xóa dữ liệu
quá trình
mạng cung cấp dữ liệu nhanh khỏi bộ đệm ổ cắm TCP
hơn lớp ứng dụng loại bỏ dữ Ổ cắm TCP
liệu khỏi bộ đệm ổ cắm? bộ đệm máy thu

TCP

Lớp mạng phân phối
tải trọng IP datagram
vào bộ đệm ổ cắm TCP
IP

từ người gửi

ngăn xếp giao thức người nhận

Transport Layer: 3-90


Kiểm soát luồng TCP
ứng dụng
Q: Điều gì xảy ra nếu lớp Ứng dụng xóa dữ liệu
quá trình
mạng cung cấp dữ liệu nhanh khỏi bộ đệm ổ cắm TCP
hơn lớp ứng dụng loại bỏ dữ Ổ cắm TCP
liệu khỏi bộ đệm ổ cắm? bộ đệm máy thu

TCP

Lớp mạng phân phối
tải trọng IP datagram
vào bộ đệm ổ cắm TCP
IP

từ người gửi

ngăn xếp giao thức người nhận

Transport Layer: 3-91


Kiểm soát luồng TCP
ứng dụng
Q: Điều gì xảy ra nếu lớp Ứng dụng xóa dữ liệu
quá trình
mạng cung cấp dữ liệu nhanh khỏi bộ đệm ổ cắm TCP
hơn lớp ứng dụng loại bỏ dữ Ổ cắm TCP
liệu khỏi bộ đệm ổ cắm? bộ đệm máy thu

TCP

cửa sổ nhận
kiểm soát luồng: người
nhận # byte sẵn sàng IP

chấp nhận

từ người gửi

ngăn xếp giao thức người nhận

Transport Layer: 3-92


Kiểm soát luồng TCP
ứng dụng
Q: Điều gì xảy ra nếu lớp Ứng dụng xóa dữ liệu
quá trình
mạng cung cấp dữ liệu nhanh khỏi bộ đệm ổ cắm TCP
hơn lớp ứng dụng loại bỏ dữ Ổ cắm TCP
liệu khỏi bộ đệm ổ cắm? bộ đệm máy thu

TCP

Kiểm soát lưu lượng
người nhận kiểm soát người gửi, vì vậy người
gửi sẽ không làm tràn bộ đệm của người nhận IP

bằng cách truyền quá nhiều, quá nhanh

từ người gửi

ngăn xếp giao thức người nhận

Transport Layer: 3-93


Kiểm soát luồng TCP
▪ Bộ thu TCP “quảng cáo” không gian
đệm trống trong rwnd trường trong quy trình nộp đơn
tiêu đề TCP
• RcvBuffer kích thước được đặt thông
qua các tùy chọn ổ cắm (mặc định điển RcvBuffer dữ liệu đệm
hình là 4096 bytes)
• nhiều hệ điều hành tự động điều chỉnh rwnd không gian đệm trống
RcvBuffer
▪ người gửi giới hạn số lượng dữ liệu Tải trọng phân đoạn TCP
chưa được đóng gói (“trong chuyến
bay”) nhận được rwnd Bộ đệm phía người nhận TCP
▪ đảm bảo bộ đệm nhận được sẽ không
bị tràn
Transport Layer: 3-94
Kiểm soát luồng TCP
kiểm soát luồng: người nhận # byte sẵn sàng
chấp nhận
▪ Bộ thu TCP “quảng cáo” không gian
đệm trống trong rwnd trường trong
tiêu đề TCP
• RcvBuffer kích thước được đặt thông cửa sổ nhận
qua các tùy chọn ổ cắm (mặc định điển
hình là 4096 bytes)
• nhiều hệ điều hành tự động điều chỉnh
RcvBuffer
▪ người gửi giới hạn số lượng dữ liệu
chưa được đóng gói (“trong chuyến
bay”) nhận được rwnd
▪ đảm bảo bộ đệm nhận được sẽ không
bị tràn Định dạng phân đoạn
TCP
Transport Layer: 3-95
Quản lý kết nối TCP
trước khi trao đổi dữ liệu, người gửi / người nhận "bắt tay":
▪ đồng ý thiết lập kết nối (mỗi người biết nhau sẵn sàng thiết lập kết nối)
▪ đồng ý về các thông số kết nối (ví dụ: bắt đầu seq #s)

ứng dụng ứng dụng

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 number"); welcomeSocket.accept();
Transport Layer: 3-96
Đồng ý thiết lập kết nối
Bắt tay 2 chiều:

Q: Bắt tay 2 chiều sẽ luôn hoạt


Let’s talk động trong mạng?
THÀNH LẬP
THÀNH LẬP
OK ▪ sự chậm trễ thay đổi
▪ tin nhắn đã truyền lại (ví dụ:
req_conn (x)) do mất tin nhắn
▪ sắp xếp lại tin nhắn
choose x
req_conn(x) ▪ không thể "nhìn thấy" phía bên
acc_conn(x)
THÀNH LẬP kia
THÀNH LẬP

Transport Layer: 3-97


Các tình huống bắt tay 2 chiều

chọn x
req_conn(x)
THÀNH LẬP
acc_conn(x)

THÀNH LẬP
data(x+1) Chấp nhận
dữ liệu (x + 1)
ACK(x+1)
connection
x completes

Không vấn đề gì!

Transport Layer: 3-98


Các tình huống bắt tay 2 chiều

choose x
req_conn(x)
THÀNH LẬP
retransmit acc_conn(x)
req_conn(x)

THÀNH LẬP
req_conn(x)

connection
client x completes server
terminates forgets x

THÀNH LẬP
acc_conn(x)
Vấn đề: kết nối nửa mở!
(không có khách hàng)
Transport Layer: 3-99
Các tình huống bắt tay 2 chiều
choose x
req_conn(x)
ESTAB
retransmit acc_conn(x)
req_conn(x)

ESTAB
data(x+1) accept
data(x+1)
retransmit
data(x+1)
connection
x completes server
client
terminates forgets x
req_conn(x)
ESTAB
data(x+1) accept
data(x+1)
Vấn đề: trùng lặp dữ liệu
Đã được chấp nhận!
Bắt tay 3 chiều TCP
Trạng thái máy chủ
serverSocket = socket(AF_INET,SOCK_STREAM)
Trạng thái khách hàng serverSocket.bind((‘’,serverPort))
serverSocket.listen(1)
clientSocket = socket(AF_INET, SOCK_STREAM) connectionSocket, addr = serverSocket.accept()
NGHE
clientSocket.connect((serverName,serverPort)) NGHE
choose init seq num, x
send TCP SYN msg
ĐỒNG BỘ SYNbit=1, Seq=x
chọn init seq num, y
gửi TCP SYNACK
msg, acking SYN SYN RCVD
SYNbit=1, Seq=y
ACKbit=1; ACKnum=x+1
đã nhận được SYNACK
THÀNH LẬP (x)
cho biết máy chủ đang
hoạt động; ACKbit=1, ACKnum=y+1
gửi ACK cho SYNACK;
phân đoạn này có thể đã nhận được
chứa ACK (y)
dữ liệu từ máy khách cho biết khách THÀNH LẬP
đến máy chủ hàng đang
hoạt động Transport Layer: 3-101
Giao thức bắt tay 3 chiều của con người

1. Vào belay?

2. Nằm yên.
3. Leo núi.

Transport Layer: 3-102


Đóng kết nối TCP
▪ máy khách, máy chủ đóng bên kết nối của họ
• gửi phân đoạn TCP với FIN bit = 1
▪ trả lời FIN đã nhận bằng ACK
• khi nhận FIN, ACK có thể được kết hợp với FIN riêng
▪ trao đổi FIN đồng thời có thể được xử lý

Transport Layer: 3-103


Chương 3: Lộ trình
▪ Dịch vụ tầng vận chuyển
▪ Ghép kênh và phân kênh
▪ Truyền tải không kết nối: UDP
▪ Nguyên tắc truyền dữ liệu đáng
tin cậy
▪ Vận chuyển hướng kết nối: TCP
▪ Nguyên tắc kiểm soát tắc nghẽn
▪ Kiểm soát tắc nghẽn TCP
▪ Sự phát triển của chức năng lớp
truyền tải
Transport Layer: 3-104
Nguyên tắc kiểm soát tắc nghẽn
Tắc nghẽn :
▪ một cách không chính thức: "quá nhiều nguồn gửi quá nhiều dữ liệu
quá nhanh để mạng xử lý"
▪ biểu hiện :
• chậm trễ lâu (xếp hàng trong bộ đệm bộ định tuyến)
• mất gói (tràn bộ đệm tại bộ định tuyến)
▪ khác với điều khiển dòng chảy!
congestion control:
▪ một vấn đề trong top 10! quá nhiều người gửi, gửi
quá nhanh

Kiểm soát lưu lượng:


một người gửi quá nhanh so
với một người nhận
Transport Layer: 3-105
Nguyên nhân / chi phí của tắc nghẽn: kịch bản 1
dữ liệu gốc : lin thông lượng: lout
Kịch bản đơn giản nhất :
Máy
▪ một bộ định tuyến, bộ đệm vô hạnchủ A
vô hạn chia sẻ
▪ công suất liên kết đầu vào, đầu ra: R bộ đệm liên kết
đầu ra
▪ hai dòng chảy
R R
▪ không cần truyền lại
Máy
chủ B
R/2
Q: Điều gì xảy ra khi
tỷ lệ đến lin lout

delay
throughput:

phương pháp
tiếp cận R/2? lin R/2 lin R/2
thông lượng tối đa cho mỗi kết sự chậm trễ lớn như tỷ lệ
nối: R / 2 đến lin tiếp cận năng lực
Transport Layer: 3-106
Nguyên nhân / chi phí của tắc nghẽn: kịch bản 2
▪ một bộ định tuyến, có hạn bộ đệm
▪ người gửi truyền lại gói bị mất, hết thời gian chờ
• đầu vào lớp ứng dụng = đầu ra lớp ứng dụng : lin = lout
• đầu vào lớp vận chuyển bao gồm truyền lại : l’in lin

Host A lin : original data


lout
l'in: original data, plus
retransmitted data

R R

Host B có hạn chia sẻ bộ


đệm liên kết đầu ra
Transport Layer: 3-107
Nguyên nhân / chi phí của tắc nghẽn: kịch bản 2
Lý tưởng hóa : kiến thức hoàn hảo R/2

▪ người gửi chỉ gửi khi có bộ đệm bộ định tuyến

thông lượng :lout


Máy chủ lin : dữ liệu gốc lin
lout R/2
A copy l'in: dữ liệu ban đầu,
cộng với dữ liệu đã
truyền lại
không gian đệm miễn phí!

R R

Máy chủ có hạn chia sẻ bộ


đệm liên kết đầu ra
B
Transport Layer: 3-108
Nguyên nhân / chi phí của tắc nghẽn: kịch bản 2
Lý tưởng hóa : một số kiến thức hoàn
hảo
▪ các gói có thể bị mất (rơi tại bộ định tuyến) do
bộ đệm đầy
▪ người gửi biết khi nào gói đã bị rơi: chỉ gửi lại
nếu gói được biết là bị mất

Máy chủ lin : dữ liệu gốc


A copy l'in: dữ liệu ban đầu,
cộng với dữ liệu đã
truyền lại

không có không gian đệm!

R R

Máy chủ có hạn chia sẻ bộ


đệm liên kết đầu ra
B
Transport Layer: 3-109
Nguyên nhân / chi phí của tắc nghẽn: kịch bản 2
Lý tưởng hóa : một số kiến thức hoàn R/2
hảo Dung lượng "lãng phí"
do truyền lại

thông lượng : lout


▪ các gói có thể bị mất (rơi tại bộ định tuyến) do
bộ đệm đầy khi gửi ở R / 2,
một số gói cần
▪ người gửi biết khi nào gói đã bị rơi: chỉ gửi lại truyền lại
nếu gói được biết là bị mất

Máy chủ lin : dữ liệu gốc lin R/2


A l'in: dữ liệu ban đầu,
cộng với dữ liệu đã
truyền lại

R R

Máy chủ có hạn chia sẻ bộ


đệm liên kết đầu ra
B
Transport Layer: 3-110
Nguyên nhân / chi phí của tắc nghẽn: kịch bản 2
Kịch bản thực tế : bản sao không cần R/2
thiết Dung lượng "lãng phí"

thông lượng :lout


do truyền lại không
▪ các gói có thể bị mất, bị rơi tại bộ định tuyến do cần thiết
bộ đệm đầy - yêu cầu truyền lại
khi gửi ở R / 2, một
▪ nhưng thời gian của người gửi có thể hết sớm, số gói được truyền
gửi two bản sao, cả hai trong số đó được giao lại, bao gồm cả cần
thiết và không cần
Máy chủ lin : dữ liệu gốc lin
thiết bản sao, được
phân phối!
R/2
A timeout
copy l'in: dữ liệu ban đầu,
cộng với dữ liệu đã
truyền lại

không gian đệm miễn phí!

R R

Máy chủ có hạn chia sẻ bộ


đệm liên kết đầu ra
B
Transport Layer: 3-111
Nguyên nhân / chi phí của tắc nghẽn: kịch bản 2
Kịch bản thực tế : bản sao không cần R/2
thiết Dung lượng "lãng phí"

thông lượng :lout


do truyền lại không
▪ các gói có thể bị mất, bị rơi tại bộ định tuyến do cần thiết
bộ đệm đầy - yêu cầu truyền lại
khi gửi ở R / 2, một
▪ nhưng thời gian của người gửi có thể hết sớm, số gói được truyền
gửi two bản sao, cả hai trong số đó được giao lại, bao gồm cả cần
thiết và không cần
thiết bản sao, được
lin R/2 phân phối!

“costs" của tắc nghẽn :


▪ nhiều công việc hơn (truyền lại) cho thông lượng bộ thu nhất định
▪ truyền lại không cần thiết: liên kết mang nhiều bản sao của một gói
• giảm thông lượng tối đa có thể đạt được

Transport Layer: 3-112


Nguyên nhân / chi phí của tắc nghẽn: kịch bản 3
▪ bốn người gửi Q: những gì xảy ra như lin và lin’ tăng ?
▪ con đường nhiều bước A: như màu đỏ lin’ tăng, tất cả các pkts màu xanh lam
▪ thời gian chờ / truyền lại đến ở hàng đợi phía trên đều bị loại bỏ, thông
lượng màu xanh lam g 0
Máy chủ A lin : dữ liệu gốc
Máy chủ B
l'in: dữ liệu ban đầu, cộng
với dữ liệu đã truyền lại
bộ đệm liên kết đầu ra
được chia sẻ hữu hạn

Host D
lout
Máy chủ C

Transport Layer: 3-113


Nguyên nhân / chi phí của tắc nghẽn: kịch bản 3
R/2
lout

lin’ R/2

một “cost" khác của tắc nghẽn :


▪ khi gói bị rớt, mọi dung lượng truyền tải ngược dòng và bộ
đệm được sử dụng cho gói đó đều bị lãng phí!

Transport Layer: 3-114


Nguyên nhân / chi phí của tắc nghẽn: thông tin chi
tiết R/2

▪ thông lượng không bao giờ có thể vượt

throughput: lout
quá công suất
lin R/2

▪ độ trễ tăng lên khi công suất tiếp cận

delay
R/2
lin R/2

lout
▪ mất mát / truyền lại làm giảm thông

throughput:
lượng hiệu quả
lin R/2 R/2

▪ các bản sao không cần thiết làm giảm thêm

throughput: lout
thông lượng hiệu quả
R/2
lin

▪ dung lượng truyền tải lên / bộ đệm bị lãng


R/2

lout
phí cho các gói bị mất ở hạ lưu
lin’ R/2

Transport Layer: 3-115


Các phương pháp tiếp cận kiểm soát tắc
nghẽn
Kiểm soát tắc nghẽn đầu cuối :
▪ không có phản hồi rõ ràng từ
mạng
▪ tắc nghẽn suy ra từ mất mát data data
ACKs
quan sát, chậm trễ ACKs

▪ phương pháp tiếp cận do TCP thực hiện

Transport Layer: 3-116


Các phương pháp tiếp cận kiểm soát tắc
nghẽn
Kiểm soát tắc nghẽn do mạng
hỗ trợ : thông tin tắc nghẽn rõ ràng

▪ bộ định tuyến cung cấp phản hồi


trực tiếp đến các máy chủ gửi / data data
ACKs
nhận với các luồng đi qua bộ ACKs

định tuyến bị tắc nghẽn


▪ có thể cho biết mức độ tắc nghẽn
hoặc đặt tốc độ gửi rõ ràng
▪ Giao thức TCP ECN, ATM, DECbit
Transport Layer: 3-117
Chương 3: Lộ trình
▪ Dịch vụ tầng vận chuyển
▪ Ghép kênh và phân kênh
▪ Truyền tải không kết nối: UDP
▪ Nguyên tắc truyền dữ liệu đáng
tin cậy
▪ Vận chuyển hướng kết nối: TCP
▪ Nguyên tắc kiểm soát tắc nghẽn
▪ Kiểm soát tắc nghẽn TCP
▪ Sự phát triển của chức năng lớp
truyền tải
Transport Layer: 3-118
Kiểm soát tắc nghẽn TCP: AIMD
▪ tiếp cận : người gửi có thể tăng tốc độ gửi cho đến khi xảy ra mất
gói (tắc nghẽn), sau đó giảm tốc độ gửi khi xảy ra sự kiện mất
Additive Increase Multiplicative Decrease
tăng tốc độ gửi lên 1 kích thước giảm một nửa tỷ lệ gửi ở mỗi
phân đoạn tối đa mỗi RTT cho sự kiện thua lỗ
đến khi phát hiện mất
TCP sender Sending rate

AIMD sawtooth
behavior: probing
for bandwidth

time Transport Layer: 3-119


TCP AIMD: khác
Giảm số nhân chi tiết: tốc độ gửi là
▪ Giảm một nửa tổn thất được phát hiện bằng ba ACK trùng lặp
(TCP Reno)
▪ Cắt xuống 1 MSS (kích thước phân đoạn tối đa) khi phát hiện
mất mát theo thời gian chờ (TCP Tahoe)
Tại sao AIMD?
▪ AIMD - một thuật toán phân tán, không đồng bộ - đã được
chứng minh :
• tối ưu hóa tốc độ dòng chảy tắc nghẽn trên toàn mạng!
• có đặc tính ổn định mong muốn

Transport Layer: 3-120


Kiểm soát tắc nghẽn TCP: chi tiết
không gian số thứ tự người gửi
cwnd Hành vi gửi TCP :
▪ đại khái : gửi cwnd byte,
đợi RTT cho ACKS, sau đó
gửi thêm byte
last byte
available but ~
cwnd
ACKed sent, but not- TCP rate ~ bytes/sec
yet ACKed not used RTT
(“in-flight”) last byte sent

▪ Người gửi TCP giới hạn truyền : LastByteSent- LastByteAcked < cwnd

▪ cwnd được điều chỉnh động để đáp ứng với tình trạng tắc
nghẽn mạng được quan sát (thực hiện kiểm soát tắc nghẽn
TCP)
Transport Layer: 3-121
TCP khởi động chậm
Máy chủ A Máy chủ B
▪ khi kết nối bắt đầu, tăng tỷ
lệ theo cấp số nhân cho
đến khi sự kiện mất mát

RTT
đầu tiên :
• ban đầu cwnd = 1 MSS
• gấp đôi cwnd every RTT
• thực hiện bằng cách tăng
dần cwnd cho mỗi ACK nhận
được
▪ tóm lược : tốc độ ban đầu time
chậm, nhưng tăng nhanh
theo cấp số nhân Transport Layer: 3-122
TCP: từ khởi động chậm đến tránh tắc nghẽn
Q: khi nào thì mức tăng theo cấp
số nhân nên chuyển sang tuyến
tính? X
A: khi cwnd đạt 1/2 giá trị trước
khi hết thời gian.

Thực hiện :
▪ Biến đổi ssthresh
▪ về sự kiện mất mát, ssthresh được
đặt thành 1/2 trong số cwnd ngay
trước sự kiện mất mát

* Xem các bài tập tương tác trực tuyến để biết thêm ví dụ: http://gaia.cs.umass.edu/kurose_ross/interactive/
Transport Layer: 3-123
Tóm tắt: Kiểm soát tắc nghẽn TCP
New
New ACK!
ACK! new ACK
duplicate ACK
dupACKcount++ new ACK .
cwnd = cwnd + MSS (MSS/cwnd)
dupACKcount = 0
cwnd = cwnd+MSS truyền (các) phân đoạn mới, nếu được phép
dupACKcount = 0
L truyền (các) phân đoạn mới, nếu được phép
cwnd = 1 MSS
ssthresh = 64 KB cwnd > ssthresh
dupACKcount = 0
chậm L tắc nghẽn
khởi đầu timeout sự tránh né
ssthresh = cwnd/2
cwnd = 1 MSS duplicate ACK
timeout dupACKcount = 0 dupACKcount++
ssthresh = cwnd/2 truyền lại đoạn bị thiếu
cwnd = 1 MSS
dupACKcount = 0
truyền lại đoạn bị thiếu New
timeout
ACK!
ssthresh = cwnd/2
cwnd = 1 New ACK
dupACKcount = 0
truyền lại đoạn bị 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 đoạn bị thiếu truyền lại đoạn bị thiếu
Nhanh
hồi phục
duplicate ACK
cwnd = cwnd + MSS
truyền (các) phân đoạn mới, nếu được phép

Transport Layer: 3-124


TCP CUBIC
▪ Có cách nào tốt hơn AIMD để "thăm dò" băng thông có thể sử dụng
không?
▪ Insight / trực giác :
• Wmax: tốc độ gửi mà tại đó mất tắc nghẽn được phát hiện
• trạng thái tắc nghẽn của liên kết nút cổ chai có lẽ (?) không thay đổi nhiều
• sau khi giảm tỷ lệ / cửa sổ giảm một nửa khi bị lỗ, ban đầu tăng lên Wmax nhanh
hơn, nhưng sau đó tiếp cận Wmax hơn chậm rãi

Wmax TCP cổ điển

TCP CUBIC - thông


Wmax/2 lượng cao hơn trong
ví dụ này

Transport Layer: 3-125


TCP CUBIC
▪ K: tại thời điểm khi kích thước cửa sổ TCP sẽ đạt đến Wmax
• K tự điều chỉnh được
▪ tăng W như một hàm của khối lập phương của khoảng cách giữa thời
gian hiện tại và K
• càng lớn càng tăng khi càng xa K
• tăng nhỏ hơn (thận trọng) khi gần K
▪ TCP CUBIC mặc Wmax
định trong Linux,
TCP Reno
TCP phổ biến nhất TCP CUBIC
cho các máy chủ TCP
gửi
Web phổ biến tỷ lệ

time
t0 t1 t2 t3 t4
Transport Layer: 3-126
TCP và "liên kết nút cổ chai" bị tắc nghẽn
▪ TCP (cổ điển, CUBIC) tăng tốc độ gửi của TCP cho đến khi xảy ra mất gói
ở đầu ra của một số bộ định tuyến: liên kết nút cổ chai

nguồn Nơi Đến


application application
TCP TCP
network network
link link
physical physical
hàng đợi gói hầu như
không bao giờ trống, đôi
khi tràn gói (mất)

liên kết tắc nghẽn (hầu như luôn bận rộn)


Transport Layer: 3-127
TCP và "liên kết nút cổ chai" bị tắc nghẽn
▪ TCP (cổ điển, CUBIC) tăng tốc độ gửi của TCP cho đến khi xảy ra mất gói
ở đầu ra của một số bộ định tuyến : liên kết nút cổ chai
▪ hiểu tắc nghẽn: hữu ích để tập trung vào liên kết tắc nghẽn tắc nghẽn

cái nhìn sâu sắc : tăng tốc độ gửi TCP sẽ


nguồn không tăng đầu cuối trong suốt với Nơi Đến
tắc nghẽn tắc nghẽn
application application
TCP TCP
network network
link link
physical physical

cái nhìn sâu sắc : tăng tốc


độ gửi TCP sẽ tăng RTT
đo được Mục tiêu : "Giữ cho ống đầu cuối vừa đầy, nhưng
RTT không đầy hơn"
Transport Layer: 3-128
Kiểm soát tắc nghẽn TCP dựa trên độ trễ
Giữ cho đường ống từ người gửi đến người nhận “vừa đủ, nhưng không đầy
hơn”: giữ cho liên kết tắc nghẽn luôn bận rộn khi truyền, nhưng tránh độ trễ / bộ
đệm cao # byte được gửi trong
khoảng thời gian RTT
đo lường cuối cùng
RTTđo lường thông lượng =
RTTđo lường
Phương pháp dựa trên độ trễ :
▪ RTTmin - RTT quan sát tối thiểu (đường dẫn chưa được kiểm tra)
▪ thông lượng không bị tắc nghẽn với cửa sổ tắc nghẽn cwnd Là cwnd/RTTmin
nếu thông lượng được đo "rất gần" với thông lượng chưa được kiểm
tra
tăng cwnd tuyến tính / * vì đường dẫn không bị tắc nghẽn * /
khác nếu thông lượng đo được "dưới xa" không bị kiểm tra trong suốt
giảm cwnd tuyến tính / * vì đường dẫn bị tắc nghẽn * / Transport Layer: 3-129
Kiểm soát tắc nghẽn TCP dựa trên độ trễ
▪ kiểm soát tắc nghẽn mà không gây ra / buộc mất mát
▪ tối đa hóa xuyên suốt (“giữ cho ống vừa đầy…”) trong khi giữ độ trễ thấp
(“… nhưng không đầy hơn”)
▪ một số TCP đã triển khai sử dụng cách tiếp cận dựa trên độ trễ
▪ BBR được triển khai trên mạng xương sống (nội bộ) của Google

Transport Layer: 3-130


Thông báo tắc nghẽn rõ ràng (ECN)
Các triển khai TCP thường thực hiện hỗ trợ mạng điều khiển tắc nghẽn :
▪ hai bit trong tiêu đề IP (trường ToS) được đánh dấu bằng bộ định tuyến mạng để chỉ ra sự
tắc nghẽn
• chính sách xác định đánh dấu do nhà điều hành mạng lựa chọn
▪ chỉ báo tắc nghẽn được đưa đến đích
▪ đích đặt bit ECE trên đoạn ACK để thông báo cho người gửi về tắc nghẽn
▪ liên quan đến cả IP (đánh dấu bit ECN tiêu đề IP) và TCP (tiêu đề TCP C, đánh dấu bit E)
nguồn TCP ACK segment
Nơi Đến
application application
TCP ECE=1
TCP
network network
link link
physical physical

ECN=10 ECN=11

IP datagram
Transport Layer: 3-131
TCP công bằng
Mục tiêu công bằng : nếu K phiên TCP chia sẻ cùng một liên kết
nút cổ chai của băng thông R, mỗi phiên phải có tốc độ trung
bình là R / K
Kết nối TCP 1

nút cổ chai
Kết nối TCP 2 bộ định tuyến
công suất R

Transport Layer: 3-132


Q: TCP có công bằng không?
Ví dụ: hai phiên TCP cạnh tranh :
▪ tăng cộng cho hệ số góc là 1, khi tăng trong suốt
▪ giảm số nhân làm giảm thông lượng theo tỷ lệ

R chia sẻ băng thông bằng nhau


TCP có công bằng không?
A: Có, theo các giả định lý
mất mát: giảm cửa sổ theo hệ số 2 tưởng hóa :
tránh tắc nghẽn: tăng phụ gia
mất mát: giảm cửa sổ theo hệ số 2 ▪ cùng một RTT
tránh tắc nghẽn: tăng phụ gia ▪ số phiên cố định chỉ để tránh
tắc nghẽn

Kết nối 1 thông lượng R


Transport Layer: 3-133
Công bằng: tất cả các ứng dụng mạng phải “công
bằng”?
Công bằng và UDP Công bằng, kết nối TCP song
▪ các ứng dụng đa phương tiện song
thường không sử dụng TCP ▪ ứng dụng có thể mở nhiều kết nối
• không muốn tốc độ điều chỉnh bởi
kiểm soát tắc nghẽn song song giữa hai máy chủ
▪ thay vào đó sử dụng UDP : ▪ trình duyệt web thực hiện điều
• gửi âm thanh / video với tốc độ này, ví dụ: liên kết tỷ lệ R với 9 kết
không đổi, chịu được mất gói nối hiện có :
▪ không có "cảnh sát Internet" • ứng dụng mới yêu cầu 1 TCP, nhận tỷ
chính sách sử dụng kiểm soát lệ R / 10
tắc nghẽn • ứng dụng mới yêu cầu 11 TCP, nhận R
/2

Transport Layer: 3-134


Lớp vận chuyển: lộ trình
▪ Dịch vụ tầng vận chuyển
▪ Ghép kênh và phân kênh
▪ Truyền tải không kết nối: UDP
▪ Nguyên tắc truyền dữ liệu đáng
tin cậy
▪ Vận chuyển hướng kết nối: TCP
▪ Nguyên tắc kiểm soát tắc nghẽn
▪ Kiểm soát tắc nghẽn TCP
▪ Sự phát triển của chức năng lớp
truyền tải
Transport Layer: 3-135
Phát triển chức năng của lớp truyền tải
▪ TCP, UDP: giao thức truyền tải chính trong 40 năm
▪ các "hương vị" khác nhau của TCP được phát triển, cho các tình huống
cụ thể:
Tình huống Thách thức
Ống dài, chất béo (truyền dữ Nhiều gói tin "đang bay"; mất mát làm tắt
liệu lớn) đường ống
Mạng không dây Mất do liên kết không dây ồn ào, tính di
động; TCP coi điều này là mất tắc nghẽn
Liên kết trì hoãn lâu RTT cực kỳ dài
Mạng trung tâm dữ liệu Độ trễ nhạy cảm
Luồng lưu lượng truy cập trong Luồng TCP "nền" có mức ưu tiên thấp
nền
▪ chuyển các chức năng của lớp truyền tải sang lớp ứng dụng, trên đầu UDP
• HTTP / 3: QUIC
Transport Layer: 3-136
QUIC: Kết nối Internet UDP nhanh
▪ giao thức lớp ứng dụng, trên cùng UDP
• tăng hiệu suất của HTTP
• được triển khai trên nhiều máy chủ, ứng dụng của Google (Chrome,
ứng dụng YouTube dành cho thiết bị di động)

HTTP/2 HTTP/2 (slimmed)


Ứng dụng HTTP/3
TLS QUIC

Vận chuyển TCP UDP

Mạng lưới IP IP

HTTP / 2 qua TCP HTTP/2 over QUIC over UDP

Transport Layer: 3-137


QUIC: Kết nối Internet UDP nhanh
áp dụng các phương pháp tiếp cận mà chúng tôi đã nghiên cứu trong
chương này để thiết lập kết nối, kiểm soát lỗi, kiểm soát tắc nghẽn

• kiểm soát lỗi và tắc nghẽn : “Người đọc quen thuộc với tính năng phát
hiện mất mát và kiểm soát tắc nghẽn của TCP sẽ tìm thấy các thuật toán
song song với các thuật toán TCP nổi tiếng ở đây.” [từ đặc điểm kỹ thuật QUIC]
• thiết lập kết nối : độ tin cậy, kiểm soát tắc nghẽn, xác thực, mã hóa,
trạng thái được thiết lập trong một RTT

▪ nhiều “luồng” cấp ứng dụng được ghép qua một kết nối QUIC
• truyền dữ liệu đáng tin cậy riêng biệt, bảo mật
• kiểm soát tắc nghẽn chung

Transport Layer: 3-138


QUIC: Thiết lập kết nối

Bắt tay TCP


(lớp vận chuyển) Bắt tay QUIC

data
Bắt tay TLS
(Bảo vệ)
data

TCP (độ tin cậy, trạng thái kiểm soát QUIC: độ tin cậy, kiểm soát tắc
tắc nghẽn) + TLS (xác thực, trạng thái nghẽn, xác thực, trạng thái tiền điện
tiền điện tử) tử
▪ 2 cái bắt tay nối tiếp 1 cái bắt tay
Transport Layer: 3-139
QUIC: luồng: song song, không chặn HOL
HTTP HTTP
ĐƯỢC GET HTTP
GET
ứng dụng

HTTP HTTP
ĐƯỢC GET
HTTP
ĐƯỢC QUIC QUIC QUIC QUIC QUIC QUIC
encrypt encrypt encrypt encrypt encrypt encrypt
QUIC QUIC QUIC QUIC QUIC QUIC
TLS mã hóa TLS mã hóa RDT RDT RDT RDT
error!
RDT RDT

QUIC Cong. Cont. QUIC Cong. Cont.


vận chuyển

TCP RDT TCP


error! RDT

TCP Cong. Contr. TCP Cong. Contr. UDP UDP

(a) HTTP 1.1 (b) HTTP/2 with QUIC: no HOL blocking


Transport Layer: 3-140
Chương 3: tóm tắt
▪ các nguyên tắc đằng sau các Tiếp theo :
dịch vụ lớp vận chuyển : ▪ rời khỏi “rìa” mạng (ứng
• ghép kênh, phân kênh dụng, các lớp truyền tải)
• truyền dữ liệu đáng tin cậy
▪ vào mạng “core"
• Kiểm soát lưu lượng
• điều khiển tắc nghẽn ▪ hai chương lớp mạng:
• mặt phẳng dữ liệu
▪ khởi tạo, triển khai trên
• máy bay điều khiển
Internet
• UDP
• TCP

Transport Layer: 3-141


Trang trình bày Chương 3 bổ sung

Transport Layer: 3-142


Go-Back-N: FSM mở rộng cho người gửi
rdt_send(data)
if (nextseqnum < base+N) {
sndpkt[nextseqnum] = make_pkt(nextseqnum,data,chksum)
udt_send(sndpkt[nextseqnum])
if (base == nextseqnum)
start_timer
nextseqnum++
}
L else
refuse_data(data)
base=1
nextseqnum=1
timeout
start_timer
Wait udt_send(sndpkt[base])
rdt_rcv(rcvpkt) udt_send(sndpkt[base+1])
&& corrupt(rcvpkt) …
udt_send(sndpkt[nextseqnum-1])
rdt_rcv(rcvpkt) &&
notcorrupt(rcvpkt)
base = getacknum(rcvpkt)+1
If (base == nextseqnum)
stop_timer
else
start_timer
Transport Layer: 3-143
Go-Back-N: FSM mở rộng bộ thu
any other event
udt_send(sndpkt) rdt_rcv(rcvpkt)
&& notcorrupt(rcvpkt)
L && hasseqnum(rcvpkt,expectedseqnum)
expectedseqnum=1 Wait extract(rcvpkt,data)
sndpkt = deliver_data(data)
make_pkt(expectedseqnum,ACK,chksum) sndpkt = make_pkt(expectedseqnum,ACK,chksum)
udt_send(sndpkt)
expectedseqnum++

Chỉ ACK: luôn gửi ACK cho gói được nhận đúng với mức cao nhất
theo thứ tự seq #
• có thể tạo ACK trùng lặp
• chỉ cần nhớ expectedseqnum
▪ gói không theo thứ tự :
• loại bỏ (không đệm): không có bộ đệm người nhận!
• re-ACK pkt với seq theo thứ tự cao nhất #
Transport Layer: 3-144
Người gửi TCP (đơn giản hóa)
data received from application above
create segment, seq. #: NextSeqNum
pass segment to IP (i.e., “send”)
NextSeqNum = NextSeqNum + length(data)
if (timer currently not running)
L start timer
NextSeqNum = InitialSeqNum wait
SendBase = InitialSeqNum for
event timeout
retransmit not-yet-acked segment
with smallest seq. #
start timer
ACK received, with ACK field value y
if (y > SendBase) {
SendBase = y
/* SendBase–1: last cumulatively ACKed byte */
if (there are currently not-yet-acked segments)
start timer
else stop timer
}
Transport Layer: 3-145
Bắt tay 3 chiều TCP FSM
closed
Socket connectionSocket =
welcomeSocket.accept();
L Socket clientSocket =
newSocket("hostname","port number");
SYN(x)
SYNACK(seq=y,ACKnum=x+1) SYN(seq=x)
create new socket for communication
back to client
listen

SYN
SYN sent
rcvd
SYNACK(seq=y,ACKnum=x+1)
ESTAB
ACK(ACKnum=y+1) ACK(ACKnum=y+1)
L

Transport Layer: 3-146


Đóng kết nối TCP
trạng thái khách hàng trạng thái máy chủ
ESTAB ESTAB
clientSocket.close()
FIN_WAIT_1 không thể dài hơn FINbit=1, seq=x
gửi nhưng có thể
nhận dữ liệu CLOSE_WAIT
ACKbit=1; ACKnum=x+1
can still
FIN_WAIT_2 đợi máy chủ send data
đóng

LAST_ACK
FINbit=1, seq=y
TIMED_WAIT can no longer
send data
ACKbit=1; ACKnum=y+1
thời gian chờ đợi
cho tối đa 2 * CLOSED
thời gian tồn tại
của phân đoạn

CLOSED

Transport Layer: 3-147


Thông lượng TCP
▪ trung bình Thông lượng TCP dưới dạng chức năng của kích thước cửa
sổ, RTT?
• bỏ qua khởi động chậm, giả sử luôn có dữ liệu để gửi
▪ W: kích thước cửa sổ (đo bằng byte) nơi xảy ra mất mát
• avg. window size (# in-flight bytes) is ¾ W
• avg. thruput is 3/4W per RTT
3 W
avg TCP thruput = bytes/sec
4 RTT
W

W/2
TCP qua "đường ống dài, béo"
▪ ví dụ: phân đoạn 1500 byte, RTT 100ms, muốn thông lượng 10
Gbps
▪ yêu cầu W = 83.333 đoạn trong chuyến bay
▪ thông lượng về xác suất mất đoạn, L [Mathis 1997]:
1.22 . MSS
TCP throughput =
RTT L

➜ để đạt được thông lượng 10 Gbps, cần tỷ lệ mất mát L = 2·10-10


– một tỷ lệ thất thoát rất nhỏ!
▪ các phiên bản của TCP cho các kịch bản tốc độ cao, dài

Transport Layer: 3-149


Chương 4
tầng Network

A note on the use of these ppt slides:


We’re making these slides freely available to all (faculty, students, readers). Computer
They’re in PowerPoint form so you see the animations; and can add, modify,
and delete slides (including this one) and slide content to suit your needs. Networking: A Top
They obviously represent a lot of work on our part. In return for use, we only
ask the following: Down Approach
❖ If you use these slides (e.g., in a class) that you mention their source
(after all, we’d like people to use our book!)
6th edition
❖ If you post any slides on a www site, that you note that they are adapted Jim Kurose, Keith Ross
from (or perhaps identical to) our slides, and note our copyright of this
material.
Addison-Wesley
March 2012
Thanks and enjoy! JFK/KWR

All material copyright 1996-2012


J.F Kurose and K.W. Ross, All Rights Reserved

Tầng Network 4-1


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

Tầng Network 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

Tầng Network 4-3


Tầng Network
Segment của tầng
application
❖ transport
network

transport từ host gửi đến data link


physical

host nhận
network network
data link data link
network
physical physical

Bên phía gửi sẽ đóng gói


data link

❖ physical network network

(encapsulate) các segment


data link data link
physical physical

vào trong các datagram network


data link
network
data link

Bên phía nhận, chuyển các physical physical


❖ network
data link

segment lên tầng transport physical


application

Các giao thức tầng network


network transport
data link
❖ physical
network network
data link

trong mọi host, mọi router


network data link
data link physical physical
physical

❖ router sẽ xem xét các


trường của header trong
tất cả các IP datagram đi
qua nó Tầng Network 4-4
2 chức năng chính của tầng network
❖ forwarding: di chuyển Tương tự:
các packet từ đầu vào
đến đầu ra thích hợp ❖ routing: tiến trình lặp
của router kế hoạch cho chuyến
đi của packet từ
❖ routing: xác định nguồn tới đích
đường đi cho các gói
từ nguồn đến đích. ❖ forwarding: tiến trình
vận chuyển qua 1 giao
▪ Các thuật toán định điểm
tuyến

Tầng Network 4-5


Tác động qua lại giữa routing và forwarding

Thuật toán routing Thuật toán routing xác định đường


đi của gói giữa 2 đầu cuối
thông qua network
local forwarding table
header value output link
Bảng forwarding xác định việc
0100 3 chuyển gói bên trong một router
0101 2
0111 2
1001 1

Giá trị
trong header
của packet đến
0111 1

3 2

Tầng Network 4-6


Thiết lập kết nối
❖ Chức năng qua trọ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ển, 2 host đầu
cuối và router trung gian (intervening routers)
thiết lặp kết nối ảo
▪ Các router cũng tham gia
❖ Dịch vụ kết nối tầng transport so với tầng
network :
▪ network: giữa 2 hosts (cũng có thể 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

Tầng Network 4-7


Mô hình dịch vụ Network
Hỏi: mô hình dịch vụ nào cho cho cho “kênh”
truyền các datagram từ bên gửi đế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ồn các
biệt: datagram:
❖ Giao nhận bảo đảm ❖ Giao nhận datagram
❖ Giao nhận bảo đảm với theo thứ tự
độ trễ < 40ms ❖ Băng thông được bảo
đảm tối thiểu cho luồng
❖ Hạn chế các thay đổi
trong khoảng trống
giữa các packet

Tầng Network 4-8


Các mô hình dịch vụ tầng Network:
Bảo đảm?
Kiến trúc Mô hình Phản hồi
Network dịch vụ Băng thông 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ó có Không
không đổi tắt nghẽn
ATM VBR Tốc độ có có có Không
bảo đảm tắt nghẽn
ATM ABR Tốc độ no có không có
bảo đả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

Tầng Network 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ụ: từ host này đến host kiaost-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 Tầng Network 4-11
Các mạch ảo (Virtual
circuits)
“đường đi từ nguồi tới đích tương tự như
mạng điện thoại (telephone circuit)”
▪ Hiệu quả
▪ Các hoạt động của mạng dọc theo đường đi từ
nguồn tới đích
❖ 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ỗi packet mang định dạng của kết nối ảo (VC
identifier) (không phải là địa chỉ của host đích)
❖ Mỗi router trên đường đi từ nguồn tới đích duy
trì trạng thái cho mỗi kết nối mà gói đi qua.
❖ Đường link, các tài nguyên router (băng thông, bộ
nhớ đẹm) có thể được cấp phát cho kết nối ảo (các
tài nguyên dành riêng= dịch vụ có thể dự đoán
trước) Tầng Network 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 đi (path) từ nguồn tới đích
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 đi
3. Các mục trong các bảng forwarding ở trong các
router dọc theo đường đi
❖ packet thuộc về kết nối ảo mang số hiệu
(chứ không phải là điểm đến)
❖ Số hiệu của kết nối bả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

Tầng Network 4-13


Bảng forwarding của kết nối ảo
12 22 32

1 3
2
VC number

Bảng forwarding trong router number


interface

ở góc trái trên cùng:


số hiệu của số hiệu của
Cổng vào kết nối ảo vào Cổng ra kết nối ảo ra

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!

Tầng Network 4-14


Các mạch ảo: các giao thức gửi tín
hiệu
❖ Được dùng để thiết lập, duy trì kết nối ảo
❖ Được dùng trong ATM, frame-relay, X.25
❖ Không được sử dụng trong Internet ngày
nay

application
5. Bắt đầu dòng dữ liệu 6. Nhận dữ liệu application
transport transport
network 4. Cuộc gọi được kết nố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ọi đến
data link
physical physical

Tầng Network 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ữa 2 điểm cuối
▪ Không có khái niệm về mức network của “kết nối”
❖ Các packet được chuyển dùng địa chỉ của host
đích
application application
transport transport
network 1. Gởi các datagram 2. Nhận datagram network
data link data link
physical physical

Tầng Network 4-16


Bảng Datagram forwarding
4 tỉ địa chỉ IP, vì liệt
Thuật toán routing kê ra 1 dãy các đị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

Địa chỉ IP đích trong


header của packet đến
1
3 2

Tầng Network 4-17


Bảng Datagram forwarding

Dãy địa chỉ đích 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ếu các dãy địa chỉ này


không được chia hợp lý? Tầng Network 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
table cho địa chỉ đích, dùng prefix dài nhất
của địa chỉ cái mà trùng với địa chỉ đích.

Link interface
Dãy địa chỉ đích
0
11001000 00010111 00010*** *********
1
11001000 00010111 00011000 *********
2
11001000 00010111 00011*** *********
3
otherwise

Ví dụ:
DA: 11001000 00010111 00010110 10100001 Interface nào?
DA: 11001000 00010111 00011000 10101010 Interface nào?
Tầng Network 4-19
Mạng datagram hoặc mạch ảo:
tại sao?
Internet (datagram) ATM (mạch ảo)
❖ Dữ liệu trao đổi giữa các ❖ Được phát triển từ hệ
máy tính thống điện thoại
▪ Dịch vụ “mềm dẻo, không ❖ Đàm thoại của con
định thì chặt chẽ. người:
▪ Định thì chặt chẽ, yêu
❖ Nhiều kiểu link cầu về độ tin cậy
▪ Các đặc tính khác nhau ▪ Cần cho các dịch vụ bảo
▪ Khó đồng nhất dịch vụ đảm
❖ Các hệ thống đầu cuối ❖ Các hệ thống đầu cuối
“thông minh” (các máy “ít thông minh”
▪ Điện thoại
tính) ▪ Bên trong mạng phức
▪ Có thể thích ứng, điều tạp
khiển và sửa lỗi
▪ Mạng bên trong đơn
giản, phức tạp tại “mạng
bên ngoài” Tầng Network 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

Tầng Network 4-21


Tổng quan kiến trúc Router
2 chức năng 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


Tầng Network 4-22
Các chức năng của cổng Input
lookup,
link forwarding
line layer switch
termination protocol fabric
(receive)
queueing

Tầng physical :
Tiếp nhận mức bit
decentralized switching:
Tầng data link:
❖ Với đích của datagram biết trước., tìm
Như là Ethernet
output port (cổng ra) bằng cách dùng
Xem chương 5
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
“tốc độ dòng” (‘line speed’)
❖ Xếp hàng: nếu datagram đến nhanh hơn
tốc độ chuyển tiếp bên trong switch
Tầng Network 4-23
Switching fabrics
❖ Truyền packet từ bộ nhớ đềm đầu vào đến bộ
nhớ đệm đầu ra thích hợp
❖ Tốc độ switching: tốc độ mà các packet có thể
được truyền từ đầu vào (inputs) đến đầu ra
(outputs)
▪ Thường được đo như nhiều tốc độ dòng của đầu vào/đầu ra
▪ N inputs: switching rate N times line rate desirable
❖ 3 kiểu switching fabrics
memory

memory bus crossbar

Tầng Network 4-24


Switching thông qua bộ nhớ (memory)
Các router thế hệ đầu tiên:
❖ Các máy tính cổ điển với switching dưới sự điều
khiển của CPU
❖ packet được sao chép đến bộ nhớ của hệ thống
❖ Tốc độ bị giới hạn bởi băng thông của bộ nhớ (2 bus
qua mỗi datagram)

input output
port memory port
(như (như
Ethernet) Ethernet)

Bus hệ thống

Tầng Network 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 băng
thông của bus bus
❖ 32 Gbps bus, Cisco 5600: tốc
độ đủ cho truy cập và các
enterprise router

Tầng Network 4-26


Switching thông qua interconnection
network
❖ Vượt qua các giới hạn của băng
thông bus
❖ Đa 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ộ đa xử lý
❖ Thiết kế được nâng cao: phân
mảnh datagram vào các ô có độ
crossbar

dài cố định, chuyển các ô thông


qua fabric.
❖ Cisco 12000: chuyển 60 Gbps
thông qua interconnection
network
Tầng 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

Tầng Network 4-28


Sắp hàng tại cổng ra

switch
switch
fabric
fabric

at t, các packet nhiều hơn one packet time later


từ đầu vào đến đầu ra

❖ Đệm khi tốc độ đế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ớ đệm tại
cổng ra bị tràn (overflow)!
Tầng Network 4-29
Bao nhiêu đệm?
❖ RFC 3439 quy tắc ngón tay cái: đệm trung
bình bằng với thời gian RTT “điển hình”
(250 msec) nhân với dung lượng đường link
C
▪ Ví dụ C = 10 Gpbs link: 2.5 Gbit buffer
❖ Khuyến nghị gần đây: với N luồng, đệm bằng
với RTT . C
N

Tầng Network 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ộ đệm đầu
vào!
❖ Head-of-the-Line (HOL) blocking: datagram được sắp
hàng tại phía trước hàng đợi ngăn cản các datagram khác
trong hàng đợ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ột datagram màu đỏ later: packet màu
có thể được truyền. xanh lá trải qua
packet màu đỏ thấp hơn bị HOL blocking
chặn lại
Tầng Network 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

Tầng Network 4-32


Tầng Internet network
Các chức năng tầng network của host và router:

transport layer: TCP, UDP

Các giao thức routing Giao thức IP


• chọn đường đi • các quy ước định địa chỉ
• RIP, OSPF, BGP • định dạng datagram
Tầng • các quy ước quản lý gói
network forwarding
table
Giao thức ICMP
•Thông báo lỗi
• “tín hiệu” router

Tầng link

Tầng physical

Tầng Network 4-33


Định dạng IP datagram
Số hiệu phiên bản 32 bits
giao thức IP Tổng độ dài
Độ dài header datagram(byte)
ver head. type of length
(bytes) len service Dành cho
“kiểu” dữ liệu fragment phân mảnh/
16-bit identifier flgs
offset tổng hợp
Số hop còn lại time to upper header
tối đa (giảm xuống live layer checksum
tại mỗi router)
32 bit source IP address
32 bit destination IP address
Giao thức lớp trên
để đưa payload đến Tùy chọn (nếu có) Ví dụ: trường
timestamp ghi lại
how much overhead? Dữ liệu đường đi, danh
(độ dài thay đổi, các router đi đến
❖ 20 bytes of TCP
thông thường là một
❖ 20 bytes of IP
segment TCP
❖ = 40 bytes + app
layer overhead hoặc UDP)

Tầng Network 4-34


Phân mảnh và tổng hợp IP
❖ Các đường link mạng có MTU
(max.transfer size) – frame
lớn nhất có thể ở mức kết
nối Phân mảnh:


▪ Các kiểu đường link khác vào: 1 datagram lớn
nhau, các MTU khác nhau ra: 3 datagram nhỏ hơn
❖ IP datagram lớn đượ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 ở đích cuối cùng …
▪ Các bit của IP header
được sử dụng để xác
định, sắp đặt các
fragment liên quan Tầng Network 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
1 datagram lớn thành vài datagram nhỏ hơn
❖ MTU = 1500 bytes

1480 bytes length ID fragflag offset


trong trường dữ liệu =1500 =x =1 =0

offset = length ID fragflag offset


1480/8 =1500 =x =1 =185

length ID fragflag offset


=1040 =x =0 =370

Tầng Network 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

Tầng Network 4-37


Định đị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

interface: kết nối


223.1.1.4 223.1.2.9

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ỗi địa chỉ IP được 223.1.1.1 = 11011111 00000001 00000001 00000001
liên kết với mỗi
interface 223 1 1 1

Tầng Network 4-38


Định địa chỉ IP: giới thiệu
223.1.1.1
Hỏi: các interface
thật sự được kết nối
223.1.2.1

như thế nào? 223.1.1.2


223.1.1.4 223.1.2.9

đáp: sẽ tìm hiểu


trong chương 5, 6. 223.1.1.3
223.1.3.27
223.1.2.2

Đáp: các interface Ethernet có dây


được kết nối bởi các switch Ethernet
223.1.3.1 223.1.3.2

Bây giờ: không cần lo lắng về


cách mà 1 interface được kết
nối với một interface khác
Đáp: interface WiFi không dây được
(không có router trung gian))
kết nối thông qua WiFi base station

Tầng Network 4-39


Các Subnet (mạng con)
❖ Đại 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


độc lậ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

Tầng Network 4-42


Định địa chỉ IP: CIDR
CIDR: Classless InterDomain Routing
▪ Phần subnet của địa chỉ có độ dài bất kỳ
▪ Đị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ỉ

Phần Phần
subnet host
11001000 00010111 00010000 00000000
200.23.16.0/23

Tầng Network 4-43


Địa chỉ IP: làm sao để lấy một
địa chỉ?
Hỏi: làm thế nào một host lấy được đị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ấy đị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ấy địa chỉ IP của nó từ
server trong mạng khi host đó tham gia vào mạng
▪ Có thể gia hạn địa chỉ IP mà host đó vừa được cấp
▪ Cho phép tái sử dụng các địa chỉ IP (chỉ giữ địa chỉ
trong khi được kết nối/”on”)
▪ Hỗ trợ cho người dùng di động muốn tham gia vào mạng
(trong thời gian ngắn)
Tổng quan DHCP :
▪ host quảng bá (broadcasts) thông điệp “DHCP discover”
[tùy chọn]
▪ DHCP server đáp ứng bằng thông điệp “DHCP offer”
[tùy chọn]
▪ host yêu cầu địa chỉ IP: “DHCP request” msg
▪ DHCP server gởi địa chỉ: “DHCP ack” msg
Tầng Network 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
vừa tham gia vào
mạng cần địa chỉ
223.1.2.2 trong mạng này
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

Tầng Network 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)

Tầng Network 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

IP
router first-hop, địa
DHCP

DHCP Eth
Phy chỉ của : dùng DHCP
DHCP
❖ DHCP request được đóng
gói trong UDP, được đóng
DHCP DHCP 168.1.1.1 gói trong IP, được đóng
DHCP UDP gói trong 802.1 Ethernet
IP
Ethernet frame broadcast
DHCP

Eth router với DHCP
(dest: FFFFFFFFFFFF) trên
DHCP
Phy server được tích hợp
vào trong router LAN, được nhận tại router
đang chạy DHCP server
❖ Ethernet demuxed to IP
demuxed, UDP demuxed to
DHCP

Tầng Network 4-49


DHCP: ví dụ
DHCP DHCP ❖ DHCP server lập địa chỉ
DHCP UDP IP của client chứa DHCP
DHCP IP ACK, địa chỉ IP của
DHCP Eth router first-hop cho
Phy client, tên và địa chỉ IP
của DNS server

DHCP
❖ Đóng gói của DHCP
server, frame được
DHCP
DHCP UDP
DHCP IP chuyển cho client, tách
DHCP Eth Router với DHCP DHCP tại client
Phy server được tích hơp
Bây giờ, client biết địa
DHCP
vào router ❖
chỉ IP của nó, tên và địa
chỉ IP của DSN server,
địa chỉ IP của router
first-hop của nó

Tầng Network 4-50


DHCP: Wireshark Message type: Boot Reply (2)
Trả lời
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
Transaction ID: 0x6b3a11b7
Yêu cầu Next server IP address: 192.168.1.1 (192.168.1.1)
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
……

Tầng Network 4-51


Địa chỉ IP: làm sao để lấy được
1 địa chỉ IP?
Hỏi: làm sao mạng lấy được phần subnet của địa
chỉ IP?
Đáp: lấy phần đã được cấp phát của không gian
địa chỉ IP do ISP cung cấp

Dãy đị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


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

Tổ chức 0
200.23.16.0/23
Tổ chức 1
“gởi cho tôi bất cứ thông tin gì
200.23.18.0/23 với các địa chỉ bắt đầ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
ISPs-R-Us
tin gì với các địa chỉ bắt đầu
199.31.0.0/16”

Tầng Network 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ới các địa chỉ bắt đầ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ới các địa chỉ bắt đầ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


Định đị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

Tầng Network 4-55


NAT: network address translation
Phần còn lại của Mạng cục bộ
Internet (như là mạng gia đình)
10.0.0/24 10.0.0.1

10.0.0.4
10.0.0.2
138.76.29.7

10.0.0.3

Tất cả datagram đi ra Các datagram với nguồn hoặc đích


khỏi mạng cục bộ có trong mạng này có địa chỉ 10.0.0/24
cùng một địa chỉ IP NAT cho nguồn, đích
là: 138.76.29.7, (như thông thường)
với các số hiệu cổng
nguồn khác nhau Tầng Network 4-56
NAT: network address translation
Trình bày: mạng cục bộ chỉ dùng 1 địa chỉ IP đối
với thế giới bên ngoài:
▪ Không cần thiết dùng 1 vùng địa chỉ từ ISP:
chỉ cần 1 địa chỉ IP cho tất cả các thiết bị
▪ Có thể thay đổi các đị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ể thay đổi ISP mà không cần thay đổ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ấy và không định địa chỉ rõ ràng từ
bên ngoài (tăng cường bảo mật)
Tầng Network 4-57
NAT: network address translation
thực hiện: NAT router phải:

▪ Các datagram đi ra: thay thế (địa chỉ IP nguồn, số hiệu


cổng nguồn) mọi datagram đi ra bên ngoài bằng (địa
chỉ IP NAT, số hiệu port mới)
. . . Các client/server ở xa sẽ dùng địa chỉ đó ( địa
chỉ IP NAT, số hiệu port mối) như là địa chỉ đích

▪ Ghi nhớ (trong bảng chuyển đổi NAT) mọi cặp chuyển
đổi (địa chỉ IP nguồn, số hiệu port) sang (địa chỉ IP
NAT, số hiệu port mới)

▪ Datagram đi đến: thay thế(địa chỉ IP NAT, số hiệu


port mới) trong các trường đích của mọi datagram
đến với giá trị tương ứng (địa chỉ IP và số hiệu cổng
nguồn) trong bảng NAT
Tầng Network 4-58
NAT: network address translation
Bảng chuyển đổi NAT 1: host 10.0.0.1
2: NAT router WAN side addr LAN side addr
thay đổi địa chỉ nguồn gửi datagram tới
từ 10.0.0.1, 3345 đến 138.76.29.7, 5001 10.0.0.1, 3345 128.119.40.186, 80
138.76.29.7, 5001, …… ……
cập nhật bảng
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: phản hồi đến địa chỉ đích: thay đổi địa chỉ đích từ
138.76.29.7, 5001 138.76.29.7, 5001 tới 10.0.0.1, 3345

Tầng Network 4-59


NAT: network address translation
❖ Trường số hiệu port 16-bit:
▪ 60,000 kết nối đồng thời với một địa chỉ
phía LAN!
❖ NAT gây ra tranh luận:
▪ Các router chỉ nên xử lý đến tầng 3
▪ Vi phạm thỏa thuận end-to-end
• Những nhà thiết kế ứng dụng phải tính đến
khả năng của NAT, ví dụ ứng dụng P2P
▪ Việc thiếu địa chỉ IP sẽ được giải quyết
khi dùng IPv6

Tầng Network 4-60


Vấn đề NAT traversal
❖ Các client muốn kết nối tới
server có đị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ư là địa chỉ IP ?
đích) 10.0.0.4
▪ Chỉ có 1 địa chỉ có thể được
nhìn thấy từ bên ngoài địa chỉ 138.76.29.7 NAT
được NAT: 138.76.29.7 router
❖ Giải pháp 1: cấu hình NAT
tĩnh để chuyển các yêu cầu
kết nối đến tại port được
cho trước tới server
▪ Ví dụ (123.76.29.7, port 2500)
luôn luôn được chuyển tới
10.0.0.1 port 25000

Tầng Network 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
(IGD). Cho phép host được
NAT:
IGD

❖ Học địa chỉ IP public


(138.76.29.7)
❖ thêm/gỡ bỏ các port NAT
mapping (thời gian thuê)
router

Tầng Network 4-62


Các vấn đề NAT traversal
❖ Giải pháp 3: chuyển tiếp (relaying) (được sử dụng
trong Skype)
▪ Client được NAT thiết lập kết nối để chuyển
tiếp
▪ client bên ngoài kết nối để chuyển tiếp
▪ Sự chuyển tiếp này bắc cầu các packet giữa các
kếtnốinối
2. Kết
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ại host được
client được thiết lặp NAT
138.76.29.7 NAT
router

Tầng Network 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

Tầng Network 4-64


ICMP: internet control message protocol
❖ Được sử dụng bởi các
host và router để truyền
Loại Mô tả
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ác thông điệp ICMP được
mang trong các IP 8 0 echo request (ping)
datagram 9 0 route advertisement
10 0 router discovery
❖ Thông điệp ICMP: loại, 11 0 TTL expired
mã cộng thêm 8 byte đầu 12 0 bad IP header
tiên của IP datagram gây
ra lỗi
Tầng Network 4-65
Traceroute và ICMP
❖ Nguồn gửi một chuỗi các ❖ Khi thông điệp ICMP
segment UDP đến đích đế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 đến tới host đích
router thứ n: ❖ Đích trả về thông điệ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)
điệp ICMP (loại 11, mã 0)
❖ Nguồn dừng
▪ Thông điệp ICMP bao gồm
tên và địa chỉ IP của router

3 probes 3 probes

3 probes
Tầng Network 4-66
IPv6: Động lực
❖ Động lực thúc đẩy ban đầu: không gian địa chỉ
32-bit sớm được cấp phát cạn kiệt.
❖ Động lực khác:
▪ Định dạng của header giúp tăng tốc xử lý/chuyển
gói
▪ header thay đổi để tạo điều kiện thuận lơi cho QoS

Định dạng datagram IPv6 :


▪ Header có độ dài cố định 40 byte
▪ Không cho phép phân mảnh

Tầng Network 4-67


Định dạng datagram IPv6
Độ ưu tiên (priority): xác định độ ưu tiên của các
datagram trong luồng
Nhãn luồng (flow Label): xác định các datagram
trong cùng “luồng”.
(khái niệm “luồng” không được định nghĩa rõ ràng).
Header kế tiếp (next header): xác đị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 Tầng Network 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
header, được chỉ ra bởi trường “Next
Header”
❖ ICMPv6: phiên bản mới của ICMP
▪ Các kiểu thông điệp bổ sung. Ví dụ “Packet Too Big”
▪ Các chức năng quản lý nhóm multicast

Tầng Network 4-69


Chuyển từ IPv4 sang IPv6
❖ Không phải tất cả router đều có thể được nâng
cấp đồng thời
▪ Không có “flag days”
▪ Mạng sẽ hoạt động như thế nào với các
router dùng cả IPv4 và IPv6?
❖ tunneling: datagram IPv6 được mang như là
payload trong datagram của IPv4 giữa các
router IPv4
Các trường header IPv4 Các trường header IPv6
IPv4 payload
Địa chỉ IPv4 nguồn và đích Địa chỉ IPv6 nguồn và đích
UDP/TCP payload

IPv6 datagram
IPv4 datagram
Tầng Network 4-70
Tunneling
A B IPv4 tunnel E F
kết nối các router IPv6
Cách nhìn logic:
IPv6 IPv6 IPv6 IPv6

A B C D E F
Cách nhìn thực:
IPv6 IPv6 IPv4 IPv4 IPv6 IPv6

Tầng Network 4-71


Tunneling
A B IPv4 tunnel E F
kết nối các router IPv6
Cách nhìn logic:
IPv6 IPv6 IPv6 IPv6

A B C D E F
Cách nhìn thực:
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-đến-B: E-đến-F:
IPv6 B-đến-C: B-đến-C: IPv6
IPv6 bên trong IPv6 bên trong
IPv4 IPv4 Tầng Network 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

Tầng Network 4-73


Tác động lẫn nhau giữa routing và
forwarding
Thuật toán routing xác định đường đi qua
Thuật toán routing
mạng từ đầu cuối này đến đầu cuối khác
Bảng forwarding xác định chuyển
local forwarding table
gói trong cục bộ của router này
Địa chỉ đích output link
address-range 1 3
address-range 2 2
address-range 3 2
address-range 4 1

Địa chỉ IP trong header


của packet đến
1
3 2

Tầng Network 4-74


Mô hình đồ thị
5

v 3 w
2 5
u 2 1 z
3
1 2
x y
Đồ thị: G = (N,E) 1

N = tập hợp các router = { u, v, w, x, y, z }

E = tập hợp các kết nối ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }

Ghi chú: mô hình đồ thị cũng hữu ích trong các ngữ cảnh khác.
Ví dụ, P2P, trong đó N is tập các peer và E là tập các kết nối TCP

Tầng Network 4-75


Mô hình đồ thị: Chi phí
5
c(x,x’) = chi phí kết nối (x,x’)
v 3 w
e.g., c(w,z) = 5
2 5
Chi phí có thể luôn luôn là 1, hoặc
u 2
3
1 z ngược lại liên quan đến băng thông,
1 2 hoặc liên quan đến tắc nghẽn
x 1
y

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

Hỏi: Chi phí đường đi thấp nhất từ u tới z?


Thuật toán routing: thuật toán tìm đường
có chi phí thấp nhất
Tầng Network 4-76
Phân loại thuật toán Routing
Q: thông tin toàn cục hay phân Q: tĩnh hay động?
cấp (global or decentralized)?
tĩnh:
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ết các neighbor được kỳ
kết nối vật lý với nó, và chi phí ▪ Phản ứng với những
kết nối đến neighbor đó thay đổi về chi phí
❖ Lặp lại qua trình tính toán, kết nối
trao đổi thông tin với các
neighbor
❖ Thuật toán “distance vector”
Tầng Network 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

Tầng Network 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 x đến y; = ∞
node nếu không kết nối trực
▪ Được thực hiệu thông qua tiếp đế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ủa đường đi
thông tin với nhau từ nguồn tới đích v
❖ Tính toán đường đi có chi ❖ p(v): node trước nằm
phí thấp nhất từ 1 node trên đường đi từ nguồn
(‘nguồn’) đến tất cả các tới v
node khác ❖ N': tập các node mà
▪ Cho trước bảng forwarding chi phí đường đi thấp
của node đó nhất đã được xác định
❖ Lặp lại: sau k lần lặp lại,
biết được đường đi có chi
phí thấp nhất của k đích Tầng Network 4-79
Thuật toán Dijsktra
1 Khởi tạo:
2 N' = {u}
3 for tất cả các node v còn lại
4 if v kề với u (có cạnh nối với u)
5 then D(v) = c(u,v)
6 else D(v) = ∞
7
8 Lặp
9 Tìm w chưa có trong N' sao cho D(w) tối tiểu
10 Thêm w vào N'
11 Cập nhật D(v) với tất cả các node v kề với w và chưa có trong N’:
12 D(v) = min( D(v), D(w) + c(w,v) )
13 /* chi phí mới đến v là chính nó hoặc chi phí đường đi ngắn nhất
14 cộng với chi phí từ w đến v*/
15 Cho đến khi tất cả các node nằm trong N'

Tầng Network 4-80


Thuật toán Dijkstra : ví dụ
D(v) D(w) D(x) D(y) D(z)
Bước 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ựng cây đường đi ngắn
nhất bằng cách lần theo các 8
predecessor node 3
u w y z
❖ Các đườ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
Tầng Network 4-81
Thuật toán Dijkstra: ví dụ
Bước 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
3
1 z
1 2
x 1
y

Tầng Network 4-82


Thuật toán Dijkstra: ví dụ (2)
Kết quả cây đường đi ngắn nhất từ u:

v w
u z
x y

Kết quả bảng forwarding trong u:


Đích đến link
v (u,v)
x (u,x)
y (u,x)
w (u,x)
z (u,x)
Tầng Network 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í,
Khởi tạo Tìm định tuyến mới…. Tìm định tuyết mới….Tìm định tuyết mới…
Kết quả trong chi phí Kết quả trong chi Kết quả trong chi
mới phí mới phí mới
Tầng Network 4-84
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

Tầng Network 4-85


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

cho
dx(y) := chi phí của đường đi có chi phí ít nhất từ
x tới y
thì
dx(y) = min {c(x,v) + dv(y) }
v
Chi phí từ neighbor v tới đích y
Chi phí tới neighbor v

min được thực hiện trên tất cả các neighbor v của x


Tầng Network 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 Cộng B-F cho:
3
1 2 du(z) = min { c(u,v) + dv(z),
x 1
y
c(u,x) + dx(z),
c(u,w) + dw(z) }
= min {2 + 5,
1 + 3,
5 + 3} = 4
node đạt được tối thiểu là hop kế tiếp trong đường đi
ngắn nhất, được sử dụng trong bảng forwarding
Tầng Network 4-87
Thuật toán Distance vector
❖ Dx(y) = ước lượng chi phí thấp nhất từ x đến
y
▪ x duy trì distance vector Dx = [Dx(y): y є N ]
❖ node x:
▪ Biết chi phí đế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 ]

Tầng Network 4-88


Thuật toán Distance vector
Ý tưởng chính:
❖ Mỗi node định kỳ 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ũ của nó dùng công thức B-
F:
Dx(y) ← minv{c(x,v) + Dv(y)} với mỗi node y ∊ N

❖ Dưới những điều khiện tự nhiên, ước lượng


Dx(y) hội tụ tới chi phí dx thực sự nhỏ nhất
dx(y)

Tầng Network 4-89


Thuật toán Distance vector
Lặp, không đồng bộ: Mỗi node:
mỗi lặp cục bộ được
gây ra bởi:
❖ Chi phí kết nối cục bộ Chờ cho (thay đổi trong chi phí
thay đổi link cục bộ hoặc thông điệp từ
neighbor)
❖ Thông điệp cập nhật
DV từ neighbor
Phân bố: Tính toán lại các ước lượng
❖ Mỗi node thông báo
đến các neighbor chỉ
khi DV của nó thay đổi Nếu DV đến đích bất kỳ vừa
▪ Các neighbor sau đó thay đổi, thì thông báo neighbors
thông báo đến các
neighbor của nó nếu cần
thiết
Tầng Network 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
Bảng Chi phí đến Chi phí đến
node x x y z x y z
x 0 2 7 x 0 2 3

Từ
y ∞∞ ∞ y 2 0 1
Từ

z ∞∞ ∞ z 7 1 0

Bảng Chi phí đến


node y x y z y
2 1
x ∞ ∞ ∞
x z
y 2 0 1 7
Từ

z ∞∞ ∞

Bảng Chi phí đến


node z x y z
x ∞∞ ∞
Từ

y ∞∞ ∞
z 7 1 0
Thời gian
Tầng Network 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
Bảng chi phí đến chi phí đến chi phí đến
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

từ
từ

y 2 0 1

từ
z ∞∞ ∞ z 7 1 0 z 3 1 0
Bảng chi phí đến chi phí đến chi phí đến
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 7
từ

từ

y 2 0 1

từ
z ∞∞ ∞ z 7 1 0 z 3 1 0

Bảng chi phí đến chi phí đến chi phí đến
node z x y z x y z x y z

x ∞∞ ∞ x 0 2 7 x 0 2 3
y 2 0 1 y 2 0 1
từ

y ∞∞ ∞
từ
từ

z 7 1 0 z 3 1 0 z 3 1 0
Thời gian
Tầng Network 4-92
Distance vector: chi phí kết nối thay đổi
Chi phí kết nối thay đổi:
❖ node phát hiện sự thay đổi chi phí 1
kết nối cục bộ y
4 1
❖ Cập nhật thông tin định tuyến, tính x z
toán lại distance vector 50

❖ Nếu DV thay đổi, thì thông báo cho


neighbor

“tin t0 : y phát hiện sự thay đổi chi phí kết nối, và cập nhật DV của
tốt nó, thông báo đến các neighbor của nó.
đi t1 : z nhận được cập nhật từ y, và cập nhật bảng của nó, tính chi
nhanh” phí mới thấp nhất đến x, gởi DV của nó đến các neighborcủa nó.

t2 : y nhận được cập nhật của z, và cập nhật bảng distance của nó.
Các chi phí thấp nhất của y không thay đổi, vì vậy y không gởi
thông điệp đến z.
Tầng Network 4-93
Distance vector: Chi phí kết nối thay đổi
Chi phí kết nối thay đổi: 60
❖ node phát hiện sự thay đổi chi y
4 1
phí kết nối cục bộ
x z
❖ Tin xấu đi chậm- “đếm đến vô 50
cùng” vấn đề!
❖ 44 lần duyệt trước khi thuật
toán ổn định

Tác động xấu ngược lại:


❖ Nếu Z đi qua Y để tới X :
▪ Z nói với Y khoảng cách của nó đến X là không xác
định (vì vậy Y sẽ không đi tới X thông qua Z)
❖ Điều này sẽ giải quyết được vấn đề đếm đến vô
tận hay không?
Tầng Network 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: điều gì xảy ra
điệp nếu router gặp sự cố?
❖ LS: với n nodes, E kết nối, thì có LS:
O(nE) các thông điệp được gởi ▪ node có thể quảng cáo sai
❖ DV: chỉ trao đổ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ốc độ hội tụ DV:
❖ LS: thuật toán O(n2) yêu cầu ▪ DV node có thể quảng cáo
O(nE) thông điệp sai về chi phí đường đi
▪ Có thể có dao động ▪ Bảng của mỗi node đượ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 đề đếm đến vô hạn (count- • Lỗi đượ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

Tầng Network 4-96


Định tuyến có cấu trúc
(Hierarchical routing)
Cho tới đây, tìm hiểu về routing của chúng ta
thực hiện trong môi trường lý tưởng hóa
❖ Tất cả các router là đồng nhất
❖ Mạng “phẳng”
… không đúng trong thực tế
Quy mô: với 600 triệu Quản trị
đích đến: ❖ internet = mạng của các
❖ Không thể lưu trữ tất mạng
cả các đích đến trong ❖ Mỗi quản trị mạng có thể
các bảng định tuyến muốn điều hành định
❖ Việc trao đổi bảng đị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ác router được gom vào gateway router:


các vùng, “autonomous ❖ Tại “biên” (“edge”) của
systems” (AS) AS của nó
❖ Các router trong cùng ❖ Có liên kết đế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ức định tuyến intra-
AS khác nhau

Tầng Network 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à
Thuật toán Thuật toán
inter-AS
định tuyến
Intra-AS
định tuyến
▪ intra-AS thiết lặp các
mục cho các đích đến
Inter-AS

Bảng
Forwarding
nội mạng
▪ inter-AS & intra-AS
thiết lập các mục cho
các đích đến ngoại
Tầng Network 4-99
Tác vụ Inter-AS
❖ Giả sử router trong AS1 phải:
AS1 nhận được 1. Học các đích đến nào
datagram với đích đế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

Tầng Network 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ền thông tin này đến tất
cả các router nội mạng
❖ router 1d xác định từ thông tin định tuyến intra-AS mà
interface I của nó nằm trên đường đi có chi phí thấ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

Tầng Network 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ải xác định
gateway nào mà nó nên dùng để chuyển các packet
đến đích x
▪ Đây cũng là công việc của giao thức định tuyến
inter-AS!

3c
x
3a
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d
?
Tầng Network 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ới được từ AS3 và từ AS2.
❖ Để cấu hình bảng forwarding, router 1d phải xác định
gateway nào nó nên dùng để chuyển packet tới đích x
▪ Đây cũng là công việc của giao thức định tuyến
inter-AS!
❖ hot potato routing: gửi packet tới 2 router gần nhất

Xác định interface I


Dùng thông tin định từ bảng forwarding
Học từ giao thức hot potato routing:
tuyến từ giao thức cái mà dẫn đến
inter-AS mà subnet Chọn gateway nào
intra-AS để xác định các gateway có chi
x có thể chậm đến có chi phí thấp nhất
chi phí của các đường phí thấp nhất. Đưa
thông qua nhiều
đi có chi phí thấp nhất giá trị (x,I) vào bảng
gateway
đến mỗi gateway forwarding

Tầng Network 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

Tầng Network 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)

Tầng Network 4-105


RIP ( Routing Information Protocol)
❖ Công bố vào năm 1982 trong BSD-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
▪ Các DV được trao đổi giữa các neighbors mỗi 30 giây trong
thông điệp phản hồi (còn gọi là advertisement)
▪ Mỗi advertisement: danh sách lên đến 25 subnet đích

Từ router A đến các subnet đích:


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

z
w x y
A D B

C
Bảng định tuyến trong router D
Subnet đích router kế tiếp số lượng hop đến đích
w A 2
y B 2
z B 7
x -- 1
…. …. ....
Tầng Network 4-107
RIP: ví dụ
Quảng cáo từ A-tới-D
đích kế hops
w - 1
x - 1
z C 4
…. … ... z
w x y
A D B

C
Bảng định tuyến trong router D
Subnet đích router kế tiếp số lượng hop tới đích
w A 2
y B 2
A 5
z B 7
x -- 1
…. …. ....
Tầng Network 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 đi 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 để ngăn chặn vòng lặp
ping-pong (khoảng cách vô hạn = 16 hops)

Tầng Network 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 kỳ
routed routed

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

Tầng Network 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ảng đồ cấu trúc mạng tại mỗi node
▪ Tính toán đường đi dùng thuật toán Dijkstra
❖ Quảng cáo OSPF mang 1 entry cho mỗi
neighbor
❖ Các quảng cáo được phát tán đến toàn bộ AS
▪ Được mang trong thông điệ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
Tầng Network 4-111
Các đặc tính “tiến bộ” của OSPF
(không có trong RIP)
❖ Bảo mật: tất cả các thông điệp OSPF được chứng
thực (để chống lại sự xâm nhập có hại)
❖ Cho phép có nhiều đường đi có chi phí như nhau
(RIP chỉ cho 1)
❖ Với mỗi đường kết nối, nhiều số liệu chi phí (cost
metrics) cho TOS khác nhau (ví dụ:chi phí đường
kết nối vệ tinh được thiết lập “thấp” cho ToS nổ
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).
Tầng Network 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

Tầng Network 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 ngắn nhất) đế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ảng cáo đến các
router Area Border của các vùng khác.
❖ Các backbone router: chạy định tuyến OSPF được
giới hạn đến backbone.
❖ boundary routers: kết nối đến các AS khác.

Tầng Network 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”
❖ BGP cũng cấp cho mỗi AS một phương tiện để:
▪ eBGP: lấy thông tin có thể chạm tới subnet từ các
AS neighbor.
▪ iBGP: lan truyền thông tin đó đến tất cả các router
bên trong AS.
▪ Xác định các đường đi “tốt” đến các mạng khác dựa
trên thông tin khả năng chạ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”
Tầng Network 4-115
BGP cơ bản
❖ BGP session: 2 router BGP (“cặp”) trao đổi các thông
điệp BGP:
▪ Quảng cáo các đường đi đến các tiền tố (prefixes) mạng đích
khác nhau (Giao thức “path vector”)
▪ Được trao đổ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ới prefix đó
▪ AS3 có thể tổng hợp các prefixe trong quảng cáo của nó

3c
Thông điệp
3a BGP
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d

Tầng Network 4-116


BGP cơ bản: phân phối thông tin đường đi
❖ Sử dụng phiên eBGP giữa 3a và 1c, AS3 gửi prefix
về thông tin khả năng 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ả năng 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

Tầng Network 4-117


Các thuộc tính đường đi và các
route BGP
❖ prefix đượ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ứa các AS mà thông qua đó quảng cáo
prefix vừa đi qua: ví dụ: 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ều đườ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ờ đi qua AS x
▪ Định tuyến dựa trên chính (sách policy-basedTầng
routing)
Network 4-118
Sự lựa chọn BGP route
❖ router có thể học hơn 1 route tới AS đích,
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

Tầng Network 4-119


Các thông điệp BGP
❖ Các thông điệp BGP được trao đổi giữa các peer trên kết
nối TCP
❖ Các thông điệp BGP:
▪ OPEN: mở kết nối TCP đến peer và chứng thực người
gửi
▪ UPDATE: quảng cáo đường đi mới(hoặc là lấy lại cái
cũ)
▪ 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ỗi trong thông điệp
trước đó; cũng được sử dụng để đóng kết nối

Tầng Network 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ộc các đị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?

Thuật toán định


tuyến
Giả sử prefix
Bảng local forwarding 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 được prefix


2. Router xác định port ra (output port) cho
prefix
3. Router đưa cổng cho prefix đó vào trong
bảng forwarding
Router nhận thức được prefix

3c
Thông điệp
3a BGP
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d

❖ Thông điệp BGP chứa “các route”


❖ “route” là 1 prefix và các thuộc tính: AS-PATH,
NEXT-HOP,…
❖ 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
Thông điệp
3a BGP
3b
AS3 2c other
1c 2a networks
other 1a 2b
networks 1b AS2
AS1 1d

❖ Router có thể nhận đượ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ụ: Chọn

❖ AS2 AS17 to 138.16.64/22


❖ AS3 AS131 AS201 to 138.16.64/22

❖ Điề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ủa route được lựa
chọn
▪ Thuộc tính NEXT-HOP của Route là địa chỉ IP của
interface của router đó, cái mà bắt đầu AS PATH đó.
❖ Ví dụ:
❖ AS-PATH: AS2 AS17 ; NEXT-HOP: 111.99.86.55
❖ Router sử dụng OSPF để tìm ra đường đi ngắ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 đi 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?
▪ Đáp: 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
Ký hiệu: Mạng của
B nhà cung cấp
X
W A
Mạng củ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ến đường từ B thông qua X tới C
▪ .. Vì vậy X sẽ không quảng cáo cho B tuyến đường tới
C

Tầng Network 4-131


Chính sách BGP routing (2)
Ký hiệu: Mạng của
B nhà cung cấp
X
W A
Mạng của
C khách hàng

❖ A quảng cáo đường đi AW cho B


❖ B quảng cáo đường đi BAW cho X
❖ B có nên quảng cáo đường đi BAW cho C hay không?
▪ Không nên! B không nhận được “thu nhập” cho việc đị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ộc C đi tới w thông A
▪ B chỉ muốn dẫn đường đi/đến các khách hàng của nó!

Tầng Network 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ủa nó được định tuyến, ai mà đị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ết đị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
Tầng Network 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

Tầng Network 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ặp


trùng lặp trong mạng

❖ Nguồn trùng lặp: làm sao xác định được địa


chỉ người nhận?
Tầng Network 4-135
Trùng lặp trong mạng
❖ flooding: khi node nhận được packet
broadcast, nó gởi bản sao đến tất cả các
neighbor
▪ Vấn đề: lặp lại & bão broadcast
❖ Flooding có điều khiển: node chỉ broadcast
packet nếu nó không gửi broadcast giống
như vậy trước đó
▪ node theo dõi các packet đã broadacst
▪ Hoặc reverse path forwarding (RPF): chỉ chuyển
các packet nếu nó đã đến trên đường đi ngắn
nhất giữa node và nguồn
❖ spanning tree:
▪ Không có các packet dư thừa được nhận tại bất
cứ node nào
Tầng Network 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
(a) broadcast được khởi tạo tại A (b) broadcast được khởi tạo tại D

Tầng Network 4-137


Spanning tree: tạo
❖ Node trung tâm
❖ Mỗi node gởi thông điệp gia nhập unicast
(unicast join message) đến node trung tâm
▪ Thông điệ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) Các bước xây dựng (b) spanning tree đã được
spanning tree (center: E) xây dựng xong
Tầng Network 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 đi 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 Ký hiệu
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
Cây chia sẽ Cây dựa trên nguồn group
member
Tầng Network 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 đi ngắn nhất
▪ Cây đường đi 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)
…tìm hiểu các cách tiếp cận cơ bản, sau đó các giao thức
cụ thể áp dụng cho các hướng tiếp cận này

Tầng Network 4-140


Cây đường đi ngắn nhất
❖ Cây chuyển tiếp multicast (mcast forwarding
tree): cây đường đi ngắn nhất dẫn đường từ
nguồn tới tất cả các nơi nhận
▪ Thuật toán Dijkstra
s: nguồn Ký hiệu
R1 2 router với các thành viên
R4
1 của nhóm đã được gắn vào
R2 5 router không có các thành viên
3 4 nào của nhóm được gắn vào
R5
i Đường kết nối được sử dụng
R3 6
cho forwarding,
R6 R7 i chỉ thứ tự đường link được
thêm vào bởi thuật toán

Tầng Network 4-141


Reverse path forwarding
❖ Dựa vào kiến thức của router của đường đi
ngắn nhất unicast từ nó đến nơi gửi
❖ Mỗi router có cách xử lý forwarding đơn giản:

if (datagram multicast được nhận trên đường


kết nối đến trên đường đi 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

Tầng Network 4-142


Reverse path forwarding: ví dụ
s: nguồn Kí hiệu
R1
R4 router với các thành viên
của nhóm đã gắn vào
R2
router không có các thành
R5 viên của nhóm gắn vào
R3 datagram sẽ được forward
R6 R7
datagram sẽ không
được forward

❖ Kết quả là một cây SPT đảo ngược


▪ Có thể là một lựa chọn không tốt với các
kết nối không đồng bộ
Tầng Network 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ác thông điệp được gửi lên trên bởi
router không có các thành viên nhóm downstream
s: nguồn
Ký hiệu
R1
R4
router với các thành viên
của nhóm đã gắn vào
R2
P
router không có các
R5 thành viên của nhóm gắn vào
P
R3 P thông điệp cắt giảm
R6 các kết nối với multicast
R7 forward

Tầng Network 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

Tầng Network 4-145


Cây dựa vào trung tâm
(Center-based trees)
❖ Một cây truyền nhận được chia sẽ cho tất
cả
❖ Một router được xác định như là “trung
tâm” của cây
❖ Để gia nhập:
▪ router biên (edge ) gửi thông điệp gia nhập
unicast đến router trung tâm
▪ Thông điệp gia nhập (join-msg ) “được xử lý” bởi
các router trung gian và chuyển đến các router
trung tâm
▪ Thông điệp gia nhập, hoặc đến nhánh cây của
trung tâm này, hoặc đến ngay trung tâm
▪ Đường đi được thực hiệu bởi thông điệp gia nhập
trở thành nhánh cây mới của router này Tầng Network 4-146
Cây dựa vào trung tâm: ví dụ
Giả sử R6 được chọn là trung tâm:

LEGEND

R1 router với các thành viên


R4
3 của nhóm đã gắn vào

R2 router không có các


2 thành viên của nhóm gắn vào
1
R5 thứ tự đường đi trong ấy
các thông điệp gia nhập đã
R3
1 sinh ra
R6
R7

Tầng Network 4-147


Internet Multicasting Routing: DVMRP

❖ DVMRP: distance vector multicast routing


protocol, RFC1075
❖ flood và prune: forwarding đường đi ngượ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ảng định tuyến của
DVMRP của nó đượ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
▪ datagram ban đầu đến nhóm multicast được
flood mọi nơi thông qua RPF
▪ Các router không phải nhóm: gửi thông điệp cắt
giảm lên trên
Tầng Network 4-148
DVMRP: tiếp tục…
❖ Trạng thái mềm: router DVMRP chu kỳ (1
phút) “quên” các nhánh cây bị cắt giảm:
▪ Dữ liệu mcast một lần nữa đổ xuống các nhánh
không đượ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ường được thực hiện trong router thương mại

Tầng Network 4-149


Tunneling
Q: làm cách nào để kết nối “các đảo” của các
router muticast trong một “biển” của các
router unicast?

Cấu trúc vật lý Cấu trúc logic

❖ datagram multicast được đóng gói trong datagram


“thông thường” (không có multicast)
❖ datagram IP thông thường được gửi thông qua “đường
hầm” (“tunnel”) và qua IP unicast đến router muticast
nhận (xem lại IPv6 bên trong đường hầm IPv4)
❖ router mcast nhận mở gói để lấy datagram multicast
Tầng Network 4-150
PIM: Protocol Independent Multicast
❖ Không phụ thuộc vào bất kỳ 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ầy đặc: Thưa thớt:
❖ Các thành viên nhóm ❖ Số lượng các mạng với các
đóng gói dày đặc, thành viên nhóm ít
trong khoảng cách ❖ Các thành viên nhóm
“gần”. ”được phân bố thưa thớt”
❖ Băng thông dư thừa ❖ Băng thông không dư thừa

Tầng Network 4-151


Kết quả của sự phân chia thưa thớt-dày
đặc:
Dày đặc Thưa thớt:
❖ Nhóm các thành viên bởi ❖ Không có thành viên cho
các router được giả định đến khi các router thực
cho đế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) ❖ Băng thông và router
❖ Băng 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ưng…
❖ Giao thức bên dưới cung cấp thông tin RPF
cho datagram đế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ật toán định tuyến cơ
bản
❖ Có cơ chế giao thức cho router để phát
hiện có phải là router ở node lá (leaf-
node)

Tầng Network 4-153


PIM – kiểu thưa thớt
❖ Tiếp cận dựa vào trung
tâm (center-based)
❖ router gởi thông điệp gia R1
R4
nhập (join msg) đến join
rendezvous point (RP) R2
join
▪ Các router trung gian
cập nhật trạng thái và R5
forward thông điệ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
multicast đến từ point
sang cây xác định nguồn rendezvous
(source-specific tree) point
▪ Hiệu xuất tăng: ít tập
trung, các đường đi
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ệu unicast đế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
multicast dòng lên đếnR3 join

nguồn R6
❖ RP có thể gởi thông Tất cả dữ liệu R7
rendezvous
điệp dừng (stop msg) multicast đến từ
rendezvous
point
nếu không có bên nhận point
nào được ngắn vào
▪ “không có ai đang lắ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ật toán định tuyến
mạng datagram (virtual ▪ link state, distance vector,
circuit and datagram định tuyến phân cấp
networks) 4.6 định tuyến trong Internet
4.3 bên trong router ▪ RIP, OSPF, BGP
4.4 IP: Internet Protocol 4.7 broadcast and multicast
▪ datagram định dạng, routing
định địa chỉ IPv4, ICMP,
IPv6
❖ Hiểu về các nguyên tắ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ệu, định
tuyến(chọn đường đi), broadcast, multicast
❖ Hiện thực trên Internet
Tầng Network 4-156
CHƯƠNG 5: DATA LINK
NỘI DUNG
I. Giới thiệu Datalink
II. Kỹ thuật phát hiện và sửa lỗi
III. Kỹ thuật truy cập đường truyền
IV.VLAN
I. GIỚI THIỆU DATALINK
➢Link: “kết nối/liên kết”giữa các nodes kề nhau
▪ Wired
▪ Wireless
➢Data link layer: chuyển gói tin (frame) từ một node đến node kề
qua 1 link
▪ Mỗi link có thể dùng giao thức khác nhau để truyền tải frame
I. GIỚI THIỆU DATALINK
I. GIỚI THIỆU DATALINK
➢Tại nơi gởi:
▪ Nhận các packet từ tầng network, sau đó đóng gói thành các frame
▪ Truy cập đường truyền (nếu dùng đường truyền chung)
➢Tại nơi nhận:
▪ Nhận các frame dữ liệu từ tầng physical
▪ Kiểm tra lỗi
▪ Chuyển cho tầng network
I. GIỚI THIỆU DATALINK
II. KỸ THUẬT PHÁT HIỆN VÀ SỬA LỖI

D: Data
EDC: Error Detection and Correction
II. KỸ THUẬT PHÁT HIỆN VÀ SỬA LỖI
➢Các phương pháp:
▪ Parity Check (bit chẵn lẻ)
▪ Checksum
▪ Cylic Redundancy Check (CRC)
PARITY CHECK
➢Dùng thêm một số bit để đánh dấu tính chẵn lẻ
▪ Dựa trên số bit 1 trong dữ liệu
▪ Phân loại:
• Even Parity: số bit 1 phải là một số chẵn
• Odd Parity: số bit 1 phải là một số lẻ
➢Các phương pháp:
▪ Parity 1 chiều
▪ Parity 2 chiều
▪ Hamming code
PARITY 1 CHIỀU
➢Số bit parity: 1 bit
➢Chiều dài của dữ liệu cần gởi đi: d bit, vậy dữ liệu gởi đi sẽ có
(d+1) bit
➢Bên gởi:
▪ Thêm1 bit parity vào dữ liệu cần gởi đi
▪ Mô hình chẵn (Even parity)
• Số bit 1 trong d+1 bit là một số chẵn
▪ Mô hình lẻ (Odd Parity)
• Số bit 1 trong d+1 bit là một số lẻ
PARITY 1 CHIỀU
➢Bên nhận:
▪ Nhận D’ có (d+1) bits
▪ Đếm số bit 1 trong (d+1) bits = x
▪ Mô hình chẵn: nếu x lẻ → error
▪ Mô hình lẻ: nếu x chẵn → error
➢Ví dụ: nhận 0111000110101011
▪ Parity chẵn: sai
▪ Parity lẻ: đúng
▪ Dữ liệu thật: 011100011010101
PARITY 1 CHIỀU
➢Đặc điểm:
▪ Phát hiện được lỗi khi số bit lỗi trong dữ liệu là số lẻ
▪ Không sửa được lỗi
PARITY 2 CHIỀU
➢Dữ liệu gởi đi được biểu diễn thành ma trận NxM
➢Số bit parity: (N + M + 1) bit
➢Đặc điểm:
▪ Phát hiện và sửa được 1 bit lỗi
➢Bên gởi
▪ Biểu diễn dữ liệu cần gởi đi thành ma trận NxM
▪ Tính giá trị bit parity của từng dòng, từng cột
PARITY 2 CHIỀU
PARITY 2 CHIỀU
➢Bên nhận:
▪ Biễu diễn dữ liệu nhận thành ma trận(N+1)x(M+1)
▪ Kiểm tra tính đúng đắn của từng dòng, cột
▪ Đánh dấu các dòng, cột dữ liệu bị lỗi
▪ Bit lỗi: bit tại vị trí giao giữa dòng và cột bị lỗi
PARITY 2 CHIỀU
HAMMING CODE
➢Mỗi hamming code:
▪ Có M bit, đánh số từ 1 đến M
▪ Bit parity: log2M bits, tại các vị trí lũy thừa của 2
▪ Dữ liệu thật được đặt tại các vị trí không là lũy thừa của 2
➢Đặc điểm:
▪ Sửa lỗi 1 bit
▪ Nhận dạng được 2 bit lỗi
▪ Sửa lỗi nhanh hơn Parity code 2 chiều
HAMMING CODE
➢Bên gởi:
▪ Chia dữ liệu cần gởi đi thành các khối dữ liệu (với số bit là số vị trí
có thể đặt vào Hamming Code)
▪ Với mỗi khối dữ liệu, tạo1 Hamming Code
• Đặt các bit dữ liệu vào các vị trí không phải là lũy thừa của 2 trong
Hamming Code
– Lưu ý: vị trí được đánh số từ 1 đến M
• Tính check bits
• Tính giá trị của các bit parity
HAMMING CODE
HAMMING CODE
➢Bên nhận: với mỗi Hamming Code
▪ Điền các bit Hamming Code nhận vào các vị trí từ 1 đến M
▪ Tính check bit
▪ Kiểm tra các bit parity
• Nếu tại bit 2i phát hiện sai → đánh dấu Error, hệ số ki= 1
• Ngược lại, đánh dấu No Error = 0, hệ số ki= 0
▪ Vị trí bit lỗi: pos =⅀ 2i*ki
HAMMING CODE
III. ĐIỀU KHIỂN TRUY CẬP ĐƯỜNG TRUYỀN
➢Loại liên kết (link)
▪ Điểm đến điểm (Point-to-point)
• Dialup
• Nối trực tiếp giữa: host - host, host – SW
▪ Chia sẻ (Shared)
III. ĐIỀU KHIỂN TRUY CẬP ĐƯỜNG TRUYỀN
➢Trong môi trường chia sẻ
▪ Hạn chế xảy ra collision
➢Giao thức tầng Data link: Quyết định cơ chế để các node sử dụng
môi trường chia sẻ
▪ Khi nào được phép gởi DL xuống đường truyền
▪ Làm sao phát hiện xảy ra Collision
▪ ….
III. ĐIỀU KHIỂN TRUY CẬP ĐƯỜNG TRUYỀN
➢Các phương pháp:
▪ Phân chia kênh truyền (Channel partition protocols)
▪ Tranh chấp (Random access protocols)
▪ Luân phiên (Taking-turns protocols)
PHÂN CHIA KÊNH TRUYỀN
➢TDM (Time Division Multiplexing)
➢FDM (Frequency Division Multiplexing)
➢CDMA (Code Division Multiple Access)
TDM
➢Ý tưởng:
▪ Chia kênh truyền thành các khe thời gian
▪ Mỗi khe thời gian chia thành N khe nhỏ
▪ Mỗi khe nhỏ dành cho 1 node trong mạng
▪ Mỗi node có băng thông: R/N
FDM
➢Ý tưởng:
▪ Chia kênh truyền thành N kênh truyền nhỏ
▪ Mỗi kênh truyền dành cho 1 node
▪ Mỗi node có bang thông: R/N
CDMA
➢Ý tưởng:
▪ Mỗi node có1 code riêng
▪ Bên gởi: mã hoá dữ liệu trước khi gởi bằng code của mình và bên
nhận phải biết code của người gởi
▪ 1 bit DL được mã hoá thành M bits
▪ Kênh truyền: chia thành từng các khe thời gian, mỗi bit truyền trong
1 khe
TRANH CHẤP
➢Các node chiếm trọn bang thông khi truyền
▪ Lắng nghe đụng độ sau khi truyền
▪ Mộtsốphươngpháp:
• ALOHA (Slotted, Pure)
• CSMA (Carrier Sense Multiple Access)
PURE ALOHA
➢Mỗi node có thể bắt đầu truyền dữ liệu bất cứ khi nào node có nhu
cầu
➢Nếu phát hiện xung đột, chờ1 khoảng thời gian rồi truyền lại
CSMA
➢Lắng nghe đường truyền trước khi truyền:
▪ Đường truyền rảnh: truyền dữ liệu
▪ Đường truyền bận: chờ
➢Lắng nghe đường truyền sau khi truyền
➢Nếu đụng độ xảy ra:
▪ Dừng truyền
▪ Đợi 1 khoảng thời gian và truyền lại
LUÂN PHIÊN
➢Dùng thẻ bài (Token Passing)
➢Dò chọn (Polling)
TOKEN PASSING
➢Ý tưởng:
▪ Dùng 1 thẻ bài (token) di chuyển qua các node
▪ Thiết bị muốn truyền dữ liệu thì phải chiếm được thẻ bài
➢Đánhgiá:
▪ Thích hợp cho các mạng có tải nặng
▪ Thiết lập được độ ưu tiên cho thiết bị đặc biệt
▪ Chậm hơn CSMA trong mạng có tải nhẹ
▪ Thiết bị mạng đắt tiền
➢Dùng trong mạng Token Ring
POLLING
➢Ý tưởng:
▪ Có1 node đóng vai trò điều phối
▪ Node điều phối kiểm tra nhu cầu gởi dữ liệu của các node thứ cấp
và xếp vào hàng đợi theo thứ tự và độ ưu tiên
▪ Thiết bị truyền dữ liệu khi đến lượt
➢Đánh giá:
▪ Có thể thiết lập độ ưu tiên
▪ Tốn chi phí
▪ Việc truyền dữ liệu của 1 thiết bị tuỳ thuộc vào thiết bị dò chọn
IV. VLAN
➢VLAN (Virtual Local Area Network) là mạng LAN ảo, đây là kỹ
thuật cho phép tạo ra các mạng LAN độc lập một cách logic được
tạo ra trên 1 switch

Chia nhiều VLAN trên cùng Switch


IV. VLAN
➢Các loại VLAN: có 3 loại mạng VLAN
▪ Port-based VLAN: là cách cấu hình VLAN đơn giản và phổ biến.
Mỗi cổng của switch gán với một VLAN xác định (mặc định là
VLAN 1). Do đó mỗi host gắn vào cổng đó đều thuộc một VLAN
nào đó
▪ MAC Address Based VLAN: mỗi địa chỉ MAC được đánh dấu với
một VLAN xác định. Cách cấu hình này ít được sử dụng do sự bất
tiện trong quản lý.
▪ Protocol Based VLAN: cách cấu hình gần giống như MAC Address
Based, nhưng sử dụng một địa chỉ logic hay địa chỉ IP thay cho địa
chỉ MAC
IV. VLAN
➢Lợi ích của việc chia VLAN
➢Việc chia VLAN mang lại những lợi ích sau:
▪ Tiết kiệm được băng thông của mạng: khi 1 gói tin được quảng bá,
nó sẽ chỉ truyền trong 1 mạng VLAN, không truyền đến các VLAN
khác nên giảm được lưu lượng quảng bá, tiết kiệm được băng thông
đường truyền
▪ Tăng khả năng bảo mật: các VLAN khác nhau không thể truy cập
vào nhau, trừ khi được định tuyến.
IV. VLAN

▪ Dễ dàng thêm hay bớt máy tính vào VLAN: Việc thêm một máy tính vào
VLAN rất đơn giản, chỉ cần cấu hình cổng cho máy đó vào VLAN mong
muốn.

▪ Tiết kiệm chi phí thiết bị, khai thác tối đa số port trên switch.

▪ Giúp mạng có tính linh động cao: việc chia VLAN giúp có thể dễ dàng di
chuyển, thêm bớt các thiết bị, chỉ cần cấu hình lại các cổng switch và đặt
chúng vào các VLAN theo yêu cầu.
Chapter 6
Tầng Link và
LANS
A note on the use of these PowerPoint slides:
We’re making these slides freely available to all (faculty, students,
readers). They’re in PowerPoint form so you see the animations; and
can add, modify, and delete slides (including this one) and slide content
to suit your needs. They obviously represent a lot of work on our part.
In return for use, we only ask the following:
▪ If you use these slides (e.g., in a class) that you mention their
source (after all, we’d like people to use our book!)
▪ If you post any slides on a www site, that you note that they are
adapted from (or perhaps identical to) our slides, and note our
copyright of this material.
Computer Networking: A
For a revision history, see the slide note for this page.
Top-Down Approach
Thanks and enjoy! JFK/KWR 8th edition
All material copyright 1996-2020
Jim Kurose, Keith Ross
J.F Kurose and K.W. Ross, All Rights Reserved Pearson, 2020
Tầng Link và LANs: mục tiêu
❖Hiểu về các nguyên tắc của ❖Khởi tạo và hiện thực một
các dịch vụ tầng link: số công nghệ 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
❖Dữ liệu networks

Link Layer: 6-2


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

Link Layer: 6-3


Tầng Link: Giới thiệu
Thuật ngữ: mobile network

❖host và router: node national or global ISP

❖Các kênh truyền thông kết nối 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
❖Packet lớp 2: frame, đóng gói datacenter

datagram
network

Tầng data-link có nhiệm vụ truyền


datagram từ 1 node đến node enterprise
lân cận vật lý (physically adjacent node ) network
trên một đường liên kết
Link Layer: 6-4
Tầng Link: Ngữ cảnh
So sánh:
❖datagram được truyền bởi các ❖Hành trình từ Princeton đến
giao thức tầng link khác nhau Lausanne
trên các đường kết nối khác ▪ limo: Princeton đến JFK
nhau: ▪ Máy bay: JFK đến Geneva
▪ Xe lửa: Geneva đến Lausanne
• VD: WiFi on link đầu, Ethernet
là link tiếp theo. ❖Khách du lịch = datagram
❖segment tầng transprot = liên
❖Mỗi giao thức tầng link cung kết truyền thông
cấp các dịch vụ khác nhau (communication link)
• VD: có hoặc không có reliable ❖Kiểu vận chuyển = giao thức
data transfer (RDT) khi kết nối tầng link
❖Đại lý du lịch = thuật toán định
tuyến

Link Layer: 6-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??
Link Layer: 6-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, tiếng ồn.
▪ Bên nhận phát hiện sự xuất hiện lỗi:
• Tín hiệu bên gửi cho việc truyền lại hoặc
hủy bỏ frame bị lỗ
❖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
Link Layer: 6-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 NIC) hoặc trên con
chip application

• Ethernet card, 802.11 card;


transport
cpu memory
network
Ethernet chipset link

• Thực hiện tầng physical và tầng host bus

link controller
(e.g., PCI)
link
▪ Gắn vào trong các bus hệ thống của physical
physical
host
▪ Sự kết hợp của phần cứng, phần mềm
và firmware
network interface

Link Layer: 6-8


Giao tiếp
application application
transport transport
cpu memory memory CPU
datagram network network
link link

linkh datagram controller controller datagram


link link
physical physical
physical physical

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


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

Link Layer: 6-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
datagram datagram 100%!
otherwise • giao thức có thể bỏ qua một
all số lỗi, nhưng hiếm khi
bits in D’ N • trường EDC lớn hơn field
OK detected
? error giúp việc phát hiện và sửa lỗi
d data bits
tốt hơn
D EDC D’ EDC’

bit-error prone link

Link Layer: 6-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
row parity
0111000110101011 1
d1,1 ... d1,j d1,j+1
d data bits d2,1 ... d2,j d2,j+1
parity ... ... ... ...
bit di,1 ... di,j di,j+1
column
parity di+1,1 ...
Even parity: set parity di+1,j di+1,j+1
bit so there is an even
number of 1’s
no errors: 1 0 1 0 1 1 Phát hiện 10101 1
11110 0 single-bit 10110 0 parity
error
error:
01110 1 01110 1
10101 0 10101 0
* Check out the online interactive exercises for more parity
error
examples: http://gaia.cs.umass.edu/kurose_ross/interactive/ Link Layer: 6-12
Internet checksum (review)
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 của ❖Tính toán checksum của
segment như một chuỗi segment vừa nhận
các số nguyên 16-bit ❖Kiểm tra xem có hay không giá
▪ checksum: thêm(tổng bù trị của checksum vừa được tính
1) vào các nội dung của có bằng với giá trị trong
segment trường checksum:
▪ Bên gửi đặt các giá trị ▪ không – phát hiện lỗi
checksum vào trong ▪ có – không có lỗi được phát
trường checksum của hiện. Nhưng có thể còn có lỗi
UDP khác không?
Transport Layer: 3-13
Cyclic Redundancy Check (CRC)
❖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
r CRC bits
d data bits
D R bit pattern
<D,R> = D *2r XOR R formula for bit pattern

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)
Link Layer: 6-14
Cyclic Redundancy Check (CRC): example
Muốn: G 1 0 1 0 1 1
D.2r XOR R = nG 1 0 0 1 1 0 1 1 1 0 0 0 0
Tương đương: 1 0 0 1
D.2r = nG XOR R 1
0
0
0
1
0
D* 2r
Tương đương: 1 0 1 0
1 0 0 1
nếu chúng ta chia D.2r cho 1 1 0
G, có được phần dư R thỏa: 0 0 0
D.2r 1 1 0 0
R = remainder [ ] 1 0 0 1
G 1 0 1 0
1 0 0 1
0 1 1
R
* Check out the online interactive exercises for more examples: http://gaia.cs.umass.edu/kurose_ross/interactive/
Link Layer: 6-15
Tầng Link và LANs: Nội dung
5.1 Giới thiệu và các dịch vụ
5.2 phát hiện lỗi và sửa lỗi
5.3 các giao thức đa truy cập
5.4 mạng LAN
▪ Định địa chỉ, ARP
▪ Ethernet
▪ switches
▪ VLANS
5.5 link virtualization: MPLS
5.6 mạng trung tâm dữ liệu
5.7 một ngày trong cuộc
sống của một yêu cầu web

Link Layer: 6-16


Multiple access links, protocols
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 in cable-based access network
• 802.11 wireless LAN, 4G/4G. satellite

shared wire (e.g.,


shared radio: 4G/5G shared radio: WiFi shared radio: satellite Trong buổi tiệc coctail
cabled Ethernet) (không khí và âm thanh
được chia sẽ)
Link Layer: 6-17
Các giao thức đa truy cập
❖Kênh broadcast đơn đượ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òa 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

Link Layer: 6-18


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

Link Layer: 6-19


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

Link Layer: 6-20


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 rỗi

6-slot 6-slot
frame frame
1 3 4 1 3 4

Link Layer: 6-21


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

frequency bands
FDM cable

Link Layer: 6-22


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

Link Layer: 6-23


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

Link Layer: 6-24


Slotted ALOHA
node 1 1 1 1 1

node 2 2 2 2
C: collision
S: success
node 3 3 3 3
E: empty
C E C S E C E S S
Ưu điểm: Nhược điểm:
❖ Node đơn kích hoạt có thể ❖ Đụng độ, lãng phí slot
truyền liên tục với tốc độ tối
❖ Các slot nhàn rỗi
đa của kênh
❖ Phân cấp cao: chỉ có các slot ❖ Các node có thể phát hiện đụng độ
trong các node cần được đồng trong thời gian ít hơn để truyền
bộ packet
❖ Đơn giản ❖ Đồng bộ hóa

Link Layer: 6-25


Slotted ALOHA: hiệu suất
❖Hiệu suất: là phần slot truyền thành công trong số
nhiều frame dự định truyền của nhiều node
❖ Giả sử: có N node với nhiều frame để truyền, mỗi cái truyền
trong slot với xác suất là p
▪ Xác suất để given node truyền thành công trong 1 slot = p(1-p)N-1
▪ Xác suất mà bất kỳ node nào truyền thành công = Np(1-p)N-1
▪ Hiệu suất cực đại: tìm p* làm cực đại hóa
Np(1-p)N-1
▪ Với nhiều node, tìm giới hạn của Np*(1-p*)N-1 khi N tiến tới vô cùng,
cho: hiệu suất cực đại = 1/e = .37
▪ Tốt nhất: kênh hữu dụng trong khoảng 37% thời gian!

Link Layer: 6-26


Pure ALOHA
❖unslotted Aloha: đơn giản, không đồng bộ
▪ Khi frame đến đầu tiên: truyền ngay 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]
will overlap will overlap
with start of with end of
i’s frame i’s frame

t0 - 1 t0 t0 + 1
Hiệu quả Aloha: 18% !

Link Layer: 6-27


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!
CSMA/CD: CSMA với phát hiện đụng độ
▪ Đụ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 độ rất dễ trên mạng hữu tuyến nhưng rất khó trên
mạng vô tuyến
❖Tương tự như hành vi của con người: đàm thoại lịch sự

Link Layer: 6-28


CSMA: collisions spatial layout of nodes

▪ Đụ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 độ

Link Layer: 6-29


CSMA/CD: spatial layout of nodes

▪ CSMA/CS làm giảm lượng thời


gian trong khi va chạm
• Truyên bị huỷ khi va chạm

Link Layer: 6-30


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

Link Layer: 6-31


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!

Link Layer: 6-32


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!

Link Layer: 6-33


Các giao thức MAC “Xoay vòng”
polling:
▪ Node chủ (master node) “mời” các
node con (slave node) truyền lần data
lượt poll

▪ Thường được sử dụng với các thiết


bị con “đần độn” master
▪ Quan tâm:
data

• polling overhead
• latency
• Chỉ có 1 điểm chịu lỗi (master) slaves

Link Layer: 6-34


Các giao thức MAC “Xoay vòng”
T
Chuyển token:
❖ Điều hànhtoken được chuyển
từ 1 node đến node kế tiếp (không có
theo tuần tự. gì để gởi)

❖ Thông điệp token T

❖ Quan tâm:
▪ token overhead
▪ latency
Chỉ có 1 điểm chịu lỗi (master)
data

Link Layer: 6-35


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
ISP termination system

▪ multiple downstream (broadcast) FDM channels: tốc độ 1.6 Gbps/channel


▪ CMTS đơn truyền vào trong các kênh
▪ multiple upstream channels (lên tới 1 Gbps/channel)
▪ multiple access (đa truy cập): tất cả người dùng tranh nhau( truy cập ngẫu
nhiên) cho các upstream channel trong time nhất định; đuọc chỉ định
TDM.
Link Layer: 6-36
Mạng truy cập cáp
MAP frame for
Interval [t1, t2]

CMTS Downstream channel i

Upstream channel j

cable headend
t1 t2 Residences with cable modems

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
Link Layer: 6-37
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

Link Layer: 6-38


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

Link Layer: 6-39


Địa chỉ MAC
▪ Đị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
• e.g.: 128.119.40.136
▪ Đị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
• VD: 1A-2F-BB-76-09-AD
hexadecimal (base 16) notation
(mỗi “số” đại diện 4 bit)
Link Layer: 6-40
Địa chỉ MAC
mỗi giao diện trên mạng LAN
▪ có địa chỉ MAC 48-bit duy nhất
▪ có địa chỉ IP 32-bit duy nhất cục bộ (như chúng ta đã thấy)

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

LAN
(wired or wireless)
137.196.7/24
71-65-F7-2B-08-53 58-23-D7-FA-20-B0
137.196.7.23 137.196.7.14

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

Link Layer: 6-41


Địa chỉ MAC
❖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
Link Layer: 6-42
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,
ARP
router) trên mạng LAN có bảng
ARP
▪ Địa chỉ IP/MAC ánh xạ cho các
137.196.7.78
1A-2F-BB-76-09-AD
node trong mạng LAN:
ARP
ARP

LAN < địa chỉ IP; địa chỉ MAC; TTL>


71-65-F7-2B-08-53 58-23-D7-FA-20-B0 ▪ TTL (Time To Live): thời gian
sau đó địa chỉ ánh xạ sẽ bị lãng
137.196.7.23 137.196.7.14

ARP 0C-C4-11-6F-E3-98
137.196.7.88
quên (thông thường là 20 phút)

Link Layer: 6-43


Khi giao thức ARP hoạt động
▪ A muốn gởi datagram tới B
• Địa chỉ MAC của B không có trong bảng ARP của A.

A sẽ quảng bá (broadcasts) ARP query packet


có chứa địa chỉ IP của B Ethernet frame (sent to FF-FF-FF-FF-FF-FF)
1 ▪ Địa chỉ MAC đích = FF-FF-FF-FF-FF-FF C Source MAC: 71-65-F7-2B-08-53
▪ Tất cả các node trên mạng LAN sẽ nhận ARP Source IP: 137.196.7.23
query này Target IP address: 137.196.7.14

ARP table in A
IP addr MAC addr TTL
A B
1
71-65-F7-2B-08-53 58-23-D7-FA-20-B0
137.196.7.23 137.196.7.14

D
Link Layer: 6-44
Khi giao thức ARP hoạt động
▪ A muốn gởi datagram tới B
• Địa chỉ MAC của B không có trong bảng ARP của A.

ARP message into Ethernet frame


(sent to 71-65-F7-2B-08-53)
C Target IP address: 137.196.7.14
Target MAC address:
ARP table in A 58-23-D7-FA-20-B0

IP addr MAC addr TTL
TTL
A B
2
71-65-F7-2B-08-53 58-23-D7-FA-20-B0
137.196.7.23 137.196.7.14

B nhận ARP packet, trả lời tới


2 A với địa chỉ MAC của B
D
Link Layer: 6-45
Khi giao thức ARP hoạt động
▪ A muốn gởi datagram tới B
• Địa chỉ MAC của B không có trong bảng ARP của A.

C
ARP table in A
IP addr MAC addr TTL
TTL
137.196. 58-23-D7-FA-20-B0 500
A B
7.14

71-65-F7-2B-08-53 58-23-D7-FA-20-B0
137.196.7.23 137.196.7.14

3 A nhận trả lời từ B, đưa B vào


ARP table
D
Link Layer: 6-46
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
74-29-9C-E8-FF-55 222.222.222.222
49-BD-D2-C7-56-2A
222.222.222.220
1A-23-F9-CD-06-9B
111.111.111.112 111.111.111.110
CC-49-DE-D0-AB-7D E6-E9-00-17-BB-4B 222.222.222.221
88-B2-2F-54-1A-0F

Link Layer: 6-47


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 src: 74-29-9C-E8-FF-55
MAC dest: E6-E9-00-17-BB-4B
IP src: 111.111.111.111
IP dest: 222.222.222.222

IP
Eth
Phy

A B
R
111.111.111.111
74-29-9C-E8-FF-55 222.222.222.222
49-BD-D2-C7-56-2A
222.222.222.220
1A-23-F9-CD-06-9B
111.111.111.112 111.111.111.110
CC-49-DE-D0-AB-7D E6-E9-00-17-BB-4B 222.222.222.221
88-B2-2F-54-1A-0F
Link Layer: 6-48
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 src: 74-29-9C-E8-FF-55


IP src: 111.111.111.111
MAC dest: E6-E9-00-17-BB-4B
IP dest: 222.222.222.222
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
74-29-9C-E8-FF-55 222.222.222.222
49-BD-D2-C7-56-2A
222.222.222.220
1A-23-F9-CD-06-9B
111.111.111.112 111.111.111.110
CC-49-DE-D0-AB-7D E6-E9-00-17-BB-4B 222.222.222.221
88-B2-2F-54-1A-0F
Link Layer: 6-49
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 src: 1A-23-F9-CD-06-9B
MAC dest: 49-BD-D2-C7-56-2A
IP src: 111.111.111.111
IP dest: 222.222.222.222

IP
Eth
Phy

A B
R
111.111.111.111
74-29-9C-E8-FF-55 222.222.222.222
49-BD-D2-C7-56-2A
222.222.222.220
1A-23-F9-CD-06-9B
111.111.111.112 111.111.111.110
CC-49-DE-D0-AB-7D E6-E9-00-17-BB-4B 222.222.222.221
88-B2-2F-54-1A-0F
Link Layer: 6-50
Addressing: định tuyến tới mạng LAN khác
▪ R xác định gửi đi, chuyển datagram đến nguồn IP A, đích ở B đến link
layer
▪ R tạo link-layer frame chứa dữ liệu IP từ A đến B. Địa chỉ đích khung: Địa
chỉ MAC của B
▪ Truyền link-layer frame MAC src: 1A-23-F9-CD-06-9B
MAC dest: 49-BD-D2-C7-56-2A
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
74-29-9C-E8-FF-55 222.222.222.222
49-BD-D2-C7-56-2A
222.222.222.220
1A-23-F9-CD-06-9B
111.111.111.112 111.111.111.110
CC-49-DE-D0-AB-7D E6-E9-00-17-BB-4B 222.222.222.221
88-B2-2F-54-1A-0F
Link Layer: 6-51
Addressing: định tuyến tới mạng LAN khác
▪ B nhận frame, trích xuất IP datagram B
▪ B chuyển gói giao thức datagram lên IP

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
74-29-9C-E8-FF-55 222.222.222.222
49-BD-D2-C7-56-2A
222.222.222.220
1A-23-F9-CD-06-9B
111.111.111.112 111.111.111.110
CC-49-DE-D0-AB-7D E6-E9-00-17-BB-4B 222.222.222.221
88-B2-2F-54-1A-0F
Link Layer: 6-52
Tầng Link và LANs: Nội dung
5.1 Giới thiệu và các dịch vụ
5.2 phát hiện lỗi và sửa lỗi
5.3 các giao thức đa truy cập
5.4 mạng LAN
▪ Định địa chỉ, ARP
▪ Ethernet
▪ switches
▪ VLANS
5.5 link virtualization: MPLS
5.6 mạng trung tâm dữ liệu
5.7 một ngày trong cuộc
sống của một yêu cầu web

Link Layer: 6-53


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
https://www.uspto.gov/learning-and-resources/journeys-innovation/audio-stories/defying-doubters Link Layer: 6-54
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
• 2 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)

bus: cáp đồng trục switched

Link Layer: 6-55


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 data (payload) CRC
preamble address address

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

Link Layer: 6-56


Cấu trúc frame Ethernet
type
dest. source data (payload) CRC
preamble address address

❖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ỏ
Link Layer: 6-57
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 (NAKs) đế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: unslotted CSMA/CD với binary
backoff

Link Layer: 6-58


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, 1 Gbps, 10 Gbps, 40 Gbps
▪ Môi trường truyền tầng vật lý khác nhau: fiber, cable

MAC protocol
application
and frame format
transport
network 100BASE-TX 100BASE-T2 100BASE-FX
link 100BASE-T4 100BASE-SX 100BASE-BX
physical

copper (twister pair) physical layer fiber physical layer

Link Layer: 6-59


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

Link Layer: 6-60


Thiết bị Ethernet
▪ 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 switche
▪ plug-and-play, tự học
• Các switch không cần được cấu hình

Link Layer: 6-61


Switch: nhiều sự truyền đồng thời
▪ Các host kết nối trực tiếp tới swich
▪ Switch lưu tạm (buffer ) các packet A
▪ Giao thức Ethernet được sử dụng C’ B
trên mỗi đường kết nối vào, nhưng: 1 2
▪ không có đụng độ; full duplex 6
3
• Mỗi đường kết nối là 1 miền 5 4
collision (đụng độ) của riêng nó
B’ C
▪ switching: A-tới-A’ và B-tới-B’ có thể A’
truyền đồng thời mà không có đụng độ xảy
ra switch với 6 interfaces
(1,2,3,4,5,6)

Link Layer: 6-62


Switch forwarding table
Hỏi: làm thế nào để switch biết tới A’ thì sẽ
thông qua interface 4 và tới B’ thì thông
interface 5? A
C’ B
❖ Đáp: mỗi switch có một bảng switch,
mỗi entry: 1 2
▪ (địa chỉ MAC của host, interface 6
3
để tới được host đó, time stamp) 5 4
▪ Giống như bảng định tuyến! B’ C
A’
Q: những entry được tạo và được duy trì
như thế nào trong bảng switch?
▪ Có giống như giao thức định tuyến
hay không?

Link Layer: 6-63


Switch: tự học
Nguồn: A
▪ switch học các host có thể Đích: A’

tới được thông qua các A A’


interface kết nối với các A
host đó C’ B
1
• Khi frame được nhận, 6
2

switch “học” vị trí của bên 5


3
gửi: incoming LAN segment
4

B’ C
• Ghi lại cặp bên gửi/vị trí A’
trong bảng switch Switch table
MAC addr interface TTL (Trống)
A 1 60

Link Layer: 6-64


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ừ đó*/
Link Layer: 6-65
Tự học, chuyển tiếp (VD) Source: A
Dest: A’
▪ frame có đích đến là A’, A A’
vị trí của A’ không biết: flood A
▪ Đích A có vị trí đã được biết C’ B
trước: gửi chọn lọc chỉ trên 1 đường 1 2
kết nối duy nhất 6A A’
3
5 4

B’ C
A’ A A’

MAC addr interface TTL


A 1 60 switch table
A’ 4 60 (ban đầu trống)

Link Layer: 6-66


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!)
Link Layer: 6-67
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

Link Layer: 6-68


Mạng của tổ chức

mail server
Đến mạng
bên ngoài
router web server

IP subnet

Link Layer: 6-69


Switches vs. routers application
transport
Cả 2 đều lưu và chuyển tiếp (store-and- datagram network
forward): frame link
physical
▪ router: thiết bị tầng network (khảo sát link frame

header của tầng network) physical

▪ switche: thiết bị tầng link (khảo sát switch


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 dùng transport
flooding, học, địa chỉ MAC network
link
physical

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

Link Layer: 6-71


Virtual LANs (VLANs)
Q: Điều gì xảy ra khi mạng LAN được mở rộng và người dung thay đổi
điểm đính kèm?
Miền phát sóng (broadcast domain):
▪ scaling: tất cả lưu lượng phát song
lớp 2 (ARP, DHCP, unknown MAC)
phải qua toàn bộ mạng LAN
Computer ▪ Vấn đề về hiệu quả, bảo mật, quyền
Science EE riêng tư.

Link Layer: 6-72


Virtual LANs (VLANs)
Q: Điều gì xảy ra khi mạng LAN được mở rộng và người dung thay
đổi điểm đính kèm?
Miền phát sóng (broadcast domain):
▪ scaling: tất cả lưu lượng phát song
lớp 2 (ARP, DHCP, unknown MAC)
phải qua toàn bộ mạng LAN
Computer ▪ Vấn đề về hiệu quả, bảo mật, quyền
Science EE riêng tư.
Vấn đề hành chính:
▪ CS chuyển văn phòng sang EE – được
gán vào một bộ chuyển mạch EE, nhưng
vẫn muốn gắn kết với bộ chuyển mạch
CS.
Link Layer: 6-73
VLANs port-based VLAN: các port của 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 Area
Network (VLAN) 7 9 15
1

Các switch hỗ trợ khả 2 8 10 16

năng VLAN có thể được … …


cấu hình để định nghĩa EE (VLAN ports 1-8) CS (VLAN ports 9-15)

nhiều mạng LAN ảo


(multiple virtual LANS) …hoạt động như là nhiều switch ảo
trên một hạ tầng vật lý
của mạng LAN.
1 7 9 15

2 8 10 16

… …
EE (VLAN ports 1-8) CS (VLAN ports 9-15)

Link Layer: 6-74


Port-based VLANs
❖ Traffic isolation (cô lập 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 bị đầu cuối, hơn là dựa
trên port của switch
❖ Dynamic membership: các port có thể
được gán động giữa các VLAN 1 7 9 15

❖ Chuyển tiếp giữa các VLAN: được thực


2 8 10 16


hiện thông qua định tuyến (cũng giống

như các switch riêng biệt) EE (VLAN ports 1-8) CS (VLAN ports 9-15)

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

Link Layer: 6-75


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

… … …
EE (VLAN ports 1-8) CS (VLAN ports 9-15) Ports 2,3,5 belong to EE VLAN
Ports 4,6,7,8 belong to 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

Link Layer: 6-76


Định dạng frame 802.1Q VLAN
type
dest. source data (payload) CRC
preamble address address 802.1 Ethernet frame

type
dest. source data (payload) CRC
preamble address address 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)

Link Layer: 6-77


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

Link Layer: 6-78


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)
▪ 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!

Ethernet remainder of Ethernet


remainder frame, including
of Ethernet IP
frame, including IP
MPLS header
header header
with IP source, destination addresses
header with IP source, destination addresses

label Exp S TTL

20 3 1 5
Link Layer: 6-79
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)

Link Layer: 6-80


So sánh đường đi MPLS và IP

R6
D
IP router
R4 R3
R5
A
R2

Định tuyến IP: đường tới đích đến được xác định bởi 1 địa chỉ đích

Link Layer: 6-81


So sánh đường đi MPLS và IP
IP/MPLS entry router (R4) có thể sử dụng MPLS routes khác
nhau đến A, e.g., đựa trên địa chỉ nguồn
R6
D
IP router
R4 R3
R5
IP/MPLS router
A
R2 R1

❖ Định tuyến IP: đường tới đích đến được xác định bởi chỉ cần địa chỉ đích
❖ Định tuyến MPLS: đường tới đích đến có thể được dựa trên địa chỉ nguồn
và đích
▪ Đị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
Link Layer: 6-82
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 R3
R5 modified
link state
flooding A
R2 R1
Link Layer: 6-83
Bảng chuyển tiếp MPLS
in out out
label label dest interface
10 A 0 in out out
12 D 0 label label dest interface

8 A 1 10 6 A 1
12 9 D 0

R6
0 0
D
1 1
R4 R3
R5
0 0
A
R2 R1
in out out in out out
label label dest interface label label dest interface
8 6 A 0 6 - A 0

Link Layer: 6-84


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

Link Layer: 6-85


Datacenter networks
10 đến 100 ngàn máy chủ được liên kết chặt chẽ:
▪ e-business (e.g. Amazon)
▪ content-servers (e.g., YouTube, Akamai, Apple, Microsoft)
▪ search engines, data mining (e.g., Google)

Thách thức:
▪ Nhiều ứng dụng, mỗi cái phục
vụ số lượng lớn client
▪ Độ tin cậy
▪ 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

Link Layer: 6-86


Datacenter network
Border routers
▪ Kết nối bên ngoài datacenter

Tier-1 switches
▪ Kết nối đến ~16 T-2s below

Tier-2 switches
▪ Kết nối đến ~16 TORs below
… … … …
Top of Rack (TOR) switch
… … … … ▪ one per rack
▪ 40-100Gbps Ethernet đến
blades
Server racks
▪ 20- 40 server blades: máy chủ

Link Layer: 6-87


Datacenter networks
Facebook F16 data center network topology:

https://engineering.fb.com/data-center-engineering/f16-minipack/ (posted 3/2019)


Link Layer: 6-88
Datacenter networks
❖ 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

9 10 11 12 13 14 15 16

Link Layer: 6-89


Datacenter networks: định tuyến ứng dụng
Internet
load balancer:
application-layer
routing
▪ receives external
Load client requests
balancer
▪ directs workload
within data center
… … … … ▪ returns results to
external client
… … …
(hiding data center

internals from client)

Link Layer: 6-90


Datacenter networks: đổi mới giao thức-

▪ Lớp liên kết:


• RoCE: đến DMA (RDMA) qua Converged Ethernet
▪ Lớp vận chuyển:
• ECN (explicit congestion notification) được sử dụng để kiểm soát tắc nghẽn ở
lớp truyền tải (DCTCP, DCQCN)
• Kiểm soát bởi hop-by-hop (backpressure)
▪ routing, management:
• SDN được sử dụng rộng rãi trong/ giữa các trung tâm dữ liệu của các tổ chức
• Đặt dữ liệu quan trọng càng gần càng tốt (e.g., trong 1 rack hoặc rack gần đó)
để giảm thiểu giao tiếp tier-2, tier-1

Link Layer: 6-91


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

Link Layer: 6-92


Synthesis: a day in the life of a web request
▪ our journey down the protocol stack is now complete!
• application, transport, network, link
▪ putting-it-all-together: synthesis!
• goal: identify, review, understand protocols (at all layers) involved in
seemingly simple scenario: requesting www page
• scenario: student attaches laptop to campus network, requests/receives
www.google.com

Link Layer: 6-93


Một ngày trong cuộc sống: ngữ cảnh
Ngữ cảnh:
browser DNS server ▪ Kết nối vào
Comcast network mạng…
68.80.0.0/13

▪ Yêu cầu web


school network page:
68.80.2.0/24 www.google.com
web page

Sounds
web server
simple!
Google’s network
64.233.169.105 64.233.160.0/19

Link Layer: 6-94


A day in the life: connecting to the Internet
❖Kết nối máy tính xách tay cần có địa chỉ
IP của riêng nó, địa chỉ của router first-
DHCP DHCP
DHCP UDP
DHCP IP
Eth arriving mobile:
hop, địa chỉ của DNS server: dùng DHCP
DHCP

❖ Yêu cầu DHCP được đóng gói trong UDP,


Phy DHCP client

được đóng gói trong IP, được đóng gói


DHCP

DHCP
trong 802.3 Ethernet
❖ Ethernet frame broadcast (dest:
DHCP
DHCP UDP

FFFFFFFFFFFF) trên LAN, được nhận


DHCP IP
DHCP Eth
Phy
router has tại router chạy DHCP server
DHCP server
❖ Ethernet demuxed to IP demuxed, UDP
demuxed to DHCP

Link Layer: 6-95


Một ngày trong cuộc sống … kết nối tới Internet
▪ DHCP server lập DHCP ACK chứa địa
DHCP
DHCP UDP
DHCP IP
arriving mobile: chỉ IP của client, địa chỉ IP của
router first-hop cho client đó, tên
DHCP Eth
Phy DHCP client
và địa chỉ IP của DNS server
DHCP

DHCP ▪ DHCP server lập DHCP ACK chứa


địa chỉ IP của client, địa chỉ IP của
DHCP
DHCP
UDP
router first-hop cho client đó, tên
DHCP
IP

và địa chỉ IP của DNS server


DHCP
Eth
DHCP Phy
router has
DHCP server ▪ 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
Link Layer: 6-96
Một ngày trong cuộc sống… ARP (trước
DNS, trước HTTP)
DNS DNS ❖ Trước khi gửi HTTP request, cần địa chỉ
IP của www.google.com: DNS
DNS UDP
ARP IP
DNS
ARP query Eth arriving mobile:
ARP client
❖ DNS query được tạo, đóng gói trong
Phy
UDP, được đóng gói trong IP, được đóng
gói trong Eth. Gửi frame tới router, cần
địa chỉ MAC của interface của router
interface: ARP
ARP ❖ ARP query broadcast, được nhận bởi
Eth
router, router này sẽ trả lời lại với ARP
ARP reply

Phy
router has reply cung cấp địa chỉ MAC của interface
ARP server
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
Link Layer: 6-97
Một ngày trong cuộc sống… using DNS
DNS

Được tách/ghép
DNS DNS
DNS UDP
DNS DNS ❖
DNS IP DNS
DNS
UDP
IP
tới DNS server
Eth
Phy
DNS Eth DNS ❖ DNS server trả lời
cho client với địa
DNS
server
DNS Phy
chỉ IP address của
www.google.com
Comcast network
68.80.0.0/13

❖ IP datagram được chuyển tiếp từ


❖ IP datagram chứa DNS mạng campus tới mạng Comcast,
query được chuyển tiếp được định tuyến (các bảng được tạo
thông qua switch của bởi các giao thức định tuyến RIP,
mạng LAN từ client tới OSPF, IS-IS và/hoặc BGP) tới DNS
router hop thứ nhất server Link Layer: 6-98
Một ngày trong cuộc sống…kết nối TCP
mang HTTP ❖ Gửi HTTP request,
HTTP
HTTP đầu tiên client mở
SYNACK
SYN TCP TCP socket tới web
server
SYNACK
SYN IP
SYNACK
SYN Eth

❖ TCP SYN segment (bước


Phy Comcast network
68.80.0.0/13
1 trong 3-bước bắt tay)
được định tuyến liên
miềntới web server
SYNACK
SYN TCP
❖ web server đáp ứng với
SYNACK
SYN IP TCP SYNACK (bước 2
SYNACK
SYN Eth
Phy trong 3-bước bắt tay)
Google web server ❖ Kết nối TCP được thiết
64.233.169.105
lập!
Link Layer: 6-99
Một ngày trong cuộc sống…
HTTP yêu cầu/trả lời (request/reply)
HTTP
HTTP Trang web cuối cùng ❖ HTTP request được gửi
vào trong TCP socket
HTTP
HTTP
HTTP TCP cũng được hiện ra(!!!)
HTTP
HTTP IP
HTTP
HTTP Eth
Phy Comcast network
❖ IP datagram chứa HTTP
68.80.0.0/13 request được định tuyến
tới www.google.com

❖ web server đáp ứng với HTTP


reply (chứa trang web)
HTTP HTTP
HTTP
TCP
HTTP
IP
HTTP
Eth ❖ IP datagram chứa HTTP
reply được định tuyến trờ
Phy
Google web server về client
64.233.169.105

Link Layer: 6-100


Chapter 6: 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

Link Layer: 6-101


Chapter 6: 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
• security

Link Layer: 6-102


Bổ sung Chapter 6

Network Layer: 5-103


Pure ALOHA efficiency
P(success by given node) = P(node transmits) *
P(no other node transmits in [t0-1,t0] * *
P(no other node transmits in [t0-1,t0]
= p . (1-p)N-1 . (1-p)N-1
= p . (1-p)2(N-1)
… choosing optimum p and then letting n
= 1/(2e) = .18

even worse than slotted Aloha!

Link Layer: 6-104


Chia subnet

MẠNG MÁY TÍNH


Chia subnet - 1

❑Mục tiêu:
▪ Chia mạng mặc nhiên thành mạng nhỏ hơn.
▪ Giảm số lượng node ➔ Tăng thông lượng mạng
▪ Tăng tính bảo mật
▪ Dễ quản trị, cô lập mạng khi cần thiết
▪ Dễ bảo trì
▪ Tránh lãng phí địa chỉ IP
▪ Phải đặt bộ định tuyến (Router) giữa các mạng con này.

44
Chia subnet - 2

❑Qui tắc:
▪ Mượn các bit đầu trong HostID làm NetID
▪ Số subnet = 2n (n: số bit vay mượn phần HostID)
❑Lên kế hoạch:
▪ Số subnet cần chia
▪ Số node trong mỗi subnet

110nnnnn nnnnnnnn nnnnnnnn nnhhhhhh

45
Chia subnet – 3.1: Ví dụ 1

• Công ty A được cấp đc đường mạng là:


172.29.0.0/16. Công ty muốn chia thành 10
subnet trong đó có 3 subnet có 100 PCs, 4
subnet có 255 PCs, 3 subnet có 500 PCs

46
Chia subnet – 3.2: Ví dụ 1

❑Các subnet:
Subnet Net Addr HostIP Broadcast

0000 0000 172.29.0.0 172.29.0.1-172.29.15.254 172.29.15.255

0001 0000 172.29.16.0 172.29.16.1-172.29.31.254 172.29.31.255

0010 0000 172.29.32.0 172.29.32.1-172.29.47.254 172.29.47.255

0011 0000 172.29.48.0 172.29.48.1-172.29.63.254 172.29.63.255

0100 0000 172.29.64.0 172.29.64.1-172.29.79.254 172.29.79.255

0101 0000 172.29.80.0 172.29.80.1-172.29.95.254 172.29.95.255

… … … …

47
Chia subnet – 3.3: Ví dụ 1

Net Addr Subnet Mask

172.29.0.0 1111 0000 255.255.240.0

172.29.16.0 1111 0000 255.255.240.0


172.29.32.0 1111 0000 255.255.240.0
172.29.48.0 1111 0000 255.255.240.0
172.29.64.0 1111 0000 255.255.240.0
172.29.80.0 1111 0000 255.255.240.0
… … …

48
Chia subnet – 4.1: Ví dụ 2

• Ví dụ 2: Công ty B được cấp đc đường


mạng là: 192.168.1.0. Công ty muốn chia
thành 5 subnet trong đó có 3 subnet có
30 PCs, 2 subnet có 60 PCs

49
Chia subnet – 4.2: Ví dụ 2

192.168.1.0

2 bit

192.168.1.0 192.168.1.64 192.168.1.128 192.168.1.192

1 bit

192.168.1.128 192.168.1.160

50
Chia subnet – 4.3: Ví dụ 2

Net Addr Subnet Mask

192.168.1.0 1100 000 255.255.255.192

192.168.1.64 1100 000 255.255.255.192


192.168.1.192 1100 000 255.255.255.192
192.168.1.128 1110 000 255.255.255.224
192.168.1.160 1110 000 255.255.255.224

51
Chia subnet - 5

❑Giá trị các subnetmask:

52
Bài tập

Cho 172.100.112.4/19. Hãy cho biết:


1. Địa chỉ trên thuộc về đường mạng nào?
2. Số IP hợp lệ có thể dùng trong đường mạng đó. Và
hãy cho biết gồm những địa chỉ nào?
3. Địa chỉ broadcast của đường mạng đó
4. Với địa chỉ đường mạng trên, hãy chia thành 5 subnet
như sau: 2 subnet có 1000 host, 2 subnet có 500 host,
1 subnet có 100 host
5. Với địa chỉ đường mạng trên, hãy chia thành 17
subnet như sau: 4 subnet có 1000 host, 6 subnet có
500 host, 7 subnet có 100 host

53
MỘT SỐ SỰ CỐ THÔNG DỤNG

Thiết lập địa chỉ mạng không đúng

SD
P110

Professional Workstation 5000


196.135.8.17

Không thể truyền thông

SD
P110

Professional Workstation 5000


195.135.4.10
MỘT SỐ SỰ CỐ THÔNG DỤNG

Trùng địa chỉ IP

Tôi là
P110
SD

131.107.5.10. P110
SD

Professional Workstation 5000 Professional Workstation 5000

Host 2
Trùng địa chỉ IP,
Host 1 khởi động P110
SD

Tôi không thể truyền thông P110


SD

Professional Workstation 5000 Professional Workstation 5000

Host 1 Host 2 khởi động


MỘT SỐ SỰ CỐ THÔNG DỤNG

Sai địa chỉ mạng


IP address = 131.125.10.10 IP address = 131.125.1.3 IP address = 131.125.1.4
Default gateway = 131.125.1.1 Default gateway = 131.125.1.1 Default gateway = 131.126.2.2
Computer 1 Computer 2 Computer 3
SD SD SD
P110 P110 P110

Professional Workstation 5000 Professional Workstation 5000 Professional Workstation 5000

Network
1 SD

131.125.1.1
REMOTEACCESS SERVER
5408

.........
pentium

131.126.2.2
Network
2
SD SD SD
P110 P110 P110

Professional Workstation 5000 Professional Workstation 5000 Professional Workstation 5000

IP address = 131.126.2.2 IP address = 131.125.5.2 IP address = 131.126.2.5


Default gateway = 131.126.12.2 Default gateway = 131.126.2.2 Default gateway = 131.126.2.2
Computer 4 Computer 5 Computer 6
Địa chỉ IP và chia subnet

MẠNG MÁY TÍNH


Nội dung

1. Giới thiệu
2. Địa chỉ IP
3. Chia subnet

27
Nhắc lại
Giới thiệu - 1
85 NĐC Q1 42/5 LTK Q10

227 NVC Q5 5 NTMK Q1

28
Giới thiệu - 2
192.168.0.2

192.168.0.1

192.168.0.3 192.168.0.4

29
Giới thiệu - 3

❑Địa chỉ mạng (identifier):


▪ Định danh của 1 node mạng
❑Phân loại:
▪ Địa chỉ vật lý
• do nhà sản xuất ấn định trên sản phẩm
• VD: địa chỉ MAC (Media Access Control)
▪ Địa chỉ logic
• do người dùng ấn định
• VD: địa chỉ IP (Internet Protocol)

30
Nội dung
1. Giới thiệu
2. Địa chỉ IP
3. Chia subnet

31
Địa chỉ IP

❑ Tầng 3 trong mô hình OSI


❑ Version:
• IPv4
• IPv5 (RFC 1819 )
• IPv6

32
Địa chỉ IPv4 - 1

❑Kích thước: 4 bytes (32 bits)


❑Định dạng:
▪ Mỗi byte được biểu diễn bằng số thập phân, gọi là một octet

▪ hai octet được viết cách nhau bằng 1 dấu chấm “.”

VD: 10101100.00011101.00000001.00001010
172.29.1.10
❑Chia thành 2 phần:
▪ Network ID (NetID)
▪ Host ID
32 bit

33
Địa chỉ IPv4 - 2

34
Địa chỉ IPv4 - 3
❑Subnet mask
▪ Dùng phân định phần NetID và HostID trong địa chỉ IPv4
▪ Kích thước 4 bytes
• Các bit thuộc NetID có giá trị là 1
• Các bit thuộc HostID có giá trị là 0

VD: 192.168.1.2/24
HostIP 1100 0000 1010 1000 0000 0001 0000 0010
SubnetMask 1111 1111 1111 1111 1111 1111 0000 0000
Net ID
Host ID

➔ Net Addr: 192.168.1.0


➔ Broadcast: 192.168.1.255 35
Địa chỉ IPv4 - 4
❑Địa chỉ đường mạng (Net Addr)
▪ Các bit thuộc NetID: giữ nguyên
▪ Các bit thuộc Host ID: xoá về 0
❑Địa chỉ broadcast
▪ Các bit thuộc NetID: giữ nguyên
▪ Các bit thuộc Host ID: bật lên 1
VD: 172.29.5.128/255.255.192.0
(hoặc 172.29.5.128/18)
IP 1010 1100 0001 1101 0000 0101 1000 0000

Subnet Mask 1111 1111 1111 1111 1100 0000 0000 0000
Net Address
Broadcast 36
Địa chỉ IPv4 - 5

❑Hai node có cùng địa chỉ đường mạng thì thuộc


cùng 1 đường mạng
192.168.1.22/24 và 192.168.1.200/24 ➔ cùng 1 đường mạng
192.168.1.22/24 và 192.168.2.11/24 ➔ khác đường mạng

❑Số địa chỉ host hợp lệ trong 1 đường mạng


▪ 2m-2
• m là số bit trong phần HostID
VD: 172.29.1.1/16
➔ m = 32 – 16 = 16

➔ Số host trong 1 network = 216-2

37
Cho địa chỉ IP: 172.16.8.159 và subnet mask tương ứng 255.255.255.192. xác
định địa chỉ mạng của IP trên

A 172.16.8.128

B 172.16.8.0

C 172.16.8.191

D 172.16.0.128
Địa chỉ nào sau đây là địa chỉ quảng bá của mạng 12.18.72.128/28

A 12.18.72.141

B 12.18.72.143

C 12.18.72.180

D 12.18.72.255
Địa chỉ IPv4 – 7
Phân lớp

Multicast Address

38
Địa chỉ IPv4 - 8

❑Subnet mask mặc định:


• Lớp A: 255.0.0.0 (/8)
• Lớp B: 255.255.0.0 (/16)
• Lớp C: 255.255.255.0 (/24)
❑VD: 15.19.18.29

00001111

– Lớp A
– Subnet mask mặc định: 255.0.0.0

39
Địa chỉ IPv4 – 9

❑Cho địa chỉ IP: 172.29.7.10


• Lớp:
• Net Addr :
• Số host trong cùng network:
• Các địa chỉ của host:
• Địa chỉ broadcast:

40
Địa chỉ IPv4 – 10

❑Cho địa chỉ IP: 172.29.7.10


• Lớp: B
• Net Addr : 172.29.0.0
• Số host trong cùng network: 216-2
• Các địa chỉ: 172.29.0.1 – 172.29.255.254
• Địa chỉ broadcast:172.29.255.255

41
Địa chỉ IPv4 - 11

❑ Phân loại:
▪ Địa chỉ public:
• Dùng để trao đổi trên Internet
• Địa chỉ thật
▪ Địa chỉ private
• Dùng để đánh địa chỉ cho các mạng LAN bên trong 1 tổ chức
• Địa chỉ ảo
▪ Địa chỉ loopback: 127.0.0.0 – 127.255.255.255

42
MỘT SỐ SỰ CỐ THÔNG DỤNG

Thiết lập địa chỉ mạng không đúng

SD
P110

Professional Workstation 5000


196.135.8.17

Không thể truyền thông

SD
P110

Professional Workstation 5000


195.135.4.10
MỘT SỐ SỰ CỐ THÔNG DỤNG

Trùng địa chỉ IP

Tôi là
P110
SD

131.107.5.10. P110
SD

Professional Workstation 5000 Professional Workstation 5000

Host 2
Trùng địa chỉ IP,
Host 1 khởi động P110
SD

Tôi không thể truyền thông P110


SD

Professional Workstation 5000 Professional Workstation 5000

Host 1 Host 2 khởi động


MỘT SỐ SỰ CỐ THÔNG DỤNG

Sai địa chỉ mạng


IP address = 131.125.10.10 IP address = 131.125.1.3 IP address = 131.125.1.4
Default gateway = 131.125.1.1 Default gateway = 131.125.1.1 Default gateway = 131.126.2.2
Computer 1 Computer 2 Computer 3
SD SD SD
P110 P110 P110

Professional Workstation 5000 Professional Workstation 5000 Professional Workstation 5000

Network
1 SD

131.125.1.1
REMOTEACCESS SERVER
540 8

.........
pentium

131.126.2.2
Network
2
SD SD SD
P110 P110 P110

Professional Workstation 5000 Professional Workstation 5000 Professional Workstation 5000

IP address = 131.126.2.2 IP address = 131.125.5.2 IP address = 131.126.2.5


Default gateway = 131.126.12.2 Default gateway = 131.126.2.2 Default gateway = 131.126.2.2
Computer 4 Computer 5 Computer 6
Chương
Phương tiện truyền dẫn
MẠNG MÁY TÍNH
Nội dung

1. Giới thiệu
2. PTTD hữu tuyến
3. PTTD vô tuyến
Giới thiệu - 1

❑Phương tiện truyền dẫn: là môi trường dùng để


truyền tín hiệu từ nơi này đến nơi khác
❑Phân loại:
▪ Hữu tuyến: cáp đồng trục, cáp xoắn, cáp quang
▪ Vô tuyến: sóng vô tuyến (wireless)
Giới thiệu - 2

❑Các vấn đề liên quan:


▪ Chi phí
▪ Tốc độ
▪ Suy giảm (suy dần) tín hiệu
▪ Nhiễu
▪ An toàn
Nội dung

1. Đặc tính của một loại PTTD


2. PTTD hữu tuyến
3. PTTD vô tuyến
Cáp đồng trục (Coax cable) - 1
Cáp đồng trục – 2

❑Cấu tạo:
▪ Hai dây dẫn quấn quanh một trục chung
▪ Dây dẫn trung tâm: dây đồng hoặc dây đồng bện
▪ Dây dẫn ngoài: dây đồng bện hoặc lá ➔bảo vệ dây dẫn
trung tâm khỏi nhiễu điện từ và được nối đất để thoát
nhiễu.
▪ Giữa 2 dây dẫn là một lớp vỏ cách điện
▪ Ngoài cùng là lớp vỏ plastic dùng để bảo vệ cáp
Cáp đồng trục - 3

❑Phân loại:
▪ Cáp mỏng (thin cable/ ThinNet – 10BASE2)
• đường kính: 6mm
• chiều dài cáp tối đa: 185m
▪ Cáp dày (thick cable/ ThickNet – 10BASE5)
• đường kính: 13mm
• chiều dài cáp tối đa: 500m
Cáp thinnet – cách kết nối - 1
Cáp thinnet – cách kết nối - 2
Cáp thicknet – cách kết nối - 1
Cáp thicknet – cách kết nối - 2
Cáp xoắn (Twisted pair) - 1
Cáp xoắn - 2

❑Cấu tạo:
▪ Hai dây dẫn được xoắn lại thành một cặp
➔ chống nhiễu từ bên ngoài và nhiễu từ dây dẫn kế cận
(crosstalk)
▪ Mức độ xoắn (trên 1m dây) càng cao thì khả năng chống
nhiễu crosstalk càng cao
❑Phân loại:
▪ STP (Shielded Twisted Pair)
▪ S/STP (Screened Shielded Twisted Pair)
▪ UTP (Unshielded Twisted Pair)
▪ S/UTP - FTP (Screened Unshielded Twisted Pair)
UTP – S/UTP - 1
UTP – S/UTP - 2

❑Chi phí: rẻ nhất


❑Độ suy dần: lớn
❑Chiều dài tối đa : 100m
❑EMI: dễ bị nhiễu
❑Đầu nối: RJ-45
UTP – 3
STP – S/STP - 1
STP – S/STP - 2

❑Chi phí:
▪ Đắt hơn ThinNet và UTP
▪ nhưng rẻ hơn ThickNet và cáp quang
❑Tốc độ: 10 – 100Mbps
❑Độ suy dần (attenuation) : cao
❑Nhiễu: chống nhiễu tốt
❑Độ dài tối đa: 100m
❑Đầu nối: đầu nối DIN (DB-9), RJ-45
Đầu bấm rj-45
Chuẩn bấm cáp với đầu bấm rj-45
CÁCH BẤM CÁP XOẮN
Bấm cáp xoắn với đầu bấm RJ-45
Cáp quang (Fiber optic) – mô tả
Cáp quang – mô tả

❑Dùng sóng ánh sáng để truyền


• Sự khúc xạ
• Sự phản xạ
❑Không bị nhiễu
❑Độ suy dần: thấp
❑Chiều dài cáp: rất lớn, đến vài Km
❑Chi phí: rất đắt tiền
❑Khó lắp đặt
Cáp quang – phân loại

❑Mode: đường đi của ánh sáng khi vào trong lõi của
cáp quang
❑Phân loại:
• Đa mode (multi-mode)

step-index multimode graded-index multimode

mode)
• Đơn mode (single
Cáp quang - connector
Cáp quang – cách kết nối

SC
Cáp quang – thành phần

❑Tx: biến đổi tín hiệu điện thành xung ánh sáng
• LED: dùng cho đa mode
• LASER: dùng cho đơn mode
❑Rx (PIN photodiode): chuyển xung ánh sáng thành
tín hiệu điện
Nội dung

1. Đặc tính của một loại PTTD


2. PTTD hữu tuyến
3. PTTD vô tuyến
PTTD vô tuyến

❑Là loại đường truyền sử dụng không khí làm vật


mang tín hiệu thay cho cáp.
❑Các loại đường truyền vô tuyến:
▪ Radio
▪ Viba
▪ Tia hồng ngoại
▪ Laser
▪ Vệ tinh (satellites)
▪ …
Tại sao dùng PTTD vô tuyến?

❑Loại bỏ các ràng buộc vật lý


▪ Không thể đi cáp qua những địa hình phức tạp
▪ Sử dụng các thiết bị di động
❑Thiết lặp đường truyền tạm thời
❑Bất lợi: security
Phân bố các chuẩn wireless - 1
Phân bố các chuẩn wireless - 2

200 802.11n

54 802.11a,g 802.11a,g point-to-point data


Data rate (Mbps)

5-11 802.11b 802.16 (WiMAX)

4 UMTS/WCDMA-HSPDA, CDMA2000-1xEVDO 3G cellular


enhanced
1 802.15

.384 UMTS/WCDMA, CDMA2000 3G

.056 IS-95, CDMA, GSM 2G

Indoor Outdoor Mid-range Long-range


10-30m 50-200m outdoor outdoor
200m – 4 Km 5Km – 20 Km
So sánh các loại PTTD
Chương
Thiết bị mạng
MẠNG MÁY TÍNH
Nội dung

❑Các thiết bị mạng


❑Collision domain & Broadcast domain
Collision
❑Collision (đụng độ): khi có hai hay nhiều
node cùng gởi DL lên đường truyền chia sẻ
cùng lúc
Giới thiệu

❑Chức năng
▪ Hỗ trợ truy cập mạng
• NIC
▪ Dùng để phân tách mạng hoặc mở rộng mạng
• Router
• Switch, Bridge, hub, repeater, gateway
▪ Dùng để truy cập từ xa
• Modem, ADSL modem
Các thiết bị mạng

❑Tầng 1: modem, repeater, hub


❑Tầng 2: bridge, switch
❑Tầng 3: router
❑Khác: NIC, access point
Modem - 1

❑MODEM = MOdulate and DEModulate


❑Là thiết bị cho phép các máy tính truyền thông với
nhau qua mạng điện thoại
Modem - 2

❑Chức năng:
▪ Điều chế [Modulate]: chuyển đổi tín hiệu số (digital) trên
máy tính thành tín hiệu tương tự (analog) trên điện thoại.
▪ Giải điều chế [Demodulate]: chuyển đổi tín hiệu tín hiệu
tương tự trên điện thoại thành tín hiệu số trên máy tính
Repeater - 1

❑Repeater là thiết bị mạng nối kết 2 nhánh mạng


▪ nhận tín hiệu ở một nhánh mạng
▪ khuyếch đại tín hiệu (không xử lý nội dung)
▪ truyền đi tiếp vào nhánh mạng còn lại
❑Số lượng repeater trong 1 mạng LAN có hạn
Repeater – minh họa tín hiệu mạng
Hub

❑Là thiết bị mạng cho phép tập kết dây dẫn mạng
❑Tín hiệu vào 1 port của Hub sẽ được chuyển ra tất cảcác
port
▪ Mỗi port là 1 shared link
Hub – minh họa tín hiệu mạng
Hub – phân loại

❑Passive hub:
▪ Không khuyếch đại tín hiệu
❑Active Hub
▪ Khuyếch đại tín hiệu
▪ Như 1 repeater nhiều cổng
❑Intelligent Hub
▪ Là 1 active hub
▪ Chuyển mạch (switching): chuyển tín hiệu đến đúng port
của máy nhận
Repeater & hub

❑Chức năng: Tái sinh tín hiệu mạng và chuyển tín


hiệu mạng đến các segment mạng còn lại
❑Đặc điểm:
▪ Không thể liên kết các segment khác nhau
• Khác đường mạng
• Khác phương pháp truy cập đường truyền
• dùng phương tiện truyền dẫn khác nhau
▪ Không thể “nhận dạng” packet
▪ Không cho phép giảm tải mạng
▪ Cho phép mở rộng mạng dễ dàng
Bridge - 1

❑Là thiết bị mạng cho phép nối kết 2 nhánh mạng


vật lý
❑Chức năng: chuyển có chọn lọc các gói tin đến
nhánh mạng chứa trạm nhận gói tin.
▪ Duy trì bảng địa chỉ
• MAC – Port
• khởi tạo và duy trì tự động hoặc thủ công
▪ Nếu trạm nhận cùng segment với trạm gởi, hủy gói tin;
ngược lại chuyển gói tin đến segment đích
Bridge – minh họa tín hiệu mạng
Src MAC Dst MAC

00000CAAAAAA 00000CDDDDD
00000CBBBBBB

A B

00000CAAAAAA
MAC Address Port
00000CAAAAAA 1
00000CBBBBBB 1
1
00000CCCCCCC 2
00000CDDDDDD 2

00000CCCCCCC 00000CDDDDDD

C D D
Bridge – minh họa tín hiệu mạng
Src MAC Dst MAC

00000CAAAAAA 00000CBBBBB
00000CBBBBBB

A B

00000CAAAAAA
MAC Address Port
00000CAAAAAA 1
00000CBBBBBB 1
1
00000CCCCCCC 2
00000CDDDDDD 2

00000CCCCCCC 00000CDDDDDD

C D
D
Bridge - 3

❑Đặc điểm:
▪ Cho phép mở rộng cùng một mạng logic với nhiều kiểu chạy
cáp khác nhau
▪ Tách một mạng thành nhiều phần nhằm giảm lưu lượng
mạng.
▪ Chậm hơn repeater do phải xử lý các gói tin
▪ Không có khả năng tìm đường đi tối ưu trong trường hợp có
nhiều đường đi.
▪ Đắt tiền hơn repeater
Switch - 1

❑Là 1 bridge nhiều port


❑Hỗ trợ full-duplex
❑Duy trì bảng CAM (Content Addressable Memory)
▪ MAC – P ort
Switch - 2
❑ Chức năng:
▪ Học địa chỉ MAC (self –learning)
▪ Filtering/Forwarding
▪ Tránh loop
❑ Các chế độ chuyển mạch:
▪ Store-and-forward
• Đọc hết nội dung gói tin
• Đảm bảo chính xác
▪ Cut-through
• Đọc 14 bytes đầu tiên
• Không phát hiện được gói tin bị lỗi
▪ Fragment-free
• Đọc 1 phần gói tin
Switch – học địa chỉ mac - 1

Nhận gói tin


MAC addr port TTL

Ghi nhận link


tương ứng với host gởi

Y
Dest -MAC có trong Gởi
switch table? Đến port tương ứng

flood
Switch – học địa chỉ mac - 2
Source: A
Dest: A’ Switch table
(giả sử ban đầu rỗng)
A A A’
MAC addr port TTL
C’ B A 1 60
A’ 4 60
1 2
A6A’
A’ 3
5 4

C
A’ A
B’ A’
Switch – học địa chỉ mac - 3
S4

S1
S3
A S2
F
D I
B C
G H
E

❑Hỏi: Khi A gởi cho F 1 gói tin???


Switch – VLAN

❑VLAN = Virtual LAN


❑Nhóm một số port thành 1 mạng LAN ảo
Router

❑Chức năng:
▪ Nối kết các mạng logic khác nhau.
▪ Sử dụng địa chỉ logic (IP) để xử lý gói tin
▪ Định tuyến (Routing)
• Chạy các thuật toán định tuyến (OSPF, RIP, BGP,…) ➔ tạo ra bảng
định tuyến

▪ Chuyển tiếp (Forwarding)


• Chuyển gói tin từ cổng vào (incoming port) ra cổng ra (outcoming
port)
NIC

❑NIC = Network Interface Card


❑Là thiết bị chuyển đổi tín hiệu máy tính thành tín
hiệu trên phương tiện truyền dẫn và ngược lại
❑Cung cấp kết nối vật lý đến phương tiện truyền
dẫn
Access Point

❑Là thiết bị cho phép thiết bị truy cập mạng không


dây
❑Đóng vai trò như 1 hub
❑Thành phần:
▪ Bộ thu: thu tín hiệu radio và chuyển thành tín hiệu mạng
▪ Bộ phát: chuyển tín hiệu mạng thành tín hiệu radio
❑Ngày nay, một số AP còn tích hợp chức năng của 1
Router
THIẾT BỊ MẠNG

Nhu cầu Thiết bị


Kết nối nhiều máy tính trong 1 Net SW, Hub, Bridge
Kết nối nhiều Net Router
Truyền qua điện thoại Modem
Kéo dài dây cáp Repeater
Thiết lập mạng không dây AP
Nội dung

❑Các thiết bị mạng


❑Collision domain & Broadcast domain
Collision domain - Broadcast domain

❑ Collision domain (miền đụng độ): là miền có khả năng


xảy ra đụng độ
▪ Là miền dùng chung (chia sẻ)
▪ Hai segment thuộc cùng 1 collision domain nếu chúng gây ra
collision khi đồng thời gởi dữ liệu xuống đường truyền

❑ Broadcast domain (miền broadcast): là miền nhận


được gói tin broadcast
▪ Gồm nhiều collision domain (1 – n)
▪ Collision domain A và B thuộc cùng 1 broadcast domain nếu
các node mạng trong collision domain B nhận được gói tin
broadcast từ 1 node trong collision domain A
Các thiết bị mạng

❑Thiết bị mở rộng collision domain:


▪ Repeater
▪ Hub
▪ …
❑Thiết bị phân tách collision domain
▪ Switch
▪ Bridge
❑Thiết bị phân tách broadcast domain
▪ Router
▪ Switch (VLAN)
Cách tính

• Một Port của Router là 1 Broadcast Domain


• Các port Router được nối lại với nhau chỉ tính là 1
• Một port của SW, router là một Collision Domain
• Các port của SW, Router nối lại với nhau chỉ tính là 1
• Hub là 1 Collision Domain
Ví dụ 1
Ví dụ 2

Hub Bridge Switch Router

Collision Domains:
1 4 4 4
Broadcast Domains:
1 1 1 4
Ví dụ 3
Tài liệu tham khảo

❑Slide của J.F Kurose and K.W. Ross về Computer


Networking: A Top Down Approach
❑http://www.eie.polyu.edu.hk/~ensmall/eng224

You might also like