π NIC
NIC (Network Interface Controller, ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ) β Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠΉ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈ ΠΊΠ°Π½Π°Π»ΡΠ½ΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΠΈΠ»ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ΅ΡΡΡ. NIC ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈ ΠΏΡΠΈΡΠΌΠ° ΡΠ΅ΡΠ΅Π²ΡΡ ΠΊΠ°Π΄ΡΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ ΡΡΠ΅Π΄Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ CPU ΠΈ OS. Π‘Π΅Π³ΠΎΠ΄Π½Ρ NIC Π²ΡΡΡΡΠΏΠ°ΡΡ ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΊΠ°ΡΡΡ) Π»ΠΈΠ±ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Ρ Π² SoC, ΠΌΠ°ΡΠ΅ΡΠΈΠ½ΡΠΊΠΈΠ΅ ΠΏΠ»Π°ΡΡ ΠΈ Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ.
π§ ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ NIC
- ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΠ΅Π΄ΠΎΠΉ: ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΈ ΠΏΡΠΈΡΠΌ ΡΠ»Π΅ΠΊΡΡΠΈΡΠ΅ΡΠΊΠΈΡ , ΠΎΠΏΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠ»ΠΈ ΡΠ°Π΄ΠΈΠΎΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΡΠ΅ΡΠ΅Π· ΡΠ°Π·ΡΡΠΌΡ (Ethernet RJ45, ΠΎΠΏΡΠΎΠ²ΠΎΠ»ΠΎΠΊΠ½ΠΎ, Wi-Fi Π°Π½ΡΠ΅Π½Π½Ρ ΠΈ Ρ.Π΄.).
- Π€ΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π°Π½Π°Π»ΠΈΠ· ΡΠ΅ΡΠ΅Π²ΡΡ ΠΊΠ°Π΄ΡΠΎΠ²: ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° Π΄Π°Π½Π½ΡΡ Π² ΠΊΠ°Π΄ΡΡ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ (Ethernet, Wi-Fi, Fibre Channel ΠΈ Π΄Ρ.).
- Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ ΡΡΠ΅Π΄Π΅ (MAC): ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ°, ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΠΎΡΠΎΡΡΡΡ.
- ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ: ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΠΊΠ°Π΄ΡΠΎΠ² ΠΏΠΎ MAC-Π°Π΄ΡΠ΅ΡΠ°ΠΌ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΡΠ»ΡΡΠΈΠΊΠ°ΡΡΠΎΠ² ΠΈ ΡΠΈΡΠΎΠΊΠΎΠ²Π΅ΡΠ°Π½ΠΈΡ.
- ΠΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ: Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π΄Π»Ρ ΠΏΡΠΈΡΠΌΠ° ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ.
- ΠΡΠ³ΡΡΠ·ΠΊΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² (Offloading): TCP checksum, segmentation offload, VLAN tagging, ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅.
- ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Ρ CPU ΠΈ ΠΏΠ°ΠΌΡΡΡΡ: DMA Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ, ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ.
- Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ½Π΅ΡΠ³ΠΎΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ΠΌ: ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Wake-on-LAN ΠΈ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΡΠ½Π΅ΡΠ³ΠΎΡΠ±Π΅ΡΠ΅ΠΆΠ΅Π½ΠΈΡ.
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ: Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ (VF), SR-IOV, ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°Π½Π°Π»ΠΎΠ².
ΠΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ NIC
-
ΠΡΠΈΡΠΌ Π΄Π°Π½Π½ΡΡ :
- Π‘ΠΈΠ³Π½Π°Π» Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΏΠΎΡΡΡΠΏΠ°Π΅Ρ Π² ΡΡΠ°Π½ΡΠΈΠ²Π΅Ρ (PHY).
- PHY Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΡΠ΅Ρ ΡΠΈΠ³Π½Π°Π», Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅Ρ ΠΈ ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΡΠΈΡΡΠΎΠ²ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ.
- MAC ΡΠ»ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ, Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ, ΡΠΈΠ»ΡΡΡΡΠ΅Ρ ΠΊΠ°Π΄ΡΡ.
- ΠΡΠΈΡΠΌΠ½ΡΠ΅ Π±ΡΡΠ΅ΡΡ Ρ ΡΠ°Π½ΡΡ ΠΊΠ°Π΄ΡΡ Π΄ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ CPU.
- DMA ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΏΠ°ΠΌΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ.
- CPU ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅.
-
ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ :
- CPU ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ DMA Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ.
- DMA Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΊΠ°Π΄ΡΡ Π² Π±ΡΡΠ΅ΡΡ NIC.
- MAC ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΠΊΠ°Π΄ΡΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠ΅Π΄Π΅.
- PHY ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΡΠΈΠ³Π½Π°Π» Π² ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΉ.
- ΠΠ°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π² ΡΠ΅ΡΡ.
ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ
- NIC ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ: PCI, PCIe, USB, M.2, SATA, SPI, SDIO.
- ΠΠ»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ DMA (Direct Memory Access), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ NIC Π½Π°ΠΏΡΡΠΌΡΡ ΡΠΈΡΠ°ΡΡ/ΠΏΠΈΡΠ°ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΏΠ°ΠΌΡΡΡ Π±Π΅Π· ΡΡΠ°ΡΡΠΈΡ CPU.
- ΠΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ°ΡΡ CPU ΠΎ ΡΠΎΠ±ΡΡΠΈΡΡ : ΠΏΡΠΈΡΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ°, Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ, ΠΎΡΠΈΠ±ΠΊΠΈ.
- Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ NIC ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ offload-ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΡΠ½ΠΈΠΆΠ°Ρ Π½Π°Π³ΡΡΠ·ΠΊΡ CPU.
- Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ NIC ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°ΠΌΠΈ ΠΈ ΡΡΠΈΠ»ΠΈΡΠ°ΠΌΠΈ ΠΠ‘.
ΠΠ°Π·ΠΎΠ²Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½Π°Ρ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° NIC
flowchart TB CPU["CPU / Host System"] DMA["DMA Controller"] SystemMem["System Memory (RAM)"] Driver["NIC Driver (OS)"] MAC["MAC Layer"] PHY["Physical Layer (PHY)"] Transceiver["Transceiver / PHY Analog"] Medium["Physical Medium (Ethernet, Fiber, Wireless)"] CPU -->|ΠΠ°ΡΡΡΠΎΠΉΠΊΠ°, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅| Driver Driver -->|ΠΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ| MAC MAC --> PHY PHY --> Transceiver Transceiver --> Medium Medium --> Transceiver Transceiver --> PHY PHY --> MAC MAC --> Driver Driver --> CPU DMA --> SystemMem MAC <-->|DMA Data Transfer| SystemMem
Π Π°ΡΡΠΈΡΠ΅Π½Π½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° NIC Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ
flowchart TB subgraph Host_System CPU["CPU"] SystemMem["System Memory (RAM)"] Driver["NIC Driver"] DMA["DMA Controller"] end subgraph NIC MAC["MAC Layer"] BufferRX["Receive Buffer"] BufferTX["Transmit Buffer"] Offload["Offload Engine"] InterruptCtrl["Interrupt Controller"] PHY["Physical Layer"] Transceiver["Transceiver (Analog Frontend)"] PowerMgmt["Power Management Unit"] VF["Virtual Function Controller"] Security["Security Engine (Crypto)"] end CPU --> Driver Driver --> MAC MAC --> PHY PHY --> Transceiver Transceiver --> Medium["Physical Medium"] Medium --> Transceiver Transceiver --> PHY PHY --> MAC MAC --> BufferRX BufferTX --> MAC BufferRX <-- DMA --> SystemMem SystemMem <-- DMA --> BufferTX MAC --> Offload Offload --> CPU MAC --> InterruptCtrl --> CPU MAC --> PowerMgmt MAC --> VF MAC --> Security Driver --> VF
βοΈ ΠΠ΄Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ
-
Π Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ (Ethernet NIC).
-
Π ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ (Wi-Fi, LTE, 5G ΠΌΠΎΠ΄Π΅ΠΌΡ).
-
Π ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ (SCADA, ΠΠ‘Π£Π’Π).
-
Π Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΈ IoT (Ethernet, Wi-Fi, BLE).
-
Π Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ°Ρ ΠΈ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ RDMA, NVMe over Fabrics.
-
Π ΡΠ΅ΡΠ΅Π²ΡΡ ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΎΡΠ°Ρ , ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡΠ°Ρ , ΡΠ΅ΡΠ΅Π²ΡΡ ΡΡΠΊΠΎΡΠΈΡΠ΅Π»ΡΡ .
β ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° NIC
-
ΠΡΡΠΎΠΊΠ°Ρ ΠΏΡΠΎΠΏΡΡΠΊΠ½Π°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ.
-
ΠΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ΅ ΡΠ°Π·Π³ΡΡΠΆΠ΅Π½ΠΈΠ΅ CPU Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ DMA ΠΈ offloading.
-
ΠΠ°Π΄ΡΠΆΠ½ΠΎΠ΅ ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ΅ΡΠΈ.
-
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² (Ethernet, Wi-Fi, Fibre Channel).
-
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ².
-
Π Π°ΡΡΠΈΡΡΠ΅ΠΌΠΎΡΡΡ ΠΈ Π°Π΄Π°ΠΏΡΠΈΠ²Π½ΠΎΡΡΡ ΠΏΠΎΠ΄ ΡΠ°Π·Π½ΡΠ΅ ΡΡΠ΅Π΄Ρ ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ.
-
ΠΠ½Π΅ΡΠ³ΠΎΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ.
β ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ NIC
-
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ.
-
ΠΡΡΠΎΠΊΠ°Ρ ΡΡΠΎΠΈΠΌΠΎΡΡΡ Π΄Π»Ρ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ.
-
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΡ ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°ΠΌΠΈ.
-
ΠΠΎΠ²ΡΡΠ΅Π½Π½ΠΎΠ΅ ΡΠ½Π΅ΡΠ³ΠΎΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ Π²ΡΡΠΎΠΊΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠ΅.
-
ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΠ΅Π΄Ρ (ΠΊΠ°Π±Π΅Π»Ρ, ΠΏΠΎΠΌΠ΅Ρ ΠΈ).
-
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ Π³ΡΠ°ΠΌΠΎΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.
π Π‘Π²ΡΠ·Π°Π½Π½ΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ
Ethernet, Wi-Fi, PCIe, DMA, MAC, PHY, RDMA, SR-IOV, IP, Offloading, Interrupt, Virtualization, Fibre Channel, SoC, Switch, Router
Π Π΅Π·ΡΠΌΠ΅
NIC β ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΉ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎ-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠΉ Π½Π°Π΄ΡΠΆΠ½ΡΡ, Π±ΡΡΡΡΡΡ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΠΈ ΡΠ΅ΡΡΠΌΠΈ. Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ NIC ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ offloading, Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΈ ΡΠ½Π΅ΡΠ³ΠΎΡΠ±Π΅ΡΠ΅ΠΆΠ΅Π½ΠΈΠ΅. ΠΠ»ΡΠ±ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ NIC Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΡΠ΅Π²ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΡ ΠΈ Π½Π°Π΄ΡΠΆΠ½ΡΡ ΡΠ΅ΡΠ΅Π²ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ.
π ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ NIC
1. MAC Layer
-
ΠΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°Π΄ΡΠΎΠ², Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅/ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΡ ΡΡΠΌΠΌ (CRC).
-
Π£ΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ ΡΡΠ΅Π΄Π΅ (CSMA/CD Π² Ethernet, CSMA/CA Π² Wi-Fi).
-
Π€ΠΈΠ»ΡΡΡΠ°ΡΠΈΡ Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΡΠΌΠΎΠΌ.
-
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° VLAN, Jumbo frames, QoS.
2. PHY Layer
-
ΠΠ½Π°Π»ΠΎΠ³ΠΎ-ΡΠΈΡΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠ³Π½Π°Π»ΠΎΠ².
-
ΠΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅/Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠΎΠ²Π½Π΅ΠΉ.
-
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΈ Π΄ΡΠΏΠ»Π΅ΠΊΡΠ°.
-
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² (10/100/1000 Mbps, 10G, Wi-Fi).
3. DMA Engine
-
ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ .
-
ΠΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ CPU.
-
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Scatter-Gather ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΠ°Π½Π°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ.
4. Buffers
-
ΠΡΠΈΡΠΌΠ½ΡΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠΈΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ.
-
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ΅ΡΡ Π΄Π°Π½Π½ΡΡ .
-
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ»ΡΡΠ΅Π²ΡΡ Π±ΡΡΠ΅ΡΠΎΠ² Π΄Π»Ρ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°Π±ΠΎΡΡ.
5. Offload Engines
-
TCP/UDP checksum calculation.
-
TCP segmentation offload (TSO).
-
Large Receive Offload (LRO).
-
VLAN tag insertion/removal.
-
Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠΆΠ°ΡΠΈΠ΅.
6. Interrupt Controller
-
ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΠΏΠΎ ΡΠΎΠ±ΡΡΠΈΡΠΌ.
-
ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ (interrupt coalescing).
7. Virtualization Support
-
SR-IOV (Single Root I/O Virtualization) β Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
-
VF (Virtual Functions) ΠΈ PF (Physical Functions).
-
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ Π³ΠΎΡΡΠ΅Π²ΡΠΌΠΈ ΠΠ‘.
8. Power Management
-
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Wake-on-LAN.
-
ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΡΠ½Π΅ΡΠ³ΠΎΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ.
-
ΠΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠΎΡΠ°ΠΌΠΈ.
π§ ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ
-
ΠΡΠ°ΠΉΠ²Π΅ΡΡ NIC ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΡΡΠΎΠΉ ΡΠ΅ΡΠ΅Π· ΡΠ΅Π³ΠΈΡΡΡΡ ΠΈ DMA.
-
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠΈΠ»ΡΡΡΠΎΠ², ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΡΠ°Π±ΠΎΡΡ, Π±ΡΡΠ΅ΡΠΎΠ².
-
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ.
-
ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΡΠ΅ΡΠ΅Π²ΡΠΌΠΈ ΡΡΠ΅ΠΊΠ°ΠΌΠΈ ΠΠ‘ (Linux, Windows).
-
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ (ethtool, netmap, DPDK).
ΠΠΎΠ»ΡΡΠ°Ρ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ NIC
flowchart TB subgraph Host_System["Host System"] CPU["CPU"] SystemMem["System Memory (RAM)"] OS["Operating System / NIC Driver"] end subgraph NIC["Network Interface Controller (NIC)"] DMA["DMA Engine"] RX_Buffers["Receive Buffers (Ring Buffers)"] TX_Buffers["Transmit Buffers (Ring Buffers)"] MAC["MAC Controller"] PHY["Physical Layer (PHY)"] Transceiver["Transceiver / Analog Frontend"] Offload["Offload Engines"] InterruptCtrl["Interrupt Controller"] Virtualization["Virtualization Engine (SR-IOV, VF/PF)"] PowerMgmt["Power Management Unit"] Security["Security Engine (Crypto, TLS Offload)"] ClockMgmt["Clock & Timing Management"] ConfigRegs["Configuration & Control Registers"] end CPU -->|Setup/Control| OS OS -->|Driver commands| ConfigRegs OS -->|Driver commands| Virtualization OS -->|Interrupt Handling| InterruptCtrl OS -->|DMA Setup| DMA DMA <--> SystemMem RX_Buffers <--> DMA TX_Buffers <--> DMA TX_Buffers --> MAC MAC --> PHY PHY --> Transceiver Transceiver --> Medium["Network Medium (Ethernet Cable, Fiber, Wireless)"] Medium --> Transceiver Transceiver --> PHY PHY --> MAC MAC --> RX_Buffers MAC --> Offload MAC --> InterruptCtrl MAC --> Virtualization MAC --> PowerMgmt MAC --> Security ClockMgmt --> MAC ClockMgmt --> PHY ClockMgmt --> Transceiver %% Feedback loops InterruptCtrl --> OS PowerMgmt --> OS Security --> OS Virtualization --> OS style NIC stroke:#fff,stroke-width:5px,font-weight:bold