Framing - đóng gói dữ liệu

0 0 0

Người đăng: Viblo Fundamentals

Theo Viblo Asia

I. Giới thiệu framing

1. Khái niệm

Trong thế giới mạng máy tính, việc truyền dữ liệu chính xác và hiệu quả thông qua các thiết bị khác nhau đóng một vai trò cực kỳ quan trọng. Tại tầng liên kết dữ liệu (Data link layer), một kỹ thuật cốt lõi được sử dụng là Framing, hay còn gọi là đóng gói/khung (dữ liệu). Framing là quá trình đóng gói dữ liệu rời rạc/thô vào các đơn vị dữ liệu có cấu trúc - gọi là frames (khung).

Để dễ dàng hình dung quá trình này, bạn đọc có thể tưởng tượng các dữ liệu bit được truyền theo dòng bit và rời rạc, framing chính là khóa trình "đưa" các bit "không đầu không đuôi" đó vào từng khung, có đầu ra (output) là từng frame có ý nghĩa. Frame cũng được sử dụng như đơn vị truyền dẫn kỹ thuật số, mỗi frame không chỉ chứa dữ liệu cần truyền đi mà còn bao gồm các thông tin quan trọng khác nhằm đảm bảo việc truyền thông được thực hiện chính xác và hiệu quả.

2. Vai trò của framing trong tầng liên kết dữ liệu

Tầng liên kết dữ liệu có nhiệm vụ quan trọng là đảm bảo rằng thông tin từ tầng mạng (Network layer) được truyền đi tin cậy và an toàn. Framing chính là cơ chế sinh ra để thực hiện điều đó, nó giúp định dạng, chuẩn bị, kiểm tra dữ liệu trong quá trình truyền tải. Vai trò của framing trong tầng liên kết dữ liệu bao gồm:

  • Định dạng, phân chia dữ liệu và đồng bộ hóa
  • Định địa chỉ và điều khiển
  • Phát hiện và sửa lỗi

II. Cấu trúc frame

Một frame bao gồm nhiều thành phần khác nhau, mỗi thành phần đều đóng vai trò quan trọng trong việc đảm bảo dữ liệu được truyền đi một cách chính xác và hiệu quả. Cấu trúc frame thường bao gồm Frame header, Payload field, Trailer, và Flag.

1. Frame header

Frame Header chứa các thông tin quan trọng cần thiết cho việc xử lý frame:

  • Trường địa chỉ (Address field): Xác định nguồn và đích của frame, giúp hệ thống mạng định tuyến frame một cách chính xác.
  • Trường kiểm soát (Control field): Chứa thông tin kiểm soát lưu lượng và các thông tin điều khiển khác, giúp quản lý việc truyền và nhận frame.
  • Trường loại (Type field): Xác định loại dữ liệu hoặc giao thức được sử dụng, giúp thiết bị nhận biết cách xử lý payload.

2. Payload field

Payload field là phần chứa dữ liệu thực sự được truyền đi. Kích thước và nội dung của payload có thể thay đổi tùy thuộc vào loại thông tin cần truyền và giao thức được sử dụng. Có thể bao gồm:

  • Dữ liệu người dùng: Chứa thông tin mà người dùng muốn truyền đi.
  • Thông tin điều khiển: Đôi khi, payload cũng bao gồm thông tin kiểm soát cần thiết cho việc xử lý frame.

3. Trailer

Trailer chứa thông tin kiểm tra lỗi và thông tin kiểm soát khác để đảm bảo tính toàn vẹn của dữ liệu được truyền. Trailer thường bao gồm:

  • Checksum hoặc CRC (Cyclic Redundancy Check): Các giá trị này được sử dụng để phát hiện lỗi có thể xảy ra trong quá trình truyền dữ liệu.
  • Thông tin điều khiển: Đôi khi trailer cũng chứa thông tin điều khiển cần thiết cho việc xử lý frame.

4. Flag

Flag được sử dụng để đánh dấu bắt đầu và kết thúc của một frame, giúp thiết bị mạng phân biệt các frame khác nhau trong dòng dữ liệu liên tục.

  • Flag bắt đầu: Đánh dấu bắt đầu của frame.
  • Flag kết thúc: Đánh dấu kết thúc của frame.

III. Các kiểu framing

Có hai kiểu framing chính được sử dụng: fixed size framing và variable size framing.

1. Fixed size framing

Trong fixed size framing, mỗi frame được đóng gói có cùng kích thước cố định. Kích thước này được xác định trước và không thay đổi trong quá trình truyền dữ liệu. Phương pháp này đơn giản hóa việc xử lý frame bởi vì các thiết bị mạng có thể dễ dàng xác định điểm bắt đầu và kết thúc của mỗi frame mà không cần thông tin đặc biệt.

Ưu điểm:

  • Dễ dàng trong việc xử lý do kích thước frame cố định.
  • Không yêu cầu các cơ chế phức tạp để xác định ranh giới của frame.
  • Xử lý nhanh chóng và hiệu quả trong các hệ thống mà thông tin được truyền ở tốc độ cao và ổn định.

Nhược điểm:

  • Không linh hoạt trong việc đóng gói dữ liệu có kích thước biến đổi.
  • Có thể gây lãng phí băng thông nếu lượng dữ liệu không đủ để điền đầy frame.
  • Không hiệu quả trong việc truyền các loại dữ liệu khác nhau có yêu cầu kích thước đặc biệt.

2. Variable size framing

Ngược lại với fixed size framing, variable size framing cho phép kích thước của mỗi frame thay đổi tùy theo lượng dữ liệu cần truyền. Điều này đòi hỏi việc sử dụng các kỹ thuật đặc biệt để xác định ranh giới của frame, như việc sử dụng byte đặc biệt hoặc chuỗi bit để đánh dấu điểm bắt đầu và kết thúc frame.

Ưu điểm:

  • Linh hoạt trong việc đóng gói các lượng dữ liệu với kích thước không cố định.
  • Tiết kiệm băng thông bằng cách chỉ sử dụng đủ không gian cần thiết cho dữ liệu.
  • Phù hợp với việc truyền dữ liệu đa dạng với các yêu cầu kích thước khác nhau.

Nhược điểm:

  • Cần các cơ chế phức tạp hơn để xác định ranh giới của frame, có thể gây chậm trễ trong xử lý.
  • Có nguy cơ cao hơn về lỗi trong việc xác định ranh giới nếu cơ chế đánh dấu không đáng tin cậy.
  • Việc phân tích và xử lý frame có thể phức tạp hơn do sự thay đổi của kích thước frame.

IV. Phương pháp framing

Có hai phương pháp framing chính được sử dụng: Byte-oriented framing và Bit-oriented framing. Mỗi phương pháp có đặc điểm và ứng dụng riêng phù hợp với các yêu cầu và môi trường truyền thông khác nhau.

1. Byte-oriented framing

Byte-oriented framing, hay còn được gọi là character-oriented framing, là phương pháp thực hiện đóng gói dữ liệu theo các đơn vị byte. Mỗi byte trong frame có thể đại diện cho một ký tự hoặc một phần của dữ liệu.

Đặc điểm:

  • Flag và Control characters: Byte-oriented framing sử dụng các ký tự đặc biệt như flag characters để đánh dấu bắt đầu và kết thúc của mỗi frame. Các ký tự điều khiển khác cũng được sử dụng để kiểm soát truyền thông.
  • Transparency: Để đảm bảo tính minh bạch của dữ liệu, các ký tự giống với flag hoặc control characters trong dữ liệu thực tế được mã hóa bằng cách sử dụng kỹ thuật như byte stuffing.

Ưu điểm:

  • Đơn giản và dễ triển khai.
  • Tương thích tốt với các hệ thống xử lý dựa trên ký tự.

Nhược điểm:

  • Cần thêm băng thông do sự cần thiết của byte stuffing và control characters.
  • Có thể không hiệu quả với dữ liệu không dựa trên ký tự.

2. Bit-oriented framing

Bit-oriented framing là phương pháp thực hiện đóng gói dữ liệu theo từng bit. Phương pháp này không giới hạn dữ liệu theo cấu trúc ký tự cố định, cho phép sự linh hoạt cao hơn trong việc xử lý dữ liệu.

Đặc điểm:

  • Flag sequence: Sử dụng các chuỗi bit đặc biệt để đánh dấu bắt đầu và kết thúc của frame.
  • Bit stuffing: Để đảm bảo không có chuỗi bit nào trong dữ liệu giống với flag sequence, bit-oriented framing sử dụng kỹ thuật bit stuffing.

Ưu điểm:

  • Hiệu quả và linh hoạt, không bị giới hạn bởi cấu trúc ký tự.
  • Thích hợp cho việc truyền dữ liệu dạng nhị phân và các giao thức mạng hiện đại.

Nhược điểm:

  • Cần các cơ chế phức tạp hơn để xử lý bit stuffing và phát hiện ranh giới frame.
  • Có thể khó triển khai và kiểm soát hơn so với byte-oriented framing.

V. Kỹ thuật Byte stuffing và Bit stuffing

Kỹ thuật Byte stuffing và Bit stuffing là hai phương pháp được sử dụng để đảm bảo tính minh bạch của dữ liệu trong quá trình truyền thông. Chúng giúp phân biệt dữ liệu thực sự với các ký tự điều khiển hoặc cờ (flags) trong frame.

1. Byte stuffing

Byte stuffing (đôi khi được gọi là character stuffing) là kỹ thuật được sử dụng trong byte-oriented framing. Kỹ thuật đảm bảo rằng các ký tự điều khiển đặc biệt (như ký tự bắt đầu và kết thúc frame) không được xuất hiện trong dữ liệu truyền. Khi một ký tự trong dữ liệu trùng với ký tự điều khiển, một ký tự đặc biệt (thường là 'ESC' hoặc một giá trị tương tự) sẽ được thêm vào trước ký tự đó.

Giả sử ký tự kết thúc một frame là Flag, và sử dụng ký tự ESC để đánh dấu. Khi chuỗi dữ liệu truyền cũng xuất hiện Flag, ký tự ESC sẽ được thêm vào trước nó tạo thành ESC Flag. Ngoài ra, khi ký tự ESC xuất hiện trong nội dung truyền thì sẽ tạo thành ESC ESC (quan sát hình vẽ):

Vậy nếu trong dữ liệu truyền xuất hiện đồng thời ESC Flag thì sau khi sử dụng Byte stuffing sẽ thu được kết quả gì?

2. Bit stuffing

Bit stuffing là kỹ thuật được sử dụng trong bit-oriented framing. Kỹ thuật đảm bảo rằng chuỗi bit đặc biệt (như flag bắt đầu hoặc kết thúc frame) không xuất hiện trong dữ liệu truyền. Khi một chuỗi bit trong dữ liệu trùng với chuỗi cờ, một bit 00 được thêm vào ngay sau chuỗi bit đó để phân biệt.

Xét cơ chế Bit stuffing là nếu dữ liệu có 55 bit 11 liên tiếp thì sẽ chèn thêm 11 bit 00 vào đằng sau. Nếu dữ liệu cần truyền là 00011111110011111010000001111111001111101000, trong đó dãy bit 1111111111 xuất hiện 22 lần, sau khi thực hiện bit stuffing sẽ thu được 000111110110011111001000000111110110011111001000. Bên nhận mỗi khi đọc dữ liệu thấy chuỗi 1111111111 sẽ tự động bỏ đi số 00 theo sau. Quan sát chi tiết qua hình ảnh sau:

