Nghiên cứu cơ chế điều khiển trong giao thức TCP - Pdf 33

Điều khiển lưu lượng trong giao thức TCP
MỞ ĐẦU
Ngày nay, khắp mọi nơi trên thế giới, Internet đã mang lại lợi ích cực kỳ to lớn
cho xã hội loài người. Các công ty và các tổ chức đang thấy được khả năng tăng năng
suất và hiệu quả bằng việc đầu tư mạnh các hoạt động trên mạng Internet. Sự phát
triển và thay đổi mạnh mẽ của công nghệ Internet, đã tạo ra sự gia tăng nhanh, phức
tạp và đa dạng của các ứng dụng truyền thông. Sự phát triển nhanh của các ứng dụng,
đặc biệt là các ứng dụng có tốc độ cao và việc có nhiều nhu cầu sử dụng mạng Internet
trong trao đổi thông tin đã làm cho lưu lượng truyền thông trên mạng gia tăng rất
nhanh, trong khi các tài nguyên truyền thông dù không ngừng được tăng cường cũng
không thể luôn luôn theo kịp nhu cầu, đó là một trong những nguyên nhân chính dẫn
đến hiện tượng tắc nghẽn và giảm hiệu suất truyền thông trên mạng.
Trong khi đó yêu cầu của người sử dụng Internet/Intranet là các dịch vụ thông
tin về kinh tế, văn hoá, xã hội v.v. Ngày càng phong phú trên mạng cũng như xu thế
tích hợp hầu hết các hệ thống thông tin, các dịch vụ thông tin số liệu nói riêng và thông
tin liên lạc nói chung trên cơ sở hạ tầng Internet (IP Inrastructure). Trên thực tế, sự
bùng nổ và phát triển của các mạng máy tính và các ứng dụng trên mạng đã gặp phải
nhiều vấn đề nghiêm trọng liên quan đến sự tắc nghẽn mạng. Theo thống kê, thường
thì các cổng (gateway) Internet sẽ làm mất khoảng 10% của các gói tin đi đến chúng.
Điều này thực sự là nguy hại khi thông tin luôn luôn đòi hỏi tính toàn vẹn và chính xác
của nó.
Như vậy, vấn đề điều khiển lưu lượng trên mạng để tránh tắc nghẽn và sử
dụng hữu hiệu tài nguyên mạng càng trở lên hết sức quan trọng và cần thiết để đáp ứng
được yêu cầu truyền thông của người dùng.
Trong mạng Internet, bộ giao thức TCP/IP đã được sử dụng ngay từ những
ngày đầu tiên và giữ vai trò quyết định đối với sự hoạt động của mạng. Giao thức TCP
sử dụng cơ chế điều khiển lưu lượng, điều khiển tắc nghẽn và lỗi từ hai đầu của kết nối
để vận chuyển thông tin trên Internet một cách hiệu quả và tin cậy. Vậy nguyên tắc và
cơ chế thực hiện việc đó của giao thức TCP như thế nào để đảm bảo tính tin cậy và
hiệu quả? Đó chính là nội dung chính cần tìm hiểu trong khoá luận này.
Mục đích của khoá luận là nghiên cứu cơ chế điều khiển trong giao thức TCP

