You are on page 1of 33

Chương 5.

Giao thức TCP/UDP

PGS. TS. Nguyễn Tài Hưng


Bộ môn Kỹ thuật thông tin
Viện Điện tử - Viễn thông
ĐHBK Hà Nội
Email: hung.nguyentai@hust.edu.vn

Nội dung
 Giới thiệu chung
 UDP
 TCP
Chức năng TCP
Điều khiển luồng và chống tắc nghẽn
trong TCP

1
Đặt vấn đề
 Ứng dụng trên mạng:
 Đa dạng
 Yêu cầu khác nhau về mặt chất lượng:
◊ Ứng dụng thời gian thực: trễ nhỏ
◊ Ứng dụng truyền số liệu (truyền file, web, email .v.v.): độ tin cậy
cao, xác suất mất gói hoặc lôi gói phải ~ 0%
Giới thiệu  Nhiều ứng dụng tại 1 máy trạm cùng chia sẻ đường truy nhập
Internet
 Mạng Internet:
UDP
 Chức năng chính: định tuyến (routing) và chuyển tiếp
(forwarding)
 Truyền tin không tin cậy
TCP
◊ Không có cơ chế đảm bảo thứ tự gói
◊ Không có cơ chế đảm bảo gói sẽ được truyền đến nơi nhận
Chông tắc
nghẽn
 Vấn đề: làm thế nào để truyền nhiều ứng dụng với các yêu
cầu khác nhau trên giao thức IP không tin cậy, độc lập với
ứng dụng?

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 3

Đặt vấn đề (tiếp…)


 Cần các chức năng bổ sung giữa “Application” và “Internetwork”

Mô hình Internet

Giới thiệu Ứng dụng truyền thông:


truyền file, ứng dụng thời http, SIP, H.323, RTP, FTP,
Application gian thực, web, email, SMTP, POP, SNMP .v.v.
VoIP .v.v.
UDP

TCP
Host-to-Host ???
Định tuyến và chuyển tiếp,
Internetwork truyền tin không tin cậy
IP, ICMP, routing protocols…
Chông tắc
nghẽn
Điều khiển truy nhập
Network Access kênh, biến đổi dòng IEEE 802.x
bit theo kênh vật lý

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 4

2
Chức năng của lớp Host-to-Host

 Lớp host-to-host thực hiện các chức


năng bổ sung giữa “application” và
Giới thiệu
“internetwork”
UDP
Ghép nhiều luồng dữ liệu trên một thiết
bị đầu cuối để truyền trên mạng IP
TCP
Tăng độ tin cậy của luồng thông tin
Chông tắc
nghẽn

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 5

Chức năng của lớp Host-to-Host


(tiếp …)
Máy trạm Router Máy trạm

Application Application
Giới thiệu

Thông tin giữa 2 lớp cùng cấp


UDP
Host-to-Host Host-to-Host

TCP Internetwork Internetwork Internetwork

Chông tắc Network Network Network


nghẽn Access Access Access

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 6

3
Chức năng của lớp Host-to-Host
(tiếp …)
 Tại sao các chức năng của host-to-host lại
được thực hiện ở thiết bị đầu cuối?
Giới thiệu Router chỉ thực hiện các chức năng định tuyến
và chuyển tiếp
UDP Router không cần lưu giữ trạng thái của một
luồng dữ liệu (flow state)
TCP
nâng cao hiệu năng của router
Chông tắc
nghẽn
các chức năng khác được đưa ra “rìa” của
mạng

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 7

Cơ chế ghép kênh


 Chức năng ghép kênh:
 Chia nhỏ dữ liệu của người sử dụng thành các segment lớp
host-to-host
 Ghép nhiều luồng dữ liệu lớp ứng dụng vào để truyền trên
mạng IP

Giới thiệu FTP HTTP Chat FTP HTTP Chat

Application application-layer protocols


UDP

TCP Host2Host multiplexing TCP/UDP demultiplexing

Chông tắc Internetwork


nghẽn
Network
Access

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 8

4
Cơ chế ghép kênh (tiếp…)
 Phương pháp ghép kênh:
Mỗi ứng dụng (hay tiến trình) có một địa
Giới thiệu chỉ cổng (port number) khác nhau
Các cổng được định nghĩa trong RFC 1700
UDP
Địa chỉ cổng: 16 bit
TCP Các ứng dụng trao đổi dữ liệu qua
“socket”. Mỗi socket được phân biệt qua 2
Chông tắc
nghẽn
tham số:
◊Địa chỉ port
◊Địa chỉ IP
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 9

Cơ chế ghép kênh (tiếp…)


 Một số cổng điển hình:
 0 – 1023: cổng mặc định
định nghĩa bởi IANA
◊ FTP: 20, TCP
◊ SSH: 22, TCP/UDP
◊ Telnet: 23, TCP
Giới thiệu App1 App2 App3
◊ SMTP: 25, TCP
◊ DNS: 53, TCP/UDP
◊ HTTP: 80, TCP/UDP
UDP Application
 Từ 1024: do người sử
dụng tự định nghĩa socket 1 socket 2 socket 3

TCP
 Socket được quản lý bởi Host-to-host
hệ điều hành
 Có thể tạo, trao đổi dữ liệu
Chông tắc qua socket thông qua các
nghẽn
API của HĐH

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 10

5
Cơ chế tăng độ tin cậy
 Độ tin cậy:
Kiểm tra và chống lỗi: thêm các mã
Giới thiệu kiểm tra lỗi phần dữ liệu (CRC .v.v.)
◊ARQ (auto-repeat request)
UDP ◊FEC (forwarding error correction)
Chống tắc nghẽn
TCP
 Câu hỏi:
Chông tắc
nghẽn Sự khác nhau giữa ARQ và FEC?
Trong giao thức IP có kiểm tra và chống
lỗi không? Ở đâu?
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 11

Cơ chế tăng độ tin cậy (tiếp…)


 ARQ:
 Trao đổi dữ liệu thông qua cơ chế: gửi – phúc đáp
 Phân loại:
◊ Stop-and-Wait
Giới thiệu
◊ Go-Back-N
◊ Selective Repeat
UDP  Chức năng:
◊ Phát hiện lỗi gói
◊ Phát hiện mất gói
TCP ◊ Sắp xếp thứ tự gói
◊ Điều khiển luồng: điều chỉnh kích thước cửa số trượt
Chông tắc
nghẽn
 Câu hỏi:
 Phân biệt các cơ chế Stop-and-Wait, Go-Back-N,
Selective Repeat?
 Tham khảo tài liệu môn “Cơ sở mạng thông tin”

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 12

6
Cơ chế tăng độ tin cậy (tiếp…)
 ARQ - Stop and Wait:
p1
p1 tp p1
mất gói
Giới thiệu RTT ts lỗi
ACK1 NACK1

ttimeout
p0 p1
UDP

p1
ACK0 ACK1
TCP
ACK1
Chông tắc
nghẽn

a) Không lỗi b) Lỗi gói c) Mất gói

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 13

Cơ chế tăng độ tin cậy (tiếp…)


 ARQ - Go-Back-N:
 “Cumulative feedback” W=3 – kích thước cửa sổ
mất gói

p1 p1 p1
p2 p2 p2
p3 p3 p3
Giới thiệu
lỗi gói

UDP
p2
p4 p3 p2
p5 p4 p3
TCP p6 p4

Chông tắc
nghẽn

a) Không lỗi b) Lỗi gói c) Mất gói

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 14

7
Cơ chế tăng độ tin cậy (tiếp…)
 ARQ - Selective Repeat
mất gói

p1 p1 p1
p2 p2 p2
p3 p3 p3
Giới thiệu

lỗi gói
p4
UDP
p2
p4 p4 p2
p5 p5 p5
TCP p6

Chông tắc
nghẽn

a) Không lỗi b) Lỗi gói c) Mất gói

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 15

Cơ chế tăng độ tin cậy (tiếp…)


 Điều khiển luồng trong ARQ:
Để thay đổi tốc độ truyền:
Giới thiệu ◊ Thay đổi kích thước cửa sổ trượt W
◊ Thay đổi thời gian ACK để điều chỉnh RTT
UDP  Nhận xét:
ARQ không thích hợp cho các dịch vụ thời gian
TCP
thực:
◊ RTT lớn
Chông tắc
nghẽn ◊ Băng thông của luồng dữ liệu bị giới hạn bởi W
 ARQ được áp dụng trong TCP

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 16

8
Cơ chế tăng độ tin cậy (tiếp…)
 Câu hỏi:
