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

Bài giảng mạng máy tính chương 4 cđ CNTT hữu nghị việt hàn

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 (1.85 MB, 64 trang )

Chương 4 – lớp Liên Kết Dữ Liệu
Khoa Khoa Học Máy Tính
Trường Cao Đẳng Công Nghệ Thông Tin
Hữu Nghị Việt Hàn


Chương 4. Lớp liên kết dữ liệu
 Vấn đề nghiên cứu:
 nguyên tắc tổ chức lớp liên kết dữ liệu với các
thuật toán để đạt được độ tin cậy và hiệu quả truyền
tin giữa 2 máy trạm liền kề.
 giao thức, phương pháp dò tìm và xử lý lỗi của lớp
này.


4.1 Vai trò, chức năng
 Lớp liên kết dữ liệu có các chức năng chính sau:
 Cung cấp dịch vụ cho lớp Mạng
 Khắc phục lỗi đường truyền
 Điều khiển luồng dữ liệu để tránh trường hợp tràn dữ liệu

 Để thực hiện được các nhiệm vụ này, lớp liên kết dữ liệu
nhận các gói dữ liệu từ Lớp Mạng và định dạng thành các
khung dữ liệu để truyền đi. Mỗi khung gồm phần mào đầu,
tải tin và phần đuôi khung


4.1.1 Cung cấp dịch vụ cho lớp mạng
 Lớp liên kết dữ liệu có khả năng cung cấp nhiều
dịch vụ khác nhau cho lớp mạng. Các dịch vụ này
khác nhau trong các hệ thống khác nhau. Có 3 dịch


vụ cơ bản như sau:
 Dịch vụ truyền tin không kết nối - không phúc đáp.
 Dịch vụ truyền tin không kết nối - có phúc đáp.
 Dịch vụ truyền tin có kết nối – có phúc đáp


4.1.1 Cung cấp dịch vụ cho lớp mạng
 Dịch vụ truyền tin không kết nối - không phúc đáp
 gửi các khung dữ liệu độc lập không cần xác nhận
 không cần thiết lập kênh logic trước khi truyền dữ
liệu và giải phóng kênh truyền sau khi kết thúc.
 Nếu khung dữ liệu nào bị mất do tạp âm đường
truyền thì lớp liên kết dữ liệu cũng không cần dò tìm
và khôi phục lại.
  Loại dịch vụ này sử dụng ở môi trường truyền
dẫn có tỷ lệ lỗi thấp hoặc đối với các dữ liệu thời
gian thực như truyền thanh, yêu cầu đáp ứng về thời
gian nhiều hơn là chất lượng dữ liệu.


4.1.1 Cung cấp dịch vụ cho lớp mạng
 Dịch vụ truyền tin không kết nối - có phúc đáp
 có độ tin cậy cao hơn.
 không sử dụng kênh logic để truyền dữ liệu nhưng
mỗi khung dữ liệu truyền đi sẽ được xác nhận đầu
phát có thể biết được khung dữ liệu đã đến đúng
đích nhận hay chưa. Nếu khung dữ liệu chưa đến
trong một khoảng thời gian nhất định thì nó sẽ được
gửi lại.
 Dịch vụ này thường được dùng trong các kênh dữ

liệu có độ tin cậy thấp như các hệ thống không dây.


4.1.1 Cung cấp dịch vụ cho lớp mạng
 dịch vụ truyền tin có kết nối- có phúc đáp
 Phức tạp nhất
 Thiết lập kết nối trước khi truyền dữ liệu.
 Mỗi khung dữ liệu trên kênh truyền được gán số thứ
tự và lớp liên kết dữ liệu đảm bảo rằng khung dữ
liệu này đã được nhận ở đầu thu.
 Ngoài ra, lớp liên kết dữ liệu còn đảm bảo rằng
khung dữ liệu này chỉ nhận một lần và theo đúng
thứ tự.


4.1.2 Tạo khung dữ liệu
 Khung dữ liệu
 Lớp liên kết dữ liệu làm việc dựa vào khả năng
chuyển tải của lớp Vật lý.
 Các bít thông tin truyền đi hoặc nhận về đều được
nhóm lại thành những đơn vị logic gọi là khung
(frame).
 Trong khung dữ liệu, ngoài các bit thông tin, còn
chứa các trường địa chỉ, trường điều khiển, trường
nhận biết, trường kiểm soát lỗi


4.1.2 Tạo khung dữ liệu
 Các phương pháp tạo khung dữ liệu
 Quá trình truyền thông tại lớp LKDL

 tách luồng bit thành các khung dữ liệu
 tính toán giá trị kiểm tra tổng (checksum) của mỗi
khung
 Khi khung dữ liệu đến đích nhận, giá trị
checksum này sẽ được tính toán lại và so sánh với
giá trị checksum nhận được của đầu phát để xác
định khung dữ liệu này có bị lỗi trong quá trình
truyền hay không


4.1.2 Tạo khung dữ liệu
 Việc tách luồng bit thành các khung dữ liệu
được thực hiện bởi một trong số các phương
pháp sau:





Đếm số ký tự.
Dùng cờ hiệu (flags) kết hợp với byte nhồi.
Dùng cờ hiệu (flags) kết hợp với bit nhồi.
Dựa vào kỹ thuật mã hóa của lớp vật lý.


4.1.2 Tạo khung dữ liệu
 Phương pháp đếm số ký tự sử dụng một trường trong phần
mào đầu (header) để xác định số ký tự trong một khung. Khi
lớp liên kết dữ liệu ở đầu nhận xác định được thông tin này
thì nó sẽ biết được có bao nhiêu ký tự trong một khung và vị

trí cuối cùng của khung.
 Nhược điểm: giá trị của trường đếm số ký tự có thể sai lệch
do lỗi đường truyền


4.1.2 Tạo khung dữ liệu
 Phương pháp thứ 2, phương pháp sử dụng cờ hiệu
kết hợp với byte nhồi, byte cờ hiệu (flag byte) để
phân biệt điểm bắt đầu và kết thúc một khung dữ
liệu
 byte cờ hiệu giúp xác định vị trí kết thúc của khung
dữ liệu hiện tại trong trường hợp mất đồng bộ.
 xác định vị trí kết thúc một khung dữ liệu và bắt đầu
một khung mới bằng hai byte cờ hiệu liên tiếp
 kỹ thuật nhồi byte (byte stuffing) hoặc nhồi ký tự
(character stuffing). Hiện tượng trùng lắp byte cờ
hiệu  giải quyết bằng cờ byte escape (ESC) được
chèn trước cờ hiệu giả.


4.1.2 Tạo khung dữ liệu
 Cơ chế giải quyết cờ “giả” bằng byte stuffing
 Phương phát này được dùng trong giao thức PPP Nhược điểm
là sử dụng các từ mã cố định 8 bit


 Nhược điểm: gắn từ mã có giá trị bằng 8 bit.
 Trên thực tế, không phải từ mã nào cũng 8 bit



4.1.2 Tạo khung dữ liệu
 Phương pháp dùng cờ hiệu bắt đầu và kết thúc kết hợp bit
nhồi: Cờ hiệu là 01111110

 Nếu đầu phát có dữ liệu 111111  1111101
 Đầu thu nhận được dữ liệu 1111101  111111


4.1.2 Tạo khung dữ liệu
 Phương pháp thứ tư, phương tách khung dựa vào
kỹ thuật mã hóa của lớp vật lý chỉ được áp dụng
đối với các mạng sử dụng thêm các bit khi mã hóa
dữ liệu.
 Ví dụ, một số mạng LAN mã hóa 1 bit dữ liệu bằng
