인터넷이 작동하는 방법

Kim Jin Seong·2022년 2월 10일
1

Django

목록 보기
2/10
post-thumbnail

본 포스팅은 Back-end 개발 입문과 홈페이지 제작 기술 기반 마련을 위한 공부자료입니다.
Django 공식 문서와 MDN web docs를 참고자료로 작성됐습니다.

https://www.djangoproject.com/
https://developer.mozilla.org/ko/docs/Learn/Server-side/Django


목표

웹 기술 인프라의 기초와 인터넷과 웹의 차이점 숙지


인터넷

인터넷 프로토콜 제품군을 사용하여 네트워크와 장치 간에 통신하는 상호 연결된 컴퓨터 네트워크의 글로벌 시스템

-Wikipedia-

인터넷은 웹의 핵심적인 기술로 컴퓨터들이 서로 통신 가능한 거대한 네트워크를 뜻한다.

또한 인터넷은 모든 컴퓨터를 연결하고 어떤 일이 있어도 연결 상태를 유지할 수 있는 방법을 찾는 것이다.


장치와 데이터 센터의 데이터 교환

일단 인터넷을 이해하기 위해 우리가 동영상 컨텐츠를 시청하기 위해 유튜브에 접속한다고 가정해보자.

  1. 브라우저에 유튜브 URL을 입력하고 접속한다.
  2. 브라우저에서 받아온 컨텐츠를 확인한다.
  3. 마음에 드는 동영상을 선택해 동영상을 시청한다.

위의 절차를 인터넷 서비스의 입장에서 다시 정리해보면 다음과 같다.

  1. 사용자가 브라우저에 유튜브 URL 입력
  2. 통신을 위해 브라우저에서 URL, 즉 Domain Name에 맞는 서버의 IP를 얻기 위해 DNS 서버에 요청
  3. 얻은 IP를 통해 유튜브 서버( 구글 데이터 센터 )에 메인 페이지 정보를 요청
  4. 지하에 깔린 광섬유 케이블을 통해 데이터를 디지털 형식( 광 펄스 형태 )으로 전달
    4-1. 이 과정에서 데이터 전송의 효율을 위해 데이터를 패킷이라는 작은 덩어리로 잘라내어 전송한다.
  5. 받은 패킷을 조립해 만든 정보를 통해 메인 페이지를 확인한다.
  6. 같은 방식으로 유튜브 동영상을 선택하고 요청해 전송받아 시청한다.

이는 사용자의 컴퓨터와 서버 컴퓨터의 통신으로 볼 수 있는데, 과연 바다 건너에 있는 유튜브 서버와 우리의 컴퓨터가 어떻게 정보 교환을 할 수 있을까?

이를 알아보기 위해 네트워크와 컴퓨터의 통신 방법에 대해 알아보자.


네트워크

두 개의 컴퓨터가 통신이 필요할 때, 서로 다른 컴퓨터는 물리적( 이더넷 케이블 ) 또는 무선( WiFi )으로 연결되어 있어야 한다.

하지만 네트워크는 단 두대의 컴퓨터의 연결로 제한되지 않는다.

예를 들어 10대의 컴퓨터를 연결하려는 경우를 생각해보자.

이 경우 각 컴퓨터끼리 직접 연결이 되어 있어야 하기 때문에 45개의 케이블이 필요하게 되고 케이블 설치와 유지보수에 대한 상당한 비용이 발생하는데, 이런 비효율적이고 복잡한 네트워크를 효율적으로 관리하기 위한 장치가 라우터이다.


라우터

라우터는 서로 다른 네트워크 간에 중계 역할을 해주는 소형 컴퓨터 장치로 주어진 컴퓨터 장치에서 보낸 메세지가 목표 컴퓨터에 도착하도록 한다.

즉 컴퓨터끼리 직접 연결되어 있지 않더라도 라우터의 중계를 통해 통신이 가능하게끔 해주는 장치인데,

앞서 말한 10대의 컴퓨터를 재구성하게 된다면 1대의 라우터와 컴퓨터와 라우터를 연결하기 위한 10개의 케이블만 필요하게 되어 네트워크 관리를 훨씬 원활하게 해주게 되는 것이다.

그렇다면 수백, 수천, 수십억 대의 컴퓨터를 연결하는 것은 어떨까?


네트워크 속의 네트워크

앞에서 라우터를 소형 컴퓨터라고 표현했는데, 여기가 포인트이다.

