네트워크(Network)
네트워크는 노드와 링크가 서로 연결되어 있거나 연결되어 있지 않은 집합체를 의미한다.
여기서 노드는 서버, 라우터, 스위치 등 네트워크 장치를 의미하고 링크는 유선 네트워크 케이블 또는 무선 네트워크의 공간을 의미한다.
컴퓨터 네트워크의 작동은 간단히 규칙이나 프로토콜로 정의될 수 있으며 이러한 규칙과 프로토콜은 링크를 통해 데이터를 송수신하고 컴퓨터 네트워크 간의 통신을 가능케 한다.
좋은 네트워크를 만들기 위해서는 많은 처리량을 처리할 수 있고 지연 시간이 짧으며 장애 빈도가 적으면서 좋은 보안을 갖춰야 한다.
처리량
처리량은 링크를 통해 전달되는 단위 시간당 데이터양을 말한다.
단위로는 bps(bits per second)를 사용하고 초당 전송 또는 수신되는 비트 수를 의미한다.
처리량은 사용자들이 많이 접속할수록 커지는 트래픽, 네트워크 장치 간의 대역폭, 네트워크 중간에 발생하는 에러, 장치의 하드웨어 스펙에 영향을 받는다.
대역폭: 주어진 시간 동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수
지연 시간
지연 시간(latency)은 요청이 처리되는 시간을 말하며 어떤 메시지가 두 장치 사이를 왕복하는 데 걸린 시간을 말한다.
지연 시간은 매체 타입(유선, 무선), 패킷 크기, 라우터의 패킷 처리 시간에 영향을 받는다.
네트워크 토폴로지
컴퓨터 네트워크에서 다양한 구성 요소(노드와 링크)가 서로 연결되는 방법이 있는데, 네트워크 토폴로지는 이러한 구성 요소의 구조와 서로 어떻게 연결되는지를 의미한다.
1. 트리 토폴로지(Tree Topology)
계층형 토폴로지라고 하며 트리 형태로 배치한 네트워크 구성을 말한다.
중앙 허브는 중계기가 포함되어 있고 여러 개의 보조 허브와 연결된다. 데이터는 중앙 허브에서 보조 허브로, 그런 다음 장치로 이동하거나 그 반대로 올라가는 식으로 이동하게 된다.
하나의 중앙 허브에 더 많은 장치를 연결할 수 있어 신호가 장치로 오기까지 이동해야 하는 거리를 줄일 수 있다. 또한 일부 네트워크를 격리시켜 다른 컴퓨터에 우선순위를 부여할 수 있고, 기존 네트워크에 새로운 노드를 추가 및 삭제가 쉽다.
트리형으로 이뤄진 네트워크는 오류 감지 및 수정이 매우 쉬워진다.
하지만 반대로 중앙 허브가 고장나면 전체 시스템이 고장 날 수 있고, 새로운 장치를 추가하는 것은 쉽지만 추가된 이후 다시 네트워크를 구성하기 어려워질 수 있다.
또한, 특정 노드에 트래픽이 집중될 때 하위 노드에 영향을 끼칠 수 있다.
2. 버스 토폴로지(Bus Topology)
중앙 통신 회선 하나(네트워크 백본)에 여러 개의 노드가 연결되어 공유하는 네트워크 구성을 말하며 각 통신 회선의 끝에는 종결자(Terminator)가 있다.
중앙에 있는 통신 회선은 노드 간의 통신을 담당하고 데이터가 회선 끝에 도달하면 종결자가 데이터 라인에서 데이터를 제거하게 된다.
중앙 통신 회선의 비용이 다른 토폴로지에 비해 낮지만 대규모 네트워크가 아닌 소규모 네트워크인 근거리 통신망(LAN)등을 구축하는 데 사용한다.
설치 비용이 적고 신뢰성이 우수하며 중앙 통신 회선에 노드를 추가하거나 삭제하기 쉽다. 하지만 하나뿐인 중앙 통신 회선이 고장 나면 전체 시스템이 다운될 수 있고, 스푸핑이 가능한 문제점이 있다.
또한 네트워크 트래픽이 많을 경우 네트워크 내 충돌이 증가한다.
스푸핑: LAN상에서 송신부의 패킷을 송신과 관련 없는 다른 호스트에 가지 않도록 하는 스위칭 기능을 마비시키거나 속여서 특정 노드에 해당 패킷이 오도록 처리하는 것
3. 스타 토폴로지(Star Topology)
성형 토폴로지라고 하며 모든 장치가 중앙 노드(단일 허브)로 연결된다.
N개의 노드가 있다면 연결하기 위해 필요한 케이블도 N개이기 때문에 설계하기 쉽다는 장점이 있다.
또 다른 장점으로는 노드를 추가하거나 에러를 탐지하기 쉽고 패킷의 충돌 발생 가능성이 작다. 또한, 어떠한 노드에 장애가 발생해도 쉽게 에러를 발견할 수 있고 장애 노드가 중앙 노드가 아닐 경우 다른 노드에 영향을 끼치는 것이 적다.
하지만 중앙 허브에 장애가 발생하면 전체 네트워크를 사용할 수 없고, 설치 비용이 고가이다. 그리고 하나의 단일 허브에 집중적으로 연결되기 때문에 성능이 중앙 허브에 의존하게 된다.
4. 링형 토폴로지(Ring Topology)
각각의 노드가 양 옆의 두 노드와 연결하여 전체적으로 고리처럼 하나의 연속된 길을 통해 통신을 하는 망 구성 방식이다.
데이터는 노드에서 노드로 이동하고, 각각의 노드는 고리 모양의 길을 통해 패킷을 처리한다. 여기서 데이터는 한 방향 즉 단방향으로 흐르게 되며 데이터를 마지막 노드로 전송하기 위해서는 그 전의 모든 노드를 거쳐가야 된다. 따라서 중계기(리피터)를 사용하여 데이터를 더 멀리 보내게 만들어야 한다.
노드 수가 증가되어도 네트워크 상의 손실이 거의 없고 충돌이 발생되는 가능성이 적다. 또한, 노드의 고장 발견을 쉽게 찾을 수 있다.
하지만 네트워크 구성 변경이 어렵고 회선이 장애가 발생하면 전체 네트워크에 영향을 크게 끼치기 때문에 보안 수준이 매우 낮은 토폴로지이다.
5. 메시 토폴로지(Mesh Topology)
망형 토폴로지라고 하며 그물망처럼 연결되어 있는 구조이다.
노드 간 서로 연결되어 있어 통신이 매우 빠르고, 한 단말 장치에 장애가 발생해도 여러 개의 경로가 존재하기 때문에 네트워크를 계속 사용할 수 있어 매우 견고한 구조를 가지고 있다.
서로 연결되어 있기 때문에 트래픽도 분산 처리가 가능하다.
하지만 노드의 추가가 어렵고 구축 비용과 운용 비용이 고가인 단점이 있다.
노드의 추가가 어려운 문제와 비용 문제로 인해서 적은 수의 장치에 적합한 토폴로지이다.
병목 현상
병목 현상이란 전체 시스템의 성능이나 용량이 하나의 구성 요소로 인해 제한을 받는 현상을 말한다.
네트워크의 구조라고 불리는 토폴로지가 중요한 이유는 네트워크 간 병목 현상을 찾을 때 매우 중요한 기준이 되기 때문이다.
네트워크가 어떤 토폴로지를 갖는지, 또한 어떠한 경로로 이루어져 있는지 알아야 병목 현상을 올바르게 해결할 수 있다.
네트워크 병목 현상이 일어나는 주요 원인
- 네트워크 대역폭 문제
- 네트워크 토폴로지 구성
- 서버 CPU, 메모리 사용량
- 비효율적인 네트워크 구성
네트워크 병목 현상을 확인하기 위해 여러 가지 명령어를 통해서 테스트를 해볼 수 있다.
리눅스를 기준으로 어떤 명령어가 있는지 살펴보자.
- ping
ping 명령어는 특정 호스트에 ICMP를 보내서 응답을 확인하는 명령어이다.
해당 명령어를 통해서 테스트 해보고 싶은 서버가 잘 작동하고 있는지, 패킷이 도달하는데 걸리는 시간 등을 알 수 있으며 해당 서버까지 네트워크가 잘 연결되어 있는지 확인할 수 있다.
ping [도메인 명 | IP주소]
실제 naver로 ping 명령어를 실행하면 naver 서버가 잘 작동하는지 알 수 있다.
리눅스를 처음 사용하게 되면 네트워크 설정을 먼저 하게 되는데 설정이 잘못되면 ping 명령어를 사용했을 때 원하는 서버까지 ICMP를 보낼 수 없게 되고, time out과 같은 에러가 발생하게 된다.
- netstat
netstat 명령어는 전송 제어 프로토콜이나 라우팅 테이블, 네트워크 인터페이스 등 네트워크 연결 상태를 보여주는 명령어이다.
netstat [옵션][포트번호 또는 서비스 명]
사진은 netstat 명령어에 anlp라는 옵션을 추가해서 사용한 예시이다.
anlp는 리스닝 되어 있는 모든 포트 번호와 LISTEN 상태인 서비스 포트번호, 포트를 사용하는 프로그램과 PID를 보여주는 옵션으로 이것 외에 여러 가지 옵션이 존재한다.
- nslookup
nslookup 명령어는 DNS 서버에 직접 DNS 쿼링을 하여 그 결과를 출력해주는 명령어이다.
해당 명령어를 통해서 DNS 서버가 잘 동작하는지 확인할 수 있다.
nslookup [도메인 명]
google.com을 가지고 해당 명령어를 실행해보면 위의 사진과 같이 결과가 나오게 된다.
Non-authoritative answer는 도메인 소유자가 DNS 서버에 등록한 1차 정보원이 아니여서 접근 권한이 없다는 뜻이다.
- traceroute
traceroute 명령어는 실행하는 컴퓨터에서 목적지 서버로 가는 네트워크 경로를 확인시켜 주는 명령어이다.
ping과 동일하게 ICMP 프로토콜을 이용하여 경로를 확인해주는 역할을 하게 된다.
traceroute [도메인 명 혹은 IP 주소]
실제 google.com을 예시로 실행해봤을 때 서버로 접근하기 까지 거치게 되는 모든 라우팅 경로를 알 수 있지만, 사진을 보면 "* * *" 이렇게 처리가 되어있다.
위와 같이 처리되는 이유는 서버로 접근하기 위해 거치게 되는 라우터가 ICMP 프로토콜을 제한하는 라우터이기 때문에 해당 정보를 알 수 없게 되는 것이다.
네트워크 분류
네트워크를 분류할 때는 규모를 기반으로 분류를 할 수 있다.
개인적으로 소유 가능한 규모인 LAN, 도시 정도의 규모인 MAN, 세계 규모인 WAN으로 나뉜다.
LAN(Local Area Network)
LAN은 개인 컴퓨터와 워크스테이션이 데이터, 도구 및 프로그램을 공유할 수 있도록 네트워크 장치를 연결하는 방식이다.
근거리 통신망을 의미하며 연결된 컴퓨터 수가 제한되므로 같은 건물이나 캠퍼스 같은 좁은 공간에서 운영된다.
LAN의 장/단점을 살펴보면 아래와 같다.
장점
- 전송 속도가 매우 빠르고 혼잡하지 않다.
- 설치와 유지 및 관리가 쉽다.
- WAN에 비해 더 높은 보안을 제공한다.
단점
- 한정된 지리적 범위를 가진다.
- 확장하는데 한정적이며 중요한 인프라 업그레이드가 필요할 수 있다.
- 사용량이 증가함에 따라 네트워크 성능 문제가 발생할 수 있고 혼잡해질 수 있다.
MAN(Metropolitan Area Network)
MAN은 LAN으로 커버되는 지역보다 더 큰 영역을 커버한다. 주로 5 ~ 50km의 범위를 갖고 같은 도시나 다른 도시에 거주하는 두 대 이상의 컴퓨터를 연결한다.
고속 연결이 필요한 고객을 대상으로 설계되었으며, 전송 속도는 평균이며 LAN보다는 더 많이 혼잡하다.
MAN의 속도는 Mbps 단위로 되어있다.
MAN의 장/단점을 살펴보면 아래와 같다.
장점
- LAN보다 넓은 지리적 영역에서 고속 연결을 제공한다.
- 여러 고객을 대상으로 ISP로 사용될 수 있다.
- 일부 경우에 WAN보다 더 높은 데이터 전송 속도를 제공한다.
단점
- 설치와 유지 관리 비용이 많이 들 수 있다.
- 사용량이 증가하면 네트워크 성능 문제가 발생할 수 있고 혼잡해질 수 있다.
- LAN과 비교했을 때 제한된 장애 허용성과 보안을 가질 수 있다.
WAN(Wide Area Network)
광역 네트워크를 의미하며 국가 또는 대륙 같은 대규모 지리적 영역에 걸쳐 확장되는 컴퓨터 네트워크이다.
50km 이상의 범위를 가지며 전화선 및 무선 전파를 통해 다른 LAN과 연결된 LAN의 연결일 수도 있다.
대륙과 같은 넓은 지역을 커버하기 때문에 어떤 나라의 정부 혹은 기업에 의해서 연결이 제한될 수도 있고 대중에게 액세스가 가능할 수도 있다.
전송 속도는 낮고 MAN보다 더 혼잡하다.
WAN의 장/단점을 살펴보면 아래와 같다.
장점
- 광범위한 지리적 영역을 커버하고 먼 위치를 연결할 수 있다.
- 인터넷에 연결성을 제공한다.
- 원격으로 리소스와 응용 프로그램에 액세스할 수 있다.
- 여러 사용자 및 응용 프로그램을 동시에 지원하는 데 사용될 수 있다.
단점
- 설치와 유지 관리 비용이 많이 들 수 있다.
- LAN이나 MAN에 비해 더 느린 데이터 전송 속도를 제공한다.
- LAN과 비교했을 때 낮은 장애 허용성과 보안을 가질 수 있다.
- 긴 통신 거리와 다중 네트워크 홉으로 인해 더 높은 지연 시간 및 긴 전파 지연이 발생할 수 있다.
※ 참고
- CS 전공지식 노트(주홍철)
- 이미지 출처: https://www.router-switch.com/faq/what-is-wan.html
- geeksforgeeks: https://www.geeksforgeeks.org/basics-computer-networking/
'CS > 네트워크' 카테고리의 다른 글
네트워크 - IP (0) | 2023.10.14 |
---|---|
네트워크 - TCP와 UDP (0) | 2023.10.13 |
네트워크 - 네트워크 기기 (0) | 2023.10.13 |
네트워크 - OSI 7계층과 TCP/IP 4계층 (0) | 2023.10.12 |
네트워크 - 유선 LAN과 무선 LAN (0) | 2023.10.12 |