STDIO
Tìm kiếm gần đây
    Mục lục
    Thảo luận
    0
    Liên kết
    QR Code

    Sơ Lược về Địa Chỉ IP

    Tìm hiểu về địa chỉ IP, IPv4, subnet mask, các lớp thường được sử dụng trong mạng.

    Phi Phạm

    03/04/2015
    22/09/2020
    10 phút đọc
    Sơ Lược về Địa Chỉ IP

    IP là một loại địa chỉ logic thuộc lớp Network của mô hình OSI, cung cấp cho chúng ta một cách đánh địa chỉ linh hoạt, tiện dụng để sử dụng trong các giao thức định tuyến sau này. Hầu hết máy tính và thiết bị mạng hiện nay đang sử dụng phiên bản IPv4, nên trong phạm vi bài viết này chúng ta chỉ đề cập tới IPv4.

    Địa chỉ IP là gì?

    Để 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 đó.

    Otect 1  Otect 2  Otect 3  Otect 4
    8 bits   8 bits   8 bits   8 bits
    11000000 10100000 00000000 00000001
    ———————————————————————————————————
         NETWORK     |      HOST

    Để 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 00000000 00000001 sẽ là 192.168.0.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.

    C:\Users\stdio>ipconfig
    
    Wireless LAN adapter Wi-Fi:
    
       Connection-specific DNS Suffix  . :
       Link-local IPv6 Address . . . . . : fe80::a489:65c2:a9a7:b425%14
       IPv4 Address. . . . . . . . . . . : 192.168.0.107
       Subnet Mask . . . . . . . . . . . : 255.255.255.0
       Default Gateway . . . . . . . . . : fe80::1%14
                                           192.168.0.1

    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 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 từ 224.x.x.x – 239.x.x.x sẽ được đề cập ở 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/24192.168.1.1/24.

    Sự giới hạn của địa 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 toà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

    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.

    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.

    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
    Cyber Security

    Đề xuất

    Hành Trình của Một Gói Tin

    Hành Trình của Một Gói Tin

    Cách một gói tin được tạo ra và truyền đi trên mạng Internet theo mô ...

    Cyber SecurityCơ bản

    15/04/2015

    Sơ Lược về Phong Cách Lập Trình

    Sơ Lược về Phong Cách Lập Trình

    Bài viết là một vài chia sẻ về cách hình thành phong cách lập trình để ...

    STDIO TrainingLập trình

    27/05/2014

    Khám phá thêm

    Rắc Rối Lấy Địa Chỉ Biến Kiểu char và cout

    Rắc Rối Lấy Địa Chỉ Biến Kiểu char và cout

    Giải pháp trong việc khó khăn lấy địa chỉ lưu trữ của một biến với cout ...

    Modern C++Nâng cao

    24/01/2015

    Tìm Hiểu về fstream

    Tìm Hiểu về fstream

    Kiến thức về file là một trong những kiến thức quan trọng đối với các ...

    Modern C++C++98

    11/05/2015

    Thỏa Thuận Sử Dụng Dịch Vụ STDIO

    Thỏa Thuận Sử Dụng Dịch Vụ STDIO

    Thỏa thuận này quy định về điều kiện giao kết hợp đồng, quyền lợi, nghĩa ...

    STDIOChính sách

    07/04/2014

    CBP-1: Tổng Quan về Project Ví Dụ

    CBP-1: Tổng Quan về Project Ví Dụ

    Giới thiệu về Component Base Programming (CBP) - sơ lược về project ví ...

    Lập Trình GameKiến Thức Nâng Cao

    20/08/2015

    Giới Thiệu Tổng Quát về SLAM

    Giới Thiệu Tổng Quát về SLAM

    Visual SLAM là một bài toán lớn kết hợp nhiều kiến thức ở các lĩnh vực ...

    Điện Tử Ứng DụngChia sẻ & Góc nhìn

    07/05/2016

    Affiliate Marketing là gì?

    Affiliate Marketing là gì?

    Tìm hiểu về cách thu lợi từ cộng đồng của bản thân đã gầy dựng và phát ...

    Affiliate MarketingKiến thức chung

    15/02/2017

    Sử Dụng CSS Image Sprites Tối Ưu Tải Trang

    Sử Dụng CSS Image Sprites Tối Ưu Tải Trang

    Tối ưu quá trình load một trang web với CSS-Sprite. Các icon, hình ảnh ...

    La Kiến Vinh

    29/05/2014

    CBP-4: Giao Tiếp với Entity – Hệ Thống Chỉ Lệnh

    CBP-4: Giao Tiếp với Entity – Hệ Thống Chỉ Lệnh

    Hướng dẫn về hệ thống chỉ lệnh, bước đầu hiện thực ứng dụng hệ thống chỉ ...

    Lập Trình GameKiến Thức Nâng Cao

    20/08/2015

    STDIO
    Trang chính
    Công ty TNHH STDIO

    30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
    +84 28.36205514 - +84 942.111912
    developer@stdio.vn

    383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
    Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012

    ©STDIO, 2013 - 2020