[네트워크] 컴퓨터 네트워크 시작하기

data_buddha·2024년 8월 15일
0

네트워크

목록 보기
1/3

부트캠프 마지막 프로젝트로 웹소켓 프로토콜을 이용해 실시간 메세징 기능을 구현했다. 강의를 통해 기능 구현은 완성했지만 프로토콜, 더 나아가 네트워크에 대한 지식이 부족함을 느꼈다. "혼자 공부하는 네트워크"라는 책을 공부하고 정리하면서 네트워크에 대한 이해도를 높이고자 한다.

Ch1. 컴퓨터 네트워크 시작하기

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

  • 네트워크 == 여러 장치가 연결되어 정보를 주고 받을 수 있는 통신망

  • 인터넷 == 네트워크 of 네트워크 즉, 네트워크를 연결하는 네트워크

    • 대부분의 프로그램들은 네트워크를 통해 다른 장치와 상호작용하며 작동한다.
    • 이는 다른 장치와 상호작용하며 실행되는 프로그램을 개발하는 경우가 많다는 것을 의미한다. 따라서 개발 직군은 네트워크를 제대로 이해해야 한다.

2. 네트워크 거시적으로 살펴보기

  • 네트워크의 노드와 간선으로 구성된 그래프 모습을 띤다.

  • 네트워크의 기본구조는 호스트, 네트워크 장비, 통신 매체, 메시지로 구성된다.

    • 호스트
      • 네트워크 가장자리에 위치한 노드로 정보를 최초로 생성 및 송신하고 최종적으로 수신하는 역할
      • 서버와 클라이언트의 역할을 수행한다.
        • 서버는 '어떠한 서비스를 제공하는 역할'
        • 클라이언트는 "서버에 정보를 요청하고 응답을 제공받는 역할'
    • 네트워크 장비
      • 가장자리에 위치하지 않는 노드, 중간노드
      • 예시로는 이더넷 허브, 스위치, 라우터, 공유기 등이 있다.
      • 이를 '네트워크 장비'라 칭한다.
      • 호스트 간 주고받는 정보가 원하는 수신지까지 안정적이고 안전하게 전송될 수 있도록 한다.
    • 통신 매체
      • 각 노드를 연결하는 간선이 '통신 매체'이다.
      • 유선 매체와 무선 매체가 있다.
    • 메시지
      • 노드가 주고 받는 정보를 '메시지'라고 한다.
  • 네트워크를 범위에 따라 분류하기도 한다. LAN과 WAN이 있다.

    • LAN (Local Area Network)
      • 가까운 지역을 연결한 근거리 통신망
      • 가정, 기업, 학교처럼 한정된 공간에서의 네트워크를 LAN
    • WAN (Wide Area Network)
      • 먼 지역을 연결하는 광역 통신망
      • 서로 멀리 떨어진 LAN을 연결하는 네트워크
  • 네트워크를 메세지 교환 방식에 따라 분류하기도 한다. 회선 교환 네트워크, 패킷 교환 네트워크가 있다.

    • 회선 교환 네트워크
      - 회선 교환 방식을 사용하는 네트워크
      - 호스트 간에 메시지를 주고받기 전에 회선을 설정한 뒤, 해당 회선을 통해서만 메세지를 주고 받을 수 있다.
      - 회선 스위치를 통해 호스트 사이에 일대일 전송로를 확보한다.
      - 대표적인 예로 전동적인 전화망이 있다.
      - 장점으로는, 우선 두 호스트 사이에 연결을 확보한 후에 메시지를 주고 받는 특성 덕분에 주어진 시간 동안 전송되는 정보의 양이 비교적 일정하다는 점이다.
      - 단점으로는, 회선의 이용 효율이 낮아질 수 있다는 것이다.

      '주어진 시간 동안 전송되는 정보의 양이 일정하다'는 것이 왜 장점일까?

      1. 예측 가능성 : 전송량이 일정하므로 네트워크의 성능을 예측하기가 쉽다. 이는 실시간 어플리케이션에 중요하다.
      2. 서비스 품질 보장 : 대역폭이 보장되어 지연이 적다. 음성통화나 비디오 스트리밍 같은 서비스에 적합하다.
      3. 패킷 교환 네트워크에 비해 구조가 간단하며 전용 회로를 사용하므로 보안성이 뛰어나다.
    • 패킷 교환 네트워크
      • 회선 교환 네트워크의 단점을 해결한 교환 방식
      • 메시지를 '패킷'이라는 단위로 쪼개어 전송한다.
        • 패킷 packet은 송수신되는 메시지의 단위이다. 현대 인터넷은 대부분 패킷 교환 네트워크를 이용한다.
      • 회선을 점유하는 방식이 아니기 때문에 네트워크 이용 효율이 상대적으로 높다.
      • 설정된 경로만으로 통신하는 회선 교환 네트워크와는 달리, 정해진 경로만으로 메시지를 송수신하지 않으며, 중간 노드인 '패킷 스위치'는 패킷이 수신지까지 올바르게 도달할 수 있도록 최적의 경로를 설정하거나 송수신지를 식별한다. 대표적인 예로는 '라우터'와 '스위치'가 있다.
      • 패킷을 통해 전송하고자 하는 데이터를 '페이로드 payload'라고 한다.
        • 택배 상자에 넣을 물품이라고 생각해도 좋다.
      • 페이로드 앞에 '헤더 header'와 페이로드 뒤에 '트레일러 trailer'라는 정보가 포함되기도 한다.
        • 패킷에 붙는 일종의 부가정보, 제어정보이며 택배 상자에 붙이는 송장과 같다.
  • 주소와 송수신지 유형에 따라 전송 방식을 구분한다.

    • 패킷의 헤더에 담기는 대표적인 정보로는 주소가 있다.
      • '주소 address'는 송수신지를 특정하는 정보를 의미한다.
    • 주소가 있다면 송수신지 유형에 따라 다양한 방식으로 메시지를 보낼 수 있다. 대표적으로 '유니캐스트 unicast'와 '브로드캐스트 broadcast' 방식이 있다.
      • 유니캐스트
        • 가장 일반적인 형태의 송수신 방식으로, 송신지와 수신지가 일대일로 메시지를 주고 받는 경우
      • 브로드캐스트
        • 자신을 제외한 네트워크상의 모든 호스트에게 전송하는 방식

