hhkb.dev

BLOG

2025-11-04 / 네트워크이론 · 03

네트워크 보강 이론

1. 네트워크와 네트워킹 개념

기본 개념은 아래처럼 정리하면 된다.

  • 네트워크: 장치들이 자원을 공유하려고 연결된 구조 자체
  • 네트워킹: 그 연결 위에서 실제로 데이터를 주고받는 행위
  • 프로토콜: 그 상호작용을 위해 지켜야 하는 통신 규약

1.1. 네트워크의 기본 구성 요소

  • 호스트 / 엔드포인트: PC, 서버, 스마트폰처럼 네트워크를 이용하는 주체
  • 스위치: MAC 주소 기반으로 LAN 내부 트래픽을 전달하는 L2 장비
  • 라우터: IP 기반으로 다른 네트워크 사이 경로를 정하는 L3 장비
  • LAN: 가까운 범위의 로컬 네트워크
  • WAN: LAN과 LAN을 잇는 넓은 범위의 네트워크

1.2. 네트워크 통신의 기본 원리

네트워크 통신은 계층 구조를 전제로 한다. 상위 계층은 하위 계층 기능이 정상 동작한다는 가정 위에서 성립한다.

2. User mode와 Kernel mode

운영체제는 시스템 자원을 보호하려고 유저 모드와 커널 모드를 나눈다.

2.1. 각 모드의 역할과 특징

  • 유저 모드:
    • 일반 애플리케이션이 동작하는 영역이다.
    • CPU, 메모리, 하드웨어에 직접 접근하지 못한다.
  • 커널 모드:
    • 운영체제 핵심이 동작하는 영역이다.
    • 시스템 자원을 직접 제어한다.
    • TCP/IP 스택, NIC 드라이버 같은 핵심 구성 요소가 여기서 동작한다.

3. OSI 7 계층 모델

OSI 7계층은 네트워크 통신을 7개의 논리 단계로 나눠서 이해하는 개념 모델이다.

3.1. 각 계층의 기능과 역할

| 계층 | 이름 | 예시 | 설명 |
| L7 | Application(응용) | HTTP, DNS, FTP | 사용자와 직접 상호작용하는 서비스 |
| L6 | Presentation(표현) | SSL/TLS, JPEG | 데이터 형식 변환, 암호화/복호화 |
| L5 | Session(세션) | TLS, RPC, WebSocket | 응용 프로그램 간의 세션(연결) 수립 및 관리 |
| L4 | Transport(전송) | TCP/UDP, PORT | 종단 간(End-to-End) 데이터 전송 및 분할 |
| L3 | Network(네트워크) | IP Address, ROUTER | 패킷 전송, 경로 설정(라우팅) |
| L2 | Data Link(데이터 링크) | MAC Address, SWITCH | 로컬 네트워크(LAN) 내 프레임 전송 |
| L1 | Physical(물리) | Cable, Electric Signal | 물리적 전송 매체, 0과 1의 비트 전송 |

3.2. 계층 간 데이터 전달 과정

송신 측에서는 캡슐화가 일어나고, 수신 측에서는 역캡슐화가 일어난다.

  • 송신 측:
    1. 응용 계층에서 데이터가 만들어진다.
    2. 전송 계층에서 세그먼트로 나뉜다.
    3. 네트워크 계층에서 패킷이 된다.
    4. 데이터 링크 계층에서 프레임이 된다.
    5. 물리 계층에서 전기 신호로 나간다.
  • 수신 측:
    1. 물리 계층에서 신호를 받는다.
    2. 데이터 링크 계층에서 프레임을 해석한다.
    3. 네트워크 계층에서 IP를 확인한다.
    4. 전송 계층에서 포트와 순서를 맞춘다.
    5. 최종적으로 응용 계층으로 데이터를 올린다.

4. IP 주소와 주소 체계

4.1. IPv4 주소 구조

  • IPv4는 32비트 주소다.
  • 8비트씩 4덩어리로 나눠 192.168.0.10처럼 표기한다.
  • 보통 네트워크 ID와 호스트 ID로 나눠서 해석한다.

4.2. 서브넷 마스크와 CIDR 표기법

  • 서브넷 마스크는 네트워크 ID와 호스트 ID를 구분하는 기준이다.
  • CIDR은 이를 /24 같은 비트 수로 간단히 쓰는 방식이다.

추가로 DHCP는 네트워크 설정값을 자동으로 내려주고, ARP는 IP에 대응하는 MAC 주소를 찾을 때 쓴다.

5. 패킷 전송 과정

5.1. 캡슐화와 역캡슐화

데이터는 송신 측에서 헤더를 붙이며 내려가고, 수신 측에서 헤더를 벗기며 올라온다.

5.2. 패킷 생성과 전달 과정

실제 전송은 같은 네트워크냐, 다른 네트워크냐에 따라 다르게 보인다.

  1. 로컬 통신: 같은 네트워크면 ARP로 상대 MAC을 알아내고 직접 보낸다.
  2. 원격 통신: 다른 네트워크면 게이트웨이 MAC을 알아내고, 라우터를 통해 바깥으로 보낸다.

전송 중에는 패킷 손실, 재전송, 순서 어긋남, Zero Window 같은 장애 상황이 나올 수 있다.

6. TCP/IP 프로토콜 동작 원리

6.1. TCP와 UDP의 특징 및 차이점

L4 대표 프로토콜은 TCP와 UDP다.

구분TCPUDP
연결 방식연결 지향형비연결 지향형
신뢰성높음(데이터 순서 보장, 오류 검사, 재전송)낮음(순서 보장 X, 재전송 X)
특징3-way/4-way Handshake, 혼잡 제어, 흐름 제어빠른 속도, 헤더가 단순함
데이터 단위세그먼트(Segment)데이터그램(Datagram)
주요 사용HTTP, FTP, E-mailDNS, VoIP, 실시간 스트리밍

6.2. TCP 연결 과정과 상태 변화

연결을 맺고 끊는 과정은 아래처럼 이해하면 된다.

  • 3-way Handshaking (연결 수립):
    1. Client → Server: SYN (접속 요청)
    2. Server → Client: SYN+ACK (요청 수락 및 서버 측 접속 요청)
    3. Client → Server: ACK (서버 요청 수락 및 연결 확립)
  • 4-way Handshaking (연결 종료):
    1. Client → Server: FIN (클라이언트 측 연결 종료 요청)
    2. Server → Client: ACK (종료 요청 수신 확인, 서버는 아직 보낼 데이터 처리)
    3. Server → Client: FIN (서버 측 데이터 처리 완료 및 종료 요청)
    4. Client → Server: ACK (최종 확인), 클라이언트는 혹시 모를 패킷 유실에 대비해 일정 시간 대기(TIME_WAIT) 후 종료.

7. 웹 기술 기초

7.1. URL, URI, HTTP의 기본 구조

  • URI: 인터넷 자원을 식별하는 더 큰 개념
  • URL: 그중 위치를 나타내는 형태
  • HTTP: 웹 브라우저와 서버가 문서를 주고받는 규약

7.2. 웹 서비스 구조와 동작 원리

일반적인 웹 서비스는 아래 순서로 생각하면 된다.

  1. 클라이언트가 요청을 만든다.
  2. 웹 서버가 정적 자원을 처리하거나, 동적 요청을 WAS로 넘긴다.
  3. WAS가 비즈니스 로직을 실행하고 DB와 통신한다.
  4. DB 결과를 바탕으로 응답을 만든다.
  5. 최종 응답이 다시 브라우저로 돌아와 화면에 렌더링된다.