천재적인 CS/네트워크

컴퓨터 네트워크란? 네트워크를 알아야 하는 이유

강하다이녀석 2023. 11. 5. 01:49

2.1 네트워크의 기초

네트워크란 : 장치가 마치 그물처럼 서로 연결되어 정보를 주고 받을 수 있는 통신 망(그래프 형태)

- Net + Work 의 합성어로써 컴퓨터들이 통신 기술을 이용하여 그물망처럼 연결된 통신 이용 형태를 의미.

: 쉽게 -> 두개 이상의 컴퓨터 및 장치들이 연결되어 데이터를 주고 받을 수 있는 시스템 또는 구조.(연결만 되어있으면 되는 게 아니라 데이터를 주고 받을 수 있어야 함)

- 노드 : 서버, 라우터, 스위치 등 네트워크 장치
- 링크(엣지) : 유선 또는 무선과 같은 연결매체 (와이파이나 LAN)

 

인터넷 : 네트워크의 네트워크. 여러 네트워크를 연결한 것. 

-> 내부에서도 통신하고, 네트워크 간에서도 통신

 

 

네트워크의 기본 구조.

그래프 구조. : 노드와 간선(유무선)으로 이루어진 자료 구조.

 

호스트

-네트워크의 가장자리 노드. (최초 송신, 혹은 최종적으로 수신하는 장치) 

역할에 따른 구분

  • 클라이언트 : 요청을 보내는 호스트
  • 서버 : 요청에 대한 응답을 하는 호스트

 

네트워크 장비

  • 중간 노드 (이더넷 허브, 스위치, 라우터, 공유기 등)
  • 주고 받는 정보가 수신까지 안정적으로 갈 수 있도록...

 

-> 호스트, 네트워크, 서버, 클라이언트는 각각 배타적인 개념이 아님!

호스트<-> 네트워크 장비 역할 수행 가능. 서버<-> 클라이언트 역할 수행 가능.

 

 

통신 매체(간선)

  • 유선
  • 무선

-> 성능과 관련 있어서 개발자도 알아둬야 함. 뒷받침하는 간선이 케이블, 무선 매체의 성능을 모른다면 무쓸모. 

 

메세지

노드가 주고 받는 정보.

- 웹페이지, 파일, 메일 등.

 

 

네트워크의 분류

범위에 따른 분류

- LAN :소규모, 가까운 지역 (가정집, 사무실 등)

CAN(학교나 회사 등), MAN(도시 등 대단위)

- WAN : 광범위. 다른 LAN에 속한 호스트와 통신해야할 떄 필요,

(누가 구축할까요? ISP :KT, SK, LG유플러스)

사용자에게 인터넷같은 WAN에 연결 가능한 회선을 임대하는 등 WAN과 관련된 다양한 서비스 제공.

 

 

메세지 교환 방식에 따른 분류

  • 회선 교환 네트워크
  • 패킷 교환 네트워크(오늘날 주로)

회선 교환 방식

- 메세지 주고받기 전, 회선(메세지 전송로)을 설정하고, 그 회선으로 메세지를 주고받는다. (두 호스트를 연결할 전송로를 확보하기)

- 회선 스위치: 호스트 사이에 일대일 전송로를 확보

 

장점 : 전송로를 미리 확보 -> 주어진 시간 동안 전송되는 정보의 양이 일정함. (이 회선으로 전송하니까 일정)

단점: 회선 이용 효율이 낮아짐.(메시지를 주고 받지 않으면서 회선을 점유할 수 있기 때문, 가능한 모든 회선에 끊임없이 메세지가 흘러야 효율적.) 도로 딲아 놨는데 아무도 안씀.

 

패킷 교환 방식

- 매시지를 패킷이라는 단위로 쪼개어 전송.(각기 다른 수신로를 사용할 수 있고, 각기 다른 순서로 도착할 수 있음) 

- 쪼갠게 수신지에서 재조립됨. 

-전송로 이용 효율이 높아서 회선 교환 방식의 문제점 해결.

큰 파일을 패킷이라는 단위로 쪼갰다가-> 재조립해서 수신.

 

패킷

패킷 스위치

- 패킷의 송수신지를 식별, 패킷이 이동할 최적의 경로를 결정

-라우터, 스위치 등.

 

패킷의 구조

  • 페이로드 : 전송하려는 데이터 (like 택배 물건)
  • 헤더, 트레일러 : 부가 정보 또는 제어 정보(like 택배 송장), 트레일러는 없을 수도 있다.

주소

헤더에 담기는 대표적 정보.

- 송수신지를 특정하는 정보(IP주소, MAC주소 등)

- 주소가 있으면 누구에게 전송할지 지정할 수 있음.(특정 기기 하나, 같은 네트워크 내 모든 기기, 같은 그룹... 등으로 지정)

 

유형

유니캐스트

- 하나의 수신지에 메세지를 전송

- 1:1(가장 일반적)

 

브로드 캐스트

- 네트워크 상 모든 호스트

- 브로드캐스트 도메인 : 브로드캐스트가 전송되는 범위 (LAN의 범위 == 브로드캐스트 도메인이 닿는 거리)

 

멀티 캐스트

- 네트워크 내 동일 그룹에 속한 호스트에게만 전송

 

애니 캐스트

- 네트워크 내 동일그룹에 속한 호스트 중 가장 가까운 호스트에게 전

 

 

 

* 다른 책에서 말하는 설명

LAN 근거리 영역 네트워크 (공유기, 허브 또는 스위치에 연결되어있는 네트워크)
WAN 지역, 국가 등 광역 네트워크. LAN을 연결한 들
라우터 - 데이터가 목적지에 원활하게 도착할 수 있도록 적절한 통신 경로를 안내하는 장치.

- 여러 네트워크를 연결하고, 패킷을 받아 최적의 경로를 선택하여 다른 네트워크로 전달
호스트 네트워크에 연결되어 데이터 통신이 가능한 장치. PC, 서버, 스마트폰 등등...
패킷 정보를 보낼 때 특정 형태를 맞추어 보내 컴퓨터 간에 데이터를 주고 받을 떄 네트워크를 통해 전송되는 데이터 조각
허브 데이터를 자신에게 연결된 모든 기기에게 전달하는 연결장비. 
- 한 번에 하나의 장비만 데이터를 보낼 수 있어서 성능 저하 문제가 있음.
-> 브로드 캐스팅 방식 
스위치 네트워크 장치 연결, 네트워크 트래픽 교환하고 전달.
- 해당 데이터를 요청한 기기가 누구인지 파악하고 정확한 목적지로 전달. 
-> 출발, 목적지가 하나만 있는 유니캐스트 방식.

네트워크에서 패킷을 어떻게 주고 받을까?

-페이로드를 택배 상자에 넣고

- 헤더(주소와 송장)를 작성하고 첨부

- 네트워크 장비(택배 기사)를 통해 발송

 

-> 나, 수신자, 택배기사가 이해하는 언어가 통해야 한다.

 

네트워크 세상의 언어, 프로트콜(일상 속 언어와는 달리, 프로토콜은 통신 과정에서 여러개를 함꼐 사용)

프로토콜 : 노드 간에 정보를 올바르게 주고받기 위해 합의된 규칙이나 방법.

 

- 프로토콜을 이해하기 위해서는 목적과 특징을 알아야 한다.(특정 목적을 위해서 만들어진 헤더를 주고받는다)

프로토콜마다 목적과 특징이 달라서 헤더에 포함되는 정보가 다르다

 

 

2.1.1 처리량과 지연 시간

네트워크를 구출할 때는 좋은 네트워크로 만드는 것이 중요하다.
좋은 네트워크의 조건

  1. 많은 처리량(링크를 통해 전달되는 시간당 데이터의 양)을 처리할 수 있다. : 많은 트래픽을 처리한다 = 많은 처리량을 가진다
    • 단위로는 bps(bits per second)를 쓴다. 초당 전송 또는 수신되는 비트 수라는 의미이다.
    • 트래픽, 네트워크 장치 간의 대역폭, 네트워크 중간에 발생하는 에러, 하드웨어 스펙에 영향을 받는다.
트래픽 : 특정 시점에 링크 내에 흐르는 데이터의 양. 
<처리량과의 차이>
- 트래픽이 많아짐 = 흐르는 데이터가 많아짐
- 처리량이 많아짐 = 처리되는 트래픽이 많아짐 

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

(그럼 대역폭이 커지면 많이 처리하고 트래픽을 많이 다룰 수 있겠네?) 도로 넓이에 비유할 수 있겠다.

 

2. 지연시간이 짧다.

  • 지연시간(latency)이란 요청이 처리되는 시간, 메시지가 두 장치 사이를 왕복하는데 걸리는 시간을 의미한다.
  • 매체타입(무선, 유선), 패킷의 크기, 라우터의 패킷 처리 시간에 영향을 받는다.
  • RTT(Round Trip Time : 왕복 지연시간)는 신호를 전송하고 해당 신호의 수신확인에 걸린
    시간을 더한 값이자 어떤 메시지가 두 장치 사이를 왕복하는 데 걸린 시간
  1. 장애 빈도가 적다.
  2. 좋은 보안을 가지고 있다.

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

네트워크 토폴로지

네트워크 토폴로지(network topology)는 노드와 링크가 어떻게 배치되어 있는지에 대한 연결 형태, 방식을 의미한다.

- 트리 토폴로지(tree topology)

  • 계층형 토폴로지라고 하며 트리형태로 배치한 네트워크 구성을 의미한다.
  • 양방향으로 모든 노드에 데이터 전송.
  • 노드의 확장과 관리가 쉽지만 상위 노드에 문제가 생기면 하위 노드에 영향을 끼칠 수 있다.

- 버스 토폴로지(bus topology)

    • 중앙 통신 회선 하나에 여러 노드가 연결돼 공유하는 네트워크 구성을 의미한다.
    • 근거리 통신망(LAN)에서 사용한다.
    • 설치 비용이 적고 신뢰성이 우수하고 중앙에 노드를 추가하기가 쉽지만 스푸핑이 가능한 단점이 있다.
    • 높은 대역폭을 지니지만, 노드를 추가하면 대역폭이 낭비되므로 데이터 전송 속도를 늦추기 때문에 소규모에 알맞다. 
스푸핑 : LAN 상에서 송신부의 패킷을 관련 없는 호스트에 가지 않도록 하는 `스위칭 기능을 마비`시키거나 `속여서` 악의적으로 특정 노드(혹은 악의적인 노드)에 해당 패킷이 갈 수 있게 처리하는 것


- 스타 토폴로지(star topology)

  • 중앙에 있는 노드(허브)에 모두 연결된 네트워크 구성을 의미한다.
  • 노드 추가나 에러 탐지가 쉽고 패킷의 충돌 발생 가능성이 적다.
  • 중앙 노드에서 장애가 발생하지 않는 이상 다른 노드에 영향을 끼치는것이 적다.
  • 중앙노드에서 장애가 발생하면 전체 네트워크를 사용할 수 없다. 설치 비용이 비쌈

- 링형 토폴로지(ring topology)

  • 각각의 노드가 양 옆의 두 노드와 연결되어 전체적으로 고리처럼 하나의 연속된 길을 통해 통신을 하는 망 구성을 의미한다.
  • 노드 수가 증가되어도 네트워크상의 손실이 거의 없고 충돌 가능성 적으며 에러를 쉽게 찾을 수 있다. 
  • 네트워크 구성 변경이 어렵고 회선에 장애가 발생하면 전체 네트워크에 영향을 끼친다.

- 메시 토폴로지(mesh topology)

  • 망형 토폴로지라고도 하며 그물망처럼 연결되어 있는 구조를 의미한다.
  • 한 단말 장치에 장애가 발생해도 여러개의 경로가 있어 계속 사용할 수 있다.
  • 트래픽 분산 처리가 가능하다.
  • 노드의 추가가 어렵고 구축비용과 운용 비용이 비싸다.

병목현상

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

`토폴로지가 중요한 이유는 병목 현상을 찾을 때 중요한 기준이` 되고 어떠한 경로로 이루어져 있는지를 알아야 병목 현상을 올바르게 해결할 수 있기 때문

어떤 경로로 이루어져 있는지 알아야 병목 현상을 올바르게 해결할 수 있다.

- 병목현상은 전체 시스템의 성능이나 용량이 하나의 구성 요소로 인해 제한을 받는 현상이다. ex) 병의 목이 좁아서 물이 상대적으로 천천히 쏟아지는 것. 할인 서비스를 했을 때 대규모 사람들이 접속하면서 트래픽이 많이 발생하고 병목현상이 생긴다


추가 공부 및 참고 자료

https://github.com/backend-deep-dive/CS-Study/blob/main/2.%20%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC(1)/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%EC%9D%98%20%EA%B8%B0%EC%B4%88(1)_%EC%86%A1%EB%AF%BC%EC%A7%84.md

https://land-turtler.tistory.com/154

 

[CS면접 질문 정리] : 네트워크

📌 웹 통신의 큰 흐름: https://www.google.com/ 을 접속할 때 일어나는 일 1) Host가 google.com을 검색하면 OS에서 NIC(network Interface Card, 이거 하나 당 IP하나씩 받을 수 있음)를 통해 요청을 보내야 한다. Host

land-turtler.tistory.com

https://hongong.hanbit.co.kr/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/

 

[한빛미디어] 혼자 공부하는 네트워크

컴퓨터 네트워크는 백엔드, 프런트엔드, 앱 개발 등 현재 국내 대다수 개발 분야와 직·간접적으로 연관되어 있습니다. 너무 쉽거나 어렵지 않도록 다수의 네트워크 전공 서적들을 면밀히 분석

hongong.hanbit.co.kr