Nghiên cứu phương pháp đánh giá và cải thiện hiệu năng giao thức TCP cho mạng máy tính - Pdf 25



ĐẠI HỌC QUỐC GIA HÀ NÔI
KHOA CÔNG NGHỆ NGUYỄN ĐÌNH VIỆT
NGHIÊN CỨU
PHƯƠNG PHÁP ĐÁNH GIÁ VÀ CẢI THIỆN HIỆU NĂNG
GIAO THỨC TCP CHO MẠNG MÁY TÍNH
LUẬN ÁN TIẾN SỸ TOÁN HỌC
HÀ NỘI – 2003

ĐẠI HỌC QUỐC GIA HÀ NÔI
KHOA CÔNG NGHỆ
*

1.2.1 Mô hình tham chiếu ISO OSI 9
1.2.2 Mô hình tham chiếu TCP/IP 12
1.3 Điều khiển lưu lượng và điều khiển tắc nghẽn 14
1.3.1 Cơ bản về điều khiển lưu lượng và điều khiển tắc nghẽn 14
1.3.1.1 Khái niệm 14
1.3.1.2 Điều khiển lưu lượng theo cơ chế cửa sổ trượt 15
1.3.1.3 Điều khiển tắc nghẽn 19
1.3.2 Điều khiển lưu lượng trong giao thức TCP 22
1.3.2.1 Giao thức TCP ban đầu 22
1.3.2.2 Nguyên lý “Bảo toàn các gói số liệu” và các nguyên nhân vi phạm 24
1.3.2.3 Khởi động chậm 27
1.3.2.4 Tính thời gian khứ hồi một cách thông minh 29
1.3.2.5 Tránh tắc nghẽn 32
1.4 Kết nối mạng không dây với Internet và các vấn đề nảy sinh 33
1.4.1 Các mạng truyền thông không dây số hiện đại 33
1.4.2 Các vấn đề nảy sinh khi kết nối với Internet 36
CHƯƠNG 2 CÁC PHƯƠNG PHÁP ĐÁNH GIÁ HIỆU NĂNG MẠNG 38
2.1 Giới thiệu 38
2.1.1 Tầm quan trọng của việc đánh giá hiệu năng mạng máy tính 38
2.1.2 Các độ đo hiệu năng mạng 39
2.1.3 Các phương pháp đánh giá hiệu năng mạng 40
2.2 Mô hình Giải tích 43
2.2.1 Quá trình Poisson và các tính chất của nó 45
2.2.2 Hàng đợi M/M/1 và một số kết quả 46
2.2.2.1 Xác suất trạng thái cân bằng của hàng đợi M/M/1 47
2.2.2.2 Đặc trưng thông lượng của hàng đợi M/M/1 hữu hạn 48
2.2.2.3 Kích thước trung bình của hàng đợi M/M/1 hữu hạn 49
2.2.2.4 Công thức Little L=λW và áp dụng để tính thời gian trễ trung bình 50
2.3 Mô phỏng mạng bằng chương trình máy tính 52
2.3.1 Ý tưởng xây dựng bộ mô phỏng mạng 52

4.2 Đặc tính lỗi của đường truyền không dây 90
4.3 Ảnh hưởng của lỗi đường truyền không dây lên hiệu năng của TCP 91
4.4 Các cơ chế cải thiện hiệu năng TCP trong mạng có đường truyền không dây 94
4.4.1 Che giấu phần mạng hay làm mất gói số liệu do lỗi đường truyền 94

