OSI 모델 계층: 소개 가이드

OSI(개방형 시스템 상호 연결) 모델: 네트워크 통신의 핵심

OSI(Open System Interconnect) 모델은 개발자 및 공급업체가 상호 운용 가능하고 안전한 소프트웨어 솔루션을 구축하는 데 지침 역할을 하는 중요한 프레임워크입니다.

이 모델은 네트워크 내 데이터 흐름의 복잡성, TCP와 같은 통신 프로토콜, 그리고 다양한 도구와 기술 간의 상호 작용을 명확하게 설명합니다.

많은 전문가들이 OSI 모델 계층의 중요성을 강조하며, 특히 사이버 보안이 중요한 현대 시대에 그 중요성은 더욱 커지고 있습니다.

OSI 모델 계층에 대한 이해는 애플리케이션 및 시스템과 관련된 기술적 취약성과 위험을 평가하는 데 도움이 됩니다. 또한 팀이 데이터의 위치와 물리적 접근을 식별하고 보안 정책을 수립하는 데 필요한 지식을 제공합니다.

이 글에서는 OSI 모델의 각 계층을 자세히 살펴보고, 이 모델이 개인 사용자 및 기업 모두에게 미치는 중요성에 대해 논의할 것입니다.

OSI(Open System Interconnect) 모델이란?

OSI(Open System Interconnect) 모델은 컴퓨터 시스템과 애플리케이션이 네트워크를 통해 서로 통신하는 방식을 정의하는 7개 계층으로 구성된 참조 모델입니다.

이 모델은 데이터 전송 프로세스, 표준 및 프로토콜을 7개의 개별 계층으로 분류하며, 각 계층은 데이터 송수신과 관련된 특정 작업을 수행합니다.

OSI 모델은 1984년 ISO(국제 표준화 기구)에서 개발했으며, 시스템이 네트워크에서 통신하는 방식을 규정하는 최초의 표준 참조입니다. 이후 이 모델은 모든 주요 통신 및 컴퓨터 회사에서 채택되었습니다.

이 모델은 7개의 계층이 수직으로 겹쳐진 구조로 표현됩니다. OSI 모델 아키텍처에서 하위 계층은 상위 계층에 서비스를 제공합니다. 따라서 사용자가 시스템과 상호 작용할 때, 데이터는 소스 장치에서 시작하여 네트워크를 통해 이러한 계층을 거쳐 아래로 흐른 후 다시 계층을 따라 위로 이동하여 최종적으로 수신 장치에 도달합니다.

OSI 모델에는 시스템이 광섬유, 연선, Wi-Fi 등과 같은 물리적 매체를 통해 네트워크에서 신호를 전송할 수 있도록 하는 다양한 애플리케이션, 네트워킹 하드웨어, 프로토콜 및 운영 체제가 포함됩니다.

이 개념적 프레임워크는 시스템 간의 관계를 이해하는 데 도움이 되며, 상호 운용 가능한 소프트웨어 애플리케이션 및 제품을 개발할 때 개발자와 공급업체에게 지침을 제공하는 것을 목표로 합니다. 또한 현재 사용 중인 통신 및 네트워킹 시스템의 기능에 대한 명확한 이해를 위한 프레임워크를 제공합니다.

OSI 모델을 알아야 하는 이유는?

OSI 모델을 이해하는 것은 소프트웨어 개발에서 매우 중요합니다. 각 애플리케이션과 시스템은 이러한 계층 중 하나를 기반으로 작동하기 때문입니다.

IT 네트워킹 전문가들은 OSI 모델을 활용하여 네트워크를 통해 데이터가 어떻게 흐르는지 시각화합니다. 이러한 지식은 소프트웨어 공급업체 및 개발자는 물론 CCNA(Cisco Certified Network Associate) 인증 시험을 준비하는 학생들에게도 유용합니다.

