Trên 4 bytes địa chỉ IP, ta có thể chọn một số bytes tùy ý chứa địa chỉ mạng, số bytes còn lại dùng chứa địa chỉ host. Mỗi cách chọn khác nhau tạo thành một lớp địa chỉ IP. Có 3 lớp địa chỉ IP phổ biến:
- Lớp A : 1 byte cho địa chỉ mạng, 3 bytes cho địa chỉ host - Lớp B : 2 bytes cho địa chỉ mạng, 2 bytes cho địa chỉ host - Lớp C : 3 bytes cho địa chỉ mạng, 1 byte cho địa chỉ host
3 Lưu ý:
- Giá trị địa chỉ host với tất cả các bits bằng 1 là địa chỉ chỉ cho mọi host trên hệ thống mạng (host broadcast address) chứa host. Không một host nào được sử dụng địa chỉ này.
- Một địa chỉ IP có phần địa chỉ host với tất cả các bits bằng 0 chính là địa chỉ của hệ thống mạng. Không dùng địa chỉ này cho host.
Address Class First Host ID Last Host ID Class A w.0.0.1 w.255.255.254 Class B w.x.0.1 w.x.255.254 Class C w.x.y.1 w.x.y.254 13.1.4 Subnet:
Với số bits dùng cho địa chỉ host trong các lớp địa chỉ, số lượng host của một hệ thống mạng có thể lên đến con số rất lớn (lớp A là 16 triệu). Khi đó, việc gửi một thông điệp lên mạng cho tất cả các host (broadcast) sẽ cần một khoảng thời gian thực hiện không nhỏ, khó đảm bảo xử lý thời gian thực. Hơn nữa, 16 triệu giá trị địa chỉ cho một hệ thống mạng là quá dư thừa.
Nhằm khắc phục hạn chế nói trên, các host cùng hệ mạng được chia thành nhóm nhỏ hơn gọi là mạng con (SubNet). Mỗi subnet tương ứng với một địa chỉ mạng subnet và giới hạn địa chỉ IP các host trực thuộc. Địa chỉ subnet là giá trị hình thành từ một phần bits trong địa chỉ host của địa chỉ IP thuộc hệ mạng ban đầu. Có thể xem Subnet là tập con của hệ mạng.
Hệ thống mạng trong hình trên sử dụng địa chỉ lớp B. Địa chỉ của hệ mạng là 139.12.0.0. Hệ mạng này cho phép xác lập 65535 địa chỉ host. Thực
MFC với Internet 191
hiện chia hệ mạng trên thành 256 subnet dựa trên byte thứ ba, ta được các subnet 8-bit địa chỉ lớp B:
) Các subnet được tạo thành là: 139.12.1.0, 139.12.2.0 và 139.12.3.0. 13.1.5 Subnet Mask:
Subnet mask là một giá trị 32 bits giúp tách giá trị địa chỉ mạng (hoặc địa chỉ subnet) và địa chỉ host từ một địa chỉ IP bất kỳ (trong một lớp địa chỉ bất kỳ, cách phân chia subnet bất kỳ). Giá trị này được xây dựng như sau:
- Các giá trị bit tương ứng với địa chỉ mạng có giá trị là 1. - Các giá trị bit tương ứng với địa chỉ host có giá trị là 0. Giá trị subnet mask cũng được biểu diễn dưới dạng num-dot. Ta có subnet mask mặc nhiên cho các lớp địa chỉ như sau:
Class Bits for Subnet Mask Subnet Mask Class A 11111111 00000000 00000000 00000000 255.0.0.0 Class B 11111111 11111111 00000000 00000000 255.255.0.0 Class C 11111111 11111111 11111111 00000000 255.255.255.0 Các giá trị subnet mask do người dùng tạo ra tương ứng với mỗi lớp địa chỉ trên có thể khác biệt so với các giá trị mặc nhiên vì chúng chứa cả giá trị mask trên địa chỉ subnet.
Ví dụ: 138.96.58.0 là một địa chỉ subnet 8-bit lớp B. 8 bits địa chỉ host của hệ mạng ban đầu được dùng làm giá trị địa chỉ subnet. Như vậy subnet mask sử dụng tổng cộng 24 bits (255.255.255.0) để định nghĩa địa chỉ mạng subnet. Địa chỉ mạng subnet và giá trị subnet mask tương ứng được biểu diễn theo dạng num-dot như sau:
138.96.58.0, 255.255.255.0
Hay: 138.96.58.0/24 (24-bit mask)
192 Lập trình Windows với MFC - Microsoft Visual C++ 6.0 - Lê Ngọc Thạnh - lntmail@yahoo.com
2Xác định địa chỉ mạng: Để tách địa chỉ mạng từ một địa chỉ IP bất kỳ thông qua giá trị subnet mask, ta sử sử dụng phép toán AND bits:
Ví dụ: Giả sử IP = 129.56.189.41 vàsubnet mask = 255.255.240.0 Địa chỉ mạng được xác định như sau:
IP Address : 10000001 00111000 10111101 00101001 Subnet Mask : 11111111 11111111 11110000 00000000 Network ID : 10000001 00111000 10110000 00000000
2Xác định giới hạn địa chỉ IP: Giả sử địa chỉ mạng là 192.168.0.0.
Với subnet 3-bit địa chỉ lớp B của hệ mạng nói trên, ta có 8 trường hợp lựa chọn giá trị cho 3 bits này. Tương ứng với mỗi trường hợp là một giới hạn các địa chỉ IP của các host trong subnet:
Stt Địa chỉ Subnet theo hệ nhị phân Giới hạn địa chỉ IP 1 11000000.10101000.00000000.00000001- 192.168.0.1 - 11000000.10101000.00011111.11111110 192.168.31.254 2 11000000.10101000.00100000.00000001- 192.168.32.1 - 11000000.10101000.00111111.11111110 192.168.63.254 3 11000000.10101000.01000000.00000001- 192.168.64.1 - 11000000.10101000.01011111.11111110 192.168.95.254 4 11000000.10101000.01100000.00000001- 192.168.96.1 - 11000000.10101000.01111111.11111110 192.168.127.254 5 11000000.10101000.10000000.00000001- 192.168.128.1 - 11000000.10101000.10011111.11111110 192.168.159.254 6 11000000.10101000.10100000.00000001- 192.168.160.1 - 11000000.10101000.10111111.11111110 192.168.191.254 7 11000000.10101000.11000000.00000001- 192.168.192.1 - 11000000.10101000.11011111.11111110 192.168.223.254 8 11000000.10101000.11100000.00000001- 192.168.224.1 - 11000000.10101000.11111111.11111110 192.168.255.254 13.1.6 Host domain name:
Tên (name) là một giải pháp hữu hiệu cho việc gợi nhớ địa chỉ của host thay vì dùng địa chỉ IP với 4 bytes giá trị khó nhớ nói trên. Tên của host (Host name) là một chuỗi ký tự có chiều dài tối đa 255, có thể chứa mẫu tự, ký số, các ký tự ‘-‘ và ‘.’ và có ý nghĩa tương đương với địa chỉ IP trong việc quản lý địa chỉ một host trên hệ thống mạng internet. Có hai dạng phổ biến cho tên của host là nick name và domain name:
MFC với Internet 193
- Nick name: Một nhãn được dùng cho một địa chỉ IP duy nhất.
- Domain name: Tên được hình thành từ cấu trúc phân lớp. Cấu trúc phân lớp này được qui định phổ biến thành luật và được gọi là hệ thống tên miền (Domain Name System – DNS) như sau:
Trong đó:
Tên Domain Ý nghĩa sử dụng COM Các tổ chức thương mại
EDU Các cơ quan giáo dục, nghiên cứu GOV Tổ chức chính phủ
MIL Cơ quan quân sự
NET cơ quan quản lý mạng chính ORG Các tổ chức khác
INT Các tổ chức quốc tế
<country code> Các nhánh cho các quốc gia trừ Hoa Kỳ
Một tên miền đầy đủ (Fully Qualified Domain Name – FQDN) chứa đường đi từ gốc đến đối tượng tham chiếu theo trình tự phân cấp nói trên. Ví dụ: ftpsrv.wcoast.slate.com
Việc chuyển đổi giữa địa chỉ IP và Domain name được thực hiện dựa trên bảng chuyển đổi IP-DomainName do DNS server, một host chuyên dụng của hệ thống mạng, quản lý. Ứng dụng từ một host bất kỳ có thể truy vấn bảng thông tin này thông qua các dịch vụ cung cấp bởi windows socket. Windows socket truyền yêu cầu của ứng dụng đến bộ phận phân giải domain name của giao thức truyền thông TCP/IP. Bộ phận này chuyển yêu cầu đến DNS server. DNS server nhận yêu cầu và thực hiện; nếu