133: parentProcess(socks[0]);
134:
135: /* Π·Π°ΠΊΡΡΡΠΈΠ΅ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° */
136: wait(&status);
137:
138: if (WEXITSTATUS(status))
139: fprintf(stderr, "childfailed\n");
140:
141: return 0;
142: }
17.5. Π‘Π΅ΡΠ΅Π²Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ TCP/IP
Π‘Π°ΠΌΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΎΠΊΠ΅ΡΠΎΠ² Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΌ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ², ΠΎΠ±ΡΠ°ΡΡΡΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ. Π‘Π΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² TCP/IP [34] ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Internet ΡΠ°ΠΌΡΠΌ Π±ΠΎΠ»ΡΡΠΈΠΌ Π² ΠΌΠΈΡΠ΅ ΡΠΈΡΠ»ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ², ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΡ Π² ΡΠ΅ΡΡ. Π‘ΠΈΡΡΠ΅ΠΌΠ° Linux ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΏΠΎΠ»Π½ΡΡ ΡΡΡΠΎΠΉΡΠΈΠ²ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ TCP/IP, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΈ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²Π΅Ρ, ΠΈ ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ TCP/IP.
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ TCP/IP ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π΅ΡΡΠΈΡ 4 (IPv4). Π Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΡΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Π° Π²Π΅ΡΡΠΈΡ 6 ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° TCP/IP (IPv6), ΠΎΠ΄Π½Π°ΠΊΠΎ IPv4 Π΄ΠΎΠΌΠΈΠ½ΠΈΡΡΠ΅Ρ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠΌΡΡ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ IPv4, Π½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΎΡΠ»ΠΈΡΠΈΡ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ IPv6, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΎΠ±Π΅ Π²Π΅ΡΡΠΈΠΈ.
17.5.1. Π£ΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½ΠΈΠ΅ Π±Π°ΠΉΡΠΎΠ²
Π‘Π΅ΡΠΈ TCP/IP, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ²Π»ΡΡΡΡΡ Π½Π΅ΠΎΠ΄Π½ΠΎΡΠΎΠ΄Π½ΡΠΌΠΈ; ΠΎΠ½ΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ ΡΠΈΡΠΎΠΊΠΈΠΉ ΡΡΠ΄ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ. ΠΠ΄Π½ΠΎ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΎΡΠ»ΠΈΡΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΠΌΠΈ ΡΠ²ΡΠ·Π°Π½ΠΎ ΡΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΈΡΠ΅Π».
ΠΠ°ΡΠΈΠ½Π½ΡΠ΅ ΡΠΈΡΠ»Π° ΡΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π±Π°ΠΉΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅Π»ΡΠ΅ ΡΠΈΡΠ»Π° Π² Π‘ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΡΡ 4 Π±Π°ΠΉΡΠ°ΠΌΠΈ (32 Π±ΠΈΡΠ°ΠΌΠΈ). Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΠΈΡ ΡΠ΅ΡΡΡΠ΅Ρ Π±Π°ΠΉΡΠΎΠ² Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°. ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Ρ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠΌ Π±Π°ΠΉΡΠΎΠ² ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΡΡΠ°ΡΡΠΈΠΉ (Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π½Π°ΡΠΈΠΌΡΠΉ) Π±Π°ΠΉΡ Π² Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠ΅ΠΌ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΌ Π°Π΄ΡΠ΅ΡΠ΅, ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΎΡ Π±ΠΎΠ»Π΅Π΅ Π·Π½Π°ΡΠΈΠΌΠΎΠ³ΠΎ ΠΊ ΠΌΠ΅Π½Π΅Π΅ Π·Π½Π°ΡΠΈΠΌΠΎΠΌΡ. ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ Ρ ΠΏΡΡΠΌΡΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠΌ Π±Π°ΠΉΡΠΎΠ² Ρ ΡΠ°Π½ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅: Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ Π·Π½Π°ΡΠΈΠΌΡΠΉ Π±Π°ΠΉΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠΈΠΉ Π°Π΄ΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΠΈ. Π Π΄ΡΡΠ³ΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°Ρ Π±Π°ΠΉΡΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΠΎΡΡΠ΄ΠΊΠ°Ρ .
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° TCP/IP, ΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² ΠΏΠΎΠ·Π°Π±ΠΎΡΠΈΠ»ΠΈΡΡ ΠΎ Π΅Π΄ΠΈΠ½ΠΎΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡΠΎΠ²ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΡ[126]. TCP/IP ΡΡΠ΅Π±ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° Π±Π°ΠΉΡΠΎΠ² Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΅Π³ΠΎ ΠΊ Π΄Π°Π½Π½ΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Ρ ΠΎΡΡ ΠΏΠΎΠΏΡΡΠΊΠΈ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΡΠΌΠ°Ρ ΠΏΠΎΡΠΎΠΊΠ° Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡ)[127]. Π£ΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡΠΎΠ²ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΡ, ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π±Π°ΠΉΡΠΎΠ².
ΠΠ»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΡΠ΄ΠΊΠ° Π±Π°ΠΉΡΠΎΠ² Ρ ΠΎΡΡΠ° Π² ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π±Π°ΠΉΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ΅ΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
#include <netinet/in.h>
unsigned int htonl(unsigned int hostlong);
unsigned short htons(unsigned short hostshort);
unsigned int ntohl(unsigned int netlong);
unsigned short ntohs(unsigned short netshort);
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ ΡΡΠΎ ΠΏΡΠΎΡΠΎΡΠΈΠΏ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±Π΅Π· Π·Π½Π°ΠΊΠ°, Π²ΡΠ΅ ΠΎΠ½ΠΈ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ Π΄Π»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠΎ Π·Π½Π°ΠΊΠΎΠΌ.
ΠΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ htonl() ΠΈ htons() ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡ Π΄Π»ΠΈΠ½Π½ΡΠ΅ ΠΈ ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΡΠΈΡΠ»Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ· ΠΏΠΎΡΡΠ΄ΠΊΠ° Π±Π°ΠΉΡΠΎΠ² Ρ ΠΎΡΡΠ° Π² ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π±Π°ΠΉΡΠΎΠ². ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π΄Π²Π΅ ntohl() ΠΈ ntohs() Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»ΠΈΠ½Π½ΡΡ ΠΈ ΠΊΠΎΡΠΎΡΠΊΠΈΡ ΡΠΈΡΠ΅Π» (ΠΈΠ· ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° Π² ΠΏΠΎΡΡΠ΄ΠΎΠΊ Ρ ΠΎΡΡΠ°).
Π₯ΠΎΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠ΅ΡΠΌΠΈΠ½ Π΄Π»ΠΈΠ½Π½ΡΠΉ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΡΡ , Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΡΡΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ. ΠΠ±Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ htonl() ΠΈ ntohl() ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ 32-Π±ΠΈΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π° Π½Π΅ ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΡΠΈΠΏΡ long. Π ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ°Ρ ΠΎΠ±Π΅ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΎΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ int, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Linux Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ 32-Π±ΠΈΡΠ½ΡΠ΅ ΡΠ΅Π»ΡΠ΅ ΡΠΈΡΠ»Π°.
17.5.2. ΠΠ΄ΡΠ΅ΡΠ°ΡΠΈΡ IPv4
Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ IPv4 ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΊΠΎΡΡΠ΅ΠΆ ΠΈΠ· 4-Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² (Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ Ρ ΠΎΡΡ, Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΡ, ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ Ρ ΠΎΡΡ, ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΠΏΠΎΡΡ). ΠΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ Π΅Π³ΠΎ ΡΠ°ΡΡΡ. ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ Ρ ΠΎΡΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ Ρ ΠΎΡΡ ΡΠ²Π»ΡΡΡΡΡ IPv4-Π°Π΄ΡΠ΅ΡΠ°ΠΌΠΈ. IPv4-Π°Π΄ΡΠ΅ΡΠ° β ΡΡΠΎ 32-Π±ΠΈΡΠ½ΡΠ΅ (4-Π±Π°ΠΉΡΠΎΠ²ΡΠ΅) ΡΠΈΡΠ»Π°, ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ Π΄Π»Ρ Π²ΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ ΡΠ΅ΡΠΈ. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΎΠ½ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² Π²ΠΈΠ΄Π΅ aaa.bbb.ccc.ddd, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π°Π΄ΡΠ΅ΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π΅ΡΡΡΠΈΡΠ½ΡΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π±Π°ΠΉΡΠΎΠ² Π°Π΄ΡΠ΅ΡΠ° ΠΌΠ°ΡΠΈΠ½Ρ. ΠΠ΅ΡΠ²ΠΎΠ΅ ΡΠ»Π΅Π²Π° ΡΠΈΡΠ»ΠΎ Π² Π°Π΄ΡΠ΅ΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΌΠΎΠΌΡ Π·Π½Π°ΡΠΈΠΌΠΎΠΌΡ Π±Π°ΠΉΡΡ Π² Π°Π΄ΡΠ΅ΡΠ΅. Π’Π°ΠΊΠΎΠΉ ΡΠΎΡΠΌΠ°Ρ Π΄Π»Ρ IPv4-Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΊΠ°ΠΊ Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Ρ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»ΡΠΌΠΈ-ΡΠΎΡΠΊΠ°ΠΌΠΈ.
Π ΡΠ²ΡΠ·ΠΈ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² Π²ΡΠ½ΡΠΆΠ΄Π΅Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ TCP/IP ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, IP-Π½ΠΎΠΌΠ΅Ρ Π½Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π΄Π»Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅. ΠΠΎΠΌΠ΅ΡΠ° ΠΏΠΎΡΡΠΎΠ² β ΡΡΠΎ 16-Π±ΠΈΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ· ΡΡΠΎΡΠΎΠ½ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ Ρ ΠΎΡΡΠ΅. ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ IPv4-Π°Π΄ΡΠ΅ΡΠ° ΠΈ Π½ΠΎΠΌΠ΅ΡΠ° ΠΏΠΎΡΡΠ° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΡΠΎΡΠΎΠ½Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π³Π΄Π΅-Π»ΠΈΠ±ΠΎ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅ΡΠΈ TCP/IP (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Internet ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π΄ΠΈΠ½ΠΎΠΉ TCP/IP ΡΠ΅ΡΡΡ). ΠΠ²Π΅ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ°Π·ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΠ΅ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΄Π²Π΅ ΠΏΠ°ΡΡ, ΡΠΎΡΡΠΎΡΡΠΈΠ΅ ΠΈΠ· IP-Π½ΠΎΠΌΠ΅ΡΠ° ΠΈ Π½ΠΎΠΌΠ΅ΡΠ° ΠΏΠΎΡΡΠ°, ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ TCP/IP ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π² ΡΠ΅ΡΠΈ.
Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅ΡΠΎΠ² ΠΏΠΎΡΡΠΎΠ² Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ°Π·Π΄Π΅Π»Π° ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² Internet, ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π½ΠΎΠΌΠ΅ΡΠ° ΠΏΠΎΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ²Π΅ΡΠΆΠ΄Π°Π΅ΡΡΡ ΠΠ³Π΅Π½ΡΡΡΠ²ΠΎΠΌ ΠΏΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ ΠΈ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² Internet (Internet Assigned Numbers Authority, LANA)[128]. ΠΠ±ΡΠΈΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ Internet, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ftp, telnet ΠΈ http, ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΠΈ Π½ΠΎΠΌΠ΅ΡΠ° ΠΏΠΎΡΡΠΎΠ². ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠ»ΡΠΆΠ±Ρ Π½Π° ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Π½ΡΡ Π½ΠΎΠΌΠ΅ΡΠ°Ρ , ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡ Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΉΡΠΈ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ° Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π½Π° Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΡ Π½ΠΎΠΌΠ΅ΡΠ°Ρ ΠΏΠΎΡΡΠΎΠ², ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ»ΡΠΆΠ± Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅[129]. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π½ΠΎΠΌΠ΅ΡΠ° ΠΏΠΎΡΡΠΎΠ² Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ, ΡΠΈΡΡΠ΅ΠΌΠ° Linux ΠΏΡΠΎΡΡΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² (ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ ΡΠ»ΡΠΆΠ±Π°ΠΌΠΈ) ΠΈ Π½ΠΎΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΏΠΎΡΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°ΠΉΠ»Π° /etc/services.
ΠΡΠ΅ Π½ΠΎΠΌΠ΅ΡΠ° ΠΏΠΎΡΡΠΎΠ² ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ 0 Π΄ΠΎ 65 535; Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Linux ΠΎΠ½ΠΈ ΡΠ°Π·Π΄Π΅Π»ΡΡΡΡΡ Π½Π° Π΄Π²Π° ΠΊΠ»Π°ΡΡΠ°. ΠΠ°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΡΡ Ρ Π½ΠΎΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΎΡ 0 Π΄ΠΎ 1 024 ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΌΠΈ ΠΊΠ°ΠΊ root. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌ ΠΈΠΌΠ΅ΡΡ Π³Π°ΡΠ°Π½ΡΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π·Π°ΠΏΡΡΠ΅Π½Π½Π°Ρ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠΎΡΠ½ΡΠΊΠΈΠΌ ΠΊΠΎΠ½Π΅ΠΌ, Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ[130].
IPv4-Π°Π΄ΡΠ΅ΡΠ° Ρ ΡΠ°Π½ΡΡΡΡ Π² ΡΡΡΡΠΊΡΡΡΠ΅ struct sockaddr_in, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
#include <sys/socket.h>
#include <netinet/in.h>
struct sockaddr_in {
short int sin_family; /* AF_INET */
unsigned short int sin_port; /* Π½ΠΎΠΌΠ΅Ρ ΠΏΠΎΡΡΠ° */
struct in_addr sin_addr; /* IP-Π°Π΄ΡΠ΅Ρ */
}
ΠΠ΅ΡΠ²ΡΠΌ ΡΠ»Π΅Π½ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ AF_INET, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ, ΡΡΠΎ ΡΡΠΎ IP-Π°Π΄ΡΠ΅Ρ. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ»Π΅Π½ β ΡΡΠΎ Π½ΠΎΠΌΠ΅Ρ ΠΏΠΎΡΡΠ° Π² ΡΠ΅ΡΠ΅Π²ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π±Π°ΠΉΡΠΎΠ². ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ β ΡΡΠΎ IP-Π½ΠΎΠΌΠ΅Ρ ΠΌΠ°ΡΠΈΠ½Ρ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ TCP Π°Π΄ΡΠ΅ΡΠ°. IP-Π½ΠΎΠΌΠ΅Ρ, Ρ ΡΠ°Π½ΡΡΠΈΠΉΡΡ Π² sin_addr, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΠ°ΠΊΡΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π½Π΅ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΡΠΉ ΡΠΈΠΏ ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΡΠΌΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ°.
ΠΡΠ»ΠΈ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ sin_port ΠΈΠ»ΠΈ sin_addr Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π° Π±Π°ΠΉΡΠ°ΠΌΠΈ \0 (ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ memset()), ΡΠΎ ΡΡΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΡΠ»ΠΎΠ²ΠΈΠ΅ "ΠΏΡΠ΅Π½Π΅Π±ΡΠ΅ΡΡ". Π‘Π΅ΡΠ²Π΅ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π½Π΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΡΡΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠΉ IP-Π°Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΎΠ½ΠΈ ΡΠΎΠ³Π»Π°ΡΠ½Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ Π»ΡΠ±ΡΠΌ Π°Π΄ΡΠ΅ΡΠΎΠΌ, ΠΈΠΌΠ΅ΡΡΠΈΠΌΡΡ Π½Π° Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅. ΠΡΠ»ΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅, ΡΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π°Π΄ΡΠ΅Ρ. Π’Π°ΠΊΠΎΠΉ Π°Π΄ΡΠ΅Ρ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π½Π΅ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ (Π΄Π»Ρ Π½Π΅Π³ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΅ΡΠ΅ IP-Π°Π΄ΡΠ΅Ρ)[131].
17.5.3. ΠΠ΄ΡΠ΅ΡΠ°ΡΠΈΡ IPv6
Π IPv6 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΠ°ΠΌΡΠΉ ΠΊΠΎΡΡΠ΅ΠΆ (Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ Ρ ΠΎΡΡ, Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΡ, ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ Ρ ΠΎΡΡ, ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΠΏΠΎΡΡ), ΡΡΠΎ ΠΈ Π² IPv4, ΠΈ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ Π½ΠΎΠΌΠ΅ΡΠ° ΠΏΠΎΡΡΠΎΠ² (16-Π±ΠΈΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ).
IPv6-Π°Π΄ΡΠ΅ΡΠ° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ ΠΎΡΡΠΎΠ² ΡΠ²Π»ΡΡΡΡΡ 128-Π±ΠΈΡΠ½ΡΠΌΠΈ (16-Π±Π°ΠΉΡΠΎΠ²ΡΠΌΠΈ) ΡΠΈΡΠ»Π°ΠΌΠΈ Π²ΠΌΠ΅ΡΡΠΎ 32-Π±ΠΈΡΠ½ΡΡ ΡΠΈΡΠ΅Π», ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ Π² IPv4. ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΈΡ Π±ΠΎΠ»ΡΡΠΈΡ Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π°Π΄ΡΠ΅ΡΠΎΠ² Π΄Π»Ρ Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΡ (ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π°ΡΠΎΠΌΡ Π² ΠΠ»Π΅ΡΠ½ΠΎΠΌ ΠΡΡΠΈ). ΠΠ° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΠΉ ΡΡΠ°ΡΠΎΠΉ ΡΠ΅ΡΡΡΡΠΎΠ². ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ΅ΡΠ΅Π²ΡΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠΊΠ»ΠΎΠ½Π½ΠΎΡΡΡ Π½Π΅Π±ΡΠ΅ΠΆΠ½ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΡΡΡ ΠΊ Π°Π΄ΡΠ΅ΡΠ°ΠΌ ΠΈ ΡΠ°ΡΡΡΠ°ΡΠΈΠ²Π°ΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΈΡ ΡΠΈΡΠ»ΠΎ Π²ΠΏΡΡΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π²Π΅ΡΡΠΈΠΈ IPv6 ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ 128-Π±ΠΈΡΠ½ΡΠΌ Π°Π΄ΡΠ΅ΡΠ°ΠΌ ΡΠ΅ΠΉΡΠ°Ρ, ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΆΠΈΠ²Π°ΡΡ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π°Π΄ΡΠ΅ΡΠ° Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ.
ΠΠ½Π°Π»ΠΎΠ³ΠΎΠΌ Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Ρ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»ΡΠΌΠΈ-ΡΠΎΡΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² IPv4, Π΄Π»Ρ Π²Π΅ΡΡΠΈΠΈ IPv6 ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Ρ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»ΡΠΌΠΈ-Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΡΠΌΠΈ. ΠΠ°ΠΊ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ ΠΏΠ°ΡΡ Π±Π°ΠΉΡΠΎΠ² Π² Π°Π΄ΡΠ΅ΡΠ΅ (Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠ΄Π΅Π»ΡΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Π±Π°ΠΉΡ). ΠΠ·-Π·Π° Π±ΠΎΠ»ΡΡΠΎΠΉ Π΄Π»ΠΈΠ½Ρ IPv6-Π°Π΄ΡΠ΅ΡΠ° Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠΉ (Π° Π½Π΅ Π² Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠΉ) ΡΠΎΡΠΌΠ΅, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΈΡ Π΄Π»ΠΈΠ½Ρ. ΠΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ IPv6-Π°Π΄ΡΠ΅Ρ Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Ρ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»ΡΠΌΠΈ-Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΡΠΌΠΈ[132].