OSI 모델 계층 학습의 주요 이점은 다음과 같습니다.

  • 데이터 흐름 이해: OSI 모델을 사용하면 네트워크 운영자가 네트워크에서 데이터 흐름을 더 쉽게 이해할 수 있습니다. 이는 하드웨어와 소프트웨어가 함께 작동하는 방식을 파악하는 데 도움이 되며, 이 정보를 바탕으로 개선된 보안과 복원력을 갖춘 더 나은 시스템을 구축할 수 있습니다.
  • 간편한 문제 해결: 네트워크가 고유한 기능과 구성 요소를 가진 7개의 계층으로 나누어져 있기 때문에 문제 해결이 훨씬 쉬워집니다. 또한 전문가가 문제를 진단하는 데 걸리는 시간이 단축됩니다. 문제의 원인이 되는 특정 네트워크 계층을 식별하여 문제 해결 노력을 집중할 수 있습니다.
  • 상호 운용성 촉진: 개발자는 다른 공급업체의 제품과 쉽게 상호 작용할 수 있는 상호 운용 가능한 소프트웨어 시스템 및 장치를 만들 수 있습니다. 이는 해당 시스템의 기능을 향상시키고 사용자가 효율적으로 작업할 수 있도록 지원합니다.

OSI 모델을 통해 제품이 작동해야 하는 필수 구성 요소와 부품을 명확하게 정의할 수 있습니다. 또한 기술 스택 전체에서 또는 특정 계층에서 생성된 제품과 시스템이 최종 사용자와 통신하는 방식을 네트워크 계층에서 이해할 수 있습니다.

OSI 모델의 다양한 계층

물리 계층

물리 계층은 시스템의 물리적 및 전기적 측면을 정의하는 OSI 모델의 최하위 계층이자 첫 번째 계층입니다.

이 계층에서는 케이블 유형, 핀 배열, 무선 주파수 링크, 전압, 신호 유형 및 장치를 연결하는 커넥터 유형 등을 다룹니다. 물리 계층은 네트워크 노드 간의 무선 또는 유선 연결을 관리하고 원시 데이터 전송을 용이하게 하며 비트 전송률을 제어합니다.

이 계층에서 원시 데이터(0과 1의 비트)는 신호로 변환되어 교환됩니다. 원활한 데이터 전송을 위해서는 송신 측과 수신 측이 동기화되어야 합니다. 물리 계층은 네트워킹을 위해 서로 다른 장치, 전송 매체 및 토폴로지 유형 간의 인터페이스를 제공합니다. 필요한 전송 모드 유형도 물리 계층에서 정의됩니다.

사용되는 네트워킹 토폴로지는 버스, 링 또는 스타 형태일 수 있으며, 전송 모드는 단방향, 전이중 또는 반이중일 수 있습니다. 물리 계층의 장치에는 이더넷 케이블 커넥터, 리피터 및 허브 등이 포함됩니다.

네트워킹 문제가 감지되면, 네트워킹 전문가는 가장 먼저 물리 계층의 모든 요소가 올바르게 작동하는지 확인합니다. 케이블이 제대로 연결되어 있고 전원 플러그가 라우터와 같은 시스템에 연결되어 있는지 확인하는 것으로 시작합니다.

물리 계층의 주요 기능은 다음과 같습니다.

  • 주어진 네트워크에서 장치와 시스템이 배열되는 방식인 물리적 토폴로지 정의
  • 네트워크에서 연결된 두 장치 간에 데이터가 흐르는 방식인 전송 모드 정의
  • 비트 수준에서 수신기와 송신기를 제어하는 클록과의 비트 동기화
  • 데이터 전송의 비트 전송률 제어

데이터 링크 계층

데이터 링크 계층은 물리 계층 위에 위치합니다. 이 계층은 네트워크 내 두 개의 연결된 노드 간의 연결을 설정하고 종료하는 역할을 합니다. 데이터 패킷을 여러 프레임으로 분할한 후 소스에서 대상으로 전송합니다.

데이터 링크 계층은 두 부분으로 구성됩니다.

  • LLC(논리 링크 제어): 네트워크 프로토콜을 감지하고 프레임을 동기화하며 오류를 확인합니다.
  • MAC(매체 접근 제어): MAC 주소를 사용하여 장치를 연결하고 데이터 전송 권한을 설정합니다.

