OSI 7계층

네트워킹의 복잡한 세계를 이해하기 위해 도움이 되는 핵심 개념 중 하나가 OSI 7계층 모델입니다. 이 모델은 네트워크 프로토콜과 통신을 일련의 계층으로 나눔으로써, 각각의 과정과 그들 사이의 상호작용을 보다 명확하게 이해할 수 있게 해줍니다. OSIOpen Systems Interconnection 7계층 모델은 국제 표준화 기구(International Standards Organization, ISO)에서 개발한 것으로, 네트워크 프로토콜 디자인과 통신을 설명하기 위한 개념적 프레임워크입니다. 이 모델은 물리적인 전송 매체부터 애플리케이션에 이르기까지 데이터 통신의 다양한 단계를 세분화하여 정리합니다.

이 계층 구조는 네트워크 기능들 사이에 명확한 구분을 제공하며, 각 계층은 서로 다른 역할을 수행하고 각자 고유한 문제를 해결합니다. 이런 방식으로 복잡한 네트워크 구조를 관리 가능한 형태로 분해함으로서 오류 진단 및 문제 해결 과정이 단순화되고, 장치와 프로토콜 간 호환성도 증진시킵니다. 따라서 OSI 7계층 모델은 네트워크 전문가들에게 필수적인 지식 요소 중 하나입니다. 이 글에서는 OSI 7계층 모델에 대해 자세히 살펴보고, 그 중요성과 어떻게 사용되는지에 대해 알아보겠습니다.

OSI 7 계층을 나눈 이유

OSI 7 계층은 네트워크 통신을 체계적으로 분해하여 이해하고 문제를 해결하며, 표준화와 호환성을 제공하며, 개발과 관리를 용이하게 하기 위해 만들어진 모델입니다. 단계별로 나눈 이유는 여러가지 이유가 있지만 대표적으로 다음과 같다고 할 수 있습니다.

참고: PC방에서 게임을 하는 중에 연결이 끊어진 경우, 어디에서 문제가 발생했는지 쉽게 확인할 수 있습니다. 모든 PC에서 동일한 문제가 발생한다면, 그 원인은 일반적으로 물리 계층(1계층) 또는 데이터 링크 계층(2계층)에 위치할 가능성이 큽니다. 이 경우 네트워크 하드웨어나 전송 매체(예: 광랜 회선, 스위치 등)에 문제가 있을 수 있습니다. 만약 한 PC에서만 특정 게임에 접속할 수 없다면, 그 원인은 일반적으로 응용 계층(7계층)에 위치할 가능성이 큽니다. 이 경우 해당 게임 소프트웨어나 관련 서비스에 문제가 있을 수 있습니다.
  • 통신 과정을 단계별로 파악할 수 있어 흐름을 이해하기 쉽습니다. OSI 모델은 네트워크 통신 과정을 명확한 단계로 분해합니다. 각 계층은 특정한 기능과 역할을 수행하며 데이터의 이동과 처리를 담당합니다. 이렇게 단계적으로 분해된 모델을 통해 통신 과정을 이해하기 쉽습니다.
  • 사람들이 이해하기 쉽고, 문제가 발생했을 때 특정 단계만 수정할 수 있습니다. OSI 모델을 사용하면 네트워크 문제 발생 시 어느 계층에서 문제가 발생했는지 파악하기가 용이합니다. 각 계층은 독립적으로 동작하므로 문제 발생 시 해당 계층만 수정하면 됩니다. 이로써 문제 해결이 빠르고 효율적으로 이루어집니다.
  • OSI 모델은 국제적으로 인정받는 표준 모델로 사용되고 있습니다. 이로써 다양한 제조사의 하드웨어와 소프트웨어가 서로 호환되도록 도와줍니다. 표준 모델을 기반으로 개발된 네트워크 장비와 프로토콜은 다른 시스템과 쉽게 통신할 수 있습니다.
  • OSI 모델은 계층 간의 인터페이스를 정의하여 각 계층이 다른 계층의 구현과 독립적으로 개발될 수 있도록 합니다. 이로써 계층 간의 변경이 최소화되며 각 계층은 자신의 역할에만 집중할 수 있습니다.
  • OSI 모델은 교육과 이해를 쉽게 만들어 줍니다. 네트워크 관련 학습과 교육에서 사용되며, 학습자들에게 네트워크의 복잡한 동작 원리를 단계적으로 이해시키는 데 도움을 줍니다.
  • 네트워크를 설계하고 관리할 때 OSI 모델은 중요한 지침을 제공합니다. 각 계층의 역할과 책임을 고려하여 네트워크 구조를 계획하고 유지할 수 있습니다.
