본문 바로가기
IT

OSI 7계층 모델

by Redking

OSI 7 계층 모델은 국제표준화기구인 ISO에서 개발한 것으로 컴퓨터 네트워크 프로토콜 디자인과 통신을 7 계층으로 나누어 정의한 것으로 각 프로토콜을 기능별로 구분하기 쉽게 나눈 것이다. 이번 글에서는 OSI 7 계층에 대해 알아보고 일반 사용자에게 가장 친숙한 최상위 계층인 7계층 응용에 대해 자세히 알아보겠다.

 

각 계층은 서로 독립적이며 하위계층의 기능만을 이용할 수 있다. 상위 계층인 응용, 표현, 세션 계층은 통신 기능을 제공하며 하위 계층인 전송, 네트워크, 데이터링크, 물리는 전달 기능을 제공한다. 

통신 기능을 제공하는 상위 3계층에서는 응용프로그램과의 통신관리와 동기화 서비스를 유지하는 기능, 데이터의 번역을 통해 일관되는 데이터 전송 및 암호화와 압축 기능 등 데이터 통신을 위한 여러 기능이 주를 이루고 있다. 

전달 기능을 제공하는 하위 4 계층에서는 송신 측과 수신 측의 연결을 설정, 데이터가 전달되는 최적의 경로 설정과 오류제어, 에러 제어, 데이터 손실을 막기 위한 흐름 제어 등의 역할을 수행하며 데이터가 무사히 수신 측에 도착할 수 있도록 도와주는 역할을 한다.

사용자가 프로그램을 이용해 데이터를 전송할 경우 OSI 7계층에서 이동 경로를 봤을 때 최상위 응용계층에서 최하위 물리 계층으로 내려간다. 이후 전송매체를 통해 다른 장치로 전송되면 다시 물리 계층에서 응용계층으로 올라가 다른 사용자가 데이터를 받게 된다. 

주요 특징으로는 데이터 캡슐화가 있다. 이는 사용자 데이터가 각 계층을 지나면서 하위 계층은 상위 계층으로부터 온 정보를 데이터로 취급하며, 자신의 계층 특성을 담은 제어정보(주소, 에러 제어 등)를 헤더화 시켜 붙이는 일련의 과정을 말한다. 데이터를 보낼 때는 응용 계층에서 시작되어 OSI 계층을 차례로 내려오며 물리 계층으로 간다. 이 과정에서 캡슐화를 하게 되는데 각 계층은 다른 계층과 통신할 때 데이터에 특정 정보가 들어 있는 머리말(헤더)과 꼬리말(푸터)을 추가한 후 다른 계층으로 전달한다. PDU(Protocol Data Unit)은 프로토콜 데이터 단위이며 OSI 모델의 정보 처리 단위이다. 캡슐화 과정에서 만들어진다. 아래 계층으로 내려갈수록 PDU에는 다양한 프로토콜에 의해 헤더와 푸터가 더해진다. 마지막 물리 계층에서 PDU는 최종적인 모습으로 변하며, 데이터를 보내는 접점이 된다. 반대로 데이터를 받은 컴퓨터는 PDU로부터 프로토콜의 헤더와 푸터를 분석하며 올라가 마지막 응용 계층에 도달하면 원본 데이터만 남는다. 

 

응용 계층은 OSI 7계층 모델에서 최상위 계층으로 사용자가 네트워크 자원(클라이언트 서버 애플리케이션)에 접근하는 방법을 제공하며 대표적인

응용 계층 프로토콜과 더불어 사용자가 직접 에플리케이션을 제작하고 자신만의 응용 계층 프로토콜을 만들 수도 있다. 그리고 계층 7은 최종적으로 사용자가 볼 수 있는 유일한 계층으로 모든 네트워크 활동의 기반이 되는 인터페이스를 제공하는데, 즉 사용자가 실행하는 응용 프로그램들이 계층 7에 속한다고 보면 된다. 예를 들면 가상 터미널인 텔넷(telnet), 구글의 크롬(chrome), 이메일(전자우편), 데이터베이스 관리 등의 서비스를 제공한다. 사용자와 가장 가까운 계층이다.

응용 계층의 대표적인 프로토콜은 아래와 같다.

HTTP(80): 웹 사이트를 접속하는데 이용된다.

DNS(53): 도메인 이름을 해석하는데 이용된다.

FTP(21): 파일을 전송하는데 이용된다.

SMTP(25): 메일을 보내는데 이용된다.

POP3(110): 메일을 받는데 이용된다.

이 가장 대표적인 5가지 프로토콜 중에 가장 익숙한 프로토콜은 HTTP일것이다. 이는 모든 웹사이트를 접속하는데 필요하기 때문에 pc로 브라우져를 실행하고 원하는 도메인으로 접속할때 반드시 필요한 프로토콜이다. 

작동 방식은 클라이언트에서 request를 서버에 보내면 서버는 이에 대한 response를 넘기게 된다. respons의 종류로는 200, 201, 500, 404등 다양한 응답값이 있으며 이 값은 서버단에서 직접 설정이 가능하다. 여기서 클라이언트는 우리가 평상시에 일상에서 사용하는 IE, Chrome, Firefox, Safari등 브라우져를 의미하고 서버는 클라이언트의 request를 받아 response를 제공하는 소프트웨어가 설치된 컴퓨터인 Apache, nginx, IIS, lighttpd등이 설치된 서버 소프트웨어를 의미한다. 서버는 보통 표준 포트인 80번 포트로 서비스 되며 포트로 request가 들어오고 난 후에 내부적으로 컴퓨터 내에서 다양한 방법으로 처리할 수 있다.

 

'IT' 카테고리의 다른 글

Instruction Pipeline  (0) 2022.08.13
컴파일러  (0) 2022.08.13
프로젝트 시작시 해야할것들  (0) 2021.10.05
ASCII Code, Unicode, encode, decode (2편)  (0) 2021.10.01
ASCII Code, Unicode, encode, decode (1편)  (0) 2021.09.30

댓글