네트워크 기초 정리: 계층 구조부터 로드밸런싱까지

Ada·2026년 4월 27일

자유 공부

목록 보기
21/21

1. 네트워크를 이해하는 기본 관점

  • 네트워크를 처음 공부할 때는 세부 기술보다 큰 구조를 먼저 잡는 것이 좋음.

  • 컴퓨터 네트워크는 여러 장치와 프로토콜이 맞물려 동작하는 복잡한 시스템임.

  • 각 구성 요소를 하나의 블랙박스로 보면 이해하기 쉬움.

  • 블랙박스의 의미

    1. 내부 동작 원리를 전부 알지 못해도 됨.
    2. 입력이 들어갔을 때 어떤 출력이 나오는지 알 수 있음.
    3. 복잡한 시스템을 나누어 이해할 수 있게 해줌.
  • 예시

    1. 운영체제에는 마우스 입력을 처리하는 드라이버가 있음.
    2. 파일을 관리하는 파일 시스템도 하나의 블랙박스로 볼 수 있음.
    3. 네트워크도 여러 계층과 프로토콜이라는 블랙박스들이 연결되어 동작함.
  • 네트워크 학습의 핵심

    1. 각각의 블랙박스가 어떤 역할을 하는지 이해함.
    2. 여러 블랙박스가 서로 어떻게 연결되어 동작하는지 이해함.
  • 프로토콜의 의미

    1. 컴퓨터나 통신 장비가 메시지를 주고받기 위해 정한 약속임.
    2. 메시지 형식, 의미, 인증, 오류 감지, 오류 수정 방식 등을 포함할 수 있음.
    3. 네트워크를 공부한다는 것은 여러 통신 규칙을 하나씩 이해하는 과정임.

2. TCP/IP 5계층과 OSI 7계층

  • 네트워크는 복잡하기 때문에 계층 구조로 나누어 이해함.

  • 대표적인 계층 모델

    1. TCP/IP 5계층
    2. OSI 7계층
  • TCP/IP

    1. 현재 인터넷의 핵심이 되는 프로토콜 체계임.
    2. 인터넷의 전신인 ARPAnet에서 채택되며 널리 퍼짐.
    3. 현재 인터넷을 이루는 주류 프로토콜임.
  • OSI 7계층

    1. 국제 표준화 기구에서 만든 참고용 모델임.
    2. 실제 인터넷에서는 TCP/IP가 주로 사용됨.
    3. 네트워크 설명에서는 OSI 7계층도 자주 사용됨.
  • TCP/IP 5계층

    1. 5계층: 애플리케이션 계층
    2. 4계층: 트랜스포트 계층
    3. 3계층: 네트워크 계층
    4. 2계층: 데이터링크 계층
    5. 1계층: 물리 계층
  • TCP/IP와 OSI 계층 비교

    1. TCP/IP의 애플리케이션 계층은 OSI의 7계층, 6계층, 5계층에 해당함.
    2. TCP/IP의 트랜스포트 계층은 OSI의 4계층에 해당함.
    3. TCP/IP의 네트워크 계층은 OSI의 3계층에 해당함.
    4. TCP/IP의 데이터링크 계층은 OSI의 2계층에 해당함.
    5. TCP/IP의 물리 계층은 OSI의 1계층에 해당함.
  • 각 계층의 역할

    1. 물리 계층: 전기, 빛, 전파 등 물리 신호로 데이터를 전송함.
    2. 데이터링크 계층: MAC 주소를 이용해 직접 연결된 장치 간 데이터를 전송함.
    3. 네트워크 계층: IP 주소를 이용해 다른 네트워크까지의 경로를 찾음.
    4. 트랜스포트 계층: 포트를 이용해 애플리케이션을 구분하고 TCP/UDP로 전송을 제어함.
    5. 애플리케이션 계층: 사용자가 직접 사용하는 네트워크 애플리케이션과 가까운 계층임.

