Professional Documents
Culture Documents
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
Mô hình Internet
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
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 5
Application Application
Giới thiệu
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
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
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
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
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 13
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
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
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 15
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
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
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
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
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
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
Sequence Number
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
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 28
14
Sequence Number
Sequence Number: số thứ tự TCP segment
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
Nhận
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 29
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
Ack
Chông tắc
nghẽn
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 31
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
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
Giới thiệu
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
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)
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 37
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
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
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
22
Tránh tắc nghẽn trong Internet
TD: 2 luồng dữ liệu đến router
A1(t)
R1 ?
A2(t)
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 45
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
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 47
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 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
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
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
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
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
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
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
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
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…)
UDP
trung bình
TCP
Chông tắc
nghẽn
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 63
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…)
Trung bình
UDP
TCP
Chông tắc
nghẽn
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh 65
33