CHƯƠNG 4
KIỂM SOÁT ĐƯỜNG NỐI DỮ LIỆU
MẠNG TRUYỀN SỐ LIỆU
GV: Th.s Lương Hoài Thương
Các chức năng của lớp kết nối dữ liệu
Hạng mục đường dây: xác định thiết bị nào
được phát và thiết bị nào được thu.
Điều khiển lưu lượng: điều phối lượng thông
tin có thể truyền được trước khi nhận được tin
chấp nhận.
Kiểm tra lỗi tức là phát hiện và sửa lỗi: điều
phối việc truyền lại dữ liệu của máy phát.
HẠNG MỤC ĐƯỜNG DÂY
(LINE DISCIPLINE)
Yêu cầu/chấp nhận (ENQ/ACK) : dùng trong thông tin đồng
cấp.
Hỏi vòng / lựa chọn (Poll/select): thông tin sơ cấp-thứ cấp
ENQ/ACK
ENQ: mã ASCII 0000101; enquiry
ACK: mã ASCII 0000110; acknowledgment
NAK: mã ASCII 0010101; negative acknowledgment
EOT: mã ASCII 0000100; end of transmission.
Poll/select
Thiết bị sơ cấp muốn nhận dữ liệu thì phải hỏi thứ cấp có gởi dl
(polling).
Thiết bị sơ cấp muốn gởi dữ liệu, thì phải báo cho thứ cấp biết để chuẩn
bị sẵn sàng nhận tin (selecting).
Poll: chứa trường địa chỉ của thiết bị thứ cấp và ACK;
SEL: chứa trường địa chỉ của thiết bị thứ cấp+ENQ;
Điều khiển dòng dữ liệu
Bảo đảm cho việc bên phát không gởi dữ liệu quá
nhanh
Ngăn ngừa việc tràn bộ đệm
Khái niệm thời gian
Thời gian truyền (tframe): thời gian cần thiết để gởi
tất cả các bit dữ liệu lên đường truyền.
Thời gian lan truyền (tprop): thời gian cần thiết để 1
bit đi từ nguồn đến đích.
Điều khiển dòng dữ liệu
Mô hình
truyền khung
Điều khiển dòng
(Flow Control)
Idle RQ
(Stop and Wait)
Sliding windows
Idle RQ (Stop–and–Wait)
Đặc điểm
Cơ chế hoạt động
Được dùng chủ yếu trong các ứng dụng character-oriented (byte-oriented)
Sử dụng kênh truyền hoạt động trong chế độ half-duplex
Nguồn phát dữ liệu (dưới dạng các frame)
Đích nhận dữ liệu và trả lời bằng ACK
Nguồn đợi ACK trước khi phát tiếp dữ liệu
Đích có thể ngưng bằng cách không gởi ACK
Thích hợp khi chỉ có vài frame có kích thước lớn
Dữ liệu lớn được chia thành các frame có kích thước nhỏ
Kích thước bộ đệm có giới hạn
Lỗi được phát hiện sớm
Khi có lỗi, chỉ cần truyền lại frame nhỏ
Ngăn ngừa tình trạng 1 trạm làm việc chiếm đường truyền lâu
Stop-and-wait protocol không thích hợp
Idle RQ (Stop–and–Wait)
Animation
Chia nhỏ gói tin
Dữ liệu lớn được chia thành các frame có kích
thước nhỏ
Kích thước bộ đệm có giới hạn
Lỗi được phát hiện sớm (khi cả gói dữ liệu đã
nhận được)
Khi có lỗi, chỉ cần truyền lại frame nhỏ
Ngăn ngừa tình trạng 1 trạm làm việc chiếm
đường truyền lâu
Stop and wait trở nên không thích hợp
Điểu khiển dòng theo cửa sổ trượt (Sliding windows)
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
Bên phát có thể truyền tối đa W frame mà không cần đợi ACK
Cơ chế đánh số thứ tự cho các frame
ACK có chứa số của frame kế tiếp đang được mong đợi
Số thứ tự được quay vòng bởi kích thước cửa sổ (modulo 2k)
Ví dụ cửa sổ trượt
Phát hiện lỗi
Thêm các bit để có thể phát hiện ra lỗi trên đường
truyền
Sử dụng Parity
Sử dụng CRC
Kiểm soát lỗi
Bảo đảm dữ liệu nhận được đúng và chính xác
Mất frame: frame không đến đích
Frame sai: dữ liệu trong frame bị sai
Cung cấp cơ chế cho việc truyền dữ liệu trong trường hợp dữ liệu bị
mất hay sai sót trên đường truyền
Positive ACK – xác nhận các frame nhận được
Truyền lại sau một thời gian time-out
Negative ACK (NAK) và truyền lại – yêu cầu truyền lại (NAK) cho các frame bị hư
Điều khiển lỗi
ARQ (Automatic Repeat Request)
Cơ chế cho phép các nghi thức liên kết dữ
liệu quản lý lỗi và yêu cầu truyền lại
Phân loại
Idle RQ (stop-and-wait)
Dùng với cơ chế điều khiển dòng stop-wait
Được dùng chủ yếu trong truyền dữ liệu là ký
tự hay byte thông tin (character-oriented or
byte-oriented)
Continuous RQ
Điều khiển lỗi
(Error Control)
ARQ
Stop and Wait
Dùng với cơ chế điều khiển dòng slidingwindow
Được dùng chủ yếu trong truyền dữ liệu là bit
thông tin (bit-oriented)
Được chia làm hai loại tùy theo cách thức sửa
lỗi: selective reject và go-back-N
ARQ
Sliding windows
Go Back N
Selective reject
Stop–and–Wait
Cơ chế hoạt động
A gởi một I-Frame (Information Frame) đến B
A đợi trả lời
Lặp lại các bước trên
Ưu/khuyết điểm
ACK-Frame – A gới tiếp dữ liệu
NAK-Frame – A gời lại dữ liệu
Không nhận được trả lời – A gởi lại
sau thời gian time-out
Đơn giản
Không hiệu quả
Vấn đề
I-Frame nhận được, nhưng ACK bị mất/hư?
Có dùng được cho cơ chế sliding-window không?
Primary (P)
Go–back–N
Cơ chế hoạt động
Điều khiển
I(N)
I(N+1)
I(N+2)
I(N)
I(N)
Secondary (S)
I(N+3)
I(N+4)
I(N+5)
ACK(N)
I(N+1)
I(N+2)
I(N+3)
I(N+4)
I(N+5)
RR = receive ready = ACK = acknowledge
REJ = reject = NAK = negative acknowledge
Dựa trên cơ chế sliding window
A gởi liên tục các I-Frame đến B (trong khi cơ chế điều khiển dòng còn
cho phép)
B chỉ nhận I-Frame theo đúng chỉ số tuần tự ? thứ tự I-Frame truyền
được bảo đảm
Truyền lại tất cả các Frame sai kể từ Frame sai đầu tiên trở đi, bất kể các
I-Frame sau là đúng hay sai
I-Frame hư
ACK hư
A gởi frame i, B phát hiện lỗi và gới NAKi, A gởi lại các frame, kể từ frame i
Frame i bị mất nhưng frame i+1 nhận được, B gởi NAKi, A gởi lại các frame kể
từ frame i
Frame i bị mất và sau i, không còn frame nào được gởi. A không nhận được
trả lời, sẽ gởi lại frame I sau một thời gian time-out
B nhận được frame i, gởi ACKi, nhưng ACK này bị mất
A đợi hoài, sẽ gởi lại các frame, kể từ frame i
A gởi frame i, i+1, i+2. B gởi ACKi+2, được hiểu như bao gồm ACKi, ACKi+1
NAK hư
A đợi hoài, sẽ gởi lại các frame, kể từ frame i
Go–back–N
Khái niệm
Giả sử dòng các I-Frame đi theo
một chiều và chiều kia chỉ dùng
cho ACK
Các frame thông tin điều khiển
đủ chỗ để chứa ACK
(piggybacked acknowledgment),
do đó việc trao đổi dữ liệu fullduplex sẽ chứa ACK.
NAK thường được gởi riêng,
không theo kiểu piggyback
ACKN xác nhận cho frame N-1
Selective Reject
Cơ chế hoạt động
Tương tự như Go-Back-N, ngoại trừ việc chỉ gởi lại các frame bị
NAK hoặc time-out
Bên nhận có thể nhận frame thông tin không theo đúng chỉ số
tuần tự thứ tự frame thông tin truyền không được bảo đảm và
bên nhận phải có buffer để lưu lại các frame đến không theo
đúng chỉ số tuần tự
Vấn đề kích thước cửa sổ
Tình huống
A gởi 0-6 đến B
B xác nhận tất cả, nhưng tất cả ACK đều bị mất
A đợi hoài, nên gởi lại 0
B đã dịch cửa sổ nhận, nên có thể nhận 7,0,1,...5. Nó tưởng frame 7
bị mất và 0 là frame mới, nên chấp nhận (trùng frame)
Đây là vấn đề trùng lắp giữa cửa sổ gởi và cửa sổ nhận
Kích thước cửa sổ tối đa là ½(2n), tức 2n-1
Selective Reject
Cho một kênh truyền dữ liệu có khả năng truyền
dẫn là 0.6Mbps và thời gian trễ trên đường truyền
là 172ms. Nếu kích thước gói tin là 1193 bit. Hãy
tính số lượng bit tối đa có thể truyền qua kênh
truyền bỏ đi kích thước các gói tin ACK trong thời
gian 15 phút
Với giao thức stop and wait, go back N
A gửi cho B: 8 frame và frame thứ 2 bị sai, biết vòng
lập N=5 hãy vẽ
- ARQ stop and wait
- ARQ go back n
- ARQ Selective Reject .