quân sự: mạng này phải có khả năng chống lại một cuộc tấn công có thể vô hiệu hoá
một số lớn các trạm thành viên của nó. Mạng Internet nguyên thuỷ được thiết kế nhằm
mục đích phục vụ việc cung cấp thông tin cho thế giới khoa học, nên công nghệ của nó
cho phép mọi hệ thống đều có thể liên kết với nó thông qua một cổng điện tử. Theo
cách đó, có hàng ngàn hệ máy tính hợp tác, cũng như nhiều hệ thống dịch vụ thư điện
tử có thu phí, như MCI và Compuserve chẳng hạn, đã trở thành thành viên của Internet.
Cũng từ đó hệ thống Internet ra đời, gồm các mạng máy tính được liên kết với nhau
trên phạm vi toàn thế giới, tạo điều kiện thuận lợi cho các dịch vụ truyền thông dữ liệu,
đăng nhập từ xa, truyền các tệp tin, thư tín điện tử và các nhóm thông tin…Ở một khía
cạnh nào đó, có thể coi Internet là một phương pháp ghép nối các mạng máy tính hiện
hành, phát triển rộng rãi tầm hoạt động của từng hệ thống thành viên. Với hơn hai triệu
máy chủ phục vụ chừng vài trăm triệu người dùng, mạng Internet đang phát triển với
tốc độ bùng nổ, và việc sử dụng Internet đã đang trở thành phổ biến trong cuộc sống
hiện nay.
Mạng Arpanet có ảnh hưởng lớn đến sự tiến hoá của các mạng thương mại,
mô hình tham chiếu được sử dụng trong mạng Arpanet là tiền thân của tất cả các mạng
máy tính, kể cả mạng Internet ra đời sau này. Về sau, khi các mạng vệ tinh và vô tuyến
ra đời và kết nối vào Arpanet thì các giao thức sử dụng trong Arpanet không đáp ứng
được yêu cầu liên mạng, do đó cần phải có các mô hình kiến trúc mới, có khả năng liên
kết nhiều mạng với nhau một cách trong suốt. Kiến trúc này được gọi là mô hình tham
chiếu TCP/IP, tên này được đặt theo tên của hai giao thức cơ bản của nó là TCP và IP.
Nguyễn Thị Hạt - Mạng máy tính và truyền thông- ĐHCN- ĐHQG Hà nội
3
Điều khiển lưu lượng trong giao thức TCP
1.2. Mô hình tham chiếu ISO/OSI và TCP/IP
Việc xây dựng hệ thống phần mềm để kết nối các máy tính thành một mạng
nhỏ và kết nối các mạng nhỏ thành một mạng toàn cầu như Internet là một bài toán rất
phức tạp, để thực hiện công việc phức tạp này, người ta chia hệ thống phần mềm thành
các lớp, hay tầng (Layer) theo một số nguyên tắc nhất định và khoa học. Các lớp này
chỉ tương tác với các lớp trên và dưới của nó. Trong các mạng khác nhau, số tầng, tên

truyền từ các chương trình ứng dụng (như bảng tính và các tài liệu) qua một phương
tiện mạng (như các dây dẫn) tới chương trình ứng dụng khác ở trong một máy tính trên
một mạng khác, thậm chí nếu người gửi và người nhận có các loại phương tiện mạng
khác nhau. Mô hình OSI có bảy tầng được minh hoạ trên hình 1 như sau:
Hình 1. Mô hình tham chiếu OSI
Mỗi tầng của mô hình OSI có một bộ các chức năng mà nó phải thi hành đối
với các gói dữ liệu để truyền từ một nguồn tới một đích trên mạng. Sau đây là chi tiết
chức năng của mỗi tầng:
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à cung
cấp đường truyền tin cậy của dữ liệu qua kết nối vật lý. Để làm được điều này,
lớp liên kết dữ liệu được liên quan với địa chỉ vật lý, tô-pô mạng, truy cập
Nguyễn Thị Hạt - Mạng máy tính và truyền thông- ĐHCN- ĐHQG Hà nội
5
Điều khiển lưu lượng trong giao thức TCP
mạng, khai báo lỗi, đảm bảo việc biến đổi các tin dạng bits nhận được từ lớp
dưới (lớp vật lý) sang khung số liệu, và điều khiển lưu lượng. Ví dụ các giao
thức ở lớp hai bao gồm: Ethernet, Token Ring, ISDN, PPP và Frame Relay.
Tầng mạng (Network layer): Đảm bảo việc chuyển chính xác số liệu giữa các
thiết bị cuối trong mạng, nó đảm bảo việc tìm đường tối ưu cho các gói dữ liệu
bằng các giao thức chọn đường, điều khiển lưu lượng số liệu trong mạng để
tránh xảy ra tắc nghẽn bằng cách chọn các chiến lược tìm đường khác nhau.
Hơn nữa, tầng mạng liên quan đến địa chỉ lô-gíc. Ví dụ các giao thức tầng 3 là:
IP, IPX, và Appletalk.
Tầng giao vận (Transport layer) :Thực hiện vận chuyển các phân đoạn dữ liệu
của lớp Transport từ hệ thống máy gửi đến hệ thống máy nhận và tập hợp lại

