기초 시리즈: 인터넷 1

이선주·2023년 11월 18일
0

기초 시리즈

목록 보기
1/7

여러 통신망을 하나로 연결한다는 의미의 ‘인터 네트워크(inter-network)’라는 말에서 시작되었으며, 이제는 전 세계 컴퓨터들을 하나로 연결하는 거대한 컴퓨터 통신망을 의미한다. 이러한 인터넷은 클라이언트와 서버로 구성되며, TCP/IP라는 기본 프로토콜을 통해 제공되고 있다.

인터넷은 탈중앙화로 아무도 소유하거나 연결된 사용자를 제어할 수 없다. 대신 수천 개의 서로 다른 조직 또는 기업이 자체 네트워크를 운영하고 사용자와 연결을 협상한다.

즉, 수많은 클라이언트와 서버, 그리고 이들로 구성된 네트워크들의 집합체를 인터넷이라고 한다.

네트워크(Network) 또는 컴퓨터망은 컴퓨터(노드)들이 자원을 공유하는 통신 네트워크의 하나이다.


인터넷은 어디에 있을까?

인터넷의 세 가지의 기본 구성으로 되어있다.

인터넷 세 가지 구성요소

라스트 마일(The last mile)

가정과 기업을 인터넷에 연결하는 부분으로 인터넷이 사용자에게 도달하는 최종 목적지이다.

데이터 센터(Data center)

데이터를 저장하고 앱과 콘텐츠를 호스팅하는 서버로 가득 찬 공간, 데이터 센터는 전 세계 어디에나 위치할 수 있지만 토지와 전기가 저렴한 외딴 지역에 위치하는 경우가 많다.

백본(Backbone)

데이터센터와 사용자를 연결하는 전세계에 설치되어 있는 케이블이다. 대부분 광섬유 케이블로 구성되어 있다.

인터넷의 시작

인터넷은 1960년대 미국 국방부에서 군사적인 목적으로 구축한 아파넷(ARPANET)으로부터 시작되었다. 이후 데이터의 전송 속도가 빠르고 안정적인 TCP/IP 프로토콜을 사용함에 따라 더욱 빠르게 발전하게 되었다.

이러한 소규모 네트워크들이 더욱 발전하고 서로 접속함에 따라, 1994년 클린턴 행정부는 인터넷 백본에 대한 통제권을 민간 부문에 넘겼다. 현재는 전 세계적인 거대한 컴퓨터 네트워크의 집합체로 되었다.

프로토콜(Protocol 또는 통신 규약)이란, 컴퓨터 사이에서 메시지를 주고 받는 양식과 규칙을 의미한다. 사람이 대화를 주고 받을 때 언어나 장치 등을 서로 일치시켜야만 원활한 대화를 할 수 있듯이 컴퓨터끼리도 정보를 교환할 때 데이터의 형식이나 통신 순서 등을 미리 일치시켜야만 통신이 가능하다.

누가 인터넷을 운영하는가?

탈중앙화인 인터넷은 누구도 소유하지 않고 운영하지 않는다. 대신 회사, 대학, 정부 및 기타 기관이 자체 네트워크를 운영하고 상호 연결을 계약하여 정보를 교환한다.

인터넷을 작동시키는 기술 표준은 IETF(Internet Engineering Task Force)라는 조직에서 관리한다. IETF는 개방형 조직으로 누가나 자유롭게 회의에 참석하고 제안한다. IETF가 승인한 표준을 체택할 필요는 없다.

IETF updates HTTP specifications, publishes HTTP/3

IETF에서는 최근 HTTP3 프로토콜을 공개하였다.

인터넷 구성요소

인터넷을 구성하고 있는 시스템을 인터넷 시스템(Internet System)이라고 한다. 이러한 인터넷 시스템은 다음과 같이 수많은 서버(server)와 클라이언트(client)들로 구성되어 있다.

서버(Server)

인터넷 서비스를 제공하는 프로그램이나 컴퓨터를 의미한다.

웹 시스템에서는 컴퓨터나 스마트 폰 등 다양한 기기를 사용하여 방문하는 웹 사이트의 정보를 담고 있는 프로그램이나 컴퓨터를 웹 서버(web server)라고 부른다.

클라이언트(Client)

서버가 제공하는 인터넷 서비스를 이용하는 사용자가 사용하는 기기를 의미한다. 웹 시스템에서는 여러 웹 사이트를 방문하기 위해 사용하는 웹 브라우저 등을 예로 들 수 있다.