MAC 주소는 시스템을 식별하는 데 도움이 되는 네트워크 내 각 시스템에 할당된 고유한 주소입니다. 이 12자리 숫자는 네트워크의 데이터 링크 계층에서 관리하는 물리적 주소 지정 시스템입니다. 이 시스템은 다양한 네트워크 구성 요소가 물리적 매체에 액세스하는 방식을 제어합니다.

예를 들어, MAC 주소는 00:5e:53:00:00:af와 같이 6개의 옥텟으로 구성될 수 있습니다. 여기서 처음 3개의 숫자는 OUI(Organizationally Unique Identifier)에 해당하고, 마지막 3개는 NIC(네트워크 인터페이스 컨트롤러)에 해당합니다.

데이터 링크 계층의 주요 기능은 다음과 같습니다.

  • 오류 감지: 오류 감지는 이 계층에서 발생하지만, 오류 수정은 전송 계층에서 수행됩니다. 오류 비트라고 하는 원치 않는 신호가 데이터 신호에서 발견될 수 있으며, 이 오류에 대응하기 위해서는 체크섬, CRC(Cyclic Redundancy Check) 등의 방법을 통해 오류를 감지해야 합니다.
  • 흐름 제어: 매체를 통한 수신자와 발신자 간의 데이터 전송은 동일한 속도로 이루어져야 합니다. 수신기가 데이터를 처리하는 속도보다 빠르게 데이터를 프레임으로 전송하면 일부 데이터가 손실될 수 있습니다. 이 문제를 해결하기 위해 데이터 링크 계층에는 데이터 전송 라인 전체에서 일관된 속도를 유지하기 위한 몇 가지 흐름 제어 방법이 포함되어 있습니다. 이러한 방법의 예는 다음과 같습니다.
    • 양쪽 끝이 전송해야 하는 프레임 수를 결정하는 슬라이딩 윈도우 방식은 전송 중 시간과 자원을 절약합니다.
    • Stop-and-wait 메커니즘은 데이터를 전송한 후 발신자가 중지하고 수신자를 기다리도록 합니다. 발신자는 수신자로부터 데이터를 받았다는 승인을 받을 때까지 기다려야 합니다.
  • 다중 액세스 활성화: 데이터 링크 계층을 사용하면 여러 장치와 시스템이 동일한 전송 매체를 통해 충돌 없이 데이터를 전송할 수 있습니다. 이를 위해 캐리어 감지 다중 액세스 또는 충돌 감지 프로토콜(CSMA/CD)을 사용합니다.
  • 데이터 동기화: 데이터 링크 계층에서 데이터를 공유하는 장치는 원활한 데이터 전송을 위해 양쪽 끝에서 서로 동기화되어야 합니다.

데이터 링크 계층은 브리지 및 레이어 2 스위치와 같은 장치도 활용합니다. 브리지는 서로 다른 LAN 네트워크에 연결하는 2포트 장치입니다. 리피터처럼 작동하여 원치 않는 데이터를 필터링하고 대상 엔드포인트로 보냅니다. 동일한 프로토콜을 사용하여 네트워크를 연결합니다. 반면, 레이어 2 스위치는 시스템의 MAC 주소를 기반으로 데이터를 다음 계층으로 전달합니다.

네트워크 계층

네트워크 계층은 데이터 링크 계층 위에 있으며 OSI 모델의 세 번째 계층입니다. IP 주소와 같은 네트워크 주소를 사용하여 다른 네트워크 또는 동일한 네트워크에서 작동하는 수신 노드로 데이터 패킷을 라우팅합니다.

이 계층은 두 가지 주요 작업을 수행합니다.

  • 대상 노드에서 네트워크 패킷을 재조립하는 동안 네트워크 세그먼트를 다른 네트워크 패킷으로 나눕니다.
  • 물리적 네트워크에서 최적의 경로를 찾고 그에 따라 패킷을 라우팅합니다.