4.4.1.1 Các giải pháp ở tầng Liên kết dữ liệu 94
4.4.1.2 Các giải pháp ở tầng giao vận 96
4.4.2 Thông báo rõ ràng về nguyên nhân mất gói số liệu (ELN và ECN) 97
CHƯƠNG 5 PHÁT LẠI CỤC BỘ THÔNG MINH VÀ SNOOP TCP 100
5.1 Phát lại cục bộ thông minh 100
5.1.1 Thuật toán tính thời gian hết giờ để phát lại cục bộ 103
5.1.2 Đồng hồ phát lại (Retransmission Timer) 104
5.2 Mô hình lỗi (Error Model) của đường truyền không dây 105
5.2.1 Mô hình lỗi đồng đều (Uniform Error Model) 106
5.2.2 Mô hình lỗi Markov hai trạng thái (Two-state Markov Error Model) 106
5.2.3 Mô hình lỗi Markov hai trạng thái cải tiến 107
5.3 Snoop TCP 108
5.3.1 Snoop data 109
5.3.2 Snoop ACKs 110
5.3.3 Phát lại cục bộ thông minh trong Snoop TCP 113
5.3.3.1 Chọn giá trị cho hệ số làm trơn của bộ lọc tính srtt 114
5.3.3.2 Chọn đơn vị thời gian đồng hồ phát lại (snoopTick) và cận dưới của rto 114
5.3.3.3 Đặt giá trị cận trên cho rto bằng cách giới hạn số lần rút lui (backoff) 115
5.4 Lập mô hình mạng mô phỏng để đánh giá hiệu năng của Snoop TCP 117
5.4.1 Thiết lập cấu hình mạng mô phỏng 118
5.4.2 Thiết lập giá trị các tham số của mô hình lỗi được cài đặt trong NS-2 119
5.5 Đánh giá hiệu năng của snoop TCP bằng mô phỏng 120
5.5.1 Xác định thời gian mô phỏng cần thiết 120
5.5.2 Đánh giá hiệu năng của Snoop TCP với các mức độ lỗi đường truyền khác nhau 121
5.5.3 Nghiên cứu ảnh hưởng của đồng hồ phát lại lên hiệu năng của Snoop TCP 123

vậy rõ ràng là không thích hợp, làm cho hiệu năng của TCP bị giảm rất trầm trọng.
Để cải thiện hiệu năng của TCP, người ta đã đề xuất và áp dụng nhiều phương
pháp khác nhau; tuy nhiên, có thể chia chúng làm hai loại.
Loại giải pháp thứ nhất: thực hiện che giấu sự mất gói số liệu không phải do tắc
nghẽn, làm cho các đường truyền chất lượng kém thể hiện ra trước bên gửi như các
đường truyền có chất lượng cao hơn, nhưng có dải thông nhỏ hơn. Theo các phương
pháp thuộc loại này, nói chung, bên gửi của kết nối TCP chỉ phát hiện được sự mất
gói số liệu gây ra do tắc nghẽn, do đó không cần phải sửa đổi các giao thức đã được

- 4 -
cài đặt tại bên gửi. Một số trong các công trình nghiên cứu đầu tiên theo hướng này
là [5], [16], [47], [48].
Loại giải pháp thứ hai: thực hiện cải tiến giao thức TCP bằng một số cơ chế, làm
cho bên gửi của kết nối TCP có khả năng phân biệt được nguyên nhân gây ra mất
gói số liệu, nhờ đó tránh được sai lầm dẫn đến làm giảm hiệu năng TCP rất trầm
trọng, đó là thực hiện thuật toán tránh tắc nghẽn khi không xảy ra tắc nghẽn. Các
phương pháp thuộc loại này đều đòi hỏi phải sửa đổi giao thức TCP trên các máy
tính kết nối Internet, kể cả các thiết bị định tuyến (router). Một số trong các công
trình nghiên cứu đầu tiên theo hướng này là [9], [35], [36].
Luận án đi sâu nghiên cứu loại giải pháp thứ nhất, không đòi hỏi phải thay đổi
giao thức TCP trên mạng Internet truyền thống.
Theo phương pháp I-TCP [5], [47], kết nối TCP được chia làm hai kết nối tại
trạm cơ sở, là cửa ngõ nối mạng Internet với mạng không dây; một kết nối đi qua
chặng không dây; kết nối kia đi qua phần mạng có dây. Phương pháp I-TCP cải
thiện được hiệu năng TCP, ưu điểm chính của nó là tính đơn giản; tuy nhiên nó có
nhược điểm rất lớn là mâu thuẫn với các cơ chế điều khiển kiểu đầu cuối - đầu cuối
của TCP, do đó có thể làm mất hoặc giảm tác dụng của các cơ chế này.
Phương pháp được đề xuất trong [48] là phát lại nhanh trong trường hợp kết nối
bị gián đoạn do sự chuyển cuộc gọi, nó cải thiện đáng kể hiệu năng của TCP; tuy
nhiên, phương pháp này có nhược điểm lớn là đòi hỏi phải sửa đổi giao thức liên