웹 브라우저(Web Browser)란, 웹 브라우저란 웹 서버에서 웹 페이지를 가져오거나 웹 서버로 정보를 보낼 때 사용하는 프로그램이다.

최초의 브라우저는 일리노이 대학의 연구원들이 만든 Mosaic이다.

최초의 브라우저는 일리노이 대학의 연구원들이 만든 Mosaic이다.


인터넷 용어 설명

IP 주소

IP(Internet Protocol) 주소는 컴퓨터가 인터넷에서 서로를 식별하는데 사용하는 숫자로 예를 들어, 구글(google.com)의 IP 주소는 173.194.126.240 이다.

서로 다른 컴퓨터가 동일한 IP 주소를 사용하지 않도록 IANA(Internet Assigned Numbers Authority)라는 ICANN 부서에서 관리한다.

IP 주소는 아래와 같이 4개의 10진수(Unsigned)와 점으로 연결되어 있으며, 각 영역마다 1Byte의 공간을 가지고 있다.

IP 구성

  • IP 주소 형식: 네트워크 주소 . 호스트 주소 or 호스트 주소 . 서브넷 주소 . 호스트 주소
  • IP 주소는 IPv4와 IPv6 두 가지가 있다. IPv4는 32 비트 주소 길이를 사용하고, IPv6는 128비트 길이를 사용한다.

IPv6

IPv4로 알려진 현재 인터넷 표준은 약 40억개의 IP 주소만 허용한다. 1970년대 당시에는 매우 큰 수 였지만, 오늘날 IPv4 주소가 거의 소진되었다.

IPv4의 대안으로 IPv6라는 체계가 개발되었다. 현재는 IPv4와 IPv6의 주소 체계가 같이 사용되고 있다.

IPv6는 128비트 체계의 무제한 인터넷 프로토콜 주소로 16비트 단위로 구분하며, 각 단위는 16진수로 변환되어 콜론(:)으로 구분하여 표기한다. IPv6 주소 앞의 64비트는 네트워크 주소를 의미하며, 뒤의 64비트는 네트워크에 연결된 통신장비 등에 할당되는 인터페이스 주소를 의미한다.

16진수0000:0000:0000:0000:0000:0000:0000:0000:
위치(64비트)네트워크(64비트) 인터페이스 주소

도메인 네임(Domain Name)

IP 주소는 “202.179.177.22”처럼 구성되기 때문에 사용자 친화적(User-Friendly)이지 않다. 때문에 사람이 기억하기 쉬운 문자 형태로 표현한 주소를 도메인 네임이라고 한다.

도메인 네임은 “google.com” 처럼 몇 개의 의미있는 문자들과 점의 조합으로 구성된다. 이러한 도메인 네임은 네트워크 상에서 각각의 컴퓨터를 식별할 수 있게 해주는 호스트명이 된다.

DNS(Domain Name System)

도메인 네임은 사람이 사용하기 쉽도록 만든 주소로 컴퓨터는 그 의미를 이해할 수 없다. 따라서 도메인 네임을 실제 IP 주소로 연결해 주어야만 컴퓨터가 목적지를 찾아갈 수 있다.

DNS와 IP

이때 사용할 수 있도록 미리 도메인 네임과 IP 주소를 한 쌍으로 저장하고 있는 데이터베이스를 도메인 네임 시스템(DNS)라고 부르며, 이 변환 과정은 네트워크 내부에서 자동으로 수행된다.

DNS는 계층적 구조로 예를 들어, .com 도메인은 Verisign 이라는 회사에서 관리한다. Versign은 “google.com”과 같은 하위 도메인을 할당하고, 이러한 도메인의 소유자는 “mail.google.com”, “map.google.com”과 같은 하위 도메인을 만들 수 있다.

facebook.com, twitter.com 등과 같이 인기있는 웹 사이트를 가장하고 개인 정보를 가로채기 위한 범죄의 대상이 되기도 한다. 때문에 DNSSEC 라는 표준은 암호화로 DNS 보안을 강화하려고 한다.

도메인 네임의 관리

비영리 조직 ICANN(Internet Corporation for Assigned Names and Numbers)에서 관리하고 미국 상무부로부터 DNS에 권한을 부여받았다.

도메인 네임에는 두 가지 유형이 있는데, 첫 번째로 .com .edu .org .gov 와 같은 일반 최상위 도메인(gTLD)이다. 인터넷이 미국에서 시작되었기 때문에 이러한 도메인은 미국에서 가장 인기 있는 경향이 있다. 이러한 도메인에 대한 권한은 일반적으로 사설 조직에 위임된다.

