Лекция · 1.2

IP-адрестеу

Wi-Fi роутердің баптау бетін ашып көрсең, сонда «192.168.1.1» секілді сандар тізбегін көресің. Бұл — кездейсоқ сандар емес, әр құрылғының желідегі жеке «мекенжайы». Хатты дұрыс адреске жеткізу үшін пошта индексі керек болатыны сияқты, деректі дұрыс компьютерге жеткізу үшін де дәл осындай мекенжай — IP-адрес — керек. Бүгін осы мекенжайдың құрылымын және онымен байланысты есептерді үйренеміз.

IP-адрес деген не

Интернетте миллиардтаған құрылғы бар. Сервер сенің сұранысыңа жауап қайтарғанда, ол жауапты дәл СЕНІҢ компьютеріңе жіберуі керек, басқаға емес. Мұны қалай біледі? Әр құрылғының бірегей, қайталанбайтын нөмірі болады.

Анықтама
IP-адрес — Интернетке немесе жергілікті желіге қосылған құрылғының қайталанбайтын бірегей мекенжайы. Ол октетке (8 биттік топтарға) бөлінген 32 разрядты екілік сандар тізбегі.

Толық екілік жазуды («11000000.10101000.01000001.01001111») адамға оқу қолайсыз, сондықтан әр 8-биттік топты (0–255 аралығындағы) ондық санмен жазады, нүктемен бөледі:

ТүріЖазылуы
Екілік (32 бит)11000000.10101000.01000001.01001111
Ондық октеттер192.168.65.79

IP-адрес екі түрлі болады: ішкі (тек жергілікті желі шеңберінде қолданылады) және сыртқы (Интернетте көрінеді, провайдер береді). Сыртқы IP-адрес арқылы құрылғының қай елде, қай өңірде екенін анықтауға болады.

Ішкі («сұр») диапазондар
10.0.0.010.255.255.255
172.16.0.0172.31.255.255
192.168.0.0192.168.255.255

Сыртқы IP-адрестің өзі де екі түрлі болады: статикалық (тұрақты, ешқашан өзгермейді) немесе динамикалық (әр қайта қосылғанда жаңадан беріледі). whoer.net сервисі арқылы өз IP-адресіңнің қай түрге жататынын тексеруге болады: Интернетті бірнеше рет сөндіріп-қосқанда адрес өзгермесе — статикалық, өзгерсе — динамикалық.

IPv4 және IPv6

32 биттік IP-адрес неше түрлі мән бере алады? Хартли формуласы бойынша — N = 2³² = 4 294 967 296 (шамамен 4,3 миллиард). Бұл көп болып көрінгенімен, әлемдегі құрылғылар саны (телефон, смарт-теледидар, тіпті тоңазытқыш) осы санды жуық арада басып озды.

⚠️
Мәселе: IPv4 адрестері таусыла бастады — жаңа құрылғыға беретін бос адрес қалмай барады.

Осы мәселені шешу үшін жаңа хаттама нұсқасы ойлап табылды:

ХаттамаҰзындығыМүмкін адрес саны
IPv432 бит2³² ≈ 4,3 млрд
IPv6128 бит (16 байт)2¹²⁸ (әлдеқайда үлкен)

IPv6 адресі әр екі байт сайын қос нүктемен ажыратылып жазылады, мысалы: 2001:0DB8:AA10:0001:0000:0000:0000:00FB. Бір торапта бірнеше IP-адрес болуы мүмкін, бірақ екі құрылғыда бірдей IP-адрес бола АЛМАЙДЫ — әйтпесе сервер қай жерге жауап жіберерін білмей қалар еді.

IP-адрес кластары және желі маскасы

IP-адрес шын мәнінде екі бөліктен тұрады: желі нөмірі (қай желіге жатады) және хост нөмірі (сол желідегі қай компьютер). Мәселе мынада — осы екі бөлікті бір-бірінен қалай ажыратамыз? Мұны шешу үшін «класс» деген тәсіл ойлап табылған.

КлассБірінші бит(тер)ДиапазонЖелі/хост биттері
A00.0.0.0 – 127.255.255.2558 бит желі / 24 бит хост
B10128.0.0.0 – 191.255.255.25516 бит желі / 16 бит хост
C110192.0.0.0 – 223.255.255.25524 бит желі / 8 бит хост
D1110224.0.0.0 – 239.255.255.255Топтық хабар тарату үшін
E11110240.0.0.0 – 247.255.255.255Қазір қолданылмайды

Бірақ желі мен хостты класс бойынша ғана емес, дәлірек — арнайы «шаблон» арқылы да бөлуге болады:

