네트워크
컴퓨터 등이 장치들이 통신 기술을 이용하여 구축하는 연결망
네트워크는...
노드와 링크가 서로 연결되어 있거나, 연결되어 있으며 리소스를 공유하는 집합
노드: 서버, 라우터, 스위치 등 네트워크 장치
링크: 유선 또는 무선
처리량과 지연 시간
처리량
- 링크 내에서 성공적으로 전달된 데이터의 양
- 보통 얼만큼의 트래픽을 처리했는지를 나타냄 ('많은 트래픽을 처리한다' = '많은 처리량을 가진다')
- 단위: bps(bits per second). 초당 전송 또는 수신되는 비트 수

- 트래픽: 특정 시점에 링크 내에 흐르는 데이터의 양
- 트래픽이 많아졌다(흐르는 데이터가 많아졌다) vs. 처리량이 많아졌다(처리되는 트래픽이 많아졌다)
- 대역폭: 주어진 시간 동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수
지연 시간
- 요청이 처리되는 시간, 즉 어떤 메시지가 두 장치 사이를 왕복하는 데 걸린 시간
네트워크 토폴로지와 병목 현상
네트워크 토폴로지
노드와 링크가 어떻게 배치되어 있는지에 대한 방식이자, 연결 형태
- 트리 토폴로지: 계층형 토폴로지. 트리 형태로 배치한 네트워크 구성
- 노드의 추가, 삭제가 쉽고, 특정 노드에 트래픽이 집중될 때 하위 노드에 영향을 줄 수 있음.

- 버스 토폴로지: 중앙 통신 회선 하나에 여러 개의 노드가 연결되어 공유하는 네트워크 구성
- 근거리 통신망(LAN)에서 사용
- 설치 비용 ↓, 신뢰성 ↑, 중앙 통신 회선에 노드를 추가하거나 삭제하기 쉬움.
- BUT 스푸핑이 가능한 문제점이 있음.

- 스푸핑?
- LAN상에서 송신부의 패킷을 송신과 관련 없는 다른 호스트에 가지 않도록 하는 스위칭 기능을 마비시키거나 속여서, 특정 노드에 해당 패킷이 오도록 처리하는 것
- 스푸핑 적용시, 패킷이 올바르게 수신부로 가지 못하고 악의적인 노드로 전달됨.

- 스타 토폴로지: 중앙에 있는 노드에 모두 연결된 네트워크 구성
- 노드 추가, 에러 탐지가 쉬움. 패킷의 충동 발생 가능성 ↓
- 어떤 노드에 장애가 발생해도 쉽게 발견할 수 있고, 장애 노드!=중앙 노드라면 다른 노드에 영향을 끼칠 가능성 ↓
- BUT 중앙 노드에 문제시 전체 네트워크 사용 불가. 설치 비용도 높음.

- 링형 토폴로지: 각각의 노드가 양 옆의 두 노드와 연결하여, 전체적으로 고리처럼 하나의 연속된 길을 통해 통신하는 방식
- 데이터는 노드->노드로 이동. 각각의 노드는 고리 모양의 길을 통해 패킷을 처리함.
- 노드 수가 증가해도, 네트워크상의 손실 거의 없음. 충돌 발생 가능성도 ↓. 노드의 고장 발견이 쉬움.
- BUT 네트워크 구성 변경이 어렵고, 회선에 장애시 전체 네트워크에 영향을 크게 끼침.

- 메시 토폴로지: 망형 토폴로지라고도 함. 그물망처럼 연결된 구조.

병목 현상
토폴로지가 중요한 이유는?
병목 현상을 찾을 때 중요한 기준이 되기 때문임.
병목 현상이란
전체 시스템의 성능이나 용량이 하나의 구성 요소로 인해 제한을 받는 현상
ex. 병의 몸통보다 병의 목 부분 지름이 좁아서 물이 상대적으로 천천히 쏟아지는 것.
가령 사용자가 서비스를 이용할 때 지연 시간이 길게 발생하고 있는 경우.
대역폭을 크게 설정했는데도 성능이 개선되지 않는다면?
네트워크 토폴로지가 어떻게 되어 있나 확인하고, 서버-서버 사이, 그리고 게이트웨이로 이어지는 회선을 추가해서 병목 현상을 해결할 수 있음.
네트워크 분류
네트워크는 규모를 기반으로 분류할 수 있음.
LAN < MAN < WAN
LAN (Local Area Network) | - 근거리 통신망 - 같은 건물이나 캠퍼스 등 좁은 공간 - 전송 속도 ↑, 혼잡도 ↓ |
MAN (Metropolitan Area Network) | - 대도시 지역 네트워크 - 도시 등 넓은 지역 - 전송 속도 평균, LAN보다는 혼잡 |
WAN (Wide Area Network) | - 광역 네트워크 - 국가, 대륙 등 더 넓은 지역 - 전송 속도 ↓, MAN보다 더 혼잡 |
네트워크 성능 분석 명령어
병목 현상 등의 문제 발생시, 네트워크와 관련된 원인인지를 파악하기 위해 테스트를 해야 함.
이러한 성능 분석을 위한 명령어들임.
- ping (Packet INternet Groper)
- 네트워크 상태를 확인하고자 하는 대상 노드를 향해 일정 크기의 패킷을 전송하는 명령어
- 해당 노드의 패킷 수신 상태, 도달하기까지의 시간 등
- ICMP 프로토콜을 통해 동작. 따라서 해당 프로토콜 지원 않는 기기에는 실행 불가
ping {IP주소 또는 도메인 주소}

- netstat
- 접속되어 있는 서비스들의 네트워크 상태를 표시하는 데 사용됨
- 네트워크 접속, 라우팅 테이블, 네트워크 프로토콜 등 리스트를 보여줌
- 주로 서비스의 포트가 열려 있는지 확인할 때...

- nslookup
- DNS에 관련된 내용을 확인하기 위해 사용
- 특정 도메인에 매핑된 IP를 확인하기 위함

- tracert
- 목적지 노드까지 네트워크 경로를 확인할 때 사용
- 윈도우에서는 tracert, 리눅스에서는 traceroute
- 목적지 노드까지의 구간들 중, 어느 구간에서 응답 시간이 느려지는지 등 확인 가능

네트워크 프로토콜 표준화
네트워크 프로토콜이란?
다른 장치들끼리 데이터를 주고받기 위해 설정된 공통된 인터페이스
개인이나 기업이 발표해서 정하는 것이 아니라, IEEE 또는 IETF라는 표준화 단체가 정함.