bằng mô phỏng của chúng tôi đã chỉ ra rằng, so với TCP thông thường, Snoop TCP
(chưa cải tiến) có thể cải thiện thông lượng đến hơn 400%, trong trường hợp mạng
WAN có đường truyền không dây. Với cùng mạng mô phỏng như vậy, Snoop TCP
có áp dụng đề xuất cải tiến của chúng tôi có hiệu năng cao hơn nữa, đạt tới hơn
150% so với Snoop TCP chưa cải tiến.

Mục đích chính của Luận án này là đóng góp vào các nghiên cứu phương pháp
đánh giá và cải thiện hiệu năng giao thức TCP cho mạng máy tính có đường truyền
không dây. Để thực hiện mục tiêu chính, chúng tôi còn nghiên cứu một số vấn đề
khác có liên quan trực tiếp, hỗ trợ cho nó, đó là:

- 6 -
1. Các cơ chế điều khiển lưu lượng và tắc nghẽn trong giao thức TCP.
2. Các cải tiến đối với cơ chế điều khiển lưu lượng và tắc nghẽn trong TCP.
3. Đặc tính lỗi của đường truyền không dây và các Mô hình lỗi (Error Model).
4. Phương pháp đánh giá hiệu năng mạng bằng mô hình Giải tích và mô phỏng.

Luận án gồm phần mở đầu, năm chương và kết luận. Nội dung chính của các
chương được trình bày tóm tắt dưới đây.
Chương 1: Các vấn đề cơ bản về điều khiển lưu lượng và tắc nghẽn trong giao
thức TCP; việc kết nối các mạng không dây với Internet và các vấn đề nảy sinh.
Chương 2 trình bày tầm quan trọng của việc đánh giá hiệu năng mạng, các độ đo
hiệu năng thông dụng và các phương pháp chính đánh giá hiệu năng mạng.
Chương 3 trình bày phương pháp đánh giá hiệu năng mạng bằng mô hình hàng
đợi. Trong mục 3.2, chúng tôi trình bày một kết quả nghiên cứu, sử dụng lý thuyết
Hàng đợi để tính toán định lượng hiệu năng hai cơ chế kiểm soát lỗi đầu cuối - đầu
cuối (end-to-end) và kiểm soát lỗi theo chặng (link-by-link). Thông qua việc so
sánh kết quả, chúng tôi đã rút ra được một số kết luận hữu ích, trong đó có một số
kết luận minh chứng cho tính hợp lý của giải pháp Snoop TCP.
Chương 4 trình bày các cải tiến trong cơ chế điều khiển lưu lượng của giao thức

Chủ nhiệm Khoa Công nghệ, Đại học Quốc gia Hà Nội, đã tạo cơ hội tốt để tác giả
được đến nghiên cứu khoa học tại một Đại học lớn của Hoa Kỳ trong thời gian đang
thực hiện luận án, từ tháng 2 đến tháng 8 năm 2002.
Tác giả xin bày tỏ lòng biết ơn chân thành đối với Đại học Cincinnati, Hoa kỳ, đã
tạo điều kiện thuận lợi để tác giả được đến tham gia các hoạt động nghiên cứu khoa
học như một thành viên của Trung tâm Tính toán Phân tán và Di động, Khoa Công
nghệ thông tin, Trường Đại học Công nghệ (Center for Distributed and Mobile
Computing, Department of Electrical and Computer Engineering and Computer
Science, College of Engineering, University of Cincinnati).
Tác giả xin bày tỏ lòng biết ơn sâu sắc đối với PGS. TS. Vũ Duy Lợi và PGS.
Nguyễn Quốc Toản đã tận tình hướng dẫn, chỉ bảo và cho nhiều lời khuyên quý báu
trong suốt quá trình tác giả thực hiện luận án.

