IPv4

IPv4 () — чацвёртая версія IP-пратакола, першая шырока ўжывальная версія. Пратакол апісаны ў RFC 791 (верасень 1981 года), замяніўшы RFC 760 (студзень 1980 года).

 Адрасацыя 
IPv4 выкарыстоўвае 32-бітныя (чатырохбайтныя) адрасы, якія абмяжоўваюць адрасную прастору 4 294 967 296 (232) магчымымі ўнікальнымі адрасамі.

Зручнай формай запісу IP-адраса (IPv4) з’яўляецца запіс у выглядзе чатырох дзесятковых лікаў (ад 0 да 255), падзеленых кропкамі, напрыклад, 192.168.0.1. (ці 128.10.2.30 — традыцыйная дзесятковая форма ўяўлення адрасу)

 Уяўленне адрасу 
 Форма запісу  Прыклад  Пераўтварэнне з дзесятковай натацыі з кропкамі   192.0.2.235  — Шаснаццатковая з кропкамі  0xC0.0x00.0x02.0xEB  Кожны актэт пераўтвараецца ў шаснаццатковую форму Васьмярковая з кропкамі  0300.0000.0002.0353  Кожны актэт пераўтвараецца ў васьмярковую форму Шаснаццатковая  0xC00002EB  Канкатэнацыя актэтаў з шаснаццатковай натацыі з кропкамі Дзесятковая  3221226219  32-бітны лік у дзесятковай форме Васьмярковая  030000001353  32-бітны лік у васьмярковай форме

 Зарэзерваваня адрасы 
Некаторыя адрасы IPv4 зарэзерваваны для спецыяльных мэтаў і не прызначаны дзеля глабальнай маршрутызацыіRFC3330: Special-use IPv4 addresses; заменены RFC5735: Special-use IPv4 addresses.

 Падсетка  Прызначэння 0.0.0.0/8RFC1700: Assigned Numbers  Адрасы крыніц пакетаў «гэтай» («сваёй») сеткі прызначаны для лакальнага ўжывання на хосце пры стварэнні сокетаў IP. Адрас 0.0.0.0/32 выкарыстоўваецца дзеля пазначэння адрасу крыніцы самога хосту. 10.0.0.0/8RFC1918: Address allocation for private internets  Дзеля ўжывання ў прыватных сетках. 127.0.0.0/8  Падсетка дзеля камунікацый унутры хосту (гл.: localhost). 169.254.0.0/16RFC3927: Dynamic configuration of IPv4 link-local addresses  Канальныя адрасы; падсетка выкарыстоўваецца для аўтаматычнага канфігуравання адрасоў IP у выпадку адсутнасці сервера DHCP. 172.16.0.0/12  Для ўжывання ў прыватных сетках. 100.64.0.0/10RFC6598: IANA-reserved IPv4 prefix for shared address space  Для ўжывання ў сетках сэрвіс-правайдэра. 192.0.0.0/24RFC5736: IANA IPv4 Special Purpose Address Registry  Рэгістрацыя адрасоў спецыяльнага прызначэння. 192.0.2.0/24RFC5737: IPv4 address blocks reserved for documentation  Для ўзораў у дакументацыі. 192.168.0.0/16  Для ўжывання ў прыватных сетках. 198.51.100.0/24  Для ўзораў у дакументацыі. 198.18.0.0/15RFC2544: Benchmarking methodology for network interconnect devices  Для стэндаў тэставання прадукцыйнасці. 203.0.113.0/24  Для ўзораў у дакументацыі. 240.0.0.0/4  Зарэзервавана для ўжывання ў будучыні. 255.255.255.255RFC919: Broadcasting internet datagrams  Абмежаваны шырокавяшчальны адрас.

Ёсць таксама рарэзерваваныя адрасы, якія маршрутызуюцца глабальна.
 Падсетка  Прызначэнне 192.88.99.0/24  Ужываюцца дзеля рассылкі бліжэйшаму вузлу. Адрас 192.88.99.1/32 ужываецца ў якасці рэтранслятара пры інкапсуляцыі IPv6 у IPv4 (6to4)RFC3068: An anycast prefix for 6to4 relay routers. 224.0.0.0/4RFC3171: IANA guidelines for IPv4 multicast address assignments  Выкарыстоўваюцца для шматадраснай рассылкі.

 Структура пакету 
