[4] Địa chỉ IPv4

Địa chỉ IP là địa chỉ có cấu trúc, được chia ra làm 2 phần là : network_id và host_id. Địa chỉ IP có chiều dài 32 bit nhị phân và được chia làm 4 phần, mỗi phần có 8 bit hay 1 byte, còn được gọi là octet. Mỗi byte được thể hiện ở hệ thập phân có giá trị từ 0 đến 255.

Hình 1 Địa chỉ IPv4

Có các cách trình bày như sau :
  • Cách viết thập phân có dấu chấm "." (Dotted-demical notation). VD: 192.168.1.1
  • Cách viết theo hệ nhị phân. VD: 10101100 00010000 00011110 00111000
  • Cách viết theo hệ thập lục phân. VD: AC 10 1E 38
Thông thường cách viết theo dạng thập phân được sử dụng phổ biến hơn hiện nay.

Hình 2 Cấu trúc của địa chỉ IPv4

Không gian địa chỉ IP (Gồm 2^32 địa chỉ) được chia thành nhiều lớp (Class) để quản lý. Đó là các lớp A,B,C,D và E. Trong đó các lớp A,B và C được sử dụng triển khai đặt cho các Host trên mạng; lớp D dùng cho các nhóm Multicast; lóp E sử dụng cho mục đích nghiên cứu. Địa chỉ Ip còn được gọi là địa chỉ luận lý (Logical), trong khi địa chỉ MAC còn được gọi là địa chỉ vật lý (Hay địa chỉ Physical).

1/ Một số các khái niệm

  • Network_id : là phần để xác định địa chỉ mạng. Trong số 32 bit dùng địa chỉ IP, sẽ có một số bit đầu tiên dùng để xác định Network_id
  • Host_id : là phần xác định địa chỉ Host. Trong số 32 bit dùng làm địa chỉ IP, sẽ có một số bit cuối cùng dùng để xác định Host_id
  • Địa chỉ Host : Là địa chỉ IP, có thể dùng để đặt cho các Interface của các Host. Hai Host nằm thuộc cùng một mạng se có Network_id giống nhau và Host_id khác nhau.
  • Mạng (Network): Một nhóm nhiều Host kết nối trực tiếp với nhau. Giữa 2 Host bất kỳ không bị phân cách bởi một thiết bị ở lớp 3 (Lớp Network). Giữa mạng này với mạng khác phải kết nối với nhau bằng thiết bị lớp 3 (Router)
  • Địa chỉ mạng (Network Address) : Là địa chỉ IP dùng để đặt cho các mạng. Địa chỉ này không thể dùng để đặt cho một giao tiếp mạng (Network Interface). Phần Host_id của địa chỉ mạng chỉ chứa các bit 0. VD: 172.16.0.0
  • Địa chỉ mạng con (Subnet Network Address) : Là địa chỉ mạng có được khi một địa chỉ mạng được phân chia nhỏ hơn. Địa chỉ mạng còn được xác định dựa vào địa chỉ IP và mặt nạ mạng (Subnet Mask) đi kèm.
  • Địa chỉ Multicast : Là địa chỉ IP được dùng bởi các ứng dụng. Dùng để gửi thông tin đến một nhóm máy trong mạng
  • Địa chỉ Broadcast : Là địa chỉ IP đại diện cho tất cả các host trong mạng. Địa chỉ này được dùng bởi các ứng dụng và các host, để quảng bá thông tin đến tất cả các host trong mạng. Phần host_id của địa chỉ Broadcast chỉ chưa các bit 1. Địa chỉ này cũng không thể sử dụng để đặt cho một host. VD: 172.16.255.255 là một địa chỉ Broadcast
Các phép toán làm việc trên bit


VD: minh họa phép tính ABD giữa địa chỉ 172.29.14.10 và Mask 255.255.0.0

172.29.14.10  = 10101100 00011101 00001110 00001010      AND
255.255.0.0    = 11111111  11111111  00000000 00000000
----------------------------------------------------------------------
172.29.0.0      = 10101100 00011101 00000000 00000000
  • Mặt nạ mạng (Network Mask) : Là một số có chiều dài 32 bit, giá trị này dùng để xác định Network_id và Host_id của một địa chỉ IP. Mặt nạ mạng cũng cho biết số bit nẳm trong phần Host_id. Được xây dựng theo cách : Bật các bit tương ứng trong phần Network_id thành bit 1 và tắt các bit tương ứng với phần Host_id chuyển thành bit 0.
Mặt nạ mặc định của lớp A : Sử dụng cho các địa chỉ IP lớp A có giá trị 255.0.0.0
Mặt nạ mặc định của lớp B : Sử dụng cho các địa chỉ IP lớp B có giá trị 255.255.0.0
Mặt nạ mặc định của lớp C : Sử dụng cho các địa chỉ IP lớp C có giá trị 255.255.255.0

2/ Các lớp địa chỉ IPv4

Lớp A

Dành 1 byte đầu tiên để mô tả phần Network_id và 3 byte còn lại mô tả phần Host_id


Để nhận diên IP lớp A, bit đầu tiên của byte đầu tiên phải là bit 0 dưới dạng nhị phân, byte này có dạng 0xxxxxxx. Vì vậy, những địa chỉ IP có byte đầu tiên nằm trong khoảng từ 0 (00000000) đến 127 (01111111) sẽ thuộc lớp A. VD: 50.14.32.8 là một địa chỉ IP lớp A vì byte đầu tiên nằm trong giá trị 0<50<127.
Byte đầu tiên này cũng chính là network_id, trừ đi bit đầu tiên làm ID nhận dạng lớp A, còn lại 7 bit để đánh thứ tự các mạng, ta được 2^7 = 128 mạng lớp A khác nhau. Bỏ đi hai trường hợp đặc biệt là 0 và 127. Kết quả là địa chỉ IP lớp A chỉ còn 2^7-2=126 địa chỉ mạng được sử dụng. 1.0.0.0 đến 126.0.0.0.
Phần host_id chiếm 24 bit, tức là có thể đặt 2^24-2 = 16,777,214 host khác nhau trong mỗi mạng lớp A. VD: đối với mạng 10.0.0.0 thì những giá trị host hợp lệ là 10.0.0.1 đến 10.255.255.254

Lớp B

Dành 2 byte đầu cho mỗi phần network_id và 2 byte còn lại cho phần host_id


Dấu hiệu để nhận dạng địa chỉ lớp B là byte đầu tiên luôn bắt đầu bằng 2 bit 10. Dưới dạng nhị phân, Octet có dạng 10xxxxxx. Vì vậy những địa chỉ nằm trong khoảng từ 128 (10000000) đến 191 (10111111) sẽ thuộc lớp B. VD: 172.29.10.1 là một địa chỉ lớp B vì byte đầu tiên có giá trị nằm trong khoảng 128<172<191
Phần Network_id chiếm 16 bit bỏ đi 2 bit làm ID cho lớp B còn lại 14 bit cho phép ta đánh thứ tự 2^14 = 16,384 mạng khác nhau 128.0.0.0 đến 191.255.0.0
Phần Host_id dài 16 bit  hay ta có 2^16 = 65,536 giá trị khác nhau. Trừ đi 2 trường hợp đặc biệt còn lại 2^16-2 = 65,534 host trong một mạng lớp B. VD: đối với mạng 172.29.0.0 thì các địa chỉ host hợp lệ là từ 172.29.0.1 đến 172.29.255.254

Lớp C

Dành 3 byte đầu cho phần network_id và một byte còn lại cho phần host_id


Byte đầu tiên luôn bắt đầu bằng 3 bit 110 và dạng nhị phân của Octet này là 110xxxxx. Như vậy, những địa chỉ nằm trong khoảng 192 (11000000) đến 223 (11011111) sẽ thuộc lớp C. VD: địa chỉ 203.162.41.235 là một địa chỉ lớp C vì 203<192<223
Phần network_id dùng 3 byte hay 24 bit, trừ đi 3 bit làm ID nhận diện của lớp C, còn lại 21 bit hay 2^21 = 2,097,152 địa chỉ mạng từ 192.0.0.0 đến 223.255.255.0.
Phần host_id dài một byte cho 2^8 =256 giá trị khác nhau. Trừ đi 2 trường hợp đặt biệt ta còn 2^-2 = 254 host khác nhau trong một mạng lớp C. VD: đối với mạng 203.162.41.0, các địa chỉ host hợp lệ là từ 203.162.41.1 đến 203.162.41.254. 

Lớp D và E

Lớp D là lớp địa chỉ Multicast, giá tti5 của byte đầu tiên của lớp nằm trong khoảng 224 - 239. Các địa chỉ lớp D không dùng để gán cho interface của Host mà chỉ được các ứng dụng dùng để gửi thông tin đến một nhóm các host trong mạng. VD: 224.240.1.1 là một địa chỉ Multicast

Lớp E cũng có giá trị byte đầu tiên từ 240 đến 255. Lớp này được dành riêng cho những mục đích khác và cũng không được sử dụng để gán cho interface của host.

Hình 3 các lớp địa chỉ IP

Hình 4 Bảng tổng kết phân bố địa chỉ IP

3/ Địa chỉ dành riêng và cơ chế chuyển đổi địa chỉ mạng

Địa chỉ dành riêng (Private Address) là địa chỉ được dùng để gán cho các thiết bị trong mạng nội bộ dành riêng (Private network) , nhưng không thể được sử dụng để định tuyến ra mạng Internet. Địa chỉ dành riêng, được sử dụng với mục đích tiết kiệm không gian địa chỉ IP.
Tất cả các host khi kết nối vào mạng Internetđầu phải có một địa chỉ IP do tổ chức IANA (Internet Assigned Numbers Authority) cấp phát- gọi là địa chỉ IP hợp lệ (hay đã được đăng ký). Tuy nhiên, với tình hình như hiện nay số host kết nối vào mạng Internet càng ngày càng gia tăng, dẫn đến tình trạng khan hiếm địa chỉ IP.

Một giải pháp được đưa ra đó là sử dụng cơ chế NAT (Network address Translation) đi kèm theo với qui định của RFC1918 danh sách các địa chỉ IP dành riêng (Private Address). Các địa chỉ này sẽ không được tổ chức IANA cấp phát. Khi sử dụng địa chỉ dành riêng kết hợp với kỹ thuật NAT, sẽ làm gia tăng độ bảo mật cho các thiết bị trong mạng riêng khi kết nối Internet. 

Bảng IP Private được RFC1918 qui định :
Hình 5 Private IP address range