IP-адрестеу
Wi-Fi роутердің баптау бетін ашып көрсең, сонда «192.168.1.1» секілді сандар тізбегін көресің. Бұл — кездейсоқ сандар емес, әр құрылғының желідегі жеке «мекенжайы». Хатты дұрыс адреске жеткізу үшін пошта индексі керек болатыны сияқты, деректі дұрыс компьютерге жеткізу үшін де дәл осындай мекенжай — 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.0 – 10.255.255.255 |
172.16.0.0 – 172.31.255.255 |
192.168.0.0 – 192.168.255.255 |
Сыртқы IP-адрестің өзі де екі түрлі болады: статикалық (тұрақты, ешқашан өзгермейді) немесе динамикалық (әр қайта қосылғанда жаңадан беріледі). whoer.net сервисі арқылы өз IP-адресіңнің қай түрге жататынын тексеруге болады: Интернетті бірнеше рет сөндіріп-қосқанда адрес өзгермесе — статикалық, өзгерсе — динамикалық.
32 биттік IP-адрес неше түрлі мән бере алады? Хартли формуласы бойынша — N = 2³² = 4 294 967 296 (шамамен 4,3 миллиард). Бұл көп болып көрінгенімен, әлемдегі құрылғылар саны (телефон, смарт-теледидар, тіпті тоңазытқыш) осы санды жуық арада басып озды.
Осы мәселені шешу үшін жаңа хаттама нұсқасы ойлап табылды:
| Хаттама | Ұзындығы | Мүмкін адрес саны |
|---|---|---|
| IPv4 | 32 бит | 2³² ≈ 4,3 млрд |
| IPv6 | 128 бит (16 байт) | 2¹²⁸ (әлдеқайда үлкен) |
IPv6 адресі әр екі байт сайын қос нүктемен ажыратылып жазылады, мысалы: 2001:0DB8:AA10:0001:0000:0000:0000:00FB. Бір торапта бірнеше IP-адрес болуы мүмкін, бірақ екі құрылғыда бірдей IP-адрес бола АЛМАЙДЫ — әйтпесе сервер қай жерге жауап жіберерін білмей қалар еді.
IP-адрес шын мәнінде екі бөліктен тұрады: желі нөмірі (қай желіге жатады) және хост нөмірі (сол желідегі қай компьютер). Мәселе мынада — осы екі бөлікті бір-бірінен қалай ажыратамыз? Мұны шешу үшін «класс» деген тәсіл ойлап табылған.
| Класс | Бірінші бит(тер) | Диапазон | Желі/хост биттері |
|---|---|---|---|
| A | 0 | 0.0.0.0 – 127.255.255.255 | 8 бит желі / 24 бит хост |
| B | 10 | 128.0.0.0 – 191.255.255.255 | 16 бит желі / 16 бит хост |
| C | 110 | 192.0.0.0 – 223.255.255.255 | 24 бит желі / 8 бит хост |
| D | 1110 | 224.0.0.0 – 239.255.255.255 | Топтық хабар тарату үшін |
| E | 11110 | 240.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 болады.
Берілді: 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.
Берілді: IP-адрес 192.168.104.115, маска 255.255.255.0.
Табу керек: желі адресі мен компьютер нөмірі.
Шешуі: маска 11111111.11111111.11111111.00000000 түрінде — алғашқы 3 октет желі нөмірін, соңғы октет компьютер нөмірін білдіреді.
Жауабы: желі адресі — 192.168.104.0, компьютер нөмірі — 115.
Берілді: 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-адрес — желідегі құрылғының бірегей мекенжайы, 4 октеттен (32 бит) тұрады.
- Ішкі («сұр») IP-адрестер тек жергілікті желіде, сыртқы («ақ») — Интернетте көрінеді.
- IPv4 (32 бит, ~4,3 млрд адрес) орнына адрес тапшылығынан IPv6 (128 бит) енгізілуде.
- IP-адрес класс (A–E) немесе желі маскасы арқылы желі нөмірі мен хост нөміріне бөлінеді.
- Желі мекенжайын табу үшін IP мен маска биттерін ЖӘНЕ амалымен салыстырамыз.