Tải bản đầy đủ (.pdf) (91 trang)

Phân tích, đánh giá hiệu suất tác động của một số thuật toán điều khiển tắc nghẽn số liệu TCP

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (33.1 MB, 91 trang )

ĐẠI HỌC QU Ố C G IA HÀ NỘI
KHOA CÔNG N G H Ệ
N G U YỄN HOÀNG LINH
PHÂN TÍCH, ĐÁNH GIÁ H IỆU Sư Ấ T H O Ạ T Đ Ộ N G C Ủ A M Ộ T s ố
TH U ẬT TOÁN Đ IỀ U KH IEN t ắ c n g h ẽ n s ố L IỆ U TC P
Chuyên ngành : Công nghệ Thông tin
Mã số :
LUẬN VĂN THẠ C s ĩ KH O A HỌC
Người hướng dẫn khoa học :
Tiến sĩ VŨ DUY LỘI
HÀ NỘI NĂM 2001
ỊĨÍU ỈN 5 ■'
:[
V i ị
Điều khiển tắc nghẽn TCP
Trang 2
NỘI DƯNG
MỞ ĐẦ U 4
CHƯƠNG 1 : GIÓI TH IỆU C H U N G
6
1.1 Điều khiển lưu lượng số liệu trong Internet 6
1.1.1 Giới thiệu chung về mạng Intern et 6
1-1.2 Điều khiển lưu lượng và tắc nghẽn số liệu trên mạng TTMT

10
1.1.3 Điểu khiển lưu lượng và tắc nghẽn số liệu TCP trong mạng Internet
.
14
Cơ chế cửa sổ động 16
Cơ chế phát lại thích nghi 16
Cơ chế điều khiển tắc nghẽn dữ liệu 17


1.2 Phân tích đánh giá hiộu suất 18
1.2.1 Sự cần thiết 18
1.2.2 Các phương p h áp 18
1.2 Mô phỏng máy tính 19
Hệ thống mô phỏng N S 19
CHƯƠNG 2 : CÁC TH UẬT TOÁN Đ IỀU KHIEN t ắ c n g h ẽ n T C P

22
2.1 Một số định nghĩa và khái niộm quan trọng
23
2.2 Các thuật toán điếu khiển tắc nghẽn 24
2.2.1 Các thuật toán “Khởi động chậm ” và “Tránh tắc nghẽn” 25
“Khởi động chậm ” 25
“Tránh tắc nghẽn” 29
Kết hợp “Khởi động chậm ” và “Tránh tắc nghẽn” 32
Nguyễn Hoàng Linh
2 .2 .2 Các thuật toán “Phát lại nhanh” và “Hồi phục nhanh”

38
“Phát lại nhanh” 38
“Hồi phục nhanh” 40
Kết hợp “Phát lại nhanh” và “Hồi phục nhanh” 41
CHƯƠNG 3 : HIỆU SUẤT C Á C THUẬT TOÁN Đ lỀ ư KHIEN t ắ c n g h ẽ n
SỐ LIỆU TCP TAH O E, RENO, N EW -REN O VÀ S A C K

43
3.1 Điều khiển tắc nghẽn số liệu TCP 44
3.1.1 Các phiên bản điều khiển tắc nghẽn số liệu T C P 44
3.1.2 Tahoe T C P 46
3.1.3 Reno T C P 49

3.1.4 New-Reno T C P 52
3.1.5 SACK T C P 55
3.2 Mô phỏng 60
3.2.1 Kịch bản mô phỏng 60
3.2.2 Một gói dữ liệu bị m ấ t 61
3.2.3 Ba gói dữ liệu bị m ấ t 65
3.3 Kết quả mô phỏng 69
K Ế T LU Ậ N 73
Bảng một số từ viết tắt 78
Tài liệu tham khảo 80
Phụ lục 82
Điều khiển tắc nghẽn TCP Trang 3
Nguyễn Hoàng Linh
Điều khiển tắc nghẽn TCP Trang 4
M Ở Đ Ầ U
Nội dung chính cua luận văn là nghiên cứu cơ chế hoạt động của một số
thuật toán điều khiển tắc nghẽn số liệu TCP, cụ thể là các thuật toán “K h ở i
độn g ch ậ m ” (S low StartX é‘Tránh tắc n g h ẽn ” (C ongestion A voidance), ‘T h át lại
nhanh ” (F ast Retransm it) và “P hụ c h ồ i nhanh (Fast R ecov ery). Đây là bốn thuật
toán c ơ s ở đã được nghiên cứu, công bố và đưa ra cho mọi người trong cộng
đồng Internet (Internet Society) cùng thảo luận và đánh giá. Sau đó một hệ
chương trình mô phỏng mạng máy tính có tên NS được sử dụng để kiểm tra, so
sánh và đánh giá hiệu suất của bốn thuật toán tổng th ể điều kh iển tắc nghẽn s ố
liệu TCP dựa trên bốn thuật toán c ơ s ở ở trên. Đó là các Tahoe, R eno, N ew -
R eno và SA C K TCP.
Bài luận văn được chia thành 3 chương.
Chương I giới thiệu tóm tắt những nội dung chính của luận văn, những vấn
đề mà chúng ta sẽ trình bày chi tiết ở các chương sau. Chương này giới thiệu
tổng quan về Internet, về cấu trúc mạng Internet và bộ giao thức TCP/IP cũng
như về điều khiển lau iượng số liệu trên Internet. Qua đó nêu lên sự cần thiết

việc so sánh, đánh giá hiệu suất của các thuật toán điều khiển tắc nghẽn số liệu
TCP thông qua một hệ chương trình mô phỏng máy tính.
Nguyễn Hoàng Linh
Điều khiển tắc nghẽn TCP
Trang 5
Chương II trình bày chi tiết nguyên tắc hoạt động của bốn thuật toán điều
khiển tắc nghẽn số liệu TCP. Cụ thể là các thuật toán “K hở i động c h ậm ”,
“Tránh tắc nghẽn ”, “Phắt lạ i nhanh ”và “Phục h ồ i nhanh
Chương III giới thiệu bốn thuật toán điều khiển tắc nghẽn s ố liệu TCP tổng
th ể Tahoe-, Reno-, New-Reno-, và SACK-TCP và các nguyên tắc hoạt động
của chúng. Bốn thuật toán tổng thể này được mô phỏng thông qua H ệ chương
trình M ô phỏn g N S để so sánh và đánh giá hiệu suất của chúng.
Cuối cùng là phần K ết luận tóm tắt kết quả mà luận văn đã đạt được.
Nguyễn Hoàng Linh
Điều khiển tắc nghẽn TCP
Trang 6
CHUƠNG1
G IỚ I T H IÊ U C H U N G
1.1 Điẻu khiển lưu lượng số liệu trong Internet
1.1.1 Giới thiêu chung vể mạng Internet
Từ một dự án nghiên cứu và phát triển mạng T T M T (mạng TTMT) dựa trên
công nghệ chuyển mạch gói giữa những năm 60 của Bộ quốc phòng Mỹ, ngày
nay Internet đã trở thành mạng của các mạng T T M T toàn cầu, được kết nối với
nhau dựa trên cơ sở bộ giao thức trao đổi dừ liệu TCP/IP (Transmission Control
Protocol / Internet Protocol), đáp ứng ngàv càng phong phú các dịch vụ thông
tin liên lạc của xã hội, tiến tới trở thành hạ tầng thông tin liên lạc duy nhất hiện
nay trên thế giới.
Sau đây là một số mốc lịch sử phát triển quan trọng của Internet :
■ 1969 : Đưa vào sử dụng thử nghiệm mạng TT M T có tên APARNET trên cơ
sở công nghệ chuyển mạch gói.

■ 1977 : Thử nghiệm thành công việc kết nối ba mạng TTM T của ba trường
đại học lớn ở Mỹ thông qua giao thức TCP/IP.
■ 1986 : V iệc đưa vào sử dụng mạng N SFNET - mạng xương sống Internet tốc
độ cao (45 Mbit/s) - phục vụ cho việc nghiên cứu và giảng dạy đã có ảnh
hưởng tích cực đến sự phát triển mạnh mẽ của Internet trong cộng đồng
nghiên cứu khoa học và giáo dục ở M ỹ và các nước Tây Âu.
Nguyễn Hoàng Linh
Điều khiển tắc nghẽn TCP
Trang 7
■ 1990-1991 : Internet được thương mại hoá với sự ra đời của tổ chức khuyến
khích phát triển và sử dụng Internet “Internet Society” và bắt đầu thời kỳ
phát triển bùng nổ của Internet. Từ đây Internet trở thành mạng TTM T toàn
cầu.
* 1997 : Đ ã có hơn 100000 mạng TTMT được kết nối trong Internet với hơn
15 triệu máy chủ và 50 triệu người sử dụng.
Những nhân tô' chính thúc đẩy sự phát triển của Internet (thực chất là việc
mở rộng mạng thông qua các kết nối các máy tính và các mạng máy tính với
nhau trên cơ sở bộ giao thức trao đổi dữ liệu TCP/ IP) :
■ Với việc sử dụng bộ giao thức TCP/IP trong hệ điều hành UNIX để thực
hiện trao đổi dữ liệu giữa các tiến trình trên một máy và giữa các máy được
kết nối trong mạng. UNIX là hệ điều hành được sử dụng rông rãi từ năm
1983 trong các trường đại học và các viện nghiên cứu ở Mỹ.
■ Kỹ thuật vi xử lý và các máy tính các nhân PC ra đời vào những năm 1980
ngày càng được hoàn thiện và nâng cao vé công suất tính toán và tiện lợi cho
người sử dụng đã rút ngắn khoảng cách giữa người dùng và máy tính, máy
tính ngày càng thâm nhập sâu vào các lĩnh vực của đời sống xã hội và thúc
đẩy nhu cầu kết nối máy tính và mạng máy tính.
■ NFSNET, mạng xương sống Internet ra đời năm 1986 ở Mỹ với tốc độ truy
nhập đường trục là 45 Mbit/s, đã nâng cao cơ bản về giải thông và chất
lượng truy cập mạng, đáp ứng nhu cầu trao đổi thông tin trong cộng đồng

%
neười sử dụng.
Internet phát triển với tốc độ nhanh chóng như vậy do bởi kiến trúc đơn giản
và linh hoạt của mạng. Tương tự như mô hình kết nối mở các hệ thống tính toán
ISO/OSI. Bộ giao thức trao đổi dữ liệu Internet bao gồm hai phần chính: các
giao thức tạo thành hệ thống truyền dẫn và các giao thức hỗ trợ ứng dụng.
Nguyễn Hoàng Linh
Điều khiển tắc nghẽn TCP Trang 8
O SI M odel
Application
Presentation
Session
Transport
Network
Data Link
Physical
TCP/IP M odel
Application Telnet FTP HTTP SMTP
DNS
Transport
TCP UDP
Internet
IP
Network
Data Link
Ethernet
Token
Ring
X.25
SLIP

ppp
Physical
Coax, Twisted Pairs, Fiber Optic, WMess
FTP - File Transfer Protocol
HTTP - HyperText Transfer Protocol
SMTP - Simple Mail Transfer Protocol
DNS - Domain Name System
TCP - Transmision Control Protocol
UDP - User Datagram Protocol
SLIP - Serial Line Internet Protocol
ppp - Point to Point protocol
Hình 1.1 Bộ giao thức trên mạng Internet
Khác với mô hình IOS/OSI, tầng liên mạng Internet sử dụng giao thức kết
nối mạng “không liên kết” (connectionless) IP (Internet Protocol) tạo thành hạt
nhân hoạt động của hệ thống truyền dẫn Internet. Cùng với các thuật toán định
tuyến tầng liên mạng IP cho phép kết nối một cách linh hoạt các loại mạng vật
lý khác nhau như : Ethenet, Token Ring, X25 dựa trên địa chỉ IP (bao gồm địa
chỉ phân mạng IP và địa chỉ của thiết bị cuối thuộc phân mạng đó). Giao thức
lièn mạng IP bao gồm các chức năng chính sau :
■ Định nghĩa cấu trúc gói dữ liệu là đơn vị cơ sở của dữ liệu được trao đổi trên
Internet.
■ Định nghĩa phương thức đánh địa chỉ IP.
Nguyễn Hoàng Linh
Điều khiển tắc nghẽn TCP
Trang 9
■ Truyền dữ liệu giữa mức vận chuyển và mức truy nhập mạng (Access
Network) .
■ Định tuyến đường đi của các gói dữ liệu trong mạng.
■ Thực hiện việc phân mảnh (fragmentation) và hợp nhất (reassembly) các
gói dữ liệu và nhúng / tách chúng trong các gói dữ liệu ở mức liên kết.

Giao thức trao đổi dữ liệu “có liên kết” (connection - oriented) TCP
(Transmision Control Protocol) được sử dụng ở tầng vận chuyển (transport
layer) để đảm bảo tin cậy và chính xác việc trao đổi dữ liệu giữa hai thực thể
cuối trong mạng dựa trên kiến trúc kết nối “không liên kết” ở tầng liên mạng IP.
Giao thức TCP phải quản lý đúng số tuần tự tính theo byte của dòng dữ liệu,
phải tối ưu hoá khả năng giải thông của mạng bầng cách giám sát và điều khiển
lưu lượng của dữ liệu từ thực thể gửi tới thực thể nhận. Cụ thể TCP phải làm
những công việc sau :
■ Đ ối th o ại k h i thu phát : Mỗi khi gửi một gói dữ liệu, bên nhận phải thông
báo nhận đúng theo một khoảng thời gian nhất định. Nếu không, gói dữ liệu
được coi là nhận sai và được phát lại.
■ K iểm tra dữ liệu thu, ph ấ t : Dữ liệu gửi được kiểm tra bằng một thuật toán
qui định. Byte kiểm tra (checksum) được gửi cùng với dữ liệu phát và được
so sánh với byte kiểm tra tính lại khi thu. Trong trường hợp sai lệch có nghĩa
là có lỗi đã xảy ra trên đường truyền, thực thể nhận thông báo kết quả nhận
cho thực thể gửi và yêu cầu phát lại.
■ K iểm tra s ố tuần tự : Do các gói TCP được chuyển thành các gói IP và các
gói IP có thể đến đích không theo thứ tự phát (IP là giao thức không có kết
nối - connection less) nên thực thể TCP nhận phải lập lại trật tự các gói dữ
liệu thu được và huỷ bỏ các gói dữ liệu trùng lặp khi cần và chuyển các gói
dữ liệu đó theo đúng trật tự phát cho các ứng dụng.
■ Đ iều khiển lưu lượng : Mỗi thực thể của kết nối TCP đều có một vùng đệm
hạn chế. Thực thể TCP nhận chỉ cho phép thực thể phát gửi một lượng dữ
Nguyễn Hoàng Linh
Điều khiển tắc nghẽn TCP
Trang 10
liệu đủ với vùng đệm thu của mình. Điều này cho phép ngăn cản thực thể
TCP gửi phát nhanh, làm tràn vùng đệm của thực thể TCP nhận chậm.
Các giao thức hỗ trợ ứng dụng như truy cập từ xa (Telnet), truyền tệp (FTP),
dịch vụ World Wide W eb (H TTP), thư điện tử (SM TP), dịch vụ tên miền

(DNS) không chỉ tích hợp các dịch vụ của các tầng chức năng như tầng phiên
(session), tầng thể hiện (presentation), và tầng ứng dụng (application) trong một
thực thể thống nhất mà còn được cài đặt phổ biến như là những bộ phận cấu
thành của các hệ điểu hành thông dụng như U N IX (của nhiều nhà cung cấp
khác nhau), Windows 9X /N T, Novell Netware
Chi tiết về bộ giao thức TCP/IP cũng như một số giao thức điều khiển và
nhất là giao thức TC P được trình bày chi tiết trong [Loi99, Ste94, Pos81 ].
1.1.2 Điều khiển lưu lượng và tắc nghẽn số liệu trên mạng TTMT
Như đă trình bày ở trên, mạng TTM T đầu tiên trên thế giới là mạng
APARNET được thiết kế và xây dựng trên cơ sở công nghệ chuyển mạch gói.
Kỹ thuật chuyển mạch gói cho phép chuyển tiếp dữ liệu giữa các thiết bị cuối
trôn cơ sở chia chúng thành các gói có độ dài thay đổi và chuyển dữ liệu qua
các đoạn đường khác nhau trong hệ thống truyền dẫn. Đ ặc trưng của công nghệ
chuyển mạch gói là :
■ Dữ liệu được chuyển tiếp trên cơ sở các gói có độ dài khác nhau.
* Phần tiêu đề (header) chứa các dữ liệu điều khiển cần thiết cho việc chọn
đường và chuyển tiếp chính xác đến địa chỉ đích. Hệ chuyển mạch nhận toàn
bộ gói dữ liệu, lưu trữ tạm thời trong bộ nhớ đệm để phân tích dữ liệu điều
khiển, chọn đường và thực hiện chuyển tiếp. Kỹ thuật này còn được gọi là
"lưu và chuyển" (store-and-forward).
Nguyễn Hoàng Linh
Điều khiển tắc nghẽn TCP
Trang 11
■ Công nghệ chuyển mạch gói có cả hướng kết nối (connection oriented) trên
cơ sở các kênh truyền dẫn ảo và không hướng kết nối (connectionless) trên
cơ sở các gói dữ liệu độc lập (datagram).
Mạng chuyển mạnh gói bắt nguồn từ hiệu quả của việc chia xẻ tài nguyên
mạng cho những người sử dụng khác nhau. M ột kết nối mạng có thể được sử
dụng cho việc truyền dữ liệu giữa nhiều cặp nút mạng nguổn/đích khác nhau.
Tron? trường hợp này thì cả dung lượng vùng đệm của nút cũng như bộ vi xử lý

trung tâm CPU đểu được chia xẻ để điều tiết các thiết bị truyền thông của các
cặp nút mạng này. Nói chính xác là việc chia xẻ tài nguyên mạng là một đặc
tính đặc trưng của mạng chuyển mạnh gói, và do đó nó có thể dẫn đến những
vấn đề tắc nghẽn trên mạng.
Chúng ta có thể hiểu vấn đề đơn giản như sau : tắc nghẽn xuất hiện khi mà
tổng các yêu cầu vé tài nguyên vượt quá khả năng cho phép. Ta lấy một ví dụ :
giao thông trên đường cao tốc ở những giờ cao điểm. Có những thời điểm lưu
lượng xe cộ vượt quá giới hạn mà đường cao tốc cho phép gây hậu quả tắc
nghẽn giao thông. Trong một số trường hợp thì việc nâng cấp và mở rộng đường
xá không phải là một giải pháp kinh tế, bằng chứng là tại những giờ không cao
điểm thì đường cao tốc lại không được sử dụng hết công suất. Giải pháp này chỉ
có hiệu quả khi các giờ cao điểm kéo dài suốt trong một ngày. Mạng máy tính
cũng giống như hệ thống đường cao tốc, việc lập chương trình tổng thể cho
những nhu cầu được chia xẻ là không khả thi. Chính vì lẽ đó mà chúng ta phải
đương đầu với những vấn để tắc nghẽn trên mạng và làm thế nào để giảm đến
mức tối thiểu tác động xấu này.
Để làm được việc đó, mạng được thiết kế và xử lý theo cách khả năng xảy
ra tắc nghẽn thấp. Như đã nó ở trên, mục đích xây dựng một mạng không tắc
nghẽn, phần nhiểu không thể thực hiện được. Hiện tại chúng thường được xây
Nguyễn Hoàng Linh
Điều khiển tắc nghẽn TCP
Trang 12
dựng theo chiều hướng thiết kế các thủ tục cho phép hê thống khôi phục từ một
trạng thái đã bị tắc nghẽn.
Hình ỉ.2 : Thông lượng mạng ỉầ một hàm của Tải đề xuất
Hình 1.2 mô tả hành vi chung của th ôn g lượng mạng, đó là tốc độ mà tại đó
mạng chuyển giao những gói dữ liệu như là một hàm của tải đ ề xu ất hoặc tốc
độ mà ở đó những gói dữ liệu (mới và phát lại) được đưa vào mạng. Trong điều
kiện lý tưởng, mạng phải chuyển giao tất cả các gói dữ liệu được yêu cầu chừng
nào mà tải để xuất ở dưới mức khả năng cho phép của mạng. Khi nào tải đề

xuất vượt quá khả năng đó, mạng phải tiếp tục chuyển giao các gói dữ liệu với
đúng khả năng của nó. Đường cong được gán nhãn id e a l (lý tưởng) phản ánh
khả năng này.
Trong thực tế, nếu mạng không được điều khiển, mạng sẽ chuyển giao tất cả
tải đ ề xuất (ứng với trường hợp lý tưởng) chỉ cho những gía trị của tải đ ề xuất
dưới một mức nhất định. Khi tải đ ề xu ất tăng bên ngoài điểm này, thông lượng
thực tế (mặc dù vẫn còn tăng như là một hàm của tải đ ề xuất ) bắt đầu đi trệch
khỏi đường “lý tưởng“. Trong khi tải đ ề xuất tăng thêm nữa trong một mạng
không có điều khiển, thông lượng bắt đầu giảm (xem Hình 1.2). Lưu lượng
mạnc đề xuất càng lớn, nó sẽ chuyển giao dữ liệu càng nhỏ.
Nguyễn Hoàng Linh
Điều khiển tắc nghẽn TCP
Trang 13
Những thủ tục diều khiển lưu lượng và tắc nghẽn s ố liệu được sử dụng để
đảm bảo một nút mạng nguồn không làm tràn một nút mạng đích với quá lun
lượng mà nó cho phép (có thể xử lý). Sau đây là tóm tắt việc phân loại điều
khiển lưu lượng và tắc nghẽn số liệu trong mạng TTM T nói chung :
Điéu khiển lưu lương
■ E nd-to-end : đảm bảo một máy chủ (host) nguồn gửi các gói dữ liệu tới máy
chủ đích với tốc độ không vượt quá tốc độ mà máy chủ đích nhận các gói dữ
liệu đó.
■ H op-by-hop : điểu khiển tốc độ lưu lượng dữ liệu được thực hiện giữa hai
nút liên tiếp nhau trên đường từ một máy chủ nguồn tới một máy chủ đích.
Diều khiển tác nghẽn được sử dụng để đảm bảo mạng là một khối thống
nhất không thể được yêu cầu truyền quá số lượng dữ liệu hơn là nó có khả năng
xử lý :
■ Truy cập m ạng (network access) : Các thủ tục này được sử dụng để điều
khiển tổng lưu lượng mà một máy chủ có thể đưa vào mạng con
(subnetwork).
* Cấp p h át vùng đệm (buffer allocation) : Các thủ tục cấp phát vùng đệm được

sử dụng chuyên biệt cho việc bảo vệ dung lượng bộ đệm của một nút chuyển
tiếp (có nghĩa ngăn ngừa trạng thái bế tắc).
Thường thì các thủ tục điều khiển lưu lượng được sử dụng để trợ giúp cho
các thủ tục điều khiển tắc nghẽn và ngược lại.
Nguyễn Hoàng Linh
Điều khiển tắc nghẽn TCP
Trang 14
1.1.3 Điều khiển tắc nghẽn số liệu TCP trong mạng Internet
Việc điều khiển lưu lượng và tắc nghẽn trên mạng Internet về nguyên tắc
cũng giống như các mạng dựa trên cơ sở chuyển mạch gói như đã mô tả ở trên.
Theo Hình 1.2, dung lượng của một hệ thống truyền dẫn là khả năng vận
chuyển dữ liệu trên hệ thống truyền dẫn đó. Trong trường hợp lý tưởng (không
có lỗi truyền dẫn), lưu lượng dữ liệu thực sự chuyển qua hệ thống truyền dẫn,
còn gọi là thông lượng (throughput), tăng tuyến tính với lưu lượng dữ liệu
chuyển vào hệ thống truyền dẫn, còn gọi là tải để suất (offered load) cho đến
khi đạt được dung lượng cực đại của chính hệ thống truyền dẫn đó. Hệ thống
truyền dẫn ở đây chính là Hệ thống trung gian (Intermediate Subsystem) được
mô tả trong trong Hình 1.3.
Hình Ị. 3 : Môi trường cơ chế cửa sổ hoạt động
Trên thực tế, do ảnh hưởng của các điều kiện môi trường, dẫn đến lỗi truyền
dẫn và các biện pháp truyền lại để khắc phục lỗi. Lưu lượng dữ liệu thực sự
được chuyển qua hệ thống truyền dẫn, với các kỹ thuật điều khiển lưu lượng tối
ưu, chỉ có thể tiệm cận khả năng vận chuyển lý tưởng của hệ thống truyền dẫn
(Hình 1.2). Nếu không có kỹ thuật điều khiển lưu lượng dữ liệu tốt, khi lưu
lượng chuyển vào hệ thống truyền dẫn thì có thể xảy ra trường hợp lỗi truyền
dẫn tăng (do tràn bộ đệm thu trong các hệ chuyển mạch dẫn đến mất cả gói dữ
liệu chẳng hạn), dữ liệu phải được phát lại nhanh, khiến lưu lượng dữ liệu thực
sự được chuyển qua hệ thống truyền dẫn giảm nhanh chóng : hiện tượng tắc
nehẽn dữ liệu xuất hiện. Trường hợp xấu nhất có thể xảy ra là hệ thống truyền
Nguyễn Hoàng Linh

Điéu khiển tắc nghẽn TCP Trang 15
dẫn bị sụp đổ hoàn toàn; không một gói dữ liệu nào được thực sự chuyển qua hệ
thốns truyền dẫn.
Một số nguyên nhân chính dưới đây làm dữ liệu chuyển tiếp bị mất, buộc
các thực thể giao thức ở mức tương ứng phải kích hoạt việc xử lý lỗi bằng cách
phát lại dữ liệu bị mất, dẫn đến hiện tượng tắc nghẽn dữ liệu như mô tả ở trên.
■ Công suất tính toán của hệ thống chuyển mạch không đáp ứng được yêu cầu
nhận, phân tích, quyết định và chuyển tiếp dữ liệu khi lưu lượng dữ liệu cần
được chuyển tiếp trong mạng tăng.
■ Dữ liệu ở nhiều kênh vào cùng được chuyển tiếp tới một kênh ra.
■ Dung lượng bộ đệm thu nhỏ không đủ để lưu giữ tạm thời các gói dữ liệu
trước khi có quyết định chuyển tiếp.
Để khắc phục, người ta đề ra các biện pháp hạn chế lưu lượng dữ liệu cần
chuyển tiếp, phù hợp với khả năng xử lý và chuyển tiếp của hệ thống truyền
dẫn:
■ Cung cấp đủ dung lượng bộ nhớ đệm cho các hệ thống chuyển mạch.
* Phân chia bộ nhớ đệm hợp lý cho các kênh vào/ra. Cho phép loại bỏ sớm dữ
liệu vào khi không có khả năng lưu giữ tạm thời và xử lý.
■ Hạn chế lưu lượng dữ liệu ở ngay đầu vào của hệ thống truyền dẫn.
■ Điều khiển lưu lượng dữ liệu (ví dụ bằng cơ chế cửa sổ) để tránh xảy ra mất
dữ liệu, ngăn chặn khả năng xảy ra hiện tượng tắc nghẽn dữ liệu.
Nội đung của bài luận văn này chỉ tập chung vào một số thuật toán điều
khiển tắc nghẽn số liệu của giao thức TCP trong mạng Internet. Sau đây chúng
ta sẽ trình bày các cơ chế điều khiển lưu lượng và tắc nghẽn số liệu của TCP.
Nguyễn Hoàne Linh
Điều khiển tắc nghẽn TCP
Trang 16
Cơ chế cửa sổ động
Cơ chế cửa sổ là một trong các phương pháp điều khiển lưu lượng và tắc
nghẽn dữ liệu trong mạng TTM T. Đ ộ lớn cửa sổ chính bằng số lượng gói dữ

liệu được gửi liên tục mà không cần chờ thông báo trả lời về kết quả các gói dữ
liệu đó. Ví dụ nếu độ lớn cửa sổ w =3 thì sau khi gửi 3 gói dữ liệu liên tiếp
nhau, thực thể gửi phải chờ trả lời về kết quả nhận 3 gói dữ liệu nói trên, trước
khi gửi 3 gói dữ liệu tiếp theo.
Độ lớn cửa sổ quyết định hiệu suất trao đổi dữ liệu trong mạng. Nếu chọn độ
lớn cửa sổ cao thì có thể gửi được nhiều dữ liệu trong cùng một đơn vị thời gian.
Một khi việc truyền dữ liệu có lỗi, rõ ràng trong trường hợp này dữ liệu gửi lại
lớn và do đó hiệu quả sử dụng đường truyền thấp.
Giao thức TCP cho phép thay đổi độ lớn cửa sổ một cách động, phụ thuộc
vào độ lớn bộ đệm thu của thực thể nhận TCP. Để thực hiện cơ chế cửa sổ động,
TCP đảm bảo :
■ Trả lời về số tuần tự thu tiếp theo trong trường A CK, nghĩa là khẳng định
tổng số byte nhận đúng cho đến thời điểm gửi gói trả lời này.
■ Thông báo về tổng số byte có thể nhận được tương ứng với độ lớn bộ đệm
thu.
Cơ chế phát lại thích nghi
Để đảm bảo kiểm tra phát hiện và khắc phục lỗi trong việc trao đổi dữ liệu
qua mạng diện rộng, được kết nối từ nhiều mạng khác nhau, TCP phải có cơ
chế đồng hồ kiểm tra phát (time-out) và cơ chế phát lại (retransmission) mểm
dẻo thay đổi phụ thuộc vào thời gian trễ thực của môi trường truyền dẫn cụ thể.
Thời gian trễ toàn phần R T T (round-trip time), được xác định từ thời điểm phát
gói dữ liệu cho đến khi nhận được trả lời về kết quả nhận được của thực thể đối
Nguyễn Hoàng Linh
Điểu khiển tắc nghẽn TCP
Trang 17
tác (Hình 1.4), là yếu tô' quyết định giá trị của đồng hồ kiểm tra phát Toul. Rõ
ràng Timl phải lớn hơn hoặc bằng RTT.
Cơ chế phát lại thích nghi dựa trên việc xác định thời gian trễ toàn phần RTT
theo thời gian . Bằng việc sử dụng các hàm xác định thời gian của hệ điều hành,
hoàn toàn xác định được R TT của một kết nối TCP tại các mốc thời gian nhất

định [JA C88],
Cơ chế điều khiển tắc nghẽn dữ liệu
Hiện tượng tắc nghẽn dữ liệu thể hiện trước hết ở việc gia tăng thời gian trẻ
của dữ liệu khi chuyển qua mạng. Để hạn chế vấn để này, người ta điều khiển
lưu lượng dữ liệu trao đổi dựa trên việc thay đổi độ lớn cửa sổ phát. Có 4 quá
trình để điểu khiển tấc nghẽn dữ liệu : "Khởi động chậm " (slow start), "Tránh
tắc nghẽn" (congestion avoidance), "Phát lại nhanh" (fast retransmit), "Phục hổi
nhanh" (fast recovery). Việc nghiên cứu, phân tích và mô tả thuật toán các quá
trình này là một phần nội dung chính của bài luận văn và được trình bày chi tiết
troníĩ chương 2.
Data
RTT
Hình ỉ.4 : Thời gian trễ toàn phần RTT
Nguyễn Hoàng Linh
Điều khiển tắc nghẽn TCP Trang 18
1.2 Phân tích đánh giá hiệu suất
1.2.1 Sự cần thiết
Trong những năm gần đây các mạng máy tính đã trải qua một thời kỳ phát
triển nhanh chóng. Với sự phát triển đó không tránh khỏi phát sinh một số vấn
đề
về thất thoát dữ liệu trên mạng. Chẳng hạn như các cổng Internet nhìn chung
thất thoát khoảng 10 % các gói dữ liệu được gửi đến với lí do là vùng đệm cục
bộ bị tràn. Theo sự điều tra nghiên cứu về một số vấn để đã chỉ ra rằng nhiều
nguyên nhân nằm trong các sự thực hiện giao thức ở tầng vận chuyển (transport
layer) có thể dẫn đến sự ùn tắc trên mạng. Những thuật toán được bắt nguồn từ
ý tưởng của việc đạt được sự ổn định của mạng bởi sự bắt buộc kết nối tuân
theo nguyên tắc bả o toàn c ấ c g ó i dữ liệu. Chúng ta sẽ chỉ ra các thuật toán bắt
nguồn từ nguyên lý này và tác động của nó đối với việc giải quyết vấn đề tắc
nghẽn trên mạng như thế nào.
1.2.2 Các phương pháp

Để phân tích và đánh giá hiệu suất các thuật toán điều khiển lưu lượng và tắc
nghẽn sô' liệu TCP, nói chung có nhiều cách đánh giá. Một trong những cách
mà các trường đại học , các viện nghiên cứu cũng như một số tổ chức và cá
nhân vẫn dùng để nghiên cứu là phương pháp mô phỏng bằng một chương trình
máy tính. Với một hệ chương trình mô phỏng, một tổ chức hay cá nhân không
cần phải đầu tư nhiều lấm vào một hệ thống thiết bị tốn kém mà vẫn có khả
năng trắc nghiệm và đánh giá hiệu quả công trình nghiên cứu của mình xem có
khả thi với thực tế hay không. Trong bài luận văn này, chúng ta sẽ sử dụng một
hệ mô phỏng mạng máy tính có tên NS, sẽ được giới thiệu ở phần sau. Sau khi
bốn thuật toán cơ sở điều khiển tắc nghẽn số liệu TCP được nghiên cứu và tìm
hiểu, chúng được kết hợp với nhau để tạo ra từng thuật toán điều khiển tắc
Nẹuyễn Hoàng Linh
Điéu khiển tắc nghẽn TCP
Trang 19
nẹhẽn số liệu TCP tổng thể Tahoe-, Reno, New-Reno-, và SA CK-TCP. Các
thuật toán này được mô phỏng trên NS và hệ thống sẽ đưa ra các đồ thị mô
phỏng tương ứng. Với các đồ thị của bốn thuật toán trên, chúng ta sẽ so sánh và
đánh giá hiệu suất của chúng. Phần này sẽ được trình bày chi tiết trong chương
3.
1.3 Mô phỏng máy tính
Trong việc xây dựng một hệ thống mạng TTM T đòi hỏi rất nhiều tài nguyên,
cho nên khống phải tổ chức hoặc các nhân nào cũng có thể xây dựng một hệ
thống như thế để phục vụ cho việc nghiên cứu. Để tiếp cận với công việc nghiên
cứu, đánh giá hiệu suất, tạo các giao thức phù hợp với thực tiễn, một trong
những cách đơn giản nhưng không kém phần hiệu quả là dùng một phần mềm
để mô phỏng hệ thống mạng TTM T. V iệc tìm hiểu và ứng dụng một phần mềm
mô phỏng hệ thống mạng là rất cần thiết và thực tế đối với việc nghiên cứu về
mạng máy tính, là một công cụ hỗ trợ đắc lực trong giai đoạn phân tích và thiết
kế hệ thống. Nó giúp chúng ta hiểu rõ và khảo sát được cơ sở lý thuyết, chứng
minh được tính đúng đắn của các phương án giả thiết, những mô hình mới được

để ra, không cần chi phí tốn kém mà vẫn có thể tiến hành nghiên cứu một cách
độc lập và hiệu quả. Việc xây dựng các chương trình mô phỏng đã được nhiểu
trường đại học và các tổ chức trên thế giới thực hiện. Hệ mô phỏng máy tính NS
mà ta sử dụng trong phạm vi bài luận văn này là một công cụ tốt và hiệu quả để
thực hiện trắc nghiệm và đánh giá một số thuật toán điều khiển tắc nghẽn số
liệu TCP được đề cập ở phần trên.
Hệ thống mô phỏng NS
NS là hệ mô phỏng máy tính được xây dựng và phát triển bởi dự án VINT
của phòng thí nghiệm quốc gia Lawrence Berkeley National Laboratory. NS là
Nguyễn Hoàng Linh
Điểu khiển tắc nghẽn TCP
Trang 20
một hệ mô phỏng có cấu trúc hướng đối tượng. Nó được xây dựng trên hai ngôn
ngữ C + + và Otcl và có thể được mở rộng bởi người sử dụng (người sử dụng có
thể lập trình được trên nền của hệ mô phỏng NS). Với cách tiếp cận này thì ta
có thể coi mỗi một mô phỏng như một chương trình hơn là các mô hình cứng
nhắc, tĩnh, không thể thay đổi. Một mô phỏng gồm các đối tượng có thể cấu
hình tuỳ ý để có thể đạt được mục đích mô phỏng đề ra.
Do vậy những người thiết kế NS đã không chọn một ngôn ngữ duy nhất để
xây dựng môi trường mô phỏng, bởi có những đòi hỏi khác nhau về mục đích
của việc mô phỏng. Khi cần mô phỏng những tầng thấp của mạng máy tính, xử
lý ở mức độ byte hay tiêu đề (header) các gói tin thì cần đòi hỏi một hiệu quả
tính toán cao, do đó nhân của hệ mô phỏng được viết bằng c++ . Còn phần định
nghĩa, cấu hình và điều khiển mô phỏng được viết bằng ngôn ngữ script Tel.
Cách tiếp cận này mang lại hiệu quả rất cao vì nó chia mục đích của việc mô
phỏng thành những phần nhỏ và giải quyết chúng bằng những ngôn ngữ phù
hợp. Nó cung cấp cho người lập trình khả năng sử dụng dễ dàng hơn, mềm dẻo
và linh hoạt hơn.
Vì C ++ là ngôn ngữ hướng đối tượng mà Tel thì không, nên người ta phải
xây dựng những đối tượng m acro bậc cao cho phù hợp với các lớp của c++. Sau

này để đạt được hệ thống mềm dẻo và mạnh hơn, trong phiên bản thứ hai, NS đã
thay Tel bằng Otcl (một Tel hướng đối tượng) . V à để có sự gắn kết giữa hai
ngôn ngữ đó, người ta cần có một ngôn ngữ làm cầu nối là TclC l (ngôn ngữ mở
rộng của Tel). Với sự thay đổi đó thì các đối tượng macro đã được thay bằng
các lớp Otcl và trở nên dễ sử dụng hơn nhiều.
NS được nhiều cá nhân và tổ chức ở nhiều nơi trên thế giới sử dụng để phục
vụ cho việc học tập và nghiên cứu mạng máy tính. NS hỗ trợ các khía cạnh
khác nhau trong mạng máy tính. Từ các lớp mô phỏng cơ sở như các Node, các
liên kết tạo thành Topology của mạng, các gói tin (hay gói dữ liệu là một), việc
Nguyễn Hoàng Linh
Điều khiển tắc nghẽn TCP
Trang 21
chuyển tiếp các gói tin, độ trễ truyền dẫn rồi đến lớp dùng để phân kênh các gói
tin nhàm mục đích hướng các gói tin đến các trạm xác định, các Agent xác
định. Rồi đến việc quản lý các hàng đợi tại các trạm trung chuyển, lập lịch
trình cho các gói tin, các thuật toán tránh tắc nghẽn, nâng cao hiệu suất truyền
tin. Trong NS người dùng có thể mô phỏng các mạng LAN, mạng không giây,
thông tin vệ tinh, rồi các ứng dụng như Ftp, Http, W ebcache, Telnet, dựa
trên các Agent của tầng vận chuyển, trên các mô phỏng vể kỹ thuật chọn
đường, các giao thức tầng vận chuyển
Chi tiết về Hệ thống mô phỏng NS, xin mời xem trong tài liệu [Hun2001].
Nguyễn Hoàng Linh
Điều khiển tắc nghẽn TCP
Trang 22
CHUƠNG II
C Á C T H U Ậ T T O Á N Đ IỀ U K H IỂ N t ắ c n g h ẽ n T C P
Chương này mô tả chi tiết bốn thuật toán điều khiển tắc nghẽn TCP có quan
hệ khăng khít với nhau : “Khởi động chậm” (slow start), “Tránh tắc nghẽn”
(congestion avoidance), “Phát lại nhanh” (fast retransmit) và “Phục hổi
nhanh” (fast recovery). Các thuật toán điều khiển tắc nghẽn số liệu TCP được

phát minh trong [Jac88] và [Jac90].
Để thực hiện việc nghiên cứu, phân tích và mô tả chi tiết bốn thuật toán trên
trước tiên chúng ta phải đưa ra một số định nghĩa, những khái niệm và qui ước
mà chúng ta sẽ sử dụng trong suốt phần còn lại của bài luận văn.
2.1 M ột số định nghĩa và khái niệm quan trọng
SEG M ENT : Một segment là một gói dữ liệu (gói tin) TCP/IP hay một gói
ACK trả lời nào đó (hoặc cả hai).
SENDER M A X IM U M SEGM EN T SIZ E (SM SS) : SWISS là độ dài tối đa của
một segment (gói dữ Liệu) mà thực thể gửi có thể truyền đi. Giá trị này được dựa
trên “đơn vị truyền tối đa” (the maximum transmission unit) của mạng, thuật
toán phát hiện đường đi M TU [M D 90], R M SS (xem nội dung tiếp sau), hay các
Nguyễn Hoàng Linh
Điểu khiển tắc nghẽn TCP Trang 23
yếu tố khác. Độ lớn này không bao gồm các tiêu đề TCP/IP và các tuỳ chọn
(options).
R E C EIV E R M A XIM U M SEGM ENT SIZE (RM SS) : RM SS là độ lớn của
một segment lớn nhất mà thực thể nhận có thể (sẵn sàng) nhận. Giá trị này được
định rõ trong sự lựa chọn M SS và được gửi bởi thực thể nhận trong quá trình
khởi tạo kết nối. Hoặc nó sẽ là 536 bytes (giá trị được chấp nhận do qui định
của các mạng vật lý) nếu M SS không được lựa chọn [Bra89]. Kích thước này
không bao sồm các tiêu đề TCP/IP (TCP/IP headers) và các tuỳ chọn (options).
FU LL-SIZED SEGM ENT : M ột g ó i dữ liệu chứa độ dài tối đa của các byte
dữ liệu được phép (ví dụ như là một g ó i d ữ liệu chứa SM SS byte dữ liệu). Ta
viết ngắn gọn là gói-tối-đa.
R E C E IV E R W INDOW (rwnd) : Cửa sổ thu của thực thể nhận được thông
báo mới đây nhất (viết ngắn gọn : cửa s ổ thu).
CONGESTION W INDOW (cwnd) : Một biến trạng thái TCP, nó qui định
tổng số dữ liệu mà một TCP có thể truyền hay còn gọi là cửa sổ tắc nghẽn. Vào
bất cứ thời điểm quy định đã cho nào, một TCP không được gửi dữ liệu với một
số tuần tự ỉón hơn tổng của số tuần tự đã được trả lời lớn nhất và giá trị tối thiểu

của c wild và rwnd.
INITIAL W IN DOW (IW ) : Cửa sổ khởi tạo là độ lớn của cửa sổ tắc nghẽn
(cwnd) của thực thể gửi sau khi phương thức "bắt tay 3 bước" được hoàn tất
[Loi99].
LOSS W INDOW (LW ) : Cửa sổ mất LW là độ lớn của cửa sổ tác nghẽn
(cwnd) sau khi một thực thể gửi TCP phát hiện thấy mất việc sử dụng đồng hồ
phát lại của nó.
Nguyễn Hoàng Linh
Điều khiển tắc nghẽn TCP Trang 24
R E STA R T W IN D OW (R W ) : R W là độ lớn của cửa sổ tắc nghẽn (cwnd)
sau khi một TCP khởi động lại sự truyền sau một thời gian "nghỉ".
FLIGH T SIZE : Số lượng hay tổng số dữ liệu đã được phát đi nhưng còn
chưa nhận được các gói ACK trả lời.
2.2 Các thuật toán điếu khiển tắc nghẽn
Nội dung bốn thuật toán điều khiển tắc nghẽn “Khởi động chậm”, “Tránh
tắc nghẽn”, “Phát lại nhanh” và “Phục hổi nhanh” được mô tả trong [Jac88] và
[Jac90]. Các thuật toán nảy sinh từ một quan sát: Lưu lượng trên một kết nối
TCP nên tuân thủ một nguyên lý b ả o toàn c á c g ó i dữ liệu (conservation of
packets). Và nếu nguyên lý này được tuân thủ, thì vấn đề tắc nghẽn có thể được
loại bỏ. Như vậy điều khiển tắc nghẽn kéo theo việc tìm ra những chỗ mà nó vi
phạm sự bảo toàn.
Từ nguyên lý b ả o toàn cá c g ó i d ữ liệu chúng ta muốn ám chỉ đến một kết
nối cân bằng (in equilibrium), có nghĩa hệ thống chạy ổn định với một cửa sổ
lớn nhất có thể khi truyền. Chúng ta hiểu b ả o toàn (conservative) ở đây là một
gói dữ liệu mới không được đưa vào mạng cho đến khi một gói dữ liệu cũ đã rời
khỏi mạng.
Có ba nguyên nhân dẫn đến việc không bảo toàn được các gói dữ liệu là :
( 1 ) Kết nối không đạt được tới sự cân bằng, hoặc
(2) Một thực thể gửi phát tiếp một gói dữ liệu trước khi một gói cũ đã rời khỏi
mạng, hoặc

(3) Sự cân bằng không thể đạt được do tài nguyên bị hạn chế (thiếu bộ nhớ
đệm chẳng hạn).
Nguyễn Hoàng Linh
Điẻu khiển tắc nghẽn TCP Trang 25
2.2.1 Các thuật toán “Khởi động chậm” và “Tránh tắc nghẽn”
"Khởi động chậm"
Các phiên bản TCP trước đây bắt đầu một kết nối với việc thực thể gửi phát
nhiều gói dữ liệu một lúc vào mạng, cho đến khi đạt được kích thước cửa sổ đã
được thông báo bởi thực thể nhận (cửa sổ thu). Điều đó không có vấn đề gì khi
hai máy chủ (host) cùng nằm trên cùng một mạng LAN, và nếu có các bộ định
tuyến (router) và các liên kết tốc độ thấp giữa thực thể gửi và thực thể nhận thì
vấn đề có thể nảy sinh. Ở một số bộ định tuyến trung gian các gói dữ liệu khi
được vận chuyển qua phải xếp hàng (trong một hàng đợi) để chờ đến lượt, và
vấn đề rất có thể xảy ra là bộ định tuyến này bị tràn bộ nhớ đệm do không còn
đủ chồ để lưu giữ các gói dữ liệu tiếp theo. [JAC88] cho thấy cách tiếp cận này
có thể làm giảm thông lượng của một kết nối TCP.
Thuật toán để giải quyết vấn đề trên được gọi là "Khởi động chậm". Nó hoạt
động bởi việc quan sát tốc độ mà với nó thực thể gửi phát các gói dữ liệu mới
vào mạng cũng là tốc độ mà với nó các gói ACK trả lời được trả lại bởi thực thể
nhận.
Nguyền Hoàng Linh

×