- 8 -
CHƯƠNG 1 GIỚI THIỆU CHUNG
1.1 Sự phát triển của mạng Internet
Năm 1967, Robert L. G. đã đề xuất một mạng máy tính thí nghiệm, sau đó trở
thành mạng ARPANET (Advanced Research Projects Agency Network) của Bộ
Quốc phòng Mỹ. Ngay từ thời kỳ đầu, các nghiên cứu đã cho biết rằng, nếu sử dụng
kỹ thuật chuyển mạch gói cho ARPANET sẽ đem lại hiệu quả cao hơn các phương
pháp khác về nhiều phương diện: tính kinh tế, tính sẵn sàng sử dụng và tính hữu
dụng. Chính điều này đã thúc đẩy sự nghiên cứu về chuyển mạch gói và đến đầu
năm 1969, Bộ Quốc phòng Mỹ đã ký hợp đồng triển khai thực hiện mạng
ARPANET với hãng BBN (Bolt, Beranek, and Newman) có trụ sở đóng tại
Massachusetts. Đến tháng 9 năm 1969, mạng máy tính chuyển mạch gói đầu tiên
trên thế giới ra đời, sau đó đã phát triển rất nhanh chóng, kết nối mạng của các
trường đại học, các trung tâm nghiên cứu của chính phủ và của các hãng công
nghiệp trên khắp nước Mỹ. Mạng ARPANET cung cấp các dịch vụ truyền thông,
cho phép truy cập từ xa tới tất cả tài nguyên của hệ thống, do đó đem lại nhiều lợi
ích cho Bộ Quốc phòng Mỹ cũng như cho cộng đồng khoa học.

tuân theo các chuẩn. Người ta đã xây dựng nên các chuẩn như vậy, chúng còn được
gọi là mô hình tham chiếu, làm cơ sở chung cho các nhà thiết kế dựa vào khi thiết
kế mạng. Hai mô hình tham chiếu quan trọng là ISO OSI và TCP/IP sẽ được trình
bày ở các phần dưới đây.
1.2.1 Mô hình tham chiếu ISO OSI
Mô hình mạng máy tính này do Tổ chức Tiêu chuẩn Quốc tế ISO (International
Standard Organization) đề nghị năm 1983, được gọi là mô hình tham chiếu ISO OSI
(ISO Open Systems Interconnection Reference Model), thường được gọi ngắn gọn
là mô hình OSI. Đây là bước tiến đầu tiên tới sự chuẩn hoá quốc tế các giao thức
khác nhau về truyền thông, giải quyết việc kết nối các hệ thống mở, là các hệ thống
tuân theo các chuẩn được chỉ rõ, do đó các hệ thống này có khả năng truyền thông

- 10 -
với các hệ thống khác tuân theo các chuẩn giống nó. Mô hình OSI có bảy tầng,
được minh hoạ trên hình 1.1.

Hình 1.1 Mô hình tham chiếu OSI
Tầng Vật lý (Physical Layer). Tầng vật lý giải quyết các vấn đề ghép nối cơ khí,
điện và giao thức để có thể khởi tạo, duy trì và kết thúc các liên kết vật lý giữa các
thiết bị truyền thông. Tầng này liên quan đến việc truyền dòng bit giữa các máy
bằng kênh truyền thông vật lý, không xét đến ý nghĩa và cấu trúc của dòng bit.
Tầng Liên kết dữ liệu (Data Link Layer). Nhiệm vụ chính của tầng này là thiết
lập, duy trì, huỷ bỏ các liên kết dữ liệu, kiểm soát lỗi truyền, điều khiển lưu lượng,
điều khiển truy cập môi trường truyền thông.

