You are on page 1of 121

Mạng máy tính

Tổng quan về Mạng máy tính 1-1


1
Chương 1: Tổng quan về mạng máy tính Chương 1: Tổng quan về Mạng máy tính
❑ Khái niệm Internet
❑ Khái niệm giao thức
1.1 Một số khái niệm cơ bản trong Internet
❑ Network edge 1.2 Network edge: Rìa mạng
❑ Network core 1.3 Network core: Nhân mạng
❑ Access net, physical media 1.4 Network access và physical media
❑ Cấu trúc Internet/ISP
1.5 Cấu trúc Internet và ISP
❑ Tầng giao thức, mô hình dịch vụ
1.6 Độ trễ và độ mất gói trong mạng chuyển
❑ Mô hình mạng
mạch gói
1.7 Các tầng giao thức, các mô hình dịch vụ
1.8 Lịch sử
Tổng quan về Mạng máy tính 1-2 Tổng quan về Mạng máy tính 1-3

Hình dung về Internet Hình dung về Internet


❑ Kết nối hàng tỷ thiết bị tính router ❑ Giao thức router
workstation workstation
toán: host = hệ thống cuối Điều khiển việc truyền, nhận
server server
❑ Host chạy các ứng dụng mobile các bản tin mobile
mạng local ISP  Ví dụ: TCP, IP, HTTP, FTP, local ISP
❑ Liên kết truyền thông PPP
 Cáp quang, cáp đồng, sóng ❑ Internet:
vô tuyến, vệ tinh regional ISP Mạng của các mạng regional ISP
 Tốc độ truyền (transmission  Phân cấp lỏng lẻo
rate) = bandwidth  Public Internet và private
❑ Router: chuyển tiếp các intranet
gói tin (đoạn dữ liệu) ❑ Các chuẩn trong Internet
company  RFC: Request for comments company
network  IETF: Internet Engineering network
2 Task Force
Tổng quan về Mạng máy tính 1-4 Tổng quan về Mạng máy tính 1-5
Sự tiêu chuẩn hóa Internet Góc nhìn dịch vụ
❑ Hạ tầng truyền thông
❑ International Telecommunications Union (ITU) Cho phép các ứng dụng phân
 Các chuẩn truyền (ví dụ: modem - V.90)
tán:
 Web, email, games, thương
 Các dịch vụ điện thoại, fax truyền thống
mại điện tử, chia sẻ file
❑ Internet Engineering Task Force (IETF)
❑ Các dịch vụ truyền thông
 Core: Internet Protocol, transport (TCP)
Cung cấp cho các ứng dụng:
 Ứng dụng: email, HTTP, FTP, SSH, NFS, VoIP
 Truyền không tin cậy không
❑ W3C hướng kết nối
 HTML, XML, schema, SOAP, semantic web, …  Truyền tin cậy hướng kết nối

❑ OASIS
 XML schema cho các ứng dụng cụ thể

❑ Nhiều các tổ chức khác

Tổng quan về Mạng máy tính 1-6 Tổng quan về Mạng máy tính 1-7

Khái niệm giao thức Khái niệm giao thức


Giao thức của con Các giao thức mạng Giao thức của con người và giao thức của mạng máy tính:
người: (network protocol):
❑ “what’s the time?” ❑ Tất cả các hoạt động
❑ “I have a question” trong Internet dựa trên Hi TCP connection
các giao thức req
Hi
TCP connection
Got the response
… Các bản tin nào đó Các giao thức định nghĩa time? Get http://www.hnue.edu.vn
gửi đi định dạng, thứ tự của các 2:00
… Hành động nào đó khi bản tin gửi và nhận giữa <file>
các bản tin nhận các thực thể mạng và các Thời gian
hoạt động truyền nhận bản
tin Các giao thức khác của con người?
3
Tổng quan về Mạng máy tính 1-8 Tổng quan về Mạng máy tính 1-9
Chương 1: Tổng quan về Mạng máy tính Cấu trúc mạng: Nhìn cụ thể hơn
1.1 Một số khái niệm cơ bản trong Internet ❑ Network edge: các
1.2 Network edge ứng dụng và các
host
1.3 Network core ❑ Network core:
1.4 Mạng truy cập và phương tiện vật lý  Các thiết bị định
1.5 Cấu trúc Internet và ISP tuyến
 Mạng của các mạng
1.6 Độ trễ và độ mất gói trong mạng chuyển
❑ Mạng truy cập,
mạch gói
phương tiện vật lý:
1.7 Các tầng giao thức, các mô hình dịch vụ các liên kết truyền
1.8 Lịch sử thông
Tổng quan về Mạng máy tính 1-10 Tổng quan về Mạng máy tính 1-11

Network edge: Network edge: Dịch vụ hướng kết nối


❑ Hệ thống cuối (hosts):
 Chạy các chương trình ứng
Mục đích: truyền dữ liệu Dịch vụ TCP [RFC 793]
dụng giữa các hệ thống cuối ❑ Tin cậy, truyền dữ liệu
 Ví dụ: Web, email ❑ Handshaking: thiết lập dòng byte có thứ tự
 tại “edge of network” (chuẩn bị) cho việc  Mất gói: báo nhận (ACK) và
truyền dữ liệu truyền lại
❑ Mô hình client/server
 Giao thức của con ❑ Điều khiển luồng:
 Client gửi yêu cầu và nhận dịch
người: A: Hello, B: hello  Bên gửi không truyền vượt
vụ từ server
 Thiết lập trạng thái trong quá khả năng bên nhận
 Ví dụ: Web browser/server,
hai host truyền thông
email client/server ❑ Điều khiển tắc ngẽn:
❑ TCP - Transmission  Bên gửi giảm tốc độ gửi khi
❑ Mô hình peer-peer:
Control Protocol mạng tắc ngẽn
 Sử dụng rất ít hoặc không sử
 Dịch vụ hướng kết nối
dụng các server dành riêng
4 của Internet
Tổng quan về Mạng máy tính 1-12 Tổng quan về Mạng máy tính 1-13
Network edge: Dịch vụ không hướng kết nối Chương 1: Tổng quan về Mạng máy tính

Mục đích: Truyền dữ liệu Các ứng dụng sử dụng 1.1 Một số khái niệm cơ bản trong Internet
giữa các hệ thống cuối TCP: 1.2 Network edge
❑ UDP - User Datagram ❑ HTTP (Web), FTP (file
Protocol [RFC 768]: transfer), Telnet (remote 1.3 Network core
 Không hướng kết nối login), SMTP (email) 1.4 Network access và physical media
 Truyền dữ liệu không
tin cậy 1.5 Cấu trúc Internet và ISP
Các ứng dụng sử dụng
 Không điều khiển UDP: 1.6 Độ trễ và độ mất gói trong mạng chuyển
luồng mạch gói
❑ Truyền dòng media, hội
 Không điều khiển tắc nghị truyền hình, DNS,
ngẽn 1.7 Các tầng giao thức, các mô hình dịch vụ
điện thoại Internet
1.8 Lịch sử
Tổng quan về Mạng máy tính 1-14 Tổng quan về Mạng máy tính 1-15

Network Core Network Core: Chuyển mạch kênh

❑ Mạng lưới của các router Tài nguyên end-end


kết nối với nhau dành riêng cho cuộc
❑ Câu hỏi: Dữ liệu truyền gọi
qua mạng như thế nào? ❑ Băng thông đường
 Chuyển mạch kênh: truyền, khả năng
đường dành riêng cho chuyển mạch
mỗi cuộc gọi: mạng ❑ Tài nguyên dành riêng:
điện thoại không chia sẻ khi rỗi
❑ Chuyển mạch kênh
 Chuyển mạch gói: dữ
đảm bảo hiệu năng
liệu gửi qua mạng dưới
❑ Đòi hỏi thiết lập cuộc
các đoạn riêng rẽ
gọi
5
Tổng quan về Mạng máy tính 1-16 Tổng quan về Mạng máy tính 1-17
Network Core: Chuyển mạch kênh Chuyển mạch kênh: FDM và TDM
Các tài nguyên mạng Ví dụ:
❑ Chia các bandwidth của FDM
(ví dụ: bandwidth) đường truyền thành các 4 users
được chia thành các phần
phần  Chia theo tần số Tần số
❑ Các phần này cấp cho
 Chia theo thời gian
các cuộc gọi
❑ Các phần tài nguyên rỗi Thời gian
nếu không được sử dụng TDM
bởi cuộc gọi mà tài
nguyên đó đã cấp phát
cho cuộc gọi này (no
sharing) Tần số

Thời gian
Tổng quan về Mạng máy tính 1-18 Tổng quan về Mạng máy tính 1-19

Câu hỏi bài tập Network Core: Chuyển mạch gói


Mỗi dòng dữ liệu end-end chia Sự tranh giành tài nguyên:
❑ Tính thời gian để gửi một file 640.000 bits từ thành các gói tin ❑ Yêu cầu tài nguyên của
host A tới host B qua mạng chuyển mạch ❑ Gói tin của user A, B dùng tất cả user có thể vượt
kênh? chung tài nguyên mạng quá khả năng cung cấp
 Các đường truyền là 1.536 Mbps ❑ Mỗi gói tin sử dụng toàn bộ ❑ Tắc ngẽn: hàng đợi gói
 Mỗi đường truyền sử dụng TDM 24 slot băng thông đường truyền tin, đợi để sử dụng
 Thời gian thiết lập kênh giữa hai host là 500 msec ❑ Tài nguyên sử dụng theo đường truyền
yêu cầu ❑ Store-and-forward: Các
gói tin chuyển tới hop tại
một thời điểm
 Nút nhận đầy đủ gói tin
trước khi chuyển tiếp đi

6
Tổng quan về Mạng máy tính 1-20 Tổng quan về Mạng máy tính 1-21
So sánh chuyển mạch gói
Chuyển mạch gói: Ghép kênh tĩnh và chuyển mạch kênh
10 Mb/s Chuyển mạch gói là sự lựa chọn?
A Ethernet Ghép kênh tĩnh C
❑ Tốt cho dữ liệu truyền thay đổi
1.5 Mb/s Chia sẻ tài nguyên
B
Hàng đợi gói tin  Đơn giản, không thiết lập cuộc gọi
Đợi đường truyền ra
❑ Tắc nghẽn tăng: độ trễ và độ mất gói tin
 Các giao thức cần đảm bảo truyền dữ liệu tin cậy,
D điều khiển tẵc ngẽn
E
❑ Cung cấp hành vi giống circuit swiching như thế nào?
Chuỗi gói tin A và B không có mẫu cố định ghép  Đảm bảo băng thông cần cho ứng dụng audio/video
kênh tĩnh.
 Vấn đề chưa được giải quyết (chương 6)
Trong TDM, mỗi host nhận cùng số slot trong quy
vòng TDM frame.
Tổng quan về Mạng máy tính 1-22 Tổng quan về Mạng máy tính 1-24

Phân loại mạng


Mạng chuyển mạch gói: forwarding
❑ Mục đích: Chuyển các gói tin qua các router từ nguồn Mạng viễn thông
tới đích
 Nhiều thuật toán chọn đường (chương 4)
❑ Mạng datagram: Mạng chuyển Mạng chuyển
 Địa chỉ đích trong gói tin xác định next hop
mạch kênh mạch gói
 Route có thể thay đổi trong phiên
 Tương tự: lái xe, hỏi đường
FDM Mạng Mạng
TDM
❑ Mạng virtual circuit: VC Datagram
 Mỗi gói tin mạng giá trị tag (virtual circuit ID), tag xác định next
hop
• Mạng Datagram không là hướng kết nối hay không hướng kết nối.
 Đường đi cố định xác định tại thời điểm thiết lập cuộc gọi, cố
• Internet cung cấp cả dịch vụ hướng kết nối (TCP) và dịch vụ không
định suốt cuộc gọi
hướng kết nối (UDP) cho các ứng dụng.
 Router duy trì trạng thái của mỗi cuộc gọi
7
Tổng quan về Mạng máy tính 1-26 Tổng quan về Mạng máy tính 1-27
Chương 1: Tổng quan về Mạng máy tính Mạng truy cập và phương tiện vật lý
Kết nối hệ thống cuối tới
1.1 Một số khái niệm cơ bản trong Internet router thế nào?
1.2 Network edge ❑ Mạng truy cập dân cư
1.3 Network core ❑ Mạng truy cập cơ quan
(trường học, công ty)
1.4 Mạng truy cập và phương tiện vật lý
❑ Mạng truy cập di động
1.5 Cấu trúc Internet và ISP
Làm quen với:
1.6 Độ trễ và độ mất gói trong mạng chuyển
❑ Băng thông (bits per
mạch gói second) của mạng truy
1.7 Các tầng giao thức, các mô hình dịch vụ cập?
1.8 Lịch sử ❑ Dùng chung hay dành
riêng?
Tổng quan về Mạng máy tính 1-28 Tổng quan về Mạng máy tính 1-29

Mạng truy cập dân cư: Truy cập điểm tới điểm Mạng truy cập dân cư: cable modem

❑ Dialup qua modem


❑ HFC: hybrid fiber coax
 56Kbps (thường nhỏ hơn), truy
cập trực tiếp tới router  Không đối xứng: 30Mbps đường xuống, 2
Mbps đường lên
 Không thể vừa sử dụng mạng
vừa sử dụng điện thoại tại một ❑ Mạng cáp và HFC kết nối gia đình tới ISP router
thời điểm  Các gia định chia sẻ truy cập tới router
❑ ADSL: asymmetric digital subscriber line ❑ Triển khai: qua các công ty truyền hình cáp
 1 Mbps đường lên (thường < 256 kbps)
 8 Mbps đường xuống (thường < 1 Mbps)
 FDM: 50 kHz - 1 MHz cho đường xuống
4 kHz - 50 kHz cho đường lên
0 kHz - 4 kHz cho điện thoại
8
Tổng quan về Mạng máy tính 1-30 Tổng quan về Mạng máy tính 1-31
Mạng truy cập dân cư: cable modem Kiến trúc mạng cáp: Tổng quan

Thường 500 tới 5,000 gia đình

cable headend

Gia đình
cable distribution
network (simplified)

Tổng quan về Mạng máy tính 1-32 Tổng quan về Mạng máy tính 1-33

Kiến trúc mạng cáp: Tổng quan Kiến trúc mạng cáp: Tổng quan

server(s)

cable headend cable headend

Gia đình Gia đình


cable distribution cable distribution
network (simplified) network
9
Tổng quan về Mạng máy tính 1-34 Tổng quan về Mạng máy tính 1-35
Kiến trúc mạng cáp: Tổng quan Mạng truy cập công ty: Local area network
FDM: ❑ Mạng LAN của công
C ty/trường học kết nối các hệ
O
V
I
V
I
V
I
V
I
V
I
V
I D D
N
T
thống cuối tới edge router
D D D D D D A A R
E
O
E
O
E
O
E
O
E
O
E
O
T
A
T
A
O
L
❑ Ethernet:
1 2 3 4 5 6 7 8 9  Đường truyền dùng
Channels
chung hoặc dành riêng
kết nối các hệ thống cuối
và router
 10 Mbs, 100Mbps,
Gigabit Ethernet
cable headend
❑ LAN: Chương 5
Gia đình
cable distribution
network

Tổng quan về Mạng máy tính 1-36 Tổng quan về Mạng máy tính 1-37

Mạng truy cập không dây Mạng công ty


❑ Mạng truy cập không dây kết Các thành phần mạng gia đình phổ biến:
nối hệ thống cuối tới router ❑ ADSL hoặc Cable Modem
❑ Router/Firewall/NAT
 Qua Base station còn gọi là Access Router
Point ❑ Ethernet
❑ Wireless Access Point
❑ Wireless LAN: Base
 802.11b (WiFi): 11 Mbps Station
❑ Wider-area wireless access
 Được cung cấp bởi nhà cung cấp Wireless
mạng điện thoại Kết nối với Laptop
Cable Router/
 3G ~ 384 kbps Cable
Modem Firewall
Mobile Headend
• Hiện thực?? Wireless
Host
 WAP/GPRS Access
Ethernet Point
10
Tổng quan về Mạng máy tính 1-38 Tổng quan về Mạng máy tính 1-39
Phương tiện vật lý Phương tiện vật lý: cáp đồng trục, cáp quang
Twisted Pair (TP) Cáp đồng trục: Cáp quang:
❑ Bit: Lan truyền giữa ❑ Hai dây đồng xoắn ❑ Mang tín hiệu ánh sáng
thiết bị truyền và nhận ❑ Hai dây dẫn bằng đồng,
thành từng cặp ❑ Tốc độ cao:
đồng trục
❑ Đường truyền vật lý: kết nối  Category 3: dây điện  Truyền điểm tới điểm tốc độ
giữa thiết bị phát và thu thoại truyền thống, 10 ❑ Hai chiều
cao (ví dụ: 5 Gps)
Mbps Ethernet ❑ Baseband:
❑ Guided Media: ❑ Tỷ lệ lỗi thấp: không ảnh
 Category 5:  Một kênh trên cáp
 Tín hiệu lan truyền trong
100Mbps Ethernet
hưởng bởi nhiễu điện từ
phương tiện vật lý rắn: cáp  Kế thừa Ethernet
Twisted Pair, cáp quang, cáp ❑ Broadband:
đồng trục
 Nhiều kênh trên cáp
❑ Unguided Media:  HFC
 Tín hiệu lan truyền tự do, ví
dụ như tín hiệu radio

Tổng quan về Mạng máy tính 1-40 Tổng quan về Mạng máy tính 1-41

Phương tiện vật lý: Sóng Radio Chương 1: Tổng quan về Mạng máy tính
❑ Tín hiệu mang trong phổ Kiểu đường truyền Radio:
điện từ ❑ Sóng Microwave(viba) mặt 1.1 Một số khái niệm cơ bản trong Internet
❑ Không có dây dẫn vật lý đất 1.2 Network edge
 Đạt tới 45 Mbps
❑ Hai chiều 1.3 Network core
❑ LAN (ví dụ: Wifi)
❑ Ảnh hưởng của môi
 2Mbps, 11Mbps
1.4 Network access và physical media
trường lan truyền:
 Phản xạ ❑ Wide-Area (Ví dụ:e.g., 1.5 Cấu trúc Internet và ISP
 Vật cản cellular) 1.6 Độ trễ và độ mất gói trong mạng chuyển
Nhiễu  3G: hàng trăm kbps

mạch gói
❑ Satellite(vệ tinh)
 Đạt tới 50Mbps (hoặc nhiều
1.7 Các tầng giao thức, các mô hình dịch vụ
kênh bandwidth nhỏ hơn) 1.8 Lịch sử
 Độ trễ end-end: 270 msec
11
 Các vùng địavềlýMạng
Tổng quan xa máy tính 1-42 Tổng quan về Mạng máy tính 1-43
Cấu trúc Internet: Mạng của các mạng Cấu trúc Internet: Mạng của các mạng
❑ Phân cấp tương đối ❑ “Tier-2” ISP: các ISP nhỏ hơn (thường mức vùng)
❑ Mức trung tâm: “Tier-1” ISPs (ví dụ: UUNet, BBN/Genuity,  Kết nối tới một hoặc nhiều Tier-1 ISP và các Tier-2 ISP

Sprint, AT&T), phạm vi quốc gia/quốc tế


 Đối xử với nhau ngang hàng
Tier-2 ISP cũng
Tier-1 cũng cung Tier-2 ISP là ngang hàng
Tier-2 ISP trả cho Tier-2 ISP
cấp kết nối với với các Tier-2
Tier-1 cung Tier-1 ISP chi phí
Tier 1 ISP public network Tier 1 ISP ISP khác, liên
cấp kết nối kết nối tới phần
NAP access point (NAP) NAP kết NAP
nội bộ còn lại của
Internet
❑ Tier-2 ISP là
Tier 1 ISP Tier 1 ISP khách hàng của Tier 1 ISP Tier 1 ISP Tier-2 ISP
Tier-1 ISP
Tier-2 ISP Tier-2 ISP

Tổng quan về Mạng máy tính 1-44 Tổng quan về Mạng máy tính 1-45

Cấu trúc Internet: Mạng của các mạng Cấu trúc Internet: Mạng của các mạng
❑ “Tier-3” ISP và local ISP ❑ Một gói tin chuyển qua nhiều mạng
 Mạng gần nhất đối với các hệ thống cuối

local
ISP Tier 3 local local
local local ISP Tier 3 local
Local ISP và ISP ISP local local
ISP ISP ISP ISP
Tier- 3 ISP là ISP ISP
Tier-2 ISP Tier-2 ISP
khách hàng của Tier-2 ISP Tier-2 ISP
các Tier ISP Tier 1 ISP
mức cao hơn, NAP Tier 1 ISP
các tier mức NAP
cao hơn kết nối
tier là khách Tier 1 ISP Tier 1 ISP
hàng của nó
Tier-2 ISP
Tier 1 ISP Tier 1 ISP Tier-2 ISP
với phần còn lại local
Tier-2 ISP Tier-2 ISP local
của Internet local
ISP Tier-2 ISP Tier-2 ISP
local local ISP
ISP local local local
ISP ISP 12 ISP
Tổng quan về Mạng máy tính 1-46
ISP ISP Tổng quan về Mạng máy tính 1-47
Các tầng giao thức Tổ chức của chuyến bay
Mạng là phức tạp!
ticket (purchase) ticket (complain)
❑ Nhiều thành phần:
 Host baggage (check) baggage (claim)

 Router gates (load) gates (unload)


 Liên kết của các phương tiện truyền khác nhau
runway takeoff runway landing
 Ứng dụng
 Giao thức airplane routing airplane routing
 Phần cứng, phần mềm airplane routing

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

Tổng quan về Mạng máy tính 1-48 Tổng quan về Mạng máy tính 1-49

Phân tầng chức năng


