[Network] 1장 요약

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

  • 컴퓨터 네트워크(= 네트워크): 여러 장치(예. 데스크톱, 노트북, 스마트폰 등)가 마치 그물처럼 연결되어 정보를 주고받을 수 있는 통신망
  • 인터넷(internet): 여러 네트워크를 연결한 ‘네트워크의 네트워크’

 

  • 개발자가 네트워크를 알아야 하는 이유?
    1. 프로그램을 만드는 업무에서 네트워크 지식 활용
    2. 프로그램을 유지 보수하는 업무에서 네트워크 지식 활용

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

네트워크의 기본 구조

  • 네트워크는 노드와 간선으로 이루어진 그래프 형태를 띤다.
    • 그래프(graph): 노드와 노드를 연결하는 간선으로 이루어진 자료구조
    • 노드(node)는 정점(vertex)
    • 간선(edge)는 링크(link)

 

  • 네트워크 기본 구조
    • 호스트(host) - 가장자리 노드
      • 네트워크를 통해 흐르는 정보를 최초로 생성 및 송신하고 최종적으로 수신한다.
      • 대표적인 역할로 서버(server)와 클라이언트(client)가 있다.
        • 클라이언트: 서버에게 요청을 보내는 호스트
        • 서버: 요청에 대한 응답을 보내는 호스트
    • 네트워크 장비 - 중간 노드
      • 호스트 간 주고받는 정보가 원하는 수신지까지 안정적이고 안전하게 전송될 수 있도록 한다.
      • 예. 이더넷 허브, 스위치, 라우터, 공유기 등
    • 통신 매체 - 간선(링크)
      • 호스트와 네트워크 장비를 연결하기 위한 유무선 매체
    • 메시지(message)
      • 통신 매체로 연결된 노드가 주고받는 정보
      • 예. 웹페이지, 파일, 메일 등

네트워크 구조


범위에 따른 네트워크 분류

  • LAN(Local Area Network): 가정, 기업처럼 비교적 근거리를 연결하는 한정된 공간의 네트워크
  • WAN(Wide Area Network): LAN을 연결한 넓은 범위의 네트워크로, ISP(Internet Service Provider)가 구축하고 관리한다.

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

  • 회선 교환 방식
    • 통신 전 메시지 전송로인 회선(circuit)을 설정하고, 연결된 경로로 메시지를 주고받는 방식
    • 장점 - 전송되는 정보의 양이 비교적 일정하다.
    • 단점 - 회선 이용 효율이 낮아질 수 있다. 메시지를 주고받지 않으면서 회선을 점유하는 것은 낭비다.
    • 회선 교환 네트워크 장비: 회선 스위치로, 호스트 사이에 일대일 전송로를 확보한다.

 

  • 패킷 교환 방식
    • 메시지를 패킷 단위로 쪼개어 전송하고, 수신할 때 재조립된다.
    • 장점 - 전송 경로를 점유하지 않기에 네트워크 이용 효율이 상대적으로 높다.
    • 패킷 스위치 네트워크 장비: 패킷이 수신지까지 올바르게 도달할 수 있도록 최적의 경로를 결정하거나 패킷의 송수신지를 식별한다.
      • 대표적으로 라우터, 스위치
    • 패킷(packet)
      • 패킷 교환 네트워크에서 주고받는 메시지의 단위로, 페이로드 + 헤더 (+ 트레일러)로 구성된다.
      • 페이로드(payload): 패킷을 통해 전송하고자 하는 데이터
      • 헤더(header)와 트레일러(trailer): 패킷에 붙는 부가 정보

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

프로토콜

  • 프로토콜(protocol)
    • 노드 간에 정보를 올바르게 주고받기 위해 합의된 규칙이나 방법으로 서로 다른 통신 장치들이 정보를 주고받으려면 프로토콜이 통해야 한다.
    • 프로토콜은 저마다의 목적과 특성을 지니기 때문에 특정 프로토콜로 주고받는 패킷의 헤더 내용이 달라질 수 있다.

네트워크 참조 모델

  • 네트워크 참조 모델 (= 네트워크 계층 모델)
    • 네트워크 통신이 일어나는 각 과정을 계층으로 나눈 구조
    • 통신 과정을 계층으로 나눈 이유?
      1. 네트워크 구성과 설계가 용이하다.
      2. 네트워크 문제 진단과 해결이 용이하다.
    • 네트워크 참조 모델은 프로토콜과 네트워크 장비가 반드시 지켜야 하는 엄격한 규칙아나 법규가 아니다. 네트워크 구조에 대한 개념 참조를 위해 사용하는 것이 바람직하다.

 

  • OSI 모델
    1. 물리 계층
      • 1과 0으로 표현되는 비트 신호를 주고받는 계층
      • 데이터를 통신 매체에 맞는 신호로 변환하고 전송 매체를 통해 전송한다.
    2. 데이터 링크 계층
      • 네트워크 내 주변 장치 간의 정보를 올바르게 주고받기 위한 게층
        • 물리 계층을 통해 주고받는 정보에 오류가 없는지 확인
        • MAC 주소 체계를 통해 송수신지 특정 가능
        • 전송 과정 중 충돌 문제 해결
    3. 네트워크 계층
      • 메시지를 다른 네트워크의 수신지까지 전달하는 계층
      • 네트워크 간의 통신이 이루어진다.
      • IP 주소 체계를 통해 수신지 호스트와 네트워크를 식별하고 최적 경로를 설정한다.
    4. 전송 계층
      • 신뢰성, 안정성이 있는 전송을 할 때 필요한 계층
      • 패킷의 흐름을 제어하거나 전송 오류 점검한다.
      • 포트를 통해 실행 중인 응용 프로그램을 식별한다.
    5. 세션 계층
      • 세션(session): 통신을 주고받는 호스트의 응용 프로그램 간 연결 상태
      • 통신 세션을 설정, 유지, 종료하는 역할
    6. 표현 계층
      • 문자를 코드로 변환하거나, 압축, 암호화 등의 작업이 이루어진다.
    7. 응용 계층
      • 사용자가 이용할 응용 프로그램에 다양한 네트워크 서비스를 제공한다.

 

  • TCP/IP 모델
    • 네트워크 엑세스 계층 (= 링크 계층, 네트워크 인터페이스 계층)
      • OSI 모델의 데이터 링크 계층과 유사하다.
    • 인터넷 계층
      • OSI 모델의 네트워크 계층과 유사하다.
    • 전송 계층
      • OSI 모델의 전송 계층과 유사하다.
    • 응용 계층
      • OSI 모델의 세션 + 표현 응용 계층과 유사하다.

 

  • OSI 모델 vs TCP/IP 모델
    • OSI 모델은 이론 > 구현
    • TCP/IP 모델은 이론 < 구현

캡슐화와 역캡슐화

  • 상위 계층의 패킷(헤더 + 페이로드)은 하위 계층에서의 페이로드
  • 캡슐화(encapsulation)
    • 송신 할 때 데이터 및 트레일러를 추가하는 과정
    • 하위 계층으로 갈수록 헤더가 붙어 데이터의 크기가 커진다. (응용 → 전송 → 네트워크 → 데이터 링크 → 물리)
  • 역캡슐화(decapsulation)
    • 수신 할 때 캡슐화 과정에서 붙였던 헤더 및 트레일러를 각 계층에서 확인한 뒤 제거하는 과정
    • 수신지에서는 원래 데이터만 남는다.

PDU

  • PDU(Protocol Data Unit)
    • 각 계층에서 송수신되는 메시지의 단위
    • 페이로드 + 헤더 + 트레일러
    • PDU는 주로 전송 계층 이하의 메시지를 구분하기 위해 사용한다.

 

  • 각 계층에서의 PDU
    • 응용 계층 - 데이터(data), 메시지(message)
    • 표현, 세션 계층 - 데이터(data)
    • 전송 계층
      • TCP 프로토콜에서 세그먼트(segment)
      • UDP 프로토콜에서 데이터그램(datagram)
    • 네트워크 계층 - 패킷(packet), IP 데이터그램(IP datagram)
    • 데이터 링크 계층 - 프레임(frame)
    • 물리 계층 - 비트(bit), 심볼(symbol)

 

  • 패킷의 의미
    1. 패킷 교환 네트워크에서 쪼개어져 전송되는 단위
    2. 네트워크 게층에서의 송수신 단위

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

  • 트래픽(traffic)
    • 네트워크 내의 정보량
    • 특정 노드에 트래픽이 몰리면 처리할 정보가 많기 때문에 과부하(overhead)가 생길 수 있다.

 

  • 네트워크 성능 평가 지표
    1. 처리율(throughput): 단위 시간당 네트워크를 통해 실제로 전송되는 정보량
      • bps(bits per second), Mps(megabits per second), Gbps(gigabits per second), pps(packets per second) 등의 단위 사용
    2. 대역폭(bandwidth): 단위 시간 동안 통신 매체를 통해 송수신할 수 있는 최대 정보량
      • bps, Mbps, Gbps 등의 단위 사용
      • 높은 대역폭을 가지는 것은 많은 정보를 송수신할 능력이 있다는 것(도로의 넓이가 넓어 자동차가 많이 오갈 수 있음)
    3. 패킷 손실(packet loss): 전체 패킷 중 유실된 패킷을 백분위로 표현한 값
      • 높은 트래픽이나 예상치 못한 장애로 패킷을 처리하지 못하면 패킷 손실이 발생 가능

출처 강민철님 혼자 공부하는 네트워크

Categories:

Updated:

Leave a comment