Tính hiệu suất kênh truyền trong “Stop-
Giới thiệu
and-Wait”, “Go-Back-N” và “Selective
Repeat” khi:
UDP
◊Kênh truyền lý tưởng
TCP ◊Kênh chịu xác suất mất gói là Pe
 Tham khảo bài giảng môn “Cơ sở
Chông tắc
nghẽn mạng thông tin”

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 17

Cơ chế tăng độ tin cậy (tiếp…)


 FEC:
Bên phát không phát lại gói
Giới thiệu Bên thu có chức năng:
◊Kiểm tra lỗi
UDP
◊Nếu phát hiện gói lỗi:
– Bên thu sửa lỗi (xác định vị trí bit lỗi)
TCP – Nếu lỗi không sửa được: hủy gói

Chông tắc
Nhận xét:
nghẽn ◊FEC thích hợp cho các dịch vụ thời gian
thực

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 18

9
Giao thức UDP
 UDP – User Datagram Protocol
 RFC 768
 Gói tin UDP – UDP datagram
 Đặc điểm:
Giới thiệu
 Sử dụng cơ chế không liên kết (connectionless): không cần
thiết lập một phiên truyền giữa nguồn – đích
 UDP là giao thức không tin cậy
UDP
◊ Không có phúc đáp (ACK)
◊ Không cơ chế tự động phát lại
◊ Kiểm tra lỗi (checksum): chỉ kiểm tra phần đầu khung (header),
TCP không có kiểm tra lỗi phần dữ liệu
◊ Không có cơ chế phát hiện gói mất, gói đến không đúng thứ tự
Chông tắc ◊ Không có cơ chế điều khiển luồng  UDP có thể gửi dữ liệu
nghẽn nhanh và nhiều nhất có thể
 Chức năng cơ bản của UDP là gì?

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 19

Giao thức UDP (tiếp…)


 Chức năng chính của UDP:
Ghép/tách kênh
A1 A2 B1 B2
App App App App
Giới thiệu

Port

UDP OS

UDP
TCP

Chông tắc
nghẽn UDP
IP

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 20

10
Giao thức UDP (tiếp…)
 Cấu trúc gói UDP
SRC port DST port
Giới thiệu
checksum length
Chỉ bảo vệ Kích thước
phần header phần data theo
byte
UDP DATA

TCP
 UDP được dùng cho ứng dụng gì?
Chông tắc  Các ứng dụng không cần độ tin cậy cao
nghẽn
 Các phiên truyền ngắn, thiết lập kết nối hướng liên kết
theo kiểu TCP đem lại hiệu suất thấp
 Các ứng dụng thời gian thực
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 21

Giao thức TCP


 TCP – Transmission Control Protocol
 RFC 793, 1122, 1323, 2018, 2581
 Đặc điểm:
 Hướng liên kết (connection-oriented)
◊ Thiết lập kết nối: “3-way handshake” – thiết lập kết nối 3 bước
◊ Huỷ bỏ kết nối: “2-way handshake” – huỷ bỏ kết nối 2 bước
Giới thiệu  Client – server: client thiết lập kết nối
 TCP là giao thức truyền tin cậy:
◊ Cơ chế phúc đáp (ACK) khi nhận được dữ liệu
UDP ◊ Mã chống lỗi để bảo vệ dữ liệu
◊ Số thự tự (sequence number) để phát hiện gói mất và gói không
đúng thứ tự
TCP ◊ Cơ chế timeout (sau một thời gian bên phát không nhật được
ACK) để gửi lại dữ liệu
◊ Cơ chế sắp xếp lại thứ tự gói ở đầu thu
Chông tắc ◊ Cơ chế điều khiển luồng sử dụng cửa sổ trượt
nghẽn ◊ Cơ chế chống tắc nghẽn để chia sẻ băng thông giữa nhiều nguồn
dữ liệu

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 22

11
Hướng liên kết
 Không liên kết ở lớp Internetwork, hướng
liên kết trên lớp Host-to-Host

Giới thiệu
R2

UDP A

B
TCP
R1 R3
Chông tắc
nghẽn
R4

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 23

Hướng liên kết (tiếp…)


 Thiết lập kết nối: 3-way
handshake
 Bước 1: A gửi SYN cho B