Linux 서버에 SSH 공개키 등록하는 방법

OSI 7 계층 단계

OSI 7 계층은 네트워크 통신에서 데이터 전송을 7개의 계층으로 나눈 모델로, 물리적 연결부터 응용 프로그램까지 다양한 기능을 분리하여 관리하는 방법론입니다. 각 계층은 특정 기능과 역할을 수행하며, 데이터의 안전성과 효율성을 높이는 데 기여합니다. 이 모델은 표준화와 네트워크 디자인에서 중요한 역할을 합니다.

참고: 일반적으로 알려진 OSI 모델은 이론적 모델입니다. 실제 네트워크 스택 구현, 예를 들어 인터넷 프로토콜 스택(IP stack) 등은 이 모델과 완전히 일치하지 않으며, 여러 개의 OSI 레벨을 합친 형태를 취하는 경우가 많습니다.

1계층: 물리계층(Physical Layer)

이 계층은 데이터를 전송하기 위해 전기적, 기계적, 기능적 특성을 이용합니다. 주로 통신 케이블을 사용하며 데이터의 전달만 처리하고 데이터 내용에는 신경쓰지 않습니다. 네트워크의 가장 하위에 위치하며, 주로 전기적인 신호와 데이터를 전송하는 역할을 하며 대표적인 장비로는 통신 케이블, 리피터, 허브 등이 있고, 이더넷 케이블, 광섬유 케이블, 무선 신호 등도 이 계층에서 사용됩니다.

  • 데이터 전송의 물리적 특성: 물리계층은 데이터를 전송하기 위해 전기적, 기계적, 기능적인 특성을 활용합니다. 이러한 특성은 데이터를 이동시키는 데 사용되며, 이 데이터는 0과 1로 표현되는 비트bit로 변환됩니다. 이 계층에서는 어떻게 비트가 물리적 매체를 통해 전달되는지를 다룹니다.
  • 데이터 전송 매체: 물리계층은 다양한 데이터 전송 매체를 사용합니다. 이 매체는 데이터가 전송되는 물리적인 경로를 나타냅니다. 주로 사용되는 매체로는 이더넷 케이블, 광섬유 케이블, 무선 신호 등이 있습니다. 각각의 매체는 데이터를 다르게 처리하고 전송 방식이 다를 수 있습니다.
  • 데이터의 물리적 전송: 물리계층에서는 데이터가 매체를 통해 어떻게 전송되는지를 다룹니다. 이 과정에서 전기적인 신호, 전압, 주파수 등이 사용됩니다. 예를 들어, 이더넷 케이블을 통한 데이터 전송에서는 전기적인 신호의 상태 변화를 사용하여 0과 1을 표현하고 인식합니다.
  • 데이터 내용에 대한 신경쓰지 않음: 물리계층은 데이터의 내용 자체에는 신경을 쓰지 않습니다. 즉, 데이터가 어떤 종류의 정보인지나 내용은 고려하지 않고, 오로지 데이터를 전송하는 과정과 물리적인 특성에 집중합니다.
  • 데이터의 전송과 신호 강도: 물리계층은 데이터의 전송 거리와 신호 강도에 관한 고려사항도 포함합니다. 데이터를 어떤 거리까지 안정적으로 전송할 수 있는지, 어떤 신호 강도가 필요한지를 고려합니다.
