New FAMILUG

The PyMiers

Thursday 27 October 2011

Lật mặt nạ mạng (phần 1)

(Giật tít rất mạnh :)) )


Tớ không viết dài, không viết dai, không viết dại.
Viết đủ để mọi người hiểu về cách phân chia, cấp phát sử dụng địa chỉ IP như thế nào, không còn j là mông lung cả. Nắm rõ ý tưởng của vấn đề.

Arpanet là tổ chức nổi tiếng nhất về mạng TCP/IP.


Địa chỉ IP là những số nhị phân dài 32-bit = 4 bytes và được viết như 4 nhóm, mỗi nhóm tương ứng với 1 byte. Gọi 1 nhóm này là 1 octet (nhóm 8-bit).
ABC.DEF.GHI.JKL


Với 32 bit, ta có thể có tối đa 2^32 = 4.294.967.296 địa chỉ và Trần Dũng hết lên "ồ, 4 tỷ =p~" nhưng chính con số "nhỏ bé" này làm nảy sinh 2 vấn đề.
Số địa chỉ này không đủ chia cho tất cả mọi người trên thế giới :)) (~7 tỷ)
Và với 32 bit này, làm sao để chỉ rõ ra 1 máy tính kết nối Internet nằm trong mạng (network) nào và nó là máy nào (host) trong mạng đó.

thế nên họ đã giải quyết chúng bằng các kỹ thuật thông minh để chia số bánh ít ỏi cho một lực lượng đông đảo và nguy hiểm những kẻ tham ăn.

1. Chia class (lớp)
Class A: 
Sử dụng octet đầu tiên cho phần địa chỉ mạng, với các số từ 1-126.

126 đầu này sẽ cấp cho các mạng cực lớn. Arpanet rõ ràng là phải được 1 địa chỉ. Ông lớn Google có 1 chú đầu 8 (cái này tớ suy ra từ DNS server của Google là 8.8.8.8 :D ). Còn lại cấp cho ai các bạn thử tìm hiểu và comment lại nhé :x
Với 1 con số quý báu này, tổ chức nhận nó có thể cấp phát 2^24 địa chỉ IP. Có tổ chức nào lớn vậy?

Class B:   
Sử dụng 2 octet đầu cho phần địa chỉ mạng. Nghĩa là các số từ 128.1 đến 191.254.

Câu hỏi tự nhiên là 127 đâu? câu trả lời là 127 được dùng cho mục đích đặc biệt của các hệ thống. Thử gõ 127.0.0.1 xem nó ra cái gì ;) Chính là localhost - máy của bạn đấy. Còn 0 và 255 cũng không được dùng, vì sao hồi sau sẽ rõ.
Như vậy mỗi "người" may mắn được cấp cho 1 số trong dãy này sẽ được phép quản lí 16 bit cho phần hostID = 2^16 = 64516 máy. Con số này đủ để bạn trở thành 1 ISP nhỏ :D Nếu là một nhà mạng được cấp 10 địa chỉ trong class B, bạn có thể cấp địa chỉ cho 6 triệu máy tính, con số này đã bằng số máy tính nối mạng ở Việt Nam chưa?

Class C:  
các địa chỉ trong lớp C sử dụng 3 octet đầu để chỉ địa chỉ mạng (network id).

Từ 192.1.1 -> 223.254.254. Nếu được cấp 1 địa chỉ trong này, ví dụ 200.1.1 bạn có thể cấp địa chỉ IP cho 254 "máy" - đủ cho 1 công ty nhỏ (chú ý rằng không phải mỗi máy tính đều có 1 địa chỉ IP, cả 1 công ty có thể chỉ dùng 1 địa chỉ IP duy nhất, nghệ thuật là ở chỗ này... và bức màn bí mật sẽ bị tụt xuống trong giây lát >:))


Còn địa chỉ từ 224.*.*.* đổ đi? Theo tài liệu của tớ (từ năm 1988) thì chúng sẽ được dùng trong "tương lai" và được chia làm class D và class E. Nhưng chúng ta thì đang ở cái "tương lai" của họ. Và số địa chỉ này chắc chắn đã được dùng (vì theo thông báo thì địa chỉ IP 32 bit hiện nay đã cấp hết). Thế nên số địa chỉ này được dùng thế nào mọi người tìm hiểu và comment nhé :*




Hết phần 1...
PS:
Bài viết này có thể có sai sót do được viết bởi 1 tay ngoại đạo - ứ phải hacker :p nên có gì cần góp ý các bạn cứ sửa thoải mái. Tớ sẽ update lại.
Nguồn kiến thức: ftp://rtfm.mit.edu/pub/net/internet.text

4 comments:

  1. thích cái câu "Trần Dũng hết lên "ồ, 4 tỷ =p~"" rồi đấy :))

    ReplyDelete
  2. may mà ông vẫn còn đọc được đến đoạn đấy :))

    ReplyDelete
  3. Class D được dùng từ lâu rồi, nó dùng để chứa địa chỉ Multicast. Còn cụ thể thì thế nào thì tự tìm hiểu.

    ReplyDelete
  4. các bạn viết bài share mà toàn "tự tìm hiểu" =))

    http://en.wikipedia.org/wiki/Classful_network

    ReplyDelete