- 11 -
Tầng Mạng (Network Layer). Tầng mạng phải giải quyết nhiều vấn đề phức tạp,
như: định tuyến, giao tiếp giữa các mạng và điều khiển tắc nghẽn (congestion
control); trong đó định tuyến là vấn đề quan trọng nhất.
Tầng Giao vận (Transport Layer). Tầng này thực hiện việc truyền tin, điều

“phong bì” để chứa trường dữ liệu. Header là phần đầu của mỗi đơn vị dữ liệu, chứa
các địa chỉ cần thiết để có thể gửi đơn vị này tới đích, ngoài ra, nó còn chứa các
thông tin điều khiển. Tại mỗi tầng của mô hình, đơn vị dữ liệu này thường có một
tên gọi riêng, chẳng hạn, tại tầng Liên kết dữ liệu, là khung tin (frame), tại tầng
mạng, là gói số liệu (packet), tại tầng giao vận, là phân đoạn (segment). Tuy nhiên,
trong rất nhiều tài liệu, người ta hay dùng một thuật ngữ chung là gói số liệu; chúng
tôi cũng sẽ sử dụng thuật ngữ gói số liệu theo nghĩa như vậy.
1.2.2 Mô hình tham chiếu TCP/IP
Hình 1.2 trình bày hai mô hình tham chiếu TCP/IP và OSI để tiện so sánh.

Hình 1.2 Mô hình tham chiếu TCP/IP và mô hình tham chiếu OSI
Tầng Internet
Tầng Internet đôi khi được gọi là tầng IP, có chức năng tương tự tầng mạng trong
mô hình OSI. Nhiệm vụ của tầng Internet là định tuyến gói số liệu, điều khiển lưu
lượng và điều khiển tắc nghẽn. Mỗi gói số liệu có thể đi đến đích theo các con
đường khác nhau; tại đích, thứ tự nhận các gói số liệu có thể khác với thứ tự lúc
chúng được phát đi từ nguồn, do đó tầng Giao vận trên nó phải giải quyết vấn đề
thứ tự các gói số liệu. Tầng Internet định nghĩa một khuôn dạng gói số liệu và giao
thức chính là giao thức IP.

- 13 -
Tầng giao vận
Tầng này phải được thiết kế sao cho các thực thể ngang hàng ở máy nguồn và
máy đích có thể truyền thông với nhau, tương tự như trong mô hình OSI. Tại tầng
này, người ta định nghĩa hai giao thức kiểu đầu cuối - đầu cuối là TCP
(Transmission Control Protocol) và UDP (User Datagram Protocol).
TCP là giao thức hướng kết nối, bảo đảm, nó vận chuyển dòng byte sinh ra từ
máy (nguồn) tới một máy tuỳ ý khác (đích) trong liên mạng mà không có lỗi. TCP
phân mảnh dòng byte từ các tầng trên đi xuống thành các gói số liệu riêng biệt rồi
chuyển từng gói số liệu này xuống cho tầng Internet. Tại máy đích, tiến trình TCP

triển khai thực hiện đúng đắn, nó có thể đưa mạng đến trạng thái bị tắc nghẽn, đó là
trạng thái khi lưu lượng đến mạng tăng lên, thông lượng vận chuyển của mạng lại
giảm đi. Thậm chí tình trạng tắc nghẽn có thể trầm trọng đến mức mạng bị nghẹt
hoàn toàn, thông lượng vận chuyển của mạng tụt xuống bằng không, trạng thái này
thường được gọi là deadlock [39], [41].
1.3.1 Cơ bản về điều khiển lưu lượng và điều khiển tắc nghẽn
1.3.1.1 Khái niệm
Điều khiển lưu lượng liên quan đến việc vận chuyển giữa một người gửi đã biết
nào đó và một người nhận. Nhiệm vụ của nó là đảm bảo rằng bên gửi có tốc độ
nhanh không thể tiếp tục truyền dữ liệu nhanh hơn mức mà bên nhận có thể tiếp thu
được. Điều khiển lưu lượng luôn luôn liên quan đến một sự phản hồi trực tiếp từ

