오늘은 네트워크의 기본중에 기본! OSI 7 Layer에 대해서 알아보고자 한다.
네트워크를 이해하기 위해서는 데이터 전송 흐름을 파악할 필요가 있다.
이 때 이해를 위해 필요한 것이 OSI 7 Layer이다.
OSI 7 Layer를 가장 깔끔히 이해할 수 있도록 해주는 그림을 찾아 보았다.
먼저 각 계층에서 받은 데이터를 어떤 방식으로 포장/분해해서 다음 계층으로 넘기는지에 대한 그림이다. 일단 각 계층의 기능을 알기보다, 계층마다 포장/분해해서 다음 계층으로 데이터를 넘긴다는 느낌을 아는 것이 중요하다.
Application - Presentation - Session 계층까지를 보통 상위 계층이라 일컫는다.
나머지 Transport - Network - DataLink - Physical 계층을 하위 계층이라 말한다.
다음으로 각 계층에 사용되는 프로토콜의 이름과 장비의 이름, 데이터 단위를 정리해놓은 표이다. 이는 나중에 꼭 필요한 개념이므로, 더 공부한다면 각 프로토콜과 장비에 대해 살펴볼 때 알아가는 재미를 느낄 수 있을 것이다.
각 계층이 어떤 의미를 갖고 있는지, 어떤 기능을 하는지 알아보자.
주로 전기적, 기계적, 기능적인 특성을 이용해 데이터를 전송하게 된다. 데이터는 0과 1의 비트열, 즉 On, Off의 전기적 신호 상태로 이루어져있다.
물리 계층에서 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 도와주는 역할을 한다.
OSI 7 계층에서 가장 복잡한 계층 중 하나로서 실제 네트워크 간에 데이터 라우팅을 담당한다. 이때 라우팅이란 어떤 네트워크 안에서 통신 데이터를 짜여진 알고리즘에 의해 최대한 빠르게 보낼 최적의 경로를 선택하는 과정을 라우팅이라고 한다. 네트워크 계층은 네트워크 호스트의 논리 주소(IP)를 확인한다.
하위 계층에 신뢰할 수 있는 데이터 전송 서비스를 제공한다. 컴퓨터와 컴퓨터 간에 신뢰성 있는 데이터를 서로 주고받을 수 있도록 해주어 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 부담을 덜어주는데, 이때 시퀀스 넘버 기반의 오류 제어 방식을 사용한다.
두 컴퓨터 간의 대화나 세션을 관리하며, 포트(Port)연결이라고도 한다. 모든 통신 장치 간에 연결을 설정하고 관리 및 종료하고 또한 연결이 전이중(Full duplex / 양방향)인지 반이중(half duplex / 단방향)인지 여부를 확인하고 체크 포인팅과 유휴, 재시작 과정 등을 수행하며 호스트가 갑자기 중지되지 않고 정상적으로 호스트를 연결하는 데 책임이 있다.
응용 계층으로부터 전달받은 데이터를 읽을 수 있는 형식으로 변환한다. 응용 계층으로부터 전송받거나 응용 계층으로 전달해야 할 데이터의 인코딩과 디코딩이 이 계층에서 이루어진다. 그리고 표현 계층은 데이터를 안전하게 사용하기 위해서 암호화와 복호화를 하는데 이 작업도 표현 계층에서 이루어진다.
사용자가 네트워크 자원에 접근하는 방법을 제공한다. 그리고 계층 7은 최종적으로 사용자가 볼 수 있는 유일한 계층으로 모든 네트워크 활동의 기반이 되는 인터페이스를 제공하는데, 즉 사용자가 실행하는 응용 프로그램들이 계층 7에 속한다고 보면 된다.
각 계층의 의미를 너무 파고드려하지 말자. 실제로 TCP/IP 4 Layer에서는 이 7계층을 묶어서 4계층으로 표현하기도 하였다. 하지만 실제로 데이터가 어떤 흐름을 갖고 있는지에대한 큰 그림은 느끼도록 하자.