◊ chỉ ra giá trị khởi tạo seq #
của A Client A Server B
Giới thiệu ◊ không có dữ liệu (chủ động) (thụ động)
 Bước 2: B nhận SYN, trả lời Syn
bằng SYN/ACK
UDP
◊ B khởi tạo vùng đệm
◊ chỉ ra giá trị khởi tạo seq. # Syn + Ack
của B
TCP
 Bước 3: A nhận SYN/ACK, Ack
trả lời ACK, có thể kèm theo
Chông tắc dữ liệu
nghẽn
 Ghi chú: phiên truyền TCP là
phiên song công (số liệu
truyền theo 2 hướng)
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 24

12
Hướng liên kết (tiếp…)
 Huỷ bỏ kết nối: 2-way
handshake
 Bước 1: Gửi FIN cho B
Client A Server B
 Bước 2: B nhận được
Giới thiệu FIN, trả lời ACK, đồng
thời đóng liên kết và gửi Fin
FIN.
(Data +) Ack
UDP  Bước 3: A nhận FIN, trả
lời ACK, vào trạng thái
“chờ”.
TCP Fin
 Bước 4: B nhận ACK.
đóng liên kết. Ack
Chông tắc
nghẽn  Ghi chú: cả client hoặc
server đều có thể yêu
cầu huỷ bỏ kết nối

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 25

TCP data segment


 Dữ liệu lớp ứng dụng được đóng gói vào các “TCP segment”
 MSS (Maximum Segment Size): chiều dài tối đa cho phép
của 1 TCP segment

Gửi
Giới thiệu

TCP segment
UDP

TCP

TCP segment
Chông tắc
nghẽn

Nhận

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 26

13
Bản tin TCP
0 15 31

Src port Dst port

Sequence Number

Giới thiệu ACK Sequence Number


Flags
HLEN
4
RSVD
6 Receive Window Size

SYN
RST

FIN
ACK
UDP
URG

PSH
Checksum Urg Pointer
TCP
(TCP Options)
Chông tắc
nghẽn
TCP Data

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 27

Ý nghĩa các trường


 Source/Destination Port: địa chỉ cổng
 Checksum: mã chống lỗi – cho cả
Giới thiệu
TCP header và phần dữ liệu
UDP  Receive Window Size (RWND): kích
TCP
thước cửa sổ trượt bên nhận  chỉ
ra lượng dữ liệu tối đa bên thu có thể
Chông tắc
nghẽn tiếp nhận  điều khiển luồng

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 28

14
Sequence Number
 Sequence Number: số thứ tự TCP segment

ISN (initial sequence number)

Gửi
Giới thiệu

Sequence
UDP
number = số TCP Data TCP
HDR STT ACK =
thứ tự byte đầu byte tiếp theo
bên thu đợi
TCP
nhận

Chông tắc TCP Data TCP


HDR
nghẽn

Nhận

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 29

Sequence Number (tiếp…)


 Sequence number:
Số thứ tự byte đầu tiên của 1 segment
Giới thiệu
 sequence number của TCP segment
UDP
Được tính bằng byte

TCP

Chông tắc
nghẽn

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 30

15
Initial Sequence Number
 ISN – giá trị thứ tự khởi tạo
Được thiết lập trong giai đoạn bắt tay 3 bước
để khởi tạo kết nối
Giới thiệu
Client A Server B
Syn +ISNA
UDP

Syn + Ack +ISNB


TCP

Ack
Chông tắc
nghẽn

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 31

Cửa sổ trượt trong TCP


 Vấn đề:
Một kết nối TCP có thể gửi bao nhiêu
Giới thiệu
gói dữ liệu liên tiếp qua mạng?
UDP
Khi lỗi xảy ra, TCP truyền lại gói thế
nào? Sử dụng cơ chế “selective repeat”
TCP hay “Go-Back-N”?
Chông tắc
Làm cách nào để TCP không làm tràn
nghẽn bộ đệm bên thu?

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 32

16
Cửa sổ trượt trong TCP (tiếp…)
Kích thước cửa sổ

Dữ liệu

Giới thiệu

Dữ liệu đã gửi Dữ liệu đã gửi Dữ liệu được Dữ liệu chưa được


và nhận được ACK và chưa nhận phép gửi phép gửi
UDP
được ACK

 Kích thước cửa sổ phải điều chỉnh cho phù hợp với bộ đệm
