코딩/CS 기초

TIL 4 : 네트워크(network)와 인터넷(internet)

americanoallday 2025. 2. 20. 20:33

네트워크(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)