Network

Kjjedd·2026년 1월 22일

CS

목록 보기
1/3
post-thumbnail

🌐 네트워크 용어 정리 스크립트


1️⃣ 네트워크(Network)

네트워크란 두 개 이상의 장치가 데이터를 주고받을 수 있도록 연결된 구조다.

  • 인터넷일 필요 없음
  • 규모 상관 없음
  • 연결 + 규칙이 있으면 전부 네트워크
[PC] ── [PC]
[Server] ── [Printer]
[EC2] ── [EC2]   (VPC 내부)

👉 연결만 되어 있으면 네트워크


2️⃣ 인터넷(Internet)

인터넷은 하나의 네트워크가 아니다.

👉 전 세계 수많은 네트워크를 연결한 “네트워크들의 네트워크”

  • 특정 회사 소유 ❌
  • 전 세계 공용 인프라 ⭕
  • TCP/IP라는 공통 규칙 사용
[LAN] ─┐
[LAN] ─┼── Internet ── [LAN]
[LAN] ─┘

👉 회사 내부망, 집 네트워크도 전부 인터넷의 일부


3️⃣ 서버(Server)

서버는 네트워크를 통해 요청을 받고 응답을 제공하는 컴퓨터(또는 프로그램)다.

  • 항상 켜져 있음
  • 요청을 기다리는 쪽
  • 역할(Role) 개념
Client ── 요청 ──▶ Server
Client ◀─ 응답 ── Server

👉 서버는 “인터넷 그 자체”가 아니라, 인터넷 위에 존재


4️⃣ IP 주소

IP 주소는 네트워크에서 장치를 식별하기 위한 주소

  • IPv4: 192.168.0.1
  • IPv6: 훨씬 더 많은 주소

👉 전화번호 같은 존재


5️⃣ 포트(Port)

포트는 한 컴퓨터 안에서 어떤 서비스로 갈지 정하는 번호

포트 서비스
80 HTTP
443 HTTPS
22 SSH

👉 IP = 건물 주소, Port = 방 번호


6️⃣ 클라이언트 & 서버 모델

네트워크의 기본 구조는 Client - Server 모델이다.

[Client] ── 요청 ──▶ [Server]
[Client] ◀─ 응답 ── [Server]
  • Client: 요청하는 쪽 (브라우저)
  • Server: 응답하는 쪽 (웹 서버)

7️⃣ 프로토콜(Protocol)

프로토콜은 통신 규칙이다.

  • HTTP: 웹 통신
  • HTTPS: 암호화된 HTTP
  • TCP: 신뢰성 있는 통신
  • UDP: 빠르지만 불완전한 통신

👉 “말하는 방식에 대한 약속”


8️⃣ TCP vs UDP

구분 TCP UDP
신뢰성 높음 낮음
속도 느림 빠름
사용처 웹, 파일전송 스트리밍, 게임

9️⃣ 방화벽(Firewall)

방화벽은 네트워크 트래픽을 허용하거나 차단하는 보안 장치다.

  • NACL: 서브넷 단위, Stateless
  • Security Group: 인스턴스 단위, Stateful
Internet
   │
[NACL]
   │
[Security Group]
   │
[Server]

🔟 라우팅(Routing)

라우팅은 패킷이 목적지까지 가는 경로를 정하는 과정이다.

  • 라우트 테이블 사용
  • 목적지 CIDR → 다음 홉

1️⃣1️⃣ NAT (Network Address Translation)

NAT는 사설 네트워크가 외부와 통신하도록 주소를 변환하는 기술이다.

  • Private → Internet (가능)
  • Internet → Private (불가)

1️⃣2️⃣ VPC (Virtual Private Cloud)

VPC는 aws에서 사용하는 가상 사설 네트워크다.

Internet
   │
[IGW]
   │
[VPC]
 ├─ Public Subnet
 └─ Private Subnet

👉 AWS에서 네트워크의 기본 단위


1️⃣3️⃣ CDN (Contents Delivery Network)

CDN은 사용자와 서버 사이에 캐시 서버를 두어 콘텐츠를 빠르게 전달하는 구조다.

User
 │
[Edge Server]
 │
[Origin Server]

