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
Trang 11
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
Trang 22
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
Trang 33
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
Trang 44
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)).
Trang 55
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
truyền bị lỗi
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 :
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)
Trang 66
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
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
Trang 77
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
Trang 88
Đâ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)
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
Trang 99
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
Trang 1010
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
Trang 1111
ở 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)