3. 물리 계층과 데이터링크 계층

  • 물리 계층

    1. 데이터를 실제로 전송하기 위한 물리적인 부분을 담당함.
    2. 네트워크에서 데이터를 보낸다는 것은 전기, 빛, 전파 같은 물리 신호를 전달한다는 뜻임.
    3. 디지털 데이터를 아날로그 신호로 바꾸거나, 아날로그 신호를 디지털 데이터로 바꾸는 역할을 함.
  • 대표적인 전송 매체

    1. UTP 케이블
      • 흔히 LAN 선이라고 부르는 케이블임.
      • 가격이 저렴하고 배선하기 쉬움.
    2. 동축 케이블
      • TV나 안테나 선으로 많이 사용됨.
      • 간섭에 강하고 멀리 전송할 수 있음.
      • 설치가 어렵고 가격이 비쌈.
    3. 광 케이블
      • 빛을 이용해 데이터를 전송함.
      • 오류 발생률이 낮고 속도가 빠름.
      • 장거리 전송에 유리함.
      • 구부림에 약하고 트랜시버가 필요함.
  • 데이터링크 계층

    1. 물리 계층을 이용해 직접 연결된 장치 간 데이터 전송을 담당함.
    2. 장치를 구분하기 위해 MAC 주소를 사용함.
    3. 근거리 네트워크에서 주변 장치와 통신하는 역할을 함.
  • MAC 주소

    1. 네트워크 장비에 부여된 고유 주소임.
    2. 48bit, 6바이트로 구성됨.
    3. 앞 24bit는 제조사 번호로 사용됨.
    4. 표기 예시는 AB-CD-EF-12-34-56, AB:CD:EF:12:34:56 형태임.
  • 랜카드

    1. 컴퓨터 메인보드에 내장되거나 슬롯에 연결되는 하드웨어임.
    2. 물리 계층과 데이터링크 계층에 해당함.
    3. 케이블을 통해 들어온 아날로그 신호를 디지털 데이터로 변환함.
    4. 컴퓨터에서 보낼 디지털 데이터를 아날로그 신호로 변환함.
    5. 수신한 데이터의 MAC 주소가 자신의 주소와 다르면 버림.
    6. 자신의 주소로 온 데이터라면 CPU에게 전달함.

4. 허브, 브리지, 스위치와 이더넷

  • 리피터

    1. 약해진 신호를 복원해 다시 전달하는 장치임.
    2. 물리 계층 장비임.
    3. 단순히 신호를 증폭하고 복원하는 역할을 함.
  • 허브

    1. 여러 컴퓨터를 연결해주는 장치임.
    2. 여러 포트를 가진 리피터로 볼 수 있음.
    3. 들어온 데이터를 연결된 모든 포트로 전송함.
    4. 물리 계층 장비임.
    5. 요즘은 거의 사용하지 않음.
  • 허브의 한계

    1. 연결된 모든 장치로 데이터를 뿌리기 때문에 트래픽이 많아짐.
    2. 한순간에 하나의 장치만 데이터를 보낼 수 있음.
    3. 충돌이 발생할 수 있음.
    4. 허브로 연결된 영역을 콜리전 도메인이라고 함.
  • CSMA/CD

    1. Carrier Sense Multi Access / Collision Detection의 약자임.
    2. 데이터를 보내기 전에 회선이 사용 중인지 확인함.
    3. 동시에 여러 장치가 데이터를 보내면 충돌이 발생함.
    4. 충돌을 감지하면 랜덤한 시간만큼 기다린 뒤 다시 전송함.
    5. 반이중 통신을 전제로 함.
    6. 현재는 거의 사용되지 않음.
  • 브리지

    1. 허브에 메모리와 처리장치가 추가된 장치임.
    2. 목적지 MAC 주소를 확인해 필요한 장치에게만 데이터를 전달함.
    3. 콜리전 도메인을 나눌 수 있음.
    4. 충돌이 줄어 전이중 통신이 가능해짐.
  • 스위치

    1. 브리지와 기능적으로 비슷하지만 성능이 더 좋은 장치임.
    2. 스위칭 허브라고도 부름.
    3. 데이터링크 계층 장비임.
    4. MAC 주소를 이용해 원하는 장치에게만 데이터를 전송함.
  • 스위치의 주요 동작

    1. Learning
      • 출발지 MAC 주소와 포트를 학습함.
      • MAC 주소 테이블에 저장함.
    2. Flooding
      • 목적지 MAC 주소를 모를 때 모든 포트로 전송함.
    3. Forwarding
      • 목적지 MAC 주소를 알 때 해당 포트로만 전송함.
    4. Filtering
      • 전달할 필요가 없는 포트에는 전송하지 않음.
    5. Aging
      • 오래된 MAC 주소 정보를 제거함.
  • 스위치의 한계

    1. 콜리전 도메인은 나눌 수 있음.
    2. 브로드캐스트 도메인은 나누지 못함.
    3. 브로드캐스트가 많아지면 연결된 모든 장치로 트래픽이 전달됨.
    4. 브로드캐스트 도메인을 나누기 위해 네트워크 계층과 라우터가 필요함.
  • 스패닝 트리 프로토콜

    1. 스위치가 순환 구조로 연결되면 브로드캐스트 메시지가 무한히 순환할 수 있음.
    2. 이를 방지하기 위해 순환 구조가 발생하지 않도록 연결 구조를 조정함.
    3. 스위치를 트리의 노드로 보고 스패닝 트리를 구성함.
    4. 비용이 가장 적은 최소 스패닝 트리를 선택해 루프를 방지함.
  • 이더넷

    1. 데이터링크 계층을 대표하는 프로토콜임.
    2. 근거리 통신에 필요한 규격을 정의함.
    3. MAC 주소를 이용해 장치를 구분함.
    4. 실제 전송은 물리 계층의 전기, 빛, 전파를 이용함.
  • 이더넷 프레임 구조

    1. Preamble
    2. SFD
    3. Destination Address
    4. Source Address
    5. Length / Type
    6. Data
    7. Pad
    8. FCS