1️⃣4️⃣ OSI 7 계층 (OSI 7 Layers)

OSI 7 계층은 네트워크 통신을 역할별로 나눈 추상적 모델이다.

7. Application  ── 사용자와 가장 가까움
6. Presentation ── 인코딩, 암호화
5. Session      ── 연결 유지
4. Transport    ── 신뢰성, 포트
3. Network      ── IP, 라우팅
2. Data Link    ── MAC, 프레임
1. Physical     ── 전기 신호

👉 실제 통신 흐름을 이해하기 위한 설명용 모델

  • HTTP → 7계층
  • TCP/UDP → 4계층
  • IP → 3계층

1️⃣5️⃣ TCP/IP 4 계층 (TCP/IP Model)

TCP/IP 4 계층은 실제 인터넷에서 사용되는 실무 중심의 네트워크 모델이다.

OSI 7계층이 “설명용 모델”이라면, TCP/IP는 현실에서 동작하는 모델이다.

4. Application ── HTTP, HTTPS, FTP, DNS
3. Transport   ── TCP, UDP
2. Internet    ── IP, ICMP
1. Network     ── Ethernet, MAC

👉 인터넷은 이 구조를 기준으로 설계되고 동작한다.

  • 웹 통신 → Application 계층
  • 신뢰성/속도 → Transport 계층
  • 주소/라우팅 → Internet 계층
  • 실제 전송 → Network 계층

OSI 7 계층 vs TCP/IP 4 계층 비교

구분 OSI 7 계층 TCP/IP 4 계층
목적 이론적 설명 실제 구현
계층 수 7 4
사용 여부 설명·교육용 실제 인터넷 표준
상위 계층 Application / Presentation / Session Application
전송 계층 Transport Transport
네트워크 계층 Network Internet
하위 계층 Data Link / Physical Network

🔍 계층 매핑으로 한 번에 이해하기

OSI 7 계층            TCP/IP 4 계층
-----------------------------------
Application   ┐
Presentation  ├──▶ Application
Session       ┘

Transport     ─────▶ Transport
Network       ─────▶ Internet
Data Link     ┐
Physical      ├──▶ Network

👉 OSI는 세분화, TCP/IP는 실용적 통합


1️⃣6️⃣ TCP 3-Way Handshake (연결 수립)

TCP는 신뢰성을 보장하기 위해 연결을 먼저 맺는다.

Client → SYN      → Server
Client ← SYN+ACK  ← Server
Client → ACK      → Server
  • SYN: 연결 요청
  • ACK: 확인 응답

👉 “서로 통신 준비됐는지 확인하는 과정”


1️⃣7️⃣ TCP 4-Way Handshake (연결 종료)

연결 종료는 수립보다 복잡하다.

Client → FIN      → Server
Client ← ACK      ← Server
Client ← FIN      ← Server
Client → ACK      → Server

👉 양쪽이 각자 종료 의사를 표현해야 완전히 끝난다.


1️⃣8️⃣ TCP 흐름 제어 (Flow Control)

<흐름 제어는 송신자가 수신자의 처리 속도를 초과하지 않도록 조절하는 기능이다.

  • 수신 버퍼 기반
  • Sliding Window 사용

1️⃣9️⃣ TCP 혼잡 제어 (Congestion Control)

혼잡 제어는 네트워크 전체 상황을 고려한다.

  • Slow Start
  • Congestion Avoidance
  • 패킷 손실 → 속도 감소

2️⃣0️⃣ UDP (User Datagram Protocol)

UDP는 연결을 맺지 않는 비신뢰성 프로토콜이다.

항목TCPUDP
연결필요불필요
신뢰성높음낮음
속도느림빠름

👉 실시간 스트리밍, 게임, DNS에서 사용


2️⃣1️⃣ 대칭키 암호화 & 공개키 암호화

🔐 대칭키

  • 하나의 키로 암호화/복호화
  • 빠름
  • 키 전달이 문제

🔑 공개키

  • 공개키 / 개인키 쌍
  • 안전한 키 교환
  • 느림

👉 실제 통신은 공개키로 대칭키를 교환한다.


2️⃣2️⃣ HTTP & HTTPS

HTTP