라우터도 결국 컴퓨터이고 그렇기 때문에 라우터 끼리의 연결도 당연히 가능하다.

이를 이용해 컴퓨터를 라우터에 연결하고, 라우터와 라우터를 연결하고 이를 무한히 확장 가능하다.

이러한 네트워크는 모든 컴퓨터를 연결하고 컴퓨터들이 서로 통신 가능한 네트워크라는 의미에서 인터넷의 의미와 가장 가깝다고 볼 수 있다.

하지만 이 네트워크는 특정 지역에서의 목적을 가지고 구축된 제한된 네트워크이다.

제일 처음 말했던 이런 가까운 네트워크가 아니라 바다 건너에 있는 컴퓨터와는 어떻게 통신하는 것인가에 대한 궁금증은 해소되지 않았다.

이를 해결하고 집과 다른지역, 아주 먼 곳 등 케이블을 연결할 수 없는 지역과의 네트워크를 구성하기 위해 우리는 세계 어느 곳과도 연결되어 있는 시설에 연결할 필요가 있다.

이미 구축되어 있는 전 세계가 연결된 전화기 기반의 시설을 이용하게 되며 네트워크를 전화 시설에 연결하고 도달하려는 네트워크로 메세지를 보내게 된다.


ISP( Internet Service Provider )

서비스 제공 업체라는 말로 앞서 말한 전 세계의 모든 네트워크를 연결하기 위해 몇몇 특수한 라우터를 관리하고 다른 ISP의 라우터에도 액세스 할 수 있는 회사이다.

대표적인 기업으로 AT&T, Orange, Verizon, Google 등이 있으며 인터넷은 ISP가 관리하는 전체 네트워크 인프라로 구성된다.

이들이 전 세계를 연결하는 대표적인 방식은 다음과 같다.


위성

일단 전파를 위성으로 보내고 그 신호에 대한 전파를 다시 목적지로 보내 연결하는 방법이 있다.

하지만 신호의 장거리 이동에 의한 데이터 전달에 상당한 지연과 손실이 발생할 가능성이 높고 정상적으로 전달될 가능성이 낮기 때문에 잘 사용되지 않는 방식이다.


광섬유 케이블

대부분의 인터넷 정보 전달이 이루어지는 방식으로 전 세계의 땅 밑에 설치된 광섬유 케이블을 통해 디지털 형식( 광 펄스 형태 )으로 전달되며 때때로 목적지를 향하기 위해 수천 마일을 이동해야 하기도 한다.

이동하는 동안 구릉지나 심해와 같은 험한 지형을 거치기도 하며 광케이블은 인터넷의 중추가 된다.


중간 정리

지금까지 내용을 정리해보면 컴퓨터와 컴퓨터의 통신을 위해 라우터를 통한 네트워크를 구성하게 되고

수백, 수천, 수억 개의 컴퓨터를 연결하기 위해 라우터 끼리 연결한 대형 지역 네트워크를 구성하게 된다.

또한 이 지역 네트워크를 아주 먼 지역에 있는 지역 네트워크와 연결하기 위한 ISP가 제공하는 전체 네트워크 인프라를 이용해 전 세계를 연결하게 되며 이렇게 모든 컴퓨터가 연결되어 서로 통신 가능한 거대한 네트워크를 곧 인터넷이라고 부른다.

지금까지 인터넷이 무엇인지를 알아보았는데 더 자세히 들어가서 데이터의 흐름이 어떻게 시작되고 정보가 어떤 식으로 전달되는지를 알아보자.


IP 주소

일단 택배를 보낼 때 보내는 사람의 주소와 받는 사람의 주소를 적어 주소지를 특정하듯이 인터넷 세계에서도 서버, 컴퓨터, 휴대전화 등 인터넷에 연결된 모든 장치는 IP 주소라고 불리는 일련의 번호로 고유하게 식별된다.

여러 자리의 숫자의 나열로 구성되며 모든 정보가 정확하게 전달되도록 하는 배송 주소 역할을 한다.

ISP가 장치의 IP 주소를 결정하며, 사용자 컴퓨터에도 IP 주소가 있고 유튜브 데이터 센터의 서버에도 IP 주소가 있기 때문에 사용자는 데이터센터에서 데이터를 전달 받아 동영상을 시청할 수 있게 되는 것이다.


Domain Name

다시 웹에서 유튜브를 접속하는 웹 부분으로 돌아오면 결국 우리는 유튜브의 IP 주소를 통해 구글 데이터 센터에 정보를 요청하게 되는 것이다.

