네트워크(Network)란

우리는 여러 사용자와 통신할 때, 공유기, 라우터 등등 다양한 장치를 사용해 데이터나 서비스를 주고 받는 등 기능을 수행할 수 있다. 컴퓨터는 모뎀을 통해 라우터에 연결되고, 인터넷 망을 통해 다른 컴퓨터와 연결된다.
이때, 이런 장치들은 서로 다양한 형태(무선, 유선)으로 연결되어 통신을 수행한다.
이 항목들은 각각 노드(Node) 와 링크 (Link)의 형태로 표현할 수 있다.
이러한 노드와 링크의 집합체를 우리는 네트워크 (Network)라고 칭한다.
또는 데이터나 리소스 공유를 위한 통신 체계라고 요약할 수 있다.
네트워크는 사용자로 하여금 다음과 같은 기능을 제공한다.
- 응용 프로그램의 목적에 맞는 통신 방법 제공 (채팅?, 웹 브라우저?, 게임?)
- 호스트 간의 신뢰할 수 있는 데이터 전송을 수행
- 노드와 노드 사이의 데이터 전송을 수행
- 최적의 통신 경로를 결정
- 목적로 데이터를 전송
호스트(Host)와 라우터(Router)
네트워크와 관련된 개념을 공부하다 보면, 호스트와 라우터라는 용어가 자주 등장하게 된다.
라우터(Router)는 라우팅(Routing)을 수행하는 객체를 말한다.
여기서 라우팅은 목적하는 네트워크에 데이터를 전송하는 것을 의미한다. 하나의 라우터가 수용할 수 있는 범위가 정해져 있기 때문에, 우리는 여러 라우터를 거처 데이터를 전송하게 된다.
End System이라고 불리기도 하는 호스트(Host)는 도착지, 혹은 사용자가 사용하는 응용 프로그램을 의미한다.
이 호스트의 주요 목적에 따라 서버와 클라이언트로 분류할 수 있다.
클라이언트는 데이터와 리소스 같은 서비스를 요청하고 제공받는 목적을 가진 호스트를 말한다.
반면 서버는 들어온 요청에 맞는 다양한 서비스를 제공하는 목적을 가진 호스트를 말한다.
간혹 클라이언트와 서버가 아예 다른 컴퓨터라고 생각하는 친구들이 있는데,
하나의 컴퓨터는 클라이언트가 될 수도 있고 서버가 될 수도 있다. 즉 어떤 장치를 분류하는 개념이 아니라는 점을 명심해야한다.
온라인 게임 네트워크 통신 방법 중에 함께 게임을 진행하는 한 호스트가 게임 클라이언트 + 게임 서버의 역할을 맡아 다른 호스트와의 통신의 주체가 되는 P2P 시스템이라는 것이 있다.
이 서버 역할을 맡았던 유저는 다른 판에서는 서버의 역할이 아닌 클라이언트 역할만 수행하며 게임을 진행할 수도 있다.
네트워크의 규모 (LAN vs MAN vs WAN)

이 세 가지 단어는 네트워크의 규모모에 따라 세 단계로 분류하여 표현한 용어이다.
LAN (Local Area Network) : 근거리 통신망이라고 하여, 보통 캠퍼스 규모의 좁은 영역에 관해 운영한다.
MAN (Metropolitan Area Network) : LAN 과 WAN의 중간 개념으로, 도시 규모의 영역에 관해 운영한다.
WAN (Wide Area Network) : 광역통신망이라고도 불리며, 도시, 국가 규모의 넓은 영역에 관해 운영한다.
인터넷이란?
해당 게시글의 첫 번째 사진을 보면, 여러 가지 작은 네트워크들의 모여 또 다른 커다란 네트워크를 이루기도 한다.
이렇듯 크고 작은 네트워크들의 네트워크를 인터넷이라고 부른다.
즉, 전 세계의 모든 네트워크들의 집합체인 것이다.
Q. 이런 네트워크 시스템을 어떻게 우리가 사용할 수 있는걸까?
ISP (Internet Service Provider)
우리는 이런 인터넷 네트워크를 통해 다양한 데이터를 목적지까지 주고 받기 위해서, 인터넷 망을 제공 받아야한다.
ISP는 우리에게 이런 인터넷 망을 제공해주는 인터넷 회사이다. KT,SKT,LG 와 같은 통신사들도 ISP에 해당한다.
프로토콜 Protocol
ISP를 통해 인터넷 서비스를 제공받아 우리는 통신할 수 있다. 그런데 우리는 서로 다른 환경에서 통신을 수행하는데, 어떻게 통일된 형태로 원할하게 통신할 수 있는걸까?
바로 프로토콜 덕분이다. 특히 통신 프로토콜은 네트워크 통신에 관한 규약/규칙을 의미한다.
프로토콜은 네트워킹에서 필수적인 개념인데, 이는 지극히 당연한 것이다.
우리가 외국인과 인사를 하려 한다고 가정했을 때, 각 국가의 언어로 소통하게 되면 어떻게 될까?
당연히 언어 체계가 다르기 때문에 이를 이해할 수 없다. 그렇기 때문에 사전에 상대방과 대화를 수행할 때,
어떤 언어를 사용할 지 결정한 후에 소통을 수행해야할 필요가 있다.
이때 어떤 언어를 사용할 지를 결정하는 행위가 바로 프로토콜을 정하는 것이라고 볼 수 있다.
하지만 이 네트워크가 제공하는 복합적인 기능들은 하나의 프로토콜로 정의하기엔 규모가 너무 크다.
그렇기 때문에 우리는 이 일련의 과정을 작은 단위로 모듈화 하고, 각각의 모듈 별로 독립적인 프로토콜을 정의하는 것이 필요하다.
이렇게 네트워크 통신 과정을 모듈화하여 계층 구조의 형태로 표현한 것이, 다음 게시글에 다루게 될
OSI 7 모델과 TCP-IP 모델이다.
'네트워크' 카테고리의 다른 글
| [네트워크 기초] TCP (1) | 2024.06.14 |
|---|---|
| [네트워크 기초] OSI 모델을 통한 데이터 전송 예시 (0) | 2024.06.06 |
| [네트워크 기초] OSI 모델과 TCP/IP 모델 (1) | 2024.06.05 |