네트워킹 핵심 개념 정리
포트 기반 NAT (NAPT)

NAT의 한계와 포트의 등장
- 기본 NAT: 사설 IP와 공인 IP가 1:1 대응
- 문제점: 사설 IP 수만큼 공인 IP가 필요해서 비효율적
- 해결책: 포트를 활용한 NAPT (Network Address Port Translation)

NAPT의 핵심
- 하나의 공인 IP를 여러 사설 IP가 공유
- 포트 번호로 내부 호스트를 구분
- 공인 IP 부족 문제 해결에 기여
TCP 프로토콜

TCP 통신의 3단계
- 연결 수립 (3-way handshake)
- 데이터 송수신
- 연결 종료 (4-way handshake)
핵심 개념들
MSS (Maximum Segment Size)
- TCP로 전송할 수 있는 최대 페이로드 크기
TCP 헤더의 주요 필드
- Source/Destination Port: 송수신 애플리케이션 식별
- Sequence Number: 세그먼트 순서 보장을 위한 번호
- Acknowledgment Number: 다음에 받기를 기대하는 순서 번호
- Window Size: 한 번에 수신하고자 하는 데이터 양
TCP 플래그 (제어 비트)
연결 관리
- SYN: 연결 시작 요청
- ACK: 데이터 수신 확인
- FIN: 연결 종료 요청
- RST: 연결 강제 종료
데이터 처리
- PSH: 데이터 즉시 처리 요청
- URG: 긴급 데이터 표시
혼잡 제어
- ECE: 네트워크 혼잡 알림
- CWR: 혼잡 윈도우 축소 알림
- NS: ECN 확장 기능
순서 번호와 확인 응답 번호
- 순서 번호: 초기값(랜덤) + 송신한 바이트 수
- 확인 응답 번호: 다음에 받기를 기대하는 순서 번호 (보통 수신한 순서번호 + 1)
TCP 연결 과정
3-way Handshake (연결 수립)
- 클라이언트 → 서버: SYN
- 서버 → 클라이언트: SYN + ACK
- 클라이언트 → 서버: ACK

4-way Handshake (연결 종료)
- 호스트A → 호스트B: FIN
- 호스트B → 호스트A: ACK
- 호스트B → 호스트A: FIN
- 호스트A → 호스트B: ACK

TCP 특징
- 연결형 프로토콜: 통신 전 연결 수립 필요
- 신뢰성 보장: 재전송, 오류 제어, 흐름 제어, 혼잡 제어
- 스테이트풀: 연결 상태 정보 유지 (netstat 명령어로 확인 가능)

UDP 프로토콜
UDP의 특징
- 비연결형: 연결 수립/해제 과정 없음
- 신뢰할 수 없는 통신: 재전송, 흐름 제어 등 미제공
- 스테이트리스: 상태 정보 유지하지 않음

UDP 헤더 구조
- Source/Destination Port: 송수신 포트
- Length: 헤더 포함 데이터그램 전체 길이
- Checksum: 데이터 무결성 검사 (오류 감지만 가능, 복구 불가)
UDP의 장점
- TCP 대비 적은 오버헤드
- 빠른 패킷 처리 속도
- 실시간 통신에 적합
TCP vs UDP 비교
특성TCPUDP연결 방식 | 연결형 | 비연결형 |
신뢰성 | 높음 (재전송, 오류제어) | 낮음 (체크섬만) |
속도 | 상대적으로 느림 | 빠름 |
상태 관리 | 스테이트풀 | 스테이트리스 |
적용 분야 | 웹, 이메일, 파일전송 | 스트리밍, 게임, DNS |
네트워크의 핵심은 적절한 프로토콜 선택! 신뢰성이 중요하면 TCP, 속도가 우선이면 UDP를 선택하자.
'Deep Dives > CS Fundamentals' 카테고리의 다른 글
컴퓨터 구조 기초 (3) | 2025.05.27 |
---|---|
응용계층 , HTTP (3) | 2025.05.26 |
네트워크 계층 (0) | 2025.05.24 |
컴퓨터 네트워크 2 (0) | 2025.05.19 |
네트워크 들어가기 (1) | 2025.05.18 |