■ 네트워크란?
□ 네트워크란
두 개 이상의 컴퓨터나 기기들이 데이터를 주고 받기 위해 연결된 시스템
노드(node)와 링크(link)가 서로 연결되어 있으며, 리소스를 공유하는 집합이다.
인터넷은 가장 큰 규모의 네트워크다.
□ 좋은 네트워크란?
- 높은 처리량 : 네트워크를 통해 전송되는 데이터의 양이 많을수록 좋다.
- 낮은 지연시간 : 데이터가 출발지에서 목적지까지 도달하는 데 걸리는 시간이 짧을수록 좋다.
- 신뢰성 : 네트워크가 항상 안정적으로 동작하고, 데이터 전송 중에는 오류가 적어야한다.
- 보안성 : 데이터 전송 중에 외부로부터 공격이나 도청을 방지할 수 있어야 한다.
□ 처리량(Throughput)
네트워크가 일정 시간 동안 전송할 수 있는 데이터의 양
보통 초당 비트(bit per second, bps)로 측정된다.
처리량을 높이기 위해서는
네트워크의 대역폭(Bandwidth)을 넓히거나 네트워크의 효율성을 높이는 방법이 필요하다.
[네트워크 효율성 증진]
[네트워크의 효율성 증진]
1. 데이터 압축
압축 데이터는 전송 시간이 단축되고, 네트워크 자원의 사용량이 줄어듬
2. QoS
네트워크 트래픽을 우선순위에 따라 관리하는 기술. 중요한 트래픽을 우선적으로 처리하여 지연을 최소화, 효율성 증진
3. 멀티캐스크 전송
같은 데이터 여러 수신자에게 전송할 때, 각각의 수신자에게 개별적으로 데이터를 보내는 대신 한 번에 전송
네트워크의 대역폭 사용을 줄이고 효율성을 높일 수 있음
4. 캐싱(Caching)
자주 사용되는 데이터를 네트워크 엣지나 사용자 가까운 곳에 저장하는 방법
불필요한 데이터 전송을 줄이고, 네트워크 응답 속도를 높일 수 있음
5. 데이터 중복 제거
전송 중에 동일한 데이터 반복되지 않도록, 제거함으로써 전송해야 할 데이터 양 줄이고 효율성 높임
6. 네트워크 세그멘테이션
큰 네트워크를 작은 서브 네트워크로 나누어 트래픽을 분산
충돌 도메인을 줄이고 각 서브 네트워크의 성능을 최적화할 수 있음
7. 프로토콜 최적화 (Protocol Optimization)
TCP/IP 프로토콜의 윈도우 크기 조정, ACK 지연, 빠른 재전송 등을 통해 전송 속도를 높이고 지연 시간을 줄일 수 있음
8. 로드 밸런싱
트래픽을 여러 서버나 네트워크 장비에 분산시켜 네트워크 부하를 고르게 분산시키는 방법
특정 장비에 과부화가 걸리는 것을 방지하고 전체 네트워크 성능을 향상시킬 수 있음
9. 네트워크 장비 업그레이드
네트워크 장비(라우터, 스위치, 케이블)를 최신 기술로 업그레이드하여 처리 능력과 속도를 향상
최신 장비는 더 높은 대역폭과 효율성을 제공
10. 모니터링 및 분석
실시간으로 트래픽을 모니터링하고 분석해 병목 현상을 조기에 발견하고 해결
지속적 성능 최적화 가능
□ 지연시간 (Latency)
데이터 패킷이 출발지에서 목적지까지 도달하는 데 걸린 시간
밀리초(ms) 단위로 측정된다.
네트워크의 물리적 거리, 라우터와 스위치의 처리 속도, 트래픽 양 등에 의해 영향을 받는다.
■ 네트워크 토폴로지(Topology)와 병목 현상(Bottleneck)
□ 네트워크 토폴로지
네트워크를 구성하는 장비와 그들 간의 연결 형태를 나타내는 방식
□ 버스형 (Bus) - 모든 장치가 단일 중앙 케이블에 연결
중앙 통선 회신을 여러 노드가 공유하는 구조
설치 비용이 적고 신뢰성이 높지만,
스푸핑 가능성이 있음
[스푸핑]
[스푸핑]
관련 없는 다른 호스트에게 가지 않도록 하는 스위칭 기능을 마비시키거나 속여서,
특정 노드에 다른 패킷이 오도록 속이는 행위□ 스타형 (Star) - 모든 장치가 중앙 허브에 연결
중앙에 있는 노드에 모든 노드가 연결된 형태
노드 추가 및 에러 탐지가 용이하지만
중앙 노드에 장애 발생시 전체 네트워크 마비
□ 링형 (Ring) - 모든 장치가 단일 중앙 케이블에 연결
각 노드가 두 개의 인접 노드와 연결되어 고리 형태
노드 수가 증가해도 네트워크 성능이 크게 영향 받지 않음
하지만 구성 변경이 어렵고 회선 장애 발생시 전체 네트워크에 영향 끼침
□ 메시형 (Mesh) - 모든 장치가 단일 중앙 케이블에 연결
모든 노드가 서로 직접 연결된 형태
특정 노드에 장애 발생 시에도
네트워크 계속 사용 가능
하지만 노드 추가 어려움
고가의 구축 비용 & 운용 비용
□ 트리형 (Tree) - 모든 장치가 단일 중앙 케이블에 연결
계층형 구조, 노드 추가 및 삭제가 쉬움
특정 노드에 트래픽이 집중될 때 하위 노드에 영향 줄 수 있음
□ 병목 현상
네트워크의 특정 구간이 처리할 수 있는 데이터의 양이
전체 네트워크의 성능을 제한하는 상황
ex) 서비스에서 이벤트 열었을 때, 트래픽 많이 생기고 그 트래픽 잘 관리 못하면 웹사이트 들어가지 못함
□ 주 원인
- 네트워크 대역폭
- 네트워크 토폴로지
- 서버 CPU, 메모리 사용량
- 비효율적 네트워크 구성
해결 위해,
해당 구간의 대역폭을 늘리거나, 네트워크 설계를 변경해 부하를 분산시키는 방법을 사용
Before : Router2가 병목 구간이 되어, 모든 데이터가 이 지점을 통과해야 하므로 지연시간이 길어지고 네트워크 성능이 저하
After : 병목 해결을 위해 서버에서 직접 연결되는 Router 연결을 추가. 각 라우터가 개별적으로 클라이언트와 연결되어 전송 경로 분산
□ 네트워크 분류
- LAN (Local Area Network) : 제한된 지역 내(예: 건물 내)에서 사용되는 네트워크
- MAN (Metropolitan Area Network) : 도시나 대도시(예: 서울시)를 연결하는 네트워크
- WAN (Wide Area Network) : 광범위한 지역(예: 국가 간)을 연결하는 네트워크
□ 네트워크 성능 분석 명령어
애플리케이션 코드상에는 전혀 문제가 없지만
사용자가 서비스로부터 데이터를 가져오지 못하는 상황이 발생되기도 한다.
이는 네트워크 병목 현상일 가능성이 있다.
- ping : 네트워크 확인 대상 노드를 향해 일정 크기 이상의 패킷을 전송 (ICMP 프로토콜 통해 동작)
대상 노드까지 네트워크 연결 잘 되어있는지 확인할 수 있음
ping [IP 주소 또는 도메인]
- netstat : 네트워크 연결 상태와 포트 상태를 확인하는 명령어 (주로 서비스 포트가 열려 있는지 확인에 사용)
네트워크 접속, 라우팅 테이블, 네트워크 프로토콜 등 표시
netstat -an
- nslookup : 도메인 이름과 IP 주소를 변환하는데 사용 (특정 도메인에 매핑된 IP 확인에 사용)
nslookup [도메인 이름]
- tracert(Windows) / traceroute (Linux) : 목적지 노드까지 네트워크 경로 확인
경로 상의 각 구간에서 응답 시간을 측정해 어느 구간에서 지연 발생하는지 확인 가능
tracert [IP 주소 또는 도메인] # Windows
traceroute [IP 주소 또는 도메인] # Linux
+⍺
- 대역폭 (Bandwidth) : 네트워크가 처리할 수 있는 최대 데이터 전송 속도
- 패킷 (Packet) : 네트워크 통해 전송되는 데이터의 기본 단위
- 라우터 (Router) : 다른 네트워크 간의 데이터를 전달하는 장치
- 스위치 (Switch) : 같은 네트워크 내에서 데이터 전송하는 장치
'CS' 카테고리의 다른 글
CS)네트워크_HTTP/HTTPS (0) | 2024.05.26 |
---|---|
CS)네트워크_대역폭 (1) | 2024.05.22 |
CS)Spring_11_스프링 MVC 패턴 (0) | 2024.05.20 |
CS)Spring_10_빈 라이프 사이클 (0) | 2024.04.25 |
S)Spring_10_스프링 컴포넌트 스캔 Component Scan & DI 자동 주입 (0) | 2024.04.15 |