Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 5

Báo cao: 2.12.

Giao thức điều khiển luồng


Họ và tên: Đỗ Quang Trần Hoàn
MSV: 21810540478
I. Khái niệm
Giao thức điều khiển luồng (flow control protocol) là một kỹ thuật được
sử dụng trong mạng máy tính để điều phối tốc độ truyền dữ liệu giữa hai
thiết bị. Nó nhằm mục đích đảm bảo rằng tốc độ truyền dữ liệu của thiết
bị gửi không vượt quá tốc độ mà thiết bị nhận có thể xử lý, tránh tình
trạng tắc nghẽn mạng và mất dữ liệu.

Mục đích của giao thức điều khiển luồng:

Ngăn ngừa tắc nghẽn mạng: Khi tốc độ truyền dữ liệu vượt quá tốc độ xử lý của
thiết bị nhận, dữ liệu sẽ bị dồn ứ trong bộ nhớ đệm của thiết bị nhận, dẫn đến tắc
nghẽn mạng và làm giảm hiệu suất truyền tải. Giao thức điều khiển luồng giúp điều
chỉnh tốc độ truyền dữ liệu để phù hợp với khả năng xử lý của thiết bị nhận, tránh
tình trạng tắc nghẽn xảy ra.
Cải thiện độ tin cậy của truyền tải: Khi dữ liệu được truyền với tốc độ quá cao,
thiết bị nhận có thể không có đủ thời gian để xử lý dữ liệu, dẫn đến lỗi và mất dữ
liệu. Giao thức điều khiển luồng giúp đảm bảo rằng dữ liệu được truyền với tốc độ
phù hợp, cho phép thiết bị nhận có đủ thời gian để xử lý dữ liệu một cách chính
xác.
Tăng hiệu quả sử dụng băng thông: Khi mạng bị tắc nghẽn, băng thông mạng sẽ bị
lãng phí do dữ liệu bị dồn ứ và không thể được truyền đi. Giao thức điều khiển
luồng giúp tối ưu hóa việc sử dụng băng thông mạng bằng cách điều chỉnh tốc độ
truyền dữ liệu để phù hợp với khả năng xử lý của các thiết bị trên mạng.
II. Stop and wait Flow control
2.1. Khái niệm: Là phương thức đơn giản và dễ hiểu nhất. Trong phương thức
này, tin nhắn và dữ liệu được chia thành nhiều gói tin (frame) riêng lẻ. Sau đó,
thiết bị nhận (received) sẽ gửi tín hiệu cho biết nó đã sẵn sàng để nhận một
frame. Khi được xác nhận (acknowledgement – ACK), thiết bị gửi (sender) mới
tiếp tục truyền khung tiếp theo. Quá trình này được lặp lại cho đến khi thiết bị
gửi truyền EOT (End of Transmission).
2.2. Cách thức hoạt động của giao thức Stop and Wait:
- Nếu có sự kết nối giữa sender và receiver thì người gửi sẽ gửi gói đến người
nhận và gói đó được gọi là gói dữ liệu
- Sender sẽ không gửi gói thứ hai đến khi nhận được ACK của gói trước
- Receiver sẽ gửi ACK đến sender cho gói vừa nhận được
- Khi sender nhận được ACK, nó sẽ gửi gói tiếp theo đi
- Quá trình này tiếp tục cho đến khi tất cả các gói được gửi đi
2.3. Ưu và nhược điểm của giao thức Stop and Wait
* Ưu điểm:
- Stop and Wait là một giao thức cung cấp khả năng kiểm soát luồng
- Đơn giản
- Giao thức rất hữu ích trong mạng LAN vì hiệu quả sẽ giảm dần nếu khoảng
cách giữa 2 thiết bị tăng dần
- Phù hợp truyền các gói dữ liệu lớn
- Khả năng bị mất dữ liệu thấp vì sender sẽ chỉ gửi gói dữ liệu tiếp sau khi nhận
được ACK của gói trước
* Nhược điểm:
+ Sự cố xảy ra khi dữ liệu từ sender không đến được receiver
- Đây là trường hợp mà sender đã gửi đi gói dữ liệu nhưng gói dữ liệu bị mất vì
lý do nào đó. Vì receiver không nhận được gói dữ liệu nên sender sẽ không
nhận được ACK từ receiver  sender không gửi đi gói tiếp theo
- Trong trường hợp này có 2 vấn đề trong quá trình truyền tải dữ liệu:
Sender sẽ phải đợi ACK trong 1 khoảng thời gian vô hạn
Receiver sẽ phải đợi dữ liệu trong 1 khoảng thời gian vô hạn
+ Sự cố xảy ra khi sender không nhận được ACK
- Đây là trường hợp mà ACK bị mất trong mạng, do đó sender sẽ không thể gửi
gói tiếp theo vì không nhận được ACK.
- Trong trường hợp này có 1 vấn đề đó là:
Sender sẽ phải đợi trong 1 khoảng thời gian vô hạn
+ Sự cố do delay của dữ liệu hoặc ACK
- Đây là trường hợp mà sender gửi gói dữ liệu và receiver cũng gửi lại ACK
nhưng sender nhận được ACK sau khoảng thời gian chờ. Vì vậy sender sẽ
không xem xét nhận ACK này vì có thể xảy ra trường hợp sender gửi lại gói dữ
liệu sau khoảng thời gian chờ
2.4. Kết luận:
- Giao thức Stop and Wait là một giao thức đơn giản và đáng tin cậy dùng để
kiểm soát luồng
- Giao thức Stop and Wait là giao thức ở Data link layer
- Trong giao thức này, sender sẽ không gửi gói dữ liệu tiếp theo cho đến khi
nhận được ACK của gói dữ liệu trước
- Nhược điểm là hiệu quả thấp
III. Sliding window Flow control
3.1. Khái niệm: Giao thức cửa sổ trượt là một kỹ thuật điều khiển luồng được
sử dụng trong mạng máy tính để đảm bảo rằng phía người gửi không gửi quá
nhiều dữ liệu mà phía người nhận không thể xử lý được. Nó hoạt động bằng
cách sử dụng hai cửa sổ:

Cửa sổ gửi: Cửa sổ này xác định số lượng khung dữ liệu tối đa mà người gửi có
thể gửi mà không cần phải chờ xác nhận từ người nhận. Kích thước của cửa sổ
gửi được quảng bá bởi người nhận trong thông báo xác nhận (ACK).
Cửa sổ nhận: Cửa sổ này xác định số lượng khung dữ liệu tối đa mà người nhận
sẵn sàng lưu trữ trong bộ đệm của mình. Kích thước của cửa sổ nhận được
quảng bá bởi người gửi trong thông báo yêu cầu gửi (SYN).
3.2. Cách thức hoạt động:
Giai đoạn khởi tạo kết nối:

1. Thiết bị gửi khởi tạo kết nối:


Gửi gói SYN đến thiết bị nhận, thông báo kích thước cửa sổ nhận ban đầu.
2. Thiết bị nhận xác nhận kết nối:
Gửi gói ACK đến thiết bị gửi, thông báo kích thước cửa sổ nhận ban đầu và số
thứ tự của khung dữ liệu mong muốn tiếp theo.
Giai đoạn truyền dữ liệu:

3. Thiết bị gửi truyền dữ liệu:


Gửi các khung dữ liệu trong phạm vi cửa sổ gửi hiện tại.
Cập nhật cửa sổ gửi sau khi mỗi khung dữ liệu được gửi.
4. Thiết bị nhận lưu trữ dữ liệu:
Lưu trữ các khung dữ liệu nhận được trong bộ nhớ đệm của nó.
Gửi gói ACK cho thiết bị gửi để xác nhận việc nhận các khung dữ liệu, đồng
thời thông báo số thứ tự của khung dữ liệu mong muốn tiếp theo.
5. Lặp lại các bước 3 và 4:
Thiết bị gửi tiếp tục truyền dữ liệu trong phạm vi cửa sổ gửi hiện tại và cập nhật
cửa sổ sau mỗi lần gửi.
Thiết bị nhận tiếp tục lưu trữ dữ liệu và gửi ACK để xác nhận và thông báo số
thứ tự mong muốn tiếp theo.

You might also like