두 번째로 국가 코드 최상위 도메인(ccTLD)인데 세계의 각 국가에는 고유한 2자리 코드가 있다. 예를 들어, 한국은 .kr 이다. 이러한 도메인은 각 국가의 당국에서 관리한다.

패킷(Packet)

인터넷을 통해 전송되는 정보의 기본 단위로 네트워크에서는 정보를 작은 조각으로 분할하여 보내는데 이러한 조각을 패킷이라고 한다.

어원은 Pack과 Bucket을 합친 말로, 우체국에서 화물을 적당한 양으로 나눠 행성지를 표시하는 꼬리표를 붙이는데, 이러한 방식을 데이터 통신에 접목시킨 것

정보를 분할하여 보내는 이유는 큰 데이터는 대역폭(신호를 전송할 수 있는 주파수 범위)을 너무 많이 차지하여 패킷의 흐름을 원활하게 하지 못한다. 때문에 패킷으로 분할하면 네트워크 용량을 효율적으로 사용할 수 있다.

패킷은 헤더로 정의되며, 헤더에는 패킷의 길이, 출처(Src)와 목적지(Dst) 그리고 수신자가 전송 중 패킷이 손상되었는지 감지하는데 도움이 되는 값을 포함하여 패킷이 목적지에 도달하는데 도움이 되는 정보가 포함되어 있다.

헤더의 주요 요소는 다음과 같다.

  • Version: 사용중인 IP 버전(IPv4 또는 IPv6)
  • TTL(Time to Live): 이 패킷이 네트워크에 남아있을 수 있는 시간으로 패킷을 처리할 때 이 카운터를 하나 이상 감소시킨다.
  • Protocol: 전송 계층 프로토콜(TCP 또는 UDP)
  • Header Checksum: 패킷이 손상되었는지 확인할 때 검증 계산에 기반이 되는 데이터
  • Src Address: 소스 주소는 출처 컴퓨터의 IP 주소, 전송 실패 또는 제어 메시지를 포함 네트워크 수준 오류가 전송되는 곳이기도 하다.
  • Dst Address: 대상 주소는 패킷이 전송되는 주소
  • Data: 데이터 부분이 전송 계층(TCP 또는 UDP)으로 전송

클라우드 컴퓨팅(Cloud computing)

인터넷상의 네트워크를 경유하여 사용자에게 컴퓨터 자원을 서비스의 형태로 제공하는 시스템을 의미한다.

즉, 사용자는 인터넷 상에 데이터를 저장해 놓고 언제 어디서나 필요할 때 저장된 정보를 사용하거나, 필요한 프로그램을 자신의 컴퓨터에 따로 설치하지 않고도 인터넷을 통해 이용할 수 있다.

클라우드 컴퓨팅에서 대부분의 작업은 전 세계에 분산되어 위치한 데이터 센터에서 수행되며, 사용자의 컴퓨터는 단순히 클라우드에 접속할 수 있는 최소한의 환경을 제공해 준다.

SaaS(Software as a Service)

인터넷을 경유하여 소프트웨어 패키지를 제공하는 서비스를 의미하며, 사용자는 응용 프로그램을 설치할 필요없이 자신의 컴퓨터에서 단순히 해당 응용 프로그램을 실행하여 이용할 수 있습니다.

SaaS는 네이버 클라우드, 드롭박스, 구글 드라이브 등이 있다.

PaaS(Platform as a Service)

인터넷을 경유하여 응용 프로그램 개발을 위한 플랫폼을 제공하는 서비스를 의미하며, 사용자는 가상화된 응용 프로그램 서버나 데이터베이스 등을 제공받아 자신의 응용 프로그램을 설치하여 운영할 수 있다.

PaaS는 구글 App 엔진, Windows Azure, 헤로쿠(Heroku) 등이 있다.

IaaS(Infrastracture as a Service)

IaaS 또는 HaaS(Hardware as a Service) 인터넷을 경유하여 하드웨어나 인프라스트럭쳐를 제공하는 서비스를 의미하며, 사용자는 서버 가상화나 공유 디스크 등을 제공받아 자신만의 시스템을 도입하고 구축할 수 있다.

IaaS는 AWS EC2 등이 있다.
클라우드 컴퓨팅 환경 종류

profile
백엔드 개발자의 기초 다지기

0개의 댓글