- 15 -
phía người nhận đến người gửi để báo cho bên gửi về khả năng nhận số liệu thực
của bên nhận.
Điều khiển tắc nghẽn thực hiện nhiệm vụ đảm bảo cho mạng có khả năng vận
chuyển lưu lượng đưa vào, đó là một vấn đề toàn cục, liên quan đến hành vi của
mọi nút mạng, quá trình chứa và chuyển tiếp trong mỗi nút mạng và các yếu tố khác
có khuynh hướng làm giảm thông lượng của mạng.
Điều khiển lưu lượng và điều khiển tắc nghẽn là hai khái niệm khác nhau, nhưng
liên quan chặt chẽ với nhau. Điều khiển lưu lượng là để tránh tắc nghẽn, còn điều
khiển tắc nghẽn là để giải quyết vấn đề tắc nghẽn khi nó xuất hiện hoặc có dấu hiệu
sắp xảy ra. Trong thực tế triển khai thực hiện các thuật toán điều khiển lưu lượng và
điều khiển tắc nghẽn, nhiều khi cả hai thuật toán này cùng được cài đặt trong một
giao thức, thể hiện ra như là một thuật toán duy nhất, thí dụ trong giao thức TCP
[26], [27]. Trong nhiều tài liệu thuộc lĩnh vực mạng máy tính, hai khái niệm này
được sử dụng như nhau và được coi là đồng nghĩa. Trong các phần sau của Luận án
này, tác giả sẽ theo quan điểm đó, các vấn đề về điều khiển lưu lượng và điều khiển
tắc nghẽn sẽ được trình bày chung, với tên gọi điều khiển lưu lượng.
Các tầng có thể thực hiện điều khiển lưu lượng

Bảng 1.1 Định nghĩa các tham số
T
t
Thời gian truyền (transmit) một gói số liệu.
T
p
Thời gian truyền một biên nhận, là tín hiệu cho phép tiếp tục truyền.
τ
Thời gian trễ lan truyền.
W Kích thước cửa sổ, đơn vị là gói số liệu.
d
Thời gian từ khi bắt đầu truyền gói số liệu đầu tiên trong cửa sổ, cho đến khi
nhận được tín hiệu cho phép truyền tiếp.

Biên nhận từng gói số liệu
Theo cách quản lý này, mỗi khi nhận được một gói số liệu, bên nhận sẽ gửi một
biên nhận cho bên gửi. Cửa sổ gửi tương ứng với các gói số liệu đã gửi đi nhưng
chưa được biên nhận (hình 1.4a). Khi có một gói số liệu mới từ tầng trên chuyển
xuống để gửi đi, nó sẽ được gán số thứ tự lớn nhất tiếp theo, do đó mép trên của cửa

- 17 -
sổ gửi sẽ tăng thêm 1. Nếu cửa sổ tăng tới cực đại thì tiến trình truyền ở tầng trên bị
chặn lại, không thể truyền các gói số liệu xuống nữa, cho đến khi có chỗ trống trong
vùng nhớ đệm. Mỗi gói số liệu sau khi đến đích sẽ được bên nhận biên nhận một
cách riêng rẽ. Khi biên nhận về đến bên gửi, mép dưới của cửa sổ gửi sẽ được tăng
thêm 1, làm cho danh sách các gói số liệu đã truyền nhưng còn chờ biên nhận giảm
đi một phần tử, đồng thời vùng nhớ tương ứng với phần tử đó cũng được giải phóng
để cấp phát cho một gói số liệu mới (hình 1.4b, c). Bằng cách này, cửa sổ gửi luôn
ghi nhớ được danh sách các gói số liệu còn chưa được biên nhận. Vì các gói số liệu
trong cửa sổ gửi có thể bị hỏng hoặc mất trên đường truyền, nên bên gửi phải giữ lại