3. 네트워크 미시적으로 살펴보기

  • 프로토콜 : 통신 과정에서 정보를 올바르게 주고 받기 위한 규칙이나 방법

    • 일상에서 정보를 주고 받기 위해 '언어'를 사용하듯이 노드 간에 정보를 주고 받을 때도 '언어'와 같은 약속된 규칙이 필요하다. 이를 '프로토콜'이라고 한다.
    • 프로토콜의 종류는 매우 다양하며, 통신 과정에서는 여러 프로토콜을 사용한다.
  • 네트워크 참조 모델 : 통신이 일어나는 구조(과정)을 계층화

    • 네트워크를 통해 정보를 주고받을 때는 '정형화'된 여러 단계를 거친다. 이 과정은 계층으로 표현할 수 있다.
    • 이렇게 통신이 일어나는 각 과정을 계층으로 나눈 구조를 '네트워크 참조 모델 network reference model' 혹은 '네트워크 계층 모델'이라고 부른다.
    • 통신 과정을 계층으로 나눈 이유는 네트워크 구성과 설계가 용이하며, 네트워크 문제 진단과 해결이 계층별로 진단하기 쉬워진다.
    • OSI 모델과 TCP/IP 모델이 있다.
      - OSI 모델 (OSI 7계층)
      https://lxxyeon.tistory.com/155
      출처) https://lxxyeon.tistory.com/155
      - 1. 물리 계층 : 1과 0으로 표현되는 비트 신호를 주고 받는 계층, 가장 근원적인 통신이 이루어지는 계층, 통신 매체에 맞는 신호(전기, 빛, 전파 등)로 운반되도록 비드 데이터의 변환이 이루어지고 통신 매체를 통한 송수신이 이루어지는 계층
      - 2. 데이터 링크 계층 : 주변 장치 간의 정보를 올바르게 주고받기 위한 계층, 주고받는 정보에 오류가 없는지 확인하고, MAC 주소라는 주소 체계를 통해 네트워크 송수신지를 특정한다. 
      - 3. 네트워크 계층 : 메시지를 (다른 네트워크에 속한) 수신지까지 전달하는 계층, 네트워크 간 통신이 이루어지는 계층, 인터넷을 가능케하는 계층, IP 주소라는 주소 체계를 통해 통신하고자 하는 수신지 호스트와 네트워크를 식별하고 수신지에 도달하기 위한 최적의 경로를 결정
      - 4. 전송 계층 : 패킷이 정상적으로 보내졌는지 확인하는 계층, 포트라는 정보를 통해 실행 중인 응용 프로그램의 식별이 이루어짐
      - 5. 세션 계층 : 응용 프로그램 간의 연결 상태인 '세션 session'을 생성하거나 유지하고 끊어주는 역할을 하는 계층
      - 6. 표현 계층 : 사람이 이해할 수 있는 언어인 문자를 컴퓨터가 이해할 수 있도록 코드로 변환하는 계층
      - 7. 응용 계층 : 사용자와 가장 밀접하게 맞닿아 있는 계층, 사용자에게 다양한 서비스가 제공될 수 있도록 하며 그만큼 타 계층에 비해 응용 계층에 속한 프로토콜이 많다
    • TCP/IP 모델 (TCP/IP 4계층)

      출처) https://velog.io/@hey-hey/TCP-IP-4%EA%B3%84%EC%B8%B5
      - OSI 모델은 네트워크를 이론적으로 풀어낸 것이고 TCP/IP 모델은 구현에 중점을 둔 네트워크 참조 모델이다. OSI 모델이 '이상적 설계'에 가깝다면 TCP/IP 모델은 '실용적 구현'에 가깝다.
      - TCP와 IP, 이 두 프로토콜은 현대 네트워크 구현의 핵심으로 간주되어 이러한 이름이 붙었다.
      - 1. 네트워크 엑세스 계층 : OSI 모델의 데이터 링크 계층과 유사하다. 
      - 2. 인터넷 계층 : OSI 모델에서의 네트워크 계층과 유사하다.
      - 3. 전송 계층 : OSI 모델의 전송 계층과 유사하다. 
      - 4. 응용 계층 : OSI 모델의 세션, 표현, 응용 계층과 유사하다. 
  • 통신과정에서 이루어지는 : 캡슐화, 역캡슐화

    • 패킷은 송신과정에서 캡슐화가 이루어지고, 수신과정에서 역캡슐화가 이루어진다.
    • 송수신하는 메시지는 송신지 입장에서는 가장 높은 계층 -> 가장 낮은 계층으로 이동, 수신지 입장에서는 가장 낮은 계층 -> 가장 높은 계층으로 이동한다.
    • 캡슐화
      • 어떤 정보를 송신할 때 각 계층에서는 상위 계층에서 내려바은 패킷을 페이로드로 삼아, 프로토콜에 걸맞은 헤더(혹은 트레일러)를 덧붙인 후 하위 계층으로 전달한다. (러시아 인형 '마트로시카'를 떠올리자)
    • 역캡슐화
      • 수신하는 과정은 송신하는 과정의 반대이다.
      • 캡슐화 과정에서 붙였던 헤더(혹은 트레일러)를 각 계층에서 확인한 뒤 제거한다.
  • PDU (Protocol Data Unit) : 각 계층에서 송수신되는 메시지의 단위

    • OSI 모델 기준, 전송 계층 이하의 메시지를 구분하기 위해 사용한다.
  • OSI 모델, TCP/IP 모델은 사실 아무것도 해주지 않는다.

    • 반드시 지켜야하는 엄격한 규칙이 아니다.
    • 네트워크 '참조' 모델이라는 이름처럼 네트워크 구조에 대한 개념 참조를 위해 사용하는 가이드라인 같은 것이다.
    • 그저 네트워크를 계층화해 보이지 않는 것을 시각화하여 구성과 설계, 문제진단을 용이하도록 도와주는 역할이다. 즉, 네트워크를 이해하는데 중요한 개념이다.
  • 트래픽과 네트워크 성능 지표

    • '트래픽'은 네트워크 내의 정보량을 의미한다.
    • 트래픽이 몰리면 과부하가 발생할 수 있다.
    • 그렇다면 네트워크의 성능은 '처리율', '대역폭', '패킷 손실' 등의 지표로 측정한다.
    • 처리율
      • 단위 시간당 네트워크를 통해 실제로 전송되는 정보량
      • 비교적 실시간성이 강조된 지표
    • 대역폭
      • 단위 시간 동안 통신 매체를 통해 송수신할 수 있는 최대 정보량을 의미
      • 마치 도로의 너비가 넓어 오갈 수 있는 자동차가 많은 상황
    • 패킷 손실
      • 전체 패킷 중 유실된 패킷을 백분위로 표현한 값을 사용하는 경우가 많다.
profile
来日方长 : 앞길이 구만리 같다; 앞길이 희망차다. 장래의 기회가 많다.

0개의 댓글