khi gói số liệu đi qua các tầng từ dưới lên trên, cho tới khi nó đi đến ứng dụng Y. Tầng
nào phát hiện ra lỗi thì yêu cầu phát lại ngay tại tầng đó.
1.2.2. Mô hình tham chiếu TCP/IP
Mặc dù mô hình OSI được thừa nhận là đẹp và hợp lý về mặt mô hình, nhưng
thực tế có một chuẩn khác mang tính kỹ thuật và được sử dụng trên Internet là TCP/IP
(Transmission Control Protocol/Internet Protocol). Họ giao thức TCP/IP cung cấp
phương tiện truyền thông liên mạng được hình thành từ những năm 70. Do vậy, chúng
ta cần phải đặc biệt quan tâm tới các kết nối TCP trong việc điều khiển lưu lượng.
Khác với mô hình ISO/OSI, tầng mạng trong mô hình TCP/IP sử dụng giao thức liên
mạng “không kết nối” (connectionless) IP, tạo thành hạt nhân hoạt động của Internet.
Cùng với các thuật toán định tuyến RIP, OSPF, BGP, tầng liên mạng IP cho phép kết
nối một cách mềm dẻo và linh hoạt các loại mạng vật lý khác nhau, như: Ethernet,
Token Ring, X.25, v.v.
Giao thức trao đổi dữ liệu “có kết nối” (connection-oriented) TCP được sử
dụng ở tầng giao vận để đảm bảo tính chính xác và tin cậy việc trao đổi dữ liệu dựa
trên kiến trúc kết nối “không kết nối” ở tầng mạng IP.
Các giao thức hỗ trợ ứng dụng phổ biến như, truy nhập từ xa (Telnet), chuyển
tệp (FTP), dịch vụ World Wide Web (HTTP), thư điện tử (SMTP),v.v. Ngày càng được
cài đặt phổ biến như những bộ phận cấu thành của các hệ điều hành thông dụng.
Hình 2 sau đây trình bày hai mô hình tham chiếu TCP/IP và OSI để tiện so sánh.
Nguyễn Thị Hạt - Mạng máy tính và truyền thông- ĐHCN- ĐHQG Hà nội
7
Điều khiển lưu lượng trong giao thức TCP
Hình 2. Mô hình tham chiếu OSI và TCP/IP
Sau đây là chi tiết các tầng trong mô hình TCP/IP:
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ó

