[CS지식] 2-1. 네트워크의 기초

김zunyange·2023년 5월 24일
0

CS Note

목록 보기
7/13
post-thumbnail

비전공자이자 신입개발자인 나는 실제로 코딩하는 것만큼 컴퓨터 공학에 대한 기본지식을 쌓아야하는 점도 중요하고 웹 개발자로서 네트워크 지식은 반드시 필요하다고 본다. 나를 위해서라도 최대한 쉽게 정리해보려 한다!

Chapter 2. 네트워크

2장에서는 네트워크의 기초부터 시작하여 네트워크를 이루는 계층, 장치 등에 대해 배운다.

2-1. 네트워크의 기초

네트워크란?
노드(node)와 링크(link)가 서로 연결되어 있으며 리소스를 공유하는 집합

대부분은 네트워크를 Net + Work 의 합성어로 컴퓨터들이 통신 기술을 이용하여 그물망처럼 연결된 통신 이용 형태 정도로 알고 있을 것이다. 여기서 책의 내용대로 이해하자면,

식물을 예로 들어서 줄기와 잎을 연결하는 곳을 실제로 '노드'라고 부른다. 이처럼 컴퓨터부터 시작해 네트워크를 교통 정리하는 루터나 허브, 네트워크 상에 다양한 서비스를 제공하고 있는 서버, 라우터, 스위치 더욱이 네트워크에 연결되어 있는 프린터나 IP전화기 등에 관해서도 '노드'라고 부른다.

한편 노드와 노드를 연결하고 있는 (케이블 등) 것을 '링크' 라고 부르며, '링크''노드'를 합쳐서 1개의 네트워크가 완성되는 것이다.

2-1-1. 그렇다면 '좋은' 네트워크란 무엇일까?

네트워크를 구축할 때는 많은 처리량을 처리할 수 있으며 지연시간이 짧고 장애 빈도가 적으며 좋은 보안을 갖춘 네트워크가 좋은 네트워크라고 할 수 있다.

처리량(throughput)은 '링크' 내에서 성공적으로 전달된 데이터의 양을 말하며, 보통 얼만큼의 트래픽을 처리했는지를 나타낸다.

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

지연 시간(latency)은 요청이 처리되는 시간이며, 어떤 메시지가 두 장치 사이를 왕복하는 데 걸린 시간을 말한다. 지연 시간은 매체 타입(무선, 유선), 패킷 크기, 라우터의 패킷 처리 시간에 영향을 받는다.
*패킷 : 컴퓨터 간에 데이터를 주고받을 때 네트워크를 통해서 전송되는 데이터 조각


2-1-2. 네트워크 토폴로지와 병목 현상

네트워크 토폴로지

네트워크 토폴로지란?
'노드''링크'가 어떻게 배치되어 있는지에 대한 방식이나 연결 형태

트리 토폴로지버스 토폴로지스타 토폴로지링형 토폴로지메시 토폴로지
구성방식트리 형태로 배치한 네트워크 구성중앙 통신 회선 하나에 여러 개의 노드가 연결되어 공유하는 네트워크 구성중앙에 있는 노드에 모두 연결된 네트워크 구성각각의 노드가 양 옆의 노드와 연결하여 고리처럼 하나의 연속된 길을 통해 통신을 하는 망 구성 방식그물망처럼 연결돼있는 구조
노드 추가노드 추가, 삭제가 쉽다.중앙 통신 회선에 노드 추가, 삭제가 쉽다.노드 추가, 에러 탐지가 쉽다.노드 수가 증가하여도 네트워크 상의 손실이 거의 없고 충돌이 발생되는 가능성이 적고 노드의 고장 발견을 쉽게 찾을 수 있다.노드 추가가 어렵다.
특징설치 비용이 적고 신뢰성이 우수하다. 근거리 통신망(LAN)에서 사용한다.패킷의 충돌 발생 가능성이 적다. 어떠한 노드에 장애가 발생해도 에러 발견이 쉽다. 장애 노드가 중앙 노드가 아닐 경우 다른 노드에 영향을 끼치는 것이 적다.데이터는 노드에서 노드로 이동을 하며, 각각의 노드는 고리 모양의 길을 통해 패킷을 처리한다.한 단말 장치에 장애가 발생해도 여러 개의 경로가 존재하므로 네트워크를 계속 사용할 수 있고 트래픽도 분산 처리가 가능하다.
단점특정 노드에 트래픽이 집중될 때 하위 노드에 영향을 끼칠 수 있다.스푸핑이 가능하다.장애 노드가 중앙 노드일 경우 전체 네트워크를 사용할 수 없고 설치 비용이 고가이다.네트워크 구성 변경이 어렵고 회선에 장애가 발생하면 전체 네트워크에 영향을 끼친다.구축 비용과 운용 비용이 고가이다.

