본문 바로가기
제로베이스 BE 21기/면접을 위한 CS 전공지식 노트

[CS] Ch.2 네트워크 : 네트워크의 기초

by ♡˖GYURI˖♡ 2024. 5. 21.

2.1 네트워크의 기초

  • 네트워크 : 노드와 링크가 서로 연결되어 있거나 연결되어 있지 않은 집합
  • 노드 : 서버, 라우터, 스위치 등 네트워크 장치
  • 링크 : 유선 또는 무선

라우팅
어떤 네트워크 안에서 통신 데이터를 보낼 때 최적의 경로를 선택하는 과정

최적의 경로는 주어진 데이터를 가장 짧은 거리로 또는 가장 적은 시간 안에 전송할 수 있는 경로

라우터
컴퓨터 네트워크 간에 데이터 패킷을 전송하는 네트워크 장치

패킷의 위치를 추출하여, 그 위치에 대한 최적의 경로를 지정하며, 이 경로를 따라 데이터 패킷을 다음 장치로 전달
간단히 말해, 서로 다른 네트워크 간에 최적의 경로를 찾아내는 알고리즘을 활용해 중계 역할을 해주는 장치
게이트웨이의 역할을 수행하기도 함

허브 (반이중 통신방식 지원)
이더넷 네트워크에서 여러 대의 컴퓨터, 네트워크 장비를 연결하는 장치
한 대의 허브를 중심으로 여러 대의 컴퓨터와 네트워크 장비가 마치 별 모양으로 서로 연결되며, 같은 허브에 연결된 컴퓨터와 네트워크 장비는 모두 상호 간에 통신할 수 있게 됨

허브로 연결된 네트워크에서는 한 컴퓨터에서 주고받는 데이터가 같은 허브에 연결된 다른 모든 컴퓨터에 전달됨
따라서 연결된 컴퓨터의 개수가 많아질수록 네트워크에서 충돌해 노이즈가 많아지고 속도도 느려짐
이 문제를 해결해서 위해 사용하는 것이 스위치!

스위치 (전이중 통신방식 지원)
처리 가능한 패킷의 숫자가 큰 것으로, 네트워크 단위들을 연결하는 통신 장비로서 소규모 통신을 위한 허브보다 전송 속도가 개선된 것


각 컴퓨터에서 주고 받는 데이터가 허브처럼 다른 모든 컴퓨터에 전송되는 것이 아니라, 데이터를 필요로 하는 컴퓨터에만 전송되기 때문에 속도가 빨라진 것! → 허브처럼 병목 현상이 쉽게 생기지 않음
전이중 통신방식을 지원하기 때문에 송신과 수신이 동시에 일어나는 경우 반이중 통신방식을 지원하는 허브보다 훨씬 속도가 빠름

이 기능을 수행하기 위해 각 컴퓨터의 고유한 MAC 주소를 기억하고 있어야 하며, 이 주소를 통해 어떤 데이터가 어디로 전송되어야 하는지 판단

패킷
정보 기술에서 패킷 방식의 컴퓨터 네트워크가 전달하는 데이터의 형식화된 블록

제어 정보와 사용자 데이터로 이루어지며, 이는 페이로드라고도 한다.
데이터가 패킷으로 형식이 바뀔 때, 네트워크는 장문 메시지를 더 효과적이고 신뢰성 있게 보낼 수 있다.

게이트웨이
컴퓨터 네트워크에서 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 컴퓨터나 소프트웨어를 두루 일컫는 용어

다른 네트워크로 들어가는 관문(입구) 역할을 하는 네트워크 포인트
넓은 의미로 종류가 다른 네트워크 간 통로의 역할을 하는 장치
게이트웨이를 지날 때마다 트래픽도 증가하기 때문에 속도가 느려질 수 있음

게이트웨이는 하나 이상의 프로토콜을 사용하여 통신하다는 면에서 라우터, 스위치와는 구별되며 OSI 참조 모델의 7계층 가운데 어느 곳에서도 동작이 가능하므로 전송방식이 다른 통신망도 흡수함으로써 서로 다른 기종끼리도 접속을 가능하게 함

 

 

2.1.1 처리량과 지연 시간

좋은 네트워크

  • 많은 처리량을 처리할 수 있음
  • 지연 시간이 짧음
  • 장애 빈도가 적음
  • 좋은 보안

 

처리량 (throughput)

  • 링크를 통해 전달되는 단위 시간당 데이터 (단위 bps : bits per second)
  • "얼마나 많은 트랜잭션을 시스템이 처리하는가"
  • 마무리된 요청의 양

 

처리량은 사용자들이 많이 접속할 때마다 커지는 트래픽, 네트워크 장치 간의 대역폭, 네트워크 중간에 발생하는 에러, 장치의 하드웨어 스펙에 영향을 받음

 

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

 

 

지연 시간 (latency)

요청이 처리되는 시간

어떤 메시지가 두 장치 사이를 왕복하는 데 걸린 시간

 

지연 시간은 매체 타입(무선, 유선), 패킷 크기, 라우터의 패킷 처리 시간에 영향을 받음

 

 

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

네트워크 토폴로지

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

 

 

트리 토폴로지

  • 특징
    • 계층형 토폴로지
    • 트리 형태로 배치한 네트워크 구성
    • 노드의 추가, 삭제가 쉬움
  • 단점
    • 특정 노드에 트래픽이 집중될 때 하위 노드에 영향을 끼칠 수 있음

 

 

버스 토폴로지

  • 특징
    • 중앙 통신 회선 하나에 여러 개의 노드가 연결되어 공유하는 네트워크 구성
    • 근거리 통신망(LAN)에서 사용
    • 설치 비용이 적음
    • 신뢰성 우수
    • 중앙 통신 회선에 노드를 추가, 삭제하기 쉬움
    • 가장 보편적인 이더넷 위상구조
    • 모든 신호는 전체 네트워크에서 양방향으로 전파되는데, 네트워크상의 모든 장치는 같은 신호를 받게 되며, 클라이언트에 설치된 소프트웨어는 각 클라이언트가 본인에게 지정된 메시지만을 수신할 수 있도록 함
  • 단점
    • 스푸핑 가능
스푸핑
LAN상에서 송신부의 패킷을 송신과 관련 없는 다른 호스트에 가지 않도록 하는 스위칭 기능을 마비시키거나 속여서 특정 노드에 해당 패킷이 오도록 처리하는 것

 

 

스타 토폴로지

  • 특징
    • 중앙에 있는 노드에 모두 연결된 네트워크 구성
    • 노드 추가 쉬움
    • 에러 탐지 쉬움
    • 패킷의 충돌 발생 가능성 적음
    • 장애 노드가 중앙 노드가 아닐 경우 다른 노드에 영향을 끼치는 것이 적음
    • 이더넷 LAN에서 가장 널리 사용되는 물리적 토폴로지
  • 단점
    • 중앙 노드에 장애 발생 시 전체 네트워크를 사용할 수 없음
    • 설치 비용이 고가

 

 

링형 토폴로지

  • 특징
    • 각각의 노드가 양 옆의 두 노드와 연결하여 전체적으로 고리처럼 하나의 연속된 길을 통해 통신을 하는 망 구성 방식
    • 데이터는 노드에서 노드로 이동, 각각의 노드는 고리 모양의 길을 통해 패킷을 처리
    • 노드 수가 증가되어도 네트워크상의 손실이 거의 없음
    • 충돌이 발생할 가능성 적음
    • 노드의 고장 발견 쉬움
  • 단점
    • 네트워크 구성 변경이 어려움
    • 회선에 장애가 발새하면 전체 네트워크에 영향을 크게 끼침
      • FDDI 네트워크는 데이터를 시계 방향과 반시계 방향의 두 고리로 전달함으로써 취약성 극복

 

 

