본문 바로가기
개발/기타

[CS Study] 2. 네트워크 (2)

by 카펀 2022. 8. 15.

# 본 글은 인하대학교 단풍나무숲 CS 스터디에 작성한 내용을 그대로 가져온 글입니다.
# 본 내용 중 HTTPS 관련 내용은 제외되었습니다 (추후 다룰 예정).

2. 네트워크

목차

  1. 네트워크 기기
  2. IP 주소
  3. HTTP

3. 네트워크 기기

네트워크를 구성하는 여러 종류의 기기에 대해 다룹니다.

1. 네트워크 기기의 처리 범위

각 계층을 담당하는 기기들이 있다.

  • 애플리케이션 계층: L7 스위치
  • 인터넷 계층: 라우터, L3 스위치
  • 데이터 링크 계층: 브리지, L2 스위치
  • 물리 계층: NIC, 리피터, AP

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

L7 스위치
기본적으로, 스위치는 여러 장비를 연결하고, 데이터 통신을 중재하며, 목적지가 연결된 포트로만 전기 신호를 보내 데이터를 전송한다.

  • 로드 밸런서라고도 하며, 서버의 부하를 분산함
  • 클라이언트 -> (중략) -> 로드 밸런서 -> 여러 대의 서버 와 같은 형태를 가진다.
  • URL, 서버, 캐시, 쿠키 등을 기반으로 트래픽을 분산한다.
  • 바이러스, 불필요한 외부 데이터 등을 걸러낸다.
  • L4 스위치는 IP와 포트를 기반으로 트래픽을 분산하는데, L7 스위치는 IP, 포트, URL, HTTP 헤더, 쿠키 등을 기반으로 트래픽을 분산시킨다.
  • 두 스위치 모두 헬스 체크를 통해 서버의 정상/비정상 여부를 분간한다.

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

라우터

  • 여러 개의 네트워크를 연결, 분할, 구분시켜 준다.
  • 다른 네트워크에 존재하는 장치끼리 서로 데이터를 주고받을 때 패킷 소모를 최소화한다.
  • 경로를 최적화하여 최소 경로로 패킷을 포워딩한다.
  • 공유기

L3 스위치

  • L2 스위치의 기능에 더해, 라우팅 기능을 갖춘 장비
구분 L2 스위치 L3 스위치
참조 테이블 MAC 주소 테이블 라우팅 테이블
참조 PDU 이더넷 프레임 IP 패킷
참조 주소 MAC 주소 IP 주소

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

L2 스위치

  • MAC 주소를 기반으로 장치를 관리하며, 이를 위해 MAC 주소 테이블을 사용함
  • 연결된 장치로부터 패킷이 왔을 때 패킷 전송을 담당
  • IP 주소는 사용할 수 없음

물리 계층을 처리하는 기기

NIC

  • Network Interface Card
  • 네트워크 연결을 위해 컴퓨터에 설치하는 확장 카드

4. IP 주소

ARP 통신

IP 주소를 통한 인터넷 계층의 통신이란, IP 주소를 기반으로 MAC 주소를 찾아 통신을 진행하는 과정

  • ARP (Address Resolution Protocol)은 IP -> ARP -> MAC로 진행되는 주소 변환 과정의 매개체 역할을 한다.
  • RARP: MAC -> ARP -> IP 주소로 진행되는 주소 변환 과정의 매개체
  • 가상 주소 (IP)를 실제 주소 (MAC)으로 변환하는 과정이 필요하다.

Hop By Hop 통신

  • 출발지로부터 목적지까지 중간 경로를 거쳐 가는 과정을 hop에 비유하여 나타낸 표현
  • 라우팅 과정을 통해 라우팅 테이블을 작성하고, 실제로 패킷을 출발지로부터 목적지까지 라우팅 테이블을 따라 포워딩한다.
  • 게이트웨이: 서로 다른 네트워크, 프로토콜 간 통신을 중간에서 가능하도록 하는 매개체

IP주소 체계

IP주소는 크게 IPv4와 IPv6로 나뉜다.

  • IPv4: 더 옛날에 나온 방식이며, 32비트 값을 8비트 단위로 끊어서 10진수 형태로 표현한다. 예) 255.255.255.0
  • IPv6: IPv4의 한계를 극복하기 위해 나타난 방식이지만, IPv4에 비해 보급이 더디다. 64비트를 16비트 단위로 끊어서 16진수 형태로 표현한다. 예) ffff:ffff:ffff:42:3ad2:ff00

IP 주소 체계는 처음에는 클래스 기반 할당 방식 (CIDR; Class Inter-Domain Routing) 방식을 사용했다.

  • 클래스 A, B, C는 일대일 통신용, D는 멀티캐스트 통신, E는 예비용으로 선점되었다.
  • 클래스 A: 0.0.0.0 ~ 127.255.255.255
  • 클래스 B: 128.0.0.0 ~ 191.255.255.255
  • 클래스 C: 192.0.0.0 ~ 223.255.255.255
  • 맨 왼 쪽의 비트를 '구분 비트'라고 한다.
  • 사용하는 주소보다 버리는 주소가 많다는 치명적인 단점이 있다. 이를 해결하기 위해 DHCP, IPv6, NAT가 등장한다.

DHCP

  • Dynamic Host Configuration Protocol
  • 네트워크 장치의 IP 주소를 수동으로 설정할 필요 없이 인터넷에 접속할 때마다 IP주소를 자동으로 할당할 수 있다.
  • 많은 라우터와 게이트웨이 장비에 DHCP 기능이 탑재되어 있다.

NAT

  • Network Address Translation
  • IPv4의 주소는 모든 주소를 전부 감당할 수 없어, 공인 IP와 사설 IP라는 개념이 등장한다.
  • 한 네트워크 내의 스위치에 연결된 기기들은 전부 사설 IP를 통해 내부적으로 구분되며, 해당 스위치는 NAT 장치를 통해 공인 IP로 변환되어 인터넷에 연결되는 방식
  • 외부에 드러나는 IP 주소를 숨길 수 있어, 보안 면에서 장점을 가진다.
  • 사용자가 많을수록 속도가 느려진다는 단점을 가진다.

HTTP

HTTP/1.0

  • 한 연결 당 하나의 요청을 처리한다.
  • 따라서 요청 하나당 3 way handshake 등의 과정을 거쳐야 하므로, RTT (round-trip time)가 증가한다.
  • 이의 해결을 위해 이미지 스플리팅, 코드 압축, base64 인코딩 등을 사용하였다.

HTTP/1.1

  • HTTP 1.0의 단점을 보완하기 위해 등장하였다.
  • 최초 TCP 연결 이후 keep-alive 옵션을 통해 연결을 유지할 수 있다.
  • 해당 옵션은 HTTP/1.0에도 존재하지만, HTTP/1.1부터 표준화가 되어 기본 옵션이 되었다.
  • 헤더 내에 쿠키, 메타데이터 등 데이터가 다량 들어있고, 압축이 되지 않아 무겁다는 단점이 존재한다.

HTTP/2

  • SPDY에서 파생되었고, HTTP/1.x보다 빠른 응답 시간, 멀티플렉싱, 헤더 압축, 서버 푸시, 요청의 우선순위 처리 등의 강점을 가진다.
  • 멀티플렉싱: 여러 개의 스트림을 사용하여 송수신한다. 특정 스트림의 패킷이 손상되어도, 나머지 스트림은 멀쩡하게 동작한다.
  • 헤더 압축: huffman coding 알고리즘을 이용하여, 문자열을 문자 단위로 쪼개어 전체 비트량을 줄이는 방식으로 헤더의 크기를 줄인다.
  • 서버 푸시: 기존에는 클라이언트가 서버에 요청을 해야 파일을 다운로드 받을 수 있었지만, HTTP/2에서는 서버가 클라이언트로부터의 요청 없이 리소스를 바로 푸시할 수 있다.

HTTP/3

  • 기존의 HTTP와는 다르게 TCP가 아닌 UDP 기반의 프로토콜
  • QUIC라는 계층 위에서 동작한다
  • 3 way handshake와 같은 과정을 거치지 않기 때문에, 지연 시간 감소라는 이점을 얻었다.

댓글