워드프레스 function.php 테마 파일 수정하는 방법들

2계층: 데이터 링크 계층(DataLink Layer)

이 계층은 물리계층을 통해 송수신된 정보의 오류와 흐름을 관리하여 안전한 정보 전달을 돕습니다. 맥 주소MAC address를 사용하여 단말 간에 식별하고, 프레임frame이라는 데이터 패킷 단위로 데이터를 전송합니다. 스위치Switch와 브리지Bridge는 이 계층에서 동작하며, LANLocal Area Network 내에서 데이터를 전달합니다.

  • 데이터의 안전한 전송: 데이터 링크 계층은 물리적인 매체를 통해 데이터를 안전하게 전송하는 역할을 담당합니다. 물리계층에서 전달된 비트를 프레임frame이라는 작은 데이터 패킷으로 나누고, 이를 수신 측으로 전송합니다. 이 과정에서 오류를 검출하고 필요한 경우 수정합니다.
  • 맥 주소MAC address를 사용한 식별: 데이터를 전송하는 단말장치들은 맥 주소를 사용하여 서로를 식별합니다. 맥 주소는 네트워크 인터페이스 카드에 할당되며, 각 단말에 고유합니다. 이를 통해 데이터를 정확한 목적지로 보낼 수 있습니다.
  • 프레임 기반 데이터 전송: 데이터 링크 계층에서는 데이터를 프레임 단위로 전송합니다. 프레임은 일정한 크기로 나누어져 있으며, 각각의 프레임은 목적지 단말에 도달하면 재조립됩니다. 이렇게 데이터를 프레임 단위로 나누는 것은 데이터 전송의 신뢰성과 효율성을 높이는 데 도움이 됩니다.
  • 오류 검출 및 수정: 데이터의 전송 과정에서 발생할 수 있는 오류를 검출하고 필요한 경우 수정하는 기능을 수행합니다. 오류 검출을 통해 손상된 데이터를 식별하고, 수정 기능을 통해 데이터의 무결성을 유지합니다.
  • 흐름 제어: 데이터의 흐름을 관리하여 송신자와 수신자 간의 데이터 전달 속도를 조절합니다. 이를 통해 네트워크 혼잡을 방지하고 안정적인 통신을 제공합니다.
  • 충돌 회피: 데이터를 동시에 송신하는 충돌을 감지하고, 충돌을 회피하기 위한 메커니즘을 제공합니다. 이를 통해 데이터 전송의 충돌을 최소화하고 효율적인 통신을 지원합니다.
  • 스위치와 브리지: 데이터 링크 계층에서 동작하는 장비로는 스위치Switch와 브리지Bridge가 있습니다. 스위치는 LANLocal Area Network 내에서 데이터를 전달하고 필요한 포트로 데이터를 전송하는 역할을 합니다. 브리지는 둘 이상의 LAN을 연결하여 데이터 전송을 관리하고, 필요한 경우 트래픽을 제어합니다. 네트워크 포트 더 알아보기

3계층: 네트워크 계층(Network Layer)

