Frontend

How does the Internet Work?

단점이없어지고싶은개발자 2023. 9. 2. 17:58
반응형

 

반응형

 

  개발자로서 인터넷이 무엇인지, 어떻게 작동하는지 확실하게 이해해야 되는 것은 중요하다. 최신 소프트웨어 어플리케이션이 구축되는 기반이기 때문이다. 효과적이고 안전하며 확장 가능한 어플리케이션과 서비스를 구축하려면 인터넷이 작동하는 방식과 인터넷의 연결성을 활용하는 방법을 확실하게 이해해야 한다. 

 

 

인터넷 소개

  그 전에 네트워크가 무엇인지 이해해야 한다. 네트워크는 서로 연결된 컴퓨터 또는 기타 장치의 그룹이다. 예를 들어 집에 컴퓨터와 네트워크 장치가 있다고 생각해보자. 옆집 이웃도 비슷한 장치를 갖고 있고, 그 이웃에 옆집도 비슷한 장치가 있다. 이러한 모든 네트워크는 함께 연결이 되면 인터넷을 형성하게 된다.

 

  인터넷은 1960년대 후반 미국 국방부가 핵 공격을 견딜 수 있는 분산형 통신 네트워크를 구축하기 위한 수단으로 개발했다. 수년에 걸쳐 전 세계를 포괄하는 복잡하고 정교한 네트워크로 발전했다. 

  오늘날 인터넷은 현대 생활의 필수적인 부분으로 전 세계 수십억 명의 사람들이 정보에 액세스하고, 친구 및 가족과 소통하고, 비지니스를 수행하는 등 다양한 활동을 수행하는데 사용 된다. 그러기에 개발자는 인터넷의 작동 방식과 이를 뒷받침하는 다양한 기술 및 프로토콜을 확실하게 이해하는 것이 중요하다.

 

 

인터넷 작동 방식

  높은 수준에서 인터넷은 열련의 표준화된 프로콜을 사용하여 장치와 컴퓨터 시스템을 함게 연결함으로써 작동한다. 프로토콜은 장치 간에 정보가 교환되는 방식을 정의하고 데이터가 안정적이고 안전하게 전송되도록 보장한다. 

  인터넷의 핵심은 서로 다른 장치와 시스템 간의 트래픽 전달을 담당하는 상호 연결된 라우터가 중점이다. 인터넷을 통해 데이터를 보내면 데이터는 작은 패킷으로 나뉘어 장치에서 라우터로 전송된다. 라우터는 패킷을 검사하여 목적지를 향한 경로의 다음 라우터로 전달한다. 이 프로세스는 패킷이 최종 목적지에 도달할 때까지 계속 된다.

 

  패킷이 올바르게 전송되고 수신되도록 하기 위해 인터넷은 IP(인터넷 프로토콜) 및 TCP(전송 제어 프로토콜)를 포함한 다양한 프로토콜을 사용한다. IP는 패킷을 올바른 대상으로 라우팅하는 역할을 담당하고, TCP는 패킷이 올바른 순서로 안정적으로 전송되도록 보장한다.

  이러한 핵심 프로토콜 외에도 인터넷을 통한 통신 및 데이터 교환을 가능하게 하는데 사용되는 다양한 기술과 프로토콜이 있다. DNS, HTTP, SSL/TLS 등에 프로토콜이 있다. 

 

 

기본 개념 및 용어

  인터넷을 이해하려면 몇 가지 기본 개념과 용어를 숙지하는것이 중요하다. 인터넷을 사용하여 작업하고, 인터넷 기반 어플리케이션 및 서비스를 개발하는데 필수적이다.

  • Packet(패킷) : 인터넷을 통해 전송되는 작은 데이터 단위
  • Router(라우터) : 서로 다른 네트워트 간에 데이터 패킷을 전달하는 장치
  • IP Address(IP 주소) : 네티워크의 각 장치에 할당된 고유 식별자로, 데이터를 올바른 대상으로 라우팅하는데 사용
  • Domain name(도메인 이름) : 웹사이트를 식별하는데 사용되는 이름 /  예) naver.com, google.com
  • DNS : DNS는 도메인 이름을 IP주소로 변환하는 역할을 담당
  • HTTP : 하이퍼텍스트 전송 프로토콜은 클라이언트와 서버 간에 데이터를 전송하는데 사용
  • HTTPS : HTTP에서 보안 통신을 제공, 암호화된 HTTP 버전
  • SSL/TLS : 인터넷을 통한 보안 통시늘 제공하는데 사용

 

 

