Để gửi thư cho nhau, ta bắt buộc phải biết địa chỉ của đối phương, các gói tin cũng vậy, luôn phải có một loại địa chỉ để xác định vị trí, từ đó trao đổi thông tin chính xác giữa máy nguồn và máy đích. Vậy nên, trong Internet các địa chỉ IP là duy nhất.
Cấu trúc của địa chỉ IP
Địa chỉ IP là một dải nhị phân dài 32 bit và chia thành 4 bộ 8 bit gọi là các Octet, gồm phần net-id dùng để xác định mạng mà thiết bị kết nối vào và phần host-id để xác định thiết bị của mạng đó.
Để cho đơn giản, người ta viết lại địa chỉ IP dưới dạng 4 số thập phân được cách nhau bởi dấu chấm.
Ví dụ: địa chỉ hệ thập phân tương ứng cho 11000000 10100000 00000001 00000001 sẽ là 192.168.1.1 - một địa chỉ khá quen thuộc.
Để xem địa chỉ IP của máy tính một cách đơn giản, ta có thể sử dụng Command Prompt với câu lệnh ipconfig.
Subnet mask
Mỗi địa chỉ IP luôn đi kèm với một Subnet mask, để xác định được phần net-id của địa chỉ đó. Subnet mask cũng là một dải nhị phân dài 32 bits và chia ra 4 bộ 8 bits như địa chỉ IP.
Subnet mask bao gồm phần các bits 1 và phần còn lại là các bits 0, subnet mask có bao nhiêu bit 1 thì địa chỉ IP tương ứng sẽ có bấy nhiêu bit phần net-id.
Ví dụ: với subnet mask như sau: 11111111 11111111 11111111 000000002 (255.255.255.010) bao gồm 24 bits 1, thì địa chỉ IP mang subnet mask này cũng sẽ có 24 bits phần net-id.
Có thể viết trực tiếp như sau: 192.168.1.3 - 255.255.255.0 hoặc sử dụng prefix length: 192.168.1.3/24
Lưu ý, một địa chỉ IP có thể thuộc các mạng khác nhau nếu sử dụng các subnet mask khác nhau. Để xác định địa chỉ IP đó thuộc mạng nào, ta chỉ cần lấy địa chỉ IP AND (bitwise) với subnet mask tương ứng.
Ví dụ: 192.168.1.3 AND 255.255.255.0 = 192.168.1.0 vậy địa chỉ 192.168.1.3/24 thuộc mạng 192.168.1.0/24
Phân lớp địa chỉ IP
Số lượng địa chỉ IP là rất lớn, nên để tiện cho việc quản lý, người ta phân hoạch toàn bộ địa chỉ IP ra thành 5 lớp khác nhau.
Lớp A
Địa chỉ lớp A sử dụng 1 Octet đầu tiên làm net-id, phần còn lại làm host-id. Bit đầu tiên của địa chỉ lớp A luôn là 0 nên
Giá trị nhỏ nhất của Octet 1: 000000002 hay 010
Giá trị lớn nhất của Octet 1: 011111112 hay 12710
Default subnet mask: 255.0.0.0
Tuy nhiên, giá trị 010 không được sử dụng và giá trị 12710 được dành cho Loopback và chuẩn đoán, kiểm tra lỗi, nên dải địa chỉ lớp A sẽ là từ 1.x.x.x đến 126.x.x.x
Lớp B
Địa chỉ lớp B sử dụng 2 Octet đầu tiên để làm net-id, 2 Octet còn lại làm host-id. 2 bits đầu tiên của địa chỉ lớp B luôn là 10 nên
Giá trị nhỏ nhất của Octet 1: 100000002 hay 12810
Giá trị lớn nhất của Octet 1: 101111112 hay 19110
Default subnet mask: 255.255.0.0
Vậy dải địa chỉ lớp B sẽ là từ 128.x.x.x đến 191.x.x.x
Lớp C
Địa chỉ lớp C sử dụng 3 Octet đầu tiên để làm net-id, Octet 4 làm host-id. 3 bits đầu tiên của địa chỉ lớp C luôn là 110 nên:
Giá trị nhỏ nhất của Octet 1: 110000002 hay 19210
Giá trị lớn nhất của Octet 1: 110111112 hay 22310
Default subnet mask: 255.255.255.0
Vậy dải địa chỉ lớp C bắt đầu từ 192.x.x.x đến 223.x.x.x
Ngoài ra còn có địa chỉ lớp D (224.x.x.x – 239.x.x.x) sẽ nói tới ở phần sau và lớp E (240.x.x.x – 254.x.x.x) dùng để thí nghiệm và nghiên cứu.
Các loại địa chỉ IP
Địa chỉ Unicast
Khi bạn muốn gửi gói tin đến một máy tính cụ thể, khi đó địa chỉ để bạn gửi tới sẽ là một địa chỉ unicast. Đây đơn giản chỉ là địa chỉ IP của một thiết bị nào đó trong cùng hoặc mạng cục bộ khác.
Địa chỉ Multicast
Trường hợp muốn gửi gói tin đến nhiều máy tính, ta không thể gửi lần lượt đến tất cả các máy được. Vì thế, địa chỉ bạn cần gửi tới trong trường hợp này sẽ là một địa chỉ Multicast, địa chỉ này đại diện cho một nhóm các thiết bị.
Địa chỉ multicast này chính là các địa chỉ trong dải địa chỉ lớp D.
Địa chỉ Broadcast
Khi muốn gửi thông điệp đến tất cả các máy trong mạng nội bộ, đó là lúc ta cần sử dụng đến địa chỉ Broadcast. Địa chỉ Broadcast là địa chỉ có toàn bộ các bits phần host-id là 1. Khi gói tin được gửi đến địa chỉ Broadcast, thì nó sẽ được gửi tới tất cả các máy cùng mạng, tức là cùng phần net-id. Vì đại diện cho toàn bộ thiết bị trong mạng nên địa chỉ Broadcast không thể đặt được cho bất kỳ thiết bị nào.
Ví dụ: 192.168.1.255/24 là địa chỉ Broadcast của mạng 192.168.1.0/24.
Địa chỉ mạng
Không chỉ các thiết bị mới có địa chỉ IP, mà các mạng thành phần của Internet hay mạng cục bộ cũng có một địa chỉ để xác định chính xác mạng đó. Khi tất cả các bits phần Host của một địa chỉ IP là 0, thì địa chỉ đó được gọi là địa chỉ mạng của mạng đó. Vì đại diện cho mạng nên địa chỉ mạng cũng không thể đặt được cho bất kỳ thiết bị nào.
Ví dụ: 192.168.1.0/24 là địa chỉ mạng của mạng 192.168.1.0/24.
Default Gateway
Như một cổng thoát hiểm, khi gói tin cần gửi đến địa chỉ không cùng mạng hiện tại, hoặc đơn giản là không biết gửi đi đâu, thì gói tin đó sẽ được gửi tới địa chỉ Default gateway, thường là một interface của Router nối trực tiếp với mạng đó. Tại đây, Router sẽ dùng các chức năng định tuyến để chuyển tiếp gói tin đi các hướng khác nhau.
Default Gateway thường là địa chỉ IP có thể sử dụng đầu tiên của mạng đó.
Ví dụ: Default gateway của mạng 192.168.1.0/24 là 192.168.1.1/24.
Sự giới hạn của đia chỉ IP
Số lượng địa chỉ IP là rất lớn, nhưng không phải là vô hạn. Vì vậy để bảo tồn địa chỉ IP, người ta chia địa chỉ IP ra làm 2 loại là địa chỉ public và địa chỉ private.
Địa chỉ public
Là các địa chỉ độc nhất, sử dụng được trong môi trường Internet.
Địa chỉ private
Chỉ sử dụng được trong mạng cục bộ, có thể tái sử dụng lại ở mạng cục bộ khác, nhưng trong một mạng thì vẫn phải mang giá trị duy nhất.
Với mỗi phân lớp địa chỉ IP, thì có một dải địa chỉ dùng để làm địa chỉ private cho lớp đó:
Lớp A: Từ 10.0.0.0 đến 10.255.255.255, subnet mask 255.0.0.0
Lớp B: Từ 172.16.0.0 đến 172.31.255.255, subnet mask 255.240.0.0
Lớp C: Từ 192.168.0.0 đến 192.168.255.255, subnet mask 255.255.0.0
Khi các thiết bị sử dụng địa chỉ IP private trong mạng cục bộ muốn truy cập được Internet – môi trường không sử dụng địa chỉ private, công nghệ NAT (Network Address Translation) được cài đặt trên các thiết bị router(đã được gán 1 địa chỉ IP Public) được sử dụng để chuyển IP private thành IP public và ngược lại, giúp cho các thiết bị trong mạng cục bộ vẫn có thể truy cập được Internet.
Phương pháp chia IP và Subnet mask
[1] Giả sử ta có yêu cầu 1
Cho địa chỉ 192.168.155.245/ 27. Xác định địa chỉ mạng, địa chỉ broadcast, dải địa chỉ có thể dùng cho host?
Phương pháp tính
Prefix length = 27, vậy subnet mask tương ứng là 11111111 11111111 11111111 111000002 - từ đó ta xác định được số bits phần net-id của địa chỉ IP (sẽ được ghi màu cam).
IP = 192.168.155.245, dạng nhị phân tương ứng là: 11000000 10101000 10011011 111101012
Giữ lại phần net-id, phần host-id set về toàn bit 0: 11000000 10101000 10011011 111000002
Ta được địa chỉ mạng, viết lại ở dạng thập phân sẽ là: 192.168.155.224/27.
Với địa chỉ Broadcast, host-id sẽ set về toàn bit 1: 11000000 10101000 10011011 111111112
Ta được địa chỉ Broadcast, viết lại ở dạng thập phân sẽ là: 192.168.155.255/27.
Vì địa chỉ mạng và địa chỉ Broadcast không được dùng cho host nên dải địa chỉ có thể sử dụng ở đây là từ192.168.155.225/27 đến 192.168.155.254/27.
[2] Giả sử ta có yêu cầu 2
Cho mạng 192.168.155.0/ 24. Chia mạng này thành các mạng con cho các phòng ban sau: Phòng A: 80 máy, phòng B: 60 máy, 2 phòng C, D: mỗi phòng 25 máy.
Phương pháp tính
Đầu tiên ta có địa chỉ IP và các bit phần net-id: 11000000 10101000 10011011 000000002 trừ địa chỉ mạng và broadcast ra, thì mạng này có tối đa 254 máy.
Ta mượn 1 phần host-id chuyển qua làm net-id, được 2 mạng con như sau:
11000000 10101000 10011011 000000002 hay 192.168.155.0/25
11000000 10101000 10011011 100000002 hay 192.168.155.128/25
Ta thấy, mạng 192.168.155.0/25 có 7 bits phần host-id, biểu diễn được 127 máy, đủ cho phòng A, nên ta gán mạng này cho phòng A.
Với địa chỉ 192.168.155.128/25, ta lại mượn 1 phần host-id chuyển qua làm net-id, được 2 mạng con như sau:
11000000 10101000 10011011 100000002 hay 192.168.155.128/26
11000000 10101000 10011011 110000002 hay 192.168.155.192/26
Tiếp tục, mạng 192.168.155.128/26 có 6 bits phần host-id, biểu diễn được 63 máy, nên ta gán cho phòng B mạng này.
Làm tương tự với mạng 192.168.155.192/26, được 2 mạng con:
11000000 10101000 10011011 110000002 hay 192.168.155.192/27
11000000 10101000 10011011 111000002 hay 192.168.155.224/27
2 mạng con này có 5 bits phần host-id, biểu diễn được 31 máy, ta gán lần lượt cho phòng C và D.
Như vậy ta đã chia mạng 192.168.155.0/24 thành các mạng con có kích cỡ khác nhau, phù hợp với yêu cầu đề bài:
Phòng A: 192.168.155.0/25
Phòng B: 192.168.155.128/26
Phòng C: 192.168.155.192/27
Phòng D: 192.168.155.224/27