cũng có thể biên nhận các gói số liệu mà B gửi cho nó bằng cách trên.
• RNR 4: là gói số liệu điều khiển, B báo cho A rằng, lúc này nó không thể nhận
tiếp các gói số liệu của A, đồng thời biên nhận cho các gói số liệu có số thứ tự
nhỏ hơn hoặc bằng 3. Khi nhận được tín hiệu này, A sẽ phải ngừng gửi, chờ cho
đến khi nhận được tín hiệu cho phép gửi tiếp của B.
• RR 4: là gói số liệu điều khiển, B báo cho A rằng, lúc này nó sẵn sàng nhận tiếp
các gói số liệu của A, bắt đầu từ gói số 4.

- 19 -
Giả sử rằng bên gửi luôn có sẵn dữ liệu để gửi, còn bên nhận cũng gửi biên nhận
ngay sau khi nhận được gói số liệu cuối cùng trong cửa sổ nhận. Chúng ta có thể
tính được thông lượng trung bình lớn nhất có thể đạt được, dựa trên hình 1.6:
RR
e
d
WT
t
= (1-1)
với d = WT
t
+ T
p
+ 2τ và R là dung lượng đường truyền giữa A và B.

Hình 1.6 Điều khiển lưu lượng bằng cửa sổ trượt, biên
nhận ở cuối cửa sổ; kích thước cửa sổ W=3.
So với cách biên nhận từng gói số liệu, rõ ràng là số lượng biên nhận giảm đi, từ
một biên nhận/một gói số liệu, xuống còn một biên nhận/một cửa sổ. Thí dụ, nếu
kích thước cửa sổ W=8, thì số biên nhận giảm đi 8 lần. Tuy nhiên, chúng ta sẽ phải
trả giá bằng việc thông lượng truyền bị giảm đi. Kết luận này sẽ được làm sáng tỏ

phục bằng cách tăng kích thước hàng đợi (bộ nhớ) tại các nút mạng trong một
chừng mực nào đó là có ích, tuy nhiên, người ta đã chứng minh được rằng, tăng
kích thước hàng đợi quá một giới hạn nào đó sẽ không mang lại lợi ích gì, thậm chí
còn có thể làm cho vấn đề tắc nghẽn tồi tệ hơn. Đó là vì các gói số liệu sẽ bị hết giờ

- 21 -
ngay trong quá trình xếp hàng, bản sao của chúng đã được bên gửi phát lại rồi, làm
tăng số lượng gói số liệu phát lại trong mạng [1], [38], [41].
Tốc độ xử lý chậm của các nút mạng cũng là một nguyên nhân quan trọng gây
nên tắc nghẽn, bởi vì chúng có thể sẽ làm hàng đợi bị tràn ngay cả khi lưu lượng gói
số liệu đến nút mạng nhỏ hơn năng lực vận tải của đường truyền đi ra.
Các đường truyền dung lượng thấp cũng có thể gây ra tắc nghẽn. Việc tăng dung
lượng đường truyền nhưng không nâng cấp bộ xử lý tại nút mạng, hoặc chỉ nâng
cấp từng phần của mạng đôi khi cũng cải thiện được tình hình đôi chút, nhưng
thường chỉ làm cái “cổ chai”, nơi xảy ra tắc nghẽn, dời đi chỗ khác mà thôi. Giải
quyết vấn đề tắc nghẽn nói chung, cần đến các giải pháp đồng bộ.
Tắc nghẽn có khuynh hướng tự làm cho nó trầm trọng thêm. Nếu một nút mạng
nào đó bị tràn bộ đệm, gói số liệu đến sẽ bị loại bỏ, trong khi đó nút mạng bên trên,
phía người gửi, vẫn phải giữ bản sao của gói số liệu đã gửi trong hàng đợi, cho đến
khi hết giờ để phát lại. Việc phải giữ bản sao gói số liệu trong hàng đợi để chờ biên
nhận, cộng thêm việc có thể phải phát lại gói số liệu một số lần có thể làm cho hàng
đợi tại chính nút trên cũng có thể bị tràn. Sự tắc nghẽn lan truyền ngược trở lại phía
nguồn phát sinh ra gói số liệu.
Các giải pháp điều khiển tắc nghẽn
Vấn đề điều khiển tắc nghẽn có thể được giải quyết theo quan điểm của Lý
thuyết điều khiển. Theo cách tiếp cận này, có thể chia các giải pháp thành hai nhóm:
các giải pháp Vòng lặp mở (Open loop) và các giải pháp Vòng lặp đóng (Closed
loop). Theo các giải pháp vòng lặp mở, tắc nghẽn sẽ được giải quyết bằng việc thiết
kế tốt, đảm bảo sao cho tắc nghẽn không xảy ra. Một hệ thống như vậy phải có khả
năng quyết định khi nào thì nhận thêm các lưu lượng mới vào, khi nào thì loại bỏ

