BPF рд╕реВрдЪрдирд╛ рд╕рдВрдЪ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд▓рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдорд╛рдирдХ рд╕реНрдерд┐рддреА рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓реА

рдЗрдВрдЯрд░рдиреЗрдЯ рдЕрднрд┐рдпрд╛рдВрддреНрд░рд┐рдХреА рдЯрд╛рд╕реНрдХ рдлреЛрд░реНрд╕ (IETF), рдЬреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЖрдгрд┐ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдЪреНрдпрд╛ рд╡рд┐рдХрд╛рд╕рд╛рд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдЖрд╣реЗ, рдиреЗ BPF рдирд┐рд░реНрджреЗрд╢ рд╕рдВрдЪ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╕рд╛рдареА RFC рд▓рд╛ рдЕрдВрддрд┐рдо рд░реВрдк рджрд┐рд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рдУрд│рдЦрдХрд░реНрддрд╛ RFC 9669 рдЕрдВрддрд░реНрдЧрдд рд╕рдВрдмрдВрдзрд┐рдд рддрдкрд╢реАрд▓ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗрдд. RFC рд▓рд╛ рджрд░реНрдЬрд╛ рджреЗрдгреНрдпрд╛рдд рдЖрд▓рд╛ рдЖрд╣реЗ. рдПрдХ "рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдорд╛рдирдХ", рдЬреНрдпрд╛рдирдВрддрд░ RFC рд▓рд╛ рдорд╕реБрджрд╛ рдорд╛рдирдХрд╛рдЪрд╛ рджрд░реНрдЬрд╛ рджреЗрдгреНрдпрд╛рдЪреЗ рдХрд╛рдо рд╕реБрд░реВ рд╣реЛрдИрд▓, рдЬреНрдпрд╛рдЪрд╛ рдЕрд░реНрде рдкреВрд░реНрдг рд╕реНрдерд┐рд░реАрдХрд░рдг рдЖрдгрд┐ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рдЯрд┐рдкреНрдкрдгреНрдпрд╛ рд╡рд┐рдЪрд╛рд░рд╛рдд рдШреЗрдгреЗ.

рдкреНрд░рдХрд╛рд╢рд┐рдд рд╡рд┐рдирд┐рд░реНрджреЗрд╢рд╛рдордзреНрдпреЗ BPF рдмрд╛рдпрдХреЛрдб рд╕реВрдЪрдирд╛рдВрдЪрд╛ рдПрдХ рд╕рдВрдЪ рдЖрдгрд┐ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдирд▓ рд╕рдмрд╕рд┐рд╕реНрдЯрдо eBPF рдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд▒реНрдпрд╛ рдПрдХрд╛ рд▓реЛ-рд▓реЗрд╡реНрд╣рд▓ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдирдЪреЗ рд╡рд░реНрдгрди рдЖрд╣реЗ, рдЬреЗ рдХрд░реНрдирд▓ рдХреЛрдбрдордзреНрдпреЗ рдмрджрд▓ рди рдХрд░рддрд╛ рд╕рд┐рд╕реНрдЯрдордЪреНрдпрд╛ рд╡рд░реНрддрдирд╛рдд рддрд╛рддреНрдХрд╛рд│ рдмрджрд▓ рдХрд░рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдмрд╛рд╣реНрдп рд╣рдБрдбрд▓рд░реНрд╕рдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддреЗ. рдореВрд▓рддрдГ, eBPF рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд░рдЬрд┐рд╕реНрдЯрд░ рд╕реЗрдЯ, RISC-рд╕рд╛рд░рдЦреНрдпрд╛ рд╕реВрдЪрдирд╛, рд╕реНрдЯреЕрдХ рдЖрдгрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛рдЙрдВрдЯрд░рд╕рд╣ рдПрдХ рд╕рд╛рдзрд╛ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддреЗ. BPF рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕ рд╕рд╛рдорд╛рдиреНрдпрддрдГ C рднрд╛рд╖реЗрдЪреНрдпрд╛ рдПрдХрд╛ рдЙрдкрд╕рдВрдЪрд╛рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рдирдВрддрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдпреЛрдЧреНрдп рдЕрд╢рд╛ рдмрд╛рдпрдХреЛрдбрдордзреНрдпреЗ рд╕рдВрдХрд▓рд┐рдд (compile) рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдирд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрди, рдмрд╛рдЗрдЯрдХреЛрдбрдЪреЗ рдорд╢реАрди рдирд┐рд░реНрджреЗрд╢рд╛рдВрдордзреНрдпреЗ рддрд╛рддреНрдХрд╛рд│ рд░реВрдкрд╛рдВрддрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЗрдВрдЯрд░рдкреНрд░рд┐рдЯреЗрд╢рди рдХрд┐рдВрд╡рд╛ рдЬрд╕реНрдЯ-рдЗрди-рдЯрд╛рдЗрдо (JIT) рдХрдВрдкрд╛рдпрд▓реЗрд╢рдирдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди BPF рдкреНрд░реЛрдЧреНрд░реЕрдореНрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░реВ рд╢рдХрддреЗ.