Анықтама
Ішкі желі маскасы (subnet mask) — IP-адреспен бірге қолданылатын, желілік адресті хост нөмірінен бөлуге мүмкіндік беретін үлгі. Мысалы: 255.255.255.0 немесе қысқаша 192.168.1.1/24.

Класс бойынша үш стандартты маска бар: A класына — 255.0.0.0, B класына — 255.255.0.0, C класына — 255.255.255.0. Екілік түрде маска әрқашан «алдымен бірліктер, содан кейін нөлдер» болып жазылады (мыс. 11111111.11111111.11111111.00000000).

⚠️
Маңызды ереже: маскада бірліктер мен нөлдер АРАЛАСА алмайды. Мыс. 01111000... секілді аралас тізбек маска бола алмайды, ал 11111111.11111111.11111000.00000000 (255.255.248.0) — жарамды маска.
Есептер: желі адресін табу

IP-адрес пен маска бар болғанда, желінің өз мекенжайын табу үшін екеуін биттік «ЖӘНЕ» (AND) амалымен көбейтеміз — екі биттің екеуі де 1 болғанда ғана нәтиже 1 болады.

Есеп 1 (қиын)

Берілді: IP-адрес 192.168.11.10, маска ұзындығы /21 (алдыңғы 21 бит — бірлік).

Табу керек: ішкі желі мекенжайы.

Неге дәл осылай шешеміз? Желі мекенжайын табу үшін IP мен маска сәйкес биттерін ЖӘНЕ амалымен салыстырамыз — маскадағы 1 тұрған жерде IP биті сақталады, ал 0 тұрған жерде нәтиже әрқашан 0 болады.

IP:    11000000.10101000.00001011.00001010
Маска: 11111111.11111111.11111000.00000000
ЖӘНЕ:  11000000.10101000.00001000.00000000 = 192.168.8.0

Жауабы: ішкі желі мекенжайы — 192.168.8.0.

Есеп 2 (орта)

Берілді: IP-адрес 192.168.104.115, маска 255.255.255.0.

Табу керек: желі адресі мен компьютер нөмірі.

Шешуі: маска 11111111.11111111.11111111.00000000 түрінде — алғашқы 3 октет желі нөмірін, соңғы октет компьютер нөмірін білдіреді.

Жауабы: желі адресі — 192.168.104.0, компьютер нөмірі — 115.

Есеп 3 (орта): хосттар саны

Берілді: IP-адрес 192.168.104.109, маска 11111111.11111111.11111111.10000000 (соңғы октетте компьютер нөмірлеуге тек 7 бит қалады).

Табу керек: осы желідегі мүмкін компьютерлер саны.

Неге дәл осы формула? n биттен K = 2ⁿ − 2 компьютер нөмірленеді — «минус 2» себебі барлық нөл (желінің өз адресі) мен барлық бір (broadcast-адрес) хостқа берілмейді.

Жауабы: K = 2⁷ − 2 = 128 − 2 = 126 компьютер.

Ескеру
IP-адрестің соңғы октеті мына мәндерді қабылдай алмайды: 0, 63, 64, 127, 128, 191, 192, 255 — өйткені бұл сандардың екілік көрінісі тек 0 немесе тек 1 биттерден тұрады, ал желі түйіндерін адрестеу үшін толық-нөл/толық-бір комбинациялар қолданылмайды.
🎯 ҰБТ байланысы
IP-адрестеу тақырыбы ҰБТ-де көбіне есептеу түрінде кездеседі.
1
Маска мен IP-адресті биттік ЖӘНЕ амалымен дұрыс салыстыру — ең жиі қиналатын жер.
2
Хосттар санын K = 2ⁿ − 2 формуласымен есептегенде «минус 2»-ні ұмытпау.
3
IPv4 (32 бит) мен IPv6 (128 бит = 16 байт) ұзындығын шатастырмау.
Сабақ қорытындысы
  • IP-адрес — желідегі құрылғының бірегей мекенжайы, 4 октеттен (32 бит) тұрады.
  • Ішкі («сұр») IP-адрестер тек жергілікті желіде, сыртқы («ақ») — Интернетте көрінеді.
  • IPv4 (32 бит, ~4,3 млрд адрес) орнына адрес тапшылығынан IPv6 (128 бит) енгізілуде.
  • IP-адрес класс (A–E) немесе желі маскасы арқылы желі нөмірі мен хост нөміріне бөлінеді.
  • Желі мекенжайын табу үшін IP мен маска биттерін ЖӘНЕ амалымен салыстырамыз.