5 minute read


인터넷 기본 개념

인터넷은 전 세계의 컴퓨터 네트워크를 상호 연결하는 글로벌 네트워크입니다. 인터넷은 TCP/IP 프로토콜 스택을 기반으로 동작하며, 분산 네트워크 구조를 가지고 있어 한 부분이 고장나도 전체 네트워크는 계속 작동할 수 있습니다.


프로토콜

프로토콜은 네트워크 상에서 데이터를 교환하기 위한 규칙과 약속입니다. 프로토콜은 다음과 같습니다.

  1. HTTP/HTTPS: 웹 통신의 기본 프로토콜로, RESTful API 설계와 구현에 필수적입니다. HTTPS는 SSL/TLS를 통해 암호화된 통신을 제공합니다.

  2. TCP (Transmission Control Protocol): 신뢰성 있는 연결 지향적 통신을 제공합니다. 데이터 손실이 없어야 하는 대부분의 웹 애플리케이션에서 사용됩니다.

  3. UDP (User Datagram Protocol): 비연결형 프로토콜로 TCP보다 빠르지만 신뢰성이 낮습니다. 실시간 스트리밍, 게임 등에 적합합니다.

  4. IP (Internet Protocol): 데이터 패킷의 주소 지정과 라우팅을 담당합니다. IPv4와 IPv6가 있으며, 주소 공간 부족 문제로 IPv6로의 전환이 진행 중입니다.

  5. DNS (Domain Name System): 도메인 이름을 IP 주소로 변환해주는 시스템입니다.


데이터 전송 방식

회선 교환 (Circuit Switching)

회선 교환은 통신을 시작하기 전에 송신자와 수신자 간에 전용 통신 경로(회선)를 설정하는 방식입니다.

특징:

  • 통신 시작 전 경로 설정
  • 대역폭이 독점적으로 할당됨
  • 지연 시간이 일정함
  • 전통적인 전화 네트워크(PSTN)에서 사용
  • 실시간 통신이 필요한 애플리케이션에 적합하지만, 인터넷 기반 서비스에서는 덜 사용됨

패킷 교환 (Packet Switching)

패킷 교환은 데이터를 작은 패킷으로 나누어 각 패킷이 독립적으로 목적지까지 라우팅되는 방식입니다. 현대 인터넷의 기본 전송 방식입니다.

특징:

  • 데이터를 패킷으로 분할하여 전송
  • 각 패킷은 독립적으로 라우팅됨
  • 네트워크 자원을 효율적으로 사용
  • 경로 장애 시 대체 경로로 데이터 전송 가능
  • 지연 시간이 가변적일 수 있음
  • 대부분의 웹 서비스, API, 데이터베이스 통신은 패킷 교환 방식으로 이루어짐
  • 네트워크 혼잡 상황에서의 성능 저하를 고려한 설계 필요

TCP/IP 모델

TCP/IP 모델은 인터넷에서 컴퓨터들이 서로 통신하는 데 사용되는 표준 프로토콜입니다. 실제 인터넷의 기반이 되는 모델로, 4개의 계층으로 구성됩니다.

1. 네트워크 인터페이스 계층 (Network Interface Layer)

  • 물리적 네트워크 미디어를 통한 데이터 전송 담당
  • 이더넷, Wi-Fi 등의 프로토콜 포함
  • 백엔드 개발 시 직접 다루는 경우는 드물다.

2. 인터넷 계층 (Internet Layer)

  • 패킷의 라우팅을 담당하는 계층
  • IP (Internet Protocol): 출발지에서 목적지까지 패킷 전달
  • ICMP: 네트워크 오류 보고 및 진단(ping 등)
  • 백엔드 개발 시 IP 주소 체계, 서브넷 마스크 개념이 이 계층에 속함

3. 전송 계층 (Transport Layer)

  • 종단 간(end-to-end) 통신 제공
  • TCP (Transmission Control Protocol): 신뢰성 있는 연결 지향적 통신
    • 연결 설정(3-way handshake)
    • 데이터 순서 보장
    • 오류 검출 및 복구
    • 흐름 제어와 혼잡 제어
  • UDP (User Datagram Protocol): 비연결성, 신뢰성이 낮지만 빠른 통신
    • 연결 설정 과정 없음
    • 순서, 신뢰성 보장 없음
    • 실시간 스트리밍, 게임 등에 적합
  • 백엔드 개발 시 API 설계를 할 때 TCP/UDP 특성을 이해하고 선택해야 함

4. 응용 계층 (Application Layer)

  • 사용자와 가장 가까운 계층으로 다양한 인터넷 서비스 제공
  • HTTP/HTTPS: 웹 통신 프로토콜
  • FTP: 파일 전송 프로토콜
  • SMTP/POP3/IMAP: 이메일 프로토콜
  • DNS: 도메인 이름 해석 서비스
  • 백엔드 개발 시 응용 계층의 프로토콜을 가장 많이 다룸


