OSI 7 계층



OSI 7 계층이란?

OSI 7 계층(OSI 7 Layer)는 네트워크 프로토콜이 통신하는 구조를 7개의 계층으로 분리하여 각 계층간 상호 작동하는 방식을 정해 놓은 것이며, ISO(국제표준화기구)에서 개발하였다. 이렇게 계층을 나누어 놓으면 통신이 일어나는 과정을 단계별로 알 수 있고, 특정 계층에서 이상이 생기면 해당 계층만 수정할 수 있다는 장점이 있다.

만약 회사에서 메신저를 사용하여 일을 하다가 연결이 끊겼다고 생각해보자.
어디에서 오류가 발생했는지 확인하기 위해 OSI 7 계층의 모델을 사용해 볼 수 있다.

  1. 사내 모든 PC에 문제가 발생했다면 3 계층 네트워크(Network)의 라우터에 문제가 발생했거나, 1 계층 물리(Pyhsical)의 회선에 문제가 발생한 것으로 생각해 볼 수 있다.
  2. 하나의 PC에서만 문제가 발생했다면 7 계층 어플리케이션(Application)의 메신저 소프트웨어 자체에 문제가 발생했거나, 2 계층 데이터 링크(DataLink)의 스위치에 문제가 발생한 것으로 생각해 볼 수 있다.

OSI 7 계층의 개념을 이용하여, 어떤 오류가 발생 했을 때 모든 계층을 확인하고 수정하는 것이 아니라, 오류의 발생이 예상되는 계층을 찾아 해당 계층만 수정할 수 있다.


1) 물리(Physical)

케이블, 리피터, 허브 등


물리 계층에서는 주로 전기적, 기계적, 기능적인 특성을 이용하여 통신 케이블로 데이터를 전송한다. 이 계층에서는 데이터를 전송만 할 뿐, 전송하려는 데이터가 무엇인지, 어떤 에러가 있는지에 대해 전혀 신경 쓰지 않는다. 단지 데이터를 전기적인 신호로 변환해서 주고 받는 기능을 수행한다.

브릿지, 스위치 등

데이터 링크 계층은 물리 계층을 통해 송수신 되는 데이터의 오류와 흐름을 관리하여 안전하게 정보가 전달될 수 있도록 도와주는 역할을 하는 계층이다. 따라서 통신 과정에서 발생하는 오류를 검출하고, 데이터를 재전송하는 기능을 가지고 있다.

데이터 링크 계층은 두 개의 부계층으로 나누어져 있다. 그 중 MAC(매체 접근 제어, Media Access Control)은 물리적인 부분으로 매체 간의 연결 방식을 제어하며 물리 계층과 연결되어 있다. 다른 하나는 LLC(Logical Link Contorl)로 논리적인 부분이며 프레임(Frame)을 생성하고 네트워크 계층과 연결되어 있다. 여기서 프레임은 데이터 링크 계층에서 전송하는 데이터의 단위를 뜻하는데, 프레임에 MAC 주소를 부여하여 오류 검출(Error Detection) 흐름 제어(Flow Control) 기능을 수행한다.

3) 네트워크(Network)

라우터, IP(Internet Protocol)

데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능을 수행하는 계층이다. 라우터를 통해 가장 효율적인 이동 경로를 선택한 다음 IP 주소를 지정하고, 경로를 따라 데이터를 패킷(Packet) 단위로 나누어 전달한다 (Packet Forwarding). 이러한 네트워크 계층은 여러개의 노드를 거칠때마다 경로를 찾아주는 역할을 하며, 라우팅(Routing), 흐름 제어(Flow Control), 오류 제어(Error Control), 세그멘테이션(Segmentation) 등의 기능을 수행한다.

4) 전송(Transport)

TCP, UDP

TCP와 UDP프로토콜을 통해 통신을 활성화하는 계층이다. 보통 TCP 프로토콜을 주로 사용하여, 포트(Port)를 열어 응용프로그램들이 데이터 전송을 할 수 있도록 한다.

  • TCP(Transmission Control Protocol): 신뢰성, 연결지향적
  • UDP(User Datagram Protocol): 비신뢰성, 비연결성, 실시간

TCP는 데이터를 보내기 전에 통신이 가능한 상태인지 확인하고, 데이터를 전달하면서 정확하게 전달이 되었는지 확인해주는 절차를 가지고 있어 신뢰도가 있는 프로토콜이다. 하지만 소량의 데이터를 전송해야 할 때는, TCP의 방식처럼 세션을 맺어 통신하면 속도가 느려지고 비효율적이라는 단점이 있어, 이러한 경우 UDP를 사용하여 통신하는 것이 좋다.

5) 세션(Session)

API, Socket

세션은 데이터가 통신하기 위한 논리적인 연결을 말한다. 하지만 4 계층 전송(Transport)에서도 연결을 맺고 종료할 수 있기 때문에, 통신이 끊어진 경우 어느 계층에서 끊어졌는지 판단하기 어려운 경우가 있다. 세션 계층은 양 끝단의 응용 프로세스가 통신을 관리하기 위하여 동시 송수신 방식(duplex), 반이중 방식(half-duplex), 전이중 방식(full duplex)의 3가지 방법을 제공한다.

6) 표현(Presentation)

JPEG, MPEG

데이터 표현이 상이한 응용프로세스의 독립성을 제공하고 암호화한다. 표현 계층은 코드 간의 번역을 담당하여 사용자 시스템에서 데이터 형식상의 차이를 다루는 부담을 7 계층 응용(Application)으로부터 덜어준다.

7) 응용(Application)

HTTP, FTP, DNS

최종 목적지로, 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다.

  • HTTP (HyperText Transfer Protocol): 웹 상에서 웹 서버 및 웹 브라우저 상호 간의 데이터 전송을 위한 응용계층 프로토콜

웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이기도 하다. 클라이언트-서버 프로토콜이란 수신자(보통 웹 브라우저) 측에 의해 요청이 초기화 되는 프로토콜을 의미한다. 클라이언트와 서버들은 개별적인 메시지 교환에 의해 통신하는데, 클라이언트에 의해 전송되는 메시지를 요청(request)라 부르며, 그에 대해 서버에서 응답으로 전송되는 메시지를 응답(response)라고 부른다.

댓글남기기