이 계층은 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 역할을 합니다. 라우팅 기술과 다양한 프로토콜을 사용하여 데이터를 전달하며 IP 주소를 사용합니다. 대표적인 장비로는 라우터가 있습니다. IP 주소 더 알아보기

  • 데이터의 경로 선택: 네트워크 계층은 여러 가지 경로 중에서 최적의 경로를 선택하여 데이터를 목적지까지 안전하게 전달합니다. 이를 위해 라우팅 기술을 사용하며, 라우팅 알고리즘에 따라 데이터의 경로가 결정됩니다.
  • IP 주소 사용: 네트워크 계층에서는 IP 주소를 사용하여 각 단말이나 네트워크를 고유하게 식별합니다. IP 주소는 전 세계적으로 고유하며, 데이터 패킷의 출발지와 목적지를 지정하는 데 사용됩니다. IPv4와 IPv6가 널리 사용되는 IP 프로토콜입니다.
  • 라우터의 역할: 라우터Router는 네트워크 계층에서 핵심 역할을 수행하는 장비입니다. 라우터는 수신한 데이터 패킷의 목적지 IP 주소를 기반으로 경로를 선택하고, 패킷을 다음 네트워크로 전달합니다. 이를 통해 다른 네트워크 간의 통신이 가능해집니다.
  • 데이터 패킷 전달: 네트워크 계층에서 데이터 패킷은 라우터를 통해 목적지로 전달됩니다. 라우터는 데이터 패킷을 받아 해당 패킷이 어떤 경로를 통해 목적지에 도달해야 하는지 결정하고 전달합니다.
  • TTL 값: 데이터 패킷은 TTLTime-To-Live 값을 가지고 있습니다. TTL 값은 패킷이 네트워크를 통과할 때마다 감소하며, 만약 TTL 값이 0이 되면 패킷은 폐기됩니다. 이를 통해 무한 루프를 방지하고 네트워크의 안정성을 유지합니다.
  • 다양한 프로토콜: 네트워크 계층에서는 다양한 프로토콜을 사용하여 데이터를 전달합니다. 가장 널리 사용되는 프로토콜은 인터넷 프로토콜IP이며, IP의 다양한 버전이 존재합니다. 또한, 라우팅을 위한 프로토콜로는 OSPF, BGP 등이 사용됩니다.
윈도우10 네트워크 인터넷 연결을 끊고 다시 연결 하는 방법

4계층: 전송 계층(Transport Layer)

이 계층은 송신자와 수신자 간의 연결을 설정하고 데이터의 신뢰성을 제공하는 것으로 통신을 활성화하기 위한 계층입니다. 대표적인 역할로는 오류 제어와 흐름 제어가 있습니다. TCPTransmission Control Protocol와 UDPUser Datagram Protocol가 여기에 속하며, TCP는 연결 지향적이며 오류 복구와 흐름 제어를 제공하여 데이터 전달의 신뢰성을 높이고 UDP는 연결을 설정하지 않고 빠르게 데이터를 전달하는데 사용되며, 오류 복구와 흐름 제어가 없습니다. 네트워크 프로토콜 더 알아보기

연결 지향 프로토콜 - TCP(Transmission Control Protocol)

  • TCP는 연결 지향적인 프로토콜로, 송신자와 수신자 간에 가상적인 연결을 설정하고 데이터를 안정적으로 전송합니다.
  • 연결 설정 단계에서 송신자와 수신자 간의 핸드쉐이크handshake2를 수행하여 신뢰성 있는 통신을 위한 초기화를 합니다. 컴퓨터 네트워크에서 핸드쉐이크는 TCPTransmission Control Protocol 연결 설정과 같은 프로세스에서 중요한 역할을 합니다. TCP 3-way handshake라고 불리는 이 과정은 다음과 같습니다
    1. SYN: 송신자가 수신자에게 연결 요청 메시지를 보냅니다.
    2. SYN-ACK: 수신자가 요청을 받아들이고 요청에 대한 응답으로 ACK 메시지와 자신의 SYN 메시지를 보냅니다.
    3. ACK: 송신자가 수신자의 SYN 메시지에 대한 ACK 메시지를 보내 연결을 확립합니다.
  • 데이터를 전송할 때, 시퀀스 번호를 사용하여 데이터의 순서를 추적하고, 수신자에서 확인 응답 ACKAcknowledgement을 받아 데이터 손실을 확인하며 재전송합니다.
  • 오류 복구 기능을 포함하고 있어 데이터 전달의 신뢰성을 높이며, 흐름 제어를 통해 데이터의 과도한 출처와 소비를 조절합니다.

