OSI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다. 그 이유는 통신이 일어나는 과정이 단계별로 파악할 수 있기 때문에 흐름을 한눈에 알아보기 쉽고, 사람들이 이해하기 쉽다. 그리고 만약 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고도 이상이 생긴 단계만 고칠 수 있기 때문이다.
예를 들면 게임방에서 스타를 하는데 베틀넷이 끊어진다면, 관리자는 우선 모든 PC가 그런 것인지 한 PC만 그런 것이지 확인을 한다. 만약 모든 PC가 베틀넷이 안된다면 아마도 인터넷 접속에 문제가 있다고 보면 된다. 즉, 라우터의 문제(3계층)이거나 광랜을 제공하는 회사의 회선 문제(1계층)인지를 알 수 있다. 만약 한 PC만 이상이 있다면 소프트웨어를 확인하여 소프트웨어에 이상이있다면 7번째 계층인 어플리케이션 계층(Application Layer)에 이상이 있는 것이고, 컴퓨터에 이상이 없고, 스위치에 이상이 있으면 2번째 계층인 데이터링크 계층(Data-Link Layer)에 이상이 있는 것이 된다. 아무튼 OSI 7계층은 네트워크를 공부하는데 있어서 아주 중요한 이론이며, 꼭 알고 있어야하는 부분이다. 이제 각 7단계의 특징을 알아보겠다.
OSI 7계층은 위에서 말했듯이 총 7단계로 나눠져 있다. 각 계층의 명칭을 알아보면 다음 그림과 같다.
<OSI 7 계층의 통신과정>
위 그림에서 맨 아래에 있는 계층부터 1계층이 된다. 즉, (1계층 = Physical(물리)), (2계층 = Data Link(데이터링크)), (3계층 = Network(네트워크)), (4계층 = Transport(전송)), (5계층 = (Session(세션)), (6계층= Presentation(표현)), (7계층 = Application(응용))이 된다. 위 그림은 데이터가 어떤 식으로 각 단계를 거쳐 목적지로 전해진 뒤 목적지에서 어떤 식으로 데이터를 받게 되는지 보여준다. 우선 알아야 할 것은 데이터통신은 각 계층별로 이루어진다는 것이다. 처음에는 이게 무슨 말인지 이해하기 쉽지는 않겠지만 조금만 공부해보면 금방 이해하게 될 것이다. 아무튼 통신이 각 계층별로 이루어진다는 뜻을 알아보면...
사용자가 데이터를 전송할 때 각 계층을 지날 때 마다 헤더라는 작은 크기의 프레임을 달게 된다. 마지막 계층까지 헤더프레임이 붙인 후 목적지 컴퓨터에 전송하면 목적지 컴퓨터는 각 계층별로 헤더프레임을 파악하여 자신의 것이 맞는지, 전송도중에 오류는 없었는지 등의 검사를 거친 후 이상이 없을 때 사용자에게 보여주게 된다. 이제는 각 단계에서 어떤 일을 하는지 알아보겠다. 그전에 1계층~3계층까지는 하드웨어 부분이고, 5~7계층은 소프트웨어 부분, 4계층은 그 중간 이라고 생각하면 된다.
▪ 1단계(물리계층)
이 계층에서는 주로 전기적, 기계적, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송하게 된다. 이 계층에서 사용되는 통신 단위는 비트이며 이것은 1과 0으로 나타내어지는, 즉 전기적으로 On, Off 상태라고 생각하면 된다. 이 계층에서는 단지 데이터를 전달만 할뿐 전송하려는(또는 받으려는)데이터가 무엇인지, 어떤 에러가 있는지 등에는 전혀 신경 쓰지 않는다. 단지 데이터 전기적인 신호로 변환해서 주고받는 기능만 할 뿐이다. 이 계층에 속하는 대표적인 장비는 통신 케이블, 리피터, 허브등이 있다.
▪ 2단계(데이터 링크계층)
물리계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 도와주는 역할을 한다. 따라서 통신에서의 오류도 찾아주고 재전송도 하는 기능을 가지고 있는 것이다. 이 계층에서는 맥 어드레스를 가지고 통신하게 된다. 이 계층에서 전송되는 단위를 프레임이라고 하고, 대표적인 장비로는 브리지, 스위치 등이 있다.(여기서 MAC어드레스를 사용한다.)
▪ 3단계(네트워크 계층)
네트워크로 먹고 사는 사람들이 가장 많이 다루는 계층이다. 이 계층에서 가장 중요한 기능은 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능이다. 이 기능을 라우팅이라고 하는데 여기에 사용되는 프로토콜의 종류도 다양하고, 라우팅하는 기술도 다양하다.
아무튼 이 계층은 경로를 선택하고 주소를 정하고 경로에 따라 패킷을 전달해주는 것이 이 계층의 역할이다. 이 계층의 대표적인 장비는 라우터 이며, 요즘은 2계층의 장비 중 스위치라는 장비에 라우팅 기능을 장착한 Layer 3 스위치도 있다.(여기서 IP주소를 사용한다.)
▪ 4계층 - 전송 계층(Transport Layer) : 통신을 활성화하기 위한 계층이다. 보통 TCP프로토콜을 이용하며, 포트를 열어서 응용프로그램들이 전송을 할 수 있게 한다. 만약 데이터가 왔다면 4계층에서 해당 데이터를 하나로 합쳐서 5계층에 던져 준다. 단대단 오류제어 및 흐름제어 이 계층 까지는 물리적인 계층에 속한다.(TCP/UDP프로토콜을 사용한다.)
▪ 5계층 -세션 계층(Session Layer) : 데이터가 통신하기 위한 논리적인 연결을 말한다. 통신을 하기위한 대문이라고 보면 된다. 하지만 4계층에서도 연결을 맺고 종료할 수 있기 때문에 우리가 어느 계층에서 통신이 끊어 졌나 판단하기는 한계가 있다. 그러므로 세션 계층은 4 계층과 무관하게 응용 프로그램 관점에서 봐야 한다. 세션 설정, 유지, 종료, 전송 중단시 복구 등의 기능이 있다.
▪ 6계층 - 표현 계층(Presentation Layer) : 데이터 표현이 상이한 응용 프로세스의 독립성을 제공하고, 암호화 한다. 전송되는 데이터의 표현 방식에 대한 설명이다. 해당 데이터가 TEXT인지, 그림인지, GIF인지 JPG인지의 구분이다.
▪ 7계층 - 응용 계층(Application Layer) - 최종 목적지로서 HTTP, FTP, SMTP, POP3, IMAP, Telnet 등과 같은 프로토콜 많이 있다. 해당 통신 패킷들은 방금 나열한 프로토콜에 의해 모두 처리되며 우리가 사용하는 브라우저나, 메일 프로그램은 프로토콜을 보다 쉽게 사용하게 해주는 응용프로그램이다. 한마디로 모든 통신의 양 끝단은 HTTP와 같은 프로토콜이지 응용프로그램이 아니다.