TCP
của bên thu
 Kích thước cửa sổ tối đa bên thu cho phép sẽ được gửi cho
Chông tắc bên phát RWND trong trường Receive Window Size (thông
nghẽn
thường từ 4kB – 8kB)
 Cơ chế truyền lại trong TCP: Go-Back-N

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 33

Cửa sổ trượt trong TCP (tiếp…)


Round-trip time (RTT) Round-trip time

Window Size Window Size Window Size


???
Phát (A)

Giới thiệu

UDP Thu (B)


ACK ACK ACK
(1) RTT > Window size (2) RTT = Window size
TCP

Chông tắc
 Lựa chọn kích thước cửa sổ:
nghẽn RTT > Window Size: hiệu suất kênh truyền
thấp
RTT= Window Size: hiệu suất kênh  100%
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 34

17
Cơ chế truyền lại
Round-trip time (RTT) Retransmission TimeOut (RTO)

Guard
Band

Phát (A)
Estimated RTT

Data1 Data2
Giới thiệu
ACK ACK
Thu (B)
UDP
 TCP sử dụng đồng hồ timeout để truyền lại
 Sau khoảng thời gian RTO>RTT, nếu không nhận được gói  truyền
lại
TCP
 RTO là giá trị thay đổi, thích ứng với trạng thái kênh. Nguyên
nhân:
Chông tắc  Tắc nghẽn, đường đi thay đổi  RTT thay đổi  RTO cũng thay đổi
nghẽn theo
 Câu hỏi:
 Giá trị RTO được tính thế nào?
 Nếu RTO quá lớn/quá bé thì sao?

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 35

Cơ chế truyền lại (tiếp…)


 Ước lượng giá trị RTO:
 Vấn đề:
◊ Nếu giá trị RTO quá lớn: trễ truyền lại lớn
◊ Nếu giá trị RTO quá nhỏ: phát trùng gói không cần thiết
 Thuật toán ước lượng RTO – sử dụng phương pháp
Giới thiệu “trung bình cửa sổ trượt theo trọng số mũ”
(Exponential Weighted Moving Average - EWMA)
◊ Gọi:
UDP – a – trọng số thuật toán EWMA (0 ≤ a ≤ 1, thông thường a
=0,125)
– k – số bước lặp
TCP – EstimatedRTT: giá trị RTT ước lượng theo EWMA
– SampleRTT: giá trị RTT đo được tại bước k
◊ Thuật toán:
Chông tắc
nghẽn
1. EstimatedRTTk= a EstimatedRTTk-1 + (1 - a) SampleRTT
2. RTO = 2 * EstimatedRTT

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 36

18
Cơ chế truyền lại (tiếp…)
RTT: gaia.cs.umass.edu to fantasia.eurecom.fr

350

300

Giới thiệu
250
RTT (milliseconds)

UDP 200

TCP
150

Chông tắc
nghẽn 100
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)

SampleRTT Estimated RTT

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 37

Cơ chế truyền lại (tiếp…)


 Trong thuật toán trên
Trế trung bình

 Giả thiết: Phương sai


của giá trị RTT là hằng Phương sai
số tăng nhanh
 Trong thực tế: khi tải tăng
Giới thiệu
◊ Chiều dài hàng đợi
của router tăng dần
khi tải tăng
UDP Tải tới hàng đợi router
◊ Phương sai của RTT
tăng nhanh khi tải
Xác suất

tăng
TCP ◊ Phân bố xác suất của
RTT không xác định
Chông tắc  Yêu cầu: Phương
nghẽn
 Ước lượng RTT chính sai
xác để tránh ước lượng
sai RTO
kỳ vọng RTT

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 38

19
Cơ chế truyền lại (tiếp…)
 Thuật toán ước lượng RTO mới:
Cho phép đánh giá cả phương sai của RTT
Giới thiệu
1. EstimatedRTTk = a EstimatedRTTk-1 + (1 - a) SampleRTT
2. Differencek = (1 - )*Differencek-1 +  *|SampleRTT - EstimatedRTTk|
3. RTO =  * EstimatedRTTk +  *Differencek
UDP
a  0,125;   1;   4;   0,25

TCP

Chông tắc
nghẽn

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 39

Cơ chế truyền lại (tiếp…)


Host A Host B Host A Host B

Truyền lại Truyền lại


Giới thiệu
RTT sai RTT sai

