XDP(eXpress Data Path) 모드란?
- IT/리눅스(Linux)
- 2023. 7. 13.
XDP 모드란, eXpress Data Path의 약자로 Linux 커널 네트워크 스택에서 사용되는 고성능 프로그래밍 인터페이스를 말합니다. eBPF Hook을 사용하여네트워크 드라이브 내 동작하여 성능을 높이기 위해 만들어졌습니다.
XDP에서는 네트워크 스택의 높은 실행 과정만큼 높은 속도로 패킷을 수집, 검색, 수정 또는 전달할 수 있습니다. XDP의 주요 특징은 단순히 네트워크 스택 운영이 아니라 패킷 변경을 개발자가 구현할 수 있는 기능입니다. 애플리케이션 개발자는 XDP를 통해 사용자 정의 패킷 처리 로직을 쉽게 구현할 수 있습니다.
Packet RX Hooking 이라고 하기도 합니다.
XDP 프로그램은 NIC Driver 단에서 실행이 되어 Packet Drop이 될 경우 커널까지 도달하지 않습니다.
XDP 동작 리턴 타입
- XDP_ABORTED : 패킷을 버리고 xdp_exception을 발생시킴
- XDP_DROP : 패킷을 버림
- XDP_PASS : 패킷을 커널로 보냄
- XDP_TX : 패킷을 수신된 인터페이스로 재전송
- XDP_REDIRECT : 패킷을 다른 인터페이스로 전달
eBPF Program 리스트
- socket
- TC
- kprobes
- XDP
- perfcgroup
- secdcomp
쉽게 설명하면 Packet Data Path 최적화를 통해서 고성능으로 네트워크 트래픽을 처리하기 위한 모듈이라고 보시면 됩니다.
[IT/리눅스(Linux)] - 리눅스 tc Traffic Control 사용 방법 포트 미러링 방법
[IT/네트워크(Network)] - TCP/IP 4계층(Network 4 Layer)