Bài giảng Kỹ thuật truyền số liệu - Chương 4: Nghi thức liên kết dữ liệu trình bày các nội dung chính sau: Kiểm soát lỗi, cấu trúc khung Idle -RQ, Hệ số sử dụng đường truyền của nghi thức idle RQ, hiệu suất truyền Idle RQ- không lỗi, hiệu suất truyền Idle RQ- có lỗi, RQ liên tục.
Trang 1Chương 4 Nghi thức liên kết dữ liệu
Kiểm soát lỗi
IRQ/ ARQ
Go back n
Selective repeat
HDLC
Trang 2Kiểm soát lỗi – IDLE RQ
Hoạt động ở chế độ bán song công
Khi P gởi cho S một Frame thì P phải chờ S báo khung trước đó đã nhận đúng hay sai Và P sẽ
truyền khung mới hay khung cũ tùy thuộc vào việc nhận đúng hay sai của S
Có hai loại IDLE –RQ:
Truyền hiểu ngầm
Truyền tường minh
Trang 3IDLE-RQ –
stop and wait ARQ hiểu ngầm
Việc truyền lại hiểu ngầm
S: chỉ xác nhận khung truyền nào đúng
P: tự hiểu ngầm có khung truyền của nó bị sai hoặc mất
S: khi phát hiện khung đúng nó sẽ truyền lại
khung xác nhận ACK (acknowledgement)
S: phát hiện khung sai hoặc bị mất thì nó không làm gì cả và khi đó P tự hiểu ngầm và truyền lại
Trang 4IDLE-RQ –
stop and wait ARQ hiểu ngầm
hiểu ngầm
P: gởi một I-frame đến S
P đợi phản hồi từ đích
ACK-frame: P sẽ gởi một I-frame mới cho P
//NAK-frame: P sẽ gởi lại I-frame cũ
Không nhận được trả lời: P gởi lại I-frame cũ
sau thời gian time out
Trang 5Cấu trúc khung Idle -RQ
Số chứa trong mỗi I-frame gọi là N(S)- send sequence number
Số chứa trong mỗi ACK/ NAK frame gọi là N(R) – receive sequence number
Các ký tự điều khiển vẫn được sử dụng
SOH, STX, ETX
Trang 6Cấu trúc khung Idle -RQ
Mỗi I-frame phải chứa một N(S) sau SOH (start of header), kế tiếp là cấu trúc thông thường trong truyền bất đồng bộ Trong đó
ký tự cuối cùng là BCC (kiểm tra tổng khối)
để phía thu biết nhận đúng hay sai
Ba khung cơ bản I-frame, ACK-frame, frame là các đơn vị dữ liệu PDU (protocol data units) của nghi thức idle –RQ
Trang 7NAK-Cấu trúc khung Idle -RQ
NAK N(R) BCC Dạng thức
Khung ACK Dạng thức Khung NAK
Trang 9Hiệu suất truyền Idle RQ- không lỗi
Xét khung truyền thứ N từ P sang S không bị sai Phía S sau khi xử lý sẽ truyền ACK
frame từ S sang P
Tp thời gian truyền sóng từ P S
Tix thời gian phát một khung
Tip thời gian xử lý của S cho I-frame
Tax thời gian xử lý của P cho ACK frame
Tt thời gian kể từ khi P phát một khung đến khi xử
Trang 10Hiệu suất truyền Idle RQ- không lỗi
ix
ix ix
2
2 set up =
t
p ip
p p
T T T
v
• Thời gian phát một khung:
• N: tổng số bit trong khung
• R: tốc độ bit của kênh truyền
ix
N T
R
•Nếu cự ly đường truyền là lớn, hệ số
a lớn hiệu suất đường trường thấp
Trang 11Hiệu suất truyền Idle RQ- không lỗi
Ví dụ 4.1: các khung truyền liên tiếp, có chiều dài
1000bits được truyền dùng nghi thức idle RQ Xác định hệ số sử dụng đường truyền cho các loại
đường truyền khác nhau sau đây (giả sử xét các tốc bit 1kbps, và 1Mbps, vận tốc truyền sóng là
2.10^8m/s, đường truyền không bị lỗi)
A cáp xoắn có chiều dài 1km
B đường dây thuê bao riêng 2000km
C đường truyền vệ tinh 50000km
Trang 13Hiệu suất truyền Idle RQ- có lỗi
Trong cơ chế Idle RQ, nếu truyền sai thì truyền lại
Giả sử truyền được một khung thì có trung bình Nr khung được thực hiện truyền
Trang 14Hiệu suất truyền Idle RQ- có lỗi
Xác suất sai một khung:
P N P P
Trang 15Ví dụ 4.2
Hướng dẫn câu a – b&c sv tự làm
Hiệu suất đường truyền:
R= 1kbps
R= 1Mbps
4 6
Trang 16 S trả về P một ACK khi nhận được một khung
không sai
Mỗi I-frame chứa một định danh duy nhất sẽ được trả về trong các ACK tương ứng
Trang 18RQ –liên tục – Selective repeat
S phát hiện và chỉ yêu cầu truyền lại đối với những khung nào bị sai
Có hai cách:
Selective repeat hiểu ngầm
Selective repeat tường minh
Trang 19Selective repeat hiểu ngầm
Trang 20Selective repeat hiểu ngầm
Trong mô hình truyền gói I(N+1) bị lỗi
S trả về ACK cho mỗi I-frame nhận tốt ở trước đó (ACK N, N+2, N+3)
Khi P nhận ACK(N+2) thì nó tự hiểu ngầm rằng S
đã không xác nhận I-frame I(N+1)
P tự động loại bỏ những I-frame được lưu trữ
trong FIFO mà nó có xác nhận ACK tương ứng
P tự động truyền lại I-frame I(N+1) trước khi nó phát I-frame I(N+5)
Trang 21Selective repeat hiểu ngầm
Trang 22Selective repeat hiểu ngầm
Mô hình selective repeat trong trường hợp
gói ACK(N) bị lỗi
Khi nhận được ACK(N+1) thì P phát hiện chưa có
sự xác nhận của I(N) tức là ACK(N) nên nó sẽ
truyền lại I(N)
S nhận lại I(N) thấy hai bản I-frame giống nhau về chỉ số tự động loại bỏ 1
S loại bỏ khung I(N) nhưng cũng phải trả về ACK
để cho P biết và P tự động loại bỏ I(N) trong danh
Trang 23Selective repeat tường minh
S dùng NAK-frame để yêu cầu P truyền lại
khung cụ thể, NAK xem như việc loại bỏ có lựa chọn
Một khung ACK xác nhận tốt tất cả các
khung trong danh sách truyền lại từ thấp đến
số thứ tự của khung ACK hiện hành – tức là
P sẽ loại bỏ tất cả các khung trong danh sách truyền lại tương ứng
Trang 24Selective repeat tường minh
Trang 25Selective repeat tường minh
Trường hợp gói I(N+1) bị lỗi
S trả về khung ACK cho I(N)
Khi S nhận được khung I(N+2), nó phát hiện I(N+1) nên nó trả về P khung NAK(N+1)
Khi P nhận NAK(N+1) thì hiểu rằng S đang chờ khung
I(N+1) nên P sẽ truyền lại khung này
Khi S trả về P khung NAK, nó rời vào trạng thái truyền lại
có nghĩa là nó phải đợi cho được khung dữ liệu ứng với NAK mà nó đã gởi đi Sau khi nhận được khung này rồi nó
sẽ gởi ACK tương ứng khung mà nó nhận lại được (theo mong muốn do mất)
Trang 26Selective repeat tường minh
Trường hợp gói I(N+1) bị lỗi
Trong suốt quá trình trạng lại S không truyền ACK hay
NAK nào cho P.(Trạng thái treo)
Khi S bắt đầu nhận lại được I(N+1) thì nó sẽ bắt đầu gởi lại các khung ACK tương ứng
ACK(N+1) sẽ xác nhận tốt cho tất cả các khung đánh số đến N+1
Một bộ định thì được sử dụng với mỗi khung NAK để đảm bảo nếu khung này bị mất thì nó phải được truyền lại cho đến khi chính xác
Trang 27Go back n
Khi S phát hiện một khung không đúng thứ
tự, nó yêu cầu P truyền lại tất cả các khung bắt đầu từ một vị trí cụ thể S thực hiện điều này bằng cách trả về P một khung NAK đặc biệt được xem như loại bỏ
Trang 28Go back n
Trang 29Go back n
I-frame I(N+1) bị lỗi
S nhận I(N+2) không đúng thứ tự
Khi S nhận I(N+2), S trả về NAK(N+1) để thông báo
P truyền lại I(N+1)
S rơi vào trạng thái truyền lại và đợi I(N+1)
Khi S nhận được I(N+1) thì rời khỏi trạng thái truyền lại và tiếp tục nhận như trước đó
Để ngăn ngừa NAK frame bị lỗi, S bắt đầu định thì
để nhận khung I(N+1) trong khoảng thời gian đặt
Trang 30Go back n
Trang 31Go back n
Xét trường hợp ACK(N) và ACK(N+1) sai, P không nhận được
S nhận đúng thứ tự các khung I-frame, nó
không yêu cầu truyền lại
Khi P nhận ACK(N+2) mà trước đó không hề nhận được NAK từ S thì tự biết rằng tất cả các I-frame cho đến I(N+2) đều đã đúng và
tự động xóa các I-frame có chỉ số <= N+2
Trang 32Các nghi thức định hướng bit
SDLC: Synchronous Data Link Control
IBM phát triển năm 1975
HDLC: High Level Data Link Control
Phát triển dựa trên SDLC
Dựa vào HDLC ITU-T phát triển thêm một số nghi thức:
LAPB, LAPD, LAPM, LAPF, Frame relay, PPP
Các nghi thức thiên hướng bit ngày nay đều có nguồn
Trang 34HDLC
Các cấu hình
Bất cân bằng: cấu hình dạng Master/Slave
Thông thường là cấu hình trong mạng multi-point
Đối xứng: mỗi trạm vật lý chứa cả hai P và S
Cân bằng: hai trạm kết nối theo dạng p2p
Cả ba loại cấu hình đều được truyền cả hai dạng song công và bán song công
Trang 36HDLC – các cấu hình
Trang 37HDLC: Các cấu hình
Cấu hình cân bằng
Command/response
Command/response combined combined
Trang 40cùng
Trang 41HDLC: ABM
Tất cả các trạm bằng nhau và
được nối p2p
Bất cứ trạm kết hợp (combined) nào cũng có thể khởi động truyền với trạm kết hợp khác mà không cần xin phép
Trang 42Các khung của HDLC
I-frames: khung thông tin
S-frames: khung giám sát
U-frames: khung không đánh số
Trang 45HDLC: Trường của khung
Mỗi khung trong HDLC chứa sáu trường:
Trường Flag bắt đầu (cờ mở đầu – opened flag)
Trường Address (địa chỉ)
Trường Control (điều khiển)
Trường Information (thông tin dữ liệu)
Trường FCS (Frame Check Sequence – thông tin kiểm tra tuần tự)
Trường Flag cuối (cờ đóng – closed flag)
Trang 46Flag
Gồm một chuổi 8 bit “01111110” có vai trò
bắt đầu và kết thúc một khung
Có tác dụng như là mẫu đồng bộ của bộ thu
Vấn đề đặt ra là: dữ liệu của “Control” và
“Information” có thể chứa cờ “Flag” Khi đó
bộ thu “nhầm rằng đã kết thúc khung dẫn đến nhận sai”, bộ phát phải làm thế nào?
Trang 47Flag
HDLC (phía phát) tự động chèn thêm bit:
Khi bộ gửi muốn truyền một chuổi bit có từ 5 bit “1” liên tiếp
Trang 48Trường địa chỉ (Address Field-AF)
Chứa địa chỉ của trạm secondary
Primary tạo AF đến
Secondary tạo AF đi
AF có thể chứa một byte hoặc nhiều byte phụ thuộc vào nhu cầu của mạng
Một byte chỉ đến 128 trạm
Các mạng lớn hơn yêu cầu nhiều hơn một byte cho AF
AF có một byte thì bit cuối cùng phải là “1”
AF có hơn một byte thì byte cuối cùng kết thúc là “1” và các byte còn lại kết thúc là “0”
Trang 49Trường điều khiển
(Control Field – CF)
Chứa một hoặc hai byte (dùng trong trường hợp mở rộng) để quản lý luồng
Trang 50Trường điều khiển - CF
P/F: có một bit và chỉ có ý nghĩa khi bit
Poll: khung được gửi bởi một trạm Primary
đến một trạm Secondary (trường AF chứa
Final:khung được gửi bởi một trạm
Secondary đến một trạm Primary (trường
AF chứa địa chỉ của bộ nhận)
Trang 51Trường thông tin – IF
Chứa dữ liệu của người dùng trong I-frame
Chứa thông tin quản lý trong U-frame
Chiều dài IF trong những mạng khác nhau là khác nhau, nhưng trong một mạng là cố định
Đối với song công hoặc bán song công thì có
sự kết hợp dữ liệu được gửi chung với điều khiển gọi là Piggybacking
Trang 52Trường FCS
trường kiểm tra phát hiện sai
Gồm 2 byte hoặc 4 byte
Được tính dựa trên các bit của khung – trừ Flag
Là các mã:
CRC16 bit (CRC – CRCITT)
CRC32 bit
Trang 53Hoạt động của HDLC
Là quá trình trao đổi I-frame,
U-frame, S-frame giữa hai bên P và
S
Gồm 3 giai đoạn
Trao đổi dữ liệu
Trang 54Khởi tạo trong hoạt động HDLC
Gởi U-frame khởi tạo một trong 6 chế độ:
SNRM/SNRME
SARM/SARME
SABM/SABME
Chế độ truyền và số bit đánh chỉ số frame
Nếu đồng ý kết gởi lại U-frame UA –
Unnumbered acknowdged
Nếu không đồng ý kết nối gởi lại U-frame DM
Trang 55Trao đổi dữ liệu trong HDLC
Xãy ra sau khi đã có kết nối
Cả hai bên đều có thể gởi I-frame chỉ số tuần tự bắt đầu từ 0
Các S-frames có thể nhận được để điều khiển dòng
và điều khiển lỗi
RR – ACK
RNR – bên nhận bận, sau đó phải phát RR để tiếp tục
nhận dữ liệu
Trang 56Ngắt kết nối trong HDLC
(disconect)
gởi lại frame UA – unnumbered
acknowdged
phục hồi phải do các lớp trên)