통신을 하는 단계에서 각 단계에 따라 주고 받는 메시지의 양식과 규칙의 체계가 갖춰져 있는데 이를 통신 프로토콜이라고 한다. 즉 프로토콜이란 컴퓨터 내부에서 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계이다.
옛날에는 같은 제조사에서 만든 컴퓨터가 아니면 서로 통신하기 어려웠던 때가 있었다. 또한 기기에 연결하는 케이블의 제조사가 달라도 문제가 된다면 통신은 굉장히 어려워질 것이다.
이런 불편함을 없애기 위해서 ISO(국제 표준화기구)에서 OSI모델이라는 네트워크 기술의 기본이 되는 모델을 만들었고, OSI모델은 7계층으로 구성되어있다.
❓ 계층을 나눈 이유는 무엇일까?
계층을 나눈 이유는 통신이 일어나는 과정을 단계별로 파악할 수 있기 때문이다. 또 각 계층은 독립 되어있기 때문에 통신에서 문제가 생겼을 때 어떤 계층에서 문제가 생겼는지만 파악하면 다른 단계의 소프트웨어나 장비는 건들이지 않고 문제를 해결할 수 있기도 하다.
OSI모델 7계층을 4계층으로 나눈것을 TCP/IP모델이라고 한다.
위 그림에서 왼쪽이 OSI7계층, TCP/IP 4계층이다.
현재에는 대부분 프로그램들이 인터넷으로 통신하는데 있어 TCP/IP 모델을 사용하고 있다.
데이터를 전송하기 위해서 데이터를 보내는 쪽에서 상위 계층에서 하위계층으로 데이터를 전달하고 데이터를 받은 쪽에서 하위계층에서 상위계층으로 데이터를 전달한다.
보내는 쪽에서 7계층->6계층->5계층->4계층->3계층->2계층->1계층을 거치고 마지막으로 전기신호로 변환해 받는 쪽으로 전달하면 받는쪽에서는 다시 이 전기신호를 1계층->2계층->3계층->4계층->5계층->6계층->7계층을 거쳐 최종적으로 수신한다.
이렇게 데이터를 상위계층 또는 하위계층으로 갈 때마다 필요한 정보들을 붙인다. 예를 들어 IP주소, 혹은 출발지 IP주소같은 정보들이 있다. 이렇게 정보를 붙인 것을 헤더(Header) 라고 부른다.
상위계층에서 하위계층으로 가면서 헤더를 붙여나가면 캡슐화
하위계층에서 상위계층으로 가면서 헤더를 제거해나가면 역캡슐화라고 한다.