Một số khái niệm toán học liên quan

Một phần của tài liệu Bài giảng Kỹ thuật theo dõi, giám sát an toàn mạng: Phần 2 (Trang 56 - 59)

CHƯƠNG 4 PHÂN TÍCH DỮ LIỆU

4.1.2 Một số khái niệm toán học liên quan

4.1.2.1 Hiểu các byte diễn tả bằng hệ cơ số 16

Khi xem xét các gói tin ở mức thấp với tcpdump, sẽ phải thường xuyên làm việc với dữ liệu gói hiển thị ở dạng thập lục phân (hệ cơ số 16, hex). Định dạng thập lục phân có được từ các diễn tả nhị phân của một byte. Một byte được tạo thành từ 8 bit, mỗi bit có thể là 0 hoặc 1. Ví dụ có một byte như sau: 01000101.

Để dễ đọc hơn, chúng ta chuyển nó sang dạng cơ số 16. Đầu tiên, tách byte thành 2 nửa, gọi là các nibble (Hình 4.3). Bốn bit đầu được gọi là nibble cao vì nó đại diện cho phần giá trị lớn trong byte. Bốn bit sau gọi là nibble thấp vì nó đại diện cho phần giá trị nhỏ hơn của byte.

Mỗi nibble của byte được chuyển thành một ký tự hệ cơ số 16 để tạo thành một byte 2 ký tự. Để dễ tính toán các giá trị hệ cơ số 16 của một byte, trước tiên có thể tính các giá trị thập phân của mỗi nibble như trong Hình 4.4.

Hình 4.4 Tính giá trị thập phân của mỗi nibble

Mỗi ký tự hệ cơ số 16 có thể nhận giá trị 0-F với 0-9 tương đương 0-9 trong số thập phân và A-F bằng 10-15 trong số thập phân. Như vậy, 4 và 5 trong số thập phân tương đương 4 và 5 trong hệ cơ số 16, nghĩa là 45 là biểu diễn hệ cơ số 16 chính xác của byte 01000101. Toàn bộ quá trình được minh họa trong Hình 4.5.

Hình 4.5 Chuyển đổi một byte dạng nhị phân sang hệ cơ số 16

4.1.2.2 Đếm số byte

Khi xem xét các gói tin ở hệ cơ số 16, cần dành nhiều thời gian cho việc đếm số byte. Có một số chú ý khi đếm byte trong gói tin.

Thứ nhất, đếm byte bắt đầu từ 0 chứ không phải 1. Điều này là do đang cần đếm từ một vị trí tương đối với offset. Đây là vị trí tương đối tới byte 0 trong tiêu đề (header) của giao thức hiện tại, chứ không phải là byte 0 bắt đầu gói tin. Xem ví dụ trong hình sau.

Hình 4.6 Một gói tin IP dưới dạng hệ cơ số 16

Hình 4.6 biểu diễn một gói tin IP cơ bản dưới dạng hệ cơ số 16 (đã được thêm các khoảng trống cho dễ đọc). Để hiểu được gói tin, cần đánh giá các giá trị trong các trường của gói tin. Việc này được thực hiện bằng cách so sánh với “bản đồ” (định dạng) các trường trong giao thức có trong gói tin. Trường hợp này chúng ta đã biết là gói tin IP nên cần xem xét một số giá trị trong phần tiêu đề của gói tin IP (như trong Hình 4.7).

Hình 4.7 Định dạng tiêu đề gói tin IP

Một thông tin hữu dụng giúp chúng ta có thể phân tích gói tin sâu hơn là giao thức được đóng gói trong IP. Giá trị này nằm trong phần đầu của IP header. Nhìn vào định dạng giao thức IP, thấy rằng giá trị này nằm tại byte số 9. Nếu đếm byte trong gói tin bắt đầu từ 1, sẽ xác định giá trị của trường giao thức đóng gói trong IP là 40. Nhưng như vậy là sai vì phải coi số này là tính từ offset, bắt đầu từ 0. Số đúng có được sẽ là 06 khi chúng ta đếm từ 0. Giá trị giao thức này là chỉ TCP.

Tiếp tục áp dụng cách này để xác định trường khác như Time-to-Live (TTL), đó là byte offset thứ 8 kể từ 0, và giá trị của trường này là 40 trong hệ cơ số 16 hay 0x40, hoặc 64 trong hệ thập phân.

Chú ý là một vài trường có độ dài nhỏ hơn một byte. Ví dụ như byte 0x0 có 2 trường là phiên bản IP và độ dài tiêu đề gói tin IP. Trong ví dụ này, trường phiên bản IP chỉ là phần nibble cao của byte và độ dài tiêu đề gói tin IP là phần nibble thấp của byte. Do đó, phiên bản của IP là 4. Cũng thấy độ dài tiêu đề của IP là 5, nhưng giá trị thực không phải vậy. Độ dài tiêu đề tính bằng giá trị trong trường tiêu đề nhân với 4, tức là trong trường hợp này có 20 byte. Dễ dàng suy luận ra rằng độ dài tiêu đề IP lớn nhất là 60 byte do giá trị lớn nhất của trường độ dài tiêu đề IP là 0xF (15 hệ trong thập phân) và 15x4=60 byte.

Hình 4.9 Trường phiên bản IP và độ dài tiêu đề IP tại vị trí 0×0

Ngoài ra, một số trường cũng chiếm nhiều hơn 1 byte như trường địa chỉ nguồn và đích IP với độ dài 4 byte, tại vị trí lần lượt là 0×12 và 0×16. Trong ví dụ, thấy được trường địa chỉ IP nguồn này là ac 10 10 80 (172.16.16.128 trong hệ thập phân), và địa chỉ IP đích là 43 cd 02 1e (67.205.2.30 trong hệ thập phân) (xem Hình 4.10).

Hình 4.10 Trường địa chỉ nguồn và đích IP tại vị trí 0×12 và 0×16

Chú ý rằng khi kí hiệu byte 0x16:4 tức là bắt đầu từ offset byte thứ 16 tính từ 0, và sau đó lấy 4 byte kể từ đây.

Một phần của tài liệu Bài giảng Kỹ thuật theo dõi, giám sát an toàn mạng: Phần 2 (Trang 56 - 59)

Tải bản đầy đủ (PDF)

(103 trang)