인터넷에서 프로토콜의 역할

  프로토콜은 인터넷을 통한 통신 및 데이터 교환을 가능하게 하는 중요한 역할이다. 프로토콜은 장치와 시스템 간에 정보가 교환되는 방식을 정의하는 일련의 규칙 및 표준이다.

  IP(인터넷 프로토콜), TCP(전송 제어 프로토콜), UDP(사용자 데이터그램 프로토콜), DNS 등을 포함하여 인터넷 통신에 사용되는 다양한 프로토콜이 있다. 

 

  표준화된 프로토콜을 사용하는 주요 이점 중 하나는 다양한 제조업체 및 공급업체의 장치와 시스템이 서로 원할하게 통신할 수 있다는 것이다. 예를 들어, 한 회사에서 개발한 웹 브라우저는 둘 다 HTTP 프로토콜을 준수하는 한 다른 회사에서 개발한 웹서버와 통신할 수 있다.

 

 

IP주소 및 도메인 이름 이해

  IP 주소는 네트워크의 각 장치에 할당된 고유 식별자이다. 이는 데이터를 올바른 대상으로 라우팅하여 정보가 의도한 수신자에게 전송되도록 사용된다. IP 주소는 일반적으로 "192.166.1.1" 과 같이 마침표로 구분된 이련의 4개 숫자로 표시된다.

  도메인 이름은 웹사이트와 기타 인터넷 리소스를 식별하는데 사용되는 사람이 읽을 수 있는 이름이다. 일반적으로 두 개 이상의 부분으로 구성되며 마침표로 구분된다. 예를 들어 "google.com"은 도메인 이름이다. 도메인 이름은 DNS(Domain Name System)를 사용하여 IP 주소로 변환된다. 

  DNS는 도메인 이름을 IP 주소로 변환하는 역할을 하는 인터넷 인프라의 중요한 부분이다. 아래와 같이 동작한다.

 

  1. 웹 브라우저에 도메인 이름을 입력 후 컴퓨터가 전달
  2. DNS 서버에 DNS 쿼리를 보냄
  3. DNS 서버는 해당 IP 주소를 컴퓨터에 반환
  4. 컴퓨터는 해당 IP 주소를 사용하여 요청한 웹사이트나 기타 리소스에 연결

 

 

HTTP와 HTTPS에 대해서 

  HTTP와 HTTPS는 인터넷 기반 애플리케이션 및 서비스에서 가장 일반적으로 사용되는 두 가지 프로토콜이다. HTTP는 클라이언트와 서버간에 데이터를 전송하는데 사용되는 프로토콜이다. 웹사이트를 방문하면 웹 브라우저는 서버에 HTTP 요청을 보내 요청한 웹 페이지나 기타 리소스를 요청한다. 그리고 서버에서 요청된 데이터가 포함된 HTTP 응답을 클라이언트에 다시 보낸다.

  HTTPS는 SSL/TLS 암화호를 사용하여 클라이언트와 서버 간에 전송되는 데이터를 암호화하는 보다 안전한 HTTP 버전이다. 이는 추가 보안 계층을 제공하여 로그인 자격 증명, 결제 정보 및 기타 개인 데이터와 같은 민감한 정보를 보호하는데 도움 된다.

  HTTPS를 사용하는 웹사이트를 방문하면, 주소표시줄에 자물쇠 아이콘이 표시되어 연결이 안전하다는 것을 나타낸다. 또는 웹사이트 주소 앞에 "http" 혹은 "https" 를 확인할 수 있다.

 

 

 