tham chiếu TCP/IP thực tế hầu như không nói gì về tầng này. Ngoài việc chỉ ra
rằng máy tính (host) phải nối với mạng bằng cách sử dụng một số giao thức để
có thể gửi các gói số liệu IP đi trên mạng. Tầng này không được định nghĩa và
nó khác nhau trên các máy tính khác nhau cũng như trên các mạng khác nhau.
1.3. Vấn đề tắc nghẽn và sự cần thiết của cơ chế điều khiển lưu
lượng
1.3.1. Hiện tượng tắc nghẽn
Trong mạng máy tính, tắc nghẽn xảy ra khi số lượng gói số liệu đến nút mạng
vượt quá khả năng xử lý của nó hoặc vượt quá khả năng vận tải của các đường truyền
đi ra, điều đó dẫn đến việc thông lượng của mạng bị giảm đi khi lưu lượng đến mạng
Nguyễn Thị Hạt - Mạng máy tính và truyền thông- ĐHCN- ĐHQG Hà nội
9
Điều khiển lưu lượng trong giao thức TCP
tăng lên. Hiện tượng tắc nghẽn có thể xảy ra ở một hoặc một số nút mạng, hay trên
toàn mạng và được miêu tả trên hình 4 như sau:
Hình 4. Sự xuất hiện tắc nghẽn trong mạng
Khi số lượng gói số liệu đến mạng còn tương đối nhỏ, nằm trong khả năng vận
tải của nó, chúng sẽ được phân phát đi hết, số lượng gói số liệu được chuyển đi tỉ lệ
thuận với số lượng gói số liệu đến mạng. Do luôn có một tỉ lệ gói số liệu phải phát lại
do bị lỗi trong quá trình vận chuyển, lưu lượng mà mạng thực sự phải vận chuyển nhìn
chung lớn hơn lưu lượng đi qua mạng (thông lượng).
Khi lưu lượng đến cao quá một mức nào đó, các nút mạng không còn đủ khả
năng chứa và chuyển tiếp các gói số liệu, do đó các nút mạng bắt đầu phải loại bỏ các
gói số liệu. Bên gửi sẽ phát lại các gói số liệu không được biên nhận sau một khoảng
thời gian nhất định, gọi là timeout (thời gian chờ). Nếu lưu lượng đến mạng tiếp tục
tăng lên nữa, tỉ lệ gói số liệu phát lại trên tổng số gói số liệu trong mạng có thể tăng
đến 100%, nghĩa là không có gói số liệu nào được phân phát đi cả, thông lượng của
mạng giảm xuống bằng không, mạng bị nghẹt hoàn toàn.
Sự tắc nghẽn có thể do một số yếu tố dẫn đến. Nếu bỗng nhiên dòng các gói
tin đi đến trên hai hoặc ba lối vào của một nút mạng đều cần cùng một đường đi ra,

đang chạy một máy tốc độ thấp hoặc tải nặng. Người gửi cứ tiếp tục bơm các gói tin ra
với tốc độ cao cho tới khi người nhận hoàn toàn bị lụt. Ngay cả khi việc truyền tin
không có lỗi, tại một thời điểm nhất định nào đó người nhận sẽ không có khả năng
quản lý các gói tin khi chúng đi đến và sẽ bắt đầu làm mất một số gói tin. Điều rõ ràng
là cần phải làm một việc gì đó để tình huống này không xảy ra.
Giải pháp thông thường là đưa vào sự kiểm soát lưu lượng (Flow Control) để
điều tiết người gửi, làm cho người gửi không gửi nhanh hơn mức mà người nhận có
thể xử lý được. Việc điều tiết này thường cần một kiểu nào đó của cơ chế phản hồi, sao
cho bên gửi có thể nhận thấy được bên thu có thể chạy theo kịp mình hay không.
Người ta đã biết đến nhiều giải pháp (scheme) điều khiển lưu lượng khác
nhau, nhưng phần lớn trong chúng là sử dụng cùng một nguyên lý cơ sở. Giao thức
chứa các quy tắc được định nghĩa rõ ràng về việc khi nào bên gửi có thể truyền đi các
gói tin tiếp theo. Các quy tắc này thường không cho phép gửi các gói tin khi mà bên
nhận chưa cho phép một cách trực tiếp hoặc gián tiếp. Thí dụ, khi một kết nối được
Nguyễn Thị Hạt - Mạng máy tính và truyền thông- ĐHCN- ĐHQG Hà nội
11
Điều khiển lưu lượng trong giao thức TCP
thiết lập, bên nhận có thể nói: “bây giờ anh có thể gửi cho tôi n gói tin, nhưng sau khi
gửi chúng đi, đừng có gửi thêm nữa khi mà tôi chưa bảo anh gửi tiếp”.
Để đảm bảo việc truyền thông trên mạng được trong suốt, người ta đưa ra
một số thuật toán giúp cho mạng lưu thông liên tục, đồng thời tăng hiệu suất hoạt
động của mạng lên cao nhất. Đó chính là phương pháp điều khiển lưu lượng, là cách
phòng để tránh xảy ra tắc nghẽn mạng.
Nói chung điều khiển lưu lượng liên quan tới việc vận chuyển kiểu point-to-
point giữa một người gửi đã biết nào đó với một người nhận. Công việc của nó là đảm
bảo rằng bên gửi 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 hầu như luôn luôn liên quan tới
một sự phản hồi trực tiếp nào đó từ phía người nhận tới phía người gửi để báo cho
người gửi về công việc đang được làm ở bên người nhận như thế nào.
1.3.3. Khái niệm điều khiển tắc nghẽn