của chuyến bay Tại sao lại phân tầng?
Giải quyết với các hệ thống phức tạp:
ticket (purchase) ticket (complain) ticket
❑ Cấu trúc rõ ràng cho phép định danh, quan hệ của
baggage (check) baggage (claim baggage
các phần hệ thống phức tạp
gates (load) gates (unload) gate

runway (takeoff)
❑ Mô đun hóa để dễ bảo trì, nâng cấp hệ thống
runway (land) takeoff/landing

airplane routing airplane routing airplane routing airplane routing airplane routing  Sự thay đổi trong việc thực hiện dịch vụ của mỗi
departure intermediate air-traffic arrival
tầng là trong suốt với phần còn lại của hệ thống
airport control centers airport
 Ví dụ: Sự thay đổi trong thủ tục “in gate” không
ảnh hưởng tới phần còn lại của hệ thống
Layers: Mỗi lớp thực hiện một dịch vụ
❑ Có hạn chế của sự phân tầng ?
 Hoạt động xử lý qua chính lớp nội bộ của nó
 Phụ thuộc vào các dịch vụ mà lớp dưới cung cấp

13
Tổng quan về Mạng máy tính 1-50 Tổng quan về Mạng máy tính 1-51
source
Ngăn xếp giao thức Internet message M application
Đóng gói
segment Ht M transport
datagram Hn Ht M network
❑ Application: hỗ trợ các ứng dụng frame Hl Hn Ht M link
mạng application physical
 FTP, SMTP, … Hl Hn Ht M link Hl Hn Ht M
❑ Transport: truyền dữ liệu host-host transport physical
 TCP, UDP switch
❑ Network: dẫn đường các datagram từ network
nguồn tới đích
 IP, các giao thức dẫn đường link destination Hn Ht M network Hn Ht M
Hl Hn Ht M link Hl Hn Ht M
❑ Link: truyền dữ liệu giữa các thành M application
physical Ht M transport physical
phần mạng láng giềng
Hn Ht M network
 PPP, Ethernet Hl Hn Ht M link router
❑ Physical physical

Tổng quan về Mạng máy tính 1-52 Tổng quan về Mạng máy tính 1-53

Chương 1: Tổng quan về Mạng máy tính Độ trễ (Delay)


1.1 Một số khái niệm cơ bản trong Internet
1.2 Network edge
1.3 Network core
1.4 Network access và physical media
1.5 Cấu trúc Internet và ISP
1.6 Độ trễ và độ mất gói trong mạng chuyển
mạch gói
1.7 Các tầng giao thức, các mô hình dịch vụ
1.8 Lịch sử
14
Tổng quan về Mạng máy tính 1-54 Tổng quan về Mạng máy tính 1-55
Độ trễ (Delay) Độ trễ (Delay)

Tổng quan về Mạng máy tính 1-56 Tổng quan về Mạng máy tính 1-57

Độ trễ (Delay) Độ trễ (Delay)

15
Tổng quan về Mạng máy tính 1-58 Tổng quan về Mạng máy tính 1-59
Độ trễ (Delay) Độ trễ (Delay)

Tổng quan về Mạng máy tính 1-60 Tổng quan về Mạng máy tính 1-61

Độ trễ (Delay) Độ mất gói tin (loss)

16
Tổng quan về Mạng máy tính 1-62 Tổng quan về Mạng máy tính 1-63
Băng thông (Bandwidth) Chương 1: Tổng quan về Mạng máy tính

1.1 Một số khái niệm cơ bản trong Internet


1.2 Network edge
1.3 Network core
1.4 Network access và physical media
1.5 Cấu trúc Internet và ISP
1.6 Độ trễ và độ mất gói trong mạng chuyển
mạch gói
1.7 Các tầng giao thức, các mô hình dịch vụ
1.8 Lịch sử
Tổng quan về Mạng máy tính 1-64 Tổng quan về Mạng máy tính 1-65

Các tầng giao thức, các mô hình


Mô hình tham khảo OSI
dịch vụ
❑ Tầng 7: Tầng ứng dụng
(Application Layer)
❑ Tầng 6: Tầng trình bày
(Presentation Layer)
❑ Tầng 5: Tầng giao dịch
(Session Layer)
❑ Tầng 4: Tầng vận chuyển
(Transport Layer)
❑ Tầng 3: Tầng mạng (Network
Layer)
❑ Tầng 2: Tầng liên kết dữ liệu
(Data-Link Layer)
❑ Tầng 1: Tầng vật lý (Physical
Layer)
17
Tổng quan về Mạng máy tính 1-66 1-67
Mô hình tham khảo OSI Mô hình tham khảo OSI
❑ Tầng 7: Tầng ứng dụng (Application ❑ Tầng 6: Tầng trình bày (Presentation
Layer). Layer)
 Đây là tầng trên cùng, cung cấp các ứng dụng  Tầng này đảm bảo các máy tính có kiểu định
truy xuất đến các dịch vụ mạng. dạng dữ liệu khác nhau vẫn có thể trao đổi
 Bao gồm các ứng dụng của người dùng, ví dụ thông tin cho nhau.
như các Web Browser (Netscape Navigator,  Thông thường các mày tính sẽ thống nhất với
Internet Explorer ) nhau về một kiểu định dạng dữ liệu trung gian để
trao đổi thông tin giữa các máy tính

1-68 1-69

Mô hình tham khảo OSI Mô hình tham khảo OSI


❑ Tầng 5: Tầng giao dịch (Session Layer) ❑ Tầng 4: Tầng vận chuyển (Transport Layer)
 Tầng này cho phép các ứng dụng thiết lập, sử  Tầng này đảm bảo truyền tải dữ liệu giữa các quá
dụng và xóa các kênh giao tiếp giữa chúng (được trình.
gọi là giao dịch).  Dữ liệu gửi đi được đảm bảo không có lỗi, theo
 Cung cấp cơ chế cho việc nhận biết tên và các đúng trình tự, không bị mất mát, trùng lắp.
chức năng về bảo mật thông tin khi truyền qua  Đối với các gói tin có kích thước lớn, tầng này sẽ
mạng. phân chia chúng thành các phần nhỏ trước khi gửi
đi, cũng như tập hợp lại chúng khi nhận được

18
1-70 1-71
Mô hình tham khảo OSI Mô hình tham khảo OSI
❑ Tầng 3: Tầng mạng (Network Layer) ❑ Tầng 2: Tầng liên kết dữ liệu (Data-Link
 Tầng này đảm bảo các gói tin dữ liệu (Packet) có Layer)
thể truyền từ máy tính này đến máy tính kia cho  Tầng này đảm bảo truyền tải các khung dữ liệu
dù không có đường truyền vật lý trực tiếp giữa (Frame) giữa hai máy tính có đường truyền vật lý
chúng. nối trực tiếp với nhau.
 Nó nhận nhiệm vụ tìm đường đi cho dữ liệu đến  Nó cài đặt cơ chế phát hiện và xử lý lỗi dữ liệu
các đích khác nhau trong mạng. nhận.

1-72 1-73

Mô hình tham khảo OSI Chương 1: Tổng quan về Mạng máy tính

❑ Tầng 1: Tầng vật lý (Physical Layer) 1.1 Một số khái niệm cơ bản trong Internet
 Điều khiển việc truyền tải thật sự các bit trên 1.2 Network edge
đường truyền vật lý.
1.3 Network core
 Nó định nghĩa các tín hiệu điện, trạng thái đường
truyền, phương pháp mã hóa dữ liệu, các loại đầu 1.4 Network access và physical media
nối được sử dụng. 1.5 Cấu trúc Internet và ISP
1.6 Độ trễ và độ mất gói trong mạng chuyển
mạch gói
1.7 Các tầng giao thức, các mô hình dịch vụ
1.8 Lịch sử
19
1-74 Tổng quan về Mạng máy tính 1-75
Lịch sử Internet Lịch sử Internet
1961-1972: Nguồn gốc của mạng chuyển mạch gói 1972-1980: Làm việc liên mạng, các mạng mới

❑ 1961: Kleinrock – Lý thuyết ❑ 1972: ❑ 1970: Mạng vệ tinh ALOHAnet Quy tắc làm việc liên mạng của
hàng đợi chứng minh hiệu  ARPAnet công bố rộng rãi satellite tại Hawaii Cerf và Kahn:
quả của chuyển mạch gói  NCP (Network Control ❑ 1973: Luận văn tiến sỹ của  Tối thiểu, tự trị – không đòi

❑ 1964: Baran – chuyển Protocol) là giao thức host- Metcalfe đề xuất mạng Ethernet hỏi có sự thay đổi bên trong
host đầu tiên 1974: Cerf và Kahn – kiến trúc để kết nối các mạng
mạch gói trong mạng dùng ❑
Chương trình e-mail đầu cho kết nối các mạng  Mô hình dịch vụ best effort
trong quân sự 
tiên  Stateless router
❑ 1967: ARPAnet xây dựng ❑ Cuối những năm 70: kiến trúc
 ARPAnet có 15 nút mới: DECnet, SNA, XNA  Điều khiển không tập
bởi Advanced Research
chung
Projects Agency ❑ Cuối những năm 70: chuyển
Định nghĩa kiến trúc của Internet
❑ 1969: Nút ARPAnet đầu mạch các gói tin chiều dài cố ngày nay
tiên hoạt động định (tiền thân của ATM)
❑ 1979: ARPAnet có 200 nút

Tổng quan về Mạng máy tính 1-76 Tổng quan về Mạng máy tính 1-77

Lịch sử Internet Tầng ứng dụng (Application Layer)


1990, 2000’s: thương mại hóa, Web, các ứng dụng mới
❑ 6.1 Các nguyên tắc của ❑ 6.6 Chia sẻ file P2P
❑ Đầu những năm 90: ARPAnet Cuối 90 cho đến những
dừng làm việc ứng dụng mạng
năm 2000:
❑ 1991: NSF hạn chế sử dụng ❑ 6.2 Web và HTTP
❑ Instant messaging, chia sẻ file
thương mại NSFnet (dừng làm
P2P ❑ 6.3 FTP
việc 1995)
❑ An toàn bảo mật mạng đặt lên ❑ 6.4 E-Mail
❑ Đầu những năm 1990: Web
hàng đầu
 Siêu văn bản [Bush 1945,  SMTP, POP3, IMAP
❑ Khoảng 50 triệu host, hơn 100
Nelson 1960] ❑ 6.5 DNS
triệu người sử dụng
 HTML, HTTP: Berners-Lee
❑ Đường truyền backbone đạt
 1994: Mosaic sau đó là tốc độ Gbps
Netscape
 Cuối những năm 90: thương
mại hóa Web
20
Tổng quan về Mạng máy tính 1-78 1-2
Tầng ứng dụng (Application Layer) Một số ứng dụng mạng
Mục đích: ❑ Học về các giao thức
❑ E-mail ❑ Điện thoại qua Internet
❑ Các khía cạnh của phổ biến mức ứng
❑ Web ❑ Hội nghị truyền hình
các giao thức ứng dụng
dụng mạng  HTTP ❑ Instant messaging thời gian thực
 Mô hình dịch vụ tầng  FTP ❑ Remote login ❑ Tính toán song song
giao vận  SMTP / POP3 / IMAP ❑ Chia sẻ file P2P
 Mô hình Client-Server  DNS
❑ Trò chơi nhiều người
 Mô hình peer-to-peer
sử dụng qua mạng

1-3 1-4

Tạo một ứng dụng mạng Tầng ứng dụng


Viết chương trình application

 Chạy trên các end systems


transport
network ❑ 6.1 Nguyên tắc của các ❑ 6.6 Chia sẻ file P2P
ứng dụng mạng
data link
khác nhau và physical

 Giao tiếp qua mạng ❑ 6.2 Web và HTTP


 Ví dụ Web: Phần mềm Web
server giao tiếp với phần ❑ 6.3 FTP
mềm trình duyệt ❑ 6.4 Electronic Mail
Không có phần mềm viết cho  SMTP, POP3, IMAP
các thiết bị trong Network
❑ 6.5 DNS
Core application
application
transport
transport
 Các thiết bị trong Network network
network
data link
Core không thực hiện chức data link
physical
physical

năng tại lớp ứng dụng


 Thiết kế này để sự phát triển
ứng dụng nhanh
21
1-5 1-6
Các kiến trúc ứng dụng Kiến trúc Client-server
Server:
❑ Client-Server  Host ở trạng thái luôn
chạy
❑ Peer-to-peer (P2P)
 Địa chỉ IP cố định
❑ Hybrid  Server farm để tăng khả
năng phục vụ
Client:
 Truyền thông với server
 Có thể không kết nối liên
tục
 Có thể có địa chỉ IP động
 Không giao tiếp trực tiếp
với nhau

1-7 1-8

Kiến trúc P2P Hybrid


❑ Server không ở trạng thái luôn Lai giữa P2P và Client-Server
chạy Napster
❑ Hệ thống cuối tùy ý truyền  Truyền file P2P
thông trực tiếp  Tìm kiếm file tập trung:
❑ Các Peer kết nối không liên tục • Các Peer đăng ký nội dung tại server trung tâm
và thay đổi địa chỉ IP • Các Peer gửi yêu cầu server trung tâm xác định vị trí của nội
dung
Khả năng co giãn quy mô cao Instant Messaging
 Giao tiếp giữa 2 user là P2P
Khó quản lý  Quản lý tập trung vị trí của user:
• User đăng ký địa chỉ IP với server trung tâm khi kết nối
• User thông qua server trung tâm để tìm địa chỉ IP của đối
tượng cần giao tiếp

22
1-9 1-10
Truyền thông của các tiến trình Socket
host hoặc
Tiến trình: chương trình Tiến trình client: tiến trình ❑ Tiến trình gửi nhận
host hoặc
server
server
chạy trong một host. khởi đầu quá trình messages tới/từ socket
truyền thông của nó Điều khiển bởi
❑ Trong cùng host, 2 tiến người lập trình
trình giao tiếp sử dụng Tiến trình server: tiến trình ❑ Socket tương tự cửa ra Tiến trình ứng dụng Tiến trình

đợi kết nối vào


inter-process socket socket
 Tiến trình gửi đẩy bản tin ra TCP với
communication (Do OS TCP với
ngoài cửa buffer, Internet Buffer,
định nghĩa).  Tiến trình gửi dựa vào hạ Biến biến
❑ Các tiến trình trong các ❑ Chú ý: Các ứng dụng tầng giao vận trên phía bên
kia của cửa, nó mang
host khác nhau giao tiếp P2P có cả tiến trình client message tới socket của tiến
Điều khiển
bởi OS
bằng cách trao đổi các và tiến trình server trình nhận
message ❑ API: (1) Chọn giao thức giao vận; (2) Gán giá trị cho một
vài tham số (chi tiết phần sau)
1-11 1-12

Các tiến trình đánh địa chỉ Giao thức lớp ứng dụng
❑ Đối với một tiến trình ❑ Định danh bao gồm cả
nhận messages, nó phải địa chỉ IP và địa chỉ ❑ Giao thức lớp ứng dụng Các giao thức công khai:
có một định danh cổng gán cho ứng dụng định nghĩa ❑ Định nghĩa trong các
❑ Một host có một địa chỉ trên host.  Kiểu của bản tin trao đổi, RFC
IP duy nhất ví dụ bản yêu cầu, bản
❑ Ví dụ: Giá trị cổng của ❑ Cho phép phối hợp
tin trả lời
❑ Câu hỏi: Địa chỉ IP của một số ứng dụng: hoạt động
 Cú pháp của kiểu bản tin:
host mà tiến trình chạy  HTTP server: 80 Các trường trong bản tin ❑ Ví dụ: HTTP, SMTP
có đáp ứng được việc  Mail server: 25 và mô tả các trường
Các giao thức không công
định danh tiến trình? ❑ Chi tiết hơn trong phần trong bản tin
 Ý nghĩa của các trường
khai:
❑ Trả lời: Không, nhiều sau
 Quy tắc các tiến trình
tiến trình có thể chạy
gửi/nhận bản tin khi nào
trên cùng host và như thế nào

23
1-13 1-14
Các dịch vụ giao vận mà ứng dụng cần Yêu cầu của ứng dụng giao vận của một số ứng
dụng
Mất dữ liệu Băng thông
❑ Một số ứng dụng (ví dụ: audio) Ứng dụng Mất dữ liệu Băng thông Thời gian
❑ Một số ứng dụng (ví dụ: đa
có thể chấp nhận một tỷ lệ mất phương tiện) yêu cầu lượng
Truyền file Co giãn Không
dữ liệu nào đó băng thông tối thiểu Không cho phép
E-mail Co giãn
Không cho phép Không
❑ Một số ứng dụng khác (ví dụ: ❑ Một số ứng dụng khác sử Web Co giãn Không
Không cho phép
Truyền file, telnet) đòi hỏi 100% dụng theo băng thông chúng Real-time audio/video Cho phép Audio: 5kbps-1Mbps Có, hàng trăm msec
dữ liệu truyền là tin cậy nhận được Video:10kbps-5Mbps
Stored audio/video Cho phép Tương tự trên Có, vài secs
Trò chơi tương tác Cho phép Yêu cầu kbps Có, hàng trăm msec
Thời gian Có
Instant messaging Không cho phép Co giãn
❑ Một số ứng dụng (ví dụ: điện
thoại Internet, trò chơi tương
tác) đòi hỏi độ trễ thấp

1-15 1-16

Các ứng dụng Internet: các giao thức tầng ứng dụng
Các dịch vụ các giao thức giao vận và tầng giao vận

Dịch vụ UDP: Giao thức Giao thức


Dịch vụ TCP: Ứng dụng tầng ứng dụng tầng giao vận
❑ Hướng kết nối: Đòi hỏi quá ❑ Truyền dữ liệu không tin
cậy giữa tiến trình gửi và
trình thiết lập giữa tiến trình Thư điện tử SMTP [RFC 2821] TCP
tiến trình nhận
client và tiến trình server Truy cập từ xa Telnet [RFC 854] TCP
❑ Không cung cấp: việc thiết
❑ Truyền tin cậy giữa tiến trình lập kết, truyền tin cậy, điều Web HTTP [RFC 2616] TCP
gửi và tiến trình nhận khiển luồng, điều khiển tắc Truyền file FTP [RFC 959] TCP
❑ Điều khiển luồng: Bên gửi sẽ nghẽn, tính thời gian, đảm Truyền dòng Không công khai TCP hoặc UDP
không vượt quá khả năng bên bảo băng thông đa phương tiện (vd: RealNetworks)
nhận Không công khai
Q: Tại sao cần UDP? Điện thoại Internet (vd: Dialpad) UDP
❑ Điều khiển tắc nghẽn: điều
chỉnh bên gửi khi mạng quá tải
❑ Không cung cấp: tính thời gian,
đảm bảo băng thông tối thiểu

24
1-17 1-18
Tầng ứng dụng Web và HTTP
❑ 6.1 Nguyên tắc của các ❑ 6.6 Chia sẻ file P2P
ứng dụng mạng ❑ Trang Web chứa các đối tượng
❑ 6.2 Web và HTTP ❑ Đối tượng có thể là file HTML, ảnh JPEG, Java
❑ 6.3 FTP applet, audio,…
❑ 6.4 Electronic Mail ❑ Trang Web chứa file HTML, chứa các đối tượng
 SMTP, POP3, IMAP tham chiếu
❑ 6.5 DNS ❑ Mỗi đối tượng được đánh địa chỉ bởi một URL
❑ Ví dụ URL:
www.someschool.edu/someDept/pic.gif

host name path name

1-19 1-20

HTTP HTTP (tiếp)


HTTP: hypertext transfer Sử dụng TCP: HTTP là không hướng
❑ Client khởi đầu kết nối TCP (tạo trạng thái
protocol socket) tới server, cổng 80 ❑ Server không duy trì
❑ Giao thức tầng ứng dụng ❑ Server chấp nhận kết nối TCP từ thông tin về các yêu cầu
của Web client của client trong quá khứ
❑ Mô hình client/server ❑ Các bản tin HTTP (bản tin của
giao thức tầng ứng dụng Web)
 client: Trình duyệt yêu trao đối giứa trình duyệt (HTTP Các giao thức hướng trạng thái
cầu, nhận và hiện thị các Server client) và Web server (HTTP phức tạp hơn giao thức
đối tượng chạy server) không hướng trạng thái
Apache Web ❑ Kết nối TCP đóng
 server: Web server gửi ❑ Quá khứ phải được duy trì
server
các đối tượng trong trả ❑ Nếu server/client lỗi, các
lời trạng thái có thể không
❑ HTTP 1.0: RFC 1945 thống nhất
❑ HTTP 1.1: RFC 2068
25
1-21 1-22
Kết nối HTTP Nonpersistent HTTP
(chứa text,
Giả sử người sử dụng nhập vào URL tham chiếu tới 10
www.someSchool.edu/someDepartment/home.index ảnh jpeg)
Không kiên trì HTTP Kiên trì HTTP
❑ Một đối tượng được gửi ❑ Nhiều đối tượng có thể 1a. HTTP client khởi đầu kết nối
qua một kết nối TCP gửi qua một kết nối TCP tới HTTP server (tiến trình)
tại www.someSchool.edu, cổng
1b. HTTP server tại host
❑ HTTP/1.0 sử dụng TCP giữa client và 80
www.someSchool.edu đợi kết
server nối TCP tại cổng 80.
nonpersistent HTTP Chấp nhận kết nối, thông báo
❑ HTTP/1.1 mặc định sử cho client
2. HTTP client gửi bản tin yêu cầu
dụng persistent HTTP HTTP (chứa URL) vào socket
của kết nối TCP. Bản tin chỉ 3. HTTP server nhận bản tin yêu
rằng client muốn lấy đối tượng cầu, xây dựng bản tin trả lời
someDepartment/home.index chứa đối tượng đã yêu cầu và
gửi bản tin vào trong socket của

Thời gian
1-23 1-24

Nonpersistent HTTP (cont.) Mô hình thời gian trả lời


RTT: thời gian để gửi một
4. HTTP server đóng kết nối TCP
gói tin từ client tới server
5. HTTP client nhận trả lời chứa file và trở lại
html, hiện thị nội dung. Phân Khởi đầu
tích html, tìm 10 đối tượng ảnh
Thời gian trả lời: kết nối TCP
jpeg được tham chiếu ❑ 1 RTT để khởi tạo kết nối RTT

time 6. Lặp bước 1-5 cho mỗi đối tượng TCP file
yêu cầu
ảnh jpeg
❑ 1 RTT cho yêu cầu HTTP RTT
transmit time
và nhận byte đầu tiên của
trả lời HTTP file
đã nhận
❑ Thời gian truyền file
total = 2RTT+transmit time thời gian thời gian

26
1-25 1-26
Persistent HTTP
Bản tin yêu cầu HTTP
Nonpersistent HTTP:
❑ Hai kiểu bản tin HTTP: yêu cầu, trả lời
❑ Yêu cầu 2 RTT cho 1 đối
tượng ❑ Bản tin yêu cầu HTTP:
❑ Hệ điều hành phải cấp phát  ASCII
tài nguyên cho mỗi kết nối
TCP Request line
❑ Trình duyệt phải mở song (lệnh GET, POST, GET /somedir/page.html HTTP/1.1
song nhiều kết nối TCP để lấy HEAD ) Host: www.someschool.edu
đối tượng tham chiếu User-agent: Mozilla/4.0
header Connection: close
Persistent HTTP
line Accept-language:fr
❑ Server tạm dừng kết nối sau
khi gửi trả lời
❑ Các bản tin HTTP sau đó (CR, LF)
giữa cùng client/server được
gửi qua kết nối
1-27 1-28

Bản tin yêu cầu HTTP Kiểu Method


HTTP/1.0 HTTP/1.1
❑ GET ❑ GET, POST, HEAD
❑ POST ❑ PUT
❑ HEAD  đưa file trong phần body
lên đường dẫn chỉ trong
 Hỏi server bỏ đối tượng
URL
đã yêu cầu ra khỏi trả lời
❑ DELETE
 xóa file trong trường URL

27
1-29 1-30
Bản tin trả lời HTTP Mã trạng thái của trả lời HTTP
status line Trong dòng đầu tiên của trả lời server->client
(protocol Ví dụ:
status code HTTP/1.1 200 OK
status phrase) Connection close 200 OK
Date: Thu, 06 Aug 1998 12:00:15 GMT
 Yêu cầu thực hiện thành công, đối tượng trong bản tin
Server: Apache/1.3.0 (Unix)
header
Last-Modified: Mon, 22 Jun 1998 …... 301 Moved Permanently
line
Content-Length: 6821  Đối tượng yêu cầu đã di chuyển vị trí, ví trí mới được chỉ ra
Content-Type: text/html trong bản tin (Location:)
dữ liệu, ví dụ: dữ liệu
400 Bad Request
file HTML đã  Server không hiểu bản tin yêu cầu
yêu cầu 404 Not Found
 Không tìm thấy đối tượng yêu cầu
505 HTTP Version Not Supported
1-31 1-32

Thực hành Web cache (proxy server)


Mục đích: thực hiện yêu cầu của client không phải yêu cầu
1. Telnet tới một Web server: tới server ban đầu
telnet cis.poly.edu 80 Mở kết nối TCP tới cổng 80 tại cis.poly.edu. ❑ Người dùng thiết lập server
Nội dung gõ được gửi tới cổng 80 tại ban đầu
qua trình duyệt
cis.poly.edu Proxy
❑ Trình duyệt gửi mọi server
yêu cầu HTTP qua client
2. Gõ lệnh GET Cache
GET /~ross/ HTTP/1.1  Đối tượng trong cache:
Host: cis.poly.edu sẽ được trả về
 Nếu không: Yêu cầu
được chuyển tới
client
server ban đầu
3. Xem bản tin trả lời gửi bởi HTTP server server
ban đầu

28
1-33 1-34
Web cache Web cache
❑ Cache hoạt động như Lợi ích của Web cache ❑ Cache hoạt động như Tại sao dùng Web cache?
cả client và server ❑ Giảm thời gian trả lời cả client và server ❑ Giảm thời gian trả lời cho
❑ Thông thường, được ❑ Giảm lưu lượng trên đường ❑ Thông thường cache yêu cầu của client.
cài đặt bởi ISP truyền truy cập được cài đặt bởi ISP ❑ Giảm lưu lượng trên đường
truy cập của tổ chức.
(trường đại học, công
ty, nhà cung cấp dịch
vụ cho gia đình)

1-35 1-36

Ví dụ caching Ví dụ caching (tiếp)


Các server Server
Giả sử ban đầu Giải pháp có thể ban đầu
❑ Kích thước của đối tượng trung ❑ Tăng băng thông của đường truyền
bình = 100,000 bits ~ 960 kbs public truy cập: 10 Mbps public
Internet Internet
❑ Tốc độ yêu cầu trung bình từ trình Kết quả
duyệt của tới server ban đầu = 15 ❑ Sự sử dụng LAN = 15%
giây
❑ Sử dụng đường truyền truy cập =
❑ Trễ từ router của tổ chức tới server Đường truyền truy cập 15% Đường truyền
ban đầu và trở lại = 2 giây 1.5 Mbps truy cập10 Mbps
❑ Total delay = Internet delay +
Kết quả Mạng của access delay + LAN delay Mạng của
❑ Sự sử dụng trong LAN = 15% tổ chức = 2 sec + msecs + msecs tổ chức
10 Mbps LAN 10 Mbps LAN
❑ Sự sử dụng trong đường truyền
truy cập = 100%
❑ Total delay = Internet delay +
access delay + LAN delay Institutional institutional
Cache cache
= 2 giây + phút + millisecond
29
1-37 1-38
Ví dụ caching (tiếp) GET có điều kiện
Server
Cài đặt cache ban đầu
❑ Mục đích: không gửi đối Cache Server
❑ Hỗ trợ hit rate .4 tượng nếu cache có phiên
public Bản tin yêu cầu HTTP If-
bản cập nhật
Kết quả Internet modified-since: <date>
Đối tượng
❑ Cache: chỉ định ngày của
❑ 40% yêu cầu sẽ đáp ứng gần không bị
như ngay lập tức bản sao chép trong cache
trong yêu cầu HTTP Bản tin trả lời HTTP thay đổi
❑ 60% yêu cầu đáp ứng bởi
server ban đầu Đường truyền If-modified-since: <date> HTTP/1.0
truy cập 1.5 Mbps
❑ Sự sử dụng đường truyền ❑ Server: Trả lời không chứa 304 Not Modified
truy cập giảm tới 60%, kết Mạng của đối tượng nếu bản sao
quả độ trễ không đáng kể (10 tổ chức
10 Mbps LAN chép trong cache cập nhật:
msec) Bản tin yêu cầu HTTP
HTTP/1.0 304 Not Modified If-modified-since: <date>
❑ total avg delay = Internet Đối tượng
delay + access delay + LAN
delay = .6*(2.01) secs + đã thay đổi
milliseconds < 1.4 secs institutional Bản tin trả lời HTTP
cache HTTP/1.0 200 OK
<data>
1-39 1-40

Tầng ứng dụng FTP: File Transfer Protocol

❑ 2.1 Nguyên tắc của các ❑ 2.6 Chia sẻ file P2P


Giao diện FTP Truyền file
ứng dụng mạng người sử client
FTP
server
dụng FTP
❑ 2.2 Web và HTTP user
tại host Hệ thống Hệ thống file
❑ 2.3 FTP file cục bộ từ ở xa
❑ 2.4 Electronic Mail
 SMTP, POP3, IMAP ❑ Truyền file tới/từ host ở xa
❑ 2.5 DNS ❑ Mô hình client/server
 client: Phía khởi đầu việc truyền (tới hoặc từ host ở xa)
 server: host ở xa
❑ ftp: RFC 959
❑ ftp server: port 21

30
1-41 1-42
FTP: Kết nối dữ liệu và điều khiển riêng biệt Lệnh và trả lời của FTP
Kết nối điều khiển TCP
❑ FTP client liên lạc với FTP cổng 21 Ví dụ một số lệnh: Ví dụ một số mã trả về
server tại cổng 21, chỉ định
❑ Gửi văn bản mã ASCII ❑ Status code và status
dùng TCP làm giao thức giao
vận FTP
Kết nối dữ liệu TCP
FTP
qua kênh điều khiển phrase (như HTTP)
cổng 20
❑ Client giành ủy quyền qua kết client server ❑ USER username ❑ 331 Username OK,
nối điều khiển ❑ PASS password đòi hỏi mật khẩu
❑ Server mở một kết nối dữ liệu ❑ 125 kết nối dữ
❑ Client xem thư mục từ xa bằng
TCP thứ hai để truyền một file
❑ LIST trả về một danh
cách gửi lệnh qua kết nối điều sách các file trong thưc liệu đã mở; bắt
khiển khác. đầu truyền
❑ Kết nối điều khiển: truyền theo
mục hiện tại
❑ Khi server nhận một lệnh ❑ 425 Không thể mở
đường riêng ❑ RETR filename lấy
truyền file, server mở một kết kết nối dữ liệu
nối dữ liệu TCP tới client ❑ FTP server duy trì trạng thái: file
thư mục hiện tại, ủy quyền ❑ STOR filename đưa ❑ 452 Lỗi ghi file
❑ Sau khi truyền file, server đóng
kết nối. trước đó file lên remote host
1-43 1-44

Tầng ứng dụng Electronic Mail Hàng đợi


bản tin gửi đi
User mailbox
user
❑ 2.1 Nguyên tắc của các ❑ 2.6 Chia sẻ file P2P Ba thành phần chính: agent
ứng dụng mạng ❑ User agent mail
user
server
❑ 2.2 Web và HTTP ❑ Mail server agent

❑ 2.3 FTP
❑ Simple mail transfer protocol: SMTP mail
SMTP server user
❑ 2.4 Electronic Mail agent
SMTP
 SMTP, POP3, IMAP User Agent
❑ Còn gọi là Mail Reader SMTP
❑ 2.5 DNS user
❑ Soạn, sửa, đọc bản tin mail mail
server agent
❑ Ví dụ: Eudora, Outlook,
Netscape Messenger user
agent
❑ Các bản tin gửi tới và gửi đi
user
đã chứa trên server agent
31
1-45 1-46
Electronic Mail: Mail server Electronic Mail: SMTP [RFC 2821]

Mail Server user ❑ Sử dụng TCP để truyền tin cậy các bản tin thư điện tử từ
agent
client tới server, cổng 25
❑ mailbox chứa các bản tin mail
user ❑ Gửi trực tiếp: server gửi tới server nhận
thư điện tử gửi đến cho server
agent
người sử dụng ❑ Ba pha của việc truyền
SMTP mail  Bắt tay
❑ message queue của các server user
bản tin thư điện tử gửi đi  Truyền các bản tin
SMTP agent
 Kết thúc
❑ SMTP protocol giữa các
mail server để gửi các SMTP ❑ Sự tương tác Lệnh/Trả lời
mail user
bản tin thư điện tử agent  Lệnh: văn bản mã ASCII
server
 client: mail server gửi  Trả lời: status code và status phrase

 “server”: mail server


user
agent
❑ Các bản tin phải dùng mã ASCII 7-bit
nhận user
agent

1-47 1-48

Kịch bản: Alice gửi bản tin cho Bob Ví dụ tương tác SMTP
1) Alice dùng UA để soạn bản 4) SMTP client gửi bản tin của S: 220 hamburger.edu
tin và gửi cho Alice qua kết nối TCP C: HELO crepes.fr
bob@someschool.edu 5) Mail server của Bob chuyển S: 250 Hello crepes.fr, pleased to meet you
2) UA của Alice gửi bản tin tới bản tin vào mailbox của Bob C: MAIL FROM: <alice@crepes.fr>
mail server của cô ta; bản tin 6) Bob chạy user agent để đọc S: 250 alice@crepes.fr... Sender ok
đặt trong message queue bản tin C: RCPT TO: <bob@hamburger.edu>
3) Phía client của SMTP mở kết S: 250 bob@hamburger.edu ... Recipient ok
nối TCP với mail server của C: DATA
Bob S: 354 Enter mail, end with "." on a line by itself
C: Do you like ketchup?
C: How about pickles?
C: .
1
mail mail
user
S: 250 Message accepted for delivery
user server server
agent C: QUIT
agent 2 3 6
4 5 S: 221 hamburger.edu closing connection

