1. NIC(Network Interface Card)란?
NIC는 서버(또는 PC)가 네트워크와 통신하기 위한 물리적 인터페이스다.
- 패킷이 외부로 나갈 때 반드시 거치는 마지막 관문
- 외부 패킷이 처음으로 들어오는 입구
- 각 NIC는 고유한 MAC 주소를 가진다
💡 핵심
“패킷이 나간다”의 기준은 NIC를 통과했는가다.
2. NIC는 어떻게 보일까?
macOS에서는 NIC가 enX 형태의 네트워크 인터페이스로 노출된다.
| 인터페이스 | 의미 |
|---|---|
en0 |
보통 Wi‑Fi (주 NIC) |
en1 |
유선 Ethernet 또는 추가 NIC |
lo0 |
Loopback (127.0.0.1) |
bridge0 |
브리지 인터페이스 |
utunX |
VPN 터널 |
NIC 확인
ifconfig
MAC 주소 확인
ifconfig en0 | grep ether
3. ifconfig 출력 핵심 해석 (en0 기준)
en0: flags=<UP,RUNNING,BROADCAST,MULTICAST> mtu 1500
ether xx:xx:xx:xx:xx:xx
inet 192.168.0.16
status: active
중요한 포인트
- UP / RUNNING → NIC 정상 활성
- status: active → 실제 네트워크 연결됨
- IP 존재 → 외부 통신 가능 상태
✔️ en0가 active + IP 있음
→ macOS의 실제 네트워크 출구
4. NIC Offloading이란?
한 줄 정의
CPU가 하던 네트워크 처리 작업을 NIC 하드웨어에게 맡기는 성능 최적화 기법
왜 필요할까?
- TCP 패킷 분할
- 체크섬 계산
이 작업들을 CPU가 모두 처리하면 부하가 매우 큼 → NIC에게 위임
5. 대표적인 Offloading 기능
| 기능 | 의미 |
|---|---|
| TSO | TCP Segmentation Offload (큰 TCP를 NIC가 분할) |
| CHECKSUM OFFLOAD | 체크섬 계산을 NIC가 수행 |
| GRO/LRO | 수신 패킷 병합 |
macOS ifconfig 옵션 예시:
options=<TSO4,TSO6,PARTIAL_CSUM,...>
6. sudo tcpdump -i en0
tcpdump가 보는 위치
Application
↓
TCP/IP Stack (Kernel)
↓ ← tcpdump가 관찰
NIC Driver
↓
NIC Hardware (Offloading)
↓ ← TCP 분할 (TSO), 체크섬 계산
실제 네트워크
❗ tcpdump는 NIC 하드웨어에서 실제 전선으로 나간 패킷을 보지 않는다
7. tcpdump 패킷 vs 실제 네트워크 패킷
tcpdump가 보는 것
- TCP/IP 스택 기준 논리적 패킷
- TCP 분할 전
- 체크섬 미완성 상태 가능
NIC가 실제로 보내는 것
- MTU 기준으로 분할된 패킷
- 체크섬 완성
- 전선으로 송출
✔️ tcpdump 패킷 ≠ 실제 네트워크 패킷 (Offloading 때문)
8. 그래서 발생하는 흔한 오해
❓ MTU보다 큰 패킷이 보인다
- 정상
- TSO 적용 전 상태
❓ 체크섬 에러처럼 보인다
- 정상
- NIC가 나중에 계산
❓ tcpdump가 틀린 정보를 보여준다?
- ❌ 아님
- ✔️ OS 관점에서 정확한 정보
9. tcpdump로 알 수 있는 것 / 없는 것
알 수 있는 것
- OS가 패킷을 생성했는지
- NIC로 패킷을 넘겼는지
- IP / 포트 / 프로토콜
알 수 없는 것
- 실제 외부 서버 도달 여부
- NIC 이후(스위치/방화벽) 드롭 여부
10. 트러블슈팅에서의 핵심 사고 흐름
tcpdump에 패킷 보임?
├─ YES → OS/NIC 이전 문제 아님
│ → NIC 이후(라우터, 방화벽, 네트워크)
└─ NO → 애플리케이션 / OS 문제
이 흐름은:
- macOS
- Linux
- Kubernetes Node
모두 동일하게 적용된다.
📌 이 글은 macOS 기준이지만, 개념은 Linux / Kubernetes 환경에서도 동일하게 적용된다.
'Network' 카테고리의 다른 글
| 회선 교환 방식/ 패킷 교환 방식 (0) | 2025.11.08 |
|---|---|
| Switch, Router? Mac 주소, IP 주소? ARP? (0) | 2024.11.30 |
| TCP 빠른 재전송과 흐름제어 메커니즘 (0) | 2024.11.21 |
| 파이프라이닝 프로토콜 (0) | 2024.11.20 |
| Forward Proxy, Reverse Proxy (0) | 2024.11.09 |