네트워크-계층(TCP/IP-모델과-OSI-7계층-모델


OSI 7계층 모델

OSI 모델은 국제 표준화 기구(ISO)에서 개발한 개념적 모델로, 네트워크 통신을 7개의 계층으로 나누어 설명합니다. 실제로는 TCP/IP 모델이 더 널리 사용되지만, OSI 모델은 네트워크 문제를 진단하고 이해하는 프레임워크로 중요합니다.

1. 물리 계층 (Physical Layer)

  • 비트 스트림을 전기, 빛, 전파 신호로 변환
  • 케이블, 스위치, 허브 등의 하드웨어 포함
  • 물리적 네트워크 상의 노드 간 신뢰성 있는 전송
  • MAC 주소를 이용한 통신
  • 이더넷이 대표적인 프로토콜
  • 오류 검출 및 수정

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

  • 다른 네트워크 간의 통신을 위한 경로 결정(라우팅)
  • IP가 대표적인 프로토콜
  • 논리적 주소(IP) 할당

4. 전송 계층 (Transport Layer)

  • 종단 간 통신 및 오류 복구
  • TCP, UDP 등이 대표적인 프로토콜
  • 세그먼트(TCP) 또는 데이터그램(UDP) 단위로 통신

5. 세션 계층 (Session Layer)

  • 통신 세션 구성, 유지, 종료
  • 연결 복구 기능 제공

6. 표현 계층 (Presentation Layer)

  • 데이터 형식 변환, 암호화, 압축
  • JPEG, MPEG, ASCII 등의 인코딩 처리

7. 응용 계층 (Application Layer)

  • 사용자와 직접 상호작용하는 계층
  • HTTP, FTP, SMTP 등의 프로토콜

TCP/IP 모델과 OSI 모델의 계층 비교:

  • TCP/IP 네트워크 인터페이스 계층 = OSI 물리 + 데이터 링크 계층
  • TCP/IP 인터넷 계층 = OSI 네트워크 계층
  • TCP/IP 전송 계층 = OSI 전송 계층
  • TCP/IP 응용 계층 = OSI 세션 + 표현 + 응용 계층


캡슐화와 비캡슐화

네트워크 통신에서 데이터가 한 장치에서 다른 장치로 전송될 때 각 계층을 거치며 발생하는 과정입니다.

캡슐화 (Encapsulation)

  • 송신 측에서 상위 계층에서 하위 계층으로 데이터가 전달될 때 각 계층에서 헤더를 추가하는 과정
  • 과정:
    1. 응용 계층: 데이터 생성 후 전송 계층으로 전달
    2. 전송 계층: TCP/UDP 헤더 추가 (세그먼트/데이터그램 생성) 후 인터넷 계층으로 전달달
    3. 인터넷 계층: IP 헤더 추가 (패킷 생성) 후 링크 계층으로 전달
    4. 네트워크 인터페이스 계층: 이더넷 헤더와 트레일러 추가 (프레임 생성)

데이터 전송시 캡슐화 과정

비캡슐화는 위 이미지의 반대 과정이라 보면 됩니다.

비캡슐화 (Decapsulation)

  • 수신 측에서 하위 계층에서 상위 계층으로 데이터가 전달될 때 각 계층에서 해당 헤더를 제거하는 과정
  • 과정:
    1. 네트워크 인터페이스 계층: 이더넷 헤더와 트레일러 제거
    2. 인터넷 계층: IP 헤더 제거
    3. 전송 계층: TCP/UDP 헤더 제거
    4. 응용 계층: 최종 데이터 처리

네트워크 장비별 기능과 특징


네트워크-장비

오른쪽부터 개념 정리

허브(Hub)

  • 정의: 가장 단순한 네트워크 연결 장치(L1 스위치)
  • 동작 방식: 수신된 데이터를 모든 포트로 전송(브로드캐스팅)
  • 계층: 물리 계층(OSI 1계층) 장비
  • 특징:
    • 네트워크 트래픽 증가 유발
    • 보안에 취약함
    • 현대 네트워크에서는 거의 사용되지 않음
    • 허브는 일차선 도로와 같아서, 데이터 전송량이 많아지면 트래픽이 걸릴수 밖에 없음.


스위치(Switch)

스위치는 보통 L2(데이터 링크 계층) 이상의 장비를 말합니다.
보통 어떤 주소를 다루는가에 따라(MAC, Protocol, Sessio Protocol) 스위치를 구분하며, 상위 계층(숫자가 높은 층)의 스위치는 하위 계층의 기능을 포함하고 있습니다.

L2 스위치 (스위치)

  • 정의: MAC 주소를 기반으로 데이터 프레임을 전달하는 장비
  • 동작 방식:
    • MAC 주소 테이블 유지
    • 특정 포트로만 데이터 전송(유니캐스팅)
  • 계층: 데이터 링크 계층(OSI 2계층) 장비
  • 기능:
    • MAC 주소 학습
    • 포워딩/필터링
    • 루프 방지(STP 프로토콜)
  • 활용: LAN 내부 통신의 효율성 향상

L3 스위치

  • 정의: IP 주소를 기반으로 패킷을 라우팅하는 고급 스위치
  • 동작 방식: 라우팅 테이블을 참조하여 패킷 전달
  • 계층: 네트워크 계층(OSI 3계층) 장비
  • 특징:
    • 라우터의 기능 + 스위치의 속도
    • VLAN 간 라우팅 지원
    • 하드웨어 기반 패킷 처리로 빠른 속도
  • 활용: 기업 내부 네트워크의 대규모 세그먼트 연결

L4 스위치

  • 정의: 전송 계층 정보(포트 번호)를 기반으로 트래픽을 분산하는 장비
  • 동작 방식:
    • TCP/UDP 포트 번호를 참조
    • 로드 밸런싱 알고리즘 적용
  • 계층: 전송 계층(OSI 4계층) 장비
  • 기능:
    • 서버 로드 밸런싱
    • 상태 확인(Health Check)
    • 세션 유지(Session Persistence)
  • 활용: 웹 서버 부하 분산, 고가용성 시스템 구축

L7 스위치

  • 정의: 애플리케이션 계층 데이터를 검사하여 트래픽을 제어하는 고급 장비
  • 동작 방식:
    • HTTP 헤더, URL, 쿠키 등 검사
    • 콘텐츠 기반 라우팅
  • 계층: 응용 계층(OSI 7계층) 장비
  • 기능:
    • 콘텐츠 기반 로드 밸런싱
    • SSL 오프로딩
    • 애플리케이션 방화벽(WAF)
    • 캐싱, 압축
  • 활용:
    • 마이크로서비스 아키텍처
    • URL 경로별 서비스 라우팅 구현 가능
    • API 요청 처리 최적화에 활용
    • 인증/인가 처리 중앙화에 활용


라우터(Router)

  • 정의: 서로 다른 네트워크 간 패킷을 전달하는 장비
  • 동작 방식:
    • 라우팅 테이블 기반 최적 경로 결정
    • IP 주소를 통한 목적지 식별
  • 계층: 네트워크 계층(OSI 3계층) 장비
  • 기능:
    • 라우팅(패킷 경로 결정)
    • NAT(Network Address Translation)
    • 방화벽 기능
    • QoS(Quality of Service)
  • 활용: 인터넷과 내부 네트워크 연결, WAN 구성


방화벽(Firewall)

  • 정의: 네트워크 트래픽을 모니터링하고 제어하는 보안 장비
  • 동작 방식:
    • 정의된 규칙에 따라 트래픽 허용/차단
    • 상태 검사(Stateful Inspection)
  • 종류:
    • 패킷 필터링 방화벽(L3-L4)
    • 애플리케이션 방화벽(L7)
    • 차세대 방화벽(NGFW)
  • 기능:
    • 접근 제어
    • 트래픽 모니터링
    • 로깅 및 알림


게이트웨이(Gateway)

  • 정의: 서로 다른 네트워크 프로토콜을 변환하는 장비
  • 동작 방식: 프로토콜 헤더 변환 및 재구성
  • 계층: 모든 계층에 걸쳐 작동 가능
  • 종류:
    • 프로토콜 게이트웨이
    • API 게이트웨이
    • IoT 게이트웨이
  • 활용:
    • 마이크로서비스 아키텍처에서 API 게이트웨이 활용
    • 레거시 시스템과 현대 시스템 간 통합


프록시 서버(Proxy Server)

프록시 서버는 하드웨어가 아닌 소프트웨어 기반의 서비스이지만 그림에 나오므로 추가 정리합니다.

  • 정의: 클라이언트와 서버 사이에서 요청과 응답을 중계하는 장비
  • 동작 방식:
    • 클라이언트 요청 수신 및 서버로 전달
    • 서버 응답 수신 및 클라이언트로 전달
  • 종류:
    • 포워드 프록시(클라이언트 보호)
    • 리버스 프록시(서버 보호)
  • 기능:
    • 캐싱
    • 로드 밸런싱
    • 콘텐츠 필터링
    • 익명화
  • 활용:
    • 성능 최적화(캐싱)
    • API 요청 제한(Rate Limiting)
    • 인증 중앙화

Leave a comment