Bài giảng Mạng máy tính - Chương 5: Giao thức TCP/UDP - Nguyễn Hữu Thanh
Phát hiện tắc nghẽn
Vấn đề:
Làm sao để phát hiện tắc nghẽn?
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
xảy ra
TCP chuyển sang trạng thái phát hiện
tắc nghẽn khi mất gói xảy ra:
Không nhận được ACK (timeout)
Nhận được 3 ACK trùng yêu cầu phát lại
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á trị hiện tại của cwnd
TCP đặt cwnd về 1 MSS
TCP chuyển về trạng thái slow start
Nếu nhận được 3 ACK trùng
TCP đặt ngưỡng ssthresh xuống còn một nửa
giá trị hiện tại của cwnd
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
33 trang |
Chia sẻ: hachi492 | Ngày: 06/01/2022 | Lượt xem: 397 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng Mạng máy tính - Chương 5: Giao thức TCP/UDP - Nguyễn Hữu Thanh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1PGS. TS. Nguyễn Hữu Thanh
Bộ môn Kỹ thuật thông tin
Viện Điện tử - Viễn thông
ĐHBK Hà Nội
Email: thanhnh@mail.hut.edu.vn
Chương 5. Giao thức TCP/UDP
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
23
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Đặ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%
Nhiều ứng dụng tại 1 máy trạm cùng chia sẻ đường truy nhập
Internet
Mạng Internet:
Chức năng chính: định tuyến (routing) và chuyển tiếp
(forwarding)
Truyền tin không tin cậy
◊ 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
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?
4
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Đặt vấn đề (tiếp)
Cần các chức năng bổ sung giữa “Application” và “Internetwork”
Network Access
Internetwork
Host-to-Host
Application
Mô hình Internet
Điều khiển truy nhập
kênh, biến đổi dòng
bit theo kênh vật lý
Định tuyến và chuyển tiếp,
truyền tin không tin cậy
IEEE 802.x
IP, ICMP, routing protocols
Ứng dụng truyền thông:
truyền file, ứng dụng thời
gian thực, web, email,
VoIP .v.v.
http, SIP, H.323, RTP, FTP,
SMTP, POP, SNMP .v.v.
???
35
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
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à
“internetwork”
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
Tăng độ tin cậy của luồng thông tin
6
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Chức năng của lớp Host-to-Host
(tiếp )
Network
Access
Internetwork
Host-to-Host
Application
Máy trạm
Network
Access
Internetwork
Host-to-Host
Application
Máy trạmRouter
Network
Access
Internetwork
Thông tin giữa 2 lớp cùng cấp
47
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
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?
Router chỉ thực hiện các chức năng định tuyến
và chuyển tiếp
Router không cần lưu giữ trạng thái của một
luồng dữ liệu (flow state)
nâng cao hiệu năng của router
các chức năng khác được đưa ra “rìa” của
mạng
8
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
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
FTP HTTP Chat FTP HTTP Chat
Application
Host2Host
Internetwork
Network
Access
TCP/UDPmultiplexing demultiplexing
application-layer protocols
59
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
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 chỉ cổng (port number) khác nhau
Địa chỉ cổng: 16 bit
Các ứng dụng trao đổi dữ liệu qua
“socket”. Mỗi socket được phân biệt qua
2 tham số:
◊Địa chỉ port
◊Địa chỉ IP
10
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
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
◊ SMTP: 25, TCP
◊ DNS: 53, TCP/UDP
◊ HTTP: 80, TCP/UDP
Từ 1024: do người sử
dụng tự định nghĩa
Socket được quản lý bởi
hệ điều hành
Có thể tạo, trao đổi dữ liệu
qua socket thông qua các
API của HĐH
socket 1 socket 2 socket 3
App1 App2 App3
Application
Host-to-host
611
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Cơ chế tăng độ tin cậy
Độ tin cậy:
Kiểm tra và chống lỗi: thêm các mã
kiểm tra lỗi phần dữ liệu (CRC .v.v.)
◊ARQ (auto-repeat request)
◊FEC (forwarding error correction)
Chống tắc nghẽn
Câu hỏi:
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?
12
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
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
◊ Go-Back-N
◊ Selective Repeat
Chức năng:
◊ Phát hiện lỗi gói
◊ Phát hiện mất gói
◊ 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
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”
713
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Cơ chế tăng độ tin cậy (tiếp)
ARQ - Stop and Wait:
RTT
tp
ts
p1
ACK1
p0
ACK0
p1
lỗi
NACK1
p1
ACK1
p1
p1
ACK1
mất gói
t tim
eo
ut
a) Không lỗi b) Lỗi gói c) Mất gói
14
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Cơ chế tăng độ tin cậy (tiếp)
ARQ - Go-Back-N:
“Cumulative feedback”
p1
p2
p3
ACK4
p4
p5
p6
a) Không lỗi
p1
p2
p3
ACK2
p2
p3
p4
lỗigói
b) Lỗi gói
p1
p2
p3
ACK2
p2
p3
p4
mất gói
c) Mất gói
W=3 – kích thước cửa sổ
815
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Cơ chế tăng độ tin cậy (tiếp)
ARQ - Selective Repeat
p1
p2
p3
ACK4
p4
p5
p6
a) Không lỗi
p1
p2
p3
NACK2
p2
p4
p5
lỗigói
b) Lỗi gói
NACK4
p1
p2
p3
ACK1
ACK3p4
p2
p5
mất gói
c) Mất gói
16
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Cơ chế tăng độ tin cậy (tiếp)
Điều khiển luồng trong ARQ:
Để thay đổi tốc độ truyền:
◊ Thay đổi kích thước cửa sổ trượt W
◊ Thay đổi thời gian ACK để điều chỉnh RTT
Nhận xét:
ARQ không thích hợp cho các dịch vụ thời gian
thực:
◊ RTT lớ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
917
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
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-
and-Wait”, “Go-Back-N” và “Selective
Repeat” khi:
◊Kênh truyền lý tưởng
◊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ở
mạng thông tin”
18
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Cơ chế tăng độ tin cậy (tiếp)
FEC:
Bên phát không phát lại gói
Bên thu có chức năng:
◊Kiểm tra lỗi
◊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)
– Nếu lỗi không sửa được: hủy gói
Nhận xét:
◊FEC thích hợp cho các dịch vụ thời gian
thực
10
19
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Giao thức UDP
UDP – User Datagram Protocol
RFC 768
Gói tin UDP – UDP datagram
Đặc điểm:
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
◊ 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),
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ự
◊ Không có cơ chế điều khiển luồng UDP có thể gửi dữ liệu
nhanh và nhiều nhất có thể
Chức năng cơ bản của UDP là gì?
20
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Giao thức UDP (tiếp)
Chức năng chính của UDP:
Ghép/tách kênh
App App
A1 A2
App App
B1 B2
UDP
OS
IP
UDP
Port
11
21
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Giao thức UDP (tiếp)
Cấu trúc gói UDP
SRC port DST port
checksum length
DATA
Chỉ bảo vệ
phần header
Kích thước
phần data
theo byte
UDP được dùng cho ứng dụng gì?
Các ứng dụng không cần độ tin cậy cao
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
22
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
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
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
◊ 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ự
◊ 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
◊ Cơ chế điều khiển luồng sử dụng cửa sổ trượt
◊ Cơ chế chống tắc nghẽn để chia sẻ băng thông giữa nhiều nguồn
dữ liệu
12
23
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
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
A
B
R1
R2
R3
R4
24
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
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
◊ không có dữ liệu
Bước 2: B nhận SYN, trả lời
bằng SYN/ACK
◊ B khởi tạo vùng đệm
◊ chỉ ra giá trị khởi tạo seq. #
của B
Bước 3: A nhận SYN/ACK,
trả lời ACK, có thể kèm theo
dữ liệu
Ghi chú: phiên truyền TCP là
phiên song công (số liệu
truyền theo 2 hướng)
Client A
(chủ động)
Server B
(thụ động)
Syn
Syn + Ack
Ack
13
25
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
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
Bước 2: B nhận được
FIN, trả lời ACK, đồng
thời đóng liên kết và gửi
FIN.
Bước 3: A nhận FIN, trả
lời ACK, vào trạng thái
“chờ”.
Bước 4: B nhận ACK.
đóng liên kết.
Ghi chú: cả client hoặc
server đều có thể yêu
cầu huỷ bỏ kết nối
Client A Server B
Fin
(Data +) Ack
Fin
Ack
26
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
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
Byte 0
Byte 1
Byte 2
Byte 3
Byte 0
Byte 1
Byte 2
Byte 3
Gửi
Nhận
Byte 80
TCP segment
TCP segment
Byte 80
14
27
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Bản tin TCP
Src port Dst port
Sequence Number
ACK Sequence Number
HLEN
4
RSVD
6
U
RG A
CK
PS
H
RS
T
S
YN FI
N
Flags
Receive Window Size
Checksum Urg Pointer
(TCP Options)
0 15 31
TCP Data
28
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Ý nghĩa các trường
Source/Destination Port: địa chỉ cổng
Checksum: mã chống lỗi – cho cả
TCP header và phần dữ liệu
Receive Window Size (RWND): kích
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ể
tiếp nhận điều khiển luồng
15
29
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Sequence Number
Sequence Number: số thứ tự TCP segment
Gửi
Nhận
TCP Data
TCP Data
TCP
HDR
TCP
HDR
ISN (initial sequence number)
Sequence
number = số
thứ tự byte
đầu
STT ACK =
byte tiếp theo
bên thu đợi
nhận
30
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Sequence Number (tiếp)
Sequence number:
Số thứ tự byte đầu tiên của 1 segment
sequence number của TCP segment
Được tính bằng byte
16
31
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
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
Client A Server B
Syn +ISNA
Syn + Ack +ISNB
Ack
32
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Cửa sổ trượt trong TCP
Vấn đề:
Một kết nối TCP có thể gửi bao nhiêu
gói dữ liệu liên tiếp qua mạng?
Khi lỗi xảy ra, TCP truyền lại gói thế
nào? Sử dụng cơ chế “selective repeat”
hay “Go-Back-N”?
Làm cách nào để TCP không làm tràn
bộ đệm bên thu?
17
33
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Cửa sổ trượt trong TCP (tiếp)
Kích thước cửa sổ phải điều chỉnh cho phù hợp với bộ đệm
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
bên phát RWND trong trường Receive Window Size (thông
thường từ 4kB – 8kB)
Cơ chế truyền lại trong TCP: Go-Back-N
Dữ liệu đã gửi
và chưa nhận
được ACK
Kích thước cửa sổ
Dữ liệu được
phép gửi
Dữ liệu chưa được
phép gửi
Dữ liệu đã gửi
và nhận được ACK
Dữ liệu
34
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Cửa sổ trượt trong TCP (tiếp)
Lựa chọn kích thước cửa sổ:
RTT > Window Size: hiệu suất kênh truyền
thấp
RTT= Window Size: hiệu suất kênh 100%
Phát (A)
Thu (B)
ACK
Window Size
Round-trip time (RTT)
ACK
Window Size???
ACK
Window Size
Round-trip time
(1) RTT > Window size (2) RTT = Window size
18
35
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Cơ chế truyền lại
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
RTO là giá trị thay đổi, thích ứng với trạng thái kênh. Nguyên
nhân:
Tắc nghẽn, đường đi thay đổi RTT thay đổi RTO cũng thay đổi
theo
Câu hỏi:
Giá trị RTO được tính thế nào?
Nếu RTO quá lớn/quá bé thì sao?
Phát (A)
Thu (B)
ACK
Round-trip time (RTT)
ACK
Retransmission TimeOut (RTO)
Estimated RTT
Data1 Data2
Guard
Band
36
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
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
“trung bình cửa sổ trượt theo trọng số mũ”
(Exponential Weighted Moving Average - EWMA)
◊ Gọi:
– – trọng số thuật toán EWMA (0 ≤ ≤ 1, thông thường
=0,125)
– k – số bước lặp
– EstimatedRTT: giá trị RTT ước lượng theo EWMA
– SampleRTT: giá trị RTT đo được tại bước k
◊ Thuật toán:
1. EstimatedRTTk= EstimatedRTTk-1 + (1 - ) SampleRTT
2. RTO = 2 * EstimatedRTT
19
37
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Cơ chế truyền lại (tiếp)
RTT: gaia.cs.umass.edu to fantasia.eurecom.fr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RT
T
(m
ill
ise
co
nd
s)
SampleRTT Estimated RTT
38
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Cơ chế truyền lại (tiếp)
Trong thuật toán trên
Giả thiết: Phương sai
của giá trị RTT là hằng
số
Trong thực tế:
◊ Chiều dài hàng đợi
của router tăng dần
khi tải tăng
◊ Phương sai của RTT
tăng nhanh khi tải
tăng
◊ Phân bố xác suất của
RTT không xác định
Yêu cầu:
Ước lượng RTT chính
xác để tránh ước lượng
sai RTO
Tải tới hàng đợi router
Tr
ế
tru
ng
bì
nh
Phương sai
tăng nhanh
khi tải
tăng
RTT
X
ác
su
ất
kỳ vọng
Phương
sai
20
39
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
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
1. EstimatedRTTk = EstimatedRTTk-1 + (1 - ) SampleRTT
2. Differencek = (1 - )*Differencek-1 + *|SampleRTT - EstimatedRTTk|
3. RTO = * EstimatedRTTk + *Differencek
0,125; 1; 4; 0,25
40
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Cơ chế truyền lại (tiếp)
Thuật toán Karn:
Vấn đề: Khi truyền lại thì RTT được ước lượng thế nào
cho chính xác?
Giải pháp:
◊ Không cập nhật giá trị EstimatedRTT
◊ RTOk=2 * RTOk-1
Truyền lại
RTT sai
Host A Host B
Truyền lại
RTT sai
Host A Host B
21
41
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
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
Tắc nghẽn xảy ra ở nhiều cấp độ khác
nhau (mức gói, mức luồng .v.v.)
Bên phát TCP phải có khả năng phát hiện
tắc nghẽn và giảm tắc nghẽn (giảm kích
thước cửa sổ trượt)
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)
42
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
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%)
A1(t)
A2(t)
D(t)
X(t)
Cu
m
ul
at
iv
e
by
te
s
t
Atotal(t)
H1
H2
R1 H3
A1(t)
10Mb/s
D(t)
1.5Mb/s
A2(t)
100Mb/s
A1(t)
A2(t)
X(t)
D(t)
22
43
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Tắc nghẽn trong Internet (tiếp)
Các cấp độ của tắc
nghẽn
Mức người sử
dụng: quá nhiều
người truy nhập
trong giờ cao điểm
Mức luồng: các
luồng dữ liệu chiếm
trọn dung lượng
kênh đầu ra
Mức gói: 2 gói
xung đột tại router
7:00 8:00 9:00
1s 2s 3s
100µs 200µs 300µs
44
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Tắc nghẽn trong Internet (tiếp)
Tắc nghẽn và trễ:
RTT bao gồm:
◊ Trễ lan truyền (propagation delay)
◊ Trễ hàng đợi (queue delay)
Thông thường trễ hàng đợi đóng vai trò quyết
định đến RTT
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
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)
23
45
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Tránh tắc nghẽn trong Internet
TD: 2 luồng dữ liệu đến router
R1 ?
A1(t)
A2(t)
Chính sách
Yêu cầu các luồng giảm tốc độ
Chuyển thời gian phục vụ một luồng
tới thời điểm muộn hơn
Đệm một luồng trong bộ đệm cho
đến khi luồng kia được phục vụ xong
Từ chối một luồng
46
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
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
gói cho phép sử dụng kênh truyền hiệu quả
bộ đệm thường xuyên bị đầy
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
thấp
Nếu bộ đệm luôn đầy trễ lớn, 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?
24
47
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Tải, trễ và hiệu năng
Quan hệ giữa tải và
trễ:
Tải: L (bit/s)
Trễ: D (s)
Gọi P là một tham số
đơn giản để đánh giá
hiệu năng mạng, với:
P=L/D
P càng lớn càng tốt
Tr
ễ
tr
un
g
bì
nh
Tải
Hiệu năng
Tải“Tải tối ưu”
48
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Chống tắc nghẽn trong TCP
Yêu cầu:
TCP phải ước lượng
chính xác băng
thông còn thừa
Thay đổi tốc độ
phát theo tình
trạng kênh:
◊ Tăng tốc độ phát
khi còn băng thông
◊ Khi tắc nghẽn xảy
ra giảm tốc độ
phát
t
Băng thông
Băng thông
còn thừa
C
25
49
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
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ổ
“cwnd” hoạt động theo cơ chế:
Tăng kích thước cửa sổ theo cấp số cộng
Giảm kích thước cửa sổ theo cấp số nhân
Window=min{ReceiveWindow, CongestionWindow}
RWND bên thu CWND bên phát
50
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
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
◊ Kích thước cwnd tăng theo hàm mũ cho đến mức
ngưỡng ssthresh
Tránh tắc nghẽn:
◊ Từ mức ssthresh, kích thước cửa sổ tăng thêm một
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
hiện tắc 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.
26
51
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
“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:
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
D A D D A A D D
A A
D
A
Src
Dest
D
A
4 81 2
52
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
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
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
D A D D A A D D A AD A
Src
Dest
1 2 3 4
27
53
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Phát hiện tắc nghẽn
Vấn đề:
Làm sao để phát hiện tắc nghẽn?
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
xảy ra
TCP chuyển sang trạng thái phát hiện
tắc nghẽn khi mất gói xảy ra:
Không nhận được ACK (timeout)
Nhận được 3 ACK trùng yêu cầu phát lại
54
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
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á trị hiện tại của cwnd
TCP đặt cwnd về 1 MSS
TCP chuyển về trạng thái slow start
Nếu nhận được 3 ACK trùng
TCP đặt ngưỡng ssthresh xuống còn một nửa
giá trị hiện tại của cwnd
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
28
55
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
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
2
4
6
8
10
12
14
16
18
20
22
Timeout
3 ACKs
SS
SS
AI
AI
AI
Threshold=16
Threshold=10
Threshold=6
Threshold is set to half of cwnd (20)
And slow start starts
Threshold is set to half of cwnd (12)
And additive increase starts
cwnd
Time
56
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Thông lượng của phiên TCP
Trong một chu kỳ RTT: số byte phiên
TCP gửi là cwnd
Gọi R – thông lượng phiên TCP
R=cwnd/RTT
Câu hỏi:
Dạng lưu lượng một phiên TCP có tuân
theo dạng răng cưa không?
29
57
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Thông lượng của phiên TCP
(tiếp)
58
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
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à
hằng số.
Nguyên nhân:
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
lưu lượng TCP là hằng số
Có 2 cách tránh tắc nghẽn:
1. Đệm gói đến để tăng RTT
2. Huỷ gói để giảm kích thước cửa sổ cwnd
30
59
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
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ó
dung lượng C mỗi luồng được chia sẻ băng
thông C/n
TCP 1
R
TCP 2
C
60
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
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
C
Điểm chia sẻ công bằng
Thông lượng luồng 1
Th
ôn
g
lư
ợ
ng
lu
ồn
g
2
congestion avoidance: additive increase
loss: decrease window by factor of 2
congestion avoidance: additive increase
loss: decrease window by factor of 2
31
61
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
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
nhiều luồng TCP
◊Web browser
◊Flashget
TD:
◊một liên kết dung lượng C phục vụ 10 luồng
TCP mỗi luồng nhận băng thông trung
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
62
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Đồ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
A
B
C
D
RTT
Luồng A
N RTT
32
63
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Đồng bộ giữa nhiều luồng TCP
(tiếp)
Băng thông tổng cộng
f(RTT)
trung bình
64
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Đồ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
Nguồn A
N RTT
33
65
CHƯƠNG 5 – UDP/TCP
PGS. TS. Nguyễn Hữu Thanh
Giới thiệu
UDP
TCP
Chông tắc
nghẽn
Đồng bộ giữa nhiều luồng TCP
(tiếp)
Băng thông tổng hợp
Trung bình
N RTT
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
Các file đính kèm theo tài liệu này:
- bai_giang_mang_may_tinh_chuong_5_giao_thuc_tcpudp_nguyen_huu.pdf