이론/백엔드 개념정리

네트워크 7계층, TCP, 오버헤드 – 개발자가 꼭 알아야 할 네트워크 기초

블스뜸 2025. 6. 24. 17:58

네트워크 7계층이란?

네트워크 7계층(OSI 7 Layer)은 네트워크 시스템의 통신 방식을 설명하는 모델.
실제 구현에서는 TCP/IP 4계층이 더 많이 쓰이지만, 개념과 이론을 이해하는 데는 7계층 모델이 훨씬 직관적.

Q. 왜 굳이 계층으로 나눴을까?
A. 복잡한 통신 과정을 단계별로 분리해서 관리하기 쉽고, 각 계층별로 표준화된 프로토콜을 정의할 수 있기 때문이다.
또한, 한 계층의 변경이 다른 계층에 영향을 주지 않아 모듈화와 유지보수에 유리하다.


각 계층별 역할

1. 물리 계층 (Physical Layer)

  • 실제 전기 신호, 광 신호 등 물리적 데이터 전송 담당

2. 데이터 링크 계층 (Data Link Layer)

  • 같은 네트워크 내에서 데이터 전송
  • MAC 주소 관리, 오류 검출, 흐름 제어
  • 데이터 단위: Frame

3. 네트워크 계층 (Network Layer)

  • 서로 다른 네트워크 간 데이터 전송, 라우팅
  • IP 주소 할당 및 관리
  • 데이터 단위: Packet
  • 프로토콜: IP, ICMP, ARP

4. 전송 계층 (Transport Layer)

  • 신뢰성 있는 데이터 전송 보장 (오류 검출, 재전송, 순서 보장)
  • 포트 번호로 응용프로그램 구분
  • 데이터 단위: Segment(TCP), Datagram(UDP)
  • 프로토콜: TCP, UDP

5. 세션 계층 (Session Layer)

  • 통신 세션의 설정, 유지, 종료
  • 다중 연결 관리, 체크포인트 설정

6. 표현 계층 (Presentation Layer)

  • 데이터 암호화, 압축, 형식 변환
  • 예: SSL/TLS, 직렬화/역직렬화, 인코딩/디코딩

7. 응용 계층 (Application Layer)

  • 사용자와 직접 상호작용
  • 프로토콜: HTTP, HTTPS, FTP, SMTP, DNS
  • 데이터 단위: Message

실제로 네트워크 통신이 일어날 때 송신자는 7계층부터 1계층까지 차례로 데이터를 감싸고, 수신자는 1계층부터 7계층까지 역순으로 데이터를 해석한다.

Q. 실제로는 7계층을 다 구현해서 쓰나요?
A. 실제 네트워크 구현(TCP/IP)은 4계층 구조를 사용합니다. 하지만 7계층 모델이 개념적으로 더 세분화되어 있어, 네트워크를 공부할 때는 7계층이 더 많이 언급된다.


네트워크 계층화의 장점

  • 복잡성 관리: 각 계층별로 역할을 분리해 복잡한 통신 과정을 쉽게 관리
  • 표준화: 계층별로 표준 프로토콜을 정의해 호환성 확보
  • 모듈화: 한 계층의 변경이 다른 계층에 영향을 주지 않음
  • 문제 해결 용이: 계층별로 문제를 분리해 디버깅이 쉬움

네트워크 오버헤드란?

네트워크 통신에서 각 계층을 지날 때마다 헤더가 추가된다.
즉, 실제 전송 데이터보다 더 많은 데이터가 네트워크를 통해 전송되는데, 이 추가 데이터를 오버헤드(Overhead)라고 부른다.

Q. 오버헤드가 왜 문제인가요?
A. 오버헤드가 많아질수록 실제로 전송되는 데이터 대비 불필요한 데이터가 많아져 네트워크 효율이 떨어진다.
예를 들어, N+1 문제처럼 연관관계 데이터를 여러 번 요청하면 오버헤드가 N번씩 누적되어 성능 저하가 심해진다.


TCP란?

TCP(Transmission Control Protocol)는 전송 계층에서 사용하는 대표적인 프로토콜이다.

  • 연결 지향: 송/수신자 간 연결(세션, 소켓) 설정 후 데이터 전송, 종료 시 연결 해제
  • 신뢰성 보장: 오류 검출, 재전송, 순서 보장, 흐름 제어
  • HTTP/2까지는 TCP 사용, HTTP/3부터는 UDP 사용(아직 대중화 X)

TCP 연결 과정

3-Way Handshake (연결 설정)

  1. ClientServer : SYN 전송 (연결 요청)
  2. ServerClient : SYN+ACK 전송 (요청 수락 및 연결 요청)
  3. ClientServer : ACK 전송 (연결 성립)

4-Way Handshake (연결 해제)

  1. ClientServer : FIN 전송 (연결 종료 요청)
  2. ServerClient : ACK 전송 (요청 수락)
  3. ServerClient : FIN 전송 (서버도 종료 요청)
  4. ClientServer : ACK 전송 (종료 수락)

Q. 이 연결/해제 과정이 매 요청마다 일어나나요?
A. HTTP/1.0까지는 매 요청마다 연결/해제가 일어났지만, HTTP/1.1부터는 Keep-Alive 옵션으로 연결을 재사용할 수 있다.


오버헤드와 HTTP Keep-Alive

  • 오버헤드: 연결/해제 과정, 각 계층의 헤더 등으로 인해 실제 데이터보다 더 많은 데이터가 전송됨
  • Keep-Alive: HTTP/1.1부터는 한 번 연결한 TCP 세션을 재사용해 오버헤드를 줄임

Q. 그럼에도 불구하고 오버헤드는 왜 완전히 사라지지 않을까요?
A. 계층 구조의 특성상 각 계층별로 필요한 정보(헤더 등)를 붙여야 하므로, 오버헤드는 완전히 없앨 수 없다.
그래서 네트워크 통신은 꼭 필요한 만큼만 최소화해서 사용하는 것이 중요하다.


마치며 – 이 내용을 공부해야 하는 이유

Q. 네트워크 계층을 꼭 알아야 하나요?
네트워크 계층을 이해하면, 시스템 설계, 성능 최적화, 장애 분석 등에서 훨씬 더 깊이 있는 접근이 가능하다.

Q. 오버헤드를 줄이려면 어떻게 해야 하나요?
불필요한 네트워크 요청을 줄이고, 한 번의 요청에 더 많은 데이터를 담아 보내는 등, 네트워크 사용을 최소화하는 것이 중요하다.

Q. TCP와 UDP는 언제 쓰나요?
TCP는 신뢰성이 중요한 경우(웹, 파일 전송 등), UDP는 속도가 중요한 경우(실시간 게임, 스트리밍 등)에 주로 사용한다.


💡 보충 내용

  • 세션/표현 계층은 실무에서 직접적으로 다루는 일이 드물어, 전송/네트워크/응용 계층에 집중하는 경우가 많다.