계층별 핵심 기능과 실무 적용
7계층(Application) - 애플리케이션 서비스
- 실무 포커스: HTTP/3(QUIC), gRPC, WebSocket 등 모던 프로토콜 지원 여부 확인
- 트러블슈팅:
-
bashcurl -v http://target.com # HTTP 헤더 검증 tcpdump -i eth0 port 443 -w capture.pcap # TLS 핸드셰이크 캡처
- 보안: WAF(Web Application Firewall)를 통한 SQLi/XSS 탐지
6계층(Presentation) - 데이터 표현
- 암호화: TLS 1.3 협상 과정에서의 cipher suite 선택 전략
openssl s_client -connect target.com:443 -tls1_3 - 이슈 사례:
- JSON vs Protobuf 직렬화 오버헤드 비교
- 압축 알고리즘(Zstd vs Brotli)에 따른 CPU/대역폭 트레이드오프
5계층(Session) - 세션 관리
- 실무 적용:
- 양방향 세션 추적을 위한 NetFlow/IPFIX 활용
- QUIC의 Connection ID를 이용한 멀티패스 핸드오버
- 장애 사례:
- 방화벽의 세션 타임아웃(기본 30분)으로 인한 장기 연결 끊김
4계층(Transport) - 전송 제어
- TCP 심화:
-
bashss -tin # CWND/BBR 모니터링 sysctl net.ipv4.tcp_available_congestion_control
- UDP 최적화:
- QUIC의 0-RTT 핸드셰이크 구현
- MTU Discovery 실패 시 PMTUD 블랙홀 현상
3계층(Network) - 라우팅
- BGP 운영:
-
bashvtysh -c "show ip bgp summary" # BGP 피어링 상태 확인
- SDN 연계: VXLAN을 이용한 L3 오버레이 구성
- 트래픽 엔지니어링:
- MPLS-TE에서의 명시적 경로 지정(ERSPAN)
- ECMP 로드 밸런싱 비대칭 문제
2계층(Data Link) - 프레임 전달
- 스패닝 트리:
-
bashshow spanning-tree detail # Root 포트/블로킹 포트 확인
- 이더넀 최적화:
- LACP의 hash-policy(src-dst-ip vs src-dst-mac)
- Jumbo Frame(9000 byte) 적용 시 end-to-end 일관성 검증
1계층(Physical) - 물리적 신호
- 케이블 진단:
bashethtool -p eth0 # 링크 LED 점등 확인 cabletest start interface=eth0 # TDR 테스트
- DWDM 장비:
- Chromatic Dispersion 보상 계수 계산
- QSFP28 모듈의 BER(Bit Error Rate) 모니터링
계층별 패킷 처리 심화 분석
- 헤더 추가 과정:
-
python# TCP 세그먼트 생성 예시 class TCPHeader: def __init__(self, src_port, dst_port): self.src_port = src_port # 16비트 self.dst_port = dst_port # 16비트 self.seq_num = 0 # 32비트 self.ack_num = 0 # 32비트 # ... 기타 플래그 필드
- MTU 파편화:
wireshark-filter: tcp.flags.fragment_offset > 0
실무 트러블슈팅 방법론
- Bottom-Up 접근법:
- 물리층(1) → 애플리케이션층(7) 순으로 검증
- 예시: ping(3층) → tcping(4층) → curl(7층)
- Protocol Analyzer 활용:
tshark -i eth0 -Y "http.request" -T json - Latency 진단:
mtr --report-wide --tcp --port 443 target.com - 대규모 클러스터:
- eBPF를 이용한 커널 수준 트레이싱
- P4 프로그래밍 가능 스위치에서의 인라인 측정
클라우드 네이티브 환경의 진화
- 서비스 메시: Istio에서의 L7 프로토콜 인식
- 가상화 네트워킹:
- SR-IOV의 VF/PF 아키텍처
- CNI 플러그인의 다중 네트워크 지원(Calico BGP, Cilium eBPF)
- Observability:
prometheus-query: rate(node_network_transmit_bytes_total[5m])
'혼자 공부하는 내용 ( 잡다한 것들 )' 카테고리의 다른 글
devops입장에서 서비스 운영시 모니터링이 필요한 부분 정리 (5) | 2025.05.08 |
---|---|
TCP 핸드쉐이크 주요 플래그 (0) | 2025.04.19 |
servlet , JSP (0) | 2020.06.27 |
Web , Was와 관련 지식에 대한 이해 (0) | 2020.06.27 |
yaml 기본 문법 (0) | 2020.05.28 |