1.3.2.1 Giao thức TCP ban đầu
Giao thức TCP được xây dựng dựa trên các khái niệm được Cerf và Kahn đưa ra
đầu tiên [10]. Đó là giao thức hướng kết nối, kiểu đầu cuối - đầu cuối, tin cậy, được
thiết kế phù hợp với kiến trúc phân lớp các giao thức. Giao thức TCP cung cấp sự
truyền thông tin cậy giữa hai tiến trình chạy trên hai máy tính ở các mạng khác nhau

- 23 -
nhưng kết nối với nhau. Giao thức TCP có khả năng gửi và nhận liên tiếp các đơn vị
dữ liệu chiều dài có thể thay đổi, được gọi là phân đoạn (segment), mỗi phân đoạn
được đóng gói trong một “phong bì” và tạo nên một gói số liệu IP. Khi thiết kế TCP
người ta giả thiết rằng TCP sẽ nhận được các dịch vụ vận chuyển gói số liệu không
tin cậy (không có sự biên nhận cho các gói số liệu) do các giao thức ở các tầng bên
dưới cung cấp. Về nguyên tắc, TCP phải có khả năng hoạt động bên trên một miền
rất rộng các hệ thống truyền thông, từ các mạng có các đường truyền cố định, tới
các mạng chuyển mạch gói và các mạng chuyển mạch cứng.
Để có thể thực hiện chức năng chính là vận chuyển dữ liệu hiệu quả và tin cậy,
TCP phải có khả năng thực hiện các chức năng cơ bản sau:
Dồn kênh: Để nhiều tiến trình trên một máy tính có thể đồng thời truyền thông
qua mạng với các tiến trình trên các máy tính khác trên Internet, giao thức TCP
cung cấp một giao diện giữa tầng ứng dụng và tầng giao vận, gọi là socket. Socket
được đặc trưng bởi số hiệu cổng (port) và địa chỉ IP. Mỗi một socket có thể được
nhiều kết nối sử dụng đồng thời.
Kết nối: Để đảm bảo việc vận chuyển tin cậy và thực hiện được cơ chế điều
khiển lưu lượng, TCP phải khởi tạo và duy trì một số thông tin trạng thái cho mỗi
dòng dữ liệu. Sự kết hợp các thông tin này, bao gồm socket, số thứ tự gói số liệu và
kích thước cửa sổ, được gọi là kết nối. Mỗi một kết nối được xác định rõ ràng, duy
nhất bởi một cặp socket thuộc hai đầu kết nối đó.
Đảm bảo sự vận chuyển tin cậy: TCP phải khôi phục lại được gói số liệu bị
hỏng, bị mất, bị lặp hoặc bị phân phát sai thứ tự do hệ thống truyền thông gây ra.
Điều này có thể đạt được bằng cách gán số thứ tự cho mỗi byte được truyền đi và


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status