UDP

TCP
 Thuật toán Karn:
 Vấn đề: Khi truyền lại thì RTT được ước lượng thế nào
Chông tắc cho chính xác?
nghẽn
 Giải pháp:
◊ Không cập nhật giá trị EstimatedRTT
◊ RTOk=2 * RTOk-1

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 40

20
Tắc nghẽn trong Internet
 Tắc nghẽn trong mạng thường xuyên xảy
ra và không thể tránh được
Giới thiệu  Tắc nghẽn xảy ra ở nhiều cấp độ khác
nhau (mức gói, mức luồng .v.v.)
UDP
 Bên phát TCP phải có khả năng phát hiện
TCP tắc nghẽn và giảm tắc nghẽn (giảm kích
thước cửa sổ trượt)
Chông tắc
nghẽn  Router cũng có thể giảm tốc độ luồng TCP
bằng cách tăng trễ hàng đợi (khi tải tăng)

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 41

Tắc nghẽn trong Internet (tiếp…)


 Tắc nghẽn xảy ra khi tải tới nút mạng tăng (
100%)
H1 A1(t)
10Mb/s
D(t)
Giới thiệu R1 H3
1.5Mb/s
H2 A2(t)
UDP 100Mb/s
A1(t)
Atotal(t) D(t)
A2(t)
X(t)
Cumulative bytes

TCP A2(t)
A1(t)
Chông tắc X(t)
nghẽn
D(t)

t
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 42

21
Tắc nghẽn trong Internet (tiếp…)
 Các cấp độ của tắc
nghẽn
Mức người sử
Giới thiệu
dụng: quá nhiều
người truy nhập
7:00 8:00 9:00
trong giờ cao điểm
UDP
Mức luồng: các
luồng dữ liệu chiếm
TCP
trọn dung lượng
1s 2s 3s
kênh đầu ra
Chông tắc
nghẽn Mức gói: 2 gói
xung đột tại router
100µs 200µs 300µs

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 43

Tắc nghẽn trong Internet (tiếp…)

 Tắc nghẽn và trễ:


RTT bao gồm:
Giới thiệu ◊ Trễ lan truyền (propagation delay)
◊ Trễ hàng đợi (queue delay)
UDP Thông thường trễ hàng đợi đóng vai trò quyết
định đến RTT
TCP Trễ hàng đợi phụ thuộc vào chiều dài hàng đợi
 tải tăng thì trễ tăng. Khi tắc nghẽn xảy ra 
Chông tắc
nghẽn trễ hàng đợi lớn
 RTT là đại lượng được sử dụng để ước lượng
tắc nghẽn trong mạng (TD: ping)
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 44

22
Tránh tắc nghẽn trong Internet
 TD: 2 luồng dữ liệu đến router
A1(t)
R1 ?
A2(t)

Giới thiệu Chính sách

Từ chối một luồng


UDP
Đệm một luồng trong bộ đệm cho
TCP
đến khi luồng kia được phục vụ xong
Chuyển thời gian phục vụ một luồng
Chông tắc tới thời điểm muộn hơn
nghẽn Yêu cầu các luồng giảm tốc độ

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 45

Tránh tắc nghẽn trong Internet


(tiếp…)
 Nhận xét: tắc nghẽn không thể tránh khỏi
Cơ chế hợp kênh thống kê trong chuyển mạch
Giới thiệu gói cho phép sử dụng kênh truyền hiệu quả 
bộ đệm thường xuyên bị đầy
UDP Nếu bộ đệm rỗng  trễ nhỏ, mạng không bị
tắc nghẽn. Nhưng: hiệu suất sử dụng kênh
TCP thấp
Nếu bộ đệm luôn đầy  trễ lớn, tắc nghẽn.
Chông tắc
nghẽn Nhưng: hiệu suất sử dụng kênh cao
 Tắc nghẽn thế nào là vừa phải?

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 46

23
Tải, trễ và hiệu năng
 Quan hệ giữa tải và  Gọi P là một tham số
trễ: đơn giản để đánh giá
 Tải: L (bit/s) hiệu năng mạng, với:
Giới thiệu  Trễ: D (s)  P=L/D
 P càng lớn càng tốt
UDP
Hiệu năng
Trễ trung bình

TCP

Chông tắc
nghẽn

Tải “Tải tối ưu” Tải

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 47

