본문 바로가기
IT 기술

[IT 기술] 인터넷의 작동원리

by 개발 까마귀 2021. 1. 10.
반응형

인터넷의 작동원리
안녕하세요. 개발자 개발 까마귀입니다.
오늘 알려드릴거는 인터넷의 작동원리에 대해서 알려드리겠습니다.

1. 인터넷이란?

여러분들이 편하게 쓰는 인터넷은 사실 오랜 역사와 생각보다 복잡하게 구성이 되어있습니다.
일단 인터넷을 알기 전에 우리는 TCP/IP가 먼지에 대해서 알아야 합니다.

TCP/IP란?

TCP/IP가 나타난 이유는 먼저 컴퓨터간의 통신을 위해서입니다.
TCP/IP는 컴퓨터와 컴퓨터간의 지역네트워크(LAN) 광역네트워크(WAN)에서 원할한 통신을 가능하도록 하기위한 통신규약으로 정의할 수 있습니다. 최초는 ARPANET(최초의 컴퓨터)로 시작이 되었으며 미국방위통신청에서 컴퓨터간의 통신을 위해서 TCP/IP를 사용하도록 한것이 그 시초가 되었습니다.

기본적인 역사는 이렇습니다. 자 이젠 왜 컴퓨터간의 통신을 위해서 TCP/IP 선택한 이유는 TCP/IP의 개방성에 그 정답이있습니다. 즉 하드웨어, 운영체제, 접속매체에 관계없이 동작할수있다는 점 때문에 인터넷 통신을 위한 핵심으로 선택이 되었습니다. 그리고 이름에서도 TCP/IP의 2개의 프로토콜이 이루어져 있습니다. 그 이유는 IP기반에 TCP가 사용되서 이렇게 불리어집니다. 쉽게 말해 IP 프로토콜위에 TCP 프로토콜이 놓이게된겁니다.

IP - 네트워크 상에서 컴퓨터는 고유한 주소가 있습니다. 컴퓨터의 주소는 인터넷에 접속할때 컴퓨터 각각에 부여받습니다. 집 주소나 전화 번호 처럼 말이죠, 이 주소는 총 4바이트로 이루어져있습니다.
예를 들어서 192.168.2.1 이런식으로요 만약 내 컴퓨터의 IP주소가 궁금하다면 윈도우라면 cmd에서 ipconfig 유닉스 계열이면 ifconfig로 치면 주소가 나옵니다.

TCP - 저번 글에 클라이언트와 서버 이야기 나왔죠? 그렇게 데이터를 주고 받을수있는게 TCP 때문이죠 즉 클라이언트와 서버간에 데이터를 신뢰성있게 전달하기 위해 만들어진 프로토콜입니다. 그리고 TCP는 근거리 통신망(LAN), 원거리 통신망(WAN), 인트라넷, 인터넷 등 컴퓨터에서 실행되는 프로그램 간에 일련의 데이터를 안정적으로 순서대로 에러없이 데이터를 교환할 수 있게합니다.

기본적인 IP와 TCP에 대한 정보입니다. 종류는 많지만 일단 인터넷을 알기 위해서는 정도만 알면됩니다.

본격적으로 인터넷이란 각 컴퓨터들간의 TCP/IP 통신 프로토콜을 이용해서 서로 데이터를 주고 받도록한 네트워크를 말합니다. 또는 네트워크의 네트워크를 구현하여 모든 컴퓨터를 하나의 통신망 안에 연결하고자 하는 의도엣 인터넷이라고도 합니다.

2. 네트워크

두개의 컴퓨터간의 통신


간단하게 두개의 컴퓨터가 통신이 필요할때 저희의 컴퓨터와 다른 사람의 컴퓨터 물리적(케이블 선) 또는 무선(WiFi, Bluetooth)으로 연결이 되어야합니다. 이러한 방식으로 여러대의 컴퓨터를 연결을 할수는있습니다.
예를 들어 10대 정도의 컴퓨터를 연결하려면 어떡할까요?

여러대의 네트워크


네 보시는거와 같이 끔찍합니다. 이렇게 연결이 되어있으면 몇십대가 아닌 몇천대, 몇만대라면? 관리하기도 힘들뿐더러 가독성도 떨어집니다.

라우터를 이용한 네트워크


