전송계층

2025. 5. 25. 23:14·Deep Dives/CS Fundamentals

 

네트워킹 핵심 개념 정리

포트 기반 NAT (NAPT)

NAT의 한계와 포트의 등장

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

NAPT의 핵심

  • 하나의 공인 IP를 여러 사설 IP가 공유
  • 포트 번호로 내부 호스트를 구분
  • 공인 IP 부족 문제 해결에 기여

TCP 프로토콜

TCP 통신의 3단계

  1. 연결 수립 (3-way handshake)
  2. 데이터 송수신
  3. 연결 종료 (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 (연결 수립)

  1. 클라이언트 → 서버: SYN
  2. 서버 → 클라이언트: SYN + ACK
  3. 클라이언트 → 서버: ACK

4-way Handshake (연결 종료)

  1. 호스트A → 호스트B: FIN
  2. 호스트B → 호스트A: ACK
  3. 호스트B → 호스트A: FIN
  4. 호스트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
'Deep Dives/CS Fundamentals' 카테고리의 다른 글
  • 컴퓨터 구조 기초
  • 응용계층 , HTTP
  • 네트워크 계층
  • 컴퓨터 네트워크 2
Jcob.moon
Jcob.moon
반가워요~ 하루하루 꾸준히 코딩 작성하는 곳입니다 !!
  • Jcob.moon
    Pixelated Thoughts
    Jcob.moon
  • 전체
    오늘
    어제
    • HelloWorld (178)
      • Daily Logs (126)
        • TIL (Today I Learned) (65)
        • Algorithm Practice (55)
        • Dev Book Notes (6)
      • Deep Dives (36)
        • 문제 해결 (Troubleshooting) (3)
        • CS Fundamentals (22)
        • Career Prep (4)
        • Technical Notes (7)
      • Project Log (7)
      • Any (3)
      • Cooperation (5)
        • Github (2)
        • Conventions (1)
        • Git (1)
        • Postman (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
Jcob.moon
전송계층
상단으로

티스토리툴바