VI. Ưu, nhược điểm của framing trong mạng máy tính

1. Ưu điểm

Phát hiện và xử lý lỗi

Framing cho phép tích hợp các cơ chế kiểm tra lỗi như CRC và checksum. Điều này giúp phát hiện và sửa chữa lỗi (trong một số trường hợp) mà không cần truyền lại dữ liệu.

Đồng bộ hóa

Các frame cung cấp một chuẩn chung để đồng bộ hóa truyền thông giữa người gửi và người nhận, đảm bảo rằng mỗi đơn vị dữ liệu được xử lý một cách độc lập.

Quản lý dòng dữ liệu

Framing cung cấp cơ sở để thực hiện kiểm soát dòng dữ liệu, giúp tránh tình trạng quá tải ở người nhận.

Hỗ trợ đa dạng dữ liệu

Các frame có thể chứa nhiều loại dữ liệu khác nhau, từ dữ liệu người dùng đến thông tin điều khiển, giúp tạo nền tảng cho mạng đa dạng và linh hoạt.

2. Nhược điểm

Độ trễ và Overhead

Quá trình đóng gói dữ liệu vào các frame và sau đó giải mã chúng có thể gây ra độ trễ. Ngoài ra, header và trailer của frame tạo thêm overhead, giảm hiệu quả sử dụng băng thông.

Phức tạp trong xử lý

Các cơ chế như byte stuffing hoặc bit stuffing cần phải được thực hiện một cách cẩn thận, tăng độ phức tạp của phần mềm và phần cứng.

Khả năng phát hiện lỗi hạn chế

Mặc dù framing cung cấp cơ chế phát hiện lỗi, nhưng không phải tất cả các lỗi đều có thể được phát hiện và sửa chữa, đặc biệt với các lỗi phức tạp hoặc liên tục.

Cần sự đồng bộ

Cả người gửi và người nhận cần phải đồng bộ về cách thức xử lý frame, bất kỳ sự không nhất quán nào cũng có thể dẫn đến lỗi truyền dữ liệu.

Tài liệu tham khảo

Bình luận

Bài viết tương tự

- vừa được xem lúc

VxLAN - Công nghệ ảo hóa DC

Trong bài viết trước về CDN Tản mạn CDN và một số công nghệ xoay quanh CDN, tôi có đề cập đến VxLAN và mô hình Leaf-Spine. Nào bắt đầu nhé.

0 0 60

- vừa được xem lúc

Tản mạn CDN và một số công nghệ xoay quanh CDN

Như cái tiêu đề, tôi lưu lại một số thứ hay ho về CDN để sau mà quên thì còn có cái mà đọc. Sờ lại một chút về khái niệm CDN cho đỡ bỡ ngỡ... Mục đích CDN. Do vậy, CDN phục vụ một số mục đích chính sau:. . Cải thiện thời gian tải trang web --> Đây là mục đích lớn nhất của CDN.

0 0 63

- vừa được xem lúc

Hướng dẫn cấu hình PC thành public server

Chào mọi người,. Mình đã từng gặp trường hợp phía FE không thể access vào server công ty (vì authen, policy ,.

0 0 1.5k

- vừa được xem lúc

Phân biệt Router, Switch và Hub (Mạng máy tính)

Mục tiêu. Dạo qua một vòng trên Google và qua những câu hỏi mình hay bị mọi người xung quanh "vấn đáp nhanh", ngày hôm nay mình muốn viết blog này để có thể phần nào làm rõ một chút cho các bạn về 3 t

0 0 72

- vừa được xem lúc

Bạn có muốn trở thành Admin của một Server game không?

Mở đầu. .

0 0 71

- vừa được xem lúc

Hướng dẫn NAT port server ra Internet

Hướng dẫn NAT port để có thể sử dụng các dịch vụ trên server từ xa. Internet <---------------> Router <----------------> Server.

0 0 60