Một số khái niệm hỗ trợ học mạng máy tính

    1

    Trong bài học này chúng ta sẽ học một số khái niệm hỗ trợ cho mạng máy tính, bao gồm các hệ số đếm thường dùng (hệ nhị phân, hệ thập lục phân, hệ 256), các đơn vị đo khối lượng thông tin và tốc độ truyền dữ liệu. Các kiến thức này sẽ cần đến khi học một số nội dung về mạng máy tính.

    Hệ số đếm nhị phân

    Hệ số đếm nhị phân được sử dụng trong các phép tính toán liên quan đến địa chỉ máy tính (còn gọi là địa chỉ IP).

    Quy tắc chuyển từ số thập phân sang số nhị phân

    Để đổi một số thập phân sang nhị phân, chúng ta lấy số muốn đổi sang nhị phân chia với 2 và sau đó lấy kết quả chia tiếp tục chia với 2, và lập lại phép chia này cho đến khi ta nhận được kết quả là 0 (từ trên xuống, theo mũi tên màu xanh). Ở phép chia này, ta lấy dư là 0 và 1. Sau khi chia đến kết quả bằng 0, ta sẽ lấy các con số dư ghi lại từ dưới lên (theo chiều mũi tên màu đỏ) ta được dãy số gồm 0 và 1, đây chính là giá trị ta cần tìm.

    Quy tắc chuyển từ số nhị phân sang số thập phân

    Để đổi giá trị Nhị phân ra thành Thập phân, ta lấy dãy số Nhị phân cần chuyển, nhân lần lượt các phần tử của chúng bắt đầu từ phần tử cuối (theo chiều mũi tên màu đỏ) với 20 cho đến 2n-1 (với n là số phần tử của dãy số), sau đó, chúng ta tiến hành cộng các giá trị tìm được từ phép nhân, ta sẽ được kết quả một con số dưới dạng Thập phân.

    Hệ số đếm thập lục phân

    Hệ số đếm cơ số 16 (hệ thập lục phân) được sử dụng cho địa chỉ các thiết bị mạng.

    Hệ cơ số 16 chữ số và chữ cái 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Trong đó, A tương đương với 10, B là 11, C là 12, D là 13, E là 14, F là 15. Ký tự có thể viết hoa hoặc viết thường.

    Ví dụ, địa chỉ vật lý (địa chỉ MAC) của một card mạng máy tính có thể có dạng như sau: F8-0F-41-8E-2A-E1. 

    Trong một số trường hợp, để tránh nhầm lẫn, người ta viết số ở hệ thập lục phân với tiền tố 0x (số 0 và chữ x). Ví dụ, 0x123456.

    Quy tắc đổi từ số thập phân sang số thập lục phân (và ngược lại) tương tự như quy tắc chuyển đổi số nhị phân.

    Đơn vị đo khối lượng thông tin

    Đơn vị đo khối lượng thông tin cơ bản là bit, viết tắt là b (lưu ý chữ b viết thường). Một bit tương ứng với giá trị nhị phân “0” hoặc “1”. 

    Ngoài đơn vị bit, người ta còn dùng một số đơn vị dẫn xuất khác như sau:

    • 1000 kbit kilobit
    • 1000^2 Mbit megabit
    • 1000^3 Gbit gigabit
    • 1000^4 Tbit terabit
    • 1000^5 Pbit petabit
    • 1000^6 Ebit exabit
    • 1000^7 Zbit zettabit
    • 1000^8 Ybit yottabit

    Để phân biệt với loại đơn vị dẫn xuất nhị phân (dưới đây), các đơn vị dẫn xuất trên còn được gọi là đơn vị dẫn xuất thập phân, tức là đơn vị sau lớn hơn đơn vị trước 1000 (10^3) lần.

    Đôi khi chúng ta cũng gặp một số đơn vị dẫn xuất đặc biệt, gọi là đơn vị dẫn xuất dạng nhị phân. Loại đơn vị dẫn xuất này khác biệt với các loại bên trên ở chỗ, chúng hơn kém nhau 1024 lần (tức là 2^10 lần), chứ không hơn kém nhau 1000 lần (tức 10^3) như đơn vị dẫn xuất thập phân.

    • 1024 Kibit kibibit (Kbit Kb kilobit *)
    • 1024^2 Mibit mebibit (Mbit Mb megabit *)
    • 1024^3 Gibit gibibit (Gbit Gb gigabit *)
    • 1024^4 Tibit tebibit (Tbit Tb terabit *)
    • 1024^5 Pibit pebibit —
    • 1024^6 Eibit exbibit —
    • 1024^7 Zibit zebibit —
    • 1024^8 Yibit yobibit —

    * Có thể để ý, trong bảng trên có một số đơn vị ở phần đơn vị dẫn xuất nhị phân. Đây là các đơn vị có thể gây lẫn lộn giữa hai loại dẫn xuất nhị phân và thập phân. Ví dụ, trước đây, khi nói 1 Kb (1 kilobit), người ta sẽ hiểu đó là 1024 bit, theo kiểu nhị phân. Hiện nay, kilobit hay Kb được thống nhất hiểu theo dẫn xuất thập phân, tức là 1000 bit.

    Đơn vị khối lượng thông tin khác là byte, viết tắt là B (lưu ý chữ B viết hoa). Một byte chứa 8 bit. Trong một số trường hợp, một byte cũng được gọi là 1 octet

    Byte cũng có các đơn vị dẫn xuất thập phân khác như sau:

    • 1000 kB kilobyte
    • 1000^2 MB megabyte
    • 1000^3 GB gigabyte
    • 1000^4 TB terabyte
    • 1000^5 PB petabyte
    • 1000^6 EB exabyte
    • 1000^7 ZB zettabyte
    • 1000^8 YB yottabyte

    Tương tự, byte cũng có các đơn vị dẫn xuất nhị phân:

    • 1024 KiB kibibyte (KB kilobyte *)
    • 1024^2 MiB mebibyte (MB megabyte *)
    • 1024^3 GiB gibibyte (GB gigabyte *)
    • 1024^4 TiB tebibyte (TB terabyte *)
    • 1024^5 PiB pebibyte –
    • 1024^6 EiB exbibyte –
    • 1024^7 ZiB zebibyte –
    • 1024^8 YiB yobibyte –

    Hệ số đếm 256, mảng byte

    Hệ số đếm cơ số 256 được sử dụng khi truyền dữ liệu người dùng qua mạng. Tất cả dữ liệu người dùng đều được biến đổi thành số ở hệ 256 trước khi cung cấp cho dịch vụ truyền thông mạng. Dữ liệu sau khi biến đổi tồn tại ở dạng mảng của các byte.

    * Kiểu mảng byte trong các ngôn ngữ lập trình tương tự C là byte[]

    Mỗi kiểu dữ liệu cơ sở chuyển về dạng mảng byte theo cách khác nhau, tùy thuộc vào kích thước và đặc thù của loại dữ liệu đó. Ví dụ, 1 số nguyên sử dụng 4 byte để biểu diễn nên khi chuyển về dạng mảng byte, nó sẽ bao gồm 4  byte viết kế tiếp nhau.

    Thứ tự viết các byte (với các kiểu dữ liệu chiếm nhiều byte) được gọi là endianness. Có hai kiểu viết trên các nền tảng, gọi là little-endian và big-endian. 

    Big-endian tương tự như cách chúng ta viết số từ trái sang phải. Chữ số bên phải giá trị kém 256 lần chữ số bên trái. Little-endian tương tự như cách chúng ta viết và đọc số từ phải qua trái, nghĩa là chữ số bên tay phải có giá trị cao hơn 256 lần chữ số bên tay trái.

    Hệ điều hành windows sử dụng lối viết little-endian. Hệ điều hành gốc Linux và Unix sử dụng lối viết big-endian. Truyền thông mạng sử dụng quy tắc viết Big-endian.

    Cách biểu diễn chuỗi byte và bit bằng hình ảnh

    Khi nói về các giao thức sau này, chúng ta sẽ thường xuyên gặp khái niệm “header” – một chuỗi byte/bit mô tả các thông tin điều khiển của giao thức.

    Do một chuỗi bit thường rất dài, chúng ta không thể viết nó trên cùng một dòng. Thay vào đó, người ta sử dụng cách viết gần giống như biểu diễn một ma trận. Cụ thể, người ta thường chỉ viết 32 bit (4 byte) trên mỗi dòng, và nhóm mỗi 8 bit vào một octet/byte.

    Để tiện lợi cho việc tính toán ra vị trí của bit hoặc byte trong mảng, người ta đưa vào hai dòng phụ: dòng đầu đánh số byte từ 0 đến 3 (dòng Octet), dòng 2 đánh số bit từ 0 đến 31 (dòng Bit). Đầu mỗi dòng người ta thêm giá trị offset của byte và offset của bit.

    Vị trí của byte/octet ở mỗi dòng tính bằng offset của byte/octet ở dòng đó cộng với số thứ tự cột tương ứng ở dòng Octet. Tương tự, vị trí của bit ở mỗi dòng bằng offset của bit của dòng đó cộng số thứ tự của cột tương ứng ở dòng Bit.

    Đây là một ví dụ sử dụng hai dòng để mô tả một mảng 8 byte (64 bit), mỗi dòng chứa 4 byte (32 bit).

    Mảng này được chia làm 4 phần:

    • Source port chiếm từ bit 0 đến bit 15 (tức là byte 0 và byte 1),
    • Destination port chiếm từ bit 16 đến 31 (tức là byte 2 và byte 3),
    • Length chiếm từ bit 32 + 0 = 32 (32 là bit offset của dòng 2) đến 32 + 15 = 47 (tức là byte 4 + 0 = 4 và byte 4 + 1 = 5, với 4 là byte offset của dòng 2),
    • Checksum chiếm từ bit 32 + 16 = 48 tới bit 32 + 31 = 63 (tức là byte 4 + 2 = 6 và byte 4 + 3 = 7).

    Cách viết này giúp chúng ta mô tả cấu trúc chi tiết của một chuỗi byte/bit có độ dài bất kỳ trên mặt giấy một cách tiện lợi.

    Đơn vị đo tốc độ truyền dữ liệu

    Tốc độ truyền dữ liệu là khối lượng dữ liệu truyền trong một đơn vị thời gian. Khối lượng dữ liệu đo bằng bit, còn thời gian tính bằng giây. Do vậy, đơn vị đo tốc độ truyền dữ liệu cơ bản là bit/giây. Đơn vị đo này cũng thường được viết tắt theo tiếng Anh là bps (bit per second) hoặc b/s.

    * Lưu ý, các tài liệu thường sử dụng ký hiệu viết tắt của tiếng Anh bps hoặc b/s chứ không sử dụng cách viết tắt từ tiếng Việt (tức là b/g). Nếu viết tiếng Việt hãy viết đầy đủ bit / giây.

    Ngoài ra, để biểu diễn các tốc độ truyền lớn, người ta cũng dùng các đơn vị dẫn xuất khác là kilobit / giây (1kb/s = 1000b/s), megabit / giây, gigabit / giây, v.v.. Các đơn vị dẫn xuất này được tạo ra từ đơn vị khối lượng thông tin chia cho giây.

    + Nếu bạn thấy site hữu ích, trước khi rời đi hãy giúp đỡ site bằng một hành động nhỏ để site có thể phát triển và phục vụ bạn tốt hơn.
    + Nếu bạn thấy bài viết hữu ích, hãy giúp chia sẻ tới mọi người.
    + Nếu có thắc mắc hoặc cần trao đổi thêm, mời bạn viết trong phần thảo luận cuối trang.
    Cảm ơn bạn!

    KẾT LUẬN

    Trong bài học này chúng ta nhắc lại một số khái niệm cơ bản thường gặp về sau trong các bài học về mạng máy tính. Phần lớn các khái niệm này bạn đã được học trong các môn học khác.

    Từ bài học sau chúng ta sẽ bắt đầu xem xét chi tiết các thành phần của mạng máy tính.

    Theo dõi
    Thông báo của
    guest

    1 Thảo luận
    Cũ nhất
    Mới nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận
    megumin

    xong