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

Trình bày các phương pháp điều khiển lỗi, lấy ví dụ cụ thể so sánh ưu nhược điểm

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 (619.09 KB, 12 trang )

1

BỘ QUỐC PHÒNG
HỌC VIỆN KỸ THUẬT QUÂN SỰ
CƠ SỞ 2 THÀNH PHỐ HỒ CHÍ MINH
CAO HỌC NGÀNH KHOA HỌC MÁY TÍNH



BÀI TẬP MÔN :

TRUYỀN THÔNG MẠNG MÁY TÍNH

Câu 3:”Trình bày các phương pháp điều khiển lỗi, lấy ví dụ cụ thể
so sánh ưu nhược điểm”


GIẢNG VIÊN HƯỚNG DẪN:
TIẾN SĨ : NGUYỄN QUANG UY
Nhóm thực hiện: Nhóm 3

1. Đặng Vũ Tuấn
2. Nguyễn Thị Thanh Lệ
3. Đặng Tú Hoa
4. Phương Phương Thúy
5. Vũ Thị Lệ Huyền
6. Nguyễn Quốc Cường



KHÓA 24


THÁNG 03 – 2013
2

MỤC LỤC

Trang
I.Một số khái niệm điều khiển 3
I.1 Điều khiển lưu lượng (điều khiển luồng) 3
II.2 Điều khiển lưu lượng truyền 3
I.3 Điều khiển lưu lượng mạch vòng mở 4
I.4 Điều khiển lưu lượng mạch vòng kín 4
II.Các phương pháp điều khiền lỗi 5
II.A. Kỹ thuật dừng và chờ (Stop and Wait) 5
II.A.1 ARQ dừng và đợi 5
II.A.1.1 Hoạt động 6
II.A.1.2 Hiệu suất 6
II.A.2.ARQ ngược lại n (ARQ go back n) 7
II.A.3.ARQ phát lại chọn lọc (ARQ Selective Repeat) 8
II.A.4.ARQ loại bỏ có chọn lọc (ARQ Selective reject) 8
II.B.Kỹ thuật cửa sổ trượt (Sliding Window) 10
II.B .1. Hoạt động 10
II.B.2.Hiệu suất 11



3

BÀI TẬP NHÓM MÔN TRUYỀN THÔNG MẠNG MÁY TÍNH
Câu 3:”Trình bày các phương pháp điều khiển lỗi, lấy ví dụ cụ thể so sánh ưu
nhược điểm”


I.Một số khái niệm về điều khiển
I.1 Điều khiển lưu lượng (điều khiển luồng)
Trong mạng máy tính, điều khiển lưu lượng (tiếng Anh: flow control) là qui trình
quản lý tốc độ truyền dữ liệu giữa hai đầu kết nối của mạng lưới. Chúng ta cần
phân biệt khái niệm này với khống chế tắc nghẽn (congestion control) - điều khiển
luồng dữ liệu khi tắc nghẽn đã xảy ra . Các cơ chế điều khiển lưu lượng có thể được
phân loại tùy theo việc máy nhận có gửi thông tin phản hồi (feedback) lại cho máy
gửi hay không.
Điều khiển lưu lượng có vai trò quan trọng, vì tình trạng một máy tính gửi thông tin
tới một máy tính khác, với một tốc độ cao hơn tốc độ mà máy tính đích có thể nhận
và xử lý. Tình huống này có thể xảy ra nếu các máy tính nhận phải chịu tải giao
thông về dữ liệu cao hơn máy tính gửi, hoặc nếu máy tính nhận có năng lực xử lý
kém hơn máy tính gửi.
I.2 Điều khiển lưu lượng truyền
Điều khiển lưu lượng truyền được áp dụng khi dữ liệu được truyền từ thiết bị đầu
cuối (terminal equipment - DTE) sang một trung tâm chuyển mạch (switching
center) nào đấy, hoặc được truyền thông giữa hai thiết bị DTE với nhau. Tần số
truyền tin phải được khống chế vì các yêu cầu của mạng lưới hoặc của các thiết bị
truyền tin (DTE).
Điều khiển lưu lượng truyền có thể được áp dụng biệt lập trên mỗi chiều mà tín
hiệu được truyền thông, cho phép tần số truyền tin trên mỗi chiều khác nhau.
Phương pháp điều khiển lưu lượng truyền có hai cách, hoặc là dùng chế độ "ngưng-
và-truyền" (stop-and-go) (dừng và đợi - stop and wait) hoặc dùng hình thức cửa sổ
di động hay cửa sổ trượt (sliding window).
Điều khiển lưu lượng truyền có thể được thực hiện thông qua các đường điều khiển
trong một giao diện truyền thông dữ liệu (xem cổng serial (serial port) và RS 232),
hoặc bằng cách dành riêng một số ký hiệu cho việc điều khiển (in-band control
characters) nhằm báo hiệu cho lưu lượng truyền bắt đầu hoặc ngừng lại (chẳng hạn
các mã ASCII cho giao thức XON/XOFF). Các đường điều khiển thông dụng của

