군만두의 IT 공부 일지

[스터디3] 네트워크 - 02. 네트워크 기기 본문

학습일지/CS 지식

[스터디3] 네트워크 - 02. 네트워크 기기

mandus 2024. 12. 23. 23:03

목차

     

    이번에는 이전 게시글에 정리하지 않았던 2.3 섹션과 2.5 섹션을 정리해보고 넘어가려고 합니다. 네트워크 공부를 안 한지 오래 되어서 그런지, 배운 내용이어도 어렵게 느껴지는 것 같습니다.

    2장 네트워크

    2.3 네트워크 기기

    2.3.1 네트워크 기기의 처리 범위

    • 네트워크 기기는 계층별로 처리 범위를 나눌 수 있음.
    • 상위 계층을 처리하는 기기는 하위 계층을 처리할 수 있지만, 하위 계층을 처리하는 기기는 상위 계층을 처리할 수 없음.
      • 애플리케이션 계층: L7 스위치
      • 인터넷 계층: 라우터, L3 스위치
      • 데이터 링크 계층: L2 스위치, 브리지
      • 물리 계층: NIC, 리피터, AP

    2.3.2 애플리케이션 계층을 처리하는 기기

    • 스위치: 여러 장비를 연결하고 데이터 통신을 중재하며 목적지가 연결된 포트로만 전기 신호를 보내 데이터를 전송하는 통신 네트워크 장비
    1. L7 스위치: 로드밸런서. 서버의 부하를 분산하는 기기.
      • 클라이언트로부터 오는 요청들을 여러 서버로 나누는 역할을 함.
      • IP, 포트 외에도 URL, HTTP 헤더, 쿠키 등을 기반으로 트래픽을 분산함. 필터링 기능도 가지고 있음. 응용 프로그램 수준의 트래픽 모니터링도 가능함.
      • 클라우드 서비스에서 L7 스위치를 이용한 로드밸런싱은 ALB(Application Load Balancer) 컴포넌트로 함.
    • L7 스위치와 L7 스위치 차이
      • L7 스위치와 L7 스위치는 로드밸런싱을 수행하는 방식과 처리하는 데이터 계층에서 차이가 있음.
      • L4 스위치: 로드밸런서. 전송 계층을 처리하는 기기
      • 스트리밍 관련 서비스에서는 사용할 수 없음.
      • 메시지를 기반으로 인식하지 못하고, IP와 포트를 기반으로 트래픽을 분산함.
      • 클라우드 서비스에서 L4 스위치를 이용한 로드밸런싱은 NLB(Network Load Balancer) 컴포넌트로 함.
    구분 L4 스위치 L7 스위치
    작동 계층 전송 계층(계층 4) 애플리케이션 계층(계층 7)
    주요 기능 IP 주소와 포트 번호 기반의 트래픽 분산 URL, HTTP 헤더, 쿠키 기반의 고급 트래픽 분산
    클라우드 컴포넌트 NLB(Network Load Balancer) ALB(Application Load Balancer)
    트래픽 분석 수준 중간(연결 및 세션 관리) 높음(응용 프로그램 데이터 분석 및 필터링)
    사용 사례 네트워크 내 간단한 트래픽 분산 및 관리, 데이터 센터 서버 밸런싱 복잡한 웹 애플리케이션 및 API 트래픽의 로드 밸런싱, 콘텐츠 기반 라우팅

    *OSI 7계층: 물리 계층(계층 1) / 데이터 링크 계층(계층 2) / 네트워크 계층(계층 3) / 전송 계층(계층 4) / 세션 계층(계층 5) /  표현 계층(계층 6) /

    애플리케이션 계층(계층 7)

    • L4 스위치, L7 스위치 모두 헬스 체크를 통해 정상적인 서버 또는 비정상적인 서버를 판별함.
      • 헬스 체크: 전송 주기와 재전송 횟수 등을 설정한 이후 반복적으로 서버에 요청을 보내는 것
      • 서버에 부하가 되지 않을 만큼 요청 횟수가 적절해야 함.
      • 요청이 정상적으로 이루어졌다면 정상적인 서버로 판별하고, 정상적으로 이루어지지 않았다면 비정상적인 서버로 판별함.
    • 로드밸런서의 대표적인 기능: 서버 이중화
      • 서버를 안정적으로 운용하기 위해서 로드밸런서는 2대 이상의 서버를 기반으로 가상 IP를 제공하고 안정적인 서비스를 제공함.

    2.3.3 인터넷 계층을 처리하는 기기

    1. 라우터(router): 다른 네트워크에 존재하는 장치끼리 서로 데이터를 주고받을 때 패킷 소모를 최소화하고 경로를 최적화하여 최소 경로로 패킷을 포워딩하는 라우팅을 하는 장비
    2. L3 스위치: L2 스위치의 기능라우팅 기능을 갖춘 장비
      • 라우터는 소프트웨어 기반의 라우팅과 하드웨어 기반의 라우팅을 하는 것으로 나눠지는데, 하드웨어 기반의 라우팅을 하는 장치를 L3스위치라고 함.
    구분 L2 스위치 L3 스위치
    작동 계층 데이터 링크 계층(계층 2) 인터넷 계층(계층 3)
    주요 기능 MAC 주소를 기반으로 한 데이터 전송 및 스위칭 IP 주소를 기반으로 한 라우팅 및 네트워크 관리
    참조 테이블 MAC 주소 테이블 라우팅 테이블
    참조 PDU 이더넷 프레임 IP 패킷
    참조 주소 물리적 주소(MAC) 논리적 주소(IP)
    사용 사례 사무실 네트워킹, 스위칭 장비 간 연결, VLAN 구성 서로 다른 네트워크 및 서브넷 간의 연결, 다양한 라우팅 시나리오 구성

    2.3.4 데이터 링크 계층을 처리하는 기기

    1. L2 스위치: 장치들의 MAC 주소를 MAC 주소 테이블을 통해 관리하며, 연결된 장치로부터 패킷이 왔을 때 패킷 전송을 담당함.
      • IP 주소를 이해하지 못해 IP 주소를 기반으로 라우팅은 불가능함. 단순히 패킷의 MAC 주소를 읽어 스위칭하는 역할을 함.
    2. 브리지(bridge): 두 개의 근거리 통신망(LAN)을 상호 접속할 수 있도록 하는 통신망 연결 장치. 장치에서 받아온 MAC 주소를 MAC 주소 테이블로 관리함.

    2.3.5 물리 계층을 처리하는 기기

    1. NIC(Network Intervface Card): LAN 카드
      • 2대 이상의 컴퓨터 네트워크를 구성하는 데 사용함.
      • 네트워크와 빠른 속도로 데이터를 송수신할 수 있도록 컴퓨터 내에 설치하는 확장 카드.
      • 고유의 식별번호인 MAC 주소가 있음.
    2. 리피터(repeater): 들어오는 약해진 신호 정도를 증폭하여 다른 쪽으로 전달하는 장치
      • 패킷이 더 멀리갈 수 있게 함.
      • 광케이블이 보급되면서 잘 쓰지 않음.
    3. AP(Access Point): 패킷을 복사하는 기기
      • 유선 LAN을 연결한 후 다른 장치에서 무선 LAN 기술을 사용하여 무선 네트워크 연결을 할 수 있음.

    2.5 HTTP

    2.5.1 HTTP/1.0

    • HTTP/1.0: 기본적으로 한 연결당 하나의 요청을 처리하도록 설계됨. RTT(패킷 왕복 시간)가 증가하는 단점이 있음.
    • RTT의 증가를 해결하기 위해 이미지 스플리팅, 코드 압축, 이미지 Base64 인코딩을 사용함.
      • 이미지 스플리팅: 많은 이미지가 합쳐 있는 하나의 이미지를 다운받고, 이를 기반으로 background-image의 position을 이용하여 이미지를 표기하는 방법
      • 코드 압축: 코드를 압축해서 개행 문자, 빈칸을 없애서 코드의 크기를 최소화하는 방법
      • 이미지 Base64 인코딩: 이미지 파일을 64진법으로 이루어진 문자열로 인코딩하는 방법

    2.5.2 HTTP/1.1

    • HTTP/1.1: HTTP/1.0에서 발전한 것. 매번 TCP 연결을 하는 것이 아니라 한 번 TCP를 초기화한 이후에 keep-alive라는 옵션으로 여러 개의 파일을 송수신할 수 있음.

    2.5.3 HTTP/2

    • HTTP/2: SPDY 프로토콜에서 파생된 HTTP/1.x 보다 지연 시간을 줄이고 응답 시간을 더 빠르게 할 수 있으며, 멀티플렉싱, 헤더 압축, 서버 푸시, 요청의 우선순위 처리를 지원하는 프로토콜
      • 멀티플렉싱: 여러 개의 스트림을 사용하여 송수신한다는 것
      • 헤더 압축: HTTP/1.x가 크기가 큰 헤더라는 문제를 해결하기 위해 HTTP/2에서는 헤더 압축을 써서 해결함. 허프만 코딩 압축 알고리즘을 사용하는 HPACK 압축 형식을 가짐.
      • 서버 푸시: HTTP/1.1에서는 클라이언트가 서버에 요청을 해야 파일을 다운받을 수 있지만, HTTP/2는 클라이언트 요청 없이 서버가 바로 리소스를 푸시할 수 있음.

    2.5.4 HTTPS

    • HTTP/2는 HTTPS 위에서 동작함. TCP 위에서 돌아감.
    • HTTPS: 애플리케이션 계층과 전송 계층 사이에 신뢰 계층인 SSL/TLS 계층을 넣은 신뢰할 수 있는 HTTP 요청
      • SSL(Secure Socket Layer)/TLS(Transport Layer Security Protool): 전송 계층에서 보안을 제공하는 프로토콜
      • SSL 1.0부터 시작해서 SSL 2.0, SSL 3.0, TLS 1.0, TLS 1.3까지 버전이 올라가며 마지막으로 TLS로 명칭이 변경됨.
      • 보통 SSL/TLS라고 합쳐서 부름. 책에서는 TLS 1.3을 기반으로 설명함.
    • HTTPS 구축 방법
      1. 직접 CA에서 구매한 인증키를 기반으로 HTTPS 서비스를 구축함.
      2. 서버 앞단의 HTTPS를 제공하는 로드밸런서를 둬서 구축함.
      3. 서버 앞단에 HTTPS를 제공하는 CDN을 둬서 구축함.

    2.5.5 HTTP/3

    • HTTP/3: HTTP/1.1 및 HTTP/2와 함께 World Wide Web에서 정보를 교환하는 데 사용되는 HTTP의 세 번째 버전
      • HTTP/3은 QUIC라는 계층 위에서 UDP 기반으로 돌아감.
      • 멀티플렉싱을 가지고 있으며, 초기 연결 설정 시 지연 시간 감소라는 장점이 있음.

     

    ⭐참고자료

     

    1) coco3o, "신입 개발자 기술면접 질문 정리 - 네트워크", 2022.02.28, https://dev-coco.tistory.com/161

    이 글은 면접을 위한 CS 전공지식 노트 책을 학습한 내용을 정리한 것입니다.
    Comments