Internet Protocol (IP, բառացի․ «համացանցային հաղորդակարգ»), այնTCP/IP[1]ցանցային մակարդակիերթուղային հաղորդակարգ է[2]: Հենց IP-ն դարձավ այն հաղորդակարգը, որը միացրեց առանձինհամակարգչային ցանցերը ընդհանուրհամացանցի հետ[3]։ Հաղորդակարգի անբաժանելի մասը ցանցի հասցեագրումն է։
IP-ն համատեղում է ցանցի հատվածները մեկ ցանցի մեջ, ապահովելով տվյալների փաթեթների առաքում ցանկացած ցանցի հանգույցների միջև կամայական թվով միջանկյալ հանգույցների (երթուղիչների) միջոցով: Այն դասակարգվում է որպեսցանցային շերտի հաղորթակարգ ՝ ըստOSI ցանցային մոդելի[4]: IP-ն չի երաշխավորում փաթեթի հուսալի առաքումը հասցեատիրոջը,մասնավորապես, փաթեթները կարող են չուղարկվել այն կարգով, որով առաքվել են, կրկնօրինակվել (մեկ փաթեթից երկու օրինակ է գալիս), վնասված լինել (սովորաբար վնասված փաթեթները ոչնչացվում են) կամ ընդհանրապես չեն ուղարկվում։ Փաթեթների անսխալ առաքման երաշխիքը տրվում է ավելի բարձր մակարդակի որոշ հաղորդակարգերով, OSI ցանցային մոդելի տրանսպորտային շերտով, օրինակ TCP — ներով, որոնք IP-ն օգտագործում են որպես տրանսպորտ:
IP փաթեթը առաքելիս այն անցնում է առաքման տարբեր ուղիներով: Հնարավոր է իրավիճակ, երբ փաթեթի չափը գերազանցում է կապի համակարգի հանգույցի հնարավորությունները: Այս դեպքում արձանագրությունը նախատեսում է առաքման ընթացքում փաթեթը IP մակարդակով մանրացնելու հնարավորություն։ Ըստ այդմ, վերջնական ստացողին փաթեթը կգա մի քանի փաթեթների տեսքով, որոնք պետք է հավաքվեն մեկում, նախքան հետագա վերլուծությունը: Փաթեթը հետագայում հավաքելու հնարավորությունը կոչվում է IP մասնատում:Արձանագրությունը նախատեսում է կոնկրետ փաթեթի մասնատման արգելքի հնարավորություն։ Եթե այդպիսի փաթեթը հնարավոր չէ ամբողջությամբ փոխանցել կապի հատվածի միջոցով, ապա այն ոչնչացվում է, ևICMP[5] հաղորդագրությունը ուղարկվում է ուղարկողին խնդրի վերաբերյալ:
Ժամանակակիցհամացանցն օգտագործում է չորրորդ տարբերակի IP-ն, որը հայտնի է նաև որպես IPv4[6]: Այս տարբերակիIP արձանագրությունում ցանցի յուրաքանչյուր հանգույցին համապատասխանեցվում է 4օկտետ երկարությամբ (4բայթ) IP հասցե։ Այս դեպքումենթացանցերում համակարգիչները միավորվում ենհասցեի ընդհանուր սկզբնականբիթերով։ Այս բիթերի քանակը, որոնք ընդհանուր են տվյալ ենթացանցերի համար, կոչվում էենթացանցերի դիմակ, (նախկինում օգտագործվել է հասցեների տարածքի բաժանումը ըստդասերի, A, B, C, ցանցի, դասը որոշվում էր ավագ օկտետի արժեքների միջակայքով և որոշում էր տվյալ ցանցում հասցեագրված հանգույցների քանակը, այժմ օգտագործվում էոչդասային հասցեավորում)։
1996 թվականից սկսել է օգտագործվել հաղորդակարգի վեցերորդ տարբերակը,IPv6, որը թույլ է տալիս հասցեագրել զգալիորեն ավելի մեծ թվով հանգույցներ, քան IPv4-ը[1]։ IPv6 հասցեի տարածքը կազմում է 2128։ Հասցեի նման մեծ տարածքը ներդրվել է հասցեների հիերարխիայի համար (այն հեշտացնում է երթուղղումը): Այնուամենայնիվ, հասցեի ավելացված տարածքըNat-ը կդարձնի ընտրովի: IPv6-ի դասական կիրառումը (ցանցի միջոցով 64/մեկ բաժանորդի համար, օգտագործվում է միայն unicast հասցեագրումը) հնարավորություն կտա ավելի քան 300 միլիոն IP հասցեներ օգտագործել երկրի յուրաքանչյուր բնակչի համար: Այս տարբերակը առանձնանում է հասցեի բիթի բարձրացմամբ, ներկառուցված գաղտնագրման հնարավորությամբ և որոշ այլ առանձնահատկություններով: IPv4-ից IPv6-ի երկար անցումը կապված է հեռահաղորդակցման օպերատորների և ծրագրային ապահովման արտադրողների ժամանակատար աշխատանքի հետ և չի կարող կատարվել մեկ ակնթարթում:2013-ի աշնանը Ինտերնետում առկա էր ավելի քան 14,000 ցանց, որոնք աշխատում էին IPv6 հաղորդակարգում: Համեմատության համար նշենք, որ 2010 թվականի կեսերին IPv4 հասցեների տարածքում առկա էր ավելի քան 320 հազար ցանց, բայց IPv6-ում ցանցերը շատ ավելի մեծ են, քան IPv4-ում:
IP փաթեթըհամակարգչային ցանցի միջոցով փոխանցվողտեղեկատվության ձևաչափված բլոկ է, որի կառուցվածքը որոշվում է IP հաղորդակարգով: Համակարգչային ցանցային կապերը, որոնք չեն աջակցում IP փաթեթներին, ինչպիսիք են հեռահաղորդակցության ավանդական կետ առ կետ կապերը, պարզապես փոխանցում են տվյալները որպեսբայթերի,նիշերի կամբիթերի հաջորդականություն: Խմբաքանակի ձևաչափումն օգտագործելիս ցանցը կարող է ավելի հուսալի և արդյունավետ փոխանցել երկար հաղորդագրությունները:
Օկտետ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|
0 | Տարբերակ | IHL | Differentiated Services Code Point | ECN | Փաթեթի երկարություն |
4 | Իդենտիֆիկատոր | Դրոշներ | Ֆրագմենտի տեղաշարժ |
8 | Կյանքի ժամանակը (TTL) | Հաղորդակարգ | Վերնագրի ստուգիչի գումարը |
12 | Ուղարկողի IP հասցե |
16 | Ստացողի IP հասցե |
20 | Ընտրանքներ (0-ից 10 32-բիթանոց բառ) |
| Տվյալներ |
- Տարբերակ-IPv4-ի համար դաշտի արժեքը պետք է լինի 4:
- IHL-(Internet Header Length)[7] IP փաթեթի վերնագրի երկարությունը 32-բիթանոց բառերով (dword): Այս դաշտը ցույց է տալիս տվյալների բլոկի սկիզբը (անգլ.՝payload — օգտակար բեռ) փաթեթում: Այս դաշտի նվազագույն ճիշտ արժեքը 5 է:
- Փաթեթի երկարությունը - (ընդհանուր երկարություն) փաթեթի երկարությունը օկտետներում, ներառյալ վերնագիրը և տվյալները: Այս դաշտի նվազագույն ճիշտ արժեքը 20 է, առավելագույնը 65 535:
- Իդենտիֆիկատոր - (Identification) փաթեթ ուղարկողի կողմից նշանակված արժեք և նախատեսված է փաթեթի հավաքման ժամանակ բեկորների ճիշտ հաջորդականությունը որոշելու համար: Մասնատված փաթեթի համար բոլոր հատվածներն ունեն նույն նույնացուցիչը:
- Դրոշների 3 բիթ: Առաջին բիթը միշտ պետք է հավասար լինի զրոյի, երկրորդ DF (don't fragment) բիթը որոշում է փաթեթի մասնատման հնարավորությունը, իսկ երրորդ MF (more fragments) բիթը ցույց է տալիս, թե արդյոք այս փաթեթը վերջինն է փաթեթի շղթայում:
- Ֆրագմենտի տեղաշարժ - (Fragment Offset) արժեք, որը սահմանում է տեղաշարժ դիրքը տվյալների հոսքում: Հատվածը տրվում է ութ բայթ բլոկների քանակով, ուստի այս արժեքը պահանջում է բազմապատկել 8-ով, բայթերի վերածելու համար:
- Կյանքի ժամանակը (TTL)[8] - երթուղիչների քանակը, որոնք կարող է անցնել այս փաթեթը: Երթուղիչն անցնելիս այս թիվը մեկով նվազում է։ Եթե այս դաշտի արժեքը զրո է, ապա փաթեթը պետք է մերժվի, և փաթեթ ուղարկողին կարող է ուղարկվել Time Exceeded հաղորդագրություն (ICMP տիպ 11 ծածկագիր 0):
- Հաղորդակարգ - հաջորդ մակարդակի ցանցային արձանագրության նույնացուցիչը ցույց է տալիս, թե որ արձանագրության տվյալներն է պարունակում փաթեթը, օրինակ,TCP,UDP, կամICMP ВIPv6֊ը կոչվում է «Next Header»։
- Վերնագրի ստուգիչ գումարը - (Header Checksum) հաշվարկվում է ըստRFC 1071
Դիրքը օկտետներում | | 0 | 1 | 2 | 3 |
---|
| Դիրքը բիթերում | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|
0 | 0 | Տարբերակ | Երթևեկության դաս | Հոսքի պիտակ |
---|
4 | 32 | Բեռի երկարությունը | հաջորդ վերնագիր | Անցումների քանակը |
---|
8 | 64 | Ուղարկողի IP հասցե |
---|
12 | 96 |
---|
16 | 128 |
---|
20 | 160 |
---|
24 | 192 | Ստացողի IP հասցե |
---|
28 | 224 |
---|
32 | 256 |
---|
36 | 288 |
---|
- Տարբերակ IPv6-ի համար դաշտի արժեքը պետք է լինի 6:
- Երթևեկության դասը որոշում է երթևեկության առաջնահերթությունը (QoS[9], ծառայության դաս):
- Հոսքի պիտակը եզակի թիվ է, որը նույնն է փաթեթների միատարր հոսքի համար:
- Բեռի երկարությունը տվյալների երկարությունը օկտետներում (IP փաթեթի վերնագիրը հաշվի չի առնվում):
- Հաջորդ վերնագիր սահմանում է ընդլայնված վերնագրի տեսակը (անգլ.՝IPv6 extension), որը գալիս է հաջորդը: Վերջին ընդլայնված վերնագրում հաջորդ վերնագրի դաշտը սահմանում է տրանսպորտային արձանագրության տեսակը (TCP,UDP եւ այլն) և սահմանում է հետևյալ ծածկագրված մակարդակը:
- Անցումների քանակը երթուղիչների առավելագույն քանակը, որոնք փաթեթը կարող է անցնել: Երբ երթուղիչը անցնում է, այս արժեքը նվազում է մեկով, և երբ հասնում է զրոյի, փաթեթը մերժվում է:
- RFC 791 ֊ IP հստակեցում
- RFC 1918 ֊ առանձնացնելով հասցեները մասնավոր ցանցերի համար
- RFC 3330 ֊ IPv4-ում հասցեների հատուկ տիրույթներ