5. IP, 라우터, 서브넷과 라우팅

  • 네트워크 계층이 필요한 이유

    1. 스위치만으로는 브로드캐스트 도메인을 나누기 어려움.
    2. 브로드캐스트 도메인에 너무 많은 장치가 연결되면 트래픽이 많아짐.
    3. 네트워크 성능이 떨어질 수 있음.
    4. IP 주소와 라우터를 이용해 다른 네트워크로 데이터를 전달할 수 있음.
  • IP 주소

    1. 브로드캐스트 도메인을 넘어 다른 네트워크의 장치를 찾기 위한 논리 주소임.
    2. 32비트로 구성됨.
    3. 8비트씩 끊어 10진수로 표현함.
    4. 예시는 192.168.0.1, 10.0.0.5 형태임.
  • IP 클래스

    1. A 클래스
      • 매우 큰 네트워크에 적합함.
      • 0.0.0.0 ~ 127.0.0.0 범위에 있음.
    2. B 클래스
      • 중간 규모 네트워크에 적합함.
      • 128.0.0.0 ~ 191.255.0.0 범위에 있음.
    3. C 클래스
      • 작은 네트워크에 적합함.
      • 192.0.0.0 ~ 223.255.255.0 범위에 있음.
    4. D 클래스
      • 멀티캐스트 용도로 사용됨.
      • 일반 호스트 주소로 사용하지 않음.
  • 실제 사용 가능한 호스트 수가 줄어드는 이유

    1. 모든 호스트 비트가 0인 주소는 네트워크 주소로 사용함.
    2. 모든 호스트 비트가 1인 주소는 브로드캐스트 주소로 사용함.
    3. 따라서 실제 호스트에 할당 가능한 주소는 전체 개수에서 2개를 뺀 값임.
  • 서브넷 마스크

    1. 클래스 방식의 한계를 보완하기 위해 사용함.
    2. IP 주소에서 어디까지를 네트워크 주소로 볼지 정함.
    3. IP 주소와 서브넷 마스크를 AND 연산해 네트워크 부를 구함.
    4. CIDR 표기는 192.168.0.4/24, 10.5.1.2/8 형태로 작성함.
  • 라우터

    1. 네트워크 계층 장비임.
    2. 브로드캐스트 도메인을 나눌 수 있음.
    3. 목적지 네트워크까지 가는 경로를 결정함.
    4. 라우팅 테이블을 참고해 데이터를 어디로 보낼지 결정함.
  • 라우팅 방식

    1. 스태틱 라우팅
      • 관리자가 직접 경로를 입력함.
      • CPU와 메모리 사용이 적음.
      • 보안상 유리할 수 있음.
      • 장애 발생 시 자동 우회가 어려움.
      • 소규모 네트워크에 적합함.
    2. 다이내믹 라우팅
      • 라우터끼리 정보를 공유함.
      • 라우터가 스스로 라우팅 테이블을 구성함.
      • 규모가 큰 네트워크에 적합함.
  • 대표적인 라우팅 프로토콜

    1. RIP
      • 거리와 방향을 기준으로 경로를 선택함.
      • 구성이 단순함.
      • 대규모 네트워크에는 부적합함.
    2. OSPF
      • 링크 상태 정보를 공유함.
      • 최단 경로를 계산함.
      • 대규모 네트워크에 적합함.
      • 구성이 복잡하고 하드웨어 성능이 필요함.
    3. BGP
      • 서로 다른 AS를 연결하기 위한 프로토콜임.
      • AS 간 라우팅에 사용됨.
      • 인터넷 규모의 라우팅에서 사용됨.

