[CS] 네트워크 기초

눈치없어·2025년 4월 29일

네트워크: 노드(node)와 링크(link)가 연결되어 리소스를 공유하는 집합

  • 노드: 서버, 라우터, 스위치 등 네트워크 장치
  • 링크: 유선 또는 무선 연결

처리량과 지연 시간

네트워크 구축 시 "좋은" 네트워크로 만드는 것이 중요

좋은 네트워크의 조건
- 많은 처리량 처리 가능
- 지연 시간 짧음
- 장애 빈도가 적음
- 보안 우수


처리량

링크 내에서 성공적으로 전달된 데이터의 양

  • 단위: bps(bits per second): 처리량에서 사용하는 단위로 초당 전송 또는 수신되는 비트 수라는 의미

처리량에 영향을 주는 요소

  • 트래픽 증가
  • 네트워크 장치 간의 대역폭
  • 네트워크 중간에 발생하는 에러
  • 하드웨어 스펙

트래픽: 링크 내에 '흐르는' 데이터 양
처리량: 흐르는 데이터 중 실제 처리된 양

  • 트래픽이 많아졌다 = 흐르는 데이터가 많아졌다
  • 처리량이 많아졌다 = 처리되는 트래픽이 많아졌다
  • 많은 트래픽을 처리한다 = 많은 처리량을 가진다

대역폭
주어진 시간 동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수


지연 시간

요청이 처리되는 시간. 어떤 메시지가 두 장치 사이를 왕복하는 데 걸린 시간

지연 시간에 영향을 주는 요소

  • 매체 타입(무선, 유선)
  • 패킷 크기
  • 라우터의 패킷 처리 시간


네트워크 토폴로지와 병목 현상

네트워크 토폴로지

노드와 링크가 어떻게 배치되어 있는지에 대한 방식이자 연결 형태

📌 트리 토폴로지

  • 계층형 구조, 트리 형태로 네트워크 구성
  • 노드의 추가/삭제가 쉬움
  • 특정 노드에 트래픽이 집중될 때 하위 노드에 영향을 끼칠 수 있음

📌 버스 토폴로지

  • 중앙 통신 회선 하나에 여러 개의 노드가 연결되어 공유
  • 근거리 통신망(LAN)에서 사용
  • 설치 비용이 적고 신뢰성 우수
  • 중앙 통신 회선에 노드를 추가/삭제하기 쉬움
  • 스푸핑 위험

📌 스푸핑

  • 네트워크상 송신부의 패킷이 엉뚱한 노드로 가게 만드는 공격
  • 스위칭 기능을 속여서 패킷을 탈취

스푸핑을 적용하면 올바르게 수신부로 가야 할 패킷이 악의적인 노드에 전달되게 됨


📌 스타 토폴로지

  • 모든 노드가 중앙 노드에 연결
  • 노드를 추가/에러 탐지가 쉬움
  • 패킷 충돌 발생 가능성 적음(어떠한 노드에 장애가 발생해도 쉽게 에러 발견 가능)
  • 장애 노드가 중앙 노드가 아닐 경우 다른 노드에 영향을 끼치는 것이 적음
  • 중앙 노드 장애 시 전체 네트워크를 사용할 수 없고 설치 비용이 높음

📌 링형 토폴로지

  • 각각의 노드가 양 옆 노드와 연결해 고리형 통신
  • 데이터가 노드를 따라 이동
  • 노드 고장 탐지 쉬움, 충돌 가능성 적음
  • 구성 변경 어려움, 장애 발생 시 전체 영향

📌 메시 토폴로지(망형 토폴로지)

  • 모든 노드가 여러 경로로 연결된 망형 구조
  • 장애 발생 시 다른 경로로 통신 가능(트래픽 분산 효과)
  • 노드 추가가 어렵고 구축/운용 비용 고가인 단점이 있음

병목 현상

네트워크의 구조라고도 일컫는 토폴로지가 중요한 이유는 병목 현상을 찾을 때 중요한 기준이 되기 때문

병목 현상
시스템 전체 성능이 특정 구성 요소에 의해 제한되는 현상
(병 목 부분이 좁아 물이 천천히 흐르는 것처럼 트래픽이 막히는 현상)
예: 이벤트 트래픽 폭증 → 서버 과부하 → 사용자 접속 불가


예시 흐름

  • 서비스 트래픽 증가 → 사용자 지연 발생
  • 대역폭 크게 설정 → 성능 개선 X
  • 네트워크 토폴로지를 확인해 회선 추가
  • 서버 간 / 게이트웨이 간 경로를 확장하여 병목 현상 해결

회신 추가 전

회신 추가 후



네트워크 분류

LAN: 근거리 통신망, 빠른 전송 속도, 혼잡 적음
사무실, 학교, 캠퍼스 등 좁은 공간

MAN: 대도시 통신망, 평균 전송 속도, 다소 혼잡
서울시 같은 도시 규모

WAN: 광역 통신망, 낮은 전송 속도, 매우 혼잡
국가, 대륙 단위의 광범위 지역



네트워크 성능 분석 명령어

애플리케이션 코드에는 문제가 없지만 사용자가 데이터를 받지 못할 경우,
네트워크 병목 현상을 의심할 수 있음


네트워크 병목 주요 원인

  • 네트워크 대역폭
  • 네트워크 토폴로지
  • 서버 CPU, 메모리 사용량
  • 비효율적인 네트워크 구성

문제 원인을 파악하려면 네트워크 테스트 및 성능 분석이 필요


1️⃣ ping

  • 대상 노드로 패킷을 보내 도달 여부, 응답 시간을 확인
  • TCP/IP 프로토콜 중 ICMP를 이용해 동작
  • ICMP 차단된 장비나 정책에서는 사용 불가
  • 사용법: ping [IP 주소 또는 도메인 주소]

2️⃣ netstat

  • 서비스들의 네트워크 연결 상태 확인
  • 열려 있는 포트, 라우팅 테이블, 네트워크 프로토콜 등 조회
  • 주로 서비스 포트 오픈 여부 점검에 사용

3️⃣ nslookup

  • DNS 관련 정보 확인
  • 도메인에 매핑된 IP 주소를 조회할 때 사용

4️⃣ tracert

  • 목적지 노드까지 네트워크 경로를 추적
  • 중간 어느 구간에서 응답 지연이 발생하는지 확인 가능
  • 윈도우: tracert / 리눅스: traceroute

⏹️ 그 외 유용한 명령어

도구설명
ftp대용량 파일 전송 후 성능 테스트
tcpdump노드로 오가는 패킷 캡처
Wireshark네트워크 패킷 분석 프로그램
Netmon네트워크 모니터링 도구


네트워크 프로토콜 표준화

다른 장치들끼리 데이터를 주고받기 위해 설정된 공통 인터페이스
즉, 서로 다른 장비들이 약속된 규칙을 따라 통신할 수 있도록 하는 것

기업이나 개인이 발표해서 정하는 것이 아니라, IEEE 또는 IETF라는 표준화 단체가 이를 정함


예시
IEEE802.3: 유선 LAN 통신 프로토콜 (Ethernet)
서로 다른 제조사의 장비라도 유선 LAN을 통해 통신 가능

HTTP: 웹 접속 시 사용되는 통신 프로토콜
브라우저(클라이언트)와 서버가 HTTP 약속에 따라 데이터를 주고받음




참고: 북스터디 - 면접을 위한 CS 전공지식 노트 (Chapter 2-1)

profile
dock 사이즈 다르잖아

0개의 댓글