항목내용
기간2026.05 ~ (진행중)
유형개인 학습 프로젝트
언어Go
GitHub315-protocol-deep-dive

프로젝트 소개#

네트워크 프로토콜의 동작 원리를 코드로 직접 구현하고, 계층별 차이를 벤치마크로 비교 분석하는 프로젝트입니다. “왜 gRPC가 빠른가”, “TCP와 UDP는 실제로 얼마나 다른가"를 직접 측정하여 확인합니다.


비교 대상#

계층프로토콜핵심 특징
L3ICMP핸드셰이크 없음, raw ICMP 헤더, TTL
L4TCP3-way handshake, 순서 보장, 흐름 제어
L4UDP커넥션리스, 순서 비보장, 패킷 유실 가능
L7HTTP/1.1텍스트 헤더, 커넥션당 1 요청 vs keep-alive
L7HTTP/2TLS+ALPN, 멀티플렉싱, HPACK 헤더 압축
L7gRPCHTTP/2 위 Protobuf, Unary/ServerStream/Bidi
L7gRPC-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 환경)