6. 네트워크 계층 주변 프로토콜과 주소 변환

  • IP 주소만으로는 실제 네트워크 통신을 모두 처리하기 어려움.

  • 여러 보조 프로토콜과 주소 변환 기술이 함께 사용됨.

  • ARP

    1. Address Resolution Protocol의 약자임.
    2. IP 주소로 MAC 주소를 알아내기 위한 프로토콜임.
    3. 목적지 MAC 주소를 모를 때 브로드캐스트로 요청함.
    4. 해당 IP를 가진 호스트가 자신의 MAC 주소를 응답함.
    5. 응답받은 IP 주소와 MAC 주소의 매핑 정보를 ARP 캐시에 저장함.
  • ICMP

    1. Internet Control Message Protocol의 약자임.
    2. 목적지까지 데이터가 도달할 수 있는지 확인하는 데 사용됨.
    3. 도달할 수 없다면 그 이유를 확인하는 데 사용됨.
    4. 개발 관점에서는 네트워크 디버깅 도구에 가까움.
    5. 대표적으로 ping 명령이 ICMP를 사용함.
  • DHCP

    1. Dynamic Host Configuration Protocol의 약자임.
    2. 호스트에게 IP 주소를 자동으로 할당해주는 프로토콜임.
    3. 사용자가 직접 IP를 설정할 때 생기는 중복이나 실수를 줄일 수 있음.
  • DHCP 동작 과정

    1. DHCP Discovery
      • 호스트가 DHCP 서버를 찾음.
    2. DHCP Offer
      • DHCP 서버가 사용할 수 있는 IP 주소를 제안함.
    3. DHCP Request
      • 호스트가 해당 IP 주소를 사용하겠다고 요청함.
    4. DHCP ACK
      • DHCP 서버가 최종적으로 IP 할당을 승인함.
  • NAT

    1. Network Address Translation의 약자임.
    2. Public IP 주소와 Private IP 주소를 변환하는 기술임.
    3. 내부 네트워크와 외부 인터넷 사이에서 주소를 변환함.
  • NAT 종류

    1. Static NAT
      • Private IP와 Public IP를 1:1로 매핑함.
      • 주소 절약보다는 보안 목적에 가까움.
    2. Dynamic NAT
      • 여러 Public IP 중 남는 주소를 동적으로 할당함.
      • 남는 Public IP가 없으면 인터넷을 사용하지 못할 수 있음.
      • 요즘은 잘 사용하지 않는 방식임.
    3. Static PAT
      • 하나의 Public IP에서 포트를 나누어 여러 내부 IP로 연결함.
      • 흔히 포트포워딩이라고 부름.
      • 사용자가 직접 등록해야 하는 번거로움이 있음.
    4. Dynamic PAT
      • 포트를 자동으로 할당함.
      • 여러 내부 사용자가 하나의 Public IP를 공유할 수 있음.
      • 오늘날 가장 많이 사용하는 NAT 방식임.
      • 기본적으로 내부에서 먼저 연결해야 통신이 가능함
      • 외부에서 직접 접근하려면 포트포워딩 등 추가 설정이 필요함

