

OSI 7 Layer란 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다.
OSI 7계층은 네트워크 폐쇄성 문제를 해결하고자 표준화된 참조 모델을 말한다.
당시 많은 컴퓨터 제조회사들은 자신의 독자적인 네트워크 구조를 발표했다. 그런데 이는 모두 타사 제품과의 연동을 고려하지 않는 폐쇄성으로 인하여 다른 타사 제품과는 접속이 불가한 문제가 있었다.
이러한 문제를 해결하고자 국제 표준화 기구 ISO에서는 통신의 효율성을 높이고자 통신이 수행되는 일련의 과정에서 필요한 기능들을 7개의 계층으로 나누어 구분하였다. 이 때 각 단계마다 표준호된 서비스의 정의와 프로토콜을 규정하였다.
이렇게 OSI 7계층을 단계별로 나누었을 때의 장점은 무엇일까? 바로 통신이 일어나는 과정, 데이터의 흐름을 한 눈에 볼 수 있게 되었다는 것이다. 데이터의 흐름을 한 눈에 볼 수 있게 된다면 실질적으로 무엇이 좋을까? 바로 문제가 발생한 경우 단계적인 원인 분석이 가능하다는 것이다
7계층을 나누어서 만약 7계층에서 하나의 오류가 발생하게 된다면, 다른 계층을 건들이지 않고 문제가 발생한 계층만 건들여서 고칠 수 있어, 효율적이다!
그렇다면 지금부터 각 계층별 특징을 살펴보자.
물리 계층은 전송에 필요한 두 장치 간의 실제 접속, 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의한다.
0과 1의 나열을 아날로그 신호로 바꾸어 전선으로 흘려보내고(encoding) 아날로그 신호가 들어오면 0과 1의 나열로 해석하여 (decoding) 물리적으로 연결된 두 대의 컴퓨터가 0과 1의 나열을 주고받을 수 있게 해주는 모듈을 말한다.
같은 네트워크에 있는 여러 대의 컴퓨터들이 데이터를 주고받기 위해서 필요한 모듈
데이터 링크 계층은 두 개의 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 시스템 간 연결 설정과 유지 및 종료를 담당한다.
네트워크 계층은 개방 시스템 간의 네트워크 연결을 관리하는 기능과 데이터의 교환 및 중계 기능을 한다.
최대한 빠르게 전달하는 역할
IP주소를 이용해 서로 다른 네트워크에 속한 컴퓨터끼리 데이터를 주고 받게 해주는 것
전송 계층은 논리적 안정과 균일한 데이터 전송 서비스를 제공함으로써 종단 시스템간에 투명한 데이터 전송을 가능하게 한다.
양 종단간 신뢰성있는 정보를 전달할 때 사용, 오류제어 흐름제어
세션 계층은 송수신측 간의 관련성을 유지하고 대화 제어를 담당한다.
연결과 관련된 설정을 담당
표현 계층은 응용 계층으로부터 받은 데이터를 세션 계층에 보내기 전에 통신에 적당한 형태로 변환하고, 세션 계층에서 받은 데이터는 응용 계층에 맞게 변환하는 기능을 한다.
데이터의 표현, 암호화 복호화를 담당
응용 계층은 사용자 (응용 프로그램)가 OSI 환경에 접근할 수 있도록 서비스를 제공한다.
내가 보는 프로그램
현대의 인터넷은 OSI 모델이 아니라 TCP/IP 모델을 따르고 있다.
TCP/IP 모델도 OSI 모델과 마찬가지로 네트워크 시스템에 대한 모델이다.
현재 인터넷이 TCP/IP 모델을 따르는 이유는, OSI 모델이 TCP/IP 모델과의 시장 점유 싸움에서 졌기 때문이다.
OSI 7계층 구조는 장비 개발과 네트워크 통신 표준화를 위한 개념적 성향의 모델이다. 반면 TCP/IP 4계층은 실제 인터넷 통신 시 기반이 되는 모델이다. 네트워크 접근 계층, 인터넷 계층, 전송계층, 애플리케이션 계층으로 이루어져있다.
OSI 7계층에서 1,2 계층에 해당한다.
OSI 7계층에서 3계층인 네트워크 계층에 해당한다.
OSI 7계층에서 4계층인 전송 계층에 해당한다.
OSI 7계층에서 5,6,7 계층에 해당한다.
네트워크 구조를 여러 계층으로 나누어 정의한 이유는 통신이 일어나는 과정에서 데이터의 흐름을 한눈에 파악하기 쉽고 통신 과정 중 문제가 발생했을 때 다른 단계의 장비나 소프트웨어를 건드리지 않고 통신 장애를 일으킨 단계에서 해결할 수 있기 때문이다. 또한 각 계층들은 다른 계층에 영향을 받지 않도록 설계되어 있어 독립적으로 발전해나갈 수 있다는 장점이 있다.
데이터를 전송하기 위해서 데이터 앞부분에는 전송하는데 필요한 정보를 붙여 다음 계층으로 보내야 한다. 이 때 전송하는데 필요한 정보를 (목적지 정보, 출발지 정보, 에러 체크 등) 담는 데이터를 헤더 라고 한다.
헤더는 데이터 맨 앞에 위치하는 추가적인 정보 데이터로서, 데이터의 내용이나 성격을 식별, 제어하는 데 사용된다.
헤더를 붙여나가는 과정으로, 컴퓨터 통신에서 상위 계층에서 통신 프로토콜 정보를 데이터에 추가하여 하위 계층으로 전송하는 기술이다.
데이터를 받는 쪽에서는 계층마다 헤더를 하나씩 제거해야 하는데, 이처럼 헤더를 제거해나가는 과정을 역캡슐화라고 한다. 상위계층의 통신 프로토콜에서 하위 계층에서 추가한 정보와 데이터를 분리하는 기술이다.
이처럼 데이터는 각 계층을 지나며 헤더를 붙이기도 하고 떼어내기도 하면서 캡슐화와 역캡슐화의 과정을 거치게 된다.