Development/CS

[면접을 위한 CS 전공 지식 노트] 2.1 네트워크의 기초

lovetan 2025. 1. 8. 08:33

Section 1. 네트워크의 기초

네트워크란?

노드(네트워크 장치 *서버, 라우터, 스위치 등)와 링크(유선/무선)가 서로 연결되어 있으며 리소스를 공유하는 집합을 의미한다.

 

2.1.1 처리량과 지연 시간

좋은 네트워크란?

  1. 처리량 🔼
    • 의미: 성공적으로 전달·처리된 데이터 양(트래픽)
    • 단위: bps - 초당 전송/수신되는 비트 수 
    • 영향을 주는 요소 - 트래픽(접송량), 네트워크 장치 간 대역폭, 네트워크 중 발생된 에러, 장치의 하드웨어 스펙
  2. 지연 시간 🔽
    • 요청이 처리되는 시간. 즉, 메시지가 두 장치 사이를 왕복하는데 걸린 시간
    • 영향을 주는 요소 - 매체 타입(무선/유선), 패킷 크기, 라우터 패킷 처리 시간
  3. 장애 빈도 🔽
  4. 좋은 보안

 

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

네트워크 토폴로지란?

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

5 가지 유형으로 트리, 버스, 스타, 링형, 메시 방식이 있다.

유형 1. 트리 토폴로지 2. 버스 토폴로지 3. 스타 토폴로지 4. 링형 토폴로지 5. 메시 토폴로지
개념 계층형 토폴로지 - 회선 하나에 여러 개 노드 연결되어 공유
- LAN(근거리 통신)에 사용
중앙에 있는 노드에 모두 연결된 네트워크 구성 노드가 양 옆 두 노드와 연결하여 전체적으로 고리처럼 하나의 연속된 길을 통해 통신 망형 토폴로지
그림
장점 노드의 추가, 삭제 용이 - 설치 비용 적음
- 신뢰성 우수
- 중앙 통신 회선에 노드 추가, 삭제 용이

- 노드 추가, 에러 탐지 용이
- 패킷 충돌 가능성 작음
- 중앙 노드만 아니면 다른 노드끼리는 영향이 적음
- 노드 수 증가에도 네트워크상 손실 없음
- 충돌 발생 가능성 적음
- 노드 고장 발견 쉬움

- 여러 경로가 있어 한 단말 장치 장애 발생시에도 네트워크 지속 사용 가능
- 트래픽 분산 처리 가능
단점 특정 노드에 트래픽이 집중될 때 하위 노드에 영향을 끼칠 수 있음 스푸핑*이 가능함

*스푸핑: LAN상에서 스위칭 기능을 마비시키거나 속임. 송신부의 패킷을 악의적인 노드에 오도록 처리함.
- 중앙 노드 장애 발생시, 전체 네트워크 사용 불가
- 설치 비용 💲 고가
- 네트워크 구성 변경 어려움
- 회선에 장애 발생시, 전체 네트워크에 큰 영향
 - 노드 추가 어려움
- 구축 비용, 운용 비용 💲 고가

 

토폴로지가 중요한 이유: 병목 현상을 찾을 때 중요한 기준이 됨

 

병목 현상이란?

전체 시스템의 성능, 용량이 하나의 구성 요소 때문에 제한 받는 현상을 의미한다.

트래픽을 잘 관리하지 못하면 병목 현상이 생겨 사용자는 웹 사이트로 들어가지 못하게 된다. 

  • 토폴로지를 알고 있다면 어떤 부분에 어떤 회선, 어떤 서버의 용량을 증가시켜야 하는지 알 수 있다.
병목 현상 발생 토폴로지 확인 후 문제 해결

병목 현상이 발생하여 서비스 지연 시간이 길어짐 서버-서버 회선, 게이트웨이 연결 회선 추가

 

 

2.1.3 네트워크 분류

네트워크는 규모를 기반으로 분류한다.

  1. LAN: 근거리 통신망
    • 좁은 공간(같은 건물, 캠퍼스)에서 운영된다.
    • 전송 속도 빠름. 혼잡도 낮음.
  2. MAN: 대도시 지역 네트워크
    • 넓은 지역(도시)에서 운영된다.
    • 전송 속도 평균. LAN보다 더 혼잡.
  3. WAN: 광역 네트워크
    • 더 넓은 지역(국가, 대륙)에서 운영된다.
    • 전송 속도 낮음. MAN보다 더 혼잡.

 

2.1.4 네트워크 성능 분석 명령어

사용자가 서비스에서 데이터를 가져오지 못하고 있다.

네트워크로부터 발생한 문제라면, 네트워크 성능 분석을 해야 한다.

 

이러한 네트워크 병목 현상의 주된 원인은?

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

네트워크 성능 분석 명령어

1. ping(Packet INternet Groper)

  • 개념: 타겟 노드(네트워크 상태를 확인하려는 노드)를 향해 일정 크기의 패킷을 전송하는 명령어이다.
  • 의의: 해당 노드의 패킷 수신 상태, 도달하기까지 시간 등과 네트워크 잘 연결되어 있는지 확인이 가능한다.
  • 특징: TCP/IP 프로토콜 중 ICMP 프로토콜을 통해 동작한다.

  • macOS에서는 -c 옵션으로 ping 명령어를 사용한다.
  • ping -c 12 www.google.com
  • 전송 패킷수, 손실 패킷 수, 왕복 시간의 정보를 얻을 수 있다.

 

2. netstat

  • 접속되어 있는 서비스들의 네트워크 상태 표시
  • 네트워크 접속, 라우팅 테이블, 네트워크 프로토콜 등 리스트를 보여줌
  • 사용 목적: 서비스의 포트가 열려있는지 확인

  • 현재 내가 접속하고 있는 사이트 등에 관한 네트워크 상태 리스트 확인 가능 

3. nslookup

  • DNS(Domain Name System)*에 관련된 내용 확인을 위한 명령어
    • *DNS: 도메인 이름과 IP 주소를 매핑해주는 서버이다. 이를 통해 IP 주소가 바뀌어도 사용자들에게 똑같은 도메인 주소로 서비스할 수 있다. 예를 들어 www.naver.com의 IP 주소가(111.111 ->  222.122)로 바뀌었더라도 똑같은 www.naver.com이라는 주소로 서비스가 가능하다.
  • 특정 도메인에 매핑된 IP를 확인하기 위해 사용

 

4. tracert / traceroute

  • 목적지 노드까지 네트워크 경로를 확인할 때 사용
  • 어느 구간에서 응답 시간이 느려지는지 확인할 수 있음

구글 사이트에 도달하기까지의 경로 추적

 

4. etc ..

  • 명령어
    • ftp: 대형 파일 전송하여 테스팅
    • tcpdump: 노드로 오고 가는 패킷 캡처
  • 네트워크 분석 프로그램
    • wireshark
    • netmon

2.1.5 네트워크 프로토콜 표준화

네트워크 프로토콜이란?

다른 장치들끼리 데이터를 주고받기 위해 설정된 공통된 인터페이스를 의미한다.

IEEE, IETF 라는 표준화 단체가 이를 정한다. 

 

예시 | HTTP: '서로 약속된' 인터페이스인 HTTP라는 프로토콜을 통해 노드들은 웹 서비스를 기반으로 데이터를 주고받을 수 있다.