그래서 이문제를 해결하기 위해 라우터라는게 나왔습니다. 자 라우터 덕분에 훨씬 깔금해졌네요. 각 컴퓨터는 라우터라는 특수한 소형컴퓨터에 연결이 됩니다. 지금 위 사진처럼 컴퓨터와 컴퓨터간의 연결이 아닌 컴퓨터가 하나의 10개의 플러그가 있는 라우터에 10대의 컴퓨터 각 하나씩 가지고있는 케이블로만 연결이 됩니다. 하지만 이 라우터는 생각보다 간단한 작업을 합니다. 그냥 데이터를 원하는 컴퓨터한테 데이터를 잘 전달해주게 하는겁니다. 컴퓨터 A가 컴퓨터 B에게 메시지를 보내려면 일단 메시지를 라우터로 보내야하며 라우터는 이 메시지를 B로 전달하고 그 외에 상관없는 컴퓨터에게는 보내지 않도록 하는겁니다. 쉽죠? 하지만 이방법도 몇백 몇천대의 컴퓨터는 단일 라우터로 확장이 불가능합니다. 근데 처음에 저희가 컴퓨터와 컴퓨터는 연결할 수 있었잖아요? 라우터도 컴퓨터이기 때문에 라우터끼리 연결해서 네트워크를 확장할 수 있습니다.

라우터와 라우터연결을 통한 네트워크의 네트워크


자 제가 인터넷이라 뭐라고했죠? 네트워크의 네트워크를 구현하여 모든 컴퓨터를 하나의 통신망의 연결하는게 인터넷이라고 했죠? 그 말처럼 이러한 네트워크가 우리가 인터넷이라고 부르는거에 가깝지만 제일 중요한게 있습니다. 아주 먼곳에 있는 지역과는 케이블 연결이 불가능합니다. 예를들어서 서울에사는 친구랑 인천에사는 친구랑 데이터를 주고받기위해서 서울에서 인천까지 케이블을 연결하는건 말이 안되는거니깐요. 하지만 이문제도 자세히 살펴보면 자연스럽게 해결이 됐습니다. 이미 전력 및 전화와 같이 집에 연결된 케이블이 있습니다. 그리고 전화 기반 시설은 세계 어느 곳과도 연결이 되어있으므로 네트워크는 구성이 되어있던거죠 저희가 원하는 네트워크로요. 따라서 우리의 네트워크를 전화 시설과 연결하기 위해 모뎀이라는 특별한 장비가 필요합니다. 모뎀은 우리 네트워크의 정보를 전화 시설에서 처리 할 수 있는 정보로 바꾸면 그 반대의 경우도 마찬가지입니다.

모뎀을 이용한 네트워크 연결


이젠 우리의 네트워크는 전화망에 연결이되어 누가 어디에있든 데이터를 주고 받을 수 있습니다. 하지만 그 데이터를 주고 받기 위헤서는 네트워크를 인터넷 서비스 제공업체 ISP에 연결합니다. ISP는 모두 함께 연결되는 몇몇 특수한 라우터를 관리하고 다른 ISP의 라우터에도 액세스를 할 수 있는 회사입니다.
*ISP란 예를들어 한국에서는 LG U+, KT, SKT등이 있습니다.*
따라서 우리의 네트워크의 메시지는 ISP 네트워크의 네트워크를 통해 대상 네트워크로 전달됩니다. 인터넷은 이러한 전체 네트워크 인프라로 구성됩니다. 그냥 ISP는 중간에서 데이터를 전달을 해 주는 역할입니다.


전체 네트워크 인프라


생각보다 인터넷 네트워크 인프라가 많이 복잡하죠? 근데 더 깊숙이 들어가면 더 어렵습니다. IP가 뭔지 더 깊숙이 들어가야하고 TCP도 마찬가지입니다. 하지만 그것들은 나중에 알아도 크게 문제는 없습니다.

순서를 매기자면
1. 컴퓨터와 컴퓨터를 케이블 또는 무선 연결
2. 개수가 많아지면 복잡하여 라우터 등장
3. 단일 라우터로만으로도 몇백, 몇천대 연결은 불가능하여 라우터와 라우터를 연결
4. 거리가 먼 지역은 케이블과 무선으로 연결이 불가능
그래서 내트워크의 정보를 전화 시설에 처리 할 수있는 모뎀이 나옴
5. 네트워크에서 도달하려는 네트워크로 데이터를 보내기위해 ISP에 연결

사실 이런거를 몰라도 개발은 할 수 있습니다. 그냥 흐지부지한 개발자이지만 말이죠 저희의 목표는 전체의 틀과 그 틀의 원리까지 아는 개발자가 목표입니다. 저도 열심히 할테니 앞으로도 계속해서 힘내죠

다음은 저희가 많이 쓰는 브라우저와 동작원리에 대해서 알아보겠습니다.

감사합니다.

참고자료
developer.mozilla.org/ko/docs/Learn/Common_questions/How_does_the_Internet_work
www.joinc.co.kr/w/Site/Network_Programing/Documents/IntroTCPIP

반응형

댓글