네트워크 | 네트워크를 이해하는 큰 그림
네트워크란?
네트워크는 전자장치들이 서로 정보를 주고 받을 수 있도록 연결한 시스템이다.
하나의 로컬 컴퓨터가 독자적으로만 작동하면, 이 컴퓨터의 활용도는 컴퓨터 자체의 리소스와 직접 input 해주는 데이터에 제한될 것이다.
CSAPP 초반에 네트워크 또한 하나의 입출력 장치로 볼 수 있다는 문구가 있다.
로컬 컴퓨터가 네트워크에 연결되면 이는 하드웨어의 제약을 넘어 다른 공간, 다른 객체의 데이터와 리소스까지 활용할 수 있게 되며, 실시간 통신까지 가능하게 된다. 엄청난 확장성을 갖게 해주는 강력한 입출력 장치나 마찬가지인 것이다.
네트워크 시스템은 말 그대로 전자장치 간 정보를 주고받을 수 있는 연결된 시스템을 말한다.
사내 내부망도 네트워크이고, 우리가 잘 아는 internet도 네트워크의 일종이다.
앞서 객체와 객체간의 관계를 표현하는 자료구조로 Graph를 배웠고, Graph의 정의를 Vertex와 Edge의 집합이라고 정의내렸었다.
그리고 Vertex는 상황에 따라 노드(Node), Edge는 상황에 따라 링크(Link)라고 불렀다.
네트워크에서도 이 용어가 그대로 적용되는데 정보를 주고받을 각각의 객체는 노드, 이들을 연결한 선을 링크라고 표현한다.
인터넷 (internet)
인터넷은 수많은 네트워크 시스템 중에, 전세계를 연결하는 가장 크고 성공적인 시스템이다.
우리 생활에 필수적일 정도로 스며든 시스템이며, 그래서 네트워크의 대명사로 인식되기도 한다.
Submarine Cable Map 이라는 사이트에 들어가보면 세계를 연결하고 있는 해저 케이블 지도를 확인할 수 있는데,
이 맵을 보다보면 진짜로 전세계가 연결돼있음이 실감된다.
네트워크 - 3차원으로 이해하기
네트워크 라는 큰 개념을 이해하기 위한 사고적 틀들이 있다.
우리가 네트워크를 공부할 때 가장 먼저 1) 네트워크 모델 (OSI, TCP/IP), 그리고 2) 네트워크 아키텍처들을 배운다.
- 네트워크 모델은 네트워크가 어떻게 동작하는지, 그 동작 과정과 원리에 대한 이론이고,
- 네트워크 아키텍처는 네트워크를 어떤 구조로 배치할지, 어떻게 데이터 흐름을 결정할지에 대한 얘기이다.
이렇게 3차원 이미지로 받아들이면 전체적인 맥락이 보다 쉽게 와닿는 것 같다.
네트워크 아키텍처는 네트워크를 구성하는 '구조적' 측면에 집중하며, OSI와 TCP/IP 모델은 데이터가 네트워크를 통해 '동작하는 방식'을 설명한다.
네트워크라는 것을 2차원(x, y축)으로 간단히 생각하면 네트워크 노드와 링크들이 연결된 그래프라고 볼 수 있다. 이 그래프 구조를 어떻게 할 것인가, 링크의 특성이 무엇인가 등에 대한 논의가 네트워크 아키텍처이다. 2차원으로 한정해서 연결 구조에만 집중해보자는 거다.
이번에는 2차원 축에 z축을 추가해서 3차원으로 확장해보자. 유저가 사용하는 application이 가장 윗단이고, 여기에서 전송한 데이터가 가장 아랫단인 실제 하드웨어까지 내려가고, 물리적인 선과 허브, 라우터 등을 거쳐 상대 노드에까지 닿는 과정을 포함하게 되었다. 이것을 단계화하여 규명한게 OSI 7계층 또는 TCP/IP 4계층이다.
OSI 7계층은 네트워크 통신 전체 과정을 개념적으로 구분하고 기술하고자 한다면, TCP/IP 4계층은 이 중에서 네트워크 계층과 전송 계층에 보다 집중한 실용적인 모델이라고 할 수 있다.
네트워크 아키텍처
1) 범위⭐️, 2) 연결 형태, 3) 연결 방식, 4) 관리 방식, 5) 역할 설계⭐️ 등 다양한 기준으로 네트워크 구조를 나눌 수 있다.
1) 범위에 따른 분류 ⭐️
이름 | 설명 |
LAN (Local Area Network) | 가까운 지역을 서로 연결한 지역 영역 네트워크. 한 건물이나 캠퍼스 등에서 주로 쓰고, 스타크래프트 게임 할 때 많이들 접했을 단어이다. |
WAN (Wide Area Network) | 멀리있는 지역을 서로 연결한 광역 네트워크. 국가, 대륙 급의 넓은 범위를 커버한다. |
LAN은 소규모, 고밀도 환경에서 효율적인 데이터 교환과 리소스 공유를 가능케한다.
- LAN 규모의 기술 중에서 가장 성공한 기술은 이더넷(Ehernet)이다. (허브 - 다수의 호스트가 전선으로 연결, 브로드캐스팅 방식)
WAN은 원거리 지역 간 대규모 데이터 전송 및 통신을 지원한다. WAN의 경우 글로벌 인터넷의 기초이다.
이 외에 PAN(Personal Area Network, 개인 규모), MAN(Metropolitan Area Network, 도시 규모)이 있다.
LAN과 LAN을 연결해서 MAN이 되고, MAN과 MAN을 연결해서 WAN이 되는 방식이다. (PAN < LAN < MAN < WAN)
2) 연결 형태에 따른 분류
topology | 특징 | 장점 | 단점 |
포인트 투 포인트 (Point-to-Point) |
단일 페어의 두 장치만 직접 연결 | 간단하고 명확하게 연결함 | 대규모 네트워크에는 부적합 |
버스 (Bus) |
모든 장치가 단일 중앙 케이블에 연결 | 설치가 간단하고 비용이 적음 | 한 장치의 문제가 전체 네트워크에 영향 |
스타 (Star) |
모든 장치가 중앙 허브(공유기 등)에 연결 | 중앙 허브 장애 외에는 개별 장치 고장이 네트워크에 큰 영향을 미치지 않음 | 중앙 허브에 의존적이며, 허브가 고장나면 전체 네트워크가 마비 |
링 (Ring) |
각 장치가 이웃한 두 장치와 연결, 닫힌 루프 형성 | 각 장치가 데이터를 중계하므로 중앙 장치 필요 없음 | 한 장치의 고장이 전체 네트워크에 영향을 줄 수 있음 |
메시 (Mesh) |
모든 장치들을 서로 직접 연결 | 높은 장애 내성과 신뢰성 (모든 장치가 연결되어 있기 때문) | 설치 및 관리가 복잡하고 비용이 높음 |
트리 (Tree) |
스타 네트워크들이 중앙 버스에 연결 | 확장성이 좋음 | 중앙 연결점에 문제가 생기면 전체 네트워크에 영향 |
하이브리드 (Hybrid) |
두 개 이상 토폴로지의 조합 | 다양한 요구사항 충족 | 설계와 관리가 복잡할 수 있음 |
포인트 투 포인트를 제외하면, 스타 토폴로지와 메시 토폴로지가 가장 특징적이며 다른 토폴로지의 기본이 되는 형태이다.
3) 연결 방식에 따른 분류
연결 방식 | 특징 | 장점 | 단점 |
유선 네트워크 | 이더넷 케이블, 광섬유 등을 사용하여 장치를 연결 | 안정적인 연결과 높은 데이터 전송 속도 | 설치가 복잡하고 이동성이 제한됨 |
무선 네트워크 | 라디오 파, 위성 신호 등을 사용하여 장치를 연결 | 설치가 간편하고 이동성이 좋음 | 유선에 비해 상대적으로 느린 전송 속도와 덜 안정적인 연결 |
4) 관리 방식에 따른 분류
관리 방식 | 특징 | 장점 | 단점 |
Private 네트워크 | 개인이나 조직이 내부적으로 관리하고 사용하는 네트워크 | 보안이 강화되고 관리가 용이 | 설치와 유지 관리 비용 |
Public 네트워크 | Public에 개방되어 있는 네트워크 | 접근성이 높음 | 보안 문제가 발생할 수 있음 |
5) 역할 설계에 따른 분류 ⭐️
기능적 분류 | 특징 | 장점 | 단점 |
Client-Server 네트워크 |
중앙 서버가 리소스 및 서비스를 제공, 클라이언트는 서비스를 이용 | 자원 관리 및 보안이 용이, 대규모 네트워크 관리에 적합 | 중앙 서버에 대한 의존도가 높아 서버 장애 시 큰 영향 |
peer-to-peer (P2P) 네트워크 |
모든 장치가 서버와 클라이언트 역할을 수행, 직접적인 데이터 교환 | 설치가 간편하고 비용이 낮음, 중앙 서버에 대한 의존도가 낮음 | 대규모 네트워크에서는 관리 및 보안이 어려움 |
Client-Server 네트워크:
- 대부분의 상업적 네트워크 환경에서 사용되며, 웹 개발에서도 가장 먼저 배우는 디폴트 구조이다.
- 서버는 소프트웨어 애플리케이션, 파일, 프린터 등의 자원을 관리하며, 클라이언트는 이러한 자원을 요청하고 사용한다.
- 이 구조에서는 서버의 관리와 보안이 중요하며, 서버의 성능과 안정성이 전체 네트워크의 효율성에 크게 영향을 미친다.
지금 이 포스팅 볼 수 있게 하는 웹 브라우징이 해당 네트워크 구조를 지닌 대표적인 사례이다.
Peer-to-Peer 네트워크(P2P)
- 이 모델은 각 장치가 네트워크 내에서 동등한 역할을 하며, 파일 공유, 멀티미디어 스트리밍 등에 효과적이다.
- P2P 네트워크는 중앙 서버 없이 각 장치가 직접 통신하므로, 네트워크의 확장성과 유연성이 뛰어나다.
- 그러나 보안과 데이터 관리 측면에서 취약할 수 있다.
예전에 토렌트 같은 P2P 파일 공유 시스템이 대표적인 사례이다. 해당 공유 서비스에서는 파일을 다운로드 받으면 내 컴퓨터의 리소스도 서버 역할로 지원되는 구조였다.
라이트하게 인터넷의 동작과정을 확인할 수 있는 영상이 있어 기록!