2021-06-18
OSI 7계층이라는 단어를 처음 들어보았다. 그래서 먼저 정의를 찾아보자.
OSI 모형(Open Systems Interconnection Reference Model)은 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다. 일반적으로 OSI 7 계층이라고 한다. (출처 : 위키백과)
정의를 찾아봐도 정확히 와닿지 않는 것 같다. 조금 더 쉽게 개념을 이해해보자.
OSI 7계층은 OSI 참조모델이라고도 하며 개방된 시스템, 시스템 간의 상호연결성을 부여하는 표준이다. 컴퓨터나 네트워크 장치를 만들 때, OSI참조모델을 보고 통신장치를 만들때 이 OSI 7계층이 필요하다.
즉, 장치를 만들 때 서로 통신을 할 수 있도록 알아들을 수 있는 규칙을 정한 것이다. 통일된 규칙이 없다면 각 회사마다 통신규격이 달라 통신하기가 불가능하기 때문이다.
자동차를 예로 들어보자
내가 가지고 있는 자동차가 백미러에 금이 갔다고 해보자. 사람들이 백미러에 금이 갔다는 이유만으로 차를 새차를 뽑진 않을 것이다. 타이어가 망가졌으면 타이어만, 백미러가 망가졌으면 백미러만 부분을 교체하는 것이 당연하다. 자동차를 만들때, 하나의 회사가 모든 것을 만드는 것이 아니라 타이어회사 따로, 엔진따로, 철판 따로 각각의 부품들이 하나로 합쳐져 자동차가 만들어지는 것이다.
위의 예시처럼 각 계층별로 하나하나가 모듈화가 되어있는 것이다. 또한, 각각의 규격을 정의해놓았기 때문에 어느 타이어를 가져다 쓰든 자동차에 맞게 되어있다. 이런 모듈들이 융합되어있기 때문에 어디서 오류가 났는지 파악하기 쉽고, 원하는 부분교체도 가능하며, 설계도 단순해질 수 있다.
통신도 이처럼 데이터흐름을 파악하기 쉽도록 계층을 구분했고, 이 각각의 계층이 모듈화되어있다. 데이터 흐름에서의 오류파악이나 교체 등이 쉽고, 가능하게 해주며, 설계도 단순화 시킬 수 있도록 국제표준화기구(ISO)가 1984년에 발표했고, 그것이 OSI 7계층이라고 이해하면 되겠다.
정리하자면
- ISO가 1984년에 발표
- 통신이 일어나는 과정을 7단계로 구분하여 정의했으며, 단계별로 파악가능
- OSI는 컴퓨터 통신구조 모델과 앞으로 개발될 프로토콜의 표준적인 뼈대를 제공하기 위해 만들어진 참조모델
- OSI 7계층 -> 네트워크 구성을 예측,이해가능 / 트래픽의 흐름을 알 수 있음
- 각 계층은 독립되어있으므로 특정한 곳에 오류가 생긴 단계만 고치면 됨
- 상호 네트워크간의 연결을 쉽게 하고, 호환성의 결여를 막아주며, 타업체의 장비개발 및 지원이 가능 -> 유지관리가 쉬워진다.
- 상하구조를 가지고 있어 상위계층의 프로토콜이 제대로 동작하기 위해서는 하위의 모든계층에 문제가 없어야한다. 문제발생시에 문제해결을 용이하게 해준다. -> 모듈이라 하지 안고, 계층이라 표현하는 이유
OSI에 대해서 이해했으니 구체적으로 나누어보자. OSI는 총 7계층으로 나뉜다.
위 그림을 보면 정말 7개로 나뉘어져있다. 자세히보니 왼쪽 송신호스트 위부터 아래까지 헤더가 붙는 것을 볼 수 있다. 여기서 보이는 헤더부분에는 그 계층에 대한 정보가 기록되어있다.
예를 들어, 이메일을 보낸다고 했을 때, 7계층인 응용계층에서 헤더를 붙여 하위로 넘겨준다. 6계층 표현계층은 응용계층에서 내려온 헤더와 이메일데이터를 하나의 데이터로 본다. 거기에 자신의 헤더를 붙인다. 이런과정을 encapsulation이라고 한다. 이런식으로 상위계층에서온 헤더에 자신의 헤더를 붙이면서 물리계층까지 내려가게 된다. 그러면 1계층인 물리계층에서 0과1의 이진비트가 전송된다.
오른쪽의 수신호스트의 물리계층이 전송을 받고 거꾸로 1계층부터 시작해 헤더의 정보를 확인하고 헤더를 띤 후에 상위계층으로 데이터를 전달해준다. 이 과정은 decapsulation이라고 한다. 이렇게 1계층인 물리계층부터 7게층 응용계층까지 헤더가 띠어지면서 타고 올라가게 된다.
7계층은 크게 상위계층과 하위계층으로 나눌 수 있다.
상위계층은 7계층부터 5계층까지, 하위계층은 4계층부터 1계층으로 나뉜다. 먼저, 7계층부터 아래로 따라 내려가보자.
상위
7. 응용계층(Application Layer) : 사용자와 가장 가까운 계층이며, 응용계층이라한다. 응용프로그램, 응용서비스나 프로세스가 응용계층에서 동작한다. 구글크롬,파이어폭스, 사파리와 같은 웹브라우저나 스카이프, 오피스등이 대표적이다. 응옹프로세스간의 정보교환을 담당한다. :User Interface를 제공
6. 표현계층(Presentation Layer) : 응용프로그램 형식을 네트워크 형식으로 변환하거나, 네트워크형식을 응용프로그램 형식으로 변환한다. 즉, 응용프로그램이나 네트워크를 위해서 데이터를 '표현'한다. 그 예로 데이터를 암호화하고, 인코딩을 결정하는 계층이다. : 데이터변환 작업을 제공
5. 세션계층(Session Layer) : 컴퓨터 또는 서버 간의 대화가 필요할 떄, 세션을 만들어야한다. 즉, 응용프로세스가 통신을 관리하기 위한 방법을 정의하는 곳이 세션계층이다. 설정,조율,연결을 위해 세션을 만들고 없애는 과정을 하는 곳이다. : 응용프로그램 간의 연결을 지원해주는 계층
하위
4. 전송계층(Transport Layer) : 최종시스템 및 호스트 간의 데이터 전송조율을 담당.상위계층과 하위계층을 이어주는 계층이며, 오류검출을 상위계층에서 수행하지 않도록 이 계층에서 수행한다. : 서비스를 구분하고 전송방식을 담당하는 계층
3. 네트워크계층(Network Layer) : 라우터 기능이 대부분 네트워크 계층에서 자리잡는다. 다른 여러 라우터를 통한 라우팅을 비롯한 패킷전달을 담당한다. 중계노드를 통하여 전송하는 경우 어떻게 중계할 것인지를 규정한다. : 네트워크를 논리적으로 구분하고 연결하는 계층 - 논리적 주소 사용
2. 데이어 링크 계층(Data Link Layer) : 노드간의 데이터 전공을 제공하고, 물리계층의 오류수정도 처리한다. 매체 접근 제어 계층(MAC)과 논리적 연결 제어 계층(LLC) 2개의 부계층으로 나뉜다. : 물리적 매체에 패킷 데이터를 실어보내는 계층 - 환경에 맞는 통신 프로토콜을 지원
1. 물리계층(Physical Layer) : 시스템의 물리적 표현을 나타내는 계층. 케이블 종류, 무선 주파수 링크, 핀 배치, 전압등이 포함. 네트워크 문제가 발생하면 많은 네트워크 전문가가 물리 계층으로 가서 모든 케이블이 연결되어있는지 전원이 빠지지 않았는지 확인한다. : 신호로 변환하여 전송하는 계층