• Sử dụng cơ chế cửa sổ (giống như cánh đập nước để điều hoà lưu
thông): Tắc nghẽn cũng có thể xảy ra khi người gửi tính thời gian hết giờ
(timeout) quá sớm. Chúng ta cần thủ tục hoạt động tốt hơn, nó vẫn đồng bộ
được khi gặp các tình huống trục trặc đồng thời xảy ra: gói tin lặp đi lặp lại,
mất một số gói tin, thời gian chờ timeout sớm. Ba thủ tục để khắc phục các
trục trặc đó, chúng được gọi chung tên là sliding window. Các thủ tục này
khác nhau ở tính hiệu quả, độ phức tạp và lượng bộ nhớ cần đến.
• Giao thức cửa sổ trượt (sliding window) một bit – cơ chế cửa sổ:
o Trong tất cả các thủ tục sliding window, mỗi gói tin gửi đi chứa một số
thứ tự nằm trong miền từ 0 tới một giá trị cực đại nào đó (thường được
chọn bằng 2
n
-1) số thứ tự này chiếm một trường dài n bit. Trong các thủ
tục tinh vi hơn người ta dùng n>1.
o Điểm căn bản nhất của các thủ tục sliding window là tại mọi thời điểm
người gửi ghi nhớ danh sách các số thứ tự liên tiếp tương ứng với các gói
tin nó được phép gửi đi. Các gói tin này được gọi là nằm trong cửa gửi
(Sending Window). Tương tự như vậy, bên người nhận cũng ghi nhớ một
cửa nhận (Receiving Window) tương ứng với các gói tin nó được phép
nhận, hai loại cửa sổ trên không nhất thiết phải có cùng các giới hạn trên
và giới hạn dưới cũng như kích thước.
o Các số thứ tự nằm trong cửa sổ của người gửi thể hiện các gói tin đã gửi
đi nhưng còn chưa được biên nhận (ACK). Khi có một gói tin mới do
tầng mạng gửi đến, nó sẽ được gán số thứ tự cao nhất tiếp theo, do đó
mép trên của cửa sổ sẽ tăng lên 1. Khi nhận được ACK, mép dưới cửa sổ
Nguyễn Thị Hạt - Mạng máy tính và truyền thông- ĐHCN- ĐHQG Hà nội
13
Điều khiển lưu lượng trong giao thức TCP
được tăng lên 1. Bằng cách này cửa sổ luôn ghi nhớ danh sách các gói tin
còn chưa được biên nhận.