RS 232 bao gồm
4

1. RTS (Request To Send - Máy địa phương sẵn sàng nhận dữ liệu, yêu cầu gửi
dữ liệu sang).
2. CTS (Clear To Send - Máy ở xa sẵn sàng nhận dữ liệu).
3. DSR (Data Set Ready - Bộ điều chế dữ liệu (như modem) sẵn sàng để liên
lạc (gọi hoặc nhận cuộc gọi) với máy ở xa.
4. DTR (Data Terminal Ready - Thiết bị nhận dữ liệu tại địa phương (như PC)
sẵn sàng nhận dữ liệu, cho phép bộ điều chế dữ liệu (modem) liên lạc (gọi
hoặc nhận cuộc gọi) với máy ở xa.
Phương pháp điều khiển trên thường được gọi là "điều khiển lưu lượng bằng phần
cứng" (hardware flow control). Còn XON/XOFF thường được coi là "điều khiển
lưu lượng bằng phần mềm" (software flow control).
I.3 Điều khiển lưu lượng mạch vòng mở
Cơ chế điều khiển lưu lượng mạch vòng mở (Open-loop flow control) có đặc điểm
là nó không có thông tin phản hồi giữa máy nhận và máy truyền tin. Phương pháp
điều khiển truyền thông đơn giản này được sử dụng rộng rãi. Việc bố trí tài nguyên
phải theo kiểu "đặt chỗ trước" (prior reservation) hoặc "từ nút tới nút" (hop-to-
hop). Điều khiển lưu lượng mạch vòng mở có một số vấn đề cố hữu về việc cố
gắng sử dụng tối đa tài nguyên trong mạng ATM. Việc cấp phát tài nguyên - như
dung lượng bộ nhớ dùng làm bộ đệm chứa dữ liệu chẳng hạn - được thực hiện khi
thiết lập kết nối bằng CAC (Connection Admission Control - điều khiển đầu vào
dành cho mạng ATM). Việc cấp phát này được tiến hành dựa trên những thông tin
mà khi kết nối hoạt động thì các thông tin này đã trở nên cũ. Thường thì dung
lượng tài nguyên được cấp phát vượt quá mức độ cần thiết. Điều khiển lưu lượng
mạch vòng mở được sử dụng trong các dịch vụ CBR (Constant Bit Rate - Tần số
bit bất biến), VBR (Variable Bit Rate - Tần số bit thay đổi) và UBR (Unspecified
Bit Rate - Tần số bit không xác định) (Xem thêm hợp đồng giao thông (traffic
contract) và khống chế tắc nghẽn (congestion control)).

I.4 Điều khiển lưu lượng mạch vòng kín
Cơ chế điều khiển lưu lượng mạch vòng kín (Closed-loop flow control) có đặc
điểm là mạng có khả năng thông báo lại sự tắc nghẽn còn tồn đọng trong mạng cho
máy truyền tin. Máy truyền tin dùng thông tin này dưới nhiều hình thức để điều
chỉnh hoạt động của nó cho thích ứng với các điều kiện hiện tại của mạng. Điều
khiển lưu lượng mạch vòng kín được dùng trong các dịch vụ ABR (Available Bit
Rate - Tần số bit khả dụng) (Xem thêm hợp đồng giao thông (traffic contract) và
khống chế tắc nghẽn (congestion control)).
5


II.Các phương pháp điều khiền lỗi
II.A. Kỹ thuật dừng và chờ (Stop and Wait)
Trong quá trình truyền frame thì dữ liệu không phải lúc nào cũng đến đích đúng và
chính xác mà luôn có một tỉ lệ lỗi nào đó.
Kiểm soát lỗi là cơ chế phát hiện và sửa lỗi xảy ra, đảm bảo dữ liệu đến đích đúng
và chính xác (hay tỉ lệ lỗi thấp hơn một ngưỡng cho phép nào đó).
Cơ chế kiểm soát lỗi dựa trên một số hoạt động sau :
 Phát hiện lỗi: dùng các mã phát hiện chẵn lẻ, CRC (thấy hay dùng trong
kỹ thuật), còn nếu trong internet người dùng hay tự check file thì dùng
md5, SHA256
 Phúc đáp dương ACK (positive ACKnowledgement): báo rằng truyền ok
 Phúc đáp âm NAK (Negative ACKnowledgement): báo rằng frame
truyền bị lỗi
 Tự phát lại sau một thời gian nhất định: khi frame bị mất trong quá trình
truyền, không nhận được tín hiệu phản hồi hoặc bên thu nhận được nhưng
tín hiệu phản hồi bị mất.
Cơ chế này dựa trên kỹ thuật điều khiển luồng, gọi là ARQ (Automatic Repeat
Request - tự động yêu cầu phát lại). Có 3 phương án cơ bản :
1. ARQ dừng và đợi

2. ARQ ngược lại N
3. ARQ phát lại chọn lọc
Điều khiển lỗi có thể coi là kỹ thuật điều khiển luồng có tính đến sai lệch khi
truyền, thực tế chắc cũng ít kênh nào đạt được tỉ lệ lỗi cực thấp đến nỗi có thể dùng
thẳng điều khiển luồng mà chắc dùng điều khiển lỗi.
II.A.1 ARQ dừng và đợi
Là một phương pháp điều khiển lỗi dựa trên cơ chế điều khiển luồng dừng và đợi.
Giống như cơ chế dừng và đợi nhưng phản hồi về sẽ có 3 trường hợp :
ACK : bản tin đã đến đích và gửi đúng, tiếp tục gửi dữ liệu.
NAK : báo lỗi, gửi lại thông tin.
Không thấy gì : xảy ra khi frame phát đi bị mất hoặc đến được nơi nhưng
thông tin phản hồi bị mất khi truyền, bên gửi sẽ gửi lại sau 1 thời gian chờ
(time out).
6

Kỹ thuật dừng và đợi (Stop and wait): Kỹ thuật dừng và chờ đợi là một kỹ
thuật điều khiển luồng đơn giản nhất.

II.A.1.1 Hoạt động
Giả sử có 2 bên phát A và thu B, bên A muốn truyền dữ liệu sang bên B.
Bên A sẽ gửi 1 Frame tín hiệu sang B, nếu bên B có thể tiếp nhận được gói tin
(chưa bị quá tải) thì bên B sẽ gửi lại tín hiệu ACK (acknowledgement) để xác nhận
là đã nhận được gói tin, bên A nhận được xác nhận thì gửi tiếp, cứ thế mà truyền
dần dần từng gói.
Nếu bên B đang nhận quá nhiều thông tin (bên A gửi nhiều quá hoặc đơn giản
nhiều bên khác gửi) thì bên B đơn giản là xử lý xong thông tin đã rồi mới gửi ACK
-> không bị quá tải.
II.A.1.2 Hiệu suất
Gọi n là hiệu suất của kỹ thuật dừng và đợi
Tf là thời gian truyền 1 khung tin

Td là thời gian trễ trên đường truyền
Tp là thời gian xử lý 1 khung tin
Tack là thời gian phát ACK của bên thu
Tp’ là thời gian xử lý ACK

Gọi T là thời gian cần thiết để phát xong 1 khung tin
T=Tf+Td+Tp+Tack+Td+Tp’
n = Tf / T
Do Tp,Tp’,Tack là rất nhỏ so với Tf nên T = Tf+2Td
Vậy n = Tf / (Tf+2Td) = 1 / (1+2a) với a = Td / Tf

Nhìn công thức thì sẽ thấy nếu Td nhiều thì hiệu suất n sẽ thấp. Nếu Td rất nhiều
thì hiệu suất cực thấp luôn. Ví dụ kiểu truyền tin sơ khai nhé : Giả sử Tf như thời
gian viết 1 bức thư (15 phút nếu văn phong có hạn), có thể ví như quá trình truyền
khung tin ở trên (ở đây là từ não ra giấy) và thời gian gửi thư từ miền bắc vào nam
là 2 ngày (thư giấy), như là trễ đường truyền.
Giả sử bạn gửi 1 bức thư từ miền bắc vào miền nam, mất 2 ngày chẳng hạn, miền
Nam đọc được thư rồi thì gửi lại thư xác nhận cho miền Bắc, thêm 2 ngày nữa, rồi
miền Bắc lại gửi thư cho miền Nam, thêm 2 ngày nữa. Quá trình gửi và đợi rất tốn
thời gian so với quá trình viết thư.

Tuy nhiên nếu thời gian truyền thư là ngắn (a nhỏ) ví dụ bức thư viết truyền tay
trong lớp (mất 10 giây chẳng hạn) thì hiệu suất rất cao : 15 phút viết mới mất 10
7

giây truyền và bên kia viết thư trả lời 15 phút nữa rồi truyền lại, chỉ mất chi phí 20
giây cho 30 phút viết (truyền dữ liệu), hiệu suất n cao.
Đặc điểm : đơn giản và không hiệu quả.
II.A.2.ARQ ngược lại n (ARQ go back n)
Là một phương pháp điều khiển lỗi dựa trên cơ chế điều khiển luồng cửa sổ trượt.

Khi không có lỗi thì thao tác xử lý của nó giống hệt cửa sổ trượt. Tuy nhiên khi bên
thu phát hiện lỗi:
 A phát frame i, B báo NAK frame i (các frame i-1 về trước truyền ok), thì dù
trong lúc chờ phản hồi, bên A có phát đến frame i+n (n mấy chục, mấy trăm
cũng mặc) thì nó vẫn phải truyền lại từ frame i trở đi.
 Frame i bị mất trong khi truyền, bên A truyền frame i-1 rồi nhảy cóc sang
i+1 luôn thì bên B sẽ phát hiện, phát NAK bắt truyền lại.
 Frame i bị mất trong khi truyền, và bên A không truyền tiếp (có thể do bên B
đã đầy bộ nhớ đệm hoặc truyền hết tin rồi), bên A sau 1 thời gian time out
không thấy gì cũng sẽ phát lại frame i trở đi.
 ACK thứ i bị mất khi truyền lại, do nếu bên thu mà phát NAK thì sau đó nó
sẽ không phát ACK tiếp mà đợi phản hồi, nên giả sử có mất ACK thứ i, vẫn
thấy ACK thứ i+1 thì bên phát hiểu là vẫn truyền ok thôi.
 Nếu phát NAK bị lỗi, chờ không thấy gì (sau NAK bên thu sẽ đợi bên phát
phát lại chứ không ACK xác nhận tiếp), bên phát không thấy gì, sau 1 thời
gian time out sẽ phát lại khung i trở đi.
Loại này thì các frame và ACK cần lưu số thứ tự hay một cách nhận dạng nào đó
để có thể phân biệt frame nào trước frame nào sau.

8

Đây là hình so sánh ARQ ngược lại n và ARQ phát lại chọn lọc (hiệu suất cao hơn
nhưng phức tạp hơn).



II.A.3.ARQ phát lại chọn lọc (ARQ Selective Repeat)
Giống ARQ ngược lại n có điều là nó không phát lại từ frame thứ i trở đi mà chỉ
phát lại những frame bị lỗi.
Nếu bên thu nhận được ACK nào thì nó sẽ hiểu là truyền đúng được frame đấy, nếu

không nhận được hoặc nhận được NAK thì nó sẽ hiểu là cần truyền lại.
Phương pháp này cho hiệu suất cao nhưng lại phức tạp vì bên phát và thu đều cần
truyền không theo thứ tự khi gặp lỗi.
Các bạn có thể xem bài ARQ ngược lại n để xem hình so sánh 2 phương pháp
II.A.4.ARQ loại bỏ có chọn lọc (ARQ Selective reject)
Giống ARQ ngược lại n có điều là nó không phát lại từ frame thứ i trở đi mà chỉ
lọai bỏ những frames cần truyền lại.
Bên nhận phải có vùng đệm đủ lớn.
Sử dụng chủ yếu cho liên kết vệ tinh với độ trễ trên đường truyền rất lớn.
Nếu bên thu nhận được ACK nào thì nó sẽ hiểu là truyền đúng được frame đấy, nếu
không nhận được hoặc nhận được NAK thì nó sẽ hiểu là cần truyền lại.
9

Phương pháp này cho hiệu suất cao nhưng lại phức tạp vì bên phát và thu đều cần
truyền không theo thứ tự khi gặp lỗi.
Ví dụ :






























Ví d


h
ình
bên:

A :Bên truyền
B: Bên nhận
Truyền và nhận trực tiếp giữa 2
máy không qua trung gian
Khi fram 4 truyền đi bị lỗi, vẫn
tiếp tục nhận fram 5 và fram 6 và
gởi báo lỗi fram 4 về cho bên
truyền

10

II.B.Kỹ thuật cửa sổ trượt (Sliding Window)
Là kỹ thuật điều khiển luồng , tốt hơn kỹ thuật dừng và đợi .

II.B .1. Hoạt động
Bên phát được phát tối đa w khung trước khi bên nhận báo nhận(w:kích thước cửa
sổ)
Mỗi khi phát 1 khung w giảm đi 1 đơn vị,mỗi khi nhận 1 báo nhận,w lại tăng lên 1
đơn vị,khi w=0 thì không được phép phát tiếp
Do bên phát được phát đồng thời w khung nên cần có 1 trường đánh số thứ tự các
khung tin
Giả sử cần k bit đánh số thứ tự các khung tin thì 1<= w <= 2^k - 1


Vd: Dùng 3 bit đánh số thứ tự các khung tin => w<8, chọn w=7, máy thu phải có
bộ nhớ đệm để lưu trữ và xử lý tương ứng.


11


ở ví dụ này bên phát được phép truyền tối đa 3 frame tiếp theo. Lúc đầu bên máy
phát sẽ truyền đi 3 frame và chờ phản hồi, nếu có ACK (như trên hình là RR3 tức
là đã sẵn sàng nhận frame 3 trở đi) thì bên phát sẽ gửi tiếp, tuy nhiên cùng với thời
gian gửi thì bên thu cũng gửi lại RR để báo bên phát còn có thể truyền bao nhiêu
frame nữa. Nếu như bên thu bị sao đó hoặc "chán" không muốn nhận thêm thì chỉ
đơn giản không gửi nữa , bên phát sẽ chỉ phát được đến mức tối đa 7 frame từ
thông báo cuối cùng thôi hoặc nếu gửi chậm chậm thì bên phát sau khi truyền thả
phanh đến hết bộ đệm bên thu thì khi nào nhận được thông báo mới bắt đầu truyền

tiếp.

II.B.2.Hiệu suất
Hiệu suất của kỹ thuật cửa sổtrượt (sliding window) được tính như sau:
+n = 1 nếu w>=2a+1
+n = w / (1+2a) nếu w<2a+1

Vẫn ví dụ gửi thư như ở kỹ thuật dừng và đợi: Giờ không gửi một bức thư nữa,
người miền Nam bảo cứ gửi thư đi, hòm thư nhà tôi chứa được 10 bức chẳng hạn.
Thời gian thì vẫn mất 2 ngày để nhận thư, còn thời gian để viết xong thư coi như là
1 ngày 1 bức đi (15 phút 1 bức thì không thể viết suốt ngày đêm được, lâu rồi cũng
chán).
Đầu tiên phải viết 1 bức hỏi xem bên kia thế nào, có muốn nhận thư không, nhận
được bao nhiêu, quá trình khởi động mất 5 ngày ( mất 2 ngày để thư đến đích, 1
ngày để bên kia viết và 2 ngày để thư đáp trả lại).
Bên nhận thư báo lại là cứ viết thoải mái đi, hoặc không thấy hồi âm thì thôi khỏi
gửi. Nếu nhận thông báo đồng ý, từ đây người viết ngày nào cũng viết cũng gửi.
Khi đó người viết đã viết đến bức thứ 6 thì nhận được thông tin là đã nhận được
thư thứ nhất (tức là có thể truyền đến thư thứ 11) thì mới đầy hòm thư, hôm sau
người viết viết thư thứ 7 thì lại thông báo có thể truyền đến thư 12 cứ thế, không
mất công đợi , hiệu suất 100% nếu bên nhận gửi cũng nhanh bằng hoặc hơn bên
gửi, nếu bên kia xử lý chậm đọc chậm thì hòm thư cứ đầy dần, người gửi thấy 10
bức không thấy hồi âm thì sẽ dừng lại, đến khi bên kia gửi xác nhận thì mới gửi
tiếp nên không bị đầy, "bục" hòm thư.
Phương thức này hiệu suất cao, maximum 100% (tất nhiên nếu không tính giai
đoạn khởi động chờ xem bên kia có phản hồi không hay lại nhầm địa chỉ đi đâu),
tốt hơn dừng và đợi nhiều, nhưng cần bộ đệm.
Quá trình truyền nhận vừa nói trên là trong trường hợp có thể song công (vừa
truyền vừa nhận).
12


Nếu chỉ có truyền hoặc nhận (không đồng thời được) thì cũng chỉ giống như truyền
stop and wait vì gửi tối đa là n frame với ghép n frame thành 1 frame để truyền
(trong stop and wait) thì cũng như nhau, tuy nhiên nếu khi có lỗi xảy ra thì không
phải truyền lại toàn bộ frame như stop and wait.

×