메시 토폴로지

  • 특징
    • 망형 토폴로지
    • 한 단말 장치에 장애가 발생해도 여러 개의 경로가 존재하므로 네트워크 계속 사용 가능
    • 트래픽 분산 처리 가능
  • 단점
    • 노드의 추가가 어려움
    • 구축 비용과 운용 비용이 고가

 

 

병목 현상

  • 토폴로지가 중요한 이유는 병목 현상을 찾을 때 중요한 기준이 되기 때문
  • 전체 시스템의 성능이나 용량이 하나의 구성 요소로 인해 제한을 받는 현상

 

 

e.g. 위처럼 서비스를 만들었는데, 병목 현상이 일어나서 사용자가 서비스를 이용할 때 지연 시간이 길게 발생하고 있음

관리자가 지연 시간을 짧게 만들기 위해 대역폭을 크게 설정했음에도 성능이 개선되지 않았음

 

관리자가 네트워크 토폴로지가 어떻게 되어 있나 확인했고, 서버와 서버 간 그리고 게이트웨이로 이어지는 회선을 추가해서 병목 현상을 해결!

 

이처럼 네트워크가 어떤 토폴로지를 갖는지, 또한 어떠한 경로로 이루어져 있는지 알아야 병목 현상을 올바르게 해결할 수 있음

 

 

2.1.3 네트워크 분류

 

규모 기준 분류

  • LAN
    • 근거리 통신망
    • 같은 건물이나 캠퍼스 같은 좁은 공간에서 운영
    • 전송 속도가 빠름
    • 혼잡하지 않음
  • MAN
    • 대도시 지역 네트워크
    • 도시 같은 넓은 지역에서 운영
    • 전송 속도 평균
    • LAN보다 혼잡
  • WAN
    • 광역 네트워크
    • 국가 또는 대륙 같은 더 넓은 지역에서 운영
    • 전송 속도 낮음
    • MAN보다 혼잡

 

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

애플리케이션 코드상에는 전혀 문제가 없는데 사용자가 서비스로부터 데이터를 가져오지 못하는 상황이 발생되기도 하며, 이는 네트워크 병목 현상일 가능성이 있음

 

네트워크 병목 현상의 주된 원인

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

이때는 네트워크 관련 테스트와 네트워크와 무관한 테스트를 통해 ‘네트워크로부터 발생한 문제점’인 것을 확인한 후, 네트워크 성능 분석을 해봐야 함

 

 

ping

  • 네트워크 상태를 확인하려는 대상 노드를 향해 일정 크기의 패킷을 전송하는 명령어
  • 해당 노드의 패킷 수신 상태와 도달하기까지 시간 등을 알 수 있음
  • 해당  노드까지 네트워크가 잘 연결되어 있는지 확인 가능
  • TCP/IP 프로토콜 중 ICMP 프로토콜을 통해 동작
    • ICMP 프로토콜을 지원하지 않는 기기를 대상으로는 실행할 수 없음
    • 네트워크 정책상 ICMP나 traceroute를 차당하는 경우 ping 테스팅 불가
ping [IP주소 또는 도메인 주소]
ping www.google.com -n 12

- n 12 옵션을 넣어 12번 패킷을 보내고, 12번 패킷을 받는 모습

ICMP 프로토콜
인터넷 제어 메시지 프로토콜

네트워크 장치에서 네트워크 통신 문제를 진단하는 데 사용하는 네트워크 계층 프로토콜
주로 데이터가 의도한 대상에 적시에 도달하는지 여부를 확인하는데 사용
ICMP는 오류 보고 및 테스트에 아주 중요하지만 분산 서비스 거부(DDoS) 공격에도 사용될 수 있음

 

 

netstat

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

라우팅 테이블
컴퓨터 네트워크에서 목적지 주소를 목적지에 도달하기 위한 네트워크 노선으로 변환시키는 목적으로 사용

 

 

nslookup

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

 

tracert

  • 윈도우 : tracert
  • 리눅스 : traceroute
  • 목적지 노드까지 네트워크 경로 확인
  • 목적지 노드까지 구간들 중 어느 구간에서 응답 시간이 느려지는지 등 확

 

 