32
1-49 1-50
SMTP: Một số thông tin khác Định dạng bản tin

❑ SMTP sử dụng persistent So sánh với HTTP: SMTP: giao thức để trao đổi
connections các bản tin thư điện tử header
❑ HTTP: pull dòng
❑ SMTP yêu cầu bản tin RFC 822: chuẩn định dạng bản
❑ SMTP: push trống
(header & body) dùng mã tin dạng văn bản
ASCII 7-bit ❑ Cả hai có tương tác ❑ Header lines, ví dụ
❑ SMTP server sử dụng Lệnh/Trả lời dạng mã ASCII,  To:
CRLF.CRLF để xác định kết
body
status code  From:
thúc bản tin  Subject:
❑ HTTP: mỗi đối tượng được
khác Lệnh SMTP
đóng gói trong chính bản tin
❑ body
trả lời
 bản tin, ký tự ASCII
❑ SMTP: nhiều đối tượng
được gửi trong bản tin có
nhiều phần

1-51 1-52

Định dạng bản tin: Các mở rộng đa phương tiện Thực hành tương tác SMTP
❑ MIME: Multimedia Mail Extension, RFC 2045, 2046
❑ Thêm các dòng trong header của bản tin khai báo kiểu nội
❑ telnet servername 25
dung MIME ❑ Xem trả lời 220 từ server
❑ Gõ vào các lệnh HELO, MAIL FROM, RCPT TO,
From: alice@crepes.fr
MIME version DATA, QUIT để gửi thư điện tử không sử dụng email
To: bob@hamburger.edu
Subject: Picture of yummy crepe. client (reader)
method sử dụng MIME-Version: 1.0
để mã hóa dữ liệu Content-Transfer-Encoding: base64
Content-Type: image/jpeg
kiểu dữ liệu
đa phương tiện, dữ liệu mã hóa kiểu base64 .....
kiểu con, .........................
khai báo tham số ......dữ liệu mã hóa kiểu base64
dữ liệu đã mã hóa
33
1-53 1-54
Các giao thức truy cập thư điện tử Giao thức POP3 S: +OK POP3 server ready
C: user bob
S: +OK
SMTP SMTP giao thức Pha ủy quyền
user
user C: pass hungry
agent truy cập agent ❑ Lệnh của client: S: +OK người sử dụng
 user: khai báo tên người đăng nhập thành công
C: list
mail server mail server dùng S: 1 498
của bên gửi của bên nhận  pass: mật khẩu S: 2 912
❑ SMTP: chuyển/lưu trữ thư tới server của bên nhận ❑ Trả lời của server S: .
C: retr 1
❑ Giao thức truy cập thư: lấy thư từ server  +OK S: <message 1 contents>
 POP: Post Office Protocol [RFC 1939]  -ERR S: .
• Ủy quyền (agent <-->server) và tải thư C: dele 1
Pha giao dịch, client: C: retr 2
 IMAP: Internet Mail Access Protocol [RFC 1730] ❑ list: liệt kê các số bản tin S: <message 1 contents>
• Nhiều tính năng hơn (phức tạp hơn) ❑ retr: lấy bản tin dựa vào số S: .
• Thao tác trên các bản tin lưu trên server C: dele 2
❑ dele: xóa
C: quit
 HTTP: Hotmail , Yahoo! Mail, … ❑ quit S: +OK POP3 server chấm dứt
phiên làm việc
1-55 1-56

POP3 và IMAP Tầng ứng dụng


Thông tin thêm về POP3 IMAP
❑ Ví dụ trước sử dụng ❑ 6.1 Nguyên tắc của các ❑ 6.6 Chia sẻ file P2P
❑ Giữ tất cả các bản tin
chế độ “tải và xóa” tại một chỗ: server ứng dụng mạng
❑ Bob không thể đọc lại ❑ Cho phép người sử ❑ 6.2 Web và HTTP
các thư điện tử nếu bob dụng tổ chức các bản ❑ 6.3 FTP
chuyển sang client khác tin vào các thư mục ❑ 6.4 Electronic Mail
❑ Chế độ “Tải và giữ” sao ❑ IMAP giữ trạng thái  SMTP, POP3, IMAP
chép các bản tin trên người sử dụng qua các
các client khác nhau phiên: ❑ 6.5 DNS
❑ POP3 không lưu trạng  Tên của các thư mục và
thái giữa các phiên ánh xạ giữa các định
danh của bản tin và tên
thư mục

34
1-57 1-58
DNS: Domain Name System DNS

Con người: có nhiều định danh: Các dịch vụ DNS Tại sao không dùng DNS tập
Hệ thống tên miền (DNS):
 CMT, tên, hộ chiếu ❑ Dịch tên host sang địa
chung ?
❑ Cơ sở dữ liệu phân tán được
Host, router trên Internet: thực hiện phân cấp bởi nhiều chỉ IP ❑ Một điểm lỗi
 Địa chỉ IP (32 bít) để đánh name server ❑ Khối lượng lưu lượng
địa chỉ các đơn vị dữ liệu ❑ Bí danh cho Host
❑ Giao thức tầng ứng dụng để
gửi đi  Canonical name và alias ❑ Cơ sở dữ liệu tập chung
host, router, name server giao
 Tên, ví dụ: www.yahoo.com names xa
tiếp dịch giữa địa chỉ và tên
sử dụng bởi con người
 Chú ý: Chức năng cơ bản ❑ Bí danh cho Mail server ❑ Bảo trì
Câu hỏi: Ánh xạ giữa địa chỉ IP
của Internet, thực hiện bởi ❑ Phân tải
và tên ?
giao thức ứng dụng
 Web server: Một tập các
 Sự phức tạp tại network
Không co giãn!
địa chỉ IP cho một
edge canonical name

1-59 1-60

Cơ sở dữ liệu phân cấp và phân tán


DNS: Root name server
Root DNS Servers
❑ Local name server không trả lời được thì nó sẽ liên lạc với Root name server
❑ Root name server:

org DNS servers edu DNS servers  Liên lạc với authoritative name server nếu nó không biết ánh xạ tên
com DNS servers
 Lấy ánh xạ
poly.edu umass.edu  Trả ánh xạ về cho local name server
yahoo.com amazon.com pbs.org
DNS servers DNS serversDNS servers
DNS servers DNS servers a Verisign, Dulles, VA
c Cogent, Herndon, VA (also Los Angeles)
d U Maryland College Park, MD

Client muốn biết địa chỉ IP của www.amazon.com: g US DoD Vienna, VA k RIPE London (also Amsterdam, Frankfurt)
h ARL Aberdeen, MD i Autonomica, Stockholm (plus 3
j Verisign, ( 11 locations) other locations)
❑ Client yêu cầu root server để tìm com DNS server m WIDE Tokyo

❑ Client yêu cầu com DNS server để xác định e NASA Mt View, CA
f Internet Software C. Palo Alto, CA

amazon.com DNS server (and 17 other locations)

13 root name
❑ Client yêu cầu amazon.com DNS server để lấy địa server trên toàn
chỉ IP cho www.amazon.com b USC-ISI Marina del Rey, CA
thế giới
l ICANN Los Angeles, CA

35
1-61 1-62
TLD và Authoritative Server Local Name Server
❑ Top-level domain (TLD) server: có vai trò đối ❑ Không hoàn toàn thuộc vào phân cấp
với com, org, net, edu,… và tất cả các miền ❑ Mỗi ISP (residential ISP, công ty, tổ chức) có
quốc gia mức trên cùng uk, fr, ca, jp,…  Còn gọi là “default name server”
❑ Authoritative DNS server: DNS server của các ❑ Khi một host tạo truy vấn DNS, truy vấn được
tổ chức cung cấp ánh xạ authoritative hostname gửi tới Local DNS server của nó
thành địa chỉ IP cho server của tổ chức (ví dụ  Hoạt động như một proxy, chuyển tiếp query vào
Web và Email). trong phân cấp.
 Có thể duy trì bởi tổ chức hoặc nhà cung cấp dịch vụ

1-63 1-64

Ví dụ Root DNS server


Truy vấn đệ quy root DNS server

❑ Host tại cis.poly.edu


2 Truy vấn đệ quy:
3 2 3
TLD DNS server ❑ Giao toàn bộ việc tìm
muốn biết địa chỉ IP 4 tên cho name server 6
của liên lạc
7
5 TLD DNS server
gaia.cs.umass.edu ❑ Tải lớn?
Local DNS server
dns.poly.edu Truy vấn lặp: local DNS server
4
7 6 dns.poly.edu 5
1 8 ❑ Server liên lạc trả về
tên của server cần liên 1 8
authoritative DNS server lạc tiếp
dns.cs.umass.edu
❑ “Tôi không biết nhưng authoritative DNS server
host gửi yêu cầu dns.cs.umass.edu
cis.poly.edu anh muốn biết thì đi requesting host
hỏi server này” cis.poly.edu
gaia.cs.umass.edu
gaia.cs.umass.edu
36
1-65 1-66
DNS: lưu giữ tạm và cập nhật bản ghi Bản ghi DNS
DNS: Cơ sở dữ liệu phân tán chứa các bản ghi tài nguyên (Resource record - RR)
❑ Name server nào đó học các ánh xạ, server sẽ lưu giữ tạm
các ánh xạ đó
 Các khe lưu trữ tạm quá hạn (biến mất) sau một khoảng
Định dạng RR: (name, value, type, ttl)
thời gian
 Các TLD server thông thường lưu trữ tạm trong các local ❑ Type=A ❑ Type=CNAME
name servers  name là hostname  name là tên bí danh cho một số
• Vì thế, root name server không phải hỏi thường xuyên  value là địa chỉ IP tên thật (cannonical name)
❑ Cơ chế cập nhật/thông báo định nghĩa bởi IETF www.ibm.com thật ra là
❑ Type=NS servereast.backup2.ibm.com
 RFC 2136
 name là domain (ví dụ  value là tên thật
 http://www.ietf.org/html.charters/dnsind-charter.html foo.com)
❑ Type=MX
 value là địa chỉ của
 value là tên thật của mail
authoritative name server
cho domain đó server liên kết với name (bí
danh của hostname)
 (foo.com, mail.bar.foo.com,
1-67 1-68
MX)

Giao thức DNS, bản tin Giao thức DNS, bản tin
Giao thức DNS: Bản tin truy vấn và trả lời có chung một
định dạng bản tin Các trường Name, type
cho một Truy vấn
Header của bản tin
❑ identification: 16 bit, định
cho truy vấn, trả lời sử Các bản ghi trong trả lời
dụng cùng giá trị
❑ flags: Các bản ghi cho
 Truy vấn hay trả lời
authoritative server
 Mong muốn đệ quy
Các bản ghi cung cấp
 Có khả năng đệ quy
thông tin khác
 Trả lời là ủy quyền

37
1-69 1-70
Chèn thêm bản ghi vào DNS Tầng ứng dụng
❑ Ví dụ: Tạo “Network Utopia” ❑ 6.1 Nguyên tắc của các ❑ 6.6 Chia sẻ file P2P
❑ Đăng ký tên networkuptopia.com tại registrar (ví dụ: nhà ứng dụng mạng
cung cấp giải pháp mạng)
 Cần cung cấp cho registrar tên và địa chỉ IP của authoritative ❑ 6.2 Web và HTTP
name server của mạng (primary và secondary) ❑ 6.3 FTP
 Registrar chèn thêm hai RR vào trong com TLD server:
❑ 6.4 Electronic Mail
(networkutopia.com, dns1.networkutopia.com, NS)  SMTP, POP3, IMAP
(dns1.networkutopia.com, 212.212.212.1, A)
❑ 6.5 DNS
❑ Thêm vào authoritative server bản ghi kiểu A cho
www.networkuptopia.com và bản ghi kiểu MX cho
networkutopia.com
❑ Người khác xác định địa chỉ IP của Web site này như
thế nào?
1-71 1-72

Chia sẻ file P2P P2P: thư mục trung tâm


❑ Alice chọn một peer,
Ví dụ Bob Thiết kế của “Napster” ban
Bob
Server thư mục
❑ Alice chạy ứng dụng ❑ File được sao chép từ đầu trung tâm
1
P2P client máy của Bob tới máy 1) Khi peer kết nối, nó thông peers
của Alice: HTTP báo server trung tâm:
❑ Kết nối tới Internet và
1

nhận một địa chỉ IP mới ❑ Trong khi Alice đang tải,  Địa chỉ IP
người sử dụng khác lấy  Nội dung
1 3
❑ Tìm “Hey Jude”
dữ liệu đã có trên máy 2) Alice yêu cầu “Hey Jude”
2 1
❑ Ứng dụng các peer Alice
khác có bản sao chép 3) Alice yêu cầu file từ Bob
❑ Peer của Alice vừa là
của Hey Jude không.
Web client vừa là Web
server. Alice

Mọi peer là server = quy


mô lớn! 38
1-73 1-74
Tổng kết
P2P: Vấn đề của thư mục trung tâm
Nội dung đã học: Ứng dụng mạng
❑ Một điểm chịu lỗi Truyền file là không ❑ Các kiến trúc ứng dụng ❑ Các giao thức cụ thể:
❑ Hiệu năng tập trung,  Client-Server  HTTP

❑ Xâm phạm bản quyền xác định vị trí nội dung  P2P  FTP
là không tập chung  Hybrid  SMTP, POP, IMAP
 DNS
❑ Các yêu cầu ứng dụng:
 Tính tin cậy, băng thông, độ
trễ
❑ Mô hình dịch vụ giao vận
của Internet
 Tin cậy, hướng kết nối
 Không tin cậy, datagrams:
UDP

1-75 1-76

Tổng kết Chương 3: Lớp Transport


Quan trọng: đã học về các giao thức Mục tiêu:
D hiểu các nguyên tắc D nghiên cứu về các giao
❑ Trao đổi bản tin yêu ❑ Bản tin dữ liệu và bản tin điều
đằng sau các dịch vụ thức lớp Transport trên
khiển
cầu/bản tin trả lời: lớp transport: Internet:
 in-band, out-of-band
 Client yêu cầu thông tin O multiplexing/demultipl O UDP: vận chuyển không kết
hoặc dịch vụ ❑ Tập chung (centralized) và nối (connectionless)
exing
không tập chung
 Server gửi dữ liệu trả lời, O truyền dữ liệu tin cậy O TCP: vận chuyển hướng kết
(decentralized)
mã trạng thái
O điều khiển luồng nối (connection-oriented)
❑ Không hướng trạng thái
❑ Định dạng bản tin: điều khiển tắc nghẽn O điều khiển tắc nghẽn TCP
(stateless) và hướng trạng O
 Header: Các trường thái (stateful)
mang thông tin về Data ❑ Truyền bản tin kiểu tin cậy
 Data: thông tin truyền (reliable) và không tin cậy
thông (unreliable)
❑ Sự phức tạp tại network edge 39
1-77 Lớp Transport 2
Chương 3: Nội dung trình bày Các dịch vụ và giao thức Transport
D cung cấp truyền thông logic application

D 3.1 Các dịch vụ D 3.5 Vận chuyển hướng chạy trên các host khác nhau
transport
network

lớp Transport kết nối: TCP


data link network
D các giao thức transport chạy physical
network
data link
physical

D 3.2 Multiplexing O cấu trúc phân đoạn trên các hệ thống đầu cuối data link
physical

và demultiplexing O truyền dữ liệu tin cậy O phía gửi: cắt các thông network
data link

điều khiển luồng điệp ứng dụng thành các physical network

D 3.3 Vận chuyển


O data link
đoạn, chuyển cho lớp physical
quản lý kết nối
không kết nối: UDP O
network network
data link
D 3.6 Các nguyên lý của physical
D 3.4 Các nguyên lý O phía nhận: tái kết hợp các
điều khiển tắc nghẽn đoạn thành các thông điệp,
của việc truyền dữ
application
transport

D 3.7 Điều khiển tắc chuyển cho lớp application network


liệu tin cậy data link

D có nhiều hơn 1 giao thức


physical
nghẽn TCP
transport dành cho các ứng
dụng
O Internet: TCP và UDP
Transport Layer 3-3 Lớp Transport 5

Các giao thức lớp transport trên


Lớp Transport với lớp network Internet
Tình huống tự nhiên tương D tin cậy, truyền theo application
D lớp network: truyền tự:
transport

thứ tự (TCP) network

thông logic giữa các 12 đứa trẻ gửi thư đến 12


data link
physical
network
data link
điều khiển tắc nghẽn
host
O network physical
đứa trẻ khác data link
O điều khiển luồng physical

D lớp transport: D các tiến trình = các đứa


network

thiết lập kết nối data link

trẻ
O physical network
truyền thông logic data link
D không tin cậy, truyền physical

giữa các tiến trình D c á c thông điệp =


không theo thứ tự: UDP
network
thư trong bao thư data link
O dựa vào và làm nổi bật physical

D c á c host = các gia đình O mở rộng của giao thức IP


các dịch vụ lớp network application
D g i a o thức transport D không có các dịch vụ: transport
network
= Ann và Bill O bảo đảm trễ
data link
physical

D g i a o thức lớp network O bảo đảm bandwidth


= dịch vụ bưu điện

40
Lớp Transport 6 Lớp Transport 7
Multiplexing/demultiplexing Demultiplexing làm việc như thế nào
Demultiplexing tại host nhận: Multiplexing tại host gửi: D host nhận các IP datagrams
thu nhặt dữ liệu từ nhiều mỗi datagram có địa chỉ IP 32 bits
vận chuyển các đoạn đã nhận O
socket, đóng gói dữ liệu với nguồn và IP đích
được đến đúng socket port # nguồn port # đích
header (sẽ dùng sau đó cho O mỗi datagram mang 1 đoạn
demultiplexing) các header fields khác
của lớp transport
= socket = tiến trình
O mỗi đoạn có số port nguồn
và đích
application P3
P1
P1 application P2 P4 application dữ liệu ứng dụng
D host dùng địa chỉ IP & số (thông điệp)
transport transport transport port để điều hướng đoạn đến
socket thích hợp
network network network

link link link

physical physical physical


dạng thức đoạn TCP/UDP
host 2 host 3
host 1
Lớp Transport 9 Lớp Transport 10

Demultiplexing không kết nối


Demultiplexing không kết nối
(tt)
D Khi host nhận đoạn UDP:
D Tạo các sockets với các số DatagramSocket serverSocket = new DatagramSocket(6428);
O kiểm tra port đích trong
port:
đoạn P2
P1
P1
DatagramSocket mySocket1 = new P3
DatagramSocket(12534); O điều hướng đoạn UDP đến

DatagramSocket mySocket2 = new socket nào phù hợp với số


DatagramSocket(12535); port đó
SP: 6428 SP: 6428
D UDP socket được xác định D IP datagrams với địa chỉ
DP: 9157 DP: 5775
bởi bộ 2: IP nguồn và/hoặc số port
khác nhau có thể được SP: 9157 SP: 5775
(địa chỉ IP, số port đích)
điều hướng đến cùng client DP: 6428
server
DP: 6428 Client
socket IP: A IP: C IP:B

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


41
Lớp Transport 11 Lớp Transport 12
Demultiplexing hướng kết nối
Demultiplexing hướng kết nối
(tt)
D TCP socket được xác D Host server có thể
định bởi bộ 4: hỗ trợ nhiều TCP P1
O địa chỉ IP nguồn socket đồng thời: P1 P4 P5 P6 P2 P3

O số port nguồn O mỗi socket được xác định SP: 5775


O địa chỉ IP đích bởi bộ 4 của nó DP: 80
O số port đích D Web server có các S-IP: B
D-IP:C
D host nhận dùng cả 4 socket khác nhau cho mỗi
giá trị trên để điều kết nối từ client SP: 9157 SP: 9157
hướng đoạn đến socket O kết nối HTTP không bền client DP: 80
server
DP: 80 Client
thích hợp vững sẽ có socket khác IP: A S-IP: A S-IP: B IP:B
nhau cho mỗi yêu cầu IP: C
D-IP:C D-IP:C

Lớp Transport 13 Lớp Transport 14

Demultiplexing hướng kết nối:


UDP: User Datagram Protocol [RFC 768]
Threaded Web Server
D giao thức Internet
transport “đơn giản hóa”
Có UDP để làm gì?
D không thiết lập kết nối (giúp
P1 D dịch vụ “best effort”, các
P1 P4 P2 P3
đoạn UDP có thể: có thể thêm delay)
D đơn giản: không trạng thái
SP: 5775 O mất mát
DP: 80
kết nối tại nơi gửi, nơi nhận
O vận chuyển không thứ tự
S-IP: B D header của đoạn nhỏ
đến ứng dụng
D-IP:C D không điều khiển tắc nghẽn:
D connectionless (không kết
UDP có thể gửi nhanh nhất
nối):
SP: 9157 SP: 9157 theo mong muốn
O không bắt tay giữa bên
client DP: 80 DP: 80 Client
server nhận và bên gửi UDP
IP: A S-IP: A
IP: C
S-IP: B IP:B
D-IP:C O mỗi đoạn UDP được quản
D-IP:C
lý độc lập

42
Lớp Transport 15 Lớp Transport 17
UDP: (tt) UDP checksum
D thường dùng cho các ứng Mục tiêu: kiểm tra các “lỗi” (các bit cờ đã bật lên)
dụng streaming multimedia 32 bits
source port # dest port # trong các đoạn đã truyền
O chịu mất mát Độ dài
O cảm nhận tốc độ đoạn UDP length checksum
bao gồm cả
bên gửi: bên nhận:
D ngoài ra, UDP dùng dữ liệu
header D đối xử các nội dung đoạn D tính toán checksum của đoạn
ứng dụng
O DNS như một chuỗi các số đã nhận
(thông điệp)
O SNMP nguyên 16-bit D kiểm tra giá trị trên có bằng
D truyền tin cậy trên UDP: D checksum: bổ sung(tổng với giá trị trong trường
thêm khả năng này tại lớp bù 1) của các nội dung checksum:
application đoạn O NO – có lỗi xảy ra

O sửa lỗi D đặt giá trị checksum vào O YES – không có lỗi.
trường UDP checksum O Nhưng có thể còn lỗi khác
dạng thức đoạn UDP
nữa? Xem tiếp phần sau ….

Lớp Transport 18 Lớp Transport 19

Ví dụ Checksum Các nguyên lý truyền dữ liệu tin cậy


D Lưu ý
D quan trọng trong các lớp application, transport, link
O Khi cộng các số, một bit nhớ ở phía cao nhất có D là danh sách 10 vấn đề quan trọng nhất của mạng
thể sẽ phải thêm vào kết quả
D Ví dụ: cộng hai 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
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
bit dư

tổng 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 D các đặc thù của kênh truyền không tin cậy sẽ xác định sự phức
checksum 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
43
Lớp Transport 20 Lớp Transport 22
Các nguyên lý truyền dữ liệu tin cậy Các nguyên lý truyền dữ liệu tin cậy
D quan trọng trong các lớp application, transport, link D quan trọng trong các lớp application, transport, link
D là danh sách 10 vấn đề quan trọng nhất của mạng D là danh sách 10 vấn đề quan trọng nhất của mạng

D các đặc thù của kênh truyền không tin cậy sẽ xác định sự phức D các đặc thù của kênh truyền không tin cậy sẽ xác định sự phức
tạp của giao thức truyền dữ liệu data transfer protocol (rdt) tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Lớp Transport 23 Lớp Transport 24

Truyền dữ liệu tin cậy Truyền dữ liệu tin cậy


rdt_send(): được gọi bởi lớp app. deliver_data(): được gọi Sẽ:
Chuyển dữ liệu cần truyền đến lớp bởi rdt để truyền dữ liệu đến D chỉ xem xét truyền dữ liệu theo 1 hướng duy
cao hơn bên nhận lớp cao hơn
nhất
O nhưng điều khiển luồng thông tin sẽ theo cả 2 chiều!
D dùng máy trạng thái hữu hạn (finite state
bên bên
machines-FSM) để xác định bên gửi, bên nhận
gửi nhận
sự kiện gây ra trạng thái truyền
các hành động xảy ra khi truyền
trạng thái: khi ở “trạng
thái” này thì trạng trthái trthái
1 sự kiện
udt_send(): được gọi bởi rdt_rcv(): được gọi khi gói đến thái kế tiếp duy nhất 2
được xác định bởi sự các hành động
rdt, để truyền các gói trên kênh bên nhận
kênh không tin cậy đến nơi kiện kế tiếp
nhận 44
Lớp Transport 25 Lớp Transport 26
Rdt1.0: truyền dữ liệu tin cậy trên 1 kênh truyền tin
Rdt2.0: kênh với các lỗi
cậy
D kênh ưu tiên tin cậy hoàn toàn D kênh ưu tiên có thể bật lên một số bit trong gói
O không có các lỗi O checksum để kiểm tra các lỗi
O không mất mát các gói D Hỏi: làm sao khôi phục các lỗi?
D các FSM phân biệt cho bên gửi, bên nhận: O các acknowledgements (ACK): bên nhận rõ ràng thông báo
O bên gửi gửi dữ liệu vào kênh ưu tiên cho bên gửi rằng quá trình nhận gói tốt
O bên nhận nhận dữ liệu từ kênh ưu tiên O các negative acknowledgements (NAK): bên nhận rõ ràng
thông báo cho bên gửi rằng quá trình nhận gói có lỗi
O bên gửi gửi lại gói nào được xác nhận là NAK
chờ gọi rdt_send(data) chờ gọi rdt_rcv(packet) D các cơ chế trong rdt2.0 (sau rdt1.0):
từ lớp từ lớp
trên packet = make_pkt(data) dưới
extract (packet,data)
deliver_data(data)
mớiO kiểm tra lỗi
O nhận phản hồi: các thông điệp điều khiển (ACK,NAK) bên
udt_send(packet)