рдЕрд╢реА рдЕрдкреЗрдХреНрд╖рд╛ рдЖрд╣реЗ рдХреА BPF рдЗрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рд╕реЗрдЯ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдЪреЗ рдорд╛рдирдХреАрдХрд░рдг eBPF рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдирд╢реА рд╕реБрд╕рдВрдЧрдд рдЖрдгрд┐ Linux рдХрд░реНрдирд▓рд╕рд╛рдареА рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ BPF рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рддреГрддреАрдп-рдкрдХреНрд╖ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреНрдпрд╛ рдирд┐рд░реНрдорд┐рддреАрд▓рд╛ рдЪрд╛рд▓рдирд╛ рджреЗрдИрд▓. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрд╛рдо рд╕реБрд░реВ рдЖрд╣реЗ. рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдиреНрд╕ рдХрд╛рд╣реА рдиреЗрдЯрд╡рд░реНрдХ рдЕтАНреЕрдбреЙрдкреНрдЯрд░ рдЙрддреНрдкрд╛рджрдХ рдмреАрдкреАрдПрдл рдиреЗрдЯрд╡рд░реНрдХ рдкреЕрдХреЗрдЯ рд╣рдБрдбрд▓рд░реНрд╕рд╕рд╛рдареА рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдЕтАНреЕрдХреНрд╕рд┐рд▓рд░реЗрд╢рди рдЯреВрд▓реНрд╕ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдд рдЖрд╣реЗрдд. рдПрдХреНрд╕рдбреАрдкреА (рдИрдПрдХреНрд╕рдкреНрд░реЗрд╕ рдбреЗрдЯрд╛ рдкрд╛рде) рд╕рдмрд╕рд┐рд╕реНрдЯрдордЪреА рдХреНрд╖рдорддрд╛ рд╡рд╛рдврд╡рдгреЗ рд╣рд╛ рдпрд╛рдорд╛рдЧреАрд▓ рд╣реЗрддреВ рдЖрд╣реЗ рдЬреЗрдгреЗрдХрд░реВрди рдмреАрдкреАрдПрдл рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗрд╡рд│ рдиреЗрдЯрд╡рд░реНрдХ рдбреНрд░рд╛рдпрд╡реНрд╣рд░ рд╕реНрддрд░рд╛рд╡рд░рдЪ рдирд╡реНрд╣реЗ рддрд░ рдиреЗрдЯрд╡рд░реНрдХ рдЕтАНреЕрдбреЙрдкреНрдЯрд░рд╡рд░ рджреЗрдЦреАрд▓ рдЪрд╛рд▓рд╡рддрд╛ рдпреЗрддреАрд▓.

рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, Netronome рдиреЗ Netronome Agilio CX SmartNIC ре▓рдбреЙрдкреНрдЯрд░рд▓рд╛ BPF рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рдпреБрдирд┐рд╡реНрд╣рд░реНрд╕рд▓ BPF рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕рдЪреНрдпрд╛ рдЙрджрд╛рд╣рд░рдгрд╛рдВрдЪрд╛ рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рджрд╛рди рдХреЗрд▓рд╛ рдЖрд╣реЗ рдЬреЛ рдХреЛрдгрддреНрдпрд╛рд╣реА XDP- рд╕реБрд╕рдВрдЧрдд рдбреНрд░рд╛рдпрд╡реНрд╣рд░рд╕рд╣ рдХрд░реНрдирд▓рдордзреАрд▓ CPU рд╡рд╛рдкрд░реВрдирдЪ рдирд╛рд╣реА рддрд░ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдбрд╡рд░ рджреЗрдЦреАрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ. рд╕рд╛рдЗрдб, рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ CPU рд╕рдВрд╕рд╛рдзрдиреЗ рд╡рд╛рдпрд╛ рди рдШрд╛рд▓рд╡рддрд╛ рдкреЕрдХреЗрдЯреНрд╕ рд╕реЛрдбрдгреЗ, рд╕реБрдзрд╛рд░рдгреЗ рдХрд┐рдВрд╡рд╛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдгреНрдпрд╛рдмрд╛рдмрдд рдирд┐рд░реНрдгрдп рдШреЗрдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ. рд╕реНрд╡рддрдВрддреНрд░рдкрдгреЗ, XRP (рдПрдХреНрд╕рдкреНрд░реЗрд╕ рд░реАрд╕рдмрдорд┐рд╢рди рдкрд╛рде) рддрдВрддреНрд░рдЬреНрдЮрд╛рди рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдд рдЖрд╣реЗ, рдЬреЗ NVMe рдбреНрд░рд╛рдЗрд╡реНрд╣рд╕рд╣ рдХрд╛рд╣реА рдСрдкрд░реЗрд╢рдиреНрд╕, рдЬрд╕реЗ рдХреА рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдЖрдгрд┐ рдбреЗрдЯрд╛ рдПрдХрддреНрд░реАрдХрд░рдгрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ, NVMe рдбреНрд░рд╛рдпрд╡реНрд╣рд░ рд╕реНрддрд░рд╛рд╡рд░ рдХрд┐рдВрд╡рд╛ рдмрд╛рд╣реНрдп рдбрд┐рд╡реНрд╣рд╛рдЗрд╕рд╡рд░ рд╣рд▓рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА BPF рд╡рд╛рдкрд░рдгреЗ рд╢рдХреНрдп рдХрд░рддреЗ.

рд╕реБрд╕рдВрдЧрддрддрд╛ рд╕рдорд╕реНрдпрд╛рдВрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЬреЛрдЦрдореА рдЖрдгрд┐ рдХрд░реНрдирд▓рдордзреАрд▓ eBPF рд╕реНрдерд┐рддреАрдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдпрд╛рдореБрд│реЗ рдЕрд╢рд╛ рдХреНрд╖рдорддрд╛рдВрдЪрд╛ рд╡реНрдпрд╛рдкрдХ рдЕрд╡рд▓рдВрдм рдХрд░рдгреНрдпрд╛рдд рдЕрдбрдерд│рд╛ рдЖрд▓рд╛ рдЖрд╣реЗ. рдпрд╛ рдЬреЛрдЦрдореАрдВрдореБрд│реЗ, рдХрд╛рд╣реА рдЙрддреНрдкрд╛рджрдХрд╛рдВрдиреА рдорд╛рдирдХ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдИрдкрд░реНрдпрдВрдд рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдЙрдкрдХрд░рдгрд╛рдВрдордзреНрдпреЗ BPF рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдкреНрд░рд╡реЗрдЧ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рдгреНрдпрд╛рд╕ рд╡рд┐рд▓рдВрдм рдХреЗрд▓рд╛ рдЖрд╣реЗ.

рд╕реНрддреНрд░реЛрдд: opennet.ru