1. Trang chủ
  2. » Công Nghệ Thông Tin

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

64 231 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 64
Dung lượng 1,85 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

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

Trang 2

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.

Trang 3

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

Trang 4

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

Trang 5

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.

Trang 6

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

Trang 7

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ự.

Trang 8

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

Trang 9

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

Trang 10

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ý.

Trang 11

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

Trang 12

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ả

Trang 13

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

Trang 14

 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

Trang 15

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

Trang 16

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

Trang 17

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

Trang 18

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.

Trang 19

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ế

Trang 20

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

Trang 21

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ã

Trang 22

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

 mã này dò được 4 lỗi

 mã này sửa được 2 lỗi

Trang 23

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

Trang 24

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

 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

Trang 25

4.2.2 Phương pháp kiểm dư vòng

(CRC- Cyclic Redundancy Check)

 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)

Trang 26

4.2.2 Phương pháp kiểm dư vòng

(CRC- Cyclic Redundancy Check)

 Các bước tiến hành

Bước 1: Thêm r bit 0 vào cuối chuỗi bit cần truyền Xâu ghép

có (m+r) bit, tương ứng với đa thức xr M(x).

Bước 2: Chia modulo-2 chuỗi bit tương ứng với xr M(x) cho

chuỗi bit tương ứng với G(x).

Bước 3: Lấy số bị chia trong bước 2 trừ (modulo-2) cho số

dư.

 Kết quả chuỗi bit được truyền đi sẽ là chuỗi gốc ghép với

checksum tính được ở trên

 1101011011 và đa thức sinh G(x) = x4 + x +1, ta tính toán

được giá trị checksum và chuỗi bit truyền đi như sau

Trang 27

4.2.2 Phương pháp kiểm dư vòng

(CRC- Cyclic Redundancy Check)

 Dữ liệu gửi 1101011011

 Đa thức sinh 10011  bậc 4 cần chèn 4 bit 0 vào dữ liệu

 Chuỗi sau khi được chèn: 11010110110000

 Lấy phép chia của 11010110110000 cho đa thức sinh 10011

kết quả số dư là 1110

 Chuỗi được truyền đi là: 11010110111110

 3 đa thức sinh được sử dụng phổ biến:

 CRC-12= x12 + x11 + x3 + x2 + x +1

 CRC-16= x16 + x15 + x2 +1

 CRC-CCITT= x16 + x12 + x5 +1

Trang 28

4.3 Điểu khiển luồng bằng cửa sổ trượt

 Yêu cầu thực tế: Truyền dữ liệu đồng thời ở cả hai

phía đầu cuối, cần có:

 Một kênh dành cho dữ liệu

 Một kênh dành cho điều khiển

 Lãng phí băng thông dành cho kênh điều khiển

 Khắc phục:

 Sử dụng cùng kênh truyền cho dữ liệu cả hai hướng

 Khung dữ liệu được trộn với khung phúc đáp trên một hướng truyền, và phân biệt với nhau qua loại khung dữ liệu

Trang 29

4.3 Điểu khiển luồng bằng cửa sổ trượt

 Cơ chế piggyback: Khi nhận một khung dữ liệu, thay vì

phản hồi tức thì, máy thu đợi nhận một gói tin từ lớp mạng của nó, đính kèm trường ACK vào gói tin đó trong tiêu đề khung để gửi cho máy phát Kết quả là phúc đáp được gửi

đi mà không cần tốn băng thông đường truyền

 Tiết kiệm băng thông nhiều hơn so với sử dụng một khung phúc đáp riêng rẽ.

 Vấn đề đặt ra là máy thu phải đợi bao lâu trước khi nó gửi

phúc đáp cho máy phát?

 Nếu quá lâu máy phát sẽ tự động gửi lại gói tin ban đầu

 Giải quyết: sử dụng bộ định thời để xác định thời điểm trễ hạn bắt buộc phải phúc đáp, nếu máy thu không có gói tin muốn truyền dữ liệu cho máy phát.

Trang 30

4.3 Điểu khiển luồng bằng cửa sổ trượt

 Kỹ thuật cửa sổ trượt: là một chuỗi các khung dữ

liệu liền kề nhau được phát đi mà chưa có phúc đáp

 Khi nhận xong các khung dữ liệu trong một cửa sổ,

đầu thu sẽ dịch chuyển hay “trượt” cửa sổ này lên một đơn vị để nhận tiếp các khung dữ liệu trong cửa

sổ tiếp theo vì vậy người ta gọi kỹ thuật này là kỹ