Chống tắc nghẽn trong TCP


 Yêu cầu:
TCP phải ước lượng
Giới thiệu chính xác băng Băng thông
thông còn thừa
Băng thông
UDP Thay đổi tốc độ còn thừa
C
phát theo tình
TCP trạng kênh:
◊ Tăng tốc độ phát
Chông tắc khi còn băng thông
nghẽn t
◊ Khi tắc nghẽn xảy
ra  giảm tốc độ
phát
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 48

24
Chống tắc nghẽn trong TCP
(tiếp…)
 Bên phát TCP thay đổi tốc độ bằng việc
thay đổi kích thước cửa sổ
Giới thiệu
Window=min{ReceiveWindow, CongestionWindow}

UDP
RWND bên thu CWND bên phát

TCP
 “cwnd” hoạt động theo cơ chế:
Chông tắc Tăng kích thước cửa sổ theo cấp số cộng
nghẽn
Giảm kích thước cửa sổ theo cấp số nhân

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 49

Chống tắc nghẽn trong TCP


(tiếp…)
 Các trạng thái của 1 luồng TCP:
“slow start”:
◊ Khi mới khởi tạo luồng
Giới thiệu
◊ Kích thước cwnd tăng theo hàm mũ cho đến mức
ngưỡng ssthresh
UDP Tránh tắc nghẽn:
◊ Từ mức ssthresh, kích thước cửa sổ tăng thêm một
TCP MSS (maximum segment size) sau mỗi chu kỳ RTT
kích thước cửa sổ tăng tuyến tính đến khi phát
Chông tắc
hiện tắc nghẽn
nghẽn Phát hiện tắc nghẽn:
◊ Tắc nghẽn xảy ra khi gói tin bị mất  TCP giảm kích
thước cửa sổ xuông một nửa.

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 50

25
“Slow Start”
 Mục đích: cho phép phiên TCP tăng tốc độ nhanh
chóng sau khi thiết lập kết nối
 Nguyên tắc:
Giới thiệu  cwnd = 1 (MSS)
 Tăng cwnd 1 đơn vị mỗi khi nhận được ACK  kích
thước cwnd tăng theo cấp số nhân
UDP
1 2 4 8
Src
TCP

Chông tắc D A D D A A D D D D
nghẽn
A A A A

Dest

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 51

Tránh tắc nghẽn


 Tránh tắc nghẽn – congestion avoidance
 Nguyên tắc:
 Sau khi kích thước cwnd đạt đến giá trị ssthresh, kết nối
TCP chuyển sang chế độ tránh tắc nghẽn
Giới thiệu  cwnd tăng một đơn vị (01 MSS) sau một RTT không có
gói lỗi  cwnd tăng tuyến tính

UDP 1 2 3 4
Src
TCP

D A D D A A D D D A A A
Chông tắc
nghẽn

Dest

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 52

26
Phát hiện tắc nghẽn
 Vấn đề:
Làm sao để phát hiện tắc nghẽn?
Giới thiệu
 Khi xảy ra mất gói  hàng đợi tại các
nút trung gian bị tràn  tắc nghẽn
UDP
xảy ra
TCP  TCP chuyển sang trạng thái phát hiện
Chông tắc
tắc nghẽn khi mất gói xảy ra:
nghẽn
Không nhận được ACK (timeout)
Nhận được 3 ACK trùng yêu cầu phát lại
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 53

Phát hiện tắc nghẽn (tiếp…)


 Khi timeout (không nhận được ACK)
TCP đặt ngưỡng ssthresh xuống còn một nửa
Giới thiệu giá trị hiện tại của cwnd
TCP đặt cwnd về 1 MSS
UDP TCP chuyển về trạng thái slow start
 Nếu nhận được 3 ACK trùng
TCP
TCP đặt ngưỡng ssthresh xuống còn một nửa
Chông tắc giá trị hiện tại của cwnd
nghẽn
TCP đặt cwnd bằng ½ giá trị hiện tại
TCP chuyển về trạng thái tránh tắc nghẽn
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 54

27
Phát hiện tắc nghẽn (tiếp…)
 Nhận xét: cửa sổ cwnd có dạng răng cưa
cwnd

22

Giới thiệu 20 Timeout


18

16 Threshold is set to half of cwnd (20)


Threshold=16
UDP And slow start starts
14

12 3 ACKs
TCP 10 SS
Threshold=10 Threshold is set to half of cwnd (12)
8 AI And additive increase starts
SS
Chông tắc 6
AI
nghẽn Threshold=6
4

2 AI

Time

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 55

Thông lượng của phiên TCP


 Trong một chu kỳ RTT: số byte phiên
TCP gửi là cwnd
Giới thiệu
 Gọi R – thông lượng phiên TCP
UDP R=cwnd/RTT

TCP
 Câu hỏi:
Dạng lưu lượng một phiên TCP có tuân
Chông tắc
nghẽn theo dạng răng cưa không?

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 56

28
Thông lượng của phiên TCP
(tiếp…)

Giới thiệu

UDP

TCP

Chông tắc
nghẽn

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 57

Thông lượng của phiên TCP


(tiếp…)
 Nhận xét:
Dạng lưu lượng TCP không nhất thiết có dạng
răng cưa. Như trong hình trước, lưu lượng là
Giới thiệu hằng số.
 Nguyên nhân:
UDP Nếu độ lớn của bộ đệm tại router đủ lớn:
◊ Số gói đến router tăng  kích thước bộ đệm tăng 
RTT tăng tỷ lệ với cwnd
TCP
lưu lượng TCP là hằng số
Chông tắc  Có 2 cách tránh tắc nghẽn:
nghẽn
1. Đệm gói đến để tăng RTT
2. Huỷ gói để giảm kích thước cửa sổ cwnd

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 58

29
Tính công bằng của TCP
 Mục tiêu:
Nếu có n luồng TCP chia sẻ kênh truyền có
Giới thiệu dung lượng C  mỗi luồng được chia sẻ băng
thông C/n
UDP TCP 1

TCP

Chông tắc C
nghẽn
R

TCP 2

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 59

Tính công bằng của TCP (tiếp…)


 TCP cho phép chia sẻ băng thông công bằng
 Xét 2 luồng TCP chia sẻ băng thông C.

C Điểm chia sẻ công bằng


Giới thiệu

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

Chông tắc
nghẽn

Thông lượng luồng 1 C

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 60

30
Tính công bằng của TCP
(tiếp…)
 TCP công bằng đến đâu?
Các ứng dụng có thể mở song song
Giới thiệu nhiều luồng TCP
◊Web browser
UDP ◊Flashget
TD:
TCP
◊một liên kết dung lượng C phục vụ 10 luồng
Chông tắc
TCP  mỗi luồng nhận băng thông trung
nghẽn bình là C/10
◊ứng dụng mới mở thêm 10 luồng TCP 
ứng dụng đó nhận được băng thông C/2
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 61

Đồng bộ giữa nhiều luồng TCP


 Vấn đề:
 Khi truyền nhiều luồng TCP với cùng thời gian bắt đầu
và RTT RTT
A

Giới thiệu
B
C
D
UDP Luồng A
N  RTT

TCP

Chông tắc
nghẽn

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 62

31
Đồng bộ giữa nhiều luồng TCP
(tiếp…)

Băng thông tổng cộng


Giới thiệu f(RTT)

UDP
trung bình

TCP

Chông tắc
nghẽn

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 63

Đồng bộ giữa nhiều luồng TCP


(tiếp…)
 Nếu thay đổi thời gian bắt đầu giữa các luồng
(không đồng bộ)  băng thông tổng hợp ít dao
động hơn
Giới thiệu
Nguồn A
N  RTT
UDP

TCP

Chông tắc
nghẽn

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 64

32
Đồng bộ giữa nhiều luồng TCP
(tiếp…)

Băng thông tổng hợp


Giới thiệu N  RTT

Trung bình
UDP

TCP

Chông tắc
nghẽn

CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 65

Tài liệu tham khảo


 Internetworking with TCP/IP, Vol 1, Douglas
Comer, Prentice Hall Computer
 Karn, Phil; Craig Partridge, "Improving Round-
Trip Time Estimates in Reliable Transport
Protocols“, ACM SIGCOMM '87. pp. 2–7
 Computer Networks, Nick McKeown, Stanford
University
 Networking: a top-down approach featuring the
Internet, James F. Kurose, Keith W. Ross,
Addison Wesley, 4thed, 2006
 Một số tài liệu và bài giảng khác trên Internet

33

You might also like