Nguyễn Thị Hạt - Mạng máy tính và truyền thông- ĐHCN- ĐHQG Hà nội
14
Điều khiển lưu lượng trong giao thức TCP
Khi frame đầu tiên không có trục trặc đi tới B, B sẽ biên nhận, biến
nhớ giá trị gói tin chờ nhận framexpected được thiết lập giá trị 1. Tất cả
các frame liên tiếp sau đó sẽ bị từ chối vì stt (sequence) của chúng sai.
Hơn nữa mọi gói tin lặp (duplicate) có ACK=1 và b vẫn đang đợi một
ACK=0, B sẽ không nhận các gói tin từ tầng mạng của nó chuyển xuống.
Cứ mỗi khi từ chối nhận một frame lặp gửi tới, B lại gửi cho a một
frame có seq=0 và ACK=0. Cuối cùng có một frame như vậy B tới A,
làm cho A bắt đầu gửi packet tiếp theo.
Hình 5. Mô hình gửi nhận gói tin
Bằng cách này không có một tình huống kết hợp giữa mất một số
frame và timeout quá sớm có thể làm cho thủ tục phân phối các packet
lặp lên trên tầng mạng bên trên nó, cũng như bỏ qua một packet, hoặc rơi
vào tắc nghẽn (deadlock).
Một tình huống đặc biệt xảy ra khi cả hai bên đồng thời gửi đi packet
đầu tiên, khi đó xảy ra sự khó đồng bộ, tình huống này được thể hiện
trên màn hình 1.5a)
Hình 1.5b) hai frame đầu của hai bên được gửi đi đồng thời, một nửa
số frame là lặp, tuy vậy không có lỗi truyền.
Nguyễn Thị Hạt - Mạng máy tính và truyền thông- ĐHCN- ĐHQG Hà nội
15
Điều khiển lưu lượng trong giao thức TCP
• Một giao thức sử dụng go-back-n: Trong các trường hợp được xét trước
đây ta giả thiết rằng thời gian truyền một frame từ bên gửi tới bên nhận
cộng với thời gian truyền frame biên nhận là nhỏ, không đáng kể. Trong
một số trường hợp thực tế các giả thiết này sẽ hoàn toàn sai, không phù hợp.
Thí dụ khi truyền qua vệ tinh với tốc độ 50kbps, thời gian từ khi truyền đi
tới khi nhận được ACK là 500 ms, trong khi đó thời gian phát một gói tin

này. Cách giải quyết này ứng với trường hợp cửa sổ nhận có kích thước
lớn hơn 1. Mọi frame nằm trong cửa sổ đều có thể được nhận và được
nhớ đệm cho tới khi frame trước chúng được truyền cho tầng mạng. Cách
giải quyết này đòi hỏi vùng nhớ đệm của tầng Data Link phải đủ lớn,
hình 1.7 minh hoạ cách giải quyết này:
Hình 7. Ảnh hưởng của một lỗi khi kích thước cửa sổ người nhận là lớn
1.3.4.2 Điều khiển tắc nghẽn
Các nguyên tắc chung của việc kiểm soát tắc nghẽn: Nhiều vấn đề trong
các hệ thống phức tạp, chẳng hạn mạng máy tính, có thể nhìn nhận theo quan điểm của
lý thuyết điều khiển. Cách tiếp cận này dẫn tới việc chia các giải pháp làm hai nhóm:
vòng lặp mở (open loop) và vòng lặp đóng (close loop).
Nguyễn Thị Hạt - Mạng máy tính và truyền thông- ĐHCN- ĐHQG Hà nội
17
Điều khiển lưu lượng trong giao thức TCP
Các giải pháp open loop giải quyết vấn đề bằng thiết kế tốt, về thực chất là bảo
đảm để vấn đề tắc nghẽn không xảy ra, đó là vấn đề số một. Một khi hệ thống đang
chạy thì không sửa chữa nữa.
• Các công cụ để thực hiện giải pháp điều khiển kiểu open loop bao gồm việc
quyết định khi nào thì chấp nhận lưu lượng mới vào mạng, quyết định khi
nào thì loại bỏ các packet và loại bỏ các gói tin nào và ra các quyết định
theo lịch trình (scheduling decisions) tại các điểm khác nhau của mạng. Tất
cả các việc này có chung một điểm là chúng ra quyết định mà không xem
xét đến trạng thái hiện thời của mạng.
Trái lại, các giải pháp close-loop lại dựa trên khái niệm về vòng
phản hồi (feedback loop). Cách tiếp cận này có ba phần khi đem áp dụng
cho việc kiểm soát tắc nghẽn.
• Theo dõi hệ thống để phát hiện ra tắc nghẽn xảy ra khi nào và ở đâu: có thể
sử dụng nhiều cách đo (metric) khác nhau để theo dõi subnet để phát hiện
tắc nghẽn. Một số cách chính trong số đó là tính phần trăm số các gói tin bị
loại bỏ do thiếu không gian nhớ đệm, tính trung bình chiều dài hàng đợi, số

