공부 기록/네트워크 보안

[네트워크 보안] 프로토콜

도도히히 2025. 11. 3. 13:54

프로토콜 계층구조

하나의 계층

  • 설정
    • 마리아와 앤은 서로 가까운 이웃
    • 마리아는 스페인어만 사용하고 앤은 영어만 사용
    • 둘은 어려서 수화를 배움
  • 마리아와 앤 사이의 의사소통
    • 수화를 사용하여 의견 교환 (ex. 일주일에 몇 번씩 카페에서 만나 미팅을 가짐)
    • 하나의 계층에서 이루어진 두 사람의 대화

세 개의 계층

  • 설정
    • 앤이 직장 때문에 다른 마을로 이사
    • 이사가기 전, 마리아와 앤은 다음과 같은 기계 장치를 획득
      • 마리아는 스페인어를 암호로 또는 그 반대로 변환하는 기계 장치 획득
      • 앤은 영어를 암호로 번역 또는 그 반대로 변환하는 기계 장치 획득
  • 마리아와 앤 사이의 의사소통
    • 두 사람은 암호문을 이용하여 서로 통신 가능

계층화된 통신 시나리오에서

  • 두 개체가 서로 통신할 때는 프로토콜 필요
  • 통신이 복잡하면 임무를 여러 개의 계층구조로 나누어짐
  • 각 계층별로 하나씩 여러 개의 프로토콜 필요
  • OSI 기본 참조 모델은 상기 목적을 달성하기 위해 만들어진 정보 전달의 규격화된 절차

 

OSI 기본 참조 모델

 

Open System Interconnection

  • 모든 종류의 컴퓨터 시스템간 통신을 가능하게 하는 네트워크 설계를 위한 계층 구조
  • 서로 연관된 7계층으로 구성

OSI 계층 구조 (7계층 → 1계층 순서)

  • 응용 계층: 응용 프로그램을 통해 동작
  • 표현 계층: 전달하고자 하는 데이터의 표현 방식 결정
  • 세션 계층: 연결 방식 결정 (일방향 양방향 등)
  • 전송 계층: 상대방에게 전달하기 위한 방법 고민
  • 네트워크 계층: 객체에서 객체로 전달하는 역할
  • 데이터 링크 계층: 한 칸씩 어떻게 갈 수 있는지 관여
  • 물리 계층: 실제로 하나의 기기에서 다른 기기로 물리적으로 전달이 될 때 신호들을 어떻게 잘 보낼 수 있을지 관여

OSI 계층

하나의 장치에서 다른 장치로 전송할 때

표현 계층: 인코딩이든 암호화든 표현 방법을 바꿈

세션 계층: 연결 방식 결정하고 세션을 유지하기 위한 규칙을 정해 연결성 관리

전송 계층: 상대방의 프로그램에 전달 (상대방이 받은 데이터를 처리할 프로그램을 결정하고 그 프로그램에 전달)

네트워크 계층: 처리한 데이터를 누구에게 전달해야 할지 결정

데이터 링크 계층: 상대방에게 전달하려면 누구에게 줘야하는지 결정

물리 계층: 신호 보내기 (전기 신호를 쏨)

 

라우터 라고 하는 중계 노드에서는 물리 계층 → 데이터 링크 계층 → 네트워크 계층으로 옮겨졌다가 다시 네트워크 계층 → 데이터 링크 계층 → 물리 계층으로 내려오고 현재 노드의 물리 계층에서 다음 노드의 물리 계층으로 전달되고 이를 반복해서 상대방의 물리 계층으로 전달하면, 응용 계층까지 올라오는 과정을 거침

 

 

OSI 7 Layer는 3 그룹으로 나뉨

  • 그룹 1: 물리 계층 → 데이터 링크 계층 → 네트워크 계층
    • 한 장치에서 다른 장치로 데이터 전송 시 필요한 물리적인 면을 처리
    • 물리층을 제외하고 하드웨어와 소프트웨어의 조합으로 구현
  • 그룹 2: 전송 계층
    • 하위 계층(그룹 1)에서 전송한 내용을 상위 계층(그룹 3)이 사용할 수 있는 형태가 되도록 보장
    • 번역기 역할
  • 그룹 3: 세션 계층 → 표현 계층 → 응용 계층
    • 사용자 지원 계층으로, 서로 관련이 없는 소프트웨어 시스템간 상호 연동을 가능하게 함
    • 소프트웨어로 구현

 

OSI 모델을 이용한 데이터 교환

  • 캡슐화를 통해 계층간 통신이 이루어짐
  • 단계를 지날 때마다 캡슐화가 이루어짐 (데이터와 헤더가 합쳐서 다음 단계의 데이터가 되는 것을 반복)

