네트워크란?
- 컴퓨터 등의 장치들이 통신 기술을 이용하여 구축하는 연결망
- 노드(node)와 링크(link)가 서로 연결되어 있으며 리소스를 공유하는 집합
-
좋은 네트워크란?
처리량 ↑ 지연시간 ↓ 장애빈도 ↓ 보안 ↑
-
처리량: 단위 시간 당 데이터 양
단위: bps (bits per second)
트래픽, 대역폭, 에러, 하드웨어 스펙에 영향 받음
-
지연시간: 요청이 처리되는 시간
매체타입(유/무선), 패킷 크기, 라우터의 패킷처리 시간에 영향 받음
네트워크 토폴로지: 노드의 링크 연결 형태, 배치 방식
- 트리 토폴로지: 계층형, 트리형, 노드 추가/삭제 쉬움, 특정 노드에 트래픽 집중 시 하위 노드에 영향
- 버스 토폴로지: 중앙 통신 회선 + 여러 개의 노드, 근거리 통신망(LAN)에서 사용, 노드 추가/삭제 쉬움, 스푸핑
- 스타 토폴로지: 중앙에 있는 노드에 모두 연결, 노드 추가/에러 탐지 쉬움, 패킷의 충돌 발생 가능성 ↓, 중앙 노드에 에러 발생 시 전체 시스템 마비, 고비용
- 링형 토폴로지: 각각 노드가 양 옆의 두 노드와 연결, 데이터는 노드->노드로 이동, 노드 수가 증가해도 네트워크상 손실 거의 없음, 충돌가능성 적음, 고장 발견 쉬움, 구성 변경 어려움
- 메시 토폴로지: 그물망, 한 단말장치에 장애가 발생해도 여러 개의 경로가 존재하므로 네트워크 계속 사용 가능, 트래픽 분산 처리 가능, 노드 추가 어려움, 고비용
- 병목현상
병목(bottleneck)현상
은 전체 시스템의 성능이나 용량이 하나의 구성 요소로 인해 제한을 받는 현상
서비스에서 이벤트를 열었을 때 트래픽이 많이 생기고 그 트래픽을 잘 관리하지 못하면 병목 현상이 생겨 사용자는 웹 사이트로 들어가지 못함
토폴로지가 중요한 이유는 병목 현상을 찾을 때 중요한 기준이 되기 때문이다.
네트워크 토폴로지가 어떻게 되어있나 확인하고, 서버와 서버 간 그리고 게이트웨이로 이어지는 회선을 추가해서 병목을 해결
네트워크가 어떤 토폴로지를 갖는지, 또한 어떤 경로로 이루어져 있는지 알아야 병목 현상 해결 가능
네트워크 분류
* 규모를 기준으로
- LAN: 사무실과 개인적으로 소유 가능한 규모 (근거리 통신망)
- MAN: 서울 시 등 시 정도의 규모 (대도시 지역 네트워크)
- WAN: 세계 규모 (국가/대륙 넓은 지역)
네트워크 성능 분석 명령어
애플리케이션 코드 상에는 문제가 없는데 사용자가 서비스 데이터를 가져오지 못하는 상황 => 네트워크 병목 현상일 가능성 있음
병목 현상의 주 원인
- 대역폭
- 토폴로지
- 서버 CPU, 메모리 사용량
- 비효율적 네트워크 구성
네트워크 관련 테스트/네트워크와 무관한 테스트를 통해 네트워크로부터 발생한 문제점
인지 확인한 후 네트워크 성능 분석 필요
- ping
- Packet INternet Groper
- 네트워크 상태를 확인하려는 대상 노드를 향해 일정 크기의 패킷을 전송하는 명령어
- 해당 노드의 패킷 수신 상태, 도달하기까지 시간 등을 알 수 있음
- 해당 노드까지 네트워크가 잘 연결되어있는지 확인 가능
- TCP/IP 프로토콜 중 ICMP 프로토콜을 통해 동작
네트워크 정책상 ICMP나 traceroute를 차단하는 대상의 경우 ping 테스트 불가
- netstat
- 접속된 서비스들의 네트워크 상태 표시
- 네트워크 접속, 라우팅 테이블, 네트워크 프로토콜 등의 리스트 보여줌
- 주로 서비스의 포트가 열려 있는지 확인할 때 사용
- nslookup
- DNS에 관련된 내용을 확인하기 위해 사용
- 특정 도메인에 매핑된 IP 확인하기 위해 사용
- tracert
- 윈도우: tracert / 리눅스: traceroute
- 목적지 노드까지 네트워크 경로를 확인할 때 사용하는 명령어
- 목적지 노드까지 구간들 중 어느 구간에서 응답 시간이 느려지는지 등 확인 가능
네트워크 프로토콜 표준화
네트워크 프로토콜: 다른 장치들끼리 데이터를 주고받기 위해 설정된 공통된 인터페이스
IEEE 또는 IETF라는 표준화 단체가 정함
출처
https://github.com/devSquad-study/2023-CS-Study/blob/main/Network/network_basic.md