Đ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ừ 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.
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: Có thể thực hiện điều khiển lưu
lượng ở một vài tầng trong mạng, thí dụ:
Nguyễn Thị Hạt - Mạng máy tính và truyền thông- ĐHCN- ĐHQG Hà nội
19
Điều khiển lưu lượng trong giao thức TCP
• Điều khiển lưu lượng ở tầng giao vận : thường được gọi là điều khiển lưu
lượng đầu cuối- đầu cuối (end-to-end), nhằm tránh cho bộ đệm của quá
trình nhận tại đích khỏi bị tràn.
• Điều khiển lưu lượng trên từng chặng : nhằm tránh cho từng đường truyền
khỏi bị tắc nghẽn. Tuy nhiên, việc điều khiển lưu lượng trên từng chặng sẽ

Để việc phân tích sự điều khiển lưu lượng theo cơ chế cửa sổ được thuận lợi,
người ta có thể sử dụng một số ký hiệu cho các tham số như nêu trong bảng sau:
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 biên nhận (hình 8 (a) ). 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 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 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 8 (b),(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 bản sao của chúng trong bộ nhớ
đệm để phát lại nếu sau một khoảng thời gian nhất định vẫn không được biên nhận.
Nguyễn Thị Hạt - Mạng máy tính và truyền thông- ĐHCN- ĐHQG Hà nội
21

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 tiếp nhận
tiếp các gói số liệu của A, bắt đầu từ gói số 4.
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 10.
Hình 10. Đ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.
Nguyễn Thị Hạt - Mạng máy tính và truyền thông- ĐHCN- ĐHQG Hà nội
23
Điều khiển lưu lượng trong giao thức TCP
Chương 2. ĐIỀU KHIỂN LƯU LƯỢNG TRONG GIAO
THỨC TCP
2.1. Tìm hiểu về giao thức TCP
TCP là giao thức trao đổi số liệu có kết nối (connection-oriented), nghĩa là cần
thiết lập lên liên kết logic giữa một cặp thực thể TCP, trước khi chúng trao đổi dữ liệu
với nhau.
TCP cung cấp khả năng truyền dữ liệu một cách an toàn đảm bảo tin cậy, và
chính xác giữa 2 thực thể cuối trong mạng. Nó cung cấp các chức năng nhằm kiểm tra
tính chính xác của dữ liệu khi đến và bao gồm cả việc gửi lại dữ liệu khi có lỗi xảy ra.
Việc thiết kế và thực hiện giao thức TCP là phức tạp bởi những nguyên nhân
sau:
• TCP quản lý đúng số tuần tự tính theo byte của dòng số liệu.
• TCP tối ưu hóa khả năng sử dụng dải thông của mạng bằng cách giám sát
và điều khiển lưu lượng số liệu từ thực thể gửi tới thực thể nhận.
• TCP đảm bảo việc trao đổi số liệu tin cậy và chính xác giữa các thực thể

Số liệu có thể được chuyển toàn bộ hoặc một phần từ bộ đệm ứng dụng tới bộ
đệm TCP, trước khi quá trình phát được khởi động.
Số liệu thu từ kết nối TCP có thể được chuyển tiếp tức thới từ bộ đệm thu TCP
tới bộ đệm ứng dụng hoặc chỉ khi tỷ lệ phần bộ đệm bị chiếm dụng so với tổng dung
lượng bộ đệm đạt tới một giá trị nào đó.
Nguyễn Thị Hạt - Mạng máy tính và truyền thông- ĐHCN- ĐHQG Hà nội
25

Trích đoạn Việc áp dụng cơ chế điều khiển lưu lượng trong phiên bản TCP đầu tiên là: Tahoe TCP Reno, new-Reno, SACK v.v Cho mạng truyền thông có dây Reno TCP: Sơ qua các cải tiến giao thứcTCP cho mạng không dây Indirect TCP (I-TCP) Thí nghiệm mô phỏng và kết quả đạt được 1 Thí nghiệm mô phỏng
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