2 bit vật lý, thông thường bit 1 được đại diện bằng
cặp trạng thái (cặp bit) là cao - thấp và bit 0 được
đại diện bằng cặp trạng thái là thấp – cao. Như vậy,
người ta dùng cặp trạng thái cao – cao và thấp –
thấp không dùng cho việc biễu diển dữ liệu để phân
biệt ranh giới giữa các khung dữ liệu.


4.1.2 Tạo khung dữ liệu
 Tóm lại, đối với việc tạo khung dữ liệu ở nhiều
giao thức người ta sử dụng kết hợp phương pháp
đếm số ký tự kết hợp với các phương pháp còn lại
nhằm đảm bảo độ an toàn cho dữ liệu.
 Tại đầu thu, người ta dùng giá trị của trường đếm
số ký tự để xác định vị trí kết thúc của khung dữ
liệu, nếu cờ hiệu xuất hiện đúng vị trí và giá trị

kiểm tra tổng (checksum) đúng thì khung dữ liệu
được chấp nhận. Ngược lại, hệ thống sẽ tìm kiếm vị
trí bắt đầu của khung tiếp theo dựa vào cờ hiệu


4.1.3 Kiểm soát lỗi
 Mục đích: tất cả các khung dữ liệu đã truyền đến được lớp
mạng của đầu thu dữ liệu theo đúng trật tự
 Phương pháp: Sử dụng các thông điệp từ đầu thu để báo cho
đầu phát thông điệp đã được gửi thành công hay chưa
 Thông báo Possitive Acknowledgement – ACK: Thông điệp
gửi thành công
 Thông báo Negative Acknowledgement – NAK: Thông điệp
gửi không thành công

 Vấn đề:
 chờ ACK/NAK từ phía đầu thu quá lâu, dẫn đến quá hạn
(timed – out)  phương thức tự động truyền lặp ARQ.
 nhận/gửi một gói tin nhiều lần  số thứ tự của khung DL

 Kết hợp bộ định thời nơi phát cho mỗi gói tin và đánh số
thứ tự cho mỗi gói tin.


4.1.4 Điều khiển luồng
 Mục đích: Giải quyết tình trạng mất đồng bộ trong truyền
thông giữa phía đầu phát và đầu thu.
 Phương pháp xử lý:
 điều khiển luồng sử dụng hồi tiếp (feedback-based flow
control), đầu thu sẽ gửi thông tin phản hồi về cho đầu phát để

báo cho đầu phát biết có nên tiếp tục phát dữ liệu nữa hay
không hoặc nó sẽ báo cho đầu phát biết rằng quá trình nhận
dữ liệu đang diễn như thế nào  Phương pháp phổ biến:
trong giao thức chứa các các luật được định nghĩa sẵn qui
định thời điểm mà đầu phát dữ liệu sẽ phát khung dữ liệu
tiếp theo
 điều khiển luồng dựa vào tốc độ dữ liệu (rate-based flow
control), trong phương pháp này giao thức sẽ có một cơ chế
để hạn chế tốc độ phát dữ liệu ở đầu phát mà không cần thông
tin phản hồi từ đầu thu  không được sử dụng trên thực tế


4.2 Phương pháp dò tìm và sửa lỗi
 Các loại lỗi:
 Lỗi đơn: Lỗi chỉ một bit, một đơn vị dữ liệu  dễ xảy ra, dễ
phát hiện và sửa chữa
 Lỗi chùm: Lỗi trên nhiều bit, nhiều đơn vị dữ liệu  khó xảy
ra, khó phát hiện và sửa chữa.

 Biện pháp khắc phục lỗi:
 Kiểm soát lỗi hướng tới: bổ sung thêm các thông tin vào mỗi
khối dữ liệu cho phép đầu thu xác định được thông tin nhận
được có bị lỗi hay không và chỉ ra vị trí của lỗi đó
 Kiểm soát lỗi quay lui: chỉ thêm vào các trường thông tin cho
phép đầu thu nhận biết khung dữ liệu nào bị lỗi và yêu cầu
phát lại khung dữ liệu đó mà không chỉ ra vị trí lỗi


