Sơ đồ gói là một thành phần trực quan hóa chuyên dụng được các kỹ sư mạng, chuyên viên phân tích an ninh và nhà phát triển hệ thống sử dụng để xác định cấu trúc nhị phân chính xác của các giao thức mạng, phân bổ bộ nhớ hoặc tiêu đề gói phần cứng tùy chỉnh. Được giới thiệu tích hợp sẵn trong Mermaid.js, công cụ này thay thế việc vẽ bảng thủ công mất thời gian bằng cách tự động tạo bản đồ lưới cấp độ bit chính xác, phản ứng linh hoạt từ phân tích trường văn bản sạch sẽ.
Hiểu về bố cục lưới gói
Khác với các sơ đồ luồng tự do thông thường, sơ đồ gói dựa vào một hệ thống lưới chặt chẽ, mang tính toán học, được mô phỏng trực tiếp từ các RFC mạng:
- Chiều rộng bit (trục ngang): Bộ xử lý bố cục tự động chia mỗi hàng thành hệ thống lưới 32 bit (bao gồm các bit từ 0 đến 31) theo mặc định.
- Tính toán bit tự động: Bạn chỉ cần khai báo kích thước độ dài bit cho từng trường. Bộ xử lý hiển thị sẽ xử lý toán học—tự động đóng gói các trường kề nhau vào cùng một hàng hoặc chuyển chúng sang hàng tiếp theo một cách gọn gàng khi tổng kích thước vượt quá ngưỡng 32 bit.
Cấu trúc cú pháp cơ bản
Mỗi bản đồ gói đều bắt đầu bằng packettiêu đề khai báo. Tiếp theo là các trường khối được khai báo dưới dạng cặp tuần tự tuân theo nghiêm ngặt mẫu "Tên trường": Kích thước bittrên từng dòng riêng biệt.
packet
0-3: "Phiên bản"
4-7: "IHL"
8-15: "Loại dịch vụ"
16-31: "Độ dài tổng cộng" 
Tham chiếu cú pháp
Bảng dưới đây phân tích các tham số dữ liệu nền tảng và quy tắc bố cục định dạng cần thiết để xây dựng sơ đồ gói trong Mermaid.js.
| Yếu tố cú pháp | Yêu cầu kiểu | Mô tả & Hành vi lưới trực quan |
|---|---|---|
| Khai báo | Định danh từ khóa | Khởi tạo không gian làm việc bố cục giao thức cấp độ bit. Phải sử dụng chính xác packetkhối tiêu đề. |
| Tên trường | Chuỗi được đóng dấu ngoặc kép | Nhãn hiển thị bên trong không gian khối. Luôn phải được đóng trong dấu ngoặc kép. |
| Kích thước bit | Số nguyên dương | Độ dài bit tuyệt đối của trường (ví dụ như 1 cho cờ đơn bit, 8 cho byte, 16 cho short). Thiết lập chiều rộng trực quan. |
| Kích hoạt ngắt dòng | Bộ theo dõi tự động | Xảy ra tự động mỗi khi tổng độ dài bit kết hợp đạt bội số của 32 bit. |
Bản vẽ thực tế: Bản đồ cấu trúc tiêu đề gói IPv4
Bản vẽ toàn diện này theo dõi cấu trúc tiêu đề gói định tuyến internet tiêu chuẩn (IPv4). Nó minh họa cách các trường nhiều bit, cờ đơn bit và các khối lớn 16-bit được lắp ráp tuần tự bên trong bố cục lưới ngang tiêu chuẩn 32-bit. Các trường đạt đến ngưỡng 32 bit sẽ tự động chuyển sang dòng tiếp theo một cách gọn gàng.
packet
0-3: "Phiên bản"
4-7: "IHL"
8-15: "Loại dịch vụ"
16-31: "Độ dài tổng cộng"
32-47: "Nhận diện"
48-50: "Cờ"
51-63: "Độ lệch phân mảnh"
64-71: "TTL"
72-79: "Giao thức"
80-95: "Kiểm tra phần đầu" 
Lưu ý cú pháp: Nếu một trường được khai báo duy nhất lớn hơn 32 bit (ví dụ như muối mã hóa 64 bit hoặc thời điểm đánh dấu), bộ xử lý hiển thị sẽ cuộn và kéo dài khối đó theo chiều dọc qua nhiều dòng liên tiếp, sử dụng các chỉ báo kết nối rõ ràng để duy trì tính dễ đọc.
Những lỗi cú pháp phổ biến & giới hạn hệ thống
Khi thiết kế bản đồ tài liệu chính xác ở cấp độ byte, hãy ghi nhớ các tham số khắc phục sự cố này để tránh lỗi biên dịch:
- Bao bọc bằng dấu ngoặc kép bắt buộc: Mỗi chuỗi văn bản mô tả trường phải được bao bọc bên trong dấu ngoặc kép. Bỏ qua dấu ngoặc kép sẽ gây lỗi phân tích cú pháp ngay lập tức.
- Kích thước bit chuỗi không hợp lệ: Việc gán độ dày giá trị theo sau dấu hai chấm phải là một số nguyên thô, không có dấu ngoặc kép. Truyền số thập phân hoặc kích thước chữ cái (ví dụ như
"Dữ liệu": 8bit) sẽ dừng việc biên dịch sơ đồ. - Căn chỉnh mép lướiĐảm bảo tổng các trường kết hợp của bạn phải chia hết cho 32 một cách rõ ràng nếu bạn muốn có các sơ đồ tiêu đề hình hộp đồng đều. Việc để lại một hàng cuối với các bit chưa gán có thể gây ra các khối cuối trông không đều.
- Giới hạn hiển thị thang đo:Mặc dù động cơ tính toán chiều rộng bố cục một cách động, nhưng việc nhồi những mô tả văn bản cực dài vào các khối nhỏ chỉ 1 bit hoặc 2 bit sẽ làm cắt bỏ kiểu chữ hoặc gây rối mắt. Hãy giữ các nhãn bit nhỏ gọn.