nhận -7 bên gửi


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

Lớp Transport 27 Lớp Transport 28

rdt2.0: đặc tả FSM rdt2.0: hoạt động khi không lỗi


rdt_send(data) rdt_send(data)
snkpkt = make_pkt(data, checksum)
udt_send(sndpkt)
bên nhận snkpkt = make_pkt(data, checksum)
udt_send(sndpkt)
rdt_rcv(rcvpkt) && rdt_rcv(rcvpkt) &&
isNAK(rcvpkt) isNAK(rcvpkt)
chờ gọi từ chờ ACK rdt_rcv(rcvpkt) && chờ gọi từ chờ ACK rdt_rcv(rcvpkt) &&
lớp trên hoặc udt_send(sndpkt) corrupt(rcvpkt) lớp dưới hoặc udt_send(sndpkt) corrupt(rcvpkt)
NAK NAK
udt_send(NAK) udt_send(NAK)

rdt_rcv(rcvpkt) && isACK(rcvpkt) rdt_rcv(rcvpkt) && isACK(rcvpkt)


chờ gọi từ chờ gọi từ
 
lớp dưới lớp dưới
bên gửi
rdt_rcv(rcvpkt) && rdt_rcv(rcvpkt) &&
notcorrupt(rcvpkt) notcorrupt(rcvpkt)
extract(rcvpkt,data) extract(rcvpkt,data)
deliver_data(data) deliver_data(data)
udt_send(ACK) udt_send(ACK)
45
Lớp Transport 29 Lớp Transport 30
rdt2.0: hoạt động khi có lỗi rdt2.0 có lỗ hổng nghiêm trọng!
rdt_send(data)

Điều gì xảy ra nếu Quản lý trùng lặp:


snkpkt = make_pkt(data, checksum)
udt_send(sndpkt)
rdt_rcv(rcvpkt) &&
isNAK(rcvpkt) ACK/NAK bị hỏng? D bêngửi truyền lại gói hiện tại
chờ gọi từ chờ ACK rdt_rcv(rcvpkt) && D bên gửi không biết điều gì nếu ACK/NAK bị hỏng
lớp dưới hoặc udt_send(sndpkt) corrupt(rcvpkt)
NAK đã xảy ra tại bên nhận! D bên gửi thêm số thứ tự vào
udt_send(NAK)
D không thể đơn phương mỗi gói
rdt_rcv(rcvpkt) && isACK(rcvpkt) truyền lại: khả năng trùng D bên nhận hủy (không nhận)
chờ gọi từ lặp gói trùng lặp
 lớp dưới

dừng và chờ
rdt_rcv(rcvpkt) &&
notcorrupt(rcvpkt)
bên gửi gửi 1 gói,
extract(rcvpkt,data) sau đó dừng lại chờ phản hồi
deliver_data(data) từ bên nhận
udt_send(ACK)

Lớp Transport 31 Lớp Transport 32

rdt2.1: bên gửi quản lý các ACK/NAK bị rdt2.1: bên gửi quản lý các ACK/NAK bị
hỏng hỏng
rdt_send(data) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)
&& has_seq0(rcvpkt)
sndpkt = make_pkt(0, data, checksum)
udt_send(sndpkt) extract(rcvpkt,data)
rdt_rcv(rcvpkt) && deliver_data(data)
( corrupt(rcvpkt) || sndpkt = make_pkt(ACK, chksum)
chờ gọi 0 chờ ACK
hoặc NAK isNAK(rcvpkt) ) udt_send(sndpkt)
từ lớp trên rdt_rcv(rcvpkt) && (corrupt(rcvpkt) rdt_rcv(rcvpkt) && (corrupt(rcvpkt)
0 udt_send(sndpkt)
sndpkt = make_pkt(NAK, chksum) sndpkt = make_pkt(NAK, chksum)
rdt_rcv(rcvpkt)
rdt_rcv(rcvpkt) udt_send(sndpkt) udt_send(sndpkt)
&& notcorrupt(rcvpkt) chờ
&& isACK(rcvpkt) && notcorrupt(rcvpkt) chờ
rdt_rcv(rcvpkt) && 0 từ 1 từ rdt_rcv(rcvpkt) &&
&& isACK(rcvpkt)
 not corrupt(rcvpkt) && dưới dưới not corrupt(rcvpkt) &&
 has_seq1(rcvpkt) has_seq0(rcvpkt)
chờ ACK chờ gọi 1
hoặc NAK sndpkt = make_pkt(ACK, chksum) sndpkt = make_pkt(ACK, chksum)
từ lớp trên
rdt_rcv(rcvpkt) && 1 udt_send(sndpkt) udt_send(sndpkt)
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)
( corrupt(rcvpkt) || && has_seq1(rcvpkt)
isNAK(rcvpkt) ) rdt_send(data)
sndpkt = make_pkt(1, data, checksum) extract(rcvpkt,data)
udt_send(sndpkt)
udt_send(sndpkt) deliver_data(data)
sndpkt = make_pkt(ACK, chksum)
udt_send(sndpkt)
46
Lớp Transport 33 Lớp Transport 34
rdt2.2: một giao thức không cần
rdt2.1: thảo luận
NAK
bên gửi: bên nhận: D chức năng giống như rdt2.1, chỉ dùng các ACK
D số thứ tự # thêm vào D phải kiểm tra có D thay cho NAK, bên nhận gửi ACK cho gói vừa rồi đã
gói nhận trùng gói không nhận tốt
D chỉ cần hai số thứ O trạng thái chỉ rõ có hay O bên nhận phải rõ ràng chèn số thứ tự của gói vừa ACK
tự (0,1) là đủ. Tại không mong chờ số thứ D trùng ACK tại bên gửi hậu quả giống như hành động
tự 0 hoặc 1
sao? của NAK: truyền lại gói vừa rồi
D chú ý: bên nhận không
D phải kiểm tra nếu việc
biết ACK/NAK vừa rồi
nhận ACK/NAK bị hỏng
của nó có được bên gửi
D số trạng thái tăng lên nhận tốt hay không
2 lần
O trạng thái phải “nhớ” gói
“hiện tại” có số thứ tự là
0 hay 1 Lớp Transport 35 Lớp Transport 36

rdt2.2: gửi, nhận các mảnh rdt3.0: các kênh với lỗi và mất mát
rdt_send(data)

Giả định mới: kênh ưu tiên Cách tiếp cận: bên gửi chờ
sndpkt = make_pkt(0, data, checksum)
udt_send(sndpkt)
rdt_rcv(rcvpkt) &&
Chờ cho
( corrupt(rcvpkt) || cũng có thể làm mất ACK trong khoảng thời
các gói (dữ liệu hoặc gian “chấp nhận được”
Chờ cho isACK(rcvpkt,1) )
gọi 0 từ ACK

các ACK)
0 udt_send(sndpkt)
D truyền lại nếu không nhận ACK
trên
gửi phân mảnh
FSM O checksum, số thứ tự, các trong khoảng thời gian này
rdt_rcv(rcvpkt)
&& notcorrupt(rcvpkt) ACK, các việc truyền lại D nếu gói (hoặc ACK) chỉ trễ
rdt_rcv(rcvpkt) && && isACK(rcvpkt,0) sẽ hỗ trợ nhưng không đủ (không mất):
(corrupt(rcvpkt) ||  O truyền lại sẽ gây trùng,
has_seq1(rcvpkt)) Chờ
cho gọi
nhận phân mảnh nhưng dùng số thứ tự sẽ
udt_send(sndpkt) 0 từ FSM giải quyết được
dưới
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) O bên nhận phải xác định số
&& has_seq1(rcvpkt)
thứ tự của gói vừa gửi ACK
extract(rcvpkt,data)
deliver_data(data) D cần bộ định thì đếm lùi
sndpkt = make_pkt(ACK1, chksum) 47
udt_send(sndpkt) Lớp Transport 37 Lớp Transport 38
rdt3.0 gửi hành động của 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 
 Chờ cho Chờ
cho timeout
gọi 0 từ udt_send(sndpkt)
trên ACK 0
start_timer
rdt_rcv(rcvpkt)
&& notcorrupt(rcvpkt) rdt_rcv(rcvpkt)
&& isACK(rcvpkt,1) && notcorrupt(rcvpkt)
stop_timer && isACK(rcvpkt,0)
stop_timer
Chờ Chờ cho
timeout cho gọi 1
udt_send(sndpkt) ACK 1 từ trên
start_timer rdt_rcv(rcvpkt)
rdt_send(data) 
rdt_rcv(rcvpkt) &&
( corrupt(rcvpkt) || sndpkt = make_pkt(1, data, checksum)
isACK(rcvpkt,0) ) udt_send(sndpkt)
start_timer

Lớp Transport 39 Lớp Transport 40

hành động của rdt3.0 Hiệu suất của rdt3.0


D rdt3.0 làm việc được, nhưng đánh giá hiệu suất hơi rắc rối
D ví dụ: liên kết 1 Gbps, trễ lan truyền giữa hai đầu cuối là 15
ms, gói 1KB:
T truyền = L (độ dài gói tính bằng bits) 8kb/pkt
= = 8 microsec
R (tốc độ truyền, bps) 10**9 b/sec

O U sender: độ khả dụng –

U sender = L/R .008


= = 0.00027
RTT + L / R 30.008

O gói 1KB mỗi 30 msec -> 33kB/s trên đường truyền 1 Gbps
O giao thức network hạn chế việc dùng các tài nguyên vật lý!

48
Lớp Transport 41 Lớp Transport 42
rdt3.0: hoạt động dừng-và-chờ Các giao thức Pipelined
gửi nhận Pipelining: bên gửi cho phép gửi nhiều gói đồng thời,
gói đầu tiên đã truyền, t = 0 không cần chờ báo nhận được
gói cuối cùng đã truyền, t = L / R O nhóm các số thứ tự phải tăng dần
O phải có bộ nhớ đệm tại nơi gửi và/hoặc nơi nhận
gói đầu tiên đã đến
RTT gói cuối cùng đã đến, gửi ACK

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


t = RTT + L / R

U sender = L/R .008


= 0.00027
RTT + L / R
=
30.008 D hai dạng phổ biến của các giao thức pipelined: go-Back-
N, Lặp có lựa chọn
Lớp Transport 43 Lớp Transport 44

Pipelining: độ khả dụng tăng Go-Back-N


sender receiver
gói đầu tiên đã truyền, t = 0
Bên gửi:
gói cuối cùng đã truyền, D k-bit số thứ tự trong header của gói
t=L/R D “cửa sổ” tăng lên đến N, cho phép gửi các gói liên tục không cần
gói đầu tiên đã đến ACK
RTT gói cuối cùng đã đến, gửi ACK
bit cuối của gói thứ 2 đến, gửi ACK
bit cuối của gói thứ 3 đến, gửi ACK
ACK đến, gửi gói
kế tiếp, t = RTT + L / R

Độ khả dụng tăng lên


gấp 3 lần! D ACK(n): ACKs tất cả các gói đến, chứa số thứ tự n – “ACK tích lũy”
O có thể nhận các ACK trùng lặp (xem bên nhận)
U sender = 3*L/R .024
0.0008
= = D định thì cho mỗi gói trên đường truyền
RTT + L / R 30.008
D timeout(n): gửi lại gói n và tất cả các gói có số thứ tự cao hơn
49 trong cửa sổ
Lớp Transport 45 Lớp Transport 46
GBN: bên gửi mở rộng FSM GBN: bên nhận mở rộng FSM
rdt_send(data)
default
if (nextseqnum < base+N) { udt_send(sndpkt)
sndpkt[nextseqnum] = make_pkt(nextseqnum,data,chksum) rdt_rcv(rcvpkt)
udt_send(sndpkt[nextseqnum]) && notcurrupt(rcvpkt)
if (base == nextseqnum)  && hasseqnum(rcvpkt,expectedseqnum)
start_timer expectedseqnum=1 chờ extract(rcvpkt,data)
nextseqnum++ sndpkt = deliver_data(data)
} make_pkt(expectedseqnum,ACK,chksum) sndpkt = make_pkt(expectedseqnum,ACK,chksum)
 else udt_send(sndpkt)
refuse_data(data) expectedseqnum++
base=1
nextseqnum=1
ACK-duy nhất: luôn luôn gửi ACK cho gói đã nhận đúng,
timeout
start_timer
chờ
rdt_rcv(rcvpkt)
udt_send(sndpkt[base])
udt_send(sndpkt[base+1])
với số thứ tự xếp hạng cao nhất
&& corrupt(rcvpkt) … O có thể sinh ra các ACK trùng nhau
udt_send(sndpkt[nextseqnum-1])
rdt_rcv(rcvpkt) &&
O chỉ cần nhớ expectedseqnum
D gói không theo thứ tự:
notcorrupt(rcvpkt)
base = getacknum(rcvpkt)+1
If (base == nextseqnum) O hủy -> không nhận vào bộ đệm!
stop_timer
else O gửi lại ACK với số thứ tự xếp hạng cao nhất
start_timer Lớp Transport 47 Lớp Transport 48

GBN Lặp có lựa chọn


hoạt động
D bên nhận thông báo đã nhận đúng tất cả từng gói
một
O đệm (buffer) các gói nếu cần thiết
D bên gửi chỉ gửi lại các gói nào không nhận được
ACK
O bên gửi định thì đối với mỗi gói không gửi ACK
D cửa sổ bên gửi
O N số thứ tự liên tục
O hạn chế số thứ tự các gói không gửi ACK

50
Lớp Transport 49 Lớp Transport 50
Lặp có lựa chọn: các cửa sổ gửi, nhận Lặp có lựa chọn
Gửi Nhận
dữ liệu từ lớp trên: gói n trong [rcvbase, rcvbase+N-
1]
D nếu số thứ tự kế tiếp sẵn
sàng trong cửa sổ, gửi gói D gửi ACK(n)
D không thứ tự: đệm (buffer)
timeout(n):
D có thứ tự: truyền (cũng
D gửi lại gói n, tái khởi tạo bộ
truyền các gói đã đệm, có
định thì
thứ tự), dịch chuyển cửa sổ
ACK(n) trong đến gói chưa nhận kế tiếp
[sendbase,sendbase+N]:
gói n trong [rcvbase-N,rcvbase-
D đánh dấu gói n là đã nhận 1]
D nếu gói không ACK có n nhỏ D ACK(n)
nhất, dịch chuyển cửa sổ
base đến số thứ tự không ngược lại:
ACK kế tiếp D lờ đi

Lớp Transport 51 Lớp Transport 52

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


Hoạt động của lặp có lựa chọn tình trạng khó
Lớp Tr
giải quyết
Ví dụ:
D Số thứ tự: 0, 1, 2, 3
D Kích thước cửa sổ = 3

D bên nhận không thấy


sự khác nhau trong 2
tình huống
D chuyển không chính
xác dữ liệu trùng lặp
như dữ liệu mới trong
(a)

Hỏi: quan hệ giữa dãy số


51 thứ tự và kích thước
ansport 53 cửa sổ? Lớp Transport 54
TCP: cấu trúc đoạn
TCP: Tổng quan RFCs: 793, 1122, 1323, 2018, 2581
32 bits
URG: dữ liệu khẩn cấp
D point-to-point: D dữ liệu full duplex:
(thường không dùng) port # nguồn port # đích
đếm bởi số byte
O luồng dữ liệu đi 2 của dữ liệu
O một bên gửi, một bên nhận
chiều trong cùng một ACK: ACK # số thứ tự
D tin cậy, dòng byte kết nối hợp lệ số ACK
có thứ tự: O MSS: maximum segment head not
UA P R S F cửa sổ nhận
PSH: push data now len used
O không “ranh giới thông size – kích thước đoạn tối
(thường không dùng) số byte bên
đa checksum con trỏ URG
điệp” D h ướng kết nhận sẵn
sàng chấp
D kênh liên lạc: nối: O bắt tay (trao đổi các RST, SYN, FIN: Tùy chọn (độ dài thay đổi)
thông điệp điều khiển) thiết lập kết nối nhận
O TCP điều khiển luồng và
trạng thái bên gửi, bên (các lệnh thiết lập,
tắc nghẽn, thiết lập kích
nhận trước khi trao đổi dữ chia nhỏ)
thước cửa sổ liệu dữ liệu ứng dụng
D các bộ đệm gửi & nhận D điều khiển luồng: Internet (độ dài thay đổi)
checksum
application application
O bên gửi sẽ không lấn át
writes data reads data
(giống UDP)
bên nhận
socket socket
door door
TCP TCP
send buffer receive buffer
segment

Lớp Transport 56 Lớp Transport 57

Các số thứ tự TCP và ACK TCP Round Trip Time vàTimeout


Các số thứ tự: Hỏi : Làm thế nào để thiết lập
Host A Host B Hỏi: Làm thế nào để
O dòng byte “đánh
User thiết lập giá trị TCP RTT?
số” byte đầu tiên
trong dữ liệu của
nhập timeout? D SampleRTT: thời gian được đo từ
‘C’ khi truyền đoạn đến khi báo nhận
đoạn host ACKs D dài hơn RTT
báo nhận khác với RTT
ACK
các ACK: ‘C’, phản hồi
O
O lờ đi việc truyền lại
O số thứ tự của byte ngược lại ‘C’ D quá ngắn: timeout sớm
D SampleRTT sẽ thay đổi, muốn ước
kế tiếp được chờ đợi Otruyền lại không cần
từ phía bên kia thiết lượng RTT “mượt hơn”
host ACKs
O tính trung bình một số giá trị
O ACK tích lũy nhận phản hồi D quá dài: phản ứng chậm
‘C’
đối với việc mất mát gói đo được gần đó, không chỉ
Hỏi: làm thế nào bên nhận SampleRTT hiện tại
quản lý các đoạn không
thứ tự
time
O Trả lời: TCP không tình huống telnet đơn giản
đề cập, tùy thuộc
người hiện thực 52
Lớp Transport 58 Lớp Transport 59
TCP Round Trip Time và Timeout Ví dụ đánh giá RTT:
RTT: gaia.cs.umass.edu to fantasia.eurecom.fr

EstimatedRTT = ( )*EstimatedRTT + *SampleRTT 350

D giá trị đặc trưng:  = 0.125 300

250

RTT (milliseconds)
200

150

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

SampleRTT Estimated RTT

Lớp Transport 69 Lớp Transport 61

TCP Round Trip Time và Timeout TCP: truyền dữ liệu tin cậy
Thiết lập timeout
D TCP tạo dịch vụ rdt D Truyền lại được
D EstimtedRTT cộng “hệ số dự trữ an toàn”
trên dịch vụ không tin kích hoạt bởi:
sự biến thiên lớn trong EstimatedRTT -> hệ số dự trữ an toàn
cậy IP
O
lớn hơn O các sự kiện timeout
D ước lượng đầu tiên về sự biến thiên của SampleRTT từ D các đoạn Pipelined O các ack trùng lặp
EstimatedRTT : D các ACK tích lũy D lúc đầu khảo sát các
DevRTT = ()*DevRTT + bên gửi TCP đơn giản:
*|SampleRTT-EstimatedRTT| D TCP dùng bộ định
lờ đi các ack trùng lặp
thì truyền lại đơn
O

(tiêu biểu  = 0.25) O lờ đi điều khiển luồng,


điều khiển tắc nghẽn
Sau đó thiết lập timeout interval:
TimeoutInterval = EstimatedRTT + 4*DevRTT

53
Lớp Transport 62 Lớp Transport 63
TCP các sự kiện:
NextSeqNum = InitialSeqNum
SendBase = InitialSeqNum

loop (forever) { TCP


dữ liệu đã nhận từ ứng timeout:
bên gửi
switch(event)

dụng: D gửi lại đoạn nào gây event: data received from application above
D tạo đoạn với số thứ ra timeout create TCP segment with sequence number NextSeqNum
if (timer currently not running)
(đơn giản)
tự của nó D khởi động lại bộ start timer

D số thứ tự là số theo định thì


pass segment to IP Chú thích:
NextSeqNum = NextSeqNum + length(data)
•SendBase-1: byte
byte dữ liệu đầu tiên Ack đã nhận: vừa được ACK
event: timer timeout
D khởi động bộ định O cập nhật cái gì sẽ được retransmit not-yet-acknowledged segment with tích lũy
Ví dụ:
thì nếu chưa chạy ACK smallest sequence number
start timer • SendBase-1 = 71;
khởi động bộ định thì
D khoảng thời gian y= 73, vì thế bên nhận
O
nếu có các đoạn còn chờ event: ACK received, with ACK field value of y muốn 73+ ;
hết hạn: if (y > SendBase) { y > SendBase, vì thế
TimeOutInterval SendBase = y
dữ liệu mới được
if (there are currently not-yet-acknowledged segments)
start timer chấp nhận
}

Lớp Transport
} /* end of loop forever */ Lớp Transport
64 65

TCP: các tình huống truyền lại TCP: các tình huống truyền lại (tt)
Host A Host B Host A Host B Host A Host B
Seq=92 timeout
timeout

timeout
X X
loss loss

Sendbase
= 100 SendBase
Seq=92 timeout

SendBase = 120
= 120

SendBase
= 100 SendBase time
= 120 timeout sớm tình huống ACK tích lũy
time time
tình huống mất ACK 54
Lớp Transport 66 Lớp Transport 67
TCP sinh ra ACK [RFC 1122, RFC 2581] Truyền lại nhanh
Sự kiện tại bên nhận TCP bên nhận hành động D Chu kỳ Time-out D Nếu bên gửi nhận 3

Đoạn đến với đúng số thứ tự ACK trễ. Chờ đến 500ms
thường tương đối dài: ACK của cùng một dữ
mong muốn. Tất cả dữ liệu đến cho đoạn kế tiếp. Nếu không có đoạn O độ trễ dài trước khi gửi liệu, nó cho là đoạn sau
đã được ACK kế tiếp, gửi ACK lại gói đã mất dữ liệu đã ACK bị mất:
D Xác nhận các đoạn O Truyền lại nhanh: gửi lại
Đoạn đến với đúng số thứ tự Gửi ngay một ACK tích lũy, chấp nhận
mong muốn. Một đoạn khác đang cho cả các đoạn theo thứ tự đã mất bằng các ACK đoạn trước khi bộ định thì
chờ ACK trùng lặp. hết hạn
O bên gửi thường gửi nhiều
Các đoạn đến không thứ tự Gửi ngay ACK trùng lặp, chỉ thị số thứ tự
lớn hơn số thứ tự đoạn mong muốn. đoạn của byte kế tiếp đang mong chờ đoạn song song
Có khoảng trống O Nếu đoạn bị mất, sẽ xảy
ra tình trạng giống như
Đoạn đến Gửi ngay ACK, với điều kiện là đoạn nhiều ACK trùng nhau
lấp đầy từng phần hoặc toàn bộ bắt đầu ngay điểm có khoảng trống
khoảng trống
Lớp Transport 68 Lớp Transport 69

Giải thuật truyền lại nhanh: TCP điều khiển luồng