Пакет IP змяшчае 14 палёў, з якіх 13 з’яўляюцца абавязковымі. Чатырнаццатае поле прызначана для неабавязковых опцый. Палі ўжываюць парадак байтаў ад старэйшага да малодшага, старэйшыя біты ідуць першымі. Першы біт мае нумар 0. Такім чынам, напрыклад, поле з версіяй знаходзіцца ў чатырох старэйшых бітах першага байта.

 Зрушэнне ў бітах 0-3  4-7  8-13  14-15  16-18  19-31 0 Версія Памер загалоўка Differentiated Services Code Point Explicit Congestion Notification Памер пакета 32 Ідэнтыфікатар  Флаги  Зрушэнне фрагмента 64 Час жыцця  Пратакол  Кантрольная сума заголоўка 96 Адрас крыніцы 128 Адрас прызначэння 160 Опцыі (калі памер загалоўка > 5) 160 или 192+ Даныя

 Версія  Першым полем пакета з’яўляецца версія пратакола памерам у чатыры біта. Для IPv4 гэта 4.

 Памер загалоўка (Internet Header Length) Наступныя чатыры біта змяшчаюць памер загалоўка пакета у 32-бітных словах. Паколькі колькасць опцый не сталая, указанне памера важна для адлучэння заголоўка ад даных. Мінімальнае значэнне роўнае 5 (5×32=160 біт, 20 байт), максімальнае — 15 (60 байт).

 Differentiated Services Code Point (DSCP)
 Першапачаткова звалася «тып абслугоўвання» (Type of Service, ToS), у цяперашні час вызначаецца RFC 2474 як «Differentiated Services». Ужываецца для падзялення трафіка на класы абслугоўвання, напрыклад для ўсталёўкі адчувальнаму да затрымак трафіку, такому як VoIP большага прыярытэту.

 Указальнік перагрузкі (Explicit Congestion Notification, ECN)  Папярэджанне аб перагрузцы сеткі без страты пакетаў. З’яўляецца неабавязковай функцыяй і ўжываецца толькі калі абодва хоста яе падтрымліваюць.

 Памер пакета  16-бітны поўны памер пакета ў байтах, уключаючы загаловак і даныя. Мінімальны памер роўны 20 байтам (зашаловак без даных), максімальны — 65535 байт. Хосты павінны падтрымліваць перадачу пакетаў памерам да 576 байт, але сучасныя рэалізацыі звычайна падтрымліваюць значна большы памер. Пакеты большага памера, чым падтрымлівае канал сувязі, фрагментуюцца.

 Ідэнтыфікатар  Пераважна ўжываецца для ідэнтыфікацыі фрагментаў пакету, калі ён быў фрагментаваны. Існуюць эксперыменты па яго ўжыванню для іншых мэтаў, такіх як даданне інфармацыі аб трасіроўцы пакета для спрашчэння адсочвання шляха пакета з падробным адрасам крыніцы.

 Флагі  Поле памерам тры біта змяшчае флагі кантролю над фрагментацыяй. Біты ад старэйшага да малодшага азначаюць:
 0: Зарэзерваваны, павінен быць роўны 0.У якасці першакрасавіцкага жарта прапанаваны азначаць зламыснасць пакета (evil bit)
 1: Не фрагментаваць
 2: У пакета ёсть яшчэ фрагменты
 Калі ўсталяваны флаг «не фрагментаваць», то ў выпадку неабходнасці фрагментацыі такі пакет будзе знішчаны. Можа ўжывацца для перадачы даных хостам, якія ня маюць досыць рэсурсаў для апрацоўкі фрагментаваных пакетаў.
 Флаг «ёсть фрагменты» павінен быць усталяваны ў 1 ва ўсіх фрагментаў пакета, акрамя апошняга. У нефрагментаваных усталёўваецца ў 0 — такі пакет лічыцца ўласным апошнім фрагментам.

 Зрушэнне фрагмента  Поле памерам у 13 біт, указвае зрушэнне бягучага фрагмента ад пачатка перадачы фрагментаванага пакета ў блоках па 8 байт. Дазваляе (213−1)×8=65528 байт зрушэння, што перавышае максімальны памер пакета. Першы фрагмент у паслядоўнасці мае нулявое зрушэнне.

 «Час жыцця» (Time to Live, TTL) пакета.  Дазваляе перадухіліць закальцоўванне пакетаў у сеціве шляхам знішчэння пакетаў, якія перавысілі час жыцця. Указваецца ў секундах, інтэрвалы менш секунды акругляюцца да адной секунды. На практыцы кожны маршрутызатар змяньшае час жыцця пакетаў на адзінку (што слушна для існуючых тыповых затрымак у сеціве). Пакеты, час жыцця якіх стаў роўны нулю, знішчаюцца, а адпраўніку дасылаецца паведамленне ICMP Time Exceeded. На адпраўцы пакетаў з розным часам жыцця заснавана трасіроўка іх шляха праходжання (traceroute).

 Пратакол  Указвае, даныя якога пратакола змяшчае пакет (напрыклад, TCP ці ICMP). Прысвоеныя нумары пратаколаў можна знайсці на сайце IANA.Assigned Internet Protocol Numbers

 Кантрольная сума загалоўка  16-бітная кантрольная сума, ужываецца для праверкі цэласнасці загалоўка. Кожны хост ці маршрутызатар параўноўвае кантрольную суму загалоўка са значэннем гэтага поля і адкідвае пакет, калі яны не супадаюць. Цэласнасць даных IP не правярае — яна правяраецца пратаколамі больш высокіх узроўняў (такіх як TCP ці UDP), якія таксама выкарыстоўваюць кантрольныя сумы.
 Паколькі TTL памяньшаецца на кожным кроку праходжання пакета, сума таксама павінна вылічацца на кожным кроку. Метад пераліку кантрольнай сумы вызначаны ў RFC 1071.Computing the Internet Checksum

 Адрас крыніцы  32-бітны адрас адпраўніка пакета. Можа не супадаць з сапраўдным адрасам адпраўніка з-за трансляцыі адрасоў.

 Адрас прызначэння  32-бітны адрас атрымальніка пакета.

 Опцыі  За адрасам прызначэння можа ісці поле дадатковых опцый, але яно ўжываецца рэдка. Памер загалоўка ў гэтым выпадку павінен быць дастатковым, каб змясціць усе опцыі (з улікам дадатку да цэлага ліку 32-бітных слоў).
 Калі спіс опцый не з'яўляецца канцом загалоўка, ён павінен сканчацца опцыяй 0x00. Опцыі маюць наступны фармат:

 Поле  Памер у бітах  Апісанне Капіяваць  1  Усталёўваецца ў 1, калі патрэбна капіяваць опцыі ў загалоўкі ўсіх фрагментаў. Клас опцыі  2  0 для «кіравальных» опцый і 2 для опцый «зменаў і адладкі». 1 і 3 зарэзерваваны. Нумар опцыі  5  Указвае опцыю. Памер опцыі  8  Указвае памер опцыі (з улікам гэтага поля). Можа не ўказвацца для опцый без аргументаў. Аргументы опцыі  пераменны  Дадатковыя даныя, якія ўжываюцца опцыяй.
 Заўвага: Памер загалоўка больш 5 слоў указвае на прысутнасць опцый і неабходнасць іх апрацоўкі.
 Заўвага: Палі «капіяваць», «клас опцыі» і «нумар опцыі» часам называюць адным васьмібітным полем «тып опцыі».

 Вычарпанне адраснай прасторы 

Ужо ў 1980-я гады стала відавочна, што размеркаванне адраснай прасторы адбываецца значна болей хуткімі тэмпамі, чым было заложана ў архітэктуру IPv4. Гэта прывяло спачатку да з’яўлення класавай адрасацыі, пазней бяскласавай адрасацыі, і ў канчатковым выніку да распрацоўкі новага пратакола IPv6.

У лютым 2011 года IANA выдаткавала 5 апошніх блокаў адрасоў RIRам. Блокі вольных IP-адрасоў пачалі заканчвацца ў рэгіянальных рэгістратараў з 2011 года.IPv4 Address Report

 Гл. таксама 
 TCP
 SCTP
 Рэгіянальны інтэрнэт-рэгістратар

Катэгорыя:TCP/IP
Катэгорыя:Пратаколы сеткавага ўзроўню