컴퓨터공학의 기초가 되는 cs지식을 되새기면서 이 후 있을 기술면접을 대비 하고자한다.
현대인들에게는 너무 친숙한 인터넷은 정확히 무엇이고, 어떤 구성과 작동원리가 있는지 알아보자
검색을 해보니 인터넷은 오랜 역사와 생각보다 복잡한 구성을 이루고 있다.
사전적의미로는 전 세계에 걸쳐 원거리 접속이나 파일 전송, 전자 메일 등의 데이터 통신 서비스를 받을 수 있는, 컴퓨터 네트워크의 시스템이라고 명시 되어있다.
즉, 데이터가 오가는 서비스를 돕는 컴퓨터 네트워크 시스템이라고 생각하면 될 것 같다.
인터넷(Internet)의 동작 원리를 알기전 TCP/IP를 이해가 선행되어야한다.
그 이유는 인터넷의 통신에는 TCP/IP 라는 통신 프로토콜이 사용된다.
(Transfer Control Protocol / Internet Protocol, TCP/IP)
TCP/IP는 컴퓨터와 컴퓨터간의 지역네트워크(LAN) 광역네트워크(WAN)에서 원할한 통신을 가능하도록 하기위한 통신규약으로 정의할 수 있다.
잠깐 컴퓨터 통신의 역사를 살펴보자
최초는 ARPANET(최초의 컴퓨터)로 시작이 되었으며, 미국방위통신청에서 컴퓨터간의 통신을 위해서 TCP/IP를 사용하도록 한것이 그 시초가 되었다고 한다.
컴퓨터간의 통신을 위해서 TCP/IP 선택한 이유는 TCP/IP의 개방성 있다. 즉 하드웨어, 운영체제, 접속매체에 관계없이 동작할수있다는 점 때문에 인터넷 통신을 위한 핵심으로 선택이 되었다.
그리고 이름에서도 TCP/IP의 2개의 프로토콜이 이루어져 있습니다. 그 이유는 IP기반에 TCP가 사용되서 이렇게 불리어진다. 쉽게 말해 IP 프로토콜위에 TCP 프로토콜이 놓이게된 것이다.
IP - 네트워크 상에서 컴퓨터는 고유한 주소가 있다. 컴퓨터의 주소는 인터넷에 접속할때 컴퓨터 각각에 부여받는다.
TCP - 클라이언트와 서버간의 데이터를 주고 받을수있는게 TCP 때문이다.
즉, 클라이언트와 서버간에 데이터를 신뢰성있게 전달하기 위해 만들어진 프로토콜이다. 그리고 TCP는 근거리 통신망(LAN), 원거리 통신망(WAN), 인트라넷, 인터넷 등 컴퓨터에서 실행되는 프로그램 간에 일련의 데이터를 안정적으로 순서대로 에러없이 데이터를 교환할 수 있게한다.
TCP의 자세한사항은 다음 포스트인 TCP & UDP 를 참고하면 될 것 같다.
간단하게 두개의 컴퓨터가 통신이 필요할때 저희의 컴퓨터와 다른 사람의 컴퓨터 물리적(케이블 선) 또는 무선(WiFi, Bluetooth)으로 연결이 되어야한다. 이러한 방식으로 여러대의 컴퓨터를 연결을 할 수 있다.
하지만 막대한 양의 컴퓨터를 연결하려면 문제가 생긴다.
이 문제를 해결하기 위해 해결방법 중 하나인 라우터가 나왔다. (아래의 그림 가운데 위치)
각 컴퓨터는 라우터라는 특수한 소형컴퓨터에 연결이 된다. 지금 위 사진처럼 컴퓨터와 컴퓨터간의 연결이 아닌 컴퓨터가 하나의 10개의 플러그가 있는 라우터에 10대의 컴퓨터 각 하나씩 가지고있는 케이블로만 연결이 된다.
라우터는 데이터를 원하는 컴퓨터한테 데이터를 잘 전달해주게 하는것이다.
예를 들어 컴퓨터 A가 컴퓨터 B에게 메시지를 보내려면 일단 메시지를 라우터로 보내야하며 라우터는 이 메시지를 B로 전달하고 그 외에 상관없는 컴퓨터에게는 보내지 않도록 하는것이다.
하지만 이 방법도 몇백 몇천대의 컴퓨터는 단일 라우터로 확장이 불가능합니다. 이 문제를 해결하기 위해 라우터끼리 연결해서 네트워크를 확장했다. (가능한 이유는 라우터를 기존의 컴퓨터와 마찬가지이기 때문에 수동연결이 가능하다)
네트워크의 네트워크를 구현하여 모든 컴퓨터를 하나의 통신망의 연결하는게 인터넷이라고 했다. 이 말처럼 이러한 네트워크가 우리가 인터넷이라고 부르는거에 가깝다. 하지만 먼곳에 있는 지역과는 케이블 연결이 불가능하다.
예를들어서 한국에 사는 친구랑 미국에사는 친구랑 데이터를 주고받기위해서 한국에서 미국까지 케이블을 연결하는건 쉬운 일이 아니다.
하지만 이미 전력 및 전화와 같이 집에 연결된 케이블이 있다. 그리고 전화 기반 시설은 세계 어느 곳과도 연결이 되어있으므로 네트워크는 구성이 되어있던 것이다. 따라서 우리의 네트워크를 전화 시설과 연결하기 위해 모뎀이라는 특별한 장비가 필요하다. 모뎀은 우리 네트워크의 정보를 전화 시설에서 처리 할 수 있는 정보로 바꾸면 그 반대의 경우도 마찬가지입니다.
이젠 우리의 네트워크는 전화망에 연결이되어 누가 어디에있든 데이터를 주고 받을 수 있다.
하지만 그 데이터를 주고 받기 위해서는 네트워크를 인터넷 서비스 제공업체 ISP에 연결한다. ISP는 모두 함께 연결되는 몇몇 특수한 라우터를 관리하고 다른 ISP의 라우터에도 액세스를 할 수 있는 회사다.
ISP란 예를들어 한국에서는 LG U+, KT, SKT등이 있다.
따라서 우리의 네트워크의 메시지는 ISP 네트워크의 네트워크를 통해 대상 네트워크로 전달된다. 인터넷은 이러한 전체 네트워크 인프라로 구성된다. ISP는 중간에서 데이터를 전달을 해 주는 역할이라고 생각하면 된다.
순서를 정리하면
1. 컴퓨터와 컴퓨터를 케이블 또는 무선 연결, 개수가 많아지면 복잡
(해결책 : 라우터 등장)
3. 단일 라우터로만으로도 몇백, 몇천대 연결은 불가능
(해결책 : 라우터와 라우터를 연결)
4. 거리가 먼 지역은 케이블과 무선으로 연결이 불가능
(해결책: 내트워크의 정보를 전화 시설에 처리 할 수있는 모뎀이 나옴)
5. 네트워크에서 도달하려는 네트워크로 데이터를 보내기위해 ISP에 연결
이 두가지는 사용 목적의 차이가 존재한다.
인터넷은 다른 컴퓨터가 네트워크를 함께 연결하며, 사용자 누구나 접근할 수 있도록하는 것이고
인트라넷은 특정 회사나 단체에서 개인이 소유한 인터넷의 일부이다.
이는 로그인 세부 사항을 통해 조직 회원만 접근 가능하도록 한다. 그 덕분에 더 안전하고 은밀한 체계가 형성된다.
외부망은 쉽게 말해 ‘인터넷에 연결된 망’이다. 국어사전은 “일정한 조직을 넘어 서로 컴퓨터로 정보를 주고받을 수 있는 체계”라고 정의한다. 흔히 쓰는 △트위터 △페이스북 △카카오톡 같은 사회관계망서비스(SNS)는 물론, 요즘 유행하는 ‘서비스로서의 인프라(IaaS)’, ‘서비스로서의 소프트웨어(SaaS)’, ‘서비스로서의 플랫폼(PaaS)’ 등도 모두 외부망을 기반으로 한다. 즉, 외부망은 인터넷과 사실상 동의어다.
내부망은 외부망과 연결되지 않고 특정 단체, 조직원만 접근 가능한 사설망이다. 정부, 군대, 회사에서 활용되는 근거리 통신망(LAN) ‘인트라넷(Intranet)’이 대표적이다. 국가 차원의 인트라넷도 있다. 북한판 인터넷 ‘광명망’이다. 클로즈드 플랫폼(Closed platform) 방식을 쓰는 광명망은 북한 주민 등 허가된 사람만 접속할 수 있다. 외부인은 접속할 수 없다
DMZ는 내부망과 외부망 사이에 설정된다. DMZ 앞뒤로는 방화벽이 설치된다. ‘외부망 → 방화벽 → DMZ → 방화벽 → 내부망’ 순이다. 외부망과 맞닿은 첫 번째 방화벽은 ‘외부 → DMZ’로의 트래픽만 허용되고, 내부망과 맞닿은 두 번째 방화벽은 ‘DMZ ← 내부’로의 트래픽만 허용된다. DMZ를 통해 내부 → 외부 통신이 이뤄지는 것이다. 보통 방화벽은 서로 다른 종류를 쓴다. 외부 침입이 발생했을 때 해커의 공격을 지연시키기 위해서다. 같은 종류의 방화벽을 쓴다면, 하나의 방화벽이 무너졌을 때 다른 방화벽까지 쉽게 뚫릴 수 있다.
망연계솔루션(SecureGate)는 분리된 망 환경의 서버 간 실시간 데이터 연계와 사용자PC간 파일 전송 기능을 제공하는 솔루션으로써, 분리된 망 환경의 높은 보안성을 유지하면서 업무 연속성 및 편의성을 제공한다고 한다,