비연결 지향 프로토콜 - UDP(User Datagram Protocol)

  • UDP는 연결을 설정하지 않고 빠르게 데이터를 전달하는 데 사용됩니다.
  • TCP와 달리 핸드쉐이크 등의 추가적인 연결 설정 과정이 없어 송신자가 데이터를 빠르게 보낼 수 있습니다.
  • 그러나 오류 복구와 흐름 제어를 제공하지 않으므로, 데이터의 손실 또는 순서 변경 가능성이 있습니다.
  • UDP는 실시간 응용 프로그램 및 스트리밍 서비스에서 주로 사용되며, 약간의 데이터 손실을 감수하고 낮은 지연을 유지하는 데 적합합니다.

5계층: 세션 계층(Session Layer)

이 계층은 데이터 통신을 위한 논리적인 연결을 제공하며, 통신 세션의 설정, 유지, 종료와 같은 역할을 담당합니다. 또한, 전송 중단 시 복구 작업도 수행하여 데이터 손실을 최소화하고 효율적인 데이터 전송을 지원합니다.

  • 세션 설정 및 종료: 세션 계층은 통신 세션을 설정하고 종료하는 역할을 합니다. 통신을 시작하기 전에 세션을 설정하고, 통신이 완료되면 세션을 종료합니다. 이 과정에서 세션 식별자session identifier를 할당하고 사용합니다.
  • 세션 유지: 데이터 통신 중에 세션 계층은 세션을 유지하고 모니터링합니다. 세션의 안정성과 신뢰성을 유지하기 위해 필요한 조치를 취합니다.
  • 전송 중단 시 복구: 통신 중에 전송이 중단되는 경우 세션 계층은 이어서 전송을 재개할 수 있도록 복구 작업을 수행합니다. 이를 통해 데이터 손실을 최소화하고 효율적인 데이터 전송을 지원합니다.
  • 다중 세션 관리: 세션 계층은 다중 세션을 관리하고 각 세션 간의 우선순위를 설정할 수 있습니다. 이를 통해 여러 응용 프로그램 간의 동시 통신을 지원합니다.
  • 데이터 동기화: 통신 중인 응용 프로그램 간에 데이터 동기화를 제공합니다. 데이터의 순서나 타이밍을 조정하여 정확한 데이터 전달을 보장합니다.
  • 오류 처리: 세션 계층은 통신 중 발생하는 오류를 감지하고 처리합니다. 오류 복구 및 재전송 등의 기능을 제공하여 신뢰성 있는 통신을 유지합니다.
  • 실제 네트워크 구현에서 대부분의 경우 이런 역할들은 응용 계층(7계층)에서 주로 처리됩니다. 따라서 OSI 모델 내의 '세션 계층'은 개념적으로만 존재하며 실제 운영 환경에서 그 존재감이 크게 드러나지는 않습니다.
워드프레스에 유료, 무료 테마를 설치하는 방법들과 설치 관련 오류 정리

6계층: 표현 계층(Presentation Layer)

이 계층은 데이터 표현이 상이한 응용 프로세스 간의 독립성을 제공하고 데이터를 암호화합니다. 데이터 형식상의 차이를 처리합니다. 여기에는 데이터 형식 변환, 데이터 압축 및 데이터 암호화와 관련된 작업이 포함됩니다. 표현 계층은 데이터를 다른 응용 프로세스 간에 상호 호환되는 형식으로 변환하고 보안 및 효율성을 향상시키기 위해 데이터를 암호화하고 압축하는 역할을 합니다.

  • 데이터 형식 변환: 표현 계층은 데이터를 한 응용 프로그램에서 다른 응용 프로그램으로 전송할 때 데이터 형식을 변환합니다. 예를 들어, 한 응용 프로그램은 데이터를 JSON 형식으로 보낼 수 있고, 다른 응용 프로그램은 XML 형식으로 데이터를 받을 수 있습니다. 표현 계층은 이러한 형식 간의 변환을 수행하여 데이터를 수신측에서 올바르게 이해할 수 있도록 합니다.
  • 데이터 압축: 데이터를 효율적으로 전송하기 위해 표현 계층은 데이터를 압축할 수 있습니다. 예를 들어, 이미지나 텍스트 데이터를 압축하여 전송 대역폭을 절약하고 전송 시간을 단축할 수 있습니다.
  • 데이터 암호화: 보안이 중요한 통신에서, 표현 계층은 데이터를 암호화하여 무단 접근을 방지합니다. 예를 들어, 민감한 정보를 포함한 이메일을 보낼 때 표현 계층은 해당 이메일 내용을 암호화하여 해독하기 어렵게 만듭니다.
  • 문자 인코딩: 다양한 문자 집합과 문자 인코딩 방식이 존재합니다. 표현 계층은 이러한 문자 인코딩 간의 변환을 수행할 수 있습니다. 예를 들어, 한국어를 표현하는 데 UTF-8 인코딩을 사용하는 응용 프로그램과 EUC-KR 인코딩을 사용하는 응용 프로그램 간에 데이터를 교환할 때, 표현 계층은 이러한 인코딩 간의 변환을 수행합니다.
  • 실제 네트워크 구조상에서 대부분의 경우 위와 같은 기능들은 응용 계층(7계층) 내에서 처리됩니다. 따라서 OSI 모델 내의 '표현 계층'은 개념적인 존재로서 설명되지만 실제 운영 환경에서 그 존재감이 크게 두드러지진 않습니다.