스푸핑이란?
스푸핑은 LAN 상에서 송신부의 패킷을 송신과 관련 없는 다른 호스트에 가지 않도록 하는 스위칭 기능을 마비시키거나 속여서 특정 '노드'에 해당 패킷이 오도록 처리하는 것

쉽게 말해, 다른사람의 컴퓨터 시스템에 접근할 목적으로 IP주소를 변조한 후 합법적인 사용자인 것처럼 위장하여 시스템에 접근함으로써 나중에 IP주소에 대한 추적을 피하는 해킹 기법의 일종이다.

병목 현상

이외에도 여러 토폴로지 종류가 있는데, 네트워크의 구조라고도 일컫는 이 토포롤지가 중요한 이유는 병목 현상을 찾을 때 중요한 기준이 되기 때문이다.

병목 현상이란?
전체 시스템의 성능이나 용량이 하나의 구성 요소로 인해 제한을 받는 현상

예를 들어 왼쪽 그림처럼 서비스를 만들었는데, 병목 현상이 일어나서 사용자가 서비스를 이용할 때 지연 시간이 길게 발생하고 있다. 관리자가 지연 시간을 짧게 만들기 위해 대역폭을 크게 설정했음에도 성능이 개선되지 않았다.

관리자가 네트워크 토폴로지가 어떻게 되어 있나 확인했고, 서버와 서버 간 그리고 게이트웨이로 이어지는 회선을 추가해서 병목 현상을 해결했다. 이처럼 네트워크가 어떤 토폴로지를 갖는지, 또한 어떠한 경로로 이루어져 있는지 알아야 병목 현상을 올바르게 해결할 수 있다.

병목 현상은 링 토폴로지에서 가장 드물고, 트리 토폴로지에서는 중앙 지점에서 발생할 수 있고, 성형 토폴리지에서는 잠재적 병목성을 갖고 있다고 한다.

2-1-3. 네트워크 분류

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

LAN (개인 소유 가능) < MAN < WAN

LAN (Local Area Network)MAN (Metropolitan Area Network)WAN (Wide Area Network)
근거리 통신망대도시 지역 네트워크광역 네트워크
같은 건물이나 캠퍼스 같은 좁은 공간에서 운영된다.도시 같은 넓은 지역에서 운영된다.국가 또는 대륙 같은 더 넓은 지역에서 운영된다.
전송 속도가 빠르고 혼잡하지 않다.전송 속도는 평균이며 LAN보다는 더 많이 혼잡하다.전송 속도는 낮으며 MAN보다 더 혼잡하다.

그렇다면 왜 이렇게 나눴을까?

이유는 각 영역안에서 데이터 트래픽이 발생하는데 그 트래픽을 좀 더 효율적으로 처리하기 위해서이다.
LAN에서 서로 데이터트래픽에 문제가 있는걸 광범위인 WAN에서 찾고 처리할려면 얼마나 힘들까요?
즉, LAN에서 발생한 트래픽은 LAN 영역에서 처리하고 MAN영역에서 발생한 트래픽은 정해진 MAN 영역에서 처리하여 좀 더 효율적으로 일을 하기 위해서이다.

그렇다면 가장 큰 WAN는 두 가지로 생성된다는 것을 알 수 있다.

1️⃣. LAN1 과 LAN2 을 라우터와 라우터로 연결 하면 WAN !

2️⃣. LAN이 모이면 MAN이 되고 -> MAN이 모이면 WAN !