여기서 최적 경로란 이 계층이 스위치, 라우터 및 다양한 오류 감지 및 처리 방법을 사용하여 발신자와 수신자 간에 데이터 전송에 가장 짧고, 시간 효율적이며, 가장 쉬운 경로를 찾는 것을 의미합니다.

이를 위해 네트워크 계층은 논리적 네트워크 주소와 네트워크의 서브넷 설계를 사용합니다. 장치가 동일한 네트워크에 있는지 여부, 동일한 프로토콜을 사용하는지 여부, 동일한 토폴로지에서 작동하는지 여부에 관계없이 이 계층은 논리적 IP 주소와 라우터를 사용하여 소스에서 대상으로 데이터를 라우팅합니다. 주요 구성 요소는 IP 주소, 서브넷 및 라우터입니다.

  • IP 주소: 각 장치에 할당된 전역적으로 고유한 32비트 숫자로 논리적 네트워크 주소 역할을 합니다. 호스트 주소와 네트워크 주소의 두 부분으로 구성됩니다. IP 주소는 일반적으로 점으로 구분된 네 개의 숫자로 표시됩니다(예: 192.0.16.1).
  • 라우터: 네트워크 계층에서 라우터는 서로 다른 WAN(광역 네트워크)에서 작동하는 장치 간에 데이터를 전송하는 데 사용됩니다. 데이터 패킷이 라우팅되는 이유는 라우터가 데이터 전송에 사용되지만 정확한 목적지 주소를 알지 못하기 때문입니다.

라우터는 네트워크 위치에 대한 정보만 가지고 라우팅 테이블에 수집된 데이터를 활용하여 데이터를 전달할 경로를 찾습니다. 최종적으로 목적지 네트워크에 데이터를 전달하면 데이터는 네트워크의 목적지 호스트로 전송됩니다.

  • 서브넷 마스크: 서브넷 마스크는 라우터가 IP 주소 외에 데이터를 전달하기 위해 대상 호스트의 위치를 검색하는 데 사용할 수 있는 32비트로 구성된 논리 주소입니다. 원격 네트워크에 있는지 아니면 하위 네트워크에 있는지에 관계없이 호스트 및 네트워크 주소만으로는 위치를 찾기에 충분하지 않기 때문에 중요합니다. 서브넷 마스크의 예는 255.255.255.0일 수 있습니다.

서브넷 마스크를 보면 네트워크 주소와 호스트 주소를 식별할 수 있습니다. 따라서 목적지 주소를 기반으로 소스에서 데이터 패킷이 도착하면 시스템은 데이터를 수신하여 다음 계층으로 전송합니다. 이 계층은 데이터 링크 계층과 달리 발신자가 수신자의 승인을 기다릴 필요가 없습니다.

전송 계층

전송 계층은 OSI 모델에서 아래에서 네 번째 계층입니다. 네트워크 계층에서 데이터를 가져와 애플리케이션 계층으로 전달합니다. 이 계층에서 데이터를 “세그먼트”라고 하며, 이 계층의 주요 기능은 완전한 메시지를 안정적으로 전달하는 것입니다. 또한 데이터 전송이 성공적으로 완료되었는지 확인하고, 오류가 발생하면 데이터를 다시 보냅니다.

또한 전송 계층은 데이터 흐름 제어를 수행하고, 원활한 전송을 위해 수신 장치와 동일한 속도로 데이터를 전송하며, 오류를 관리하고, 오류를 발견하면 데이터를 다시 요청합니다.

각 측면에서 어떤 일이 일어나는지 자세히 살펴보겠습니다.

  • 발신자 측: OSI 모델의 상위 계층에서 형식화된 데이터를 수신하면 전송 계층에서 데이터를 분할합니다. 그런 다음 원활한 데이터 전송을 위한 흐름 제어 및 오류 제어 기술을 구현합니다. 다음으로 헤더에 소스와 대상의 포트 번호를 추가하고 세그먼트를 네트워크 계층으로 보냅니다.
  • 수신자 측: 전송 계층은 헤더를 분석하여 포트 번호를 식별한 다음 수신된 데이터를 대상 애플리케이션으로 보냅니다. 또한 분할된 데이터의 순서를 지정하고 다시 조립합니다.