물리층

  • 물리 매체를 통하여 비트 스트림을 전송하는데 필요한 기능 제공
  • 주요 기능
    • 인터페이스와 매체의 물리적인 특성
    • 비트 표현(부호화 유형)
    • 데이터 전송률(bps)
    • 비트의 동기화(송수신자 간 클록)
    • 회선 구성
      • Point-to-Point 구성에서 두 장치는 전용 링크를 통해 연결
      • Multipoint 구성에서 링크는 여러 장치에 의해 공유
    • 물리적 접속 형태
      • mesh topology(그물망), star topology(별 모양), ring topology(링처럼 연결), bus topology(버스 토폴로지, 누가 정보를 받을지 보낼지 우선순위 결정, 동시에 보낼 순 없지만 동시에 받을 수 있음)
    • 전송 모드 → 전송 방향에 따른 모드 정의
      • 단방향
      • 반이중: 양방향 송수신 가능하지만 동시에 X
      • 전이중: 양방향 송수신 가능 (동시에도 가능)

 

데이터 링크층

  • 물리층의 전송 설비를 신뢰할 수 있는 링크로 변환
    • 상위 계층인 네트워크층에게 오류 없는 물리층으로 보이도록 함
  • 주요 기능
    • 프레임 구성
      • 수신 비트 스트림을 프레임이라는 데이터 단위로 나눔
    • 물리 주소 지정(송수신자 주소)
    • 흐름 제어
      • 송신율보다 수신율이 낮으면 흐름 제어 메커니즘 수행하여 속도 맞춤
    • 오류 제어
      • 물리층 신뢰성을 높이기 위해 손상/손실된 프레임을 탐지하고 재전송
    • 접근 제어

 

네트워크층

  • 패킷을 네트워크를 통해 발신지에서 목적지까지 전달 책임
    • 데이터 링크 계층: 같은 네트워크 상에서 두 시스템 간에 프레임 전달
    • 네트워크 계층: 패킷의 발신지-목적지(다른 네트워크일 수 있음) 연결
  • 두 시스템이 같은 링크에 연결된 경우 네트워크 계층은 필요하지 않음
  • 주요 기능
    • 논리 주소 지정
      • 물리 주소 지정은 내부적인 주소 지정 문제 해결
      • 네트워크 범위를 벗어나는 경우의 발신지-목적지 식별을 위해 논리 주소 지정 시스템 필요함
    • 경로 지정
      • 패킷이 최종 목적지에 전달될 수 있도록 경로 지정
      • 라우터 또는 스위치와 같은 연결 장치 기반으로 경로 지정 또는 네트워크 연결

 

전송층

  • 전체 메시지의 프로세스-대-프로세스 전달 책임
    • 프로세스는 호스트에서 실행 중인 응용 프로그램
  • 주요 기능
    • 서비스 지점 주소지정(포트 주소)
    • 분할과 재조립
    • 연결 제어
      • 연결형(연결이 유지되어야 함) vs 비연결형
    • 흐름 제어
      • 데이터 링크 계층에서의 흐름제어와는 달리 종단간 흐름 제어 수행
    • 오류 제어
      • 데이터 링크 계층에서의 흐름제어와는 달리 프로세스간 오류 제어 수행
      • 오류 교정은 항상 재전송을 통해 이루어짐(연결형)

 

세션층

  • 네트워크 대화 제어기
  • 통신 시스템간 상호 대화 설정, 유지, 동기화 책임
  • 주요 기능
    • 대화 제어(반이중, 전이중)
    • 동기화
      • 데이터 스트림에 확인점 추가하여 구간별 처리

 

표현층

  • 두 시스템 간에 교환되는 정보의 구문과 의미와 관련
  • 주요 기능
    • 변환
      • 송신자: 정보의 표현을 “의미 있는 형식의 정보”에서 비트 스트림으로 변환
      • 수신자: 비트 스트림에서 “의미 있는 형식의 정보”로 정보의 표현 변환
    • 암호화
    • 압축

 

응용층

  • 사용자나 소프트웨어를 네트워크에 접근 가능하도록 하는 기능 제공
  • 주요 기능
    • 네트워크 가상 터미널
    • 파일 접근, 전송 및 관리
    • 우편 서비스
    • 디렉터리 서비스

 

계층별 요약

응용: 네트워크 자원 접속 제공

표현: 데이터 변환, 암호화, 압축

세션: 세션 설정, 관리, 종료

전송: 신뢰성 있는 프로세스-대-프로세스 메시지 전달과 오류 복구 제공

네트워크: 네트워크 간 연결 제공 - 패킷을 발신지에서 목적지까지 전달

데이터 링크: 홉-대-홉 전달을 제공하기 위해 비트를 프레임으로 구성

물리: 매체를 통해서 비트들을 전달 - 기계적, 전자적 규격 제공

 

TCP/IP 프로토콜

 