TCP/IP를 사용하여 어플리케이션 구축

  TCP/IP는 대부분의 인터넷 기반 응용 프로그램 및 서비스에서 사용되는 기본 통신 프로토콜이다. 서로 다른 장치에서 실행되는 어플리케이션 간에 안정적이고 순서적이면서도 오류가 확인된 데이터 전달을 제공한다.

 

  • Ports : 포트트 장치에서 실행중인 어플리케이션이나 서비스를 식별하는데 사용된다. 각 어플리케이션이나 서비스에는 고유한 포트 번호가 할당되어 데이터가 올바른 대상으로 전송될 수 있다.
  • Sockets : 소켓은 IP주소와 포트 번호의 조합으로 통신을 위한 특정 끝점을 나타낸다. 소켓은 장치 간 연결을 설정하고 어플리케이션 간에 데이터를 전송하는데 사용된다.
  • Connections : 두 장치가 서로 통신하려고 할 때 두 Sockets사이에 연결이 설정된다. 연결 설정 프로세스중에 장치는 Connections을 통해 데이터가 전송되는 방식을 결정하는 최대 세그먼트 크기 및 창크기와 같은 다양한 매개변수르 결정한다.
  • Data transfer : 연결이 설정되면 각 장치에서 실행되는 어플리케이션간에 데이터를 전송할 수 있다. 일반적으로 세그먼트로 전송되며, 각 세그먼트에는 안정적인 전달을 보장하기 위해 시퀀스 번호와 기타 메타데이터가 포함된다.

 

  TCP/IP를 사용하여 어플리케이션을 구축할 때 애플리케이션이 적절한 Ports, Sockets 및 Connections과 함께 작동하도록 설계되었는지 확인해야 한다.

 

 

SSL/TLS로 인터넷 통신 보안

  SSL/TLS는 인터넷을 통해 전송되는 데이터를 암호화하는데 사용되는 프로토콜이다. 일반적으로 웹 브라우저, 이메일 클라이언트 및 파일 전송 프로그램과 같은 응용 프로그램에 대한 보안 연결을 제공하는데 사용된다. 

  인터넷 기반 어플리케이션 및 서비스를 구축할 때 SSL/TLS 작동 방식을 이해하고 어플리케이션이 SSL/TLS를 사용하도록 설계되었는지 확인하는것이 중요하다. 예) 로그인 자격 증명, 결제 정보, 개인 데이터 등과 같은 민감한 데이터

  또한 서버에 대해 유효한 SSL/TLS 인증서를 획득 및 유지하고 연결 구성 및 보안을 위한 모범사례를 따르고 있는지 확인해야 한다. 그래야지 사용자 데이터를 보호하고 인터넷을 통한 어플리케이션 통신의 무결성과 기밀성을 보장할 수 있다.

 

  • Certificates(인증서) : SSL/TLS 인증서는 클라이언트와 서버간의 신뢰를 구축하는데 사용된다. 서버의 신원에 대한 정보가 포함되어 있으며, 신뢰성을 확인하기 위해 제3자(인증 기관)의 서명을 받았다.
  • Handshake : SSL/TLS Handshake 프로세스중에 클라이언트와 서버는 보안 연결을 위한 암호화 알고리즘 및 기타 매개변수를 결정하기 위해 정보를 교환한다.
  • Encryption(암호화) : 보안 연결이 설정되면 합의된 알고리즘을 사용하여 데이터가 암호화되며 클라이언트와 서버 간에 안전하게 전송될 수 있다. 

 

 

요약

 

  • 인터넷은 데이터를 교환하기 위해 표준 통신 프로토콜을 사용하는 상호 연결된 컴퓨터의 글로벌 네트워크다.
  • IP 및 TCP와 같은 표준화된 프로토콜을 사용하여 장치와 컴퓨터 시스템을 함께 연결함으로써 작동한다.
  • 핵심은 서로 다른 장치와 시스템 간에 트래픽을 전달하는 상호 연결된 라우터의 글로벌 네트워크다.
  • 기본 개념과 용어에는 패킷, 라우터, IP주소, 도메인 이름, DNS, HTTP, HTTPS, SSL/TLS가 존재한다.
  • 프로토콜은 인터넷을 통한 통신 및 데이터 교환을 가능하게 하는 중요한 역할을 하며, 다양한 제조업체 및 공급업체의 장치와 시스템이 원할하게 통신할 수 있도록 해준다.

 

 


참고사이트

 

반응형