7. 트랜스포트 계층, 애플리케이션 계층과 로드밸런싱

  • 트랜스포트 계층

    1. 같은 호스트 안에서 여러 애플리케이션을 구분하기 위해 포트를 사용함.
    2. 포트는 논리적인 개념임.
    3. 포트 번호는 0 ~ 65535 범위를 가짐.
    4. IP 주소와 함께 IP주소:포트 형태로 표현함.
    5. 예시는 10.0.0.5:1234, 192.168.0.10:8080 형태임.
  • TCP

    1. Transmission Control Protocol의 약자임.
    2. 데이터의 신뢰성을 보장하는 프로토콜임.
    3. 통신 시작 전 3-way handshake로 연결을 만듦.
    4. 데이터 전송 시 Sequence Number와 Acknowledgement Number를 사용함.
    5. 데이터 순서와 누락 여부를 확인할 수 있음.
    6. 통신 종료 시 4-way handshake로 연결을 끊음.
  • UDP

    1. TCP보다 단순한 프로토콜임.
    2. 데이터를 주고받으며 도착 여부를 확인하지 않음.
    3. 기본적으로 신뢰성을 보장하지 않음. (필요 시 애플리케이션 레벨에서 재전송, 순서 보장 구현 가능함)
    4. 신뢰성이 필요하다면 프로그래머가 직접 구현해야 함.
    5. 속도가 중요한 동영상, 음성, 실시간 데이터 등에 사용됨.
  • TCP와 UDP 비교

    1. TCP
      • 신뢰성이 중요할 때 사용함.
      • 데이터 순서와 누락을 확인함.
      • 연결 지향 방식임.
    2. UDP
      • 속도가 중요할 때 사용함.
      • 기본적으로 도착 여부를 확인하지 않음.
      • 비연결 지향 방식임.
  • 애플리케이션 계층 프로토콜

    1. HTTP
      • 웹 통신과 API 통신에 사용함.
      • 클라이언트가 요청 헤더를 보냄.
      • 서버가 응답 헤더를 보냄.
      • HTTP 메서드와 상태 코드를 함께 사용함.
    2. SMTP
      • 메일 송신에 사용함.
      • 기본적으로 25번 포트를 사용함.
    3. POP
      • 메일 수신에 사용함.
      • 수신 후 서버에서 메일을 삭제하는 방식임.
      • 여러 기기 동기화에 불리함.
      • 기본적으로 110번 포트를 사용함.
    4. IMAP
      • 메일 수신에 사용함.
      • 서버에 메일을 유지함.
      • 여러 기기 동기화에 유리함.
      • 기본적으로 143번 포트를 사용함.
    5. FTP
      • 파일 전송에 사용함.
      • 제어용 TCP 커넥션과 전송용 TCP 커넥션을 사용함.
    6. Telnet
      • 원격 접속에 사용함.
      • 암호화가 없어 현재는 거의 사용하지 않음.
    7. SSH
      • 안전한 원격 접속에 사용함.
      • Public Key와 Private Key를 이용해 인증함.
      • Private Key는 외부에 노출되면 안 됨.
    8. DNS
      • 도메인 이름을 IP 주소로 변환함.
      • 사람이 IP 주소를 직접 외우지 않아도 되게 해줌.
      • DNS는 계층적인 네임 서버 구조를 통해 IP를 조회함
      • 조회 결과는 캐싱되어 이후 빠르게 응답됨
  • API와 REST API

    1. API는 두 소프트웨어가 상호작용하기 위한 인터페이스임.
    2. 한 소프트웨어가 특정 기능을 제공하고, 다른 소프트웨어가 정해진 형식으로 요청함.
    3. HTTP 메서드와 URL 규칙을 지켜 설계한 API를 REST API라고 부름.
    4. 요즘 대부분의 웹 API는 REST API 형태를 추구함.
  • DNS와 URL

    1. DNS는 도메인명을 IP 주소로 바꿔주는 서비스임.
    2. URL은 고유한 리소스를 가리키는 주소임.
    3. URL에는 프로토콜, 호스트명, 도메인명, 포트 등이 포함될 수 있음.
    4. 예시는 https://www.example.com:443 형태임.
  • 인터넷, 인트라넷, VPN

    1. 인터넷은 누구나 연결할 수 있는 공개형 네트워크임.
    2. 인트라넷은 허가받은 사람만 연결할 수 있는 폐쇄형 네트워크임.
    3. VPN은 인터넷을 이용해 인트라넷에 접속할 수 있게 해주는 기술임.
    4. VPN은 사용자의 IP 주소가 바뀌는 효과가 있어 다른 목적으로 사용되기도 함.
  • Proxy

    1. 사용자의 요청을 대신 처리하는 서버임.
    2. 자주 사용하는 데이터를 미리 저장해두고 빠르게 응답할 수 있음.
    3. 캐시 서버라고도 부름.
    4. Proxy 서버가 대신 요청하기 때문에 IP가 바뀌어 보일 수 있음.
  • 로드밸런싱

    1. 여러 서버에 부하를 나누어주는 기술임.
    2. 서버 한 대에 요청이 몰리는 것을 막을 수 있음.
    3. L4 스위치와 L7 스위치에서 주로 수행함.
  • L1, L2, L3, L4, L7 스위치

    1. L1 스위치
      • 물리 계층 장비를 의미함.
      • 일반적으로 허브에 가까움.
    2. L2 스위치
      • 데이터링크 계층 장비임.
      • MAC 주소 기반으로 동작함.
    3. L3 스위치
      • 네트워크 계층 장비임.
      • 라우터에 가까움.
    4. L4 스위치
      • 트랜스포트 계층 정보를 활용함.
      • 포트 정보를 기준으로 로드밸런싱함.
    5. L7 스위치
      • 애플리케이션 계층 정보를 활용함.
      • HTTP 요청 내용, URL, 헤더 같은 정보를 기준으로 로드밸런싱할 수 있음.
  • L4 로드밸런싱과 L7 로드밸런싱의 차이

    1. L4 로드밸런싱
      • IP와 포트 정보를 기준으로 분산함.
      • 상대적으로 단순하고 빠름.
    2. L7 로드밸런싱
      • 애플리케이션 계층 데이터를 기준으로 분산함.
      • 요청 내용에 따라 더 세밀하게 분산할 수 있음.
profile
백엔드 프로그래머

0개의 댓글