Mạng Internet là một mạng máy tính toàn cầu, bao gồm hàng chục triệu người sử dụng, được hình thành từ cuối thập kỷ 60 từ một thí nghiệm của Bộ quốc phòng Mỹ. Tại thời điểm ban đầu đó là mạng ARPAnet của Ban quản lý dự án nghiên cứu Quốc phòng. ARPAnet là một mạng thử nghiệm phục vụ các nghiên cứu quốc phòng, một trong những mục đích của nó là xây dựng một mạng máy tính có khả năng chịu đựng các sự cố (ví dụ một số nút mạng bị tấn côngvà phá huỷ nhưng mạng vẫn tiếp tục hoạt động). Mạng cho phép một máy tính bất kỳ trên mạng liên lạc với mọi máy tính khác.
54 trang |
Chia sẻ: diunt88 | Lượt xem: 2683 | Lượt tải: 5
Bạn đang xem trước 20 trang tài liệu Đồ án tốt nghiệp Giao thức TCP/IP_Phần 1, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
chương 1: giới thiệu về giao thức TCP/IP
1.1. Lịch sử phát triển củaTCP/IP và mạng Internet
Mạng Internet là một mạng máy tính toàn cầu, bao gồm hàng chục triệu người sử dụng, được hình thành từ cuối thập kỷ 60 từ một thí nghiệm của Bộ quốc phòng Mỹ. Tại thời điểm ban đầu đó là mạng ARPAnet của Ban quản lý dự án nghiên cứu Quốc phòng. ARPAnet là một mạng thử nghiệm phục vụ các nghiên cứu quốc phòng, một trong những mục đích của nó là xây dựng một mạng máy tính có khả năng chịu đựng các sự cố (ví dụ một số nút mạng bị tấn côngvà phá huỷ nhưng mạng vẫn tiếp tục hoạt động). Mạng cho phép một máy tính bất kỳ trên mạng liên lạc với mọi máy tính khác.
Khả năng kết nối các hệ thống máy tính khác nhau đã hấp dẫn mọi người, vả lại đây cũng là phương pháp thực tế duy nhất để kết nối các máy tính của các hãng khác nhau. Kết quả là các nhà phát triển phần mềm ở Mỹ, Anh và Châu Âu bắt đầu phát triển các phần mềm trên bộ giao thức TCP/IP (giao thức được sử dụng trong việc truyền thông trên Internet) cho tất cả các loại máy. Điều này cũng hấp dẫn các trường đại học, các trung tâm nghiên cứu lớn và các cơ quan chính phủ, những nơi mong muốn mua máy tính từ các nhà sản xuất, không bị phụ thuộc vào một hãng cố định nào.
Bên cạnh đó các hệ thống cục bộ LAN bắt đầu phát triển cùng với sự xuất hiện các máy để bàn (Desktop Workstations) vào năm 1983. Phần lớn các máy để bàn sử dụng Berkeley UNIX, phần mềm cho kết nối TCP/IP đã được coi là một phần của hệ điều hành này. Một điều rõ ràng là các mạng này có thể kết nối với nhau dễ dàng.
Trong quá trình hình thành mạng Internet, NSFNET (được sự tài trợ của Hội khoa học Quốc gia Mỹ) đóng một vai trò tương đối quan trọng. Vào cuối những năm 80, NFS thiết lập 5 trung tâm siêu máy tính. Trước đó, những máy tính nhanh nhất thế giới được sử dụng cho công việc phát triển vũ khí mới và một vài hãng lớn. Với các trung tâm mới này, NFS đã cho phép mọi người hoạt động trong lĩnh vực khoa học được sử dụng. Ban đầu, NFS định sử dụng ARPAnet để nối 5 trung tâm máy tính này, nhưng ý đồ này đã bị thói quan liêu và bộ máy hành chính làm thất bại. Vì vậy, NFS đã quyết định xây dựng mạng riêng của mình, vẫn dựa trên thủ tục TCP/IP, đường truyền tốc độ 56 Kbps. Các trường đại học được nối thành các mạng vùng và các mạng vùng được nối với các trung tâm siêu máy tính.
Ngày nay mạng Internet đã được phát triển nhanh chóng trong giới khoa học và giáo dục của Mỹ, sau đó phát triển rộng toàn cầu, phục vụ một cách đắc lực cho việc trao đổi thông tin trước hết trong các lĩnh vực nghiên cứu, giáo dục và gần đây cho thương mại.
Internet sử dụng kỹ thuật chuyển mạch gói và dùng giao thức TCP/IP. Ngày nay nhiều mạng với kiến trúc khác nhau có thể nối vào Internet nhờ các cầu nối đa giao thức.
1.2. Giao thức TCP/IP
Khái niệm giao thức (Protocol) là một khái niệm cơ bản của mạng truyền thông. Có thể hiểu một cách khái quát đó là tập hợp tất cả các quy tắc cần thiết (các thủ tục, các khuôn dạng dữ liệu, các cơ chế phụ trợ....) cho phép các giao thức trao đổi thông tin trên mạng được thực hiện một cách chính xác và an toàn. Có rất nhiều họ giao thức đang được sử dụng trên mạng truyền thông hiện nay như IEEE802.X dùng trong mạng cục bộ, CCITT (nay là ITU) dùng cho liên mạng diện rộng và đặc biệt là họ giao thức chuẩn của ISO (tổ chức tiêu chuẩn hoá quốc tế ) dựa trên mô hình tham chiếu bảy lớp cho việc kết nối các hệ thống mở. Trên Internet họ giao thức được sử dụng là bộ giao thức TCP/IP . Hai giao thức được dùng chủ yếu ở đây là TCP ( Transmision Control Protocol ) và IP (Internet Protocol ). TCP là một giao thức kiểu có kết nối (Connection-Oriented), tức là cần phải có một giai đoạn thiết lập liên kết giữa một cặp thực thể TCP trước khi chúng thực hiện trao đổi dữ liệu. Còn giao thức IP là một giao thức kiểu không kết nối (Connectionless), nghĩa là không cần phải có giai đoạn thiết lập liên kết giữa một cặp thực thể nào đó trước khi trao đổi dữ liệu . Khái niệm TCP/IP không chỉ bị giới hạn ở hai giao thức này. Thường thì TCP/IP được dùng để chỉ một nhóm các giao thức có liên quan đến TCP và IP như UDP (User Datagram Protocol), FTP (File Transfer Protocol), TELNET (Terminal Emulation Protocol) và v.v...
Để giảm độ phức tạp của việc thiết kế và cài đặt mạng hầu hết các mạng máy tính hiện có đều được phân tích thiết kế theo quan điểm phân tầng . Mỗi hệ thống thành phần của mạng được xem như là một cấu trúc đa tầng, trong đó mỗi tầng được xây dựng trên cơ sở tầng trước đó. Số lượng các tầng cùng như tên và chức năng của mỗi tầng là tuỳ thuộc vào nhà thiết kế. Họ giao thức của ISO (tổ chức tiêu chuẩn hoá quốc tế) dựa trên mô hình tham chiếu 7 lớp cho việc kết nối các hệ thống mở là họ giao thức được dùng làm chuẩn để các họ giao thức khác so sánh với nó do vậy trước khi đi vào nghiên cứu giao thức TCP/IP ta cần xem xét mô hình 7 lớp OSI.
Trong mô hình OSI mục đích của mỗi tầng là cung cấp các dịch vụ cho tầng cao hơn tiếp theo, mô tả chi tiết cách thức cài đặt các dịch vụ này. Các tầng được trừu tượng hoá theo cách là mỗi tầng chỉ biết rằng nó liên lạc với tầng tương ứng trên máy khác. Trong thực tế thì mỗi tầng chỉ liên lạc với các tầng kề trên và kề dưới nó trên mỗi hệ thống mà thôi.
Trừ tầng thấp nhất trong mô hình mạng không tầng nào có thể chuyển thông tin một cách trực tiếp với tầng tương ứng trong mạng máy tính khác. Thông tin trên máy cần gửi phải được chuyển đi qua tất cả các tầng thấp hơn. Thông tin sau đó lại được truyền qua Card mạng tới máy nhận và lại được truyền lên qua các tầng cho đến khi nó đến tầng đã gửi thông tin đi.
1.2.1. Mô hình 7 lớp OSI
Mô hình này bao gồm 7 tầng. Tên gọi và chức năng các tầng được trình bày trong hình 1.1.
Hệ thống mở A
Hệ thống mở B
7
Application
ứng dụng
7
6
Presentation
Trình diễn
6
5
Session
Phiên
5
4
Transport
Giao vận
4
3
Network
Mạng
3
2
Data link
Liên kết dữ liệu
2
1
Physical
Vật lý
1
Hình 1.1: Mô hình 7 lớp OSI
Chức năng của các tầng như sau:
Tầng vật lý (Physical): Liên quan đến nhiệm vụ truyền dòng bits không có cấu trúc qua đường truyền vật lý, truy nhập đường truyền vật lý nhờ các phương tiện cơ, điện, hàm, vật lý.
Tầng liên kết dữ liệu (Data link): Cung cấp phương tiện để truyền thông tin qua liên kết vật lý đảm bảo tin cậy, gửi các khối dữ liệu với các cơ chế đồng bộ hoá, kiểm soát lỗi và kiểm soát luồng dữ liệu cần thiết.
Tầng mạng (Network): Thực hiện việc chọn đường và chuyển tiếp thông tin với công nghệ chuyển mạch thích hợp, thực hiện kiểm soát luồng dữ liệu và cắt/ hợp dữ liệu nếu cần.
Tầng giao vận (Transport): Thực hiện việc truyền dữ liệu giữa hai đầu mút (end - to - end), thực hiện cả việc kiểm soát lỗi và kiểm soát luồng dữ liệu giữa hai đầu mút. Cũng có thể thực hiện việc ghép kênh, cắt / hợp dữ liệu nếu cần.
Tầng phiên (Session): Cung cấp phương tiện quản lý truyền thông giữa các ứng dụng, thiết lập, duy trì, đồng bộ hoá và huỷ bỏ các phiên truyền thông giữa các ứng dụng.
Tầng trình diễn (Presentation): Chuyển đổi cú pháp dữ liệu để đáp ứng yêu cầu truyền dữ liệu của các tầng ứng dụng qua mô hình OSI.
Tầng ứng dụng (Application): Cung cấp các phương tiện để người sử dụng có thể truy cập được vào môi trường OSI, đồng thời cung cấp các dịch vụ thông tin phân tán.
1.2.2. Giao thức TCP/IP và mô hình 7 lớp OSI
Mạng Internet với họ giao thức TCP/IP được minh hoạ tổng quát như hình 1.2 với các dịch vụ mà nó cung cấp và các chuẩn được sử dụng có so sánh với kiến trúc hệ thống mở OSI để chúng ta có một cách nhìn tổng quát về họ giao thức này.
Hình 1.2: Giao thức TCP/IP khi so sánh với mô hình OSI
Trong đó :
TCP: (Transmistion Control Protocol) Thủ tục liên lạc ở tầng giao vận của TCP/IP. TCP có nhiệm vụ đảm bảo liên lạc thông suốt và tính đúng đắn của dữ liệu giữa 2 đầu của kết nối, dựa trên các gói tin IP.
UDP: (User Datagram Protocol) Thủ tục liên kết ở tầng giao vận của TCP/IP. Khác với TCP, UDP không đảm bảo khả năng thông suốt của dữ liệu, cũng không có chế độ sửa lỗi. Bù lại, UDP cho tốc độ truyền dữ liệu cao hơn TCP.
IP: (Internet Protocol) Là giao thức ở tầng thứ 3 của TCP/IP, nó có trách nhiệm vận chuyển các Datagrams qua mạng Internet.
ICMP: (Internet Control Message Protocol) Thủ tục truyền các thông tin điều khiển trên mạng TCP/IP. Xử lý các tin báo trạng thái cho IP như lỗi và các thay đổi trong phần cứng của mạng ảnh hưởng đến sự định tuyến thông tin truyền trong mạng.
RIP: (Routing Information Protocol) Giao thức định tuyến thông tin đây là một trong những giao thức để xác định phương pháp định tuyến tốt nhất cho truyền tin.
ARP: (Address Resolution Protocol) Là giao thức ở tầng liên kết dữ liệu. Chức năng của nó là tìm địa chỉ vật lý ứng với một địa chỉ IP nào đó. Muốn vậy nó thực hiện Broadcasting trên mạng, và máy trạm nào có địa chỉ IP trùng với địa chỉ IP đang được hỏi sẽ trả lời thông tin về địa chỉ vật lý của nó.
DSN: (Domain name System) Xác định các địa chỉ theo số từ các tên của máy tính kết nối trên mạng.
FTP: (File Transfer Protocol) Giao thức truyền tệp để truyền tệp từ một máy này đến một máy tính khác. Dịch vụ này là một trong những dịch vụ cơ bản của Internet.
Telnet: (Terminal Emulation Protocol) Đăng ký sử dụng máy chủ từ xa với Telnet người sử dụng có thể từ một máy tính của mình ở xa máy chủ, đăng ký truy nhập vào máy chủ để xử dụng các tài nguyên của máy chủ như là mình đang ngồi tại máy chủ.
SMTP: (Simple Mail Transfer Protocol) Giao thức truyền thư đơn giản: là một giao thức trực tiếp bảo đảm truyền thư điện tử giữa các máy tính trên mạng Internet.
SNMP: (Simple Network Management Protocol) Giao thức quản trị mạng đơn giản: là dịch vụ quản trị mạng để gửi các thông báo trạng thái về mạng và các thiết bị kết nối mạng.
1.2.3. Giao thức liên mạng IP
Mục đích chính của IP là cung cấp khả năng kết nối các mạng con thành liên mạng để truyền dữ liệu. Vai trò của IP tương tự vai trò của giao thức tầng mạng trong mô hình OSI. Mặc dù từ Internet xuất hiện trong IP nhưng giao thức này không nhất thiết phải sử dụng trên Internet. Tất cả các máy trạm trên Internet đều hiểu IP, nhưng IP có thể sử dụng trong các mạng mà không có sự liện hệ với Internet.
IP là giao thức kiểu không kết nối (Connectionless) tức là không cần có giai đoạn thiết lập liên kết trước khi truyền dữ liệu. Đơn vị dữ liệu dùng trong giao thức IP là IP Datagram hay gọi tắt là Datagram.
Một Datagram được chia làm hai phần : Phần tiêu đề (Header) và phần chứa dữ liệu cần truyền (Data). Trong đó phần Header gồm một số trường chứa các thông tin điều khiển Datagram.
1.2.3.1.Cấu trúc của IP Datagram
Cấu trúc tổng quát của một IP Datagram như sau:
DATAGAM HEADER
DATAGRAM DATA AREA
Cấu trúc chi tiết của một IP Datagram Header được mô tả như hình 1.3.
Version
IHL
Type of service
Total length
Identification
Flags
Fragment offset
Time to live
Protocol
Header checksum
Source IP address
Destination IP address
Options
Padding
Datas
:
Hình 1.3: Cấu trúc của Datagram
Trong đó:
Trường version (4 bits) cho biết phiên bản của IP đang được sử dụng, hiện nay là IPv4. Trong tương lai thì địa chỉ IPv6 sẽ được sử dụng.
IHL (4 bits) Chỉ thị độ dài phần đầu (Internet Header Length) của Datagram tính theo đơn vị từ ( 32 bits).
Type of service (8 bits), đặc tả các tham số về dịch vụ. Khuôn dạng của nó được chỉ ra như sau.
0 1 2
3
4
5
6 7
Precedence
D
T
R
Reserved
8 Bits của trường Service được chia ra làm 5 phần cụ thể như sau :
Precedence (3 bits) chỉ thị quyền ưu tiên gửi Datagram, các mức ưu tiên từ 0 (bình thường) đến mức cao nhất là 7 (điều khiển mạng) cho phép người sử dụng chỉ ra tầm quan trọng của Datagram.
Ba bit D, T, R nói nên khiểu truyền Datagram, cụ thể như sau:
Bit D (Delay)chỉ độ trễ yêu cầu.
Bit T (Throughput) chỉ thông lượng yêu cầu.
Bit R (Reliability) chỉ độ tin cậy yêu cầu.
Reserved (2 bits) chưa sử dụng.
Total Length (16 bits) : Chỉ độ dài toàn bộ Datagram kể cả phần Header. Đơn vị tính là Byte.
Identification (16 bits) Trường này được sử dụng để giúp các Host đích lắp lại một gói đã bị phân mảnh, nó cùng các trường khác như Source Address, Destination Address để định danh duy nhất một Datagram khi nó còn ở trên liên mạng.
Flags( 3 bits) liên quan đến sự phân đoạn các Datagrams cụ thể như sau:
0
1
2
0
DF
MF
Trong đó các thành phần:
Bit 0 Chưa sử dụng lấy giá trị 0.
Bit 1 (DF) DF=0: Thực hiện phân đoạn.
DF=1: Không thực hiện phân đoạn.
Bit 2 (MF) MF=0: Phân đoạn lần cuối.
MF=1: Phân đoạn thêm.
Fragment offset (13 bits): Chỉ vị trí của đoạn (Fragment) ở trong Datagram. Đơn vị tính là 64 bits (8 Bytes).
Time to live (8 bits): Cho biết thời gian tồn tại của Datagram trên liên mạng. Để tránh tình trạng một Datagram bị quẩn trên liên mạng. Nếu sau một khoảng thời gian bằng thời gian sống mà Datagram vẫn chưa đến đích thì nó bị huỷ.
Protocol (8 bits) Cho biết giao thức tầng trên kế tiếp sẽ nhận vùng dữ liệu ở trạm đích. Giao thức tầng trên của IP thường là TCP hoặc UDP.
Header Checksum (16 bits): Đây là mã kiểm soát lỗi 16 bits theo phương pháp CRC cho vùng Header nhằm phát hiện các lỗi của Datagram.
Source Address (32 bits) Cho biết địa chỉ IP của trạm nguồn.
Destination Address (32 bits) Cho biết địa chỉ IP của trạm đích. Trong một liên mạng địa chỉ IP của trạm nguồn và địa chỉ IP của trạm đích là duy nhất.
Options (độ dài thay đổi) Dùng để khai báo Options do người sử dụng yêu cầu.
Padding (độ dài thay đổi) Là một vùng đệm được dùng để đảm bảo cho phần Header luôn kết thúc ở mức 32 bits. Giá trị của Padding gồm toàn bit 0.
Data (Độ dài thay đổi) Vùng dữ liệu có độ dài là bội số của 8 bits. Kích thước tối đa của trường Data là 65535 Bytes.
1.2.3.2.Quá trình phân mảnh các gói dữ liệu
Trong quá trình truyền dữ liệu, một gói dữ liệu (Datagram) có thể được truyền đi qua nhiều mạng khác nhau. Một gói dữ liệu nhận được từ một mạng nào đó có thể quá lớn để truyền đi trong một gói đơn của mạng khác, bởi vậy mỗi loại cấu trúc mạng cho phép một đơn vị truyền cực đại MTU (Maximum Transmission Unit) khác nhau. Đây chính là kích thước lớn nhất của một gói mà chúng có thể truyền được. Nếu như một gói dữ liệu nhận được từ một mạng nào đó mà kích thước của nó lớn hơn MTU của mạng khác thì nó cần được phân mảnh ra thành gói nhỏ hơn gọi là Fragment để truyền đi, quá trình này gọi là quá trình phân mảnh. Dạng của một Fragment cũng giống như dạng của một gói dữ liệu thông thường. Từ thứ hai trong phần Header chứa các thông tin để xác định mỗi Fragment và cung cấp các thông tin để hợp nhất các Fragments này lại thành các gói như ban đầu. Trường định danh (Indentification) dùng để xác định Fragment này thuộc vào gói dữ liệu nào. Trường định danh có một giá trị duy nhất cho mỗi gói dữ liệu được vận chuyển. Mỗi thành phần của gói dữ liệu bị phân mảnh sẽ có cùng giá trị trường định danh. Điều đó cho phép IP lắp ráp lại các gói dữ liệu bị phân mảnh một cách phù hợp.
Hậu quả của việc phân mảnh dữ liệu là các gói bị phân mảnh sẽ đến đích chậm hơn so với một gói không bị phân mảnh. Vì vậy phần lớn các ứng dụng đều tránh không sử dụng kỹ thuật này nếu có thể. Vì sự phân mảnh tạo ra các gói dữ liệu phụ nên cần quá trình sử lý phụ làm giảm tính năng của mạng. Hơn nữa vì IP là một giao thức không tin cậy nên khi bất kỳ một gói dữ liệu bị phân mảnh nào bị mất thì tất cả các mảnh sẽ phải truyền lại. Chính vì lý do này nên phải gửi các gói dữ liệu lớn nhất mà không bị phân mảnh, giá trị này là Path MTU.
1.2.3.3. Phương pháp đánh địa chỉ trong TCP/IP
Để có thể thực hiện truyền tin giữa các máy trên mạng, mỗi máy tính trên mạng TCP/IP cần phải có một địa chỉ xác định gọi là địa chỉ IP. Hiện nay mỗi địa chỉ IP được tạo bởi một số 32 bits (IPv4)và được tách thành 4 vùng, mỗi vùng có một Byte có thể biểu thị dưới dạng thập phân, nhị phân, thập lục phân hoặc bát phân. Cách viết phổ biến nhất hay dùng là cách viết dùng ký tự thập phân. Một địa chỉ IP khi đó sẽ được biểu diễn bởi 4 số thập phân có giá trị từ 0 đến 255 và được phân cách nhau bởi dấu chấm (.). Mỗi giá trị thập phân biểu diễn 8 bits trong địa chỉ IP. Mục đích của địa chỉ IP là để định danh duy nhất cho một host ở trên mạng .
IPv4 sử dụng 3 loại địa chỉ trong trường nguồn và đích đó là:
Unicast: Để thể hiện một địa chỉ đơn hướng. Địa chỉ đơn hướng là địa chỉ dùng để nhận dạng từng nút một (điểm nút là tập các thiết bị chuyển mạch nằm ở trung tâm như Router chẳng hạn ) cụ thể là một gói dữ liệu được gửi tới một địa chỉ đơn hướng sẽ được chuyển tới nút mang địa chỉ đơn hướng đó.
Multicast: Địa chỉ đa hướng. Là địa chỉ dùng để nhận dạng một tập hợp nút nhưng không phải là tất cả. Tập hợp nút bao gồm nhiều nút khác nhau hợp thành, gói dữ liệu IP gửi tới một địa chỉ Multicast sẽ được gửi tới tất cả các Host tham dự trong nhóm Multicast này.
Broadcast: Thể hiện tất cả các trạm trên mạng. Thông thường điều đó giới hạn ở tất cả các Host trên một mạng con địa phương.
Các địa chỉ IP được chia ra làm hai phần, một phần để xác định mạng (net id) và một phần để xác định host (host id). Các lớp mạng xác định số bits được dành cho mỗi phần mạng và phần host. Có năm lớp mạng là A, B, C, D, E, trong đó ba lớp đầu là được dùng cho mục đích thông thường, còn hai lớp D và E được dành cho những mục đích đặc biệt và tương lai. Trong đó ba lớp chính là A,B,C.
Hình vẽ sau cho thấy cấu trúc của một địa chỉ IP.
Mỗi lớp địa chỉ được đặc trưng bởi một số bits đầu tiên của Byte đầu tiên có cấu trúc chi tiết như hình 1.4.
Hình 1.4: Cấu trúc các khuôn dạng địa chỉ
Từ cấu trúc phân lớp địa chỉ ta có thể nhận thấy:
Nhỏ hơn 128 là địa chỉ lớp A. Byte đầu tiên xác định địa chỉ mạng, ba Bytes còn lại xác định địa chỉ máy trạm.
Từ 128 đến 191 là địa chỉ lớp B. Hai Bytes đầu xác định địa chỉ mạng. Hai Bytes tiếp theo xác định địa chỉ máy trạm.
Từ 192 đến 223 là địa chỉ lớp C. Ba Bytes đầu xác định địa chỉ mạng. Bytes còn lại xác định địa chỉ máy trạm.
Lớn hơn 223 là các địa chỉ dùng để quảng bá hoặc dùng dự trữ cho các mục đích đặc biệt và ta có thể không cần quan tâm.
Nhìn vào trên hình ta có bảng phân lớp địa chỉ IP như bảng 1.1.
Network class
Số mạng
Số Hosts trong mạng
A
126
16.777.214
B
16.382
65.534
C
2.097.150
254
Bảng 1.1: Bảng phân lớp địa chỉ
Tuy nhiên không phải tất cả các số hiệu mạng (net id) đều có thể dùng được. Một số địa chỉ được để dành cho những mục đích đặc biệt.
Lớp A có số mạng ít nhất, nhưng mỗi mạng lại có nhiều hosts thích hợp với các tổ chức lớn có nhiều máy tính.
Lớp B có số mạng và số hosts vừa phải.
Còn lớp C có nhiều mạng nhưng mỗi mạng chỉ có thể có 254 hosts, thích hợp với tổ chức có ít máy tính.
Để tiện cho việc quản trị cũng như thực hiện các phương pháp tìm đường trên mạng. ở các mạng lớn (lớp A) hay mạng vừa (lớp B) người ta có thể chia chúng thành các mạng con (Subnets) . Ví dụ cho rằng một mạng con có địa chỉ lớp B là 191.12.0.50 khi đó coi 191.12.0.0 là địa chỉ toàn mạng và lập địa chỉ 191.12.1. cho Subnet 1 và 191.12.2 cho Subnet 2.
Có thể dành trọn một nhóm 8 bits để đánh địa chỉ Subnet và một nhóm để đánh địa chỉ các máy trong từng Subnet. Như thế tất nhiên là số máy trong một Subnet sẽ ít đi tương tự như trong mạng nhỏ. Sự phân chia này làm giảm kích thước của bảng định tuyến trong Router/ Gateway, nghĩa là tiết kiệm dung lượng nhớ và thời gian xử lý.
Sự phân chia một mạng thành nhiều mạng con phát sinh vấn đề là số lượng bit dành để đánh địa chỉ mạng con có thể khác nhau và tuỳ thuộc vào nhà quản trị mạng. Do đó người ta đưa vào khái niệm Subnet Mask. Subnet Mask cũng giống như địa chỉ IP bao gồm 32 bits. Mục đích của điạ chỉ Subnet Mask là để chia nhỏ một địa chỉ IP thành các mạng nhỏ hơn và theo dõi vùng nào trên địa chỉ IP được dùng để làm địa chỉ cho mạng