전송 계층은 네트워크의 장치 또는 호스트 간에 오류 없는 종단 간 연결을 제공합니다. 내부 및 내부 하위 네트워크의 데이터 세그먼트를 전송합니다.

네트워크에서 종단 간 통신을 활성화하려면 각 장치에 TSAP(전송 서비스 액세스 지점) 또는 포트 번호가 있어야 합니다. 이것은 호스트가 원격 네트워크에서 포트 번호를 사용하여 피어 호스트를 인식하는 데 도움이 됩니다. 대부분의 애플리케이션이 기본 포트 번호 80을 사용하기 때문에 포트 번호는 일반적으로 수동으로 또는 기본적으로 찾을 수 있습니다.

전송 계층은 두 가지 프로토콜을 사용합니다.

  • TCP(전송 제어 프로토콜): 이 신뢰할 수 있는 프로토콜은 데이터 전송을 시작하기 전에 먼저 호스트 간의 연결을 설정합니다. 수신자는 데이터를 수신했는지 여부에 대한 확인 응답을 보내야 합니다. 승인을 받으면 두 번째 데이터 배치를 보냅니다. 또한 전송 속도와 흐름 제어를 모니터링하고 오류를 수정합니다.
  • UDP(사용자 데이터그램 프로토콜): 신뢰할 수 없는 프로토콜로 간주되며, 연결 지향적이지 않습니다. 호스트 간에 데이터가 전송된 후 수신자가 승인을 보낼 필요가 없으며, 계속해서 데이터를 보냅니다. 이것이 UDP 플러딩과 같은 사이버 공격에 취약한 이유입니다. 주로 온라인 게임 및 비디오 스트리밍과 같은 애플리케이션에 사용됩니다.

전송 계층의 주요 기능은 다음과 같습니다.

  • 서비스 지점 주소 지정: 전송 계층에는 올바른 수신자에게 메시지를 전달하는 데 도움이 되는 포트 주소 또는 서비스 지점 주소라고 하는 주소가 있습니다.
  • 오류 감지 및 제어: 이 계층은 오류 감지 및 제어를 제공합니다. 데이터가 링크를 통해 이동하는 동안 오류가 감지되지 않더라도, 세그먼트 또는 데이터가 라우터의 메모리 저장소에 저장되는 동안 오류가 발생할 수 있습니다. 또한, 오류가 발생하면 데이터 링크 계층에서 이를 감지할 수 없습니다. 모든 링크가 안전하지 않을 수도 있습니다. 따라서 전송 계층에서 오류 감지가 필수적입니다. 오류 감지는 다음 두 가지 방법으로 수행됩니다.
    • 주기적 중복 검사
    • 체크섬 생성기 및 검사기

세션 계층

OSI 모델에서 아래에서 다섯 번째 계층은 세션 계층입니다. 서로 다른 장치 간에 세션이라고도 하는 통신 채널을 만드는 데 사용됩니다. 이 계층은 다음 작업을 수행합니다.

  • 세션 열기
  • 세션 닫기
  • 데이터 전송 중 세션이 열려 있는 동안 완전한 기능 유지
  • 수신 측에서 데이터 손실 없이 원활한 데이터 전송을 지원하기 위해 다양한 애플리케이션 간의 대화 동기화 제공

세션 계층은 안전한 데이터 전송을 보장하기 위해 체크포인트를 생성할 수 있습니다. 세션이 중단되면, 모든 장치는 마지막 체크포인트에서 전송을 재개합니다. 이 계층을 사용하면 서로 다른 플랫폼을 사용하는 사용자가 플랫폼 간에 활성 통신 세션을 만들 수 있습니다.

프레젠테이션 계층