4.2 Phương pháp dò tìm và sửa lỗi
 Khung dữ liệu: m bit chứa bản tin và r bit chứa thông tin

kiểm tra, do đó chiều dài của khung dữ liệu là n = m + r.
 m bit thông tin  2m bản tin có nghĩa
 n bit dữ liệu  2n bản tin dữ liệu
 Khoảng cách Hamming của 2 từ mã: Số bit khác nhau giữa
hai từ mã (phép toán OR)
 Ví dụ hai từ mã sau đây: 10001001 và 10110001 có

khoảng cách mã Hamming là 3.
 Khoảng cách Hamming của mã: Từ 2n tổ hợp dữ liệu chúng
ta tạo ra danh mục các từ mã được sử dụng cho truyền thông
(chỉ 2m), tìm ra 2 từ mã có khoảng cách Hamming nhỏ nhất
 khoảng cách Hamming của mã


4.2 Phương pháp dò tìm và sửa lỗi
 Tính chất dò tìm lỗi và sửa lỗi của một mã phụ
thuộc vào khoảng cách Hamming của mã đó.
 Để dò được d lỗi  cần mã có khoảng cách
Hamming là d+1
 Để sửa được d lỗi  cần mã có khoảng cách 2d+1

 Ví dụ n=10, chúng ta có tất cả 210 các giá trị. Chọn
các từ mã sau đây để làm mã truyền thông:
0000000000; 0000011111; 1111100000;
1111111111.
 Khoảng cách Hamming là 5
 mã này dò được 4 lỗi
 mã này sửa được 2 lỗi



4.2 Phương pháp dò tìm và sửa lỗi
 Nếu đầu phát gửi đi từ mã 0000011111 đến đầu thu kiểm tra
kết quả là 0000011100 (sai 2 bit) thì từ mã 0000011111 có
thể sửa sai được vì khoảng cách Hamming của nó đến từ mã
gốc gần nhất 0000011111  0000011100 là 2 có thể phát
hiện được.
 Trong trường hợp đầu thu nhận được 0000011000 thì không
thể sửa sai được vì khoảng cách Hamming của nó đến các từ
mã gốc là không thể phát hiện được
 0000011000 0000011111=3
 0000011000 0000000000=2


4.2.1 Phương pháp dò lỗi Parity Check
 Dựa vào từ mã quy ước giữa đầu phát và đầu thu là chẵn/ lẻ,
đầu phát sẽ chèn thêm 1 bit kiểm tra chẵn/ lẻ tương ứng. Bit
này là 0 hoặc 1 để đạt được từ mã có giá trị chẵn/ lẻ đã quy
ước.
 Ví dụ hệ thống quy ước sử dụng từ mã chẵn.
 Nếu dữ liệu là 01100010 chèn thêm bit 1  011000101: từ
mã chẵn
 Nếu dữ liệu là 01101010 chèn thêm bit 0  011010100: từ
mã chẵn.

 Phía đầu thu sẽ căn cứ vào từ mã thu được, kiểm tra nó:
 Nếu chẵn: Dữ liệu đúng hoặc bị lỗi với khoảng cách
Hamming là bội số của 2
 Nếu lẻ: Dữ liệu chắc chắn sai.

 Nếu đúng, đầu thu loại đi bit kiểm tra và lấy dữ liệu cuối



4.2.2 Phương pháp kiểm dư vòng
(CRC- Cyclic Redundancy Check)
 Đặc điểm:
 Đây là một phương pháp dùng để dò lỗi, không có tác dụng
sửa lỗi,
 thường được sử dụng phổ biến khi môi trường truyền dẫn có
chất lượng cao, ít lỗi như cáp đồng, cáp quang.

 Phương pháp này khai thác đặc trưng của các số nhị phân
khi dùng phép toán modulo-2 để tính toán ra giá trị
checksum. Giả sử M(x) là một số m bit cần truyền, G(x) là
đa thức sinh có bậc r (phần tử chia)


×