해당 게시글은 '면접을 위한 CS 전공지식 노트' 도서를 학습한 후 개인적으로 정리한 내용으로 구성함을 밝힙니다.
네트워크
- 컴퓨터 등의 장치들이 통신 기술을 이용하여 구축하는 연결망
- 노드(node)와 링크(link)가 서로 연결되어 있으며, 리소스를 공유하는 집합
- 노드 : 서버, 라우터, 스위치 등의 네트워크 장치
- 링크 : 유선 또는 무선
1. Throughput과 Latency
좋은 네트워크의 조건
- 많은 처리량을 처리 가능
- 지연 시간이 짧음
- 장애 빈도가 적음
- 보안성이 좋음
처리량 (Throughput)
- 정의
- 링크 내에서 성공적으로 전달된 데이터의 양
- 처리량 vs. 트래픽
- 트래픽 : 특정 시점에 링크 내에 흐르는 데이터의 양
- 트래픽이 많아졌다 = 흐르는 데이터가 많아졌다
- 처리량이 많아졌다 = 처리되는 트래픽이 많아졌다
- 단위
- bps (bits per second)
- 초당 전송/수신되는 비트 수
- 특징
- 트래픽의 규모, 네트워크 장치 간 대역폭, 네트워크 중간에 발생한 에러, 장치의 HW 스펙에 영향 받음
- 대역폭 : 주어진 시간 동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수
지연 시간 (Latency)
- 정의
- 요청이 처리되는 시간
- 어떤 메세지가 두 장치 사이를 왕복 하는데 소요된 시간
- 특징
- 매체 타입(유선, 무선), 패킷 크기, 라우터의 패킷 처리 시간에 영향 받음
2. Network Topology와 병목 현상
Network Topology
노드와 링크가 어떻게 배치되어 있는 지에 대한 방식이자 연결 형태
- 트리 토폴로지 (= 계층형 토폴로지)
- 트리 형태로 배치한 네트워크 구성
- 노드의 추가, 삭제가 쉬움
- 특정 노드에 트래픽이 집중될 시, 하위 노드에 영향 끼칠 수 있음
- 버스 토폴로지
- 중앙 통신 회선 하나에 여러 개의 노드가 연결되어 공유하는 네트워크 구성
- 근거리 통신망에서 사용 (LAN)
- 설치 비용이 적음
- 신뢰성이 높음
- 중앙 통신 회선에 노드를 추가하거나 삭제하기 쉬움
- 스푸핑이 가능하다는 문제가 있음
- 스푸핑 : 공격자가 송신부 → 수신부로 가는 패킷을 가로채 열람/조작 하는 공격
- 스타 토폴로지
- 중앙 노드에 모두 연결된 네트워크 구성
- 노드를 추가하기 쉬움
- 에러를 탐지하기 쉬움
- 장애 노드가 중앙 노드가 아닐 경우, 다른 노드에 끼치는 영향이 적음
- 장애 노드가 중앙 노드일 경우, 전체 네트워크를 사용할 수 없음
- 패킷의 충돌 발생 가능성 적음
- 링형 토폴로지
- 각 노드가 양 옆의 두 노드와 연결하여 전체적으로 고리처럼 하나의 연속된 통신을 하는 방식
- 노드 수가 증가해도 네트워크 상의 손실이 거의 없음
- 노드에 발생한 문제를 쉽게 찾을 수 있음
- 패킷의 충돌 가능성 적음
- 네트워크 구성 변경이 어려움
- 회선에 장애 발생 시 전체 네트워크에 영향 끼침
- 메시 토폴로지
- 망형 토폴로지라고도 하며, 그물망처럼 연결된 구조
- 한 노드에 장애가 발생해도 여러 경로가 존재하기 때문에 네트워크 계속 사용 가능
- 트래픽의 분산 처리가 가능
- 노드의 추가가 어려움
- 구축 및 운영 비용이 높음
- 토폴로지의 중요성
- 병목 현상을 해결하는 데 활용됨
- 병목 현상 : 전체 시스템이 하나의 구성 요소 (= bottleneck)로 인해 제한을 받는 현상
3. 네트워크 분류
LAN (Local Area Network) |
|
MAN (Metropolitan Area Network) |
|
WAN (Wide Area Network) |
|
4. 네트워크 성능 분석 명령어
병목 현상의 주요 원인
- 네트워크 대역폭
- 네트워크 토폴로지
- 서버 CPU, Memory 사용량
- 비효율적인 네트워크 구성
네트워크 성능 분석 명령어
- ping
- Packet INternet Groper
- 대상 네트워크 노드를 향해 일정 크기의 패킷을 전송하는 명령어
- TCP/IP 프로토콜 중 ICMP 프로토콜을 이용해 동작함
- 확인 가능한 정보
- 해당 노드의 패킷 수신 상태
- 패킷이 도달하기까지의 시간
ping 10.0.0.1 ping www.google.com -n 12 # 12번 패킷을 보내라
- netstat
- 접속되어 있는 서비스들의 네트워크 상태를 표시하는 명령어
- 확인 가능한 정보
- 네트워크 접속
- 라우팅 테이블
- 네트워크 프로토콜
- 주로 서비스 포트가 열려있는지 확인할 때 사용
netstat
- nslookup
- DNS 관련 정보를 확인하는 명령어
- 특정 도메인에 매핑된 IP를 확인
nslookup
- tracert
- 윈도우 : tracert
- 리눅스 : traceroute
- 목적지 노드까지 네트워크 경로를 확인하는 명령어
- 어느 구간에서 응답 시간이 느려지는지 확인 가능
tracert www.google.com
5. 네트워크 프로토콜
- 서로 다른 장치들이 데이터를 주고 받기 위해 설정해둔 공통 인터페이스
- 약속된 규약
- IEEE or IETF에서 이를 표준화함
'CS > Network' 카테고리의 다른 글
[Network] 네트워크 계층 (0) | 2025.04.16 |
---|---|
WEB2-JavaScript (33-38강) (0) | 2021.07.19 |
WEB2-JavaScript(21-32강) (0) | 2021.07.15 |
WEB2-JavaScript (1-20강) (0) | 2021.07.14 |
WEB2-CSS (5-16강) (0) | 2021.07.13 |