: 인터넷 상에서 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약
  • 평문 통신
  • 도청 가능

HTTPS

: 인터넷 상에서 정보를 암호화하는 SSL 프로토콜을 사용해 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약
  • HTTP + TLS
  • 암호화된 통신

2️⃣3️⃣ TLS / SSL Handshake

HTTPS 연결 시 내부적으로 일어나는 과정

Client → Hello
Server → Certificate
Client → Key Exchange
Secure Communication

👉 대칭키를 안전하게 합의하는 과정


2️⃣4️⃣ 로드 밸런싱 (Load Balancing)

로드 밸런싱은 트래픽을 여러 서버로 분산하는 기술이다.

User
 │
[Load Balancer]
 ├─ Server A
 ├─ Server B
 └─ Server C
  • 확장성
  • 고가용성
  • 장애 대응

2️⃣5️⃣ Blocking / Non-Blocking

Blocking: 함수 B는 내 할 일을 다 마칠 때까지 제어권을 가지고 있는다. A는 B가 다 마칠 때까지 기다려야 한다.

Non-Blocking: 함수 B는 할 일을 마치지 않았어도 A에게 제어권을 바로 넘겨준다. A는 B를 기다리면서도 다른 일을 진행할 수 있다.

👉 제어권을 누가 가지느냐의 문제


2️⃣6️⃣ Synchronous / Asynchronous

Synchronous (동기): 함수 A는 함수 B가 일을 하는 중에 기다리면서, 현재 상태가 어떤지 계속 체크한다.

Asynchronous (비동기): 함수 B의 수행 상태를 B 혼자 직접 신경쓰면서 처리한다. (Callback)

👉 결과 통지 방식의 차이


2️⃣7️⃣ Blocking & Non-Blocking I/O

구분설명
Blocking I/O읽기/쓰기 동안 대기
Non-Blocking I/O즉시 반환

Blocking I/O:

(1) Process(Thread)가 Kernel에게 I/O를 요청하는 함수를 호출

(2) Kernel이 작업을 완료하면 작업 결과를 반환 받음.

특징

I/O 작업이 진행되는 동안 user Process(Thread) 는 자신의 작업을 중단한 채 대기
Resource 낭비가 심함
(I/O 작업이 CPU 자원을 거의 쓰지 않으므로)

I/O 작업이 진행되는 동안 User Process의 작업을 중단하지 않음.

진행 순서

User Process가 recvfrom 함수 호출 (커널에게 해당 Socket으로부터 data를 받고 싶다고 요청함)

Kernel은 이 요청에 대해서, 곧바로 recvBuffer를 채워서 보내지 못하므로, "EWOULDBLOCK"을 return함.

Blocking 방식과 달리, User Process는 다른 작업을 진행할 수 있음.

recvBuffer에 user가 받을 수 있는 데이터가 있는 경우, Buffer로부터 데이터를 복사하여 받아옴.

이때, recvBuffer는 Kernel이 가지고 있는 메모리에 적재되어 있으므로, Memory간 복사로 인해, I/O보다 훨씬 빠른 속도로 data를 받아올 수 있음.

recvfrom 함수는 빠른 속도로 data를 복사한 후, 복사한 data의 길이와 함께 반환함.

Non-Blocking I/O

I/O 작업이 진행되는 동안 User Process의 작업을 중단하지 않음.

진행 순서

User Process가 recvfrom 함수 호출 (커널에게 해당 Socket으로부터 data를 받고 싶다고 요청함)

Kernel은 이 요청에 대해서, 곧바로 recvBuffer를 채워서 보내지 못하므로, "EWOULDBLOCK"을 return함.

Blocking 방식과 달리, User Process는 다른 작업을 진행할 수 있음.

recvBuffer에 user가 받을 수 있는 데이터가 있는 경우, Buffer로부터 데이터를 복사하여 받아옴.

이때, recvBuffer는 Kernel이 가지고 있는 메모리에 적재되어 있으므로, Memory간 복사로 인해, I/O보다 훨씬 빠른 속도로 data를 받아올 수 있음.

recvfrom 함수는 빠른 속도로 data를 복사한 후, 복사한 data의 길이와 함께 반환함.


profile
Gongbuhaja

0개의 댓글