2-1-4. 네트워크 성능 분석 명령어

코드상에는 전혀 문제가 없는데 사용자가 서비스로부터 데이터를 가져오지 못하는 상황이 발생되기도 한다. 이는 네트워크 병목 현상일 가능성이 있는데, 이때는 네트워크 관련 테스트와 네트워크와 무관한 테스트를 통해 네트워크로부터 발생한 문제점인 것을 확인한 후, 네트워크 성능 분석을 해봐야 한다. 이때 사용되는 명령어들을 알아보자.

(1) Ping(Packet INternet Groper)

게임을 하다보면 가끔 서버가 끊기며 핑이 높다. 핑이 터졌다.는 말을 할 때가 있다. 나 또한 대충 네트워크가 불안정하다는 뜻으로 사용한 적이 있었는데, 개발자의 시선🧐으로 다시 이해해보겠다.

ping이란?
네트워크 상태를 확인하려는 대상 '노드'를 향해 일정 크기의 패킷을 전송하는 명령어

이를 통해 해당 '노드'의 패킷 수신 상태와 도달하기까지의 시간 등을 알 수 있으며 해당 '노드'까지 네트워크가 잘 연결되어 있는지 확인할 수 있다.
*패킷 : 컴퓨터 간에 데이터를 주고받을 때 네트워크를 통해서 전송되는 데이터 조각

(2) Netsat

netsat이란?
접속되어 있는 서비스들의 네트워크 상태를 표시하는 데 사용되며, 네트워크가 접속, 라우팅 테이블, 네트워크 프로토콜 등 리스트를 보여주는 명령어

주로 서비스의 포트가 열려 있는지 확인할 때 사용한다.

(3) Nslookup

nslookup이란?
DNS에 관련된 내용을 확인하기 위해 쓰는 명령어

특정 도메인에 매핑된 IP를 확인하기 위해 사용한다.
*DNS(Domain Name System) : 사용자가 숫자로 된 인터넷 프로토콜 주소 대신 인터넷 도메인 이름과 검색 가능한 URL을 사용하여 웹사이트에 접속하는 것
📡 대신

(4) Tracert

tracert이란?
목적지 '노드'까지 네트워크 경로를 확인할 때 사용하는 명령어

'노드'까지의 구간들 중 어느 구간에서 응답 시간이 느려지는지 등을 확인할 수 있다.

(5) Ftp(File Transfer Protocol)

ftp란?
원격에 있는 서버에 파일을 주고 받을 때 사용하는 인터넷 통신 규약

  • 대형 파일을 전송하여 테스팅한다.
  • 내 컴퓨터에 있는 파일을 계정을 제공하는 서버로 파일을 서로 이동시킨다.
  • WWW방식보다 파일을 빠른 속도로 한꺼번에 주고 받을 수 있다.

이외에도 많은 네트워크 성능 분석 명령어가 있으며 네트워크 오류의 원인을 이러한 도구를 통해 파악할 수 있다.


그렇다면 여러가지 형태로 네트워크를 주고 받기 위해서는 그 방법을 통일해야 할 필요가 있을 것이다.

2-1-5. 네트워크 프로토콜 표준화

네트워크 프로토콜(규칙)이란?
다른 장치들끼리 주고받기 위해 설정된 공통된 인터페이스

표준화한 프로토콜로 다른 장치라도 여러 기업이 서로 데이터를 수신할 수도 있고, 'HTTP' 같은 서로 약속된 인터페이스로 '노드'들은 웹 서비스를 기반으로 데이터를 주고받을 수도 있다.

네트워크에 대해 좀 더 알고싶다면?


📍 출처
주홍철, [면접을 위한 CS 전공지식 노트]
http://www.terms.co.kr/topology.htm
https://fnvlfnfl123.tistory.com/3

📍 참고하면 좋을 사이트
https://luv-n-interest.tistory.com/1170
https://enlqn1010.tistory.com/9
https://www.ibm.com/kr-ko/topics/dns
https://slidesplayer.org/slide/14028937/

profile
배움은 즐거워 ~(*ૂ❛ᴗ❛*ૂ)

0개의 댓글