하지만 사람은 IP 주소와 같이 긴 숫자의 나열을 기억하기는 매우 어렵다.

그렇기 때문에 보다 기억하기 쉽도록 IP주소에 해당하는 다른 이름인 도메인 이름을 사용해 IP 주소를 가져와 웹에 접근하게 된다.

구글의 IP 주소: 142.250.204.78
구글의 도메인 이름: google.com


DNS Server

앞서 말했듯이 복잡한 IP 주소 대신 도메인 이름을 사용해 IP 주소를 얻고 서버에 접근한다는 것을 알았다.

그렇다면 이 도메인을 통해 어떻게 IP 주소를 가져오는 걸까?

브라우저가 도메인 이름을 전달받고 이를 어떤 시스템에 요청해 도메인 이름과 맵핑된 IP 주소를 가져와 정보를 얻게끔 설계되어 있는데 이 거대한 전화번호부와 같은 역할을 하는 시스템이 DNS Server이다.


인터넷과 웹

여기까지 했다면 인터넷과 웹이 어떤 식으로 작동하게 되는지 흐름 정도는 파악할 수 있을 것이다.

그럼 인터넷과 웹이 같은 것을 의미하냐고 물어본다면 그건 그렇지 않다.

앞에서 보았듯이 인터넷은 수십억 대의 컴퓨터를 모두 연결하는 기술 인프라이고 이러한 컴퓨터들 중에 일부는 '웹 서버'로서 웹 브라우저가 이해할 수 있는 서비스를 제공하는 것이다.

결론적으로 우리는 인터넷은 웹 뿐만 아니라 인터넷 위에 구축된 다른 서비스( 이메일, IRC 등 )도 있음을 인지하고 있어야 한다.


프로토콜

데이터 패킷의 복잡한 흐름을 관리하기 위해 사용되는 규칙

데이터 패킷 변환, 각 패킷에 대한 발신처 및 수신처 주소 첨부, 라우터의 규칙 등에 대한 규칙들을 설정한다.

응용 프로그램 마다 사용되는 프로토콜이 다르다

  • 데이터 전송
    -> TCP / IP
  • 웹 접속
    ->http / https
  • 실시간 영상 스트리밍 & 전화
    -> RTP

인터넷 관리 조직 ICANN

인터넷은 세계적인 네트워크이기 때문에 IP주소 부여, 도메인 이름 등록 등과 같은 것들을 관리할 조직의 존재가 중요하다.

이것들을 관리하는 조직이 바로 ICANN이다.

셀룰러 및 유선 통신기술과 비교했을 때 인터넷의 전송 기술의 놀라운 점은 데이터 전송의 효율이다.

구글 데이터 센터로부터 받아 시청하게 되는 동영상의 경우 0과 1로된 데이터의 집합이다.

인터넷의 데이터 전송을 효율적으로 만드는 것은 이러한 데이터를 패킷이라는 작은 덩어리로 잘라내어 전송하는 방법이다.

패킷

이러한 0과 1의 흐름이 서버에 의해 서로 다른 패킷으로 구분되어 6비트로 구성된다고 가정해본다.

각 패킷은 영상의 비트, 서버 및 장치의 IP 주소, 시퀀스 번호로 구성된다.

이 정보를 활용해 패킷이 장치를 향해 라우팅 된다.

모든 패킷이 라우팅의 동일한 경로로 구성될 필요는 없으며, 각 패킷은 독립적으로 전송 시점의 가장 최상의 경로를 사용한다.

장치에 패킷이 전달되면 패킷은 시퀀스 번호에 따라 다시 데이터로 조립된다.

패킷이 장치에 전달되지 않으면 손실된 패킷이 다시 전달되게끔 하는 확인 메세지가 장치에 뜨게 된다.


결론

자 이렇게 웹 브라우저에서 유튜브에 접속하는 과정을 통해 인터넷과 웹 기술 인프라의 기초를 알아보게 되었다.

이제 최종 목표인 나만의 미니 블로그 만들기에 한 걸음 더 다가갈 수 있게 되었고 이 기반지식을 통해 다음에는 웹의 동작 방식을 알아볼 것이다.


Reference

https://youtu.be/o5yBl59wRbY
https://developer.mozilla.org/ko/docs/Learn/Common_questions/How_does_the_Internet_work

profile
Data Study

2개의 댓글

comment-user-thumbnail
2022년 2월 10일

앞으로의 글들이 기대가 되네용 ㅎㅎ

1개의 답글