-
-
인터넷의 작동 방식
개발자라면 인터넷이라는 단어를 자주 입에서 꺼내게 된다. 그러나 인터넷이 정확히 무엇인지 어떻게 동작하는지는 잘 모른다. 추상적인 덩어리로 머릿속에 있을뿐이다. 별로 알필요가 없어서일까? 반은 맞고 반은 틀린거 같다. 인터넷의 동작 원리나 정확한 개념을 몰라도 개발하는데는 별로 지장이 없다. 실제로 알아도 당신이 사용하는 프로그래밍 언어 스킬이 상승하지도 않는다.
그러나! 알고 있으면 좋겠다 라는 생각은 누구나 할것이라고 생각한다. 나 또한 추상적인 덩어리로 이해하고 있다. 글 맨 아래 Reference 링크에서 필수적이라고 생각되는 내용만 번역해서 써놓았다. 글을 읽고 궁금한 점은 각자 더 찾아보면 좋을 것이다.
앞서..
인터넷이 무엇인지 알기전에 네트워크가 무엇인지 알아야한다. 네트워크는 서로 연결된 컴퓨터 또는 기타 장치의 그룹이다. 예를 들어, 집에 컴퓨터나 디바이스가 있을 수 있고, 친구 집에도 비슷한 디바이스가 그리고 옆집에도 유사한 디바이스가 있을 수 있다. 이러한 모든 네트워크는 함께 연결될 떄 인터넷을 형성한다.
인터넷은 네트워크의 네트워크이다.
개요
인터넷은 일련의 표준화된 프로토콜을 사용하여 디바이스들과 컴퓨터 시스템을 함께 연결하여 작동한다. 이러한 프로토콜들은 디바이스 간에 정보가 교환되는 방식을 정의하고 데이터가 안정적이고 안전하게 전송되도록한다.
인터넷의 핵심은 서로 다른 장치와 시스템 간의 트래픽 전달을 담당하는 상호 연결된 라우터의 글로벌 네트워크란 점이다. 인터넷을 통해 데이터를 보내면 장치에서 라우터로 전송되는 작은 패킷으로 나누어 지는데, 라우터는 패킷을 검사하고 목적지로 향하는 경로의 다음 라우터로 전달한다. 이 프로세스는 패킷이 최종 목적지에 도달할 떄까지 계속된다.
여기서 패킷이 올바르게 송수신되도록 하기 위해 인터넷은 IP(Internet Protocol), TCP(Transmission Control Protocol)을 비롯한 다양한 프로토콜을 사용한다. IP는 패킷을 올바른 대상으로 라우팅하는 역할을 하는 반면 TCP는 패킷이 안정적이고 올바른 순서로 전송되도록 한다.
IP, TCP와 같은 핵심 프로토콜 외에도 DNS(Domain Name System), HTTP(HyperText Transfer Protocol) 및 SSL/TLS(Secure Sockets Layer/Transport Layer Security) 프로토콜을 포함하여 인터넷을 통한 통신 및 데이터 교환을 가능하게 하는 데 사용되는 다양한 기술 및 프로토콜이 있다.
기본 개념 및 용어
다음은 알아야 할 몇 가지 주요 용어와 개념이다.
패킷: 인터넷을 통해 전송되는 작은 데이터 단위.
라우터: 서로 다른 네트워크 간에 데이터 패킷을 전달하는 장치.
IP 주소: 네트워크의 각 장치에 할당된 고유 식별자로, 데이터를 올바른 대상으로 라우팅하는 데 사용된다.
도메인 이름: 웹 사이트를 식별하는 데 사용되는 사람이 읽을 수 있는 이름 (예: google.com).
DNS: 도메인 이름을 IP 주소로 변환하는 역할을 하는 시스템.
HTTP: 클라이언트(예: 웹 브라우저)와 서버(예: 웹 사이트)간에 데이터를 전송하는데 사용되는 프로토콜.
HTTPS: 클라이언트와 서버 간의 보안 통신을 제공하는데 사용되는 HTTP의 암호화된 버전.
SSL/TLS: 인터넷을 통한 보안 통신을 제공하는 프로토콜.
프로토콜의 역할
프로토콜은 인터넷을 통한 통신 및 데이터 교환을 가능하게 하는 데 중요한 역할을 한다. 프로토콜은 장치와 시스템 간에 정보가 교환되는 방식을 정의하는 일련의 규칙 및 표준이다.
앞서 말했듯이, 인터넷 통신에는 IP, TCP, UDP, DNS 등 다양한 프로토콜이 사용된다.
IP는 데이터 패킷을 올바른 대상으로 라우팅하는 역할을 하는 반면 TCP 및 UDP는 패킷이 안정적이고 효율적으로 전송되도록 한다. DNS는 도메인 이름을 IP 주소로 변환하는 데 사용되며 HTTP는 클라이언트와 서번 간에 데이터를 전송하는 데 사용된다.
표준화된 프로토콜을 사용하는 이유중 하나는 서로 다른 제조업체 및 공급업체의 장치 및 시스템이 서로 원활하게 통신할 수 있다는 점이다. 예를 들어, 한 회사에서 개발한 웹 브라우저는 둘 다 HTTP 프로토콜을 준수하는 한 다른 회사에서 개발한 웹 서버와 통신할 수 있다.
IP 주소 및 도메인 이름
IP 주소와 도메인 이름은 모두 중요한 개념이다.
IP 주소는 네트워크의 각 장치에 할당된 고유 식별자이다. 데이터를 올바른 대상으로 라우팅하여 정보가 의도한 수신자에게 전송되도록 하는 데 사용된다. IP 주소는 일반적으로 “192.168.1.1”과 같이 마침표로 구분된 일련의 4자리 숫자로 표시된다.
반면에 도메인 이름은 웹사이트 및 기타 인터넷 리소스를 식별하는 데 사용되는 사람이 읽을 수 있는 이름이다. 일반적으로 마침표로 구분된 두 개 이상의 부분으로 구성된다. 예를 들어 “google.com”은 도메인 이름이다. 도메인 이름은 DNS를 사용하여 IP 주소로 변환된다.
DNS는 도메인 이름을 IP 주소로 변환하는 인터넷 인프라의 중요한 부분이다. 웹 브라우저에 도메인 이름을 입력하면 컴퓨터가 DNS 쿼리를 DNS 서버로 보내고, DNS 서버는 해당 IP 주소를 반환한다. 그런 다음 컴퓨터는 해당 IP 주소를 사용하여 요청한 웹 사이트 또는 기타 리소스에 연결한다.
HTTP 및 HTTPS 소개
HTTP(Hypertext Transfer Protocol) 및 HTTPS(HTTP Secure)는 인터넷 기반 애플리케이션 및 서비스에서 가장 일반적으로 사용되는 두 가지 프토콜이다.
HTTP는 클라이언트(예: 웹 브라우저)와 서버(예: 웹 사이트) 간에 데이터를 전송하는 데 사용되는 프로토콜이다. 웹 사이트를 방문하면 웹 브라우저는 서버에 HTTP 요청을 보내 요청한 웹 페이지 또는 기타 리소스를 요청한다. 그런 다음 서버는 요청된 데이터가 포함된 HTTP 응답을 클라이언트로 다시 보낸다.
HTTPS는 SSL/TLS(Secure Sockets Layer/Transport Layer Security) 암호화를 사용하여 클라이언트와 서버 간에 전송되는 데이터를 암호화하는 보다 안전한 버전의 HTTP이다. 이는 로그인 자격 증명, 결제 정보 및 기타 개인 데이터와 같은 민감한 정보를 보호하는 데 도움이 되는 추가 보안 계층을 제공한다.
HTTPS를 사용하는 웹 사이트를 방문하면 웹 브라우저의 주소 표시줄에 자물쇠 아이콘이 표시되어 연결이 안전함을 나타낸다. 웹 사이트 주소의 시작 부분에 “http”가 아닌 “https”라는 문자가 표시될 수도 있다.
TCP/IP를 사용하여 응용 프로그램 빌드
TCP/IP(Transmission Control Protocol/Internet Protocol)는 대부분의 인터넷 기반 응용 프로그램 및 서비스에서 사용하는 기본 통신 프로토콜이다. 서로 다른 장치에서 실행되는 응용 프로그램 간에 신뢰할 수 있고 순서가 지정되며 오류 검사된 데이터 전달을 제공한다.
TCP/IP를 사용하여 애플리케이션을 빌드할 때 이해해야 할 몇 가지 주요 개념이 있다.
포트: 포트는 장치에서 실행 중인 응용 프로그램 또는 서비스를 식별하는 데 사용된다. 각 응용 프로그램 또는 서비스에는 고유한 포트 번호가 할당되어 데이터를 올바른 대상으로 보낼 수 있다.
소켓: 소켓은 IP 주소와 포트 번호의 조합으로, 통신을 위한 특정 끝점을 나타낸다. 소켓은 장치 간의 연결을 설정하고 응용 프로그램 간에 데이터를 전송하는 데 사용된다.
연결: 두 장치가 서로 통신하려고 할 때 두 소켓 간에 연결이 설정된다. 연결 설정 프로세스 중에 장치는 최대 세그먼트 크기 및 창 크기와 같은 다양한 매개 변수를 협상하여 연결을 통해 데이터를 전송하는 방법을 결정한다.
데이터 전송: 연결이 설정되면 각 장치에서 실행되는 애플리케이션 간에 데이터를 전송할 수 있다. 데이터는 일반적으로 세그먼트로 전송되며, 각 세그먼트에는 안정적인 전달을 보장하기 위해 시퀀스 번호와 기타 메타데이터가 포함된다.
SSL/TLS를 사용한 인터넷 통신 보안
앞서 이야기한 바와 같이 SSL/TLS는 인터넷을 통해 전송되는 데이터를 암호화하는 데 사용되는 프토콜이다. 일반적으로 웹 브라우저, 이메일 클라이언트 및 파일 전송 프로그램과 같은 응용 프로그램에 대한 보안 연결을 제공하는 데 사용된다.
SSL/TLS를 사용하여 인터넷 통신을 보호할 때 이해해야 할 몇 가지 주요 개념이 있다.
인증서: SSL/TLS 인증서는 클라이언트와 서버 간의 신뢰를 설정하는 데 사용된다. 여기에는 서버 ID에 대한 정보가 포함되어 있으며 신뢰성을 확인하기 위해 신뢰할 수 있는 제3자(인증 기관)가 서명한다.
핸드셰이크: SSL/TLS 핸드쉐이크 프로세스 중에 클라이언트와 서버는 보안 연결을 위한 암호화 알고리즘 및 기타 매개변수를 협상하기 위해 정보를 교환한다.
암호화: 보안 연결이 설정되면 합의된 알고리즘을 사용하여 데이터가 암호화되고 클라이언트와 서버 간에 안전하게 전송될 수 있다.
정리
인터넷은 표준 통신 프로토콜 집합을 사용하여 데이터를 교환하는 상호 연결된 컴퓨터의 글로벌 네트워크다.
인터넷은 IP 및 TCP와 같은 표준화된 프로토콜을 사용하여 장치와 컴퓨터 시스템을 함께 연결하여 작동한다.
인터넷의 핵심은 서로 다른 장치와 시스템 간에 트래픽을 전달하는 상호 연결된 라우터의 글로벌 네트워크다.
익숙해져야 하는 기본 개념 및 용어에는 패킷, 라우터, IP 주소, 도메인 이름, DNS, HTTP, HTTPS 및 SSL/TLS가 포함된다.
프로토콜은 인터넷을 통한 통신 및 데이터 교환을 가능하게 하는 데 중요한 역할을 하며, 다양한 제조업체 및 공급업체의 장치와 시스템이 원활하게 통신할 수 있도록 한다.
마치며
개발이나 혹은 관련된 일을 한지 얼마 되지 않았다면 글을 읽어도 여전히 추상적일 것이다. 실제로 여기서 나온 개념들중 소프트웨어 개발자가 실제로 제어하는것은 많지 않다. 그러니 여전히 추상적이여도 너무 걱정할 필요가 없다. 아래에는 도움이 될만한 영상 URL을 몇개 첨부해 놓았다. 인터넷을 이해하는데 좀 더 도움이 될것이다.
재밌게 볼만한 영상
인터넷의 원리는 무엇일까? 한글자막이 제공된다!
How the Internet Works in 5 Minutes
Reference
MDN - How does the Internet work?
cs.fyi - How does the Internet work?