데이터 통신 기본용어

농담곰·2026년 3월 3일

패킷이란?

출발지와 목적지 간의 네트워크를 통해 전송되는 데이터의 단위 (header/payload)

패킷 캡쳐?

네트워크 인터페이스를 오가는 데이터를 살펴보는 동작
-> WireShark가 GUI되어있어서 보기 좋음
-> 네트워크 동작을 이해하고 문제상황을 파악할 수 있음

웹 통신

클라이언트(브라우저)가 서버에 데이터를 요청
서버는 받은 요청에 대해서 응답
HTTP 요청 방식 :
- GET
- POST
- PUT
- DELETE

DNS

도메인 이름을 IP주소로 변환해 주는 시스템

웹 서버 접속 과정:

  • 사용자가 브라우저에URL을 입력
  • 웹 브라우저는 URL의 도메인에 대해 DNS 서버에 요청
  • DNS 서버는 도메인에 해당되는 서버의 IP주소(168.188.어쩌구.저쩌구)를 반환
  • 변환된 IP 주소로 실제 웹 서버에 HTTP 요청을 보냄
  • 웹 서버로부터 HTTP 응답을 받음

HTTP

클라이언트(브라우저)가 서버에게 규칙대로 메시지를 주고받는 프로토콜(규칙)

  • 요청 :
  • GET /api/v1/apple/123 HTTP/1.1
  • 헤더 :추가 정보(메타데이터)
  • 바디 : 실제 데이터(주로 POST/PUT/PATCH에서)
POST /api/login HTTP/1.1
Host: api.example.com
Content-Type: application/json

{"email":"a@a.com","password":"1234"}
  • 응답 : HTTP/1.1 200 OK 상태코드
  • 헤더 : 응답정보
  • 바디 : 결과 데이터
HTTP/1.1 200 OK
Content-Type: application/json

{"id":123,"name":"비타민C"}

-> HTTP메시지도 패킷안에 담겨서 감
보통 웹(HTTPS 포함) 통신은 이렇게 “포장”돼서 간다:

  • HTTP 요청/응답(내용)
    ↓ (TCP가 쪼개서 전송하고 순서/재전송 담당)
  • TCP 세그먼트
    ↓ (IP가 목적지 주소 붙여서 라우팅)
  • IP 패킷
    ↓ (이더넷/와이파이가 프레임으로 실제 전송)
  • 실제 네트워크로 전송
  • -> 받는 쪽에서 조각난 패킷 합쳐서 원래 HTTP로 복원

TCP

인터넷에서 데이터를 신뢰성 있게 보내기 위한 전송규칙
보통 웹통신은 HTTP 요청/응답을 TCP 연결 위에서 주고받음

  • 연결지향 3-way handshake (SYN → SYN/ACK → ACK)
  • 순서보장
  • 손실되면 재전송
  • 속도조절

+) UDP : 그냥 던짐 (빠르지만 순서없고 유실있음)

Socket

프로그램이 네트워크로 데이터 주고받기 위해 쓰는 ‘통신 창구(인터페이스)
운영체제(OS)가 제공해주고, 앱(브라우저/서버)이 소켓을 통해 TCP/UDP로 통신함

  • 서버는 보통 8080 같은 포트(port) 를 열고 기다림(리스닝)
  • 클라이언트는 서버의 IP:port 로 연결 시도
  • 연결이 성립되면 한 연결은 보통 (클라이언트IP, 클라이언트포트, 서버IP, 서버포트, 프로토콜) 로 구분됨

예시 느낌:

  • 브라우저 → api.apple.banana:443 접속
    브라우저는 로컬에서 임시 포트(예: 52134)를 잡고
    (내IP:52134) ↔ (서버IP:443) 로 TCP 연결을 만든다.

이더넷

같은 네트워크(같은 LAN) 안에서 데이터를 ‘프레임’ 단위로 전달하는 규칙
LAN: 가까운 범위(집/회사/학교) 안에서 장비들이 같은 네트워크로 묶여있는 걸 말함

라우팅

패킷을 목적지까지 보내기 위해 ‘어느 길(다음 홉)로 보낼지 결정’하는 것
이걸 하는 장비/기능이 라우터(router)

  • 내 컴퓨터가 목적지 IP를 보고
    • “같은 LAN이면” → 바로 그 장비로 보냄
    • “다른 네트워크면” → 게이트웨이(보통 공유기/라우터) 로 보냄
  • 라우터는 라우팅 테이블(길 안내 표)을 보고 다음 라우터로 넘기고… 반복해서 목적지까지 감
    gateway : 내 LAN 밖(다른 네트워크/인터넷)으로 나갈 때 거쳐가는 출구

VPC