thuật cửa sổ trượt

 Cả đầu phát và đầu thu đều sử dụng cửa sổ trượt khi

truyền dữ liệu, cửa sổ trượt ở đầu phát gọi là cửa sổ truyền (Sending Window) và cửa sổ trượt ở đầu thu gọi là cửa sổ thu (Receiving Window).

Trang 31

4.3 Điểu khiển luồng bằng cửa sổ trượt

 Trong trường hợp tổng quát, hai cửa sổ này không

nhất thiết phải có cùng chung giá trị cạnh trên và

cạnh dưới trong cùng một thời điểm cũng như

không nhất thiết phải có cùng chung kích thước.

 Các số thứ tự trong cửa sổ truyền cho biết số khung

đã được gửi đi song chưa có phúc đáp.

 Do các khung này có thể bị thất lạc hoặc bị hư

hỏng trong quá trình truyền nên chúng phải được lưu vào trong bộ nhớ của đầu phát để khi cần có thể truyền lặp lại

Trang 32

4.3 Điểu khiển luồng bằng cửa sổ trượt

Trang 33

 Như vậy, nếu kích thước lớn nhất của cửa sổ là n thì nó phải

có ít nhất n vùng đệm để lưu n khung chưa có phúc đáp

 Còn ở bên thu, với kích thước cửa sổ là hữu hạn nên khi số

lượng khung đến vượt quá giá trị của cửa sổ thì cách đơn giản nhất và cũng thông dụng nhất là hủy các khung này và bắt

buộc đầu phát truyền lặp lại

 Khung đến có số thứ tự trùng với cạnh dưới của cửa sổ thu sẽ

được chấp nhận, dữ liệu của nó (gói) được chuyển lên lớp

mạng và phúc đáp được tạo ra, đồng thời cửa sổ dịch lên một đơn vị

Cửa sổ thu, khác với cửa sổ phát, luôn luôn không đổi về giá

trị Trong quá trình này, đầu thu luôn phải nhớ rằng nó phải

nhận các khung theo đúng thứ tự mà đầu phát truyền lên kênh

Trang 34

4.3.2 Thủ tục cửa sổ trượt (Sliding Window) có kích thước một bit

 Giả thiết rằng đầu phát luôn có khung dữ liệu để

truyền, nói cách khác là lớp điều khiển dữ liệu luôn

có sẵn các gói dữ liệu do lớp mạng cung cấp để

thực hiện phép truyền liên tục Chiến lược truyền

lặp ARQ được kết hợp với cửa sổ để điều khiển số

lượng khung lưu thông trên đường truyền giữa A

và B Mô hình ARQ đơn giản nhất là ARQ dừng -

đợi, có nghĩa là sau khi đầu phát đã truyền đi một

khung dữ liệu, nó dừng lại và đợi phúc đáp của bên thu Nhận được phúc đáp nó mới gửi tiếp khung

tiếp theo Như vậy, ta thấy ngay, thực tế đây cũng

chính là mô hình cửa sổ trượt với kích thước cửa sổ bằng 1.

Trang 35

4.3 Điểu khiển luồng bằng cửa sổ trượt

Ban đầu

Sau khi gói thứnhất được gửi

Sau khi nhận gói thứ nhất

Sau khi phúc đáp thứ nhất trở lại

Trang 36

4.3 Điểu khiển luồng bằng cửa sổ trượt

 Trao đổi bản tin với cửa sổ 1 bit như sau:

 Máy A ở tầng 2 nhận gói dữ liệu từ tầng 3, tạo bản tin gửi đi Khi bản tin này đến tầng 2 máy B, nó sẽ tự kiểm tra xem có bị lặp lại không Nếu đúng là bản tin đang mong đợi thì nó được chuyển lên tầng 3 và cửa sổ dịch đi một nấc Vùng ACK chứa

số bản tin cuối đã được nhận không lỗi Nếu số này trùng với

số bản tin vừa gửi, đầu phát sẽ lấy gói dữ liệu tiếp theo từ lớp mạng Nếu số không đúng nó phải gửi lại bản tin cũ.

 Với thuật toán dùng cửa sổ có kích thước bằng 1, phần lớn

thời gian sau khi đã truyền xong một khung A và B phải đợi phản hồi ngược lại mới có thể truyền tiếp được khung khác nên hiệu quả phép truyền không thể cao được

 Để sử dụng kênh truyền hiệu quả hơn cần có các thuật toán

khác với kích thước cửa sổ lớn hơn

Ngày đăng: 04/12/2015, 15:37

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm