네트워크(Network)
컴퓨터, 서버, 장치(스마트폰, IoT 등)들이 서로 연결되어 데이터를 주고받을 수 있는 구조
예 :
- LAN(Local Area Network) : 한정된 지역(회사 사무실)에서 구성된 네트워크)
- WAN(Wide Area Network) : 더 넓은 범위를 포함한 네트워크
인터넷(Internet)
전 세계의 수많은 네트워크를 연결한 거대한 네트워크의 집합체
인터(Inter) + 네트워크(Network): 네트워크 간의 연결
예 :
- 웹 브라우징 (www.google.com)
- 이메일 (Gmail, Yahoo)
- 스트리밍 서비스 (Netflix, YouTube)
항목 | 네트워크 | 인터넷 |
정의 | 장치 간의 연결 | 전 세계 네트워크의 집합체 |
규모 | 로컬 또는 제한된 범위 | 글로벌 (전 세계 연결) |
필요성 | 인터넷 없이도 구성 가능 | 개별 네트워크 없이는 인터넷 구성 불가 |
예시 | 사내 네트워크, 캠퍼스 네트워크 | 웹사이트, 이메일, 클라우드 |
프로토콜 | 다양한 프로토콜 사용 가능 (TCP/IP 필수 아님) | 주로 TCP/IP 프로토콜 사용 |
IP(Internet Protocol adress)
네트워크에 연결된 각 컴퓨터를 구분하는 유일한 주소(4바이트 고유한 값)
IP 주소 버전
IPv4(Internet Protocol Version 4) : 기본 버전
IPv6(Internet Protocol version 6) : 네트워크에 연결된 컴퓨터가 증가함에 따라 IPv4로 구분할 수 있는 주소의 수가 부족해져서 기존 4바이트의 주소 체계를 16바이트로 확장한 주소 체계
터미널과 nslookup
터미널 : 컴퓨터를 직접 제어하기 위한 소프트웨어 CLI(Command Line Interface) 방식
nslookup : IP주소를 조회하는 명령어 (예 : nslookup www.google.com 을 터미널에 실행하면 구글의 IP주소를 알려줌)
*현존하는 웹사이트의 IP주소는 유동IP 주소이므로 조회할 때마다 결과가 다르게 나올 수 있음
도메인 네임
IP주소를 문자열로 변환한 것
예 : IP주소 : 142.250.76.132 = 도메인 네임 : www.google.com
DNS(Domain Name System)
IP와 도메인 매핑 서비스
일반 사용자는 ISP가 제공하는 정보를 받아서 사용
DNS 서버 운영 주체 종류
인터넷 서비스 제공업체(ISP)
SK브로드밴드, KT, LG U+ 같은 ISP들은 자체 DNS 서버를 운영
보통 인터넷 연결 시 자동으로 ISP의 DNS 서버를 사용하도록 설정돼 있음
공개 DNS 서비스 제공업체
구글, 클라우드플레어, OpenDNS 같은 업체들이 무료 공개 DNS 서비스를 운영
ISP의 DNS 서버보다 빠르거나 더 보안이 강화된 경우가 많아서 사람들이 직접 변경해서 사용하기도 함
기업 및 기관(사설 DNS 운영)
대기업, 대학, 정부 기관 등도 내부적으로 DNS 서버를 운영해서 내부 네트워크만 사용하는 도메인을 관리하기도 함
내부 시스템 보안을 위해 자체 DNS를 운영하는 경우가 많음
웹 호스팅 및 클라우드 서비스 제공업체
AWS Route 53, Cloudflare, GoDaddy 같은 서비스들은 DNS 관리 기능을 제공해서 도메인을 등록하고 설정할 수 있게 함
웹사이트 운영 시 특정 도메인을 특정 IP주소로 연결 가능
개인이 운영하는 DNS 서버
집에서 라즈베리파이 같은 기기로 Pi-hole 설정하면 광고 차단 기능이 있는 개인 DNS 서버를 운영할 수도 있음.
* 업체(ISP)에 따라서 구글 IP 주소가 다를 수 있다고 함!
그리고 구글 같은 대기업의 경우 전 세계에 수천 개의 서버를 운영하고 있음.
예를 들어, SK브로드 밴드 사용자는 서울의 구글 데이터센터로 연결 될 수도 있고, KT 사용자는 부산의 구글 서버로 연결될 수도 있음
또한 구글은 Anycast라는 네트워크 기술을 사용해 하나의 도메인(google.com)에 대해 여러 개의 서버를 운영함.
사용자(혹은 ISP)가 어디에서 요청하느냐에 따라 다른 서버 IP가 응답할 수 있음.
DNS 서버의 계층 구조
도메인을 체계적으로 관리하기 위해 도메인과 IP주소의 매핑 정보를 계층 구조로 분산해 저장함
(예 : www.google.com. 마지막에 닷(.)이 루트 도메인, com은 최상위 레벨 도메인, google은 2레벨 도메인, www는 3레벨 도메인 - 서브도메인(sub-domain))
포트와 포트 번호
네트워크에서 컴퓨터(서버) 안의 특정 서비스나 프로그램을 식별하는 숫자
쉽게 말해, IP는 집 주소, 포트 번호는 집안의 특정 방 번호 같은 개념
같은 IP 주소에서도 다른 서비스(프로그램)를 구분하기 위해 필요
포트 번호는 0~65,535번까지(그중 0, 65,535번은 사용하지 않음)
1~1023 : well-known port, 웹, 이메일, FTP 등 표준 서비스에 사용
1024 ~ 49151 : Registered Ports, 특정 앱이나 회사에서 등록해 사용
49151 ~ 65535 : Dynamic/Private Prots, 일시적으로 할당되는 포트 (클라이언트가 사용)
예시 :
1. 인터넷 브라우저에서 https://www.google.com에 접속하면?
- 브라우저는 구글 서버의 IP 주소(예: 142.250.76.132)로 요청을 보냄
- 그리고 웹 서비스는 443번 포트(HTTPS)를 통해 연결됨
- 즉, 142.250.76.132:443으로 연결
2. 게임 서버에 접속할 때?
- 예를 들어 minecraft.example.com:25565로 접속하면,
- minecraft.example.com의 IP 주소를 찾고,
- 25565번 포트로 마인크래프트 서버에 연결됨.
🔹대표적인 포트 번호
포트 번호 | 프로토콜 | 설명 |
80 | HTTP | 웹사이트(보안 없음) |
446 | HTTPS | 웹사이트(보안 적용) |
21 | FTP | 파일 전송 |
22 | SSH | 원격 접속(터미널) |
25 | SMTP | 이메일 전송 |
53 | DNS | 도메인 > IP 변환 |
3306 | MySQL | MySQL 데이터베이스 |
3389 | RDP | 원격 데스크톱 |
🔹 포트 관련 개념
1️⃣ 방화벽 & 포트 차단
• 네트워크 보안을 위해 특정 포트를 막을 수도 있어.
• 예를 들어 회사에서는 게임(예: 25565)이나 토렌트(예: 6881) 관련 포트를 차단할 수도 있음.
2️⃣ 포트 포워딩(Port Forwarding)
• 외부에서 내부 네트워크의 특정 컴퓨터/서비스로 접속할 때 사용.
• 예: 공유기에서 192.168.0.10:22로 SSH 접속을 열어주면, 외부에서 내공인IP:22로 접속 가능.
3️⃣ 포트 스캐닝(Port Scanning)
• 해커들이 보통 네트워크를 공격할 때, 열려 있는 포트를 찾아서 취약점을 분석하는 기법.
• 그래서 보안상 불필요한 포트는 닫거나 방화벽으로 보호하는 게 중요함.
프로토콜(Protocol)
네트워크에서 데이터를 주고받을 때 지켜야 하는 규칙
💡 쉽게 말해?
• 마치 사람들이 서로 대화할 때 언어(한국어, 영어 등)를 맞춰야 하는 것처럼,
• 컴퓨터끼리도 같은 프로토콜을 사용해야 원활하게 통신할 수 있음.
🔹 주요 프로토콜 설명
1️⃣ HTTP / HTTPS (웹사이트)
• HTTP (HyperText Transfer Protocol):
• 웹사이트 데이터를 주고받는 프로토콜.
• http://www.example.com 같은 형태로 사용됨.
• 보안 없음(데이터가 암호화되지 않음).
• HTTPS (HTTP Secure):
• HTTP에 SSL/TLS 암호화를 추가한 버전.
• https://www.example.com 형태로 사용됨.
• 인터넷에서 가장 많이 사용되는 프로토콜.
예:
HTTP 요청 메세지
GET /index.html HTTP/1.1
GET : HTTP 메서드
/index.html : 요청 URL
HTTP/1.1 : HTTP 버전
HTTP 응답 메세지
HTTP/1.1 403 Forbidden
HTTP/1.1 : HTTP 버전
403 : 상태 코드
Forbidden : 상태 메세지
주요 HTTP 메서드
메서드 | 설명 |
GET | 데이터 조회를 요청할 때 |
POST | 새 데이터 등록을 요청할 때 |
PUT | 전체 데이터 수정을 요청할 때 |
PATCH | 일부 데이터 수정을 요청할 때 |
DELETE | 데이터 삭제를 요청할 때 |
주요 상태 코드와 상태 메세지
상태 코드 | 상태 메세지 | 설명 |
200 | OK | 요청이 성공적으로 완료 |
201 | Created | 새로운 자원 생성 성공 |
204 | No Content | 요청은 성공했으나 반환할 콘텐츠가 없음 |
301 | Moved Permanently | 요청한 자원URI이 변경되었으며, 새로운 URI를 반환 함 |
400 | Bad Request | 클라이언트의 잘못된 요청으로 서버가 이해할 수 없음을 의미 |
401 | Unauthorized | 미인증된 클라이언트가 보호된 자원에 접근하려고 시도한 경우 |
404 | Not Found | 클라이언트가 요청한 자원을 찾을 수 없음 |
500 | Internal Server Error | 서버에서 예상치 못한 에러가 발생함 |
2️⃣ FTP (File Transfer Protocol)
• 파일을 업로드/다운로드할 때 사용하는 프로토콜.
• 웹 서버에 파일을 올릴 때 많이 사용됨.
• 보안이 취약해서 요즘은 SFTP(SSH 기반 FTP)가 더 많이 쓰임.
3️⃣ SMTP / IMAP / POP3 (이메일 관련 프로토콜)
• SMTP (Simple Mail Transfer Protocol):
• 이메일을 보낼 때 사용. (메일 전송)
• IMAP (Internet Message Access Protocol):
• 메일을 서버에서 직접 관리하며 동기화 가능. (메일 읽기)
• POP3 (Post Office Protocol 3):
• 메일을 서버에서 다운로드하여 관리. (메일 다운로드)
💡 IMAP vs POP3 차이점?
• IMAP은 이메일을 서버에 저장해두고 어디서든 동기화 가능 (예: Gmail).
• POP3는 이메일을 내 PC로 다운로드 후 서버에서 삭제 (예전 방식).
4️⃣ DNS (Domain Name System)
• 도메인(google.com) → IP 주소(142.250.76.132) 변환하는 프로토콜
• 웹사이트 접속 시 자동으로 DNS 요청을 보내서 IP를 찾음.
5️⃣ TCP / UDP (데이터 전송 방식)
• 데이터를 인터넷에서 주고받을 때 두 가지 방식이 있음.
• TCP : 연결형 프로토콜(신뢰성 보장), 순서 보장, 데이터 유실 없음
• UDP : 비연결형 프로토콜(빠름), 순서 보장X, 데이터 유실 가능
💡 TCP vs UDP 차이점?
• TCP: 신뢰성이 중요한 경우 (웹사이트, 이메일, 파일 전송)
• UDP: 속도가 중요한 경우 (온라인 게임, 실시간 스트리밍)
연결형 프로토콜 (예: TCP)
• 연결 설정: 데이터를 보내기 전에, 송신자와 수신자 사이에 먼저 “연결 설정(handshake)” 과정을 거쳐 연결을 확립.
• 신뢰성 보장: 전송된 데이터가 정확히 도착했는지 확인하며, 데이터 손실이나 순서가 뒤바뀌면 재전송하는 등 오류를 처리.
• 예시: 웹 브라우징, 이메일, 파일 전송 등과 같이 데이터의 정확한 전달이 중요한 경우에 사용.
비연결형 프로토콜 (예: UDP)
• 연결 미설정: 데이터를 보내기 전에 별도의 연결 과정을 거치지 않고 바로 전송.
• 속도 우선: 오류 검출이나 재전송 과정을 거치지 않으므로, 데이터 전달 속도가 빠르지만 데이터 손실이 발생할 수 있음.
• 예시: 실시간 스트리밍, 온라인 게임 등 데이터의 약간의 손실보다 빠른 전달이 중요한 경우에 사용.
추가 정보
사설 IP, 공인 IP, 이더넷, 라우터, DHCP, 게이트웨이
내부 IP(Private IP)와 외부 IP(Public IP)
내부 IP :
- 로컬 네트워크 내에서 장치들 간의 통신에 사용되는 IP 주소.
- 외부 인터넷에서 직접 접근할 수 없음.
외부 IP :
- ISP(인터넷 서비스 제공자)가 네트워크에 할당한 고유한 IP 주소.
- 인터넷에서 접근 가능한 주소로, 웹사이트나 서버를 식별.
유동 IP(Dynamic IP)와 고정 IP(Static IP)
유동 IP :
- IP 주소가 DHCP 서버에 의해 동적으로 할당
- 주기적으로 IP가 변경되며, 일반 가정용 네트워크에서 흔히 사용.
고정 IP :
- IP 주소가 항상 고정되어 변경되지 않음.
- 서버, CCTV, 호스팅 서비스 등 안정적인 접속이 필요한 환경에 사용.
DNS(Domain Name System)와 hosts 파일
DNS :
- 도메인 이름을 IP 주소로 변환해 주는 시스템
- 인터넷의 전화번호부 역할
- DNS 서버를 통해 동작하며, 사용자가 직접 설정 가능
hots 파일 :
- 운영 체제에서 IP 주소와 도메인 이름의 매핑을 저장한 파일
- DNS 서버보다 우선순위가 높음.
- 주로 로컬 개발 환경에서 사용.
레지스트리(Registry)와 레지스트라(Registrar)
레지스트리 :
- 도메인 이름을 관리하는 데이터베이스
- 도메인 등록 정보를 중앙에서 관리
레지스트라 :
- 사용자가 도메인 이름을 등록할 수 있도록 중개하는 회사 또는 기관
Well-Known Port, Registered Port, Dynamic Port
Well-known Port (0-1023) :
- 주로 표준 서비스와 프로토콜에 할당된 포트.
- 예 : HTTP(80), HTTPS(443), FTP(21), SMTP(25)
Registered Port (1024-49151) :
- 특정 애플리케이션에 등록된 포트.
- 예 : MySQL(3306), Microsoft SQL Server(1433)
포트 포워딩(Port Forwarding)
- 외부 네트워크에서 내부 네트워크 장치에 접근할 수 있도록 포트를 열어주는 설정.
- 예 : 원격 데스크톱 연결, 게임 서버 호스팅, CCTV 또는 IoT 장치 원격 제어
OSI 7계층과 TCP/IP 4계층
OSI 7계층(Open Systems Interconnection Model) : 네트워크 통신을 7단계로 나눈 참조 모델.
1. Physical Layer(물리 계층) : 하드웨어 간의 물리적 전송(케이블, 전기 신호)
2. Data Link Layer(데이터 링크 계층) : MAC 주소를 사용하여 데이터 전송
3. Network Layer(네트워크 계층) : IP 주소를 기반으로 경로 설정 (라우팅)
4. Transport Layer(전송 계층) : 데이터의 신뢰성 제공 (TCP, UDP)
5. Session Layer(세션 계층) : 세션(연결) 관리.
6. Presentation Layer(표현 계층) : 데이터 암호화, 압축, 변환.
7. Application Layer(응용 계층) : 최종 사용자의 상호작용(HTTP, FTP 등).
TCP/IP 4 계층 : 실제 인터넷 프로토콜이 동작하는 4계층 모델
1. Network Access Layer : OSI의 1, 2 계층에 해당 (물리 + 데이터 링크)
2. Internet Layer : OSI의 네트워크 계층과 유사 (IP 라우팅)
3. Transport Layer : OSI 전송 계층과 유사(TCP, UDP)
4. Application Layer : OSI의 5. 6. 7 계층을 포함(HTTP,FTP)