Trong mô hình phân lớp địa chỉ IP ở trên thì mỗi mạng vật lý được gán địa chỉ mạng duy nhất, và mỗi máy tính trên mạng đó sẽ có phần tiền tố địa chỉ chính là địa chỉ mạng đó.
Ưu điểm chính của việc chia địa chỉ IP thành hai phần là làm cho kích thước của bảng định tuyến giảm. Đó là nhờ thay vì lưu trữ tất cả đường đi đến từng máy, mỗi đường một dòng, bảng định tuyến có thể lưu trữ một dòng cho mỗi mạng và chỉ kiểm tra phần mạng của địa chỉ đích khi thực hiện các quyết định định tuyến. Phần địa chỉ host chỉ được kiểm tra khi đã xác định được datagram này có đích là mạng.
Với sự phát triển của mạng Internet trên toàn cầu, số lượng máy tính cũng tăng lên nhanh chóng nên kích thước bảng định tuyến là rất lớn. Ngoài ra, mô hình địa chỉ ban đầu không dung nạp được tất cả các mạng hiện có trên Internet. Đặc biệt là địa chỉ lớp B. Yêu cầu đặt ra là phải mở rộng địa chỉ lớp B. Có nhiều cách khác nhau như proxy ARP, sử dụng các bộ định tuyến trong suốt…Nhưng phổ biến và được dùng rộng rãi trên mạng Internet hơn cả là kỹ thuật đánh địa chỉ mạng con. Lúc này, thay cho địa chỉ
IP chỉ gồm có hai phần net ID và host ID thì phần host ID lại được chia thành subnet ID và host ID. Ví dụ, địa chỉ lớp B có 16 bit host ID được chia thành 8 bit subnet ID và 8 bit host ID.
0 15 16 23 24 31
1 0 Net ID Subnet ID Host ID
Hình 3.2: Địa chỉ mạng con của địa chỉ lớp B.
Không có quy định nào về việc sử dụng bao nhiêu bit cho subnet ID. Vì thế, phần subnet ID thường có độ dài biến đổi tuỳ thuộc vào yêu cầu sử dụng của từng tổ chức. Vì vậy, ngoài địa chỉ IP, một host còn phải biết được có bao nhiêu bit sử dụng cho subnet ID và bao nhiêu cho host ID. Để giải quyết vấn đề này người ta sử dụng mặt nạ mạng con (subnet mask).
Subnet mask là một dãy 32 bit bao gồm các bit 1 chỉ phần net ID và subnet ID, các bit 0 chỉ phần host ID. Subnet mask thường được biểu diễn dưới dạng cơ số 16. Ví dụ, một máy có địa chỉ lớp B có subnet mask là 0xFFFFFFC0 = 1111 1111 1111 1111 1111 1111 1100 0000 0000 thì nó có 16 bit net ID, 10 bit subnet ID và 6 bit host ID.