KHÁI QUÁT: Cho phép nhiều frame có thể truyền đồng thời Bên thu có bộ đệm với kích thước W frame có thể nhận W frame Bên phát có thể truyền tối đa W frame mà không cần đợi ACK Cá
Trang 1Môn học: KỸ THUẬT TRUYỀN DỮ LIỆU
BÀI TIỂU LUẬN
ĐỀ TÀI: ĐIỀU KHIỂN LUỒNG
Trang 2ĐIỀU KHIỂN LUỒNG
I KHÁI QUÁT CHUNG
II ĐIỀU KHIỂN LUỒNG THEO LƯỢC ĐỒ X-ON/ X-OFF
III ĐIỀU KHIỂN LUỒNG THEO LƯỢC ĐỒ CỬA
SỔ TRƯỢT
Trang 31 giới thiệu:
Điều khiển luồng là 1 phần của giao thức liên kết số liệu
Như tên gọi,điều khiển luồng liên quan đến điều
khiển tốc độ truyền ký tự dữ liệu( hay frame) trên liên kết sao cho nơi thu luôn cố đủ tài nguyên bộ nhớ để tiếp nhận chúng trước khi xử lý
Là kỹ thuật đảm bảo cho trạm thu ko bị tràn dữ liệu
do trạm phát gửi dữ liệu nhanh hơn tốc độ mà trạm thu có thể tiếp nhận
I Khái quát chung
Trang 4I KHÁI QUÁT CHUNG
2 mục đích
lưu lượng vào mạng là tối đa
Tạo ra sự thỏa hiệp tốt giữa người sử dụng
Duy trì độ trễ trung bình của mỗi tin ở mức hợp lý và đối xử công bằng với mỗi thuê bao về dung lượng
Kiềm chế việc truy cập mạng khi chỗ trống bộ đệm
là hạn chế
Trang 5I KHÁI QUÁT CHUNG
Kiềm chế việc truy cập mạng khi chỗ trống bộ đệm
là hạn chế
Quá trình điều khiển luồng giữa máy phát A và máy thu B gọi là điều khiển luồng theo phương thức cửa
sổ nếu có 1 giới hạn trên số lượng các khối dữ liệu,
số lượng các gói này đc truyên bởi A,quyết định
bởi B
Trang 6II ĐIỀU KHIỂN LUỒNG THEO
LƯỢC ĐỒ X-ON/ X-OFF
Nếu máy ở xa hết bộ nhớ, nó sẽ tự gửi ký tự
đặc biệt X-OFF đến bộ điều khiển trong thiết bị đầu cuối để ngừng việc truyền các ký tự mới
Lúc này tất cả ký tự được nhập vào sẽ được bỏ qua hoặc lưu vào buffer (không phải phải xử lý các
ký tự một cách lãng phí)
Sau khi sự cố quá tải đã được khắc phục, một
ký tự X-ON được gửi đi để thông báo có thể tiếp
tục việc truyền tin
Ví dụ: khi máy tính gửi thông tin đến máy in, do tốc độ xử lý dữ liệu khác nhau nên các ký tự sẽ
Trang 7II ĐIỀU KHIỂN LUỒNG THEO
LƯỢC ĐỒ X-ON/ X-OFF
Trang 8III.Điều khiển luồng theo lược đồ
cửa sổ trượt( sliding window)
A KHÁI QUÁT:
Cho phép nhiều frame có thể truyền đồng thời
Bên thu có bộ đệm với kích thước W frame( có thể
nhận W frame)
Bên phát có thể truyền tối đa W frame mà không cần
đợi ACK
Các frame được đánh số thứ tự ACK có chứa số thứ
tự của frame kế tiếp có thể truyền
Số thứ tự thường đc giới hạn bởi k bit trong frame
đánh số quay vòng module 2k
Trang 9A.KHÁI QUÁT
Cấu trúc của cửa sổ được mô tả như sau:
Phần tô đen là phạm vi của cửa sổ gồm có cửa
trước và cửa sau cùng di chuyển theo một chiều.
Kích thước của cửa sổ là chiều của cung giới hạn
từ cửa sau đến cửa trước.
Trang 10A.KHÁI QUÁT
Kích thước nhỏ nhất là 0.giả sử có n=2k vị trí cho các cửa khi đó kích thước tối đa là n-1
Dùng k bit để đánh số thứ tự cho các khung ta sẽ
có 2k khung,đánh số từ 0 đến 2k-1 khi đó của sổ chia thành 2k vị trí tương ứng với 2k khung
Trang 11A.KHÁI QUÁT
ví dụ về cửa sổ trượt
Trang 12B.HOẠT ĐỘNG CỦA CỬA
SỔ TRƯỢT
Ví dụ mô tả hoạt động của cửa sổ trượt với kích
thước của sổ là 1,sử dụng 3 bit để đánh số thứ tự khung (từ 0 đến 7),các bước được tiến hành như sau:
Trang 131.cửa sổ end-to-end
Là phương pháp điều khiển luồng theo cửa sổ dựa trên cơ sở phương pháp cửa sổ trượt ARQ làm
việc tại lớp liên kết dữ liệu.các khung thông tin
được đánh số thứ tự để phân biệt ,kích thước cửa
sổ W< 2k với k là số bit dùng đánh số phân biệt các khung
Trang 141.cửa sổ end-to-end
Ví dụ phia phát truyền tin không liên tục
Trang 151.cửa sổ end-to-end
1 hạn chế của phương pháp là chưa đảm bảo tính công bằng cho người dùng trong tất cả các trương hợp, trong trường hợp có tắc nghẽn nếu trên 1
đường truyền có nhiều kết nối cùng hoạt động thì kết nối napf có khoảng cách nguồn- đích lớn thì sẽ
sử dụng tài nguyên nhiều hơn(do kích thước cửa
sổ lớn hơn)
Trang 162.cửa sổ hop-by-hop
Việc điều khiển luông đc thực hiện giữa 2 nút mạng
kế tiếp trên đường truyền,mõi nút mạng có các cửa
sổ độc lập
Đảm bảo bộ đệm của nút đích không bị quá tải bởi quá nhiều gói tin đến.việc này đc thực hiện với việc nút đích giảm tốc độ gửi ACK về cho nút nguồn
Tổng quát nút đích có bộ đệm dung lượng W gói
cho mỗi liên kết,nó sẽ gửi ACK nếu bộ đệm còn
trống,nút đích sẽ xóa gói tin trong bộ đệm nếu nó
đã đc truyền thành công đến nút tiếp theo
Trang 172.cửa sổ hop-by-hop
Giả sử có 3 nút liên tiếp trên mạng là (i-1,i,i+1) giả
sử bộ đệm i đã đầy với W gói tin, nút i sẽ gửi ACK cho nút i-1 nếu nó đã gửi thành công 1 gói tin cho nút i+1 nếu nút i nhận đc ACKtừ nút i+1
Trong trường hợp có tắc nghẽn,bộ đệm của nút
này đầy bởi W gói tin làm cho bộ đệm các nút phía trước cũng sẽ dần dần bị đầy
Trang 182.cửa sổ hop-by-hop
Số lượng gói tin sẽ đc phân bố đều ở các bộ đệm ở các nút và dung lượng bộ đệm cần thiết ở các nút
sẽ nhỏ hơn end-to-end rất nhiều
Cho phép thực hiện tính công bằng,kích thước cửa
sổ của các kết nối thông tin xấp xỉ bằng nhau do
tốc độ thông tin đến là không chênh lệch
Trang 19C Vấn đề điều khiển lỗi
(Error Control)
Vấn đề kế tiếp cần phải quan tâm là bên nhận sẽ làm gì nếu khung bị lỗi
Giải pháp đơn giản là truyền lại tất cả các khung
bắt đầu từ khung thứ N bị lỗi Nếu có những khung khác được nhận trong khoảng thời gian này thì
chúng đều bị bỏ qua Đây gọi là giao thức
Go-Back-N
Giải pháp thứ hai là chỉ truyền lại những khung bị lỗi, và chờ đến khi nó được gởi lại trước khi tiếp tục việc gửi tin, gọi là giao thức Selective Repeat
Trang 201.Giao thức Go-Back-N
a Nguyên tắc:
phía phát sẽ phát được nhiều hơn 1 khung thông tin trước khi nhận được báo nhận từ phía thu.số khung cực đại mà phía phát có thể phát là W gọi là kích
Trang 211.Giao thức Go-Back-N
Mỗi khi phía thu nhận được 1 khung thông tin đúng
và xử lý xong sẽ gửi 1 ACK cho phía phát,khi đó
phía phát sẽ tăng kích thước cửa sổ W lên 1 như vậy tổng số khung mà phía thu phải xử lý tại 1 thời điểm không vượt quá W
Để phân biệt các khung cần đánh số thứ tự Wmax= 2k
(dùng k bit để đánh số)
ACK có thể đính vào gói phát theo chiều ngược
(piggy back)
Trang 221.Giao thức Go-Back-N
b, hoạt động:
Trang 231.Giao thức Go-Back-N
c khi khung thông tin bị lỗi:
Hình trình bày nguyên tắc phát lại khi có lỗi xảy ra
Trang 241.Giao thức Go-Back-N
Khi khung bị lỗi có thể xảy ra 3 trường hợp
Phía phát đã phát khung i,phía thu đã thu đúng khung từ i-1 trở về trước Lúc này phía thu sẽ gửi NAK i( RN=i) khi phía phát nhận được NAK i nó sẽ thực hiện phát lại khung i và các khung sau i
Khung i bị mất trên đường truyền,giả sử phía thu nhận
được khung i+1 phía thu thấy các khung không đến theo
thứ tự và hiểu rằng khung i bị mất, sẽ gửi lại NAK cho phía phát
Khung i bị mất trên đường truyền,phía phát không gửi thêm khung nào nữa,lúc này phía thu không gửi ACK hay
NAK,phía phát chờ đến timeout của khung i và truyền lại
Trang 251.Giao thức Go-Back-N
Trường hợp ACK bị lỗi có 2 trường hợp:
Phía thu nhận được khung i và gửi ACK(i+1) vầ
phía phát và bị mất, trước khi timeout của khung i xảy ra,phía phát nhận được ACK(i+2) hoặc
ACK(i+n) với n>1 thì phái phát hiểu rằng khung i đã nhận đúng
Nếu trong khoảng timeout của khung i phía phát
không nhận được ACK(i+n) nào cả thì sau
timeout,phía phát sẽ gửi lại khung i
Trang 261.Giao thức Go-Back-N
Trường hợp khung NAK bị lỗi nghĩa là khung i bị lỗi ,lúc này phia thu sẽ không nhận thêm 1 khung nào sau khung i( vad sẽ không gửi báo nhận).với
trường hợp này phía phát bắt buộc phải chờ đến timeout và thực hiện phát lại khung i
Trang 271.Giao thức Go-Back-N
Cơ chế xử lý thông tin ở phí thu khá đơn giản và
không cần bộ đệm Tuy nhiên có thể phải truyền lại quá nhiều khung thông tin trong trường hợp bị
lỗi.hiệu suất kênh truyền vẫn chưa được tối đa hóa Khắc phục nhược điểm này thì sử dụng cơ chế
phát lại theo yêu cầu ( selective repeat)
Trang 282 Cơ chế selective repeat
Nếu không có lỗi xảy ra quá trình diễn ra giống go-back- N Nếu có lỗi xảy ra thì chỉ có những gói bị lỗi được phát lại.cơ chế này giúp tăng hiệu quả của kênh truyền so với go-back-
N
Trang 292 Cơ chế selective repeat
Do chỉ có những gói bị lỗi được phát lại, trình tự
các gói không đúng như phía phát nên cần phải có
bộ đệm giúp sắp xếp lại gói.phía phát phải thực
hiện báo nhận cho các khung thông tinmaf nó nhận đúng.các khung thông tin không được báo nhận
trong khoảng timeout tương ứng sẽ được coi là bị mất
Trang 302 Cơ chế selective repeat
Một số điểm cần lưu ý khi sử dụng cửa số trượt với kích
thước lớn hơn 1:
Kích thước tối đa của cửa sổ gửi và nhận là bao nhiêu ?
Giả sử ta dùng 3 bit để đánh số cho khung Như vậy bên gửi được phép gửi trước tối đa 7 khung trước khi chờ bên nhận gửi báo nhận về.
Trang 312 Cơ chế selective repeat
Lúc đầu bên gửi gửi đi 7 khung từ 0 đến 6, bên nhận đang sẵn sàng chờ nhận bất kỳ một khung nào có số thứ tự từ 0 đến 6 (Hình a).
Tất cả các khung đến nơi không có lỗi, bên nhận gởi các báo nhận và chuyển cửa số nhận về vị trí sẵn sàng để nhận các khung 7,0,1,2,3,4 và 5 (Hình b).
Tại thời điểm đó, đường truyền có sự cố làm cho tất cả các khung báo nhận đều mất Quá thời gian, bên gởi gửi lại
khung 0 Khi khung này đến bên nhận, nó kiểm tra xem
khung có nằm trong cửa sổ nhận không Điều không may mắn đã xảy ra: khung 0 nằm trong cửa sổ nhận mới (Hình b) Bên nhận nhận khung 0 xem như một khung mới hoàn toàn và chuyển khung 0 lên tầng mạng Như vậy tầng mạng
đã nhận 2 lần cùng một gói tin, tức giao thức vận hành sai.
Trang 322 Cơ chế selective repeat
Tình trạng này có thể tránh được nếu ta đảm bảo rằng cửa sổ
nhận mới không đè chồng lên cửa sổ trước đó Điều này có thể thực hiện được nếu ta giới hạn kích thước tối đa của của sổ nhận bằng một nửa khoảng đánh số thứ tự của khung.
Ví dụ: Nếu dùng 3 bit để đánh số thứ tự khung từ 0 đến 7 thì kích thước tối đa cửa sổ nhận là (7-0+1)/2 =4.
Nếu dùng 4 bit để đánh số thứ tự khung từ 0 đến 15 thì kích
thước tối đa cửa sổ nhận là (15-0+1)/2 =8.
Số lượng buffer để lưu khung là bao nhiêu?
Số lượng buffer chỉ cần bằng kích thước tối đa của cửa sổ nhận, không cần thiết phải bằng số lượng khung Ví dụ: Nếu dùng 3 bit
để đánh số thứ tự khung từ 0 đến 7 thì kích thước tối đa cửa sổ nhận là (7-0+1)/2 =4 và số lượng buffer cần thiết cũng là 4.