Π€ΡΠ½ΠΊΡΠΈΠΈ
pr_input()
ΠΈ
pr_output()
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»-ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΈ ΡΠ»ΡΠΆΠ°Ρ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ
ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ ΡΠΎΡΠ΅Π΄Π½ΠΈΡ
ΡΡΠΎΠ²Π½Π΅ΠΉ. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
pr_ctlinput()
ΠΈ
pr_ctloutput()
. Π¦Π΅ΠΏΠΎΡΠΊΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΡ
ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΡ
ΡΡΡΡΠΊΡΡΡ
mbuf
: ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΡ ΡΠ΅ΡΠΈ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ Π·Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π±ΡΡΠ΅ΡΠΎΠ²
mbuf
ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ Π²Π΅ΡΡ
Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΡΠ΅ΡΡ ΠΏΠ°ΠΌΡΡΡ, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠ°Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅ΡΡΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π½ΠΈΠΆΠ½Π΅ΠΌ ΡΡΠΎΠ²Π½Π΅.
ΠΠΎΠ»Π΅
pr_flags
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΠΈ ΡΠ΅ΠΆΠΈΠΌ Π΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΡΡΠΎΠ²Π½Ρ ΡΠΎΠΊΠ΅ΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ, ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΠΈΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ²ΡΠ·ΠΈ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π°Π³Π°
PR_CONNREQUIRED
, Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ ΡΠΎΠΊΠ΅ΡΠ° ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π°. ΠΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΡΠ»Π°Π³
PR_WANTRCVD
, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠΊΠ΅ΡΠ° Π±ΡΠ΄ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π±ΡΡΠ΅ΡΠ° ΠΏΡΠΈΠ΅ΠΌΠ°. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΠΆΠΈΡΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΠΊΠ½Π° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΠ²ΡΠΈΠΌΡΡ ΠΌΠ΅ΡΡΠΎΠΌ.
ΠΠ°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ ΠΏΡΠΈΠ΅ΠΌΠ° ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ
.
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΡΡΡΠΊΡΡΡΠΎΠΉ Π΄Π°Π½Π½ΡΡ
, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π½Π° ΡΠΈΡ. 6.23. Π‘Π΅ΡΠ΅Π²ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ²ΡΠ·Π°Π½ Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΡΠ΅ΡΠ΅Π²ΡΠΌ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠΌ, Ρ
ΠΎΡΡ ΡΡΠΎ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ loopback ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠ΅Π²Π΄ΠΎΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ΅ Π΄Π»Ρ ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ΅ΡΠ΅Π²ΡΡ
ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π² ΡΠ°ΠΌΠΊΠ°Ρ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ
ΠΎΡΡΠ°, ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ Ρ.ΠΏ.
Π ΠΈΡ. 6.23. Π‘Π΅ΡΠ΅Π²ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π±Π°Π·ΠΈΡΡΠ΅ΡΡΡ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΡΡ
Π΄ΠΎΠΌΠ΅Π½ΠΎΠ². Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π°Π΄ΡΠ΅ΡΠΎΠ², ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ². Π‘ΡΡΡΠΊΡΡΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈ ΡΠΈΡΠΎΠΊΠΎΠ²Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ (broadcast) Π°Π΄ΡΠ΅ΡΠ° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΌΠ°ΡΠΊΡ, Ρ
ΡΠ°Π½ΡΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°.
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ
if_output()
. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ
if_init()
, ΡΠ±ΡΠΎΡΠ°
if_reset()
ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠ°
if_watchdog()
. ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ Π½Π΅Π½Π°Π΄Π΅ΠΆΠ½ΡΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΠΈΠ»ΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ±ΠΎΡΠ° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΠ΅ΡΡΡ ΡΠ»Π°Π³Π°ΠΌΠΈ, Ρ
ΡΠ°Π½ΡΡΠΈΠΌΠΈΡΡ Π² ΠΏΠΎΠ»Π΅
if_flags
. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΠ»Π°Π³ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π² ΡΠ°Π±Π». 6.8.
Π’Π°Π±Π»ΠΈΡΠ° 6.8. Π‘ΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
| Π€Π»Π°Π³ | ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ |
IFF_UP
| ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ |
IFF_BROADCAST
| ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΈΡΠΎΠΊΠΎΠ²Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π°Π΄ΡΠ΅ΡΠ° |
IFF_MULTICAST
| ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π³ΡΡΠΏΠΏΠΎΠ²ΡΠ΅ Π°Π΄ΡΠ΅ΡΠ° |
IFF_DEBUG
| ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ |
IFF_LOOPBACK
| ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ |
IFF_POINTOPOINT
| ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΠΊΠ°Π½Π°Π»Π° ΡΠΎΡΠΊΠ°-ΡΠΎΡΠΊΠ° |
IFF RUNNING
| Π Π΅ΡΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Ρ |
IFF_NOARP
| ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ Π°Π΄ΡΠ΅ΡΠ° |
Π€Π»Π°Π³
IFF_UP
ΡΠ²ΠΈΠ΄Π΅ΡΠ΅Π»ΡΡΡΠ²ΡΠ΅Ρ ΠΎ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΊ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΡΠΈ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠ΅ΠΉ ΡΠΈΡΠΎΠΊΠΎΠ²Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ (broadcast), Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ethernet, Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΡΠ»Π°Π³
IFF_BROADCAST
ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΠΈΡΠΎΠΊΠΎΠ²Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ (ΠΏΠΎΠ»Π΅
ifa_broadaddr
ΡΡΡΡΠΊΡΡΡΡ Π°Π΄ΡΠ΅ΡΠΎΠ²
ifaddr
Π΄Π»Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π°). ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΊΠ°Π½Π°Π»Π° ΡΠΎΡΠΊΠ°-ΡΠΎΡΠΊΠ°, Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΡΠ»Π°Π³
IFF_POINTOPOINT
ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π°Π΄ΡΠ΅Ρ Ρ
ΠΎΡΡΠ° (ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°), ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π½Π° ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ (ΠΏΠΎΠ»Π΅
ifa_dstaddr
). ΠΠ°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ ΡΡΠΈ Π΄Π²Π° ΡΠ»Π°Π³Π° ΡΠ²Π»ΡΡΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠΈΠΌΠΈ, a
ifa_broadaddr
ΠΈ
ifa_dstaddr
ΡΠ²Π»ΡΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΠΎΠ»Ρ. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ»Π°Π³
IFF_RUNNING
ΠΏΠΎΡΠ»Π΅ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΡ
ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ
ΠΈ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° Π½Π° ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΠ΅Π²ΠΎΠΌΡ Π°Π΄Π°ΠΏΡΠ΅ΡΡ), Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠ½ Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½.
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ ΡΡΠ΄ Π΄ΡΡΠ³ΠΈΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ifconfig(1M):
$ <b>ifconfig le0</b>
le0: flags=863<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
Β inet 194.85.160.50 netmask: ffffff00 broadcast 194.85.160.255
ΠΠ΅Π³ΠΊΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΠΏΠΎΠ»Π΅ΠΉ ΡΡΡΡΠΊΡΡΡΡ
ifnet
Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
le0
(
if_name
):
if_flags
,
if_mtu
(Maximum Transmission Unit, MTU) ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ΅Π΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ ΠΏΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΡΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ ΡΡΡΡΠΊΡΡΡΡ ifaddr: Π°Π΄ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
inet
(
ifa_addr
), ΠΌΠ°ΡΠΊΡ
netmask
(
ifa_netmask
) ΠΈ ΡΠΈΡΠΎΠΊΠΎΠ²Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ
broadcast
(
ifa_broadaddr
).
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Ρ
ΡΠ°Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° ΠΏΡΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π΅ ΡΠ΅ΡΠΈ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠΈΡΠ»ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ
ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΡΡΠΎΠ²Π½Ρ ΠΊΠ°Π½Π°Π»Π° (
if_ipackets
), ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΡΠΈ ΠΏΡΠΈΠ΅ΠΌΠ΅ (
if_ierrors
), ΡΠΈΡΠ»ΠΎ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ
ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΡΡΠΎΠ²Π½Ρ ΠΊΠ°Π½Π°Π»Π° (
if_opackets
), ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ (
if_oerrors
) ΠΈ ΡΠΈΡΠ»ΠΎ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ (
if_collisions
). ΠΠΎΠΌΠ°Π½Π΄Π°
netstat(1M) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π² ΡΠΈΡΡΠ΅ΠΌΠ΅: