관리 메뉴

Jerry

개발자를 위한 컴퓨터공학 2: 혼자 공부하는 네트워크 #1 본문

CS/Network

개발자를 위한 컴퓨터공학 2: 혼자 공부하는 네트워크 #1

juicyjerry 2025. 3. 27. 16:20
반응형

1. 컴퓨터 네트워크를 알아야 하는 이유

컴퓨터 네트워크(이하 네트워크)

  • 여러 개의 장치가 마치 그물처럼 서로 연결되어 정보를 주고받을 수 있는 통신망

네트워크의 네트워크, 인터넷

  • 여러 네트워크를 연결한 ‘네트워크의 네트워크’

네트워크는 그래프라는 자료구조 형태를 띄고 있다

개발자 업무

  • 프로그램을 만드는 업무(에서 네트워크 지식을 활용하는 경우)
  • 프로그램을 유지 보수하는 업무(에서 네트워크 지식을 활용하는 경우)
  • 유지 보수 도구 사용
    netstat

 

 

 

 

 

 

 

2. 네트워크 거시적으로 살펴보기 (1) 네트워크 기본 구조

네트워크 구조 = 그래프

그래프: 노드(정점)와 노드를 연결하는 간선으로 이루어진 자료 구조
네트워크 기기(가장자리 노드), 네트워크 장비(중간자리 노드), 서로 정보(메시지)를 주고받음
가장자리에 위치한 노드 - 호스트
중간에 위치한 노드 - 네트워크 장비
노드 간 연결하는 링크 - 통신 매체
노드 간 주고받는 정보 - 메시지

 

 

호스트

  • 네트워크 가장자리 노드
  • 네트워크를 통해서 주고받는 메시지를 최초로 생성해서 송신하거나 최종적으로 수신하는 대상
  • 스마트폰, 데스크탑, 서버 컴퓨터

호스트 역할에 따른 구분

  • 클라이언트, 서버

네트워크 장비

  • 호스트 간 주고받을 정보가 거치는 중간 노드 (이더넷 허브, 스위치, 라우터, 공유기 등)
  • 호스트 간 주고받는 정보가 수신기까지 안정적이고 안전하게 전송

호스트(서버, 클라이언트), 네트워크 장비

  • 역할에 따라 또는 네트워크 구조에 따라 구분한 개념, 완전히 배타적인 개념은 아니다
  • 호스트로 동작하는 노드도 때로는 네트워크 장비 역할 수행 가능
  • 서버로 동작하는 노드도 때로는 클라이언트 역할 수행 가능
  • 클라이언트로 동작하는 노드도 때로는 서버 역할 수행 가능

통신 매체

  • 각 노드를 연결하는 간선(링크)
  • 유선 매체, 무선 매체

호스트(서버, 클라이언트), 네트워크 장비

  • 통신 매체로 연결된 노드가 주고받는 정보
  • 웹페이지, 파일, 메일 등

 

 

 

 

 

 

3. 네트워크 거시적으로 살펴보기 (2) 네트워크 분류

범위에 따른 네트워크 분류

  • LAN(Local Area Network)
  • 가까운 지역을 연결한 근거리 통신망
    예: 일반 가정, 특정 회사, 다른 국가의 가정
  • WAN(Wide Area Network)ISP(Inter Service Provider)
    • 사용자에게 인터넷과 같은 WAN에 연결 가능한 회선을 임대하는 등 WAN과 관련 다양한 서비스를 제공
    • KT, LG유플러스, SK 브로드밴드
    • 먼 지역을 연결하는 광역 통신망
      인터넷이 WAN으로 분류
      다른 LAN에 속한 호스트와 메시지를 주고받아야 할 때 필요

종류

  • LAN < CAN(Campus) < MAN(Metropolitan) < WAN

 

 

메시지 교환 방식에 따른 네트워크 분류

  • 회선 교환 네트워크
  • 메시지를 주고받기 전 회선을 설정한 뒤, 해당 회선을 통해 메시지를 주고받는 방식
    회선을 설정한다 = 두 호스트가 연결되었다 = 전송로를 예약하였다 = 전송로를 확보하였다
    회선 스위치 : 전송로 확보하는 장비
    장점 : 일정한 정보량 전송
    단점 : 회선 이용 효율이 낮음
  • 패킷 교환 네트워크
  • 메시지를 패킷 단위로 쪼개어 전송하고 수신지에서 재조립
    전송로 이용 효율 높음
    현대 인터넷 대부분 해당 방식
    패킷 스위치 : 송수신지 식별, 최적 경로 결정 (라우터, 스위치)

패킷 구조

  • 페이로드: 전송하려는 데이터
  • 헤더, 트레일러: 제어 정보

 

 

 

 

 

주소와 송수신지 유형에 따른 전송 방식

  • 주소(address)
  • 송수신지를 특정하는 정보
    IP 주소, MAC 주소
    특정 기기, 네트워크 전체, 그룹 등 대상 지정 가능
  • 송수신지 유형별 전송 방식
    • 유니캐스트 : 일대일 전송
    • 브로드캐스트 : 네트워크 내 모든 호스트에게 전송
    • 멀티캐스트 : 동일 그룹에 속한 호스트에게만 전송
    • 애니캐스트 : 동일 그룹 중 가장 가까운 호스트에게 전송

 

 

 

 

 

 

 

 

4. 네트워크 미시적으로 살펴보기 (1) 프로토콜

택배로 책을 보내는 예시

  • 멀리 떨어진 ‘영수(수신지 호스트)’에게 택배로 책을 선물
  1. 선물할 책(페이로드)을 택배 상자에 넣기
  2. 배송 주소 등 택배 기사가 읽을 메시지(헤더)를 작성하고 첨부
  3. 택배 기사(네트워크 장비)를 통해 발송
  • 택배를 올바르게 주고받으려면? → 언어가 통해야 한다!
  • 네트워크 세상의 언어, 프로토콜
    : 노드 간에 정보를 올바르게 주고받기 위해 합의된 규칙이나 방법

IP는 패킷을 수신지까지 전달하기 위해 사용되는 프로토콜이다
ARP는 192.168.1.1과 같은 IP 주소를 A1:B2:C3:D:E5:F6와 같은 MAC 주소로 대응하기 위해 사용되는 프로토콜이다
HTTPS는 HTTP에 비해 보안상 더 안전한 프로토콜이다
TCP는 UDP에 비해 일반적으로 느리지만 신뢰성이 높은 프로토콜이다
프로토콜마다 목적과 특징이 다르다!

  • 프로토콜은 네트워크 세상의 언어와 같다
  • 그리고 프로토콜마다 목적과 특징이 다르기 때문에, 해당 프로토콜로 주고받는 패킷의 헤더도 다를 수 있다

 

 

 

 

 

 

 

 

 

 

5. 네트워크 미시적으로 살펴보기 (2) 네트워크 참조 모델

송수신 과정은 서로 반대되어 있다

  • 택배를 보내는 과정과 받는 과정은 반대
  • 즉, 송수신 과정은 정형화된 여러 단계로 표현 가능 → 계층적 표현 가능

이렇게 계층적으로 표현될 수 있는 정형화된 단계를 네트워크 참조 모델이라고 한다

 

통신 과정을 계층적으로 나눈 이유

  1. 네트워크 구성과 설계가 용이
    • 단계별로 프로토콜과 장비를 구성하면 설계가 쉬움
  2. 네트워크 문제 진단과 해결이 용이

 

대표적인 네트워크 참조 모델

  • OSI 모델 (7계층)
  • TCP/IP 모델 (4계층)

 

OSI 모델 (7계층)

  • 물리, 데이터 링크, 네트워크, 전송, 세션, 표현, 응용 계층
  • 물리 계층 : 1과 0으로 표현되는 비트 신호를 주고받는 계층
  • 데이터 링크 계층 : MAC 주소를 활용해 근거리 간 정보 주고받기
  • 네트워크 계층 : 다른 네트워크에 속한 수신지까지 메시지 전달
  • 전송 계층 : 신뢰성 있는 전송 보장 (포트 활용)
  • 세션 계층 : 호스트 간 연결 상태 관리
  • 표현 계층 : 문자 인코딩/압축/암호화
  • 응용 계층 : 사용자 및 응용 프로그램에 네트워크 서비스 제공

 

 

TCP/IP 모델 (4계층)

  • 네트워크 엑세스, 인터넷, 전송, 응용 계층
  • 다른 이름: 인터넷 프로토콜 스위트, TCP/IP 프로토콜 스택

묶음 판매 세트처럼 주로 함께 쓰이는 프로토콜 묶음

  • 네트워크 엑세스 계층 : 데이터 링크 계층 유사
  • 인터넷 계층 : 네트워크 계층 유사
  • 전송 계층 : 전송 계층 유사
  • 응용 계층 : 세션 + 표현 + 응용 계층 유사

 

 

 

 

 

 

 

 

 

 

 

6. 네트워크 미시적으로 살펴보기 (3) 캡슐화, 역캡슐화

  • 메시지는 송신지에서 상위 → 하위 계층 순으로 전달
  • 메시지는 수신지에서 하위 → 상위 계층 순으로 전달

 

캡슐화
: 각 계층에서 헤더(및 트레일러)를 덧붙이는 과정

  • 상위 계층에서 받은 데이터를 페이로드로 삼고, 헤더를 붙여 하위 계층으로 전달
  • 상위 계층의 데이터는 하위 계층의 페이로드로 간주

 

 

역캡슐화
: 각 계층에서 헤더(및 트레일러)를 제거하는 과정

  • 수신한 데이터를 계층 별로 해석하고 헤더 제거

 

 

PDU (Protocol Data Unit)

  • 계층별 메시지 단위
  • 현재 계층의 PDU = 상위 계층 데이터 + 현재 계층의 헤더(및 트레일러)

OSI 계층 PDU 명칭
응용, 표현, 세션 데이터
전송 세그먼트 / 데이터그램
네트워크 패킷
데이터 링크 프레임
물리 비트

출처: 개발자를 위한 컴퓨터공학 2: 혼자 공부하는 네트워크

네트워크를 정복하고 싶다면 이 표를 외워서 그림 안 보고 그릴 수 있어야 함

 

 

 

 

 

7. OSI 7계층, TCP/IP 4계층은 사실 아무것도 하지 않는다

  • 처음에는 네트워크 지식 = 참조 모델이라 오해하기 쉬움
  • 하지만 네트워크 참조 모델은 반드시 지켜야 하는 규칙이 아니다
    → ‘참조’ 모델이기 때문 (밑그림)
  • 새로운 프로토콜과 장비는 계속 만들어지고 있으며,
    모든 프로토콜이 특정 계층에 딱 맞게 대응되지 않음
  • 네트워크 참조 모델이나 계층은 네트워크의 작동 주체가 아니다!
  • 네트워크를 작동시키는 것은 참조 모델에 속한 프로토콜과 장비이다!

 

 

 

전공 지식 vs 실무 괴리

  • 면접, 시험 준비에서는 참조 모델 개념이 중요
  • 실무 개발에서는 부차적인 개념
  • 따라서 모든 네트워크 개념을 참조 모델에 딱 맞춰 외울 필요는 없다

 

 

 

 

 

 

 

 

 

8. 트래픽과 네트워크 성능 지표

트래픽

  • 네트워크 내의 정보량
  • 주로 노드에서 측정
  • “특정 시점에 노드를 경유하는 정보량”
  • 과도한 트래픽이 발생하면
  • **과부하(성능 저하)**가 일어날 수 있음

 

 

 

 

네트워크 내 성능은 어떻게 판단할까?

1) 처리율 (Throughput; 쓰루풋)

  • 단위 시간당 네트워크를 통해 실제로 전송되는 정보량
  • 표현 단위:
    • bps (bits per second)
    • Mbps (megabits per second)
    • Gbps (gigabits per second)
    • pps (packets per second)

 

 

2) 대역폭 (Bandwidth)

  • 신호 처리 영역 정의: 주파수의 범위
  • 컴퓨팅 영역 정의:
    → 단위 시간동안 통신 매체를 통해 송수신 가능한 최대 정보량
    → 정보를 주고받을 수 있는 ‘폭’
    → 단위: bps, Mbps, Gbps

 

 

3) 패킷 손실 (Packet Loss)

  • 송수신 중 패킷이 손실된 상황
  • 지표: 손실된 패킷 수 / 전체 패킷 수 (또는 백분율)

 

 

 

 

 

반응형