+ ftp : 대형 파일 전송 테스팅

+ tcpdump : 노드로 오고가는 패킷 캡처

+ 네트워크 분석 프로그램 : wireshark, netmon

 

 

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

네트워크 프로토콜

  • 다른 장치들끼리 데이터를 주고받기 위해 설정된 공통된 인터페이스
  • 기업이나 개인이 발표해서 정하는 것이 아닌 IEEE 또는 IETF라는 표준화 단체가 정함

 

 

 

 


 

라우터 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 일반적인 가정용/소형 오피스용 라우터의 모습. ADSL 전화선 및 이더넷 네트워크 케이블 연결부가 보인다. 라우터(router[a] 혹은 라우팅 기능을 갖는 공유기)는 컴

ko.wikipedia.org

 

라우팅 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 라우팅(영어: routing)은 어떤 네트워크 안에서 통신 데이터를 보낼 때 최적의 경로를 선택하는 과정이다. 최적의 경로는 주어진 데이터를 가장 짧은 거리로 또는

ko.wikipedia.org

 

네트워크 패킷 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 패킷(packet, 문화어: 파케트, 소포)은 정보 기술에서 패킷 방식의 컴퓨터 네트워크가 전달하는 데이터의 형식화된 블록이다. 패킷은 제어 정보와 사용자 데이터

ko.wikipedia.org

 

게이트웨이 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 게이트웨이(gateway, 문화어: 망관문)는 컴퓨터 네트워크에서 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 컴퓨터나 소프트웨어

ko.wikipedia.org

 

네트워크 스위치 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 50포트 이더넷 스위치의 하나인 어바이어 ERS 2550T-PWR 네트워크 스위치(network switch)는 처리 가능한 패킷의 숫자가 큰 것으로, 네트워크 단위 들을 연결하는 통신

ko.wikipedia.org

 

이더넷 허브 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. MDI-X/MDI 포트 선택이 가능한 4포트 10BASE-T 이더넷 허브. 이더넷 허브(영어: ethernet hub, active hub, network hub, repeater hub, multi-port reapter 또는 hub, 문화어: 망집선기)는

ko.wikipedia.org

 

성능 - 처리량

애플리케이션 모니터링 | 성능에 있어서 처리량의 의미는 "얼마나 많은 요청을 완료 할 수 있는가" 입니다. 조금 더 전문적으로 표현하면 "얼마나 많은 트랜잭션을 시스템이 처리하는가" 라고

brunch.co.kr

 

버스 네트워크 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 버스 네트워크 토폴로지 버스 위상구조, 버스 네트워크(bus network)는 버스라 불리는 공유 통신 경로를 통해 연결된 클라이언트의 집합을 가리키는 네트워크 구

ko.wikipedia.org

 

스타 네트워크 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 스타 네트워크(star network)는 이더넷 LAN에서 가장 널리 사용되는 물리적 토폴로지이다. 주된 네트워크 장비에 기타 네트워크 장비를 추가로 연결하기 위해 스타

ko.wikipedia.org

 

링 네트워크 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전.

ko.wikipedia.org

ICMP 프로토콜

https://www.cloudflare.com/ko-kr/learning/ddos/glossary/internet-control-message-protocol-icmp/

 

리눅스 명령어 netstat

⚙️ 리눅스 명령 구조 > 형식 -> 명령 [옵션] [인자] 명령 : 사용자가 컴퓨터 운영체제나 응용프로그램에게 어떤 서비스를 수행하도록 요구하는 것 옵션 : 옵션을 사용하여 명령의 세부 기능을 선

velog.io

 

라우팅 테이블 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 라우팅 테이블(영어: routing table)은 컴퓨터 네트워크에서 목적지 주소를 목적지에 도달하기 위한 네트워크 노선으로 변환시키는 목적으로 사용된다. 라우팅 프

ko.wikipedia.org