[TIL 02: 네트워크(1)]

Juhee Fred Lee·2023년 10월 10일
0

TIL

목록 보기
2/24
  1. 개념 정리
    1. 클라우드 컴퓨팅
      1. 개념: 컴퓨팅 리소스를 인터넷을 통해 서비스로 사용할 수 있는 주문형 서비스

      2. On-premise/ Iaas/ Paas/ Saas/ Iac의 개념: 레드햇 설명글: https://www.redhat.com/ko/topics/cloud-computing/iaas-vs-paas-vs-saas

        1. 용어정리
        용어의미예시
        Runtime프로그램의 실행 ⇒ 스택과 힙 구축 및 관리, GC, Thread 등의 관리
        Middleware공통 서비스 및 기능을 애플리케이션에 제공하는 것. ⇒ 개발과 관리가 용이해짐.- 컨테이너 레이어: CI/CD
        - 런타임 레이너: MSA, In-memory cache
        - 통합 레이어: 관리 툴 (메시징, 인메머리 캐시)
        - 프로세스 자동화 및 의사결정 레이어: 최적화, 자동화 등
        - 툴링: 템플릿화를 통한 개발 지원
        Virtualization기기에 국한되지 않고 자유롭게 원하는 서비스를 사용하는 것. 기기의 최대 용량을 사용자/용도에 따라 분산하여 사용하는 것.- 윈도우 환경에서 리눅스 환경 사용하기
        Hosting서버 컴퓨터의 전체 또는 일정 공간을 이용할 수 있도록 임대하는 서비스
        Port인터넷 프로토콜 스위트에서 포트는 운영 체제 통신의 종단점이다.
        Client/ Server요청을 하는 쪽 ↔ 응답을 하는 쪽
        참조 모델프로토콜/기능/관리/네트워크 각 구성요소별로 쉽게 참조할 수 있도록 간략화시킨 개념적 모델
        1. 각 서비스별 제공받는 단계

          https://www.redhat.com/rhdc/managed-files/iaas-paas-saas-diagram5.1-1638x1046.png

        2. On-promise: 소프트웨어를 이용하는 개인 혹은 집단이 직접 서버를 구축하여 서비스를 구현하는 형태.

        3. IaasS(Infrastructure as a Service)

          1. 네트워크, 서버, 가상화 및 스토리지 기능을 임대하는 것.
          2. 장점: 환경 구축이 비교적 쉽다. PaaS/ Saas에 비하여 비용이 작다.
          3. 단점: 보안 문제 가능성, 멀티 테넌시 및 시스템 성능 신뢰성의 문제
            1. 멀티 테넌시 ⇒ 단일 소프트웨어 인스턴스를 서로 다른 여러 사용자 그룹에게 제공하는 것.
            2. 한 고객이 서버 리소스를 독점할 경우 시스템 성능 신뢰성이 떨어질 수 있다.
        4. PaaS (Platform as a Service)

          1. 자체 인프라에서 소프트웨어와 하드웨어를 빌려주고, 위 플랫폼에서 사용자에게 통합 솔루션이나 인터넷을 통한 서비스를 제공해줍니다.
          2. LIKE Elastic Beanstalk
        5. SaaS (Service as a Service)

          1. 모든 애플리케이션은 제공업체가 관리하며 웹 브라우저를 통해 제공됨.
          2. LIKE OFFICE 365
        6. IaC (Infrastructure as Code)

          1. 인프라 구축을 수동 프로세스로 하는 것이 아니라 코드를 통해 관리하는 것을 의미한다.
    2. 네트워크
      1. 개념: 어떤 연결을 통해 컴퓨터의 자원을 공유하는 것
      2. 종류 (거리/장비에 따라서 분류함) ⇒ 스위치를 사용할 때 해당 지식이 필요
        1. Local Area Network (LAN): 어느 한정된 공간 안에서 네트워크를 구성한 것
        2. Wide Area Netwokr (WAN): 멀리 떨어진 지역을 서로 연결한 것
        3. Metropolitan Area NetWork (MAN)
          1. Wireless LAN (WLAN)
          2. Wireless WAN (WWAN)
      3. 네트워크 통신 방식 (수신자에 따라서)
        1. 유니캐스트 (Unicast)
          1. 한명에게 보낼 때 사용
          2. 가장 많이 사용되는 통신 방식
          3. 특정 목적지의 주소 하나만을 가지고 통신하는 방식 LIKE 편지
        2. 멀티캐스트 (Multicast)
          1. 특정 그룹에게 데이터를 보내야 하는 경우
          2. 라우터 또는 스위치에서 멀티캐스트 기능을 지원해야 가능
        3. 브로드캐스트 (Broadcast)
          1. 로컬 랜 상(한정된 도메인 내)에 붙어있는 모든 네트워크 장비들에게 보내는 통신 방식
          2. 브로드캐스트는 왜 필요할까요?
            1. 만약 새로운 장비가 들어와 통신을 하고 싶을 때 MAC 주소가 없는 경우, 브로드 캐스트를 활용하여 모든 장비에 통신을 한 후 해당 장비의 MAC 주소를 찾는다.
          3. 브로드캐스트는 어떤 문제점을 가지고 있을까요?
            1. 전체 노드로 전송되기 때문에 성능 저하 (CPU 과부하/ 트래픽 증가, 인터럽트 증가)
      4. 네트워크에 필요한 요소: 케이블, 랜카드. 스위치, 허브, 라우터, ip/mac(물리적 주소)
      5. 🌈OSI 7 Layer
        1. 등장 배경
          1. 과거에는 제조사/장비 별로 프로토콜이 달랐기에 통신에 한계가 있었다.
          2. ISO에서 위와 같은 문제를 해결하기 위해서 표준화된 참조모델을 만들고자 하였다.
        2. OSI 참조 모델
          1. ISO가 통신이 일어나는 과정을 7단계로 세분화하였다.
          2. 결과
            1. 데이터의 흐름을 한눈에 파악 가능!
            2. 트러블슈팅할 때 편리! (문제를 계층별로 분류하여 파악이 용이함.)
            3. 이기종 장비간의 통신이 가능해짐!
        3. 계층별 설명
          1. Layer1. Physical Layer (물리 계층)
            1. 전기적, 기계적, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송
            2. 통신 단위: 비트(bit), 0과 1로 전송
            3. 수신처에 ‘Only 데이터를 전달’ (분석은 전혀 이루어지지 않는 단계)
            4. 장비: 케이블, 리피터, 허브
              1. 케이블 (ex: 10 base t)
                1. 각 항목 별 의미
                  1. 데이터 전송 속도: 10Mbps의 속도를 지원한다.
                  2. 데이터 전송방식
                    1. Base ⇒ Baseband 방식: 디지털 신호를 그대로 전송 (Ethernet)
                    2. Broadband 방식: 디지털 신호를 아날로그 신호로 전환하여 전송
                  3. 단선/연선 여부
          2. Layer2. Data Link Layer (데이터 링크 계층)
            1. 데이터 전송을 담당하는 계층 (1계층을 통해 송수신되는 정보의 오류와 흐름을 관리)
            2. 데이터 링크 계층에서 전송되는 데이터 단위: 프레임(Frame)
            3. 장비(Device): 스위치 (브리지 - 현재 스위치에 통합되었기 때문에 실사용 X) ⇒ 매우 중요한 장비입니다 ⭐
            4. 가장 최적의 경로(best path: 시간의 효율성)를 찾기 위해서 맥 테이블을 생성 & 이용 ⇒ 여기서는 스위치의 최적의 경로 (내부)
              1. 맥 어드레스 테이블 ⇒ MAC 주소들을 DB화 해둔 것
              2. 만약에 맥 테이블에 정보가 없는 경우? ⇒ ???: 야 브로드캐스트 갈겨
            5. 직접 연결된 노드 간의 통신 담당
            6. 데이터 링크 계층에서 수행하는 작업
              1. 2개의 서브레이어로 구성되어있음 (Two suv-layers of Data Link Layer: 3 ↔ 2 & 2 ↔ 1)
                1. Logical Link Control (LLC)
                  1. 논리적의 의미 ⇒ 가변적이다는 의미.
                  2. 에러메시지, 프로토콜
                2. Media Access Control (MAC)
                  1. 기기와 관련된 문제들에 대한 처리는 해당 레이에서 진행된다.
            7. 데이터링크 계층의 기능
              1. Framing: 비트 ↔ 프레임
              2. Addressing: 프레임을 캡슐화(MAC sublayer)
              3. Error Control: 오류/손실 → 수정/재전송(FCS)
              4. Flow Control: 속도차를 조절
              5. Access Control: 다중 사용자 접근 제어 등
          3. Layer3. Network Layer (네트워크 계층)
            1. 상위 계층으로 받은 데이터를 패킷 단위로 규격화 하여 전송하고 수신하는 기능을 수행하는 단계
              1. 스위치와 라우팅 기능을 통해 패킷 경로를 결정 ⇒ 라우트의 최적 경로 설정
              2. 호스트 간의 통신 담당 (IP)
            2. 장비(Device): 라우터/ 스위치
              1. L2 스위치: MAC Address를 기반으로 하는 장비
              2. L3 스위치: IP 기반의 패킷을 전송하기 위해 사용
            3. 목적지 호스트로 데이터 전송
            4. 네트워크 간의 최적의 경로 결정
            5. 네트워크 계층에서 일어나는 일
              1. 패킷 전달 (Packet Forwarding): 종단 간 (end-to-end)의 패킷을 수행 (Packets Creation → Transport → Packets Assembly)

              2. 라우팅 (Routing): 종단 간 패킷을 전송할 때, 라우팅 프로토콜을 기반으로 가장 효율적인 경로 (best path)를 선택하여 패킷을 전송

              3. 논리적인 주소로 전달: IP주소를 사용하여 사용자 데이터를 목적지 장치까지 전달

              4. 프레임 VS 패킷 (데이터 단위: Protocal Data Unit)

                프레임패킷
                데이터링크 계층에서 사용하는 용어네트워크 계층에서 사용하는 용어
                프레임 헤더 정보: MAC (디바이스 고유정도)패킷의 헤더 정보: IP

                | 데이터 전송의 최소 단위
                (Only 데이터 링크 계층에서만 사용) | 데이터의 한 덩어어리
                (모든 프로토콜에서 사용 가능) |

          4. Layer4. Network Layer (전송 계층)
            1. 소프트웨어적인 특성을 가지는 상위 3개(응용, 표현, 세션) 계층과 하드웨어적인 특성을 가지는 하위 3개(물리, 데이터링크, 네트워크) 계층 사이에서 중간적인 특성을 가지고 있는 계층
            2. 애플리케이션 간의 통신 담당
            3. 목적지 애플리케이션으로 데이터 전송
            4. 안정적이고 신뢰할 수 있는 데이터 전송 보장 (TCP) + 필수 기능만 제공 (UDP: 3-way handshake 안하고 쏴버림 ⇒ LIKE 케이블 TV)
            5. 네트워크 계층에서는 수행하는 일
              1. Message acknowledgment: 종단 간 데이터 통신 보장
              2. Message traffic control: 지연에 따른 왜곡 및 대역폭 부족 문제 해결
              3. Session: multiplexing: 동시에 여러 개의 논리적 연결을 지원
              4. Message sgmentation: 사용자 데이터를 분할과 재조립
          5. Layer5. Session Layer
            1. 종단 간에 통신 세션의 시작과 종료를 정의
            2. 일정 시간 동안 같은 사용자로부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 일정하게 유지하는 것
          6. Layer6. Presentation Layer
            1. 데이터를 어떻게 표현하는지를 정의
              1. 응용계층에서 만들어진 데이터를 마른 모든 컴퓨터가 이해할 수 있는 형태로 변환시키는 역할을 담당
              2. 인코딩/ 디코딩
                1. 인코딩: 컴퓨터가 인식할 수 있는 형태의 언어로 변환하는 것.
                2. 디코딩: 사람이 인식할 수 있는 형태의 언어로 변환하는 것.
              3. 암호화/ 복호화
                1. 암호화: 패킷 내용을 알아볼 수 없게 바꾸는 행위
                2. 복호화: 암호화된 내용을 볼 수 있게 바꾸는 행위
          7. Layer7. Application Layer(응용 계층)
            1. 공 란사용자 또는 애플리케이션이 네트워크에 접근 가능하도록 만들어주는 역할 (=사용자를 위한 인터페이스를 제공)
            2. 사용자에게 보이는 유일한 계층
        4. OSI Layer Protocol
          1. OSI (Pen System Interconnection) 프로토콜

            https://blog.kakaocdn.net/dn/bjlUeP/btrdDKJPY0D/sP8LI2S7uE08H0o5hJxgt0/img.jpg

          2. Layer2 protocol : Ethernet

            1. LAN/WAN 환경에서 네트워크를 구축하는 방법 중 하나
              랜카드부터 모든 장비들을 구축방법에 맞게 구입해야 하므로 중요!
            2. 현재, 대부분의 네트워크가 이더넷 방식으로 구축되어있다.
            3. 이더넷이 사용한는 통신 방식: CSMA/CD (Carrier Sence Multiple Access/Collision Detection)
              1. Carrier Sense ⇒ 네트워크 상에서통신을 하고 있는지에 대한 감지
                Multiple Access ⇒ 두 개 이상의 pc나 서버가 동시에 네트워크 상에서 데이터를 실어 보내는 경우
                Collision Detect ⇒ 데이터 충돌이 발생하지 않도록 확인하는 것 (케이블 상에 통신 중인 데이터가 없을 경우 통신 시작)
              2. 사용 이유
                1. 불필요한 전송을 사전에 차단시켜 트래픽을 줄이기 위해서.
          3. Layer3 protocol

            1. 공인ip ↔ 사설ip

              https://nordvpn.com/wp-content/uploads/asset-types-of-ip-addresses-static-vs-dynamic-ip-1-ko.svg

            2. IP(Internet Protocol)

              1. 서로 간의 통신을 위해서 구분되는 유일무이한 주소
              2. 네트워크를 통해 패킷을 전달하기 위해 만들어진 프로토콜
              3. 신뢰성 없는 패킷 교환 프로토콜 (신뢰성 ⇒ 연결 여부)
                → 패킷이 상대방에게 도착되지 않는 경우 패킷 재전송 X
                → ICMP
                : 이를 보완하기 위한 프로토콜 (네트워크 장치에서 네트워크 통신 문제를 진단하는 데 사용하는 네트워크 계층 프로토콜) ⇒ ping
            3. ARP(Address Resolution Protocol) ↔ RARP(Reverse Address Resolution Protocol)

              1. IP 주소를 MAC주소(물리적인 주소)로 바꾸기 위한 절차
                1. IP ~ MAC 1대 1 매핑되어있는 DB에서 찾아서 반환해줌
          4. Layer4 protocol

            1. TCP (Transmission Control Protocol)
              1. 신뢰성 (= Connection Establishment) 있는 프로토콜: 데이터가 목적지에 무사히 도착하는 것을 보증
            2. UDP (User Datagram Protocol)
              1. 데이터의 도달 여부 확인 X
          5. TCP/IP protocol

            1. 탄생배경
              1. 1960년대 후반 이기종 컴퓨터간의 원활한 데이터통신을 위해 개발
              2. OSI 7 Layer를 참조하여 TCP/IP 프로토콜을 생성
              3. 단점: 취약한 보안 기능 및 IP 주소 부족
              4. 그럼에도 불구하고, 현재 인터넷에서 사용되는 사실상의 통신 프로토콜 표준
            2. OSI참조 모델 ↔ TCP/IP 계층 모델
              1. OSI: 통신 프로토콜에 필요한 기능이 무엇인지 중심으로 고안하여 모델화
              2. TCP/IP: 프로토콜을 컴퓨터에 적용시키려면 어떻게 프로그래밍해야 좋은지를 고안하여 모델화
            3. TCP Protocol + IP Protocol = TCP/IP Protocol
              1. 전송/통신을 제어하는 프로토콜 생성
                1. IP: 간략화 + 고속화/ Conectionless/ 단순한 처리과정/ 간단한 정보관리/ 빠른 처리속도
                2. TCP/ UDP
                  1. TCP: 신뢰성, 스트림형 프로토콜
                  2. UDP: 비신뢰성, 메세지 크기 유지, 패킷 도달 보장 X, 고속성, 실시간성
            4. Ip address
              1. MAC ↔ IP

                MACIP
                local identificationglobal identification
                Layer2 operationLayer3 operation
                Physical AddressLogical Address
                48 bit32bit
              2. MAC Address (Media Access Control)

                1. 하드웨어 주소

                2. Only + Unique (동일 주소 존재X)

                3. 48자리의 이진수로 이루어진 맥 어드레스는 16진수로 변환 시 12자자리로 바뀜

                  앞 6자리뒤 6자리

                  | - IEEE가 제조업체에 부여한 제조사 코드인 OUI 값

                  • OUI: Organizeational Unique Identifier | - 제조사에서 자체적으로 할당한 UAA 값
                  • UAA: Universally Administered Address |
              3. 네트워크 주소 체계: IP Address

                1. 인터넷 세상에서 찾아가기 위한 논리적인 주소
                  1. 라우터를 통한 다른 네트워크와 통신하는 넓ㅅ은 볌위의 통신을 위해서 필요

                  2. TCP.IP의 심장부로서 인터넷의 프로토콜

                  3. 이진수 32자리 → 8자리마다(옥테트) 점으로 구분 → 실제 사용은 십진수 (8 * 4 = 32)

                    공인 IP사설 ip
                    할당 주체ISP (인터넷 서비스 공급자)라우터 (공유기)
                    할당 대상개인 또는 회사의 서버(라우터)ro인 또는 회사의 기기
                    고유성인터넷 상에서 유일한 주소하나의 네트워크 안에서 유일
                    공개여부내/외부 접근 가능외부 접근 불가능
                    사설 IP = 가상 IP / 로컬 IP
                2. IP 주소 Class A
                  1. 5개로 구분 (A, B, C, D, E → 실제 사용은 A, B, C)
                  2. 네트워크 크기에 따라서 구분 (=하나의 네트워크가 호스트를 몇 개까지 가질 수 있는가)
                  3. 궁극적으로 , IP 주소를 적절하게 효율적으로 배분하기 위한 목적
                  4. Class 별 세부 설명
                    1. Network ↔ Host
                      1. Network: 개인 PC가 속해있는 도메인.
                      2. Host: 개인 PC로 생각하면 됨.
                    2. Class A
                      1. 하나의 네트워크가 가질 수 있는 호스트가 가장 많은 수
                      2. 대규모 네트워크
                      3. 32개의 이진수 중에서 맨 앞쪽 하나가 항상 0으로 시작
                        (나머지는 0과 1중에서 아무거나 나와도 상관 없음)
                      4. 0.0.0.0 ~ 127.255.255.255 사이의 주소 (0.0.0.0/ 127.0.0.0은 제외)
                      5. 클래스 A의 호스트 수: 2의 24승 - 2 = 16,777,214
                        (전체 경우의 수에서 0.0.0.0, 127.0.0.0 제외)
                      6. (Network).(Host).(Host).(Host) ⇒ 2^(8+8+8) - 2
                    3. Class B
                      1. 중규모 네트워크
                      2. 맨 앞이 반드시 10(이진수)로 시작
                        (나머지는 0과 1 중에서 아무거나 와도 상관 없음)
                      3. 128.0.0.0 ~ 191.255.255.255 사이의 주소 (0.0.0.0/ 63.0.0.0 제외)
                      4. 클래스 B의 호스트 수: 2의 16승 - 2
                      5. (Network).(Network).(Network).(Host) ⇒ 2^(8+8) - 2
                    4. Class C
                      1. 소규모 네트워크
                      2. 맨 앞이 반드시 110(이진수)로 시작
                      3. 192.0.0.0 ~ 223.255.255.255
                      4. 클래스 C의 호스트 수: 2^8 - 2 = 254개
                      5. (Network).(Network).(Network).(Host) ⇒ 2^(8) - 2
profile
공릉동에 살며 백엔드를 공부하는 감자입니다.

0개의 댓글