OSI 7계층이란?

OSI 7계층

OSI 7계층이란, 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것이다.

계층을 나눈 이유는 통신이 일어나는 과정을 단계별로 파악할 수 있기 때문이다. 또한 7계층 중에서 하나에서 오류가 발생하면 다른 계층은 건드리지 않고, 해당 계층만 고칠 수 있기 때문이다.

OSI 7계층 단계

image

1. 물리 계층 (Pysical Layer) : 데이터 전송

물리 계층에서는 다른 곳에서부터 전기적 신호를 전달받으면 이를 디지털 형태의 비트로 변환하여 데이터 링크 계층에게 전달한다. 혹은 데이터 링크 계층으로부터 전달 받은 디지털 형태의 비트를 전기적 신호로 변환하여 이를 전송하고자 하는 매체에게 전달하는 역할을 한다.

물리 계층에서는 전기적, 기계적 특성을 이용하여 통신 케이블로 데이터를 전송한다. 사용되는 통신 단위는 비트(0,1)로, 전기적으로 on, off를 나타낸다.

물리 계층에서는 데이터를 전송할 뿐, 전송하려는 데이터가 무엇인지, 어떤 에러가 있는지 신경쓰지 않는다.

ex) 통신 케이블, 허브

데이터 링크 계층은 송수신되는 데이터가 안전하게 송수신 될 수 있도록 도와주는 계층이다. 통신에서의 오류도 찾아주고, 재전송하는 기능을 갖는다.

데이터 링크 계층에서는 물리 계층으로부터 전달받은 디지털 형태의 비트를 의미 있는 데이터 단위 프레임으로 구성하여 네트워크 계층에게 전달한다. 혹은 네트워크 계층으로부터 데이터를 전달 받으면, 디지털 형태의 비트로 변환하여 물리 계층에게 전달한다.

프레임

  • 헤더(Header)
    • 소스 및 대상 주소: 데이터가 어디에서 왔는지, 어디로 가야하는지에 대한 정보 (MAC)
    • 데이터 필드의 유형 및 길이
    • 흐름 제어 및 오류 관리를 돕는 정보
  • 데이터(Payload)
    • 실제 전송하는 데이터
  • FCS(Frame Check Sequence)
    • 오류 검출 코드인 CRC(Cyclic Redundancy Check)를 포함하여 데이터에 오류가 있는지 판단

데이터 링크 계층에서는 물리 계층에서 확인하지 않는 ‘데이터가 무엇인지? / 어떤 에러가 있는지?’ 를 확인하는데, 이때 중요한 역할을 하는 것이 바로 프레임이다.

데이터 링크 계층에서는 MAC 주소를 가지고 통신을 한다.

MAC (Media Access Control)

데이터 링크 계층에서 통신을 위해 사용되는 하드웨어의 고유 주소이다.

물리 계층에서는 주소를 확인하지 않기 때문에, 데이터 링크 계층에서는 데이터가 올바른 곳에서 전달될 수 있도록 하드웨어의 물리적 주소인 MAC를 확인하는 것이다.

MAC를 통해 단말 간의 충돌/결합 등 연결 방식을 제어하는 역할을 수행한다.

ex) 브리지, 스위치

3. 네트워크 계층 (Network Layer) : 안전하게 빠르게 전달

네트워크 계층은 데이터를 목적지까지 가장 안전하고 빠르게 전달해주는 역할이다. 여기에서 사용되는 프로토콜의 종류와 라우팅 기술은 다양하다.

네트워크 계층에서는 안전하게 빠르게 데이터를 전달하기 위해 경로를 선택하고, 주소를 정하고, 경로에 따라 패킷을 전달해준다.

네트워크 계층에서는 패킷 분할, 라우팅, 주소 지정을 담당한다.

  • 패킷 분할: 데이터를 적절한 크기로 분할하여 데이터를 전송한다.
  • 라우팅: 각 패킷이 그 다음 목적지로 전달될 수 있도록 한다.
  • 주소 지정: 각 장치에 IP 주소를 할당하여 다른 장치와 통신할 수 있게 한다.

ex) 라우터

4. 전송 계층 (Transfer Layer) : 신뢰성 있는 데이터

전송 계층은 신뢰성 있는 데이터를 통신할 수 있도록 하여 상위 계층들이 데이터 전달의 유효성과 효율성을 생각하지 않도록 도와주는 계층이다.

발신지에서 목적지(End to end) 간 제어와 에러를 관리하고, 패킷의 전송이 유효한지 확인하여 전송에 실패된 패킷을 다시 보내는 것과 같이 신뢰성 있는 통신을 보장한다.

가장 잘 알려진 전송 계층의 예는 TCP이다.

5. 세션 계층 (Session Layer) : 연결 안정적으로 유지 / 데이터 통신이 마무리되면 연결을 끊음

데이터가 통신하기 위한 논리적 연결을 하는 계층이다. 응용 프로그램의 관점에서 연결을 유지하는 역할을 하는 것이다.

세션 계층에서는 데이터를 주고받는 동안 연결이 안정적으로 유지될 수 있도록 이를 관리하고, 데이터 통신이 마무리되면 연결을 끊는 역할을 한다.

세션 계층에서는 세션 설정, 유지, 종료, 전송 중단시 복구의 기능이 있다.

예를 들어서, 웹서버와 클라이언트 간의 세션을 시작해야할 때, 연결은 TCP(전송 계층)에 의해 이루어지며, 세션 계층에서는 데이터가 올바르게 전송되도록 하고, 종료할 때는 연결을 닫고 자원을 해제하는 역할을 한다.

6. 표현 계층 (Presentation Layer) : 데이터 표현

데이터를 어떻게 표현할지 정하는 역할을 하는 계층이다. 즉 서로 다른 애플리케이션 사이의 통신을 돕기 위해 서로 다른 표현 방식을 하나로 통일하는 역할을 한다.

  • 송신자에서 온 데이터를 해석하기 위해 응용계층 데이터 부호화 및 변화
  • 수신자에서 데이터의 압축을 풀 수 있는 방식으로 된 데이터 압축
  • 데이터의 암호화, 복호화

7. 응용 계층 (Application Layer)

사용자와 가장 밀접한 계층으로 인터페이스 역할을 한다. 사용자가 요청을 보내면 가장 먼저 최상위층인 응용 걔층에 데이터가 도달한다. 응용 계층에서는 사용자가 네트워크 자원에 접근하는 방법을 제공한다. 또한 사용자가 보는 입출력 부분을 정의하는 역할도 한다.

응용 계층에서는 응용 프로세스 간의 정보 교환을 담당한다.