인터넷은 대부분의 현대 소프트웨어 어플리케이션이 구축되는 기반이다.
효과적이고 안전하게 확장 가능한 애플리케이션과 서비스를 구축하려면 인터넷이 작동하는 방식과 연결성을 활용하는 방법에 대한 이해가 필요하다.
때문에 개발자로서 인터넷이 무엇인지, 어떻게 작동하지는지 이해하는 것이 중요하다고 생각한다.
그래서 이번 포스팅에선 인터넷에 대한 기초 개념에 대해 정리해 보려고한다.
- 참고 사이트 -
How does the Internet Work? https://cs.fyi/guide/how-does-internet-work
The internet, explained https://www.vox.com/2014/6/16/18076282/the-internet
📡 인터넷이란?
인터넷이 무엇인지 알아보기 전에 네트워크가 무엇인지 알아야한다.
네트워크는 서로 연결된 컴퓨터나 기기의 모임이다.
예를 들어, 본인 집에 컴퓨터와 다른 기기의 네트워크를 가지고 있다고 가정해보자. 옆집 사는 사람도 비슷하게 네트워크를 가지고 있고, 또 다른 옆집에 사는 사람도 네트워크를 가지고있다면, 이 모든 네트워크가 서로 연결되어 인터넷을 형성 한다.
인터넷은 네트워크의 네트워크
많은 사람들은 인터넷과 웹을 같은 개념으로 잘못 취급한다. 웹은 많은 인터넷 어플리케이션 중 하나일 뿐이다. 다른 인터넷 어플리케이션은 이메일, 비트토렌트 등이 있다.
요즘 인터넷은 현대의 필수적인 부분으로, 전세계 사람들이 정보에 접근하고, 사람들과 소통하고, 사업을 수행하는데 사용한다. 때문에 인터넷의 작동 방식과 이를 뒷받침하는 다양한 기술과 프로토콜에 대한 이해는 필수적이다.
👨🔧 인터넷 작동 방식
인터넷은 표준화된 프로토콜을 사용하여 장치와 컴퓨터 시스템을 연결시켜 작동한다. 이러한 프로토콜은 장치간에 정보를 교환하는 방법을 정의하고 데이터가 안정적이고 안전하게 전송되도록 보장한다.
인터넷의 핵심은 서로 연결된 라우터의 글로벌 네트워크 로, 서로 다른 장치와 시스템 간의 트래픽을 지시하는 역할을 한다. 인터넷을 통해 데이터를 보내면 데이터가 패킷으로 분할되어 장치에서 라우터로 전송된다. 라우터는 패킷을 검사하여 목적지로 가는 경로의 다음 라우터로 전달한다. 이 과정은 패킷이 최종 목적지에 도달할 때까지 계속 된다.
패킷이 올바르게 전송되고 수신되도록 하기 위해 인터넷은 인터넷 프로토콜(IP)과 전송 제어 프로토콜(TCP)을 포함한 다양한 프로토콜을 사용한다.
IP는 패킷을 올바른 목적지로 라우팅하는 역할을 하고, TCP는 패킷이 안정적으로 올바른 순서로 전송되도록 한다.
이러한 프로토콜 외에도 DNS, HTTP, SSL/TLS를 포함하여 인터넷을 통한 통신 및 데이터 교환을 가능하게 하는 여러 기술과 프로토콜이 있다.
다양한 기술과 프로토콜이 인터넷을 통한 통신 및 데이터 교환을 어떻게 가능하도록 작동하는지 이해하는 것이 중요하다.
📃 기본 개념 및 용어
- 패킷: 인터넷을 통해 전송되는 작은 데이터 단위
- 라우터: 서로 다른 네트워크 사이에서 데이터 패킷을 전송하는 장치
- IP주소: 네트워크의 각 장치에 할당된 고유 식별자로, 데이터를 올바른 목적지로 라우팅하는데 사용
- 도메인 이름: google.com과 같이 웹사이트를 식별하는데 사용되는 사람이 읽을 수 있는 이름
- DNS: 도메인 이름 시스템(Domain Name System)으로 도메인 이름을 IP주소로 변환하는 역할
- HTTP: 하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol)로 클라이언트(ex. 웹브라우저)와 서버(ex. 웹사이트) 사이에 데이터를 전송하는데 사용
- HTTPS: 클라이언트와 서버 간의 안전한 통신을 제공하는데 사용되는 HTTP의 암호화된 버전
- SSL/TLS: SSL(Secure Sockets Layer) 및 TLS(Transport Layer Security) 프로토콜로 인터넷을 통한 안전한 통신을 제공하는데 사용
🔍 인터넷에서 프로토콜의 역할
프로토콜은 인터넷을 통한 통신과 데이터 교환을 가능하게 하는 역할로 장치와 시스템간 정보를 교환하는 방법을 정의하는 일련의 규칙과 표준 이다.
인터넷 통신에는 인터넷 프로토콜(IP), 전송 제어 프로토콜(TCP), 사용자 데이터그램 프로토콜(UDP), 도메인 이름 시스템(DNS), 등 다양한 프로토콜이 사용된다.
- IP: 데이터 패킷을 올바른 목적지로 라우팅 하는 역할
- TCP/UDP: 패킷이 안정적이고 효율적으로 전송되도록 보장
- DNS: 도메인 이름을 IP주소로 변환
- HTTP: 클라인언트와 서버 간 데이터 전송
표준화된 프로토콜을 사용하는 이유 중 하나는 서로 다른 제조업체나 공급업체의 장치와 시스템이 서로 원활하게 통신할 수 있다는 점이 있다.
인터넷 통신에 사용되는 다양한 프로토콜을 이해하고 이러한 프로토콜이 어떻게 함께 작동하여 인터넷을 통해 데이터와 정보를 전송하는지 이해하는것이 중요하다.
🔍 IP 주소와 도메인 이름 이해
- IP 주소
- 네트워크의 각 장치에 할당된 고유 식별자
- 데이터를 올바른 목적지로 라우팅하여 정보가 의도한 수신자에게 전송되도록 하는데 사용
- 일반적으로 "192.168.1.1"과 같이 마침표로 구분된 네 개의 숫자로 표현
- 도메인 이름
- 웹사이트나 다른 인터넷 리소스를 식별하는데 사용되는 사람이 읽을 수 있는 이름
- "google.com"과 같이 마침표로 구분된 두 개 이상의 단어로 구성
- 도메인 이름은 DNS를 사용하여 IP 주소로 변환
DNS는 도메인 이름을 IP 주소로 변환하는 역할이다.
웹브라우저에 도메인 이름을 입력하면 컴퓨터가 DNS 쿼리를 DNS 서버로 보내 해당 IP 주소를 반환한다.
그런 다음 컴퓨터는 해당 IP 주소를 사용하여 요청한 웹사이트나 다른 리소스에 연결시켜준다.
💻 HTTP 및 HTTPS 소개
HTTP(Hypertext Transfer Protocol)와 HTTPS(HTTP Secure)는 인터넷 기반 어플리케이션과 서비스에서 가장 일반적으로 사용되는 프로토콜이다.
HTTP는 클라이언트와 서버간 데이터 전송에 사용되는 프로토콜 로, 웹사이트에 접속하면 웹 브라우저가 서버에 HTTP 요청을 보내 요청한 웹 페이지나 다른 리소스를 요청한다. 그런 다음 서버는 요청된 데이터가 포함된 HTTP 응답을 클라이언트로 다시 보낸다.
HTTPS는 HTTP의 보안이 강화된 버전이다.
SSL/TLS 암호화를 사용하여 클라이언트와 서버간에 전송되는 데이터를 암호화 한다.
이로인해 추가적인 보안 계층을 제공하여 로그인 자격 증명, 결제 정보 및 개인 정보와 같은 민감한 정보를 보호하는데 도움이 된다.
🔍 TCP/IP를 사용한 애플리케이션 구축
TCP/IP(Transmission Control Protocol/Internet Protocol)는 대부분 인터넷 기반 애플리케이션과 서비스에서 사용하는 기본 통신 프로토콜이다.
서로 다른 장치에서 실행되는 애플리케이션 간에 데이터를 오류가 없는지 검사하고 순서에 맞게 안정적으로 전달한다.
- TCP/IP를 사용하여 애플리케이션을 구축할때 이해해야 할 핵심 개념 -
- 포트 (Port)
- 장치에서 실행되는 애플리케이션이나 서비스를 식별하는데 사용
- 고유한 포트 번호가 지정되어 데이터를 올바른 대상에게 보낼 수 있음
- 소켓 (Socket)
- IP 주소와 포트 번호의 조합으로, 통신을 위한 특정 엔드포인트를 말함
- 장치 간 연결을 설정하고 애플리케이션 간 데이터를 전송하는데 사용
- 연결 (Connections)
- 두 장치가 서로 통신 할 때 두 소켓 사이를 이룸
- 연결 과정에서 장치는 최대 세그먼트 크기 및 창 크기와 같은 다양한 매개변수를 정하여 연결을 통해 데이터가 전송되는 방식을 결정
- 데이터 전송 (Data transfer)
- 두 장치가 연결이 되면 각 장치에서 실행되는 애플리케이션 간에 데이터를 전송할 수 있음
- 데이터는 일반적으로 세그먼트로 전송
TCP/IP로 애플리케이션을 구축할 땐 애플리케이션이 적절한 포트, 소켓에서 작동하도록 설계되었는지 확인해야한다.
🔒 SSL/TLS를 이용한 인터넷 통신 보안
SSL/TLS는 인터넷을 통해 전송되는 데이터를 암호화하는데 사용되는 프로토콜 이다.
일반적으로 웹 브라우저, 이메일 클라이언트, 파일 전송 시스템과 같은 애플리케이션 보안에 사용된다.
- SSL/TLS를 사용하여 인터넷 통신을 보호하는 경우 알아야할 핵심 개념 -
- 인증서
- SSL/TLS 인증서는 클라이언트와 서버 간의 신뢰를 구축하는데 사용
- 서버의 ID 정보가 포함되어 있으며 신뢰할 수 있는 인증기관이 진위성을 검증
- 핸드셰이크
- 핸드셰이크 과정 동안 클라이언트와 서버는 정보를 교환하여 보안 연결을 위한 암호화 알고리즘과 기타 매개변수를 결정
- 암호화
- 보안 연결이 설정되면 합의된 알고리즘을 사용하여 데이터가 암호화되고 클라이언트 서버 간 안전하게 전송
인터넷 기반 애플리케이션과 서비스를 구축할 때 SSL/TLS가 어떻게 작동하는지 이해해야 하고 로그인 자격 증명, 결제 정보 및 개인 정보와 같은 민감한 데이터를 전송할 때 SSL/TLS가 사용되는지 확인하는 것도 중요하다.
또한, 서버에 유효한 SSL/TLS 인증서를 획득 및 유지 관리 해야하고, SSL/TLS 연결을 구성하고 보호 하기 위한 모범사례를 따르는 것도 좋다. 그렇게 하면 사용자 데이터를 보호하고 인터넷을 통한 애플리케이션 통신의 무결성과 기밀성을 보장하는데 도움이 될 수 있다.
💡 결론
- 인터넷은 표준 통신 프로토콜를 사용하여 데이터 교환하는 글로벌 네트워크다.
- 인터넷은 IP와 TCP와 같은 표준화된 프로토콜을 사용하여 장치와 컴퓨터 시스템을 연결하여 작동한다.
- 인터넷의 핵심은 서로 다른 장치와 시스템 간의 트래픽을 전달하는 상호 연결된 라우터의 글로벌 네트워크다.
- 프로토콜은 인터넷을 통한 통신과 데이터 교환을 가능하게 하는 데 중요한 역할을 한다.
'CS > 네트워크' 카테고리의 다른 글
[네트워크] 도메인 이름 (Domain Name) (1) | 2025.01.23 |
---|---|
[네트워크] HTTP (Hypertext Transfer Protocol) (0) | 2025.01.16 |