아래에서 여섯 번째 계층은 프레젠테이션 계층 또는 번역 계층입니다. 이 계층은 상위 계층인 애플리케이션 계층으로 전송할 데이터를 준비하는 역할을 합니다. 사용자가 쉽게 이해할 수 있는 형식으로 데이터를 최종 사용자에게 제공합니다.

프레젠테이션 계층은 네트워크 내 두 장치가 데이터를 압축, 암호화 및 인코딩하여 수신자가 정확하게 수신할 수 있도록 하는 방법을 설명합니다. 이 계층은 애플리케이션 계층이 세션 계층으로 전송한 다음 전달하는 데이터를 처리합니다.

프레젠테이션 계층은 발신자와 수신자가 서로 다른 통신 모드를 사용할 수 있기 때문에 발생하는 불일치를 처리하여 구문을 관리합니다. 이 계층을 통해 시스템은 동일한 네트워크에서 서로 쉽게 통신하고 이해할 수 있습니다.

프레젠테이션 계층은 다음과 같은 작업을 수행합니다.

  • 발신자 측에서 데이터 암호화
  • 수신자 측에서 데이터 복호화
  • EBCDIC로의 ASCII 형식과 같은 번역
  • 전송 전 멀티미디어용 데이터 압축

이 계층은 문자와 숫자로 구성된 데이터를 비트로 분할하여 전송합니다. 또한 네트워크와 스마트폰, 태블릿, PC 등 다양한 장치의 데이터를 허용되는 형식으로 변환합니다.

애플리케이션 계층

애플리케이션 계층은 OSI 모델의 일곱 번째이자 최상위 계층입니다. 이메일 클라이언트 및 웹 브라우저와 같은 최종 사용자 소프트웨어 및 애플리케이션은 이 계층을 사용합니다.

애플리케이션 계층은 소프트웨어 시스템이 데이터를 전송하고 최종 사용자에게 의미 있는 정보를 제공할 수 있도록 하는 프로토콜을 제공합니다.

애플리케이션 계층 프로토콜의 예로는 HTTP(Hypertext Transfer Protocol), SMTP(Simple Mail Transfer Protocol), DNS(Domain Name System) 및 FTP(File Transfer Protocol) 등이 있습니다.

TCP/IP 대 OSI 모델: 차이점

TCP/IP 모델과 OSI 모델의 주요 차이점은 다음과 같습니다.

  • 미국 국방부(DoD)에서 개발한 TCP/IP 모델은 OSI 모델보다 오래된 개념입니다.
  • TCP/IP 기능 모델은 특정 통신 문제를 해결하기 위해 구축되었으며 표준 프로토콜을 기반으로 합니다. 반면, OSI 모델은 네트워크 통신을 정의하는 데 사용되는 프로토콜 독립적인 일반 모델입니다.
  • TCP/IP 모델은 OSI 모델보다 더 단순하고 계층 수가 적습니다. 일반적으로 다음과 같은 4개의 계층으로 구성됩니다.
    • OSI 계층 1과 2를 결합한 네트워크 액세스 계층
    • OSI 모델에서 네트워크 계층이라고 하는 인터넷 계층
    • 전송 계층
    • OSI 계층 5, 6, 7을 결합한 애플리케이션 계층
  • OSI 모델에는 물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 프레젠테이션 계층 및 애플리케이션 계층의 7개 계층이 있습니다.
  • TCP/IP를 사용하는 애플리케이션은 모든 계층을 활용하지만, OSI 모델에서 대부분의 애플리케이션은 7개 계층을 모두 활용하지 않습니다. 실제로 계층 1-3은 데이터 전송에만 필수적입니다.

결론

OSI 모델에 대한 이해는 개발자와 공급업체가 상호 운용 가능하고 안전한 소프트웨어 애플리케이션 및 제품을 만드는 데 도움이 됩니다. 또한 서로 다른 통신 도구와 프로토콜을 구분하고 작동 방식을 이해하는 데 도움이 됩니다. CCNA 인증과 같은 네트워킹 시험을 준비하는 학생에게도 OSI 모델에 대한 지식은 매우 유용합니다.