7계층: 응용 계층(Application Layer)

이 계층은 최종 사용자가 직접 상호 작용하는 부분으로, 다양한 응용 프로그램과 서비스를 제공합니다. 우리가 일상적으로 자주 접하는 웹 브라우징, 이메일, 파일 전송, 원격 데스크톱 접속 등이 이 계층에서 동작합니다. 간단하게 말해 사용자와 응용 프로그램 간의 인터페이스를 제공하여 사용자가 서비스를 이용할 수 있도록 합니다.

  • 사용자 인터페이스 제공: 응용 계층은 최종 사용자와 상호 작용하는 인터페이스를 제공합니다. 이를 통해 사용자는 응용 프로그램을 조작하고 데이터를 입력하고 출력할 수 있습니다. 사용자 친화적인 그래픽 사용자 인터페이스GUI나 명령줄 인터페이스CLI 등을 사용하여 상호 작용이 이루어집니다.
  • 다양한 응용 프로그램 및 서비스: 응용 계층은 다양한 응용 프로그램과 서비스를 호스팅하고 제공합니다. 이메일 클라이언트, 웹 브라우저, 파일 전송 프로그램, 게임 클라이언트 등이 이러한 응용 프로그램에 포함됩니다.
  • 프로토콜 지원: 응용 계층은 특정 응용 프로그램 및 서비스를 위한 프로토콜을 구현하고 지원합니다. 예를 들어, 웹 브라우징을 위한 HTTP 프로토콜, 이메일을 위한 SMTP 및 POP3/IMAP 프로토콜 등을 제공합니다.
  • 데이터 포맷 변환: 다양한 응용 프로그램이 데이터를 다양한 형식으로 사용할 수 있도록 데이터 포맷 변환을 수행합니다. 예를 들어, 웹 브라우저는 HTML 문서를 표시하고, 이메일 클라이언트는 텍스트 및 첨부 파일을 표시합니다.
  • 인증 및 보안: 응용 계층은 사용자 인증 및 데이터 보안을 관리합니다. 사용자가 응용 프로그램에 로그인하고 안전하게 통신할 수 있도록 지원합니다.
  • 오류 처리 및 예외 관리: 응용 계층은 응용 프로그램 내에서 발생하는 오류 처리 및 예외 관리를 수행합니다. 예를 들어, 웹 브라우저가 웹 페이지를 표시하는 동안 발생하는 오류를 처리하고 사용자에게 표시합니다.
트래픽 제한을 위해 공유기에서 특정 아이피 속도를 조절하는 방법

관련 글

댓글로 남기기 어려운 내용은 Contact Form 에서 개별적으로 문의 할 수 있습니다. 해당 글과 연관 된 내용은 Copy를 이용해 현재 페이지의 주소를 복사 후 문의 폼에 입력시 보다 정확한 답을 얻을 수 있습니다.

Leave a Comment