참고: 모두의 네트워크 - 키즈구치 카츠야 저
위 책을 읽으며 공부한 내용을 정리한 포스트입니다.
네트워크에는 컴퓨터 분야에서만 쓰는 특별한 말이 아니라 다양한 곳에서 일반적으로 쓰이는 말이다. 하지만, 컴퓨터 네트워크를 간단하게 네트워크라고 부른다.
컴퓨터가 두 대 이상 연결되어 있으면 컴퓨터 네트워크라고 할 수 있다.
네트워크를 사용해서 컴퓨터 간의 데이터 전송, 웹사이트 열람, 메일 송신 및 수신과 같은 일을 할 수 있다.
네트워크 종류 중에는 인터넷이 있는데,
인터넷은 전 세계의 큰 네트워크부터 작은 네트워크까지를 연결하는 거대한 네트워크를 말한다.
이렇게 전 세계가 네트워크로 연결되어 있기 때문에 인터넷으로 해외 웹 사이트도 볼 수 있는 것이다.
네트워크나 인터넷에서 데이터를 주고 받으려면 규칙이 있어야 한다.
이 규칙에는 패킷(packet)을 사용한다.
패킷은 컴퓨터 간의 데이터를 주고 받을 때 네트워크를 통해 전송되는 데이터의 작은 조각을 말한다.
큰 데이터가 있더라도 작게 나누어서 보내는 게 규칙이다.
cf) 대역폭(bandwidth): 네트워크에서 이용 가능한 최대 전송 속도로 정보를 전송할 수 있는 단위 시간당 전송량을 말함.
예를 들면, 용량이 큰 사진 데이터의 경우 패킷으로 나눠 보내야 한다.
그런데, 목적지에 패킷으로 쪼개져서 도착한 데이터는 원래 사진대로 되돌리는 작업을 필요로 한다.
목적지로 보내진 패킷이 전송된 순서대로 도착하지 않을 수도 있고,
패킷이 전송될 때 네트워크가 지연되어서 늦게 도착하거나 패킷이 누락되기도 한다.
따라서 송신 측에서 수신 측으로 패킷을 보낼 때에는 각 패킷에 순서대로 번호를 붙여서 보낸다. 이렇게 하면 번호에 맞춰 정렬함으로써 늦게 도착한 패킷도 원래의 위치로 돌아갈 수 있다.
디지털 데이터란?: 모든 컴퓨터는 숫자 0과 1만을 다루는데, 그 0과 1의 집합을 디지털 데이터라고 한다.
우리가 컴퓨터를 통해 보는 사진 데이터도 수많은 0과 1로 이루어진 디지털 데이터다. 이처럼, 컴퓨터는 0과 1밖에 이해할 수 없지만, 0과 1이 많이 모이면 사진도 나타낼 수 있다.
이 0과 1의 정보를 나타내는 최소 단위를 비트(bit)라고 한다.
이 비트를 여덟 개 모은 단위를 바이트(byte)라고 한다.
1 바이트 = 8 비트
컴퓨터는 기본적으로 바이트 단위로 데이터를 읽고 쓰는 작업을 한다. 따라서 디지털 데이터를 만들 때는 8비트를 1바이트로 다루는 것이 좋다.
이렇게 숫자만을 이해하는 컴퓨터가 키보드를 통해 문자를 입력할 수 있는 이유는 숫자와 문자의 대응표를 미리 만들어 두었기 때문이다.
이 대응표를 문자 코드(character code)라고 한다.
ASCII 코드는 알파벳, 기호, 숫자 등을 다룰 수 있는 기본적인 문자 코드다.
사용자가 키보드에서 문자 키를 누르면 컴퓨터로 해당하는 문자 코드가 전달되고, 컴퓨터는 그 키에 대응하는 문자코드를 확인하고 해당하는 문자를 화면에 표시한다.
문자도 사진과 마찬가지로, 상대방에게 이 숫자를 패킷으로 나눠서 보내면 받은 쪽에서 패킷을 원래 값으로 되돌릴 수 있다. 따라서 문자 데이터도 패킷으로 나눠서 네트워크에 전송하면 된다.
네트워크는 접속할 수 있는 범위에 따라 크게 두 종류로 나눌 수 있다.
랜(Local Area Network; LAN): 근거리 통신망
가정이나 빌딩 안에 있는 사무실 같이 지리적으로 제한된 곳에서 컴퓨터와 프린터를 연결할 수 있는 네트워크
컴퓨터 두 대나 세 대라도 건물 안에서 네트워크로 연결되어 있으면 랜이라고 할 수 있다.
왠(Wide Area Network; WAN): 광역 통신망
지리적으로 넓은 범위에 구축된 네트워크
인터넷 서비스 제공자(Internet Serive Provider; ISP)가 제공하는 서비스를 사용해서 구축된 네트워크를 말한다.
왠은 랜과 랜을 연결하는 것으로 생각해도 된다. 인터넷 서비스 제공자가 제공하는 서비스를 사용해서 서울과 부산과 같이 멀리 떨어져 있는 사무실 사이에도 네트워크를 구축할 수 있다.
인터넷 서비스 제공자는 인터넷 상용 서비스 사업을 하고 있는 KT, U+, SK브로드밴드와 같은 사업자를 말한다.
랜과 왠의 특징 비교
랜 | 왠 | |
---|---|---|
범위 | 좁다(건물이나 특정 지역) | 넓다(랜과 랜을 연결) |
속도 | 빠르다 | 느리다 |
오류 | 적다 | 많다 |
랜은 연결하는 거리가 짧은 만큼 신호가 약해지거나 오류가 발생할 확률도 매우 낮다.
반면에 왠은 멀리 떨어져 있는 랜과 연결되어 있어서 신호가 약해지거나 오류가 발생할 확률이 더 높아진다.
또한 랜과 왠은 속도에서도 차이가 난다. 거리가 멀어지는 만큼 아무래도 속도가 떨어진다.
가정에서 구성하는 네트워크는 랜(LAN)이다.
인터넷을 사용하려면 먼저 인터넷 서비스 제공자(ISP)와 인터넷 회선을 결정해야 한다. (지금은 광랜을 사용하는 사람이 많다)
또한, 인터넷 서비스 제공자와 네트워크를 연결하기 위해 인터넷 공유기가 필요하다
인터넷 공유기(broadband router)
가정이나 소규모 기업에서 인터넷에 접속할 때 쓰인다. 가정용으로 만든 라우터라고 생각하면 된다.
최근에는 라우터의 기능뿐만 아니라 허브, 스위칭 허브, 방화벽과 같은 다양한 기능도 제공한다.
랜에서는 인터넷 공유기를 중심으로 내부 인터넷망(사설망)을 구성하고, 다양한 기기를 연결할 수 있다.
연결 방식은 랜 케이블 필요 여부에 따라서 크게 유선과 무선 연결로 나눈다. 유선 랜과 무선 랜이라고 한다.
소규모 회사(소호 기업)에서의 네트워크 구성
소호(SOHO) 기업
소호는 Small Office/Home Office의 약어로, 소호 기업은 소규모 회사를 뜻한다.
회사에서의 랜 구성에는 가정에서와 다르게, DMZ라는 네트워크 영역이 있다.
DMZ: Demilitarized Zone(비무장 지대)
네트워크 구성 중에서 일반적으로 인터넷인 외부 네트워크와 내부 네트워크 사이에 위치한 중간 지대를 말한다.
네트워크의 보안 영역으로 외부 공격자가 내부 네트워크에 침투하는 것을 막는 역할을 한다.
DMZ는 외부에 공개하기 위한 네트워크라고 이해할 수 있다.
DMZ는 공개 서버로, 주로 웹 서버, 메일 서버, DNS 서버를 공개한다.
웹 사이트를 불특정 다수의 외부 사용자에게 공개하려면 웹 서버를 외부에 공개하고, 외부 사용자와 메일을 주고 받으려면 메일 서버를 공개하고, 외부에서 도메인 이름을 사용하여 서버에 접속하려면 DNS 서버를 외부에 공개하면 된다.
이 외에도 회사에는 내부망 용도로 사용하는 여러 서버가 있다. 이처럼 회사에서 구성하는 랜에는 다양한 서버가 사용되고 있다.
서버(server):
컴퓨터 네트워크에서 다른 컴퓨터에 서비스를 제공하기 위한 컴퓨터 또는 프로그램이다.
반대로 서버에서 보내주는 정보 서비스를 받는 측 또는 요구하는 측의 컴퓨터 또는 프로그램은 클라이언트(client)라고 한다.
회사에서는 서버를 운영하기 위해 서버를 사내에 설치하거나 데이터 센터에 두거나 클라우드(cloud)에 둘 수 있다.
데이터 센터
대량의 데이터를 보관하기 위해 데이터 센터 서버나 네트워크 기기를 설치한 전용 시설
클라우드
인터넷을 통해 소프트웨어나 하드웨어 등의 컴퓨팅 서비스를 제공하는 것으로, 인터넷에 접속하기만 하면 언제 어디서든 이용할 수 있다.
사내 또는 데이터 센터에 서버를 두고 운영하는 것을 온프레미스(on-premise)라고 한다.
온프레미스는 클라우드와 비교할 때 자주 사용하는 용어다.
각 서버나 컴퓨터는 스위치나 무선 랜 기능을 사용해서 사내 랜에 접속한다.
참고:
김지성 님의 블로그
온프레미스는 클라우드와 반대로, 모든 전산에 필요한 장비를 구입하여 직접 설치하는 것을 의미한다. 그림에서 Packaged Software에 해당한다.
IaaS는 서버를 빌려쓴다는 개념이다.
아마존 같은 회사에서 Iaas 개념으로 빌려주는 서버는 속도도 빠르고 필요한 만큼 줄였다 늘렸다 하기가 편하다.
IaaS의 경우 고객은 OS와 어플리케이션을 직접 관리해야 한다.
장점:
단점:
IaaS는 가상 서버 하위의 레벨에 대해서 고려할 필요가 없는 사용자가 쓰기에 적합한 모델이다.
예시: AWS의 EC2
파스(PaaS)는 서버를 빌려주지만 정해진 규칙에 맞게 소프트웨어를 설계해야 한다는 것을 의미한다.
개발자가 응용 프로그램을 작성할 수 있도록 플랫폼 및 환경을 제공하는 모델이다.
사용자는 OS, 서버 하드웨어, 네트워크 등을 고려할 필요가 없다.
사용자는 어플리케이션 자체에만 집중할 수가 있다. 즉, 개발자가 빠르게 어플리케이션을 개발하고 서비스를 가능하게 할 수 있다.
IaaS가 가상머신(VM)을 제공하는 것이라면, PaaS는 node.js
, Java
와 같은 런타임을 미리 깔아놓고 거기에 소스코드를 넣어서 돌리는 구조다.
개발자는 소스코드만 적고, 컴파일은 클라우드에서 해서 결과만 가져오는 것이다.
장점:
단점:
예시: Google App Engine
사스(SaaS)는 다른 사람이 개발한 소프트웨어를 돈을 주고 사용하는 개념이다. 설치할 필요도 없이 클라우드를 통해 제공되는 SW이다.
SaaS 방식으로 전달되는 소프트웨어는 각 고객 사이트가 아닌 중앙의 위치에서 활동을 관리하고, 고객이 웹을 통해 애플리케이션에 접근하도록 한다는 특징이 있다.
위의 그림과 같이 모든 것을 기업(클라우드)에서 제공하기 때문에, 사용자는 별도의 설치나 부담이 필요 없이 SW를 사용할 수 있다.
SaaS는 소비 관점에서 제공되는 방식의 IT 서비스로 정리할 수 있다. 구독의 방식으로 돈을 벌거나 트래픽 기반으로 돈을 벌 수 있다.
장점:
단점:
예시: 웹 메일, 구글 클라우드, 네이버 클라우드, MS오피스365, 드랍박스 등