Study/CS 기초

네트워크 거시적으로 보기

김 도경 2024. 10. 21. 23:38

[2024.10.21] 필수 온라인 강의 Part3 네트워크 CH01 오리엔테이션

오리엔테이션
  • 컴퓨터 네트워크 : 여러 장치들이 서로 정보를 주고받을 수 있는 통신망
    - 망(거미줄처럼 얽히고 설킨것) : 각기다른 장비들이 각기다른 연결지점으로 바탕으로 정보를 주고 받음
    - 네트워크 장비, 호스트, 연결매체들(유/무선)

  • 인터넷(좁은범위X, 넓은 범위) = 네트워크의 네트워크 : 네트워크끼리 연결한 네트워크

  • 컴퓨터 네트워크 구성 요소
     - 노드, 메세지, 간선(통신 링크)
         (자료구조의 그래프에서 노드와 간선이 언급됨-그래프;노드와 그를 연결짓은 간선으로 이루어진 자료구조)

    - 노드 (=종단 시스템(end system) = 호스트(host) )
        - 메세지(이메일, 파일 등 모든 것) 를 최초로 송신, 생성하는 대상 : 휴대폰/컴퓨터/자동차/시계 등이 이에 들어감
        - ‘주소’를 통해 위치 특정 : 내가 어떤 메세지를 전달하고 받을지를 결정하려면 주소가 필요!
            - 이 호스트가 누구며 어디에 있는데라는 정보.
            - 주소를 이용해서 네트워크에 있는 호스트를 특정하면, 메세지의 유형도 달리 결정할 수 있음
                 - 유니캐스트 : 1:1통신
                 - 브로드캐스트 : 공지사항, 현재 네트워크의 모든 호스트에 전부 메세지를 보냄
                 - 멀티캐스트 : 특정 그룹에게만 메세지 전달

       - 호스트를 역할별로 구별함!
              - 클라이언트: 요청을 보내는 호스트
              - 서버: 응답을 보내는 호스트
              - 클라이언트와 서버간의 메세지를 주고 받는다 = 클라이언트의 요청에 서버가 응답을 보낸다.
                 (도메인이름을 넣으면 해당 홈페이지가 나오는 것 = 웹브라우저라는 프로그램이 클라이언트로서, 도메인주소를 가진 서버 컴퓨터한테 이러한 웹페이지를 보내달라는 요청을 보냈고, 홈페이지라는 응답을 받았다.)
              - 호스트는 둘의 역할을 둘 다 할 수 있다! : 베타적 걔념이 아닌, 역할에 따른 분류

        - (중간) 노드
               - 네트워크 장비 (라우터, 스위치, 공유기,...)
               - 호스트와 배타적 개념은 X

    - 간선 (통신 링크)
          - 유선 케이블 (트위스티트 페어 케이블, 광케이블, 랜케이블 등등)
          - 무선 (와이파이)

    - 메세지
         - 주고받는 정보 (웹 페이지, 사진, 동영상, ...)

  • 범위에 따라서 (네트워크 구분)
    - LAN : 근거리를 연결한 네트워크
        - 사무실 내의 컴퓨터 정도의 거리, 가정 정도. (공유기도 포함)
    - WAN : 원거리를 연결한 네트워크
        - 인터넷 서비스, 등등
        - WAN 접속 수단이 필요함 : ISP(KT, LG U+, SK 브로드밴드)에 의해 구축
프로토콜과 캡슐화
  • 패킷 교환 네트워크
    - 주고받는 정보를 패킷(packet) 단위로 주고받는 네트워크
    - 패킷이란 패킷 교환 네트워크에서 주고받는 데이터 단위
    - 오늘날의 인터넷은 대부분 패킷 교환
    - 큰 메세지를 보내도, 패킷단위로 잘려서 보내짐

  • 회선 교환 네트워
    - 정해진 회선(circuit)으로만 통신하는 네트워크
    - 사전에 연결 수립 작업
    - 다른 호스트는 도중에 끼어들 수 없음
    - 전통적인 전화망
    - 장점: 전송률 보장
    - 단점: 회선 이용률 저하 : 다른 호스트가 차단됨

  • 패킷 구성 요소
    - 헤더(header): 패킷에 붙일 부가 정보
          - 택배로 생각하면 보낼 때 붙이는 주소 / 네트워크에서 주소, 프로토콜 보조 정보
    - 페이로드(payload): 패킷에 보낼 정보
          - 택배로 생각하면 보내는 물건 / 메세지
    - [트레일러(trailer)]: 패킷 뒤에 붙일 부가정보 : 가끔 뒤에 붙는 정보가 있음

  • 프로토콜(protocol)
    - 장비 간 정보를 주고받을 규칙이나 방법 
    - 호스트 간에 합의된 의사소통 규칙 : 호스트 간의 언어
    - 헤더의 내용은 프로토콜의 영향을 받는다
    - 프로토콜이 달라지면 헤더의 내용이 달라질 수 있다
    - 부가정보(규칙, 방법)이 프로토콜 마다 다르다 : 목적이 다르다
    - TCP(신뢰성이 있는 정보), UDT(빠르고 효율적인 전송)

  • 네트워크 참조 모델
    - 송수신 과정에서의 정형화된 단계
    컴퓨터간의 통신 계층
    - 송신 : 높은 계층-> 낮은 계층, 수신 : 낮은 계층-> 높은 계층

  • 대표적인 네트워크 참조 모델 ( OSI 모델 vs TCP/IP 모델)
    - OSI 모델 (OSI 7계층) ***외우면 좋다***
          - 물리 계층 : 가장 근원적인 송수신이 이루어짐, 0과 1로 이루어진 비트를 주고 받음, 전자파/케이블로 송수신
                    - 하드웨어 단에서 송수신이 이루어짐, 물리적으로 무언가 송수신을 받음
          - 데이터링크 계층 : 오류제어, 랜환경에서 주소를 식별, MAC주소, 랜환경에서 안전하게 통신하게 충돌방지
          - 네트워크 계층 : 넓은 네트워크 간의 통신, 네트워크끼리 통신할 수 있게 하는 것 : LAN 간의 통신!
                   - 가장 중요한 것 : IP 프로토콜
          - 전송 계층 : 송수신과정에서 신뢰성을 덧붙일때, 내 컴퓨터에 있는 프로그램이 나갈때 어떻게 식별될지에 대해 port라는 정보도 함께 나감
          - 세션 계층 : 세션이라는 연결관계를 유지 수립
          - 표현 계층 : 번역가처럼 압축/인코딩
          - 응용 계층 : 실제로 어플리케이션이 동작하는 HTTP가 대표적임

    - TCP/IP 모델
          - 네트워크 엑세스 계층 (유사- OSI 모델 ) 데이터 링크 계층+물리계층
          - 인터넷 계층 (유사- OSI 모델 ) 네트워크계층
          - 전송 계층 (유사- OSI 모델 ) 전송계층
          - 응용 계층 (유사- OSI 모델 ) 응용계층+표현계층+세션계층

    - OSI 와 TCP는 만들어진 목적이 다르다
         - OSI : 이론적인(이상적인 설계) 참조를 위해 만들어진 모델 : 설계도
         - TCP : 실제 구현을 위해 만들어진 모델 : 실물
      - 서로 직접적인 비교가 불가능하다 : 각 계층 같다고 말할 수가 없다. (유사하다 정도만 이해)

  • 캡슐화(encapsulation)
    - 계층마다 주로 사용되는 프로토콜이 다르기에, 헤더의 내용이 달라질 수 있다.
        -> 각 계층을 지날수록, 프로토컬의 헤더가 추가가 된다. 
    - 상위 계층으로부터 내려받은 패킷을 페이로드로 삼아, 상위 계층으로부터 받은 정보에 프로토콜에 걸맞는 헤더(혹은 트레일러)를 덧붙이는 것

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

    - 각 계층별의 PDU(각 계층에서 캡슐화 된 데이터)

 

  • 와이어 샤크 
    - 네트워크의 패킷을 직접 캡쳐할 수 있는 패킷 캡쳐 프로그램
    - 내컴퓨터를 기준으로 인터넷상 날라다니는 패킷을 직접 관찰할 수 있는
    - 네트워크 학습시, 아주 유용한 도구
    - 와이어샤크 설치 : https://www.wireshark.org/

네트워크의 성능
  • 트래픽
    - 특정 시간 동안 네트워크 내 정보 흐름 : 한 노드를 얼마나 많은 패킷들이 한순간에 경유하는가
    -  얼마나 많은 패킷들이 한 순간 몰리는가
    -  “트래픽이 몰린다”->과부하/오버헤드 : 정보가 과다하다
    -  “트래픽을 분산한다" : 정보의 흐름을 분산한다

  • 전송 속도 : 네트워크 장비, 케이블과 같은 연결매체에서 자주 볼 수 있는 단어
         - 보통 기대가능한 속도를 표기함
    -  bps(b/s, bits per second)
    -  Mbps(Mb/s, Megabits per second)
    -  Gbps(Gb/s, Gigabits per second)
    -  기대 가능한 속도

  • 처리율 (Throughput) : 현실적인 전송속도 

    - bps(b/s, bits per second)
    - Mbps(Mb/s, Megabits per second)
    - Gbps(Gb/s, Gigabits per second)
    - 단위 시간 동안 네트워크를 통해 전송되는 데이터 양

  • 대역폭 (bandwidth)
    - 네트워크 트래픽을 수용할 수 있는 용량
    - 송수신 가능한 최대 데이터 양
    - “전송 매체의 두께” 

  • 패킷 손실 (packet loss)
    - 얼마나 많은 패킷이 송수신 과정에서 손실되었는가
    - 보통 백분율로 표기