Protocol Deep Dive — 네트워크 프로토콜 계층별 비교 분석
| 항목 | 내용 |
|---|---|
| 기간 | 2026.05 ~ (진행중) |
| 유형 | 개인 학습 프로젝트 |
| 언어 | Go |
| GitHub | 315-protocol-deep-dive |
프로젝트 소개#
네트워크 프로토콜의 동작 원리를 코드로 직접 구현하고, 계층별 차이를 벤치마크로 비교 분석하는 프로젝트입니다. “왜 gRPC가 빠른가”, “TCP와 UDP는 실제로 얼마나 다른가"를 직접 측정하여 확인합니다.
비교 대상#
| 계층 | 프로토콜 | 핵심 특징 |
|---|---|---|
| L3 | ICMP | 핸드셰이크 없음, raw ICMP 헤더, TTL |
| L4 | TCP | 3-way handshake, 순서 보장, 흐름 제어 |
| L4 | UDP | 커넥션리스, 순서 비보장, 패킷 유실 가능 |
| L7 | HTTP/1.1 | 텍스트 헤더, 커넥션당 1 요청 vs keep-alive |
| L7 | HTTP/2 | TLS+ALPN, 멀티플렉싱, HPACK 헤더 압축 |
| L7 | gRPC | HTTP/2 위 Protobuf, Unary/ServerStream/Bidi |
| L7 | gRPC-Web | 브라우저에서 gRPC 호출, HTTP/1.1 프록시 경유 |
구조#
├── l3/icmp/ ICMP ping
├── l4/tcp/ TCP echo 서버/클라이언트
├── l4/udp/ UDP echo 서버/클라이언트
├── l7/http1/ HTTP/1.1 서버/클라이언트
├── l7/http2/ HTTP/2+TLS 서버/클라이언트
├── l7/grpc/ gRPC 서버/클라이언트 + proto
├── l7/grpcweb/ gRPC-Web 프록시 + 브라우저 데모
├── benchmark/ 전 프로토콜 벤치마크
├── dashboard/ Chart.js 웹 대시보드
└── cmd/ CLI 진입점
각 프로토콜을 서버/클라이언트 쌍으로 구현하고, 동일한 페이로드로 벤치마크하여 지연, 처리량, 오버헤드를 비교합니다.
진행 상황#
- L3~L7 프로토콜별 서버/클라이언트 구현
- 벤치마크 러너 구현
- Chart.js 웹 대시보드
- 벤치마크 결과 분석 및 정리
- 프로토콜별 패킷 캡처(tcpdump/Wireshark) 분석
- NLB vs ALB 비교 분석 (EKS 환경)