TCP/IP 프로토콜

  • OSI 기본 참조 모델보다 먼저 개발됨
    • 물리층, 데이터 링크층, 네트워크층, 전송층, 응용층으로 구성
  • OSI 기본 참조 모델과 동일하지 않음
    • 물리층, 데이터 링크층, 네트워크층, 전송층은 동일
    • TCP/IP 프로토콜의 응용층 = OSI 모델의 세션, 표현, 응용 세 계층

TCP/IP 프로토콜의 계층들

  • 링크라는 여러 개의 작은 네트워크로 구성
  • 링크는 근거리 통신망(LAN) 또는 광역 통신망(WAN)
  • 링크는 라우터나 교환기로 서로 연결

물리층 통신

  • 특정 프로토콜을 규정하지 않고, 모든 표준과 기술적인 프로토콜 지원
    • 각 링크(네트워크)에서 사용하는 프로토콜 형식에 따라 전달
  • 비트 단위로 이루어짐

데이터 링크층 통신

  • 특정 프로토콜을 규정하지 않고, 모든 표준과 기술적인 프로토콜 지원
  • 통신은 노드 간 통신으로 이루어지며 통신 단위는 프레임

네트워크층 통신

  • 인터넷 프로토콜 IP를 지원하며, IP는 3개의 지원 프로토콜을 포함함
    • ARP - 주소 변환, ICMP - 인터넷 제어 메시지, IGMP - 인터넷 그룹 메시지
  • 인터넷 프로토콜 (IP)
    • 신뢰성이 없는 비연결형 데이터그램 프로토콜(전달 보장 X, 전송하는 것만이 목적)
      • 데이터그램: 데이터를 전달하기 위해 전송하는 패킷 형태의 단위
  • 주소 변환 프로토콜 (ARP)
    • IP주소에 대응되는 네트워크 인터페이스 카드(NIC)의 물리 주소로 변환
  • 인터넷 제어 메시지 프로토콜 (ICMP)
    • 조회/오류 메시지 등을 통해 송신자에게 데이터그램의 문제점을 알려주기 위해 호스트와 게이트웨이가 사용하는 메커니즘

전송층 통신

  • 네트워크층(노드-노드 연결)과 달리 전송층은 프로세스-프로세스 연결
  • 3개의 프로토콜(UDP, TCP, SCTP) 제공
    • UDP - 사용자 데이터그램, TCP - 전송 제어, SCTP - 스트림 제어 전송
  • 사용자 데이터그램 프로토콜(UDP)
    • 포트 주소, checksum 오류 제어, 데이터 길이 등의 정보만 포함된 단순한 프로토콜
  • 전송 제어 프로토콜(TCP)
    • 양 종단간 연결을 설정하고 신뢰성 있는 스트림 전송을 제공하는 프로토콜
    • 세그먼트 라는 단위로 데이터를 전달
    • 각 세그먼트는 순서 정보를 포함한 상태로 IP 데이터그램으로 캡슐화되어 전달되고 수신 종단에서 데이터그램을 순서 번호에 따라 세그먼트 재조합
  • 스트림 제어 전송 프로토콜(SCTP)
    • UDP와 TCP의 장점 결합하여 IP 텔레포니와 같은 새로운 응용 제공하는 프로토콜
  • 전송층과 네트워크층 사이의 차이점
    • 네트워크층: 개별 데이터그램을 보내는 책임 담당
    • 전송층: 데이터그램, 패킷, 세그먼트라는 전체 메시지를 전달하는 책임 담당

응용층 통신

  • 가시적인 계층으로 OSI 모델의 세션, 표현, 응용층을 합친 것과 같음
  • 전송층과 마찬가지로 종단간 통신으로 이루어짐
  • NFS, SNMP, DNS, HTTP, FTP 등 서비스

 

주소지정

 

TCP/IP 프로토콜을 이용한 인터넷에서 사용되는 주소

  • 응용-특수 주소 (응용층)
  • 포트 주소 (전송층)
  • 논리 주소 (네트워크층)
  • 물리 주소 (데이터 링크층)

물리 주소

  • 데이터 링크층에 의해 사용되는 프레임에 포함되는 최하위 계층 주소
  • WAN이나 LAN에서 정의된 노드의 주소
    • 이더넷 네트워크 인터페이스 카드의 6바이트(48비트) 물리 주소 사용

ex) 07:01:02:01:2C:4B ← 6바이트 (12개의 16진수 값) 물리 주소

 

논리 주소

  • 물리 주소는 서로 다른 주소 형태를 갖는 네트워크 간 통신에 적합하지 X
  • 인터넷 주소인 IP 주소 체계가 논리 주소로 사용됨
    • 현재 가장 널리 사용되는 IPv4 주소 공간은 2^32 (약 40억)

 

포트 주소

  • 프로세스를 식별하는 주소 (16비트)

 

응용-특수 주소

  • 특정 응용을 위해 설계된 주소 체계
  • 보내는 컴퓨터에 의해 대응되는 포트와 논리 주소로 변경
  • 이메일 주소라고 생각하면 됨