학부 때 네트워크 수업 안 듣고 네트워크에 대해 전혀 모르는 상태였음

근데 리눅스 커널에서, 분명히 네트워크 tx에 해당하는 함수에 bp를 걸었는데 백트레이스에 rx부터 찍히더라

처음에 전혀 감 못 잡고 있었는데,좀 찾아보니까 일단 들어온 패킷을 커널 내부적으로 포워딩해줘야 하는 경우가 더러 있었음 (ARP)

그런 경우에 rx로 들어온 패킷 skb를 그대로 재사용해서 tx로 다시 보내주는 거 같더라고

아님 말고

---

최신 리눅스에는 skb까지 가지도 않고 그냥 그 밑에서 처리해버리는 기술도 나왔다고 함 (XDP)
eBPF 기반이고, 심지어 몇몇 NIC은 XDP를 하드웨어로 오프로딩도 시켜주는듯?

---

요 며칠 리눅스 네트워킹 스택을 보며 느낀 점임

아직 덜 본 부분:
- skb로 받아온 데이터가 recv, recvfrom의 인자로 넘겨준 버퍼까지 도달하는 과정
- NAPI netif_napi_add <== 얘랑 비슷한 함수가 몇 개 있는데, 동작 메커니즘을 아직 덜 봄
- WireGuard <== 언제 암호화/복호화하는 지, routing, 인터페이스 변환(?)은 언제 일어나는 지 등 (tx: 10.0.0.2 -> peer 주소, rx: 어떻게 wg0으로 포워딩시켜주는 지?)
- tun/tap 내부 동작

아님 말고