aws에서 제공하는 클라우드 안의 가상 사설 네트워크(LAN과 유사)
서브넷(subnet) : VPC를 더 잘게 조겜(public, private)

  • Route Table(라우팅 테이블): “어디로 보내면 되지?” 길 안내표
  • Internet Gateway(IGW): VPC가 인터넷과 통신할 수 있게 붙이는 “출구”
  • NAT Gateway: Private subnet 인스턴스가 밖으로만(아웃바운드) 나가게 해주는 장치 (인바운드는 막힘)

ALB

AWS의 로드밸런서 중 하나로,
외부(사용자) 요청을 받아서 여러 서버(EC2/ECS 등)로 나눠주는 입구

  • 들어온 HTTP/HTTPS 요청을 받아서
  • 규칙에 따라 대상(Target Group)으로 전달
    • 예: /api/*는 백엔드로, /는 프론트로
  • 여러 서버에 분산(로드밸런싱)

네트워크(Network)

= 여러 장치가 ‘통신 규칙(프로토콜)’을 공유해서 데이터를 주고받을 수 있게 연결된 시스템(연결 + 규칙 + 주소체계).

A. 물리적/로컬 의미 (LAN)

  • 같은 공유기/스위치 아래 묶인 “동네”
  • 보통 같은 와이파이에 붙으면 여기 의미로 “같은 네트워크”라고 말함

B. IP 관점 의미 (서브넷)

  • “직접 통신 가능한 IP 주소 범위”
  • 예: 192.168.0.0/24 같은 범위를 하나의 네트워크(서브넷) 라고 부름

같은 와이파이라고 무조건 같은 네트워크 아님

  • 두 기기의 IP가 같은 대역(예: 192.168.0.x) 이고
  • 서브넷 마스크도 같으면 같은 네트워크일 확률 높음
    이게 같으면 게이트웨이(라우터) 없이 통신이 가능함

Port

한 컴퓨터(서버) 안에서 “어떤 프로그램(서비스)에게” 데이터를 줄지 구분하는 번호
즉, IP가 ‘어느 컴퓨터냐’를 찾는 주소라면, 포트는 ‘그 컴퓨터의 어느 앱이냐’를 찾는 번호
(클라이언트IP:임시포트) ↔ (서버IP:서비스포트)

  • 80: HTTP (웹)
  • 443: HTTPS (웹, 암호화)
  • 22: SSH (서버 접속)
  • 3306: MySQL
  • 6379: Redis
  • 8080: 개발용 웹서버에서 자주 씀(Spring Boot 기본도 자주 8080)

보안그룹 인바운드

누가 내 서버로 들어올 수 있는지 규칙

  • 어떤 프로토콜(TCP/UDP)
  • 어떤 포트(22, 80, 443, 8080 등)
  • 누가 접속해도 되는지(IP 범위/CIDR, 또는 다른 보안그룹)

예)

  • TCP 22번(SSH)은 내 집 IP만 허용
  • TCP 443번(HTTPS)은 전 세계 허용

CIDR 표기로 “허용할 IP 범위”

  • 0.0.0.0/0 = 모든 IPv4 주소 전체
    → 쉽게 말해 전 세계 누구나 접속 가능
    -> 위험하니까 걍 내 ip로 설정하든가 상황에 맞게하면됨 alb는전체공개해도되는데 ec2를 그렇게 하면 위험하겠다는 느낌으로 판단

프로토콜 = 통신 규칙

1) 웹에서 자주 보는 프로토콜 (애플리케이션 계층)

  • HTTP: 웹 요청/응답 (암호화 없음)
  • HTTPS: HTTP + TLS(암호화)
  • DNS: 도메인 이름 ↔ IP 변환
  • SMTP / IMAP / POP3: 이메일 전송/수신
  • FTP / SFTP: 파일 전송
  • SSH: 원격 접속(터미널)
  • WebSocket: 실시간 양방향 통신
  • gRPC: 서비스 간 RPC 통신(보통 HTTP/2 위)

2) 전송 계층(Transport)

  • TCP: 연결/순서보장/재전송 (대부분의 웹, DB 등)
  • UDP: 빠르지만 보장 없음 (스트리밍/게임/VoIP 등)
  • (참고) QUIC: UDP 위에서 신뢰성+TLS를 제공, HTTP/3에 사용

3) 인터넷 계층(네트워크 계층)

  • IP (IPv4/IPv6): 주소(IP)와 라우팅
  • ICMP: ping 같은 진단 메시지

4) 링크 계층(같은 LAN에서 전달 규칙)

  • Ethernet: 유선 LAN 전송 규칙
  • Wi-Fi(802.11): 무선 LAN 전송 규칙
  • ARP: “이 IP의 MAC 주소 뭐야?” (LAN에서 필요)
profile
둥글게살자

0개의 댓글