điều khiển luồng
bên gửi sẽ không làm
D bên nhận của kết tràn bộ đệm vì truyền
sự kiện: ACK đã nhận, với trường là y
if (y > SendBase) { nối TCP có một bộ quá nhiều và quá nhanh
SendBase = y đệm nhận:
if (there are currently not-yet-acknowledged segments)
start timer
D dịch vụ so trùng tốc
}
else {
increment count of dup ACKs received for y độ: so trùng tốc độ gửi
if (count of dup ACKs received for y = 3) { với tốc độ nhận của ứng
dụng
resend segment with sequence number y
}

D tiến trình ứng dụng có


một ACK trùng lặp cho Truyền lại nhanh thể chậm tại lúc đọc bộ
đoạn đã được ACK đệm
55
Lớp Transport 70 Lớp Transport 71
TCP quản lý kết nối
TCP điều khiển luồng: cách làm? Chú ý: Bên gửi và bên nhận 3 phương pháp bắt tay:
TCP thiết lập “kết nối” trước
D Bên nhận thông báo khi trao đổi dữ liệu Bước 1: client host gửi đoạnTCP
khoảng dự trữ nhờ giá D khởi tạo các biến TCP:
SYN đến server
trị RcvWindow trong O các số thứ tự đoạn
O xác định số thứ tự khởi đầu
các đoạn O thông tin các bộ đệm,
O không phải dữ liệu
D Bên gửi hạn chế dữ điều khiển luồng (như Bước 2: server host nhận SYN,
(Giả sử bên nhận TCP loại bỏ liệukhông được ACK vào RcvWindow) trả lời với đoạn SYNACK
các đoạn không có thứ tự) RcvWindow D client: người khởi xướng kết server cấp phát các bộ
O
nối đệm
D dự phòng trong bộ đệm O bảo đảm bộ đệm nhận Socket clientSocket = new
= RcvWindow không tràn Socket("hostname","port O xác định số thứ tự khởi đầu

= RcvBuffer-[LastByteRcvd - number"); Bước 3: client nhận SYNACK, trả


LastByteRead] lời với đoạn ACK (có thể chứa
D server: được tiếp xúc bởi
dữ liệu)
client
Socket connectionSocket =
welcomeSocket.accept();
Lớp Transport 72 Lớp Transport 73

TCP quản lý kết nối (tt) TCP quản lý kết nối (tt)

Đóng một kết nối: client server Bước 3: client nhận FIN, trả client server

đóng
lời với ACK. đang đóng
client đóng socket:
clientSocket.close(); O Trong khoảng “thời gian
chờ” – sẽ phản hồi với
Bước 1: client gửi đoạn điều ACK để nhận các FIN
đóng đang đóng
khiển TCP FIN đến server Bước 4: server, nhận ACK.
Bước 2: server nhận FIN, trả Kết nối đã đóng.
thời gian chờ

thời gian chờ


lời với ACK. Đóng kết nối,
Chú ý: với một sửa đổi nhỏ,
gửi FIN. đã đóng
có thể quản lý nhiều FIN
đồng thời.

đã đóng đã đóng
56
Lớp Transport 74 Lớp Transport 75
TCP quản lý kết nối (tt)
3.6 Các nguyên lý của điều
khiển tắc nghẽn

chu kỳ sống của


TCP server

chu kỳ sống của


TCP client

Lớp Transport 76 Lớp Transport 77

Các nguyên nhân/chi phí của tắc nghẽn:


Các nguyên lý điều khiển tắc nghẽn
tình huống 1 
Host A
in : original data
out

D 2 gửi, 2 nhận
Tắc nghẽn:
D 1 router, các bộ
D “quá nhiều nguồn gửi quá nhanh và quá nhiều dữ liệu unlimited shared
đệm không giới hạn
Host B
output link buffers

đến mạng”
D không có truyền
D khác với điều khiển luồng!
lại
D các biểu hiện:
O các gói bị mất (tràn bộ đệm tại các router)
O các độ trễ quá dài (xếp hàng trong bộ đệm của D các độ trễ
router) lớn hơn khi
D là 1 trong 10 vấn đề nan giải nhất!
tắc nghẽn
D năng suất có
thể đạt tối đa
57
Lớp Transport 78 Lớp Transport 79
Các nguyên nhân/chi phí của tắc nghẽn:
Các nguyên nhân/chi phí của tắc nghẽn:
tình huống 2=
tình huống 2 D luôn luôn:  out
in
D truyền lại “hoàn toàn” chỉ khi mất mát:  > out
D 1 router, các bộ đệm có giới hạn in
D bên gửi truyền lại các gói đã mất
D truyền lại vì trễ (không mất) làm cho  lớn hơn với cùng
in
out
Host A in : dữ liệu gốc
out R/2 R/2 R/2

'in : dữ liệu gốc, cùng với R/3

out

out
out
dữ liệu truyền lại R/4

Host B chia sẻ vô hạn


các bộ đệm ouput
R/2 R/2 R/2
in in in

a. b. c.
“các chi phí” của tắc nghẽn:
D nhiều việc (truyền lại)
D các truyền lại không cần thiết: liên kết nhiều bản sao của gói
Lớp Transport 80 Lớp Transport 81

Các nguyên nhân/chi phí của tắc nghẽn: Các nguyên nhân/chi phí của tắc nghẽn:
tình huống 3 tình huống 3
D 4 người gửi Hỏi: điều gì xảy ra nếu  và  H 
in in
D các đường qua nhiều hop tăng lên? o
s o
u
t
D timeout/truyền lại A t

Host A out H
in : dữ liệu gốc o
s
'in : dữ liệu gốc, cùng t
B
với dữ liệu truyền lại

chia sẻ vô hạn
các bộ đệm ouput

“chi phí” khác của tắc nghẽn:


Host B

D khi các gói bị bỏ, bất kỳ “khả năng truyền upstream


dùng cho gói đó sẽ bị lãng phí!”

58
Lớp Transport 82 Lớp Transport 83
Các cách tiếp cận đối với điều khiển tắc
Ví dụ: điều khiển tắc nghẽn ATM ABR
nghẽn
2 cách:
ABR: tốc độ bit sẵn RM (resource management):
sàng: D gửi bởi bên gửi, rải rác với các ô
điều khiển tắc nghẽn end- điều khiển tắc nghẽn có sự
D “dịch vụ mềm dẻo” dữ liệu
end: hỗ trợ của mạng:
D nếu đường gửi “chưa hết”: D các bit trong ô thiết lập bởi các
D không có phản hồi rõ ràng D các router cung cấp phản hồi switch
về các hệ thống đầu cuối O 1 Obên gửi sẽ dùng băng
từ mạng O bit NI : không tăng tốc độ
thông sẵn sàng
D tắc nghẽn được suy ra từ bit duy nhất chỉ thị tắc (tắc nghẽn nhẹ)
nghẽn (SNA, DECbit, D nếu đường gửi tắc nghẽn:
việc quan sát các hệ thống O bit CI : tắc nghẽn rõ rệt
đầu cuối có mất mát, trễ TCP/IP ECN, ATM) O bên gửi điều tiết với
tốc độ tối thiểu D Các ô RM được trả về bên gửi từ
D tiếp cận được quản lý bởi O tốc độ sẽ gửi được xác
bên nhận với nguyên vẹn các bit
TCP định rõ ràng

Lớp Transport 84 Lớp Transport 85

Ví dụ: điều khiển tắc nghẽn ATM ABR TCP điều khiển tắc nghẽn: additive tăng lên,
multiplicative giảm xuống
D Cách tiếp cận: tăng tốc độ truyền (kích thước cửa sổ),
tìm khả năng băng thông có thể, cho đến khi có mất
mát xảy ra
O additive tăng lên: tăng CongWin bởi 1 MSS mỗi RTT
cho đến khi có mất mát xảy ra
O multiplicative giảm xuống: bỏ CongWin trong nửa
giai đoạn sau khi mất mát
D trường 2-byte ER trong ô RM 24
congestion
window

O switch đã tắc nghẽn có thể có giá trị ER thấp hơn trong ô Tìm kiếm

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


Kbytes

O tốc độ gửi do đó có thể được hỗ trợ tối đa trên đường băng thông

tắc nghẽn
16
Kbytes

D EFCI bit trong các ô dữ liệu: được cài giá trị 1 trong
switch đã tắc nghẽn 8 Kbytes

time
O nếu ô dữ liệu đứng trước ô RM có cài EFCI, bên gửi sẽ cài bit
CI trong ô RM trả về 59 time

Lớp Transport 86 Lớp Transport 88


TCP điều khiển tắc nghẽn: chi
TCP khởi động chậm
tiết
D bên gửi hạn chế việc truyền: Làm thế nào bên gửi nhận D Khi kết nối bắt đầu, D Khi kết nối bắt đầu,
LastByteSent-LastByteAcked biết tắc nghẽn? CongWin = 1 MSS tăng tốc lên rất nhanh
 CongWin D mất mát xảy ra = O Ví dụ: MSS = 500 bytes & cho đến khi sự cố mất
timeout hoặc 3 ack RTT = 200 ms mát xảy ra đầu tiên
D Công thức,
trùng lặp O tốc độ khởi tạo = 20 kbps
CongWin
tốc độ = Bytes/s D bên gửi giảm tốc độ D băng thông sẵn sàng có
RTT (CongWin) sau khi mất
thể >> MSS/RTT
D CongWin thay đổi, chức năng mát xảy ra
O mong muốn nhanh chóng
là nhận biết tắc nghẽn trên 3 cơ chế: tăng tốc lên tốc độ có thể
mạng O AIMD đáp ứng
O khởi động chậm
O thận trọng sau khi có
các sự kiện timeout

Lớp Transport 89 Lớp Transport 90

TCP khởi động chậm (tt) Tinh chế


Hỏi: Khi nào việc tăng
D Khi kết nối bắt đầu, tốc trở thành tuyến
Host A Host B
tính?
tăng tốc lên rất nhanh
Trả lời: Khi CongWin
cho đến khi sự cố mất đạt đến 1/2 giá trị
RTT

mát xảy ra đầu tiên: của nó trước khi


O nhân đôi CongWin mỗi timeout.
RTT
O hoàn thành nhờ tăng
CongWin ứng với mỗi Hiện thực:
ACK đã nhận D Ngưỡng thay đổi
D Tổng kết: tốc độ khởi D Tại thời điểm có sự cố mất
đầu là chậm nhưng sau mát, ngưỡng được cài giá trị
bằng ½ của CongWin ngay
đó tăng tốc rất nhanh thời gian
trước đó
60
Lớp Transport 91 Lớp Transport 92
Tinh chế: nhận biết mất mát Tổng kết: TCP điều khiển tắc nghẽn
D Sau 3 ACK trùng lặp:
D Khi CongWin dưới Threshold, bên gửi đang trong
CongWin sẽ giảm 1/2
giai đoạn khởi động chậm, kích thước cửa sổ tăng
O
Nguyên lý:
Okích thước cửa sổ tăng nhanh theo cấp lũy thừa.
tuyến tính 0 3 ACK trùng nhau chỉ ra
khả năng truyền của mạng D Khi CongWin trên Threshold, bên gửi đang trong
D nhưng sau sự cố timeout:
0 timeout chỉ thị “nhiều giai đoạn tránh tắc nghẽn, kích thước cửa sổ tăng
O CongWin thay giá trị
cảnh báo” về tình huống nhanh theo cấp tuyến tính.
bằng 1 MSS;
tắc nghẽn
O kích thước cửa sổ tăng D Khi có 3 ACK trùng lặp xảy ra, Threshold =
cấp lũy thừa CongWin/2 và CongWin = Threshold.
O khi đến một ngưỡng thì
D Khi timeout xảy ra, Threshold = CongWin/2 và
tăng tuyến tính CongWin = 1 MSS.
Lớp Transport 93 Lớp Transport 94

TCP điều khiển tắc nghẽn bên gửi TCP throughput


Trạng thái Sự kiện TCP bên gửi hành động Diễn giải
Slow Start ACK báo CongWin = CongWin + MSS, Hậu quả làm tăng gấp đôi
(SS)-Khởi nhận cho dữ If (CongWin > Threshold) CongWin mỗi RTT D Throughout trung bình của TCP biểu diễn
động chậm liệu chưa cài đặt trạng thái “Tránh tắc
ACK trước
đó
nghẽn” qua kích thước của sổ và RTT?
Congestion ACK báo CongWin = CongWin+MSS * Additive tăng lên, làm tăng O Bỏ qua trạng thái “Khởi động chậm”
Avoidance nhận cho dữ (MSS/CongWin) CongWin lên 1 MSS mỗi
(CA) –Tránh
tắc nghẽn
liệu chưa
ACK trước
RTT D Cho W là kích thước cửa sổ khi có mất mát
đó xảy ra.
SS hoặc CA Sự cố mất Threshold = CongWin/2, Khôi phục nhanh, hiện thực
mát xảy ra CongWin = Threshold, giảm xuống multiplicative. D Khi kích thước cửa sổ = W, lưu lượng =
khi thấy có 3 cài đặt trạng thái “Tránh tắc CongWin sẽ không giảm
ACK trùng
lặp
nghẽn” xuống dưới 1 MSS. W/RTT
SS hoặc CA Timeout Threshold = CongWin/2, Vào chế độ “Khởi động D Chỉ ngay sau khi mất mát, cửa sổ giảm xuống
CongWin = 1 MSS, chậm”
cài đặt trạng thái “Khởi động
chậm”
= W/2, lưu lượng = W/2RTT.
SS hoặc CA ACK trùng Đếm ACK tăng lên cho đoạn CongWin và Threshold D throughout trung bình: 0.75 W/RTT
lặp vừa được ACK không thay đổi 61
Lớp Transport 95 Lớp Transport 96
TCP tương lai TCP: tính công bằng
Mục tiêu: nếu K phiên làm việc TCP chia sẻ kết nối cổ
D Ví dụ: các đoạn dài 1500 byte, RTT 100ms, lưu
chai của băng thông là R, mỗi phiên có tốc độ
lượng 10 Gbps
trung bình là R/K
D Kích thước cửa sổ yêu cầu W = 83,333 đoạn trên
đường truyền
TCP kết nối 1
D Lưu lượng trong các trường hợp mất mát:
1.22  MSS
RTT L
router cổ chai
TCP
D ➜L= 2·10-10 khả năng R
kết nối 2
D Phiên bản mới của TCP dành cho nhu cầu tốc độ cao!

Lớp Transport 97 Lớp Transport 98

Tại sao phải TCP công bằng? TCP: tính công bằng (tt)
Tính công bằng & UDP Tính công bằng & các kết nối
2 phiên làm việc cạnh tranh nhau: TCP song song
D nhiều ứng dụng
D Additive tăng, lưu lượng tăng
thường không dùng D không có gì ngăn cản
D multiplicative giảm lưu lượng tương xứng TCP việc ứng dụng mở các kết
nối song song giữa 2
không muốn tốc độ bị
host.
O
R chia sẻ băng thông bằng nhau
điều tiết do điều khiển
tắc nghẽn D Trình duyệt Web làm
Connection 2 throughput

D Thay bằng dùng UDP: giống như thế


mất mát: giảm cửa sổ bằng 1/2 O truyền audio/video với D Ví dụ: tốc độ R hỗ trợ
tránh tắc nghẽn: additive tăng lên tốc độ ổn định, chịu
mất mát: giảm cửa sổ bằng 1/2 9 kết nối ;
được mất mát
tránh tắc nghẽn: additive tăng lên O ứng dụng mới yêu cầu 1 TCP,
D Nghiên cứu: giao thức có tốc độ R/10
thân thiện với TCP O ứng dụng mới yêu cầu 11 TCP,
có tốc độ R/2 !
Connection 1 throughput R
62
Lớp Transport 99 Lớp Transport 100
Mô hình trễ Cửa sổ tắc nghẽn cố định (1)
Notation, các giả định:
Hỏi: Mất bao lâu để nhận 1 D Giả sử một kết nối giữa
đối tượng từ Web server client và server có tốc độ R
sau khi gửi yêu cầu? D S: MSS (bits)
Trường hợp đầu tiên:
WS/R > RTT + S/R: cho đoạn
Bỏ qua tắc nghẽn, trễ bị ảnh D O: kích thước đối tượng
đầu tiên trong cửa sổ trả
hưởng bởi: (bits)
về trước khi cửa sổ dữ liệu
D thiết lập kết nối TCP D không truyền lại (không mất
gửi ACK
mát, không hỏng)
D trễ truyền dữ liệu
D khởi động chậm Kích thước cửa sổ:
D Giả định 1: cửa sổ tắc nghẽn trễ = 2RTT + O/R
cố định, có W đoạn
D Sau đó cửa sổ thay đổi, mô
hình khởi động chậm

Lớp Transport 101 Lớp Transport 102

TCP Mô hình trễ: Khởi động chậm (1)


Cửa sổ tắc nghẽn cố định (2)
Bây giờ giả sử kích thước cửa sổ tăng lên tùy theo quá
trình khởi động chậm
Trường hợp thứ hai: Độ trễ của một đối tượng sẽ là:
Latency = 2RTT + + P  RTT +  − (2 P −
O S
D WS/R < RTT + S/R: sent S
1)  
chờ cho ACK sau khi gửi R R R

dữ liệu
trong đó P là số lần TCP rảnh ở tại server:

P = min{Q, K −1}
trễ = 2RTT + O/R
+ (K-1)[S/R + RTT - WS/R]
- trong đó Q là số lần server rảnh nếu đối tượng đã khởi tạo kích thước

- và K là số lượng cửa sổ bao trùm đối tượng

63
Lớp Transport 103 Lớp Transport 104
TCP Mô hình trễ: Khởi động chậm (2) TCP Mô hình trễ(3)
S
Các thành phần trễ: initiate TCP
connection
+ RTT = time from when server starts to send segment
•2 RTT dành cho thiết R
until server receives acknowledgement
lập kết nối và yêu cầu request

•O/R để truyền đối


object initiate TCP
first window connection

tượng
= S/R
S
2 k −1 = time to transmit the kth window
•thời gian server rảnh RTT
second window R request

bởi vì khởi động chậm = 2S/R object


first window
= S/R

 S + RTT − 2k −1 S  +
= idle time after the
Server rảnh:
RTT
third window
 R
second window
= 2S/R
= 4S/R
kth window R
P = min{K-1,Q} lần 
 
third window
= 4S/R

Ví dụ: fourth window


= 8S/R
• O/S = 15 đoạn O
delay = + 2RTT + P
idleTime
• K = 4 cửa sổ R
 p
fourth window
= 8S/R
p=1
•Q=2 P
O
• P = min{K-1,Q} = 2 object
complete
transmission =
S S
+ 2RTT +  [ + RTT − 2 k −1 ]
delivered R k =1 R R S complete
O S object
= + 2RTT + P[RTT + ] − (2 P −1)
transmission

Server rảnh P=2 lần


delivered
time at
time at server R R R time at
client time at server
client

Lớp Transport 105 Lớp Transport 106

TCP Mô hình trễ (4) HTTP Mô hình


K = số lượng cửa sổ bao trùm đối tượng D Giả sử trang Web chứa:
Làm thế nào tính được K ? O 1 trang HTML (kích thước O bits)
O M hình ảnh (mỗi cái kích thướcO bits)
D HTTP không bền vững:
K = min{k : 20 S + 21 S +L + 2 k −1 S  O} O M+1 TCP kết nối
= min{k : 20 + 21 +L + 2 k −1  O / S} O Thời gian đáp ứng = (M+1)O/R + (M+1)2RTT + tổng số thời gian
O rảnh
= min{k : 2 k −1  }
S D HTTP bền vững:
O O 2 RTT để yêu cầu và nhận file HTML
= min{k : k  log 2 ( +1)} O 1 RTT để yêu cầu và nhận M hình ảnh
S O Thời gian đáp ứng = (M+1)O/R + 3RTT + tổng số thời gian rảnh

= log (
O
D HTTP không bền vững với X kết nối song song
  2 S
+1) O Giả sử M/X là số nguyên.
O 1 TCP kết nối cho file
cách tính toán Q 
tương tự (xem HW).
 O M/X thiết lập các kết nối song song cho các hình ảnh
O Thời gian đáp ứng = (M+1)O/R + (M/X + 1)2RTT + tổng số thời
64 gian rảnh
Lớp Transport 107 Lớp Transport 108
HTTP thời gian đáp ứng (giây) HTTP thời gian đáp ứng (giây)
RTT = 100 msec, O = 5 Kbytes, M=10 và X=5 RTT =1 sec, O = 5 Kbytes, M=10 and X=5
20
70
18
16 60
14 50
12 non-persistent non-persistent
10 40
8 persistent 30 persistent
6
20
4 parallel non- parallel non-
2 persistent 10 persistent
0 0
28 100 1 10
28 100 1 10
Kbps Kbps Mbps Mbps
Kbps Kbps Mbps Mbps
Với băng thông thấp, thời gian kết nối & đáp ứng trội hơn thời gian
truyền Với RTT lớn hơn, thời gian đáp ứng trội hơn thời gian trễ chờ thiết lập kết nối
Các kết nối bền vững chỉ cho sự cải thiện không đáng kể trên các kết nối TCP & khởi động chậm. Các kết nối bền vững bây giờ cho thấy cải thiện rõ rệt:
song song đặc biệt với các mạng băng thông cao
Lớp Transport 109 Lớp Transport 119

Chương 3: Tổng kết Chương 4: Tầng mạng


D các nguyên lý của các
dịch vụ lớp transport Tiếp theo: Mục đích:
O multiplexing,
D nghiên cứu xong
❑ Hiểu các nguyên tắc bên trong dịch vụ tầng
demultiplexing các vấn đề “ngoài
biên” (các lớp
mạng:
O truyền dữ liệu tin cậy Chọn đường
application, 
O điều khiển luồng transport)  Vấn đề quy mô
O điều khiển tắc nghẽn D chuẩn bị vào  Cách làm việc của Router
D khởi tạo và hiện thực trong phần “lõi” của  Các chủ đề nâng cao: IPv6, mobility
Internet mạng
❑ Ví dụ và cài đặt trong Internet
O UDP
O TCP

65
Lớp Transport 111 1-2
Tầng mạng
Chương 4: Tầng mạng
❑ Chuyển segment từ host
gửi tới host nhận application
❑ 4. 1 Tổng quan ❑ 4.5 Thuật toán dẫn transport

Bên gửi đóng gói


network

đường ❑ data link


❑ 4.2 Mạng Virtual circuit
network
physical data link
network network

 Link state segment thành các data link physical data link
và datagram physical physical

 Distance Vector datagram network


❑ 4.3 IP: Internet Protocol data link

 Hierarchical routing ❑ Bên nhận chuyển các physical network

Định dạng Datagram


data link

segment tới tầng giao vận
physical

 Địa chỉ IPv4 ❑ 4.6 Dẫn đường trong network

Các giao thức tầng mạng


network data link

 ICMP Internet ❑ data link


physical
physical

 IPv6  RIP có trong mọi host, router network


data link application
transport
Router kiểm tra trường
physical

❑ 4.4 Bên trong Router


 OSPF ❑ network
data link
 BGP header trong mọi IP physical

❑ 4.7 Dẫn đường datagram chuyển qua nó


broadcast và multicast
1-3 1-4

Ảnh hưởng giữa chọn đường và chuyển tiếp


Chức năng chính của tầng mạng
Thuật toán dẫn đường

❑ Chuyển tiếp: chuyển Liên hệ:


các gói tin từ đầu vào Bảng chuyển tiếp cục bộ

router sang đầu ra ❑ Dẫn đường: Quá trình Giá trị header Đường ra
0100 3

thích hợp của router lập kế hoạch chuyến đi 0101


0111
2
2

từ nguồn đến đích


1001 1

❑ Dẫn đường: xác định


đường đi của gói tin từ ❑ Chuyển tiếp: Quá trình Giá trị trong header
của gói tin đến

nguồn tới đích. xử lý qua một điểm 0111 1


đơn 3 2
 Các thuật toán dẫn
đường
66
1-5 1-6
Mô hình dịch vụ mạng Các mô hình dịch vụ của tầng mạng
Q: Mô hình dịch vụ nào cho kênh truyền các datagram Đảm bảo ?
Kiến trúc Mô hình Phản hồi
từ bên gửi tới bên nhận? mạng dịch vụ Bandwidth Mất gói Thứ tự Thời gian tắc nghẽn

Ví dụ các dịch vụ cho từng Ví dụ các dịch vụ cho một Internet best effort Không Không Không Không Không (suy ra
datagram: luồng datagram: từ loss)
ATM CBR tốc độ Có Có Có Không
❑ Truyền đảm bảo ❑ Chuyển datagram đúng
hằng số tắc nghẽn
❑ Truyền đảm bảo độ trễ thứ tự ATM VBR tốc độ Có Có Có Không
nhỏ hơn 40 msec ❑ Đảm bảo tốc độ tối đảm bảo tắc nghẽn
thiểu cho luồng ATM ABR đảm bảo Không Có Không Có
❑ Hạn chế sự thay đổi mức tối thiểu
khoảng cách giữa các ATM UBR Không Không Có Không Không
gói tin

1-7 1-8

Dịch vụ hướng kết nối


Chương 4: Tầng mạng
và không hướng kết nối của tầng mạng
❑ 4. 1 Tổng quan ❑ 4.5 Thuật toán dẫn ❑ Mạng datagram cung cấp dịch vụ không
❑ 4.2 Mạng Virtual circuit đường hướng kết nối ở tầng mạng
và datagram  Link state
 Distance Vector ❑ Mạng VC cung cấp dịch vụ hướng kết nối ở
❑ 4.3 IP: Internet Protocol
 Hierarchical routing tầng mạng
 Định dạng Datagram
 Địa chỉ IPv4 ❑ 4.6 Dẫn đường trong ❑ Tương tự với các dịch vụ của tầng giao vận,
 ICMP Internet nhưng:
 RIP
 IPv6  Dịch vụ: host tới host
 OSPF
❑ 4.4 Bên trong Router  Cài đặt: trong phần lõi
 BGP
❑ 4.7 Dẫn đường
broadcast và multicast
67
1-9 1-10
Virtual circuit
“Đường đi từ nguồn tới đích giống như mạng điện thoại”
 Hiệu năng tốt
 Sự kiện mạng theo đường đi từ nguồn tới đích

❑ Thiết lập mỗi cuộc gọi trước khi dữ liệu có thể truyền
❑ Mỗi gói tin mạng một định danh VC (không phải địa chỉ 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 đi qua
❑ Tài nguyên router, đường truyền (bandwidth, vùng đệm) cấp
phát cho VC

1-11 1-12

Cài đặt VC Virtual circuit: Giao thức báo hiệu


Một VC bao gồm: ❑ Sử dụng để thiết lập, duy trì, chấm dứt VC
1. Đường đi từ nguồn tới đích ❑ Sử dụng trong ATM, frame-relay, X.25
2. VC number, một số cho mỗi đường truyền dọc ❑ Không sử dụng trong Internet hiện nay
đường đi
3. Điểm vào trong bảng chuyển tiếp trong router
trên đường đi application
6. Nhận dữ liệu application
transport 5. Luồng dữ liệu bắt đầu
transport
network 4. Cuộc gọi được kết nối 3. Chấp nhận cuộc gọi
data link 1. Khởi đầu cuộc gọi 2. Cuộc gói đến network
data link
physical
physical

68
1-13 1-14
Mạng datagram
❑ Không thiết lập cuộc gọi tại tầng mạng
❑ Router: không có trạng thái về các kết nối end-to-end
 Không có khái niệm mức mạng về kết nối

❑ Các gói tin chuyển tiếp sử dụng địa chỉ của host đích
❑ Các gói tin cùng cặp địa chỉ nguồn-đích có thể đi
theo các đường khác nhau

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

1-15 1-16

So sánh mạng datagram và mạng VC


Vấn đề Datagram Subnet Virtual Circuit Subnet Chương 4: Tầng mạng
❑Thiết lập nối kết ❑Không cần ❑Cần thiết
❑Mỗi gói tin chỉ chứa số
❑Đánh địa chỉ ❑Mỗi gói tin chứa đầy
đủ địa chỉ gởi và nhận
nhận dạng nối kết có ❑ 4. 1 Tổng quan ❑ 4.5 Thuật toán dẫn
kích thước nhỏ.
❑Router không cần ❑ 4.2 Mạng Virtual circuit đường
❑Mỗi nối kết phải được
❑Thông tin trạng thái phải lưu giữ thông tin lưu lại trong bảng chọn và datagram  Link state
trạng thái của các nối đường của router.  Distance Vector
❑ 4.3 IP: Internet Protocol
kết ❑Đường đi được chọn
 Hierarchical routing
khi mạch ảo được thiết  Định dạng Datagram
❑Mỗi gói tin có đường
lập, sau đó tất cả các gói  Địa chỉ IPv4 ❑ 4.6 Dẫn đường trong
❑Chọn đường đi khácnhau tin đều đi trên đường
 ICMP Internet
❑Không bị ảnh hưởng, này.
❑Ảnh hưởng khi router ngoại trừ gói tin đang ❑Tất cả các mạch ảo đi  IPv6  RIP
bị hỏng trên đường truyền bị qua router bị hỏng đều bị  OSPF
kết thúc ❑ 4.4 Bên trong Router
hỏng  BGP
❑Có thể thực hiện dễ
❑Khó đảm bảo dàng nếu có đủ tài ❑ 4.7 Dẫn đường
nguyên gán trước cho broadcast và multicast
❑Chất lượng dịch vụ từng nối kết
69
1-17 1-18
Tầng mạng của Internet Chương 4: Tầng mạng
Chức năng tầng mạng của host, router:
❑ 4. 1 Tổng quan ❑ 4.5 Thuật toán dẫn
Tầng giao vận: TCP, UDP
❑ 4.2 Mạng Virtual circuit đường
và datagram  Link state
Giao thức IP
Giao thức dẫn đường  Distance Vector
•Quy tắc đánh địa chỉ ❑ 4.3 IP: Internet Protocol
•Chọn đường
•Định dạng datagram
•RIP, OSPF, BGP  Hierarchical routing
Tầng •Quy tắc điều khiển gói tin  Định dạng Datagram
mạng  Địa chỉ IPv4 ❑ 4.6 Dẫn đường trong
Bảng
chuyển tiếp Giao thức ICMP
 ICMP Internet
•Thông báo lỗi
•Báo hiệu của router  IPv6  RIP
 OSPF
❑ 4.4 Bên trong Router
Tầng liên kết dữ liệu  BGP
Tầng vật lý ❑ 4.7 Dẫn đường
broadcast và multicast
1-19 1-20

Định dạng IP datagram Phân mảnh và ghép phân mảnh


Số phiên bản
của giao thức IP
32 bits tổng chiều dài IP datagram
của datagram ❑ Liên kết mạng có MTU (kích
Chiều dài header
ver head. type of length (byte) thước truyền tối đa) – frame
(byte) len service
“kiểu” dữ liệu fragment mức liên kết dữ liệu lớn nhất có
để phân
16-bit identifier flgs
offset thể. Phân mảnh:
mảnh/
Số hop tối đa còn lại time to upper Internet  Các kiểu liên kết khác nhau, Vào: một datagram lớn
ghép phân
(giảm tại mỗi router) live layer checksum MTU khác nhau Ra: 3 datagram nhỏ hơn
mảnh
32 bit địa chỉ IP nguồn ❑ Sự phân mảnh IP datagram:
 Một datagram thành nhiều
32 bit địa chỉ IP đích
Giao thức của tầng trên datagram
Ghép phân mảnh
để chuyển payload Tùy chọn Ví dụ:  Chỉ ghép lại tại đích
timestamp,  Sử dụng thông tin trong IP
Overhead của TCP? dữ liệu bản ghi đường header để xác định, xếp thứ
❑ 20 byte của TCP (chiều dài thay đổi, đi tự các phân mảnh
thường là một TCP (danh sách
❑ 20 byte của IP
hoặc UDP segment) các router đi
❑ = 40 byte + qua)
Overhead của
tầng ứng dụng 70
1-21 1-22
Sự phân mảnh và ghép phân mảnh
Chương 4: Tầng mạng
IP datagram
length ID fragflag offset
=4000 =x ❑ 4. 1 Tổng quan ❑ 4.5 Thuật toán dẫn
Ví dụ =0 =0
❑ Datagram: 4000 ❑ 4.2 Mạng Virtual circuit đường
Một datagram lớn chia thành  Link state
byte nhiều datagram nhỏ hơn
và datagram
❑ MTU = 1500 byte  Distance Vector
❑ 4.3 IP: Internet Protocol
 Hierarchical routing
length ID fragflag offset  Định dạng Datagram
=1500 =x =1 =0
 Địa chỉ IPv4 ❑ 4.6 Dẫn đường trong
1480 bytes in
data field length ID fragflag offset  ICMP Internet
=1500 =x =1 =185  IPv6  RIP
offset =
 OSPF
1480/8 length ID fragflag offset ❑ 4.4 Bên trong Router
=1040 =x =0 =370
 BGP
❑ 4.7 Dẫn đường
broadcast và multicast
1-23 1-24

Địa chỉ IP Subnet


223.1.1.1
❑ Địa chỉ IP: 32-bit định ❑ Địa chỉ IP: 223.1.1.1

danh cho giao tiếp của 223.1.2.1  Phần subnet (các bít
223.1.1.2
223.1.2.1
223.1.1.2
host, router 223.1.1.4 223.1.2.9 phần cao) 223.1.1.4 223.1.2.9
 Phần host (các bít phần
❑ Giao diện: kết nối giữa 223.1.2.2 thấp) 223.1.2.2
host/router và liên kết 223.1.1.3 223.1.3.27 223.1.1.3 223.1.3.27

vật lý ❑ Khái niệm subnet ?


LAN
 Giao diện của thiết bị
 Thông thường, router có
nhiều giao tiếp 223.1.3.1 223.1.3.2 mà địa chỉ IP có cùng 223.1.3.1 223.1.3.2
phần subnet
 host có thể có nhiều
 Có thể kết nối với không
giao tiếp
không cần thông qua
 Địa chỉ IP gán cho mỗi router Mạng chứa 3 subnet
tiếp 223.1.1.1 = 11011111 00000001 00000001 00000001

223 1 1 1
71
1-25 1-26
Subnet 223.1.1.0/24
223.1.2.0/24
Subnet 223.1.1.2

Số subnet ? 223.1.1.1 223.1.1.4


Công thức
❑ Để xác định các subnet, 223.1.1.3

tách giao tiếp của host


223.1.9.2 223.1.7.0
hoặc router, tạo mạng
cô lập. Mỗi mạng cô lập
gọi là một subnet.
223.1.9.1 223.1.7.1
223.1.8.1 223.1.8.0
223.1.3.0/24
223.1.2.6 223.1.3.27

Subnet mask: /24 223.1.2.1 223.1.2.2 223.1.3.1 223.1.3.2

1-27 1-28

Phân lớp địa chỉ IP


Địa chỉ IP: CIDR
CIDR: Classless InterDomain Routing
 Phần địa chỉ subnet có độ dài tùy ý
 Định dạng địa chỉ: a.b.c.d/x, trong đó x là số bít của phần
subnet trong địa chỉ

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

72
1-29 1-30
Địa chỉ IP: Cách gán địa chỉ IP? Địa chỉ IP: Cách gán địa chỉ IP?
Q: Cách xác định subnet từ địa chỉ IP?
Q: Cách để host có địa chỉ IP? A: Tính dựa vào phần không gian địa chỉ được
cấp
❑ Khai báo bởi người quản trị
 Windows: Control Panel->Network->Configuration-
>TCP/IP->Properties Khối của ISP 11001000 00010111 00010000 00000000 200.23.16.0/20

 UNIX: /etc/rc.config 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
❑ DHCP: Dynamic Host Configuration Protocol: lấy địa
Tổ chức 2 11001000 00010111 00010100 00000000 200.23.20.0/23
chỉ IP động từ server ... ….. …. ….
Tổ chức 7 11001000 00010111 00011110 00000000 200.23.30.0/23

1-31 1-32

Địa chỉ phân cấp: Gửi kết tập Địa chỉ phân cấp
Địa chỉ phân cấp cho phép thông báo hiệu quả thông tin dẫn đường:
ISPs-R-Us có hơn một đường đi tới tổ chức 1
Tổ chức 0
Tổ chức 0 200.23.16.0/23
200.23.16.0/23
“Gửi cho tôi gói tin có địa chỉ bắt đầu bằng
Tổ chức 1 200.23.16.0/20”
“Gửi cho tôi gói tin có địa chỉ bắt đầu bằng
200.23.18.0/23 200.23.16.0/20” Tổ chức 2
Tổ chức 2 200.23.20.0/23 . Fly-By-Night-ISP
.
200.23.20.0/23 . Fly-By-Night-ISP . .
. . Internet
. . Internet
Tổ chức 7 .
.
Tổ chức 7 . 200.23.30.0/23
200.23.30.0/23 “Gửi cho tôi gói tin có địa chỉ bắt đầu bằng
ISPs-R-Us
“Gửi cho tôi gói tin có địa chỉ bắt đầu bằng 199.31.0.0/16
ISPs-R-Us hoặc 200.23.18.0/23”
199.31.0.0/16” Tổ chức 1
200.23.18.0/23

73
1-33 1-34
Địa chỉ IP: Các thông tin khác NAT: Network Address Translation

Q: Cách ISP nhận địa chỉ? Phần còn lại của Mạng cục bộ
Internet 10.0.0/24
A: ICANN: Internet Corporation for Assigned 10.0.0.1

Names and Numbers 10.0.0.4


10.0.0.2
 Cấp phát địa chỉ
138.76.29.7
 Quản lý DNS
10.0.0.3
 Gán tên miền, trả lời yêu cầu DNS
Tất cả các datagram rời mạng cục bộ Các datagram với nguồn hoặc đích
có cùng địa chỉ NAT IP nguồn là: trong mạng có địa chỉ 10.0.0/24,
138.76.29.7, địa chỉ nguồn/đích
khác nhau về giá trị cổng nguồn có giá trị như bình thường

1-35 1-36

NAT: Network Address Translation NAT: Network Address Translation


Thực hiện: NAT router phải:
❑ Động cơ mạng cục bộ sử dụng 1 địa chỉ IP:
 Các datagram ra ngoài: thay thế (địa chỉ IP nguồn, port
 Không cần được cấp phát dải địa chỉ từ ISP: một địa chỉ #) của mọi datagram ra ngoài thành (địa chỉ NAT IP,
IP cho tất cả mọi thiết bị port # mới)
 Có thể thay đổi địa chỉ của thiết bị trong mạng cục bộ . . . Client/server ở xa sẽ trả lời sử dụng (địa chỉ NAT
không cần thông báo với thế giới bên ngoài IP, port # mới) là địa chỉ đích.
 Có thể thay đổi ISP không cần thay đổi địa chỉ của các
 Ghi nhớ (trong bảng phiên dịch NAT) mọi cặp (địa chỉ IP
thiết bị trong mạng cục bộ nguồn, port #) thành (địa chỉ NAT IP, port # mới)
 Các thiết bị trong mạng cục bộ không có địa chỉ rõ ràng
đối với thế giới bên ngoài (bảo mật hơn)  Các datagram đi vào: thay thế (địa chỉ NAT IP, port #
mới) trong trường địa chỉ đích của mọi datagram đi vào
bằng (địa chỉ IP nguồn, port #) tương ứng (chứa trong
bảng phiên dịch NAT)
74
1-37 1-38
NAT: Network Address Translation NAT: Network Address Translation
Bảng phiên dịch NAT
1: host 10.0.0.1
2: NAT router Địa chỉ phía WAN Địa chỉ phía LAN
gửi datagram tới ❑ Trường giá trị cổng 16-bit:
thay đổi địa chỉ nguồn
138.76.29.7, 5001 10.0.0.1, 3345 128.119.40, 80
của datagram từ  60,000 kết nối đồng thời qua một địa chỉ đơn phía
…… ……
10.0.0.1, 3345 thành LAN!
138.76.29.7, 5001,
❑ Tranh luận về NAT:
S: 10.0.0.1, 3345
cập nhật bảng D: 128.119.40.186, 80
10.0.0.1
1  Các router chỉ nên xử lý tới tầng 3
S: 138.76.29.7, 5001
2 D: 128.119.40.186, 80 10.0.0.4
10.0.0.2  Vi phạm tham số end-to-end
138.76.29.7 S: 128.119.40.186, 80 • NAT có thể phải chú ý bởi người thiết kế ứng dụng, ví
4
S: 128.119.40.186, 80
D: 10.0.0.1, 3345 dụ: ứng dụng P2P
D: 138.76.29.7, 5001 3 10.0.0.3
3: Trả lời đến địa chỉ đích:
4: NAT router  Địa chỉ ngắn nên được thay bằng IPv6
thay đổi địa chỉ đích của datagram
138.76.29.7, 5001 từ 138.76.29.7, 5001
thành 10.0.0.1, 3345

1-39 1-40

Chương 4: Tầng mạng ICMP: Internet Control Message Protocol

❑ 4.1 Tổng quan ❑ 4.5 Thuật toán dẫn ❑ Sử dụng bởi host và router để
giao tiếp thông tin mức mạng Type Code Mô tả
❑ 4.2 Mạng Virtual circuit đường 0 0 echo reply (ping)
 Thông báo lỗi: không thấy
 Link state 3 0 dest. network unreachable
và datagram host, mạng, cổng, giao thức 3 1 dest host unreachable
 Distance Vector  Echo request/reply (sử dụng 3 2 dest protocol unreachable
❑ 4.3 IP: Internet Protocol
 Hierarchical routing trong lệnh ping) 3 3 dest port unreachable
 Định dạng Datagram ❑ Tầng mạng trên IP: 3 6 dest network unknown
 Địa chỉ IPv4 ❑ 4.6 Dẫn đường trong 3 7 dest host unknown
 Bản tin ICMP được chứa
 ICMP Internet trong IP datagram 4 0 source quench (congestion
 RIP ❑ Bản tin ICMP: type, code, 8 byte
control - not used)
 IPv6 8 0 echo request (ping)
 OSPF đầu tiên của IP datagram gây ra
❑ 4.4 Bên trong Router lỗi 9 0 route advertisement
 BGP 10 0 router discovery
11 0 TTL expired
❑ 4.7 Dẫn đường 12 0 bad IP header
broadcast và multicast
75
1-41 1-42
Traceroute và ICMP Chương 4: Tầng mạng
❑ Phía nguồn gửi một ❑ Khi bản tin ICMP tới, ❑ 4.1 Tổng quan ❑ 4.5 Thuật toán dẫn
chuỗi các UDP segment nguồn tính RTT ❑ 4.2 Mạng Virtual circuit đường
đến đích ❑ Traceroute thực hiện 3 Link state
và datagram 
 Đầu tiên có TTL =1 lần  Distance Vector
 Thứ hai có TTL=2,… ❑ 4.4 IP: Internet Protocol
Điều kiện dừng  Hierarchical routing
❑ Khi datagram thứ n tới  Định dạng Datagram
❑ UDP segment cuối ❑ 4.6 Dẫn đường trong
router thứ n: cùng đến host đích
 Địa chỉ IPv4
 Router loại bỏ datagram  ICMP Internet
❑ Đích trả về gói tin ICMP  RIP
 Và gửi tới nguồn một bản  IPv6
tin ICMP (type 11, code “host unreachable”  OSPF
0) (type 3, code 3) ❑ Bên trong Router
 BGP
 Bản tin bao gồm tên của ❑ Khi nguồn nhận gói tin
router và địa chỉ IP ❑ 4.7 Dẫn đường
ICMP này -> dừng
broadcast và multicast
1-43 1-44

IPv6 IPv6 Header


❑ Mục đích ban đầu: Không gian địa chỉ 32-bit Priority: Xác định mức ưu tiên giữa các datagram trong luồng
Flow Label: xác định datagram trong cùng luồng
sớm cấp phát hết
Next header: xác định giao thức tầng trên
❑ Mục đích khác:
 Định dạng của header giúp tăng tốc xử lý và chuyển
tiếp gói tin
 Thay đổi header để hỗ trợ QoS
Định dạng của IPv6 datagram:
 Header có độ dài cố định 40 byte
 Không cho phép phân mảnh

76
1-45 1-46
Các thay đổi khác so với IPv4 Chuyển từ IPv4 sang IPv6
❑ Checksum: loại bỏ hoàn toàn để giảm thời ❑ Tất cả các router không thể nâng cấp đồng thời
gian xử lý tại mỗi hop  Cách để mạng có thể hoạt động với cả router IPv4 và

❑ Options: cho phép, nhưng ngoài header, chỉ IPv6?


định bởi trường “Next Header” ❑ Tunneling: IPv6 là payload trong IPv4 datagram
❑ ICMPv6: phiên bản mới của ICMP giữa các IPv4 router
 Thêm các kiểu bản tin mới, ví dụ “Packet Too Big”
 Chức năng quản lý nhóm multicast

1-47 1-48

Tunneling Chương 4: Tầng mạng


A B E F
Góc nhìn lôgíc: tunnel

IPv6 IPv6 IPv6 IPv6 ❑ 4. 1 Tổng quan ❑ 4.5 Thuật toán dẫn
❑ 4.2 Mạng Virtual circuit đường
A B C D E F
Góc nhìn vật lý: và datagram  Link state
IPv6  Distance Vector
IPv6 IPv6 IPv4 IPv4 IPv6 ❑ 4.3 IP: Internet Protocol
 Hierarchical routing
Flow: X Src:B Src:B Flow: X  Định dạng Datagram
Src: A
Dest: F
Dest: E Dest: E Src: A
Dest: F  Địa chỉ IPv4 ❑ 4.6 Dẫn đường trong
Flow: X Flow: X
Src: A Src: A  ICMP Internet
dữ liệu Dest: F Dest: F dữ liệu  RIP
 IPv6
 OSPF
dữ liệu dữ liệu
❑ 4.4 Bên trong Router
 BGP

A-to-B: E-to-F:
❑ 4.7 Dẫn đường
B-to-C: B-to-C:
IPv6
IPv6 trong IPv6 trong
IPv6 broadcast và multicast
IPv4 IPv4 77
1-49 1-50
Tổng quan về kiến trúc của Router Chức năng của cổng vào
Hai chức năng chính của router
❑ Chạy các giao thức/thuật toán chọn đường (RIP, OSPF, BGP)
❑ Chuyển tiếp các datagram từ đường truyền vào sang đường truyền
ra

Tầng vật lý:


nhận mức bít
Tầng liên kết dữ liệu:
Chuyển tiếp không tập chung:
❑ Dựa vào của datagram, tìm kiếm cổng ra
ví dụ: Ethernet sử dụng bảng chuyển tiếp trong bộ nhớ
chi tiết trong chương 5 cổng vào
❑ Mục đích: xử lý cổng vào với tốc độ của
đường truyền
❑ Xếp hàng: Nếu các datagram đến nhah
hơn tốc độ chuyển tiếp vào trong switch
fabric

1-51 1-52

Ba kiểu switch fabric Chuyển mạch qua bộ nhớ


Router thế hệ đầu tiên:
❑ Các máy tính truyền thống chuyển mạch dưới sự
điều khiển trực tiếp của CPU
❑ Các gói tin được sao chép vào trong bộ nhớ của hệ
thống
❑ Tốc độ bị hạn chế bởi bandwidth của bộ nhớ (2 lần
truy nhập bus đối với mỗi datagram)
Cổng vào Bộ nhớ Cổng ra

Bus hệ thống

78
1-53 1-54
Chuyển mạch qua bus Chuyển mạch qua mạng kết nối

❑ Giải quyết hạn chế vấn đề bandwidth của bus


❑ Datagram từ bộ nhớ cổng vào chuyển sang
❑ Mạng Banyan, mạng các kết nối ban đầu được phát
bộ nhớ cổng ra thông qua bus dùng chung
❑ Cạnh tranh bus: tốc độ chuyển mạch bị giới
triển để kết nối các processor trong multiprocessor
hạn bởi bandwidth của của bus ❑ Thiết kế tiên tiến: phân mảnh các datagram thành
❑ Bus 1 Gbps, Cisco 1900: tốc độ đủ cho các các cell có độ dài cố định, chuyển mạch các cell qua
router doanh nghiệp (khác router cho vùng,
mạng backbone) fabric.
❑ Cisco 12000: chuyển mạch Gbps qua mạng kết nối

1-55 1-56

Cổng ra Xếp hàng tại cổng ra

❑ Đệm khi datagram đến fabric nhanh hơn tốc độ


truyền ❑ Đệm khi tốc độ đến qua switch vượt quá tốc độ
❑ Nguyên tắc lập lịch chọn các datagram đang xếp đường ra
hàng để truyền ❑ Xếp hàng (trễ) và mất gói bởi vì vùng đệm của cổng
ra bị tràn!
79
1-57 1-58
Xếp hàng ở cổng vào
Chương 4: Tầng mạng
❑ Fabric chậm hơn cổng vào -> xếp hàng có thể xảy ra ở hàng đợi
cổng vào
❑ 4.1 Tổng quan ❑ 4.5 Thuật toán dẫn
❑ Head-of-the-Line (HOL) blocking: các datagram xếp hàng tại trước
hàng đợi ngăn không cho datagram khác chuyển tiếp ❑ 4.2 Mạng Virtual circuit đường
❑ Độ trễ và mất gói khi xếp hàng bởi vì tràn vùng đệm vào! và datagram  Link state
 Distance Vector
❑ 4.4 IP: Internet Protocol
 Hierarchical routing
 Định dạng Datagram
 Địa chỉ IPv4 ❑ 4.6 Dẫn đường trong
 ICMP Internet
 IPv6  RIP
 OSPF
❑ 4.3 Bên trong Router
 BGP
❑ 4.7 Dẫn đường
broadcast và multicast
1-59 1-60

Ảnh hưởng giữa dẫn đường


và chuyển tiếp Trừu tượng hóa mạng bằng đồ thị
Thuật toán dẫn đường 5

v 3 w
2 5
Bảng chuyển tiếp cục bộ
Giá trị header Đường truyền ra u 2 1 z
0100 3
3
0101 1 2
0111
2
2 x 1
y
1001 1 Đồ thị: G = (N,E)

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


Giá trị trong header của gói tin đến
E = Tập các liên kết ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }
0111 1

3 2 Chú ý: Sự trừu tượng hóa bằng đồ thị thích hợp trong nhiều ngữ cảnh khác
của mạng

Ví dụ: P2P, N là tập các peer và E là tập các kết nối TCP
80
1-61 1-62
Trừu tượng hóa mạng bằng đồ thị:
Phân loại thuật toán dẫn đường
chi phí
Thông tin thống nhất hay không Tĩnh hay động?
5
• c(x,x’) = chi phí của liên kết (x,x’) tập chung? Tĩnh (static):
3 - ví dụ: c(w,z) = 5 Thông tin thống nhất (Global): ❑ Các router thay đổi chậm theo
v w 5
2 ❑ Tất cả các router có topology, chi thời gian
• cost có thể luôn là 1
u 2
3
1 z hoặc liên quan tới bandwidth
phí liên kết đầy đủ Động (dynamic):
1 hoặc liên quan tới tắc nghẽn ❑ Các thuật toán “link state” ❑ Các router thay đổi nhanh hơn
2
x y Thông tin không tập chung
1  Cập nhật định kỳ
(decentralized):  Phản hồi khi chi phí liên kết
❑ Router biết các hàng xóm có kết thay đổi
Chi phí của đường đi (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp) nối vật lý với nó, chi phí liên kết
tới hàng xóm
Câu hỏi: Đường đi có chi phí ít nhất giữa u và z? ❑ Quá trình lặp tính toán, trao đổi
thông tin với các hàng xóm
❑ Các thuật toán “distance vector”
Thuật toán dẫn đường:
thuật toán tìm đường đi có chi phí thấp nhất
1-63 1-64

Chương 4: Tầng mạng Thuật toán dẫn đường Link-State

❑ 4.1 Tổng quan ❑ 4.5 Thuật toán dẫn Thuật toán Dijkstra Chú thích:
đường ❑ Mọi nút đều biết topology của ❑ c(x,y): chi phí liên kết từ nút x
❑ 4.2 Mạng Virtual circuit mạng, chi phí của liên kết tới nút y; = ∞ nếu không là hàng
và datagram  Link state
 Thực hiện bằng “link state xóm trực tiếp
 Distance Vector broadcast” ❑ D(v): giá trị hiện tại của chi phí
❑ 4.3 Bên trong Router
 Hierarchical routing  Mọi nút có thông tin giống đường đi từ nguồn tới đích v
❑ 4.4 IP: Internet Protocol nhau
❑ 4.6 Dẫn đường trong ❑ p(v): nút trước của v trong
 Định dạng Datagram ❑ Tính toán đường đi có chi phí đường đi từ nguồn tới v
Internet thấp nhất từ một nút (nguồn) tới
 Địa chỉ IPv4 ❑ N': tập các nút mà đường đi có
 RIP tất cả các nút khác.
 ICMP chi phí thấp nhất đã xác định
 OSPF  Cho kết quả là bảng chuyển
 IPv6 tiếp của nút đó
 BGP
❑ Lặp: sau k vòng lặp, biết đường
❑ 4.7 Dẫn đường đi có chi phí thấp nhất tới k đích
broadcast và multicast
81
1-65 1-66
Thuật toán Dijsktra Thuật toán Dijkstra: ví dụ
1 Khởi tạo: Bước N' D(v),p(v) D(w),p(w) D(x),p(x) D(y),p(y) D(z),p(z)
2 N' = {u} 0 u 2,u 5,u 1,u ∞ ∞
3 for <mọi nút v> 1 ux 2,u 4,x 2,x ∞
4 if <v kề u> 2 uxy 2,u 3,y 4,y
5 then D(v) = c(u,v) 3 uxyv 3,y 4,y
6 else D(v) = ∞ 4 uxyvw 4,y
7 5 uxyvwz
8 Lặp
9 Tìm w không trong N' thỏa mãn D(w) nhỏ nhất
10 Thêm w vào N' 5
11 Cập nhật D(v) với mọi v kề với w và không trong N' : v 3 w
12 D(v) = min( D(v), D(w) + c(w,v) ) 2 5
13 /* Chi phí mới tới v là chi phí cũ tới v hoặc là chi phí đường đi u 2 1 z
3
14 ngắn nhất tới w đã biết cộng với chi phí từ w tới v */ 1 2
15 Tới khi mọi nút trong N' x y
1

1-67 1-68

Thuật toán Dijkstra: thảo luận Chương 4: Tầng mạng


Độ phức tạp của thuật toán: n nút
❑ 4.1 Tổng quan ❑ 4.5 Thuật toán dẫn
❑ Mỗi vòng lặp: cần kiểm tra mọi nút, w, không trong N
❑ 4.2 Mạng Virtual circuit đường
❑ n(n+1)/2 lần so sánh: O(n2)
và datagram  Link state
❑ Cài đặt có thể hiệu quả hơn: O(nlogn)
 Distance Vector
❑ 4.3 Bên trong Router
Trường hợp không ổn định:  Hierarchical routing
❑ 4.4 IP: Internet Protocol
❑ Ví dụ: chi phí liên kết = lượng lưu lượng đã mang ❑ 4.6 Dẫn đường trong
 Định dạng Datagram
Internet
A  Địa chỉ IPv4
1 1+e A A A  RIP
2+e 0 0 2+e 2+e 0  ICMP
D 0 0 B D 1+e 1 B D B D 1+e 1 B  OSPF
0 0  IPv6
0 e 0 0 1 1+e 0 e
1
C C C C  BGP
1
e ❑ 4.7 Dẫn đường
… tính lại … tính lại … tính lại
Khởi đầu
đường đi
broadcast và multicast
82
1-69 1-70
Thuật toán Distance Vector (1) Ví dụ Bellman-Ford (2)
5
Công thức Bellman-Ford (quy hoạch động)
3
Dễ thấy, dv(z) = 5, dx(z) = 3, dw(z) = 3
Định nghĩa 2
v w 5
dx(y) := chi phí của đường đi chi phí thấp nhất từ x tới y u 2 1 z Công thức B-F:
3
1 2 du(z) = min { c(u,v) + dv(z),
x 1
y
Thì c(u,x) + dx(z),
c(u,w) + dw(z) }
= min {2 + 5,
dx(y) = min {c(x,v) + dv(y) }
1 + 3,
5 + 3} = 4
Trong đó, min được tính với tất cả các hàng xóm của x
Nút đạt giá trị nhỏ nhất là next hop trong đường đi ngắn nhất
➜ bảng chuyển tiếp
1-71 1-72

Thuật toán Distance Vector (3) Thuật toán Distance vector (4)
❑ Dx(y) = chi phí thấp nhất từ x tới y Ý tưởng:
❑ Mỗi nút định kỳ gửi tính toán distance vector của nó
❑ Distance vector: Dx = [Dx(y): y є N ] tới các hàng xóm
❑ Nút x biết chi phí tới mỗi hàng xóm v: c(x,v) ❑ Khi nút x nhận tính toán DV mới từ hàng xóm, nó cập
nhật DV của nó sử dụng công thức B-F:
❑ Node x duy trì Dx = [Dx(y): y є N ]
❑ Node x cũng duy trì các distance vector của Dx(y) ← minv{c(x,v) + Dv(y)} với mỗi y ∊ N
các hàng xóm của nó
 Đối với hàng xóm v, x duy trì ❑ Ước lượng Dx(y) hội tụ tới chi phí thấp nhất thực tế
Dv = [Dv(y): y є N ] của dx(y)

83
1-73 1-74
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} Dx(z) = min{c(x,y) +
= min{2+0 , 7+1} = 2 Dy(z), c(x,z) + Dz(z)}
Thuật toán Distance Vector (5) Bảng nút x = min{2+1 , 7+0} = 3
chi phí tới chi phí tới chi phí tới
Lặp, không đồng bộ: Mỗi Mỗi nút:
x y z x y z x y z
vòng lặp cục bộ thực hiện x 0 2 7 x 0 2 3 x 0 2 3
khi: y ∞∞ ∞ y 2 0 1 y 2 0 1

từ
từ
❑ Chi phí liên kết cục bộ thay

từ
đợi for (thay đổi chi phí liên z ∞∞ ∞ z 7 1 0 z 3 1 0
đổi Bảng nút y
kết cục bộ, bản tin từ hàng chi phí tới chi phí tới chi phí tới
❑ Bản tin cập nhật DV từ hàng xóm) x y z x y z y
xóm x y z 2 1
Phân tán: tính lại x ∞ ∞ ∞ x 0 2 7 x 0 2 3 x z
y 2 0 1 y 2 0 1 y 2 0 1 7
❑ Mỗi nút thông báo cho hàng

từ

từ
từ
z ∞∞ ∞ z 7 1 0 z 3 1 0
xóm chỉ khi DV của nó thay
Bảng nút z
đổi Nếu DV tới đích nào đó thay chi phí tới chi phí tới chi phí tới
 Sau đó, các hàng xóm đổi, thông báo cho hàng x y z x y z x y z
thông báo cho các hàng
xóm của nó nếu cần
xóm x ∞∞ ∞ x 0 2 7 x 0 2 3
y ∞∞ ∞ y 2 0 1 y 2 0 1

từ
từ
từ
z 7 1 0 z 3 1 0 z 3 1 0
thời gian
1-75 1-76

Distance Vector: chi phí liên kết thay đổi Distance Vector: chi phí liên kết thay đổi
Chi phí liên kết thay đổi: Chi phí liên kết thay đổi:
1 60
❑ Nút phát hiện chi phí liên kết cục bộ thay ❑ Tin mới đi nhanh y
y
đổi 4 1 ❑ Tin xấu đi chậm – vấn đề
4 1
❑ Cập nhật thông tin dẫn đường, tính lại DV x z “đếm vô hạn”! x z
50 50
❑ Nếu DV thay đổi, thông báo cho các hàng
xóm
Kỹ thuật “Poissoned
Tại thời điểm t0, y phát hiện chi phí liên kết thay đổi, cập nhật reverse”:
DV của nó và thông báo cho hàng xóm của nó.
❑ Nếu Z qua Y tới X :
“Tin mới  Z nói với Y khoảng cách
Tại thời điểm t1, z nhận cập nhật từ y và cập nhật bảng của nó.
đi nhanh” Nó tính chi phí thấp nhất mới tới x và gửi DV của nó tới các của Z tới X là vô hạn (vì
hàng xóm của nó. vậy, Y không dẫn đường tới
X qua Z)
Tại thời điểm t2, y nhận cập nhật của z và cập nhật bảng ❑ Giải quyết bài toán “đếm vô
khoảng cách của nó. hạn”?
Chi phí thấp nhất của y không thay đổi và vì vậy y không gửi
bất kỳ bản tin nào tới z 84
1-77 1-78
So sánh thuật toán LS và DV Chương 4: Tầng mạng
Sự phức tạp bản tin Tính chịu lỗi: Điều gì xảy ra
❑ LS: n nút, E liên kết, O(nE) khi router bị lỗi? ❑ 4.1 Tổng quan ❑ 4.5 Thuật toán dẫn
bản tin gửi đi LS: ❑ 4.2 Mạng Virtual circuit đường
❑ DV: chỉ trao đổi giữa các hàng và datagram  Link state
 Nút có thể thông báo chi
xóm  Distance Vector
phí liên kết sai ❑ 4.3 Bên trong Router
 Thời gian hội tụ thay đổi  Hierarchical routing
 Mỗi nút chỉ tính toán bảng
❑ 4.4 IP: Internet Protocol
Tốc độ hội tụ của nó ❑ 4.6 Dẫn đường trong
 Định dạng Datagram
❑ LS: Thuật toán O(n2) đòi hỏi DV: Internet
 Địa chỉ IPv4
O(nE) bản tin  Nút có thể thông báo chi  RIP
 ICMP
 Có thể không ổn định phí đường đi sai  OSPF
 IPv6
❑ DV: Thời gian hội tụ thay đổi  Mỗi bảng của nút sử dụng  BGP
 Có thể dẫn đường lặp
bởi nút khác
❑ 4.7 Dẫn đường
• Lan truyền lỗi qua mạng
 Vấn đề “đếm vô hạn” broadcast và multicast
1-79 1-80

Hierarchical Routing Hierarchical Routing


Các nghiên cứu dẫn đường trong điều kiện lý ❑ Kết tập các router thành Gateway router
tưởng các cùng, “autonomous
❑ Liên kết trực tiếp tới
❑ Mọi router như nhau systems” (AS)
router trong AS khác
❑ Các router trong cùng
❑ Mạng ổn định
AS chạy cùng giao thức
… không đúng trong thực tế dẫn đường
Co dãn: với 200 triệu đích Quyền tự trị  Giao thức dẫn đường
❑ Không thể chứa tất cả các ❑ internet = mạng của các mạng “intra-AS”
đích trong bảng dẫn đường! ❑ Mỗi quản trị mạng có thể  Các router trong các AS
❑ Sự trao đổi bảng dẫn đường muốn điều khiển dẫn đường khác nhau có thể chạy
các giao thức dẫn đường
làm tràn ngập liên kết! trong mạng của họ
intra-AS khác nhau

85
1-81 1-82
Kết nối giữa các AS Nhiệm vụ của Inter-AS
❑ Giả sử router trong AS1 AS1 cần:
nhận datagram có đích 1. Học đích nào thì gửi
3c ngoài AS1 qua AS2, đích nào thì
3a 2c
3b 2a  Router nên chuyển tiếp gửi qua AS3
AS3 2b gói tin tới các gateway
1c AS2 2. Lan truyền thông tin
1a router. Câu hỏi: chọn
1b AS1 trên tới mọi router
1d ❑ Bảng chuyển tiếp được gateway router nào?
cấu hình cả thuật toán trong AS1
dẫn đường intra-AS và Công việc dẫn đường
Thuật toán Thuật toán inter-AS inter-AS!
dẫn đường dẫn đường
Intra-AS Inter-AS  Intra-AS thiết lập các
điểm vào cho các đích 3c
Bảng
3a 2c
phía trong 3b 2a
chuyển tiếp AS3 2b
 Inter-AS và Intra-As thiết 1c AS2
lập các điểm vào cho các 1a 1b AS1
đích phía ngoài 1d
1-83 1-84

Ví dụ: Thiết lập bảng chuyển tiếp


trong router 1d Ví dụ: Chọn giữa các AS
❑ Giả sử AS1 học từ giao thức inter-AS biết ❑ Giả sử AS1 học từ giao thức inter-AS biết rằng subnet
rằng subnet x có thể tới được từ AS3 x có thể tới được tự AS3 và từ AS2.
(gateway 1c) nhưng không tới được từ AS2. ❑ Để cấu hình bảng chuyển tiếp, router 1d phải xác định
gateway nó nên chuyển tiếp gói tin gửi đến đích x.
❑ Giao thức Inter-AS lan truyền thông tin có thể
❑ Đó là công việc của giao thức dẫn đường inter-AS !
tới tới các router bên trong
❑ Gửi gói tin tới router chi phí thấp nhất
❑ Router 1d xác định từ thông tin dẫn đường
intra-AS rằng giao diện I là trên đường đi có
Xác định từ bảng
chi phí thấp nhất tới 1c Học từ giao thức
inter-AS biết rằng
Sử dụng thông tin
dẫn đường từ giao
Chọn gateway có
chuyển tiếp giao diện
thức intra-ASU để I dẫn tới gateway
❑ Thêm vào trong bảng chuyển tiếp điểm vào subnet x có thể
tới được qua
xác định chi phí của
chi phí thấp nhất chi phí thấp nhất.
Cho (x,I) vào trong
đường đi có chi phí
nhiều gateway
(x,I). thấp nhất tới mỗi bảng chuyển tiếp
gateway

86
1-85 1-86
Chương 4: Tầng mạng Dẫn đường Intra-AS

❑ 4.1 Tổng quan ❑ 4.5 Thuật toán dẫn ❑ Còn gọi là Interior Gateway Protocols (IGP)
❑ 4.2 Mạng Virtual circuit đường ❑ Các giao thức dẫn đường Intra-AS phổ biến:
và datagram  Link state
 Distance Vector  RIP: Routing Information Protocol
❑ 4.3 Bên trong Router
 Hierarchical routing  OSPF: Open Shortest Path First
❑ 4.4 IP: Internet Protocol
❑ 4.6 Dẫn đường trong  IGRP: Interior Gateway Routing Protocol (sở hữu
 Định dạng Datagram
Internet của Cisco)
 Địa chỉ IPv4
 RIP
 ICMP
 OSPF
 IPv6
 BGP
❑ 4.7 Dẫn đường
broadcast và multicast
1-87 1-88

Chương 4: Tầng mạng RIP ( Routing Information Protocol)

❑ 4.1 Tổng quan ❑ 4.5 Thuật toán dẫn ❑ Thuật toán Distance vector
❑ 4.2 Mạng Virtual circuit đường ❑ Trong BSD-UNIX Distribution, 1982
và datagram  Link state
❑ Độ đo khoảng cách: số hop (tối đa = 15 hop)
 Distance Vector
❑ 4.3 Bên trong Router
 Hierarchical routing
❑ 4.4 IP: Internet Protocol
❑ 4.6 Dẫn đường trong
 Định dạng Datagram u đích hop
Internet v
u 1
 Địa chỉ IPv4
 RIP A B w v 2
 ICMP w 2
 OSPF
 IPv6 x 3
 BGP x y 3
❑ 4.7 Dẫn đường z C D z 2
y
broadcast và multicast
87
1-89 1-90
Thông báo của RIP RIP: Ví dụ
z
❑ Distance vector: trao đổi giữa các hàng xom
mỗi 30s qua Response Message (còn gọi là w x y
A D B
advertisement – thông báo)
❑ Mỗi thông báo: danh sách tới 25 mạng đích C
trong AS Mạng đích Router tiếp Số hop để tới đích
w A 2
y B 2
z B 7
x -- 1
…. …. ....
Bảng dẫn đường trong D

1-91 1-92

RIP: Ví dụ
RIP: Lỗi liên kết và khôi phục
Đích Tiếp Hop
w - -
Thông báo
x - - từ A tới D Nếu không nghe thấy bản tin thông báo sau 180 giây ->
z
….
C

4
...
hàng xóm/liên kết đã không hoạt động
z  Đường qua hàng xóm mất hiệu lực
w x y  Không gửi thông báo đến các hàng xóm đó
A D B  Các hàng xóm gửi thông báo mới (nếu bảng thay
thay đổi)
C  Thông tin lỗi liên kết nhanh chóng lan truyền toàn
Mạng đích Router tiếp Số hop tới đích
mạng
w A 2
 poison reverse sử dụng để ngăn chặn vòng lặp ping-
y B 2
z BA 75 pong (khoảng cách không giới hạn = 16 hops)
x -- 1
…. …. ....
Bảng dẫn đường trong D
88
1-93 1-94
RIP: Xử lý bảng Chương 4: Tầng mạng
❑ Bảng dẫn đường của RIP quản lý bởi tiến trình mới ❑ 4.1 Tổng quan ❑ 4.5 Thuật toán dẫn
ứng dụng gọi là route-d (daemon) ❑ 4.2 Mạng Virtual circuit đường
❑ Các thông báo được gửi trong các gói tin UDP, lặp lại và datagram  Link state
định kỳ  Distance Vector
❑ 4.3 Bên trong Router
 Hierarchical routing
routed routed ❑ 4.4 IP: Internet Protocol
❑ 4.6 Dẫn đường trong
 Định dạng Datagram
Internet
Transport Transprt  Địa chỉ IPv4
(UDP) (UDP)  RIP
 ICMP
network bảng bảng network  OSPF
 IPv6
(IP) chuyển tiếp chuyển tiếp (IP)  BGP
link link ❑ 4.7 Dẫn đường
physical physical broadcast và multicast
1-95 1-96

Các đặc điểm tiến bộ của OSPF


OSPF (Open Shortest Path First) (không có trong RIP)
❑ “open”: không thương mại
❑ An toàn bảo mật: Tất cả các bản tin OSPF được xác
❑ Sử dụng thuật toán Link State
thực (ngăn chặn việc cố tình xâm nhập)
 Phổ biến gói tin LS
 Bản đồ Topology tại mỗi nút
❑ Cho phép nhiều đường đi cùng chi phí (trong RIP chỉ 1
 Tính toán đường đi sử dụng thuật toán Dijkstra
đường đi)
❑ Đối với mỗi liên kết, chi phí khác nhau cho TOS khác
❑ Các thông báo OSPF mang một điểm vào cho mỗi router
nhau (ví dụ: chi phí liên kết vệ tinh thiết lập thấp cho dịch
hàng xóm vụ best effort, cao cho các dịch vụ thời gian thực)
❑ Thông báo phổ biến trong toàn AS (bằng cách làm tràn)
❑ Hỗ trợ cả unicast và multicast:
 Mang bản tin OSPF trực tiếp qua IP (không phải qua TCP, UDP)  Multicast OSPF (MOSPF) sử dụng cùng dữ liệu
topology như OSPF
❑ OSPF phân cấp trong các miền lớn.
89
1-97 1-98
OSPF phân cấp OSPF phân cấp
❑ Phân cấp 2 mức: vùng cục bộ, backbone
 Thông báo Link-state chỉ trong vùng
 Mỗi nút có topology vùng chi tiết; chỉ biết hướng
(đường đi ngắn nhất) tới các mạng trong các vùng
khác
❑ Area border router: tóm tắt các khoảng cách tới các
mạng trong vùng của nó, thông báo cho các Area Border
router khác
❑ Backbone router: chạy dẫn đường OSPF giới hạn
trong backbone
❑ Boundary router: kết nối tới các AS khác

1-99 1-
100

Chương 4: Tầng mạng Dẫn đường Internet inter-AS: BGP

❑ 4.1 Tổng quan ❑ 4.5 Thuật toán dẫn ❑ BGP (Border Gateway Protocol): chuẩn phố
❑ 4.2 Mạng Virtual circuit đường biến (nhưng không chính thức)
và datagram  Link state ❑ BGP cung mỗi mỗi AS cách thức để:
 Distance Vector
❑ 4.3 Bên trong Router 1. Có thông tin tới subnet từ các AS hàng xóm.
 Hierarchical routing
❑ 4.4 IP: Internet Protocol 2. Lan truyền thông tin tới các subnet tới mọi router
❑ 4.6 Dẫn đường trong trong AS
 Định dạng Datagram
Internet Xác định các đường đi tốt tới các subnet dựa trên
 Địa chỉ IPv4 3.
 RIP thông tin tới các subnet
 ICMP
 OSPF
 IPv6 ❑ Cho phép một subnet quảng cáo thông tin về
 BGP
sự tồn tại của nó tới phần còn lại của
❑ 4.7 Dẫn đường
Internet: “I am here”
broadcast và multicast
90
1- 1-
101 102
Cơ bản về BGP Phân phối thông tin tới đích
❑ Các cặp router (BGP peer) trao đổi thông tin dẫn ❑ Với phiên eBGP giữa 3a và 1c, AS3 gửi thông tin tới đích prefix
đường qua các kết nối TCP bán cố định: Phiên BGP tới AS1
❑ Chú ý: Các phiên BGP không tương ứng với liên kết ❑ Sau đó, 1c có thể sử dụng iBGP để phân phối thông tin tới đích
vật lý prefix mới tới mọi router trong AS1
❑ Sau đó, 1b có thể quảng báo lại thông tin mới tới AS2 qua phiên
❑ Khi AS2 quảng cáo prefix tới AS1, AS2 hy vọng nó sẽ eBGP 1b-tới-2a
chuyển tiếp bất kỳ datagram dự định tới prefix ❑ Khi router học về prefix mới, nó tạo một điểm vào cho prefix
 AS2 có thể kết tập các prefix trong các thông báo của nó trong bảng chuyển tiếp của nó

3c 3c
3a 2c 3a 2c
3b 2a 3b 2a
AS3 2b AS3 2b
1c AS2 1c AS2
1a 1a
1b 1b
AS1 1d AS1 1d
Phiên eBGP Phiên eBGP
Phiên iBGP Phiên iBGP
1- 1-
103 104

Path attribute và BGP route Chọn đường của BGP


❑ Khi quảng cáo một prefix, quảng cáo bao gồm các ❑ Router có thể học về nhiều hơn 1 đường đi
BGP attribute. từ một số prefix. Router phải chọn đường đi.
 prefix + attributes = “route”
❑ Quy tắc loại trừ:
❑ Hai attribute quan trọng:
 AS-PATH: chứa các AS qua đó quảng cáo cho prefix chuyển
1. Local preference value attribute: quyết định của
qua: AS 67 AS 17 chính sách
 NEXT-HOP: chỉ định internal-AS router cụ thể tới next-hop 2. AS-PATH ngắn nhất
AS. (Có thể có nhiều liên kết từ AS hiện tại tới next-hop-AS)
3. NEXT-HOP router gần nhất: hot potato routing
❑ Khi gateway router nhận quảng cáo đường đi, sử
4. Các tiêu chuẩn khác
dụng import policy để chấp nhận hoặc từ chối

91
1- 1-
105 106
Bản tin BGP Chính sách dẫn đường của BGP
legend: provider
❑ Các bản tin BGP trao đổi sử dụng TCP. B network
X
❑ Bản tin BGP: W A
customer
 OPEN: mở kết nối TCP tới peer và xác thực bên gửi C network:
 UPDATE: quảng cáo đường đi mới (hoặc thu hồi
Y
đường đi cũ)
Figure 4.5-BGPnew: a simple BGP scenario
 KEEPALIVE giữ kết nối khi không có UPDATE, tương ❑ A,B,C là mạng của nhà cung cấp
tự ACK tới yêu cầu OPEN
❑ X,W,Y là khách hàng (của mạng nhà cung cấp)
 NOTIFICATION: thông báo về các lỗi trong bản tin
❑ X là dual-homed: nối tới 2 mạng
trước, cũng sử dụng để đóng kết nối
 X không muốn dẫn từ B qua X tới C
 .. vì vậy, X sẽ không quảng cáo tới B đường đi tới C

1- 1-
107 108

Tại sao dẫn đường Intra-AS và Inter-AS khác


Chính sách dẫn đường của BGP (2)
nhau ?
B
legend: provider Chính sách:
network
X
❑ Inter-AS: Người quản trị muốn điều khiển việc dẫn
W A đường lưu lượng của nó, ai dẫn đường qua mạng của
customer

C network:
❑ Intra-AS: một người quản trị vì thế không cần policy
Y decision
Figure 4.5-BGPnew: a simple BGP scenario Sự co giãn:
❑ A quảng cáo tới B đường đi AW ❑ Dẫn đường phân cấp tiết kiệm kích thước bảng, giảm
❑ B quảng cáo tới X đường đi BAW lưu lượng cập nhật
❑ B quảng cáo tới C đường đi BAW? Hiệu năng:
 Không! B không nhận được “thu nhập” cho việc dẫn đường
❑ Intra-AS: có thể tập chung vào hiệu năng
CBAW vì W và C không là khách hàng của B ❑ Inter-AS: policy có thể ảnh hưởng lớn tới hiệu năng
 B muốn ép C dẫn đường tới w qua A
 B muốn dẫn đường chỉ tới/từ các khách hàng của nó!
92
1- 1-
109 110
Chương 4: Tầng mạng
duplicate
lặp R1 creation/transmission R1
❑ 4.1 Tổng quan ❑ 4.5 Thuật toán dẫn lặp
R2
❑ 4.2 Mạng Virtual circuit đường R2

và datagram  Link state


 Distance Vector R3 R4 R3 R4
❑ 4.3 Bên trong Router
 Hierarchical routing (a) (b)
❑ 4.4 IP: Internet Protocol
❑ 4.6 Dẫn đường trong
 Định dạng Datagram Source-duplication và in-network duplication.
Internet
 Địa chỉ IPv4 (a) source duplication, (b) in-network duplication
 RIP
 ICMP
 OSPF
 IPv6
 BGP
❑ 4.7 Dẫn đường
broadcast và multicast
1-111 1-112

A A
A
B B
B c c
c
D D
D F E F E
F E
G G
G
(a) Broadcast khởi tạo tại A (b) Broadcast khởi tạo tại D
Reverse path forwarding
Broadcast dọc theo spanning tree

93
1- 1-114
113
Dẫn đường Multicast: Bài toán
A A

❑ Mục đích: Tìm một tree (hoặc các tree) kết nối
3
B B
c c
4
các router có local mcast group members
2
D D  tree: Không phải mọi đường giữa các router được sử dụng
F E F E  source-based: Cây khác nhau từ mỗi bên gửi tới bên nhận
1 5
G G  shared-tree: Cây giống nhau sử dụng bởi tất cả các group
(a) Bước xây dựng (b) Spanning tree đã xây
member
dựng

Xây dựng kiểu Center-based của một spanning tree

Shared tree Source-based tree


1-115

Các cách tiếp cận để xây dựng mcast Cây đường đi ngắn nhất
tree
Cách tiếp cận: ❑ mcast forwarding tree: cây đường đi ngắn
❑ source-based tree: một cây cho mỗi nguồn
nhất dẫn đường từ nguồn tới mọi đích
 Thuật toán Dijkstra
 Cây đường đi ngắn nhất
 Reverse path forwarding S: nguồn Ghi chú:
❑ group-shared tree: Group sử dụng một cây R1 2
1 R4 router nối với group member
 minimal spanning (Steiner)
R2
 center-based tree 5
router không nối với
3 4
R5 group member
…Chúng ta xem xét các cách tiếp cận một cách cơ bản, 6 Liên kết sử dụng để chuyển tiếp,
R3 i
sau đó xem xét các giao thức sử dụng các cách tiếp cận R6 R7 i chỉ thứ tự liên kết được thêm
bởi thuật toán
đó
94
Reverse Path Forwarding Reverse Path Forwarding: Ví dụ
S: nguồn
Chú thích
❑ Dựa vào kiến thức của router về đường đi R1
R4 router nối với group member
ngắn nhất unicast từ nó tới bên gửi
R2
❑ Mỗi router có hành vi chuyển tiếp đơn giản: router không nối với
R5 group member
R3 datagram sẽ được
if (mcast datagram nhận trên liên kết đến trên R6 R7 chuyển tiếp
đường ngắn nhất trở lại trung tâm) datagram sẽ không được
chuyển tiếp
then làm tràn datagram trên mọi liên kết đi
else bỏ qua datagram • Kết quả là một source-specific reverse SPT
– có thể là sự lựa chọn tồi với các liên kết không đối
xứng

Reverse Path Forwarding: Tỉa Shared-Tree: Steiner Tree


❑ forwarding tree chứa các cây con mà subtree con đó
không có mcast group member ❑ Steiner Tree: minimum cost tree kết nối tất cả
 Không cần chuyển tiếp các datagram xuống subtree
các router nối với group member
 “Tỉa” các bản tin gửi lên bởi router mà không có
❑ Bài toán là NP-complete
downstream group members
❑ Tồn tại các kỹ thuật heuristic
S: nguồn Chú ý

R1
❑ Không sử dụng trong thực tế:
router nối với
R4
group member  Độ phức tạp tính toán
R2 router không nối với  Cần thông tin về toàn bộ mạng
P group member
P  Chạy lại khi một router gia nhập hay rời khỏi
R5 Tỉa bản tin
R3 P Liên kết với multicast
R6 R7 forwarding
95
Center-based tree Center-based tree: ví dụ
❑ Tất cả dùng chung một cây Giả sử R6 được chọn làm trung tâm:
❑ Một router được xác định là “trung tâm” của
cây Chú thích

R1
❑ Gia nhập: R4
router nối với
3 group member
 edge router gửi unicast join-msg tới center router router không nối với
R2
 join-msg được xử lý bởi intermediate routers và 2 group member
1
chuyển tiếp tới center R5 Thứ tự đường đi trong đó
các join msg sinh ra
 join-msg hoặc tới nhánh của cây có trung tâm này, R3
1 R6 R7
hoặc đến trung tâm
 Đường đi mà join-msg tham gia trở thành một
nhánh mới của cây cho router này

Internet Multicasting Routing: DVMRP DVMRP (tiếp)


❑ Trạng thái mềm: DVMRP router định kỳ (1 phút)
❑ DVMRP: Giao thức dẫn đường multicast kiểu
distance vector, RFC1075 “quên” branches bị tỉa:
 mcast data đưa lại xuông các nhánh không được tỉa
❑ Làm tràn và tỉa: reverse path forwarding,
 downstream router: tỉa lại hoặc tiếp tục nhận dữ liệu
source-based tree
❑ router có thể nhanh chónh ghép lại vào cây
 RPF tree dựa trên chính bảng dẫn đường của nó
DVMRP được xây dựng bởi sự giao tiếp của các  Theo IGMP gia nhập tại lá
DVMRP router ❑ odds và ends
 Không giả sử về unicast ở dưới  Thường cài đặt trong các router thương mại
 Datagram ban đầu tới mcast group được làm tràn  Dẫn đường Mbone sử dụng DVMRP
mọi nơi qua RPF
 Router không muốn trong group: gửi upstream
prune msgs 96
Tunneling PIM: Protocol Independent Multicast
Q: Làm thế nào để kết nối tới các “đảo” của các ❑ Không phụ thuộc vào bất kỳ thuật toán dẫn đường
multicast router trong “biển” các unicast router? unicast cụ thể nào phía dưới (làm việc với tất cả)
❑ Hai kịch bản phân phối multicast khác nhau:

Đông đúc: Thưa thớt:


❑ group member tồn tại ❑ Số mạng với group member
topology vật lý topology lôgíc
dày đặc, tồn tại gần nhỏ
❑ mcast datagram được đóng gói trong datagram “thông thường”
nhau. ❑ group member phân tán rộng
(không đánh địa chỉ multicast) ❑ Bandwidth lớn ❑ bandwidth không lớn
❑ IP datagram thông thường gửi qua “tunnel” qua IP unicast router
bình thường tới mcast router nhận
❑ mcast router nhận sẽ bỏ đóng gói để nhận mcast datagram

So sánh kiểu đông đúc và thưa thớt PIM- Chế độ đông đúc
Đông đúc: Thưa thớt: flood-and-prune RPF, tương tự DVMRP
❑ Thành viên nhóm tới khi ❑ Không là thành viên tới khi nhưng
router chính thức tỉa router chính thức gia nhập
❑ Giao thức unicast phía dưới cung cấp thông tin
❑ Xây dựng data-driven ❑ Xây dựng receiver- driven
RPF cho datagram tới
dựa trên mcast tree (ví của mcast tree (ví dụ:
❑ Downstream flood ít phức tạp hơn (kém hiệu quả
dụ: RPF) center-based)
hơn) DVMRP giảm sự tin cậy vào thuật toán dẫn
❑ bandwidth và non-group- ❑ bandwidth và non-group-
đường phía dưới
router xử lý thoải mái router xử lý dè dặt
❑ Có cơ chế giao thức cho router phát hiện nó là
router nút lá

97
PIM – Chế độ thưa thớt PIM – Chế độ thưa thớt
❑ Cách tiếp cận center- Bên gửi (s):
based ❑ Dữ liệu unicast tới RP,
❑ Router gửi join msg tới R1 nó phân phối xuống R1
điểm hẹn (RP) gia nhập
R4
RP-rooted tree gia nhập
R4
 Các intermediate router
cập nhật trạng thái và R2
gia nhập ❑ RP có thể mở rộng R2
gia nhập
chuyển tiếp join mcast tree upstream tới
R5 R5
❑ Sau khi gia nhập qua gia nhập nguồn gia nhập
RP, router có thể R3 R7 R3 R7
R6 ❑ RP có thể gửi stop msg R6
chuyển tới source-
specific tree nếu không có người
Mọi dữ liệu multicast Điểm hẹn Tất cả dữ liệu điểm hẹn
 Tăng hiệu năng: giảm tập từ điểm hiẹn nhận nối vào multicast
chung, đường đi ngắn  “không ai đang nghe!” từ điểm hẹn
hơn

Tầng mạng: Tổng kết


Các vấn đề đã xem xét:
❑ Các dịch vụ của tầng mạng
❑ Nguyên tắc dẫn đường: link state
và distance vector
❑ Dẫn đường phân cấp Chương 3: TẦNG MẠNG
❑ IP
❑ Các giao thức dẫn đường trong NETWORK LAYER
Internet: RIP, OSPF, BGP
GV: LÊ THỊ THUỶ
❑ Bên trong router?
❑ IPv6

98
1-
133
Nội dung chương 2 1.Giới thiệu chung
1. Giới thiệu chung Chức năng
2. Địa chỉ IP • Chuyển tiếp: di chuyển các gói tin từ đầu vào của BĐT tới đầu ra
3. Định tuyến thích hợp
4. Giao thức IP, ARP, ICMP • Định tuyến: xác định đường đi cho gói tin từ nguồn tới đích -> các
giao thức định tuyến

Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer

1.Giới thiệu chung


Chức năng

99
Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer
2. Địa chỉ IP (IPv4) 2. Địa chỉ IP (IPv4)
Địa chỉ IP: một số 32 bit để Ký hiệu thập phân có chấm
định danh giao diện máy
trạm, bộ định tuyến
Mỗi địa chỉ IP được gán cho
một giao diện
Địa chỉ IP có tính duy nhất

Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer

2. Địa chỉ IP (IPv4) 2. Địa chỉ IP (IPv4)


Địa chỉ IP có 2 phần: Đ/chỉ Unicast
-Host ID: địa chỉ máy trạm Khi bạn muốn gửi gói tin đến một máy tính cụ thể, khi đó địa chỉ để
bạn gửi tới sẽ là một địa chỉ unicast. Đây đơn giản chỉ là địa chỉ IP của
-Network ID: địa chỉ mạng một thiết bị nào đó trong cùng hoặc mạng cục bộ khác.
Đ/chỉ Multicast
Trường hợp muốn gửi gói tin đến nhiều máy tính, ta không thể gửi
lần lượt đến tất cả các máy được. Vì thế, địa chỉ bạn cần gửi tới trong
trường hợp này sẽ là một địa chỉ Multicast, địa chỉ này đại diện cho
một nhóm các thiết bị.
Địa chỉ multicast này chính là các địa chỉ trong dải địa chỉ lớp D.

100
Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer
2. Địa chỉ IP (IPv4)
Đ/chỉ Broadcast Đ/chỉ mạng
Khi muốn gửi thông điệp đến tất cả các máy trong mạng nội bộ, đó là • Không chỉ các thiết bị mới có địa chỉ IP, mà các mạng thành phần
lúc ta cần sử dụng đến địa chỉ Broadcast. của Internet hay mạng cục bộ cũng có một địa chỉ để xác định chính
xác mạng đó.
Địa chỉ Broadcast là địa chỉ mà các bits phần host-id là 1.
• Khi tất cả các bits phần Host của một địa chỉ IP là 0, thì địa chỉ đó
Khi gói tin được gửi đến địa chỉ Broadcast, thì nó sẽ được gửi tới tất
được gọi là địa chỉ mạng của mạng đó. Vì đại diện cho mạng nên địa
cả các máy cùng mạng, tức là cùng phần net-id. Vì đại diện cho toàn
chỉ mạng cũng không thể đặt được cho bất kz thiết bị nào.
bộ thiết bị trong mạng nên địa chỉ Broadcast không thể đặt được cho
bất kz thiết bị nào. • Ví dụ: 192.168.1.0/24 là địa chỉ mạng của mạng 192.168.1.0/24.
Ví dụ: 192.168.1.255/24 là địa chỉ Broadcast của mạng
192.168.1.0/24.

Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer

2. Địa chỉ IP (IPv4) 2. Địa chỉ IP (IPv4)


Network(N) and Default subnet
Phân lớp địa chỉ IP Address 1st octet
1st octet bits Host(H) parts of mask (decimal
class range
address and binary)
00000000 -
A 1 - 127 N.H.H.H 255.0.0.0
01111111
10000000 -
B 128 - 191 N.N.H.H 255.255.0.0
10111111
11000000 -
C 192 - 223 N.N.N.H 255.255.255.0
11011111
11100000 -
D 224 - 239 NA (multicast)
11101111
11110000 -
E 240 - 255 NA(experimental)
11111111
101
Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer
2. Địa chỉ IP (IPv4) 2. Địa chỉ IP (IPv4)
Mặt nạ mạng BÀI TẬP
 Mặt nạ mạng chia địa chỉ IP thành 2 phần: 1. Xác định địa chỉ đường mạng (network address) khi biết địa chỉ IP
- Phần ứng với máy trạm và Subnetmask.
- Phần ứng với mạng ◦ 1.1 Đổi địa chỉ IP và subnetmask ra nhị phân
◦ 1.2 So sánh địa chỉ IP và subnetmask. Vị trí nào subnetmask bằng 1 thì
 Dùng toán tử AND giữ nguyên, vị trí nào bằng 0 thì chuyển thành bit 0 của địa chỉ IP.
- Tính địa chỉ mạng ◦ 1.3 Đổi giá trị ngược lại dạng thập phân sẽ được network address.
- Tính khoảng địa chỉ IP
2. Tìm broadcast khi biết IP và subnetmask: làm tương tự như bài 1,
sau đó đổi các bit 0 của địa chỉ mạng tương ứng với các bit 0 của
subnetmask thành bit 1.

Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer

2. Địa chỉ IP (IPv4) 2. Địa chỉ IP (IPv4)


Ví dụ: Tìm địa chỉ đường mạng và broadcast của địa chỉ IP:  Hạn chế của việc phân lớp địa chỉ:
203.178.142.130 có subnetmask là 255.255.255.224 - Lãng phí không gian địa chỉ với việc phân chia cứng thành các lớp (A, B, C, D, E)
Đổi địa chỉ IP và subnetmask ra nhị phân:  Cách giải quyết:
11001011.10110010.10001110.10000010 CIDR: Classless Inter Domain Routing
11111111.11111111.11111111.11100000 - Phần địa chỉ mạng sẽ có độ dài bất kz
Địa chỉ đường mạng: - Dạng địa chỉ: a.b.c.d/x, trong đó x (mặt nạ mạng) là số bit trong phần
ứng với địa chỉ mạng
11001011.10110010.10001110.10000000
203 . 178 . 142 . 128
Broadcast:
11001011.10110010.10001110.10011111
203 . 178 . 142 . 159
102
Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer
2. Địa chỉ IP (IPv4) 2. Địa chỉ IP (IPv4)
Mô tả mặt nạ mạng Cách tính địa chỉ mạng

Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer

2. Địa chỉ IP (IPv4) 2. Địa chỉ IP (IPv4)


Mặt nạ mạng và kích thước mạng Địa chỉ mạng hay máy trạm

103
Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer
2. Địa chỉ IP (IPv4) 2. Địa chỉ IP (IPv4)
Địa chỉ IP và mặt nạ mạng
 Địa chỉ nào là địa chỉ máy trạm, địa chỉ mạng, địa chỉ quảng bá?
(1) 203.178.142.128 /25
(2) 203.178.142.128 /24
(3) 203.178.142.127 /25
(4) 203.178.142.127 /24
 Lưu {: với cách địa chỉ hóa theo CIDR, địa chỉ IP và mặt nạ mạng
luôn phải đi cùng nhau.

Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer

2. Địa chỉ IP (IPv4)


Mạng con – subnet Subnet
• Là một phần của một mạng nào • Xét địa chỉ IP lớp B 139.12.0.0, với subnet mask: 255.255.0.0 (có thể
đó viết là: 139.12.0.0/16)
• ISP thường được gán một khối • Một mạng với địa chỉ trên có thể chứa 216 – 2 = 65534 hosts  quá
địa chỉ IP lớn, trên mạng sẽ có đầy broadcast traffic.
• Một vài mạng con sẽ được tạo • Giả sử cần chia network trên thành 4 subnet. Công việc sẽ bao gồm
ra 3 bước:
1.Xác định subnet mask (Y = 2X)
2.Liệt kê networkID của các subnet mới
3.Cho biết IP address range của các host trong mỗi subnet

104
Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer
Subnet Subnet
4 subnets  cần 2 bits 2. Liệt kê ID của các subnet mới
• Subnet mask: 11111111 11111111 11000000 00000000 (hoặc
1. Y = 2X (Y: số subnet, X: số bit cần thêm)
255.255.192.0)
- Subnet mask sẽ cần 16 (bit trước đây) + 2 (bit mới) = 18 bits
• networkID của 4 subnets mới là:
- Địa chỉ IP mới: 139.12.0.0/18
1. 10001011.00001100.00000000.00000000
- Con số hosts tối đa có trong mỗi Subnet sẽ là: ((2^14) –2) = 139.12.0.0/18
16,382. Và tổng số các hosts trong 4 Subnets là: 16382 * 4 =
65,528 hosts 2. 10001011.00001100.01000000.00000000
139.12.64.0/18
3. 10001011.00001100.10000000.00000000
139.12.128.0/18
4. 10001011.00001100.11000000.00000000
139.12.192.0/18
Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer

2. Địa chỉ IP (IPv4)


Subnet Ví dụ chia làm 2 subnets
3. IP address range của các host trong mỗi subnet
SubnetID: 18 bits  hostID: 32-18=14 bits
IP address range:
1. 10001011.00001100.00000000.00000001 - 10001011.00001100.00111111.11111110
139.12.0.1/18 -139.12.63.254/18
2. 10001011.00001100.01000000.00000001 - 10001011.00001100.01111111.11111110
139.12.64.1/18 -139.12.127.254/18
3. 10001011.00001100.10000000.00000001 - 10001011.00001100.10111111.11111110
139.12.128.1/18 -139.12.191.254/18
4. 10001011.00001100.11000000.00000001 - 10001011.00001100.11111111.11111110
139.12.192.1/18 –139.12.255.254

105
Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer
2. Địa chỉ IP (IPv4) 2. Địa chỉ IP (IPv4)
Bài tập Bài tập
1. Cho mạng 192.168.155.0/ 24. Chia mạng này thành các mạng con 2. Phương pháp tính (tt):
cho các phòng ban sau: Phòng A: 80 máy, phòng B: 60 máy, 2 Ta thấy, mạng 192.168.155.0/25 có 7 bits host-id, biểu diễn được
phòng C, D: mỗi phòng 25 máy. 127 máy, đủ cho phòng A, nên ta gán mạng này cho phòng A.
2. Phương pháp tính:
Đầu tiên ta có địa chỉ IP và các bit phần net-id:
Với địa chỉ 192.168.155.128/25, ta lại mượn 1 bit host-id chuyển
qua làm net-id, được 2 mạng con như sau:
11000000 10101000 10011011 00000000
trừ địa chỉ mạng và broadcast ra, thì mạng này có tối đa 254 máy. 11000000 10101000 10011011 10000000 hay 192.168.155.128/26
Mượn 1 bit host-id chuyển qua làm net-id, được 2 mạng con như sau: 11000000 10101000 10011011 11000000 hay 192.168.155.192/26
11000000 10101000 10011011 00000000 hay 192.168.155.0/25
11000000 10101000 10011011 10000000 hay 192.168.155.128/25

Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer

2. Địa chỉ IP (IPv4) 2. Địa chỉ IP (IPv4)


Bài tập Bài tập
2. Phương pháp tính (tt): 2. Phương pháp tính (tt):
Tiếp tục, mạng 192.168.155.128/26 có 6 bits phần host-id, biểu Như vậy ta đã chia mạng 192.168.155.0/24 thành các mạng con có
diễn được 63 máy, nên ta gán cho phòng B mạng này. kích cỡ khác nhau, phù hợp với yêu cầu đề bài:
Làm tương tự với mạng 192.168.155.192/26, được 2 mạng con: • Phòng A: 192.168.155.0/25
11000000 10101000 10011011 11000000 hay 192.168.155.192/27 • Phòng B: 192.168.155.128/26
11000000 10101000 10011011 11100000 hay 192.168.155.224/27 • Phòng C: 192.168.155.192/27
2 mạng con này có 5 bits phần host-id, biểu diễn được 31 máy, ta • Phòng D: 192.168.155.224/27
gán lần lượt cho phòng C và D.

106
Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer
2. Địa chỉ IP (IPv4) 2. Địa chỉ IP (IPv4)
BÀI TẬP TỰ LÀM

Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer

2. Địa chỉ IP (IPv4) 2. Địa chỉ IP (IPv4)


Limited broadcast address Địa chỉ 0.0.0.0 Vào lúc boot, một host , không biết địa
Được dùng bởi host để gửi chỉ IP của nó, sẽ dùng địa chỉ 0.0.0.0 là
1 packet tới mọi host địa chỉ nguồn và 255.255.255.255 là địa
chỉ đích để gửi môt message tới
trong cùng mạng. Packet
bootstrap server (DHCP server)
có địa chỉ này sẽ bị chặn
Destination IP bởi router, không ra mạng
khác.

107
Chương 3: Tầng mạng - Network layer 40 Chương 3: Tầng mạng - Network layer 41
2. Địa chỉ IP (IPv4) 2. Địa chỉ IP (IPv4)
Địa chỉ một host trong cùng mạng Địa chỉ loopback

Một packet có địa chỉ


đích đến là 127.x.y.z
sẽ không đi ra mạng –
nó được chuyển đi từ
một process tới một
process khác trong
cùng một host.

Chương 3: Tầng mạng - Network layer 42 Chương 3: Tầng mạng - Network layer 43

3. Giao thức DHCP 3. Giao thức DHCP


Làm thế nào để có địa chỉ IP? DHCP: Dynamic Host Configuration Protocol
•Do người quản trị gán trực tiếp:  Mục đích: cho phép máy trạm nhận một địa chỉ IP động khi kết nối
- Windows: control panel network configuration  tcp/ip  vào mạng
properties - Có thể “renew” hoặc “release”
- UNIX: /etc/rc.config - Hỗ trợ cho người dùng hay phải di chuyển (mobile, laptop)

•DHCP: Dynamic Host Configuration Protocol: Giao thức cấu hình địa Tổng quan DHCP:
chỉ động - máy khách phát tán thông điệp “DHCP discover”
- “plug-and-play” - máy chủ DHCP trả lời với thông điệp “DHCP offer”
- khách yêu cầu địa chỉ IP: th/điệp “DHCP request”
- máy chủ DHCP gửi địa chỉ: t/điệp “DHCP ack

108
Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer
3. Giao thức DHCP 3. Giao thức DHCP

Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer

4. Dịch địa chỉ mạng (NAT) 4. Dịch địa chỉ mạng


Private IP address: không kết nối với Internet NAT: Sự dịch địa chỉ mạng

109
Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer
4. Dịch địa chỉ mạng 4. Dịch địa chỉ mạng
NAT: Sự dịch địa chỉ mạng NAT: Sự dịch địa chỉ mạng
Động lực: mạng nội bộ sử dụng chỉ một địa chỉ IP cho việc liên lạc với Hiện thực: bộ định tuyến NAT phải:
bên ngoài:
• gói tin đi ra: thay thế (IP nguồn, số cổng) của mọi gói tin đi ra thành
• không cần một dải địa chỉ từ ISP: chỉ một địa chỉ IP cho tất cả các
(IP NAT, số cổng mới)
thiết bị ... khách/chủ từ xa sẽ trả lời sử dụng (IP NAT, số cổng mới) làm địa chỉ
• có thể thay đổi địa chỉ của thiết bị trong mạng cục bộ mà không ảnh đích.
hưởng đến thế giới bên ngoài
• ghi nhớ (trong bảng dịch NAT) mọi cặp dịch từ (IP nguồn, số cổng)
• có thể thay đổi ISP mà không thay đổi địa chỉ của thiết bị trong
tới (IP NAT, số cổng mới)
mạng cục bộ
• các thiết bị trong mạng cục bộ không được đánh địa chỉ công cộng, • gói tin đi vào: thay thế (IP NAT, số cổng mới) trong trường đích của
có thể thấy đươc bởi mạng ngoài (một điểm cộng cho bảo mật). mọi gói tin đi vào bằng (IP nguồn, số cổng) tương ứng lưu trong
bảng NAT

Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer

4. Dịch địa chỉ mạng 4. Dịch địa chỉ mạng


NAT: Sự dịch địa chỉ mạng Vấn đề truy cập vào trong NAT
 khách muốn truy cập vào máy chủ với địa chỉ
10.0.0.1
• máy chủ địa chỉ 10.0.0.1 chỉ dùng trong LAN
(khách không thể dùng nó làm địa chỉ đích)
• chỉ có một địa chỉ nhìn thấy từ bên ngoài là
địa chỉ NAT: 138.76.29.7
 giải pháp 1: cấu hình NAT tĩnh, để chuyển
tiếp yêu cầu kết nối tới cổng nhất định nào
đó sang máy chủ
• vd: (123.76.29.7, cổng 2500) luôn luôn được
chuyển tới 10.0.0.1, cổng 2500
110
Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer
4. Dịch địa chỉ mạng 4. Dịch địa chỉ mạng
Vấn đề truy cập vào trong NAT Vấn đề truy cập vào trong NAT
 giải pháp 2: Giao thức Universal Plug and Play (UPnP) Internet  giải pháp 3: chuyển tiếp gói (dùng trong Skype)
Gateway Device (IGD). Cho phép máy trong mạng NAT: • khách trong NAT thiết lập kết nối tới máy chủ chuyển tiếp
• học địa chỉ IP công cộng (138.76.29.7) • khách bên ngoài kết nối tới MCCT
• thêm/xóa các ánh xạ cổng (với thời gian cho thuê) • MCCT tạo cầu nối gói tin giữa 2 kết nối
 Vd: cấu hình ánh xạ cổng NAT tự động, tĩnh

Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer

5. Định tuyến 5. Định tuyến


Khi một máy trạm gửi một gói tin IP tới một máy khác
-Nếu địa chỉ đích nằm trên cùng một đường truyền vật l{: chuyển
trực tiếp
-Nếu địa chỉ đích nằm trên một mạng khác: chuyển gián tiếp qua bộ
định tuyến (chọn đường)

111
Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer
5. Định tuyến 5. Định tuyến
Bên trong Router Bên trong Router

Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer

5. Định tuyến 5. Định tuyến


Chọn đường là cơ chế để máy trạm hay bộ định tuyến chuyển tiếp gói Bộ định tuyến
tin từ nguồn đến đich
Thiết bị chuyển tiếp các gói tin giữa các mạng
Các thành phần của chọn đường:
-Là một máy tính, với các phần cứng chuyên dụng
-Bảng chọn đương
-Kết nối nhiều mạng với nhau
-Thông tin chọn đường
-Chuyển tiếp gói tin dựa trên bảng chọn đương
-Giải thuật, giao thức chọn đường
Có nhiều giao diện
Phù hợp với nhiều dạng lưu lượng và phạm vi của mạng

112
Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer
5. Định tuyến 5. Định tuyến
Một số ví dụ Bảng chọn đường
Chỉ ra danh sách các đường đi có thể, được lưu trong bộ nhớ của
router
Các thành phần chính của bảng chọn đường:
-Địa chỉ đích/mặt nạ mạng
-Router kế tiếp

Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer

5. Định tuyến 5. Định tuyến


Bảng chọn đường và cơ chế chuyển tiếp Bảng chọn đường và cơ chế chuyển tiếp

113
Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer
5. Định tuyến 5. Định tuyến
Cập nhật bảng chọn đương Cập nhật bảng chọn đương
Sự thay đổi cấu trúc mạng: them mạng mới, một nút mạng bị mất Chọn đường tĩnh: các mục trong bảng chọn đường được sửa đổi thủ
điện công bởi người quản trị
Sự cần thiết phải cập nhật bảng chọn đường Chọn đường động:
-Cho tất cả các nút mạng -Tự động cập nhật bảng chọn đương
-Thực tế, chỉ một số nút mạng phải cập nhật -Bằng các giao thức chọn đường

Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer

5. Định tuyến 5. Định tuyến


Chọn đường tĩnh Chọn đường động
Khi có sự cố: Khi có sự cố: đường đi thay thế được cập nhật một cách tự động
-Không thể nối vào Internet kể cả khi có tồn
tại đường đi dự phòng
-Người quản trị mạng cần thay đổi

114
Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer
5. Định tuyến 5. Định tuyến
Ưu, nhược điểm Các giải thuật và giao thức chọn đường
-Giải thuật Dijkstra và Bellman-Ford
Chọn đường tĩnh Chọn đường động
-Giao thức dạng Link-state và Distance-vector
• Ổn định • Dễ quản l{
Ưu điểm • An toàn • Tự động sử dụng kết
• Không bị ảnh hưởng bới các nối dự phòng
yếu tố tác động
• Cứng nhắc • Tính an toàn
Nhược • Không thể sử dụng tự động • Các giao thức chọn
điểm kết nối dự phòng đường phức tạp và
• Khó quản l{ khó hiểu

Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer

5. Định tuyến 5. Định tuyến


Biểu diễn mạng bởi đồ thị Cây đường đi ngắn nhất – SPT (Shortest Path Tree)
- Đồ thị với các nút (bộ định tuyến) và các cạnh (liên kết) • Các cạnh xuất phát từ nút gốc và tới các nút lá
- Chi phí cho việc sử dụng mỗi liên kết c(x,y): băng thông, độ trễ, chi • Đường đi duy nhất từ nút gốc tới nút v, là đường đi ngắn nhất giữa
phí, mức độ tắc nghẽn, ... nút gốc và nút v
- Giải thuật chọn đường: xác định đường đi ngắn nhất giữa hai nút • Mỗi nút sẽ có một SPT của riêng nút đó.

115
Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer
5. Định tuyến 5. Định tuyến
Thuật toán Dijkstra Giải thuật dạng Distance-vector
Phương trình Bellman-Ford (quy hoạch động)
dx(y) = chi phí của đường đi ngắn nhất từ x tới y
Ta có:
dx(y) = min { c(x,v) + dv(y) }
v
Cho tất cả các v là hàng xóm của x

Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer

5. Định tuyến 5. Định tuyến


Minh họa Bellman-Ford
Dễ thấy: dv(z) = 5; dx(z) = 3; dw(z) = 3
B-F eq, cho ta biết:
du(z) = min { c(u,v) + dv(z), c(u,x) + dx(z), c(u,w) + dw(z) }
= min { 2 + 5, 1 + 3, 5 + 3 } = 4

116
Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer
6. Giao thức IP 6. Giao thức IP
Định dạng gói tin IP Vị trí của IP

Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer

6. Giao thức IP 6. Giao thức IP


Đặc điểm của giao thức Internet Qui định dạng thức Datagram
Các qui ước định địa chỉ (IPv4, IPv6 ): đã học IPv4

Mỗi gói tin có thể được định tuyến theo những đường đi khác
nhau để tới đích; các gói tin khi đến đích có thể không đúng
trật tự khi gửi đi.

117
Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer
6. Giao thức IP 6. Giao thức IP
Một IPv4 Datagram bao gồm
◦ Phần header : kích thước từ 20-60 bytes;
20-byte đầu có cấu trúc cố định (xem hình)
◦ Phần data : là toàn bộ gói dữ liệu được chuyển đến từ tầng
transport

Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer

6. Giao thức IP 6. Giao thức IP


IPv4 Datagram IPv4 Datagram
• VER : phiên bản của IP • Identification : được dùng trong phân mảnh
• HLEN : tổng độ dài phần header bằng byte • Flags : được dùng trong phân mảnh
• Service type : chứa nhiều loại thông tin (độ ưu tiên của datagram, • Fragmentation offset : được dùng trong phân mảnh
loại dịch vụ như độ trễ, thông lượng ,… )
• Time to live : TTL là số tối đa routers mà datagram có thể đi qua.
• Total length : tổng kích thước bằng byte của IP datagram (header + Mỗi lần datagram đi qua một router, router sẽ giảm TTL đi một giá
data) trị. Nếu TTL của datagram bằng 0, router hủy datagram. TTL giúp
giới hạn thời gian di chuyển trong mạng internet của một datagram.

118
Chương 3: Tầng mạng - Network layer Chương 3: Tầng mạng - Network layer
6. Giao thức IP
IPv4 Datagram
•Source IP address : địa chỉ IP đích
•Destination IP address : địa chỉ IP nguồn
•ICMP: Internet Control Message Protocol
•Phân mảng và tổng hợp IP

Chương 3: Tầng mạng - Network layer

119
Mục lục
Chương 1: Tổng quan về mạng máy tính
1.1 Một số khái niệm cơ bản trong Internet Page 2
1.2 Network edge: Rìa mạng Page 4
1.3 Network core: Nhân mạng Page 5
1.4 Network access và physical media Page 8

1.5 Cấu trúc Internet và ISP Page 11


1.6 Độ trễ và độ mất gói trong mạng chuyển mạch gói Page 14
1.7 Các tầng giao thứ c, các mô hình di ̣ch vụ Page 17
1.8 Li ̣ch sử Page 20

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


2.1 Nguyên tắc của các ứng dụng mạng Page 21
2.2 Web và HTTP Page 25
2.3 FTP Page 30
2.4 Electronic Mail Page 31
o SMTP, POP3, IMAP

2.5 DNS Page 34


2.6 Chia sẻ file P2P Page 38

Chương 3: Lớp Transport


3.1 Các dịch vụ lớp Transport Page 40
3.2 Multiplexing và demultiplexing Page 41

3.3 Vận chuyển không kết nối: UDP Page 42


3.4 Các nguyên lý của việc truyền dữ liệu tin cậy Page 43
3.5 Vận chuyển hướng kết nối:TCP Page 52
o cấu trúc phân đoạn
o truyền dữ liệu tin cậy
o điều khiển luồng
o quản lý kết nối
3.6 Các nguyên lý của điều khiển tắc nghẽn Page 57
3.7 Điều khiển tắc nghẽn TCP Page 59

Chương 4: Tầng Mạng


4. 1 Tổng quan Page 66
4.2 Mạng Virtual circuit và datagram Page 68
4.3 IP: Internet Protocol Page 70
o Định dạng Datagram Page 70
o Địa chỉ IPv4 Page 71
o ICMP Page 75
o IPv6 Page 76
4.4 Bên trong Router Page 78
4.5 Thuật toán dẫn đường Page 80
o Link state Page 81
o Distance Vector Page 83
o Hierarchical routing Page 85
4.6 Dẫn đường trong Internet Page 87
o RIP Page 87
o OSPF Page 89
o BGP Page 90
4.7 Dẫn đường broadcast và multicast Page 93

Chương 3: TẦNG MẠNG NETWORK LAYER page 99

You might also like